Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:14311 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 71486 invoked by uid 1010); 7 Jan 2005 17:02:26 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 71347 invoked from network); 7 Jan 2005 17:02:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Jan 2005 17:02:24 -0000 X-Host-Fingerprint: 209.210.237.59 odbcrouter.com Linux 2.2 (1) Received: from ([209.210.237.59:1704] helo=odbcrouter.com) by pb1.pair.com (ecelerity HEAD (r4049:4050)) with SMTP id EB/A2-64113-B90CED14 for ; Fri, 07 Jan 2005 12:02:21 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by odbcrouter.com (8.12.9/8.12.8) with ESMTP id j07H2BjH018451 for ; Fri, 7 Jan 2005 09:02:11 -0800 Date: Fri, 7 Jan 2005 09:02:12 -0800 (PST) To: internals@lists.php.net Message-ID: X-No-archive: yes MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1813375000-1105117332=:1403" Subject: [PATCH] --with-ODBCRouter (database networking) From: listmaster@augsoft.com (AugSoft) --0-1813375000-1105117332=:1403 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi, + This patch enables PHP's ODBC extension on certain non-Windows platforms (Linux, Mac OS X, etc.) to transparently interact with any of the data sources listed in the SystemDSN property-tab of the "Data Sources (ODBC) Control Panel" on a networked Windows NT4/2K/XP box running our ODBC Router. Once installed, the PHP scripts will appear to be fully-supported Windows applications to virtually any data source while the data sources themselves, which may be on mainframe, mini, *NIX, Mac or Windows, will appear to be local to the PHP script. All database communication takes place transparently, via high-performance binary TCP/IP connections (not XML, TELNET, etc.) This technology was introduced in 1995 and the product system is in use by FORTUNE 500 companies and at sites across Asia, Canada, Europe, Oceania and the US. + Once applied, support for ODBCRouter may be compiled into PHP 4.3 by simply adding "--with-ODBCRouter" to the configure command. The only pre-compile-time configuration required is to install our free runtime library. The only post-compile configuration required is to specify the IP address of the PC running ODBC Router in /etc/odbcrouter.conf (at which point, all DSNs on that PC may be referenced from within local PHP scripts). + Currently, ODBC Router users with PHP 4.3.10 on Linux-X86 follow these procedures: # rpm -ivh http://odbcrouter.com/m/linux-x86 # rpm -qi iodbc.net (instructions) + However, attached to this message are two patch files, one for the current 4.3.10 release (also distributed in the above RPM) and one for the current cvs release (as of the date of this message) for incorporation into the main-line code base. + ODBC Router client components, such as the iodbc.net runtime library for Linux, are freely distributable. Interested parties may also download evaluation ODBC Router servers from http://odbcrouter.com/downloadns.shtml + Official PHP developers and the first 100 significant code contributors may receive a complimentary (no charge) ODBC Router server for their NT4/2K/XP box by e-mailing us with enough info for us to confirm their actual project participation. Very Kind Regards, August Software --0-1813375000-1105117332=:1403 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="php_4.3_cvs_odbc_router.patch" Content-Transfer-Encoding: BASE64 Content-Description: ODBC Router for PHP 4.3.10 Content-Disposition: attachment; filename="php_4.3_cvs_odbc_router.patch" ZGlmZiAtY3IgLi4vcGhwLXNyYy9leHQvb2RiYy9jb25maWcubTQgb2RiY19t b2RpZmllZF9jdnMvY29uZmlnLm00DQoqKiogLi4vcGhwLXNyYy9leHQvb2Ri Yy9jb25maWcubTQJMjAwNC0xMi0yOSAyMzowMjoxOC4wMDAwMDAwMDAgLTA4 MDANCi0tLSBvZGJjX21vZGlmaWVkX2N2cy9jb25maWcubTQJMjAwNS0wMS0w NyAwNzo0OTo0Mi44MzgyMjA4NTQgLTA4MDANCioqKioqKioqKioqKioqKg0K KioqIDIxMCwyMTUgKioqKg0KLS0tIDIxMCwyNDIgLS0tLQ0KICBmaQ0KICAN CiAgaWYgdGVzdCAteiAiJE9EQkNfVFlQRSI7IHRoZW4NCisgQUNfTVNHX0NI RUNLSU5HKGZvciBPREJDUm91dGVyLmNvbSBzdXBwb3J0KQ0KKyBBQ19BUkdf V0lUSChPREJDUm91dGVyLA0KKyBbICAtLXdpdGgtT0RCQ1JvdXRlcls9RElS XSAgIEluY2x1ZGUgT0RCQ1JvdXRlci5jb20gc3VwcG9ydC4gIERJUiBpcyBP REJDUm91dGVyIGJhc2UNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnN0YWxsIGRpcmVjdG9yeSwgZGVmYXVsdHMgdG8gL3Vzci5dLA0KKyBb DQorICAgUEhQX1dJVEhfU0hBUkVEDQorICAgaWYgdGVzdCAiJHdpdGh2YWwi ID0gInllcyI7IHRoZW4NCisgICAgIHdpdGh2YWw9L3Vzcg0KKyAgIGZpDQor ICAgaWYgdGVzdCAiJHdpdGh2YWwiICE9ICJubyI7IHRoZW4NCisgICAgIE9E QkNfSU5DRElSPSR3aXRodmFsL2luY2x1ZGUNCisgICAgIE9EQkNfTElCRElS PSR3aXRodmFsL2xpYg0KKyAgICAgT0RCQ19MRkxBR1M9LUwkT0RCQ19MSUJE SVINCisgICAgIE9EQkNfSU5DTFVERT0tSSRPREJDX0lOQ0RJUg0KKyAgICAg T0RCQ19MSUJTPS1sb2RiY3Nkaw0KKyAgICAgT0RCQ19UWVBFPU9EQkNSb3V0 ZXINCisgICAgIEFDX0RFRklORShIQVZFX09EQkNfUk9VVEVSLDEsWyBdKQ0K KyAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpDQorICAgZWxzZQ0KKyAgICAgQUNf TVNHX1JFU1VMVChubykNCisgICBmaQ0KKyBdLFsNCisgICBBQ19NU0dfUkVT VUxUKG5vKQ0KKyBdKQ0KKyBmaQ0KKyANCisgaWYgdGVzdCAteiAiJE9EQkNf VFlQRSI7IHRoZW4NCiAgQUNfTVNHX0NIRUNLSU5HKGZvciBFbXByZXNzIHN1 cHBvcnQpDQogIEFDX0FSR19XSVRIKGVtcHJlc3MsDQogIFsgIC0td2l0aC1l bXByZXNzWz1ESVJdICAgIEluY2x1ZGUgRW1wcmVzcyBzdXBwb3J0LiAgRElS IGlzIHRoZSBFbXByZXNzIGJhc2UNCk9ubHkgaW4gLi4vcGhwLXNyYy9leHQv b2RiYzogQ1ZTDQpPbmx5IGluIC4uL3BocC1zcmMvZXh0L29kYmM6IC5jdnNp Z25vcmUNCmRpZmYgLWNyIC4uL3BocC1zcmMvZXh0L29kYmMvcGhwX29kYmMu YyBvZGJjX21vZGlmaWVkX2N2cy9waHBfb2RiYy5jDQoqKiogLi4vcGhwLXNy Yy9leHQvb2RiYy9waHBfb2RiYy5jCTIwMDQtMDYtMTcgMTc6NDQ6NDAuMDAw MDAwMDAwIC0wNzAwDQotLS0gb2RiY19tb2RpZmllZF9jdnMvcGhwX29kYmMu YwkyMDA1LTAxLTA3IDA3OjQ2OjI3LjIyMTAyOTE1MSAtMDgwMA0KKioqKioq KioqKioqKioqDQoqKiogMjA3MiwyMDc3ICoqKioNCi0tLSAyMDcyLDIxMTgg LS0tLQ0KICAJU1FMU2V0Q29ubmVjdE9wdGlvbigoKmNvbm4pLT5oZGJjLCBT UUxfVFJBTlNMQVRFX09QVElPTiwNCiAgCQkJU1FMX1NPTElEX1hMQVRPUFRf Tk9DTlYpOw0KICAjZW5kaWYNCisgI2lmZGVmIEhBVkVfT0RCQ19ST1VURVIN CisgCXsNCisgI2RlZmluZSBDT05OU1RSU0laRSAyMDQ4DQorIAkgY2hhciAq bHBzekNvbm5TdHIgPSBlbWFsbG9jKENPTk5TVFJTSVpFKTsNCisgCSBpZiAo bHBzekNvbm5TdHIgJiYgZGIpIHsNCisgCQkgc2hvcnQgY2JzekNvbm5TdHI7 DQorIAkJIGlmIChzdHJzdHIoZGIsICI7IikpIHsNCisgCQkJIC8qIHRoZSBj YWxsZXIgaGFzIGFwcGFyZW50bHkgcGFzc2VkIGEgY29ubmVjdGlvbi1zdHJp bmcgKi8NCisgCQkJIGlmIChzdHJzdHIoZGIsICJ1aWQiKSB8fCBzdHJzdHIo ZGIsICJVSUQiKSkgew0KKyAJCQkJIHVpZCA9IE5VTEw7DQorIAkJCSB9DQor IAkJCSBpZiAoc3Ryc3RyKGRiLCAicHdkIikgfHwgc3Ryc3RyKGRiLCAiUFdE IikpIHsNCisgCQkJCSBwd2QgPSBOVUxMOw0KKyAJCQkgfQ0KKyAJCQkgc3Ry bmNweSggbHBzekNvbm5TdHIsIGRiLCBDT05OU1RSU0laRSk7DQorIAkJIH0N CisgCQkgZWxzZSB7DQorIAkJCSBzdHJjcHkobHBzekNvbm5TdHIsICJEU049 Iik7DQorIAkJCSBzdHJjYXQobHBzekNvbm5TdHIsIGRiKTsNCisgCQkgfQ0K KyAJCSBpZiAodWlkKSB7DQorIAkJCSBpZiAodWlkWzBdKSB7DQorIAkJCQkg c3RyY2F0KGxwc3pDb25uU3RyLCAiO1VJRD0iKTsNCisgCQkJCSBzdHJjYXQo bHBzekNvbm5TdHIsIHVpZCk7DQorIAkJCQkgc3RyY2F0KGxwc3pDb25uU3Ry LCAiOyIpOw0KKyAJCQkgfQ0KKyAJCQkgaWYgKHB3ZCkgew0KKyAJCQkJIGlm IChwd2RbMF0pIHsNCisgCQkJCQkgc3RyY2F0KGxwc3pDb25uU3RyLCAiUFdE PSIpOw0KKyAJCQkJCSBzdHJjYXQobHBzekNvbm5TdHIsIHB3ZCk7DQorIAkJ CQkJIHN0cmNhdChscHN6Q29ublN0ciwgIjsiKTsNCisgCQkJCSB9DQorIAkJ CSB9DQorIAkJIH0NCisgCQkgcmMgPSBTUUxEcml2ZXJDb25uZWN0KCgqY29u biktPmhkYmMsIE5VTEwsIGxwc3pDb25uU3RyLCBTUUxfTlRTLA0KKyAJCQkJ CQkJICAgbHBzekNvbm5TdHIsIENPTk5TVFJTSVpFLCAmY2JzekNvbm5TdHIs DQorIAkJCQkJCQkgICBTUUxfRFJJVkVSX05PUFJPTVBUKTsNCisgCQkgZWZy ZWUobHBzekNvbm5TdHIpOw0KKyAJIH0NCisgCX0NCisgI2Vsc2UNCiAgI2lm ZGVmIEhBVkVfT1BFTkxJTksNCiAgCXsNCiAgCQljaGFyIGRzbmJ1ZlsxMDI0 XTsNCioqKioqKioqKioqKioqKg0KKioqIDIxMzAsMjEzNSAqKioqDQotLS0g MjE3MSwyMTc3IC0tLS0NCiAgCXJjID0gU1FMQ29ubmVjdCgoKmNvbm4pLT5o ZGJjLCBkYiwgU1FMX05UUywgdWlkLCBTUUxfTlRTLCBwd2QsIFNRTF9OVFMp Ow0KICAjZW5kaWYNCiAgI2VuZGlmDQorICNlbmRpZg0KICAJaWYgKHJjICE9 IFNRTF9TVUNDRVNTICYmIHJjICE9IFNRTF9TVUNDRVNTX1dJVEhfSU5GTykg ew0KICAJCW9kYmNfc3FsX2Vycm9yKCpjb25uLCBTUUxfTlVMTF9IU1RNVCwg IlNRTENvbm5lY3QiKTsNCiAgCQlTUUxGcmVlQ29ubmVjdCgoKmNvbm4pLT5o ZGJjKTsNCmRpZmYgLWNyIC4uL3BocC1zcmMvZXh0L29kYmMvcGhwX29kYmNf aW5jbHVkZXMuaCBvZGJjX21vZGlmaWVkX2N2cy9waHBfb2RiY19pbmNsdWRl cy5oDQoqKiogLi4vcGhwLXNyYy9leHQvb2RiYy9waHBfb2RiY19pbmNsdWRl cy5oCTIwMDMtMDctMTQgMDk6MTM6MzAuMDAwMDAwMDAwIC0wNzAwDQotLS0g b2RiY19tb2RpZmllZF9jdnMvcGhwX29kYmNfaW5jbHVkZXMuaAkyMDA1LTAx LTA3IDA3OjQ2OjE1LjAwNzAxMzIzNiAtMDgwMA0KKioqKioqKioqKioqKioq DQoqKiogMTI2LDEzMSAqKioqDQotLS0gMTI2LDE0NSAtLS0tDQogICNpbmNs dWRlIDxzcWxleHQuaD4NCiAgI2RlZmluZSBIQVZFX1NRTF9FWFRFTkRFRF9G RVRDSCAxDQogIA0KKyAjZWxpZiBkZWZpbmVkKEhBVkVfT0RCQ19ST1VURVIp IC8qIE9EQkNSb3V0ZXIuY29tICovDQorIA0KKyAjaWZkZWYgQ0hBUg0KKyAj dW5kZWYgQ0hBUg0KKyAjZW5kaWYNCisgDQorICNpZmRlZiBTUUxDSEFSDQor ICN1bmRlZiBTUUxDSEFSDQorICNlbmRpZg0KKyANCisgI2RlZmluZSBPREJD X1RZUEUgIk9EQkNSb3V0ZXIiDQorICNpbmNsdWRlIDxvZGJjc2RrLmg+DQor ICN1bmRlZiBIQVZFX1NRTF9FWFRFTkRFRF9GRVRDSA0KKyANCiAgI2VsaWYg ZGVmaW5lZChIQVZFX09QRU5MSU5LKSAvKiBPcGVuTGluayBPREJDIGRyaXZl cnMgKi8NCiAgDQogICNkZWZpbmUgT0RCQ19UWVBFICJPcGVubGluayINCg== --0-1813375000-1105117332=:1403 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="php_4.3.10_odbc_router.patch" Content-Transfer-Encoding: BASE64 Content-Description: ODBC Router for PHP 4.3 CVS Content-Disposition: attachment; filename="php_4.3.10_odbc_router.patch" ZGlmZiAtY3IgLi4vcGhwLTQuMy4xMC9leHQvb2RiYy9jb25maWcubTQgb2Ri Y19tb2RpZmllZF80LjMuMTAvY29uZmlnLm00DQoqKiogLi4vcGhwLTQuMy4x MC9leHQvb2RiYy9jb25maWcubTQJMjAwMy0xMS0yNSAwMDowODozMC4wMDAw MDAwMDAgLTA4MDANCi0tLSBvZGJjX21vZGlmaWVkXzQuMy4xMC9jb25maWcu bTQJMjAwNS0wMS0wNCAwMzozNzozMS4wMDAwMDAwMDAgLTA4MDANCioqKioq KioqKioqKioqKg0KKioqIDIxMCwyMTUgKioqKg0KLS0tIDIxMCwyNDIgLS0t LQ0KICBmaQ0KICANCiAgaWYgdGVzdCAteiAiJE9EQkNfVFlQRSI7IHRoZW4N CisgQUNfTVNHX0NIRUNLSU5HKGZvciBPREJDUm91dGVyLmNvbSBzdXBwb3J0 KQ0KKyBBQ19BUkdfV0lUSChPREJDUm91dGVyLA0KKyBbICAtLXdpdGgtT0RC Q1JvdXRlcls9RElSXSAgIEluY2x1ZGUgT0RCQ1JvdXRlciBzdXBwb3J0LiAg RElSIGlzIHRoZSBPREJDUm91dGVyIGJhc2UNCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnN0YWxsIGRpcmVjdG9yeSwgZGVmYXVsdHMgdG8g L3Vzci5dLA0KKyBbDQorICAgUEhQX1dJVEhfU0hBUkVEDQorICAgaWYgdGVz dCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4NCisgICAgIHdpdGh2YWw9L3Vz cg0KKyAgIGZpDQorICAgaWYgdGVzdCAiJHdpdGh2YWwiICE9ICJubyI7IHRo ZW4NCisgICAgIE9EQkNfSU5DRElSPSR3aXRodmFsL2luY2x1ZGUNCisgICAg IE9EQkNfTElCRElSPSR3aXRodmFsL2xpYg0KKyAgICAgT0RCQ19MRkxBR1M9 LUwkT0RCQ19MSUJESVINCisgICAgIE9EQkNfSU5DTFVERT0tSSRPREJDX0lO Q0RJUg0KKyAgICAgT0RCQ19MSUJTPS1sb2RiY3Nkaw0KKyAgICAgT0RCQ19U WVBFPU9EQkNSb3V0ZXINCisgICAgIEFDX0RFRklORShIQVZFX09EQkNfUk9V VEVSLDEsWyBdKQ0KKyAgICAgQUNfTVNHX1JFU1VMVCh5ZXMpDQorICAgZWxz ZQ0KKyAgICAgQUNfTVNHX1JFU1VMVChubykNCisgICBmaQ0KKyBdLFsNCisg ICBBQ19NU0dfUkVTVUxUKG5vKQ0KKyBdKQ0KKyBmaQ0KKyANCisgaWYgdGVz dCAteiAiJE9EQkNfVFlQRSI7IHRoZW4NCiAgQUNfTVNHX0NIRUNLSU5HKGZv ciBFbXByZXNzIHN1cHBvcnQpDQogIEFDX0FSR19XSVRIKGVtcHJlc3MsDQog IFsgIC0td2l0aC1lbXByZXNzWz1ESVJdICAgIEluY2x1ZGUgRW1wcmVzcyBz dXBwb3J0LiAgRElSIGlzIHRoZSBFbXByZXNzIGJhc2UNCmRpZmYgLWNyIC4u L3BocC00LjMuMTAvZXh0L29kYmMvcGhwX29kYmMuYyBvZGJjX21vZGlmaWVk XzQuMy4xMC9waHBfb2RiYy5jDQoqKiogLi4vcGhwLTQuMy4xMC9leHQvb2Ri Yy9waHBfb2RiYy5jCTIwMDQtMDYtMTcgMTc6NDQ6NDAuMDAwMDAwMDAwIC0w NzAwDQotLS0gb2RiY19tb2RpZmllZF80LjMuMTAvcGhwX29kYmMuYwkyMDA1 LTAxLTA0IDAzOjQyOjA3LjAwMDAwMDAwMCAtMDgwMA0KKioqKioqKioqKioq KioqDQoqKiogMjA3MiwyMDc3ICoqKioNCi0tLSAyMDcyLDIxMTggLS0tLQ0K ICAJU1FMU2V0Q29ubmVjdE9wdGlvbigoKmNvbm4pLT5oZGJjLCBTUUxfVFJB TlNMQVRFX09QVElPTiwNCiAgCQkJU1FMX1NPTElEX1hMQVRPUFRfTk9DTlYp Ow0KICAjZW5kaWYNCisgI2lmZGVmIEhBVkVfT0RCQ19ST1VURVINCisgCXsN CisgI2RlZmluZSBDT05OU1RSU0laRSAyMDQ4DQorIAkgY2hhciAqbHBzekNv bm5TdHIgPSBlbWFsbG9jKENPTk5TVFJTSVpFKTsNCisgCSBpZiAobHBzekNv bm5TdHIgJiYgZGIpIHsNCisgCQkgc2hvcnQgY2JzekNvbm5TdHI7DQorIAkJ IGlmIChzdHJzdHIoZGIsICI7IikpIHsNCisgCQkJIC8qIHRoZSBjYWxsZXIg aGFzIGFwcGFyZW50bHkgcGFzc2VkIGEgY29ubmVjdGlvbi1zdHJpbmcgKi8N CisgCQkJIGlmIChzdHJzdHIoZGIsICJ1aWQiKSB8fCBzdHJzdHIoZGIsICJV SUQiKSkgew0KKyAJCQkJIHVpZCA9IE5VTEw7DQorIAkJCSB9DQorIAkJCSBp ZiAoc3Ryc3RyKGRiLCAicHdkIikgfHwgc3Ryc3RyKGRiLCAiUFdEIikpIHsN CisgCQkJCSBwd2QgPSBOVUxMOw0KKyAJCQkgfQ0KKyAJCQkgc3RybmNweSgg bHBzekNvbm5TdHIsIGRiLCBDT05OU1RSU0laRSk7DQorIAkJIH0NCisgCQkg ZWxzZSB7DQorIAkJCSBzdHJjcHkobHBzekNvbm5TdHIsICJEU049Iik7DQor IAkJCSBzdHJjYXQobHBzekNvbm5TdHIsIGRiKTsNCisgCQkgfQ0KKyAJCSBp ZiAodWlkKSB7DQorIAkJCSBpZiAodWlkWzBdKSB7DQorIAkJCQkgc3RyY2F0 KGxwc3pDb25uU3RyLCAiO1VJRD0iKTsNCisgCQkJCSBzdHJjYXQobHBzekNv bm5TdHIsIHVpZCk7DQorIAkJCQkgc3RyY2F0KGxwc3pDb25uU3RyLCAiOyIp Ow0KKyAJCQkgfQ0KKyAJCQkgaWYgKHB3ZCkgew0KKyAJCQkJIGlmIChwd2Rb MF0pIHsNCisgCQkJCQkgc3RyY2F0KGxwc3pDb25uU3RyLCAiUFdEPSIpOw0K KyAJCQkJCSBzdHJjYXQobHBzekNvbm5TdHIsIHB3ZCk7DQorIAkJCQkJIHN0 cmNhdChscHN6Q29ublN0ciwgIjsiKTsNCisgCQkJCSB9DQorIAkJCSB9DQor IAkJIH0NCisgCQkgcmMgPSBTUUxEcml2ZXJDb25uZWN0KCgqY29ubiktPmhk YmMsIE5VTEwsIGxwc3pDb25uU3RyLCBTUUxfTlRTLA0KKyAJCQkJCQkJICAg bHBzekNvbm5TdHIsIENPTk5TVFJTSVpFLCAmY2JzekNvbm5TdHIsDQorIAkJ CQkJCQkgICBTUUxfRFJJVkVSX05PUFJPTVBUKTsNCisgCQkgZWZyZWUobHBz ekNvbm5TdHIpOw0KKyAJIH0NCisgCX0NCisgI2Vsc2UNCiAgI2lmZGVmIEhB VkVfT1BFTkxJTksNCiAgCXsNCiAgCQljaGFyIGRzbmJ1ZlsxMDI0XTsNCioq KioqKioqKioqKioqKg0KKioqIDIxMzAsMjEzNSAqKioqDQotLS0gMjE3MSwy MTc3IC0tLS0NCiAgCXJjID0gU1FMQ29ubmVjdCgoKmNvbm4pLT5oZGJjLCBk YiwgU1FMX05UUywgdWlkLCBTUUxfTlRTLCBwd2QsIFNRTF9OVFMpOw0KICAj ZW5kaWYNCiAgI2VuZGlmDQorICNlbmRpZg0KICAJaWYgKHJjICE9IFNRTF9T VUNDRVNTICYmIHJjICE9IFNRTF9TVUNDRVNTX1dJVEhfSU5GTykgew0KICAJ CW9kYmNfc3FsX2Vycm9yKCpjb25uLCBTUUxfTlVMTF9IU1RNVCwgIlNRTENv bm5lY3QiKTsNCiAgCQlTUUxGcmVlQ29ubmVjdCgoKmNvbm4pLT5oZGJjKTsN CmRpZmYgLWNyIC4uL3BocC00LjMuMTAvZXh0L29kYmMvcGhwX29kYmNfaW5j bHVkZXMuaCBvZGJjX21vZGlmaWVkXzQuMy4xMC9waHBfb2RiY19pbmNsdWRl cy5oDQoqKiogLi4vcGhwLTQuMy4xMC9leHQvb2RiYy9waHBfb2RiY19pbmNs dWRlcy5oCTIwMDMtMDctMTQgMDk6MTM6MzAuMDAwMDAwMDAwIC0wNzAwDQot LS0gb2RiY19tb2RpZmllZF80LjMuMTAvcGhwX29kYmNfaW5jbHVkZXMuaAky MDA1LTAxLTA0IDAzOjQwOjAwLjAwMDAwMDAwMCAtMDgwMA0KKioqKioqKioq KioqKioqDQoqKiogMTI2LDEzMSAqKioqDQotLS0gMTI2LDE0NSAtLS0tDQog ICNpbmNsdWRlIDxzcWxleHQuaD4NCiAgI2RlZmluZSBIQVZFX1NRTF9FWFRF TkRFRF9GRVRDSCAxDQogIA0KKyAjZWxpZiBkZWZpbmVkKEhBVkVfT0RCQ19S T1VURVIpIC8qIE9EQkNSb3V0ZXIuY29tICovDQorIA0KKyAjaWZkZWYgQ0hB Ug0KKyAjdW5kZWYgQ0hBUg0KKyAjZW5kaWYNCisgDQorICNpZmRlZiBTUUxD SEFSDQorICN1bmRlZiBTUUxDSEFSDQorICNlbmRpZg0KKyANCisgI2RlZmlu ZSBPREJDX1RZUEUgIk9EQkNSb3V0ZXIiDQorICNpbmNsdWRlIDxvZGJjc2Rr Lmg+DQorICN1bmRlZiBIQVZFX1NRTF9FWFRFTkRFRF9GRVRDSA0KKyANCiAg I2VsaWYgZGVmaW5lZChIQVZFX09QRU5MSU5LKSAvKiBPcGVuTGluayBPREJD IGRyaXZlcnMgKi8NCiAgDQogICNkZWZpbmUgT0RCQ19UWVBFICJPcGVubGlu ayINCg== --0-1813375000-1105117332=:1403--