From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 34234 invoked by alias); 20 Nov 2017 20:32:05 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 34220 invoked by uid 89); 20 Nov 2017 20:32:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-15.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_NUMSUBJECT,KB_WAM_FROM_NAME_SINGLEWORD,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=yellow, ansi, Gray, cmap X-HELO: limerock01.mail.cornell.edu Received: from limerock01.mail.cornell.edu (HELO limerock01.mail.cornell.edu) (128.84.13.241) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 20 Nov 2017 20:32:01 +0000 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu [10.16.197.8]) by limerock01.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id vAKKVw8Z025419 for ; Mon, 20 Nov 2017 15:31:59 -0500 Received: from [192.168.0.4] (mta-68-175-129-7.twcny.rr.com [68.175.129.7] (may be forged)) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id vAKKVv12007929 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Mon, 20 Nov 2017 15:31:57 -0500 Subject: Re: [ITA] libXpm-noX 3.5.12 To: cygwin-apps@cygwin.com References: <42655021-e72b-849e-6d83-a9e5941e1cec@cornell.edu> From: Ken Brown Message-ID: Date: Mon, 20 Nov 2017 20:32:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------7586AF40E52AEADA162E0EE5" X-PMX-Cornell-Gauge: Gauge=XXXXX X-PMX-CORNELL-AUTH-RESULTS: dkim-out=none; X-IsSubscribed: yes X-SW-Source: 2017-11/txt/msg00088.txt.bz2 This is a multi-part message in MIME format. --------------7586AF40E52AEADA162E0EE5 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 1083 On 11/20/2017 11:42 AM, Jon Turney wrote: > On 15/11/2017 17:30, Ken Brown wrote: >> My cygport file and other files needed for reproducing the build are >> attached. > > I added this to your uploads, but this fails to build for me: > > libXpm-nox/libXpm-noX-3.5.12-1.src/libXpm-noX-3.5.12-1.x86_6/src/libXpm-3.5.12/src/simx.c:42:40: > fatal error: xpmi.h: No such file or directory >  #include "xpmi.h"   /* for XpmMalloc */ > > which looks like some sort of case-sensitivity issue vs. XpmI.h, but I > can't see that it's introduced by your patches, and I don't understand > how it could be present in upstream... Thanks for checking the build. I didn't catch this because I did the build on a Cygwin installation that was case insensitive (which is not my usual habit). The problem actually is present in upstream. But it isn't a problem from the upstream point of view because the file simx.c is intended for the native Windows build, where case insensitivity can be assumed. For the record, I'm attaching a revised 04-source-code.patch that fixes this. Ken --------------7586AF40E52AEADA162E0EE5 Content-Type: text/plain; charset=UTF-8; name="04-source-code.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="04-source-code.patch" Content-length: 36629 ZGlmZiAtdXJOIC14IENZR1dJTi1QQVRDSEVTIG9yaWdzcmMvbGliWHBtLTMu NS4xMC9pbmNsdWRlL1gxMS94cG0uaCBzcmMvbGliWHBtLTMuNS4xMC9pbmNs dWRlL1gxMS94cG0uaAotLS0gb3JpZ3NyYy9saWJYcG0tMy41LjEwL2luY2x1 ZGUvWDExL3hwbS5oCTIwMTItMDMtMDcgMjM6NDA6MDguMDAwMDAwMDAwIC0w NTAwCisrKyBzcmMvbGliWHBtLTMuNS4xMC9pbmNsdWRlL1gxMS94cG0uaAky MDEzLTA2LTMwIDE4OjQxOjExLjIzNDc4NTkwMCAtMDQwMApAQCAtMzMsNyAr MzMsNyBAQAogXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog CiAvKgotICogVGhlIGNvZGUgcmVsYXRlZCB0byBGT1JfTVNXIGhhcyBiZWVu IGFkZGVkIGJ5CisgKiBUaGUgY29kZSByZWxhdGVkIHRvIFhQTV9OT19YIGhh cyBiZWVuIGFkZGVkIGJ5CiAgKiBIZUR1IChoZWR1QGN1bC1pcG4udW5pLWtp ZWwuZGUpIDQvOTQKICAqLwogCkBAIC00Miw2ICs0MiwxMSBAQAogICogTG9y ZW5zIFlvdW5lcyAoZDkzLWh5b0BuYWRhLmt0aC5zZSkgNC85NgogICovCiAK Ky8qIAorICogVGhlIGNvZGUgcmVsYXRlZCB0byBDWUdXSU4gaGFzIGJlZW4g YWRkZWQgYnkKKyAqIENoYXJsZXMgV2lsc29uIChjeWd3aW5AY3lnd2luLmNv bSkgMTAvMDAKKyAqLworCiAjaWZuZGVmIFhQTV9oCiAjZGVmaW5lIFhQTV9o CiAKQEAgLTYyLDIxICs2NywzMyBAQAogI2RlZmluZSBYcG1SZXZpc2lvbiAx MQogI2RlZmluZSBYcG1JbmNsdWRlVmVyc2lvbiAoKFhwbUZvcm1hdCAqIDEw MCArIFhwbVZlcnNpb24pICogMTAwICsgWHBtUmV2aXNpb24pCiAKKy8qIFhQ TV9OT19YIGFuZCBGT1JfTVNXIGFyZSBzeW5vbnltb3VzICovCisjaWZkZWYg WFBNX05PX1gKKyMgIGlmbmRlZiBGT1JfTVNXCisjICAgIGRlZmluZSBGT1Jf TVNXCisjICBlbmRpZgorI2VuZGlmCisjaWZkZWYgRk9SX01TVworIyAgaWZu ZGVmIFhQTV9OT19YCisjICAgIGRlZmluZSBYUE1fTk9fWAorIyAgZW5kaWYK KyNlbmRpZgorCiAjaWZuZGVmIFhQTV9OVU1CRVJTCiAKLSNpZmRlZiBGT1Jf TVNXCisjaWZkZWYgWFBNX05PX1gKICMgZGVmaW5lIFNZU1YJCQkvKiB1c2Vz IG1lbWNweSBzdHJpbmcuaCBldGMuICovCiAjIGluY2x1ZGUgPG1hbGxvYy5o PgogIyBpbmNsdWRlICJzaW14LmgiCQkvKiBkZWZpbmVzIHNvbWUgWCBzdHVm ZiB1c2luZyBNU1cgdHlwZXMgKi8KICNkZWZpbmUgTkVFRF9TVFJDQVNFQ01Q CQkvKiBhdCBsZWFzdCBmb3IgTVNWQysrICovCi0jZWxzZSAvKiBGT1JfTVNX ICovCisjZWxzZSAvKiBYUE1fTk9fWCAqLwogIyBpZmRlZiBBTUlHQQogIyAg aW5jbHVkZSAiYW1pZ2F4LmgiCiAjIGVsc2UgLyogbm90IEFNSUdBICovCiAj ICBpbmNsdWRlIDxYMTEvWGxpYi5oPgogIyAgaW5jbHVkZSA8WDExL1h1dGls Lmg+CiAjIGVuZGlmIC8qIG5vdCBBTUlHQSAqLwotI2VuZGlmIC8qIEZPUl9N U1cgKi8KKyNlbmRpZiAvKiBYUE1fTk9fWCAqLwogCiAvKiBsZXQncyBkZWZp bmUgUGl4ZWwgaWYgaXQgaXMgbm90IGRvbmUgeWV0ICovCiAjaWYgISBkZWZp bmVkKF9YdEludHJpbnNpY19oKSAmJiAhIGRlZmluZWQoUElYRUxfQUxSRUFE WV9UWVBFREVGRUQpCkBAIC0yNTUsNyArMjcyLDcgQEAKICNkZWZpbmUgWHBt UmV0dXJuQ29tbWVudHMgIFhwbUNvbW1lbnRzCiAKIC8qIFhwbUF0dHJpYnV0 ZXMgbWFza19waXhlbCB2YWx1ZSB3aGVuIHRoZXJlIGlzIG5vIG1hc2sgKi8K LSNpZm5kZWYgRk9SX01TVworI2lmbmRlZiBYUE1fTk9fWAogI2RlZmluZSBY cG1VbmRlZlBpeGVsIDB4ODAwMDAwMDAKICNlbHNlCiAvKiBpbnQgaXMgb25s eSAxNiBiaXQgZm9yIE1TVyAqLwpAQCAtMjg1LDEwICszMDIsMTAgQEAKIAog X1hGVU5DUFJPVE9CRUdJTgogCi0vKiBGT1JfTVNXLCBhbGwgLi5QaXhtYXAu LiBhcmUgZXhjbHVkZWQsIG9ubHkgdGhlIC4uWEltYWdlLi4gYXJlIHVzZWQg Ki8KKy8qIFhQTV9OT19YLCBhbGwgLi5QaXhtYXAuLiBhcmUgZXhjbHVkZWQs IG9ubHkgdGhlIC4uWEltYWdlLi4gYXJlIHVzZWQgKi8KIC8qIFNhbWUgZm9y IEFtaWdhISAqLwogCi0jaWYgIWRlZmluZWQoRk9SX01TVykgJiYgIWRlZmlu ZWQoQU1JR0EpCisjaWYgIWRlZmluZWQoWFBNX05PX1gpICYmICFkZWZpbmVk KEFNSUdBKQogICAgIEZVTkMoWHBtQ3JlYXRlUGl4bWFwRnJvbURhdGEsIGlu dCwgKERpc3BsYXkgKmRpc3BsYXksCiAJCQkJCURyYXdhYmxlIGQsCiAJCQkJ CWNoYXIgKipkYXRhLApAQCAtMzQ1LDcgKzM2Miw3IEBACiAJCQkJCSBYSW1h Z2UgKippbWFnZV9yZXR1cm4sCiAJCQkJCSBYSW1hZ2UgKipzaGFwZW1hc2tf cmV0dXJuLAogCQkJCQkgWHBtQXR0cmlidXRlcyAqYXR0cmlidXRlcykpOwot I2lmICFkZWZpbmVkKEZPUl9NU1cpICYmICFkZWZpbmVkKEFNSUdBKQorI2lm ICFkZWZpbmVkKFhQTV9OT19YKSAmJiAhZGVmaW5lZChBTUlHQSkKICAgICBG VU5DKFhwbUNyZWF0ZVBpeG1hcEZyb21CdWZmZXIsIGludCwgKERpc3BsYXkg KmRpc3BsYXksCiAJCQkJCSAgRHJhd2FibGUgZCwKIAkJCQkJICBjaGFyICpi dWZmZXIsCkBAIC0zODksNyArNDA2LDcgQEAKICAgICBGVU5DKFhwbVdyaXRl RmlsZUZyb21YcG1JbWFnZSwgaW50LCAoY2hhciAqZmlsZW5hbWUsCiAJCQkJ CSBYcG1JbWFnZSAqaW1hZ2UsCiAJCQkJCSBYcG1JbmZvICppbmZvKSk7Ci0j aWYgIWRlZmluZWQoRk9SX01TVykgJiYgIWRlZmluZWQoQU1JR0EpCisjaWYg IWRlZmluZWQoWFBNX05PX1gpICYmICFkZWZpbmVkKEFNSUdBKQogICAgIEZV TkMoWHBtQ3JlYXRlUGl4bWFwRnJvbVhwbUltYWdlLCBpbnQsIChEaXNwbGF5 ICpkaXNwbGF5LAogCQkJCQkgICAgRHJhd2FibGUgZCwKIAkJCQkJICAgIFhw bUltYWdlICppbWFnZSwKQEAgLTQwOCw3ICs0MjUsNyBAQAogCQkJCQkgICBY SW1hZ2UgKnNoYXBlaW1hZ2UsCiAJCQkJCSAgIFhwbUltYWdlICp4cG1pbWFn ZSwKIAkJCQkJICAgWHBtQXR0cmlidXRlcyAqYXR0cmlidXRlcykpOwotI2lm ICFkZWZpbmVkKEZPUl9NU1cpICYmICFkZWZpbmVkKEFNSUdBKQorI2lmICFk ZWZpbmVkKFhQTV9OT19YKSAmJiAhZGVmaW5lZChBTUlHQSkKICAgICBGVU5D KFhwbUNyZWF0ZVhwbUltYWdlRnJvbVBpeG1hcCwgaW50LCAoRGlzcGxheSAq ZGlzcGxheSwKIAkJCQkJICAgIFBpeG1hcCBwaXhtYXAsCiAJCQkJCSAgICBQ aXhtYXAgc2hhcGVtYXNrLApkaWZmIC11ck4gLXggQ1lHV0lOLVBBVENIRVMg b3JpZ3NyYy9saWJYcG0tMy41LjEwL3NyYy9jcmVhdGUuYyBzcmMvbGliWHBt LTMuNS4xMC9zcmMvY3JlYXRlLmMKLS0tIG9yaWdzcmMvbGliWHBtLTMuNS4x MC9zcmMvY3JlYXRlLmMJMjAxMi0wMy0wNyAyMzo0MDowOC4wMDAwMDAwMDAg LTA1MDAKKysrIHNyYy9saWJYcG0tMy41LjEwL3NyYy9jcmVhdGUuYwkyMDEz LTA2LTMwIDE4OjQyOjIzLjc4OTkzNTgwMCAtMDQwMApAQCAtMzQsNyArMzQs NyBAQAogXCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAv KgotICogVGhlIGNvZGUgcmVsYXRlZCB0byBGT1JfTVNXIGhhcyBiZWVuIGFk ZGVkIGJ5CisgKiBUaGUgY29kZSByZWxhdGVkIHRvIFhQTV9OT19YIGhhcyBi ZWVuIGFkZGVkIGJ5CiAgKiBIZUR1IChoZWR1QGN1bC1pcG4udW5pLWtpZWwu ZGUpIDQvOTQKICAqLwogCkBAIC01OCw3ICs1OCw3IEBACiBMRlVOQyhGcmVl Q29sb3JzLCBpbnQsIChEaXNwbGF5ICpkaXNwbGF5LCBDb2xvcm1hcCBjb2xv cm1hcCwKIAkJCVBpeGVsICpwaXhlbHMsIGludCBuLCB2b2lkICpjbG9zdXJl KSk7CiAKLSNpZm5kZWYgRk9SX01TVworI2lmbmRlZiBYUE1fTk9fWAogTEZV TkMoU2V0Q2xvc2VDb2xvciwgaW50LCAoRGlzcGxheSAqZGlzcGxheSwgQ29s b3JtYXAgY29sb3JtYXAsCiAJCQkgICBWaXN1YWwgKnZpc3VhbCwgWENvbG9y ICpjb2wsCiAJCQkgICBQaXhlbCAqaW1hZ2VfcGl4ZWwsIFBpeGVsICptYXNr X3BpeGVsLApAQCAtODksMTQgKzg5LDE0IEBACiAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBpeGVsICphbGxvY19waXhlbHMsIHVuc2lnbmVkIGludCAq bmFsbG9jX3BpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4 ZWwgKnVzZWRfcGl4ZWxzLCB1bnNpZ25lZCBpbnQgKm51c2VkX3BpeGVscykp OwogCi0jaWZuZGVmIEZPUl9NU1cKKyNpZm5kZWYgWFBNX05PX1gKIExGVU5D KFBhcnNlQW5kUHV0UGl4ZWxzLCBpbnQsICh4cG1EYXRhICpkYXRhLCB1bnNp Z25lZCBpbnQgd2lkdGgsCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGhlaWdo dCwgdW5zaWduZWQgaW50IG5jb2xvcnMsCiAJCQkgICAgICAgdW5zaWduZWQg aW50IGNwcCwgWHBtQ29sb3IgKmNvbG9yVGFibGUsCiAJCQkgICAgICAgeHBt SGFzaFRhYmxlICpoYXNodGFibGUsCiAJCQkgICAgICAgWEltYWdlICppbWFn ZSwgUGl4ZWwgKmltYWdlX3BpeGVscywKIAkJCSAgICAgICBYSW1hZ2UgKm1h c2ssIFBpeGVsICptYXNrX3BpeGVscykpOwotI2Vsc2UgIC8qIEZPUl9NU1cg Ki8KKyNlbHNlICAvKiBYUE1fTk9fWCAqLwogTEZVTkMoUGFyc2VBbmRQdXRQ aXhlbHMsIGludCwgKERpc3BsYXkgKmRjLCB4cG1EYXRhICpkYXRhLCB1bnNp Z25lZCBpbnQgd2lkdGgsCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGhlaWdo dCwgdW5zaWduZWQgaW50IG5jb2xvcnMsCiAJCQkgICAgICAgdW5zaWduZWQg aW50IGNwcCwgWHBtQ29sb3IgKmNvbG9yVGFibGUsCkBAIC0xMDUsNyArMTA1 LDcgQEAKIAkJCSAgICAgICBYSW1hZ2UgKm1hc2ssIFBpeGVsICptYXNrX3Bp eGVscykpOwogI2VuZGlmCiAKLSNpZm5kZWYgRk9SX01TVworI2lmbmRlZiBY UE1fTk9fWAogIyBpZm5kZWYgQU1JR0EKIC8qIFhJbWFnZSBwaXhlbCByb3V0 aW5lcyAqLwogTEZVTkMoUHV0SW1hZ2VQaXhlbHMsIHZvaWQsIChYSW1hZ2Ug KmltYWdlLCB1bnNpZ25lZCBpbnQgd2lkdGgsCkBAIC0xNDYsMTIgKzE0Niwx MiBAQAogCQkJICAgICAgdW5zaWduZWQgaW50IGhlaWdodCwgdW5zaWduZWQg aW50ICpwaXhlbGluZGV4LAogCQkJICAgICAgUGl4ZWwgKnBpeGVscykpOwog IyBlbmRpZi8qIEFNSUdBICovCi0jZWxzZSAgLyogRk9SX01TVyAqLwotLyog Rk9SX01TVyBwaXhlbCByb3V0aW5lICovCisjZWxzZSAgLyogWFBNX05PX1gg Ki8KKy8qIFhQTV9OT19YIHBpeGVsIHJvdXRpbmUgKi8KIExGVU5DKE1TV1B1 dEltYWdlUGl4ZWxzLCB2b2lkLCAoRGlzcGxheSAqZGMsIFhJbWFnZSAqaW1h Z2UsCiAJCQkJdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVp Z2h0LAogCQkJCXVuc2lnbmVkIGludCAqcGl4ZWxpbmRleCwgUGl4ZWwgKnBp eGVscykpOwotI2VuZGlmIC8qIEZPUl9NU1cgKi8KKyNlbmRpZiAvKiBYUE1f Tk9fWCAqLwogCiAjaWZkZWYgTkVFRF9TVFJDQVNFQ01QCiBGVU5DKHhwbXN0 cmNhc2VjbXAsIGludCwgKGNoYXIgKnMxLCBjaGFyICpzMikpOwpAQCAtMTg2 LDcgKzE4Niw3IEBACiBzdGF0aWMgaW50CiB4cG1WaXN1YWxUeXBlKFZpc3Vh bCAqdmlzdWFsKQogewotI2lmbmRlZiBGT1JfTVNXCisjaWZuZGVmIFhQTV9O T19YCiAjIGlmbmRlZiBBTUlHQQogICAgIHN3aXRjaCAodmlzdWFsLT5jbGFz cykgewogICAgIGNhc2UgU3RhdGljR3JheToKQEAgLTIwNyw3ICsyMDcsNyBA QAogICAgIHJldHVybiAoWFBNX0NPTE9SKTsKICMgZW5kaWYKICNlbHNlCi0g ICAgLyogdGhlcmUgc2hvdWxkIGJlIGEgc2ltaWxhciBzd2l0Y2ggZm9yIE1T VyAqLworICAgIC8qIHRoZXJlIHNob3VsZCBiZSBhIHNpbWlsYXIgc3dpdGNo IGZvciBYUE1fTk9fWCAqLwogICAgIHJldHVybiAoWFBNX0NPTE9SKTsKICNl bmRpZgogfQpAQCAtMjQ5LDcgKzI0OSw3IEBACiB9CiAKIAotI2lmbmRlZiBG T1JfTVNXCisjaWZuZGVmIFhQTV9OT19YCiAvKgogICogc2V0IGEgY2xvc2Ug Y29sb3IgaW4gY2FzZSB0aGUgZXhhY3Qgb25lIGNhbid0IGJlIHNldAogICog cmV0dXJuIDAgaWYgc3VjY2VzcywgMSBvdGhlcndpc2UuCkBAIC00MzAsNyAr NDMwLDcgQEAKICAgICAgIHx8IGF0dHJpYnV0ZXMtPmJsdWVfY2xvc2VuZXNz ICE9IDApKSkKIAogI2Vsc2UKLSAgICAvKiBGT1JfTVNXIHBhcnQgKi8KKyAg ICAvKiBYUE1fTk9fWCBwYXJ0ICovCiAgICAgLyogbm90aGluZyB0byBkbyBo ZXJlLCB0aGUgd2luZG93IHN5c3RlbSBkb2VzIGl0ICovCiAjZW5kaWYKIApA QCAtNDY4LDcgKzQ2OCw3IEBACiAJICAgIHJldHVybiAoMSk7CiAKIAlpZiAo c3RhdHVzID09IDApIHsKLSNpZm5kZWYgRk9SX01TVworI2lmbmRlZiBYUE1f Tk9fWAogCSAgICBpZiAoVVNFX0NMT1NFQ09MT1IpCiAJCXJldHVybiAoU2V0 Q2xvc2VDb2xvcihkaXNwbGF5LCBjb2xvcm1hcCwgdmlzdWFsLCAmeGNvbG9y LAogCQkJCSAgICAgIGltYWdlX3BpeGVsLCBtYXNrX3BpeGVsLApAQCAtNDc2 LDEyICs0NzYsMTIgQEAKIAkJCQkgICAgICBhdHRyaWJ1dGVzLCBjb2xzLCBu Y29scywKIAkJCQkgICAgICBhbGxvY0NvbG9yLCBjbG9zdXJlKSk7CiAJICAg IGVsc2UKLSNlbmRpZiAvKiBuZGVmIEZPUl9NU1cgKi8KKyNlbmRpZiAvKiBu ZGVmIFhQTV9OT19YICovCiAJCXJldHVybiAoMSk7CiAJfSBlbHNlCiAJICAg IGFsbG9jX3BpeGVsc1soKm5hbGxvY19waXhlbHMpKytdID0geGNvbG9yLnBp eGVsOwogCSppbWFnZV9waXhlbCA9IHhjb2xvci5waXhlbDsKLSNpZm5kZWYg Rk9SX01TVworI2lmbmRlZiBYUE1fTk9fWAogCSptYXNrX3BpeGVsID0gMTsK ICNlbHNlCiAJKm1hc2tfcGl4ZWwgPSBSR0IoMCwwLDApOwpAQCAtNDg5LDcg KzQ4OSw3IEBACiAJdXNlZF9waXhlbHNbKCpudXNlZF9waXhlbHMpKytdID0g eGNvbG9yLnBpeGVsOwogICAgIH0gZWxzZSB7CiAJKmltYWdlX3BpeGVsID0g MDsKLSNpZm5kZWYgRk9SX01TVworI2lmbmRlZiBYUE1fTk9fWAogCSptYXNr X3BpeGVsID0gMDsKICNlbHNlCiAgIAkqbWFza19waXhlbCA9IFJHQigyNTUs MjU1LDI1NSk7CkBAIC01NjgsNyArNTY4LDcgQEAKICAgICBlbHNlCiAJY2xv c3VyZSA9IE5VTEw7CiAKLSNpZm5kZWYgRk9SX01TVworI2lmbmRlZiBYUE1f Tk9fWAogICAgIGlmIChVU0VfQ0xPU0VDT0xPUikgewogCS8qIG9yaWdpbmFs bHkgZnJvbSBTZXRDbG9zZUNvbG9yICovCiAjaWYgMApAQCAtNTk5LDcgKzU5 OSw3IEBACiAJfQogI2VuZGlmCiAgICAgfQotI2VuZGlmIC8qIG5kZWYgRk9S X01TVyAqLworI2VuZGlmIC8qIG5kZWYgWFBNX05PX1ggKi8KIAogICAgIHN3 aXRjaCAoa2V5KSB7CiAgICAgY2FzZSBYUE1fTU9OTzoKQEAgLTg1OCw3ICs4 NTgsNyBAQAogCWlmIChFcnJvclN0YXR1cyAhPSBYcG1TdWNjZXNzKQogCSAg ICBSRVRVUk4oRXJyb3JTdGF0dXMpOwogCi0jaWZuZGVmIEZPUl9NU1cKKyNp Zm5kZWYgWFBNX05PX1gKICMgaWZuZGVmIEFNSUdBCiAKIAkvKgpAQCAtODg1 LDcgKzg4NSw3IEBACiAJQVB1dEltYWdlUGl4ZWxzKHhpbWFnZSwgaW1hZ2Ut PndpZHRoLCBpbWFnZS0+aGVpZ2h0LAogCQkJaW1hZ2UtPmRhdGEsIGltYWdl X3BpeGVscyk7CiAjIGVuZGlmCi0jZWxzZSAgLyogRk9SX01TVyAqLworI2Vs c2UgIC8qIFhQTV9OT19YICovCiAJTVNXUHV0SW1hZ2VQaXhlbHMoZGlzcGxh eSwgeGltYWdlLCBpbWFnZS0+d2lkdGgsIGltYWdlLT5oZWlnaHQsCiAJCQkg IGltYWdlLT5kYXRhLCBpbWFnZV9waXhlbHMpOwogI2VuZGlmCkBAIC04OTcs NyArODk3LDcgQEAKIAlpZiAoRXJyb3JTdGF0dXMgIT0gWHBtU3VjY2VzcykK IAkgICAgUkVUVVJOKEVycm9yU3RhdHVzKTsKIAotI2lmbmRlZiBGT1JfTVNX CisjaWZuZGVmIFhQTV9OT19YCiAjIGlmbmRlZiBBTUlHQQogCVB1dEltYWdl UGl4ZWxzMShzaGFwZWltYWdlLCBpbWFnZS0+d2lkdGgsIGltYWdlLT5oZWln aHQsCiAJCQlpbWFnZS0+ZGF0YSwgbWFza19waXhlbHMpOwpAQCAtOTA1LDcg KzkwNSw3IEBACiAJQVB1dEltYWdlUGl4ZWxzKHNoYXBlaW1hZ2UsIGltYWdl LT53aWR0aCwgaW1hZ2UtPmhlaWdodCwKIAkJCWltYWdlLT5kYXRhLCBtYXNr X3BpeGVscyk7CiAjIGVuZGlmCi0jZWxzZSAgLyogRk9SX01TVyAqLworI2Vs c2UgIC8qIFhQTV9OT19YICovCiAJTVNXUHV0SW1hZ2VQaXhlbHMoZGlzcGxh eSwgc2hhcGVpbWFnZSwgaW1hZ2UtPndpZHRoLCBpbWFnZS0+aGVpZ2h0LAog CQkJICBpbWFnZS0+ZGF0YSwgbWFza19waXhlbHMpOwogI2VuZGlmCkBAIC05 OTAsNyArOTkwLDcgQEAKICAgICBpZiAoISppbWFnZV9yZXR1cm4pCiAJcmV0 dXJuIChYcG1Ob01lbW9yeSk7CiAKLSNpZiAhZGVmaW5lZChGT1JfTVNXKSAm JiAhZGVmaW5lZChBTUlHQSkKKyNpZiAhZGVmaW5lZChYUE1fTk9fWCkgJiYg IWRlZmluZWQoQU1JR0EpCiAgICAgaWYgKGhlaWdodCAhPSAwICYmICgqaW1h Z2VfcmV0dXJuKS0+Ynl0ZXNfcGVyX2xpbmUgPj0gSU5UX01BWCAvIGhlaWdo dCkgewogCVhEZXN0cm95SW1hZ2UoKmltYWdlX3JldHVybik7CiAJcmV0dXJu IFhwbU5vTWVtb3J5OwpAQCAtMTAwNywxMiArMTAwNywxMiBAQAogCXJldHVy biAoWHBtTm9NZW1vcnkpOwogICAgIH0KICNlbHNlCi0gICAgLyogdW5kZXIg Rk9SX01TVyBhbmQgQU1JR0EgWENyZWF0ZUltYWdlIGhhcyBkb25lIGl0IGFs bCAqLworICAgIC8qIHVuZGVyIFhQTV9OT19YIGFuZCBBTUlHQSBYQ3JlYXRl SW1hZ2UgaGFzIGRvbmUgaXQgYWxsICovCiAjZW5kaWYKICAgICByZXR1cm4g KFhwbVN1Y2Nlc3MpOwogfQogCi0jaWZuZGVmIEZPUl9NU1cKKyNpZm5kZWYg WFBNX05PX1gKICMgaWZuZGVmIEFNSUdBCiAvKgogICogVGhlIGZ1bmN0aW9u cyBiZWxvdyBhcmUgd3JpdHRlbiBmcm9tIFgxMVI1IE1JVCdzIGNvZGUgKFhJ bVV0aWwuYykKQEAgLTE3MjEsNyArMTcyMSw3IEBACiB9CiAKICMgZW5kaWYv KiBBTUlHQSAqLwotI2Vsc2UgIC8qIEZPUl9NU1cgcGFydCBmb2xsb3dzICov CisjZWxzZSAgLyogWFBNX05PX1ggcGFydCBmb2xsb3dzICovCiBzdGF0aWMg dm9pZAogTVNXUHV0SW1hZ2VQaXhlbHMoCiAgICAgRGlzcGxheQkJKmRjLApA QCAtMTc0NCwxMSArMTc0NCwxMSBAQAogICAgIFNlbGVjdE9iamVjdCgqZGMs IG9ibSk7CiB9CiAKLSNlbmRpZiAvKiBGT1JfTVNXICovCisjZW5kaWYgLyog WFBNX05PX1ggKi8KIAogCiAKLSNpZiAhZGVmaW5lZChGT1JfTVNXKSAmJiAh ZGVmaW5lZChBTUlHQSkKKyNpZiAhZGVmaW5lZChYUE1fTk9fWCkgJiYgIWRl ZmluZWQoQU1JR0EpCiAKIHN0YXRpYyBpbnQKIFB1dFBpeGVsMSgKQEAgLTE5 NjYsNyArMTk2Niw3IEBACiAgICAgcmV0dXJuIDE7CiB9CiAKLSNlbmRpZiAv KiBub3QgRk9SX01TVyAmJiBub3QgQU1JR0EgKi8KKyNlbmRpZiAvKiBub3Qg WFBNX05PX1ggJiYgbm90IEFNSUdBICovCiAKIC8qCiAgKiBUaGlzIGZ1bmN0 aW9uIHBhcnNlcyBhbiBYcG0gZmlsZSBvciBkYXRhIGFuZCBkaXJlY3RseSBj cmVhdGUgYW4gWEltYWdlCkBAIC0yMTMzLDcgKzIxMzMsNyBAQAogCWlmIChF cnJvclN0YXR1cyAhPSBYcG1TdWNjZXNzKQogCSAgICBSRVRVUk4oRXJyb3JT dGF0dXMpOwogCi0jaWYgIWRlZmluZWQoRk9SX01TVykgJiYgIWRlZmluZWQo QU1JR0EpCisjaWYgIWRlZmluZWQoWFBNX05PX1gpICYmICFkZWZpbmVkKEFN SUdBKQogCiAJLyoKIAkgKiBzZXQgdGhlIFhJbWFnZSBwb2ludGVyIGZ1bmN0 aW9uLCB0byBiZSB1c2VkIHdpdGggWFB1dFBpeGVsLApAQCAtMjE2Nyw3ICsy MTY3LDcgQEAKIAkgICAgeGltYWdlLT5mLnB1dF9waXhlbCA9IFB1dFBpeGVs MTsKIAllbHNlCiAJICAgIHhpbWFnZS0+Zi5wdXRfcGl4ZWwgPSBQdXRQaXhl bDsKLSNlbmRpZiAvKiBub3QgRk9SX01TVyAmJiBub3QgQU1JR0EgKi8KKyNl bmRpZiAvKiBub3QgWFBNX05PX1ggJiYgbm90IEFNSUdBICovCiAgICAgfQog CiAgICAgLyogY3JlYXRlIHRoZSBzaGFwZSBtYXNrIGltYWdlICovCkBAIC0y MTc3LDcgKzIxNzcsNyBAQAogCWlmIChFcnJvclN0YXR1cyAhPSBYcG1TdWNj ZXNzKQogCSAgICBSRVRVUk4oRXJyb3JTdGF0dXMpOwogCi0jaWYgIWRlZmlu ZWQoRk9SX01TVykgJiYgIWRlZmluZWQoQU1JR0EpCisjaWYgIWRlZmluZWQo WFBNX05PX1gpICYmICFkZWZpbmVkKEFNSUdBKQogCWlmIChzaGFwZWltYWdl LT5iaXRtYXBfYml0X29yZGVyID09IE1TQkZpcnN0KQogCSAgICBzaGFwZWlt YWdlLT5mLnB1dF9waXhlbCA9IFB1dFBpeGVsMU1TQjsKIAllbHNlCkBAIC0y MTg5LDcgKzIxODksNyBAQAogICAgICAqIHJlYWQgcGl4ZWxzIGFuZCBwdXQg dGhlbSBpbiB0aGUgWEltYWdlCiAgICAgICovCiAgICAgRXJyb3JTdGF0dXMg PSBQYXJzZUFuZFB1dFBpeGVscygKLSNpZmRlZiBGT1JfTVNXCisjaWZkZWYg WFBNX05PX1gKIAkJCQkgICAgZGlzcGxheSwKICNlbmRpZgogCQkJCSAgICBk YXRhLCB3aWR0aCwgaGVpZ2h0LCBuY29sb3JzLCBjcHAsCkBAIC0yMzA5LDcg KzIzMDksNyBAQAogCiBzdGF0aWMgaW50CiBQYXJzZUFuZFB1dFBpeGVscygK LSNpZmRlZiBGT1JfTVNXCisjaWZkZWYgWFBNX05PX1gKICAgICBEaXNwbGF5 CQkqZGMsCiAjZW5kaWYKICAgICB4cG1EYXRhCQkqZGF0YSwKQEAgLTIzMzIs NyArMjMzMiw3IEBACiAJCQkJCSAqIGNvbG9ycyAqLwogCXsKIAkgICAgdW5z aWduZWQgc2hvcnQgY29saWR4WzI1Nl07Ci0jaWZkZWYgRk9SX01TVworI2lm ZGVmIFhQTV9OT19YCiAJICAgIEhEQyBzaGFwZWRjOwogCSAgICBIQklUTUFQ IG9ibSwgc29ibTsKIApAQCAtMjM1Nyw3ICsyMzU3LDcgQEAKIAkJICAgIGlu dCBjID0geHBtR2V0QyhkYXRhKTsKIAogCQkgICAgaWYgKGMgPiAwICYmIGMg PCAyNTYgJiYgY29saWR4W2NdICE9IDApIHsKLSNpZm5kZWYgRk9SX01TVwor I2lmbmRlZiBYUE1fTk9fWAogCQkJWFB1dFBpeGVsKGltYWdlLCB4LCB5LCBp bWFnZV9waXhlbHNbY29saWR4W2NdIC0gMV0pOwogCQkJaWYgKHNoYXBlaW1h Z2UpCiAJCQkgICAgWFB1dFBpeGVsKHNoYXBlaW1hZ2UsIHgsIHksCkBAIC0y MzcyLDcgKzIzNzIsNyBAQAogCQkJcmV0dXJuIChYcG1GaWxlSW52YWxpZCk7 CiAJCX0KIAkgICAgfQotI2lmZGVmIEZPUl9NU1cKKyNpZmRlZiBYUE1fTk9f WAogCSAgICBpZiAoIHNoYXBlZGMgKSB7CiAJICAgICAgICBTZWxlY3RPYmpl Y3Qoc2hhcGVkYywgc29ibSk7CiAJCURlbGV0ZURDKHNoYXBlZGMpOwpAQCAt MjQxNiw3ICsyNDE2LDcgQEAKIAkJCWludCBjYzIgPSB4cG1HZXRDKGRhdGEp OwogCQkJaWYgKGNjMiA+IDAgJiYgY2MyIDwgMjU2ICYmCiAJCQkgICAgY2lk eFtjYzFdICYmIGNpZHhbY2MxXVtjYzJdICE9IDApIHsKLSNpZm5kZWYgRk9S X01TVworI2lmbmRlZiBYUE1fTk9fWAogCQkJICAgIFhQdXRQaXhlbChpbWFn ZSwgeCwgeSwKIAkJCQkgICAgICBpbWFnZV9waXhlbHNbY2lkeFtjYzFdW2Nj Ml0gLSAxXSk7CiAJCQkgICAgaWYgKHNoYXBlaW1hZ2UpCkBAIC0yNDY2LDcg KzI0NjYsNyBAQAogCQkJc2xvdCA9IHhwbUhhc2hTbG90KGhhc2h0YWJsZSwg YnVmKTsKIAkJCWlmICghKnNsb3QpCS8qIG5vIGNvbG9yIG1hdGNoZXMgKi8K IAkJCSAgICByZXR1cm4gKFhwbUZpbGVJbnZhbGlkKTsKLSNpZm5kZWYgRk9S X01TVworI2lmbmRlZiBYUE1fTk9fWAogCQkJWFB1dFBpeGVsKGltYWdlLCB4 LCB5LAogCQkJCSAgaW1hZ2VfcGl4ZWxzW0hhc2hDb2xvckluZGV4KHNsb3Qp XSk7CiAJCQlpZiAoc2hhcGVpbWFnZSkKQEAgLTI0OTUsNyArMjQ5NSw3IEBA CiAJCQkJYnJlYWs7CiAJCQlpZiAoYSA9PSBuY29sb3JzKQkvKiBubyBjb2xv ciBtYXRjaGVzICovCiAJCQkgICAgcmV0dXJuIChYcG1GaWxlSW52YWxpZCk7 Ci0jaWZuZGVmIEZPUl9NU1cKKyNpZm5kZWYgWFBNX05PX1gKIAkJCVhQdXRQ aXhlbChpbWFnZSwgeCwgeSwgaW1hZ2VfcGl4ZWxzW2FdKTsKIAkJCWlmIChz aGFwZWltYWdlKQogCQkJICAgIFhQdXRQaXhlbChzaGFwZWltYWdlLCB4LCB5 LCBzaGFwZV9waXhlbHNbYV0pOwpkaWZmIC11ck4gLXggQ1lHV0lOLVBBVENI RVMgb3JpZ3NyYy9saWJYcG0tMy41LjEwL3NyYy9wYXJzZS5jIHNyYy9saWJY cG0tMy41LjEwL3NyYy9wYXJzZS5jCi0tLSBvcmlnc3JjL2xpYlhwbS0zLjUu MTAvc3JjL3BhcnNlLmMJMjAxMi0wMy0wNyAyMzo0MDowOC4wMDAwMDAwMDAg LTA1MDAKKysrIHNyYy9saWJYcG0tMy41LjEwL3NyYy9wYXJzZS5jCTIwMTMt MDYtMzAgMTg6NDI6NTQuMTY3NjczNDAwIC0wNDAwCkBAIC0zNCw3ICszNCw3 IEBACiBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8q Ci0gKiBUaGUgY29kZSByZWxhdGVkIHRvIEZPUl9NU1cgaGFzIGJlZW4gYWRk ZWQgYnkKKyAqIFRoZSBjb2RlIHJlbGF0ZWQgdG8gWFBNX05PX1ggaGFzIGJl ZW4gYWRkZWQgYnkKICAqIEhlRHUgKGhlZHVAY3VsLWlwbi51bmkta2llbC5k ZSkgNC85NAogICovCiAKQEAgLTM4Myw3ICszODMsNyBAQAogICAgIGlmICgo aGVpZ2h0ID4gMCAmJiB3aWR0aCA+PSBVSU5UX01BWCAvIGhlaWdodCkgfHwK IAl3aWR0aCAqIGhlaWdodCA+PSBVSU5UX01BWCAvIHNpemVvZih1bnNpZ25l ZCBpbnQpKQogCXJldHVybiBYcG1Ob01lbW9yeTsKLSNpZm5kZWYgRk9SX01T VworI2lmbmRlZiBYUE1fTk9fWAogICAgIGlwdHIyID0gKHVuc2lnbmVkIGlu dCAqKSBYcG1NYWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGludCkgKiB3aWR0aCAq IGhlaWdodCk7CiAjZWxzZQogCmRpZmYgLXVyTiAteCBDWUdXSU4tUEFUQ0hF UyBvcmlnc3JjL2xpYlhwbS0zLjUuMTAvc3JjL1JkRlRvQnVmLmMgc3JjL2xp YlhwbS0zLjUuMTAvc3JjL1JkRlRvQnVmLmMKLS0tIG9yaWdzcmMvbGliWHBt LTMuNS4xMC9zcmMvUmRGVG9CdWYuYwkyMDEyLTAzLTA3IDIzOjQwOjA4LjAw MDAwMDAwMCAtMDUwMAorKysgc3JjL2xpYlhwbS0zLjUuMTAvc3JjL1JkRlRv QnVmLmMJMjAxMy0wNi0zMCAxODo0MzowNi4yNDczNjQzMDAgLTA0MDAKQEAg LTMzLDcgKzMzLDcgQEAKIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KIAogLyoKLSAqIFRoZSBjb2RlIHJlbGF0ZWQgdG8gRk9SX01TVyBo YXMgYmVlbiBhZGRlZCBieQorICogVGhlIGNvZGUgcmVsYXRlZCB0byBYUE1f Tk9fWCBoYXMgYmVlbiBhZGRlZCBieQogICogSGVEdSAoaGVkdUBjdWwtaXBu LnVuaS1raWVsLmRlKSA0Lzk0CiAgKi8KIApAQCAtNDQsMTMgKzQ0LDEzIEBA CiAjZW5kaWYKICNpbmNsdWRlICJYcG1JLmgiCiAjaW5jbHVkZSA8c3lzL3N0 YXQuaD4KLSNpZiAhZGVmaW5lZChGT1JfTVNXKSAmJiAhZGVmaW5lZChXSU4z MikKKyNpZiBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8ICghZGVmaW5lZChYUE1f Tk9fWCkgJiYgIWRlZmluZWQoV0lOMzIpKQogI2luY2x1ZGUgPHVuaXN0ZC5o PgogI2VuZGlmCiAjaWZuZGVmIFZBWDExQwogI2luY2x1ZGUgPGZjbnRsLmg+ CiAjZW5kaWYKLSNpZiBkZWZpbmVkKEZPUl9NU1cpIHx8IGRlZmluZWQoV0lO MzIpCisjaWYgKGRlZmluZWQoWFBNX05PX1gpIHx8IGRlZmluZWQoV0lOMzIp KSAmJiAhZGVmaW5lZChfX0NZR1dJTl9fKQogI2luY2x1ZGUgPGlvLmg+CiAj ZGVmaW5lIHN0YXQgX3N0YXQKICNkZWZpbmUgZnN0YXQgX2ZzdGF0CmRpZmYg LXVyTiAteCBDWUdXSU4tUEFUQ0hFUyBvcmlnc3JjL2xpYlhwbS0zLjUuMTAv c3JjL1JkRlRvSS5jIHNyYy9saWJYcG0tMy41LjEwL3NyYy9SZEZUb0kuYwot LS0gb3JpZ3NyYy9saWJYcG0tMy41LjEwL3NyYy9SZEZUb0kuYwkyMDEyLTAz LTA3IDIzOjQwOjA4LjAwMDAwMDAwMCAtMDUwMAorKysgc3JjL2xpYlhwbS0z LjUuMTAvc3JjL1JkRlRvSS5jCTIwMTMtMDYtMzAgMTg6NDM6MTcuNTg3MDEy OTAwIC0wNDAwCkBAIC0zOCw2ICszOCw5IEBACiAjaW5jbHVkZSA8Y29uZmln Lmg+CiAjZW5kaWYKICNpbmNsdWRlICJYcG1JLmgiCisjaWYgZGVmaW5lZChf X0NZR1dJTl9fKSB8fCAoIWRlZmluZWQoWFBNX05PX1gpICYmICFkZWZpbmVk KFdJTjMyKSkKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgogI2lmbmRl ZiBOT19aUElQRQogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8ZXJy bm8uaD4KZGlmZiAtdXJOIC14IENZR1dJTi1QQVRDSEVTIG9yaWdzcmMvbGli WHBtLTMuNS4xMC9zcmMvcmdiLmMgc3JjL2xpYlhwbS0zLjUuMTAvc3JjL3Jn Yi5jCi0tLSBvcmlnc3JjL2xpYlhwbS0zLjUuMTAvc3JjL3JnYi5jCTIwMTIt MDMtMDcgMjM6NDA6MDguMDAwMDAwMDAwIC0wNTAwCisrKyBzcmMvbGliWHBt LTMuNS4xMC9zcmMvcmdiLmMJMjAxMy0wNi0zMCAxODo0NDoxMi4wNjUxMjg4 MDAgLTA0MDAKQEAgLTMzLDcgKzMzLDcgQEAKIFwqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIFRoZSBjb2RlIHJlbGF0ZWQg dG8gRk9SX01TVyBoYXMgYmVlbiBhZGRlZCBieQorICogVGhlIGNvZGUgcmVs YXRlZCB0byBYUE1fTk9fWCBoYXMgYmVlbiBhZGRlZCBieQogICogSGVEdSAo aGVkdUBjdWwtaXBuLnVuaS1raWVsLmRlKSA0Lzk0CiAgKi8KIApAQCAtNDgs NyArNDgsNyBAQAogI2luY2x1ZGUgIlhwbUkuaCIKICNpbmNsdWRlIDxjdHlw ZS5oPgogCi0jaWZuZGVmIEZPUl9NU1cJCQkJLyogbm9ybWFsIHBhcnQgZmly c3QsIE1TVyBwYXJ0IGF0CisjaWZuZGVmIFhQTV9OT19YCQkJLyogbm9ybWFs IHBhcnQgZmlyc3QsIE1TVyBwYXJ0IGF0CiAJCQkJCSAqIHRoZSBlbmQsICho dWdlIGlmZGVmISkgKi8KIC8qCiAgKiBSZWFkIGEgcmdiIHRleHQgZmlsZS4g IEl0IHN0b3JlcyB0aGUgcmdiIHZhbHVlcyAoMC0+NjU1MzUpCkBAIC0yMjIs NyArMjIyLDcgQEAKICAgICAgKiBsb3Qgb2YgZ3JheQogICAgICAqLwogICAg IC8qIHNvIGZpcnN0IGV4dHJhY3QgJyAnICovCi0gICAgd2hpbGUgKHAgPSBz dHJjaHIobmFtZSwgJyAnKSkgeworICAgIHdoaWxlICgocCA9IHN0cmNocihu YW1lLCAnICcpKSkgewogCXdoaWxlICgqKHApKSB7CQkJLyogdGlsbCBlb2Yg b2Ygc3RyaW5nICovCiAJICAgICpwID0gKihwICsgMSk7CQkvKiBjb3B5IHRv IHRoZSBsZWZ0ICovCiAJICAgIHArKzsKQEAgLTIzOSw3ICsyMzksNyBAQAog ICAgICAqIHN1YnN0aXR1dGUgR3JleSB3aXRoIEdyYXksIGVsc2UgcmdidGFi Lmggd291bGQgaGF2ZSBtb3JlIHRoYW4gMTAwCiAgICAgICogJ2R1cGxpY2F0 ZScgZW50cmllcwogICAgICAqLwotICAgIGlmIChncmV5ID0gc3Ryc3RyKG5h bWUsICJncmV5IikpCisgICAgaWYgKChncmV5ID0gc3Ryc3RyKG5hbWUsICJn cmV5IikpKQogCWdyZXlbMl0gPSAnYSc7CiAKICAgICAvKiBiaW5hcnkgc2Vh cmNoICovCmRpZmYgLXVyTiAteCBDWUdXSU4tUEFUQ0hFUyBvcmlnc3JjL2xp YlhwbS0zLjUuMTAvc3JjL3JnYnRhYi5oIHNyYy9saWJYcG0tMy41LjEwL3Ny Yy9yZ2J0YWIuaAotLS0gb3JpZ3NyYy9saWJYcG0tMy41LjEwL3NyYy9yZ2J0 YWIuaAkyMDEyLTAzLTA3IDIzOjQwOjA4LjAwMDAwMDAwMCAtMDUwMAorKysg c3JjL2xpYlhwbS0zLjUuMTAvc3JjL3JnYnRhYi5oCTIwMTMtMDYtMzAgMTg6 NDQ6MjYuMDYxOTI5NDAwIC0wNDAwCkBAIC0yODYsNyArMjg2LDcgQEAKICAg ICB7IldoaXRlU21va2UiLCBteVJHQigyNDUsIDI0NSwgMjQ1KX0sCiAgICAg eyJZZWxsb3ciLCBteVJHQigyNTUsIDI1NSwgMCl9LAogICAgIHsiWWVsbG93 R3JlZW4iLCBteVJHQig1MCwgMjE2LCA1Nil9LAotICAgIE5VTEwKKyAgICB7 TlVMTCwgMH0KIH07CiAKIHN0YXRpYyBpbnQgbnVtVGhlUkdCUmVjb3JkcyA9 IDIzNDsKZGlmZiAtdXJOIC14IENZR1dJTi1QQVRDSEVTIG9yaWdzcmMvbGli WHBtLTMuNS4xMC9zcmMvc2Nhbi5jIHNyYy9saWJYcG0tMy41LjEwL3NyYy9z Y2FuLmMKLS0tIG9yaWdzcmMvbGliWHBtLTMuNS4xMC9zcmMvc2Nhbi5jCTIw MTItMDMtMDcgMjM6NDA6MDguMDAwMDAwMDAwIC0wNTAwCisrKyBzcmMvbGli WHBtLTMuNS4xMC9zcmMvc2Nhbi5jCTIwMTMtMDYtMzAgMTg6NDQ6MzUuODk1 NDkxOTAwIC0wNDAwCkBAIC0zMyw3ICszMyw3IEBACiBcKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBUaGUgY29kZSByZWxh dGVkIHRvIEZPUl9NU1cgaGFzIGJlZW4gYWRkZWQgYnkKKyAqIFRoZSBjb2Rl IHJlbGF0ZWQgdG8gWFBNX05PX1ggaGFzIGJlZW4gYWRkZWQgYnkKICAqIEhl RHUgKGhlZHVAY3VsLWlwbi51bmkta2llbC5kZSkgNC85NAogICovCiAKQEAg LTgxLDcgKzgxLDcgQEAKIHR5cGVkZWYgaW50ICgqc3RvcmVGdW5jUHRyKShQ aXhlbCBwaXhlbCwgUGl4ZWxzTWFwICpwbWFwLAogCQkJICAgIHVuc2lnbmVk IGludCAqaW5kZXhfcmV0dXJuKTsKIAotI2lmbmRlZiBGT1JfTVNXCisjaWZu ZGVmIFhQTV9OT19YCiAjIGlmbmRlZiBBTUlHQQogTEZVTkMoR2V0SW1hZ2VQ aXhlbHMsIGludCwgKFhJbWFnZSAqaW1hZ2UsIHVuc2lnbmVkIGludCB3aWR0 aCwKIAkJCSAgICB1bnNpZ25lZCBpbnQgaGVpZ2h0LCBQaXhlbHNNYXAgKnBt YXApKTsKQEAgLTEwMyw3ICsxMDMsNyBAQAogCQkJICAgICB1bnNpZ25lZCBp bnQgaGVpZ2h0LCBQaXhlbHNNYXAgKnBtYXAsCiAJCQkgICAgIHN0b3JlRnVu Y1B0ciBzdG9yZUZ1bmMpKTsKICMgZW5kaWYvKiBBTUlHQSAqLwotI2Vsc2Ug IC8qIG5kZWYgRk9SX01TVyAqLworI2Vsc2UgIC8qIG5kZWYgWFBNX05PX1gg Ki8KIExGVU5DKE1TV0dldEltYWdlUGl4ZWxzLCBpbnQsIChEaXNwbGF5ICpk LCBYSW1hZ2UgKmltYWdlLCB1bnNpZ25lZCBpbnQgd2lkdGgsCiAJCQkgICAg ICAgdW5zaWduZWQgaW50IGhlaWdodCwgUGl4ZWxzTWFwICpwbWFwLAogCQkJ ICAgICAgIHN0b3JlRnVuY1B0ciBzdG9yZUZ1bmMpKTsKQEAgLTI1NSw3ICsy NTUsNyBAQAogICAgICAqIHNjYW4gc2hhcGUgbWFzayBpZiBhbnkKICAgICAg Ki8KICAgICBpZiAoc2hhcGVpbWFnZSkgewotI2lmbmRlZiBGT1JfTVNXCisj aWZuZGVmIFhQTV9OT19YCiAjIGlmbmRlZiBBTUlHQQogCUVycm9yU3RhdHVz ID0gR2V0SW1hZ2VQaXhlbHMxKHNoYXBlaW1hZ2UsIHdpZHRoLCBoZWlnaHQs ICZwbWFwLAogCQkJCSAgICAgIHN0b3JlTWFza1BpeGVsKTsKQEAgLTI4MCw3 ICsyODAsNyBAQAogICAgICAqLwogCiAgICAgaWYgKGltYWdlKSB7Ci0jaWZu ZGVmIEZPUl9NU1cKKyNpZm5kZWYgWFBNX05PX1gKICMgaWZuZGVmIEFNSUdB CiAJaWYgKCgoaW1hZ2UtPmJpdHNfcGVyX3BpeGVsIHwgaW1hZ2UtPmRlcHRo KSA9PSAxKSAgJiYKIAkgICAgKGltYWdlLT5ieXRlX29yZGVyID09IGltYWdl LT5iaXRtYXBfYml0X29yZGVyKSkKQEAgLTQzMCw3ICs0MzAsNyBAQAogICAg IENvbG9ybWFwIGNvbG9ybWFwOwogICAgIGNoYXIgKnJnYl9mbmFtZTsKIAot I2lmbmRlZiBGT1JfTVNXCisjaWZuZGVmIFhQTV9OT19YCiAgICAgeHBtUmdi TmFtZSByZ2JuW01BWF9SR0JOQU1FU107CiAjZWxzZQogICAgIHhwbVJnYk5h bWUgKnJnYm4gPSBOVUxMOwpAQCAtNDg2LDEyICs0ODYsMTIgQEAKICAgICB9 CiAgICAgWFF1ZXJ5Q29sb3JzKGRpc3BsYXksIGNvbG9ybWFwLCB4Y29sb3Jz LCBuY29sb3JzKTsKIAotI2lmbmRlZiBGT1JfTVNXCisjaWZuZGVmIFhQTV9O T19YCiAgICAgLyogcmVhZCB0aGUgcmdiIGZpbGUgaWYgYW55IHdhcyBzcGVj aWZpZWQgKi8KICAgICBpZiAocmdiX2ZuYW1lKQogCXJnYm5fbWF4ID0geHBt UmVhZFJnYk5hbWVzKGF0dHJpYnV0ZXMtPnJnYl9mbmFtZSwgcmdibik7CiAj ZWxzZQotICAgIC8qIEZPUl9NU1c6IHJnYiBuYW1lcyBhbmQgdmFsdWVzIGFy ZSBoYXJkY29kZWQgaW4gcmdidGFiLmggKi8KKyAgICAvKiBYUE1fTk9fWDog cmdiIG5hbWVzIGFuZCB2YWx1ZXMgYXJlIGhhcmRjb2RlZCBpbiByZ2J0YWIu aCAqLwogICAgIHJnYm5fbWF4ID0geHBtUmVhZFJnYk5hbWVzKE5VTEwsIE5V TEwpOwogI2VuZGlmCiAKQEAgLTU1Niw3ICs1NTYsNyBAQAogCSAgICBlbHNl IHsKIAkJLyogYXQgbGFzdCBzdG9yZSB0aGUgcmdiIHZhbHVlICovCiAJCWNo YXIgYnVmW0JVRlNJWl07Ci0jaWZuZGVmIEZPUl9NU1cKKyNpZm5kZWYgWFBN X05PX1gKIAkJc3ByaW50ZihidWYsICIjJTA0WCUwNFglMDRYIiwKIAkJCXhj b2xvci0+cmVkLCB4Y29sb3ItPmdyZWVuLCB4Y29sb3ItPmJsdWUpOwogI2Vs c2UKQEAgLTU3OCw3ICs1NzgsNyBAQAogICAgIHJldHVybiAoWHBtU3VjY2Vz cyk7CiB9CiAKLSNpZm5kZWYgRk9SX01TVworI2lmbmRlZiBYUE1fTk9fWAog IyBpZm5kZWYgQU1JR0EKIC8qCiAgKiBUaGUgZnVuY3Rpb25zIGJlbG93IGFy ZSB3cml0dGVuIGZyb20gWDExUjUgTUlUJ3MgY29kZSAoWEltVXRpbC5jKQpA QCAtOTUwLDcgKzk1MCw3IEBACiAjdW5kZWYgQ0xFQU5fVVAKIAogIyBlbmRp Zi8qIEFNSUdBICovCi0jZWxzZSAgLyogbmRlZiBGT1JfTVNXICovCisjZWxz ZSAgLyogbmRlZiBYUE1fTk9fWCAqLwogc3RhdGljIGludAogTVNXR2V0SW1h Z2VQaXhlbHMoCiAgICAgRGlzcGxheQkgKmRpc3BsYXksCkBAIC05NzksNyAr OTc5LDcgQEAKIAogI2VuZGlmCiAKLSNpZm5kZWYgRk9SX01TVworI2lmbmRl ZiBYUE1fTk9fWAogIyBpZm5kZWYgQU1JR0EKIGludAogWHBtQ3JlYXRlWHBt SW1hZ2VGcm9tUGl4bWFwKApAQCAtMTAyMSw0ICsxMDIxLDQgQEAKIH0KIAog IyBlbmRpZi8qIG5vdCBBTUlHQSAqLwotI2VuZGlmIC8qIG5kZWYgRk9SX01T VyAqLworI2VuZGlmIC8qIG5kZWYgWFBNX05PX1ggKi8KZGlmZiAtdXJOIC14 IENZR1dJTi1QQVRDSEVTIG9yaWdzcmMvbGliWHBtLTMuNS4xMC9zcmMvc2lt eC5jIHNyYy9saWJYcG0tMy41LjEwL3NyYy9zaW14LmMKLS0tIG9yaWdzcmMv bGliWHBtLTMuNS4xMC9zcmMvc2lteC5jCTIwMTItMDMtMDcgMjM6NDA6MDgu MDAwMDAwMDAwIC0wNTAwCisrKyBzcmMvbGliWHBtLTMuNS4xMC9zcmMvc2lt eC5jCTIwMTMtMDYtMzAgMTg6NTE6MTkuNjYwNTg1OTAwIC0wNDAwCkBAIC0z MywxMyArMzMsMTMgQEAKICogRGV2ZWxvcGVkIGJ5IEhlRHUgMy85NCAoaGVk dUBjdWwtaXBuLnVuaS1raWVsLmRlKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICoKIFwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAot I2lmZGVmIEZPUl9NU1cKKyNpZmRlZiBYUE1fTk9fWAogCiAjaWZkZWYgSEFW RV9DT05GSUdfSAogI2luY2x1ZGUgPGNvbmZpZy5oPgogI2VuZGlmCiAjaW5j bHVkZSAieHBtLmgiCi0jaW5jbHVkZSAieHBtaS5oIgkJCS8qIGZvciBYcG1N YWxsb2MgKi8KKyNpbmNsdWRlICJYcG1JLmgiCQkJLyogZm9yIFhwbU1hbGxv YyAqLwogCiAvKgogICogT24gRE9TIHNpemVfdCBpcyBvbmx5IDIgYnl0ZXMs IHRodXMgbWFsbG9jKHNpemVfdCBzKSBjYW4gb25seSBtYWxsb2MKQEAgLTEw OCwyMiArMTA4LDIyIEBACiAKIC8qIHN0YXRpYyBWaXN1YWwgdGhlVmlzdWFs ID0geyAwIH07ICovCiBWaXN1YWwgKgotWERlZmF1bHRWaXN1YWwoRGlzcGxh eSAqZGlzcGxheSwgU2NyZWVuICpzY3JlZW4pCitYRGVmYXVsdFZpc3VhbChE aXNwbGF5ICpkaXNwbGF5LCBpbnQgc2NyZWVuX251bWJlcikKIHsKICAgICBy ZXR1cm4gKE5VTEwpOwkJCS8qIHN0cnVjdCBjb3VsZCBjb250YWluIGluZm8g YWJvdXQKIAkJCQkJICogTU9OTywgR1JBWSwgQ09MT1IgKi8KIH0KIAotU2Ny ZWVuICoKK2ludAogWERlZmF1bHRTY3JlZW4oRGlzcGxheSAqZCkKIHsKLSAg ICByZXR1cm4gKE5VTEwpOworICAgIHJldHVybiAoMCk7CiB9CiAKIC8qIEkg Z2V0IG9ubHkgMSBwbGFuZSBidXQgOCBiaXRzIHBlciBwaXhlbCwKICAgIHNv IEkgdGhpbmsgQklUU1BJWEVMIHNob3VsZCBiZSBkZXB0aCAqLwogaW50Ci1Y RGVmYXVsdERlcHRoKERpc3BsYXkgKmRpc3BsYXksIFNjcmVlbiAqc2NyZWVu KQorWERlZmF1bHREZXB0aChEaXNwbGF5ICpkaXNwbGF5LCBpbnQgc2NyZWVu X251bWJlcikKIHsKICAgICBpbnQgZCwgYjsKIApAQCAtMTMyLDggKzEzMiw4 IEBACiAgICAgcmV0dXJuIChiKTsKIH0KIAotQ29sb3JtYXAgKgotWERlZmF1 bHRDb2xvcm1hcChEaXNwbGF5ICpkaXNwbGF5LCBTY3JlZW4gKnNjcmVlbikK K0NvbG9ybWFwCitYRGVmYXVsdENvbG9ybWFwKERpc3BsYXkgKmRpc3BsYXks IGludCBzY3JlZW5fbnVtYmVyKQogewogICAgIHJldHVybiAoTlVMTCk7CiB9 CkBAIC0xNDEsNyArMTQxLDcgQEAKIC8qIGNvbnZlcnQgaGV4IGNvbG9yIG5h bWVzLAogICAgd3JvbmcgZGlnaXRzIChub3QgYS1mLEEtRiwwLTkpIGFyZSB0 cmVhdGVkIGFzIHplcm8gKi8KIHN0YXRpYyBpbnQKLWhleENoYXJUb0ludChj KQoraGV4Q2hhclRvSW50KGludCBjKQogewogICAgIGludCByOwogCkBAIC0x ODgsNyArMTg4LDcgQEAKIAogLyogQ29sb3IgcmVsYXRlZCBmdW5jdGlvbnMg Ki8KIGludAotWFBhcnNlQ29sb3IoRGlzcGxheSAqZCwgQ29sb3JtYXAgKmNt YXAsIGNoYXIgKm5hbWUsIFhDb2xvciAqY29sb3IpCitYUGFyc2VDb2xvcihE aXNwbGF5ICpkLCBDb2xvcm1hcCBjbWFwLCBjaGFyICpuYW1lLCBYQ29sb3Ig KmNvbG9yKQogewogICAgIGludCByLCBnLCBiOwkJCS8qIG9ubHkgOCBiaXQg dmFsdWVzIHVzZWQgKi8KICAgICBpbnQgb2theTsKQEAgLTIyMiwxMiArMjIy LDEyIEBACiAgICBpbmRleCBpbiBzb21lIGNvbG9ybWFwIGFzIGluIFggKi8K ICAgICByZXR1cm4gKDEpOwogfQotdm9pZAotWFF1ZXJ5Q29sb3JzKERpc3Bs YXkgKmRpc3BsYXksIENvbG9ybWFwICpjb2xvcm1hcCwKK2ludAorWFF1ZXJ5 Q29sb3JzKERpc3BsYXkgKmRpc3BsYXksIENvbG9ybWFwIGNvbG9ybWFwLAog CSAgICAgWENvbG9yICp4Y29sb3JzLCBpbnQgbmNvbG9ycykKIHsKIC8qIHVu ZGVyIFggdGhpcyBmaWxscyB0aGUgcmdiIHZhbHVlcyB0byBnaXZlbiAucGl4 ZWwgKi8KLS8qIHNpbmNlIHRoZXJlIG5vIGNvbG9ybWFwIHVzZSBGT1JfTVNX IChub3QgeWV0ISEpLCByZ2IgaXMgcGxhaW4gZW5jb2RlZCAqLworLyogc2lu Y2UgdGhlcmUgbm8gY29sb3JtYXAgdXNlIFhQTV9OT19YIChub3QgeWV0ISEp LCByZ2IgaXMgcGxhaW4gZW5jb2RlZCAqLwogICAgIFhDb2xvciAqeGMgPSB4 Y29sb3JzOwogICAgIGludCBpOwogCkBAIC0yMzYsMTEgKzIzNiwxMSBAQAog CXhjLT5ncmVlbiA9IEdldEdWYWx1ZSh4Yy0+cGl4ZWwpOwogCXhjLT5ibHVl ID0gR2V0QlZhbHVlKHhjLT5waXhlbCk7CiAgICAgfQotICAgIHJldHVybjsK KyAgICByZXR1cm4gKDApOwogfQogaW50CiBYRnJlZUNvbG9ycyhEaXNwbGF5 ICpkLCBDb2xvcm1hcCBjbWFwLAotCSAgICB1bnNpZ25lZCBsb25nIHBpeGVs c1tdLCBpbnQgbnBpeGVscywgdW5zaWduZWQgbG9uZyBwbGFuZXMpCisJICAg IHVuc2lnbmVkIGxvbmcqIHBpeGVscywgaW50IG5waXhlbHMsIHVuc2lnbmVk IGxvbmcgcGxhbmVzKQogewogICAgIC8qIG5vIGNvbG9ybWFwIHlldCAqLwog ICAgIHJldHVybiAoMCk7CQkJCS8qIGNvcnJlY3QgPz8/ICovCkBAIC0yNDks OSArMjQ5LDEwIEBACiAvKiBYSW1hZ2UgZnVuY3Rpb25zICovCiBYSW1hZ2Ug KgogWENyZWF0ZUltYWdlKERpc3BsYXkgKmQsIFZpc3VhbCAqdiwKLQkgICAg IGludCBkZXB0aCwgaW50IGZvcm1hdCwKLQkgICAgIGludCB4LCBpbnQgeSwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCSAgICAgaW50IHBhZCwgaW50IGZv bykKKwkgICAgIHVuc2lnbmVkIGludCBkZXB0aCwgaW50IGZvcm1hdCwKKwkg ICAgIGludCBvZmZzZXQsIGNoYXIqIGRhdGEsCisJICAgICB1bnNpZ25lZCBp bnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCisJICAgICBpbnQgcGFk LCBpbnQgYnl0ZXNfcGVyX2xpbmUpCiB7CiAgICAgWEltYWdlICppbWcgPSAo WEltYWdlICopIFhwbU1hbGxvYyhzaXplb2YoWEltYWdlKSk7CiAKQEAgLTI4 MSwxMyArMjgyLDE0IEBACiAJWHBtRnJlZShpbWcpOwogICAgIH0KIH0KLXZv aWQKK2ludAogWERlc3Ryb3lJbWFnZShYSW1hZ2UgKmltZykKIHsKICAgICBp ZiAoaW1nKSB7CiAJRGVsZXRlT2JqZWN0KGltZy0+Yml0bWFwKTsJLyogY2hl Y2sgcmV0dXJuID8/PyAqLwogCVhJbWFnZUZyZWUoaW1nKTsKICAgICB9Cisg ICAgcmV0dXJuICgwKTsKIH0KIAogI2VuZGlmCmRpZmYgLXVyTiAteCBDWUdX SU4tUEFUQ0hFUyBvcmlnc3JjL2xpYlhwbS0zLjUuMTAvc3JjL3NpbXguaCBz cmMvbGliWHBtLTMuNS4xMC9zcmMvc2lteC5oCi0tLSBvcmlnc3JjL2xpYlhw bS0zLjUuMTAvc3JjL3NpbXguaAkyMDEyLTAzLTA3IDIzOjQwOjA4LjAwMDAw MDAwMCAtMDUwMAorKysgc3JjL2xpYlhwbS0zLjUuMTAvc3JjL3NpbXguaAky MDEzLTA2LTMwIDE4OjQ1OjA2Ljg0MTI2MTgwMCAtMDQwMApAQCAtMzcsMTIg KzM3LDI4IEBACiAjaWZuZGVmIF9TSU1YX0gKICNkZWZpbmUgX1NJTVhfSAog Ci0jaWZkZWYgRk9SX01TVworI2lmZGVmIFhQTV9OT19YCiAKICNpbmNsdWRl ICJ3aW5kb3dzLmgiCQkJLyogTVMgd2luZG93cyBHREkgdHlwZXMgKi8KLSNk ZWZpbmUgX1hGVU5DUFJPVE9CRUdJTgotI2RlZmluZSBfWEZVTkNQUk9UT0VO RAotI2RlZmluZSBOT19aUElQRQorCisjaWZuZGVmIF9YRlVOQ1BST1RPQkVH SU4KKyMgaWZkZWYgX19DWUdXSU5fXworIyAgaWYgZGVmaW5lZChfX2NwbHVz cGx1cykgfHwgZGVmaW5lZChjX3BsdXNwbHVzKSAvKiBmb3IgQysrIFYyLjAg Ki8KKyMgICBkZWZpbmUgX1hGVU5DUFJPVE9CRUdJTiBleHRlcm4gIkMiIHsg ICAvKiBkbyBub3QgbGVhdmUgb3BlbiBhY3Jvc3MgaW5jbHVkZXMgKi8KKyMg ICBkZWZpbmUgX1hGVU5DUFJPVE9FTkQgfQorIyAgZWxzZQorIyAgIGRlZmlu ZSBfWEZVTkNQUk9UT0JFR0lOCisjICAgZGVmaW5lIF9YRlVOQ1BST1RPRU5E CisjICBlbmRpZgorIyBlbHNlIC8qICEgX19DWUdXSU5fXyAqLworIyAgZGVm aW5lIF9YRlVOQ1BST1RPQkVHSU4KKyMgIGRlZmluZSBfWEZVTkNQUk9UT0VO RAorIyBlbmRpZiAvKiAhX19DWUdXSU5fXyAqLworI2VuZGlmIC8qIF9YRlVO Q1BST1RPQkVHSU4gKi8KKworI2lmbmRlZiBfX0NZR1dJTl9fCisjIGRlZmlu ZSBOT19aUElQRQorI2VuZGlmCiAKIC8qCiAgKiBtaW5pbWFsIHBvcnRhYmls aXR5IGxheWVyIGJldHdlZW4gYW5zaSBhbmQgS1IgQwpAQCAtOTEsMzcgKzEw NywzMyBAQAogICAgIHVuc2lnbmVkIGludCBkZXB0aDsKIH0gICAgICBYSW1h Z2U7CiAKLSNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSB8fCBkZWZpbmVkKGNf cGx1c3BsdXMpCi1leHRlcm4gIkMiIHsKLSNlbmRpZgorCiAvKiBzb21lIHJl cGxhY2VtZW50cyBmb3IgWC4uLiBmdW5jdGlvbnMgKi8KK19YRlVOQ1BST1RP QkVHSU4KIAogLyogWERlZmF1bHRYWFggKi8KLSAgICBGVU5DKFhEZWZhdWx0 VmlzdWFsLCBWaXN1YWwgKiwgKERpc3BsYXkgKmRpc3BsYXksIFNjcmVlbiAq c2NyZWVuKSk7Ci0gICAgRlVOQyhYRGVmYXVsdFNjcmVlbiwgU2NyZWVuICos IChEaXNwbGF5ICpkKSk7Ci0gICAgRlVOQyhYRGVmYXVsdENvbG9ybWFwLCBD b2xvcm1hcCAqLCAoRGlzcGxheSAqZGlzcGxheSwgU2NyZWVuICpzY3JlZW4p KTsKLSAgICBGVU5DKFhEZWZhdWx0RGVwdGgsIGludCwgKERpc3BsYXkgKmQs IFNjcmVlbiAqcykpOworICAgIEZVTkMoWERlZmF1bHRWaXN1YWwsIFZpc3Vh bCAqLCAoRGlzcGxheSAqLCBpbnQgc2NyZWVuX251bWJlcikpOworICAgIEZV TkMoWERlZmF1bHRTY3JlZW4sIGludCwgKERpc3BsYXkgKikpOworICAgIEZV TkMoWERlZmF1bHRDb2xvcm1hcCwgQ29sb3JtYXAsIChEaXNwbGF5ICosIGlu dCBzY3JlZW5fbnVtYmVyKSk7CisgICAgRlVOQyhYRGVmYXVsdERlcHRoLCBp bnQsIChEaXNwbGF5ICosIGludCBzY3JlZW5fbnVtYmVyKSk7CiAKIC8qIGNv bG9yIHJlbGF0ZWQgKi8KLSAgICBGVU5DKFhQYXJzZUNvbG9yLCBpbnQsIChE aXNwbGF5ICosIENvbG9ybWFwICosIGNoYXIgKiwgWENvbG9yICopKTsKKyAg ICBGVU5DKFhQYXJzZUNvbG9yLCBpbnQsIChEaXNwbGF5ICosIENvbG9ybWFw LCBjaGFyICosIFhDb2xvciAqKSk7CiAgICAgRlVOQyhYQWxsb2NDb2xvciwg aW50LCAoRGlzcGxheSAqLCBDb2xvcm1hcCwgWENvbG9yICopKTsKLSAgICBG VU5DKFhRdWVyeUNvbG9ycywgdm9pZCwgKERpc3BsYXkgKmRpc3BsYXksIENv bG9ybWFwICpjb2xvcm1hcCwKLQkJCSAgICAgIFhDb2xvciAqeGNvbG9ycywg aW50IG5jb2xvcnMpKTsKLSAgICBGVU5DKFhGcmVlQ29sb3JzLCBpbnQsIChE aXNwbGF5ICpkLCBDb2xvcm1hcCBjbWFwLAotCQkJICAgIHVuc2lnbmVkIGxv bmcgcGl4ZWxzW10sCi0JCQkgICAgaW50IG5waXhlbHMsIHVuc2lnbmVkIGxv bmcgcGxhbmVzKSk7CisgICAgRlVOQyhYUXVlcnlDb2xvcnMsIGludCwgKERp c3BsYXkgKiwgQ29sb3JtYXAsIFhDb2xvciAqLCBpbnQpKTsKKyAgICBGVU5D KFhGcmVlQ29sb3JzLCBpbnQsIChEaXNwbGF5ICosIENvbG9ybWFwLCB1bnNp Z25lZCBsb25nKiwKKwkJCSAgICBpbnQsIHVuc2lnbmVkIGxvbmcpKTsKIC8q IFhJbWFnZSAqLwotICAgIEZVTkMoWENyZWF0ZUltYWdlLCBYSW1hZ2UgKiwg KERpc3BsYXkgKiwgVmlzdWFsICosIGludCBkZXB0aCwgaW50IGZvcm1hdCwK LQkJCQkgIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAot CQkJCSAgaW50IHBhZCwgaW50IGZvbykpOworICAgIEZVTkMoWENyZWF0ZUlt YWdlLCBYSW1hZ2UgKiwgKERpc3BsYXkgKiwgVmlzdWFsICosIHVuc2lnbmVk IGludCwKKwkJCQkgIGludCwgaW50LCBjaGFyKiwgdW5zaWduZWQgaW50LAor CQkJCSAgdW5zaWduZWQgaW50LCBpbnQsIGludCkpOwogCiAvKiBmcmVlIGFu ZCBkZXN0cm95IGJpdG1hcCAqLwotICAgIEZVTkMoWERlc3Ryb3lJbWFnZSwg dm9pZCAvKiA/ICovICwgKFhJbWFnZSAqKSk7CisgICAgRlVOQyhYRGVzdHJv eUltYWdlLCBpbnQsIChYSW1hZ2UgKikpOwogLyogZnJlZSBvbmx5LCBiaXRt YXAgcmVtYWlucyAqLwogICAgIEZVTkMoWEltYWdlRnJlZSwgdm9pZCwgKFhJ bWFnZSAqKSk7Ci0jaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgfHwgZGVmaW5l ZChjX3BsdXNwbHVzKQotfSAvKiBlbmQgb2YgZXh0ZXJuICJDIiAqLwotI2Vu ZGlmIC8qIGNwbHVzcGx1cyAqLworCitfWEZVTkNQUk9UT0VORAogCiAjZGVm aW5lIFpQaXhtYXAgMQkJCS8qIG5vdCByZWFsbHkgdXNlZCAqLwogI2RlZmlu ZSBYWUJpdG1hcCAxCQkJLyogbm90IHJlYWxseSB1c2VkICovCkBAIC0xMzcs NiArMTQ5LDcgQEAKICN1bmRlZiBMRlVOQwogI3VuZGVmIEZVTkMKIAorI2lm bmRlZiBfX0NZR1dJTl9fCiAvKiBTb21lIGZ1bmN0aW9ucyBhbmQgY29uc3Rh bnRzIHRoYXQgaGF2ZSBub24tc3RhbmRhcmQgbmFtZXMgaW4gdGhlCiAgICBN UyBsaWJyYXJ5LiAgKi8KICNkZWZpbmUgYnplcm8oYWRkcixzeikgbWVtc2V0 KGFkZHIsIDAsIHN6KQpAQCAtMTQ4LDcgKzE2MSw4IEBACiAjZGVmaW5lIHJp bmRleCBzdHJyY2hyCiAjZGVmaW5lIHN0cmR1cCBfc3RyZHVwCiAKKyNlbmRp ZiAvKiAhIF9fQ1lHV0lOX18gKi8KIAotI2VuZGlmIC8qIGRlZiBGT1JfTVNX ICovCisjZW5kaWYgLyogZGVmIFhQTV9OT19YICovCiAKICNlbmRpZiAvKiBf U0lNWF9IICovCmRpZmYgLXVyTiAteCBDWUdXSU4tUEFUQ0hFUyBvcmlnc3Jj L2xpYlhwbS0zLjUuMTAvc3JjL1hwbUkuaCBzcmMvbGliWHBtLTMuNS4xMC9z cmMvWHBtSS5oCi0tLSBvcmlnc3JjL2xpYlhwbS0zLjUuMTAvc3JjL1hwbUku aAkyMDEyLTAzLTA3IDIzOjQwOjA4LjAwMDAwMDAwMCAtMDUwMAorKysgc3Jj L2xpYlhwbS0zLjUuMTAvc3JjL1hwbUkuaAkyMDEzLTA2LTMwIDE4OjQ1OjQx LjQxNzIzOTUwMCAtMDQwMApAQCAtMzUsNyArMzUsNyBAQAogXCoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogVGhlIGNvZGUg cmVsYXRlZCB0byBGT1JfTVNXIGhhcyBiZWVuIGFkZGVkIGJ5CisgKiBUaGUg Y29kZSByZWxhdGVkIHRvIFhQTV9OT19YIGhhcyBiZWVuIGFkZGVkIGJ5CiAg KiBIZUR1IChoZWR1QGN1bC1pcG4udW5pLWtpZWwuZGUpIDQvOTQKICAqLwog CkBAIC01Nyw3ICs1Nyw3IEBACiBleHRlcm4gRklMRSAqcG9wZW4oKTsKICNl bmRpZgogCi0jaWZkZWYgRk9SX01TVworI2lmZGVmIFhQTV9OT19YCiAjaW5j bHVkZSAic2lteC5oIgogI2Vsc2UKICNpbmNsdWRlIDxYMTEvWG9zLmg+CkBA IC03OSw3ICs3OSw3IEBACiAgKi8KICNkZWZpbmUgWHBtRnJlZShwdHIpIGZy ZWUocHRyKQogCi0jaWZuZGVmIEZPUl9NU1cKKyNpZm5kZWYgWFBNX05PX1gK ICNkZWZpbmUgWHBtTWFsbG9jKHNpemUpIG1hbGxvYygoc2l6ZSkpCiAjZGVm aW5lIFhwbVJlYWxsb2MocHRyLCBzaXplKSByZWFsbG9jKChwdHIpLCAoc2l6 ZSkpCiAjZGVmaW5lIFhwbUNhbGxvYyhuZWxlbSwgZWxzaXplKSBjYWxsb2Mo KG5lbGVtKSwgKGVsc2l6ZSkpCkBAIC0xODcsNyArMTg3LDcgQEAKIEZVTkMo eHBtU2V0QXR0cmlidXRlcywgdm9pZCwgKFhwbUF0dHJpYnV0ZXMgKmF0dHJp YnV0ZXMsIFhwbUltYWdlICppbWFnZSwKIAkJCSAgICAgIFhwbUluZm8gKmlu Zm8pKTsKIAotI2lmICFkZWZpbmVkKEZPUl9NU1cpICYmICFkZWZpbmVkKEFN SUdBKQorI2lmICFkZWZpbmVkKFhQTV9OT19YKSAmJiAhZGVmaW5lZChBTUlH QSkKIEZVTkMoeHBtQ3JlYXRlUGl4bWFwRnJvbUltYWdlLCB2b2lkLCAoRGlz cGxheSAqZGlzcGxheSwgRHJhd2FibGUgZCwKIAkJCQkgICAgICBYSW1hZ2Ug KnhpbWFnZSwgUGl4bWFwICpwaXhtYXBfcmV0dXJuKSk7CiAKQEAgLTI1Myw3 ICsyNTMsNyBAQAogRlVOQyh4cG1HZXRSZ2JOYW1lLCBjaGFyICosICh4cG1S Z2JOYW1lICpyZ2JuLCBpbnQgcmdibl9tYXgsCiAJCQkgICAgIGludCByZWQs IGludCBncmVlbiwgaW50IGJsdWUpKTsKIEZVTkMoeHBtRnJlZVJnYk5hbWVz LCB2b2lkLCAoeHBtUmdiTmFtZSAqcmdibiwgaW50IHJnYm5fbWF4KSk7Ci0j aWZkZWYgRk9SX01TVworI2lmZGVmIFhQTV9OT19YCiBGVU5DKHhwbUdldFJH QmZyb21OYW1lLGludCwgKGNoYXIgKm5hbWUsIGludCAqciwgaW50ICpnLCBp bnQgKmIpKTsKICNlbmRpZgogCg== --------------7586AF40E52AEADA162E0EE5--