Re: [BLACKBOX] Variant Records vs. Component Pascal
----boundary-LibPST-iamunique-1921769794_-_-
Content-type: text/plain
Stephen,
What I wrote is not quite right since you probably want a list of pointers
but the idea is the same
TYPE
List = POINTER TO RECORD p: Base; next: List END;
Sort(list);
The list can now contain a mixture of variant pointers.
-Doug Danforth
Douglas G. Danforth wrote:
Stephen,
Did your original sort routine operated on a common variable of each variant?
If so then by using a pointer to an EXTENSIBLE record for your base type
and by grouping all variables that are common in the variants into the base record
then you can write a single sort routine for the base record pointer which will sort
all variants.
MODULE PrivVariant;
TYPE
Base = POINTER TO EXTENSIBLE RECORD;
(* ... variables comment to all variants ... *)
END;
Variant = POINTER TO RECORD(Base) (* ... specific variables of variant ... *) END;
PROCEDURE (base: Base) Sort, NEW;
BEGIN
(* sorting routine on common variables *)
END Sort;
PROCEDURE (v: Variant) Init, NEW;
BEGIN
(* initialization of variant variables *)
END Init;
PROCEDURE Do*;
VAR v: Variant;
BEGIN
NEW(v); v.Init;
v.Sort;
END Do;
END PrivVariant.
Try that and tell us whether I am way off base or whether that is what
you want to do.
Best regards,
Doug Danforth
Stephen R. Troy wrote:
Hello List,
This is my first post to this list. To help you reply, I started programming digital computers, in machine language, in 1957. Since then I have done scientific and engineering programming in FORTRAN, BASIC, Pascal, and then Modula-2 for many years. I have only limited familiarity with C. Now retired, recently I have moved to Oberon and now Component Pascal, writing programs to support hobbies.
I have a program I have been evolving for several years, which reads in a database which is in a structured ASCII text file using a third-party database schema. The program develops several index files, performs various sorting and filtering operations on these indexes, and the uses the modified indexes to write out reports using the same database schema. There are three main types of records, and I was able to write very efficient sorting and filtering procedures in Modula-2 by writing the records as variant records of a basic type, then instantiating the records by pointers. My indexes were linked lists of the pointers, both linear and binary trees, and so I could find, sort, and filter each of the three types of records using the same very efficient code, because I manipulated only the pointers' "next-record" pointer in the linked lists, not moving any records in memory.
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. I tried defining the basic record type as EXTENSIBLE, but that made no difference. I found an obscure section in the Component Pascal documentation that said that using a RECORD [union] system flag, which allowed a "C-type" union data structure, it was possible to simulate Pascal- and Modula-style variant records, but the example in the documentation will not compile -- it gives an "invalid system flag" error message on the [union] flag.
Any suggestions would be welcome at this point.
Thanks,
Steve Troy
---- 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
---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy
----boundary-LibPST-iamunique-1921769794_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm
c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy
XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg
TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1
O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzI0MyA8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv
L0VOIj59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzE5IDxodG1sPn0NCntcKlxo
dG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMzQgPGhlYWQ+fQ0Ke1wqXGh0bWx0YWcxIFxwYXIg
fQ0Ke1wqXGh0bWx0YWcyNDEgICB9DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzQx
IDwvaGVhZD59DQp7XCpcaHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzUwIDxib2R5IGJnY29s
b3I9IiNmZmZmZmYiIHRleHQ9IiMwMDAwMDAiPn1caHRtbHJ0ZiBcdmlld2tpbmQ1DQp7XCpcYmFj
a2dyb3VuZCB7XHNocHtcKlxzaHBpbnN0e1xzcHtcc24gZmlsbENvbG9yfXtcc3YgMTY3NzcyMTV9
fXtcc3B7XHNuIGZGaWxsZWR9e1xzdiAxfX19fX1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBh
ciB9e1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFN0ZXBoZW4sDQp7XCpcaHRtbHRh
ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9
V2hhdCBJIHdyb3RlIGlzIG5vdCBxdWl0ZSByaWdodCBzaW5jZSB5b3UgcHJvYmFibHkgd2FudCBh
IGxpc3Qgb2YNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHBvaW50ZXJz
DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzQgXHBhciB9YnV0IHRoZSBpZGVhIGlzIHRoZSBzYW1lDQp7XCpcaHRtbHRhZzExNiA8YnI+
fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRt
bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh
ciB9XCdhMFRZUEUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm
MCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwIExpc3QgPSBQT0lOVEVSIFRPIFJFQ09SRCBwOiBC
YXNlOyBuZXh0OiBMaXN0IEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN
ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwIFNvcnQobGlzdCk7DQp7XCpcaHRt
bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh
ciB9XCdhMCANCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN
CntcKlxodG1sdGFnNCBccGFyIH1UaGUgbGlzdCBjYW4gbm93IGNvbnRhaW4gYSBtaXh0dXJlIG9m
IHZhcmlhbnQgcG9pbnRlcnMuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s
cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LURvdWcgRGFuZm9ydGgN
CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s
dGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm
MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp
bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1Eb3VnbGFzIEcuIERhbmZvcnRoIHdy
b3RlOg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAge1wqXGh0bWx0YWc3
Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgY2l0
ZT0ibWlkOjRCM0Q0MTM3LjMwMDA2QGdyZWVud29vZGZhcm0uY29tIiB0eXBlPSJjaXRlIj59XGh0
bWxydGYgXHBhcg0Ke1xodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFn
MjQwICAgfQ0Ke1wqXGh0bWx0YWcxNjAgPG1ldGEgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9
VVRGLTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0K
e1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzE3NiA8dGl0bGU+fQ0Ke1wqXGh0bWx0YWcy
NDAgfQ0Ke1wqXGh0bWx0YWcxODQgPC90aXRsZT59DQp7XCpcaHRtbHRhZzAgXHBhciB9e1wqXGh0
bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBTdGVwaGVuLA0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K
e1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1EaWQgeW91ciBvcmlnaW5hbCBzb3J0IHJvdXRp
bmUgb3BlcmF0ZWQgb24gYSBjb21tb24gdmFyaWFibGUgb2YgZWFjaA0Ke1wqXGh0bWx0YWc0IFxw
YXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdmFyaWFudD8NCntcKlxodG1sdGFnMTE2IDxicj59XGh0
bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JZiBzbyB0aGVuIGJ5
IHVzaW5nIGEgcG9pbnRlciB0byBhbiBFWFRFTlNJQkxFIHJlY29yZCBmb3IgeW91ciBiYXNlIHR5
cGUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo
dG1sdGFnNCBccGFyIH1hbmQgYnkgZ3JvdXBpbmcgYWxsIHZhcmlhYmxlcyB0aGF0IGFyZSBjb21t
b24gaW4gdGhlIHZhcmlhbnRzIGludG8gdGhlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg
IFxodG1scnRmMCBiYXNlIHJlY29yZA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu
ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRoZW4geW91IGNhbiB3cml0ZSBhIHNp
bmdsZSBzb3J0IHJvdXRpbmUgZm9yIHRoZSBiYXNlIHJlY29yZCBwb2ludGVyDQp7XCpcaHRtbHRh
ZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB3aGljaCB3aWxsIHNvcnQNCntcKlxodG1sdGFn
MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1h
bGwgdmFyaWFudHMuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0
ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfU1P
RFVMRSBQcml2VmFyaWFudDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgVFlQRQ0Ke1wqXGh0bWx0
YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg
fVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgQmFzZSA9IFBPSU5URVIgVE8gRVhURU5TSUJMRSBS
RUNPUkQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7
XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAg
KCogLi4uIHZhcmlhYmxlcyBjb21tZW50IHRvIGFsbCB2YXJpYW50cyAuLi4gKikNCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBcJ2EwIEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0
bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAg
VmFyaWFudCA9IFBPSU5URVIgVE8gUkVDT1JEKEJhc2UpICgqIC4uLlwnYTAgc3BlY2lmaWMgdmFy
aWFibGVzIG9mDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB2YXJpYW50
IC4uLiAqKSBFTkQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0
ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwn
YTBcJ2EwXCdhMCBQUk9DRURVUkUgKGJhc2U6IEJhc2UpIFNvcnQsIE5FVzsNCntcKlxodG1sdGFn
MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1c
J2EwXCdhMFwnYTAgQkVHSU4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBcJ2EwICgq
XCdhMCBzb3J0aW5nIHJvdXRpbmUgb24gY29tbW9uIHZhcmlhYmxlcyAqKQ0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwn
YTBcJ2EwXCdhMCBFTkQgU29ydDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN
ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpc
aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg
XHBhciB9XCdhMFwnYTBcJ2EwIFBST0NFRFVSRSAodjogVmFyaWFudCkgSW5pdCwgTkVXOw0Ke1wq
XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0
IFxwYXIgfVwnYTBcJ2EwXCdhMCBCRUdJTg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc
bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdh
MFwnYTAgKCogaW5pdGlhbGl6YXRpb24gb2YgdmFyaWFudCB2YXJpYWJsZXMgKikNCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH1cJ2EwXCdhMFwnYTAgRU5EIEluaXQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxs
aW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIA0Ke1wqXGh0
bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw
YXIgfVwnYTBcJ2EwXCdhMCBQUk9DRURVUkUgRG8qOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt
bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBc
J2EwXCdhMFwnYTAgVkFSIHY6IFZhcmlhbnQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm
IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIEJFR0lO
DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt
bHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCBORVcodik7IHYuSW5pdDsNCntc
KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn
NCBccGFyIH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBcJ2EwIHYuU29ydDsNCntcKlxodG1sdGFnMTE2
IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2Ew
XCdhMFwnYTAgRU5EIERvOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0
bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH1FTkQgUHJpdlZhcmlhbnQuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0
bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw
YXIgfVRyeSB0aGF0IGFuZCB0ZWxsIHVzIHdoZXRoZXIgSSBhbSB3YXkgb2ZmIGJhc2Ugb3Igd2hl
dGhlciB0aGF0IGlzIHdoYXQNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo
dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH15b3Ugd2FudCB0byBkby4NCntcKlxodG1sdGFn
MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0N
CntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc
aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9QmVzdCByZWdhcmRzLA0Ke1wqXGh0bWx0YWcx
MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfURv
dWcgRGFuZm9ydGgNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm
MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzEx
NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7
XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0
bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVN0ZXBoZW4gUi4gVHJveSB3cm90ZToNCntcKlxo
dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgIH17XCpc
aHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5NiA8YmxvY2tx
dW90ZVxwYXIgIGNpdGU9Im1pZDoyMDA5MTIzMTE0MTIwNC41Yjc2MzNhZWFhZDI2OTJlYjEyOTUx
Y2I1NTI5NWI1Zi4zZGZhODYyOGZlLndiZUBlbWFpbC5zZWN1cmVzZXJ2ZXIubmV0IlxwYXIgIHR5
cGU9ImNpdGUiPn1caHRtbHJ0ZiBccGFyDQp7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxy
dGYge1xodG1scnRmMCBcbGk3MjAgDQp7XCpcaHRtbHRhZzg0IDxzcGFuXHBhciAgc3R5bGU9ImZv
bnQtZmFtaWx5OiBWZXJkYW5hOyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LXNpemU6IDEwcHQ7
Ij59XGh0bWxydGYge1xodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFn
ODQgICAgIH1caHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxo
dG1scnRmMA0KDQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0
bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIEhl
bGxvIExpc3QsXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1c
aHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7
XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWc5NiA8
ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRm
MCBcbGk3MjAgXGh0bWxydGYge1xodG1scnRmMCBUaGlzIGlzIG15IGZpcnN0IHBvc3QgdG8gdGhp
cyBsaXN0LlwnYTAgVG8gaGVscCB5b3UgcmVwbHksIEkNCntcKlxodG1sdGFnNCBccGFyIH1caHRt
bHJ0ZiAgXGh0bWxydGYwIHN0YXJ0ZWQgcHJvZ3JhbW1pbmcgZGlnaXRhbCBjb21wdXRlcnMsIGlu
IG1hY2hpbmUgbGFuZ3VhZ2UsIGluIDE5NTcuXCdhMA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s
cnRmICBcaHRtbHJ0ZjAgU2luY2UgdGhlbiBJIGhhdmUgZG9uZSBzY2llbnRpZmljIGFuZCBlbmdp
bmVlcmluZyBwcm9ncmFtbWluZyBpbg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRt
bHJ0ZjAgRk9SVFJBTiwgQkFTSUMsIFBhc2NhbCwgYW5kIHRoZW4gTW9kdWxhLTIgZm9yIG1hbnkg
eWVhcnMuIEkgaGF2ZSBvbmx5DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm
MCBsaW1pdGVkIGZhbWlsaWFyaXR5IHdpdGggQy5cJ2EwIE5vdyByZXRpcmVkLCByZWNlbnRseSBJ
IGhhdmUgbW92ZWQgdG8NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIE9i
ZXJvbiBhbmQgbm93IENvbXBvbmVudCBQYXNjYWwsIHdyaXRpbmcgcHJvZ3JhbXMgdG8gc3VwcG9y
dCBob2JiaWVzLlwnYTAgXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRm
XHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0
ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0
YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRt
bHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0
MCAgICAgfQ0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpc
aHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2
Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBc
bGk3MjAgXGh0bWxydGYge1xodG1scnRmMCBJIGhhdmUgYSBwcm9ncmFtIEkgaGF2ZSBiZWVuIGV2
b2x2aW5nIGZvciBzZXZlcmFsIHllYXJzLCB3aGljaA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s
cnRmICBcaHRtbHJ0ZjAgcmVhZHMgaW4gYSBkYXRhYmFzZSB3aGljaCBpcyBpbiBhIHN0cnVjdHVy
ZWQgQVNDSUkgdGV4dCBmaWxlIHVzaW5nIGENCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg
XGh0bWxydGYwIHRoaXJkLXBhcnR5IGRhdGFiYXNlIHNjaGVtYS5cJ2EwIFRoZSBwcm9ncmFtIGRl
dmVsb3BzIHNldmVyYWwgaW5kZXggZmlsZXMsDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg
IFxodG1scnRmMCBwZXJmb3JtcyB2YXJpb3VzIHNvcnRpbmcgYW5kIGZpbHRlcmluZyBvcGVyYXRp
b25zIG9uIHRoZXNlIGluZGV4ZXMsIGFuZA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBc
aHRtbHJ0ZjAgdGhlIHVzZXMgdGhlIG1vZGlmaWVkIGluZGV4ZXMgdG8gd3JpdGUgb3V0IHJlcG9y
dHMgdXNpbmcgdGhlIHNhbWUNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYw
IGRhdGFiYXNlIHNjaGVtYS5cJ2EwIFRoZXJlIGFyZSB0aHJlZSBtYWluIHR5cGVzIG9mIHJlY29y
ZHMsIGFuZCBJIHdhcyBhYmxlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm
MCB0byB3cml0ZSB2ZXJ5IGVmZmljaWVudCBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcgcHJvY2VkdXJl
cyBpbiBNb2R1bGEtMiBieQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg
d3JpdGluZyB0aGUgcmVjb3JkcyBhcyB2YXJpYW50IHJlY29yZHMgb2YgYSBiYXNpYyB0eXBlLCB0
aGVuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBpbnN0YW50aWF0aW5n
IHRoZSByZWNvcmRzIGJ5IHBvaW50ZXJzLlwnYTAgTXkgaW5kZXhlcyB3ZXJlIGxpbmtlZCBsaXN0
cyBvZg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhlIHBvaW50ZXJz
LCBib3RoIGxpbmVhciBhbmQgYmluYXJ5IHRyZWVzLCBhbmQgc28gSSBjb3VsZCBmaW5kLCBzb3J0
LA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYW5kIGZpbHRlciBlYWNo
IG9mIHRoZSB0aHJlZSB0eXBlcyBvZiByZWNvcmRzIHVzaW5nIHRoZSBzYW1lIHZlcnkNCntcKlxo
dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGVmZmljaWVudCBjb2RlLCBiZWNhdXNl
IEkgbWFuaXB1bGF0ZWQgb25seSB0aGUgcG9pbnRlcnMnICJuZXh0LXJlY29yZCINCntcKlxodG1s
dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHBvaW50ZXIgaW4gdGhlIGxpbmtlZCBsaXN0
cywgbm90IG1vdmluZyBhbnkgcmVjb3JkcyBpbiBtZW1vcnkuXCdhMCBcaHRtbHJ0ZiB9XGh0bWxy
dGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEw
NCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxo
dG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAg
DQp7XCpcaHRtbHRhZzExMiA8YnI+fVxodG1scnRmIFxwYXINClxodG1scnRmMCANCntcKlxodG1s
dGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59
XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQw
ICAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0
YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIEJ1dCBJ
IGFwcGFyZW50bHkgSSBjYW4ndCB1c2UgdGhpcyBtZXRob2QgaW4gQ29tcG9uZW50IFBhc2NhbA0K
e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYmVjYXVzZSB2YXJpYW50IHJl
Y29yZHMgYXJlIG5vdCBhbGxvd2VkLlwnYTAgSSB0cmllZCBkZWZpbmluZyBhIGJhc2ljDQp7XCpc
aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCByZWNvcmQgYXMgYW4gQUJTVFJBQ1Qg
dHlwZSwgdGhlbiBkZWZpbmluZyBlYWNoIG9mIG15IHRocmVlIHJlY29yZCB0eXBlcw0Ke1wqXGh0
bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYXMgZXh0ZW5zaW9ucy5cJ2EwIEhvd2V2
ZXIsIEkgY2FuJ3QgaW5zdGFudGlhdGUgYSByZWNvcmQgYXMgYSBORVcocG9pbnRlcg0Ke1wqXGh0
bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdG8gYmFzaWMgdHlwZSksIGFuZCBJIGNh
bid0IHVzZSBhIHNpbmdsZSBzb3J0IHJvdXRpbmUgd2l0aCBlYWNoIG9mIHRoZQ0Ke1wqXGh0bWx0
YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhyZWUgKHBvaW50ZXIgdG8gZXh0ZW5zaW9u
IHR5cGUpIC0tIEkgbmVlZCB0aHJlZSBzZXBhcmF0ZSByb3V0aW5lcywNCntcKlxodG1sdGFnNCBc
cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHdoaWNoIGlzIGNsdW1zeSBhdCBiZXN0LCBhbmQgc2Vl
bXMgY29udHJhcnkgdG8gdGhlIGJhc2ljIGludGVudCBvZg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo
dG1scnRmICBcaHRtbHJ0ZjAgQ29tcG9uZW50IFBhc2NhbC5cJ2EwIEkgdHJpZWQgZGVmaW5pbmcg
dGhlIGJhc2ljIHJlY29yZCB0eXBlIGFzDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxo
dG1scnRmMCBFWFRFTlNJQkxFLCBidXQgdGhhdCBtYWRlIG5vIGRpZmZlcmVuY2UuXCdhMCBJIGZv
dW5kIGFuIG9ic2N1cmUgc2VjdGlvbiBpbg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBc
aHRtbHJ0ZjAgdGhlIENvbXBvbmVudCBQYXNjYWwgZG9jdW1lbnRhdGlvbiB0aGF0IHNhaWQgdGhh
dCB1c2luZyBhIFJFQ09SRA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg
W3VuaW9uXSBzeXN0ZW0gZmxhZywgd2hpY2ggYWxsb3dlZCBhICJDLXR5cGUiIHVuaW9uIGRhdGEg
c3RydWN0dXJlLCBpdA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgd2Fz
IHBvc3NpYmxlIHRvIHNpbXVsYXRlIFBhc2NhbC0gYW5kIE1vZHVsYS1zdHlsZSB2YXJpYW50IHJl
Y29yZHMsIGJ1dA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhlIGV4
YW1wbGUgaW4gdGhlIGRvY3VtZW50YXRpb24gd2lsbCBub3QgY29tcGlsZSAtLSBpdCBnaXZlcyBh
bg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgImludmFsaWQgc3lzdGVt
IGZsYWciIGVycm9yIG1lc3NhZ2Ugb24gdGhlIFt1bmlvbl0gZmxhZy5cJ2EwIFxodG1scnRmIH1c
aHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1s
dGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0K
e1wqXGh0bWx0YWcyNDAgICAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYge1xodG1s
cnRmMCANCntcKlxodG1sdGFnMTEyIDxicj59XGh0bWxydGYgXHBhcg0KXGh0bWxydGYwIA0Ke1wq
XGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgIH0NCntcKlxodG1sdGFnMTA0IDwv
ZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0
YWcyNDAgICAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYge1xodG1scnRmMCB7XCpc
aHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpNzIwIFxodG1scnRmIHtcaHRtbHJ0ZjAg
QW55IHN1Z2dlc3Rpb25zIHdvdWxkIGJlIHdlbGNvbWUgYXQgdGhpcyBwb2ludC5caHRtbHJ0ZiB9
XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRt
bHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N
CntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRt
bHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7
XGh0bWxydGYwIFRoYW5rcyxcaHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxy
dGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1s
cnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRt
bHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7
XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIFN0ZXZlIFRyb3kNCntcKlxodG1s
dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy
IH0NCntcKlxodG1sdGFnODQgICAgIH1caHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9
XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYg
fVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9DQp7
XCpcaHRtbHRhZzI0OCA8L3NwYW4+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcy
NDAgICAgIH0NCntcKlxodG1sdGFnNjQgPHA+fVxodG1scnRmIFxwYXINClxodG1scnRmMCBcaHRt
bHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCAtLS0tDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg
IFxodG1scnRmMCBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdO
T0ZGIEJMQUNLQk9YIiB0bw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg
DQp7XCpcaHRtbHRhZzg0ICAgICB9e30NCntcKlxodG1sdGFnODQgPGEgbW96LWRvLW5vdC1zZW5k
PSJ0cnVlIiBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIlxwYXIgIGhyZWY9Im1haWx0
bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7XGZpZWxke1wqXGZsZGluc3R7
SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNIIn19e1xmbGRyc2x0XGNm
MVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXGh0bWxydGYgfVxodG1scnRm
MCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+fSBcaHRtbHJ0ZlxwYXJ9
XGh0bWxydGYwDQpcaHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzcyIDwvcD59
DQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnMTA0
IDwvYmxvY2txdW90ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N
CntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWc2NCA8cD59XGh0bWxydGYge1xodG1scnRm
MCBcbGkzNjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo
dG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9k
eSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0
bWxydGYwIHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0
ZWQiIGhyZWY9Im1haWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7XGZp
ZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNI
In19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXGh0
bWxydGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+
fQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0
ICAgfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANClxodG1scnRmIFxwYXINClxodG1scnRmMCANCntc
KlxodG1sdGFnNzIgPC9wPn0NCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMTA0IDwv
YmxvY2txdW90ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntc
KlxodG1sdGFnNTggPC9ib2R5Pn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMjcg
PC9odG1sPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFnNjQgPHA+fVxodG1scnRm
IHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIg
fVxodG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGgg
Ym9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9OLkNIDQp7XCpc
aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBcaHRtbHJ0Zn19AGh0bWx0YWc5MiA8
L3Nw
----boundary-LibPST-iamunique-1921769794_-_---
Received on Fri Jan 01 2010 - 01:40:18 UTC
This archive was generated by hypermail 2.3.0
: Thu Sep 26 2013 - 06:30:38 UTC