[python-sybase] MemoryError using Sybase, FreeTDS, MS SQL

Valerie R. Coffman vrc3 at cornell.edu
Thu, 23 Jan 2003 15:20:04 -0500


This is a multi-part message in MIME format.
--------------040503090804050403060501
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

Dave, thanks for your response.  We have a big interest in this module 
because without it, we have to use a combination of Perl and Python and 
it's pretty ugly.

I've dowloaded the version 0.36pre3 and turned on the debugging.  I'm 
still seeing the same error and it appears that the problem is with 
retrieving a text type column.  Here is part of the output.  The full 
output is attatched in the file "output".

ct_describe(cmd1, 9, &fmt) -> CS_SUCCEED, datafmt8=[name:"lengthScale" 
type:CS_FLOAT_TYPE status:CS_FALSE format:CS_FMT_UNUSED count:1 maxlength:8]
ct_bind(cmd1, 9, &datafmt8->fmt=[name:"lengthScale" type:CS_FLOAT_TYPE 
status:CS_FALSE format:CS_FMT_UNUSED count:32 maxlength:8], 
databuf8->buff, databuf8->copied, databuf8->indicator) -> CS_SUCCEED, 
databuf8
ct_describe(cmd1, 10, &fmt) -> CS_SUCCEED, datafmt9=[name:"material" 
type:CS_TEXT_TYPE status:CS_CANBENULL format:CS_FMT_UNUSED count:1 
maxlength:2147483647]
Traceback (most recent call last):
  File "DBTest.py", line 10, in ?
    db.execute("SELECT * FROM FEMMD_Parameters")
  File "/usr/local/pub/dm/lib/python2.1/site-packages/Sybase.py", line 
727, in execute
    result_list = self._fetch_results()
  File "/usr/local/pub/dm/lib/python2.1/site-packages/Sybase.py", line 
745, in _fetch_results
    bufs = _row_bind(cmd, self.arraysize)
  File "/usr/local/pub/dm/lib/python2.1/site-packages/Sybase.py", line 
159, in _row_bind
    status, buf = cmd.ct_bind(i + 1, fmt)
MemoryError
ct_cmd_drop(cmd1) -> CS_SUCCEED
ct_con_props(conn0, CS_GET, CS_CON_STATUS, &value, CS_UNUSED, NULL) -> 
CS_SUCCEED, CS_CONSTAT_CONNECTED
ct_close(conn0, CS_OPT_STATS_IO) -> CS_SUCCEED
ct_con_drop(conn0) -> CS_SUCCEED

There should be two more columns after the "material" column, so it 
seems that it does not finish retrieving one row, but stops at the first 
text type row.

Knowing this, I've tried a similar query on a table that does not have a 
text column and I get a different error.  Here is part of the output, 
the full output is attached in "output2".

ct_describe(cmd1, 8, &fmt) -> CS_SUCCEED, datafmt7=[name:"energy" 
type:CS_FLOAT_TYPE status:CS_FALSE format:CS_FMT_UNUSED count:1 
maxlength:8 scale:0 precision:0]
ct_bind(cmd1, 8, &datafmt7->fmt=[name:"energy" type:CS_FLOAT_TYPE 
status:CS_FALSE format:CS_FMT_UNUSED count:32 maxlength:8 scale:0 
precision:0], databuf7->buff, databuf7->copied, databuf7->indicator) -> 
CS_SUCCEED, databuf7
ct_fetch(cmd1, CS_UNUSED, CS_UNUSED, CS_UNUSED, &rows_read) -> 
CS_ROW_FAIL, 0
Traceback (most recent call last):
  File "DBTest.py", line 10, in ?
    db.execute("SELECT * FROM FEMMD_AtomicInfo")
  File 
"/afs/.msc.cornell.edu/i386_linux22/usr/local/pub/dm/lib/python2.1/site-packages/Sybase.py", 
line 732, in execute
    result_list = self._fetch_results()
  File 
"/afs/.msc.cornell.edu/i386_linux22/usr/local/pub/dm/lib/python2.1/site-packages/Sybase.py", 
line 751, in _fetch_results
    logical_result = self._fetch_logical_result(bufs)
  File 
"/afs/.msc.cornell.edu/i386_linux22/usr/local/pub/dm/lib/python2.1/site-packages/Sybase.py", 
line 760, in _fetch_logical_result
    rows = _fetch_rows(cmd, bufs)
  File 
"/afs/.msc.cornell.edu/i386_linux22/usr/local/pub/dm/lib/python2.1/site-packages/Sybase.py", 
line 196, in _fetch_rows
    raise Error('ct_fetch')
