[5079] in arla-drinkers

home help back first fref pref prev next nref lref last post

Re: PATCH v11: Arla 0.90 on Linux 2.6.3x to 4.4

daemon@ATHENA.MIT.EDU (Bo Branten)
Sat Feb 20 14:48:11 2016

From arla-drinkers-bounces@stacken.kth.se Sat Feb 20 19:48:11 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 6968 invoked from network); 20 Feb 2016 19:48:10 -0000
Received: from mx5.kth.se (130.237.32.10)
  by charon.mit.edu with SMTP; 20 Feb 2016 19:48:10 -0000
Received: from mx5.kth.se (localhost [127.0.0.1])
	by mx5.kth.se (Postfix) with ESMTP id AC9642401A9;
	Sat, 20 Feb 2016 20:48:09 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx5.kth.se ([127.0.0.1])
	by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id MbNjNnhTB_cN; Sat, 20 Feb 2016 20:47:52 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
	by mx5.kth.se (Postfix) with ESMTP;
	Sat, 20 Feb 2016 20:47:52 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id 3A8B014CB32;
	Sat, 20 Feb 2016 20:47:52 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id 2F4F214CB53; Sat, 20 Feb 2016 20:47:51 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx5.kth.se (mx5.kth.se [130.237.32.10])
 by vingummi.stacken.kth.se (Postfix) with ESMTPS id 29CFC14CB51
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:47:51 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
 by mx5.kth.se (Postfix) with ESMTP id 1B6C82401A4
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:47:51 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: Windows NT kernel; dist: 9; link: Ethernet or modem; 
 params: generic fuzzy; raw_mtu: 1500; raw_sig:
 6:55+9:0:1440:mss*45,0:mss,nop,ws,nop,nop,sok::0,
 [2001:6b0:e:2018::156]:42469
Received: from mx5.kth.se ([127.0.0.1])
 by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 4PySnnzQYnl6 for <arla-drinkers@stacken.kth.se>;
 Sat, 20 Feb 2016 20:47:48 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
 by mx5.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:47:48 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id 0E8A9BC6
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:47:48 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [IPv6:2001:6b0:e:2018::162])
 by mail.acc.umu.se (Postfix) with ESMTP id CAA13BC5
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:47:40 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id BBDAD44B8C; Sat, 20 Feb 2016 20:47:40 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id B2D5944B8B
 for <arla-drinkers@stacken.kth.se>; Sat, 20 Feb 2016 20:47:40 +0100 (CET)
Date: Sat, 20 Feb 2016 20:47:40 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v11: Arla 0.90 on Linux 2.6.3x to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1602202045120.736@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110310480.17625@suiko.acc.umu.se>
 <alpine.DEB.2.10.1601150307590.11672@suiko.acc.umu.se>
User-Agent: Alpine 2.10 (DEB 1266 2009-07-14)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-276651502-1903028542-1455997660=:736"
X-BeenThere: arla-drinkers@stacken.kth.se
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Arla discussions <arla-drinkers.stacken.kth.se>
List-Unsubscribe: <https://lists.stacken.kth.se/mailman/options/arla-drinkers>, 
 <mailto:arla-drinkers-request@stacken.kth.se?subject=unsubscribe>
List-Archive: <http://lists.stacken.kth.se/pipermail/arla-drinkers/>
List-Post: <mailto:arla-drinkers@stacken.kth.se>
List-Help: <mailto:arla-drinkers-request@stacken.kth.se?subject=help>
List-Subscribe: <https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers>, 
 <mailto:arla-drinkers-request@stacken.kth.se?subject=subscribe>
Errors-To: arla-drinkers-bounces@stacken.kth.se
Sender: "Arla-drinkers" <arla-drinkers-bounces@stacken.kth.se>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

---276651502-1903028542-1455997660=:736
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v11: Arla 0.90 on Linux 2.6.3x to 4.4

Corrected an error that stopped writing from work on Linux kernel 3.1 and 
later versions.

Bo Branten

