Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wC20n-001bHZ-2y for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Apr 2026 21:06:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wC20l-003GVr-0x for pgsql-hackers@arkaria.postgresql.org; Sun, 12 Apr 2026 21:06:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wC20k-003GVb-2O for pgsql-hackers@lists.postgresql.org; Sun, 12 Apr 2026 21:06:31 +0000 Received: from smtp.outgoing.loopia.se ([93.188.3.37]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wC20h-00000000jI2-1Jff for pgsql-hackers@postgresql.org; Sun, 12 Apr 2026 21:06:29 +0000 Received: from s807.loopia.se (localhost [127.0.0.1]) by s807.loopia.se (Postfix) with ESMTP id 726215A8753 for ; Sun, 12 Apr 2026 23:06:26 +0200 (CEST) Received: from s979.loopia.se (unknown [172.22.191.6]) by s807.loopia.se (Postfix) with ESMTP id 62DFA5A92C8; Sun, 12 Apr 2026 23:06:26 +0200 (CEST) Received: from localhost (unknown [172.22.191.5]) by s979.loopia.se (Postfix) with ESMTP id 5354110BC3AE; Sun, 12 Apr 2026 23:06:26 +0200 (CEST) X-Virus-Scanned: amavis at amavis.loopia.se X-Spam-Flag: NO X-Spam-Score: -1.2 X-Spam-Level: X-Spam-Status: No, score=-1.2 tagged_above=-999 required=6.2 tests=[ALL_TRUSTED=-1, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1] autolearn=disabled Authentication-Results: s471.loopia.se (amavis); dkim=pass (2048-bit key) header.d=proxel.se Received: from s980.loopia.se ([172.22.191.6]) by localhost (s471.loopia.se [172.22.190.35]) (amavis, port 10024) with LMTP id zPo3Ncl9ss5e; Sun, 12 Apr 2026 23:06:25 +0200 (CEST) X-Loopia-Auth: user X-Loopia-User: andreas@proxel.se X-Loopia-Originating-IP: 147.28.75.140 Received: from [192.168.0.121] (customer-147-28-75-140.stosn.net [147.28.75.140]) (Authenticated sender: andreas@proxel.se) by s980.loopia.se (Postfix) with ESMTPSA id BEE6922015B7; Sun, 12 Apr 2026 23:06:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxel.se; s=loopiadkim1707418970; t=1776027984; bh=YcevUi7tCznGwuJOC6ylIn/37RsM2CiTbOIYIe9m3Ao=; h=Date:Subject:From:To:Cc:References:In-Reply-To; b=VjAYdMJxLjEMioBJAsqT5B162T3eutNCXncXnVbzMnTU7Lp4LieLUlCzIVRUSxyBd +4ZiCgXn8JPFmbXPMBkmXBlwl81ND2f5AlYfv2htY3vW/LYC+fn3a97EfPiA1QJtdp JF8NH5sxwREnOYTlHHVSOprtcjXo2MebAWhydrTqchDK54GK6GtVJXz9pwXewTgkzT 2ZHFZJeAvcsXoSrw3kppK3LiQM85IBUW4ZGoPPd8ZP7cjyzGTI3xFEhbVe93Qi0aR4 +NVUt1gfwNTgFlwceKvbpyxY0TeB6RILTrFvPYM4FAjxGIYname70Hu76cRkU0Cccp PDo2AjPheISsQ== Content-Type: multipart/mixed; boundary="------------eNC0rPtaUtxfZwO3GIbNHuZH" Message-ID: <71e9889c-86be-4084-a5ae-fc535221b5fb@proxel.se> Date: Sun, 12 Apr 2026 23:06:24 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Improve pgindent's formatting named fields in struct literals and varidic functions From: Andreas Karlsson To: Tom Lane , =?UTF-8?Q?=C3=81lvaro_Herrera?= Cc: Jelte Fennema-Nio , pgsql-hackers References: <202603311716.cribie6xvxhn@alvherre.pgsql> <2737243.1774980800@sss.pgh.pa.us> <9a949301-eb31-4245-aef5-6ced20716ec4@proxel.se> Content-Language: en-US In-Reply-To: <9a949301-eb31-4245-aef5-6ced20716ec4@proxel.se> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------eNC0rPtaUtxfZwO3GIbNHuZH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 3/31/26 8:57 PM, Andreas Karlsson wrote: > On 3/31/26 8:13 PM, Tom Lane wrote: >> =?utf-8?Q?=C3=81lvaro?= Herrera writes: >>> I think the best time to get it in is a few weeks after the feature >>> freeze.  That way we minimize the impact on any fixes during the >>> stabilization period.  I'm not sure at what point relative to the betas >>> though; is it better to do it before, so that we have a chance to fix >>> any possible problems before they hit users, or is it better to do after >>> beta1, so that patches that we discover need reverting for pg19 have >>> already had a chance to be so? >> >> [...] >> >> So we haven't been totally consistent about it, but mid-May (a couple >> weeks before making the new branch) seems like the usual choice. > Makes sense to merge it while the tree is less noisy. Especially right > now might be the most annoying time possible. Rebased patch on top of HEAD. Andreas --------------eNC0rPtaUtxfZwO3GIbNHuZH Content-Type: text/x-patch; charset=UTF-8; name="v5-0001-Make-pgindent-add-a-space-between-comma-and-perio.patch" Content-Disposition: attachment; filename*0="v5-0001-Make-pgindent-add-a-space-between-comma-and-perio.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzNTQ3NWQ4NGM4NGM2MTIyNGJlMWIyZTA4NmYxYTRlZjU0OGZmNzlhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNDowMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjUgMS8yXSBNYWtlIHBnaW5kZW50IGFkZCBhIHNwYWNlIGJldHdlZW4gY29tbWEg YW5kIHBlcmlvZAoKRm9ybWF0dGluZyBvZiB2YXJpYWRpYyBmdW5jdGlvbnMgYW5kIHN0cnVj dCBsaXRlcmFscyB3aXRoIG5hbWVkIGZpZWxkCnVzZWQgdG8gYmUgdWdseSBkdWUgdG8gcGdp bmRlbnQgdHJlYXRpbmcgcGVyaW9kIGFzIGFsd2F5cyBiZWluZyBiaW5hcnkKb3BlcmF0b3Ig Zm9yIHN0cnVjdCBhY2Nlc3MsIGJ1dCBhZnRlciBjb21tYSBpdCBoYXMgYSBkaWZmZXJlbnQg bWVhbmluZy4KCkFsc28gYWRkcyBhIG5ldyB0ZXN0IGNhc2Ugd2hpY2ggdGVzdHMgdGhlIGZv cm1hdHRpbmcgb2Ygc3RydWN0IGxpdGVyYWxzCndpdGggbmFtZWQgZmllbGRzLgotLS0KIHNy Yy90b29scy9wZ19ic2RfaW5kZW50L2luZGVudC5jICAgICAgICAgICAgICB8IDIgKysKIHNy Yy90b29scy9wZ19ic2RfaW5kZW50L3Rlc3RzL3N0cnVjdC4wICAgICAgICB8IDIgKysKIHNy Yy90b29scy9wZ19ic2RfaW5kZW50L3Rlc3RzL3N0cnVjdC4wLnN0ZG91dCB8IDIgKysKIDMg ZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnX2JzZF9pbmRlbnQvaW5kZW50LmMgYi9zcmMvdG9vbHMvcGdfYnNkX2luZGVudC9pbmRl bnQuYwppbmRleCA0MjE1OTJkYjkyOC4uNThmYTA0MjkzZDkgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ19ic2RfaW5kZW50L2luZGVudC5jCisrKyBiL3NyYy90b29scy9wZ19ic2RfaW5k ZW50L2luZGVudC5jCkBAIC0xMDEzLDYgKzEwMTMsOCBAQCBjaGVja190eXBlOgogCiAJY2Fz ZSBwZXJpb2Q6CQkvKiB0cmVhdCBhIHBlcmlvZCBraW5kIG9mIGxpa2UgYSBiaW5hcnkKIAkJ CQkgKiBvcGVyYXRpb24gKi8KKwkgICAgaWYgKHBzLndhbnRfYmxhbmsgJiYgcHMubGFzdF90 b2tlbiA9PSBjb21tYSkKKwkgICAgICAgICplX2NvZGUrKyA9ICcgJzsKIAkgICAgKmVfY29k ZSsrID0gJy4nOwkvKiBtb3ZlIHRoZSBwZXJpb2QgaW50byBsaW5lICovCiAJICAgIHBzLndh bnRfYmxhbmsgPSBmYWxzZTsJLyogZG9udCBwdXQgYSBibGFuayBhZnRlciBhIHBlcmlvZCAq LwogCSAgICBicmVhazsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ19ic2RfaW5kZW50L3Rl c3RzL3N0cnVjdC4wIGIvc3JjL3Rvb2xzL3BnX2JzZF9pbmRlbnQvdGVzdHMvc3RydWN0LjAK aW5kZXggODMxNDJiZmIxOTcuLjZmNjVlNDYxMzMxIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMv cGdfYnNkX2luZGVudC90ZXN0cy9zdHJ1Y3QuMAorKysgYi9zcmMvdG9vbHMvcGdfYnNkX2lu ZGVudC90ZXN0cy9zdHJ1Y3QuMApAQCAtMTksMyArMTksNSBAQCB2b2lkIHUoc3RydWN0IHgg YSkgewogCWludCBiOwogCXN0cnVjdCB5IGMgPSAoc3RydWN0IHkgKikmYTsKIH0KKworc3Rh dGljIHN0cnVjdCBmb28gZiA9IHsgLmEgPSAxLC5iPTIgfTsKZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ19ic2RfaW5kZW50L3Rlc3RzL3N0cnVjdC4wLnN0ZG91dCBiL3NyYy90b29scy9w Z19ic2RfaW5kZW50L3Rlc3RzL3N0cnVjdC4wLnN0ZG91dAppbmRleCAzODYxMzEyODY1NC4u NjllMzIxY2EwNWYgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ19ic2RfaW5kZW50L3Rlc3Rz L3N0cnVjdC4wLnN0ZG91dAorKysgYi9zcmMvdG9vbHMvcGdfYnNkX2luZGVudC90ZXN0cy9z dHJ1Y3QuMC5zdGRvdXQKQEAgLTIxLDMgKzIxLDUgQEAgdShzdHJ1Y3QgeCBhKQogCWludAkJ YjsKIAlzdHJ1Y3QgeQljID0gKHN0cnVjdCB5ICopJmE7CiB9CisKK3N0YXRpYyBzdHJ1Y3Qg Zm9vIGYgPSB7LmEgPSAxLCAuYiA9IDJ9OwotLSAKMi40Ny4zCgo= --------------eNC0rPtaUtxfZwO3GIbNHuZH Content-Type: text/x-patch; charset=UTF-8; name="v5-0002-Run-pgindent-add-a-space-between-comma-and-period.patch" Content-Disposition: attachment; filename*0="v5-0002-Run-pgindent-add-a-space-between-comma-and-period.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyMmVkZTdhYWQ5Mjk4OTMwZDgxYjhmZDBhY2U1OWRlNDQxZjcyYmRlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIEthcmxzc29uIDxhbmRyZWFzQHByb3hl bC5zZT4KRGF0ZTogVHVlLCAxNyBGZWIgMjAyNiAwOTowNzozMSArMDEwMApTdWJqZWN0OiBb UEFUQ0ggdjUgMi8yXSBSdW4gcGdpbmRlbnQgYWRkIGEgc3BhY2UgYmV0d2VlbiBjb21tYSBh bmQgcGVyaW9kCgotLS0KIGNvbnRyaWIvZGJsaW5rL2RibGluay5jICAgICAgICAgICAgICAg ICAgICAgICB8ICA0ICstLQogY29udHJpYi9mdXp6eXN0cm1hdGNoL2RtZXRhcGhvbmUuYyAg ICAgICAgICAgIHwgIDIgKy0KIGNvbnRyaWIvanNvbmJfcGxweXRob24vanNvbmJfcGxweXRo b24uYyAgICAgICB8ICAyICstCiBjb250cmliL3BnY3J5cHRvL3B4LmMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogY29udHJpYi9wZ2NyeXB0by9weC5oICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zk dy5jICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxp ZGF0ZS5jICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Z3JlYWRlci5jICAgICAgIHwgIDQgKy0tCiBzcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1 cF9pbmNyZW1lbnRhbC5jICAgfCAgNCArLS0KIHNyYy9iYWNrZW5kL2JhY2t1cC93YWxzdW1t YXJ5LmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9saWIvcmJ0cmVlLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Rk bHV0aWxzLmMgICAgICAgICAgICAgIHwgIDQgKy0tCiBzcmMvYmFja2VuZC91dGlscy9lcnJv ci9lbG9nLmMgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystLS0tLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9lcnJvci9qc29ubG9nLmMgICAgICAgICAgICAgfCAgNCArLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMgICAgICAgICAgICAgICAgICB8ICA0ICstLQog c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwgIDggKysr LS0tCiBzcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9tYW5pZmVzdC5jICAgICAgfCAg NCArLS0KIHNyYy9iaW4vcGdfY3RsL3BnX2N0bC5jICAgICAgICAgICAgICAgICAgICAgICB8 ICA0ICstLQogc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5jICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIHNyYy9iaW4vcGdfZHVtcC9maWx0ZXIuaCAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAg ICAgfCAgMiArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAg ICAgIHwgIDYgKystLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oICAg ICAgICAgIHwgIDQgKy0tCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jICAgICAg ICAgICAgICAgfCAgNCArLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9leGVjLmMgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGFyYWxsZWwuYyAgICAg ICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCAg ICAgICAgICAgICAgIHwgMTYgKysrKystLS0tLS0KIHNyYy9iaW4vcGdfdXBncmFkZS9zZXJ2 ZXIuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvdXRp bC5jICAgICAgICAgICAgICAgICAgICAgfCAxMCArKystLS0tCiBzcmMvYmluL3BnX3Zlcmlm eWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyAgICAgfCAgOCArKystLS0KIHNyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oICAgICB8ICA0ICstLQogc3JjL2Jpbi9w Z193YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnkuYyAgICAgICAgIHwgIDQgKy0tCiBzcmMvYmlu L3BzcWwvbGFyZ2Vfb2JqLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIHNyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICA2ICsrLS0KIHNy Yy9jb21tb24vbG9nZ2luZy5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBz cmMvY29tbW9uL3BlcmNlbnRyZXBsLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQog c3JjL2NvbW1vbi9wc3ByaW50Zi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IHNyYy9jb21tb24vc3RyaW5naW5mby5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBzcmMvZmVfdXRpbHMvb3B0aW9uX3V0aWxzLmMgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaCAgICAgICAgICAgICAgIHwgIDIg Ky0KIHNyYy9pbmNsdWRlL2JhY2t1cC93YWxzdW1tYXJ5LmggICAgICAgICAgICAgICB8ICAy ICstCiBzcmMvaW5jbHVkZS9jb21tb24vYmxrcmVmdGFibGUuaCAgICAgICAgICAgICAgfCAg MiArLQogc3JjL2luY2x1ZGUvY29tbW9uL2ZlX21lbXV0aWxzLmggICAgICAgICAgICAgIHwg IDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1vbi9sb2dnaW5nLmggICAgICAgICAgICAgICAgICB8 ICAyICstCiBzcmMvaW5jbHVkZS9jb21tb24vcGFyc2VfbWFuaWZlc3QuaCAgICAgICAgICAg fCAgMiArLQogc3JjL2luY2x1ZGUvY29tbW9uL3BlcmNlbnRyZXBsLmggICAgICAgICAgICAg IHwgIDIgKy0KIHNyYy9pbmNsdWRlL2ZlX3V0aWxzL29wdGlvbl91dGlscy5oICAgICAgICAg ICB8ICAyICstCiBzcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0LmggICAgICAgICAgICAg ICAgfCAgOCArKystLS0KIHNyYy9pbmNsdWRlL2xpYi9zdHJpbmdpbmZvLmggICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9wb3J0LmggICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxMCArKystLS0tCiBzcmMvaW5jbHVkZS91dGlscy9lbG9nLmggICAgICAg ICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS91 dGlscy9wYWxsb2MuaCAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2ludGVyZmFj ZXMvZWNwZy9lY3BnbGliL2Rlc2NyaXB0b3IuYyAgICAgIHwgIDYgKystLQogc3JjL2ludGVy ZmFjZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmggIHwgIDIgKy0KIHNyYy9pbnRl cmZhY2VzL2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMgICAgICAgICB8ICAyICstCiBzcmMvaW50 ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWlzYy5jICAgICAgICAgICAgfCAgMiArLQogc3JjL2lu dGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdsaWIuaCAgICAgICAgIHwgIDggKysrLS0tCiBz cmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvcHJlcHJvY19leHRlcm4uaCAgfCAgNiArKy0t CiBzcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvdXRpbC5jICAgICAgICAgICAgfCAgNiAr Ky0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgICAgICAgICAgICAgICAgfCAg MiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtbWlzYy5jICAgICAgICAgICAgICAgIHwg IDQgKy0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgICAgICAgICAg fCAgNiArKy0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jICAgICAgICAg ICAgfCAgNCArLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmggICAgICAg ICAgICB8ICA0ICstLQogc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5jICAgICAgICAgICAg ICAgICAgIHwgIDYgKystLQogc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5oICAgICAgICAg ICAgICAgICAgIHwgIDYgKystLQogc3JjL3BvcnQvb3Blbi5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9wb3J0L3NucHJpbnRmLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICA4ICsrKy0tLQogc3JjL3BvcnQvd2luMzJzZWN1cml0eS5jICAg ICAgICAgICAgICAgICAgICAgIHwgIDQgKy0tCiAuLi4vbW9kdWxlcy9saWJwcV9waXBlbGlu ZS9saWJwcV9waXBlbGluZS5jICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVn cmVzcy5jICAgICAgICAgICAgICAgICB8IDEyICsrKystLS0tCiBzcmMvdGltZXpvbmUvemlj LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKystLS0KIC4uLi9wZ19ic2Rf aW5kZW50L3Rlc3RzL2RlY2xhcmF0aW9ucy4wLnN0ZG91dCB8ICAyICstCiA3MyBmaWxlcyBj aGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgMTcxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2NvbnRyaWIvZGJsaW5rL2RibGluay5jIGIvY29udHJpYi9kYmxpbmsvZGJsaW5rLmMK aW5kZXggOTc5OGNiNTM1YmMuLmQ4NDNlZWU3ZTk3IDEwMDY0NAotLS0gYS9jb250cmliL2Ri bGluay9kYmxpbmsuYworKysgYi9jb250cmliL2RibGluay9kYmxpbmsuYwpAQCAtMTI0LDcg KzEyNCw3IEBAIHN0YXRpYyBib29sIGRibGlua19jb25uc3RyX2hhc19wdyhjb25zdCBjaGFy ICpjb25uc3RyKTsKIHN0YXRpYyB2b2lkIGRibGlua19zZWN1cml0eV9jaGVjayhQR2Nvbm4g KmNvbm4sIGNvbnN0IGNoYXIgKmNvbm5uYW1lLAogCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmNv bm5zdHIpOwogc3RhdGljIHZvaWQgZGJsaW5rX3Jlc19lcnJvcihQR2Nvbm4gKmNvbm4sIGNv bnN0IGNoYXIgKmNvbm5hbWUsIFBHcmVzdWx0ICpyZXMsCi0JCQkJCQkJIGJvb2wgZmFpbCwg Y29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zig1LCA2KTsKKwkJCQkJ CQkgYm9vbCBmYWlsLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50 Zig1LCA2KTsKIHN0YXRpYyBjaGFyICpnZXRfY29ubmVjdF9zdHJpbmcoY29uc3QgY2hhciAq c2VydmVybmFtZSk7CiBzdGF0aWMgY2hhciAqZXNjYXBlX3BhcmFtX3N0cihjb25zdCBjaGFy ICpzdHIpOwogc3RhdGljIHZvaWQgdmFsaWRhdGVfcGthdHRudW1zKFJlbGF0aW9uIHJlbCwK QEAgLTI3OTMsNyArMjc5Myw3IEBAIGRibGlua19jb25uc3RyX2NoZWNrKGNvbnN0IGNoYXIg KmNvbm5zdHIpCiAgKi8KIHN0YXRpYyB2b2lkCiBkYmxpbmtfcmVzX2Vycm9yKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqY29ubmFtZSwgUEdyZXN1bHQgKnJlcywKLQkJCQkgYm9vbCBm YWlsLCBjb25zdCBjaGFyICpmbXQsLi4uKQorCQkJCSBib29sIGZhaWwsIGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogewogCWludAkJCWxldmVsOwogCWNoYXIJICAgKnBnX2RpYWdfc3Fsc3Rh dGUgPSBQUXJlc3VsdEVycm9yRmllbGQocmVzLCBQR19ESUFHX1NRTFNUQVRFKTsKZGlmZiAt LWdpdCBhL2NvbnRyaWIvZnV6enlzdHJtYXRjaC9kbWV0YXBob25lLmMgYi9jb250cmliL2Z1 enp5c3RybWF0Y2gvZG1ldGFwaG9uZS5jCmluZGV4IDA2MjY2NzUyN2MyLi5mOTRiNDE4N2U0 MCAxMDA2NDQKLS0tIGEvY29udHJpYi9mdXp6eXN0cm1hdGNoL2RtZXRhcGhvbmUuYworKysg Yi9jb250cmliL2Z1enp5c3RybWF0Y2gvZG1ldGFwaG9uZS5jCkBAIC0zNTAsNyArMzUwLDcg QEAgU2V0QXQobWV0YXN0cmluZyAqcywgaW50IHBvcywgY2hhciBjKQogICAgQ2F2ZWF0czog dGhlIFNUQVJUIHZhbHVlIGlzIDAgYmFzZWQKICovCiBzdGF0aWMgaW50Ci1TdHJpbmdBdCht ZXRhc3RyaW5nICpzLCBpbnQgc3RhcnQsIGludCBsZW5ndGgsLi4uKQorU3RyaW5nQXQobWV0 YXN0cmluZyAqcywgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoLCAuLi4pCiB7CiAJY2hhcgkgICAq dGVzdDsKIAljaGFyCSAgICpwb3M7CmRpZmYgLS1naXQgYS9jb250cmliL2pzb25iX3BscHl0 aG9uL2pzb25iX3BscHl0aG9uLmMgYi9jb250cmliL2pzb25iX3BscHl0aG9uL2pzb25iX3Bs cHl0aG9uLmMKaW5kZXggYzJjNGNlMzdjMDguLjRkZTc1YTA0ZTc2IDEwMDY0NAotLS0gYS9j b250cmliL2pzb25iX3BscHl0aG9uL2pzb25iX3BscHl0aG9uLmMKKysrIGIvY29udHJpYi9q c29uYl9wbHB5dGhvbi9qc29uYl9wbHB5dGhvbi5jCkBAIC0xNiw3ICsxNiw3IEBAIFBHX01P RFVMRV9NQUdJQ19FWFQoCiB0eXBlZGVmIGNoYXIgKigqUEx5T2JqZWN0X0FzU3RyaW5nX3Qp IChQeU9iamVjdCAqcGxydik7CiBzdGF0aWMgUEx5T2JqZWN0X0FzU3RyaW5nX3QgUEx5T2Jq ZWN0X0FzU3RyaW5nX3A7CiAKLXR5cGVkZWYgdm9pZCAoKlBMeV9lbG9nX2ltcGxfdCkgKGlu dCBlbGV2ZWwsIGNvbnN0IGNoYXIgKmZtdCwuLi4pOwordHlwZWRlZiB2b2lkICgqUEx5X2Vs b2dfaW1wbF90KSAoaW50IGVsZXZlbCwgY29uc3QgY2hhciAqZm10LCAuLi4pOwogc3RhdGlj IFBMeV9lbG9nX2ltcGxfdCBQTHlfZWxvZ19pbXBsX3A7CiAKIC8qCmRpZmYgLS1naXQgYS9j b250cmliL3BnY3J5cHRvL3B4LmMgYi9jb250cmliL3BnY3J5cHRvL3B4LmMKaW5kZXggZjA4 YmM0OThhYzguLjMyZjYyZjNmYzFiIDEwMDY0NAotLS0gYS9jb250cmliL3BnY3J5cHRvL3B4 LmMKKysrIGIvY29udHJpYi9wZ2NyeXB0by9weC5jCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHhf c2V0X2RlYnVnX2hhbmRsZXIodm9pZCAoKmhhbmRsZXIpIChjb25zdCBjaGFyICopKQogfQog CiB2b2lkCi1weF9kZWJ1Zyhjb25zdCBjaGFyICpmbXQsLi4uKQorcHhfZGVidWcoY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcGdjcnlwdG8vcHguaCBiL2NvbnRyaWIvcGdjcnlwdG8vcHguaAppbmRleCBhMDk1MzNh MzU4Mi4uNDQwYWNmNmE1MjcgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdjcnlwdG8vcHguaAor KysgYi9jb250cmliL3BnY3J5cHRvL3B4LmgKQEAgLTE5NCw3ICsxOTQsNyBAQCBib29sCQlD aGVja0ZJUFNNb2RlKHZvaWQpOwogdm9pZAkJQ2hlY2tCdWlsdGluQ3J5cHRvTW9kZSh2b2lk KTsKIAogI2lmZGVmIFBYX0RFQlVHCi12b2lkCQlweF9kZWJ1Zyhjb25zdCBjaGFyICpmbXQs Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwordm9pZAkJcHhfZGVidWcoY29uc3Qg Y2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAjZWxzZQogI2Rl ZmluZSBweF9kZWJ1ZyguLi4pCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3Bvc3RncmVzX2Zkdy5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNf ZmR3LmMKaW5kZXggMGYyMGYzOGM4M2UuLmI2N2U2MzVjNTE1IDEwMDY0NAotLS0gYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYworKysgYi9jb250cmliL3Bvc3RncmVz X2Zkdy9wb3N0Z3Jlc19mZHcuYwpAQCAtNTU5Myw3ICs1NTkzLDcgQEAgcG9zdGdyZXNJbXBv cnRGb3JlaWduU3RhdGlzdGljcyhSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqdmFfY29scywg aW50IGVsZXZlbCkKIAljb25zdCBjaGFyICpyZWxuYW1lID0gTlVMTDsKIAlGb3JlaWduVGFi bGUgKnRhYmxlOwogCUZvcmVpZ25TZXJ2ZXIgKnNlcnZlcjsKLQlSZW1vdGVTdGF0c1Jlc3Vs dHMgcmVtc3RhdHMgPSB7LnJlbCA9IE5VTEwsLmF0dCA9IE5VTEx9OworCVJlbW90ZVN0YXRz UmVzdWx0cyByZW1zdGF0cyA9IHsucmVsID0gTlVMTCwgLmF0dCA9IE5VTEx9OwogCVJlbW90 ZUF0dHJpYnV0ZU1hcHBpbmcgKnJlbWF0dHJtYXAgPSBOVUxMOwogCWludAkJCWF0dHJjbnQg PSAwOwogCWJvb2wJCXJlc3RvcmVfc3RhdHMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aW5kZXgvYW12YWxpZGF0ZS5jCmluZGV4IGY4NmJhN2Q3NmQyLi45NmVmMTllOTZmZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jCkBAIC0xNTAsNyArMTUwLDcg QEAgaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlz dCAqcHJvY2xpc3QpCiAgKi8KIGJvb2wKIGNoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1 bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCi0JCQkJCSAgIGludCBtaW5hcmdzLCBp bnQgbWF4YXJncywuLi4pCisJCQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywgLi4u KQogewogCWJvb2wJCXJlc3VsdCA9IHRydWU7CiAJSGVhcFR1cGxlCXRwOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlYWRlci5jCmluZGV4IDg4NDk2MTBkYjAwLi4zMTQ1 YzU4YTliMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3Jl YWRlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWFkZXIuYwpA QCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgImNvbW1vbi9sb2dnaW5nLmgiCiAjZW5kaWYK IAotc3RhdGljIHZvaWQgcmVwb3J0X2ludmFsaWRfcmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAq c3RhdGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitzdGF0aWMgdm9pZCByZXBvcnRfaW52YWxp ZF9yZWNvcmQoWExvZ1JlYWRlclN0YXRlICpzdGF0ZSwgY29uc3QgY2hhciAqZm10LCAuLi4p CiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogc3RhdGljIHZvaWQgYWxsb2NhdGVf cmVjb3JkYnVmKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIHVpbnQzMiByZWNsZW5ndGgpOwog c3RhdGljIGludAlSZWFkUGFnZUludGVybmFsKFhMb2dSZWFkZXJTdGF0ZSAqc3RhdGUsIFhM b2dSZWNQdHIgcGFnZXB0ciwKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIHZvaWQgV0FMT3Bl blNlZ21lbnRJbml0KFdBTE9wZW5TZWdtZW50ICpzZWcsIFdBTFNlZ21lbnRDb250ZXh0ICpz ZWdjeHQsCiAgKiB0aGUgY3VycmVudCByZWNvcmQgYmVpbmcgcmVhZC4KICAqLwogc3RhdGlj IHZvaWQKLXJlcG9ydF9pbnZhbGlkX3JlY29yZChYTG9nUmVhZGVyU3RhdGUgKnN0YXRlLCBj b25zdCBjaGFyICpmbXQsLi4uKQorcmVwb3J0X2ludmFsaWRfcmVjb3JkKFhMb2dSZWFkZXJT dGF0ZSAqc3RhdGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2JhY2t1cC9iYXNlYmFja3VwX2luY3JlbWVu dGFsLmMgYi9zcmMvYmFja2VuZC9iYWNrdXAvYmFzZWJhY2t1cF9pbmNyZW1lbnRhbC5jCmlu ZGV4IDZmMzU1MmM2YTRhLi45MjM1ZjZiMjY4YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv YmFja3VwL2Jhc2ViYWNrdXBfaW5jcmVtZW50YWwuYworKysgYi9zcmMvYmFja2VuZC9iYWNr dXAvYmFzZWJhY2t1cF9pbmNyZW1lbnRhbC5jCkBAIC0xNDAsNyArMTQwLDcgQEAgc3RhdGlj IHZvaWQgbWFuaWZlc3RfcHJvY2Vzc193YWxfcmFuZ2UoSnNvbk1hbmlmZXN0UGFyc2VDb250 ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkJICAgWExvZ1JlY1B0ciBzdGFydF9sc24sCiAJCQkJ CQkJCQkgICBYTG9nUmVjUHRyIGVuZF9sc24pOwogcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQg bWFuaWZlc3RfcmVwb3J0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4 dCwKLQkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQsLi4uKQorCQkJCQkJCQkJCQkgIGNv bnN0IGNoYXIgKmZtdCwgLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIHN0 YXRpYyBpbnQJY29tcGFyZV9ibG9ja19udW1iZXJzKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZv aWQgKmIpOwogCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBtYW5pZmVzdF9wcm9jZXNzX3dhbF9y YW5nZShKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCiAgKiBtYW5pZmVzdC4K ICAqLwogc3RhdGljIHZvaWQKLW1hbmlmZXN0X3JlcG9ydF9lcnJvcihKc29uTWFuaWZlc3RQ YXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCittYW5pZmVzdF9y ZXBvcnRfZXJyb3IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LCBjb25zdCBj aGFyICpmbXQsIC4uLikKIHsKIAlTdHJpbmdJbmZvRGF0YSBlcnJidWY7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2JhY2t1cC93YWxzdW1tYXJ5LmMgYi9zcmMvYmFja2VuZC9iYWNr dXAvd2Fsc3VtbWFyeS5jCmluZGV4IDRjZDE4MjRmYmM2Li4wY2RjODZhZjMwYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYmFja3VwL3dhbHN1bW1hcnkuYworKysgYi9zcmMvYmFja2Vu ZC9iYWNrdXAvd2Fsc3VtbWFyeS5jCkBAIC0zMTksNyArMzE5LDcgQEAgV3JpdGVXYWxTdW1t YXJ5KHZvaWQgKndhbF9zdW1tYXJ5X2lvLCB2b2lkICpkYXRhLCBpbnQgbGVuZ3RoKQogICog RXJyb3ItcmVwb3J0aW5nIGNhbGxiYWNrIGZvciB1c2Ugd2l0aCBDcmVhdGVCbG9ja1JlZlRh YmxlUmVhZGVyLgogICovCiB2b2lkCi1SZXBvcnRXYWxTdW1tYXJ5RXJyb3Iodm9pZCAqY2Fs bGJhY2tfYXJnLCBjaGFyICpmbXQsLi4uKQorUmVwb3J0V2FsU3VtbWFyeUVycm9yKHZvaWQg KmNhbGxiYWNrX2FyZywgY2hhciAqZm10LCAuLi4pCiB7CiAJU3RyaW5nSW5mb0RhdGEgYnVm OwogCXZhX2xpc3QJCWFwOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGliL3JidHJlZS5j IGIvc3JjL2JhY2tlbmQvbGliL3JidHJlZS5jCmluZGV4IGQ3YjQxMGQ0NDMwLi4wMzZmMzQ3 ODA2MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbGliL3JidHJlZS5jCisrKyBiL3NyYy9i YWNrZW5kL2xpYi9yYnRyZWUuYwpAQCAtNjIsNyArNjIsNyBAQCBzdHJ1Y3QgUkJUcmVlCiAK IHN0YXRpYyBSQlROb2RlIHNlbnRpbmVsID0KIHsKLQkuY29sb3IgPSBSQlRCTEFDSywubGVm dCA9IFJCVE5JTCwucmlnaHQgPSBSQlROSUwsLnBhcmVudCA9IE5VTEwKKwkuY29sb3IgPSBS QlRCTEFDSywgLmxlZnQgPSBSQlROSUwsIC5yaWdodCA9IFJCVE5JTCwgLnBhcmVudCA9IE5V TEwKIH07CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RkbHV0aWxz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGRsdXRpbHMuYwppbmRleCBiMTZjMjc3ZDAw MC4uYWFiZGI5NmY4NTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kZGx1 dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kZGx1dGlscy5jCkBAIC03Niw3 ICs3Niw3IEBAIHR5cGVkZWYgc3RydWN0IERkbE9wdGlvbgogc3RhdGljIHZvaWQgcGFyc2Vf ZGRsX29wdGlvbnMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGludCB2YXJpYWRpY19zdGFy dCwKIAkJCQkJCQkgIERkbE9wdGlvbiAqb3B0cywgaW50IG5vcHRzKTsKIHN0YXRpYyB2b2lk IGFwcGVuZF9kZGxfb3B0aW9uKFN0cmluZ0luZm8gYnVmLCBib29sIHByZXR0eSwgaW50IGlu ZGVudCwKLQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwuLi4pCisJCQkJCQkJICBjb25zdCBj aGFyICpmbXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoNCwgNSk7CiBzdGF0aWMg dm9pZCBhcHBlbmRfZ3VjX3ZhbHVlKFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFyICpuYW1l LAogCQkJCQkJCSBjb25zdCBjaGFyICp2YWx1ZSk7CkBAIC0yMzIsNyArMjMyLDcgQEAgcGFy c2VfZGRsX29wdGlvbnMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGludCB2YXJpYWRpY19z dGFydCwKICAqLwogc3RhdGljIHZvaWQKIGFwcGVuZF9kZGxfb3B0aW9uKFN0cmluZ0luZm8g YnVmLCBib29sIHByZXR0eSwgaW50IGluZGVudCwKLQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwu Li4pCisJCQkJICBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpZiAocHJldHR5KQogCXsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwppbmRleCBjMjcwYzYyZTIxMy4uYjI0NWQ4ZGZlZTEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKQEAgLTEwOTAsNyArMTA5MCw3IEBAIGVycmNv ZGVfZm9yX3NvY2tldF9hY2Nlc3Modm9pZCkKICAqIGVyZXBvcnQgd2lsbCBwcm92aWRlIG9u ZSBmb3IgdGhlIG91dHB1dCBtZXRob2RzIHRoYXQgbmVlZCBpdC4KICAqLwogaW50Ci1lcnJt c2coY29uc3QgY2hhciAqZm10LC4uLikKK2Vycm1zZyhjb25zdCBjaGFyICpmbXQsIC4uLikK IHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2Rl cHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xMzQ1LDcgKzEzNDUsNyBA QCBiYWNrdHJhY2VfY2xlYW51cChpbnQgY29kZSwgRGF0dW0gYXJnKQogICogZXJyb3IgcmVj dXJzaW9uLgogICovCiBpbnQKLWVycm1zZ19pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4u KQorZXJybXNnX2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9yRGF0 YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1lbW9y eUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTEzNjksNyArMTM2OSw3IEBAIGVycm1zZ19pbnRl cm5hbChjb25zdCBjaGFyICpmbXQsLi4uKQogICovCiBpbnQKIGVycm1zZ19wbHVyYWwoY29u c3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAotCQkJICB1 bnNpZ25lZCBsb25nIG4sLi4uKQorCQkJICB1bnNpZ25lZCBsb25nIG4sIC4uLikKIHsKIAlF cnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsK IAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xMzkxLDcgKzEzOTEsNyBAQCBlcnJt c2dfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3Bs dXJhbCwKICAqIGVycmRldGFpbCAtLS0gYWRkIGEgZGV0YWlsIGVycm9yIG1lc3NhZ2UgdGV4 dCB0byB0aGUgY3VycmVudCBlcnJvcgogICovCiBpbnQKLWVycmRldGFpbChjb25zdCBjaGFy ICpmbXQsLi4uKQorZXJyZGV0YWlsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9y RGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTE0MTgsNyArMTQxOCw3IEBAIGVycmRldGFp bChjb25zdCBjaGFyICpmbXQsLi4uKQogICogKHR5cGljYWxseSwgdGhhdCB0aGV5IGRvbid0 IHNlZW0gdG8gYmUgdXNlZnVsIHRvIGF2ZXJhZ2UgdXNlcnMpLgogICovCiBpbnQKLWVycmRl dGFpbF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4uKQorZXJyZGV0YWlsX2ludGVybmFs KGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9y ZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4 dDsKQEAgLTE0MzksNyArMTQzOSw3IEBAIGVycmRldGFpbF9pbnRlcm5hbChjb25zdCBjaGFy ICpmbXQsLi4uKQogICogZXJyZGV0YWlsX2xvZyAtLS0gYWRkIGEgZGV0YWlsX2xvZyBlcnJv ciBtZXNzYWdlIHRleHQgdG8gdGhlIGN1cnJlbnQgZXJyb3IKICAqLwogaW50Ci1lcnJkZXRh aWxfbG9nKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitlcnJkZXRhaWxfbG9nKGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogewogCUVycm9yRGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRh dGFfc3RhY2tfZGVwdGhdOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTE0NjEs NyArMTQ2MSw3IEBAIGVycmRldGFpbF9sb2coY29uc3QgY2hhciAqZm10LC4uLikKICAqLwog aW50CiBlcnJkZXRhaWxfbG9nX3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNv bnN0IGNoYXIgKmZtdF9wbHVyYWwsCi0JCQkJCSB1bnNpZ25lZCBsb25nIG4sLi4uKQorCQkJ CQkgdW5zaWduZWQgbG9uZyBuLCAuLi4pCiB7CiAJRXJyb3JEYXRhICAqZWRhdGEgPSAmZXJy b3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OwpAQCAtMTQ4NCw3ICsxNDg0LDcgQEAgZXJyZGV0YWlsX2xvZ19wbHVyYWwoY29uc3Qg Y2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAogICovCiBpbnQK IGVycmRldGFpbF9wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFy ICpmbXRfcGx1cmFsLAotCQkJCSB1bnNpZ25lZCBsb25nIG4sLi4uKQorCQkJCSB1bnNpZ25l ZCBsb25nIG4sIC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJy b3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0x NTA1LDcgKzE1MDUsNyBAQCBlcnJkZXRhaWxfcGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5n dWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKICAqIGVycmhpbnQgLS0tIGFkZCBhIGhp bnQgZXJyb3IgbWVzc2FnZSB0ZXh0IHRvIHRoZSBjdXJyZW50IGVycm9yCiAgKi8KIGludAot ZXJyaGludChjb25zdCBjaGFyICpmbXQsLi4uKQorZXJyaGludChjb25zdCBjaGFyICpmbXQs IC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0 YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CkBAIC0xNTI3LDcgKzE1 MjcsNyBAQCBlcnJoaW50KGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAgKiBOb24tdHJhbnNsYXRl ZCB2ZXJzaW9uIG9mIGVycmhpbnQoKSwgc2VlIGFsc28gZXJybXNnX2ludGVybmFsKCkuCiAg Ki8KIGludAotZXJyaGludF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4uKQorZXJyaGlu dF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlFcnJvckRhdGEgICplZGF0 YSA9ICZlcnJvcmRhdGFbZXJyb3JkYXRhX3N0YWNrX2RlcHRoXTsKIAlNZW1vcnlDb250ZXh0 IG9sZGNvbnRleHQ7CkBAIC0xNTQ5LDcgKzE1NDksNyBAQCBlcnJoaW50X2ludGVybmFsKGNv bnN0IGNoYXIgKmZtdCwuLi4pCiAgKi8KIGludAogZXJyaGludF9wbHVyYWwoY29uc3QgY2hh ciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAotCQkJICAgdW5zaWdu ZWQgbG9uZyBuLC4uLikKKwkJCSAgIHVuc2lnbmVkIGxvbmcgbiwgLi4uKQogewogCUVycm9y RGF0YSAgKmVkYXRhID0gJmVycm9yZGF0YVtlcnJvcmRhdGFfc3RhY2tfZGVwdGhdOwogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKQEAgLTE1NzQsNyArMTU3NCw3IEBAIGVycmhpbnRf cGx1cmFsKGNvbnN0IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJh bCwKICAqIHN0YXRlcy4KICAqLwogaW50Ci1lcnJjb250ZXh0X21zZyhjb25zdCBjaGFyICpm bXQsLi4uKQorZXJyY29udGV4dF9tc2coY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJRXJy b3JEYXRhICAqZWRhdGEgPSAmZXJyb3JkYXRhW2Vycm9yZGF0YV9zdGFja19kZXB0aF07CiAJ TWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OwpAQCAtMTg0Niw3ICsxODQ2LDcgQEAgcHJlX2Zv cm1hdF9lbG9nX3N0cmluZyhpbnQgZXJybnVtYmVyLCBjb25zdCBjaGFyICpkb21haW4pCiB9 CiAKIGNoYXIgKgotZm9ybWF0X2Vsb2dfc3RyaW5nKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitm b3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJRXJyb3JEYXRh CWVycmRhdGE7CiAJRXJyb3JEYXRhICAqZWRhdGE7CkBAIC00MjI1LDcgKzQyMjUsNyBAQCBh cHBlbmRfd2l0aF90YWJzKFN0cmluZ0luZm8gYnVmLCBjb25zdCBjaGFyICpzdHIpCiAgKiBz YWZlbHkgKG1lbW9yeSBjb250ZXh0LCBHVUMgbG9hZCBldGMpCiAgKi8KIHZvaWQKLXdyaXRl X3N0ZGVycihjb25zdCBjaGFyICpmbXQsLi4uKQord3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9lcnJvci9qc29ubG9nLmMgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9qc29u bG9nLmMKaW5kZXggMmZmNmEwMDQwNDYuLmU1YmEyMjc5NGQyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9lcnJvci9qc29ubG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv ZXJyb3IvanNvbmxvZy5jCkBAIC0zMCw3ICszMCw3IEBACiAKIHN0YXRpYyB2b2lkIGFwcGVu ZEpTT05LZXlWYWx1ZUZtdChTdHJpbmdJbmZvIGJ1ZiwgY29uc3QgY2hhciAqa2V5LAogCQkJ CQkJCQkgIGJvb2wgZXNjYXBlX2tleSwKLQkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDQsIDUpOworCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZt dCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDQsIDUpOwogCiAvKgogICogYXBwZW5kSlNP TktleVZhbHVlCkBAIC02OCw3ICs2OCw3IEBAIGFwcGVuZEpTT05LZXlWYWx1ZShTdHJpbmdJ bmZvIGJ1ZiwgY29uc3QgY2hhciAqa2V5LCBjb25zdCBjaGFyICp2YWx1ZSwKICAqLwogc3Rh dGljIHZvaWQKIGFwcGVuZEpTT05LZXlWYWx1ZUZtdChTdHJpbmdJbmZvIGJ1ZiwgY29uc3Qg Y2hhciAqa2V5LAotCQkJCQkgIGJvb2wgZXNjYXBlX2tleSwgY29uc3QgY2hhciAqZm10LC4u LikKKwkJCQkJICBib29sIGVzY2FwZV9rZXksIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewog CWludAkJCXNhdmVfZXJybm8gPSBlcnJubzsKIAlzaXplX3QJCWxlbiA9IDEyODsJCS8qIGlu aXRpYWwgYXNzdW1wdGlvbiBhYm91dCBidWZmZXIgc2l6ZSAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj LmMKaW5kZXggYzRjM2ZiYzRmZTMuLjc3NGJiYzliZTVmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Yy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj LmMKQEAgLTI2MSw3ICsyNjEsNyBAQCBzdGF0aWMgYm9vbCB2YWxpZF9jdXN0b21fdmFyaWFi bGVfbmFtZShjb25zdCBjaGFyICpuYW1lKTsKIHN0YXRpYyBib29sIGFzc2lnbmFibGVfY3Vz dG9tX3ZhcmlhYmxlX25hbWUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBza2lwX2Vycm9ycywK IAkJCQkJCQkJCQkJaW50IGVsZXZlbCk7CiBzdGF0aWMgdm9pZCBkb19zZXJpYWxpemUoY2hh ciAqKmRlc3RwdHIsIFNpemUgKm1heGJ5dGVzLAotCQkJCQkJIGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CisJCQkJCQkgY29uc3QgY2hhciAqZm10 LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CiBzdGF0aWMgYm9vbCBjYWxsX2Jv b2xfY2hlY2tfaG9vayhjb25zdCBzdHJ1Y3QgY29uZmlnX2dlbmVyaWMgKmNvbmYsIGJvb2wg Km5ld3ZhbCwKIAkJCQkJCQkJIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSwgaW50 IGVsZXZlbCk7CiBzdGF0aWMgYm9vbCBjYWxsX2ludF9jaGVja19ob29rKGNvbnN0IHN0cnVj dCBjb25maWdfZ2VuZXJpYyAqY29uZiwgaW50ICpuZXd2YWwsCkBAIC01ODgzLDcgKzU4ODMs NyBAQCBFc3RpbWF0ZUdVQ1N0YXRlU3BhY2Uodm9pZCkKICAqIG1heGJ5dGVzIGlzIG5vdCBz dWZmaWNpZW50IHRvIGNvcHkgdGhlIHN0cmluZywgZXJyb3Igb3V0LgogICovCiBzdGF0aWMg dm9pZAotZG9fc2VyaWFsaXplKGNoYXIgKipkZXN0cHRyLCBTaXplICptYXhieXRlcywgY29u c3QgY2hhciAqZm10LC4uLikKK2RvX3NlcmlhbGl6ZShjaGFyICoqZGVzdHB0ciwgU2l6ZSAq bWF4Ynl0ZXMsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCXZhcmdzOwog CWludAkJCW47CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRl c3Vic2NyaWJlci5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmli ZXIuYwppbmRleCAzNzYzMWY3MDBhZi4uYmZiNjU1MjQzZDYgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKKysrIGIvc3JjL2Jpbi9w Z19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwpAQCAtMTUyLDEyICsxNTIsMTIg QEAgc3RhdGljIHZvaWQgZHJvcF9leGlzdGluZ19zdWJzY3JpcHRpb24oUEdjb25uICpjb25u LCBjb25zdCBjaGFyICpzdWJuYW1lLAogc3RhdGljIHZvaWQgZ2V0X3B1Ymxpc2hlcl9kYXRh YmFzZXMoc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsCiAJCQkJCQkJCQli b29sIGRibmFtZXNwZWNpZmllZCk7CiBzdGF0aWMgdm9pZCByZXBvcnRfY3JlYXRlc3ViX2xv ZyhlbnVtIHBnX2xvZ19sZXZlbCwgZW51bSBwZ19sb2dfcGFydCwKLQkJCQkJCQkJIGNvbnN0 IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCisJCQkJCQkJCSBjb25zdCBjaGFyICpwZ19y ZXN0cmljdCBmbXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CiBzdGF0 aWMgdm9pZCByZXBvcnRfY3JlYXRlc3ViX2xvZ192KGVudW0gcGdfbG9nX2xldmVsIGxldmVs LCBlbnVtIHBnX2xvZ19wYXJ0IHBhcnQsCiAJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKnBnX3Jl c3RyaWN0IGZtdCwgdmFfbGlzdCBhcmdzKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigzLCAw KTsKLXBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJlcG9ydF9jcmVhdGVzdWJfZmF0YWwoY29u c3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKK3BnX25vcmV0dXJuIHN0YXRpYyB2b2lk IHJlcG9ydF9jcmVhdGVzdWJfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCAu Li4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogc3RhdGljIHZvaWQgaW50ZXJu YWxfbG9nX2ZpbGVfd3JpdGUoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsCiAJCQkJCQkJCQll bnVtIHBnX2xvZ19wYXJ0IHBhcnQsCkBAIC0yMjQsNyArMjI0LDcgQEAgcmVwb3J0X2NyZWF0 ZXN1Yl9sb2dfdihlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51bSBwZ19sb2dfcGFydCBw YXJ0LAogCiBzdGF0aWMgdm9pZAogcmVwb3J0X2NyZWF0ZXN1Yl9sb2coZW51bSBwZ19sb2df bGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKLQkJCQkJIGNvbnN0IGNoYXIg KnBnX3Jlc3RyaWN0IGZtdCwuLi4pCisJCQkJCSBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBm bXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwogCkBAIC0yMzksNyArMjM5LDcgQEAgcmVw b3J0X2NyZWF0ZXN1Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9n X3BhcnQgcGFydCwKICAqIFJlcG9ydCBhIGZhdGFsIGVycm9yIGFuZCBleGl0CiAgKi8KIHN0 YXRpYyB2b2lkCi1yZXBvcnRfY3JlYXRlc3ViX2ZhdGFsKGNvbnN0IGNoYXIgKnBnX3Jlc3Ry aWN0IGZtdCwuLi4pCityZXBvcnRfY3JlYXRlc3ViX2ZhdGFsKGNvbnN0IGNoYXIgKnBnX3Jl c3RyaWN0IGZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfY29tYmluZWJhY2t1cC9sb2FkX21hbmlmZXN0LmMgYi9zcmMvYmluL3BnX2Nv bWJpbmViYWNrdXAvbG9hZF9tYW5pZmVzdC5jCmluZGV4IDJlNTBiN2FmNGQyLi4wMjFmZDNm ZmExZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL2xvYWRfbWFuaWZl c3QuYworKysgYi9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvbG9hZF9tYW5pZmVzdC5jCkBA IC02OSw3ICs2OSw3IEBAIHN0YXRpYyB2b2lkIGNvbWJpbmViYWNrdXBfcGVyX3dhbF9yYW5n ZV9jYihKc29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCQkJICAg WExvZ1JlY1B0ciBzdGFydF9sc24sCiAJCQkJCQkJCQkJICAgWExvZ1JlY1B0ciBlbmRfbHNu KTsKIHBnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHJlcG9ydF9tYW5pZmVzdF9lcnJvcihKc29u TWFuaWZlc3RQYXJzZUNvbnRleHQgKmNvbnRleHQsCi0JCQkJCQkJCQkJCSAgY29uc3QgY2hh ciAqZm10LC4uLikKKwkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpmbXQsIC4uLikKIAkJCXBn X2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qCkBAIC0yMjUsNyArMjI1LDcgQEAgbG9h ZF9iYWNrdXBfbWFuaWZlc3QoY2hhciAqYmFja3VwX2RpcmVjdG9yeSkKICAqIGV4cGVjdHMg dGhpcyBmdW5jdGlvbiBub3QgdG8gcmV0dXJuLgogICovCiBzdGF0aWMgdm9pZAotcmVwb3J0 X21hbmlmZXN0X2Vycm9yKEpzb25NYW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwgY29u c3QgY2hhciAqZm10LC4uLikKK3JlcG9ydF9tYW5pZmVzdF9lcnJvcihKc29uTWFuaWZlc3RQ YXJzZUNvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xp c3QJCWFwOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2N0bC9wZ19jdGwuYyBiL3NyYy9i aW4vcGdfY3RsL3BnX2N0bC5jCmluZGV4IDNjYzYxNDU1ZGNiLi4zZjA2NDVlMTA0OCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19jdGwvcGdfY3RsLmMKKysrIGIvc3JjL2Jpbi9wZ19jdGwv cGdfY3RsLmMKQEAgLTExNCw3ICsxMTQsNyBAQCBzdGF0aWMgSEFORExFIHNodXRkb3duSGFu ZGxlc1syXTsKICNlbmRpZgogCiAKLXN0YXRpYyB2b2lkIHdyaXRlX3N0ZGVycihjb25zdCBj aGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZvaWQg d3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDEsIDIpOwogc3RhdGljIHZvaWQgZG9fYWR2aWNlKHZvaWQpOwogc3RhdGljIHZvaWQgZG9f aGVscCh2b2lkKTsKIHN0YXRpYyB2b2lkIHNldF9tb2RlKGNoYXIgKm1vZGVvcHQpOwpAQCAt MjAwLDcgKzIwMCw3IEBAIHdyaXRlX2V2ZW50bG9nKGludCBsZXZlbCwgY29uc3QgY2hhciAq bGluZSkKICAqIG5vdCBhdmFpbGFibGUpLgogICovCiBzdGF0aWMgdm9pZAotd3JpdGVfc3Rk ZXJyKGNvbnN0IGNoYXIgKmZtdCwuLi4pCit3cml0ZV9zdGRlcnIoY29uc3QgY2hhciAqZm10 LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9maWx0ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9maWx0ZXIuYwppbmRleCBmYmZmNjlkNGY3 ZS4uOGFhMzgxMGNiMDggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9maWx0ZXIuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmMKQEAgLTE1MSw3ICsxNTEsNyBAQCBnZXRf b2JqZWN0X3R5cGUoY29uc3QgY2hhciAqa2V5d29yZCwgaW50IHNpemUsIEZpbHRlck9iamVj dFR5cGUgKm9ianR5cGUpCiAKIAogdm9pZAotcGdfbG9nX2ZpbHRlcl9lcnJvcihGaWx0ZXJT dGF0ZURhdGEgKmZzdGF0ZSwgY29uc3QgY2hhciAqZm10LC4uLikKK3BnX2xvZ19maWx0ZXJf ZXJyb3IoRmlsdGVyU3RhdGVEYXRhICpmc3RhdGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQog ewogCXZhX2xpc3QJCWFyZ3A7CiAJY2hhcgkJYnVmWzI1Nl07CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvZmlsdGVyLmggYi9zcmMvYmluL3BnX2R1bXAvZmlsdGVyLmgKaW5kZXgg Yjg3Y2Q2ZGVjNTguLjBjZjBkMjJkMTU5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv ZmlsdGVyLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2ZpbHRlci5oCkBAIC02Myw3ICs2Myw3 IEBAIHR5cGVkZWYgZW51bQogZXh0ZXJuIGNvbnN0IGNoYXIgKmZpbHRlcl9vYmplY3RfdHlw ZV9uYW1lKEZpbHRlck9iamVjdFR5cGUgZm90KTsKIGV4dGVybiB2b2lkIGZpbHRlcl9pbml0 KEZpbHRlclN0YXRlRGF0YSAqZnN0YXRlLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgZXhpdF9m dW5jdGlvbiBmX2V4aXQpOwogZXh0ZXJuIHZvaWQgZmlsdGVyX2ZyZWUoRmlsdGVyU3RhdGVE YXRhICpmc3RhdGUpOwotZXh0ZXJuIHZvaWQgcGdfbG9nX2ZpbHRlcl9lcnJvcihGaWx0ZXJT dGF0ZURhdGEgKmZzdGF0ZSwgY29uc3QgY2hhciAqZm10LC4uLikKK2V4dGVybiB2b2lkIHBn X2xvZ19maWx0ZXJfZXJyb3IoRmlsdGVyU3RhdGVEYXRhICpmc3RhdGUsIGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIGV4dGVybiBib29s IGZpbHRlcl9yZWFkX2l0ZW0oRmlsdGVyU3RhdGVEYXRhICpmc3RhdGUsIGNoYXIgKipvYmpu YW1lLAogCQkJCQkJCSBGaWx0ZXJDb21tYW5kVHlwZSAqY29tdHlwZSwgRmlsdGVyT2JqZWN0 VHlwZSAqb2JqdHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw LmggYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggZmRhOTEyYmEwYTkuLjI4 ZTdmZjZmYTE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0zMzksNyArMzM5LDcgQEAgZXh0 ZXJuIHZvaWQgU29ydFRvY0Zyb21GaWxlKEFyY2hpdmUgKkFIWCk7CiAKIC8qIENvbnZlbmll bmNlIGZ1bmN0aW9ucyB1c2VkIG9ubHkgd2hlbiB3cml0aW5nIERBVEEgKi8KIGV4dGVybiB2 b2lkIGFyY2hwdXRzKGNvbnN0IGNoYXIgKnMsIEFyY2hpdmUgKkFIKTsKLWV4dGVybiBpbnQJ YXJjaHByaW50ZihBcmNoaXZlICpBSCwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmli dXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiBpbnQJYXJjaHByaW50ZihBcmNoaXZlICpBSCwg Y29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKICNk ZWZpbmUgYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKGJ1ZixzdHIsQUgpIFwKIAlhcHBlbmRTdHJp bmdMaXRlcmFsKGJ1Ziwgc3RyLCAoQUgpLT5lbmNvZGluZywgKEFIKS0+c3RkX3N0cmluZ3Mp CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9z cmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggZmVjZjZmMmQxY2Uu LjJmZDc3M2FkODRmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCkBA IC0xNjc0LDcgKzE2NzQsNyBAQCBhcmNocHV0cyhjb25zdCBjaGFyICpzLCBBcmNoaXZlICpB SCkKIAogLyogUHVibGljICovCiBpbnQKLWFyY2hwcmludGYoQXJjaGl2ZSAqQUgsIGNvbnN0 IGNoYXIgKmZtdCwuLi4pCithcmNocHJpbnRmKEFyY2hpdmUgKkFILCBjb25zdCBjaGFyICpm bXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJY2hhcgkgICAqcDsK QEAgLTE3NzgsNyArMTc3OCw3IEBAIFJlc3RvcmVPdXRwdXQoQXJjaGl2ZUhhbmRsZSAqQUgs IENvbXByZXNzRmlsZUhhbmRsZSAqc2F2ZWRPdXRwdXQpCiAgKglQcmludCBmb3JtYXR0ZWQg dGV4dCB0byB0aGUgb3V0cHV0IGZpbGUgKHVzdWFsbHkgc3Rkb3V0KS4KICAqLwogaW50Ci1h aHByaW50ZihBcmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LC4uLikKK2FocHJp bnRmKEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJ CQlzYXZlX2Vycm5vID0gZXJybm87CiAJY2hhcgkgICAqcDsKQEAgLTE5MTYsNyArMTkxNiw3 IEBAIGFod3JpdGUoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IG5tZW1i LCBBcmNoaXZlSGFuZGxlICpBSCkKIAogLyogb24gc29tZSBlcnJvciwgd2UgbWF5IGRlY2lk ZSB0byBnbyBvbi4uLiAqLwogdm9pZAotd2Fybl9vcl9leGl0X2hvcnJpYmx5KEFyY2hpdmVI YW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsLi4uKQord2Fybl9vcl9leGl0X2hvcnJpYmx5 KEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0 CQlhcDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZl ci5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oCmluZGV4IDljM2Fj YTY1NDNhLi4xMjE4YmY2YTZhMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cF9hcmNoaXZlci5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2 ZXIuaApAQCAtMzk2LDcgKzM5Niw3IEBAIGV4dGVybiBpbnQJcGFyYWxsZWxfcmVzdG9yZShB cmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkgKnRlKTsKIGV4dGVybiB2b2lkIG9uX2V4aXRf Y2xvc2VfYXJjaGl2ZShBcmNoaXZlICpBSFgpOwogZXh0ZXJuIHZvaWQgcmVwbGFjZV9vbl9l eGl0X2Nsb3NlX2FyY2hpdmUoQXJjaGl2ZSAqQUhYKTsKIAotZXh0ZXJuIHZvaWQgd2Fybl9v cl9leGl0X2hvcnJpYmx5KEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJuIHZvaWQgd2Fybl9vcl9leGl0 X2hvcnJpYmx5KEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyogT3B0aW9ucyBmb3IgQXJjaGl2ZUVudHJ5 ICovCiB0eXBlZGVmIHN0cnVjdCBfYXJjaGl2ZU9wdHMKQEAgLTQ3Miw2ICs0NzIsNiBAQCBl eHRlcm4gdm9pZCBJc3N1ZUFDTFBlckJsb2IoQXJjaGl2ZUhhbmRsZSAqQUgsIFRvY0VudHJ5 ICp0ZSk7CiBleHRlcm4gdm9pZCBEcm9wTE9JZkV4aXN0cyhBcmNoaXZlSGFuZGxlICpBSCwg T2lkIG9pZCk7CiAKIHZvaWQJCWFod3JpdGUoY29uc3Qgdm9pZCAqcHRyLCBzaXplX3Qgc2l6 ZSwgc2l6ZV90IG5tZW1iLCBBcmNoaXZlSGFuZGxlICpBSCk7Ci1pbnQJCQlhaHByaW50ZihB cmNoaXZlSGFuZGxlICpBSCwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigyLCAzKTsKK2ludAkJCWFocHJpbnRmKEFyY2hpdmVIYW5kbGUgKkFILCBjb25zdCBj aGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX3Rhci5jIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cF90YXIuYwppbmRleCBhMzg3OTQxMGM5NC4uZTZhYmYyMGRmMTEg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfdGFyLmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF90YXIuYwpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRp YyB2b2lkIHRhckNsb3NlKEFyY2hpdmVIYW5kbGUgKkFILCBUQVJfTUVNQkVSICp0aCk7CiAj aWZkZWYgX19OT1RfVVNFRF9fCiBzdGF0aWMgY2hhciAqdGFyR2V0cyhjaGFyICpidWYsIHNp emVfdCBsZW4sIFRBUl9NRU1CRVIgKnRoKTsKICNlbmRpZgotc3RhdGljIGludAl0YXJQcmlu dGYoVEFSX01FTUJFUiAqdGgsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMiwgMyk7CitzdGF0aWMgaW50CXRhclByaW50ZihUQVJfTUVNQkVSICp0aCwgY29u c3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIHN0YXRp YyB2b2lkIF90YXJBZGRGaWxlKEFyY2hpdmVIYW5kbGUgKkFILCBUQVJfTUVNQkVSICp0aCk7 CiBzdGF0aWMgVEFSX01FTUJFUiAqX3RhclBvc2l0aW9uVG8oQXJjaGl2ZUhhbmRsZSAqQUgs IGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKQEAgLTk1MSw3ICs5NTEsNyBAQCBfRW5kTE9zKEFy Y2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAqdGUpCiAgKi8KIAogc3RhdGljIGludAotdGFy UHJpbnRmKFRBUl9NRU1CRVIgKnRoLCBjb25zdCBjaGFyICpmbXQsLi4uKQordGFyUHJpbnRm KFRBUl9NRU1CRVIgKnRoLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZl X2Vycm5vID0gZXJybm87CiAJY2hhcgkgICAqcDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf dXBncmFkZS9leGVjLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvZXhlYy5jCmluZGV4IGUxZGU2 MWYzNmVlLi41NjNiNGE2YjVmYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2V4 ZWMuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvZXhlYy5jCkBAIC04NCw3ICs4NCw3IEBA IGdldF9iaW5fdmVyc2lvbihDbHVzdGVySW5mbyAqY2x1c3RlcikKICAqLwogYm9vbAogZXhl Y19wcm9nKGNvbnN0IGNoYXIgKmxvZ19maWxlbmFtZSwgY29uc3QgY2hhciAqb3B0X2xvZ19m aWxlLAotCQkgIGJvb2wgcmVwb3J0X2Vycm9yLCBib29sIGV4aXRfb25fZXJyb3IsIGNvbnN0 IGNoYXIgKmZtdCwuLi4pCisJCSAgYm9vbCByZXBvcnRfZXJyb3IsIGJvb2wgZXhpdF9vbl9l cnJvciwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJcmVzdWx0ID0gMDsKIAlp bnQJCQl3cml0dGVuOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BhcmFsbGVs LmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGFyYWxsZWwuYwppbmRleCBmMDQwNmRlODRlZS4u ZjU3ZGJiYmI4NTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wYXJhbGxlbC5j CisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wYXJhbGxlbC5jCkBAIC02MSw3ICs2MSw3IEBA IERXT1JECQl3aW4zMl90cmFuc2Zlcl9hbGxfbmV3X2Ricyh0cmFuc2Zlcl90aHJlYWRfYXJn ICphcmdzKTsKICAqLwogdm9pZAogcGFyYWxsZWxfZXhlY19wcm9nKGNvbnN0IGNoYXIgKmxv Z19maWxlLCBjb25zdCBjaGFyICpvcHRfbG9nX2ZpbGUsCi0JCQkJICAgY29uc3QgY2hhciAq Zm10LC4uLikKKwkJCQkgICBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlh cmdzOwogCWNoYXIJCWNtZFtNQVhfU1RSSU5HXTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf dXBncmFkZS9wZ191cGdyYWRlLmggYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5o CmluZGV4IDFkNzY3YmJkYTJkLi4zMzA4MThjOGViMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z191cGdyYWRlL3BnX3VwZ3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBn cmFkZS5oCkBAIC00MTQsNyArNDE0LDcgQEAgdm9pZAkJZ2VuZXJhdGVfb2xkX2R1bXAodm9p ZCk7CiAjZGVmaW5lIEVYRUNfUFNRTF9BUkdTICItLWVjaG8tcXVlcmllcyAtLXNldCBPTl9F UlJPUl9TVE9QPW9uIC0tbm8tcHNxbHJjIC0tZGJuYW1lPXRlbXBsYXRlMSIKIAogYm9vbAkJ ZXhlY19wcm9nKGNvbnN0IGNoYXIgKmxvZ19maWxlbmFtZSwgY29uc3QgY2hhciAqb3B0X2xv Z19maWxlLAotCQkJCQkgIGJvb2wgcmVwb3J0X2Vycm9yLCBib29sIGV4aXRfb25fZXJyb3Is IGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoNSwgNik7CisJCQkJ CSAgYm9vbCByZXBvcnRfZXJyb3IsIGJvb2wgZXhpdF9vbl9lcnJvciwgY29uc3QgY2hhciAq Zm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoNSwgNik7CiB2b2lkCQl2ZXJpZnlfZGly ZWN0b3JpZXModm9pZCk7CiBib29sCQlwaWRfbG9ja19maWxlX2V4aXN0cyhjb25zdCBjaGFy ICpkYXRhZGlyKTsKIApAQCAtNDc0LDcgKzQ3NCw3IEBAIHZvaWQJCWluaXRfdGFibGVzcGFj ZXModm9pZCk7CiAvKiBzZXJ2ZXIuYyAqLwogCiBQR2Nvbm4JICAgKmNvbm5lY3RUb1NlcnZl cihDbHVzdGVySW5mbyAqY2x1c3RlciwgY29uc3QgY2hhciAqZGJfbmFtZSk7Ci1QR3Jlc3Vs dCAgICpleGVjdXRlUXVlcnlPckRpZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitQR3Jlc3VsdCAgICpleGVjdXRlUXVl cnlPckRpZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDIsIDMpOwogCiBjaGFyCSAgICpjbHVzdGVyX2Nvbm5fb3B0cyhDbHVzdGVy SW5mbyAqY2x1c3Rlcik7CiAKQEAgLTQ4OCwxMyArNDg4LDEzIEBAIHZvaWQJCWNoZWNrX3Bn aG9zdF9lbnZ2YXIodm9pZCk7CiBjaGFyCSAgICpxdW90ZV9pZGVudGlmaWVyKGNvbnN0IGNo YXIgKnMpOwogaW50CQkJZ2V0X3VzZXJfaW5mbyhjaGFyICoqdXNlcl9uYW1lX3ApOwogdm9p ZAkJY2hlY2tfb2sodm9pZCk7Ci12b2lkCQlyZXBvcnRfc3RhdHVzKGVMb2dUeXBlIHR5cGUs IGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Ci12b2lk CQlwZ19sb2coZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmli dXRlX3ByaW50ZigyLCAzKTsKLXBnX25vcmV0dXJuIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hh ciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK3ZvaWQJCXJlcG9ydF9z dGF0dXMoZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMiwgMyk7Cit2b2lkCQlwZ19sb2coZUxvZ1R5cGUgdHlwZSwgY29uc3QgY2hh ciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitwZ19ub3JldHVybiB2 b2lkIHBnX2ZhdGFsKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDEsIDIpOwogdm9pZAkJZW5kX3Byb2dyZXNzX291dHB1dCh2b2lkKTsKIHZvaWQJCWNsZWFu dXBfb3V0cHV0X2RpcnModm9pZCk7Ci12b2lkCQlwcmVwX3N0YXR1cyhjb25zdCBjaGFyICpm bXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwotdm9pZAkJcHJlcF9zdGF0dXNf cHJvZ3Jlc3MoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAy KTsKK3ZvaWQJCXByZXBfc3RhdHVzKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDEsIDIpOwordm9pZAkJcHJlcF9zdGF0dXNfcHJvZ3Jlc3MoY29uc3QgY2hh ciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiB1bnNpZ25lZCBpbnQg c3RyMnVpbnQoY29uc3QgY2hhciAqc3RyKTsKIAogCkBAIC01MTIsNyArNTEyLDcgQEAgTXVs dGlYYWN0T2Zmc2V0IHJld3JpdGVfbXVsdGl4YWN0cyhNdWx0aVhhY3RJZCBmcm9tX211bHRp LCBNdWx0aVhhY3RJZCB0b19tdWx0aSkKIAogLyogcGFyYWxsZWwuYyAqLwogdm9pZAkJcGFy YWxsZWxfZXhlY19wcm9nKGNvbnN0IGNoYXIgKmxvZ19maWxlLCBjb25zdCBjaGFyICpvcHRf bG9nX2ZpbGUsCi0JCQkJCQkJICAgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigzLCA0KTsKKwkJCQkJCQkgICBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigzLCA0KTsKIHZvaWQJCXBhcmFsbGVsX3RyYW5zZmVyX2FsbF9uZXdf ZGJzKERiSW5mb0FyciAqb2xkX2RiX2FyciwgRGJJbmZvQXJyICpuZXdfZGJfYXJyLAogCQkJ CQkJCQkJCSAgY2hhciAqb2xkX3BnZGF0YSwgY2hhciAqbmV3X3BnZGF0YSwKIAkJCQkJCQkJ CQkgIGNoYXIgKm9sZF90YWJsZXNwYWNlLCBjaGFyICpuZXdfdGFibGVzcGFjZSk7CmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMgYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvc2VydmVyLmMKaW5kZXggMWViOGJjOTdjMDUuLjVkODFlNGU5NWI4IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX3VwZ3JhZGUvc2VydmVyLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRl L3NlcnZlci5jCkBAIC0xMjEsNyArMTIxLDcgQEAgY2x1c3Rlcl9jb25uX29wdHMoQ2x1c3Rl ckluZm8gKmNsdXN0ZXIpCiAgKgltZXNzYWdlIGFuZCBjYWxscyBleGl0KCkgdG8ga2lsbCB0 aGUgcHJvZ3JhbS4KICAqLwogUEdyZXN1bHQgKgotZXhlY3V0ZVF1ZXJ5T3JEaWUoUEdjb25u ICpjb25uLCBjb25zdCBjaGFyICpmbXQsLi4uKQorZXhlY3V0ZVF1ZXJ5T3JEaWUoUEdjb25u ICpjb25uLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlzdGF0aWMgY2hhciBxdWVyeVtR VUVSWV9BTExPQ107CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf dXBncmFkZS91dGlsLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdXRpbC5jCmluZGV4IDBmNDdl ZDc3MWQ1Li4wOGQ2Mzg1YjUxMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3V0 aWwuYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdXRpbC5jCkBAIC0yOSw3ICsyOSw3IEBA IHN0YXRpYyB2b2lkIHBnX2xvZ192KGVMb2dUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwg dmFfbGlzdCBhcCkgcGdfYXR0cmlidXRlX3ByCiAgKglyZXN1bHRzIGFuZCBvdGhlciBtZXNz YWdlcy4KICAqLwogdm9pZAotcmVwb3J0X3N0YXR1cyhlTG9nVHlwZSB0eXBlLCBjb25zdCBj aGFyICpmbXQsLi4uKQorcmVwb3J0X3N0YXR1cyhlTG9nVHlwZSB0eXBlLCBjb25zdCBjaGFy ICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwogCkBAIC0xMjYsNyArMTI2LDcgQEAg Y2xlYW51cF9vdXRwdXRfZGlycyh2b2lkKQogICoJCSAgcGdfbG9nKFBHX0ZBVEFMLCAiZmFp bGVkOiAlcyIsIG1lc3NhZ2UpOwogICovCiB2b2lkCi1wcmVwX3N0YXR1cyhjb25zdCBjaGFy ICpmbXQsLi4uKQorcHJlcF9zdGF0dXMoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFf bGlzdAkJYXJnczsKIAljaGFyCQltZXNzYWdlW01BWF9TVFJJTkddOwpAQCAtMTUzLDcgKzE1 Myw3IEBAIHByZXBfc3RhdHVzKGNvbnN0IGNoYXIgKmZtdCwuLi4pCiAgKiAgIHJlcG9ydF9z dGF0dXMoUEdfUkVQT1JULCAib2siKTsKICAqLwogdm9pZAotcHJlcF9zdGF0dXNfcHJvZ3Jl c3MoY29uc3QgY2hhciAqZm10LC4uLikKK3ByZXBfc3RhdHVzX3Byb2dyZXNzKGNvbnN0IGNo YXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFyZ3M7CiAJY2hhcgkJbWVzc2FnZVtNQVhf U1RSSU5HXTsKQEAgLTI1Niw3ICsyNTYsNyBAQCBwZ19sb2dfdihlTG9nVHlwZSB0eXBlLCBj b25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXApCiAKIAogdm9pZAotcGdfbG9nKGVMb2dUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19sb2coZUxvZ1R5cGUgdHlwZSwgY29u c3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXJnczsKIApAQCAtMjY3LDcgKzI2 Nyw3IEBAIHBnX2xvZyhlTG9nVHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsLi4uKQogCiAK IHZvaWQKLXBnX2ZhdGFsKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19mYXRhbChjb25zdCBj aGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlhcmdzOwogCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuYyBiL3NyYy9iaW4vcGdfdmVy aWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5jCmluZGV4IGI2MGFiODczOWQ1Li5iZDk4ODMy NDRkNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFj a3VwLmMKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5YmFja3VwLmMK QEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5YmFja3VwX3Blcl93YWxfcmFu Z2VfY2IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkJCSAg WExvZ1JlY1B0ciBzdGFydF9sc24sCiAJCQkJCQkJCQkJICBYTG9nUmVjUHRyIGVuZF9sc24p OwogcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcmVwb3J0X21hbmlmZXN0X2Vycm9yKEpzb25N YW5pZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwKLQkJCQkJCQkJCQkJICBjb25zdCBjaGFy ICpmbXQsLi4uKQorCQkJCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogCQkJcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogc3RhdGljIHZvaWQgdmVyaWZ5X3Rhcl9iYWNr dXAodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwgRElSICpkaXIsCkBAIC01MjEsNyArNTIx LDcgQEAgcGFyc2VfbWFuaWZlc3RfZmlsZShjaGFyICptYW5pZmVzdF9wYXRoKQogICogZXhw ZWN0cyB0aGlzIGZ1bmN0aW9uIG5vdCB0byByZXR1cm4uCiAgKi8KIHN0YXRpYyB2b2lkCi1y ZXBvcnRfbWFuaWZlc3RfZXJyb3IoSnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0ICpjb250ZXh0 LCBjb25zdCBjaGFyICpmbXQsLi4uKQorcmVwb3J0X21hbmlmZXN0X2Vycm9yKEpzb25NYW5p ZmVzdFBhcnNlQ29udGV4dCAqY29udGV4dCwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJ dmFfbGlzdAkJYXA7CiAKQEAgLTEyNTAsNyArMTI1MCw3IEBAIHBhcnNlX3JlcXVpcmVkX3dh bCh2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LCBjaGFyICpwZ193YWxkdW1wX3BhdGgsCiAg KiBjb250ZXh0IHNheXMgd2Ugc2hvdWxkLgogICovCiB2b2lkCi1yZXBvcnRfYmFja3VwX2Vy cm9yKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0 IGZtdCwuLi4pCityZXBvcnRfYmFja3VwX2Vycm9yKHZlcmlmaWVyX2NvbnRleHQgKmNvbnRl eHQsIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFw OwogCkBAIC0xMjY3LDcgKzEyNjcsNyBAQCByZXBvcnRfYmFja3VwX2Vycm9yKHZlcmlmaWVy X2NvbnRleHQgKmNvbnRleHQsIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiAg KiBSZXBvcnQgYSBmYXRhbCBlcnJvciBhbmQgZXhpdAogICovCiB2b2lkCi1yZXBvcnRfZmF0 YWxfZXJyb3IoY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKK3JlcG9ydF9mYXRh bF9lcnJvcihjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIC4uLikKIHsKIAl2YV9saXN0 CQlhcDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvcGdfdmVyaWZ5 YmFja3VwLmggYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC9wZ192ZXJpZnliYWNrdXAuaApp bmRleCBhOTlkOWJmZDU4MS4uODU3MmMxNDMzZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5 YmFja3VwL3BnX3ZlcmlmeWJhY2t1cC5oCkBAIC05Niw5ICs5Niw5IEBAIHR5cGVkZWYgc3Ry dWN0IHZlcmlmaWVyX2NvbnRleHQKIH0gdmVyaWZpZXJfY29udGV4dDsKIAogZXh0ZXJuIHZv aWQgcmVwb3J0X2JhY2t1cF9lcnJvcih2ZXJpZmllcl9jb250ZXh0ICpjb250ZXh0LAotCQkJ CQkJCQljb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQorCQkJCQkJCQljb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsIC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMiwg Myk7Ci1wZ19ub3JldHVybiBleHRlcm4gdm9pZCByZXBvcnRfZmF0YWxfZXJyb3IoY29uc3Qg Y2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKK3BnX25vcmV0dXJuIGV4dGVybiB2b2lkIHJl cG9ydF9mYXRhbF9lcnJvcihjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIC4uLikKIAkJ CXBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiBleHRlcm4gYm9vbCBzaG91bGRfaWdub3Jl X3JlbHBhdGgodmVyaWZpZXJfY29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJICBjb25zdCBj aGFyICpyZWxwYXRoKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfd2Fsc3VtbWFyeS9wZ193 YWxzdW1tYXJ5LmMgYi9zcmMvYmluL3BnX3dhbHN1bW1hcnkvcGdfd2Fsc3VtbWFyeS5jCmlu ZGV4IGFhMjE0Yjg2MTZkLi5jM2U5OGZmZTU1ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ193 YWxzdW1tYXJ5L3BnX3dhbHN1bW1hcnkuYworKysgYi9zcmMvYmluL3BnX3dhbHN1bW1hcnkv cGdfd2Fsc3VtbWFyeS5jCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyB2b2lkIGhlbHAoY29u c3QgY2hhciAqcHJvZ25hbWUpOwogc3RhdGljIGludAljb21wYXJlX2Jsb2NrX251bWJlcnMo Y29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYik7CiBzdGF0aWMgaW50CXdhbHN1bW1hcnlf cmVhZF9jYWxsYmFjayh2b2lkICpjYWxsYmFja19hcmcsIHZvaWQgKmRhdGEsCiAJCQkJCQkJ CQkgaW50IGxlbmd0aCk7Ci1zdGF0aWMgdm9pZCB3YWxzdW1tYXJ5X2Vycm9yX2NhbGxiYWNr KHZvaWQgKmNhbGxiYWNrX2FyZywgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50 ZigyLCAzKTsKK3N0YXRpYyB2b2lkIHdhbHN1bW1hcnlfZXJyb3JfY2FsbGJhY2sodm9pZCAq Y2FsbGJhY2tfYXJnLCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKIAogLyoKICAqIE1haW4gcHJvZ3JhbS4KQEAgLTIyNyw3ICsyMjcsNyBAQCBjb21wYXJl X2Jsb2NrX251bWJlcnMoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKICAqIEVycm9y IGNhbGxiYWNrLgogICovCiB2b2lkCi13YWxzdW1tYXJ5X2Vycm9yX2NhbGxiYWNrKHZvaWQg KmNhbGxiYWNrX2FyZywgY2hhciAqZm10LC4uLikKK3dhbHN1bW1hcnlfZXJyb3JfY2FsbGJh Y2sodm9pZCAqY2FsbGJhY2tfYXJnLCBjaGFyICpmbXQsIC4uLikKIHsKIAl2YV9saXN0CQlh cDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2xhcmdlX29iai5jIGIvc3JjL2Jpbi9w c3FsL2xhcmdlX29iai5jCmluZGV4IDAyMWY3OGUwZjc4Li5jOTYxMzAwZmU5OCAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL2xhcmdlX29iai5jCisrKyBiL3NyYy9iaW4vcHNxbC9sYXJn ZV9vYmouYwpAQCAtMTMsMTAgKzEzLDEwIEBACiAjaW5jbHVkZSAibGFyZ2Vfb2JqLmgiCiAj aW5jbHVkZSAic2V0dGluZ3MuaCIKIAotc3RhdGljIHZvaWQgcHJpbnRfbG9fcmVzdWx0KGNv bnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitzdGF0aWMg dm9pZCBwcmludF9sb19yZXN1bHQoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMSwgMik7CiAKIHN0YXRpYyB2b2lkCi1wcmludF9sb19yZXN1bHQoY29uc3Qg Y2hhciAqZm10LC4uLikKK3ByaW50X2xvX3Jlc3VsdChjb25zdCBjaGFyICpmbXQsIC4uLikK IHsKIAl2YV9saXN0CQlhcDsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDk5OTBm ODE4OTQyLi5iODIxZTdhOWMzMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTY4 OSw3ICsxNjg5LDcgQEAgVGFpbE1hdGNoZXNBcnJheShib29sIGNhc2Vfc2Vuc2l0aXZlLAog c3RhdGljIGJvb2wKIFRhaWxNYXRjaGVzSW1wbChib29sIGNhc2Vfc2Vuc2l0aXZlLAogCQkJ CWludCBwcmV2aW91c193b3Jkc19jb3VudCwgY2hhciAqKnByZXZpb3VzX3dvcmRzLAotCQkJ CWludCBuYXJnLC4uLikKKwkJCQlpbnQgbmFyZywgLi4uKQogewogCWNvbnN0IGNoYXIgKmFy Z2FycmF5WzY0XTsKIAl2YV9saXN0CQlhcmdzOwpAQCAtMTczOSw3ICsxNzM5LDcgQEAgSGVh ZE1hdGNoZXNBcnJheShib29sIGNhc2Vfc2Vuc2l0aXZlLAogc3RhdGljIGJvb2wKIEhlYWRN YXRjaGVzSW1wbChib29sIGNhc2Vfc2Vuc2l0aXZlLAogCQkJCWludCBwcmV2aW91c193b3Jk c19jb3VudCwgY2hhciAqKnByZXZpb3VzX3dvcmRzLAotCQkJCWludCBuYXJnLC4uLikKKwkJ CQlpbnQgbmFyZywgLi4uKQogewogCWNvbnN0IGNoYXIgKmFyZ2FycmF5WzY0XTsKIAl2YV9s aXN0CQlhcmdzOwpAQCAtMTgyNiw3ICsxODI2LDcgQEAgTWF0Y2hlc0FycmF5KGJvb2wgY2Fz ZV9zZW5zaXRpdmUsCiBzdGF0aWMgYm9vbAogTWF0Y2hlc0ltcGwoYm9vbCBjYXNlX3NlbnNp dGl2ZSwKIAkJCWludCBwcmV2aW91c193b3Jkc19jb3VudCwgY2hhciAqKnByZXZpb3VzX3dv cmRzLAotCQkJaW50IG5hcmcsLi4uKQorCQkJaW50IG5hcmcsIC4uLikKIHsKIAljb25zdCBj aGFyICphcmdhcnJheVs2NF07CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9j b21tb24vbG9nZ2luZy5jIGIvc3JjL2NvbW1vbi9sb2dnaW5nLmMKaW5kZXggNTIwNjk0OWU1 ZDguLmJmZDdlNTA3NmJjIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL2xvZ2dpbmcuYworKysg Yi9zcmMvY29tbW9uL2xvZ2dpbmcuYwpAQCAtMjA2LDcgKzIwNiw3IEBAIHBnX2xvZ2dpbmdf c2V0X2xvY3VzX2NhbGxiYWNrKHZvaWQgKCpjYikgKGNvbnN0IGNoYXIgKipmaWxlbmFtZSwg dWludDY0ICpsaW5lbm8pCiAKIHZvaWQKIHBnX2xvZ19nZW5lcmljKGVudW0gcGdfbG9nX2xl dmVsIGxldmVsLCBlbnVtIHBnX2xvZ19wYXJ0IHBhcnQsCi0JCQkgICBjb25zdCBjaGFyICpw Z19yZXN0cmljdCBmbXQsLi4uKQorCQkJICAgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10 LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vcGVy Y2VudHJlcGwuYyBiL3NyYy9jb21tb24vcGVyY2VudHJlcGwuYwppbmRleCA1MjVhNWJhNmNm MC4uNzBiYmZhYmQxMTcgMTAwNjQ0Ci0tLSBhL3NyYy9jb21tb24vcGVyY2VudHJlcGwuYwor KysgYi9zcmMvY29tbW9uL3BlcmNlbnRyZXBsLmMKQEAgLTU2LDcgKzU2LDcgQEAKICAqIHJl dmlzZWQuCiAgKi8KIGNoYXIgKgotcmVwbGFjZV9wZXJjZW50X3BsYWNlaG9sZGVycyhjb25z dCBjaGFyICppbnN0ciwgY29uc3QgY2hhciAqcGFyYW1fbmFtZSwgY29uc3QgY2hhciAqbGV0 dGVycywuLi4pCityZXBsYWNlX3BlcmNlbnRfcGxhY2Vob2xkZXJzKGNvbnN0IGNoYXIgKmlu c3RyLCBjb25zdCBjaGFyICpwYXJhbV9uYW1lLCBjb25zdCBjaGFyICpsZXR0ZXJzLCAuLi4p CiB7CiAJU3RyaW5nSW5mb0RhdGEgcmVzdWx0OwogCmRpZmYgLS1naXQgYS9zcmMvY29tbW9u L3BzcHJpbnRmLmMgYi9zcmMvY29tbW9uL3BzcHJpbnRmLmMKaW5kZXggNmYwMDZlMDI2MmYu LjI5YjA5NzMyYTVhIDEwMDY0NAotLS0gYS9zcmMvY29tbW9uL3BzcHJpbnRmLmMKKysrIGIv c3JjL2NvbW1vbi9wc3ByaW50Zi5jCkBAIC00MCw3ICs0MCw3IEBACiAgKiBPbmUgc2hvdWxk IHRoZXJlZm9yZSB0aGluayB0d2ljZSBhYm91dCB1c2luZyB0aGlzIGluIGxpYnBxLgogICov CiBjaGFyICoKLXBzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwc3ByaW50Zihjb25z dCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJc2l6 ZV90CQlsZW4gPSAxMjg7CQkvKiBpbml0aWFsIGFzc3VtcHRpb24gYWJvdXQgYnVmZmVyIHNp emUgKi8KZGlmZiAtLWdpdCBhL3NyYy9jb21tb24vc3RyaW5naW5mby5jIGIvc3JjL2NvbW1v bi9zdHJpbmdpbmZvLmMKaW5kZXggYWUzOTU0MGU0NjguLjQ2ODk1NGU0ODRlIDEwMDY0NAot LS0gYS9zcmMvY29tbW9uL3N0cmluZ2luZm8uYworKysgYi9zcmMvY29tbW9uL3N0cmluZ2lu Zm8uYwpAQCAtMTQyLDcgKzE0Miw3IEBAIHJlc2V0U3RyaW5nSW5mbyhTdHJpbmdJbmZvIHN0 cikKICAqIHN0cmNhdC4KICAqLwogdm9pZAotYXBwZW5kU3RyaW5nSW5mbyhTdHJpbmdJbmZv IHN0ciwgY29uc3QgY2hhciAqZm10LC4uLikKK2FwcGVuZFN0cmluZ0luZm8oU3RyaW5nSW5m byBzdHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCXNhdmVfZXJybm8gPSBl cnJubzsKIApkaWZmIC0tZ2l0IGEvc3JjL2ZlX3V0aWxzL29wdGlvbl91dGlscy5jIGIvc3Jj L2ZlX3V0aWxzL29wdGlvbl91dGlscy5jCmluZGV4IDhkMDY1OWMxMTY0Li5jOGJiYTA3NWMx ZiAxMDA2NDQKLS0tIGEvc3JjL2ZlX3V0aWxzL29wdGlvbl91dGlscy5jCisrKyBiL3NyYy9m ZV91dGlscy9vcHRpb25fdXRpbHMuYwpAQCAtMTIyLDcgKzEyMiw3IEBAIHBhcnNlX3N5bmNf bWV0aG9kKGNvbnN0IGNoYXIgKm9wdGFyZywgRGF0YURpclN5bmNNZXRob2QgKnN5bmNfbWV0 aG9kKQogICogcGFyYW1ldGVyIChpdCBkaXNjb3ZlcnMgdGhlIG51bWJlciBvZiBhcmd1bWVu dHMgYXV0b21hZ2ljYWxseSkuCiAgKi8KIHZvaWQKLWNoZWNrX211dF9leGNsX29wdHNfaW50 ZXJuYWwoaW50IG4sLi4uKQorY2hlY2tfbXV0X2V4Y2xfb3B0c19pbnRlcm5hbChpbnQgbiwg Li4uKQogewogCWNoYXIJICAgKmZpcnN0ID0gTlVMTDsKIAl2YV9saXN0CQlhcmdzOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaCBiL3NyYy9pbmNsdWRl L2FjY2Vzcy9hbXZhbGlkYXRlLmgKaW5kZXggYjgyOTk4Nzc4YWMuLmRlYmQxZWQzN2E0IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oCisrKyBiL3NyYy9p bmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmgKQEAgLTI5LDcgKzI5LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgT3BGYW1pbHlPcEZ1bmNHcm91cAogLyogRnVuY3Rpb25zIGluIGFjY2Vzcy9pbmRl eC9hbXZhbGlkYXRlLmMgKi8KIGV4dGVybiBMaXN0ICppZGVudGlmeV9vcGZhbWlseV9ncm91 cHMoQ2F0Q0xpc3QgKm9wcmxpc3QsIENhdENMaXN0ICpwcm9jbGlzdCk7CiBleHRlcm4gYm9v bCBjaGVja19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29s IGV4YWN0LAotCQkJCQkJCQkgICBpbnQgbWluYXJncywgaW50IG1heGFyZ3MsLi4uKTsKKwkJ CQkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLCAuLi4pOwogZXh0ZXJuIGJvb2wg Y2hlY2tfYW1vcHRzcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCk7CiBleHRlcm4gYm9vbCBj aGVja19hbW9wX3NpZ25hdHVyZShPaWQgb3BubywgT2lkIHJlc3R5cGUsCiAJCQkJCQkJCSBP aWQgbGVmdHR5cGUsIE9pZCByaWdodHR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YmFja3VwL3dhbHN1bW1hcnkuaCBiL3NyYy9pbmNsdWRlL2JhY2t1cC93YWxzdW1tYXJ5LmgK aW5kZXggNjAxNTdlMGFjNTAuLjA5M2I0MmRmNDczIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9iYWNrdXAvd2Fsc3VtbWFyeS5oCisrKyBiL3NyYy9pbmNsdWRlL2JhY2t1cC93YWxzdW1t YXJ5LmgKQEAgLTQ0LDYgKzQ0LDYgQEAgZXh0ZXJuIHZvaWQgUmVtb3ZlV2FsU3VtbWFyeUlm T2xkZXJUaGFuKFdhbFN1bW1hcnlGaWxlICp3cywKIAogZXh0ZXJuIGludAlSZWFkV2FsU3Vt bWFyeSh2b2lkICp3YWxfc3VtbWFyeV9pbywgdm9pZCAqZGF0YSwgaW50IGxlbmd0aCk7CiBl eHRlcm4gaW50CVdyaXRlV2FsU3VtbWFyeSh2b2lkICp3YWxfc3VtbWFyeV9pbywgdm9pZCAq ZGF0YSwgaW50IGxlbmd0aCk7Ci1leHRlcm4gdm9pZCBSZXBvcnRXYWxTdW1tYXJ5RXJyb3Io dm9pZCAqY2FsbGJhY2tfYXJnLCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDIsIDMpOworZXh0ZXJuIHZvaWQgUmVwb3J0V2FsU3VtbWFyeUVycm9yKHZvaWQgKmNhbGxi YWNrX2FyZywgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAK ICNlbmRpZgkJCQkJCQkvKiBXQUxTVU1NQVJZX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NvbW1vbi9ibGtyZWZ0YWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbW9uL2Jsa3JlZnRh YmxlLmgKaW5kZXggYjViNTUxN2Y2NjAuLjQyYjExYjBhMmIxIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tb24vYmxrcmVmdGFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tb24v YmxrcmVmdGFibGUuaApAQCAtNDQsNyArNDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBCbG9ja1Jl ZlRhYmxlV3JpdGVyIEJsb2NrUmVmVGFibGVXcml0ZXI7CiAgKiByZXBvcnRfZXJyb3JfZm4g c2hvdWxkIG5vdCByZXR1cm4uCiAgKi8KIHR5cGVkZWYgaW50ICgqaW9fY2FsbGJhY2tfZm4p ICh2b2lkICpjYWxsYmFja19hcmcsIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpOwotdHlwZWRl ZiB2b2lkICgqcmVwb3J0X2Vycm9yX2ZuKSAodm9pZCAqY2FsbGJhY2tfYXJnLCBjaGFyICpt c2csLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwordHlwZWRlZiB2b2lkICgqcmVw b3J0X2Vycm9yX2ZuKSAodm9pZCAqY2FsbGJhY2tfYXJnLCBjaGFyICptc2csIC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbW9uL2ZlX21lbXV0aWxzLmggYi9zcmMvaW5jbHVkZS9jb21tb24vZmVfbWVtdXRp bHMuaAppbmRleCBlY2NkZmNhYjA4Ni4uYjc4NmVhZjQ4YjAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NvbW1vbi9mZV9tZW11dGlscy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9m ZV9tZW11dGlscy5oCkBAIC03OSw3ICs3OSw3IEBAIGV4dGVybiB2b2lkIHBmcmVlKHZvaWQg KnBvaW50ZXIpOwogI2RlZmluZSByZXBhbGxvY19hcnJheShwb2ludGVyLCB0eXBlLCBjb3Vu dCkgKCh0eXBlICopIHJlcGFsbG9jKHBvaW50ZXIsIHNpemVvZih0eXBlKSAqIChjb3VudCkp KQogCiAvKiBzcHJpbnRmIGludG8gYSBwYWxsb2MnZCBidWZmZXIgLS0tIHRoZXNlIGFyZSBp biBwc3ByaW50Zi5jICovCi1leHRlcm4gY2hhciAqcHNwcmludGYoY29uc3QgY2hhciAqZm10 LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4dGVybiBjaGFyICpwc3ByaW50 Zihjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIGV4 dGVybiBzaXplX3QgcHZzbnByaW50ZihjaGFyICpidWYsIHNpemVfdCBsZW4sIGNvbnN0IGNo YXIgKmZtdCwgdmFfbGlzdCBhcmdzKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDApOwogCiAj ZW5kaWYJCQkJCQkJLyogRkVfTUVNVVRJTFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbW9uL2xvZ2dpbmcuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9sb2dnaW5nLmgKaW5k ZXggYmNjYmE0YWMwN2IuLmI4Zjc2YTg4ZGJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j b21tb24vbG9nZ2luZy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1vbi9sb2dnaW5nLmgKQEAg LTkzLDcgKzkzLDcgQEAgdm9pZAkJcGdfbG9nZ2luZ19zZXRfcHJlX2NhbGxiYWNrKHZvaWQg KCpjYikgKHZvaWQpKTsKIHZvaWQJCXBnX2xvZ2dpbmdfc2V0X2xvY3VzX2NhbGxiYWNrKHZv aWQgKCpjYikgKGNvbnN0IGNoYXIgKipmaWxlbmFtZSwgdWludDY0ICpsaW5lbm8pKTsKIAog dm9pZAkJcGdfbG9nX2dlbmVyaWMoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVudW0gcGdf bG9nX3BhcnQgcGFydCwKLQkJCQkJCSAgIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwu Li4pCisJCQkJCQkgICBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsIC4uLikKIAkJCXBn X2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CiB2b2lkCQlwZ19sb2dfZ2VuZXJpY192KGVudW0g cGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBnX2xvZ19wYXJ0IHBhcnQsCiAJCQkJCQkJIGNv bnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwgdmFfbGlzdCBhcCkKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NvbW1vbi9wYXJzZV9tYW5pZmVzdC5oIGIvc3JjL2luY2x1ZGUvY29tbW9u L3BhcnNlX21hbmlmZXN0LmgKaW5kZXggMzVhM2I1Y2E2NmMuLjk1YmE4ODVhZmU2IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tb24vcGFyc2VfbWFuaWZlc3QuaAorKysgYi9zcmMv aW5jbHVkZS9jb21tb24vcGFyc2VfbWFuaWZlc3QuaApAQCAtMzQsNyArMzQsNyBAQCB0eXBl ZGVmIHZvaWQgKCpqc29uX21hbmlmZXN0X3Blcl93YWxfcmFuZ2VfY2FsbGJhY2spIChKc29u TWFuaWZlc3RQYXJzZUNvbnRleHQgKgogCQkJCQkJCQkJCQkJCSAgVGltZUxpbmVJRCB0bGks CiAJCQkJCQkJCQkJCQkJICBYTG9nUmVjUHRyIHN0YXJ0X2xzbiwgWExvZ1JlY1B0ciBlbmRf bHNuKTsKIHR5cGVkZWYgdm9pZCAoKmpzb25fbWFuaWZlc3RfZXJyb3JfY2FsbGJhY2spIChK c29uTWFuaWZlc3RQYXJzZUNvbnRleHQgKiwKLQkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpm bXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworCQkJCQkJCQkJCQkgIGNvbnN0 IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiBzdHJ1Y3Qg SnNvbk1hbmlmZXN0UGFyc2VDb250ZXh0CiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tb24vcGVyY2VudHJlcGwuaCBiL3NyYy9pbmNsdWRlL2NvbW1vbi9wZXJjZW50cmVwbC5o CmluZGV4IDljMDMyMmRkNDQ2Li45ZTc3MjdmNjNhMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY29tbW9uL3BlcmNlbnRyZXBsLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbW9uL3BlcmNl bnRyZXBsLmgKQEAgLTEzLDYgKzEzLDYgQEAKICNpZm5kZWYgUEVSQ0VOVFJFUExfSAogI2Rl ZmluZSBQRVJDRU5UUkVQTF9ICiAKLWV4dGVybiBjaGFyICpyZXBsYWNlX3BlcmNlbnRfcGxh Y2Vob2xkZXJzKGNvbnN0IGNoYXIgKmluc3RyLCBjb25zdCBjaGFyICpwYXJhbV9uYW1lLCBj b25zdCBjaGFyICpsZXR0ZXJzLC4uLik7CitleHRlcm4gY2hhciAqcmVwbGFjZV9wZXJjZW50 X3BsYWNlaG9sZGVycyhjb25zdCBjaGFyICppbnN0ciwgY29uc3QgY2hhciAqcGFyYW1fbmFt ZSwgY29uc3QgY2hhciAqbGV0dGVycywgLi4uKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBFUkNF TlRSRVBMX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2ZlX3V0aWxzL29wdGlvbl91 dGlscy5oIGIvc3JjL2luY2x1ZGUvZmVfdXRpbHMvb3B0aW9uX3V0aWxzLmgKaW5kZXggZDk3 NWRiNzdhZjIuLmY3MGI2MTU5MDk5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9mZV91dGls cy9vcHRpb25fdXRpbHMuaAorKysgYi9zcmMvaW5jbHVkZS9mZV91dGlscy9vcHRpb25fdXRp bHMuaApAQCAtMjQsNyArMjQsNyBAQCBleHRlcm4gYm9vbCBvcHRpb25fcGFyc2VfaW50KGNv bnN0IGNoYXIgKm9wdGFyZywgY29uc3QgY2hhciAqb3B0bmFtZSwKIAkJCQkJCQkgaW50ICpy ZXN1bHQpOwogZXh0ZXJuIGJvb2wgcGFyc2Vfc3luY19tZXRob2QoY29uc3QgY2hhciAqb3B0 YXJnLAogCQkJCQkJCSAgRGF0YURpclN5bmNNZXRob2QgKnN5bmNfbWV0aG9kKTsKLWV4dGVy biB2b2lkIGNoZWNrX211dF9leGNsX29wdHNfaW50ZXJuYWwoaW50IG4sLi4uKTsKK2V4dGVy biB2b2lkIGNoZWNrX211dF9leGNsX29wdHNfaW50ZXJuYWwoaW50IG4sIC4uLik7CiAKIC8q IHNlZSBjb21tZW50IGZvciBjaGVja19tdXRfZXhjbF9vcHRzX2ludGVybmFsKCkgaW4gb3B0 aW9uX3V0aWxzLmMgZm9yIGluZm8gKi8KICNkZWZpbmUgY2hlY2tfbXV0X2V4Y2xfb3B0cyhz ZXQsIG9wdCwgLi4uKSBcCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9l bWl0LmggYi9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9lbWl0LmgKaW5kZXggMDg5OTQ1Mzkx ZWUuLjBlMDg5Yjk1NjliIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9qaXQvbGx2bWppdF9l bWl0LmgKKysrIGIvc3JjL2luY2x1ZGUvaml0L2xsdm1qaXRfZW1pdC5oCkBAIC0xNTksMTQg KzE1OSwxNCBAQCBsX2xvYWRfZ2VwMShMTFZNQnVpbGRlclJlZiBiLCBMTFZNVHlwZVJlZiB0 LCBMTFZNVmFsdWVSZWYgdiwgTExWTVZhbHVlUmVmIGlkeCwgYwogfQogCiAvKiBzZXBhcmF0 ZSwgYmVjYXVzZSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpIGNhbid0IGFwcGVhciBpbiBk ZWZpbml0aW9uICovCi1zdGF0aWMgaW5saW5lIExMVk1CYXNpY0Jsb2NrUmVmIGxfYmJfYmVm b3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigyLCAzKTsKK3N0YXRpYyBpbmxpbmUgTExWTUJhc2ljQmxvY2tSZWYg bF9iYl9iZWZvcmVfdihMTFZNQmFzaWNCbG9ja1JlZiByLCBjb25zdCBjaGFyICpmbXQsIC4u LikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyoKICAqIEluc2VydCBhIG5ldyBi YXNpYyBibG9jaywganVzdCBiZWZvcmUgciwgdGhlIG5hbWUgYmVpbmcgZGV0ZXJtaW5lZCBi eSBmbXQKICAqIGFuZCBhcmd1bWVudHMuCiAgKi8KIHN0YXRpYyBpbmxpbmUgTExWTUJhc2lj QmxvY2tSZWYKLWxfYmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3QgY2hh ciAqZm10LC4uLikKK2xfYmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYgciwgY29uc3Qg Y2hhciAqZm10LCAuLi4pCiB7CiAJY2hhcgkJYnVmWzUxMl07CiAJdmFfbGlzdAkJYXJnczsK QEAgLTE4MiwxNCArMTgyLDE0IEBAIGxfYmJfYmVmb3JlX3YoTExWTUJhc2ljQmxvY2tSZWYg ciwgY29uc3QgY2hhciAqZm10LC4uLikKIH0KIAogLyogc2VwYXJhdGUsIGJlY2F1c2UgcGdf YXR0cmlidXRlX3ByaW50ZigyLCAzKSBjYW4ndCBhcHBlYXIgaW4gZGVmaW5pdGlvbiAqLwot c3RhdGljIGlubGluZSBMTFZNQmFzaWNCbG9ja1JlZiBsX2JiX2FwcGVuZF92KExMVk1WYWx1 ZVJlZiBmLCBjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMp Oworc3RhdGljIGlubGluZSBMTFZNQmFzaWNCbG9ja1JlZiBsX2JiX2FwcGVuZF92KExMVk1W YWx1ZVJlZiBmLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50Zigy LCAzKTsKIAogLyoKICAqIEluc2VydCBhIG5ldyBiYXNpYyBibG9jayBhZnRlciBwcmV2aW91 cyBiYXNpYyBibG9ja3MsIHRoZSBuYW1lIGJlaW5nCiAgKiBkZXRlcm1pbmVkIGJ5IGZtdCBh bmQgYXJndW1lbnRzLgogICovCiBzdGF0aWMgaW5saW5lIExMVk1CYXNpY0Jsb2NrUmVmCi1s X2JiX2FwcGVuZF92KExMVk1WYWx1ZVJlZiBmLCBjb25zdCBjaGFyICpmbXQsLi4uKQorbF9i Yl9hcHBlbmRfdihMTFZNVmFsdWVSZWYgZiwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJ Y2hhcgkJYnVmWzUxMl07CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2xpYi9zdHJpbmdpbmZvLmggYi9zcmMvaW5jbHVkZS9saWIvc3RyaW5naW5mby5oCmlu ZGV4IDA3OTY1MmM4Y2U0Li5lM2Y0YjkyMjMwMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bGliL3N0cmluZ2luZm8uaAorKysgYi9zcmMvaW5jbHVkZS9saWIvc3RyaW5naW5mby5oCkBA IC0xOTYsNyArMTk2LDcgQEAgZXh0ZXJuIHZvaWQgcmVzZXRTdHJpbmdJbmZvKFN0cmluZ0lu Zm8gc3RyKTsKICAqIHRvIHN0ciBpZiBuZWNlc3NhcnkuICBUaGlzIGlzIHNvcnQgb2YgbGlr ZSBhIGNvbWJpbmF0aW9uIG9mIHNwcmludGYgYW5kCiAgKiBzdHJjYXQuCiAgKi8KLWV4dGVy biB2b2lkIGFwcGVuZFN0cmluZ0luZm8oU3RyaW5nSW5mbyBzdHIsIGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBhcHBlbmRT dHJpbmdJbmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0 cmlidXRlX3ByaW50ZigyLCAzKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAq IGFwcGVuZFN0cmluZ0luZm9WQQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC5oIGIv c3JjL2luY2x1ZGUvcG9ydC5oCmluZGV4IDUxZGY5YjgwZTdkLi4xMWRjMTc2MTljNSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9ydC5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQuaApA QCAtMjMxLDEzICsyMzEsMTMgQEAgcGdfYXNjaWlfdG9sb3dlcih1bnNpZ25lZCBjaGFyIGNo KQogI2VuZGlmCiAKIGV4dGVybiBpbnQJcGdfdnNucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90 IGNvdW50LCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3By aW50ZigzLCAwKTsKLWV4dGVybiBpbnQJcGdfc25wcmludGYoY2hhciAqc3RyLCBzaXplX3Qg Y291bnQsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7 CitleHRlcm4gaW50CXBnX3NucHJpbnRmKGNoYXIgKnN0ciwgc2l6ZV90IGNvdW50LCBjb25z dCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKIGV4dGVybiBp bnQJcGdfdnNwcmludGYoY2hhciAqc3RyLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJn cykgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAwKTsKLWV4dGVybiBpbnQJcGdfc3ByaW50Zihj aGFyICpzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwg Myk7CitleHRlcm4gaW50CXBnX3NwcmludGYoY2hhciAqc3RyLCBjb25zdCBjaGFyICpmbXQs IC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIGV4dGVybiBpbnQJcGdfdmZwcmlu dGYoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0 cmlidXRlX3ByaW50ZigyLCAwKTsKLWV4dGVybiBpbnQJcGdfZnByaW50ZihGSUxFICpzdHJl YW0sIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7Citl eHRlcm4gaW50CXBnX2ZwcmludGYoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpmbXQsIC4u LikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIGV4dGVybiBpbnQJcGdfdnByaW50Zihj b25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAw KTsKLWV4dGVybiBpbnQJcGdfcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJp YnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CXBnX3ByaW50Zihjb25zdCBjaGFyICpm bXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAogI2lmbmRlZiBXSU4zMgog LyoKQEAgLTM2MCw3ICszNjAsNyBAQCBleHRlcm4gYm9vbCBybXRyZWUoY29uc3QgY2hhciAq cGF0aCwgYm9vbCBybXRvcGRpcik7CiAgKiBwYXNzaW5nIG9mIG90aGVyIHNwZWNpYWwgb3B0 aW9ucy4KICAqLwogZXh0ZXJuIEhBTkRMRSBwZ3dpbjMyX29wZW5faGFuZGxlKGNvbnN0IGNo YXIgKiwgaW50LCBib29sKTsKLWV4dGVybiBpbnQJcGd3aW4zMl9vcGVuKGNvbnN0IGNoYXIg KiwgaW50LC4uLik7CitleHRlcm4gaW50CXBnd2luMzJfb3Blbihjb25zdCBjaGFyICosIGlu dCwgLi4uKTsKIGV4dGVybiBGSUxFICpwZ3dpbjMyX2ZvcGVuKGNvbnN0IGNoYXIgKiwgY29u c3QgY2hhciAqKTsKICNkZWZpbmUJCW9wZW4oYSxiLGMpIHBnd2luMzJfb3BlbihhLGIsYykK ICNkZWZpbmUJCWZvcGVuKGEsYikgcGd3aW4zMl9mb3BlbihhLGIpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9lbG9nLmggYi9zcmMvaW5jbHVkZS91dGlscy9lbG9nLmgKaW5k ZXggOWMxZTc1YzU5YWMuLjZhZTM3NmJhMDAxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9lbG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZWxvZy5oCkBAIC0xNzksMjkg KzE3OSwyOSBAQCBleHRlcm4gaW50CWVycmNvZGUoaW50IHNxbGVycmNvZGUpOwogZXh0ZXJu IGludAllcnJjb2RlX2Zvcl9maWxlX2FjY2Vzcyh2b2lkKTsKIGV4dGVybiBpbnQJZXJyY29k ZV9mb3Jfc29ja2V0X2FjY2Vzcyh2b2lkKTsKIAotZXh0ZXJuIGludAllcnJtc2coY29uc3Qg Y2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKLWV4dGVybiBpbnQJ ZXJybXNnX2ludGVybmFsKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMSwgMik7CitleHRlcm4gaW50CWVycm1zZyhjb25zdCBjaGFyICpmbXQsIC4uLikgcGdf YXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4dGVybiBpbnQJZXJybXNnX2ludGVybmFsKGNv bnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogCiBleHRl cm4gaW50CWVycm1zZ19wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBj aGFyICpmbXRfcGx1cmFsLAotCQkJCQkJICB1bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRy aWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CisJCQkJCQkg IHVuc2lnbmVkIGxvbmcgbiwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDQpIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgNCk7CiAKLWV4dGVybiBpbnQJZXJyZGV0YWlsKGNvbnN0IGNo YXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Ci1leHRlcm4gaW50CWVy cmRldGFpbF9pbnRlcm5hbChjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDEsIDIpOworZXh0ZXJuIGludAllcnJkZXRhaWwoY29uc3QgY2hhciAqZm10LCAuLi4p IHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CWVycmRldGFpbF9pbnRl cm5hbChjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsK IAotZXh0ZXJuIGludAllcnJkZXRhaWxfbG9nKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMSwgMik7CitleHRlcm4gaW50CWVycmRldGFpbF9sb2coY29uc3Qg Y2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKIGV4dGVybiBp bnQJZXJyZGV0YWlsX2xvZ19wbHVyYWwoY29uc3QgY2hhciAqZm10X3Npbmd1bGFyLAogCQkJ CQkJCQkgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKLQkJCQkJCQkJIHVuc2lnbmVkIGxvbmcg biwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgNCkgcGdfYXR0cmlidXRlX3ByaW50Zigy LCA0KTsKKwkJCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CiAKIGV4dGVybiBpbnQJZXJy ZGV0YWlsX3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZt dF9wbHVyYWwsCi0JCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMSwgNCkgcGdfYXR0cmlidXRlX3ByaW50ZigyLCA0KTsKKwkJCQkJCQkgdW5zaWdu ZWQgbG9uZyBuLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgNCkgcGdfYXR0cmlidXRl X3ByaW50ZigyLCA0KTsKIAotZXh0ZXJuIGludAllcnJoaW50KGNvbnN0IGNoYXIgKmZtdCwu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7Ci1leHRlcm4gaW50CWVycmhpbnRfaW50 ZXJuYWwoY29uc3QgY2hhciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsK K2V4dGVybiBpbnQJZXJyaGludChjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRl X3ByaW50ZigxLCAyKTsKK2V4dGVybiBpbnQJZXJyaGludF9pbnRlcm5hbChjb25zdCBjaGFy ICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKIAogZXh0ZXJuIGludAll cnJoaW50X3BsdXJhbChjb25zdCBjaGFyICpmbXRfc2luZ3VsYXIsIGNvbnN0IGNoYXIgKmZt dF9wbHVyYWwsCi0JCQkJCQkgICB1bnNpZ25lZCBsb25nIG4sLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDEsIDQpIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNCk7CisJCQkJCQkgICB1bnNp Z25lZCBsb25nIG4sIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCA0KSBwZ19hdHRyaWJ1 dGVfcHJpbnRmKDIsIDQpOwogCiAvKgogICogZXJyY29udGV4dCgpIGlzIHR5cGljYWxseSBj YWxsZWQgaW4gZXJyb3IgY29udGV4dCBjYWxsYmFjayBmdW5jdGlvbnMsIG5vdApAQCAtMjE1 LDcgKzIxNSw3IEBAIGV4dGVybiBpbnQJZXJyaGludF9wbHVyYWwoY29uc3QgY2hhciAqZm10 X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAogCiBleHRlcm4gaW50CXNldF9l cnJjb250ZXh0X2RvbWFpbihjb25zdCBjaGFyICpkb21haW4pOwogCi1leHRlcm4gaW50CWVy cmNvbnRleHRfbXNnKGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYo MSwgMik7CitleHRlcm4gaW50CWVycmNvbnRleHRfbXNnKGNvbnN0IGNoYXIgKmZtdCwgLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogCiBleHRlcm4gaW50CWVycmhpZGVzdG10 KGJvb2wgaGlkZV9zdG10KTsKIGV4dGVybiBpbnQJZXJyaGlkZWNvbnRleHQoYm9vbCBoaWRl X2N0eCk7CkBAIC0zMDMsNyArMzAzLDcgQEAgZXh0ZXJuIHZvaWQgZXJyc2F2ZV9maW5pc2go c3RydWN0IE5vZGUgKmNvbnRleHQsCiAvKiBTdXBwb3J0IGZvciBjb25zdHJ1Y3RpbmcgZXJy b3Igc3RyaW5ncyBzZXBhcmF0ZWx5IGZyb20gZXJlcG9ydCgpIGNhbGxzICovCiAKIGV4dGVy biB2b2lkIHByZV9mb3JtYXRfZWxvZ19zdHJpbmcoaW50IGVycm51bWJlciwgY29uc3QgY2hh ciAqZG9tYWluKTsKLWV4dGVybiBjaGFyICpmb3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hh ciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK2V4dGVybiBjaGFyICpm b3JtYXRfZWxvZ19zdHJpbmcoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMSwgMik7CiAKIAogLyogU3VwcG9ydCBmb3IgYXR0YWNoaW5nIGNvbnRleHQgaW5m b3JtYXRpb24gdG8gZXJyb3IgcmVwb3J0cyAqLwpAQCAtNTI5LDcgKzUyOSw3IEBAIGV4dGVy biB2b2lkIHdyaXRlX2pzb25sb2coRXJyb3JEYXRhICplZGF0YSk7CiAgKiBub3QgYXZhaWxh YmxlKS4gVXNlZCBiZWZvcmUgZXJlcG9ydC9lbG9nIGNhbiBiZSB1c2VkCiAgKiBzYWZlbHkg KG1lbW9yeSBjb250ZXh0LCBHVUMgbG9hZCBldGMpCiAgKi8KLWV4dGVybiB2b2lkIHdyaXRl X3N0ZGVycihjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIp OworZXh0ZXJuIHZvaWQgd3JpdGVfc3RkZXJyKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogZXh0ZXJuIHZvaWQgdndyaXRlX3N0ZGVycihjb25z dCBjaGFyICpmbXQsIHZhX2xpc3QgYXApIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMCk7CiAK ICNlbmRpZgkJCQkJCQkvKiBFTE9HX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL3BhbGxvYy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvcGFsbG9jLmgKaW5kZXggYWM1M2Yx ODlhNGUuLjkyOTUyMTFkMjAwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9wYWxs b2MuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wYWxsb2MuaApAQCAtMTQ3LDcgKzE0Nyw3 IEBAIGV4dGVybiBjaGFyICpwbnN0cmR1cChjb25zdCBjaGFyICppbiwgU2l6ZSBsZW4pOwog ZXh0ZXJuIGNoYXIgKnBjaG9tcChjb25zdCBjaGFyICppbik7CiAKIC8qIHNwcmludGYgaW50 byBhIHBhbGxvYydkIGJ1ZmZlciAtLS0gdGhlc2UgYXJlIGluIHBzcHJpbnRmLmMgKi8KLWV4 dGVybiBjaGFyICpwc3ByaW50Zihjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDEsIDIpOworZXh0ZXJuIGNoYXIgKnBzcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwg Li4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwogZXh0ZXJuIHNpemVfdCBwdnNucHJp bnRmKGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbiwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFy Z3MpIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgMCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQUxM T0NfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2Rlc2Ny aXB0b3IuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMKaW5k ZXggMzljZDUxMzBlYzkuLjg3OTNkMDllYjcwIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9lY3BnL2VjcGdsaWIvZGVzY3JpcHRvci5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv ZWNwZ2xpYi9kZXNjcmlwdG9yLmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBnZXRfY2hhcl9pdGVt KGludCBsaW5lbm8sIHZvaWQgKnZhciwgZW51bSBFQ1BHdHR5cGUgdmFydHlwZSwgY2hhciAq dmFsdWUsIGludCB2YQogCQkJCX0KIAogYm9vbAotRUNQR2dldF9kZXNjKGludCBsaW5lbm8s IGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50IGluZGV4LC4uLikKK0VDUEdnZXRfZGVzYyhp bnQgbGluZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwgLi4uKQogewog CXZhX2xpc3QJCWFyZ3M7CiAJUEdyZXN1bHQgICAqRUNQR3Jlc3VsdDsKQEAgLTYxMCw3ICs2 MTAsNyBAQCBzZXRfZGVzY19hdHRyKHN0cnVjdCBkZXNjcmlwdG9yX2l0ZW0gKmRlc2NfaXRl bSwgc3RydWN0IHZhcmlhYmxlICp2YXIsCiAKIAogYm9vbAotRUNQR3NldF9kZXNjKGludCBs aW5lbm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50IGluZGV4LC4uLikKK0VDUEdzZXRf ZGVzYyhpbnQgbGluZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwgLi4u KQogewogCXZhX2xpc3QJCWFyZ3M7CiAJc3RydWN0IGRlc2NyaXB0b3IgKmRlc2M7CkBAIC04 NTIsNyArODUyLDcgQEAgZWNwZ19maW5kX2Rlc2MoaW50IGxpbmUsIGNvbnN0IGNoYXIgKm5h bWUpCiB9CiAKIGJvb2wKLUVDUEdkZXNjcmliZShpbnQgbGluZSwgaW50IGNvbXBhdCwgYm9v bCBpbnB1dCwgY29uc3QgY2hhciAqY29ubmVjdGlvbl9uYW1lLCBjb25zdCBjaGFyICpzdG10 X25hbWUsLi4uKQorRUNQR2Rlc2NyaWJlKGludCBsaW5lLCBpbnQgY29tcGF0LCBib29sIGlu cHV0LCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGNoYXIgKnN0bXRfbmFt ZSwgLi4uKQogewogCWJvb2wJCXJldCA9IGZhbHNlOwogCXN0cnVjdCBjb25uZWN0aW9uICpj b247CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZWNwZ2xpYl9l eHRlcm4uaCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9lY3BnbGliX2V4dGVybi5o CmluZGV4IGM5MmYwYWExMDgxLi4xODI0M2JmYzU2OCAxMDA2NDQKLS0tIGEvc3JjL2ludGVy ZmFjZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmgKKysrIGIvc3JjL2ludGVyZmFj ZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmgKQEAgLTIxNCw3ICsyMTQsNyBAQCB2 b2lkCQllY3BnX3JhaXNlKGludCBsaW5lLCBpbnQgY29kZSwgY29uc3QgY2hhciAqc3Fsc3Rh dGUsIGNvbnN0IGNoYXIgKnN0cik7CiB2b2lkCQllY3BnX3JhaXNlX2JhY2tlbmQoaW50IGxp bmUsIFBHcmVzdWx0ICpyZXN1bHQsIFBHY29ubiAqY29ubiwgaW50IGNvbXBhdCk7CiBjaGFy CSAgICplY3BnX3ByZXBhcmVkKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBjb25uZWN0aW9u ICpjb24pOwogYm9vbAkJZWNwZ19kZWFsbG9jYXRlX2FsbF9jb25uKGludCBsaW5lbm8sIGVu dW0gQ09NUEFUX01PREUgYywgc3RydWN0IGNvbm5lY3Rpb24gKmNvbik7Ci12b2lkCQllY3Bn X2xvZyhjb25zdCBjaGFyICpmb3JtYXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIp Owordm9pZAkJZWNwZ19sb2coY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pIHBnX2F0dHJpYnV0 ZV9wcmludGYoMSwgMik7CiBib29sCQllY3BnX2F1dG9fcHJlcGFyZShpbnQgbGluZW5vLCBj b25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsCiAJCQkJCQkJICBjb25zdCBpbnQgY29tcGF0 LCBjaGFyICoqbmFtZSwgY29uc3QgY2hhciAqcXVlcnkpOwogYm9vbAkJZWNwZ19yZWdpc3Rl cl9wcmVwYXJlZF9zdG10KHN0cnVjdCBzdGF0ZW1lbnQgKnN0bXQpOwpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2V4ZWN1dGUuYyBiL3NyYy9pbnRlcmZhY2Vz L2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMKaW5kZXggYmE0MTczMmRlYzYuLmJhYzlkMmNjMzlm IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZXhlY3V0ZS5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMKQEAgLTIyODksNyAr MjI4OSw3IEBAIGZhaWw6CiAgKiBUaGUgaW5wdXQvb3V0cHV0IHBhcmFtZXRlcnMgYXJlIHBh c3NlZCBhcyB2YXJpYWJsZS1sZW5ndGggYXJndW1lbnQgbGlzdC4KICAqLwogYm9vbAotRUNQ R2RvKGNvbnN0IGludCBsaW5lbm8sIGNvbnN0IGludCBjb21wYXQsIGNvbnN0IGludCBmb3Jj ZV9pbmRpY2F0b3IsIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBx dWVzdGlvbm1hcmtzLCBjb25zdCBpbnQgc3QsIGNvbnN0IGNoYXIgKnF1ZXJ5LC4uLikKK0VD UEdkbyhjb25zdCBpbnQgbGluZW5vLCBjb25zdCBpbnQgY29tcGF0LCBjb25zdCBpbnQgZm9y Y2VfaW5kaWNhdG9yLCBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGJvb2wg cXVlc3Rpb25tYXJrcywgY29uc3QgaW50IHN0LCBjb25zdCBjaGFyICpxdWVyeSwgLi4uKQog ewogCXZhX2xpc3QJCWFyZ3M7CiAJYm9vbAkJcmV0OwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy9lY3BnbGliL21pc2MuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xp Yi9taXNjLmMKaW5kZXggNDBlYTE3NGFlOWYuLjM1NGEyZTczMWZjIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvbWlzYy5jCisrKyBiL3NyYy9pbnRlcmZhY2Vz L2VjcGcvZWNwZ2xpYi9taXNjLmMKQEAgLTIyOSw3ICsyMjksNyBAQCBFQ1BHZGVidWcoaW50 IG4sIEZJTEUgKmRiZ3MpCiB9CiAKIHZvaWQKLWVjcGdfbG9nKGNvbnN0IGNoYXIgKmZvcm1h dCwuLi4pCitlY3BnX2xvZyhjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIHsKIAl2YV9saXN0 CQlhcDsKIAljb25zdCBjaGFyICppbnRsX2Zvcm1hdDsKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvaW5jbHVkZS9lY3BnbGliLmggYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2lu Y2x1ZGUvZWNwZ2xpYi5oCmluZGV4IGRiZjNjYzNhMGMyLi4xZDk3MWQ1ODkzZCAxMDA2NDQK LS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9pbmNsdWRlL2VjcGdsaWIuaAorKysgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL2luY2x1ZGUvZWNwZ2xpYi5oCkBAIC0yOSw3ICsyOSw3IEBAIGJv b2wJCUVDUEdjb25uZWN0KGludCBsaW5lbm8sIGludCBjLCBjb25zdCBjaGFyICpuYW1lLCBj b25zdCBjaGFyICp1c2VyLAogCQkJCQkJY29uc3QgY2hhciAqcGFzc3dkLCBjb25zdCBjaGFy ICpjb25uZWN0aW9uX25hbWUsIGludCBhdXRvY29tbWl0KTsKIGJvb2wJCUVDUEdkbyhjb25z dCBpbnQgbGluZW5vLCBjb25zdCBpbnQgY29tcGF0LCBjb25zdCBpbnQgZm9yY2VfaW5kaWNh dG9yLAogCQkJCSAgIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgYm9vbCBx dWVzdGlvbm1hcmtzLAotCQkJCSAgIGNvbnN0IGludCBzdCwgY29uc3QgY2hhciAqcXVlcnks Li4uKTsKKwkJCQkgICBjb25zdCBpbnQgc3QsIGNvbnN0IGNoYXIgKnF1ZXJ5LCAuLi4pOwog Ym9vbAkJRUNQR3RyYW5zKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFt ZSwgY29uc3QgY2hhciAqdHJhbnNhY3Rpb24pOwogYm9vbAkJRUNQR2Rpc2Nvbm5lY3QoaW50 IGxpbmVubywgY29uc3QgY2hhciAqY29ubmVjdGlvbl9uYW1lKTsKIGJvb2wJCUVDUEdwcmVw YXJlKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFtZSwgY29uc3QgYm9v bCBxdWVzdGlvbm1hcmtzLApAQCAtNTUsMTQgKzU1LDE0IEBAIGJvb2wJCUVDUEdkb19kZXNj cmlwdG9yKGludCBsaW5lLCBjb25zdCBjaGFyICpjb25uZWN0aW9uLAogYm9vbAkJRUNQR2Rl YWxsb2NhdGVfZGVzYyhpbnQgbGluZSwgY29uc3QgY2hhciAqbmFtZSk7CiBib29sCQlFQ1BH YWxsb2NhdGVfZGVzYyhpbnQgbGluZSwgY29uc3QgY2hhciAqbmFtZSk7CiBib29sCQlFQ1BH Z2V0X2Rlc2NfaGVhZGVyKGludCBsaW5lbm8sIGNvbnN0IGNoYXIgKmRlc2NfbmFtZSwgaW50 ICpjb3VudCk7Ci1ib29sCQlFQ1BHZ2V0X2Rlc2MoaW50IGxpbmVubywgY29uc3QgY2hhciAq ZGVzY19uYW1lLCBpbnQgaW5kZXgsLi4uKTsKK2Jvb2wJCUVDUEdnZXRfZGVzYyhpbnQgbGlu ZW5vLCBjb25zdCBjaGFyICpkZXNjX25hbWUsIGludCBpbmRleCwgLi4uKTsKIGJvb2wJCUVD UEdzZXRfZGVzY19oZWFkZXIoaW50IGxpbmVubywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBp bnQgY291bnQpOwotYm9vbAkJRUNQR3NldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0IGNoYXIg KmRlc2NfbmFtZSwgaW50IGluZGV4LC4uLik7Citib29sCQlFQ1BHc2V0X2Rlc2MoaW50IGxp bmVubywgY29uc3QgY2hhciAqZGVzY19uYW1lLCBpbnQgaW5kZXgsIC4uLik7CiAKIHZvaWQJ CUVDUEdzZXRfbm9pbmRfbnVsbChlbnVtIEVDUEd0dHlwZSB0eXBlLCB2b2lkICpwdHIpOwog Ym9vbAkJRUNQR2lzX25vaW5kX251bGwoZW51bSBFQ1BHdHR5cGUgdHlwZSwgY29uc3Qgdm9p ZCAqcHRyKTsKIGJvb2wJCUVDUEdkZXNjcmliZShpbnQgbGluZSwgaW50IGNvbXBhdCwgYm9v bCBpbnB1dCwKLQkJCQkJCSBjb25zdCBjaGFyICpjb25uZWN0aW9uX25hbWUsIGNvbnN0IGNo YXIgKnN0bXRfbmFtZSwuLi4pOworCQkJCQkJIGNvbnN0IGNoYXIgKmNvbm5lY3Rpb25fbmFt ZSwgY29uc3QgY2hhciAqc3RtdF9uYW1lLCAuLi4pOwogCiB2b2lkCQlFQ1BHc2V0X3Zhcihp bnQgbnVtYmVyLCB2b2lkICpwb2ludGVyLCBpbnQgbGluZW5vKTsKIHZvaWQJICAgKkVDUEdn ZXRfdmFyKGludCBudW1iZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9w cmVwcm9jL3ByZXByb2NfZXh0ZXJuLmggYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2Mv cHJlcHJvY19leHRlcm4uaAppbmRleCAyYzg5ZTMwNjIxZS4uYzYxZjA1NDg3M2IgMTAwNjQ0 Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wcmVwcm9jX2V4dGVybi5oCisr KyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wcmVwcm9jX2V4dGVybi5oCkBAIC04 NSwxMSArODUsMTEgQEAgZXh0ZXJuIHZvaWQgKmxvY19hbGxvYyhzaXplX3Qgc2l6ZSk7CiBl eHRlcm4gY2hhciAqbG9jX3N0cmR1cChjb25zdCBjaGFyICpzdHJpbmcpOwogZXh0ZXJuIHZv aWQgcmVjbGFpbV9sb2NhbF9zdG9yYWdlKHZvaWQpOwogZXh0ZXJuIGNoYXIgKmNhdDJfc3Ry KGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0IGNoYXIgKnN0cjIpOwotZXh0ZXJuIGNoYXIgKmNh dF9zdHIoaW50IGNvdW50LC4uLik7CitleHRlcm4gY2hhciAqY2F0X3N0cihpbnQgY291bnQs IC4uLik7CiBleHRlcm4gY2hhciAqbWFrZTJfc3RyKGNvbnN0IGNoYXIgKnN0cjEsIGNvbnN0 IGNoYXIgKnN0cjIpOwogZXh0ZXJuIGNoYXIgKm1ha2UzX3N0cihjb25zdCBjaGFyICpzdHIx LCBjb25zdCBjaGFyICpzdHIyLCBjb25zdCBjaGFyICpzdHIzKTsKLWV4dGVybiB2b2lkIG1t ZXJyb3IoaW50IGVycm9yX2NvZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUsIGNvbnN0IGNoYXIg KmVycm9yLC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKLXBnX25vcmV0dXJuIGV4 dGVybiB2b2lkIG1tZmF0YWwoaW50IGVycm9yX2NvZGUsIGNvbnN0IGNoYXIgKmVycm9yLC4u LikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiB2b2lkIG1tZXJyb3IoaW50 IGVycm9yX2NvZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmVycm9yLCAu Li4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMywgNCk7CitwZ19ub3JldHVybiBleHRlcm4gdm9p ZCBtbWZhdGFsKGludCBlcnJvcl9jb2RlLCBjb25zdCBjaGFyICplcnJvciwgLi4uKSBwZ19h dHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogZXh0ZXJuIHZvaWQgb3V0cHV0X2dldF9kZXNjcl9o ZWFkZXIoY29uc3QgY2hhciAqZGVzY19uYW1lKTsKIGV4dGVybiB2b2lkIG91dHB1dF9nZXRf ZGVzY3IoY29uc3QgY2hhciAqZGVzY19uYW1lLCBjb25zdCBjaGFyICppbmRleCk7CiBleHRl cm4gdm9pZCBvdXRwdXRfc2V0X2Rlc2NyX2hlYWRlcihjb25zdCBjaGFyICpkZXNjX25hbWUp OwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3V0aWwuYyBiL3Ny Yy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy91dGlsLmMKaW5kZXggZjE3N2RmMzI0ODguLmJh MWYwNDlhODdkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3ByZXByb2MvdXRp bC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcHJlcHJvYy91dGlsLmMKQEAgLTQ3LDcg KzQ3LDcgQEAgdm1tZXJyb3IoaW50IGVycm9yX2NvZGUsIGVudW0gZXJyb3J0eXBlIHR5cGUs IGNvbnN0IGNoYXIgKmVycm9yLCB2YV9saXN0IGFwKQogCiAvKiBSZXBvcnQgYW4gZXJyb3Ig b3Igd2FybmluZyAqLwogdm9pZAotbW1lcnJvcihpbnQgZXJyb3JfY29kZSwgZW51bSBlcnJv cnR5cGUgdHlwZSwgY29uc3QgY2hhciAqZXJyb3IsLi4uKQorbW1lcnJvcihpbnQgZXJyb3Jf Y29kZSwgZW51bSBlcnJvcnR5cGUgdHlwZSwgY29uc3QgY2hhciAqZXJyb3IsIC4uLikKIHsK IAl2YV9saXN0CQlhcDsKIApAQCAtNTgsNyArNTgsNyBAQCBtbWVycm9yKGludCBlcnJvcl9j b2RlLCBlbnVtIGVycm9ydHlwZSB0eXBlLCBjb25zdCBjaGFyICplcnJvciwuLi4pCiAKIC8q IFJlcG9ydCBhbiBlcnJvciBhbmQgYWJhbmRvbiBleGVjdXRpb24gKi8KIHZvaWQKLW1tZmF0 YWwoaW50IGVycm9yX2NvZGUsIGNvbnN0IGNoYXIgKmVycm9yLC4uLikKK21tZmF0YWwoaW50 IGVycm9yX2NvZGUsIGNvbnN0IGNoYXIgKmVycm9yLCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7 CiAKQEAgLTIxNyw3ICsyMTcsNyBAQCBjYXQyX3N0cihjb25zdCBjaGFyICpzdHIxLCBjb25z dCBjaGFyICpzdHIyKQogICogQ29uY2F0ZW5hdGUgTiBzdHJpbmdzLCBpbnNlcnRpbmcgc3Bh Y2VzIGJldHdlZW4gdGhlbSB1bmxlc3MgdGhleSBhcmUgZW1wdHkKICAqLwogY2hhciAqCi1j YXRfc3RyKGludCBjb3VudCwuLi4pCitjYXRfc3RyKGludCBjb3VudCwgLi4uKQogewogCXZh X2xpc3QJCWFyZ3M7CiAJaW50CQkJaTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWV4ZWMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwppbmRleCAy MDNkMzg4YmRiZi4uOGM2MTBkMTcwYTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWV4ZWMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKQEAg LTk0MSw3ICs5NDEsNyBAQCBwcVByZXBhcmVBc3luY1Jlc3VsdChQR2Nvbm4gKmNvbm4pCiAg KiBhIHRyYWlsaW5nIG5ld2xpbmUsIGFuZCBzaG91bGQgbm90IGJlIG1vcmUgdGhhbiBvbmUg bGluZSkuCiAgKi8KIHZvaWQKLXBxSW50ZXJuYWxOb3RpY2UoY29uc3QgUEdOb3RpY2VIb29r cyAqaG9va3MsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwcUludGVybmFsTm90aWNlKGNvbnN0 IFBHTm90aWNlSG9va3MgKmhvb2tzLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAljaGFy CQltc2dCdWZbMTAyNF07CiAJdmFfbGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLW1pc2MuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLW1pc2Mu YwppbmRleCAxMzc3NWNmYjhiOS4uMzI1YTQ4NWVmNTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLW1pc2MuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1t aXNjLmMKQEAgLTEzNzIsNyArMTM3Miw3IEBAIGxpYnBxX25nZXR0ZXh0KGNvbnN0IGNoYXIg Km1zZ2lkLCBjb25zdCBjaGFyICptc2dpZF9wbHVyYWwsIHVuc2lnbmVkIGxvbmcgbikKICAq IG5ld2xpbmUuCiAgKi8KIHZvaWQKLWxpYnBxX2FwcGVuZF9lcnJvcihQUUV4cEJ1ZmZlciBl cnJvck1lc3NhZ2UsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitsaWJwcV9hcHBlbmRfZXJyb3Io UFFFeHBCdWZmZXIgZXJyb3JNZXNzYWdlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlp bnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJYm9vbAkJZG9uZTsKQEAgLTE0MDEsNyArMTQw MSw3IEBAIGxpYnBxX2FwcGVuZF9lcnJvcihQUUV4cEJ1ZmZlciBlcnJvck1lc3NhZ2UsIGNv bnN0IGNoYXIgKmZtdCwuLi4pCiAgKiBmb3JtYXQgc2hvdWxkIG5vdCBlbmQgd2l0aCBhIG5l d2xpbmUuCiAgKi8KIHZvaWQKLWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKFBHY29ubiAqY29u biwgY29uc3QgY2hhciAqZm10LC4uLikKK2xpYnBxX2FwcGVuZF9jb25uX2Vycm9yKFBHY29u biAqY29ubiwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJc2F2ZV9lcnJubyA9 IGVycm5vOwogCWJvb2wJCWRvbmU7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5oCmluZGV4 IDIzZGU5ODI5MGM5Li42MGVkNGM4N2Q4MyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMv bGlicHEvbGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50 LmgKQEAgLTc1Myw3ICs3NTMsNyBAQCBleHRlcm4gY2hhciAqcHFSZXN1bHRTdHJkdXAoUEdy ZXN1bHQgKnJlcywgY29uc3QgY2hhciAqc3RyKTsKIGV4dGVybiB2b2lkIHBxQ2xlYXJBc3lu Y1Jlc3VsdChQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIHZvaWQgcHFTYXZlRXJyb3JSZXN1bHQo UEdjb25uICpjb25uKTsKIGV4dGVybiBQR3Jlc3VsdCAqcHFQcmVwYXJlQXN5bmNSZXN1bHQo UEdjb25uICpjb25uKTsKLWV4dGVybiB2b2lkIHBxSW50ZXJuYWxOb3RpY2UoY29uc3QgUEdO b3RpY2VIb29rcyAqaG9va3MsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBwcUludGVybmFsTm90aWNlKGNvbnN0IFBHTm90 aWNlSG9va3MgKmhvb2tzLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3By aW50ZigyLCAzKTsKIGV4dGVybiB2b2lkIHBxU2F2ZU1lc3NhZ2VGaWVsZChQR3Jlc3VsdCAq cmVzLCBjaGFyIGNvZGUsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqdmFsdWUpOwogZXh0ZXJu IGludAlwcVNhdmVQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpu YW1lLApAQCAtOTU3LDggKzk1Nyw4IEBAIGV4dGVybiBjaGFyICpsaWJwcV9uZ2V0dGV4dChj b25zdCBjaGFyICptc2dpZCwgY29uc3QgY2hhciAqbXNnaWRfcGx1cmFsLCB1bnNpZ25lCiAg Ki8KICN1bmRlZiBfCiAKLWV4dGVybiB2b2lkIGxpYnBxX2FwcGVuZF9lcnJvcihQUUV4cEJ1 ZmZlciBlcnJvck1lc3NhZ2UsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9w cmludGYoMiwgMyk7Ci1leHRlcm4gdm9pZCBsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihQR2Nv bm4gKmNvbm4sIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwg Myk7CitleHRlcm4gdm9pZCBsaWJwcV9hcHBlbmRfZXJyb3IoUFFFeHBCdWZmZXIgZXJyb3JN ZXNzYWdlLCBjb25zdCBjaGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKK2V4dGVybiB2b2lkIGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKFBHY29ubiAqY29ubiwg Y29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CiBleHRl cm4gdm9pZCBsaWJwcV9hcHBlbmRfZ3JlYXNlX2luZm8oUEdjb25uICpjb25uKTsKIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVmZmVyLmMgYi9zcmMv aW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jCmluZGV4IDE1M2FlNmFmNmNiLi43NTYz OTkzZjZkNiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvcHFleHBidWZmZXIu YworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5jCkBAIC0yMzIsNyAr MjMyLDcgQEAgZW5sYXJnZVBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgc2l6ZV90IG5l ZWRlZCkKICAqIHJlc2V0UFFFeHBCdWZmZXIoKSBmb2xsb3dlZCBieSBhcHBlbmRQUUV4cEJ1 ZmZlcigpLgogICovCiB2b2lkCi1wcmludGZQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIs IGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwcmludGZQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBz dHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCXNhdmVfZXJybm8gPSBlcnJu bzsKIAl2YV9saXN0CQlhcmdzOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHByaW50ZlBRRXhwQnVm ZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3QgY2hhciAqZm10LC4uLikKICAqIHN0cmNhdC4K ICAqLwogdm9pZAotYXBwZW5kUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25zdCBj aGFyICpmbXQsLi4uKQorYXBwZW5kUFFFeHBCdWZmZXIoUFFFeHBCdWZmZXIgc3RyLCBjb25z dCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlzYXZlX2Vycm5vID0gZXJybm87CiAJdmFf bGlzdAkJYXJnczsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3BxZXhwYnVm ZmVyLmggYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5oCmluZGV4IGRjODNm NGZmZTg2Li4yNzQxYmI5ZTJmZiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv cHFleHBidWZmZXIuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9wcWV4cGJ1ZmZlci5o CkBAIC0xNDYsNyArMTQ2LDcgQEAgZXh0ZXJuIGludAllbmxhcmdlUFFFeHBCdWZmZXIoUFFF eHBCdWZmZXIgc3RyLCBzaXplX3QgbmVlZGVkKTsKICAqIFRoaXMgaXMgYSBjb252ZW5pZW5j ZSByb3V0aW5lIHRoYXQgZG9lcyB0aGUgc2FtZSB0aGluZyBhcwogICogcmVzZXRQUUV4cEJ1 ZmZlcigpIGZvbGxvd2VkIGJ5IGFwcGVuZFBRRXhwQnVmZmVyKCkuCiAgKi8KLWV4dGVybiB2 b2lkIHByaW50ZlBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3QgY2hhciAqZm10 LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiB2b2lkIHByaW50ZlBR RXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0 dHJpYnV0ZV9wcmludGYoMiwgMyk7CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg KiBhcHBlbmRQUUV4cEJ1ZmZlcgpAQCAtMTU1LDcgKzE1NSw3IEBAIGV4dGVybiB2b2lkIHBy aW50ZlBRRXhwQnVmZmVyKFBRRXhwQnVmZmVyIHN0ciwgY29uc3QgY2hhciAqZm10LC4uLikg cGdfYXR0cmlidXRlCiAgKiB0byBzdHIgaWYgbmVjZXNzYXJ5LiAgVGhpcyBpcyBzb3J0IG9m IGxpa2UgYSBjb21iaW5hdGlvbiBvZiBzcHJpbnRmIGFuZAogICogc3RyY2F0LgogICovCi1l eHRlcm4gdm9pZCBhcHBlbmRQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNo YXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgMyk7CitleHRlcm4gdm9pZCBh cHBlbmRQUUV4cEJ1ZmZlcihQUUV4cEJ1ZmZlciBzdHIsIGNvbnN0IGNoYXIgKmZtdCwgLi4u KSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICogYXBwZW5kUFFFeHBCdWZmZXJWQQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0 aG9uL3BscHlfZWxvZy5jIGIvc3JjL3BsL3BscHl0aG9uL3BscHlfZWxvZy5jCmluZGV4IGUx MDk4ODhjY2VkLi5hNjQ2MjA1NTliNCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL3Bs cHlfZWxvZy5jCisrKyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuYwpAQCAtNDEsNyAr NDEsNyBAQCBzdGF0aWMgYm9vbCBzZXRfc3RyaW5nX2F0dHIoUHlPYmplY3QgKm9iaiwgY2hh ciAqYXR0cm5hbWUsIGNoYXIgKnN0cik7CiAgKiBpbiB0aGUgY29udGV4dC4KICAqLwogdm9p ZAotUEx5X2Vsb2dfaW1wbChpbnQgZWxldmVsLCBjb25zdCBjaGFyICpmbXQsLi4uKQorUEx5 X2Vsb2dfaW1wbChpbnQgZWxldmVsLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJ CQlzYXZlX2Vycm5vID0gZXJybm87CiAJY2hhcgkgICAqdm9sYXRpbGUgeG1zZyA9IE5VTEw7 CkBAIC00ODcsNyArNDg3LDcgQEAgZ2V0X3NvdXJjZV9saW5lKGNvbnN0IGNoYXIgKnNyYywg aW50IGxpbmVubykKIAogLyogY2FsbCBQeUVycl9TZXRTdHJpbmcgd2l0aCBhIHZwcmludCBp bnRlcmZhY2UgYW5kIHRyYW5zbGF0aW9uIHN1cHBvcnQgKi8KIHZvaWQKLVBMeV9leGNlcHRp b25fc2V0KFB5T2JqZWN0ICpleGMsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitQTHlfZXhjZXB0 aW9uX3NldChQeU9iamVjdCAqZXhjLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAljaGFy CQlidWZbMTAyNF07CiAJdmFfbGlzdAkJYXA7CkBAIC01MDMsNyArNTAzLDcgQEAgUEx5X2V4 Y2VwdGlvbl9zZXQoUHlPYmplY3QgKmV4YywgY29uc3QgY2hhciAqZm10LC4uLikKIHZvaWQK IFBMeV9leGNlcHRpb25fc2V0X3BsdXJhbChQeU9iamVjdCAqZXhjLAogCQkJCQkJIGNvbnN0 IGNoYXIgKmZtdF9zaW5ndWxhciwgY29uc3QgY2hhciAqZm10X3BsdXJhbCwKLQkJCQkJCSB1 bnNpZ25lZCBsb25nIG4sLi4uKQorCQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwgLi4uKQogewog CWNoYXIJCWJ1ZlsxMDI0XTsKIAl2YV9saXN0CQlhcDsKZGlmZiAtLWdpdCBhL3NyYy9wbC9w bHB5dGhvbi9wbHB5X2Vsb2cuaCBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X2Vsb2cuaAppbmRl eCBkYzY1ZjJmNmVlMi4uMzE1MGY5ZTcyY2EgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHB5dGhv bi9wbHB5X2Vsb2cuaAorKysgYi9zcmMvcGwvcGxweXRob24vcGxweV9lbG9nLmgKQEAgLTM0 LDEyICszNCwxMiBAQCBleHRlcm4gUHlPYmplY3QgKlBMeV9leGNfc3BpX2Vycm9yOwogCX0g d2hpbGUoMCkKICNlbmRpZgkJCQkJCQkvKiBIQVZFX19CVUlMVElOX0NPTlNUQU5UX1AgKi8K IAotZXh0ZXJuIFBHRExMRVhQT1JUIHZvaWQgUEx5X2Vsb2dfaW1wbChpbnQgZWxldmVsLCBj b25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOworZXh0ZXJu IFBHRExMRVhQT1JUIHZvaWQgUEx5X2Vsb2dfaW1wbChpbnQgZWxldmVsLCBjb25zdCBjaGFy ICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIAotZXh0ZXJuIFBHRExM RVhQT1JUIHZvaWQgUEx5X2V4Y2VwdGlvbl9zZXQoUHlPYmplY3QgKmV4YywgY29uc3QgY2hh ciAqZm10LC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK2V4dGVybiBQR0RMTEVY UE9SVCB2b2lkIFBMeV9leGNlcHRpb25fc2V0KFB5T2JqZWN0ICpleGMsIGNvbnN0IGNoYXIg KmZtdCwgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogCiBleHRlcm4gUEdETExF WFBPUlQgdm9pZCBQTHlfZXhjZXB0aW9uX3NldF9wbHVyYWwoUHlPYmplY3QgKmV4YywgY29u c3QgY2hhciAqZm10X3Npbmd1bGFyLCBjb25zdCBjaGFyICpmbXRfcGx1cmFsLAotCQkJCQkJ CQkJCQkJIHVuc2lnbmVkIGxvbmcgbiwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMiwgNSkg cGdfYXR0cmlidXRlX3ByaW50ZigzLCA1KTsKKwkJCQkJCQkJCQkJCSB1bnNpZ25lZCBsb25n IG4sIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCA1KSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDMsIDUpOwogCiBleHRlcm4gUEdETExFWFBPUlQgdm9pZCBQTHlfZXhjZXB0aW9uX3NldF93 aXRoX2RldGFpbHMoUHlPYmplY3QgKmV4Y2NsYXNzLCBFcnJvckRhdGEgKmVkYXRhKTsKIApk aWZmIC0tZ2l0IGEvc3JjL3BvcnQvb3Blbi5jIGIvc3JjL3BvcnQvb3Blbi5jCmluZGV4IDJj ZDI2MDYwYWEzLi40YmUwOGIyY2YxMyAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvb3Blbi5jCisr KyBiL3NyYy9wb3J0L29wZW4uYwpAQCAtMTY1LDcgKzE2NSw3IEBAIHBnd2luMzJfb3Blbl9o YW5kbGUoY29uc3QgY2hhciAqZmlsZU5hbWUsIGludCBmaWxlRmxhZ3MsIGJvb2wgYmFja3Vw X3NlbWFudGljcykKIH0KIAogaW50Ci1wZ3dpbjMyX29wZW4oY29uc3QgY2hhciAqZmlsZU5h bWUsIGludCBmaWxlRmxhZ3MsLi4uKQorcGd3aW4zMl9vcGVuKGNvbnN0IGNoYXIgKmZpbGVO YW1lLCBpbnQgZmlsZUZsYWdzLCAuLi4pCiB7CiAJSEFORExFCQloOwogCWludAkJCWZkOwpk aWZmIC0tZ2l0IGEvc3JjL3BvcnQvc25wcmludGYuYyBiL3NyYy9wb3J0L3NucHJpbnRmLmMK aW5kZXggNWRlZWU0NGQzYTIuLjIxODllYmZlMzk5IDEwMDY0NAotLS0gYS9zcmMvcG9ydC9z bnByaW50Zi5jCisrKyBiL3NyYy9wb3J0L3NucHJpbnRmLmMKQEAgLTE5OSw3ICsxOTksNyBA QCBwZ192c25wcmludGYoY2hhciAqc3RyLCBzaXplX3QgY291bnQsIGNvbnN0IGNoYXIgKmZt dCwgdmFfbGlzdCBhcmdzKQogfQogCiBpbnQKLXBnX3NucHJpbnRmKGNoYXIgKnN0ciwgc2l6 ZV90IGNvdW50LCBjb25zdCBjaGFyICpmbXQsLi4uKQorcGdfc25wcmludGYoY2hhciAqc3Ry LCBzaXplX3QgY291bnQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCWxlbjsK IAl2YV9saXN0CQlhcmdzOwpAQCAtMjI3LDcgKzIyNyw3IEBAIHBnX3ZzcHJpbnRmKGNoYXIg KnN0ciwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB9CiAKIGludAotcGdfc3By aW50ZihjaGFyICpzdHIsIGNvbnN0IGNoYXIgKmZtdCwuLi4pCitwZ19zcHJpbnRmKGNoYXIg KnN0ciwgY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJaW50CQkJbGVuOwogCXZhX2xpc3QJ CWFyZ3M7CkBAIC0yNjEsNyArMjYxLDcgQEAgcGdfdmZwcmludGYoRklMRSAqc3RyZWFtLCBj b25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykKIH0KIAogaW50Ci1wZ19mcHJpbnRmKEZJ TEUgKnN0cmVhbSwgY29uc3QgY2hhciAqZm10LC4uLikKK3BnX2ZwcmludGYoRklMRSAqc3Ry ZWFtLCBjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAlpbnQJCQlsZW47CiAJdmFfbGlzdAkJ YXJnczsKQEAgLTI3OSw3ICsyNzksNyBAQCBwZ192cHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwg dmFfbGlzdCBhcmdzKQogfQogCiBpbnQKLXBnX3ByaW50Zihjb25zdCBjaGFyICpmbXQsLi4u KQorcGdfcHJpbnRmKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCWludAkJCWxlbjsKIAl2 YV9saXN0CQlhcmdzOwpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvd2luMzJzZWN1cml0eS5jIGIv c3JjL3BvcnQvd2luMzJzZWN1cml0eS5jCmluZGV4IDQ2ZDJmYzc3NGI0Li5kM2NhNzBmMGVh YyAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvd2luMzJzZWN1cml0eS5jCisrKyBiL3NyYy9wb3J0 L3dpbjMyc2VjdXJpdHkuYwpAQCAtMTcsNyArMTcsNyBAQAogI2luY2x1ZGUgInBvc3RncmVz X2ZlLmgiCiAjZW5kaWYKIAotc3RhdGljIHZvaWQgbG9nX2Vycm9yKGNvbnN0IGNoYXIgKmZt dCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitzdGF0aWMgdm9pZCBsb2dfZXJy b3IoY29uc3QgY2hhciAqZm10LCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAK IAogLyoKQEAgLTI1LDcgKzI1LDcgQEAgc3RhdGljIHZvaWQgbG9nX2Vycm9yKGNvbnN0IGNo YXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAgKiBtZXNzYWdlLgog ICovCiBzdGF0aWMgdm9pZAotbG9nX2Vycm9yKGNvbnN0IGNoYXIgKmZtdCwuLi4pCitsb2df ZXJyb3IoY29uc3QgY2hhciAqZm10LCAuLi4pCiB7CiAJdmFfbGlzdAkJYXA7CiAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUu YyBiL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYwpp bmRleCBhYTBhNmJiZTc2Mi4uZWUzZTJlYzc1NzAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21v ZHVsZXMvbGlicHFfcGlwZWxpbmUvbGlicHFfcGlwZWxpbmUuYworKysgYi9zcmMvdGVzdC9t b2R1bGVzL2xpYnBxX3BpcGVsaW5lL2xpYnBxX3BpcGVsaW5lLmMKQEAgLTI0LDcgKzI0LDcg QEAKIAogCiBzdGF0aWMgdm9pZCBleGl0X25pY2VseShQR2Nvbm4gKmNvbm4pOwotcGdfbm9y ZXR1cm4gc3RhdGljIHZvaWQgcGdfZmF0YWxfaW1wbChpbnQgbGluZSwgY29uc3QgY2hhciAq Zm10LC4uLikKK3BnX25vcmV0dXJuIHN0YXRpYyB2b2lkIHBnX2ZhdGFsX2ltcGwoaW50IGxp bmUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigyLCAz KTsKIHN0YXRpYyBib29sIHByb2Nlc3NfcmVzdWx0KFBHY29ubiAqY29ubiwgUEdyZXN1bHQg KnJlcywgaW50IHJlc3VsdHMsCiAJCQkJCQkgICBpbnQgbnVtc2VudCk7CkBAIC03Miw3ICs3 Miw3IEBAIGV4aXRfbmljZWx5KFBHY29ubiAqY29ubikKICAqLwogI2RlZmluZSBwZ19mYXRh bCguLi4pIHBnX2ZhdGFsX2ltcGwoX19MSU5FX18sIF9fVkFfQVJHU19fKQogcGdfbm9yZXR1 cm4gc3RhdGljIHZvaWQKLXBnX2ZhdGFsX2ltcGwoaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZt dCwuLi4pCitwZ19mYXRhbF9pbXBsKGludCBsaW5lLCBjb25zdCBjaGFyICpmbXQsIC4uLikK IHsKIAl2YV9saXN0CQlhcmdzOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Bn X3JlZ3Jlc3MuYyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jCmluZGV4IDBjMDYy MDU2OTgyLi44M2M4MmM5Nzg2ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19y ZWdyZXNzLmMKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzLmMKQEAgLTE0OSwx MiArMTQ5LDEyIEBAIHN0YXRpYyB2b2lkIG1ha2VfZGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRp cik7CiBzdGF0aWMgdm9pZCB0ZXN0X3N0YXR1c19wcmludChib29sIG9rLCBjb25zdCBjaGFy ICp0ZXN0bmFtZSwgZG91YmxlIHJ1bnRpbWUsIGJvb2wgcGFyYWxsZWwpOwogc3RhdGljIHZv aWQgdGVzdF9zdGF0dXNfb2soY29uc3QgY2hhciAqdGVzdG5hbWUsIGRvdWJsZSBydW50aW1l LCBib29sIHBhcmFsbGVsKTsKIHN0YXRpYyB2b2lkIHRlc3Rfc3RhdHVzX2ZhaWxlZChjb25z dCBjaGFyICp0ZXN0bmFtZSwgZG91YmxlIHJ1bnRpbWUsIGJvb2wgcGFyYWxsZWwpOwotc3Rh dGljIHZvaWQgYmFpbF9vdXQoYm9vbCBub2F0ZXhpdCwgY29uc3QgY2hhciAqZm10LC4uLikg cGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKLXN0YXRpYyB2b2lkIGVtaXRfdGFwX291dHB1 dChUQVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwuLi4pIHBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMyk7CitzdGF0aWMgdm9pZCBiYWlsX291dChib29sIG5vYXRleGl0LCBjb25zdCBj aGFyICpmbXQsIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKK3N0YXRpYyB2b2lk IGVtaXRfdGFwX291dHB1dChUQVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBw Z19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMpOwogc3RhdGljIHZvaWQgZW1pdF90YXBfb3V0cHV0 X3YoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncCkgcGdfYXR0 cmlidXRlX3ByaW50ZigyLCAwKTsKIAogc3RhdGljIFN0cmluZ0luZm8gcHNxbF9zdGFydF9j b21tYW5kKHZvaWQpOwotc3RhdGljIHZvaWQgcHNxbF9hZGRfY29tbWFuZChTdHJpbmdJbmZv IGJ1ZiwgY29uc3QgY2hhciAqcXVlcnksLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDIsIDMp Oworc3RhdGljIHZvaWQgcHNxbF9hZGRfY29tbWFuZChTdHJpbmdJbmZvIGJ1ZiwgY29uc3Qg Y2hhciAqcXVlcnksIC4uLikgcGdfYXR0cmlidXRlX3ByaW50ZigyLCAzKTsKIHN0YXRpYyB2 b2lkIHBzcWxfZW5kX2NvbW1hbmQoU3RyaW5nSW5mbyBidWYsIGNvbnN0IGNoYXIgKmRhdGFi YXNlKTsKIAogLyoKQEAgLTI1Nyw3ICsyNTcsNyBAQCBzcGxpdF90b19zdHJpbmdsaXN0KGNv bnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKmRlbGltLCBfc3RyaW5nbGlzdCAqKmxpc3RoZWFk KQogICogZXhpdCBoYW5kbGVycywgdGh1cyBhdm9pZCBhbnkgcmlzayBvZiBib3R0b21sZXNz IHJlY3Vyc2lvbiBjYWxscyB0byBleGl0LgogICovCiBzdGF0aWMgdm9pZAotYmFpbF9vdXQo Ym9vbCBub2F0ZXhpdCwgY29uc3QgY2hhciAqZm10LC4uLikKK2JhaWxfb3V0KGJvb2wgbm9h dGV4aXQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZhX2xpc3QJCWFwOwogCkBAIC0z MzMsNyArMzMzLDcgQEAgdGVzdF9zdGF0dXNfZmFpbGVkKGNvbnN0IGNoYXIgKnRlc3RuYW1l LCBkb3VibGUgcnVudGltZSwgYm9vbCBwYXJhbGxlbCkKIAogCiBzdGF0aWMgdm9pZAotZW1p dF90YXBfb3V0cHV0KFRBUHR5cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LC4uLikKK2VtaXRf dGFwX291dHB1dChUQVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogCXZh X2xpc3QJCWFyZ3A7CiAKQEAgLTExNDAsNyArMTE0MCw3IEBAIHBzcWxfc3RhcnRfY29tbWFu ZCh2b2lkKQogfQogCiBzdGF0aWMgdm9pZAotcHNxbF9hZGRfY29tbWFuZChTdHJpbmdJbmZv IGJ1ZiwgY29uc3QgY2hhciAqcXVlcnksLi4uKQorcHNxbF9hZGRfY29tbWFuZChTdHJpbmdJ bmZvIGJ1ZiwgY29uc3QgY2hhciAqcXVlcnksIC4uLikKIHsKIAlTdHJpbmdJbmZvRGF0YSBj bWRidWY7CiAJY29uc3QgY2hhciAqY21kcHRyOwpkaWZmIC0tZ2l0IGEvc3JjL3RpbWV6b25l L3ppYy5jIGIvc3JjL3RpbWV6b25lL3ppYy5jCmluZGV4IDJmMzY0ODZhMzUwLi44YTkyNWNi ZWQ2YiAxMDA2NDQKLS0tIGEvc3JjL3RpbWV6b25lL3ppYy5jCisrKyBiL3NyYy90aW1lem9u ZS96aWMuYwpAQCAtMTIzLDggKzEyMyw4IEBAIGV4dGVybiBpbnQJbGluayhjb25zdCBjaGFy ICp0YXJnZXQsIGNvbnN0IGNoYXIgKmxpbmtuYW1lKTsKICNlbmRpZgogCiBzdGF0aWMgdm9p ZCB2ZXJyb3IoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLCB2YV9saXN0IGFyZ3MpIHBnX2F0 dHJpYnV0ZV9wcmludGYoMSwgMCk7Ci1zdGF0aWMgdm9pZCBlcnJvcihjb25zdCBjaGFyICpj b25zdCBzdHJpbmcsLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOwotc3RhdGljIHZv aWQgd2FybmluZyhjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsLi4uKSBwZ19hdHRyaWJ1dGVf cHJpbnRmKDEsIDIpOworc3RhdGljIHZvaWQgZXJyb3IoY29uc3QgY2hhciAqY29uc3Qgc3Ry aW5nLCAuLi4pIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CitzdGF0aWMgdm9pZCB3YXJu aW5nKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywgLi4uKSBwZ19hdHRyaWJ1dGVfcHJpbnRm KDEsIDIpOwogc3RhdGljIHZvaWQgYWRkdHQoemljX3Qgc3RhcnR0aW1lLCBpbnQgdHlwZSk7 CiBzdGF0aWMgaW50CWFkZHR5cGUoemljX3QgdXRvZmYsIGNoYXIgY29uc3QgKmFiYnIsCiAJ CQkJCWJvb2wgaXNkc3QsIGJvb2wgdHRpc3N0ZCwgYm9vbCB0dGlzdXQpOwpAQCAtNTE1LDcg KzUxNSw3IEBAIHZlcnJvcihjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsIHZhX2xpc3QgYXJn cykKIH0KIAogc3RhdGljIHZvaWQKLWVycm9yKGNvbnN0IGNoYXIgKmNvbnN0IHN0cmluZywu Li4pCitlcnJvcihjb25zdCBjaGFyICpjb25zdCBzdHJpbmcsIC4uLikKIHsKIAl2YV9saXN0 CQlhcmdzOwogCkBAIC01MjYsNyArNTI2LDcgQEAgZXJyb3IoY29uc3QgY2hhciAqY29uc3Qg c3RyaW5nLC4uLikKIH0KIAogc3RhdGljIHZvaWQKLXdhcm5pbmcoY29uc3QgY2hhciAqY29u c3Qgc3RyaW5nLC4uLikKK3dhcm5pbmcoY29uc3QgY2hhciAqY29uc3Qgc3RyaW5nLCAuLi4p CiB7CiAJdmFfbGlzdAkJYXJnczsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnX2JzZF9p bmRlbnQvdGVzdHMvZGVjbGFyYXRpb25zLjAuc3Rkb3V0IGIvc3JjL3Rvb2xzL3BnX2JzZF9p bmRlbnQvdGVzdHMvZGVjbGFyYXRpb25zLjAuc3Rkb3V0CmluZGV4IGFiNWE0NDdhOGJjLi5i YWE2YmI1NWM3OCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnX2JzZF9pbmRlbnQvdGVzdHMv ZGVjbGFyYXRpb25zLjAuc3Rkb3V0CisrKyBiL3NyYy90b29scy9wZ19ic2RfaW5kZW50L3Rl c3RzL2RlY2xhcmF0aW9ucy4wLnN0ZG91dApAQCAtNTQsNyArNTQsNyBAQCBpbnRfY3JlYXRl KHZvaWQpCiBzdGF0aWMKIF9hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpCiB2b2lkCi1wcmludF9l cnJvcihjb25zdCBjaGFyICpmbXQsLi4uKQorcHJpbnRfZXJyb3IoY29uc3QgY2hhciAqZm10 LCAuLi4pCiB7CiAKIH0KLS0gCjIuNDcuMwoK --------------eNC0rPtaUtxfZwO3GIbNHuZH--