Sybase.Error: ct_fetch
ct_cmd_drop(cmd1) -> CS_SUCCEED
ct_con_props(conn0, CS_GET, CS_CON_STATUS, &value, CS_UNUSED, NULL) -> 
CS_SUCCEED, CS_CONSTAT_CONNECTED
ct_close(conn0, CS_OPT_STATS_IO) -> CS_SUCCEED
ct_con_drop(conn0) -> CS_SUCCEED

Thanks,
Valerie


--------------040503090804050403060501
Content-Type: application/x-java-vm;
 name="output"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="output"

c2xlZXB5PiBweXRob24gREJUZXN0LnB5CmN0X2Nvbl9hbGxvYyhjdHgwLCAmY29ubikgLT4g
Q1NfU1VDQ0VFRCwgY29ubjAKY3RfY29uX3Byb3BzKGNvbm4wLCBDU19TRVQsIENTX1VTRVJO
QU1FLCBVU0VSTkFNRSwgQ1NfTlVMTFRFUk0sIE5VTEwpIC0+IENTX1NVQ0NFRURjdF9jb25f
cHJvcHMoY29ubjAsIENTX1NFVCwgQ1NfUEFTU1dPUkQsIFBBU1NXT1JELCBDU19OVUxMVEVS
TSwgTlVMTCkgLT4gQ1NfU1VDQ0VFRApzZXJ2ZXJtc2dfY2IKc2VydmVybXNnX2NiCmN0X2Nv
bm5lY3QoY29ubjAsIFNFUlZFUk5BTUUsIENTX05VTExURVJNKSAtPiBDU19TVUNDRUVECmN0
X29wdGlvbnMoY29ubjAsIENTX1NFVCwgQ1NfT1BUX0NIQUlOWEFDVFMsIDEsIENTX1VOVVNF
RCwgTlVMTCkgLT4gQ1NfU1VDQ0VFRApjdF9jbWRfYWxsb2MoY29ubjAsICZjbWQpIC0+IENT
X1NVQ0NFRUQsIGNtZDAKY3RfY29tbWFuZChjbWQwLCBDU19MQU5HX0NNRCwgInVzZSBwaXBl
XzEiLCBDU19OVUxMVEVSTSwgQ1NfT1BUX0FVVEhPRkYpIC0+IENTX1NVQ0NFRUQKY3Rfc2Vu
ZChjbWQwKSAtPiBDU19TVUNDRUVECnNlcnZlcm1zZ19jYgpjdF9yZXN1bHRzKGNtZDAsICZy
ZXN1bHQpIC0+IENTX1NVQ0NFRUQsIENTX0NNRF9TVUNDRUVECmN0X3Jlc3VsdHMoY21kMCwg
JnJlc3VsdCkgLT4gQ1NfRU5EX1JFU1VMVFMsIENTX0NNRF9ET05FCmN0X2NtZF9kcm9wKGNt
ZDApIC0+IENTX1NVQ0NFRUQKY3RfY21kX2FsbG9jKGNvbm4wLCAmY21kKSAtPiBDU19TVUND
RUVELCBjbWQxCmN0X2NvbW1hbmQoY21kMSwgQ1NfTEFOR19DTUQsICJTRUxFQ1QgKiBGUk9N
IEZFTU1EX1BhcmFtZXRlcnMiLCBDU19OVUxMVEVSTSwgQ1NfT1BUX0FVVEhPRkYpIC0+IENT
X1NVQ0NFRUQKY3Rfc2VuZChjbWQxKSAtPiBDU19TVUNDRUVECmN0X3Jlc3VsdHMoY21kMSwg
JnJlc3VsdCkgLT4gQ1NfU1VDQ0VFRCwgQ1NfUk9XX1JFU1VMVApjdF9yZXNfaW5mbyhjbWQx
LCBDU19OVU1EQVRBLCAmdmFsdWUsIENTX1VOVVNFRCwgTlVMTCkgLT4gQ1NfU1VDQ0VFRCwg
MTIKY3RfZGVzY3JpYmUoY21kMSwgMSwgJmZtdCkgLT4gQ1NfU1VDQ0VFRCwgZGF0YWZtdDA9
W25hbWU6Imd1aWQiIHR5cGU6Q1NfRk9SQ0VfQ0xPU0Ugc3RhdHVzOkNTX0ZBTFNFIGZvcm1h
dDpDU19GTVRfVU5VU0VEIGNvdW50OjEgbWF4bGVuZ3RoOjE2XQpjdF9iaW5kKGNtZDEsIDEs
ICZkYXRhZm10MC0+Zm10PVtuYW1lOiJndWlkIiB0eXBlOkNTX0ZPUkNFX0NMT1NFIHN0YXR1
czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDozMiBtYXhsZW5ndGg6MTZd
LCBkYXRhYnVmMC0+YnVmZiwgZGF0YWJ1ZjAtPmNvcGllZCwgZGF0YWJ1ZjAtPmluZGljYXRv
cikgLT4gQ1NfU1VDQ0VFRCwgZGF0YWJ1ZjAKY3RfZGVzY3JpYmUoY21kMSwgMiwgJmZtdCkg
LT4gQ1NfU1VDQ0VFRCwgZGF0YWZtdDE9W25hbWU6ImVkZ2VUb0RlY29yYXRlIiB0eXBlOkNT
X0lOVF9UWVBFIHN0YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDox
IG1heGxlbmd0aDo0XQpjdF9iaW5kKGNtZDEsIDIsICZkYXRhZm10MS0+Zm10PVtuYW1lOiJl
ZGdlVG9EZWNvcmF0ZSIgdHlwZTpDU19JTlRfVFlQRSBzdGF0dXM6Q1NfRkFMU0UgZm9ybWF0
OkNTX0ZNVF9VTlVTRUQgY291bnQ6MzIgbWF4bGVuZ3RoOjRdLCBkYXRhYnVmMS0+YnVmZiwg
ZGF0YWJ1ZjEtPmNvcGllZCwgZGF0YWJ1ZjEtPmluZGljYXRvcikgLT4gQ1NfU1VDQ0VFRCwg
ZGF0YWJ1ZjEKY3RfZGVzY3JpYmUoY21kMSwgMywgJmZtdCkgLT4gQ1NfU1VDQ0VFRCwgZGF0
YWZtdDI9W25hbWU6Im5TdGVwcyIgdHlwZTpDU19JTlRfVFlQRSBzdGF0dXM6Q1NfRkFMU0Ug
Zm9ybWF0OkNTX0ZNVF9VTlVTRUQgY291bnQ6MSBtYXhsZW5ndGg6NF0KY3RfYmluZChjbWQx
LCAzLCAmZGF0YWZtdDItPmZtdD1bbmFtZToiblN0ZXBzIiB0eXBlOkNTX0lOVF9UWVBFIHN0
YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDozMiBtYXhsZW5ndGg6
NF0sIGRhdGFidWYyLT5idWZmLCBkYXRhYnVmMi0+Y29waWVkLCBkYXRhYnVmMi0+aW5kaWNh
dG9yKSAtPiBDU19TVUNDRUVELCBkYXRhYnVmMgpjdF9kZXNjcmliZShjbWQxLCA0LCAmZm10
KSAtPiBDU19TVUNDRUVELCBkYXRhZm10Mz1bbmFtZToibk1ETWlub3JTdGVwcyIgdHlwZTpD
U19JTlRfVFlQRSBzdGF0dXM6Q1NfRkFMU0UgZm9ybWF0OkNTX0ZNVF9VTlVTRUQgY291bnQ6
MSBtYXhsZW5ndGg6NF0KY3RfYmluZChjbWQxLCA0LCAmZGF0YWZtdDMtPmZtdD1bbmFtZToi
bk1ETWlub3JTdGVwcyIgdHlwZTpDU19JTlRfVFlQRSBzdGF0dXM6Q1NfRkFMU0UgZm9ybWF0
OkNTX0ZNVF9VTlVTRUQgY291bnQ6MzIgbWF4bGVuZ3RoOjRdLCBkYXRhYnVmMy0+YnVmZiwg
ZGF0YWJ1ZjMtPmNvcGllZCwgZGF0YWJ1ZjMtPmluZGljYXRvcikgLT4gQ1NfU1VDQ0VFRCwg
ZGF0YWJ1ZjMKY3RfZGVzY3JpYmUoY21kMSwgNSwgJmZtdCkgLT4gQ1NfU1VDQ0VFRCwgZGF0
YWZtdDQ9W25hbWU6Im5NRE1ham9yU3RlcHMiIHR5cGU6Q1NfSU5UX1RZUEUgc3RhdHVzOkNT
X0ZBTFNFIGZvcm1hdDpDU19GTVRfVU5VU0VEIGNvdW50OjEgbWF4bGVuZ3RoOjRdCmN0X2Jp
bmQoY21kMSwgNSwgJmRhdGFmbXQ0LT5mbXQ9W25hbWU6Im5NRE1ham9yU3RlcHMiIHR5cGU6
Q1NfSU5UX1RZUEUgc3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpDU19GTVRfVU5VU0VEIGNvdW50
OjMyIG1heGxlbmd0aDo0XSwgZGF0YWJ1ZjQtPmJ1ZmYsIGRhdGFidWY0LT5jb3BpZWQsIGRh
dGFidWY0LT5pbmRpY2F0b3IpIC0+IENTX1NVQ0NFRUQsIGRhdGFidWY0CmN0X2Rlc2NyaWJl
KGNtZDEsIDYsICZmbXQpIC0+IENTX1NVQ0NFRUQsIGRhdGFmbXQ1PVtuYW1lOiJjZW50ZXJQ
b3NpdGlvblBhcmFtZXRlciIgdHlwZTpDU19GTE9BVF9UWVBFIHN0YXR1czpDU19GQUxTRSBm
b3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDoxIG1heGxlbmd0aDo4XQpjdF9iaW5kKGNtZDEs
IDYsICZkYXRhZm10NS0+Zm10PVtuYW1lOiJjZW50ZXJQb3NpdGlvblBhcmFtZXRlciIgdHlw
ZTpDU19GTE9BVF9UWVBFIHN0YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBj
b3VudDozMiBtYXhsZW5ndGg6OF0sIGRhdGFidWY1LT5idWZmLCBkYXRhYnVmNS0+Y29waWVk
LCBkYXRhYnVmNS0+aW5kaWNhdG9yKSAtPiBDU19TVUNDRUVELCBkYXRhYnVmNQpjdF9kZXNj
cmliZShjbWQxLCA3LCAmZm10KSAtPiBDU19TVUNDRUVELCBkYXRhZm10Nj1bbmFtZToiTURy
ZWdpb25TaXplIiB0eXBlOkNTX0ZMT0FUX1RZUEUgc3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpD
U19GTVRfVU5VU0VEIGNvdW50OjEgbWF4bGVuZ3RoOjhdCmN0X2JpbmQoY21kMSwgNywgJmRh
dGFmbXQ2LT5mbXQ9W25hbWU6Ik1EcmVnaW9uU2l6ZSIgdHlwZTpDU19GTE9BVF9UWVBFIHN0
YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDozMiBtYXhsZW5ndGg6
OF0sIGRhdGFidWY2LT5idWZmLCBkYXRhYnVmNi0+Y29waWVkLCBkYXRhYnVmNi0+aW5kaWNh
dG9yKSAtPiBDU19TVUNDRUVELCBkYXRhYnVmNgpjdF9kZXNjcmliZShjbWQxLCA4LCAmZm10
KSAtPiBDU19TVUNDRUVELCBkYXRhZm10Nz1bbmFtZToibG9hZFN0cmVzcyIgdHlwZTpDU19G
TE9BVF9UWVBFIHN0YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDox
IG1heGxlbmd0aDo4XQpjdF9iaW5kKGNtZDEsIDgsICZkYXRhZm10Ny0+Zm10PVtuYW1lOiJs
b2FkU3RyZXNzIiB0eXBlOkNTX0ZMT0FUX1RZUEUgc3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpD
U19GTVRfVU5VU0VEIGNvdW50OjMyIG1heGxlbmd0aDo4XSwgZGF0YWJ1ZjctPmJ1ZmYsIGRh
dGFidWY3LT5jb3BpZWQsIGRhdGFidWY3LT5pbmRpY2F0b3IpIC0+IENTX1NVQ0NFRUQsIGRh
dGFidWY3CmN0X2Rlc2NyaWJlKGNtZDEsIDksICZmbXQpIC0+IENTX1NVQ0NFRUQsIGRhdGFm
bXQ4PVtuYW1lOiJsZW5ndGhTY2FsZSIgdHlwZTpDU19GTE9BVF9UWVBFIHN0YXR1czpDU19G
QUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDoxIG1heGxlbmd0aDo4XQpjdF9iaW5k
KGNtZDEsIDksICZkYXRhZm10OC0+Zm10PVtuYW1lOiJsZW5ndGhTY2FsZSIgdHlwZTpDU19G
TE9BVF9UWVBFIHN0YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDoz
MiBtYXhsZW5ndGg6OF0sIGRhdGFidWY4LT5idWZmLCBkYXRhYnVmOC0+Y29waWVkLCBkYXRh
YnVmOC0+aW5kaWNhdG9yKSAtPiBDU19TVUNDRUVELCBkYXRhYnVmOApjdF9kZXNjcmliZShj
bWQxLCAxMCwgJmZtdCkgLT4gQ1NfU1VDQ0VFRCwgZGF0YWZtdDk9W25hbWU6Im1hdGVyaWFs
IiB0eXBlOkNTX1RFWFRfVFlQRSBzdGF0dXM6Q1NfQ0FOQkVOVUxMIGZvcm1hdDpDU19GTVRf
VU5VU0VEIGNvdW50OjEgbWF4bGVuZ3RoOjIxNDc0ODM2NDddClRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICJEQlRlc3QucHkiLCBsaW5lIDEwLCBpbiA/CiAg
ICBkYi5leGVjdXRlKCJTRUxFQ1QgKiBGUk9NIEZFTU1EX1BhcmFtZXRlcnMiKQogIEZpbGUg
Ii91c3IvbG9jYWwvcHViL2RtL2xpYi9weXRob24yLjEvc2l0ZS1wYWNrYWdlcy9TeWJhc2Uu
cHkiLCBsaW5lIDcyNywgaW4gZXhlY3V0ZQogICAgcmVzdWx0X2xpc3QgPSBzZWxmLl9mZXRj
aF9yZXN1bHRzKCkKICBGaWxlICIvdXNyL2xvY2FsL3B1Yi9kbS9saWIvcHl0aG9uMi4xL3Np
dGUtcGFja2FnZXMvU3liYXNlLnB5IiwgbGluZSA3NDUsIGluIF9mZXRjaF9yZXN1bHRzCiAg
ICBidWZzID0gX3Jvd19iaW5kKGNtZCwgc2VsZi5hcnJheXNpemUpCiAgRmlsZSAiL3Vzci9s
b2NhbC9wdWIvZG0vbGliL3B5dGhvbjIuMS9zaXRlLXBhY2thZ2VzL1N5YmFzZS5weSIsIGxp
bmUgMTU5LCBpbiBfcm93X2JpbmQKICAgIHN0YXR1cywgYnVmID0gY21kLmN0X2JpbmQoaSAr
IDEsIGZtdCkKTWVtb3J5RXJyb3IKY3RfY21kX2Ryb3AoY21kMSkgLT4gQ1NfU1VDQ0VFRApj
dF9jb25fcHJvcHMoY29ubjAsIENTX0dFVCwgQ1NfQ09OX1NUQVRVUywgJnZhbHVlLCBDU19V
TlVTRUQsIE5VTEwpIC0+IENTX1NVQ0NFRUQsIENTX0NPTlNUQVRfQ09OTkVDVEVECmN0X2Ns
b3NlKGNvbm4wLCBDU19PUFRfU1RBVFNfSU8pIC0+IENTX1NVQ0NFRUQKY3RfY29uX2Ryb3Ao
Y29ubjApIC0+IENTX1NVQ0NFRUQ=
--------------040503090804050403060501
Content-Type: application/x-java-vm;
 name="output2"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="output2"

