Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:26644 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 70712 invoked by uid 1010); 16 Nov 2006 15:46:30 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 70681 invoked from network); 16 Nov 2006 15:46:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Nov 2006 15:46:29 -0000 Authentication-Results: pb1.pair.com header.from=wolfshoehle@googlemail.com; sender-id=pass; domainkeys=good Authentication-Results: pb1.pair.com smtp.mail=wolfshoehle@googlemail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain googlemail.com designates 66.249.82.238 as permitted sender) DomainKey-Status: good X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: wolfshoehle@googlemail.com X-Host-Fingerprint: 66.249.82.238 wx-out-0506.google.com Linux 2.4/2.6 Received: from [66.249.82.238] ([66.249.82.238:30986] helo=wx-out-0506.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 38/F7-01084-9C78C554 for ; Thu, 16 Nov 2006 10:46:27 -0500 Received: by wx-out-0506.google.com with SMTP id i27so682084wxd for ; Thu, 16 Nov 2006 07:45:36 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=googlemail.com; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:references; b=O6zJcID441jjJitJWhRdbY3yfAyUJDOAM9SEszRFSMpx9sJywkRlytb5qLUEUibbgIcYRnnviZTp2DiU08EVANefD1TIxsnBs63ttfbygnypxRlVX2dmnJyz/08FxJ/lhg/23+XyaUZImh7TBJNwE3rzIBAYvEm6E+QK3h8TA1s= Received: by 10.90.25.7 with SMTP id 7mr473668agy.1163691936429; Thu, 16 Nov 2006 07:45:36 -0800 (PST) Received: by 10.90.93.12 with HTTP; Thu, 16 Nov 2006 07:45:36 -0800 (PST) Message-ID: <9bb5e33f0611160745i4ef015e7i16933d7a4904a6ff@mail.gmail.com> Date: Thu, 16 Nov 2006 16:45:36 +0100 To: "Wez Furlong" Cc: internals@lists.php.net In-Reply-To: <9bb5e33f0611160721l6676cbe5ud0185127fad03402@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_22193_19442122.1163691936304" References: <9bb5e33f0611160505u2ac2b1dbt1b04feea4314331c@mail.gmail.com> <4e89b4260611160629o1855ed28pf37139f1576fa99b@mail.gmail.com> <9bb5e33f0611160721l6676cbe5ud0185127fad03402@mail.gmail.com> Subject: Re: [PHP-DEV] Enable authorizer-feature in PDO_SQLITE From: wolfshoehle@googlemail.com ("Mario Wolff") ------=_Part_22193_19442122.1163691936304 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline 2006/11/16, Mario Wolff : > 2006/11/16, Wez Furlong : > > I suggest that you adjust your patch to cache the function callback > > information in the pdo_dbh_t to reduce some of that overhead, and run > > some benchmarks for a simple authorizer function in PHP that always > > returns true vs the same script with no authorizer, so that we get a > > feel for what kind of impact that has for various common queries. > > Is the pdo_sqlite_db_handle not the better place to store? I'm not so > deep in the architecture to decide! New patches attached! static-stuff removed. user_authorizer cleanup done. > > --Wez. > ------=_Part_22193_19442122.1163691936304 Content-Type: text/x-patch; name=php_pdo_sqlite_int.h.diff; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_eulbt895 Content-Disposition: attachment; filename="php_pdo_sqlite_int.h.diff" LS0tIHBocC01LjIuMC9leHQvcGRvX3NxbGl0ZS9waHBfcGRvX3NxbGl0ZV9pbnQuaAkyMDA2LTAx LTAxIDEzOjUwOjEyLjAwMDAwMDAwMCArMDEwMAorKysgcGhwLTUuMi4wLW5ldy9leHQvcGRvX3Nx bGl0ZS9waHBfcGRvX3NxbGl0ZV9pbnQuaAkyMDA2LTExLTE2IDE2OjIyOjM2LjYwNTY4MzUxMiAr MDEwMApAQCAtNDksNiArNDksNyBAQAogdHlwZWRlZiBzdHJ1Y3QgewogCXNxbGl0ZTMgKmRiOwog CXBkb19zcWxpdGVfZXJyb3JfaW5mbyBlaW5mbzsKKyAgICB6dmFsICp1c2VyX2F1dGhvcml6ZXI7 CiAJc3RydWN0IHBkb19zcWxpdGVfZnVuYyAqZnVuY3M7CiB9IHBkb19zcWxpdGVfZGJfaGFuZGxl OwogCg== ------=_Part_22193_19442122.1163691936304 Content-Type: text/x-patch; name=sqlite_driver.c.diff; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_eulc2tqj Content-Disposition: attachment; filename="sqlite_driver.c.diff" LS0tIHBocC01LjIuMC9leHQvcGRvX3NxbGl0ZS9zcWxpdGVfZHJpdmVyLmMJMjAwNi0wOS0xNiAy MDozMDowMy4wMDAwMDAwMDAgKzAyMDAKKysrIHBocC01LjIuMC1uZXcvZXh0L3Bkb19zcWxpdGUv c3FsaXRlX2RyaXZlci5jCTIwMDYtMTEtMTYgMTY6NDI6NTcuNjYwMDU1MDMyICswMTAwCkBAIC0z MSw2ICszMSw4IEBACiAjaW5jbHVkZSAicGhwX3Bkb19zcWxpdGVfaW50LmgiCiAjaW5jbHVkZSAi emVuZF9leGNlcHRpb25zLmgiCiAKK3N0YXRpYyBpbnQgYXV0aG9yaXplcih2b2lkICphdXRoYXJn LCBpbnQgYWNjZXNzX3R5cGUsIGNvbnN0IGNoYXIgKmFyZzMsIGNvbnN0IGNoYXIgKmFyZzQsCisJ CWNvbnN0IGNoYXIgKmFyZzUsIGNvbnN0IGNoYXIgKmFyZzYpOwogaW50IF9wZG9fc3FsaXRlX2Vy cm9yKHBkb19kYmhfdCAqZGJoLCBwZG9fc3RtdF90ICpzdG10LCBjb25zdCBjaGFyICpmaWxlLCBp bnQgbGluZSBUU1JNTFNfREMpIC8qIHt7eyAqLwogewogCXBkb19zcWxpdGVfZGJfaGFuZGxlICpI ID0gKHBkb19zcWxpdGVfZGJfaGFuZGxlICopZGJoLT5kcml2ZXJfZGF0YTsKQEAgLTU5Myw5ICs1 OTUsNjAgQEAKIAlSRVRVUk5fRkFMU0U7CiB9CiAvKiB9fX0gKi8KKworLyoge3t7IGJvb2wgU1FM aXRlOjpzcWxpdGVTZXRBdXRob3JpemVyKHN0cmluZyBuYW1lLCBtaXhlZCBjYWxsYmFjayBbLCBp bnQgYXJnY291bnRdKQorICAgUmVnaXN0ZXJzIGEgVURGIHdpdGggdGhlIHNxbGl0ZSBkYiBoYW5k bGUgKi8KK3N0YXRpYyBQSFBfTUVUSE9EKFNRTGl0ZSwgc3FsaXRlU2V0QXV0aG9yaXplcikKK3sK Kwl6dmFsICp1c2VyX2F1dGhvcml6ZXI9TlVMTDsgCisJc3RydWN0IHBkb19zcWxpdGVfZnVuYyAq ZnVuYzsKKwl6dmFsICpjYWxsYmFjaz1OVUxMOworCWNoYXIgKmNibmFtZSA9IE5VTEw7CisJcGRv X2RiaF90ICpkYmg7CisJcGRvX3NxbGl0ZV9kYl9oYW5kbGUgKkg7CisJaW50IHJldDsKKworCWlm IChGQUlMVVJFID09IHplbmRfcGFyc2VfcGFyYW1ldGVycyhaRU5EX05VTV9BUkdTKCkgVFNSTUxT X0NDLCAifHoiLAorCQkJJmNhbGxiYWNrKSkgeworCQlSRVRVUk5fRkFMU0U7CisJfQorCisJZGJo ID0gemVuZF9vYmplY3Rfc3RvcmVfZ2V0X29iamVjdChnZXRUaGlzKCkgVFNSTUxTX0NDKTsKKwlQ RE9fQ09OU1RSVUNUX0NIRUNLOworCUggPSAocGRvX3NxbGl0ZV9kYl9oYW5kbGUgKilkYmgtPmRy aXZlcl9kYXRhOworCisJaWYoIGNhbGxiYWNrPT1OVUxMIHx8IGNhbGxiYWNrLT50eXBlID09IElT X1NUUklORyAmJiAhIHN0cmNtcChjYWxsYmFjay0+dmFsdWUuc3RyLnZhbCwiIikgKXsKKwkJaWYg KEgtPnVzZXJfYXV0aG9yaXplciE9TlVMTCl7CisJCQlGUkVFX1pWQUwoSC0+dXNlcl9hdXRob3Jp emVyKTsKKwkJCXNxbGl0ZTNfc2V0X2F1dGhvcml6ZXIoSC0+ZGIsIGF1dGhvcml6ZXIsTlVMTCk7 CisJCX0KKwkJUkVUVVJOX1RSVUU7CisJfQorCQorCWlmICghemVuZF9pc19jYWxsYWJsZShjYWxs YmFjaywgMCwgJmNibmFtZSkpIHsKKwkJcGhwX2Vycm9yX2RvY3JlZihOVUxMIFRTUk1MU19DQywg RV9XQVJOSU5HLCAiZnVuY3Rpb24gJyVzJyBpcyBub3QgY2FsbGFibGUiLCBjYm5hbWUpOworCQll ZnJlZShjYm5hbWUpOworCQlSRVRVUk5fRkFMU0U7CisJfQorCWVmcmVlKGNibmFtZSk7CisJCisK KwlpZiAoSC0+dXNlcl9hdXRob3JpemVyIT1OVUxMKXsKKwkJRlJFRV9aVkFMKEgtPnVzZXJfYXV0 aG9yaXplcik7CisJfQorCQorCU1BS0VfU1REX1pWQUwodXNlcl9hdXRob3JpemVyKTsKKwlaVkFM X1NUUklORyh1c2VyX2F1dGhvcml6ZXIsIGNhbGxiYWNrLT52YWx1ZS5zdHIudmFsLCAxKTsKKwlz cWxpdGUzX3NldF9hdXRob3JpemVyKEgtPmRiLCBhdXRob3JpemVyLCB1c2VyX2F1dGhvcml6ZXIp OworCUgtPnVzZXJfYXV0aG9yaXplcj11c2VyX2F1dGhvcml6ZXI7CisJUkVUVVJOX1RSVUU7Cit9 CisvKiB9fX0gKi8KKwogc3RhdGljIHplbmRfZnVuY3Rpb25fZW50cnkgZGJoX21ldGhvZHNbXSA9 IHsKIAlQSFBfTUUoU1FMaXRlLCBzcWxpdGVDcmVhdGVGdW5jdGlvbiwgTlVMTCwgWkVORF9BQ0Nf UFVCTElDKQogCVBIUF9NRShTUUxpdGUsIHNxbGl0ZUNyZWF0ZUFnZ3JlZ2F0ZSwgTlVMTCwgWkVO RF9BQ0NfUFVCTElDKQorCVBIUF9NRShTUUxpdGUsIHNxbGl0ZVNldEF1dGhvcml6ZXIsIE5VTEws IFpFTkRfQUNDX1BVQkxJQykKIAl7TlVMTCwgTlVMTCwgTlVMTH0KIH07CiAKQEAgLTYxNyw2ICs2 NzAsMTAgQEAKIAkgKiByZXF1ZXN0ICovCiAJaWYgKEgpIHsKIAkJcGRvX3NxbGl0ZV9jbGVhbnVw X2NhbGxiYWNrcyhIIFRTUk1MU19DQyk7CisJCWlmKCBILT51c2VyX2F1dGhvcml6ZXIhPTAgKXsK KwkJCUZSRUVfWlZBTChILT51c2VyX2F1dGhvcml6ZXIpOworCQkJSC0+dXNlcl9hdXRob3JpemVy PU5VTEw7CisJCX0KIAl9CiB9CiAKQEAgLTY2MywzMiArNzIwLDE0NyBAQAogc3RhdGljIGludCBh dXRob3JpemVyKHZvaWQgKmF1dGhhcmcsIGludCBhY2Nlc3NfdHlwZSwgY29uc3QgY2hhciAqYXJn MywgY29uc3QgY2hhciAqYXJnNCwKIAkJY29uc3QgY2hhciAqYXJnNSwgY29uc3QgY2hhciAqYXJn NikKIHsKKwl6dmFsICpjYWxsYmFjaz1OVUxMLCp6YWNjZXNzX3R5cGUsKnphcmczLCp6YXJnNCwq emFyZzUsKnphcmc2OworCWludCByZXR2YWw9U1FMSVRFX09LOwogCWNoYXIgKmZpbGVuYW1lOwot CXN3aXRjaCAoYWNjZXNzX3R5cGUpIHsKLQkJY2FzZSBTUUxJVEVfQ09QWTogewotCQkJVFNSTUxT X0ZFVENIKCk7Ci0JCQlmaWxlbmFtZSA9IG1ha2VfZmlsZW5hbWVfc2FmZShhcmc0IFRTUk1MU19D Qyk7Ci0JCQlpZiAoIWZpbGVuYW1lKSB7Ci0JCQkJcmV0dXJuIFNRTElURV9ERU5ZOworCWlmIChQ RyhzYWZlX21vZGUpIHx8IChQRyhvcGVuX2Jhc2VkaXIpICYmICpQRyhvcGVuX2Jhc2VkaXIpKSkg eworCQlzd2l0Y2ggKGFjY2Vzc190eXBlKSB7CisJCQljYXNlIFNRTElURV9DT1BZOiB7CisJCQkJ VFNSTUxTX0ZFVENIKCk7CisJCQkJZmlsZW5hbWUgPSBtYWtlX2ZpbGVuYW1lX3NhZmUoYXJnNCBU U1JNTFNfQ0MpOworCQkJCWlmICghZmlsZW5hbWUpIHsKKwkJCQkJcmV0dmFsPVNRTElURV9ERU5Z OworCQkJCX1lbHNleworCQkJCQllZnJlZShmaWxlbmFtZSk7CisJCQkJCXJldHZhbD1TUUxJVEVf T0s7CisJCQkJfQogCQkJfQotCQkJZWZyZWUoZmlsZW5hbWUpOwotCQkJcmV0dXJuIFNRTElURV9P SzsKLQkJfQogCi0JCWNhc2UgU1FMSVRFX0FUVEFDSDogewotCQkJVFNSTUxTX0ZFVENIKCk7Ci0J CQlmaWxlbmFtZSA9IG1ha2VfZmlsZW5hbWVfc2FmZShhcmczIFRTUk1MU19DQyk7Ci0JCQlpZiAo IWZpbGVuYW1lKSB7Ci0JCQkJcmV0dXJuIFNRTElURV9ERU5ZOworCQkJY2FzZSBTUUxJVEVfQVRU QUNIOiB7CisJCQkJVFNSTUxTX0ZFVENIKCk7CisJCQkJZmlsZW5hbWUgPSBtYWtlX2ZpbGVuYW1l X3NhZmUoYXJnMyBUU1JNTFNfQ0MpOworCQkJCWlmICghZmlsZW5hbWUpIHsKKwkJCQkJcmV0dmFs PVNRTElURV9ERU5ZOworCQkJCX1lbHNleworCQkJCQllZnJlZShmaWxlbmFtZSk7CisJCQkJCXJl dHZhbD1TUUxJVEVfT0s7CisJCQkJfQogCQkJfQotCQkJZWZyZWUoZmlsZW5hbWUpOwotCQkJcmV0 dXJuIFNRTElURV9PSzsKLQkJfQogCi0JCWRlZmF1bHQ6Ci0JCQkvKiBhY2Nlc3MgYWxsb3dlZCAq LwotCQkJcmV0dXJuIFNRTElURV9PSzsKKwkJCWRlZmF1bHQ6CisJCQkJLyogYWNjZXNzIGFsbG93 ZWQgKi8KKwkJCQlyZXR2YWw9U1FMSVRFX09LOworCQl9CiAJfQorCWlmKCByZXR2YWw9PVNRTElU RV9PSyAmJiBhdXRoYXJnIT1OVUxMICl7CisJCWNhbGxiYWNrPSh6dmFsKilhdXRoYXJnOworCQl6 dmFsICoqYXJnc1s1XTsKKwkJemVuZF9mY2FsbF9pbmZvX2NhY2hlIGZjaV9jYWNoZSA9IGVtcHR5 X2ZjYWxsX2luZm9fY2FjaGU7CisJCXp2YWwgKnJlc3VsdCA9IE5VTEw7CisJCXplbmRfZmNhbGxf aW5mbyBmY2k7CisJCWNoYXIqIHpDb2RlOworCQlzd2l0Y2goIGFjY2Vzc190eXBlICl7CisJCQlj YXNlIFNRTElURV9DT1BZICAgICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfQ09QWSI7IGJyZWFr OworCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX0lOREVYICAgICAgOiB6Q29kZT0iU1FMSVRFX0NSRUFU RV9JTkRFWCI7IGJyZWFrOworCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX1RBQkxFICAgICAgOiB6Q29k ZT0iU1FMSVRFX0NSRUFURV9UQUJMRSI7IGJyZWFrOworCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX1RF TVBfSU5ERVggOiB6Q29kZT0iU1FMSVRFX0NSRUFURV9URU1QX0lOREVYIjsgYnJlYWs7CisJCQlj YXNlIFNRTElURV9DUkVBVEVfVEVNUF9UQUJMRSA6IHpDb2RlPSJTUUxJVEVfQ1JFQVRFX1RFTVBf VEFCTEUiOyBicmVhazsKKwkJCWNhc2UgU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVI6IHpDb2Rl PSJTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiI7IGJyZWFrOworCQkJY2FzZSBTUUxJVEVfQ1JF QVRFX1RFTVBfVklFVyAgOiB6Q29kZT0iU1FMSVRFX0NSRUFURV9URU1QX1ZJRVciOyBicmVhazsK KwkJCWNhc2UgU1FMSVRFX0NSRUFURV9UUklHR0VSICAgIDogekNvZGU9IlNRTElURV9DUkVBVEVf VFJJR0dFUiI7IGJyZWFrOworCQkJY2FzZSBTUUxJVEVfQ1JFQVRFX1ZJRVcgICAgICAgOiB6Q29k ZT0iU1FMSVRFX0NSRUFURV9WSUVXIjsgYnJlYWs7CisJCQljYXNlIFNRTElURV9ERUxFVEUgICAg ICAgICAgICA6IHpDb2RlPSJTUUxJVEVfREVMRVRFIjsgYnJlYWs7CisJCQljYXNlIFNRTElURV9E Uk9QX0lOREVYICAgICAgICA6IHpDb2RlPSJTUUxJVEVfRFJPUF9JTkRFWCI7IGJyZWFrOworCQkJ Y2FzZSBTUUxJVEVfRFJPUF9UQUJMRSAgICAgICAgOiB6Q29kZT0iU1FMSVRFX0RST1BfVEFCTEUi OyBicmVhazsKKwkJCWNhc2UgU1FMSVRFX0RST1BfVEVNUF9JTkRFWCAgIDogekNvZGU9IlNRTElU RV9EUk9QX1RFTVBfSU5ERVgiOyBicmVhazsKKwkJCWNhc2UgU1FMSVRFX0RST1BfVEVNUF9UQUJM RSAgIDogekNvZGU9IlNRTElURV9EUk9QX1RFTVBfVEFCTEUiOyBicmVhazsKKwkJCWNhc2UgU1FM SVRFX0RST1BfVEVNUF9UUklHR0VSIDogekNvZGU9IlNRTElURV9EUk9QX1RFTVBfVFJJR0dFUiI7 IGJyZWFrOworCQkJY2FzZSBTUUxJVEVfRFJPUF9URU1QX1ZJRVcgICAgOiB6Q29kZT0iU1FMSVRF X0RST1BfVEVNUF9WSUVXIjsgYnJlYWs7CisJCQljYXNlIFNRTElURV9EUk9QX1RSSUdHRVIgICAg ICA6IHpDb2RlPSJTUUxJVEVfRFJPUF9UUklHR0VSIjsgYnJlYWs7CisJCQljYXNlIFNRTElURV9E Uk9QX1ZJRVcgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfRFJPUF9WSUVXIjsgYnJlYWs7CisJCQlj YXNlIFNRTElURV9JTlNFUlQgICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfSU5TRVJUIjsgYnJl YWs7CisJCQljYXNlIFNRTElURV9QUkFHTUEgICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfUFJB R01BIjsgYnJlYWs7CisJCQljYXNlIFNRTElURV9SRUFEICAgICAgICAgICAgICA6IHpDb2RlPSJT UUxJVEVfUkVBRCI7IGJyZWFrOworCQkJY2FzZSBTUUxJVEVfU0VMRUNUICAgICAgICAgICAgOiB6 Q29kZT0iU1FMSVRFX1NFTEVDVCI7IGJyZWFrOworCQkJY2FzZSBTUUxJVEVfVFJBTlNBQ1RJT04g ICAgICAgOiB6Q29kZT0iU1FMSVRFX1RSQU5TQUNUSU9OIjsgYnJlYWs7CisJCQljYXNlIFNRTElU RV9VUERBVEUgICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfVVBEQVRFIjsgYnJlYWs7CisJCQlj YXNlIFNRTElURV9BVFRBQ0ggICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfQVRUQUNIIjsgYnJl YWs7CisJCQljYXNlIFNRTElURV9ERVRBQ0ggICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfREVU QUNIIjsgYnJlYWs7CisJCQljYXNlIFNRTElURV9BTFRFUl9UQUJMRSAgICAgICA6IHpDb2RlPSJT UUxJVEVfQUxURVJfVEFCTEUiOyBicmVhazsKKwkJCWNhc2UgU1FMSVRFX1JFSU5ERVggICAgICAg ICAgIDogekNvZGU9IlNRTElURV9SRUlOREVYIjsgYnJlYWs7CisJCQljYXNlIFNRTElURV9BTkFM WVpFICAgICAgICAgICA6IHpDb2RlPSJTUUxJVEVfQU5BTFlaRSI7IGJyZWFrOworCQkJY2FzZSBT UUxJVEVfQ1JFQVRFX1ZUQUJMRSAgICAgOiB6Q29kZT0iU1FMSVRFX0NSRUFURV9WVEFCTEUiOyBi cmVhazsKKwkJCWNhc2UgU1FMSVRFX0RST1BfVlRBQkxFICAgICAgIDogekNvZGU9IlNRTElURV9E Uk9QX1ZUQUJMRSI7IGJyZWFrOworCQkJZGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgOiB6 Q29kZT0iPz8/PyI7IGJyZWFrOworCQl9CisJCU1BS0VfU1REX1pWQUwoemFjY2Vzc190eXBlKTsK KwkJWlZBTF9TVFJJTkcoemFjY2Vzc190eXBlLHpDb2RlLCAxKTsKKwkJYXJnc1swXT0memFjY2Vz c190eXBlOworCisJCU1BS0VfU1REX1pWQUwoemFyZzMpOworCQlpZiggYXJnMyE9TlVMTCApewor CQkJWlZBTF9TVFJJTkcoemFyZzMsKGNoYXIqKWFyZzMsIDEpOworCQl9ZWxzZXsKKwkJCVpWQUxf U1RSSU5HKHphcmczLCIiLCAxKTsKKwkJfQorCQlhcmdzWzFdPSZ6YXJnMzsKKwkJCisJCU1BS0Vf U1REX1pWQUwoemFyZzQpOworCQlpZiggYXJnNCE9TlVMTCApeworCQkJWlZBTF9TVFJJTkcoemFy ZzQsKGNoYXIqKWFyZzQsIDEpOworCQl9ZWxzZXsKKwkJCVpWQUxfU1RSSU5HKHphcmc0LCIiLCAx KTsKKwkJfQorCQlhcmdzWzJdPSZ6YXJnNDsKKwkJCisJCU1BS0VfU1REX1pWQUwoemFyZzUpOwor CQlpZiggYXJnNSE9TlVMTCApeworCQkJWlZBTF9TVFJJTkcoemFyZzUsKGNoYXIqKWFyZzUsIDEp OworCQl9ZWxzZXsKKwkJCVpWQUxfU1RSSU5HKHphcmc1LCIiLCAxKTsKKwkJfQorCQlhcmdzWzNd PSZ6YXJnNTsKKwkJCisJCU1BS0VfU1REX1pWQUwoemFyZzYpOworCQlpZiggYXJnNiE9TlVMTCAp eworCQkJWlZBTF9TVFJJTkcoemFyZzYsKGNoYXIqKWFyZzYsIDEpOworCQl9ZWxzZXsKKwkJCVpW QUxfU1RSSU5HKHphcmc2LCIiLCAxKTsKKwkJfQorCQlhcmdzWzRdPSZ6YXJnNjsKKwkJCisJCWZj aS5zaXplID0gc2l6ZW9mKGZjaSk7CisJCWZjaS5mdW5jdGlvbl90YWJsZSA9IEVHKGZ1bmN0aW9u X3RhYmxlKTsKKwkJZmNpLmZ1bmN0aW9uX25hbWUgPSBjYWxsYmFjazsKKwkJZmNpLnN5bWJvbF90 YWJsZSA9IE5VTEw7CisJCWZjaS5vYmplY3RfcHAgPSBOVUxMOworCQlmY2kucmV0dmFsX3B0cl9w dHIgPSAmcmVzdWx0OworCQlmY2kucGFyYW1fY291bnQgPSA1OworCQlmY2kucGFyYW1zID0gYXJn czsKKwkJZmNpLm5vX3NlcGFyYXRpb24gPSAwOworCQkKKwkJaWYgKHplbmRfY2FsbF9mdW5jdGlv bigmZmNpLCAmZmNpX2NhY2hlIFRTUk1MU19DQykgPT0gU1VDQ0VTUyAmJiByZXN1bHQpIHsKKwkJ CWlmKCByZXN1bHQtPnR5cGU9PUlTX0JPT0wgKXsKKwkJCQlyZXR2YWw9KHJlc3VsdC0+dmFsdWUu bHZhbD09MCk7CisJCQl9ZWxzZSBpZiggcmVzdWx0LT50eXBlPT1JU19MT05HICl7CisJCQkJcmV0 dmFsPXJlc3VsdC0+dmFsdWUubHZhbDsKKwkJCX1lbHNleworCQkJCXBocF9lcnJvcl9kb2NyZWYo TlVMTCBUU1JNTFNfQ0MsIEVfV0FSTklORywgImludmFsaWQgcmV0dXJuIGZyb20gYXV0aG9yaXpl ciwgbmVlZCBib29sIG9yIGludCIpOworCQkJCXJldHZhbD1TUUxJVEVfREVOWTsKKwkJCX0KKwkJ fSBlbHNlIHsKKwkJCXBocF9lcnJvcl9kb2NyZWYoTlVMTCBUU1JNTFNfQ0MsIEVfV0FSTklORywg IkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGludm9raW5nIHRoZSByZWR1Y3Rpb24gY2FsbGJhY2si KTsKKwkJCXJldHZhbD1TUUxJVEVfREVOWTsKKwkJfQorCQkKKwkJRlJFRV9aVkFMKHphY2Nlc3Nf dHlwZSk7CisJCUZSRUVfWlZBTCh6YXJnMyk7CisJCUZSRUVfWlZBTCh6YXJnNCk7CisJCUZSRUVf WlZBTCh6YXJnNSk7CisJCUZSRUVfWlZBTCh6YXJnNik7CisJCQorCX0KKwlyZXR1cm4gcmV0dmFs OwogfQogCiBzdGF0aWMgaW50IHBkb19zcWxpdGVfaGFuZGxlX2ZhY3RvcnkocGRvX2RiaF90ICpk YmgsIHp2YWwgKmRyaXZlcl9vcHRpb25zIFRTUk1MU19EQykgLyoge3t7ICovCkBAIC03MDIsNiAr ODc0LDcgQEAKIAkKIAlILT5laW5mby5lcnJjb2RlID0gMDsKIAlILT5laW5mby5lcnJtc2cgPSBO VUxMOworCUgtPnVzZXJfYXV0aG9yaXplciA9IE5VTEw7CiAJZGJoLT5kcml2ZXJfZGF0YSA9IEg7 CiAKIAlmaWxlbmFtZSA9IG1ha2VfZmlsZW5hbWVfc2FmZShkYmgtPmRhdGFfc291cmNlIFRTUk1M U19DQyk7CkBAIC03MjEsOSArODk0LDcgQEAKIAkJZ290byBjbGVhbnVwOwogCX0KIAotCWlmIChQ RyhzYWZlX21vZGUpIHx8IChQRyhvcGVuX2Jhc2VkaXIpICYmICpQRyhvcGVuX2Jhc2VkaXIpKSkg ewotCQlzcWxpdGUzX3NldF9hdXRob3JpemVyKEgtPmRiLCBhdXRob3JpemVyLCBOVUxMKTsKLQl9 CisJc3FsaXRlM19zZXRfYXV0aG9yaXplcihILT5kYiwgYXV0aG9yaXplciwgTlVMTCk7CiAKIAlp ZiAoZHJpdmVyX29wdGlvbnMpIHsKIAkJdGltZW91dCA9IHBkb19hdHRyX2x2YWwoZHJpdmVyX29w dGlvbnMsIFBET19BVFRSX1RJTUVPVVQsIHRpbWVvdXQgVFNSTUxTX0NDKTsK ------=_Part_22193_19442122.1163691936304--