[5075] in arla-drinkers

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

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

daemon@ATHENA.MIT.EDU (Bo Branten)
Mon Feb 15 11:19:32 2016

From arla-drinkers-bounces@stacken.kth.se Mon Feb 15 16:19:32 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 18610 invoked from network); 15 Feb 2016 16:19:31 -0000
Received: from mx6.kth.se (130.237.48.70)
  by charon.mit.edu with SMTP; 15 Feb 2016 16:19:31 -0000
Received: from mx6.kth.se (localhost [127.0.0.1])
	by mx6.kth.se (Postfix) with ESMTP id 984221C00DA;
	Mon, 15 Feb 2016 17:19:30 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx6.kth.se ([127.0.0.1])
	by mx6.kth.se (mx6.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id HFg5V0wFyAig; Mon, 15 Feb 2016 17:19:12 +0100 (CET)
Received: from vingummi.stacken.kth.se (unknown [IPv6:2001:6b0:1:ea:211:43ff:fe35:104c])
	by mx6.kth.se (Postfix) with ESMTP;
	Mon, 15 Feb 2016 17:19:12 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id C59F414C832;
	Mon, 15 Feb 2016 17:19:11 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id 3B4EE14CB37; Mon, 15 Feb 2016 17:19:10 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx7.kth.se (mx7.kth.se [130.237.48.48])
 by vingummi.stacken.kth.se (Postfix) with ESMTPS id 366EF14C832
 for <arla-drinkers@stacken.kth.se>; Mon, 15 Feb 2016 17:19:10 +0100 (CET)
Received: from mx7.kth.se (localhost [127.0.0.1])
 by mx7.kth.se (Postfix) with ESMTP id 2E1261400A9
 for <arla-drinkers@stacken.kth.se>; Mon, 15 Feb 2016 17:19:10 +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]:52666