c2xlZXB5PiBweXRob24gREJUZXN0LnB5CmN0X2Nvbl9hbGxvYyhjdHgwLCAmY29ubikgLT4g
Q1NfU1VDQ0VFRCwgY29ubjAKY3RfY29uX3Byb3BzKGNvbm4wLCBDU19TRVQsIENTX1VTRVJO
QU1FLCBVU0VSTkFNRSwgQ1NfTlVMTFRFUk0sIE5VTEwpIC0+IENTX1NVQ0NFRURjdF9jb25f
cHJvcHMoY29ubjAsIENTX1NFVCwgQ1NfUEFTU1dPUkQsIFBBU1NXT1JELCBDU19OVUxMVEVS
TSwgTlVMTCkgLT4gQ1NfU1VDQ0VFRApzZXJ2ZXJtc2dfY2IKc2VydmVybXNnX2NiCmN0X2Nv
bm5lY3QoY29ubjAsIFNFUlZFUk5BTUUsIENTX05VTExURVJNKSAtPiBDU19TVUNDRUVECmN0
X29wdGlvbnMoY29ubjAsIENTX1NFVCwgQ1NfT1BUX0NIQUlOWEFDVFMsIDEsIENTX1VOVVNF
RCwgTlVMTCkgLT4gQ1NfU1VDQ0VFRApjdF9jbWRfYWxsb2MoY29ubjAsICZjbWQpIC0+IENT
X1NVQ0NFRUQsIGNtZDAKY3RfY29tbWFuZChjbWQwLCBDU19MQU5HX0NNRCwgInVzZSBwaXBl
XzEiLCBDU19OVUxMVEVSTSwgQ1NfT1BUX0FVVEhPRkYpIC0+IENTX1NVQ0NFRUQKY3Rfc2Vu
ZChjbWQwKSAtPiBDU19TVUNDRUVECnNlcnZlcm1zZ19jYgpjdF9yZXN1bHRzKGNtZDAsICZy
ZXN1bHQpIC0+IENTX1NVQ0NFRUQsIENTX0NNRF9TVUNDRUVECmN0X3Jlc3VsdHMoY21kMCwg
JnJlc3VsdCkgLT4gQ1NfRU5EX1JFU1VMVFMsIENTX0NNRF9ET05FCmN0X2NtZF9kcm9wKGNt
ZDApIC0+IENTX1NVQ0NFRUQKY3RfY21kX2FsbG9jKGNvbm4wLCAmY21kKSAtPiBDU19TVUND
RUVELCBjbWQxCmN0X2NvbW1hbmQoY21kMSwgQ1NfTEFOR19DTUQsICJTRUxFQ1QgKiBGUk9N
IEZFTU1EX0F0b21pY0luZm8iLCBDU19OVUxMVEVSTSwgQ1NfT1BUX0FVVEhPRkYpIC0+IENT
X1NVQ0NFRUQKY3Rfc2VuZChjbWQxKSAtPiBDU19TVUNDRUVECmN0X3Jlc3VsdHMoY21kMSwg
JnJlc3VsdCkgLT4gQ1NfU1VDQ0VFRCwgQ1NfUk9XX1JFU1VMVApjdF9yZXNfaW5mbyhjbWQx
LCBDU19OVU1EQVRBLCAmdmFsdWUsIENTX1VOVVNFRCwgTlVMTCkgLT4gQ1NfU1VDQ0VFRCwg
OApjdF9kZXNjcmliZShjbWQxLCAxLCAmZm10KSAtPiBDU19TVUNDRUVELCBkYXRhZm10MD1b
bmFtZToiZ3VpZCIgdHlwZTpDU19GT1JDRV9DTE9TRSBzdGF0dXM6Q1NfRkFMU0UgZm9ybWF0
OkNTX0ZNVF9VTlVTRUQgY291bnQ6MSBtYXhsZW5ndGg6MTYgc2NhbGU6MCBwcmVjaXNpb246
MF0KY3RfYmluZChjbWQxLCAxLCAmZGF0YWZtdDAtPmZtdD1bbmFtZToiZ3VpZCIgdHlwZTpD
U19GT1JDRV9DTE9TRSBzdGF0dXM6Q1NfRkFMU0UgZm9ybWF0OkNTX0ZNVF9VTlVTRUQgY291
bnQ6MzIgbWF4bGVuZ3RoOjE2IHNjYWxlOjAgcHJlY2lzaW9uOjBdLCBkYXRhYnVmMC0+YnVm
ZiwgZGF0YWJ1ZjAtPmNvcGllZCwgZGF0YWJ1ZjAtPmluZGljYXRvcikgLT4gQ1NfU1VDQ0VF
RCwgZGF0YWJ1ZjAKY3RfZGVzY3JpYmUoY21kMSwgMiwgJmZtdCkgLT4gQ1NfU1VDQ0VFRCwg
ZGF0YWZtdDE9W25hbWU6InN0ZXAiIHR5cGU6Q1NfU01BTExJTlRfVFlQRSBzdGF0dXM6Q1Nf
RkFMU0UgZm9ybWF0OkNTX0ZNVF9VTlVTRUQgY291bnQ6MSBtYXhsZW5ndGg6MiBzY2FsZTow
IHByZWNpc2lvbjowXQpjdF9iaW5kKGNtZDEsIDIsICZkYXRhZm10MS0+Zm10PVtuYW1lOiJz
dGVwIiB0eXBlOkNTX1NNQUxMSU5UX1RZUEUgc3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpDU19G
TVRfVU5VU0VEIGNvdW50OjMyIG1heGxlbmd0aDoyIHNjYWxlOjAgcHJlY2lzaW9uOjBdLCBk
YXRhYnVmMS0+YnVmZiwgZGF0YWJ1ZjEtPmNvcGllZCwgZGF0YWJ1ZjEtPmluZGljYXRvcikg
LT4gQ1NfU1VDQ0VFRCwgZGF0YWJ1ZjEKY3RfZGVzY3JpYmUoY21kMSwgMywgJmZtdCkgLT4g
Q1NfU1VDQ0VFRCwgZGF0YWZtdDI9W25hbWU6ImF0b21JZHgiIHR5cGU6Q1NfSU5UX1RZUEUg
c3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpDU19GTVRfVU5VU0VEIGNvdW50OjEgbWF4bGVuZ3Ro
OjQgc2NhbGU6MCBwcmVjaXNpb246MF0KY3RfYmluZChjbWQxLCAzLCAmZGF0YWZtdDItPmZt
dD1bbmFtZToiYXRvbUlkeCIgdHlwZTpDU19JTlRfVFlQRSBzdGF0dXM6Q1NfRkFMU0UgZm9y
bWF0OkNTX0ZNVF9VTlVTRUQgY291bnQ6MzIgbWF4bGVuZ3RoOjQgc2NhbGU6MCBwcmVjaXNp
b246MF0sIGRhdGFidWYyLT5idWZmLCBkYXRhYnVmMi0+Y29waWVkLCBkYXRhYnVmMi0+aW5k
aWNhdG9yKSAtPiBDU19TVUNDRUVELCBkYXRhYnVmMgpjdF9kZXNjcmliZShjbWQxLCA0LCAm
Zm10KSAtPiBDU19TVUNDRUVELCBkYXRhZm10Mz1bbmFtZToieFBvcyIgdHlwZTpDU19GTE9B
VF9UWVBFIHN0YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDoxIG1h
eGxlbmd0aDo4IHNjYWxlOjAgcHJlY2lzaW9uOjBdY3RfYmluZChjbWQxLCA0LCAmZGF0YWZt
dDMtPmZtdD1bbmFtZToieFBvcyIgdHlwZTpDU19GTE9BVF9UWVBFIHN0YXR1czpDU19GQUxT
RSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDozMiBtYXhsZW5ndGg6OCBzY2FsZTowIHBy
ZWNpc2lvbjowXSwgZGF0YWJ1ZjMtPmJ1ZmYsIGRhdGFidWYzLT5jb3BpZWQsIGRhdGFidWYz
LT5pbmRpY2F0b3IpIC0+IENTX1NVQ0NFRUQsIGRhdGFidWYzCmN0X2Rlc2NyaWJlKGNtZDEs
IDUsICZmbXQpIC0+IENTX1NVQ0NFRUQsIGRhdGFmbXQ0PVtuYW1lOiJ5UG9zIiB0eXBlOkNT
X0ZMT0FUX1RZUEUgc3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpDU19GTVRfVU5VU0VEIGNvdW50
OjEgbWF4bGVuZ3RoOjggc2NhbGU6MCBwcmVjaXNpb246MF1jdF9iaW5kKGNtZDEsIDUsICZk
YXRhZm10NC0+Zm10PVtuYW1lOiJ5UG9zIiB0eXBlOkNTX0ZMT0FUX1RZUEUgc3RhdHVzOkNT
X0ZBTFNFIGZvcm1hdDpDU19GTVRfVU5VU0VEIGNvdW50OjMyIG1heGxlbmd0aDo4IHNjYWxl
OjAgcHJlY2lzaW9uOjBdLCBkYXRhYnVmNC0+YnVmZiwgZGF0YWJ1ZjQtPmNvcGllZCwgZGF0
YWJ1ZjQtPmluZGljYXRvcikgLT4gQ1NfU1VDQ0VFRCwgZGF0YWJ1ZjQKY3RfZGVzY3JpYmUo
Y21kMSwgNiwgJmZtdCkgLT4gQ1NfU1VDQ0VFRCwgZGF0YWZtdDU9W25hbWU6InpQb3MiIHR5
cGU6Q1NfRkxPQVRfVFlQRSBzdGF0dXM6Q1NfRkFMU0UgZm9ybWF0OkNTX0ZNVF9VTlVTRUQg
Y291bnQ6MSBtYXhsZW5ndGg6OCBzY2FsZTowIHByZWNpc2lvbjowXWN0X2JpbmQoY21kMSwg
NiwgJmRhdGFmbXQ1LT5mbXQ9W25hbWU6InpQb3MiIHR5cGU6Q1NfRkxPQVRfVFlQRSBzdGF0
dXM6Q1NfRkFMU0UgZm9ybWF0OkNTX0ZNVF9VTlVTRUQgY291bnQ6MzIgbWF4bGVuZ3RoOjgg
c2NhbGU6MCBwcmVjaXNpb246MF0sIGRhdGFidWY1LT5idWZmLCBkYXRhYnVmNS0+Y29waWVk
LCBkYXRhYnVmNS0+aW5kaWNhdG9yKSAtPiBDU19TVUNDRUVELCBkYXRhYnVmNQpjdF9kZXNj
cmliZShjbWQxLCA3LCAmZm10KSAtPiBDU19TVUNDRUVELCBkYXRhZm10Nj1bbmFtZToiY29u
c3RyYWluZWQiIHR5cGU6Q1NfQklUX1RZUEUgc3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpDU19G
TVRfVU5VU0VEIGNvdW50OjEgbWF4bGVuZ3RoOjEgc2NhbGU6MCBwcmVjaXNpb246MF0KY3Rf
YmluZChjbWQxLCA3LCAmZGF0YWZtdDYtPmZtdD1bbmFtZToiY29uc3RyYWluZWQiIHR5cGU6
Q1NfQklUX1RZUEUgc3RhdHVzOkNTX0ZBTFNFIGZvcm1hdDpDU19GTVRfVU5VU0VEIGNvdW50
OjMyIG1heGxlbmd0aDoxIHNjYWxlOjAgcHJlY2lzaW9uOjBdLCBkYXRhYnVmNi0+YnVmZiwg
ZGF0YWJ1ZjYtPmNvcGllZCwgZGF0YWJ1ZjYtPmluZGljYXRvcikgLT4gQ1NfU1VDQ0VFRCwg
ZGF0YWJ1ZjYKY3RfZGVzY3JpYmUoY21kMSwgOCwgJmZtdCkgLT4gQ1NfU1VDQ0VFRCwgZGF0
YWZtdDc9W25hbWU6ImVuZXJneSIgdHlwZTpDU19GTE9BVF9UWVBFIHN0YXR1czpDU19GQUxT
RSBmb3JtYXQ6Q1NfRk1UX1VOVVNFRCBjb3VudDoxIG1heGxlbmd0aDo4IHNjYWxlOjAgcHJl
Y2lzaW9uOjBdCmN0X2JpbmQoY21kMSwgOCwgJmRhdGFmbXQ3LT5mbXQ9W25hbWU6ImVuZXJn
eSIgdHlwZTpDU19GTE9BVF9UWVBFIHN0YXR1czpDU19GQUxTRSBmb3JtYXQ6Q1NfRk1UX1VO
VVNFRCBjb3VudDozMiBtYXhsZW5ndGg6OCBzY2FsZTowIHByZWNpc2lvbjowXSwgZGF0YWJ1
ZjctPmJ1ZmYsIGRhdGFidWY3LT5jb3BpZWQsIGRhdGFidWY3LT5pbmRpY2F0b3IpIC0+IENT
X1NVQ0NFRUQsIGRhdGFidWY3CmN0X2ZldGNoKGNtZDEsIENTX1VOVVNFRCwgQ1NfVU5VU0VE
LCBDU19VTlVTRUQsICZyb3dzX3JlYWQpIC0+IENTX1JPV19GQUlMLCAwClRyYWNlYmFjayAo
bW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICJEQlRlc3QucHkiLCBsaW5lIDEwLCBp
biA/CiAgICBkYi5leGVjdXRlKCJTRUxFQ1QgKiBGUk9NIEZFTU1EX0F0b21pY0luZm8iKQog
IEZpbGUgIi9hZnMvLm1zYy5jb3JuZWxsLmVkdS9pMzg2X2xpbnV4MjIvdXNyL2xvY2FsL3B1
Yi9kbS9saWIvcHl0aG9uMi4xL3NpdGUtcGFja2FnZXMvU3liYXNlLnB5IiwgbGluZSA3MzIs
IGluIGV4ZWN1dGUKICAgIHJlc3VsdF9saXN0ID0gc2VsZi5fZmV0Y2hfcmVzdWx0cygpCiAg
RmlsZSAiL2Fmcy8ubXNjLmNvcm5lbGwuZWR1L2kzODZfbGludXgyMi91c3IvbG9jYWwvcHVi
L2RtL2xpYi9weXRob24yLjEvc2l0ZS1wYWNrYWdlcy9TeWJhc2UucHkiLCBsaW5lIDc1MSwg
aW4gX2ZldGNoX3Jlc3VsdHMKICAgIGxvZ2ljYWxfcmVzdWx0ID0gc2VsZi5fZmV0Y2hfbG9n
aWNhbF9yZXN1bHQoYnVmcykKICBGaWxlICIvYWZzLy5tc2MuY29ybmVsbC5lZHUvaTM4Nl9s
aW51eDIyL3Vzci9sb2NhbC9wdWIvZG0vbGliL3B5dGhvbjIuMS9zaXRlLXBhY2thZ2VzL1N5
YmFzZS5weSIsIGxpbmUgNzYwLCBpbiBfZmV0Y2hfbG9naWNhbF9yZXN1bHQKICAgIHJvd3Mg
PSBfZmV0Y2hfcm93cyhjbWQsIGJ1ZnMpCiAgRmlsZSAiL2Fmcy8ubXNjLmNvcm5lbGwuZWR1
L2kzODZfbGludXgyMi91c3IvbG9jYWwvcHViL2RtL2xpYi9weXRob24yLjEvc2l0ZS1wYWNr
YWdlcy9TeWJhc2UucHkiLCBsaW5lIDE5NiwgaW4gX2ZldGNoX3Jvd3MKICAgIHJhaXNlIEVy
cm9yKCdjdF9mZXRjaCcpClN5YmFzZS5FcnJvcjogY3RfZmV0Y2gKY3RfY21kX2Ryb3AoY21k
MSkgLT4gQ1NfU1VDQ0VFRApjdF9jb25fcHJvcHMoY29ubjAsIENTX0dFVCwgQ1NfQ09OX1NU
QVRVUywgJnZhbHVlLCBDU19VTlVTRUQsIE5VTEwpIC0+IENTX1NVQ0NFRUQsIENTX0NPTlNU
QVRfQ09OTkVDVEVECmN0X2Nsb3NlKGNvbm4wLCBDU19PUFRfU1RBVFNfSU8pIC0+IENTX1NV
Q0NFRUQKY3RfY29uX2Ryb3AoY29ubjApIC0+IENTX1NVQ0NFRUQK
--------------040503090804050403060501--