Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:28249 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 3562 invoked by uid 1010); 5 Mar 2007 22:40:49 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 3544 invoked from network); 5 Mar 2007 22:40:49 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 5 Mar 2007 22:40:49 -0000 Authentication-Results: pb1.pair.com smtp.mail=mail@marcus-boerger.de; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=mail@marcus-boerger.de; sender-id=unknown Received-SPF: error (pb1.pair.com: domain marcus-boerger.de from 85.214.94.56 cause and error) X-PHP-List-Original-Sender: mail@marcus-boerger.de X-Host-Fingerprint: 85.214.94.56 aixcept.net Received: from [85.214.94.56] ([85.214.94.56:58429] helo=h1149922.serverkompetenz.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id BC/96-16561-D6C9CE54 for ; Mon, 05 Mar 2007 17:40:47 -0500 Received: from [192.168.1.3] (dslb-084-063-053-139.pools.arcor-ip.net [84.63.53.139]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by h1149922.serverkompetenz.net (Postfix) with ESMTP id 6B5CA1B360A for ; Mon, 5 Mar 2007 23:40:42 +0100 (CET) Date: Mon, 5 Mar 2007 23:38:45 +0100 Reply-To: helly@php.net X-Priority: 3 (Normal) Message-ID: <1541738199.20070305233845@marcus-boerger.de> To: internals@lists.php.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------981906D259BFEF9" Subject: Better implementation for ternary shortcut From: mail@marcus-boerger.de (Marcus Boerger) ------------981906D259BFEF9 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello internals, attached is a much better implementation for the ternary shortcut. If noone sees a problem with it, I will be comitting this on thursday. best regards marcus ------------981906D259BFEF9 Content-Type: TEXT/PLAIN; name="ze3-ternary-shortcut-20070305.diff.txt" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="ze3-ternary-shortcut-20070305.diff.txt" SW5kZXg6IFplbmQvemVuZF9jb21waWxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3Jl cG9zaXRvcnkvWmVuZEVuZ2luZTIvemVuZF9jb21waWxlLmMsdgpyZXRyaWV2aW5nIHJldmlz aW9uIDEuNzQwCmRpZmYgLXUgLXAgLWQgLXIxLjc0MCB6ZW5kX2NvbXBpbGUuYwotLS0gWmVu ZC96ZW5kX2NvbXBpbGUuYwkxNiBGZWIgMjAwNyAxOTozNjo0NSAtMDAwMAkxLjc0MAorKysg WmVuZC96ZW5kX2NvbXBpbGUuYwk1IE1hciAyMDA3IDIyOjM3OjQ1IC0wMDAwCkBAIC00MjA2 LDYgKzQyMDYsNDMgQEAgdm9pZCB6ZW5kX2RvX2VuZF9zaWxlbmNlKHpub2RlICpzdHJ1ZGVs XwogfQogCiAKK3ZvaWQgemVuZF9kb19qbXBfc2V0KHpub2RlICp2YWx1ZSwgem5vZGUgKmpt cF90b2tlbiwgem5vZGUgKmNvbG9uX3Rva2VuIFRTUk1MU19EQykKK3sKKwlpbnQgb3BfbnVt YmVyID0gZ2V0X25leHRfb3BfbnVtYmVyKENHKGFjdGl2ZV9vcF9hcnJheSkpOworCXplbmRf b3AgKm9wbGluZSA9IGdldF9uZXh0X29wKENHKGFjdGl2ZV9vcF9hcnJheSkgVFNSTUxTX0ND KTsKKworCW9wbGluZS0+b3Bjb2RlID0gWkVORF9KTVBfU0VUOworCW9wbGluZS0+cmVzdWx0 Lm9wX3R5cGUgPSBJU19UTVBfVkFSOworCW9wbGluZS0+cmVzdWx0LnUudmFyID0gZ2V0X3Rl bXBvcmFyeV92YXJpYWJsZShDRyhhY3RpdmVfb3BfYXJyYXkpKTsKKwlvcGxpbmUtPm9wMSA9 ICp2YWx1ZTsKKwlTRVRfVU5VU0VEKG9wbGluZS0+b3AyKTsKKwkKKwkqY29sb25fdG9rZW4g PSBvcGxpbmUtPnJlc3VsdDsKKworCWptcF90b2tlbi0+dS5vcGxpbmVfbnVtID0gb3BfbnVt YmVyOworCisJSU5DX0JQQyhDRyhhY3RpdmVfb3BfYXJyYXkpKTsKK30KKworCit2b2lkIHpl bmRfZG9fam1wX3NldF9lbHNlKHpub2RlICpyZXN1bHQsIHpub2RlICpmYWxzZV92YWx1ZSwg em5vZGUgKmptcF90b2tlbiwgem5vZGUgKmNvbG9uX3Rva2VuIFRTUk1MU19EQykKK3sKKwl6 ZW5kX29wICpvcGxpbmUgPSBnZXRfbmV4dF9vcChDRyhhY3RpdmVfb3BfYXJyYXkpIFRTUk1M U19DQyk7CisKKwlvcGxpbmUtPm9wY29kZSA9IFpFTkRfUU1fQVNTSUdOOworCW9wbGluZS0+ ZXh0ZW5kZWRfdmFsdWUgPSAwOworCW9wbGluZS0+cmVzdWx0ID0gKmNvbG9uX3Rva2VuOwor CW9wbGluZS0+b3AxID0gKmZhbHNlX3ZhbHVlOworCVNFVF9VTlVTRUQob3BsaW5lLT5vcDIp OworCQorCSpyZXN1bHQgPSBvcGxpbmUtPnJlc3VsdDsKKworCUNHKGFjdGl2ZV9vcF9hcnJh eSktPm9wY29kZXNbam1wX3Rva2VuLT51Lm9wbGluZV9udW1dLm9wMi51Lm9wbGluZV9udW0g PSBnZXRfbmV4dF9vcF9udW1iZXIoQ0coYWN0aXZlX29wX2FycmF5KSk7CisJCisJREVDX0JQ QyhDRyhhY3RpdmVfb3BfYXJyYXkpKTsKK30KKworCiB2b2lkIHplbmRfZG9fYmVnaW5fcW1f b3Aoem5vZGUgKmNvbmQsIHpub2RlICpxbV90b2tlbiBUU1JNTFNfREMpCiB7CiAJaW50IGpt cHpfb3BfbnVtYmVyID0gZ2V0X25leHRfb3BfbnVtYmVyKENHKGFjdGl2ZV9vcF9hcnJheSkp OwpJbmRleDogWmVuZC96ZW5kX2NvbXBpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv cmVwb3NpdG9yeS9aZW5kRW5naW5lMi96ZW5kX2NvbXBpbGUuaCx2CnJldHJpZXZpbmcgcmV2 aXNpb24gMS4zNTUKZGlmZiAtdSAtcCAtZCAtcjEuMzU1IHplbmRfY29tcGlsZS5oCi0tLSBa ZW5kL3plbmRfY29tcGlsZS5oCTE2IEZlYiAyMDA3IDE5OjM2OjQ1IC0wMDAwCTEuMzU1Cisr KyBaZW5kL3plbmRfY29tcGlsZS5oCTUgTWFyIDIwMDcgMjI6Mzc6NDYgLTAwMDAKQEAgLTUw Niw2ICs1MDYsOSBAQCB2b2lkIHplbmRfZG9fZXhpdCh6bm9kZSAqcmVzdWx0LCB6bm9kZSAq CiB2b2lkIHplbmRfZG9fYmVnaW5fc2lsZW5jZSh6bm9kZSAqc3RydWRlbF90b2tlbiBUU1JN TFNfREMpOwogdm9pZCB6ZW5kX2RvX2VuZF9zaWxlbmNlKHpub2RlICpzdHJ1ZGVsX3Rva2Vu IFRTUk1MU19EQyk7CiAKK3ZvaWQgemVuZF9kb19qbXBfc2V0KHpub2RlICp2YWx1ZSwgem5v ZGUgKmptcF90b2tlbiwgem5vZGUgKmNvbG9uX3Rva2VuIFRTUk1MU19EQyk7Cit2b2lkIHpl bmRfZG9fam1wX3NldF9lbHNlKHpub2RlICpyZXN1bHQsIHpub2RlICpmYWxzZV92YWx1ZSwg em5vZGUgKmptcF90b2tlbiwgem5vZGUgKmNvbG9uX3Rva2VuIFRTUk1MU19EQyk7CisKIHZv aWQgemVuZF9kb19iZWdpbl9xbV9vcCh6bm9kZSAqY29uZCwgem5vZGUgKnFtX3Rva2VuIFRT Uk1MU19EQyk7CiB2b2lkIHplbmRfZG9fcW1fdHJ1ZSh6bm9kZSAqdHJ1ZV92YWx1ZSwgem5v ZGUgKnFtX3Rva2VuLCB6bm9kZSAqY29sb25fdG9rZW4gVFNSTUxTX0RDKTsKIHZvaWQgemVu ZF9kb19xbV9mYWxzZSh6bm9kZSAqcmVzdWx0LCB6bm9kZSAqZmFsc2VfdmFsdWUsIHpub2Rl ICpxbV90b2tlbiwgem5vZGUgKmNvbG9uX3Rva2VuIFRTUk1MU19EQyk7CkluZGV4OiBaZW5k L3plbmRfZXhlY3V0ZV9BUEkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVwb3NpdG9y eS9aZW5kRW5naW5lMi96ZW5kX2V4ZWN1dGVfQVBJLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9u IDEuMzk3CmRpZmYgLXUgLXAgLWQgLXIxLjM5NyB6ZW5kX2V4ZWN1dGVfQVBJLmMKLS0tIFpl bmQvemVuZF9leGVjdXRlX0FQSS5jCTMgTWFyIDIwMDcgMTM6NDY6MTkgLTAwMDAJMS4zOTcK KysrIFplbmQvemVuZF9leGVjdXRlX0FQSS5jCTUgTWFyIDIwMDcgMjI6Mzc6NDYgLTAwMDAK QEAgLTEzNzYsNiArMTM3Niw3IEBAIHZvaWQgZXhlY3V0ZV9uZXdfY29kZShUU1JNTFNfRCkK IAkJCWNhc2UgWkVORF9KTVBOWjoKIAkJCWNhc2UgWkVORF9KTVBaX0VYOgogCQkJY2FzZSBa RU5EX0pNUE5aX0VYOgorCQkJY2FzZSBaRU5EX0pNUF9TRVQ6CiAJCQkJb3BsaW5lLT5vcDIu dS5qbXBfYWRkciA9ICZDRyhhY3RpdmVfb3BfYXJyYXkpLT5vcGNvZGVzW29wbGluZS0+b3Ay LnUub3BsaW5lX251bV07CiAJCQkJYnJlYWs7CiAJCX0KSW5kZXg6IFplbmQvemVuZF9sYW5n dWFnZV9wYXJzZXIueQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9aZW5k RW5naW5lMi96ZW5kX2xhbmd1YWdlX3BhcnNlci55LHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjE3OQpkaWZmIC11IC1wIC1kIC1yMS4xNzkgemVuZF9sYW5ndWFnZV9wYXJzZXIueQotLS0g WmVuZC96ZW5kX2xhbmd1YWdlX3BhcnNlci55CTQgTWFyIDIwMDcgMTY6MjU6NTcgLTAwMDAJ MS4xNzkKKysrIFplbmQvemVuZF9sYW5ndWFnZV9wYXJzZXIueQk1IE1hciAyMDA3IDIyOjM3 OjQ2IC0wMDAwCkBAIC02MTEsOSArNjExLDggQEAgZXhwcl93aXRob3V0X3ZhcmlhYmxlOgog CXwJZXhwciAnPycgeyB6ZW5kX2RvX2JlZ2luX3FtX29wKCYkMSwgJiQyIFRTUk1MU19DQyk7 IH0KIAkJZXhwciAnOicgeyB6ZW5kX2RvX3FtX3RydWUoJiQ0LCAmJDIsICYkNSBUU1JNTFNf Q0MpOyB9CiAJCWV4cHIJIHsgemVuZF9kb19xbV9mYWxzZSgmJCQsICYkNywgJiQyLCAmJDUg VFNSTUxTX0NDKTsgfQotCXwJZXhwciAnPycgeyB6ZW5kX2RvX2JlZ2luX3FtX29wKCYkMSwg JiQyIFRTUk1MU19DQyk7IH0KLQkJJzonICAgICAgeyB6ZW5kX2RvX3FtX3RydWUoJiQxLCAm JDIsICYkNCBUU1JNTFNfQ0MpOyB9Ci0JCWV4cHIgICAgIHsgemVuZF9kb19xbV9mYWxzZSgm JCQsICYkNiwgJiQyLCAmJDQgVFNSTUxTX0NDKTsgfQorCXwJZXhwciAnPycgJzonIHsgemVu ZF9kb19qbXBfc2V0KCYkMSwgJiQyLCAmJDMgVFNSTUxTX0NDKTsgfQorCQlleHByICAgICB7 IHplbmRfZG9fam1wX3NldF9lbHNlKCYkJCwgJiQ1LCAmJDIsICYkMyBUU1JNTFNfQ0MpOyB9 CiAJfAlpbnRlcm5hbF9mdW5jdGlvbnNfaW5feWFjYyB7ICQkID0gJDE7IH0KIAl8CVRfSU5U X0NBU1QgZXhwciAJeyB6ZW5kX2RvX2Nhc3QoJiQkLCAmJDIsIElTX0xPTkcgVFNSTUxTX0ND KTsgfQogCXwJVF9ET1VCTEVfQ0FTVCBleHByIAl7IHplbmRfZG9fY2FzdCgmJCQsICYkMiwg SVNfRE9VQkxFIFRTUk1MU19DQyk7IH0KSW5kZXg6IFplbmQvemVuZF9vcGNvZGUuYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09ClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9aZW5kRW5naW5lMi96ZW5kX29wY29k ZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyNgpkaWZmIC11IC1wIC1kIC1yMS4xMjYg emVuZF9vcGNvZGUuYwotLS0gWmVuZC96ZW5kX29wY29kZS5jCTE1IEZlYiAyMDA3IDEwOjQy OjUxIC0wMDAwCTEuMTI2CisrKyBaZW5kL3plbmRfb3Bjb2RlLmMJNSBNYXIgMjAwNyAyMjoz Nzo0NiAtMDAwMApAQCAtNDI3LDYgKzQyNyw3IEBAIGludCBwYXNzX3R3byh6ZW5kX29wX2Fy cmF5ICpvcF9hcnJheSBUU1IKIAkJCWNhc2UgWkVORF9KTVBOWjoKIAkJCWNhc2UgWkVORF9K TVBaX0VYOgogCQkJY2FzZSBaRU5EX0pNUE5aX0VYOgorCQkJY2FzZSBaRU5EX0pNUF9TRVQ6 CiAJCQkJb3BsaW5lLT5vcDIudS5qbXBfYWRkciA9ICZvcF9hcnJheS0+b3Bjb2Rlc1tvcGxp bmUtPm9wMi51Lm9wbGluZV9udW1dOwogCQkJCWJyZWFrOwogCQl9CkluZGV4OiBaZW5kL3pl bmRfdm1fZGVmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkvWmVuZEVu Z2luZTIvemVuZF92bV9kZWYuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNjAKZGlmZiAt dSAtcCAtZCAtcjEuMTYwIHplbmRfdm1fZGVmLmgKLS0tIFplbmQvemVuZF92bV9kZWYuaAky NSBGZWIgMjAwNyAxNjoxMjoxOCAtMDAwMAkxLjE2MAorKysgWmVuZC96ZW5kX3ZtX2RlZi5o CTUgTWFyIDIwMDcgMjI6Mzc6NDYgLTAwMDAKQEAgLTM3NjksNiArMzc2OSwyNiBAQCBaRU5E X1ZNX0hBTkRMRVIoNTgsIFpFTkRfRU5EX1NJTEVOQ0UsIFRNCiAJWkVORF9WTV9ORVhUX09Q Q09ERSgpOwogfQogCitaRU5EX1ZNX0hBTkRMRVIoMTUyLCBaRU5EX0pNUF9TRVQsIENPTlNU fFRNUHxWQVJ8Q1YsIEFOWSkKK3sKKwl6ZW5kX29wICpvcGxpbmUgPSBFWChvcGxpbmUpOwor CXplbmRfZnJlZV9vcCBmcmVlX29wMTsKKwl6dmFsICoqdmFyX3B0ciA9IEdFVF9PUDFfWlZB TF9QVFJfUFRSKEJQX1ZBUl9SKTsKKworCWlmICh2YXJfcHRyICYmIGlfemVuZF9pc190cnVl KCp2YXJfcHRyKSkgeworCQlFWF9UKG9wbGluZS0+cmVzdWx0LnUudmFyKS50bXBfdmFyID0g Kip2YXJfcHRyOworCQl6ZW5kaV96dmFsX2NvcHlfY3RvcihFWF9UKG9wbGluZS0+cmVzdWx0 LnUudmFyKS50bXBfdmFyKTsKKwkJRlJFRV9PUDFfSUZfVkFSKCk7CisjaWYgREVCVUdfWkVO RD49MgorCQlwcmludGYoIkNvbmRpdGlvbmFsIGptcCB0byAlZFxuIiwgb3BsaW5lLT5vcDIu dS5vcGxpbmVfbnVtKTsKKyNlbmRpZgorCQlaRU5EX1ZNX0pNUChvcGxpbmUtPm9wMi51Lmpt cF9hZGRyKTsKKwl9CisKKwlGUkVFX09QMV9JRl9WQVIoKTsKKwlaRU5EX1ZNX05FWFRfT1BD T0RFKCk7Cit9CisKIFpFTkRfVk1fSEFORExFUigyMiwgWkVORF9RTV9BU1NJR04sIENPTlNU fFRNUHxWQVJ8Q1YsIEFOWSkKIHsKIAl6ZW5kX29wICpvcGxpbmUgPSBFWChvcGxpbmUpOwpJ bmRleDogWmVuZC96ZW5kX3ZtX2V4ZWN1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv cmVwb3NpdG9yeS9aZW5kRW5naW5lMi96ZW5kX3ZtX2V4ZWN1dGUuaCx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4xNjMKZGlmZiAtdSAtcCAtZCAtcjEuMTYzIHplbmRfdm1fZXhlY3V0ZS5o Ci0tLSBaZW5kL3plbmRfdm1fZXhlY3V0ZS5oCTI1IEZlYiAyMDA3IDE2OjEyOjE4IC0wMDAw CTEuMTYzCisrKyBaZW5kL3plbmRfdm1fZXhlY3V0ZS5oCTUgTWFyIDIwMDcgMjI6Mzc6NDgg LTAwMDAKQEAgLTIzNTAsNiArMjM1MCwyNSBAQCBzdGF0aWMgaW50IFpFTkRfRVhJVF9TUEVD X0NPTlNUX0hBTkRMRVIoCiAJWkVORF9WTV9ORVhUX09QQ09ERSgpOwogfQogCitzdGF0aWMg aW50IFpFTkRfSk1QX1NFVF9TUEVDX0NPTlNUX0hBTkRMRVIoWkVORF9PUENPREVfSEFORExF Ul9BUkdTKQoreworCXplbmRfb3AgKm9wbGluZSA9IEVYKG9wbGluZSk7CisKKwl6dmFsICoq dmFyX3B0ciA9IE5VTEw7CisKKwlpZiAodmFyX3B0ciAmJiBpX3plbmRfaXNfdHJ1ZSgqdmFy X3B0cikpIHsKKwkJRVhfVChvcGxpbmUtPnJlc3VsdC51LnZhcikudG1wX3ZhciA9ICoqdmFy X3B0cjsKKwkJemVuZGlfenZhbF9jb3B5X2N0b3IoRVhfVChvcGxpbmUtPnJlc3VsdC51LnZh cikudG1wX3Zhcik7CisKKyNpZiBERUJVR19aRU5EPj0yCisJCXByaW50ZigiQ29uZGl0aW9u YWwgam1wIHRvICVkXG4iLCBvcGxpbmUtPm9wMi51Lm9wbGluZV9udW0pOworI2VuZGlmCisJ CVpFTkRfVk1fSk1QKG9wbGluZS0+b3AyLnUuam1wX2FkZHIpOworCX0KKworCVpFTkRfVk1f TkVYVF9PUENPREUoKTsKK30KKwogc3RhdGljIGludCBaRU5EX1FNX0FTU0lHTl9TUEVDX0NP TlNUX0hBTkRMRVIoWkVORF9PUENPREVfSEFORExFUl9BUkdTKQogewogCXplbmRfb3AgKm9w bGluZSA9IEVYKG9wbGluZSk7CkBAIC01MDI0LDYgKzUwNDMsMjUgQEAgc3RhdGljIGludCBa RU5EX0VORF9TSUxFTkNFX1NQRUNfVE1QX0hBTgogCVpFTkRfVk1fTkVYVF9PUENPREUoKTsK IH0KIAorc3RhdGljIGludCBaRU5EX0pNUF9TRVRfU1BFQ19UTVBfSEFORExFUihaRU5EX09Q Q09ERV9IQU5ETEVSX0FSR1MpCit7CisJemVuZF9vcCAqb3BsaW5lID0gRVgob3BsaW5lKTsK KworCXp2YWwgKip2YXJfcHRyID0gTlVMTDsKKworCWlmICh2YXJfcHRyICYmIGlfemVuZF9p c190cnVlKCp2YXJfcHRyKSkgeworCQlFWF9UKG9wbGluZS0+cmVzdWx0LnUudmFyKS50bXBf dmFyID0gKip2YXJfcHRyOworCQl6ZW5kaV96dmFsX2NvcHlfY3RvcihFWF9UKG9wbGluZS0+ cmVzdWx0LnUudmFyKS50bXBfdmFyKTsKKworI2lmIERFQlVHX1pFTkQ+PTIKKwkJcHJpbnRm KCJDb25kaXRpb25hbCBqbXAgdG8gJWRcbiIsIG9wbGluZS0+b3AyLnUub3BsaW5lX251bSk7 CisjZW5kaWYKKwkJWkVORF9WTV9KTVAob3BsaW5lLT5vcDIudS5qbXBfYWRkcik7CisJfQor CisJWkVORF9WTV9ORVhUX09QQ09ERSgpOworfQorCiBzdGF0aWMgaW50IFpFTkRfUU1fQVNT SUdOX1NQRUNfVE1QX0hBTkRMRVIoWkVORF9PUENPREVfSEFORExFUl9BUkdTKQogewogCXpl bmRfb3AgKm9wbGluZSA9IEVYKG9wbGluZSk7CkBAIC04NDAwLDYgKzg0MzgsMjYgQEAgc3Rh dGljIGludCBaRU5EX0VYSVRfU1BFQ19WQVJfSEFORExFUihaRQogCVpFTkRfVk1fTkVYVF9P UENPREUoKTsKIH0KIAorc3RhdGljIGludCBaRU5EX0pNUF9TRVRfU1BFQ19WQVJfSEFORExF UihaRU5EX09QQ09ERV9IQU5ETEVSX0FSR1MpCit7CisJemVuZF9vcCAqb3BsaW5lID0gRVgo b3BsaW5lKTsKKwl6ZW5kX2ZyZWVfb3AgZnJlZV9vcDE7CisJenZhbCAqKnZhcl9wdHIgPSBf Z2V0X3p2YWxfcHRyX3B0cl92YXIoJm9wbGluZS0+b3AxLCBFWChUcyksICZmcmVlX29wMSBU U1JNTFNfQ0MpOworCisJaWYgKHZhcl9wdHIgJiYgaV96ZW5kX2lzX3RydWUoKnZhcl9wdHIp KSB7CisJCUVYX1Qob3BsaW5lLT5yZXN1bHQudS52YXIpLnRtcF92YXIgPSAqKnZhcl9wdHI7 CisJCXplbmRpX3p2YWxfY29weV9jdG9yKEVYX1Qob3BsaW5lLT5yZXN1bHQudS52YXIpLnRt cF92YXIpOworCQlpZiAoZnJlZV9vcDEudmFyKSB7enZhbF9wdHJfZHRvcigmZnJlZV9vcDEu dmFyKTt9OworI2lmIERFQlVHX1pFTkQ+PTIKKwkJcHJpbnRmKCJDb25kaXRpb25hbCBqbXAg dG8gJWRcbiIsIG9wbGluZS0+b3AyLnUub3BsaW5lX251bSk7CisjZW5kaWYKKwkJWkVORF9W TV9KTVAob3BsaW5lLT5vcDIudS5qbXBfYWRkcik7CisJfQorCisJaWYgKGZyZWVfb3AxLnZh cikge3p2YWxfcHRyX2R0b3IoJmZyZWVfb3AxLnZhcik7fTsKKwlaRU5EX1ZNX05FWFRfT1BD T0RFKCk7Cit9CisKIHN0YXRpYyBpbnQgWkVORF9RTV9BU1NJR05fU1BFQ19WQVJfSEFORExF UihaRU5EX09QQ09ERV9IQU5ETEVSX0FSR1MpCiB7CiAJemVuZF9vcCAqb3BsaW5lID0gRVgo b3BsaW5lKTsKQEAgLTIwODI4LDYgKzIwODg2LDI1IEBAIHN0YXRpYyBpbnQgWkVORF9FWElU X1NQRUNfQ1ZfSEFORExFUihaRU4KIAlaRU5EX1ZNX05FWFRfT1BDT0RFKCk7CiB9CiAKK3N0 YXRpYyBpbnQgWkVORF9KTVBfU0VUX1NQRUNfQ1ZfSEFORExFUihaRU5EX09QQ09ERV9IQU5E TEVSX0FSR1MpCit7CisJemVuZF9vcCAqb3BsaW5lID0gRVgob3BsaW5lKTsKKworCXp2YWwg Kip2YXJfcHRyID0gX2dldF96dmFsX3B0cl9wdHJfY3YoJm9wbGluZS0+b3AxLCBFWChUcyks IEJQX1ZBUl9SIFRTUk1MU19DQyk7CisKKwlpZiAodmFyX3B0ciAmJiBpX3plbmRfaXNfdHJ1 ZSgqdmFyX3B0cikpIHsKKwkJRVhfVChvcGxpbmUtPnJlc3VsdC51LnZhcikudG1wX3ZhciA9 ICoqdmFyX3B0cjsKKwkJemVuZGlfenZhbF9jb3B5X2N0b3IoRVhfVChvcGxpbmUtPnJlc3Vs dC51LnZhcikudG1wX3Zhcik7CisKKyNpZiBERUJVR19aRU5EPj0yCisJCXByaW50ZigiQ29u ZGl0aW9uYWwgam1wIHRvICVkXG4iLCBvcGxpbmUtPm9wMi51Lm9wbGluZV9udW0pOworI2Vu ZGlmCisJCVpFTkRfVk1fSk1QKG9wbGluZS0+b3AyLnUuam1wX2FkZHIpOworCX0KKworCVpF TkRfVk1fTkVYVF9PUENPREUoKTsKK30KKwogc3RhdGljIGludCBaRU5EX1FNX0FTU0lHTl9T UEVDX0NWX0hBTkRMRVIoWkVORF9PUENPREVfSEFORExFUl9BUkdTKQogewogCXplbmRfb3Ag Km9wbGluZSA9IEVYKG9wbGluZSk7CkBAIC0zMTMzOSw2ICszMTQxNiwzMSBAQCB2b2lkIHpl bmRfaW5pdF9vcGNvZGVzX2hhbmRsZXJzKCkKICAgCVpFTkRfVV9OT1JNQUxJWkVfU1BFQ19D Vl9IQU5ETEVSLAogICAJWkVORF9VX05PUk1BTElaRV9TUEVDX0NWX0hBTkRMRVIsCiAgIAla RU5EX1VfTk9STUFMSVpFX1NQRUNfQ1ZfSEFORExFUiwKKyAgCVpFTkRfSk1QX1NFVF9TUEVD X0NPTlNUX0hBTkRMRVIsCisgIAlaRU5EX0pNUF9TRVRfU1BFQ19DT05TVF9IQU5ETEVSLAor ICAJWkVORF9KTVBfU0VUX1NQRUNfQ09OU1RfSEFORExFUiwKKyAgCVpFTkRfSk1QX1NFVF9T UEVDX0NPTlNUX0hBTkRMRVIsCisgIAlaRU5EX0pNUF9TRVRfU1BFQ19DT05TVF9IQU5ETEVS LAorICAJWkVORF9KTVBfU0VUX1NQRUNfVE1QX0hBTkRMRVIsCisgIAlaRU5EX0pNUF9TRVRf U1BFQ19UTVBfSEFORExFUiwKKyAgCVpFTkRfSk1QX1NFVF9TUEVDX1RNUF9IQU5ETEVSLAor ICAJWkVORF9KTVBfU0VUX1NQRUNfVE1QX0hBTkRMRVIsCisgIAlaRU5EX0pNUF9TRVRfU1BF Q19UTVBfSEFORExFUiwKKyAgCVpFTkRfSk1QX1NFVF9TUEVDX1ZBUl9IQU5ETEVSLAorICAJ WkVORF9KTVBfU0VUX1NQRUNfVkFSX0hBTkRMRVIsCisgIAlaRU5EX0pNUF9TRVRfU1BFQ19W QVJfSEFORExFUiwKKyAgCVpFTkRfSk1QX1NFVF9TUEVDX1ZBUl9IQU5ETEVSLAorICAJWkVO RF9KTVBfU0VUX1NQRUNfVkFSX0hBTkRMRVIsCisgIAlaRU5EX05VTExfSEFORExFUiwKKyAg CVpFTkRfTlVMTF9IQU5ETEVSLAorICAJWkVORF9OVUxMX0hBTkRMRVIsCisgIAlaRU5EX05V TExfSEFORExFUiwKKyAgCVpFTkRfTlVMTF9IQU5ETEVSLAorICAJWkVORF9KTVBfU0VUX1NQ RUNfQ1ZfSEFORExFUiwKKyAgCVpFTkRfSk1QX1NFVF9TUEVDX0NWX0hBTkRMRVIsCisgIAla RU5EX0pNUF9TRVRfU1BFQ19DVl9IQU5ETEVSLAorICAJWkVORF9KTVBfU0VUX1NQRUNfQ1Zf SEFORExFUiwKKyAgCVpFTkRfSk1QX1NFVF9TUEVDX0NWX0hBTkRMRVIsCiAgIAlaRU5EX05V TExfSEFORExFUgogICB9OwogICB6ZW5kX29wY29kZV9oYW5kbGVycyA9IChvcGNvZGVfaGFu ZGxlcl90KilsYWJlbHM7CkluZGV4OiBaZW5kL3plbmRfdm1fb3Bjb2Rlcy5oCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KUkNTIGZpbGU6IC9yZXBvc2l0b3J5L1plbmRFbmdpbmUyL3plbmRfdm1fb3Bjb2Rl cy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjY4CmRpZmYgLXUgLXAgLWQgLXIxLjY4IHpl bmRfdm1fb3Bjb2Rlcy5oCi0tLSBaZW5kL3plbmRfdm1fb3Bjb2Rlcy5oCTEgSmFuIDIwMDcg MDk6Mjk6MjEgLTAwMDAJMS42OAorKysgWmVuZC96ZW5kX3ZtX29wY29kZXMuaAk1IE1hciAy MDA3IDIyOjM3OjQ4IC0wMDAwCkBAIC0xNDksMyArMTQ5LDQgQEAKICNkZWZpbmUgWkVORF9I QU5ETEVfRVhDRVBUSU9OICAgICAgICAxNDkKICNkZWZpbmUgWkVORF9VU0VSX09QQ09ERSAg ICAgICAgICAgICAxNTAKICNkZWZpbmUgWkVORF9VX05PUk1BTElaRSAgICAgICAgICAgICAx NTEKKyNkZWZpbmUgWkVORF9KTVBfU0VUICAgICAgICAgICAgICAgICAxNTIK ------------981906D259BFEF9--