Received: from mx7.kth.se ([127.0.0.1])
 by mx7.kth.se (mx7.kth.se [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id Brtcl8KxbZhX for <arla-drinkers@stacken.kth.se>;
 Mon, 15 Feb 2016 17:19:07 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
 by mx7.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Mon, 15 Feb 2016 17:19:07 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id 32E9DAA4
 for <arla-drinkers@stacken.kth.se>; Mon, 15 Feb 2016 17:19:07 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [130.239.18.162])
 by mail.acc.umu.se (Postfix) with ESMTP id 77954AA2
 for <arla-drinkers@stacken.kth.se>; Mon, 15 Feb 2016 17:19:00 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id 6A3B544B8C; Mon, 15 Feb 2016 17:19:00 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id 641CF44B8B
 for <arla-drinkers@stacken.kth.se>; Mon, 15 Feb 2016 17:19:00 +0100 (CET)
Date: Mon, 15 Feb 2016 17:19:00 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v9: 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.1602151714590.6685@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-256347803-1455553140=:6685"
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-256347803-1455553140=:6685
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v9: Arla 0.90 on Linux 2.6.3x to 4.4

Corrections in nnpfs_readdir/nnpfs_iterate that broke directory listing on 
Linux kernel 3.11 and above.

Bo Branten

---276651502-256347803-1455553140=:6685
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v9-arla-0.90-for-linux-2.6.3x-to-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1602151719000.6685@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v9-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
eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTI4IDE3OjQ0OjM2LjAwMDAwMDAw
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
KTsNCkBAIC0zMTgsOSArMzI5LDE4IEBAIG5ucGZzX2Jsb2NrX29wZW4oc3Ry
dWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgc3RydWN0IG5ucGZzICpubnBm
c3AgPSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5v
ZGUgKmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBm
bGFncyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3Qg
bmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lk
X3Qgc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3JlZCAq
b2xkX2NyZWQ7DQorICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0K
KyNlbmRpZg0KICAgICBpbnQgcmV0Ow0KIA0KICAgICBCVUdfT04oIW5ucGZz
cCk7DQpAQCAtMzQ2LDIxICszNjYsMzYgQEAgbm5wZnNfYmxvY2tfb3Blbihz
dHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+
Y2FjaGVkaXIgfHwgIW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAg
IC8qIHVzZSB0aGUgbmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MjkpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2
ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9
IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+
Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBkZ2V0KG5ucGZzcC0+Y2FjaGVk
aXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQobm5wZnNwLT5jYWNoZXJvb3Qp
Ow0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNUX05PUk07DQotICAgIG5kLmRl
cHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAwOw0KLSAgICANCi0gICAgaWYg
KGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxhZ3MgPSBMT09LVVBfUEFSRU5U
Ow0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93YWxrKGNhY2hlbmFtZSwgJm5k
KTsNCisjZWxzZQ0KKyAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9jcmVk
cygpOw0KKyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KKyAgICAg
ICAgcmV0dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzdWlk
ID0gbm5wZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzZ2lkID0g
bm5wZnNwLT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMo
b3ZlcnJpZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICByZXQgPSB2
ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNo
ZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JF
QVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
KyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwg
bm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBm
bGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZu
ZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAo
bm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBj
YWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFS
RU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJl
dCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsN
CiAJdWludDMyX3QgbWFzazsNCkBAIC0zODcsMTcgKzQyMiwzOSBAQCBubnBm
c19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0K
ICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJp
dHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE5LDApDQorCS8qIFhYWCB2ZXJpZnkgdGhhdCBjYWNoZW5hbWUgaXMgdGhl
IGNvcnJlY3QgcGF0aCBzdHJpbmcgdG8gdXNlIGhlcmUgKi8NCisJc3RydWN0
IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwg
Y2FjaGVuYW1lLCAmbmQucGF0aCwgMCk7CQ0KKyNlbHNlDQorCS8qIFhYWCB2
ZXJpZnkgdGhhdCBjYWNoZW5hbWUgaXMgdGhlIGNvcnJlY3QgcGF0aCBzdHJp
bmcgdG8gdXNlIGhlcmUgKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0g
a2Vybl9wYXRoX2NyZWF0ZShBVF9GRENXRCwgY2FjaGVuYW1lLCAmcGF0aCwg
MCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsNCiAJICAg
IHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCi0JICAgIHJl
dCA9IHZmc19jcmVhdGUobmQuZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNf
SVJVU1J8U19JV1VTUiwgJm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQorCSAgICByZXQgPSB2ZnNfY3Jl
YXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8
U19JV1VTUiwgJm5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICAvKiBYWFggc2hvdWxkIHRo
ZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19jcmVhdGU6IGJvb2wgd2FudF9leGNs
LCBiZSAwIG9yIDE/ICovDQorCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBh
dGguZGVudHJ5LT5kX2lub2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwg
MCk7DQorI2Vsc2UNCisJICAgIC8qIFhYWCBzaG91bGQgdGhlIGxhc3QgYXJn
dW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3Ig
MT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRf
aW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogCSAgICBkcHV0KGRlbnRyeSk7DQorCSAgICBtdXRleF91bmxv
Y2soJm5kLnBhdGguZGVudHJ5LT5kX2lub2RlLT5pX211dGV4KTsNCisJICAg
IHBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCSAgICBkb25lX3BhdGhf
Y3JlYXRlKCZuZC5wYXRoLCBkZW50cnkpOw0KKyNlbHNlDQorCSAgICBkb25l
X3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50cnkpOw0KKyNlbmRpZg0KIAl9DQog
DQotCW11dGV4X3VubG9jaygmbmQuZGVudHJ5LT5kX2lub2RlLT5pX211dGV4
KTsNCi0JcGF0aF9yZWxlYXNlKCZuZCk7DQotDQogCWlmIChyZXQpIHsNCiAJ
ICAgIHByaW50aygibm5wZnNfYmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxl
ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1
Z19vb3BzKCk7DQpAQCAtNDEwLDEyICs0NjcsMjQgQEAgbm5wZnNfYmxvY2tf
b3BlbihzdHJ1Y3Qgbm5wZnNfbm9kZSAqbm9kZQ0KIAkgICAgcmV0ID0gbm5w
ZnNfYmxvY2tfZXh0ZW5kKG5vZGUsIG9mZnNldCk7DQogCX0NCiAgICAgfSBl
bHNlIHsNCi0Jc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5kZW50
cnksIG5kLm1udCwgZmxhZ3MpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQorCXN0cnVjdCBmaWxlICpmID0g
ZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFn
cyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw2LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKG5kLnBhdGguZGVudHJ5LCBuZC5wYXRoLm1udCwgZmxhZ3MsIGN1cnJl
bnRfY3JlZCgpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE5LDApDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9
IGRlbnRyeV9vcGVuKCZuZC5wYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkp
Ow0KKyNlbHNlDQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9v
cGVuKCZwYXRoLCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbmRpZg0K
IAlpZiAoSVNfRVJSKGYpKSB7DQogCSAgICByZXQgPSBQVFJfRVJSKGYpOw0K
IAkgICAgcHJpbnRrKCJubnBmc19ibG9ja19vcGVuKCVzKSBvcGVuIGZhaWxl
ZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1
Z19vb3BzKCk7DQotCSAgICBwYXRoX3JlbGVhc2UoJm5kKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwkg
ICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBwYXRoX3B1
dCgmcGF0aCk7DQorI2VuZGlmDQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9
IGY7DQogCX0NCkBAIC00MjQsOCArNDkzLDEzIEBAIG5ucGZzX2Jsb2NrX29w
ZW4oc3RydWN0IG5ucGZzX25vZGUgKm5vZGUNCiAgICAgLyogcGF0aF9yZWxl
YXNlKCkgaXMgdXN1YWxseSBoYW5kbGVkIG9uIGNsb3NlICovDQogDQogIG91
dDoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDI5KQ0KICAgICBjdXJyZW50LT5mc3VpZCA9IHNhdmV1aWQ7DQogICAg
IGN1cnJlbnQtPmZzZ2lkID0gc2F2ZWdpZDsNCisjZWxzZQ0KKyAgICByZXZl
cnRfY3JlZHMob2xkX2NyZWQpOw0KKyAgICBwdXRfY3JlZChvdmVycmlkZV9j
cmVkKTsNCisjZW5kaWYNCiANCiAgICAgcmV0dXJuIHJldDsNCiB9DQpkaWZm
IC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5w
ZnNfY29tbW9uLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2NvbW1v
bi5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21t
b24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAwMCArMDEwMA0KKysr
IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYwkyMDE2LTAx
LTE0IDE2OjE1OjAwLjAwMDAwMDAwMCArMDEwMA0KQEAgLTExMiwxMCArMTEy
LDE1IEBAIG5ucGZzX3ByaW50X2FsaWFzZXMoY29uc3Qgc3RydWN0IGlub2Rl
ICoNCiB2b2lkDQogbm5wZnNfcHJpbnRfYWxpYXNlc19yZWFsKGNvbnN0IHN0
cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqYWxpYXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICph
bGlhczsNCisjZW5kaWYNCiAgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0K
ICAgICBpbnQgYmFpbG91dCA9IDEwMDsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFsaWFzID0g
aW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAhPSAm
aW5vZGUtPmlfZGVudHJ5KSB7DQogCWlmICgtLWJhaWxvdXQgPCAwKSB7DQpA
QCAtMTMxLDYgKzEzNiwyNiBAQCBubnBmc19wcmludF9hbGlhc2VzX3JlYWwo
Y29uc3Qgc3RydWN0IGluDQogCX0NCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsN
CiAgICAgfQ0KKyNlbHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRy
eShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFzKSB7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZp
bm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlz
dF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRf
dS5kX2FsaWFzKSB7DQorI2VuZGlmDQorCWlmICgtLWJhaWxvdXQgPCAwKSB7
DQorCSAgICBwcmludGsoIiAuLi4iKTsNCisJICAgIGJyZWFrOw0KKwl9DQor
CWlmIChkZW50cnkpIHsNCisJICAgIHByaW50aygiICUuKnMoJXApIiwgKGlu
dClkZW50cnktPmRfbmFtZS5sZW4sDQorCQkgICBkZW50cnktPmRfbmFtZS5u
YW1lLCBkZW50cnkpOw0KKwkgICAgaWYgKG5ucGZzX2RfZW50cnlfdW5oYXNo
ZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJCXByaW50aygiKHVuaGFzaGVkKSIp
Ow0KKwl9DQorICAgIH0NCisjZW5kaWYNCiAgICAgcHJpbnRrKCJcbiIpOw0K
IH0NCiANCkBAIC0xNDYsNyArMTcxLDExIEBAIG5ucGZzX3ByaW50X2NoaWxk
cmVuKGNvbnN0IHN0cnVjdCBkZW50cnkNCiANCiAgICAgd2hpbGUgKHN1YmRp
cnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJzKSB7DQogCXN0cnVjdCBsaXN0X2hl
YWQgKnRtcCA9IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IGRlbnRyeSAqY2hp
bGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF91LmRfY2hp
bGQpOw0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l
bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0K
IA0KIAlwcmludGsoIiAlLipzKCVwKSIsIChpbnQpY2hpbGQtPmRfbmFtZS5s
ZW4sDQogCSAgICAgICBjaGlsZC0+ZF9uYW1lLm5hbWUsIGNoaWxkKTsNCmRp
ZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9u
bnBmc19kZXYuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMN
Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIw
MDYtMTAtMjQgMTg6MzM6MzYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6
MTkuMDAwMDAwMDAwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZz
X2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAgTk5Q
RlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRp
bmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+c2Ip
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7DQor
I2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJmcmVl
X2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3ICsz
NzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5vZGUs
IHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAq
cHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+
Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBubnBm
c19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0g
Jm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAq
Zmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5
LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmls
ZSwgY29uc3QgDQogDQogICAgIE5OUEZTREVCKFhERUJERVYsICgibm5wZnNf
ZGV2d3JpdGVcbiIpKTsNCiAgICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgZGV2ID0gZmlsZS0+
Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCi0gICAgbm5wZnNwID0gJm5u
cGZzW01JTk9SKGRldildOw0KKyNlbHNlDQorICAgIGRldiA9IGZpbGUtPmZf
cGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5kaWYNCisgICAg
IG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiANCiAgICAgZG93bigm
bm5wZnNwLT5jaGFubmVsX3NlbSk7DQogICAgIGlmIChubnBmc3AtPnN0YXR1
cyAmIE5OUEZTX0RFVldSSVRFKSB7DQpAQCAtNTA1LDE5ICs1MTUsMzcgQEAg
bm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IA0KIC8q
DQogICogTm90IHVzZWQuDQogICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5w
ZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUg
KmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs
b25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfdW5sb2Nr
ZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAgICAgICB1bnNp
Z25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisjZW5kaWYNCiB7
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZpb2N0
bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAgICBpbm9kZS0+
aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBOTlBGU0RF
QihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9
ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5p
X3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAgICBOTlBGU0RF
QihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBmbGFncyA9
ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5v
ZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbmRpZg0KICAgICBy
ZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3RhdGljIHVuc2lnbmVkIGludA0K
IG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUg
KndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRldiA9IGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UNCisgICAgbm5w
ZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+
aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9
ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAgaW50IHJldCA9IDA7DQogICAg
IA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3RydWN0IGZpbGVfb3BlcmF0aW9u
cyBubnBmc19mb3BzID0gew0KICAgICByZWFkOgkJbm5wZnNfZGV2cmVhZCwN
CiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0ZSwNCiAgICAgcG9sbDoJCW5u
cGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9jdGw6CQlubnBmc19kZXZpb2N0
bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9pb2N0bDoJbm5wZnNfdW5sb2Nr
ZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAgIHJlbGVhc2U6CQlubnBmc19k
ZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZzX2Rldm9wZW4sDQogfTsNCkBA
IC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19pbml0X2RldmljZSh2b2lkKQ0K
IAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5wZnNbaV0ud2FpdF9xdWV1ZSkp
Ow0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0ubWVzc2FnZXEpOw0KIAlubnBm
c19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KIAlpbml0X01VVEVY
KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0KIAlpbml0X01VVEVYKCZubnBm
c1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9pbml0KCZubnBm
c1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlzZW1hX2luaXQoJm5ucGZzW2ld
LmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9MSVNUX0hFQUQo
Jm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tpXS5ubm9kZXMg
PSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYyBhcmxhLTAuOTAvbm5w
ZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtMC45MC1vbGQv
bm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYwkyMDA2LTEyLTExIDE3OjM1
OjI2LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51
eC9ubnBmc19pbm9kZW9wcy5jCTIwMTYtMDItMTUgMTY6MTU6MjkuMDAwMDAw
MDAwICswMTAwDQpAQCAtNDAsMjUgKzQwLDQxIEBADQogI2luY2x1ZGUgPG5u
cGZzL25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJl
bnQuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisj
aW5jbHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZt
dHMuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxs
aW51eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3Mu
aD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDQsMSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAj
aW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9m
Y250bC5oPg0KIA0KICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZz
X2lub2Rlb3BzLmMsdiAxLjIyMyAyMDA2LzEyLzExIDE2OjM1OjI2IHRvbCBF
eHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX2lub2Rlb3BzLmMsdiAxLjIy
NiAyMDEwLzA4LzA4IDIwOjQzOjA0IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0K
IA0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUg
KmZpbGUsIHVfaW50IGZsYWcpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgaW50DQogbm5w
ZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0
IG5hbWVpZGF0YSAqbmQpOw0KLQ0KKyNlbHNlDQogc3RhdGljIGludA0KK25u
cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln
bmVkIGludCBmbGFncyk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCitzdGF0aWMNCitp
bnQNCiBubnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0K
KyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qg
c3RydWN0IGRlbnRyeSAqZGVudHJ5KTsNCisjZW5kaWYNCiANCiBzdGF0aWMg
dm9pZA0KIG5ucGZzX2RfcmVsZWFzZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
Ow0KQEAgLTEwNSw3ICsxMjEsNyBAQCBubnBmc192bWFfY2xvc2UgKHN0cnVj
dCB2bV9hcmVhX3N0cnVjdCAqDQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3Qgdm1f
b3BlcmF0aW9uc19zdHJ1Y3Qgbm5wZnNfZmlsZV92bV9vcHMgPSB7DQotICAg
IC5ub3BhZ2UJPSBmaWxlbWFwX25vcGFnZSwNCisgICAgLmZhdWx0ICAgICAg
PSBmaWxlbWFwX2ZhdWx0LA0KICAgICAuY2xvc2UJPSBubnBmc192bWFfY2xv
c2UsDQogfTsNCiANCkBAIC0xMzQsMTIgKzE1MCwxNCBAQCBubnBmc19wcmlu
dF9wYXRoKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiAgKg0KICAqLw0KIA0K
KyNpZiAwDQogdm9pZA0KIG5ucGZzX3ByaW50X2xvY2soY2hhciAqcywgc3Ry
dWN0IHNlbWFwaG9yZSAqc2VtKQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQkxP
Q0ssICgibG9jazogJXMgc2VtOiAlcCBjb3VudDogJWRcbiIsDQogCQkgICAg
ICBzLCBzZW0sIChpbnQpYXRvbWljX3JlYWQoJnNlbS0+Y291bnQpKSk7DQog
fQ0KKyNlbmRpZg0KIA0KIC8qDQogICoNCkBAIC0xODUsNyArMjAzLDcgQEAg
bm5wZnNfZF9pcHV0KHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydQ0KICAg
ICBOTlBGU0RFQihYREVCVk5PUFMsDQogCSAgICAgKCJubnBmc19kX2lwdXQ6
IGRlbnRyeSAlcCwgaW5vZGUgJXBcbiIsIGRlbnRyeSwgaW5vZGUpKTsNCiAg
ICAgDQotICAgIGlmIChub2RlLT5mbGFncyAmIE5OUEZTX05PREVfSVBVVCkg
LyogWFhYIGxvY2tpbmcgKi8NCisgICAgaWYgKG5vZGUtPmZsYWdzICYgTk5Q
RlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2luZy4gbmV2ZXIgc2V0PyAqLw0K
IAlubnBmc19pcmVsZShpbm9kZSk7DQogICAgIGVsc2UNCiAJaXB1dChpbm9k
ZSk7DQpAQCAtMjEyLDggKzIzMCwxMyBAQCBubnBmc19pbm9kZV92YWxpZChz
dHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAqIG5ucGZzX2xvb2t1cCBub3cgcmV0
dXJucyBhIGRlbnRyeS4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHN0cnVjdCBk
ZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQor
I2Vsc2UNCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQorbm5wZnNfbG9va3Vw
IChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1
bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9nZXRub2RlIG1zZzsNCiAgICAgc3RydWN0IG5ucGZz
ICpubnBmc3A7DQpAQCAtMjQwLDcgKzI2MywxMSBAQCBubnBmc19sb29rdXAg
KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgDQogDQogCW1zZy5oZWFkZXIu
b3Bjb2RlID0gTk5QRlNfTVNHX0dFVE5PREU7DQogICAgICAgICANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
CiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAg
ICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K
IAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1zZy5wYXJl
bnRfaGFuZGxlID0gZC0+aGFuZGxlOw0KICAgICAgICAgDQpAQCAtMzEwLDcg
KzMzNywxMSBAQCBubnBmc19vcGVuX3ZhbGlkKHN0cnVjdCBpbm9kZSAqdnAs
IHVfaW50DQogICAgICAgew0KIAlzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9vcGVu
IG1zZzsNCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfT1BFTjsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNl
bmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogCW1z
Zy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAltc2cudG9rZW5zID0gdG9rOw0K
QEAgLTM5Nyw3ICs0MjgsMTEgQEAgZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19p
bnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpDQogew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3Ry
dWN0IG5ucGZzICpubnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2RlKTsN
CiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUo
aW5vZGUpOw0KICAgICBsb2ZmX3QgbGVuID0gaV9zaXplX3JlYWQoaW5vZGUp
Ow0KQEAgLTQyNSw3ICs0NjAsMTEgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVj
dCBmaWxlICpmaWxlLCB1X2ludA0KIA0KIAltc2cuaGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19QVVREQVRBOw0KIAltc2cuY3JlZC5wYWcgPSBubnBmc19n
ZXRfcGFnKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxf
VkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVp
ZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91
aWQoKTsNCisjZW5kaWYNCiAJbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQog
CW1zZy5mbGFnICAgPSBmbGFnOw0KIAltc2cub2Zmc2V0ID0gb2ZmOw0KQEAg
LTQ2MCwxNCArNDk5LDI3IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls
ZSAqZmlsZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu
dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCitzdGF0aWMgaW50
DQorbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhc3lu
YykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3luYyhzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0
YXN5bmMpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KKyAgICBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkgPSBmaWxlLT5mX3BhdGguZGVudHJ5Ow0KKyNlbmRpZg0KICAg
ICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRy
eSk7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQogDQorICAg
ICh2b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92
YWxpZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIGVycm9y
Ow0KQEAgLTUxMSw3ICs1NjMsMTEgQEAgbm5wZnNfYXR0cl92YWxpZChzdHJ1
Y3QgaW5vZGUgKiB2cCwgdV9pbg0KICAgICAgICAgICAgIHN0cnVjdCBubnBm
c19tZXNzYWdlX2dldGF0dHIgbXNnOw0KIA0KICAgICAgICAgICAgIG1zZy5o
ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX0dFVEFUVFI7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg
ICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsN
CisjZW5kaWYNCiAgICAgICAgICAgICBtc2cuY3JlZC5wYWcgPSBwYWc7DQog
ICAgICAgICAgICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAg
ICAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cu
aGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtNTUxLDcgKzYwNywxMSBAQCBu
bnBmc19yaWdodHNfdmFsaWQoc3RydWN0IGlub2RlICogdnAsIG5uDQogICAg
ICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0YXR0ciBtc2c7DQog
DQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df
R0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cuY3JlZC51aWQgPSBj
dXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAgICBtc2cuY3JlZC51
aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICAgICAgICAgIG1z
Zy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBtc2cuaGFuZGxlID0g
eG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA
IC01OTIsMTEgKzY1MiwyNSBAQCBjaGVja19yaWdodHMgKG5ucGZzX3JpZ2h0
cyByaWdodHMsIGludCBtDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0K
ICAqLw0KIA0KKyNpZiAoTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM4KSB8fCBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxLDApKQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNz
aW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlKQ0KKyNlbHNlDQog
c3RhdGljIGludA0KLW5ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICpp
bm9kZSwgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KK25ucGZz
X3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUsIHVu
c2lnbmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJv
ciA9IDA7DQotICAgIG5ucGZzX3BhZ190IHBhZyA9IG5ucGZzX2dldF9wYWco
KTsNCisgICAgbm5wZnNfcGFnX3QgcGFnOw0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxLDApDQorICAgIGlmIChtb2Rl
ICYgTUFZX05PVF9CTE9DSykNCisgICAgICAgIHJldHVybiAtRUNISUxEOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQorICAgIGlmIChmbGFncyAmIElQRVJNX0ZMQUdfUkNVKQ0KKyAg
ICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VuZGlmDQorDQorICAgIHBhZyA9
IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19hY2Nlc3MgKCVwKSBtb2RlID0gMCVvIGFsaWFzZXM6
IiwgaW5vZGUsIG1vZGUpKTsNCiAgICAgbm5wZnNfcHJpbnRfYWxpYXNlcyhp
bm9kZSk7DQpAQCAtNjM2LDcgKzcxMCwxMSBAQCBubnBmc19kb19nZXRkYXRh
KHN0cnVjdCBubnBmc19ub2RlICp4biwgDQogICAgIGludCBlcnJvcjsNCiAN
CiAgICAgbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0dfR0VUREFUQTsN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNl
bHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2Vu
ZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAg
ICAgbXNnLmhhbmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIG1zZy50b2tlbnMg
PSB0b2s7DQpAQCAtNzUwLDExICs4MjgsMTkgQEAgbm5wZnNfZGF0YV92YWxp
ZChzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1Xw0KIGludCBubnBmc19maWxlX21t
YXAoc3RydWN0IGZpbGUgKiBmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg
KiB2bWEpDQogew0KICAgICBpbnQgZmxhZ3MsIGVycm9yID0gMDsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRf
aW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0
cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gZmlsZS0+Zl9tYXBwaW5n
Ow0KIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfbW1hcCBp
bm9kZTogJXBcbiIsIGlub2RlKSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfcHJpbnRf
cGF0aChmaWxlLT5mX2RlbnRyeSk7DQorI2Vsc2UNCisgICAgbm5wZnNfcHJp
bnRfcGF0aChmaWxlLT5mX3BhdGguZGVudHJ5KTsNCisjZW5kaWYNCiAgICAg
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgYWxpYXNlczoiKSk7
DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KICAgICANCkBA
IC03ODksMzcgKzg3NSw1MCBAQCBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVj
dCBmaWxlICogZmlsZSwgDQogICoNCiAgKi8NCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KIHN0YXRpYyBz
c2l6ZV90DQogbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLA0K
LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2
LDE5KQ0KIAkgICAgICAgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2ln
bmVkIGxvbmcgbnJfc2VncywNCisJICAgICAgIGxvZmZfdCBwb3MpDQogI2Vs
c2UNCi0JICAgICAgIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwN
CitzdGF0aWMgc3NpemVfdA0KK25ucGZzX3JlYWRfaXRlcihzdHJ1Y3Qga2lv
Y2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQogI2VuZGlmDQotCSAg
ICAgICBsb2ZmX3QgcG9zKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAg
ICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KLSNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEy
LDApDQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSww
KQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNl
bHNlDQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7
DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U
T19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkN
CiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6
IHRva2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5z
KSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlu
b2RlLCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNl
DQorICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNf
REFUQV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsN
CisjZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJW
Tk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4i
LCBlcnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQot
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYs
MTkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQo
aW9jYiwgaW92LCBucl9zZWdzLCBwb3MpOw0KICNlbHNlDQotICAgIGVycm9y
ID0gZ2VuZXJpY19maWxlX2Fpb19yZWFkKGlvY2IsIGJ1ZiwgY291bnQsIHBv
cyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3JlYWRfaXRlcihpb2Ni
LCB0byk7DQogI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJu
bnBmc19yZWFkX2ZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9yKSk7DQogICAg
IHJldHVybiBlcnJvcjsNCkBAIC04MjksMjMgKzkyOCwzNiBAQCBubnBmc19h
aW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogICoNCiAgKi8NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiww
KQ0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBr
aW9jYiAqaW9jYiwNCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwxOSkNCiAJCWNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92
LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQorCQlsb2ZmX3QgcG9zKQ0KICNl
bHNlDQotCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQs
IA0KK3N0YXRpYyBzc2l6ZV90DQorbm5wZnNfd3JpdGVfaXRlcihzdHJ1Y3Qg
a2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkNCiAjZW5kaWYN
Ci0JCWxvZmZfdCBwb3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAg
ICBzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIs
MCkNCiAgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2Vs
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDAp
DQorICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vs
c2UNCisgICAgc3NpemVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KGZyb20p
Ow0KICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBm
aWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0KKyAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsN
CisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuID0gVk5PREVf
VE9fWE5PREUoaW5vZGUpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIGxvZmZfdCByZWFscG9zID0g
cG9zOw0KKyNlbHNlDQorICAgIGxvZmZfdCByZWFscG9zID0gaW9jYi0+a2lf
cG9zOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BT
LCAoIm5ucGZzX2Fpb193cml0ZSglcCk6IHRva2VuczogMHgleFxuIiwNCiAJ
CQkgaW5vZGUsIHhuLT50b2tlbnMpKTsNCkBAIC04NTksMTAgKzk3MSwxMCBA
QCBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KIAlyZXR1
cm4gZXJyb3I7DQogICAgIH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAgICBlcnJvciA9
IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUoaW9jYiwgaW92LCBucl9zZWdzLCBw
b3MpOw0KICNlbHNlDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX2Fpb193
cml0ZShpb2NiLCBidWYsIGNvdW50LCBwb3MpOw0KKyAgICBlcnJvciA9IGdl
bmVyaWNfZmlsZV93cml0ZV9pdGVyKGlvY2IsIGZyb20pOw0KICNlbmRpZg0K
ICAgICBpZiAoIUlTX0VSUl9WQUxVRShlcnJvcikpDQogCXhuLT5mbGFncyB8
PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBYWFggcmFjZSAqLw0KQEAgLTg3MSw5
ICs5ODMsMTkgQEAgbm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9j
YiwNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGlu
dA0KIG5ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LA0KIAkgICAgIGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlk
YXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCitzdGF0aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0
cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQorCSAg
ICAgdW1vZGVfdCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxz
ZQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpk
aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1v
ZGUsIGJvb2wgZXhjbCkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBm
cyAqbm5wZnNwOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAt
OTAzLDkgKzEwMjUsMTcgQEAgbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAq
ZGlyLCBzdHJ1Y3QgZA0KICAgICBYQV9DTEVBUigmbXNnLmF0dHIpOw0KICAg
ICBYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1vZGUpOw0KICAgICBYQV9TRVRf
VFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfUkVHKTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAg
WEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZzZ2lkKTsNCisjZWxz
ZQ0KKyAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dpZCgp
KTsNCisjZW5kaWYNCiAgICAgbXNnLm1vZGUgPSAwOwkJLyogWFhYICovDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxz
ZQ0KKyAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp
Zg0KICAgICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAg
IGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRl
ciwgc2l6ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05
NDYsNyArMTA3NiwxMSBAQCBubnBmc191bmxpbmsgKHN0cnVjdCBpbm9kZSAq
IGRpciwgc3RydWN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1lLCBkZW50
cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19N
QVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQog
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAg
ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAg
ICBtc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9y
ID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6
ZW9mKG1zZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC05OTEsNyAr
MTEyNSwxMSBAQCBubnBmc19yZW5hbWUgKHN0cnVjdCBpbm9kZSAqIG9sZF9k
aXIsIHN0DQogICAgIGlmIChzdHJsY3B5KG1zZy5uZXdfbmFtZSwgbmV3X2Rl
bnRyeS0+ZF9uYW1lLm5hbWUsIHNpemVvZihtc2cubmV3X25hbWUpKSA+PSBO
TlBGU19NQVhfTkFNRSkNCiAJcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogCQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs
c2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k
aWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAg
ICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk
ZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAt
MTAwOCw4ICsxMTQ2LDEzIEBAIG5ucGZzX3JlbmFtZSAoc3RydWN0IGlub2Rl
ICogb2xkX2Rpciwgc3QNCiAgICAgcmV0dXJuIGVycm9yOw0KIH0NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywzLDAp
DQogc3RhdGljIGludA0KIG5ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRp
ciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0K
K3N0YXRpYyBpbnQNCitubnBmc19ta2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIs
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRp
Zg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVj
dCBubnBmc19ub2RlICp4bjsNCkBAIC0xMDQwLDkgKzExODMsMTcgQEAgbm5w
ZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KIAlYQV9D
TEVBUigmbXNnLmF0dHIpOw0KIAlYQV9TRVRfTU9ERSgmbXNnLmF0dHIsIG1v
ZGUpOw0KIAlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5OUEZTX0ZJTEVfRElS
KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCiAJWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJlbnQtPmZz
Z2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNnLmF0dHIs
IGN1cnJlbnRfZnNnaWQoKSk7DQorI2VuZGlmDQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5j
cmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNn
LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNy
ZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21l
c3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsN
CiAJaWYgKGVycm9yID09IDApDQpAQCAtMTA4Myw3ICsxMjM0LDExIEBAIG5u
cGZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGQNCiAgICAg
bXNnLnBhcmVudF9oYW5kbGUgPSB4bi0+aGFuZGxlOw0KICAgICBpZiAoc3Ry
bGNweShtc2cubmFtZSwgZGVudHJ5LT5kX25hbWUubmFtZSwgc2l6ZW9mKG1z
Zy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQogCSAgICByZXR1cm4gLUVO
QU1FVE9PTE9ORzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQudWlkID0gY3VycmVu
dC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf
dWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBhZyA9IG5ucGZzX2dl
dF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBm
c3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQogICAgIGlmIChlcnJv
ciA9PSAwKQ0KQEAgLTExMjgsNyArMTI4MywxMSBAQCBzdGF0aWMgaW50IG5u
cGZzX2xpbmsoc3RydWN0IGRlbnRyeSAqb2xkDQogCWlmIChzdHJsY3B5KG1z
Zy5uYW1lLCBuYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBOTlBGU19NQVhf
TkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0K
IAltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg
ICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQog
CW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJZXJyb3IgPSBu
bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2Yo
bXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KQEAgLTExNTcsMjkgKzEzMTYs
NDcgQEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAq
ZA0KICAgICB4biA9IFZOT0RFX1RPX1hOT0RFKGRpcik7DQogDQogICAgIHsN
Ci0Jc3RydWN0IG5ucGZzX21lc3NhZ2Vfc3ltbGluayBtc2c7DQorCXN0cnVj
dCBubnBmc19tZXNzYWdlX3N5bWxpbmsgKm1zZyA9IE5VTEw7DQogDQotCW1z
Zy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZTUxJTks7DQotCW1zZy5w
YXJlbnRfaGFuZGxlID0geG4tPmhhbmRsZTsNCi0JaWYgKHN0cmxjcHkobXNn
Lm5hbWUsIG5hbWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9O
QU1FKQ0KLQkgICAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQotCWlmIChzdHJs
Y3B5KG1zZy5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1zZy5jb250ZW50
cykpID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpDQotCSAgICByZXR1
cm4gLUVOQU1FVE9PTE9ORzsNCi0JWEFfQ0xFQVIoJm1zZy5hdHRyKTsNCi0J
WEFfU0VUX01PREUoJm1zZy5hdHRyLCAwNzc3KTsNCi0JWEFfU0VUX1RZUEUo
Jm1zZy5hdHRyLCBOTlBGU19GSUxFX0xOSyk7DQotCVhBX1NFVF9HSUQoJm1z
Zy5hdHRyLCBjdXJyZW50LT5mc2dpZCk7DQorCW1zZyA9IGttYWxsb2Moc2l6
ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiANCi0JbXNnLmNyZWQudWlkID0g
Y3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19nZXRfcGFn
KCk7DQotCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNn
LmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KKwlpZiAobXNnID09IE5VTEwpDQor
CSAgcmV0dXJuIC1FTk9NRU07DQorDQorCW1zZy0+aGVhZGVyLm9wY29kZSA9
IE5OUEZTX01TR19TWU1MSU5LOw0KKwltc2ctPnBhcmVudF9oYW5kbGUgPSB4
bi0+aGFuZGxlOw0KKwlpZiAoc3RybGNweShtc2ctPm5hbWUsIG5hbWUsIHNp
emVvZihtc2ctPm5hbWUpKSA+PSBOTlBGU19NQVhfTkFNRSkgew0KKwkgIGtm
cmVlKG1zZyk7DQorCSAgcmV0dXJuIC1FTkFNRVRPT0xPTkc7DQorCX0NCisJ
aWYgKHN0cmxjcHkobXNnLT5jb250ZW50cywgc3ltbmFtZSwgc2l6ZW9mKG1z
Zy0+Y29udGVudHMpKSA+PSBOTlBGU19NQVhfU1lNTElOS19DT05URU5UKSB7
DQorCSAga2ZyZWUobXNnKTsNCisJICByZXR1cm4gLUVOQU1FVE9PTE9ORzsN
CisJfQ0KKwlYQV9DTEVBUigmbXNnLT5hdHRyKTsNCisJWEFfU0VUX01PREUo
Jm1zZy0+YXR0ciwgMDc3Nyk7DQorCVhBX1NFVF9UWVBFKCZtc2ctPmF0dHIs
IE5OUEZTX0ZJTEVfTE5LKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9
IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCisJWEFfU0VUX0dJRCgmbXNnLT5h
dHRyLCBjdXJyZW50LT5mc2dpZCk7DQorI2Vsc2UNCisgICAgICAgIFhBX1NF
VF9HSUQoJm1zZy0+YXR0ciwgY3VycmVudF9mc2dpZCgpKTsNCisjZW5kaWYN
CisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCisJbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisj
ZWxzZQ0KKyAgICAgICAgbXNnLT5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7
DQorI2VuZGlmDQorCW1zZy0+Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7
DQorCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLT5o
ZWFkZXIsIHNpemVvZigqbXNnKSk7DQogCWlmIChlcnJvciA9PSAwKQ0KLQkg
ICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKCZtc2cpOw0KKwkg
ICAgZXJyb3IgPSBOTlBGU19NU0dfV0FLRVVQX0VSUk9SKG1zZyk7DQogDQog
CS8qIFhYWCBzaG91bGQgdGhpcyByZWFsbHkgYmUgaGVyZSAqLw0KIAlpZiAo
REVOVFJZX1RPX1hERU5UUlkoZGVudHJ5KS0+eGRfZmxhZ3MgPT0gMCkgew0K
IAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBubnBmc19z
eW1saW5rOiBkZW50cnkgbm90IHZhbGlkXG4iKTsNCiAJfQ0KKwlrZnJlZSht
c2cpOw0KICAgICB9DQogDQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xMTg4
LDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGluayhzdHJ1
Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4NCiAgKi8N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
MSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxl
ICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQor
I2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1Y3QgZmls
ZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNlbmRpZg0K
IHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0LCBiZWdp
bl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2RlOw0KICAg
ICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9k
ZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjE3LDYgKzE0MDMsNyBAQCBu
bnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAqDQogDQog
ICAgIGNhY2hlX2lub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxMSwwKQ0KICAgICB3aGlsZSAoZmlsZS0+Zl9wb3MgPCBpX3NpemVfcmVh
ZChjYWNoZV9pbm9kZSkpIHsNCiAJTk5QRlNERUIoWERFQlJFQURESVIsDQog
CSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVkIGlfc2l6
ZTogJWRcbiIsDQpAQCAtMTIyOSw2ICsxNDE2LDIwIEBAIG5ucGZzX3JlYWRk
aXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJbWFwcGluZyA9IGJh
Y2tmaWxlLT5mX21hcHBpbmc7DQogCWlucGFnZSA9IGZpbGUtPmZfcG9zICYg
KFBBR0VfQ0FDSEVfU0laRS0xKTsNCiAJcGFnZV9udW0gPSBmaWxlLT5mX3Bv
cyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKyNlbHNlDQorICAgIHdoaWxlIChj
dHgtPnBvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lub2RlKSkgew0KKwlOTlBG
U0RFQihYREVCUkVBRERJUiwNCisJICAgICAgICgibm5wZnNfcmVhZGRpciBm
aWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwNCisJCShpbnQpIGN0eC0+
cG9zLCAoaW50KSBjYWNoZV9pbm9kZS0+aV9zaXplKSk7DQorCWJlZ2luX29m
ZnNldCA9IGN0eC0+cG9zICZ+IChOTlBGU19ESVJFTlRfQkxPQ0tTSVpFIC0g
MSk7DQorCW9mZnNldCA9IGN0eC0+cG9zICYgKE5OUEZTX0RJUkVOVF9CTE9D
S1NJWkUgLSAxKTsNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQ7DQorCU5O
UEZTREVCKFhERUJSRUFERElSLCAoIm5ucGZzX3JlYWRkaXIgYmVnaW5fb2Zm
c2V0OiAlZCBvZmZzZXQ6ICVkXG4iLA0KKwkJCSAgICAgKGludCliZWdpbl9v
ZmZzZXQsIChpbnQpb2Zmc2V0KSk7DQorCW1hcHBpbmcgPSBiYWNrZmlsZS0+
Zl9tYXBwaW5nOw0KKwlpbnBhZ2UgPSBjdHgtPnBvcyAmIChQQUdFX0NBQ0hF
X1NJWkUtMSk7DQorCXBhZ2VfbnVtID0gY3R4LT5wb3MgPj4gUEFHRV9DQUNI
RV9TSElGVDsNCisjZW5kaWYNCiANCiAJTk5QRlNERUIoWERFQlJFQURESVIs
DQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgaW5wYWdlOiAlZCBwYWdlX251
bTogJWx1XG4iLA0KQEAgLTEyNjQsNiArMTQ2NSw3IEBAIG5ucGZzX3JlYWRk
aXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAoaW50KSB4
ZGlyZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0K2JlZ2lu
X29mZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQtPmRfZmls
ZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRpciAoZGly
ZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0xMjc1LDEy
ICsxNDc3LDI4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxl
LCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4i
LCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0NCisjZWxz
ZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJCSYmIChm
aWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAgICB4ZGly
ZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1sZW4sDQor
CQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAgRFRfVU5L
Tk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIsDQorCQkJ
ICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRpcl9lcnJv
cikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAgICBvZmZz
ZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAoeGRpcmVu
dC0+ZF9yZWNsZW4gPT0gMCkgew0KIAkJcHJpbnRrKEtFUk5fRU1FUkcgIk5O
UEZTIFBhbmljOiAiDQogCQkgICAgICAgImVtcHR5IGRpcmVudCBhdCAlbGxk
IGluIG5ucGZzX3JlYWRkaXIsIHBvcyAlZCBzaXplICVkXG4iLA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQog
CQkgICAgICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpZmlsZS0+Zl9wb3Ms
DQorI2Vsc2UNCisJCSAgICAgICAobG9uZyBsb25nKW9mZnNldCwgKGludClj
dHgtPnBvcywNCisjZW5kaWYNCiAJCSAgICAgICAoaW50KWNhY2hlX2lub2Rl
LT5pX3NpemUpOw0KIAkJTk5QRlNERUIoWERFQlZOT1BTLCAoImlub2RlOiAl
cCBhbGlhc2VzOiIsIGlub2RlKSk7DQogCQlubnBmc19wcmludF9hbGlhc2Vz
KGlub2RlKTsNCkBAIC0xMjk4LDcgKzE1MTYsMTEgQEAgbm5wZnNfcmVhZGRp
cihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAlpZiAob2Zmc2V0ID4g
Tk5QRlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIG9mZnNldCA9IE5OUEZT
X0RJUkVOVF9CTE9DS1NJWkU7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJZmlsZS0+Zl9wb3MgPSBi
ZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2Vsc2UNCisJY3R4LT5wb3MgPSBi
ZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2VuZGlmDQogDQogCWlmIChlcnJv
ciB8fCBvZmZzZXQgPCBOTlBGU19ESVJFTlRfQkxPQ0tTSVpFKQ0KIAkgICAg
YnJlYWs7DQpAQCAtMTMzMSw5ICsxNTUzLDE1IEBAIG5ucGZzX3JlYWRsaW5r
IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGMNCiAgKiBXZSBkb24ndCBob2xk
IGlfbXV0ZXguDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDQsMiwwKQ0KIHN0YXRpYyB2b2lkICoNCiBubnBm
c19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkJIHN0
cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGNvbnN0IGNo
YXIgKg0KK25ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50
cnksDQorCQkgdm9pZCAqKnBhZ2UpDQorI2VuZGlmDQogew0KICAgICBpbnQg
ZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZ
X1RPX0lOT0RFKGRlbnRyeSk7DQpAQCAtMTM0NCw3ICsxNTcyLDExIEBAIG5u
cGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAg
aWYgKGVycm9yKQ0KICAgICAgICByZXR1cm4gRVJSX1BUUihlcnJvcik7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQs
MiwwKQ0KICAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19saWdodChkZW50
cnksIG5kKTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlu
a19saWdodChkZW50cnksIHBhZ2UpOw0KKyNlbmRpZg0KIH0NCiANCiAvKg0K
QEAgLTEzOTgsNyArMTYzMCwxMSBAQCBubnBmc19zZXRhdHRyIChzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnksIHN0DQogICAgICAgICBzdHJ1Y3Qgbm5wZnNfbWVz
c2FnZV9wdXRhdHRyIG1zZzsNCiANCiAgICAgICAgIG1zZy5oZWFkZXIub3Bj
b2RlID0gTk5QRlNfTVNHX1BVVEFUVFI7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVp
ZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQu
dWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFn
ID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAgICAgbXNnLmhhbmRsZSA9IHhu
LT5oYW5kbGU7DQogICAgICAgICBubnBmc19pYXR0cjJhdHRyKHhuLCBhdHRy
LCAmbXNnLmF0dHIpOw0KQEAgLTE0MjIsNiArMTY1OCw4IEBAIG5ucGZzX3Jl
bGVhc2VfZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuOw0KICAgICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAg
ICAodm9pZClubnBmc3A7DQorDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywg
KCJubnBmc19yZWxlYXNlX2ZpbGVcbiIpKTsNCiANCiAgICAgZXJyb3IgPSBu
bnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQpAQCAtMTQ1MCwxOCArMTY4OCwx
OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs
DQogICoNCiAgKi8NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtF
Uk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZmx1
c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyX3QgaWQpDQotI2Vsc2UN
Ci1zdGF0aWMgaW50DQotbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUp
DQotI2VuZGlmDQogew0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5w
ZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmlsZSAmJiBmaWxl
LT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSkNCiAJcmV0
dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k
ZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYgZmlsZS0+Zl9w
YXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKQ0K
KwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZfcGF0aC5kZW50
cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBlbHNlDQogCXJl
dHVybiAwOw0KIH0NCkBAIC0xNDcwLDEwICsxNzA4LDI0IEBAIG5ucGZzX2Zs
dXNoKHN0cnVjdCBmaWxlICpmaWxlKQ0KICAqIFJldHVybiAxIGlmIGBkZW50
cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4NCiAgKi8NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQorc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQog
c3RhdGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5
ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSANCitubnBmc19kX3Jl
dmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQg
ZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl
ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisgICAgaWYg
KGZsYWdzICYgTE9PS1VQX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNISUxE
Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMzgpDQorICAgIGlmIChuZCAmJiBuZC0+ZmxhZ3MgJiBMT09LVVBf
UkNVKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VuZGlmDQorDQog
ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19kX3JldmFsaWRhdGUg
JXAgXCIlLipzXCIgKGlub2RlICVwKVxuIiwNCiAJCSAgICAgICBkZW50cnks
DQogCQkgICAgICAgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQpAQCAtMTUx
OSw5ICsxNzcxLDE1IEBAIG5ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnkNCiAgICAgcmV0dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogc3Rh
dGljDQogaW50DQogbm5wZnNfZF9kZWxldGUoc3RydWN0IGRlbnRyeSAqZGVu
dHJ5KQ0KKyNlbHNlDQorc3RhdGljDQoraW50DQorbm5wZnNfZF9kZWxldGUo
Y29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAg
ICAgc3RydWN0IGlub2RlICppbm9kZTsNCiAgICAgc3RydWN0IG5ucGZzX25v
ZGUgKnhuOw0KQEAgLTE1NDYsMTEgKzE4MDQsMTYgQEAgbm5wZnNfZF9kZWxl
dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIH0NCiANCiBzdGF0aWMgc3Np
emVfdA0KLW5ucGZzX3NlbmRmaWxlKHN0cnVjdCBmaWxlICpmaWxlLCBsb2Zm
X3QgKnBwb3MsIHNpemVfdCBjb3VudCwNCi0JICAgICAgIHJlYWRfYWN0b3Jf
dCBhY3Rvciwgdm9pZCAqdGFyZ2V0KQ0KK25ucGZzX3NwbGljZV9yZWFkKHN0
cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgKnBwb3MsDQorCQkgIHN0cnVjdCBw
aXBlX2lub2RlX2luZm8gKnBpcGUsIHNpemVfdCBjb3VudCwNCisJCSAgdW5z
aWduZWQgaW50IGZsYWdzKQ0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnkt
PmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAg
IHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2Rl
KTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KQEAgLTE1NjEsOCAr
MTgyNCw3IEBAIG5ucGZzX3NlbmRmaWxlKHN0cnVjdCBmaWxlICpmaWxlLCBs
b2ZmX3QNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3NlbmRmaWxl
OiBkYXRhIG5vdCB2YWxpZCAlZFxuIiwgZXJyb3IpKTsNCiAJcmV0dXJuIGVy
cm9yOw0KICAgICB9DQotDQotICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3Nl
bmRmaWxlKGZpbGUsIHBwb3MsIGNvdW50LCBhY3RvciwgdGFyZ2V0KTsNCisg
ICAgZXJyb3IgPSBmaWxlLT5mX29wLT5zcGxpY2VfcmVhZChmaWxlLCBwcG9z
LCBwaXBlLCBjb3VudCwgZmxhZ3MpOw0KIA0KICAgICBOTlBGU0RFQihYREVC
Vk5PUFMsICgibm5wZnNfc2VuZGZpbGU6IGVycm9yID0gJWRcbiIsIGVycm9y
KSk7DQogICAgIHJldHVybiBlcnJvcjsNCkBAIC0xNjM5LDQwICsxOTAxLDQx
IEBAIG5ucGZzX3dyaXRlX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLCAN
CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBiYWNrZmlsZS0+
Zl9tYXBwaW5nOw0KIAl1bnNpZ25lZCBsZW4gPSBQQUdFX0NBQ0hFX1NJWkU7
DQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCisJdm9pZCAqZnNkYXRhOw0K
IAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCiAJaW50IGVycm9yOw0KIAkN
Ci0JZG8gew0KLQkJYmFja3BhZ2UgPSBncmFiX2NhY2hlX3BhZ2UobWFwcGlu
Zywgbm5wZnNfZ2V0X2JhY2tpbmRleChwYWdlKSk7DQotCQlpZiAoIWJhY2tw
YWdlKSB7DQotCQkJcHJpbnRrKCJubnBmc193cml0ZV9iYWNrcGFnZTogbm8g
cGFnZVxuIik7DQotCQkJcmV0dXJuIC1FSU87DQotCQl9DQorCSh2b2lkKW9m
ZnNldDsNCiANCi0JCWVycm9yID0gbWFwcGluZy0+YV9vcHMtPnByZXBhcmVf
d3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJCSAgICAgIDAsIGxl
bik7DQorCWRvIHsNCisJCWVycm9yID0gcGFnZWNhY2hlX3dyaXRlX2JlZ2lu
KGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJCQkgICAgICBBT1Bf
RkxBR19VTklOVEVSUlVQVElCTEUsDQorCQkJCQkgICAgICAmYmFja3BhZ2Us
ICZmc2RhdGEpOw0KIAkJaWYgKCFlcnJvcikgew0KIAkJCWNvcHlfaGlnaHBh
Z2UoYmFja3BhZ2UsIHBhZ2UpOw0KIAkJCWZsdXNoX2RjYWNoZV9wYWdlKGJh
Y2twYWdlKTsNCi0JCQllcnJvciA9IG1hcHBpbmctPmFfb3BzLT5jb21taXRf
d3JpdGUoYmFja2ZpbGUsIGJhY2twYWdlLA0KLQkJCQkJCQkgICAgIDAsIGxl
bik7DQorCQkJZXJyb3IgPSBwYWdlY2FjaGVfd3JpdGVfZW5kKGJhY2tmaWxl
LCBtYXBwaW5nLCAwLCBsZW4sDQorCQkJCQlsZW4sIGJhY2twYWdlLCBmc2Rh
dGEpOw0KKwkJCWlmIChlcnJvciA+IDApDQorCQkJCWVycm9yID0gMDsNCiAJ
CX0NCiAJCWlmIChlcnJvciA9PSBBT1BfVFJVTkNBVEVEX1BBR0UpIHsNCi0J
CQlwYWdlX2NhY2hlX3JlbGVhc2UoYmFja3BhZ2UpOw0KIAkJCWNvbnRpbnVl
Ow0KIAkJfQ0KIAl9IHdoaWxlICgwKTsNCiANCiAJb2Zmc2V0ID0gcGFnZV9v
ZmZzZXQoYmFja3BhZ2UpOw0KLQl1bmxvY2tfcGFnZShiYWNrcGFnZSk7DQot
CXBhZ2VfY2FjaGVfcmVsZWFzZShiYWNrcGFnZSk7DQogDQogCWlmIChlcnJv
cikNCiAJCXByaW50aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IEVJT1xuIik7
DQogI2lmZGVmIE5OUEZTX1NBRkVfU1lOQw0KIAllbHNlDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMikNCiAJCSh2
b2lkKXN5bmNfcGFnZV9yYW5nZShtYXBwaW5nLT5ob3N0LCBtYXBwaW5nLCBv
ZmZzZXQsIGxlbik7DQorI2Vsc2UNCisJCSh2b2lkKWZpbGVtYXBfd3JpdGVf
YW5kX3dhaXRfcmFuZ2UobWFwcGluZywgb2Zmc2V0LCBvZmZzZXQgKyBsZW4g
LSAxKTsNCisjZW5kaWYNCiAjZW5kaWYNCiAJDQogCXJldHVybiBlcnJvcjsN
CkBAIC0xNjg5LDEzICsxOTUyLDkgQEAgbm5wZnNfcmVhZF9iYWNrcGFnZShz
dHJ1Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7
DQogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KLSNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4KQ0KKwkodm9pZClv
ZmZzZXQ7DQorDQogCWJhY2twYWdlID0gcmVhZF9tYXBwaW5nX3BhZ2UobWFw
cGluZywgbiwgYmFja2ZpbGUpOw0KLSNlbHNlDQotCWJhY2twYWdlID0gcmVh
ZF9jYWNoZV9wYWdlKG1hcHBpbmcsIG4sDQotCQkJCSAgIChmaWxsZXJfdCAq
KW1hcHBpbmctPmFfb3BzLT5yZWFkcGFnZSwNCi0JCQkJICAgYmFja2ZpbGUp
Ow0KLSNlbmRpZg0KIAlpZiAoIUlTX0VSUihiYWNrcGFnZSkpIHsNCiAJCXdh
aXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0KIA0KQEAgLTE4NDIsMTEg
KzIxMDEsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAq
ZmlsZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2Rl
KSkgew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9yID0gdm10cnVuY2F0
ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVycm9yID0gaW5vZGVf
bmV3c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlpZighZXJyb3IpDQor
CQkJdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlm
DQogCQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5ucGZzX3ByZXBhcmVf
d3JpdGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0KIAkJCSAgICAgICBt
b2RzaXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBYWFggbm90IGNvcnJl
Y3QgKi8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3QgY29ycmVjdCAqLw0K
IAkJfQ0KIAl9DQogDQpAQCAtMTg3Miw0NCArMjEzNywxMTggQEAgbm5wZnNf
cHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4g
cmV0Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5F
TF9WRVJTSU9OKDIsNiwyOCkNCiBzdGF0aWMgaW50DQotbm5wZnNfY29tbWl0
X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwg
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pDQorbm5wZnNfd3JpdGVfYmVn
aW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt
YXBwaW5nLCBsb2ZmX3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5zaWduZWQg
ZmxhZ3MsIHN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpDQog
ew0KLSAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gcGFnZS0+bWFwcGluZy0+
aG9zdDsNCi0gICAgbG9mZl90IHBvcyA9ICgobG9mZl90KXBhZ2UtPmluZGV4
IDw8IFBBR0VfQ0FDSEVfU0hJRlQpICsgdG87DQorCXN0cnVjdCBwYWdlICpw
YWdlOw0KKwlwZ29mZl90IGluZGV4Ow0KKwl1bnNpZ25lZCBmcm9tOw0KKwlp
bnQgcmV0ID0gMDsNCiANCi0gICAgaWYgKHBvcyA+IGlub2RlLT5pX3NpemUp
IHsNCi0JaV9zaXplX3dyaXRlKGlub2RlLCBwb3MpOw0KKwlpbmRleCA9IHBv
cyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKwlmcm9tID0gcG9zICYgKFBBR0Vf
Q0FDSEVfU0laRSAtIDEpOw0KIA0KLQlzcGluX2xvY2soJmlub2RlLT5pX2xv
Y2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9CTE9DS1NfVU5J
VCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQotCXNwaW5fdW5sb2NrKCZpbm9k
ZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBzZXRfcGFnZV9kaXJ0eShwYWdl
KTsNCisJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0ZV9iZWdpbihtYXBw
aW5nLCBpbmRleCwgZmxhZ3MpOw0KKwlpZiAoIXBhZ2UpDQorCQlyZXR1cm4g
LUVOT01FTTsNCisNCisJKnBhZ2VwID0gcGFnZTsNCisNCisJcmV0ID0gbm5w
ZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgbGVu
KTsNCisJaWYgKHJldCkgew0KKwkJdW5sb2NrX3BhZ2UocGFnZSk7DQorCQlw
YWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQorCX0NCisNCisJcmV0dXJuIHJl
dDsNCit9DQorI2VuZGlmDQogDQorLyogWFhYIHdlIHVzZSB0aGUgc3lzdGVt
IHByb3ZpZGVkIHNpbXBsZV9jb21taXRfd3JpdGUgaW5zdGVhZCBzbyB0aGlz
IGZ1bmN0aW9uIGlzIHVudXNlZCBmb3Igbm93ICovDQogI2lmIDANCi0gICAg
ew0KLQljaGFyICphZGRyOw0KLQlrbWFwKHBhZ2UpOw0KLQlhZGRyID0gcGFn
ZV9hZGRyZXNzKHBhZ2UpOw0KLQlOTlBGU0RFQihYREVCVk5PUFMsICgibm5w
ZnNfY29tbWl0X3dyaXRlKCVwKTogJXgleCV4JXhcbiIsDQorc3RhdGljIGlu
dA0KK25ucGZzX2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry
dWN0IHBhZ2UgKnBhZ2UsDQorCQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCB0bykNCit7DQorCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBw
aW5nLT5ob3N0Ow0KKwlsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5k
ZXggPDwgUEFHRV9DQUNIRV9TSElGVCkgKyB0bzsNCisNCisJaWYgKCFQYWdl
VXB0b2RhdGUocGFnZSkpDQorCQlTZXRQYWdlVXB0b2RhdGUocGFnZSk7DQor
DQorCWlmIChwb3MgPiBpbm9kZS0+aV9zaXplKSB7DQorCQlpX3NpemVfd3Jp
dGUoaW5vZGUsIHBvcyk7DQorDQorCQlzcGluX2xvY2soJmlub2RlLT5pX2xv
Y2spOw0KKwkJaW5vZGUtPmlfYmxvY2tzID0gKHBvcyArIElfQkxPQ0tTX1VO
SVQgLSAxKSA+PiBJX0JMT0NLU19CSVRTOw0KKwkJc3Bpbl91bmxvY2soJmlu
b2RlLT5pX2xvY2spOw0KKwl9DQorCXNldF9wYWdlX2RpcnR5KHBhZ2UpOw0K
Kw0KKyNpZiAwDQorCXsNCisJICAgIGNoYXIgKmFkZHI7DQorCSAgICBrbWFw
KHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsNCisJ
ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRfd3JpdGUo
JXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZpbGUtPmZfbWFwcGluZy0+
aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRyWzFdLCBhZGRyWzJdLCBh
ZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0gICAgfQ0KKwkgICAga3Vu
bWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAgIA0KLSAgICByZXR1cm4g
MDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5kaWYNCiANCi0jaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCi1j
b25zdA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KKy8qIFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRl
ZCBzaW1wbGVfd3JpdGVfZW5kIGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBp
cyB1bnVzZWQgZm9yIG5vdyAqLw0KKyNpZiAwDQorc3RhdGljIGludA0KK25u
cGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJl
c3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQorCQl1bnNpZ25lZCBs
ZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQg
KmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBwb3MgJiAoUEFHRV9D
QUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhlIHN0YWxlIHBhcnQg
b2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0KKwlpZiAo
Y29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0
b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQgKmthZGRy
ID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQorCQltZW1zZXQoa2Fk
ZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0KKwkJZmx1
c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3VubWFwX2F0b21pYyhr
YWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRvbWljKGth
ZGRyKTsNCiAjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21taXRfd3JpdGUo
ZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQorDQorCXVubG9j
a19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7DQor
DQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKyNlbmRpZg0KKyNlbmRpZg0KKw0K
K2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBm
c19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwNCiAJ
LndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJlcGFy
ZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQotCS5jb21taXRfd3Jp
dGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorCS5jb21taXRfd3JpdGUgPSBz
aW1wbGVfY29tbWl0X3dyaXRlLA0KKyNlbHNlDQorCS53cml0ZV9iZWdpbiA9
IG5ucGZzX3dyaXRlX2JlZ2luLA0KKwkud3JpdGVfZW5kID0gc2ltcGxlX3dy
aXRlX2VuZCwNCisjZW5kaWYNCiB9Ow0KIA0KIC8qDQpAQCAtMTkxNywyMSAr
MjI1NiwzMCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIG5u
cGZzX2FvDQogICovDQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBm
c19maWxlX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgLmFpb19yZWFkCT0g
bm5wZnNfYWlvX3JlYWQsDQogICAgIC5haW9fd3JpdGUJPSBubnBmc19haW9f
d3JpdGUsDQorI2Vsc2UNCisgICAgLnJlYWRfaXRlcgk9IG5ucGZzX3JlYWRf
aXRlciwNCisgICAgLndyaXRlX2l0ZXIJPSBubnBmc193cml0ZV9pdGVyLA0K
KyNlbmRpZg0KICAgICAubW1hcAk9IG5ucGZzX2ZpbGVfbW1hcCwNCiAgICAg
Lm9wZW4JPSBubnBmc19vcGVuLA0KICAgICAuZmx1c2gJPSBubnBmc19mbHVz
aCwNCiAgICAgLnJlbGVhc2UJPSBubnBmc19yZWxlYXNlX2ZpbGUsDQogICAg
IC5mc3luYwk9IG5ucGZzX2ZzeW5jLA0KLSAgICAuc2VuZGZpbGUJPSBubnBm
c19zZW5kZmlsZSwNCisgICAgLnNwbGljZV9yZWFkID0gbm5wZnNfc3BsaWNl
X3JlYWQsDQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZz
X2RlYWRfb3BlcmF0aW9ucyA9IHsNCiB9Ow0KIA0KIHN0cnVjdCBmaWxlX29w
ZXJhdGlvbnMgbm5wZnNfZGlyX29wZXJhdGlvbnMgPSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAgICAg
LnJlYWRkaXIJPSBubnBmc19yZWFkZGlyLA0KKyNlbHNlDQorICAgIC5pdGVy
YXRlICAgID0gbm5wZnNfaXRlcmF0ZSwNCisjZW5kaWYNCiAgICAgLmZsdXNo
CT0gbm5wZnNfZmx1c2gsDQogfTsNCiANCmRpZmYgLXVwck4gLVhub2RpZmYg
YXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMgYXJsYS0w
LjkwL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5jCTIwMDYtMTAtMzEgMTE6MDI6
NDEuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAyLjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3QgZmlsZV9v
cGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAgICAgICAg
ICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6ICAgICAgICAgbm5w
ZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50OiAgICAgICAgICBu
bnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2lsbF9zYjogICAgICAg
IGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25lcjogICAgICAgICAg
VEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0w
LjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS0wLjkw
L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtMC45MC1v
bGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jCTIwMDctMDEtMDkgMTc6
MzM6MzEuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xp
bnV4L25ucGZzX21lc3NhZ2UuYwkyMDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTQ1LDcgKzQ1LDcgQEANCiAjaW5jbHVkZSA8bGlu
dXgvbW91bnQuaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBu
bnBmc19tZXNzYWdlLmMsdiAxLjE0My4yLjEgMjAwNy8wMS8wOSAxNjozMzoz
MSB0b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19tZXNzYWdlLmMs
diAxLjE0NSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNl
bmRpZg0KIA0KIHN0YXRpYyB2b2lkDQpAQCAtNTUsOSArNTUsMTUgQEAgc3Rh
dGljIHZvaWQNCiBubnBmc19kX3JlbW92ZShzdHJ1Y3QgZGVudHJ5ICpkZW50
cnkpDQogew0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX2RfcmVt
b3ZlICVwXG4iLCBkZW50cnkpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRj
YWNoZV9sb2NrKTsNCiAgICAgZGdldF9sb2NrZWQoZGVudHJ5KTsNCiAgICAg
c3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBzcGlu
X2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisgICAgZGdldF9kbG9jayhkZW50
cnkpOw0KKyAgICBzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOw0KKyNl
bmRpZg0KICAgICBkX2Ryb3AoZGVudHJ5KTsNCiAgICAgZHB1dChkZW50cnkp
Ow0KIH0NCkBAIC0xMjEsNyArMTI3LDExIEBAIG5ucGZzX21lc3NhZ2VfaW5z
dGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgc3RydWN0IGlub2RlICpk
aSwgKmlub2RlOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQgPSBOVUxM
Ow0KICAgICBzdHJ1Y3QgcXN0ciBzcXN0cjsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBs
aXN0X2hlYWQgKmFsaWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9k
ZSAqYWxpYXM7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVC
TVNHLCAoIm5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGVcbiIpKTsNCiAgICAg
DQpAQCAtMTc2LDEyICsxODYsMjYgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxs
bm9kZShzdHJ1Y3Qgbm5wZnMgKg0KICAgICAgKg0KICAgICAgKi8NCiAgICAg
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KICAgICBhbGlhcyA9IGRpLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3
aGlsZSAoYWxpYXMgIT0gJmRpLT5pX2RlbnRyeSkgew0KIAlwYXJlbnQgPSBs
aXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCi0J
c3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQotCWRnZXRfbG9ja2VkKHBhcmVu
dCk7DQotCXNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg
IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgYWxpYXMsICZkaS0+aV9k
ZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNo
X2VudHJ5KHBhcmVudCwgJmRpLT5pX2RlbnRyeSwgZF9hbGlhcykgew0KKyNl
bHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcmVudCwgJmRpLT5p
X2RlbnRyeSwgZF91LmRfYWxpYXMpIHsNCisjZW5kaWYNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBz
cGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisgICAgZGdldF9sb2NrZWQocGFy
ZW50KTsNCisgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz
ZQ0KKyAgICBzcGluX2xvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisgICAgZGdl
dF9kbG9jayhwYXJlbnQpOw0KKyAgICBzcGluX3VubG9jaygmcGFyZW50LT5k
X2xvY2spOw0KKyNlbmRpZg0KIAlkZW50cnkgPSBkX2xvb2t1cChwYXJlbnQs
ICZzcXN0cik7DQogCU5OUEZTREVCKFhERUJNU0csDQogCQkgKCJubnBmc19t
ZXNzYWdlX2luc3RhbGxub2RlOiBhbGlhcyAlcCwgbG9va3VwICVwXG4iLA0K
QEAgLTIzMyw3ICsyNTcsOSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2Rl
KHN0cnVjdCBubnBmcyAqDQogCQ0KIAlkcHV0KGRlbnRyeSk7DQogCWRlbnRy
eSA9IE5VTEw7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRp
Zg0KIAlkcHV0KHBhcmVudCk7DQogICAgIH0NCiAgICAgTk5QRlNERUIoWERF
Qk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlOiBkb25lIGluc3Rh
bGxpbmdcbiIpKTsNCkBAIC0yNjgsNyArMjk0LDEzIEBAIG5ucGZzX21lc3Nh
Z2VfaW5zdGFsbGF0dHIoc3RydWN0IG5ucGZzICoNCiAgICAgfQ0KIA0KICAg
ICBpbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKHQpOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgZGVudHJ5
ID0gbGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkubmV4dCwgc3RydWN0IGRl
bnRyeSwgZF9hbGlhcyk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBkZW50cnkgPSBobGlzdF9l
bnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRf
YWxpYXMpOw0KKyNlbHNlDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlu
b2RlLT5pX2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF91LmRfYWxp
YXMpOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywg
KCJubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyIG5hbWU6JXNcbiIsDQogCQkg
ICAgICAgZGVudHJ5LT5kX25hbWUubmFtZSkpOw0KQEAgLTM5NiwxNyArNDI4
LDM1IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbGRhdGEoc3RydWN0IG5ucGZz
ICoNCiBzdGF0aWMgdm9pZA0KIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0
IGlub2RlICppbm9kZSwgaW50IHBhcmVudCkNCiB7DQorICAgIHN0cnVjdCBk
ZW50cnkgKmRlbnRyeTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVjdCBsaXN0X2hlYWQgKmFs
aWFzOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsOSwwKQ0KKyAgICBzdHJ1Y3QgaGxpc3Rfbm9kZSAqYWxpYXM7DQor
I2VuZGlmDQogDQogIGFnYWluOg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNh
Y2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygmaW5vZGUtPmlf
bG9jayk7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlub2RlLT5pX2Rl
bnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlub2RlLT5pX2Rl
bnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg
IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMsICZpbm9kZS0+
aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGhsaXN0X2Zvcl9l
YWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF9hbGlhcykg
ew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwg
Jmlub2RlLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMpIHsNCisjZW5kaWYNCiAJ
c3RydWN0IGxpc3RfaGVhZCAqc3ViZGlyczsNCiAJc3RydWN0IG5ucGZzX2Rl
bnRyeV9kYXRhICp4ZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlkZW50cnkgPSBsaXN0X2VudHJ5
KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZW5kaWYNCiAJ
aWYgKGRlbnRyeSA9PSBOVUxMKSB7DQogCSAgICBwcmludGsoS0VSTl9FTUVS
RyAiTk5QRlMgUGFuaWM6IGRlbnRyeSBpbiBhbGlhcyBsaXN0IGlzIG51bGxc
biIpOw0KIAkgICAgYnJlYWs7DQpAQCAtNDIyLDcgKzQ3MiwxMSBAQCBjbGVh
cl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsDQogCXN1YmRp
cnMgPSBkZW50cnktPmRfc3ViZGlycy5uZXh0Ow0KIAl3aGlsZSAoc3ViZGly
cyAhPSAmZGVudHJ5LT5kX3N1YmRpcnMpIHsNCiAJICAgIHN0cnVjdCBsaXN0
X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIHN0cnVjdCBkZW50
cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRf
dS5kX2NoaWxkKTsNCisjZWxzZQ0KKwkgICAgc3RydWN0IGRlbnRyeSAqY2hp
bGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwgZF9jaGlsZCk7
DQorI2VuZGlmDQogCSAgICBzdWJkaXJzID0gdG1wLT5uZXh0Ow0KIAkgICAg
Tk5QRlNERUIoWERFQk1TRywgKCJjbGVhcl9hbGxfY2hpbGRyZW4gY2hpbGQ6
ICUuKnMgaW5vZGU6ICVwLyVwICINCiAJCQkgICAgICAgImRjb3VudDogJWQg
YWxpYXNlczpcbiIsDQpAQCAtNDQyLDE0ICs0OTYsMjQgQEAgY2xlYXJfYWxs
X2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0KIAkgICAgLyog
VGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJICAgIGlmIChubnBmc19kY291bnQo
Y2hpbGQpID09IDApIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM4KQ0KIAkgICAgICAgIHNwaW5fdW5sb2NrKCZk
Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisJICAgICAgICBzcGluX3VubG9jaygm
aW5vZGUtPmlfbG9jayk7DQorI2VuZGlmDQogCQlubnBmc19kX3JlbW92ZShj
aGlsZCk7DQogCQlnb3RvIGFnYWluOw0KIAkgICAgfQ0KIAl9DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlh
bGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNlbmRpZg0KICAgICB9DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAg
ICAgc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICBz
cGluX3VubG9jaygmaW5vZGUtPmlfbG9jayk7DQorI2VuZGlmDQogfQ0KIA0K
IHN0YXRpYyB2b2lkDQpAQCAtNjA1LDEyICs2NjksMTAgQEAgZ2NfYmxvY2so
c3RydWN0IG5ucGZzICpubnBmc3AsDQogICAgIH0NCiANCiAgICAgaWYgKCFu
bnBmc19ibG9ja19oYXZlX3AoeG4sIG9mZnNldCkpIHsNCi0jaWYgMCAgIC8q
IGhhcHBlbnMgd2hlbiBkYWVtb24gc2VuZHMgc2V2ZXJhbCBtZXNzYWdlcyBm
b3Igc2FtZSBibG9jayAqLw0KIAlwcmludGsoS0VSTl9FTUVSRyAiTk5QRlMv
Z2NfYmxvY2s6ICINCiAJICAgICAgICJFTk9FTlQgKCVkLCVkLCVkLCVkKSAw
eCVsbHhcbiIsIA0KIAkgICAgICAgeG4tPmhhbmRsZS5hLCB4bi0+aGFuZGxl
LmIsIHhuLT5oYW5kbGUuYywgeG4tPmhhbmRsZS5kLCANCiAJICAgICAgICh1
bnNpZ25lZCBsb25nIGxvbmcpb2Zmc2V0KTsNCi0jZW5kaWYNCiAJcmV0dXJu
IC1FTk9FTlQ7DQogICAgIH0NCiANCkBAIC03MjEsMTIgKzc4MywyMiBAQCBu
bnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpubnBmDQogDQog
ICAgIC8qIHNhbml0eSBjaGVjayBiZWZvcmUgd2UgbG9vayBhdCBpdCAqLw0K
ICAgICBpZiAoc2l6ZSA9PSBzaXplb2YoKm1lc3NhZ2UpICYmIG1lc3NhZ2Ut
PnZlcnNpb24gPT0gTk5QRlNfVkVSU0lPTikgew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBu
YW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisj
ZW5kaWYNCiAJaW50IGVycm9yOw0KIA0KIAl1aW50NjRfdCBibG9ja3NpemUg
PSBtZXNzYWdlLT5ibG9ja3NpemU7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJyb3IgPSBwYXRo
X2xvb2t1cCgiLiIsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9IGtlcm5f
cGF0aCgiLiIsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtl
cm5fcGF0aCgiLiIsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJaWYgKGVycm9y
KSB7DQogCSAgICAvKg0KIAkgICAgICogQmFkIGNhY2hlIHJvb3QsIGp1c3Qg
cmV0dXJuLg0KQEAgLTczNywxMiArODA5LDIzIEBAIG5ucGZzX21lc3NhZ2Vf
dmVyc2lvbihzdHJ1Y3Qgbm5wZnMgKm5ucGYNCiAJCSAgICJubnBmc19tZXNz
YWdlX3ZlcnNpb24gZmFpbGVkIHBhdGhfbG9va3VwLCAiDQogCQkgICAiZXJy
bm86ICVkXG4iLCBlcnJvcik7DQogCX0gZWxzZSB7DQotCSAgICBubnBmc3At
PmNhY2hlcm9vdCA9IG1udGdldChuZC5tbnQpOw0KLQkgICAgbm5wZnNwLT5j
YWNoZWRpciA9IGRnZXQobmQuZGVudHJ5KTsNCi0JICAgIHBhdGhfcmVsZWFz
ZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdl
dChuZC5wYXRoLm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdl
dChuZC5wYXRoLmRlbnRyeSk7DQorCSAgICBwYXRoX3B1dCgmbmQucGF0aCk7
DQorI2Vsc2UNCisJICAgIG5ucGZzcC0+Y2FjaGVyb290ID0gbW50Z2V0KHBh
dGgubW50KTsNCisJICAgIG5ucGZzcC0+Y2FjaGVkaXIgPSBkZ2V0KHBhdGgu
ZGVudHJ5KTsNCisJICAgIHBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiAJ
ICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMjkpDQogCSAgICBubnBmc3AtPnVpZCA9IGN1cnJlbnQtPmZzdWlk
Ow0KIAkgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50LT5mc2dpZDsNCisjZWxz
ZQ0KKyAgICAgICAgICAgIG5ucGZzcC0+dWlkID0gY3VycmVudF9mc3VpZCgp
Ow0KKyAgICAgICAgICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudF9mc2dpZCgp
Ow0KKyNlbmRpZg0KIA0KIAkgICAgLyogWFhYIHdlIHNob3VsZCB2YWxpZGF0
ZSB0aGVzZSB2YWx1ZXMgKi8NCiAJICAgIG5ucGZzX2Jsb2Nrc2l6ZSA9IGJs
b2Nrc2l6ZTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9u
bnBmcy9saW51eC9ubnBmc19ub2RlLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4
L25ucGZzX25vZGUuYw0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgv
bm5wZnNfbm9kZS5jCTIwMDctMDEtMDMgMTQ6NTI6MDIuMDAwMDAwMDAwICsw
MTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwky
MDE2LTAxLTE0IDE2OjUxOjExLjAwMDAwMDAwMCArMDEwMA0KQEAgLTEzMiw3
ICsxMzIsMTIgQEAgbm5wZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1aW50Ng0KIAlwcmludGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcg
QDB4JWxsdVxuIiwNCiAJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6
ZSk7DQogI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsOCwwKQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsg
LyogWFhYIHJldHZhbCAqLw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXpl
X29rKGlub2RlLCBzaXplKSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5v
ZGUsIHNpemUpOw0KKyNlbmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4
biwgc2l6ZSk7DQogICAgIH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBu
bnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0
cnVjdCB0aW1lc3BlYyBub3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21v
ZGUgICA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTQsMCkNCiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5v
ZGUtPmlfZ2lkICAgID0gMDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAg
PSBLVUlEVF9JTklUKDApOw0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9J
TklUKDApOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsN
CisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlp
bm9kZS0+aV9hdGltZSAgPSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9
IG5vdGltZTsNCiAJaW5vZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2
OSw3ICsxODMsMTEgQEAgbm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qg
bm5wZnNfYXR0cg0KICAgICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlp
bm9kZS0+aV9naWQgICAgPSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9W
QUxJRF9OTElOSyhhdHRyKSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0
dHItPnhhX25saW5rOw0KKyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0
ci0+eGFfbmxpbmspOw0KKyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZB
TElEX1NJWkUoYXR0cikpIHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0
ci0+eGFfc2l6ZSk7DQpAQCAtNTEwLDEyICs1MjgsMjQgQEAgbm5wZnNfaGFz
X3BhZyhjb25zdCBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0KIG5ucGZz
X25vZGVfdXNlcnMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkICpwb3M7DQorI2Vsc2UNCisgICAgc3RydWN0
IGhsaXN0X25vZGUgKnBvczsNCisjZW5kaWYNCiAgICAgaW50IHVzZXJzID0g
MDsNCiAgICAgDQogICAgIC8qIFhYWCB0aGlzIHNob3VsZCBwcm9iYWJseSBi
ZSBwcm90ZWN0ZWQgc29tZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgbGlzdF9mb3JfZWFj
aChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAgICBobGlz
dF9mb3JfZWFjaChwb3MsICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZW5kaWYN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBv
cywgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vsc2UNCisJc3RydWN0
IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50
cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAJaWYgKG5ucGZzX2Rjb3Vu
dChkZW50cnkpID4gMSkNCiAJICAgIHVzZXJzKys7DQogICAgIH0NCmRpZmYg
LXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBm
c19zeXNjYWxscy5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19zeXNj
YWxscy5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy5jCTIwMDctMDEtMDMgMTU6MjY6MjcuMDAwMDAwMDAwICswMTAw
DQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJ
MjAxNi0wMS0xNCAxNzowMDoyMC4wMDAwMDAwMDAgKzAxMDANCkBAIC00Miw3
ICs0Miw5IEBADQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+
DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2NvbW1vbi5oPg0KICNpbmNsdWRl
IDxsaW51eC9maWxlLmg+DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAjaW5jbHVkZSA8bGludXgvc21wX2xv
Y2suaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8bGludXgvc21wLmg+DQogI2lu
Y2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCiANCkBAIC01MCw2ICs1MiwxMSBA
QA0KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPg0KICNlbmRpZg0KIA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3
LDApDQorI3VuZGVmIFNZU0NBTExIQUNLDQorLyogdGhlIG1ldGhvZCB0byBy
ZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29yayBvbiBrZXJuZWwgMy43
IGFuZCBsYXRlciwgc2Ugbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jICovDQor
I2VuZGlmDQorDQogI2lmIDANCiAjaWZkZWYgQ09ORklHX0NPTVBBVA0KICNp
bmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+DQpAQCAtNjQsNyArNzEsNyBAQA0K
ICN1bmRlZiBORUVEX1ZJQ0VJT0NUTDMyDQogDQogI2lmZGVmIFJDU0lEDQot
UkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMuYyx2IDEuMTIyIDIwMDcvMDEv
MDMgMTQ6MjY6MjcgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNf
c3lzY2FsbHMuYyx2IDEuMTI1IDIwMTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4
cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9l
bnRyeSAqbm5wZnNfcHJvY2ZzX2RpcjsNCkBAIC04MiwxMiArODksMjIgQEAg
dHlwZWRlZiBzdHJ1Y3QgYWZzcHJvY2RhdGEgew0KICAgICB1bnNpZ25lZCBs
b25nIHN5c2NhbGw7DQogfSBhZnNwcm9jZGF0YTsNCiANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRp
YyBpbnQNCiBubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9k
ZSwgc3RydWN0IGZpbGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21k
LCB1bnNpZ25lZCBsb25nIGFyZyk7DQorI2Vsc2UNCitzdGF0aWMgbG9uZw0K
K25ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAg
IHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZW5k
aWYNCiANCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBmc19w
cm9jZnNfZm9wcyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICAuaW9jdGwgPSBubnBmc19wcm9j
ZnNfaW9jdGwsDQorI2Vsc2UNCisgICAgLnVubG9ja2VkX2lvY3RsID0gbm5w
ZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbmRpZg0KIH07DQogDQogDQpAQCAtMTQ3
LDUzICsxNjQsNDggQEAgc3RhdGljIGludCBubnBmc19zZWNfcmVnaXN0ZXJl
ZCA9IDA7DQogI2RlZmluZSBTRUMyUEFHKHMpIChubnBmc19wYWdfdCkodW5z
aWduZWQgbG9uZykocykNCiAjZGVmaW5lIFBBRzJTRUMocCkgKHZvaWQgKiko
dW5zaWduZWQgbG9uZykocCkNCiANCi1zdGF0aWMgaW50DQotbm5wZnNfc2Vj
X3Rhc2tfYWxsb2Moc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAg
bm5wZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhjdXJyZW50LT5zZWN1cml0eSk7
DQotICAgIGlmIChwYWcpDQotCXAtPnNlY3VyaXR5ID0gUEFHMlNFQyhwYWcp
Ow0KLSAgICByZXR1cm4gMDsNCi19DQotDQotc3RhdGljIHZvaWQNCi1ubnBm
c19zZWNfdGFza19mcmVlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkNCi17DQot
ICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcocC0+c2VjdXJpdHkpOw0K
LSAgICBpZiAocGFnKQ0KLQlwLT5zZWN1cml0eSA9IE5VTEw7DQotfQ0KLQ0K
IHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfc2VjKHZvaWQp
DQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ
T04oMiw2LDI4KQ0KICAgICBubnBmc19wYWdfdCBwYWcgPSBTRUMyUEFHKGN1
cnJlbnQtPnNlY3VyaXR5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wYWdfdCBw
YWcgPSBTRUMyUEFHKGN1cnJlbnRfc2VjdXJpdHkoKSk7DQorI2VuZGlmDQog
ICAgIGlmIChwYWcpDQogCXJldHVybiBwYWc7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHJl
dHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICByZXR1cm4gY3VycmVu
dF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0gY3VycmVu
dF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQorI2VuZGlmDQogfQ0KIA0K
IHN0YXRpYyBpbnQNCiBubnBmc19zZXRfcGFnX3NlYyh2b2lkKQ0KIHsNCiAg
ICAgc3RhdGljIG5ucGZzX3BhZ190IHBhZ251bSA9IE5OUEZTX1BBR19MTElN
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o
Miw2LDI5KQ0KKyAgICBzdHJ1Y3QgY3JlZCAqY3JlZDsNCisjZW5kaWYNCiAN
CiAgICAgaWYgKHBhZ251bSA9PSBOTlBGU19QQUdfVUxJTSkNCiAJcmV0dXJu
IC1FTk9NRU07DQogICAgIC8qIHBhZ251bSA9IE5OUEZTX1BBR19MTElNOyAq
Lw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgY3VycmVudC0+c2VjdXJpdHkgPSBQQUcy
U0VDKHBhZ251bSk7DQorI2Vsc2UNCisgICAgY3JlZCA9IChzdHJ1Y3QgY3Jl
ZCAqKSBjdXJyZW50LT5jcmVkOw0KKyAgICBjcmVkLT5zZWN1cml0eSA9IFBB
RzJTRUMocGFnbnVtKTsNCisjZW5kaWYNCiAgICAgcGFnbnVtKys7DQogICAg
IHJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgc3RydWN0IHNlY3VyaXR5X29w
ZXJhdGlvbnMgbm5wZnNfc2VjX29wcyA9IHsNCi0gICAgLnRhc2tfYWxsb2Nf
c2VjdXJpdHkgPSBubnBmc19zZWNfdGFza19hbGxvYywNCi0gICAgLnRhc2tf
ZnJlZV9zZWN1cml0eSA9IG5ucGZzX3NlY190YXNrX2ZyZWUsDQotLy8gICAg
LnRhc2tfcmVwYXJlbnRfdG9faW5pdCA9IG5ucGZzX3NlY19yZXBhcmVudF90
b19pbml0LA0KLX07DQotDQogI2VuZGlmIC8qIENPTkZJR19TRUNVUklUWSAq
Lw0KIA0KICNpZmRlZiBHUk9VUFBBR1MNCkBAIC0yMDYsNyArMjE4LDEyIEBA
IGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkNCiAgICAgTk5QRlNE
RUIoWERFQlNZUywgKCJmaW5kX3BhZzogbmdyb3VwcyA9ICVkXG4iLCBnaS0+
bmdyb3VwcykpOw0KIA0KICAgICBmb3IgKGkgPSBnaS0+bmdyb3VwcyAtIDE7
IGkgPj0gMDsgaS0tKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJZ2lkX3QgZ3JvdXAgPSBHUk9VUF9B
VChnaSwgaSk7DQorI2Vsc2UNCisJa2dpZF90IGtncm91cCA9IEdST1VQX0FU
KGdpLCBpKTsNCisJZ2lkX3QgZ3JvdXAgPSBrZ3JvdXAudmFsOw0KKyNlbmRp
Zg0KIAlpZiAoKG5ucGZzX3BhZ190KWdyb3VwID49IE5OUEZTX1BBR19MTElN
ICYmIChubnBmc19wYWdfdClncm91cCA8IE5OUEZTX1BBR19VTElNKSB7DQog
CSAgICBOTlBGU0RFQihYREVCU1lTLA0KIAkJICAgICAoImZpbmRfcGFnOiBF
eGlzdGluZyBwYWcgJXUgYXQgcG9zICV1XG4iLCBncm91cCwgaSkpOw0KQEAg
LTIyMiwxNSArMjM5LDMxIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZv
ICpnaSkNCiBzdGF0aWMgbm5wZnNfcGFnX3QNCiBubnBmc19nZXRfcGFnX2dy
b3VwKHZvaWQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VS
TkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq
Z2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KICAgICBubnBmc19wYWdfdCBy
ZXQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgc3RydWN0IGdyb3Vw
X2luZm8gKmdpID0gZ2V0X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCisgICAg
bm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAg
ICBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7DQorICAgIG5ucGZzX3Bh
Z190IHJldCA9IGt1aWQudmFsOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBp
bnQgaTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9W
RVJTSU9OKDIsNiwyOCkNCiAgICAgZ2V0X2dyb3VwX2luZm8oZ2kpOw0KKyNl
bmRpZg0KIA0KICAgICBpID0gZmluZF9wYWcoZ2kpOw0KICAgICBpZiAoaSAh
PSBOTlBGU19QQUdfTk9URk9VTkQpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJcmV0ID0gR1JPVVBfQVQo
Z2ksIGkpOw0KKyNlbHNlDQorCXsga2dpZF90IGtnaWQgPSBHUk9VUF9BVChn
aSwgaSk7IHJldCA9IGtnaWQudmFsOyB9DQorI2VuZGlmDQogDQogICAgIHB1
dF9ncm91cF9pbmZvKGdpKTsNCiANCkBAIC0yNDIsMTMgKzI3NSwxOSBAQCBu
bnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogc3RhdGljIGludA0KIHN0b3Jl
X3BhZyhubnBmc19wYWdfdCBwYWdudW0pDQogew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBzdHJ1
Y3QgZ3JvdXBfaW5mbyAqb2xkX2dpID0gY3VycmVudC0+Z3JvdXBfaW5mbzsN
CisjZWxzZQ0KKyAgIHN0cnVjdCBncm91cF9pbmZvICpvbGRfZ2kgPSBnZXRf
Y3VycmVudF9ncm91cHMoKTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGdyb3Vw
X2luZm8gKm5ld19naTsNCi0gICAgaW50IG5ibG9ja3MsIGNvdW50Ow0KKyAg
ICB1bnNpZ25lZCBpbnQgbmJsb2NrcywgY291bnQ7DQogICAgIGludCBmb3Vu
ZCA9IDA7DQogICAgIGludCBpLCBrOw0KICAgICANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkgICAgDQogICAg
IGdldF9ncm91cF9pbmZvKG9sZF9naSk7DQorI2VuZGlmDQogDQogICAgIGkg
PSBmaW5kX3BhZyhvbGRfZ2kpOw0KICAgICBpZiAoaSAhPSBOTlBGU19QQUdf
Tk9URk9VTkQpDQpAQCAtMjc0LDEwICszMTMsMTcgQEAgc3RvcmVfcGFnKG5u
cGZzX3BhZ190IHBhZ251bSkNCiAJY291bnQgLT0gTkdST1VQU19QRVJfQkxP
Q0s7DQogICAgIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBpZiAoZm91bmQpDQogCUdST1VQ
X0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UNCiAJR1JPVVBf
QVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBhZ251bTsNCisj
ZWxzZQ0KKyAgICBpZiAoZm91bmQpDQorCXsga2dpZF90IGtnaWQgPSBLR0lE
VF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgaSkgPSBrZ2lkOyB9
DQorICAgIGVsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQocGFn
bnVtKTsgR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9
IGtnaWQ7IH0NCisjZW5kaWYNCiAgICAgDQogICAgIHNldF9jdXJyZW50X2dy
b3VwcyhuZXdfZ2kpOw0KICAgICBwdXRfZ3JvdXBfaW5mbyhuZXdfZ2kpOw0K
QEAgLTMxNyw3ICszNjMsMTMgQEAgbm5wZnNfZ2V0X3BhZygpDQogICAgIHJl
dHVybiBubnBmc19nZXRfcGFnX2dyb3VwKCk7DQogI2VuZGlmIC8qIEdST1VQ
UEFHUyAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVM
X1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1cm4gY3VycmVudC0+dWlkOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTQsMCkNCisgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7DQorI2Vsc2UNCisg
ICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7IHJldHVybiBrdWlk
LnZhbDsgfQ0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgaW5saW5lIGludA0K
QEAgLTQyMiw3ICs0NzQsNyBAQCBubnBmc19zZXRncm91cHMxNiAoaW50IGdp
ZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8qIFNZU0NBTExIQUNLICovDQog
I2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KLXN0cnVjdCBmaWxlX2hhbmRs
ZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFuZGxlIHsNCiAgICAgbm5wZnNf
ZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9kZTsNCiAgICAgX191MzIgZ2Vu
Ow0KQEAgLTUwOSwxNCArNTYxLDI3IEBAIG5ucGZzX2RlYnVnX3ByaW50IChz
dHJ1Y3QgYXJsYVZpY2VJb2N0bCANCiAgKiBmb2xsb3cgc3ltbGlua3MgaWZm
IGBmb2xsb3cnDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRy
eSAqDQogdXNlcl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAqbmQs
IGNoYXIgKnVzZXJfcGF0aCwgaW50IGZvbGxvdykNCisjZWxzZQ0KK3N0YXRp
YyBzdHJ1Y3QgZGVudHJ5ICoNCit1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3Qg
cGF0aCAqcGF0aCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNl
bmRpZg0KIHsNCi0gICAgY2hhciAqa25hbWU7DQogICAgIGludCBmbGFncyA9
IDA7DQogICAgIGludCBlcnJvciA9IDA7DQogDQotICAgIGtuYW1lID0gZ2V0
bmFtZSAodXNlcl9wYXRoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorICAgIGNoYXIgKmtuYW1lOw0KKyAg
ICBrbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisjZWxzZQ0KKyAgICBj
b25zdCBjaGFyICprbmFtZTsNCisgICAgc3RydWN0IGZpbGVuYW1lICpmbmFt
ZTsNCisgICAgZm5hbWUgPSBnZXRuYW1lKHVzZXJfcGF0aCk7DQorICAgIGtu
YW1lID0gZm5hbWUtPm5hbWU7DQorI2VuZGlmDQorDQogICAgIGlmIChJU19F
UlIoa25hbWUpKQ0KIAlyZXR1cm4gRVJSX1BUUihQVFJfRVJSKGtuYW1lKSk7
DQogICAgIGlmIChmb2xsb3cpDQpAQCAtNTI0LDExICs1ODksMjUgQEAgdXNl
cl9wYXRoMmRlbnRyeSAoc3RydWN0IG5hbWVpZGF0YSAqbmQsIA0KIA0KICAg
ICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX3N5c2NhbGw6IGxvb2tpbmcg
dXA6ICVzXG4iLCBrbmFtZSkpOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogICAgIGVycm9yID0gcGF0
aF9sb29rdXAoa25hbWUsIGZsYWdzLCBuZCk7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBlcnJv
ciA9IGtlcm5fcGF0aChrbmFtZSwgZmxhZ3MsICYobmQtPnBhdGgpKTsNCisj
ZWxzZQ0KKyAgICBlcnJvciA9IGtlcm5fcGF0aChrbmFtZSwgZmxhZ3MsIHBh
dGgpOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDcsMCkNCiAgICAgcHV0bmFtZShrbmFtZSk7DQorI2Vs
c2UNCisgICAga21lbV9jYWNoZV9mcmVlKG5hbWVzX2NhY2hlcCwgKHZvaWQg
KilrbmFtZSk7DQorI2VuZGlmDQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJu
IEVSUl9QVFIoZXJyb3IpOw0KLSAgICByZXR1cm4gbmQtPmRlbnRyeTsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KKyAgICByZXR1cm4gbmQtPnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorICAg
IHJldHVybiBwYXRoLT5kZW50cnk7DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxp
bmthZ2UgbG9uZw0KQEAgLTU0MCwxMiArNjE5LDI0IEBAIHN5c19hZnNfaW50
IChpbnQgb3BlcmF0aW9uLA0KIHsNCiAgICAgbG9uZyBlcnJvciA9IDA7DQog
ICAgIHN0cnVjdCBhcmxhVmljZUlvY3RsIHZpY2VfaW9jdGw7IA0KLSAgICBz
dHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwgbXNnOw0KKyAgICBzdHJ1Y3Qg
bm5wZnNfbWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQogICAgIHN0cnVj
dCBubnBmc19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAgc3RydWN0IGRl
bnRyeSAqZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFtZWlk
YXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQorI2Vu
ZGlmDQogICAgIA0KKyAgICBtc2cgPSBrbWFsbG9jKHNpemVvZigqbXNnKSwg
R0ZQX0tFUk5FTCk7DQorICAgIGlmIChtc2cgPT0gTlVMTCkNCisgICAgICBy
ZXR1cm4gLUVOT01FTTsNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBsb2NrX2tlcm5lbCgpOw0K
KyNlbHNlDQorICAgIC8qIFRPRE86IGxvY2tfa2VybmVsKCkgaXMgcmVtb3Zl
ZCwgY29uc2lkZXIgYWRkaW5nIGFuIHByaXZhdGUgbG9jayAqLw0KKyNlbmRp
Zg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19hZnMga2VybmVs
IGxvY2tlZFxuIikpOw0KIA0KQEAgLTU3NSw3ICs2NjYsNyBAQCBzeXNfYWZz
X2ludCAoaW50IG9wZXJhdGlvbiwNCiAJICAgIGdvdG8gdW5sb2NrOw0KIAl9
DQogCWlmICh2aWNlX2lvY3RsLmluX3NpemUgIT0gMCkgew0KLQkgICAgaWYo
Y29weV9mcm9tX3VzZXIoJm1zZy5tc2csDQorCSAgICBpZihjb3B5X2Zyb21f
dXNlcigmbXNnLT5tc2csDQogCQkJICAgICAgdmljZV9pb2N0bC5pbiwNCiAJ
CQkgICAgICB2aWNlX2lvY3RsLmluX3NpemUpICE9IDApIHsNCiAJCWVycm9y
ID0gLUVGQVVMVDsNCkBAIC01ODMsNyArNjc0LDExIEBAIHN5c19hZnNfaW50
IChpbnQgb3BlcmF0aW9uLA0KIAkgICAgfQ0KIAl9DQogCWlmIChhX3BhdGhQ
ICE9IE5VTEwpIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRl
bnRyeSAoJm5kLCBhX3BhdGhQLCBhX2ZvbGxvd1N5bWxpbmtzKTsNCisjZWxz
ZQ0KKwkgICAgZGVudHJ5ID0gdXNlcl9wYXRoMmRlbnRyeSAoJnBhdGgsIGFf
cGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbmRpZg0KIAkgICAgaWYg
KCFkZW50cnkpIHsNCiAJCWVycm9yID0gLUVJTlZBTDsNCiAJCWdvdG8gdW5s
b2NrOw0KQEAgLTYyOCwxOSArNzIzLDIzIEBAIHN5c19hZnNfaW50IChpbnQg
b3BlcmF0aW9uLA0KIAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxv
Y2s7DQogCSAgICB9DQotCSAgICBtc2cuaGFuZGxlID0geG4tPmhhbmRsZTsN
CisJICAgIG1zZy0+aGFuZGxlID0geG4tPmhhbmRsZTsNCiAJfQ0KIA0KLQlt
c2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19QSU9DVEw7DQotCW1zZy5v
cGNvZGUgPSBhX29wY29kZTsNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5Q
RlNfTVNHX1BJT0NUTDsNCisJbXNnLT5vcGNvZGUgPSBhX29wY29kZTsNCiAJ
DQotCW1zZy5pbnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCi0JbXNn
Lm91dHNpemUgID0gdmljZV9pb2N0bC5vdXRfc2l6ZTsNCi0JbXNnLmNyZWQu
dWlkID0gY3VycmVudC0+dWlkOw0KLQltc2cuY3JlZC5wYWcgPSBubnBmc19n
ZXRfcGFnKCk7DQorCW1zZy0+aW5zaXplICAgPSB2aWNlX2lvY3RsLmluX3Np
emU7DQorCW1zZy0+b3V0c2l6ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2
LDI4KQ0KKwltc2ctPmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNl
DQorICAgICAgICBtc2ctPmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisj
ZW5kaWYNCisJbXNnLT5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJ
DQotCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMoJm5ucGZzWzBdLCAmbXNn
LmhlYWRlciwgc2l6ZW9mKG1zZykpOyAvKiBYWFggKi8NCi0JbXNnMiA9IChz
dHJ1Y3Qgbm5wZnNfbWVzc2FnZV93YWtldXAgKikgJm1zZzsNCisJZXJyb3Ig
PSBubnBmc19tZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2ctPmhlYWRlciwg
c2l6ZW9mKCptc2cpKTsgLyogWFhYICovDQorCW1zZzIgPSAoc3RydWN0IG5u
cGZzX21lc3NhZ2Vfd2FrZXVwICopIG1zZzsNCiAJaWYgKGVycm9yID09IDAp
DQogCSAgICBlcnJvciA9IG1zZzItPmVycm9yOw0KIA0KQEAgLTY3NSwxMiAr
Nzc0LDIxIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAgICAN
CiAgdW5sb2NrOg0KICAgICBpZiAoZGVudHJ5KQ0KLQlwYXRoX3JlbGVhc2Uo
Jm5kKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KKwlwYXRoX3B1dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJ
cGF0aF9wdXQoJnBhdGgpOw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihY
REVCU1lTLCAoIm5ucGZzX3N5c2NhbGwgcmV0dXJucyBlcnJvcjogJWxkXG4i
LCBlcnJvcikpOw0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19h
ZnMga2VybmVsIHVubG9ja1xuIikpOw0KKyAgICBrZnJlZShtc2cpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkp
DQogICAgIHVubG9ja19rZXJuZWwoKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RP
OiBzZWUgdGhlIGNvbW1lbnQgYXQgbG9ja19rZXJuZWwoKSBhYm92ZSAqLw0K
KyNlbmRpZg0KIA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KQEAgLTcyOSw5
ICs4MzcsMTUgQEAgc3lzX2FmcyAoaW50IG9wZXJhdGlvbiwNCiAJCSAgICAg
ICBhX2ZvbGxvd1N5bWxpbmtzKTsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMgaW50
DQogbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0
cnVjdCBmaWxlICpmaWxlLA0KIAkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5z
aWduZWQgbG9uZyBhcmcpDQorI2Vsc2UNCitzdGF0aWMgbG9uZw0KK25ucGZz
X3Byb2Nmc19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwNCisJCSAgIHVuc2ln
bmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsN
CiAgICAgYWZzcHJvY2RhdGEgYXJnczsNCiAgICAgbG9uZyByZXQ7DQpAQCAt
NzgwLDIxICs4OTQsMzEgQEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nm
cyh2b2lkKQ0KIHsNCiAgICAgc3RydWN0IHByb2NfZGlyX2VudHJ5ICplbnRy
eTsNCiAgICAgDQotICAgIG5ucGZzX3Byb2Nmc19kaXIgPSBwcm9jX21rZGly
KE5OUEZTX1BST0NfRElSLCBwcm9jX3Jvb3RfZnMpOw0KKyAgICBubnBmc19w
cm9jZnNfZGlyID0gcHJvY19ta2RpcigiZnMvIiBOTlBGU19QUk9DX0RJUiwg
TlVMTCk7DQogICAgIGlmIChubnBmc19wcm9jZnNfZGlyID09IE5VTEwpDQog
CXJldHVybiAtRU5PTUVNOw0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBubnBmc19wcm9j
ZnNfZGlyLT5vd25lciA9IFRISVNfTU9EVUxFOw0KKyNlbmRpZg0KICAgICAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
MCwwKQ0KICAgICBlbnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BS
T0NfTk9ERSwgMDY2Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQorI2Vsc2UNCisg
ICAgZW50cnkgPSBwcm9jX2NyZWF0ZShOTlBGU19QUk9DX05PREUsIDA2NjYs
IE5VTEwsICZubnBmc19wcm9jZnNfZm9wcyk7DQorI2VuZGlmDQogICAgIGlm
IChlbnRyeSA9PSBOVUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5w
ZnNfaW5pdF9wcm9jZnM6IG5vIG5vZGVcbiIpKTsNCi0JcmVtb3ZlX3Byb2Nf
ZW50cnkoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorCXJlbW92
ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCiAJ
cmV0dXJuIC1FTk9NRU07DQogICAgIH0NCiAgICAgDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAgZW50
cnktPm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAgICAg
ZW50cnktPnByb2NfZm9wcyA9ICZubnBmc19wcm9jZnNfZm9wczsNCisjZW5k
aWYNCiANCiAjaWZkZWYgU1lTQ0FMTENPTVBBVA0KICAgICBpZiAocmVnaXN0
ZXJfaW9jdGwzMl9jb252ZXJzaW9uKEFSTEFfVklPQ19TWVNDQUxMMzIsIG5u
cGZzX3Byb2Nmc19pb2N0bDMyKSkgew0KQEAgLTgxNSw3ICs5MzksNyBAQCBz
dGF0aWMgdm9pZCBubnBmc19leGl0X3Byb2Nmcyh2b2lkKQ0KICAgICB9DQog
I2VuZGlmIC8qIFNZU0NBTExDT01QQVQgKi8NCiAgICAgcmVtb3ZlX3Byb2Nf
ZW50cnkoTk5QRlNfUFJPQ19OT0RFLCBubnBmc19wcm9jZnNfZGlyKTsNCi0g
ICAgcmVtb3ZlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19ESVIsIHByb2Nfcm9v
dF9mcyk7DQorICAgIHJlbW92ZV9wcm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BS
T0NfRElSLCBOVUxMKTsNCiB9DQogDQogI2lmZGVmIEdST1VQUEFHUw0KQEAg
LTgzOSwxNCArOTYzLDYgQEAgaW5zdGFsbF9zZXRncm91cHModm9pZCkNCiB2
b2lkDQogaW5zdGFsbF9hZnNfc3lzY2FsbCh2b2lkKQ0KIHsNCi0jaWZkZWYg
Q09ORklHX1NFQ1VSSVRZDQotICAgIGlmIChyZWdpc3Rlcl9zZWN1cml0eSgm
bm5wZnNfc2VjX29wcykpDQotCU5OUEZTREVCKFhERUJTWVMsDQotCQkgKCJp
bnN0YWxsX2Fmc19zeXNjYWxsOiBubnBmc19pbml0X3NlYyBmYWlsZWRcbiIp
KTsNCi0gICAgZWxzZQ0KLQlubnBmc19zZWNfcmVnaXN0ZXJlZCA9IDE7DQot
I2VuZGlmDQotDQogICAgIG5ucGZzX2luaXRfcHJvY2ZzKCk7DQogDQogI2lm
ZGVmIFNZU0NBTExIQUNLDQpAQCAtODg3LDEyICsxMDAzLDYgQEAgcmVzdG9y
ZV9hZnNfc3lzY2FsbCAodm9pZCkNCiAjZW5kaWYNCiAjZW5kaWYgLyogU1lT
Q0FMTEhBQ0sgKi8NCiANCi0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZDQotICAg
IGlmIChubnBmc19zZWNfcmVnaXN0ZXJlZCkNCi0JaWYgKHVucmVnaXN0ZXJf
c2VjdXJpdHkoJm5ucGZzX3NlY19vcHMpKQ0KLQkgICAgcHJpbnRrKEtFUk5f
RU1FUkcgIm5ucGZzX2V4aXRfc2VjOiBjb3VsZG4ndCB1bnJlZ2lzdGVyXG4i
KTsNCi0jZW5kaWYgLyogIUNPTkZJR19TRUNVUklUWSAqLw0KLQ0KICNpZmRl
ZiBHUk9VUFBBR1MNCiAjaWZkZWYgU1lTQ0FMTEhBQ0sNCiAgICAgaWYgKG9s
ZF9zZXRncm91cHMpIHsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkw
LW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgYXJs
YS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYw0K
LS0tIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMt
bG9zc2FnZS5jCTIwMDYtMTItMTEgMTc6MzE6NDUuMDAwMDAwMDAwICswMTAw
DQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxv
c3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUxOjQ5LjAwMDAwMDAwMCArMDEwMA0K
QEAgLTQ3LDExICs0NywyMCBAQA0KICNpbmNsdWRlIDxsaW51eC91bmlzdGQu
aD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBmc19zeXNj
YWxscy1sb3NzYWdlLmMsdiAxLjE3IDIwMDYvMTIvMTEgMTY6MzE6NDUgdG9s
IEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfc3lzY2FsbHMtbG9zc2Fn
ZS5jLHYgMS4xOSAyMDEwLzA4LzA4IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0K
KyNlbmRpZg0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMyw3LDApDQorLyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dl
cl9ib3VuZCcgZG9lcyBub3Qgd29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRl
ciAqLw0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KICNlbmRpZg0KIA0KICNpbmNs
dWRlIDxsaW51eC9rYWxsc3ltcy5oPg0KKyNpZmRlZiBTWVNDQUxMSEFDSw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcs
MCkNCiBzdGF0aWMgdm9pZCAqbG93ZXJfYm91bmQgPSAma2VybmVsX3RocmVh
ZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiB2b2lkICogX19hdHRyaWJ1dGVf
Xygod2VhaykpIHN5c19jYWxsX3RhYmxlKHZvaWQpOw0KIG5ucGZzX3N5c19j
YWxsX2Z1bmN0aW9uICpubnBmc19zeXNfY2FsbF90YWJsZSA9DQpAQCAtNjMs
NiArNzIsMTEgQEAgY29uc3QgY2hhciAqIF9fYXR0cmlidXRlX18oKHdlYWsp
KQ0KIAkJICAgIHVuc2lnbmVkIGxvbmcgKm9mZnNldCwNCiAJCSAgICBjaGFy
ICoqbW9kbmFtZSwgY2hhciAqbmFtZWJ1Zik7DQogDQorI2lmZGVmIF9feDg2
XzY0X18NCitleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJp
YnV0ZV9fKCh3ZWFrKSk7DQorI2VuZGlmDQorDQorI2lmZGVmIFNZU0NBTExI
QUNLDQogc3RhdGljIHZvaWQgKioNCiBnZXRfc3RhcnRfYWRkcih2b2lkKSB7
DQogI2lmZGVmIF9feDg2XzY0X18NCkBAIC03MSw2ICs4NSw3IEBAIGdldF9z
dGFydF9hZGRyKHZvaWQpIHsNCiAgICAgcmV0dXJuICh2b2lkICoqKSZtdXRl
eF9sb2NrOw0KICNlbmRpZg0KIH0NCisjZW5kaWYNCiANCiBzdGF0aWMgaW5s
aW5lIGludCANCiBrYWxsc3ltX2lzX2VxdWFsKHVuc2lnbmVkIGxvbmcgYWRk
ciwgY29uc3QgY2hhciAqbmFtZSkNCkBAIC0xMzksNiArMTU0LDggQEAgdmVy
aWZ5KHZvaWQgKipwKSB7DQogICAgIHJldHVybiAxOw0KIH0NCiANCisjaWZk
ZWYgU1lTQ0FMTEhBQ0sNCisNCiBzdGF0aWMgaW5saW5lIGludCBsb29rc19n
b29kKHZvaWQgKipwKQ0KIHsNCiAgICAgaWYgKCpwIDw9ICh2b2lkKilsb3dl
cl9ib3VuZCB8fCAqcCA+PSAodm9pZCopcCkNCkBAIC0xODgsMyArMjA1LDUg
QEAgbm5wZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpDQogDQogICAg
IHJldHVybiAwOw0KIH0NCisNCisjZW5kaWYNCmRpZmYgLXVwck4gLVhub2Rp
ZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYyBh
cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxh
LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMDYtMTIt
MTEgMTc6NDM6MzUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25u
cGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jCTIwMTYtMDItMTQgMDE6MzY6MDYu
MDAwMDAwMDAwICswMTAwDQpAQCAtNDQsMzAgKzQ0LDI2IEBADQogI2luY2x1
ZGUgPGxpbnV4L21tLmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJ
ZDogbm5wZnNfdmZzb3BzLmMsdiAxLjEwOSAyMDA2LzEyLzExIDE2OjQzOjM1
IHRvbCBFeHAgJCIpOw0KK1JDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5jLHYg
MS4xMTEgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsNCiAjZW5k
aWYNCiANCiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsNCiANCi1zdGF0
aWMgdm9pZCBubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUp
Ow0KIHN0YXRpYyB2b2lkIG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKnNiKTsNCi1zdGF0aWMgdm9pZCBubnBmc19wdXRfaW5vZGUoc3Ry
dWN0IGlub2RlICppbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dy
aXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKTsNCisjZW5kaWYN
CiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDIsNiwxOCkNCiBzdGF0aWMgaW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpOw0KLSNlbHNlDQot
c3RhdGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpz
Yiwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2VuZGlmDQogDQogc3RhdGlj
IHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcHMgPSB7IA0KLSAg
ICByZWFkX2lub2RlCQk6IG5ucGZzX3JlYWRfaW5vZGUsDQotICAgIHB1dF9p
bm9kZQkJOiBubnBmc19wdXRfaW5vZGUsDQogICAgIGFsbG9jX2lub2RlCQk6
IG5ucGZzX25vZGVfYWxsb2MsDQogICAgIGRlc3Ryb3lfaW5vZGUJOiBubnBm
c19ub2RlX2ZyZWUsDQogICAgIGRyb3BfaW5vZGUJCTogZ2VuZXJpY19kZWxl
dGVfaW5vZGUsDQogICAgIHB1dF9zdXBlcgkJOiBubnBmc19wdXRfc3VwZXIs
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KICAgICB3cml0ZV9zdXBlcgkJOiBubnBmc193cml0ZV9zdXBlciwN
CisjZW5kaWYNCiAgICAgc3RhdGZzCQk6IG5ucGZzX3N0YXRmcywNCiB9Ow0K
IA0KQEAgLTk0LDcgKzkwLDExIEBAIG5ucGZzX2ZldGNoX3Jvb3Qoc3RydWN0
IGlub2RlICppKQ0KIAkgKiByb290J3MgcHJpdmlsaWdlcyAodXN1YWxseSBu
b25lLCBhbmQgbm9uZSBpcyBuZWVkZWQpLg0KIAkgKi8NCiAJDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJ
bXNnLmNyZWQudWlkID0gMDsNCisjZWxzZQ0KKwltc2cuY3JlZC51aWQgPSBL
VUlEVF9JTklUKDApOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSAwOw0K
IAkNCiAJZXJyb3IgPSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cu
aGVhZGVyLCBzaXplb2YobXNnKSk7DQpAQCAtMTI5LDggKzEyOSwxMyBAQCBt
YWtlX3Jvb3RfaW5vZGUoc3RydWN0IG5ucGZzICpubnBmc3ApDQogICAgIFhB
X1NFVF9NT0RFKCZub2RlLmF0dHIsIFNfSUZESVIgfCAwNzc3KTsNCiAgICAg
WEFfU0VUX05MSU5LKCZub2RlLmF0dHIsIDEwMCk7DQogICAgIFhBX1NFVF9T
SVpFKCZub2RlLmF0dHIsIDApOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIFhBX1NFVF9VSUQoJm5v
ZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwgMCk7
DQorI2Vsc2UNCisgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCBLVUlEVF9J
TklUKDApKTsNCisgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCBLR0lEVF9J
TklUKDApKTsNCisjZW5kaWYNCiAgICAgWEFfU0VUX0FUSU1FKCZub2RlLmF0
dHIsIDApOw0KICAgICBYQV9TRVRfTVRJTUUoJm5vZGUuYXR0ciwgMCk7DQog
ICAgIFhBX1NFVF9DVElNRSgmbm9kZS5hdHRyLCAwKTsNCkBAIC0xNTksNyAr
MTY0LDExIEBAIG1ha2Vfcm9vdCAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikN
CiAgICAgbm5wZnMtPnJvb3QgPSBpbm9kZTsNCiANCiAgICAgLyogWFhYIGVy
cm9yIGhhbmRsaW5nICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNCwwKQ0KICAgICBkcCA9IGRfYWxsb2Nfcm9vdChp
bm9kZSk7DQorI2Vsc2UNCisgICAgZHAgPSBkX21ha2Vfcm9vdChpbm9kZSk7
DQorI2VuZGlmDQogICAgIG5ucGZzX2RfaW5pdChkcCk7DQogICAgIHNiLT5z
X3Jvb3QgPSBkcDsNCiAgICAgcmV0dXJuIDA7DQpAQCAtMTgzLDEzICsxOTIs
MjcgQEAgbm5wZnNfcmVhZF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICog
cw0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNfcmVhZF9zdXBl
cjogYmVnaW4gc2V0dGluZyB2YXJpYWJsZXNcbiIpKTsNCiANCiAgICAgaWYg
KGRhdGEgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDE5LDApDQogCXN0cnVjdCBuYW1laWRhdGEgbmQ7
DQorI2Vsc2UNCisJc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAJDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OSkNCiAJZXJyb3IgPSBwYXRoX2xvb2t1cChkYXRhLCAwLCAmbmQpOw0KKyNl
bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJm5kLnBhdGgpOw0K
KyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAsICZwYXRoKTsN
CisjZW5kaWYNCiAJaWYgKGVycm9yKQ0KIAkgICAgZGRldiA9IEVSUl9QVFIo
ZXJyb3IpOw0KIAllbHNlDQotCSAgICBkZGV2ID0gbmQuZGVudHJ5Ow0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQorCSAgICBkZGV2ID0gbmQucGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAg
IGRkZXYgPSBwYXRoLmRlbnRyeTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19F
UlIoZGRldikpIHsNCiAJICAgIG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+
ZF9pbm9kZS0+aV9yZGV2KTsNCkBAIC0yMzMsNyArMjU2LDcgQEAgbm5wZnNf
ZmlsbF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1
cm4gMDsNCiB9DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO
RUxfVkVSU0lPTigyLDYsMTgpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQNCiBubnBmc19nZXRfc2Io
c3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQogCSAgICAgaW50
IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCkBAIC0yNDIsMTkgKzI2
NSwyMiBAQCBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg
KmZzDQogICAgIHJldHVybiBnZXRfc2Jfbm9kZXYoZnNfdHlwZSwgZmxhZ3Ms
IGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIsIG1udCk7DQogfQ0KICNlbHNlDQot
c3RydWN0IHN1cGVyX2Jsb2NrICoNCi1ubnBmc19nZXRfc2IgKHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KLQkgICAgICBpbnQgZmxhZ3Ms
IGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpkYXRhKSANCitzdHJ1Y3Qg
ZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBl
ICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2
X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQogew0KLSAgICByZXR1cm4g
Z2V0X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxs
X3N1cGVyKTsNCisgICAgcmV0dXJuIG1vdW50X25vZGV2KGZzX3R5cGUsIGZs
YWdzLCBkYXRhLCBubnBmc19maWxsX3N1cGVyKTsNCiB9DQogI2VuZGlmDQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KIHN0YXRpYyB2b2lkDQogbm5wZnNfd3JpdGVfc3VwZXIoc3RydWN0
IHN1cGVyX2Jsb2NrICogc2IpDQogew0KICAgICBzYi0+c19kaXJ0ID0gMDsN
CiB9DQorI2VuZGlmDQogDQogLyoNCiAgKiBYWFggaXMgdGhpcyBnb29kPyAN
CkBAIC0yNzMsNzMgKzI5OSw2IEBAIG5ucGZzX3B1dF9zdXBlcihzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKnNiKQ0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgi
bm5wZnNfcHV0X3N1cGVyIGV4aXRpbmdcbiIpKTsNCiB9DQogDQotc3RhdGlj
IHZvaWQNCi1ubnBmc19yZWFkX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUp
DQotew0KLSAgICBOTlBGU0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lu
b2RlIHN0YXJ0aW5nIGlub2RlOiAlcFxuIixpbm9kZSkpOw0KLSAgICBOTlBG
U0RFQihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGlub2RlLT5pX2lu
bzogJWxkXG4iLGlub2RlLT5pX2lubykpOw0KLSNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQotICAgIGlub2RlLT5p
X2Jsa3NpemUgPSAxMDI0Ow0KLSNlbmRpZg0KLSAgICBpbm9kZS0+aV9tb2Rl
ID0gMDsNCi0gICAgaW5vZGUtPmlfb3AgPSBOVUxMOw0KLSAgICBOTlBGU0RF
QihYREVCVkZPUFMsKCJubnBmc19yZWFkX2lub2RlIGV4aXRpbmdcbiIpKTsN
Ci19DQotIA0KLS8qDQotICogQ2FsbGVkIHdoZW4gYGlub2RlJyBpcyBkZS1y
ZWZlcmVuY2VkLCBpZSB3aGVuIGlwdXQgaXMgY2FsbGVkLg0KLSAqLw0KLQ0K
LXN0YXRpYyB2b2lkDQotbm5wZnNfcHV0X2lub2RlKHN0cnVjdCBpbm9kZSAq
aW5vZGUpDQotew0KLSAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9E
RV9UT19YTk9ERShpbm9kZSk7DQotICAgIHN0cnVjdCBubnBmcyAqbm5wZnNw
ID0gTk5QRlNfRlJPTV9WTk9ERShpbm9kZSk7DQotICAgIGludCBiYWQ7DQot
DQotICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3B1dF9pbm9kZTog
aW5vZGU6ICVwIGNvdW50OiAlZCBhbGlhc2VzOiIsDQotCQkJaW5vZGUsIG5u
cGZzX2ljb3VudChpbm9kZSkpKTsNCi0gICAgbm5wZnNfcHJpbnRfYWxpYXNl
cyhpbm9kZSk7DQotICAgIA0KLSAgICBkb3duKCZubnBmc3AtPmluYWN0aXZl
X3NlbSk7DQotDQotICAgIGlmICgobm5wZnNwLT5zdGF0dXMgJiBOTlBGU19E
RVZPUEVOKSA9PSAwKSB7DQotCWlmICghaXNfYmFkX2lub2RlKGlub2RlKSkg
ew0KLQkgICAgaWYgKGlub2RlICE9IG5ucGZzcC0+cm9vdCkgew0KLQkJbWFr
ZV9iYWRfaW5vZGUoaW5vZGUpOw0KLQkJbm5wZnNfaXJlbGUoaW5vZGUpOyAv
KiBzZWUgbm5wZnNfbm9kZV9hZGQoKSAqLw0KLQkgICAgfQ0KLQkgICAgeG4t
PmZsYWdzIHw9IE5OUEZTX1NUQUxFOw0KLQl9DQotCWJhZCA9IDE7IC8qIG9y
IHJvb3QsIHJlYWxseSAqLw0KLSAgICB9IGVsc2Ugew0KLQliYWQgPSBpc19i
YWRfaW5vZGUoaW5vZGUpOw0KLSAgICB9DQotDQotICAgIGlmICh4bi0+Zmxh
Z3MgJiBOTlBGU19TVEFMRSAmJiAhbm5wZnNfbm9kZV91c2Vycyhpbm9kZSkp
IHsNCi0JeG4tPmZsYWdzIHw9IE5OUEZTX05PREVfSVBVVDsgLyogWFhYIGxv
Y2tpbmcgKi8NCi0gIAlubnBmc19mb3JjZV9pbnZhbGlkX25vZGUoeG4pOw0K
LQl4bi0+ZmxhZ3MgJj0gfk5OUEZTX05PREVfSVBVVDsNCi0gICAgfQ0KLSAg
ICANCi0gICAgaWYgKGJhZCkgew0KLQlpZiAobm5wZnNfaWNvdW50KGlub2Rl
KSA9PSAxKQ0KLQkgICAgbm5wZnNfbm9kZV9jbGVhcih4bik7DQotICAgIH0g
ZWxzZSBpZiAobm5wZnNfaWNvdW50KGlub2RlKSA9PSAyKSB7DQotCS8qIA0K
LQkgKiBUaGUgbGFzdCBleHRlcm5hbCByZWZlcmVuY2UgaXMgYmVpbmcgZHJv
cHBlZCwgb25seSB0aGUgb25lDQotCSAqIGZyb20gbm5wZnNfbm9kZV9hZGQo
KSBpcyBsZWZ0LiBUaW1lIHRvIGxldCBkYWVtb24gcmVsZWFzZQ0KLQkgKiB0
aGlzIG5vZGUgcHJvcGVybHkuDQotCSAqLw0KLQlpZiAoKHhuLT5mbGFncyAm
IE5OUEZTX0xJTUJPKSA9PSAwKSB7DQotCSAgICBubnBmc19ub2RlX2NsZWFy
KHhuKTsNCi0JICAgIG5ucGZzX3F1ZXVlX2luYWN0aXZlKHhuKTsNCi0JfQ0K
LSAgICB9DQotDQotICAgIHVwKCZubnBmc3AtPmluYWN0aXZlX3NlbSk7DQot
fQ0KLQ0KIHN0YXRpYyBpbnQNCiBubnBmc19zdGF0ZnNfaW50KHN0cnVjdCBz
dXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQogew0KQEAg
LTM1MiwyNSArMzExLDI1IEBAIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1
cGVyX2Jsb2NrICpzYiwNCiAgICAgdG1wLmZfYmF2YWlsICA9IDEwMjQqMTAy
NCoyLTUwOw0KICAgICB0bXAuZl9maWxlcyAgID0gMTAyNCoxMDI0Ow0KICAg
ICB0bXAuZl9mZnJlZSAgID0gMTAyNCoxMDI0LTEwMDsNCisgICAgdG1wLmZf
ZnNpZC52YWxbMF0gPSAwOw0KKyAgICB0bXAuZl9mc2lkLnZhbFsxXSA9IDA7
DQogICAgIHRtcC5mX25hbWVsZW4gPSBOQU1FX01BWDsNCisgICAgdG1wLmZf
ZnJzaXplICA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzBdID0gMDsNCisgICAg
dG1wLmZfc3BhcmVbMV0gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVsyXSA9IDA7
DQorICAgIHRtcC5mX3NwYXJlWzNdID0gMDsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KKyAgICB0bXAuZl9z
cGFyZVs0XSA9IDA7DQorI2Vsc2UNCisgICAgdG1wLmZfZmxhZ3MgPSAwOw0K
KyNlbmRpZg0KICAgICAqYnVmID0gdG1wOw0KICAgICByZXR1cm4gMDsNCiB9
DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigyLDYsMTgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3N0YXRmcyhzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZzICpidWYpDQogew0K
ICAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChkZW50cnktPmRfc2IsIGJ1
Zik7DQogfQ0KLQ0KLSNlbHNlDQotDQotc3RhdGljIGludA0KLW5ucGZzX3N0
YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3Qga3N0YXRmcyAq
YnVmKQ0KLXsNCi0gICAgcmV0dXJuIG5ucGZzX3N0YXRmc19pbnQoc2IsIGJ1
Zik7DQotfQ0KLQ0KLSNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxh
LTAuOTAtb2xkL2FybGFkL2ZjYWNoZS5jIGFybGEtMC45MC9hcmxhZC9mY2Fj
aGUuYw0KLS0tIGFybGEtMC45MC1vbGQvYXJsYWQvZmNhY2hlLmMJMjAwNi0x
Mi0xMSAxNzoyMzoyNC4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAv
YXJsYWQvZmNhY2hlLmMJMjAxNi0wMS0yMiAxNzowMDo0My4wMDAwMDAwMDAg
KzAxMDANCkBAIC03MTMsNyArNzEzLDcgQEAgZmNhY2hlX2hhdmVfd2FudGVk
KEZDYWNoZUVudHJ5ICplbnRyeSwgdQ0KIGludA0KIGZjYWNoZV9kaXJfbmFt
ZSAoRkNhY2hlRW50cnkgKmVudHJ5LCBjaGFyICpzLCBzaXplX3QgbGVuKQ0K
IHsNCi0gICAgcmV0dXJuIHNucHJpbnRmIChzLCBsZW4sICIlMDJYIiwgZW50
cnktPmluZGV4IC8gMHgxMDApOw0KKyAgICByZXR1cm4gc25wcmludGYgKHMs
IGxlbiwgTk5QRlNfQ0FDSEVfRklMRV9ESVIxLCBlbnRyeS0+aW5kZXggLyAw
eDEwMCk7DQogfQ0KIA0KIC8qDQpAQCAtNzIzLDcgKzcyMyw3IEBAIGZjYWNo
ZV9kaXJfbmFtZSAoRkNhY2hlRW50cnkgKmVudHJ5LCBjaGENCiBzdGF0aWMg
aW50DQogZmNhY2hlX2ZpbGVfbmFtZSAoRkNhY2hlRW50cnkgKmVudHJ5LCBj
aGFyICpzLCBzaXplX3QgbGVuKQ0KIHsNCi0gICAgcmV0dXJuIHNucHJpbnRm
IChzLCBsZW4sICIlMDJYLyUwMlgiLA0KKyAgICByZXR1cm4gc25wcmludGYg
KHMsIGxlbiwgTk5QRlNfQ0FDSEVfRklMRV9ESVJfUEFUSCwNCiAJCSAgICAg
ZW50cnktPmluZGV4IC8gMHgxMDAsIGVudHJ5LT5pbmRleCAlIDB4MTAwKTsN
CiB9DQogDQpAQCAtODE1LDcgKzgxNSw3IEBAIGZjYWNoZV9maGdldCAoY2hh
ciAqZmlsZW5hbWUsIGZjYWNoZV9jYWMNCiAJaW50IHJldCwgYSwgYjsNCiAJ
Y2hhciBidWZbMTAyNF07DQogDQotCXJldCA9IHNzY2FuZihmaWxlbmFtZSwg
IiUwMlgvJTAyWCIsICZhLCAmYik7DQorCXJldCA9IHNzY2FuZihmaWxlbmFt
ZSwgTk5QRlNfQ0FDSEVfRklMRV9ESVJfUEFUSCwgJmEsICZiKTsNCiAJaWYg
KHJldCAhPSAyKQ0KIAkgICAgcmV0dXJuIEVJTlZBTDsNCiANCkBAIC04MjQs
NyArODI0LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpmaWxlbmFtZSwgZmNh
Y2hlX2NhYw0KIAkNCiAJcmV0ID0gc25wcmludGYoKGNoYXIgKiloYW5kbGUt
Pm5ucGZzX2hhbmRsZSwgDQogCQkgICAgICAgc2l6ZW9mKGhhbmRsZS0+bm5w
ZnNfaGFuZGxlKSwNCi0JCSAgICAgICAiJXNcXCUwMlhcXCUwMlgiLCBidWYs
IGEsIGIpOw0KKwkJICAgICAgICIlc1xcIiBOTlBGU19DQUNIRV9GSUxFX0RJ
Ul9QQVRILCBidWYsIGEsIGIpOw0KIA0KIAlpZiAocmV0ID4gMCAmJiByZXQg
PCBzaXplb2YoaGFuZGxlLT5ubnBmc19oYW5kbGUpKQ0KIAkgICAgaGFuZGxl
LT52YWxpZCA9IDE7DQo=

---276651502-256347803-1455553140=:6685
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-256347803-1455553140=:6685--

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