---276651502-1903028542-1455997660=:736
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v11-arla-0.90-for-linux-2.6.3x-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1602202047400.736@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v11-arla-0.90-for-linux-2.6.3x-to-4.4

ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz
MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw
MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm
c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50
MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg
dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj
ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90
CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg
ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg
ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp
bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv
aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw
LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg
MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv
Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu
aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr
aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks
IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N
CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz
LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv
KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6
MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg
IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O
T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v
IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg
ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E
SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI
RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg
Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l
IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O
UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm
aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf
RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk
ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM
RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la
RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm
IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz
YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz
c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw
MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg
Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x
MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l
c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg
Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA
IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0
czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg
DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl
ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww
KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp
ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K
IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl
ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u
b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx
NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g
ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz
ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh
Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw
MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm
cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw
MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy
MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6
IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs
YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291
cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv
bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu
ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk
L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0
OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog
ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv
cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj
YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh
Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K
KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl
bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN
CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w
ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s
b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u
cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw
MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z
NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog
JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg
dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw
MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB
VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr
NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog
I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr
MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u
cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw
ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl
dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq
bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf
Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J
ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq
ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg
ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K
ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg
bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z
cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0
X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z
eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu
bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu
dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj
ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o
YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg
ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45
MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu
OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy
LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u
bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0
MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy
biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K
ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg
ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj
ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp
cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g
Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO
X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0
OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAw
MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr
cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor
LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz
OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s
b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs
NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j
bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w
YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq
LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg
cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm
IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA
QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog
ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN
CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg
ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu
b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg
ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl
KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t
dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM
KTsNCkBAIC0zMTMsMTQgKzMyNCwyNiBAQCBubnBmc19ibG9ja19vcGVuKHN0
cnVjdCBubnBmc19ub2RlICpub2RlDQogCQkgc3RydWN0IGZpbGUgKipmaWxl
KQ0KIHsNCiAgICAgY2hhciBjYWNoZW5hbWVbTk5QRlNfQ0FDSEVfUEFUSF9T
SVpFXTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDMsMSwwKQ0KKyAgICBjaGFyIGZ1bGxfY2FjaGVuYW1lW05OUEZTX0NB
Q0hFX1BBVEhfU0laRV07DQorI2VuZGlmDQogICAgIHVpbnQ2NF90IGJsb2Nr
aW5kZXggPSBubnBmc19ibG9ja19pbmRleChvZmZzZXQpOw0KICAgICB1aW50
MzJfdCBpZCA9IG5vZGUtPmluZGV4Ow0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u
cGZzcCA9IE5OUEZTX0ZST01fWE5PREUobm9kZSk7DQogICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBYTk9ERV9UT19WTk9ERShub2RlKTsNCiAgICAgaW50
IGZsYWdzID0gT19MQVJHRUZJTEUgfCBmbGFnOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVj
dCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0
aDsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDI5KQ0KICAgICB1aWRfdCBzYXZldWlkOw0KICAgICBn
aWRfdCBzYXZlZ2lkOw0KKyNlbHNlDQorICAgIGNvbnN0IHN0cnVjdCBjcmVk
ICpvbGRfY3JlZDsNCisgICAgc3RydWN0IGNyZWQgKm92ZXJyaWRlX2NyZWQ7
DQorI2VuZGlmDQogICAgIGludCByZXQ7DQogDQogICAgIEJVR19PTighbm5w
ZnNwKTsNCkBAIC0zMzAsMTIgKzM1MywyMiBAQCBubnBmc19ibG9ja19vcGVu
KHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogCXJldCA9IHNucHJpbnRmKGNh
Y2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSksDQogCQkgICAgICAgTk5QRlNf
Q0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAw
eDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS
U0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmludGYoZnVsbF9jYWNoZW5hbWUs
IHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAgICAgICIvdXNyL2FybGEvY2Fj
aGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwNCisJCSAgICAgICBpZCAvIDB4
MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYNCiAgICAgfSBlbHNlIHsNCiAJ
cmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwN
CiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxFX1BBVEgsDQogCQkgICAgICAg
aWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJCSAgICAgICAodW5zaWduZWQg
bG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorCXJldCA9IHNucHJp
bnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2YoY2FjaGVuYW1lKSwNCisJCSAg
ICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5QRlNfQ0FDSEVfRklMRV9QQVRI
LA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlkICUgMHgxMDAsDQorCQkgICAg
ICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9ja2luZGV4KTsNCisjZW5kaWYN
CiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Aobm9kZSwgb2Zmc2V0KSAmJiAo
ZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQogCSAgICBwcmludGsoS0VSTl9F
TUVSRyAicmVhZGluZyBibG9jayAlczogbm90IHRoZXJlXG4iLCBjYWNoZW5h
bWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzQ2LDIyICszNzksMzcgQEAgbm5w
ZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBC
VUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290
KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZl
IHVzIGFjY2VzcyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5m
c3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBj
dXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5m
c2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0
KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5w
ZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05P
Uk07DQotICAgIG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0K
LSAgICANCi0gICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3Mg
PSBMT09LVVBfUEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxr
KGNhY2hlbmFtZSwgJm5kKTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVk
ID0gcHJlcGFyZV9jcmVkcygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9
PSBOVUxMKQ0KKyAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJy
aWRlX2NyZWQtPmZzdWlkID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRl
X2NyZWQtPmZzZ2lkID0gbm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0g
b3ZlcnJpZGVfY3JlZHMob3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSww
KQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRp
ciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJ
ICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkg
ICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5w
ZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNo
ZW5hbWUsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNf
cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv
b3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDAp
DQogICAgIGlmIChyZXQpIHsNCisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEo
ZmxhZ3MgJiBPX0NSRUFUKSkgew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFz
a3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWludDMyX3QgbWFzazsNCiAN
CkBAIC0zODcsMTcgKzQzNSwzNyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj
dCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBP
X0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNf
SVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5
ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBk
ZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1
bGxfY2FjaGVuYW1lLCAmbmQucGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVj
dCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0Qs
IGZ1bGxfY2FjaGVuYW1lLCAmcGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAo
SVNfRVJSKGRlbnRyeSkpIHsNCiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5
KTsNCiAJfSBlbHNlIHsNCi0JICAgIHJldCA9IHZmc19jcmVhdGUobmQuZGVu
dHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5k
X2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQorCSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZm
c19jcmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAg
ICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBk
ZW50cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8q
IFhYWCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTog
Ym9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZm
c19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVT
UnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRl
bnRyeSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5k
X2lub2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50
cnkpOw0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBk
ZW50cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQu
ZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCi0JcGF0aF9yZWxlYXNlKCZu
ZCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNfYmxv
Y2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg
LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDEwLDEy
ICs0NzgsMjQgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNfbm9k
ZSAqbm9kZQ0KIAkgICAgcmV0ID0gbm5wZnNfYmxvY2tfZXh0ZW5kKG5vZGUs
IG9mZnNldCk7DQogCX0NCiAgICAgfSBlbHNlIHsNCi0Jc3RydWN0IGZpbGUg
KmYgPSBkZW50cnlfb3BlbihuZC5kZW50cnksIG5kLm1udCwgZmxhZ3MpOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQorCXN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5k
ZW50cnksIG5kLnBhdGgubW50LCBmbGFncyk7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLnBhdGguZGVudHJ5LCBu
ZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor
ICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZuZC5wYXRo
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNlDQorICAgICAgICBz
dHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRoLCBmbGFncywgY3Vy
cmVudF9jcmVkKCkpOw0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGYpKSB7DQog
CSAgICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJpbnRrKCJubnBmc19i
bG9ja19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwg
LXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQotCSAgICBwYXRo
X3JlbGVhc2UoJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkgICAgcGF0aF9wdXQoJm5kLnBhdGgp
Ow0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQog
CX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBAIC00MjQsOCAr
NTA0LDEzIEBAIG5ucGZzX2Jsb2NrX29wZW4oc3RydWN0IG5ucGZzX25vZGUg
Km5vZGUNCiAgICAgLyogcGF0aF9yZWxlYXNlKCkgaXMgdXN1YWxseSBoYW5k
bGVkIG9uIGNsb3NlICovDQogDQogIG91dDoNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjdXJyZW50
LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAgIGN1cnJlbnQtPmZzZ2lkID0gc2F2
ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZlcnRfY3JlZHMob2xkX2NyZWQpOw0K
KyAgICBwdXRfY3JlZChvdmVycmlkZV9jcmVkKTsNCisjZW5kaWYNCiANCiAg
ICAgcmV0dXJuIHJldDsNCiB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt
MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS0wLjkwLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMx
OjQ2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAw
MCArMDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2Fs
aWFzZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJp
bnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQor
ICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAg
c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEw
MDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7
DQogICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQog
CWlmICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBu
bnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0N
CiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5v
ZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxp
YXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50
cnksICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlm
DQorCWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4i
KTsNCisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAg
IHByaW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4s
DQorCQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAg
aWYgKG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkN
CisJCXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5k
aWYNCiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcx
LDExIEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50
cnkNCiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJk
aXJzKSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwg
c3RydWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVj
dCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50
cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVw
KSIsIChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+
ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJs
YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19kZXYuYyBhcmxhLTAuOTAv
bm5wZnMvbGludXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLTAuOTAtb2xkL25u
cGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQgMTg6MzM6MzYuMDAw
MDAwMDAwICswMjAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpA
QCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVj
dCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJl
ZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hy
aW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRh
dGVfaW5vZGVzKG5ucGZzLT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBO
TlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25l
XG4iKSk7DQogfQ0KQEAgLTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xv
c2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90
DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVm
LCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
bm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
cmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAg
IHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0K
ICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQg
PSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19k
ZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5O
UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
cmRldjsNCi0gICAgbm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNl
bHNlDQorICAgIGRldiA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUt
PmlfcmRldjsNCisjZW5kaWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5P
UihkZXYpXTsNCiANCiAgICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7
DQogICAgIGlmIChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7
DQpAQCAtNTA1LDE5ICs1MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0
IGZpbGUgKmZpbGUsIGNvbnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICov
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlu
b2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNp
Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0
YXRpYyBsb25nDQorbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZp
bGUgKmZpbGUsDQorCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l
ZCBsb25nIGFyZykNCisjZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIo
WERFQkRFViwgKCJubnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAl
ZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdz
KSk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl
dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3Mp
KTsNCisjZWxzZQ0KKyAgICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2Rl
dmlvY3RsIGRldiA9ICVkLCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZp
bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9m
bGFncykpOw0KKyNlbmRpZg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQog
DQogc3RhdGljIHVuc2lnbmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0
IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IG5ucGZzX2Rldl90IGRldiA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXY7DQorI2Vsc2UNCisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsN
CiAgICAgaW50IHJldCA9IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEg
QEAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAg
ICByZWFkOgkJbm5wZnNfZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19k
ZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAg
ICAgaW9jdGw6CQlubnBmc19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxv
Y2tlZF9pb2N0bDoJbm5wZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlm
DQogICAgIHJlbGVhc2U6CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJ
CW5ucGZzX2Rldm9wZW4sDQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBu
bnBmc19pbml0X2RldmljZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFk
KCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5w
ZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xl
ZXBxKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM3KQ0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9z
ZW0pOw0KIAlpbml0X01VVEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQor
I2Vsc2UNCisJc2VtYV9pbml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEp
Ow0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisj
ZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xp
c3QpOw0KIAlubnBmc1tpXS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
aW5vZGVvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVv
cHMuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfaW5v
ZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1OjI2LjAwMDAwMDAwMCArMDEwMA0K
KysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIw
MTYtMDItMTUgMTY6MTU6MjkuMDAwMDAwMDAwICswMTAwDQpAQCAtNDAsMjUg
KzQwLDQxIEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Rldi5oPg0KICNp
bmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQuaD4NCiAjaW5jbHVkZSA8bm5w
ZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5jbHVkZSA8bGludXgvYWlvLmg+
DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4NCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyNpbmNsdWRlIDxs
aW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvd3JpdGVi
YWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250bC5oPg0KIA0KICNpZmRlZiBS
Q1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyMyAy
MDA2LzEyLzExIDE2OjM1OjI2IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6
IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIyNiAyMDEwLzA4LzA4IDIwOjQzOjA0
IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0K
KyNlbHNlDQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2Vu
ZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50
DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5
KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFz
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTEwNSw3ICsxMjEsNyBA
QCBubnBmc192bWFfY2xvc2UgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqDQog
fQ0KIA0KIHN0YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgbm5w
ZnNfZmlsZV92bV9vcHMgPSB7DQotICAgIC5ub3BhZ2UJPSBmaWxlbWFwX25v
cGFnZSwNCisgICAgLmZhdWx0ICAgICAgPSBmaWxlbWFwX2ZhdWx0LA0KICAg
ICAuY2xvc2UJPSBubnBmc192bWFfY2xvc2UsDQogfTsNCiANCkBAIC0xMzQs
MTIgKzE1MCwxNCBAQCBubnBmc19wcmludF9wYXRoKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSkNCiAgKg0KICAqLw0KIA0KKyNpZiAwDQogdm9pZA0KIG5ucGZz
X3ByaW50X2xvY2soY2hhciAqcywgc3RydWN0IHNlbWFwaG9yZSAqc2VtKQ0K
IHsNCiAgICAgTk5QRlNERUIoWERFQkxPQ0ssICgibG9jazogJXMgc2VtOiAl
cCBjb3VudDogJWRcbiIsDQogCQkgICAgICBzLCBzZW0sIChpbnQpYXRvbWlj
X3JlYWQoJnNlbS0+Y291bnQpKSk7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQog
ICoNCkBAIC0xODUsNyArMjAzLDcgQEAgbm5wZnNfZF9pcHV0KHN0cnVjdCBk
ZW50cnkgKmRlbnRyeSwgc3RydQ0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs
DQogCSAgICAgKCJubnBmc19kX2lwdXQ6IGRlbnRyeSAlcCwgaW5vZGUgJXBc
biIsIGRlbnRyeSwgaW5vZGUpKTsNCiAgICAgDQotICAgIGlmIChub2RlLT5m
bGFncyAmIE5OUEZTX05PREVfSVBVVCkgLyogWFhYIGxvY2tpbmcgKi8NCisg
ICAgaWYgKG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFgg
bG9ja2luZy4gbmV2ZXIgc2V0PyAqLw0KIAlubnBmc19pcmVsZShpbm9kZSk7
DQogICAgIGVsc2UNCiAJaXB1dChpbm9kZSk7DQpAQCAtMjEyLDggKzIzMCwx
MyBAQCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0K
ICAqIG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8N
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1
cCAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg
c3RydWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0
IGRlbnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwg
c3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQor
I2VuZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2Rl
IG1zZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtMjQwLDcg
KzI2MywxMSBAQCBubnBmc19sb29rdXAgKHN0cnVjdCBpbm9kZSAqZGlyLCBz
dHJ1Y3QgDQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dF
VE5PREU7DQogICAgICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3Vy
cmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogCW1zZy5wYXJlbnRfaGFuZGxlID0gZC0+aGFuZGxl
Ow0KICAgICAgICAgDQpAQCAtMzEwLDcgKzMzNywxMSBAQCBubnBmc19vcGVu
X3ZhbGlkKHN0cnVjdCBpbm9kZSAqdnAsIHVfaW50DQogICAgICAgew0KIAlz
dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9vcGVuIG1zZzsNCiAJbXNnLmhlYWRlci5v
cGNvZGUgPSBOTlBGU19NU0dfT1BFTjsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5oYW5kbGUgPSB4bi0+aGFuZGxl
Ow0KIAltc2cudG9rZW5zID0gdG9rOw0KQEAgLTM5Nyw3ICs0MjgsMTEgQEAg
ZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIHN0
YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs
IHVfaW50IGZsYWcpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5v
ZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBz
dHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9p
bm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBO
TlBGU19GUk9NX1ZOT0RFKGlub2RlKTsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAgICBsb2ZmX3Qg
bGVuID0gaV9zaXplX3JlYWQoaW5vZGUpOw0KQEAgLTQyNSw3ICs0NjAsMTEg
QEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2ludA0K
IA0KIAltc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QVVREQVRBOw0K
IAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1z
Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg
bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNn
LmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogCW1zZy5mbGFnICAgPSBmbGFnOw0K
IAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAgLTQ2MCwxNCArNDk5LDI3IEBAIG5u
cGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQNCiAgKg0K
ICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzUpDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jKHN0cnVj
dCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBkYXRh
c3luYykNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDEsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfZnN5bmMoc3RydWN0
IGZpbGUgKmZpbGUsIGludCBkYXRhc3luYykNCisjZWxzZQ0KK3N0YXRpYyBp
bnQNCitubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0
YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQorI2VuZGlmDQogew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBmaWxlLT5mX3Bh
dGguZGVudHJ5Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAg
IGludCBlcnJvciA9IDA7DQogDQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAg
ICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlm
IChlcnJvcikNCiAJcmV0dXJuIGVycm9yOw0KQEAgLTUxMSw3ICs1NjMsMTEg
QEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgdV9pbg0K
ICAgICAgICAgICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX2dldGF0dHIgbXNn
Ow0KIA0KICAgICAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNf
TVNHX0dFVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJO
RUxfVkVSU0lPTigyLDYsMjgpDQogICAgICAgICAgICAgbXNnLmNyZWQudWlk
ID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICAgICAgbXNnLmNy
ZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgICAgICAg
ICBtc2cuY3JlZC5wYWcgPSBwYWc7DQogICAgICAgICAgICAgbXNnLmhhbmRs
ZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICAgICAgZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7
DQpAQCAtNTUxLDcgKzYwNywxMSBAQCBubnBmc19yaWdodHNfdmFsaWQoc3Ry
dWN0IGlub2RlICogdnAsIG5uDQogICAgICAgICAgICAgc3RydWN0IG5ucGZz
X21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhl
YWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UN
CisgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0K
KyNlbmRpZg0KICAgICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAg
ICAgICAgICAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAg
ICAgICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5o
ZWFkZXIsIHNpemVvZihtc2cpKTsNCkBAIC01OTIsMTEgKzY1MiwyNSBAQCBj
aGVja19yaWdodHMgKG5ucGZzX3JpZ2h0cyByaWdodHMsIGludCBtDQogICog
V2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiAoTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KSB8fCBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApKQ0KK3N0
YXRpYyBpbnQNCitubnBmc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIGludCBtb2RlKQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX3Bl
cm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHN0cnVj
dCBuYW1laWRhdGEgKm5kKQ0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu
b2RlICppbm9kZSwgaW50IG1vZGUsIHVuc2lnbmVkIGludCBmbGFncykNCisj
ZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQotICAgIG5ucGZzX3Bh
Z190IHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisgICAgbm5wZnNfcGFnX3Qg
cGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMywxLDApDQorICAgIGlmIChtb2RlICYgTUFZX05PVF9CTE9DSykNCisg
ICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChmbGFn
cyAmIElQRVJNX0ZMQUdfUkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7
DQorI2VuZGlmDQorDQorICAgIHBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAg
ICAgDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19hY2Nlc3Mg
KCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6IiwgaW5vZGUsIG1vZGUpKTsNCiAg
ICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQpAQCAtNjM2LDcgKzcx
MCwxMSBAQCBubnBmc19kb19nZXRkYXRhKHN0cnVjdCBubnBmc19ub2RlICp4
biwgDQogICAgIGludCBlcnJvcjsNCiANCiAgICAgbXNnLmhlYWRlci5vcGNv
ZGUgPSBOTlBGU19NU0dfR0VUREFUQTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBh
ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgbXNnLmhhbmRsZSA9IHhuLT5o
YW5kbGU7DQogICAgIG1zZy50b2tlbnMgPSB0b2s7DQpAQCAtNzUwLDExICs4
MjgsMTkgQEAgbm5wZnNfZGF0YV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1Xw0KIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxl
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiB2bWEpDQogew0KICAgICBpbnQg
ZmxhZ3MsIGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlu
b2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRf
aW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt
YXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5nOw0KIA0KICAgICBOTlBGU0RFQihY
REVCVk5PUFMsICgibm5wZnNfbW1hcCBpbm9kZTogJXBcbiIsIGlub2RlKSk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAgICAgbm5wZnNfcHJpbnRfcGF0aChmaWxlLT5mX2RlbnRyeSk7
DQorI2Vsc2UNCisgICAgbm5wZnNfcHJpbnRfcGF0aChmaWxlLT5mX3BhdGgu
ZGVudHJ5KTsNCisjZW5kaWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo
Im5ucGZzX21tYXAgYWxpYXNlczoiKSk7DQogICAgIG5ucGZzX3ByaW50X2Fs
aWFzZXMoaW5vZGUpOw0KICAgICANCkBAIC03ODksMzcgKzg3NSw1MCBAQCBp
bnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICogZmlsZSwgDQogICoN
CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3Jl
YWQoc3RydWN0IGtpb2NiICppb2NiLA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KIAkgICAgICAgY29uc3Qg
c3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVkIGxvbmcgbnJfc2VncywNCisJ
ICAgICAgIGxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JICAgICAgIGNoYXIgX191
c2VyICpidWYsIHNpemVfdCBjb3VudCwNCitzdGF0aWMgc3NpemVfdA0KK25u
cGZzX3JlYWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf
aXRlciAqdG8pDQogI2VuZGlmDQotCSAgICAgICBsb2ZmX3QgcG9zKQ0KIHsN
CiAgICAgaW50IGVycm9yID0gMDsNCiAgICAgc3RydWN0IGZpbGUgKmZpbGUg
PSBpb2NiLT5raV9maWxwOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDApDQogICAgIHNzaXplX3QgY291
bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0KKyAgICBzc2l6ZV90IGNvdW50
ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNlDQorICAgIHNzaXplX3QgY291
bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQogI2VuZGlmDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg
IA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJ
CQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJy
b3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIHBv
cywgcG9zICsgY291bnQpOw0KKyNlbHNlDQorICAgIGVycm9yID0gbm5wZnNf
ZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFUQV9SLCBpb2NiLT5raV9wb3Ms
IGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisjZW5kaWYNCiAgICAgaWYgKGVy
cm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2Zp
bGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBlcnJvcikpOw0KIAlyZXR1cm4g
ZXJyb3I7DQogICAgIH0NCiAgICAgDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3Ig
PSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92LCBucl9zZWdzLCBw
b3MpOw0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb19y
ZWFkKGlvY2IsIGJ1ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2Vu
ZXJpY19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQogI2VuZGlmDQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9y
ID0gJWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC04
MjksMjMgKzkyOCwzNiBAQCBubnBmc19haW9fcmVhZChzdHJ1Y3Qga2lvY2Ig
KmlvY2IsDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBzc2l6ZV90DQog
bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCiAJ
CWNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3Nl
Z3MsDQorCQlsb2ZmX3QgcG9zKQ0KICNlbHNlDQotCQljb25zdCBjaGFyIF9f
dXNlciAqYnVmLCBzaXplX3QgY291bnQsIA0KK3N0YXRpYyBzc2l6ZV90DQor
bm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBp
b3ZfaXRlciAqZnJvbSkNCiAjZW5kaWYNCi0JCWxvZmZfdCBwb3MpDQogew0K
ICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSA9
IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3NpemVfdCBjb3Vu
dCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXplX3QgY291bnQg
PSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3NpemVfdCBjb3Vu
dCA9IGlvdl9pdGVyX2NvdW50KGZyb20pOw0KICNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAg
IHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+
Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDAp
DQogICAgIGxvZmZfdCByZWFscG9zID0gcG9zOw0KKyNlbHNlDQorICAgIGxv
ZmZfdCByZWFscG9zID0gaW9jYi0+a2lfcG9zOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fpb193cml0ZSgl
cCk6IHRva2VuczogMHgleFxuIiwNCiAJCQkgaW5vZGUsIHhuLT50b2tlbnMp
KTsNCkBAIC04NTksMTAgKzk3MSwxMCBAQCBubnBmc19haW9fd3JpdGUoc3Ry
dWN0IGtpb2NiICppb2NiLA0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAN
Ci0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs
NiwxOSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxNiwwKQ0KICAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fd3Jp
dGUoaW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVy
cm9yID0gZ2VuZXJpY19maWxlX2Fpb193cml0ZShpb2NiLCBidWYsIGNvdW50
LCBwb3MpOw0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVy
KGlvY2IsIGZyb20pOw0KICNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxV
RShlcnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAv
KiBYWFggcmFjZSAqLw0KQEAgLTg3MSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv
X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1
Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg
IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0
aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1
Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm
c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k
aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtOTAzLDkgKzEwMjUsMTcgQEAgbm5w
ZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZA0KICAgICBY
QV9DTEVBUigmbXNnLmF0dHIpOw0KICAgICBYQV9TRVRfTU9ERSgmbXNnLmF0
dHIsIG1vZGUpOw0KICAgICBYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZT
X0ZJTEVfUkVHKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs
IGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfR0lEKCZt
c2cuYXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCiAgICAgbXNn
Lm1vZGUgPSAwOwkJLyogWFhYICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQg
PSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcg
PSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2Fn
ZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAg
ICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05NDYsNyArMTA3NiwxMSBAQCBubnBm
c191bmxpbmsgKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0DQogICAgIGlm
IChzdHJsY3B5KG1zZy5uYW1lLCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXpl
b2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1F
TkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL
RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1
cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJy
ZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBm
c19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMo
bm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAo
ZXJyb3IgPT0gMCkNCkBAIC05OTEsNyArMTEyNSwxMSBAQCBubnBmc19yZW5h
bWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9kaXIsIHN0DQogICAgIGlmIChzdHJs
Y3B5KG1zZy5uZXdfbmFtZSwgbmV3X2RlbnRyeS0+ZF9uYW1lLm5hbWUsIHNp
emVvZihtc2cubmV3X25hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJcmV0
dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNnLmNyZWQudWlk
ID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNnLmNyZWQucGFn
ID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAg
ICAgaWYgKGVycm9yID09IDApDQpAQCAtMTAwOCw4ICsxMTQ2LDEzIEBAIG5u
cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg
cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz
X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t
a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u
cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA
IC0xMDQwLDkgKzExODMsMTcgQEAgbm5wZnNfbWtkaXIoc3RydWN0IGlub2Rl
ICogZGlyLCBzdHJ1Y3QgZA0KIAlYQV9DTEVBUigmbXNnLmF0dHIpOw0KIAlY
QV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KIAlYQV9TRVRfVFlQRSgm
bXNnLmF0dHIsIE5OUEZTX0ZJTEVfRElSKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJWEFfU0VUX0dJ
RCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAg
ICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnRfZnNnaWQoKSk7DQor
I2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3Bh
ZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1z
Zy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQpA
QCAtMTA4Myw3ICsxMjM0LDExIEBAIG5ucGZzX3JtZGlyKHN0cnVjdCBpbm9k
ZSAqIGRpciwgc3RydWN0IGQNCiAgICAgbXNnLnBhcmVudF9oYW5kbGUgPSB4
bi0+aGFuZGxlOw0KICAgICBpZiAoc3RybGNweShtc2cubmFtZSwgZGVudHJ5
LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFY
X05BTUUpDQogCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAg
ICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
IG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAg
IG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXpl
b2YobXNnKSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTExMjgsNyAr
MTI4MywxMSBAQCBzdGF0aWMgaW50IG5ucGZzX2xpbmsoc3RydWN0IGRlbnRy
eSAqb2xkDQogCWlmIChzdHJsY3B5KG1zZy5uYW1lLCBuYW1lLCBzaXplb2Yo
bXNnLm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAt
RU5BTUVUT09MT05HOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0g
S0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51aWQgPSBjdXJy
ZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1
cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IG5ucGZz
X2dldF9wYWcoKTsNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBm
c3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogCWlmIChlcnJvciA9
PSAwKQ0KQEAgLTExNTcsMjkgKzEzMTYsNDcgQEAgc3RhdGljIGludCBubnBm
c19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZA0KICAgICB4biA9IFZOT0RFX1RP
X1hOT0RFKGRpcik7DQogDQogICAgIHsNCi0Jc3RydWN0IG5ucGZzX21lc3Nh
Z2Vfc3ltbGluayBtc2c7DQorCXN0cnVjdCBubnBmc19tZXNzYWdlX3N5bWxp
bmsgKm1zZyA9IE5VTEw7DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5Q
RlNfTVNHX1NZTUxJTks7DQotCW1zZy5wYXJlbnRfaGFuZGxlID0geG4tPmhh
bmRsZTsNCi0JaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5hbWUsIHNpemVvZiht
c2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KLQkgICAgcmV0dXJuIC1F
TkFNRVRPT0xPTkc7DQotCWlmIChzdHJsY3B5KG1zZy5jb250ZW50cywgc3lt
bmFtZSwgc2l6ZW9mKG1zZy5jb250ZW50cykpID49IE5OUEZTX01BWF9TWU1M
SU5LX0NPTlRFTlQpDQotCSAgICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0J
WEFfQ0xFQVIoJm1zZy5hdHRyKTsNCi0JWEFfU0VUX01PREUoJm1zZy5hdHRy
LCAwNzc3KTsNCi0JWEFfU0VUX1RZUEUoJm1zZy5hdHRyLCBOTlBGU19GSUxF
X0xOSyk7DQotCVhBX1NFVF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50LT5mc2dp
ZCk7DQorCW1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVM
KTsNCiANCi0JbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KLQltc2cu
Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQotCWVycm9yID0gbm5wZnNf
bWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykp
Ow0KKwlpZiAobXNnID09IE5VTEwpDQorCSAgcmV0dXJuIC1FTk9NRU07DQor
DQorCW1zZy0+aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19TWU1MSU5LOw0K
Kwltc2ctPnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwlpZiAoc3Ry
bGNweShtc2ctPm5hbWUsIG5hbWUsIHNpemVvZihtc2ctPm5hbWUpKSA+PSBO
TlBGU19NQVhfTkFNRSkgew0KKwkgIGtmcmVlKG1zZyk7DQorCSAgcmV0dXJu
IC1FTkFNRVRPT0xPTkc7DQorCX0NCisJaWYgKHN0cmxjcHkobXNnLT5jb250
ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy0+Y29udGVudHMpKSA+PSBOTlBG
U19NQVhfU1lNTElOS19DT05URU5UKSB7DQorCSAga2ZyZWUobXNnKTsNCisJ
ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlYQV9DTEVBUigmbXNn
LT5hdHRyKTsNCisJWEFfU0VUX01PREUoJm1zZy0+YXR0ciwgMDc3Nyk7DQor
CVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIsIE5OUEZTX0ZJTEVfTE5LKTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy
OCkNCisJWEFfU0VUX0dJRCgmbXNnLT5hdHRyLCBjdXJyZW50LT5mc2dpZCk7
DQorI2Vsc2UNCisgICAgICAgIFhBX1NFVF9HSUQoJm1zZy0+YXR0ciwgY3Vy
cmVudF9mc2dpZCgpKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJbXNnLT5jcmVk
LnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLT5j
cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQorCW1zZy0+Y3Jl
ZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQorCWVycm9yID0gbm5wZnNfbWVz
c2FnZV9ycGMobm5wZnNwLCAmbXNnLT5oZWFkZXIsIHNpemVvZigqbXNnKSk7
DQogCWlmIChlcnJvciA9PSAwKQ0KLQkgICAgZXJyb3IgPSBOTlBGU19NU0df
V0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkgICAgZXJyb3IgPSBOTlBGU19NU0df
V0FLRVVQX0VSUk9SKG1zZyk7DQogDQogCS8qIFhYWCBzaG91bGQgdGhpcyBy
ZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAoREVOVFJZX1RPX1hERU5UUlkoZGVu
dHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1F
UkcgIk5OUEZTIFBhbmljOiBubnBmc19zeW1saW5rOiBkZW50cnkgbm90IHZh
bGlkXG4iKTsNCiAJfQ0KKwlrZnJlZShtc2cpOw0KICAgICB9DQogDQogICAg
IHJldHVybiBlcnJvcjsNCkBAIC0xMTg4LDEyICsxMzY1LDIxIEBAIHN0YXRp
YyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAq
IFdlIGhvbGQgaV9tdXRleC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBu
bnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVu
dCwgZmlsbGRpcl90IGZpbGxkaXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQor
bm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJf
Y29udGV4dCAqY3R4KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0K
ICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmNhY2hlX2lub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAq
eG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsN
CkBAIC0xMjE3LDYgKzE0MDMsNyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBm
aWxlICogZmlsZSwgdm9pZCAqDQogDQogICAgIGNhY2hlX2lub2RlID0gYmFj
a2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KICAgICB3aGlsZSAo
ZmlsZS0+Zl9wb3MgPCBpX3NpemVfcmVhZChjYWNoZV9pbm9kZSkpIHsNCiAJ
Tk5QRlNERUIoWERFQlJFQURESVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRk
aXIgZmlsZS0+Zl9wb3M6ICVkIGlfc2l6ZTogJWRcbiIsDQpAQCAtMTIyOSw2
ICsxNDE2LDIwIEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJbWFwcGluZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQog
CWlucGFnZSA9IGZpbGUtPmZfcG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsN
CiAJcGFnZV9udW0gPSBmaWxlLT5mX3BvcyA+PiBQQUdFX0NBQ0hFX1NISUZU
Ow0KKyNlbHNlDQorICAgIHdoaWxlIChjdHgtPnBvcyA8IGlfc2l6ZV9yZWFk
KGNhY2hlX2lub2RlKSkgew0KKwlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJ
ICAgICAgICgibm5wZnNfcmVhZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXpl
OiAlZFxuIiwNCisJCShpbnQpIGN0eC0+cG9zLCAoaW50KSBjYWNoZV9pbm9k
ZS0+aV9zaXplKSk7DQorCWJlZ2luX29mZnNldCA9IGN0eC0+cG9zICZ+IChO
TlBGU19ESVJFTlRfQkxPQ0tTSVpFIC0gMSk7DQorCW9mZnNldCA9IGN0eC0+
cG9zICYgKE5OUEZTX0RJUkVOVF9CTE9DS1NJWkUgLSAxKTsNCisJY3R4LT5w
b3MgPSBiZWdpbl9vZmZzZXQ7DQorCU5OUEZTREVCKFhERUJSRUFERElSLCAo
Im5ucGZzX3JlYWRkaXIgYmVnaW5fb2Zmc2V0OiAlZCBvZmZzZXQ6ICVkXG4i
LA0KKwkJCSAgICAgKGludCliZWdpbl9vZmZzZXQsIChpbnQpb2Zmc2V0KSk7
DQorCW1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KKwlpbnBhZ2Ug
PSBjdHgtPnBvcyAmIChQQUdFX0NBQ0hFX1NJWkUtMSk7DQorCXBhZ2VfbnVt
ID0gY3R4LT5wb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisjZW5kaWYNCiAN
CiAJTk5QRlNERUIoWERFQlJFQURESVIsDQogCSAgICAgICAoIm5ucGZzX3Jl
YWRkaXIgaW5wYWdlOiAlZCBwYWdlX251bTogJWx1XG4iLA0KQEAgLTEyNjQs
NiArMTQ2NSw3IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJCSAgICAoaW50KSB4ZGlyZW50LT5kX25hbWxlbiwNCiAJ
CSAgICAoaW50KSAob2Zmc2V0K2JlZ2luX29mZnNldCkpKTsNCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0K
IAkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCiAJCSYmIChmaWxs
ZGlyX2Vycm9yID0gZmlsbGRpciAoZGlyZW50LA0KIAkJCQkgICAgIHhkaXJl
bnQtPmRfbmFtZSwNCkBAIC0xMjc1LDEyICsxNDc3LDI4IEBAIG5ucGZzX3Jl
YWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBm
c19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQog
CQlicmVhazsNCiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQt
PmRfZmlsZW5vICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2Vt
aXQgKGN0eCwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAg
ICAgeGRpcmVudC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9m
aWxlbm8sDQorCQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5Q
RlNERUIoWERFQlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxs
ZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAg
ICB9DQorI2VuZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNs
ZW47DQogDQogCSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0K
IAkJcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiAiDQogCQkgICAg
ICAgImVtcHR5IGRpcmVudCBhdCAlbGxkIGluIG5ucGZzX3JlYWRkaXIsIHBv
cyAlZCBzaXplICVkXG4iLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDExLDApDQogCQkgICAgICAgKGxvbmcgbG9uZylv
ZmZzZXQsIChpbnQpZmlsZS0+Zl9wb3MsDQorI2Vsc2UNCisJCSAgICAgICAo
bG9uZyBsb25nKW9mZnNldCwgKGludCljdHgtPnBvcywNCisjZW5kaWYNCiAJ
CSAgICAgICAoaW50KWNhY2hlX2lub2RlLT5pX3NpemUpOw0KIAkJTk5QRlNE
RUIoWERFQlZOT1BTLCAoImlub2RlOiAlcCBhbGlhc2VzOiIsIGlub2RlKSk7
DQogCQlubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC0xMjk4LDcg
KzE1MTYsMTEgQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUs
IHZvaWQgKg0KIAlpZiAob2Zmc2V0ID4gTk5QRlNfRElSRU5UX0JMT0NLU0la
RSkNCiAJICAgIG9mZnNldCA9IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkU7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTEsMCkNCiAJZmlsZS0+Zl9wb3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7
DQorI2Vsc2UNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7
DQorI2VuZGlmDQogDQogCWlmIChlcnJvciB8fCBvZmZzZXQgPCBOTlBGU19E
SVJFTlRfQkxPQ0tTSVpFKQ0KIAkgICAgYnJlYWs7DQpAQCAtMTMzMSw5ICsx
NTUzLDE1IEBAIG5ucGZzX3JlYWRsaW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50
cnksIGMNCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMiww
KQ0KIHN0YXRpYyB2b2lkICoNCiBubnBmc19mb2xsb3dfbGluayAoc3RydWN0
IGRlbnRyeSAqZGVudHJ5LA0KIAkJIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0K
KyNlbHNlDQorc3RhdGljIGNvbnN0IGNoYXIgKg0KK25ucGZzX2ZvbGxvd19s
aW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCQkgdm9pZCAqKnBhZ2Up
DQorI2VuZGlmDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1
Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQpA
QCAtMTM0NCw3ICsxNTcyLDExIEBAIG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1
Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAgaWYgKGVycm9yKQ0KICAgICAgICBy
ZXR1cm4gRVJSX1BUUihlcnJvcik7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMiwwKQ0KICAgICByZXR1cm4gcGFn
ZV9mb2xsb3dfbGlua19saWdodChkZW50cnksIG5kKTsNCisjZWxzZQ0KKyAg
ICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19saWdodChkZW50cnksIHBhZ2Up
Ow0KKyNlbmRpZg0KIH0NCiANCiAvKg0KQEAgLTEzOTgsNyArMTYzMCwxMSBA
QCBubnBmc19zZXRhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0DQog
ICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsNCiAN
CiAgICAgICAgIG1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVEFU
VFI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP
TigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj
ZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN
CisjZW5kaWYNCiAJbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0K
ICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICBu
bnBmc19pYXR0cjJhdHRyKHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAgLTE0
MjIsNiArMTY1OCw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlu
b2RlICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAg
ICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQog
ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVc
biIpKTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9k
ZSk7DQpAQCAtMTQ1MCwxOCArMTY4OCwxOCBAQCBubnBmc19yZWxlYXNlX2Zp
bGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogICoNCiAgKi8NCiANCi0jaWYg
TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkN
CiBzdGF0aWMgaW50DQogbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUs
IGZsX293bmVyX3QgaWQpDQotI2Vsc2UNCi1zdGF0aWMgaW50DQotbm5wZnNf
Zmx1c2goc3RydWN0IGZpbGUgKmZpbGUpDQotI2VuZGlmDQogew0KICAgICBO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfZmx1c2hcbiIpKTsNCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBpZiAoZmlsZSAmJiBmaWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5m
X2RlbnRyeS0+ZF9pbm9kZSkNCiAJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmls
ZShmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2Vsc2UNCisg
ICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5m
X3BhdGguZGVudHJ5LT5kX2lub2RlKQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFz
ZV9maWxlKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0K
KyNlbmRpZg0KICAgICBlbHNlDQogCXJldHVybiAwOw0KIH0NCkBAIC0xNDcw
LDEwICsxNzA4LDI0IEBAIG5ucGZzX2ZsdXNoKHN0cnVjdCBmaWxlICpmaWxl
KQ0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBv
dGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZz
X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu
YW1laWRhdGEgKm5kKQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX2Rf
cmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1l
aWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRy
eSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0K
ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRl
bnRyeSk7DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCisgICAgaWYgKGZsYWdzICYgTE9PS1VQX1JDVSkN
CisgICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChu
ZCAmJiBuZC0+ZmxhZ3MgJiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJu
IC1FQ0hJTEQ7DQorI2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVw
KVxuIiwNCiAJCSAgICAgICBkZW50cnksDQogCQkgICAgICAgKGludClkZW50
cnktPmRfbmFtZS5sZW4sDQpAQCAtMTUxOSw5ICsxNzcxLDE1IEBAIG5ucGZz
X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAgcmV0
dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzgpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9k
ZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGlj
DQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9k
ZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE1NDYsMTEg
KzE4MDQsMTYgQEAgbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5KQ0KIH0NCiANCiBzdGF0aWMgc3NpemVfdA0KLW5ucGZzX3NlbmRmaWxl
KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgKnBwb3MsIHNpemVfdCBjb3Vu
dCwNCi0JICAgICAgIHJlYWRfYWN0b3JfdCBhY3Rvciwgdm9pZCAqdGFyZ2V0
KQ0KK25ucGZzX3NwbGljZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBsb2Zm
X3QgKnBwb3MsDQorCQkgIHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKnBpcGUs
IHNpemVfdCBjb3VudCwNCisJCSAgdW5zaWduZWQgaW50IGZsYWdzKQ0KIHsN
CiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisg
ICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnkt
PmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4
biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAgIGlmICh4
biAhPSBOVUxMKQ0KQEAgLTE1NjEsOCArMTgyNCw3IEBAIG5ucGZzX3NlbmRm
aWxlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QNCiAJTk5QRlNERUIoWERF
QlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxlOiBkYXRhIG5vdCB2YWxpZCAlZFxu
IiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVycm9yOw0KICAgICB9DQotDQotICAg
IGVycm9yID0gZ2VuZXJpY19maWxlX3NlbmRmaWxlKGZpbGUsIHBwb3MsIGNv
dW50LCBhY3RvciwgdGFyZ2V0KTsNCisgICAgZXJyb3IgPSBmaWxlLT5mX29w
LT5zcGxpY2VfcmVhZChmaWxlLCBwcG9zLCBwaXBlLCBjb3VudCwgZmxhZ3Mp
Ow0KIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfc2VuZGZp
bGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJv
cjsNCkBAIC0xNjM5LDQwICsxOTAxLDQxIEBAIG5ucGZzX3dyaXRlX2JhY2tw
YWdlKHN0cnVjdCBwYWdlICpwYWdlLCANCiAJc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcgPSBiYWNrZmlsZS0+Zl9tYXBwaW5nOw0KIAl1bnNpZ25l
ZCBsZW4gPSBQQUdFX0NBQ0hFX1NJWkU7DQogCXN0cnVjdCBwYWdlICpiYWNr
cGFnZTsNCisJdm9pZCAqZnNkYXRhOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNl
dDsNCiANCiAJaW50IGVycm9yOw0KIAkNCi0JZG8gew0KLQkJYmFja3BhZ2Ug
PSBncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgbm5wZnNfZ2V0X2JhY2tpbmRl
eChwYWdlKSk7DQotCQlpZiAoIWJhY2twYWdlKSB7DQotCQkJcHJpbnRrKCJu
bnBmc193cml0ZV9iYWNrcGFnZTogbm8gcGFnZVxuIik7DQotCQkJcmV0dXJu
IC1FSU87DQotCQl9DQorCSh2b2lkKW9mZnNldDsNCiANCi0JCWVycm9yID0g
bWFwcGluZy0+YV9vcHMtPnByZXBhcmVfd3JpdGUoYmFja2ZpbGUsIGJhY2tw
YWdlLA0KLQkJCQkJCSAgICAgIDAsIGxlbik7DQorCWRvIHsNCisJCWVycm9y
ID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAw
LCBsZW4sDQorCQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUs
DQorCQkJCQkgICAgICAmYmFja3BhZ2UsICZmc2RhdGEpOw0KIAkJaWYgKCFl
cnJvcikgew0KIAkJCWNvcHlfaGlnaHBhZ2UoYmFja3BhZ2UsIHBhZ2UpOw0K
IAkJCWZsdXNoX2RjYWNoZV9wYWdlKGJhY2twYWdlKTsNCi0JCQllcnJvciA9
IG1hcHBpbmctPmFfb3BzLT5jb21taXRfd3JpdGUoYmFja2ZpbGUsIGJhY2tw
YWdlLA0KLQkJCQkJCQkgICAgIDAsIGxlbik7DQorCQkJZXJyb3IgPSBwYWdl
Y2FjaGVfd3JpdGVfZW5kKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQor
CQkJCQlsZW4sIGJhY2twYWdlLCBmc2RhdGEpOw0KKwkJCWlmIChlcnJvciA+
IDApDQorCQkJCWVycm9yID0gMDsNCiAJCX0NCiAJCWlmIChlcnJvciA9PSBB
T1BfVFJVTkNBVEVEX1BBR0UpIHsNCi0JCQlwYWdlX2NhY2hlX3JlbGVhc2Uo
YmFja3BhZ2UpOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIAl9IHdoaWxlICgw
KTsNCiANCiAJb2Zmc2V0ID0gcGFnZV9vZmZzZXQoYmFja3BhZ2UpOw0KLQl1
bmxvY2tfcGFnZShiYWNrcGFnZSk7DQotCXBhZ2VfY2FjaGVfcmVsZWFzZShi
YWNrcGFnZSk7DQogDQogCWlmIChlcnJvcikNCiAJCXByaW50aygibm5wZnNf
d3JpdGVfYmFja3BhZ2U6IEVJT1xuIik7DQogI2lmZGVmIE5OUEZTX1NBRkVf
U1lOQw0KIAllbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzMikNCiAJCSh2b2lkKXN5bmNfcGFnZV9yYW5nZSht
YXBwaW5nLT5ob3N0LCBtYXBwaW5nLCBvZmZzZXQsIGxlbik7DQorI2Vsc2UN
CisJCSh2b2lkKWZpbGVtYXBfd3JpdGVfYW5kX3dhaXRfcmFuZ2UobWFwcGlu
Zywgb2Zmc2V0LCBvZmZzZXQgKyBsZW4gLSAxKTsNCisjZW5kaWYNCiAjZW5k
aWYNCiAJDQogCXJldHVybiBlcnJvcjsNCkBAIC0xNjg5LDEzICsxOTUyLDkg
QEAgbm5wZnNfcmVhZF9iYWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgcw0K
IAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7DQogCXVuc2lnbmVkIGxvbmcgb2Zm
c2V0Ow0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF
UlNJT04oMiw2LDE4KQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWJhY2twYWdl
ID0gcmVhZF9tYXBwaW5nX3BhZ2UobWFwcGluZywgbiwgYmFja2ZpbGUpOw0K
LSNlbHNlDQotCWJhY2twYWdlID0gcmVhZF9jYWNoZV9wYWdlKG1hcHBpbmcs
IG4sDQotCQkJCSAgIChmaWxsZXJfdCAqKW1hcHBpbmctPmFfb3BzLT5yZWFk
cGFnZSwNCi0JCQkJICAgYmFja2ZpbGUpOw0KLSNlbmRpZg0KIAlpZiAoIUlT
X0VSUihiYWNrcGFnZSkpIHsNCiAJCXdhaXRfb25fcGFnZV9sb2NrZWQoYmFj
a3BhZ2UpOw0KIA0KQEAgLTE4NDIsMTEgKzIxMDEsMTcgQEAgbm5wZnNfcHJl
cGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIA0KIAlpZiAobW9k
c2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkgew0KIAkJaW50IGVycm9yOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgs
MCkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShpbm9kZSwgbW9kc2l6ZSk7DQor
I2Vsc2UNCisJCWVycm9yID0gaW5vZGVfbmV3c2l6ZV9vayhpbm9kZSwgbW9k
c2l6ZSk7DQorCQlpZighZXJyb3IpDQorCQkJdHJ1bmNhdGVfc2V0c2l6ZShp
bm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlmDQogCQlpZiAoZXJyb3IpIHsNCiAJ
CQlwcmludGsoIm5ucGZzX3ByZXBhcmVfd3JpdGU6IHRydW5jYXRlKCVsbHUp
IC0+ICVkXG4iLA0KIAkJCSAgICAgICBtb2RzaXplLCAtZXJyb3IpOw0KLQkJ
CUJVRygpOyAvKiBYWFggbm90IGNvcnJlY3QgKi8NCisJCQkvKkJVRygpOyov
IC8qIFhYWCBub3QgY29ycmVjdCAqLw0KIAkJfQ0KIAl9DQogDQpAQCAtMTg3
Miw0NCArMjEzNywxMTggQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiBz
dGF0aWMgaW50DQotbm5wZnNfY29tbWl0X3dyaXRlKHN0cnVjdCBmaWxlICpm
aWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgdG8pDQorbm5wZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUs
IHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0K
K3Vuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVjdCBwYWdlICoq
cGFnZXAsIHZvaWQgKipmc2RhdGEpDQogew0KLSAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gcGFnZS0+bWFwcGluZy0+aG9zdDsNCi0gICAgbG9mZl90IHBv
cyA9ICgobG9mZl90KXBhZ2UtPmluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQp
ICsgdG87DQorCXN0cnVjdCBwYWdlICpwYWdlOw0KKwlwZ29mZl90IGluZGV4
Ow0KKwl1bnNpZ25lZCBmcm9tOw0KKwlpbnQgcmV0ID0gMDsNCiANCi0gICAg
aWYgKHBvcyA+IGlub2RlLT5pX3NpemUpIHsNCi0JaV9zaXplX3dyaXRlKGlu
b2RlLCBwb3MpOw0KKwlpbmRleCA9IHBvcyA+PiBQQUdFX0NBQ0hFX1NISUZU
Ow0KKwlmcm9tID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOw0KIA0K
LQlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KLQlpbm9kZS0+aV9ibG9j
a3MgPSAocG9zICsgSV9CTE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJ
VFM7DQotCXNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsNCi0gICAgfQ0K
LSAgICBzZXRfcGFnZV9kaXJ0eShwYWdlKTsNCisJcGFnZSA9IGdyYWJfY2Fj
aGVfcGFnZV93cml0ZV9iZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0K
KwlpZiAoIXBhZ2UpDQorCQlyZXR1cm4gLUVOT01FTTsNCisNCisJKnBhZ2Vw
ID0gcGFnZTsNCisNCisJcmV0ID0gbm5wZnNfcHJlcGFyZV93cml0ZShmaWxl
LCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCisJaWYgKHJldCkgew0KKwkJ
dW5sb2NrX3BhZ2UocGFnZSk7DQorCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFn
ZSk7DQorCX0NCisNCisJcmV0dXJuIHJldDsNCit9DQorI2VuZGlmDQogDQor
LyogWFhYIHdlIHVzZSB0aGUgc3lzdGVtIHByb3ZpZGVkIHNpbXBsZV9jb21t
aXRfd3JpdGUgaW5zdGVhZCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHVudXNlZCBm
b3Igbm93ICovDQogI2lmIDANCi0gICAgew0KLQljaGFyICphZGRyOw0KLQlr
bWFwKHBhZ2UpOw0KLQlhZGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOw0KLQlO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTog
JXgleCV4JXhcbiIsDQorc3RhdGljIGludA0KK25ucGZzX2NvbW1pdF93cml0
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkg
ICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCit7DQorCXN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KKwlsb2ZmX3Qg
cG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNIRV9TSElG
VCkgKyB0bzsNCisNCisJaWYgKCFQYWdlVXB0b2RhdGUocGFnZSkpDQorCQlT
ZXRQYWdlVXB0b2RhdGUocGFnZSk7DQorDQorCWlmIChwb3MgPiBpbm9kZS0+
aV9zaXplKSB7DQorCQlpX3NpemVfd3JpdGUoaW5vZGUsIHBvcyk7DQorDQor
CQlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKwkJaW5vZGUtPmlfYmxv
Y2tzID0gKHBvcyArIElfQkxPQ0tTX1VOSVQgLSAxKSA+PiBJX0JMT0NLU19C
SVRTOw0KKwkJc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0KKwl9DQor
CXNldF9wYWdlX2RpcnR5KHBhZ2UpOw0KKw0KKyNpZiAwDQorCXsNCisJICAg
IGNoYXIgKmFkZHI7DQorCSAgICBrbWFwKHBhZ2UpOw0KKwkgICAgYWRkciA9
IHBhZ2VfYWRkcmVzcyhwYWdlKTsNCisJICAgIE5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19jb21taXRfd3JpdGUoJXApOiAleCV4JXgleFxuIiwNCiAJ
CQkgICAgIGZpbGUtPmZfbWFwcGluZy0+aG9zdCwgDQogCQkJICAgICBhZGRy
WzBdLCBhZGRyWzFdLCBhZGRyWzJdLCBhZGRyWzNdKSk7DQotCWt1bm1hcChw
YWdlKTsNCi0gICAgfQ0KKwkgICAga3VubWFwKHBhZ2UpOw0KKwl9DQogI2Vu
ZGlmDQotICAgIA0KLSAgICByZXR1cm4gMDsNCisgDQorCXJldHVybiAwOw0K
IH0NCisjZW5kaWYNCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDIsNiwxOCkNCi1jb25zdA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKy8qIFhYWCB3
ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfd3JpdGVfZW5kIGlu
c3RlYWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9yIG5vdyAqLw0K
KyNpZiAwDQorc3RhdGljIGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxv
ZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwg
c3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVuc2ln
bmVkIGZyb20gPSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQor
CS8qIHplcm8gdGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlk
IGEgc2hvcnQgY29weSAqLw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
KwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7
DQorI2Vsc2UNCisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7
DQorI2VuZGlmDQorCQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAw
LCBsZW4gLSBjb3BpZWQpOw0KKwkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KKwkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNl
bHNlDQorCQlrdW5tYXBfYXRvbWljKGthZGRyKTsNCiAjZW5kaWYNCisJfQ0K
Kw0KKwlubnBmc19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJv
bSArIGNvcGllZCk7DQorDQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdl
X2NhY2hlX3JlbGVhc2UocGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQor
fQ0KKyNlbmRpZg0KKyNlbmRpZg0KKw0KK2NvbnN0DQogc3RydWN0IGFkZHJl
c3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19hb3BzID0gew0KIAkucmVhZHBh
Z2UgPSBubnBmc19yZWFkcGFnZSwNCiAJLndyaXRlcGFnZSA9IG5ucGZzX3dy
aXRlcGFnZSwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDI4KQ0KIAkucHJlcGFyZV93cml0ZSA9IG5ucGZzX3ByZXBh
cmVfd3JpdGUsDQotCS5jb21taXRfd3JpdGUgPSBubnBmc19jb21taXRfd3Jp
dGUsDQorCS5jb21taXRfd3JpdGUgPSBzaW1wbGVfY29tbWl0X3dyaXRlLA0K
KyNlbHNlDQorCS53cml0ZV9iZWdpbiA9IG5ucGZzX3dyaXRlX2JlZ2luLA0K
Kwkud3JpdGVfZW5kID0gc2ltcGxlX3dyaXRlX2VuZCwNCisjZW5kaWYNCiB9
Ow0KIA0KIC8qDQpAQCAtMTkxNywyMSArMjI1NiwzMCBAQCBzdHJ1Y3QgYWRk
cmVzc19zcGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvDQogICovDQogDQogc3Ry
dWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19maWxlX29wZXJhdGlvbnMgPSB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTYsMCkNCiAgICAgLmFpb19yZWFkCT0gbm5wZnNfYWlvX3JlYWQsDQogICAg
IC5haW9fd3JpdGUJPSBubnBmc19haW9fd3JpdGUsDQorI2Vsc2UNCisgICAg
LnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRfaXRlciwNCisgICAgLndyaXRlX2l0
ZXIJPSBubnBmc193cml0ZV9pdGVyLA0KKyNlbmRpZg0KICAgICAubW1hcAk9
IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAgLm9wZW4JPSBubnBmc19vcGVuLA0K
ICAgICAuZmx1c2gJPSBubnBmc19mbHVzaCwNCiAgICAgLnJlbGVhc2UJPSBu
bnBmc19yZWxlYXNlX2ZpbGUsDQogICAgIC5mc3luYwk9IG5ucGZzX2ZzeW5j
LA0KLSAgICAuc2VuZGZpbGUJPSBubnBmc19zZW5kZmlsZSwNCisgICAgLnNw
bGljZV9yZWFkID0gbm5wZnNfc3BsaWNlX3JlYWQsDQogfTsNCiANCiBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfb3BlcmF0aW9ucyA9IHsN
CiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZGlyX29w
ZXJhdGlvbnMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTEsMCkNCiAgICAgLnJlYWRkaXIJPSBubnBmc19yZWFk
ZGlyLA0KKyNlbHNlDQorICAgIC5pdGVyYXRlICAgID0gbm5wZnNfaXRlcmF0
ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNoCT0gbm5wZnNfZmx1c2gsDQogfTsN
CiANCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9s
aW51eC9ubnBmc19sb2FkLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZz
X2xvYWQuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
bG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6NDEuMDAwMDAwMDAwICswMTAwDQor
KysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAx
LTEzIDIwOjE0OjAyLjAwMDAwMDAwMCArMDEwMA0KQEAgLTU0LDcgKzU0LDEx
IEBAIGV4dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMN
CiANCiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0g
ew0KICAgICAgICBuYW1lOiAgICAgICAgICAgIm5ucGZzIiwNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAg
ICAgICBnZXRfc2I6ICAgICAgICAgbm5wZnNfZ2V0X3NiLA0KKyNlbHNlDQor
ICAgICAgIG1vdW50OiAgICAgICAgICBubnBmc19tb3VudCwNCisjZW5kaWYN
CiAgICAgICAga2lsbF9zYjogICAgICAgIGtpbGxfbGl0dGVyX3N1cGVyLA0K
ICAgICAgICBvd25lcjogICAgICAgICAgVEhJU19NT0RVTEUsDQogfTsNCmRp
ZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9u
bnBmc19tZXNzYWdlLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21l
c3NhZ2UuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNf
bWVzc2FnZS5jCTIwMDctMDEtMDkgMTc6MzM6MzEuMDAwMDAwMDAwICswMTAw
DQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwky
MDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQ1LDcg
KzQ1LDcgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiANCiAjaWZk
ZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19tZXNzYWdlLmMsdiAxLjE0
My4yLjEgMjAwNy8wMS8wOSAxNjozMzozMSB0b2wgRXhwICQiKTsNCitSQ1NJ
RCgiJElkOiBubnBmc19tZXNzYWdlLmMsdiAxLjE0NSAyMDEwLzA4LzA4IDIw
OjQzOjA1IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KIHN0YXRpYyB2b2lk
DQpAQCAtNTUsOSArNTUsMTUgQEAgc3RhdGljIHZvaWQNCiBubnBmc19kX3Jl
bW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQogew0KICAgICBOTlBGU0RF
QihYREVCTVNHLCAoIm5ucGZzX2RfcmVtb3ZlICVwXG4iLCBkZW50cnkpKTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCiAgICAgZGdl
dF9sb2NrZWQoZGVudHJ5KTsNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9s
b2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2Nr
KTsNCisgICAgZGdldF9kbG9jayhkZW50cnkpOw0KKyAgICBzcGluX3VubG9j
aygmZGVudHJ5LT5kX2xvY2spOw0KKyNlbmRpZg0KICAgICBkX2Ryb3AoZGVu
dHJ5KTsNCiAgICAgZHB1dChkZW50cnkpOw0KIH0NCkBAIC0xMjEsNyArMTI3
LDExIEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz
ICoNCiAgICAgc3RydWN0IGlub2RlICpkaSwgKmlub2RlOw0KICAgICBzdHJ1
Y3QgZGVudHJ5ICpwYXJlbnQgPSBOVUxMOw0KICAgICBzdHJ1Y3QgcXN0ciBz
cXN0cjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSww
KQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQorI2VuZGlmDQog
ICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3NhZ2Vf
aW5zdGFsbG5vZGVcbiIpKTsNCiAgICAgDQpAQCAtMTc2LDEyICsxODYsMjYg
QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0K
ICAgICAgKg0KICAgICAgKi8NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGRp
LT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmRpLT5p
X2RlbnRyeSkgew0KIAlwYXJlbnQgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1
Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCi0Jc3Bpbl9sb2NrKCZkY2FjaGVfbG9j
ayk7DQotCWRnZXRfbG9ja2VkKHBhcmVudCk7DQotCXNwaW5fdW5sb2NrKCZk
Y2FjaGVfbG9jayk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5
KHBhcmVudCwgYWxpYXMsICZkaS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgJmRpLT5p
X2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9l
YWNoX2VudHJ5KHBhcmVudCwgJmRpLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMp
IHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBzcGluX2xvY2soJmRjYWNoZV9sb2Nr
KTsNCisgICAgZGdldF9sb2NrZWQocGFyZW50KTsNCisgICAgc3Bpbl91bmxv
Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX2xvY2soJnBh
cmVudC0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhwYXJlbnQpOw0KKyAg
ICBzcGluX3VubG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyNlbmRpZg0KIAlk
ZW50cnkgPSBkX2xvb2t1cChwYXJlbnQsICZzcXN0cik7DQogCU5OUEZTREVC
KFhERUJNU0csDQogCQkgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlOiBh
bGlhcyAlcCwgbG9va3VwICVwXG4iLA0KQEAgLTIzMyw3ICsyNTcsOSBAQCBu
bnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogCQ0K
IAlkcHV0KGRlbnRyeSk7DQogCWRlbnRyeSA9IE5VTEw7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlh
cyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRpZg0KIAlkcHV0KHBhcmVudCk7DQog
ICAgIH0NCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdl
X2luc3RhbGxub2RlOiBkb25lIGluc3RhbGxpbmdcbiIpKTsNCkBAIC0yNjgs
NyArMjk0LDEzIEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbGF0dHIoc3RydWN0
IG5ucGZzICoNCiAgICAgfQ0KIA0KICAgICBpbm9kZSA9IFhOT0RFX1RPX1ZO
T0RFKHQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAgICAgZGVudHJ5ID0gbGlzdF9lbnRyeShpbm9kZS0+
aV9kZW50cnkubmV4dCwgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KKyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnku
Zmlyc3QsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQorICAg
IGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5pX2RlbnRyeS5maXJzdCwg
c3RydWN0IGRlbnRyeSwgZF91LmRfYWxpYXMpOw0KKyNlbmRpZg0KICAgICAN
CiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3Rh
bGxhdHRyIG5hbWU6JXNcbiIsDQogCQkgICAgICAgZGVudHJ5LT5kX25hbWUu
bmFtZSkpOw0KQEAgLTM5NiwxNyArNDI4LDM1IEBAIG5ucGZzX21lc3NhZ2Vf
aW5zdGFsbGRhdGEoc3RydWN0IG5ucGZzICoNCiBzdGF0aWMgdm9pZA0KIGNs
ZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0IGlub2RlICppbm9kZSwgaW50IHBh
cmVudCkNCiB7DQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeTsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog
ICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1
Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQorI2VuZGlmDQogDQogIGFnYWluOg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQor
ICAgIHNwaW5fbG9jaygmaW5vZGUtPmlfbG9jayk7DQorI2VuZGlmDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
ICAgICBhbGlhcyA9IGlub2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGls
ZSAoYWxpYXMgIT0gJmlub2RlLT5pX2RlbnRyeSkgew0KLQlzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5
KGRlbnRyeSwgYWxpYXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlu
b2RlLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0
X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91
LmRfYWxpYXMpIHsNCisjZW5kaWYNCiAJc3RydWN0IGxpc3RfaGVhZCAqc3Vi
ZGlyczsNCiAJc3RydWN0IG5ucGZzX2RlbnRyeV9kYXRhICp4ZDsNCiAJDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KIAlkZW50cnkgPSBsaXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5
LCBkX2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKGRlbnRyeSA9PSBOVUxMKSB7
DQogCSAgICBwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IGRlbnRy
eSBpbiBhbGlhcyBsaXN0IGlzIG51bGxcbiIpOw0KIAkgICAgYnJlYWs7DQpA
QCAtNDIyLDcgKzQ3MiwxMSBAQCBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVj
dCBpbm9kZSAqaW5vZGUsDQogCXN1YmRpcnMgPSBkZW50cnktPmRfc3ViZGly
cy5uZXh0Ow0KIAl3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5LT5kX3N1YmRp
cnMpIHsNCiAJICAgIHN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCiAJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRy
eSh0bXAsIHN0cnVjdCBkZW50cnksIGRfdS5kX2NoaWxkKTsNCisjZWxzZQ0K
KwkgICAgc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwg
c3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQogCSAgICBzdWJk
aXJzID0gdG1wLT5uZXh0Ow0KIAkgICAgTk5QRlNERUIoWERFQk1TRywgKCJj
bGVhcl9hbGxfY2hpbGRyZW4gY2hpbGQ6ICUuKnMgaW5vZGU6ICVwLyVwICIN
CiAJCQkgICAgICAgImRjb3VudDogJWQgYWxpYXNlczpcbiIsDQpAQCAtNDQy
LDE0ICs0OTYsMjQgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5v
ZGUgKmlub2RlLA0KIA0KIAkgICAgLyogVGhyb3cgaW1tZWRpYXRlbHkgKi8N
CiAJICAgIGlmIChubnBmc19kY291bnQoY2hpbGQpID09IDApIHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0K
IAkgICAgICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UN
CisJICAgICAgICBzcGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQorI2Vu
ZGlmDQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQlnb3RvIGFnYWlu
Ow0KIAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0K
KyNlbmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNo
ZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGluX3VubG9jaygmaW5vZGUtPmlf
bG9jayk7DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtNjA1
LDEyICs2NjksMTAgQEAgZ2NfYmxvY2soc3RydWN0IG5ucGZzICpubnBmc3As
DQogICAgIH0NCiANCiAgICAgaWYgKCFubnBmc19ibG9ja19oYXZlX3AoeG4s
IG9mZnNldCkpIHsNCi0jaWYgMCAgIC8qIGhhcHBlbnMgd2hlbiBkYWVtb24g
c2VuZHMgc2V2ZXJhbCBtZXNzYWdlcyBmb3Igc2FtZSBibG9jayAqLw0KIAlw
cmludGsoS0VSTl9FTUVSRyAiTk5QRlMvZ2NfYmxvY2s6ICINCiAJICAgICAg
ICJFTk9FTlQgKCVkLCVkLCVkLCVkKSAweCVsbHhcbiIsIA0KIAkgICAgICAg
eG4tPmhhbmRsZS5hLCB4bi0+aGFuZGxlLmIsIHhuLT5oYW5kbGUuYywgeG4t
PmhhbmRsZS5kLCANCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpb2Zm
c2V0KTsNCi0jZW5kaWYNCiAJcmV0dXJuIC1FTk9FTlQ7DQogICAgIH0NCiAN
CkBAIC03MjEsMTIgKzc4MywyMiBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24o
c3RydWN0IG5ucGZzICpubnBmDQogDQogICAgIC8qIHNhbml0eSBjaGVjayBi
ZWZvcmUgd2UgbG9vayBhdCBpdCAqLw0KICAgICBpZiAoc2l6ZSA9PSBzaXpl
b2YoKm1lc3NhZ2UpICYmIG1lc3NhZ2UtPnZlcnNpb24gPT0gTk5QRlNfVkVS
U0lPTikgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UN
CisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAJaW50IGVycm9yOw0K
IA0KIAl1aW50NjRfdCBibG9ja3NpemUgPSBtZXNzYWdlLT5ibG9ja3NpemU7
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cCgiLiIsIDAsICZuZCk7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZuZC5wYXRo
KTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZwYXRo
KTsNCisjZW5kaWYNCiAJaWYgKGVycm9yKSB7DQogCSAgICAvKg0KIAkgICAg
ICogQmFkIGNhY2hlIHJvb3QsIGp1c3QgcmV0dXJuLg0KQEAgLTczNywxMiAr
ODA5LDIzIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1Y3Qgbm5wZnMg
Km5ucGYNCiAJCSAgICJubnBmc19tZXNzYWdlX3ZlcnNpb24gZmFpbGVkIHBh
dGhfbG9va3VwLCAiDQogCQkgICAiZXJybm86ICVkXG4iLCBlcnJvcik7DQog
CX0gZWxzZSB7DQotCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChu
ZC5tbnQpOw0KLQkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQuZGVu
dHJ5KTsNCi0JICAgIHBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICBu
bnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChuZC5wYXRoLm1udCk7DQorCSAg
ICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChuZC5wYXRoLmRlbnRyeSk7DQor
CSAgICBwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJICAgIG5ucGZz
cC0+Y2FjaGVyb290ID0gbW50Z2V0KHBhdGgubW50KTsNCisJICAgIG5ucGZz
cC0+Y2FjaGVkaXIgPSBkZ2V0KHBhdGguZGVudHJ5KTsNCisJICAgIHBhdGhf
cHV0KCZwYXRoKTsNCisjZW5kaWYNCiAJICAgIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQogCSAgICBubnBm
c3AtPnVpZCA9IGN1cnJlbnQtPmZzdWlkOw0KIAkgICAgbm5wZnNwLT5naWQg
PSBjdXJyZW50LT5mc2dpZDsNCisjZWxzZQ0KKyAgICAgICAgICAgIG5ucGZz
cC0+dWlkID0gY3VycmVudF9mc3VpZCgpOw0KKyAgICAgICAgICAgIG5ucGZz
cC0+Z2lkID0gY3VycmVudF9mc2dpZCgpOw0KKyNlbmRpZg0KIA0KIAkgICAg
LyogWFhYIHdlIHNob3VsZCB2YWxpZGF0ZSB0aGVzZSB2YWx1ZXMgKi8NCiAJ
ICAgIG5ucGZzX2Jsb2Nrc2l6ZSA9IGJsb2Nrc2l6ZTsNCmRpZmYgLXVwck4g
LVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19ub2Rl
LmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYw0KLS0tIGFy
bGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMDctMDEt
MDMgMTQ6NTI6MDIuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25u
cGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDE2LTAxLTE0IDE2OjUxOjExLjAw
MDAwMDAwMCArMDEwMA0KQEAgLTEzMiw3ICsxMzIsMTIgQEAgbm5wZnNfc2V0
c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aW50Ng0KIAlwcmludGsoIm5u
cGZzX3NldHNpemU6IHRydW5jYXRpbmcgQDB4JWxsdVxuIiwNCiAJICAgICAg
ICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6ZSk7DQogI2VuZGlmDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCwwKQ0KIAl2
bXRydW5jYXRlKGlub2RlLCBzaXplKTsgLyogWFhYIHJldHZhbCAqLw0KKyNl
bHNlDQorCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2RlLCBzaXplKSkNCisJ
ICAgIHRydW5jYXRlX3NldHNpemUoaW5vZGUsIHNpemUpOw0KKyNlbmRpZg0K
IAlubnBmc19ibG9ja190cnVuY2F0ZSh4biwgc2l6ZSk7DQogICAgIH0NCiB9
DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0
IHN0cnVjdCBubnBmc19hdHRyDQogCXN0cnVjdCB0aW1lc3BlYyBub3RpbWUg
PSB7MH07DQogDQogCWlub2RlLT5pX21vZGUgICA9IDA7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJaW5v
ZGUtPmlfdWlkICAgID0gMDsNCiAJaW5vZGUtPmlfZ2lkICAgID0gMDsNCisj
ZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAgPSBLVUlEVF9JTklUKDApOw0KKwlp
bm9kZS0+aV9naWQgICAgPSBLR0lEVF9JTklUKDApOw0KKyNlbmRpZg0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDIsMCkN
CiAJaW5vZGUtPmlfbmxpbmsgID0gMTsNCisjZWxzZQ0KKwlzZXRfbmxpbmso
aW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlpbm9kZS0+aV9hdGltZSAgPSBub3Rp
bWU7DQogCWlub2RlLT5pX210aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlf
Y3RpbWUgID0gbm90aW1lOw0KQEAgLTE2OSw3ICsxODMsMTEgQEAgbm5wZnNf
YXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KICAgICBpZiAo
WEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlpbm9kZS0+aV9naWQgICAgPSBhdHRy
LT54YV9naWQ7DQogICAgIGlmIChYQV9WQUxJRF9OTElOSyhhdHRyKSkNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywyLDAp
DQogCWlub2RlLT5pX25saW5rICA9IGF0dHItPnhhX25saW5rOw0KKyNlbHNl
DQorCXNldF9ubGluayhpbm9kZSwgYXR0ci0+eGFfbmxpbmspOw0KKyNlbmRp
Zg0KICAgICANCiAgICAgaWYgKFhBX1ZBTElEX1NJWkUoYXR0cikpIHsNCiAJ
bm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0ci0+eGFfc2l6ZSk7DQpAQCAtNTEw
LDEyICs1MjgsMjQgQEAgbm5wZnNfaGFzX3BhZyhjb25zdCBzdHJ1Y3Qgbm5w
ZnNfbm9kZSAqeA0KIGludA0KIG5ucGZzX25vZGVfdXNlcnMoc3RydWN0IGlu
b2RlICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpw
b3M7DQorI2Vsc2UNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKnBvczsNCisj
ZW5kaWYNCiAgICAgaW50IHVzZXJzID0gMDsNCiAgICAgDQogICAgIC8qIFhY
WCB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0ZWQgc29tZWhvdyAq
Lw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiAgICAgbGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50
cnkpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaChwb3MsICZpbm9k
ZS0+aV9kZW50cnkpIHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF9h
bGlhcyk7DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlz
dF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisj
ZW5kaWYNCiAJaWYgKG5ucGZzX2Rjb3VudChkZW50cnkpID4gMSkNCiAJICAg
IHVzZXJzKys7DQogICAgIH0NCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0w
LjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jIGFybGEtMC45
MC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS0wLjkw
LW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jCTIwMDctMDEtMDMg
MTU6MjY6MjcuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMi0yMCAxOTo0Mzo0Mi4w
MDAwMDAwMDAgKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUg
PG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25u
cGZzX2NvbW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j
bHVkZSA8bGludXgvc21wLmg+DQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMu
aD4NCiANCkBAIC01MCw2ICs1MiwxMSBAQA0KICNpbmNsdWRlIDxsaW51eC9z
ZWN1cml0eS5oPg0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorI3VuZGVmIFNZU0NBTExI
QUNLDQorLyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9l
cyBub3Qgd29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciwgc2Ugbm5wZnNf
c3lzY2FsbHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAj
aWZkZWYgQ09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMy
Lmg+DQpAQCAtNjQsNyArNzEsNyBAQA0KICN1bmRlZiBORUVEX1ZJQ0VJT0NU
TDMyDQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfc3lz
Y2FsbHMuYyx2IDEuMTIyIDIwMDcvMDEvMDMgMTQ6MjY6MjcgdG9sIEV4cCAk
Iik7DQorUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTI1IDIw
MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQog
c3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqbm5wZnNfcHJvY2ZzX2Rp
cjsNCkBAIC04MiwxMiArODksMjIgQEAgdHlwZWRlZiBzdHJ1Y3QgYWZzcHJv
Y2RhdGEgew0KICAgICB1bnNpZ25lZCBsb25nIHN5c2NhbGw7DQogfSBhZnNw
cm9jZGF0YTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNf
aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUs
DQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7
DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChz
dHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVu
c2lnbmVkIGxvbmcgYXJnKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0
IGZpbGVfb3BlcmF0aW9ucyBubnBmc19wcm9jZnNfZm9wcyA9IHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0K
ICAgICAuaW9jdGwgPSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2Vsc2UNCisg
ICAgLnVubG9ja2VkX2lvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNl
bmRpZg0KIH07DQogDQogDQpAQCAtMTQ3LDUzICsxNjQsNDggQEAgc3RhdGlj
IGludCBubnBmc19zZWNfcmVnaXN0ZXJlZCA9IDA7DQogI2RlZmluZSBTRUMy
UEFHKHMpIChubnBmc19wYWdfdCkodW5zaWduZWQgbG9uZykocykNCiAjZGVm
aW5lIFBBRzJTRUMocCkgKHZvaWQgKikodW5zaWduZWQgbG9uZykocCkNCiAN
Ci1zdGF0aWMgaW50DQotbm5wZnNfc2VjX3Rhc2tfYWxsb2Moc3RydWN0IHRh
c2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5wZnNfcGFnX3QgcGFnID0gU0VD
MlBBRyhjdXJyZW50LT5zZWN1cml0eSk7DQotICAgIGlmIChwYWcpDQotCXAt
PnNlY3VyaXR5ID0gUEFHMlNFQyhwYWcpOw0KLSAgICByZXR1cm4gMDsNCi19
DQotDQotc3RhdGljIHZvaWQNCi1ubnBmc19zZWNfdGFza19mcmVlKHN0cnVj
dCB0YXNrX3N0cnVjdCAqcCkNCi17DQotICAgIG5ucGZzX3BhZ190IHBhZyA9
IFNFQzJQQUcocC0+c2VjdXJpdHkpOw0KLSAgICBpZiAocGFnKQ0KLQlwLT5z
ZWN1cml0eSA9IE5VTEw7DQotfQ0KLQ0KIHN0YXRpYyBubnBmc19wYWdfdA0K
IG5ucGZzX2dldF9wYWdfc2VjKHZvaWQpDQogew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBubnBm
c19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCisj
ZWxzZQ0KKyAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnRf
c2VjdXJpdHkoKSk7DQorI2VuZGlmDQogICAgIGlmIChwYWcpDQogCXJldHVy
biBwYWc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
NCwwKQ0KKyAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAg
ICB7IGt1aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQu
dmFsOyB9DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyBpbnQNCiBubnBmc19z
ZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCiAgICAgc3RhdGljIG5ucGZzX3BhZ190
IHBhZ251bSA9IE5OUEZTX1BBR19MTElNOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KKyAgICBzdHJ1Y3Qg
Y3JlZCAqY3JlZDsNCisjZW5kaWYNCiANCiAgICAgaWYgKHBhZ251bSA9PSBO
TlBGU19QQUdfVUxJTSkNCiAJcmV0dXJuIC1FTk9NRU07DQogICAgIC8qIHBh
Z251bSA9IE5OUEZTX1BBR19MTElNOyAqLw0KICAgICANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
Y3VycmVudC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZ251bSk7DQorI2Vsc2UN
CisgICAgY3JlZCA9IChzdHJ1Y3QgY3JlZCAqKSBjdXJyZW50LT5jcmVkOw0K
KyAgICBjcmVkLT5zZWN1cml0eSA9IFBBRzJTRUMocGFnbnVtKTsNCisjZW5k
aWYNCiAgICAgcGFnbnVtKys7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi1z
dGF0aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgbm5wZnNfc2VjX29w
cyA9IHsNCi0gICAgLnRhc2tfYWxsb2Nfc2VjdXJpdHkgPSBubnBmc19zZWNf
dGFza19hbGxvYywNCi0gICAgLnRhc2tfZnJlZV9zZWN1cml0eSA9IG5ucGZz
X3NlY190YXNrX2ZyZWUsDQotLy8gICAgLnRhc2tfcmVwYXJlbnRfdG9faW5p
dCA9IG5ucGZzX3NlY19yZXBhcmVudF90b19pbml0LA0KLX07DQotDQogI2Vu
ZGlmIC8qIENPTkZJR19TRUNVUklUWSAqLw0KIA0KICNpZmRlZiBHUk9VUFBB
R1MNCkBAIC0yMDYsNyArMjE4LDEyIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91
cF9pbmZvICpnaSkNCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJmaW5kX3Bh
Zzogbmdyb3VwcyA9ICVkXG4iLCBnaS0+bmdyb3VwcykpOw0KIA0KICAgICBm
b3IgKGkgPSBnaS0+bmdyb3VwcyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN
CiAJZ2lkX3QgZ3JvdXAgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJ
a2dpZF90IGtncm91cCA9IEdST1VQX0FUKGdpLCBpKTsNCisJZ2lkX3QgZ3Jv
dXAgPSBrZ3JvdXAudmFsOw0KKyNlbmRpZg0KIAlpZiAoKG5ucGZzX3BhZ190
KWdyb3VwID49IE5OUEZTX1BBR19MTElNICYmIChubnBmc19wYWdfdClncm91
cCA8IE5OUEZTX1BBR19VTElNKSB7DQogCSAgICBOTlBGU0RFQihYREVCU1lT
LA0KIAkJICAgICAoImZpbmRfcGFnOiBFeGlzdGluZyBwYWcgJXUgYXQgcG9z
ICV1XG4iLCBncm91cCwgaSkpOw0KQEAgLTIyMiwxNSArMjM5LDMxIEBAIGZp
bmRfcGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkNCiBzdGF0aWMgbm5wZnNf
cGFnX3QNCiBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
ICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kgPSBjdXJyZW50LT5ncm91cF9p
bmZvOw0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50LT51aWQ7DQor
I2Vsc2UNCisgICAgc3RydWN0IGdyb3VwX2luZm8gKmdpID0gZ2V0X2N1cnJl
bnRfZ3JvdXBzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkNCisgICAgbm5wZnNfcGFnX3QgcmV0ID0gY3Vy
cmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICBrdWlkX3Qga3VpZCA9IGN1cnJl
bnRfdWlkKCk7DQorICAgIG5ucGZzX3BhZ190IHJldCA9IGt1aWQudmFsOw0K
KyNlbmRpZg0KKyNlbmRpZg0KICAgICBpbnQgaTsNCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
Z2V0X2dyb3VwX2luZm8oZ2kpOw0KKyNlbmRpZg0KIA0KICAgICBpID0gZmlu
ZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAhPSBOTlBGU19QQUdfTk9URk9VTkQp
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQoZ2ksIGkpOw0KKyNlbHNlDQorCXsg
a2dpZF90IGtnaWQgPSBHUk9VUF9BVChnaSwgaSk7IHJldCA9IGtnaWQudmFs
OyB9DQorI2VuZGlmDQogDQogICAgIHB1dF9ncm91cF9pbmZvKGdpKTsNCiAN
CkBAIC0yNDIsMTMgKzI3NSwxOSBAQCBubnBmc19nZXRfcGFnX2dyb3VwKHZv
aWQpDQogc3RhdGljIGludA0KIHN0b3JlX3BhZyhubnBmc19wYWdfdCBwYWdu
dW0pDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZF
UlNJT04oMiw2LDI4KQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAqb2xkX2dp
ID0gY3VycmVudC0+Z3JvdXBfaW5mbzsNCisjZWxzZQ0KKyAgIHN0cnVjdCBn
cm91cF9pbmZvICpvbGRfZ2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisj
ZW5kaWYNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKm5ld19naTsNCi0gICAg
aW50IG5ibG9ja3MsIGNvdW50Ow0KKyAgICB1bnNpZ25lZCBpbnQgbmJsb2Nr
cywgY291bnQ7DQogICAgIGludCBmb3VuZCA9IDA7DQogICAgIGludCBpLCBr
Ow0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkgICAgDQogICAgIGdldF9ncm91cF9pbmZvKG9sZF9n
aSk7DQorI2VuZGlmDQogDQogICAgIGkgPSBmaW5kX3BhZyhvbGRfZ2kpOw0K
ICAgICBpZiAoaSAhPSBOTlBGU19QQUdfTk9URk9VTkQpDQpAQCAtMjc0LDEw
ICszMTMsMTcgQEAgc3RvcmVfcGFnKG5ucGZzX3BhZ190IHBhZ251bSkNCiAJ
Y291bnQgLT0gTkdST1VQU19QRVJfQkxPQ0s7DQogICAgIH0NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K
ICAgICBpZiAoZm91bmQpDQogCUdST1VQX0FUKG5ld19naSwgaSkgPSBwYWdu
dW07DQogICAgIGVsc2UNCiAJR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5n
cm91cHMgLSAxKSA9IHBhZ251bTsNCisjZWxzZQ0KKyAgICBpZiAoZm91bmQp
DQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQ
X0FUKG5ld19naSwgaSkgPSBrZ2lkOyB9DQorICAgIGVsc2UNCisJeyBrZ2lk
X3Qga2dpZCA9IEtHSURUX0lOSVQocGFnbnVtKTsgR1JPVVBfQVQobmV3X2dp
LCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IGtnaWQ7IH0NCisjZW5kaWYNCiAg
ICAgDQogICAgIHNldF9jdXJyZW50X2dyb3VwcyhuZXdfZ2kpOw0KICAgICBw
dXRfZ3JvdXBfaW5mbyhuZXdfZ2kpOw0KQEAgLTMxNyw3ICszNjMsMTMgQEAg
bm5wZnNfZ2V0X3BhZygpDQogICAgIHJldHVybiBubnBmc19nZXRfcGFnX2dy
b3VwKCk7DQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAg
ICByZXR1cm4gY3VycmVudC0+dWlkOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAgcmV0dXJuIGN1
cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1
cnJlbnRfdWlkKCk7IHJldHVybiBrdWlkLnZhbDsgfQ0KKyNlbmRpZg0KIH0N
CiANCiBzdGF0aWMgaW5saW5lIGludA0KQEAgLTQyMiw3ICs0NzQsNyBAQCBu
bnBmc19zZXRncm91cHMxNiAoaW50IGdpZHNldHNpemUsIG9sZF9nDQogI2Vu
ZGlmIC8qIFNZU0NBTExIQUNLICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAq
Lw0KIA0KLXN0cnVjdCBmaWxlX2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2Zp
bGVfaGFuZGxlIHsNCiAgICAgbm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9f
dCBpbm9kZTsNCiAgICAgX191MzIgZ2VuOw0KQEAgLTUwOSwyNiArNTYxLDU4
IEBAIG5ucGZzX2RlYnVnX3ByaW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bCAN
CiAgKiBmb2xsb3cgc3ltbGlua3MgaWZmIGBmb2xsb3cnDQogICovDQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQogdXNlcl9wYXRoMmRlbnRy
eSAoc3RydWN0IG5hbWVpZGF0YSAqbmQsIGNoYXIgKnVzZXJfcGF0aCwgaW50
IGZvbGxvdykNCisjZWxzZQ0KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCit1
c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgcGF0aCAqcGF0aCwgY2hhciAqdXNl
cl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbmRpZg0KIHsNCiAgICAgY2hhciAq
a25hbWU7DQogICAgIGludCBmbGFncyA9IDA7DQogICAgIGludCBlcnJvciA9
IDA7DQogDQotICAgIGtuYW1lID0gZ2V0bmFtZSAodXNlcl9wYXRoKTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw3LDAp
DQorICAgIGtuYW1lID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQor
ICAgIGtuYW1lID0gX19nZXRuYW1lKCk7DQorI2VuZGlmDQorDQogICAgIGlm
IChJU19FUlIoa25hbWUpKQ0KIAlyZXR1cm4gRVJSX1BUUihQVFJfRVJSKGtu
YW1lKSk7DQogICAgIGlmIChmb2xsb3cpDQogCWZsYWdzIHw9IExPT0tVUF9G
T0xMT1c7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigzLDcsMCkNCisgICAgZXJyb3IgPSBzdHJuY3B5X2Zyb21fdXNl
cihrbmFtZSwgdXNlcl9wYXRoLCBQQVRIX01BWCk7DQorICAgIGlmIChlcnJv
ciA8IDAgfHwgZXJyb3IgPT0gUEFUSF9NQVgpIHsNCisJX19wdXRuYW1lKGtu
YW1lKTsNCisJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KKyAgICB9DQorI2Vu
ZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfc3lzY2Fs
bDogbG9va2luZyB1cDogJXNcbiIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg
ZXJyb3IgPSBwYXRoX2xvb2t1cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+
cGF0aCkpOw0KKyNlbHNlDQorICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1l
LCBmbGFncywgcGF0aCk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtu
YW1lKTsNCisjZWxzZQ0KKyAgICBfX3B1dG5hbWUoa25hbWUpOw0KKyNlbmRp
Zg0KICAgICBpZiAoZXJyb3IpDQogCXJldHVybiBFUlJfUFRSKGVycm9yKTsN
Ci0gICAgcmV0dXJuIG5kLT5kZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgcmV0dXJuIG5k
LT5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGF0aC0+ZGVu
dHJ5Ow0KKyNlbmRpZg0KIH0NCiANCiBhc21saW5rYWdlIGxvbmcNCkBAIC01
NDAsMTIgKzYyNCwyNCBAQCBzeXNfYWZzX2ludCAoaW50IG9wZXJhdGlvbiwN
CiB7DQogICAgIGxvbmcgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgYXJsYVZp
Y2VJb2N0bCB2aWNlX2lvY3RsOyANCi0gICAgc3RydWN0IG5ucGZzX21lc3Nh
Z2VfcGlvY3RsIG1zZzsNCisgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfcGlv
Y3RsICptc2cgPSBOVUxMOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93
YWtldXAgKm1zZzI7DQogICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IE5V
TEw7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0K
KyAgICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KICAgICANCisgICAg
bXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOw0KKyAg
ICBpZiAobXNnID09IE5VTEwpDQorICAgICAgcmV0dXJuIC1FTk9NRU07DQor
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzOSkNCiAgICAgbG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBY
WFggbG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25zaWRlciBhZGRpbmcg
YW4gcHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQogICAgIE5OUEZTREVC
KFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2VkXG4iKSk7DQogDQpA
QCAtNTc1LDcgKzY3MSw3IEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9u
LA0KIAkgICAgZ290byB1bmxvY2s7DQogCX0NCiAJaWYgKHZpY2VfaW9jdGwu
aW5fc2l6ZSAhPSAwKSB7DQotCSAgICBpZihjb3B5X2Zyb21fdXNlcigmbXNn
Lm1zZywNCisJICAgIGlmKGNvcHlfZnJvbV91c2VyKCZtc2ctPm1zZywNCiAJ
CQkgICAgICB2aWNlX2lvY3RsLmluLA0KIAkJCSAgICAgIHZpY2VfaW9jdGwu
aW5fc2l6ZSkgIT0gMCkgew0KIAkJZXJyb3IgPSAtRUZBVUxUOw0KQEAgLTU4
Myw3ICs2NzksMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQog
CSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0aFAs
IGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkgPSB1
c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dTeW1s
aW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJZXJy
b3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjI4LDE5ICs3
MjgsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCQllcnJv
ciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCiAJICAgIH0NCi0JICAg
IG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkgICAgbXNnLT5oYW5kbGUg
PSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5oZWFkZXIub3Bjb2RlID0g
Tk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9IGFfb3Bjb2RlOw0K
Kwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfUElPQ1RMOw0KKwlt
c2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNnLmluc2l6ZSAgID0g
dmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0c2l6ZSAgPSB2aWNlX2lv
Y3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7
DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJbXNnLT5p
bnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJbXNnLT5vdXRzaXpl
ICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorCW1zZy0+Y3JlZC51
aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy0+Y3Jl
ZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KKwltc2ctPmNyZWQu
cGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVhZGVyLCBzaXplb2YobXNn
KSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVjdCBubnBmc19tZXNzYWdl
X3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBj
KCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXplb2YoKm1zZykpOyAvKiBY
WFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAg
KikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJICAgIGVycm9yID0gbXNn
Mi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NzksMjEgQEAgc3lzX2Fmc19p
bnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxvY2s6DQogICAgIGlm
IChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCXBhdGhf
cHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1dCgmcGF0aCk7DQor
I2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfc3lz
Y2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9yKSk7DQogDQogICAg
IE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgdW5sb2NrXG4i
KSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgdW5sb2NrX2tlcm5l
bCgpOw0KKyNlbHNlDQorICAgIC8qIFhYWCBzZWUgdGhlIGNvbW1lbnQgYXQg
bG9ja19rZXJuZWwoKSBhYm92ZSAqLw0KKyNlbmRpZg0KIA0KICAgICByZXR1
cm4gZXJyb3I7DQogfQ0KQEAgLTcyOSw5ICs4NDIsMTUgQEAgc3lzX2FmcyAo
aW50IG9wZXJhdGlvbiwNCiAJCSAgICAgICBhX2ZvbGxvd1N5bWxpbmtzKTsN
CiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3Rs
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJ
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vs
c2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwNCisJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVk
IGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCiAgICAgYWZzcHJvY2RhdGEgYXJn
czsNCiAgICAgbG9uZyByZXQ7DQpAQCAtNzgwLDIxICs4OTksMzEgQEAgc3Rh
dGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2b2lkKQ0KIHsNCiAgICAgc3Ry
dWN0IHByb2NfZGlyX2VudHJ5ICplbnRyeTsNCiAgICAgDQotICAgIG5ucGZz
X3Byb2Nmc19kaXIgPSBwcm9jX21rZGlyKE5OUEZTX1BST0NfRElSLCBwcm9j
X3Jvb3RfZnMpOw0KKyAgICBubnBmc19wcm9jZnNfZGlyID0gcHJvY19ta2Rp
cigiZnMvIiBOTlBGU19QUk9DX0RJUiwgTlVMTCk7DQogICAgIGlmIChubnBm
c19wcm9jZnNfZGlyID09IE5VTEwpDQogCXJldHVybiAtRU5PTUVNOw0KICAg
ICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDMwKQ0KICAgICBubnBmc19wcm9jZnNfZGlyLT5vd25lciA9IFRISVNf
TU9EVUxFOw0KKyNlbmRpZg0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeSA9IGNy
ZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgMDY2Niwgbm5wZnNf
cHJvY2ZzX2Rpcik7DQorI2Vsc2UNCisgICAgZW50cnkgPSBwcm9jX2NyZWF0
ZShOTlBGU19QUk9DX05PREUsIDA2NjYsIE5VTEwsICZubnBmc19wcm9jZnNf
Zm9wcyk7DQorI2VuZGlmDQogICAgIGlmIChlbnRyeSA9PSBOVUxMKSB7DQog
CU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5pdF9wcm9jZnM6IG5vIG5v
ZGVcbiIpKTsNCi0JcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19ESVIs
IHByb2Nfcm9vdF9mcyk7DQorCXJlbW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5O
UEZTX1BST0NfRElSLCBOVUxMKTsNCiAJcmV0dXJuIC1FTk9NRU07DQogICAg
IH0NCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzMCkNCiAgICAgZW50cnktPm93bmVyID0gVEhJU19NT0RV
TEU7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTAsMCkNCiAgICAgZW50cnktPnByb2NfZm9wcyA9ICZu
bnBmc19wcm9jZnNfZm9wczsNCisjZW5kaWYNCiANCiAjaWZkZWYgU1lTQ0FM
TENPTVBBVA0KICAgICBpZiAocmVnaXN0ZXJfaW9jdGwzMl9jb252ZXJzaW9u
KEFSTEFfVklPQ19TWVNDQUxMMzIsIG5ucGZzX3Byb2Nmc19pb2N0bDMyKSkg
ew0KQEAgLTgxNSw3ICs5NDQsNyBAQCBzdGF0aWMgdm9pZCBubnBmc19leGl0
X3Byb2Nmcyh2b2lkKQ0KICAgICB9DQogI2VuZGlmIC8qIFNZU0NBTExDT01Q
QVQgKi8NCiAgICAgcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RF
LCBubnBmc19wcm9jZnNfZGlyKTsNCi0gICAgcmVtb3ZlX3Byb2NfZW50cnko
Tk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIHJlbW92ZV9w
cm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiB9DQog
DQogI2lmZGVmIEdST1VQUEFHUw0KQEAgLTgzOSwxNCArOTY4LDYgQEAgaW5z
dGFsbF9zZXRncm91cHModm9pZCkNCiB2b2lkDQogaW5zdGFsbF9hZnNfc3lz
Y2FsbCh2b2lkKQ0KIHsNCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQotICAg
IGlmIChyZWdpc3Rlcl9zZWN1cml0eSgmbm5wZnNfc2VjX29wcykpDQotCU5O
UEZTREVCKFhERUJTWVMsDQotCQkgKCJpbnN0YWxsX2Fmc19zeXNjYWxsOiBu
bnBmc19pbml0X3NlYyBmYWlsZWRcbiIpKTsNCi0gICAgZWxzZQ0KLQlubnBm
c19zZWNfcmVnaXN0ZXJlZCA9IDE7DQotI2VuZGlmDQotDQogICAgIG5ucGZz
X2luaXRfcHJvY2ZzKCk7DQogDQogI2lmZGVmIFNZU0NBTExIQUNLDQpAQCAt
ODg3LDEyICsxMDA4LDYgQEAgcmVzdG9yZV9hZnNfc3lzY2FsbCAodm9pZCkN
CiAjZW5kaWYNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiANCi0jaWZk
ZWYgQ09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChubnBmc19zZWNfcmVnaXN0
ZXJlZCkNCi0JaWYgKHVucmVnaXN0ZXJfc2VjdXJpdHkoJm5ucGZzX3NlY19v
cHMpKQ0KLQkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIm5ucGZzX2V4aXRfc2Vj
OiBjb3VsZG4ndCB1bnJlZ2lzdGVyXG4iKTsNCi0jZW5kaWYgLyogIUNPTkZJ
R19TRUNVUklUWSAqLw0KLQ0KICNpZmRlZiBHUk9VUFBBR1MNCiAjaWZkZWYg
U1lTQ0FMTEhBQ0sNCiAgICAgaWYgKG9sZF9zZXRncm91cHMpIHsNCmRpZmYg
LXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm
c19zeXNjYWxscy1sb3NzYWdlLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25u
cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5w
ZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMDYtMTItMTEg
MTc6MzE6NDUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZz
L2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIx
OjUxOjQ5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQ3LDExICs0NywyMCBAQA0K
ICNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4NCiANCiAjaWZkZWYgUkNTSUQN
Ci1SQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE3
IDIwMDYvMTIvMTEgMTY6MzE6NDUgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJ
ZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4
IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyog
dGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29y
ayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxM
SEFDSw0KICNlbmRpZg0KIA0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5o
Pg0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93
ZXJfYm91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYN
CiANCiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3Rh
YmxlKHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19z
eXNfY2FsbF90YWJsZSA9DQpAQCAtNjMsNiArNzIsMTEgQEAgY29uc3QgY2hh
ciAqIF9fYXR0cmlidXRlX18oKHdlYWspKQ0KIAkJICAgIHVuc2lnbmVkIGxv
bmcgKm9mZnNldCwNCiAJCSAgICBjaGFyICoqbW9kbmFtZSwgY2hhciAqbmFt
ZWJ1Zik7DQogDQorI2lmZGVmIF9feDg2XzY0X18NCitleHRlcm4gcndsb2Nr
X3QgdGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSk7DQorI2Vu
ZGlmDQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQogc3RhdGljIHZvaWQgKioN
CiBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lmZGVmIF9feDg2XzY0X18N
CkBAIC03MSw2ICs4NSw3IEBAIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAg
ICAgcmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2NrOw0KICNlbmRpZg0KIH0N
CisjZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGludCANCiBrYWxsc3ltX2lz
X2VxdWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29uc3QgY2hhciAqbmFtZSkN
CkBAIC0xMzksNiArMTU0LDggQEAgdmVyaWZ5KHZvaWQgKipwKSB7DQogICAg
IHJldHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCisNCiBz
dGF0aWMgaW5saW5lIGludCBsb29rc19nb29kKHZvaWQgKipwKQ0KIHsNCiAg
ICAgaWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3VuZCB8fCAqcCA+PSAodm9p
ZCopcCkNCkBAIC0xODgsMyArMjA1LDUgQEAgbm5wZnNfZml4dXBfc3lzY2Fs
bF9sb3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVybiAwOw0KIH0NCisNCisj
ZW5kaWYNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBm
cy9saW51eC9ubnBmc192ZnNvcHMuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgv
bm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4
L25ucGZzX3Zmc29wcy5jCTIwMDYtMTItMTEgMTc6NDM6MzUuMDAwMDAwMDAw
ICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3Zmc29w
cy5jCTIwMTYtMDItMTQgMDE6MzY6MDYuMDAwMDAwMDAwICswMTAwDQpAQCAt
NDQsMzAgKzQ0LDI2IEBADQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQogDQog
I2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAx
LjEwOSAyMDA2LzEyLzExIDE2OjQzOjM1IHRvbCBFeHAgJCIpOw0KK1JDU0lE
KCIkSWQ6IG5ucGZzX3Zmc29wcy5jLHYgMS4xMTEgMjAxMC8wOC8wOCAyMDo0
MzowNiB0b2wgRXhwICQiKTsNCiAjZW5kaWYNCiANCiBzdHJ1Y3Qgbm5wZnMg
bm5wZnNbTk5OUEZTXTsNCiANCi1zdGF0aWMgdm9pZCBubnBmc19yZWFkX2lu
b2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0KIHN0YXRpYyB2b2lkIG5ucGZz
X3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsNCi1zdGF0aWMg
dm9pZCBubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBl
cl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiANCi0jaWYgTElOVVhfVkVSU0lP
Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50
IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBr
c3RhdGZzICpidWYpOw0KLSNlbHNlDQotc3RhdGljIGludCBubnBmc19zdGF0
ZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1
Zik7DQotI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRp
b25zIG5ucGZzX3NvcHMgPSB7IA0KLSAgICByZWFkX2lub2RlCQk6IG5ucGZz
X3JlYWRfaW5vZGUsDQotICAgIHB1dF9pbm9kZQkJOiBubnBmc19wdXRfaW5v
ZGUsDQogICAgIGFsbG9jX2lub2RlCQk6IG5ucGZzX25vZGVfYWxsb2MsDQog
ICAgIGRlc3Ryb3lfaW5vZGUJOiBubnBmc19ub2RlX2ZyZWUsDQogICAgIGRy
b3BfaW5vZGUJCTogZ2VuZXJpY19kZWxldGVfaW5vZGUsDQogICAgIHB1dF9z
dXBlcgkJOiBubnBmc19wdXRfc3VwZXIsDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICB3cml0ZV9zdXBl
cgkJOiBubnBmc193cml0ZV9zdXBlciwNCisjZW5kaWYNCiAgICAgc3RhdGZz
CQk6IG5ucGZzX3N0YXRmcywNCiB9Ow0KIA0KQEAgLTk0LDcgKzkwLDExIEBA
IG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKQ0KIAkgKiByb290
J3MgcHJpdmlsaWdlcyAodXN1YWxseSBub25lLCBhbmQgbm9uZSBpcyBuZWVk
ZWQpLg0KIAkgKi8NCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJbXNnLmNyZWQudWlkID0gMDsNCisj
ZWxzZQ0KKwltc2cuY3JlZC51aWQgPSBLVUlEVF9JTklUKDApOw0KKyNlbmRp
Zg0KIAltc2cuY3JlZC5wYWcgPSAwOw0KIAkNCiAJZXJyb3IgPSBubnBmc19t
ZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7
DQpAQCAtMTI5LDggKzEyOSwxMyBAQCBtYWtlX3Jvb3RfaW5vZGUoc3RydWN0
IG5ucGZzICpubnBmc3ApDQogICAgIFhBX1NFVF9NT0RFKCZub2RlLmF0dHIs
IFNfSUZESVIgfCAwNzc3KTsNCiAgICAgWEFfU0VUX05MSU5LKCZub2RlLmF0
dHIsIDEwMCk7DQogICAgIFhBX1NFVF9TSVpFKCZub2RlLmF0dHIsIDApOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0
LDApDQogICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhB
X1NFVF9HSUQoJm5vZGUuYXR0ciwgMCk7DQorI2Vsc2UNCisgICAgWEFfU0VU
X1VJRCgmbm9kZS5hdHRyLCBLVUlEVF9JTklUKDApKTsNCisgICAgWEFfU0VU
X0dJRCgmbm9kZS5hdHRyLCBLR0lEVF9JTklUKDApKTsNCisjZW5kaWYNCiAg
ICAgWEFfU0VUX0FUSU1FKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRf
TVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9DVElNRSgmbm9k
ZS5hdHRyLCAwKTsNCkBAIC0xNTksNyArMTY0LDExIEBAIG1ha2Vfcm9vdCAo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYikNCiAgICAgbm5wZnMtPnJvb3QgPSBp
bm9kZTsNCiANCiAgICAgLyogWFhYIGVycm9yIGhhbmRsaW5nICovDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNCwwKQ0K
ICAgICBkcCA9IGRfYWxsb2Nfcm9vdChpbm9kZSk7DQorI2Vsc2UNCisgICAg
ZHAgPSBkX21ha2Vfcm9vdChpbm9kZSk7DQorI2VuZGlmDQogICAgIG5ucGZz
X2RfaW5pdChkcCk7DQogICAgIHNiLT5zX3Jvb3QgPSBkcDsNCiAgICAgcmV0
dXJuIDA7DQpAQCAtMTgzLDEzICsxOTIsMjcgQEAgbm5wZnNfcmVhZF9zdXBl
ciAoc3RydWN0IHN1cGVyX2Jsb2NrICogcw0KICAgICBOTlBGU0RFQihYREVC
VkZPUFMsICgibm5wZnNfcmVhZF9zdXBlcjogYmVnaW4gc2V0dGluZyB2YXJp
YWJsZXNcbiIpKTsNCiANCiAgICAgaWYgKGRhdGEgIT0gTlVMTCkgew0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBh
dGggcGF0aDsNCisjZW5kaWYNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRoX2xv
b2t1cChkYXRhLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3Bh
dGgoZGF0YSwgMCwgJm5kLnBhdGgpOw0KKyNlbHNlDQorCWVycm9yID0ga2Vy
bl9wYXRoKGRhdGEsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9y
KQ0KIAkgICAgZGRldiA9IEVSUl9QVFIoZXJyb3IpOw0KIAllbHNlDQotCSAg
ICBkZGV2ID0gbmQuZGVudHJ5Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICBkZGV2ID0gbmQucGF0
aC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRkZXYgPSBwYXRoLmRlbnRyeTsN
CisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAgIG1p
bm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsNCkBA
IC0yMzMsNyArMjU2LDcgQEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0IHN1
cGVyX2Jsb2NrICpzYg0KICAgICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OSkNCiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5
cGUgKmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpk
ZXZfbmFtZSwNCkBAIC0yNDIsMTkgKzI2NSwyMiBAQCBubnBmc19nZXRfc2Io
c3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQogICAgIHJldHVybiBnZXRf
c2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3Vw
ZXIsIG1udCk7DQogfQ0KICNlbHNlDQotc3RydWN0IHN1cGVyX2Jsb2NrICoN
Ci1ubnBmc19nZXRfc2IgKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190
eXBlLA0KLQkgICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1l
LCB2b2lkICpkYXRhKSANCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50
KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGlu
dCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAq
ZGF0YSkgDQogew0KLSAgICByZXR1cm4gZ2V0X3NiX25vZGV2KGZzX3R5cGUs
IGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCisgICAgcmV0dXJu
IG1vdW50X25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxs
X3N1cGVyKTsNCiB9DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkDQog
bm5wZnNfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpDQog
ew0KICAgICBzYi0+c19kaXJ0ID0gMDsNCiB9DQorI2VuZGlmDQogDQogLyoN
CiAgKiBYWFggaXMgdGhpcyBnb29kPyANCkBAIC0yNzMsNzMgKzI5OSw2IEBA
IG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAg
ICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNfcHV0X3N1cGVyIGV4aXRp
bmdcbiIpKTsNCiB9DQogDQotc3RhdGljIHZvaWQNCi1ubnBmc19yZWFkX2lu
b2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBOTlBGU0RFQihY
REVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIHN0YXJ0aW5nIGlub2RlOiAl
cFxuIixpbm9kZSkpOw0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBm
c19yZWFkX2lub2RlIGlub2RlLT5pX2lubzogJWxkXG4iLGlub2RlLT5pX2lu
bykpOw0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMTkpDQotICAgIGlub2RlLT5pX2Jsa3NpemUgPSAxMDI0Ow0KLSNl
bmRpZg0KLSAgICBpbm9kZS0+aV9tb2RlID0gMDsNCi0gICAgaW5vZGUtPmlf
b3AgPSBOVUxMOw0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19y
ZWFkX2lub2RlIGV4aXRpbmdcbiIpKTsNCi19DQotIA0KLS8qDQotICogQ2Fs
bGVkIHdoZW4gYGlub2RlJyBpcyBkZS1yZWZlcmVuY2VkLCBpZSB3aGVuIGlw
dXQgaXMgY2FsbGVkLg0KLSAqLw0KLQ0KLXN0YXRpYyB2b2lkDQotbm5wZnNf
cHV0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQotew0KLSAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQot
ICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9WTk9ERShp
bm9kZSk7DQotICAgIGludCBiYWQ7DQotDQotICAgIE5OUEZTREVCKFhERUJW
Rk9QUywoIm5ucGZzX3B1dF9pbm9kZTogaW5vZGU6ICVwIGNvdW50OiAlZCBh
bGlhc2VzOiIsDQotCQkJaW5vZGUsIG5ucGZzX2ljb3VudChpbm9kZSkpKTsN
Ci0gICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhpbm9kZSk7DQotICAgIA0KLSAg
ICBkb3duKCZubnBmc3AtPmluYWN0aXZlX3NlbSk7DQotDQotICAgIGlmICgo
bm5wZnNwLT5zdGF0dXMgJiBOTlBGU19ERVZPUEVOKSA9PSAwKSB7DQotCWlm
ICghaXNfYmFkX2lub2RlKGlub2RlKSkgew0KLQkgICAgaWYgKGlub2RlICE9
IG5ucGZzcC0+cm9vdCkgew0KLQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOw0K
LQkJbm5wZnNfaXJlbGUoaW5vZGUpOyAvKiBzZWUgbm5wZnNfbm9kZV9hZGQo
KSAqLw0KLQkgICAgfQ0KLQkgICAgeG4tPmZsYWdzIHw9IE5OUEZTX1NUQUxF
Ow0KLQl9DQotCWJhZCA9IDE7IC8qIG9yIHJvb3QsIHJlYWxseSAqLw0KLSAg
ICB9IGVsc2Ugew0KLQliYWQgPSBpc19iYWRfaW5vZGUoaW5vZGUpOw0KLSAg
ICB9DQotDQotICAgIGlmICh4bi0+ZmxhZ3MgJiBOTlBGU19TVEFMRSAmJiAh
bm5wZnNfbm9kZV91c2Vycyhpbm9kZSkpIHsNCi0JeG4tPmZsYWdzIHw9IE5O
UEZTX05PREVfSVBVVDsgLyogWFhYIGxvY2tpbmcgKi8NCi0gIAlubnBmc19m
b3JjZV9pbnZhbGlkX25vZGUoeG4pOw0KLQl4bi0+ZmxhZ3MgJj0gfk5OUEZT
X05PREVfSVBVVDsNCi0gICAgfQ0KLSAgICANCi0gICAgaWYgKGJhZCkgew0K
LQlpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAxKQ0KLQkgICAgbm5wZnNf
bm9kZV9jbGVhcih4bik7DQotICAgIH0gZWxzZSBpZiAobm5wZnNfaWNvdW50
KGlub2RlKSA9PSAyKSB7DQotCS8qIA0KLQkgKiBUaGUgbGFzdCBleHRlcm5h
bCByZWZlcmVuY2UgaXMgYmVpbmcgZHJvcHBlZCwgb25seSB0aGUgb25lDQot
CSAqIGZyb20gbm5wZnNfbm9kZV9hZGQoKSBpcyBsZWZ0LiBUaW1lIHRvIGxl
dCBkYWVtb24gcmVsZWFzZQ0KLQkgKiB0aGlzIG5vZGUgcHJvcGVybHkuDQot
CSAqLw0KLQlpZiAoKHhuLT5mbGFncyAmIE5OUEZTX0xJTUJPKSA9PSAwKSB7
DQotCSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0JICAgIG5ucGZzX3F1
ZXVlX2luYWN0aXZlKHhuKTsNCi0JfQ0KLSAgICB9DQotDQotICAgIHVwKCZu
bnBmc3AtPmluYWN0aXZlX3NlbSk7DQotfQ0KLQ0KIHN0YXRpYyBpbnQNCiBu
bnBmc19zdGF0ZnNfaW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVj
dCBrc3RhdGZzICpidWYpDQogew0KQEAgLTM1MiwyNSArMzExLDI1IEBAIG5u
cGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAgICAg
dG1wLmZfYmF2YWlsICA9IDEwMjQqMTAyNCoyLTUwOw0KICAgICB0bXAuZl9m
aWxlcyAgID0gMTAyNCoxMDI0Ow0KICAgICB0bXAuZl9mZnJlZSAgID0gMTAy
NCoxMDI0LTEwMDsNCisgICAgdG1wLmZfZnNpZC52YWxbMF0gPSAwOw0KKyAg
ICB0bXAuZl9mc2lkLnZhbFsxXSA9IDA7DQogICAgIHRtcC5mX25hbWVsZW4g
PSBOQU1FX01BWDsNCisgICAgdG1wLmZfZnJzaXplICA9IDA7DQorICAgIHRt
cC5mX3NwYXJlWzBdID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMV0gPSAwOw0K
KyAgICB0bXAuZl9zcGFyZVsyXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzNd
ID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM2KQ0KKyAgICB0bXAuZl9zcGFyZVs0XSA9IDA7DQorI2Vsc2UN
CisgICAgdG1wLmZfZmxhZ3MgPSAwOw0KKyNlbmRpZg0KICAgICAqYnVmID0g
dG1wOw0KICAgICByZXR1cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTgpDQotDQogc3RhdGlj
IGludA0KIG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0
cnVjdCBrc3RhdGZzICpidWYpDQogew0KICAgICByZXR1cm4gbm5wZnNfc3Rh
dGZzX2ludChkZW50cnktPmRfc2IsIGJ1Zik7DQogfQ0KLQ0KLSNlbHNlDQot
DQotc3RhdGljIGludA0KLW5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKnNiLCBzdHJ1Y3Qga3N0YXRmcyAqYnVmKQ0KLXsNCi0gICAgcmV0dXJu
IG5ucGZzX3N0YXRmc19pbnQoc2IsIGJ1Zik7DQotfQ0KLQ0KLSNlbmRpZg0K
ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL2FybGFkL2ZjYWNo
ZS5jIGFybGEtMC45MC9hcmxhZC9mY2FjaGUuYw0KLS0tIGFybGEtMC45MC1v
bGQvYXJsYWQvZmNhY2hlLmMJMjAwNi0xMi0xMSAxNzoyMzoyNC4wMDAwMDAw
MDAgKzAxMDANCisrKyBhcmxhLTAuOTAvYXJsYWQvZmNhY2hlLmMJMjAxNi0w
MS0yMiAxNzowMDo0My4wMDAwMDAwMDAgKzAxMDANCkBAIC03MTMsNyArNzEz
LDcgQEAgZmNhY2hlX2hhdmVfd2FudGVkKEZDYWNoZUVudHJ5ICplbnRyeSwg
dQ0KIGludA0KIGZjYWNoZV9kaXJfbmFtZSAoRkNhY2hlRW50cnkgKmVudHJ5
LCBjaGFyICpzLCBzaXplX3QgbGVuKQ0KIHsNCi0gICAgcmV0dXJuIHNucHJp
bnRmIChzLCBsZW4sICIlMDJYIiwgZW50cnktPmluZGV4IC8gMHgxMDApOw0K
KyAgICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgTk5QRlNfQ0FDSEVfRklM
RV9ESVIxLCBlbnRyeS0+aW5kZXggLyAweDEwMCk7DQogfQ0KIA0KIC8qDQpA
QCAtNzIzLDcgKzcyMyw3IEBAIGZjYWNoZV9kaXJfbmFtZSAoRkNhY2hlRW50
cnkgKmVudHJ5LCBjaGENCiBzdGF0aWMgaW50DQogZmNhY2hlX2ZpbGVfbmFt
ZSAoRkNhY2hlRW50cnkgKmVudHJ5LCBjaGFyICpzLCBzaXplX3QgbGVuKQ0K
IHsNCi0gICAgcmV0dXJuIHNucHJpbnRmIChzLCBsZW4sICIlMDJYLyUwMlgi
LA0KKyAgICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgTk5QRlNfQ0FDSEVf
RklMRV9ESVJfUEFUSCwNCiAJCSAgICAgZW50cnktPmluZGV4IC8gMHgxMDAs
IGVudHJ5LT5pbmRleCAlIDB4MTAwKTsNCiB9DQogDQpAQCAtODE1LDcgKzgx
NSw3IEBAIGZjYWNoZV9maGdldCAoY2hhciAqZmlsZW5hbWUsIGZjYWNoZV9j
YWMNCiAJaW50IHJldCwgYSwgYjsNCiAJY2hhciBidWZbMTAyNF07DQogDQot
CXJldCA9IHNzY2FuZihmaWxlbmFtZSwgIiUwMlgvJTAyWCIsICZhLCAmYik7
DQorCXJldCA9IHNzY2FuZihmaWxlbmFtZSwgTk5QRlNfQ0FDSEVfRklMRV9E
SVJfUEFUSCwgJmEsICZiKTsNCiAJaWYgKHJldCAhPSAyKQ0KIAkgICAgcmV0
dXJuIEVJTlZBTDsNCiANCkBAIC04MjQsNyArODI0LDcgQEAgZmNhY2hlX2Zo
Z2V0IChjaGFyICpmaWxlbmFtZSwgZmNhY2hlX2NhYw0KIAkNCiAJcmV0ID0g
c25wcmludGYoKGNoYXIgKiloYW5kbGUtPm5ucGZzX2hhbmRsZSwgDQogCQkg
ICAgICAgc2l6ZW9mKGhhbmRsZS0+bm5wZnNfaGFuZGxlKSwNCi0JCSAgICAg
ICAiJXNcXCUwMlhcXCUwMlgiLCBidWYsIGEsIGIpOw0KKwkJICAgICAgICIl
c1xcIiBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILCBidWYsIGEsIGIpOw0K
IA0KIAlpZiAocmV0ID4gMCAmJiByZXQgPCBzaXplb2YoaGFuZGxlLT5ubnBm
c19oYW5kbGUpKQ0KIAkgICAgaGFuZGxlLT52YWxpZCA9IDE7DQo=

---276651502-1903028542-1455997660=:736
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Arla-drinkers mailing list
Arla-drinkers@stacken.kth.se
https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers

---276651502-1903028542-1455997660=:736--

home help back first fref pref prev next nref lref last post