Re: [BLACKBOX] Variant Records vs. Component Pascal
----boundary-LibPST-iamunique-531067523_-_-
Content-type: text/plain
Robert, thank you! I have been trying various approaches and coming to this conclusion -- good to have confirmation!
Steve Troy
-------- Original Message --------
Subject: Re: [BLACKBOX] Variant Records vs. Component Pascal
From: Robert > But I apparently I can't use this method in Component Pascal because
> variant records are not allowed. I tried defining a basic record as an
> ABSTRACT type, then defining each of my three record types as
> extensions. However, I can't instantiate a record as a NEW(pointer to
> basic type), and I can't use a single sort routine with each of the
> three (pointer to extension type) -- I need three separate routines,
> which is clumsy at best, and seems contrary to the basic intent of
> Component Pascal.
The first thing to say is that what you are trying to do will be easy, but
only after making the Modula-2 to Oberon changes in thinking and notation.
You sound as if you are on the right track, but not quite there yet.
I shall image your three "variants" are called A, B, & C; each has a field (of
maybe different types) called aVal, bVal, & cVal, and you want to sort using
these fields.
Some code ...
BaseType = POINTER TO ABSTRACT RECORD
next, prev : BaseType;
END;
A = POINTER TO RECORD (BaseType) aVal : Atype END;
B = POINTER TO RECORD (BaseType) bVal : Btype END;
C = POINTER TO RECORD (BaseType) cVal : Ctype END;
Now you can't (and don't want to) do NEW (baseType), but you can do NEW
on values of types A, B, & C.
First problem solved - I hope?
Now for the interesting bit, an extension aware sorting routine.
Maybe your sort routine wants to look like:
PROCEDURE Sort (base : BaseType)
VAR
p, q : BaseType
BEGIN
...
IF p.val < q.val THEN ... END;
...
END Sort;
But p & q don't have a '.val' field!!!
So replace that line by
IF p.PriorTo (q) THEN ... END;
and write the four routines
PROCEDURE (p: BaseType) PriorTo (q: BaseType) : BOOLEAN, NEW, ABSTRACT;
PROCEDURE (p: A) PriorTo (q: BaseType) : BOOLEAN;
BEGIN
RETURN p.aVal < q(A).aVal
END PriorTo;
PROCEDURE (p: B) PriorTo (q: BaseType) : BOOLEAN;
BEGIN
RETURN p.bVal < q(B).bVal
END PriorTo;
PROCEDURE (p: C) PriorTo (q: BaseType) : BOOLEAN;
BEGIN
RETURN p.cVal < q(C).cVal
END PriorTo;
You will find a fully worked out library module, with documentation, on the CPC
site.
Download the 'Lib' subsystem and look at the module Cycles.
In summary, you only need 1 Sort routine, but you do need 3 PriorTo
routines if they work on different fields that do not belong to the base type.
Regards
Robert
----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
----boundary-LibPST-iamunique-531067523_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm
c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy
XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg
TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1
O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzE5IDxo
dG1sPn0NCntcKlxodG1sdGFnNTAgPGJvZHk+fXtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1s
cnRmMCANCntcKlxodG1sdGFnODQgPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OlZlcmRhbmE7IGNv
bG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxMHB0OyI+fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGh0bWxy
dGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmfVxodG1scnRmMA0KDQp7XCpcaHRt
bHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7
XGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAgUm9iZXJ0LCB0aGFuayB5b3UhDQp7XCpcaHRt
bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBJIGhhdmUgYmVlbiB0cnlpbmcg
dmFyaW91cyBhcHByb2FjaGVzIGFuZCBjb21pbmcgdG8gdGhpcyBjb25jbHVzaW9uIC0tIGdvb2Qg
dG8gaGF2ZSBjb25maXJtYXRpb24hXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxo
dG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1c
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0
bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAgU3RldmUgVHJv
eQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIFxodG1scnRm
IH1caHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxo
dG1sdGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5NiA8ZGl2
Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFy
DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCAN
CntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgaWQ9InJlcGx5
QmxvY2txdW90ZSIgd2VibWFpbD0iMSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAycHggc29saWQgYmx1
ZTsgbWFyZ2luLWxlZnQ6IDhweDsgcGFkZGluZy1sZWZ0OiA4cHg7IGZvbnQtc2l6ZTogMTBwdDsg
Y29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogdmVyZGFuYTsiPn1caHRtbHJ0ZiBccGFyDQp7XGh0
bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2ICAgPn1caHRt
bHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfXtcKlxodG1sdGFnNjR9XGh0bWxy
dGYge1xodG1scnRmMCBcbGkzNjAgXGh0bWxydGYge1xodG1scnRmMCAtLS0tLS0tLSBPcmlnaW5h
bCBNZXNzYWdlIC0tLS0tLS0tDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9U3ViamVjdDogUmU6IFtCTEFDS0JPWF0gVmFy
aWFudCBSZWNvcmRzIHZzLiBDb21wb25lbnQgUGFzY2FsDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo
dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9RnJvbTogUm9iZXJ0
IA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgcm9iZXJ0LmNhbXBiZWxs
X0BUSVNDQUxJLkNPLlVLDQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxodG1scnRmMCAN
CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s
dGFnNCBccGFyIH1EYXRlOiBTdW4sIEphbnVhcnkgMDMsIDIwMTAgNjoxMSBwbQ0Ke1wqXGh0bWx0
YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg
fVRvOiBCTEFDS0JPWEBMSVNUUy5PQkVST04uQ0gNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy
dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2
IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1PbiAz
MS8xMi8yMDA5IDIxOjEyLCBTdGVwaGVuIFIuIFRyb3kgd3JvdGU6DQp7XCpcaHRtbHRhZzExNiA8
YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc
aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg
XHBhciB9DQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxodG1scnRmMCAgQnV0IEkgYXBw
YXJlbnRseSBJIGNhbid0IHVzZSB0aGlzIG1ldGhvZCBpbiBDb21wb25lbnQgUGFzY2FsIGJlY2F1
c2UNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo
dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJmd0O31caHRtbHJ0ZiA+XGh0bWxydGYwICB2
YXJpYW50IHJlY29yZHMgYXJlIG5vdCBhbGxvd2VkLiBJIHRyaWVkIGRlZmluaW5nIGEgYmFzaWMg
cmVjb3JkIGFzIGFuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0
ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxo
dG1scnRmMCAgQUJTVFJBQ1QgdHlwZSwgdGhlbiBkZWZpbmluZyBlYWNoIG9mIG15IHRocmVlIHJl
Y29yZCB0eXBlcyBhcw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy
dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmZ3Q7fVxodG1scnRmID5c
aHRtbHJ0ZjAgIGV4dGVuc2lvbnMuIEhvd2V2ZXIsIEkgY2FuJ3QgaW5zdGFudGlhdGUgYSByZWNv
cmQgYXMgYSBORVcocG9pbnRlciB0bw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu
ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmZ3Q7fVxo
dG1scnRmID5caHRtbHJ0ZjAgIGJhc2ljIHR5cGUpLCBhbmQgSSBjYW4ndCB1c2UgYSBzaW5nbGUg
c29ydCByb3V0aW5lIHdpdGggZWFjaCBvZiB0aGUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy
dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQg
Jmd0O31caHRtbHJ0ZiA+XGh0bWxydGYwICB0aHJlZSAocG9pbnRlciB0byBleHRlbnNpb24gdHlw
ZSkgLS0gSSBuZWVkIHRocmVlIHNlcGFyYXRlIHJvdXRpbmVzLA0Ke1wqXGh0bWx0YWcxMTYgPGJy
Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0
bWx0YWc4NCAmZ3Q7fVxodG1scnRmID5caHRtbHJ0ZjAgIHdoaWNoIGlzIGNsdW1zeSBhdCBiZXN0
LCBhbmQgc2VlbXMgY29udHJhcnkgdG8gdGhlIGJhc2ljIGludGVudCBvZg0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K
e1wqXGh0bWx0YWc4NCAmZ3Q7fVxodG1scnRmID5caHRtbHJ0ZjAgIENvbXBvbmVudCBQYXNjYWwu
DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0
ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9VGhlIGZpcnN0IHRoaW5nIHRvIHNheSBpcyB0aGF0IHdo
YXQgeW91IGFyZSB0cnlpbmcgdG8gZG8gd2lsbCBiZSBlYXN5LCBidXQNCntcKlxodG1sdGFnMTE2
IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1vbmx5
IGFmdGVyIG1ha2luZyB0aGUgTW9kdWxhLTIgdG8gT2Jlcm9uIGNoYW5nZXMgaW4gdGhpbmtpbmcg
YW5kIG5vdGF0aW9uLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy
dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc
bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVlvdSBzb3VuZCBhcyBpZiB5b3Ug
YXJlIG9uIHRoZSByaWdodCB0cmFjaywgYnV0IG5vdCBxdWl0ZSB0aGVyZSB5ZXQuDQp7XCpcaHRt
bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh
ciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzQgXHBhciB9SSBzaGFsbCBpbWFnZSB5b3VyIHRocmVlICJ2YXJpYW50cyIgYXJlIGNh
bGxlZCBBLCBCLCANCntcKlxodG1sdGFnODQgJmFtcDt9XGh0bWxydGYgJlxodG1scnRmMCAgQzsg
ZWFjaCBoYXMgYSBmaWVsZCAob2YgDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l
DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9bWF5YmUgZGlmZmVyZW50IHR5cGVzKSBj
YWxsZWQgYVZhbCwgYlZhbCwgDQp7XCpcaHRtbHRhZzg0ICZhbXA7fVxodG1scnRmICZcaHRtbHJ0
ZjAgIGNWYWwsIGFuZCB5b3Ugd2FudCB0byBzb3J0IHVzaW5nIA0Ke1wqXGh0bWx0YWcxMTYgPGJy
Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRoZXNlIGZp
ZWxkcy4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc
KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1Tb21lIGNvZGUgLi4uDQp7XCpcaHRtbHRhZzEx
NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7
XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh
ZzQgXHBhciB9QmFzZVR5cGUNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCA9
DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUE9JTlRFUg0Ke1wqXGh0bWx0
YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRPDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRm
ICBcaHRtbHJ0ZjAgQUJTVFJBQ1QNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRm
MCBSRUNPUkQNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN
CntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICAgICAgICAgICAgfW5leHQs
IHByZXYgOiBCYXNlVHlwZTsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICAgICAgICAg
ICB9RU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K
e1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K
XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUENCntcKlxodG1sdGFnODQgICB9XGh0bWxy
dGYgIFxodG1scnRmMCA9DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUE9J
TlRFUg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRPDQp7XCpcaHRtbHRh
Zzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUkVDT1JEIChCYXNlVHlwZSkgYVZhbCA6IEF0eXBl
DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUIN
CntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCA9DQp7XCpcaHRtbHRhZzg0ICAg
fVxodG1scnRmICBcaHRtbHJ0ZjAgUE9JTlRFUg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAg
XGh0bWxydGYwIFRPDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUkVDT1JE
IChCYXNlVHlwZSkgYlZhbCA6IEJ0eXBlDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRt
bHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw
IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUMNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1s
cnRmMCA9DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUE9JTlRFUg0Ke1wq
XGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRPDQp7XCpcaHRtbHRhZzg0ICAgfVxo
dG1scnRmICBcaHRtbHJ0ZjAgUkVDT1JEIChCYXNlVHlwZSkgY1ZhbCA6IEN0eXBlDQp7XCpcaHRt
bHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c
aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0
YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg
fU5vdyB5b3UgY2FuJ3QgKGFuZCBkb24ndCB3YW50IHRvKSBkbyBORVcgKGJhc2VUeXBlKSwgYnV0
IHlvdSBjYW4gZG8gTkVXDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt
bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9b24gdmFsdWVzIG9mIHR5cGVzIEEsIEIsIA0Ke1wq
XGh0bWx0YWc4NCAmYW1wO31caHRtbHJ0ZiAmXGh0bWxydGYwICBDLg0Ke1wqXGh0bWx0YWcxMTYg
PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq
XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0
IFxwYXIgfUZpcnN0IHByb2JsZW0gc29sdmVkIC0gSSBob3BlPw0Ke1wqXGh0bWx0YWcxMTYgPGJy
Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0
bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw
YXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq
XGh0bWx0YWc0IFxwYXIgfU5vdyBmb3IgdGhlIGludGVyZXN0aW5nIGJpdCwgYW4gZXh0ZW5zaW9u
IGF3YXJlIHNvcnRpbmcgcm91dGluZS4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp
bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59
XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1NYXliZSB5b3Vy
IHNvcnQgcm91dGluZSB3YW50cyB0byBsb29rIGxpa2U6DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo
dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh
ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9
UFJPQ0VEVVJFDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgU29ydCAoYmFz
ZSA6IEJhc2VUeXBlKQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy
dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9VkFSDQp7XCpcaHRt
bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh
ciB9DQp7XCpcaHRtbHRhZzg0ICAgICAgfXAsIHENCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYg
IFxodG1scnRmMCA6DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgQmFzZVR5
cGUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo
dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgfUJFR0lODQp7XCpcaHRtbHRhZzExNiA8
YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc
aHRtbHRhZzg0ICAgICAgfS4uLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K
XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgIH1JRg0K
e1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHAudmFsIA0Ke1wqXGh0bWx0YWc4
NCAmbHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgIHEudmFsDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1s
cnRmICBcaHRtbHJ0ZjAgVEhFTg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYw
IC4uLg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIEVORDsNCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH0NCntcKlxodG1sdGFnODQgICAgICB9Li4uDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm
IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAg
IH1FTkQNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCBTb3J0Ow0Ke1wqXGh0
bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw
YXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq
XGh0bWx0YWc0IFxwYXIgfUJ1dCBwIA0Ke1wqXGh0bWx0YWc4NCAmYW1wO31caHRtbHJ0ZiAmXGh0
bWxydGYwICBxIGRvbid0IGhhdmUgYSAnLnZhbCcgZmllbGQhISENCntcKlxodG1sdGFnMTE2IDxi
cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo
dG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBc
cGFyIH1TbyByZXBsYWNlIHRoYXQgbGluZSBieQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0
ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYg
PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq
XGh0bWx0YWc4NCAgICAgIH1JRg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYw
IHAuUHJpb3JUbyAocSkNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCBUSEVO
DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgLi4uDQp7XCpcaHRtbHRhZzg0
ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0
ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYg
PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfWFuZCB3
cml0ZSB0aGUgZm91ciByb3V0aW5lcw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu
ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c
aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVBST0NFRFVSRSAo
cDogQmFzZVR5cGUpIFByaW9yVG8gKHE6IEJhc2VUeXBlKSA6IEJPT0xFQU4sIE5FVywgQUJTVFJB
Q1Q7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt
bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9UFJPQ0VEVVJFIChwOiBBKSBQcmlvclRvIChxOiBC
YXNlVHlwZSkgOiBCT09MRUFOOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K
XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9QkVHSU4N
CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s
dGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICB9UkVUVVJODQp7XCpcaHRtbHRhZzg0ICAg
fVxodG1scnRmICBcaHRtbHJ0ZjAgcC5hVmFsIA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxodG1scnRm
IDxcaHRtbHJ0ZjAgIHEoQSkuYVZhbA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu
ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9RU5E
IFByaW9yVG87DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg
DQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l
DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9UFJPQ0VEVVJFIChwOiBCKSBQcmlvclRv
IChxOiBCYXNlVHlwZSkgOiBCT09MRUFOOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc
bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9
QkVHSU4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc
KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICB9UkVUVVJODQp7XCpcaHRtbHRh
Zzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgcC5iVmFsIA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxo
dG1scnRmIDxcaHRtbHJ0ZjAgIHEoQikuYlZhbA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0
ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAg
ICB9RU5EIFByaW9yVG87DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt
bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm
IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9UFJPQ0VEVVJFIChwOiBDKSBQ
cmlvclRvIChxOiBCYXNlVHlwZSkgOiBCT09MRUFOOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt
bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4
NCAgICB9QkVHSU4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm
MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICB9UkVUVVJODQp7XCpc
aHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgcC5jVmFsIA0Ke1wqXGh0bWx0YWc4NCAm
bHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgIHEoQykuY1ZhbA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c
aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0
YWc4NCAgICB9RU5EIFByaW9yVG87DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l
DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo
dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh
ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9
WW91IHdpbGwgZmluZCBhIGZ1bGx5IHdvcmtlZCBvdXQgbGlicmFyeSBtb2R1bGUsIHdpdGggZG9j
dW1lbnRhdGlvbiwgb24gdGhlIENQQyANCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp
bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1zaXRlLg0Ke1wqXGh0bWx0YWcxMTYg
PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfURvd25s
b2FkIHRoZSAnTGliJyBzdWJzeXN0ZW0gYW5kIGxvb2sgYXQgdGhlIG1vZHVsZSBDeWNsZXMuDQp7
XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh
ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg
DQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l
DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9SW4gc3VtbWFyeSwgeW91IG9ubHkgbmVl
ZCAxIFNvcnQgcm91dGluZSwgYnV0IHlvdSBkbyBuZWVkIDMgUHJpb3JUbw0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXJv
dXRpbmVzIGlmIHRoZXkgd29yayBvbiBkaWZmZXJlbnQgZmllbGRzIHRoYXQgZG8gbm90IGJlbG9u
ZyB0byB0aGUgYmFzZSB0eXBlLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K
XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt
bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVJl
Z2FyZHMNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc
KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1Sb2JlcnQNCntcKlxodG1sdGFnMTE2IDxicj59
XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo
dG1sdGFnNCBccGFyIH0tLS0tDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9VG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNz
YWdlIHdpdGggYm9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9O
LkNIDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgfVxodG1scnRmMCB7
XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9k
aXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRh
ZzEwNCA8L2Jsb2NrcXVvdGU+fVxodG1scnRmIH1ccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh
ZzI0OCA8L3NwYW4+fQ0Ke1wqXGh0bWx0YWc1OCA8L2JvZHk+fQ0Ke1wqXGh0bWx0YWcyNyA8L2h0
bWw+fQ0Ke1wqXGh0bWx0YWczIFxwYXIgfQ0Ke1wqXGh0bWx0YWc2NCA8cD59XGh0bWxydGYge1xo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0tLS0tDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0
bWxydGYgIFxodG1scnRmMCBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5
ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0gNCntcKlxodG1s
dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFxodG1scnRmXHBhcn1caHRtbHJ0ZjANCn0
----boundary-LibPST-iamunique-531067523_-_---
Received on Mon Jan 04 2010 - 03:59:00 UTC
This archive was generated by hypermail 2.3.0
: Thu Sep 26 2013 - 06:30:37 UTC