[5081] in arla-drinkers
Re: PATCH v12: Arla CVS Current on Linux 2.6.34 to 4.5
daemon@ATHENA.MIT.EDU (Bo Branten)
Fri Mar 18 21:29:46 2016
From arla-drinkers-bounces@stacken.kth.se Sat Mar 19 01:29:46 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 13990 invoked from network); 19 Mar 2016 01:29:45 -0000
Received: from mx7.kth.se (130.237.48.48)
by charon.mit.edu with SMTP; 19 Mar 2016 01:29:45 -0000
Received: from mx7.kth.se (localhost [127.0.0.1])
by mx7.kth.se (Postfix) with ESMTP id 5C2441401CA;
Sat, 19 Mar 2016 02:29:44 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
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 ZW_uxk51VYIv; Sat, 19 Mar 2016 02:29:24 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
by mx7.kth.se (Postfix) with ESMTP;
Sat, 19 Mar 2016 02:29:24 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
by vingummi.stacken.kth.se (Postfix) with ESMTP id 243A814CBDA;
Sat, 19 Mar 2016 02:29:24 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
id 9E3A114CBDA; Sat, 19 Mar 2016 02:29:22 +0100 (CET)
Delivered-To: al_stacken_kth_se______________arla-drinkers@vingummi.stacken.kth.se
Received: from mx5.kth.se (mx5.kth.se [130.237.32.10])
by vingummi.stacken.kth.se (Postfix) with ESMTPS id 986DC14C9E9
for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:29:22 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
by mx5.kth.se (Postfix) with ESMTP id 34EF9240167
for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:29:22 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
X-Amavis-OS-Fingerprint: ???; dist: 8; link: Ethernet or modem; params: none;
raw_mtu: 1500; raw_sig:
4:56+8:0:1460:32850,1:mss,nop,nop,ts,nop,ws,nop,nop,sok:df,id+:0,
[130.239.18.156]:50457
Received: from mx5.kth.se ([127.0.0.1])
by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 6wkm4xr4888T for <arla-drinkers@stacken.kth.se>;
Sat, 19 Mar 2016 02:29:20 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [130.239.18.156])
by mx5.kth.se (Postfix) with ESMTPS
for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:29:20 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by amavisd-new (Postfix) with ESMTP id 951289DB
for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:29:19 +0100 (MET)
X-Virus-Scanned: amavisd-new at acc.umu.se
Received: from suiko.acc.umu.se (suiko.acc.umu.se [IPv6:2001:6b0:e:2018::162])
by mail.acc.umu.se (Postfix) with ESMTP id 3E8619DA
for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:29:14 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
id 2A58D44B8C; Sat, 19 Mar 2016 02:29:14 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
by suiko.acc.umu.se (Postfix) with ESMTP id 285E044B8B
for <arla-drinkers@stacken.kth.se>; Sat, 19 Mar 2016 02:29:14 +0100 (CET)
Date: Sat, 19 Mar 2016 02:29:14 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v12: Arla CVS Current on Linux 2.6.34 to 4.5
In-Reply-To: <alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1603190227520.21643@suiko.acc.umu.se>
References: <alpine.DEB.2.10.1601110319280.18025@suiko.acc.umu.se>
<alpine.DEB.2.10.1601150312080.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-1959661401-1458350954=:21643"
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-1959661401-1458350954=:21643
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII
PATCH v12: Arla CVS Current on Linux 2.6.34 to 4.5
Bo Branten
---276651502-1959661401-1458350954=:21643
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v12-arla-cvs-for-linux-2.6.3x-to-4.5
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1603190229140.21643@suiko.acc.umu.se>
Content-Description:
Content-Disposition: attachment; filename=patch-v12-arla-cvs-for-linux-2.6.3x-to-4.5
ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLWN2cy1vbGQvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX2F0dHIuaA0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRl
L25ucGZzL25ucGZzX2F0dHIuaAkyMDA2LTEwLTI0IDE4OjMzOjMwLjAwMDAw
MDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBm
c19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAwMDAwMDAgKzAxMDAN
CkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBmc19hdHRyIHsNCiAg
ICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50MzJfdAkJeGFfdHlw
ZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QJCXhh
X3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisjZWxzZQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K
KyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90CQl4YV9naWQ7DQor
I2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisgICAgdWludDMyX3QJ
CXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAgICAgdWludDMyX3QJ
CXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRpbWU7DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz
L25ucGZzX21lc3NhZ2UuaCBhcmxhL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5w
ZnNfbWVzc2FnZS5oDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2luY2x1ZGUv
bm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDktMDItMjQgMjE6MjA6NTUuMDAw
MDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9pbmNsdWRlL25ucGZzL25u
cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTUyLDcgKzUyLDE1IEBAIHR5cGVkZWYgdWludDE2X3Qgbm5w
ZnNfcmlnaHRzOw0KICAqIFRoZSBubnBmc19jcmVkLCBpZiBwYWcgPT0gMCwg
dXNlIHVpZCANCiAgKi8NCiB0eXBlZGVmIHN0cnVjdCBubnBmc19jcmVkIHsN
CisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAgdWludDMyX3QgdWlkOw0KKyNl
bHNlDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP
TigzLDE0LDApDQorICAgIGt1aWRfdCB1aWQ7DQorI2Vsc2UNCisgICAgdWlu
dDMyX3QgdWlkOw0KKyNlbmRpZg0KKyNlbmRpZg0KICAgICBubnBmc19wYWdf
dCBwYWc7DQogfSBubnBmc19jcmVkOw0KIA0KZGlmZiAtdXByTiAtWG5vZGlm
ZiBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaCBh
cmxhL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLWN2
cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAkyMDA2LTEwLTI0
IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEvbm5wZnMvbGlu
dXgvbm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7
DQogICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlm
eSBvcGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5
ICpjYWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAg
dHJhY2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lk
Ow0KKyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2Yg
ZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5k
aWYNCiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11
cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmcy9u
bnBmc19sb2NsLmggYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns
LmgNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNf
bG9jbC5oCTIwMTAtMDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQor
KysgYXJsYS9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2NsLmgJMjAxNi0w
MS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC01MSw3ICs1MSw5
IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5j
bHVkZSA8bGludXgvd2FpdC5oPg0KIA0KIC8qDQpAQCAtMTM4LDEwICsxNDAs
MTcgQEAgdHlwZWRlZiBfX3UzMiAgdWludDMyX3Q7DQogaW50DQogbm5wZnNf
ZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpOw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogaW50DQog
bm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBl
LA0KIAkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2X25hbWUsDQog
CSAgICAgdm9pZCAqZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpOw0KKyNl
bHNlDQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3QgZmls
ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3MsIGNv
bnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0KKyNl
bmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgbm5w
ZnNfZGVudHJ5X29wZXJhdGlvbnM7DQogDQpAQCAtMTk0LDEwICsyMDMsMjEg
QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog
ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg
YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s
aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz
X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog
ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv
dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg
YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl
dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl
cm4gDQpAQCAtMjI5LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9zeXNjYWxs
X2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBubnBmc19k
ZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2VudHJ5X3Vu
aGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisjZGVmaW5l
IG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5oYXNoZWQo
ZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAgICB3aGls
ZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtY3ZzLW9sZC9u
bnBmcy9saW51eC9ubnBmc19ibG9ja3MuYyBhcmxhL25ucGZzL2xpbnV4L25u
cGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u
cGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQuMDAwMDAwMDAwICsw
MjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDE2
LTAyLTIwIDE5OjQ0OjM5LjAwMDAwMDAwMCArMDEwMA0KQEAgLTQzLDYgKzQz
LDExIEBADQogI2luY2x1ZGUgPGxpbnV4L21vdW50Lmg+DQogI2luY2x1ZGUg
PGxpbnV4L21tLmg+DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBL
RVJORUxfVkVSU0lPTigzLDEyLDApDQorZXh0ZXJuIGludCB2ZnNfcGF0aF9s
b29rdXAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwNCisJ
CQkgICBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCwgc3RydWN0IHBhdGgg
Kik7DQorI2VuZGlmDQorDQogLyoNCiAgKiByZXR1cm4gdHJ1ZSBpZiBibG9j
ayBpcyBpbiBjYWNoZQ0KICAqLw0KQEAgLTI5MCw3ICsyOTUsMTMgQEAgbm5w
ZnNfYmxvY2tfZXh0ZW5kKHN0cnVjdCBubnBmc19ub2RlICpubw0KICAgICBi
YWNrbm9kZSA9IGJhY2tmaWxlLT5mX21hcHBpbmctPmhvc3Q7DQogDQogICAg
IG11dGV4X2xvY2soJmJhY2tub2RlLT5pX211dGV4KTsNCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogICAgIHJl
dCA9IHZtdHJ1bmNhdGUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor
I2Vsc2UNCisgICAgcmV0ID0gaW5vZGVfbmV3c2l6ZV9vayhiYWNrbm9kZSwg
bm5wZnNfYmxvY2tzaXplKTsNCisgICAgaWYoIXJldCkNCisgICAgICAgIHRy
dW5jYXRlX3NldHNpemUoYmFja25vZGUsIG5ucGZzX2Jsb2Nrc2l6ZSk7DQor
I2VuZGlmDQogICAgIG11dGV4X3VubG9jaygmYmFja25vZGUtPmlfbXV0ZXgp
Ow0KICAgICANCiAgICAgZmlscF9jbG9zZShiYWNrZmlsZSwgTlVMTCk7DQpA
QCAtMzEzLDE5ICszMjQsMjcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qg
bm5wZnNfbm9kZSAqbm9kZQ0KIAkJIHN0cnVjdCBmaWxlICoqZmlsZSkNCiB7
DQogICAgIGNoYXIgY2FjaGVuYW1lW05OUEZTX0NBQ0hFX1BBVEhfU0laRV07
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigz
LDEsMCkNCisgICAgY2hhciBmdWxsX2NhY2hlbmFtZVtOTlBGU19DQUNIRV9Q
QVRIX1NJWkVdOw0KKyNlbmRpZg0KICAgICB1aW50NjRfdCBibG9ja2luZGV4
ID0gbm5wZnNfYmxvY2tfaW5kZXgob2Zmc2V0KTsNCiAgICAgdWludDMyX3Qg
aWQgPSBub2RlLT5pbmRleDsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3Ag
PSBOTlBGU19GUk9NX1hOT0RFKG5vZGUpOw0KICAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gWE5PREVfVE9fVk5PREUobm9kZSk7DQogICAgIGludCBmbGFn
cyA9IE9fTEFSR0VGSUxFIHwgZmxhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgbmFt
ZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBhdGg7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwyOSkNCiAgICAgdWlkX3Qgc2F2ZXVpZDsNCiAgICAgZ2lkX3Qg
c2F2ZWdpZDsNCi0gICAgaW50IHJldDsNCi0jaWYgTElOVVhfVkVSU0lPTl9D
T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisjZWxzZQ0KICAgICBj
b25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVk
ICpvdmVycmlkZV9jcmVkOw0KICNlbmRpZg0KKyAgICBpbnQgcmV0Ow0KIA0K
ICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9f
Q1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0zMzQsMTIgKzM1MywyMiBA
QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog
CXJldCA9IHNucHJpbnRmKGNhY2hlbmFtZSwgc2l6ZW9mKGNhY2hlbmFtZSks
DQogCQkgICAgICAgTk5QRlNfQ0FDSEVfRElSX1BBVEgsDQogCQkgICAgICAg
aWQgLyAweDEwMCwgaWQgJSAweDEwMCk7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkNCisJcmV0ID0gc25wcmlu
dGYoZnVsbF9jYWNoZW5hbWUsIHNpemVvZihjYWNoZW5hbWUpLA0KKwkJICAg
ICAgICIvdXNyL2FybGEvY2FjaGUvIiBOTlBGU19DQUNIRV9ESVJfUEFUSCwN
CisJCSAgICAgICBpZCAvIDB4MTAwLCBpZCAlIDB4MTAwKTsNCisjZW5kaWYN
CiAgICAgfSBlbHNlIHsNCiAJcmV0ID0gc25wcmludGYoY2FjaGVuYW1lLCBz
aXplb2YoY2FjaGVuYW1lKSwNCiAJCSAgICAgICBOTlBGU19DQUNIRV9GSUxF
X1BBVEgsDQogCQkgICAgICAgaWQgLyAweDEwMCwgaWQgJSAweDEwMCwNCiAJ
CSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKWJsb2NraW5kZXgpOw0KLQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywx
LDApDQorCXJldCA9IHNucHJpbnRmKGZ1bGxfY2FjaGVuYW1lLCBzaXplb2Yo
Y2FjaGVuYW1lKSwNCisJCSAgICAgICAiL3Vzci9hcmxhL2NhY2hlLyIgTk5Q
RlNfQ0FDSEVfRklMRV9QQVRILA0KKwkJICAgICAgIGlkIC8gMHgxMDAsIGlk
ICUgMHgxMDAsDQorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylibG9j
a2luZGV4KTsNCisjZW5kaWYNCiAJaWYgKCFubnBmc19ibG9ja19oYXZlX3Ao
bm9kZSwgb2Zmc2V0KSAmJiAoZmxhZ3MgJiBPX0NSRUFUKSA9PSAwKSB7DQog
CSAgICBwcmludGsoS0VSTl9FTUVSRyAicmVhZGluZyBibG9jayAlczogbm90
IHRoZXJlXG4iLCBjYWNoZW5hbWUpOw0KIAkgICAgQlVHKCk7DQpAQCAtMzUw
LDE0ICszNzksMTIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf
bm9kZSAqbm9kZQ0KICAgICBCVUdfT04oIW5ucGZzcC0+Y2FjaGVkaXIgfHwg
IW5ucGZzcC0+Y2FjaGVyb290KTsNCiAgICAgDQogICAgIC8qIHVzZSB0aGUg
bmZzZCB0cmljayB0byBnaXZlIHVzIGFjY2VzcyAqLw0KLSNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQog
ICAgIHNhdmV1aWQgPSBjdXJyZW50LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9
IGN1cnJlbnQtPmZzZ2lkOw0KICAgICBjdXJyZW50LT5mc3VpZCA9IG5ucGZz
cC0+dWlkOw0KICAgICBjdXJyZW50LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0K
ICNlbHNlDQotICAgIHNhdmV1aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQotICAg
IHNhdmVnaWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQogICAgIG92ZXJyaWRlX2Ny
ZWQgPSBwcmVwYXJlX2NyZWRzKCk7DQogICAgIGlmIChvdmVycmlkZV9jcmVk
ID09IE5VTEwpDQogICAgICAgICByZXR1cm4gLUVOT01FTTsNCkBAIC0zNjYs
MTEgKzM5MywyMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19u
b2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMob3Zl
cnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICByZXQgPSB2ZnNf
cGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJv
b3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAmIE9fQ1JFQVQg
PyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg
ICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5w
ZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsIDAsICZuZC5wYXRo
KTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw
LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h
bWUsIDAsICZwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxLDApDQogICAgIGlmIChyZXQpIHsN
CisjZWxzZQ0KKyAgICBpZiAocmV0ICYmICEoZmxhZ3MgJiBPX0NSRUFUKSkg
ew0KKyNlbmRpZg0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5t
YXNrczsNCiAJdWludDMyX3QgbWFzazsNCiANCkBAIC0zOTYsMTcgKzQzNSwz
NyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2Rl
DQogICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhY
WCBtb2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEs
MCkNCiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgm
bmQsIDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtl
cm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAmbmQu
cGF0aCwgMCk7CQ0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9
IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIGZ1bGxfY2FjaGVuYW1lLCAm
cGF0aCwgMCk7CQ0KKyNlbmRpZg0KIAlpZiAoSVNfRVJSKGRlbnRyeSkpIHsN
CiAJICAgIHJldCA9IFBUUl9FUlIoZGVudHJ5KTsNCiAJfSBlbHNlIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogCSAgICByZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lu
b2RlLCBkZW50cnksIFNfSVJVU1J8U19JV1VTUiwgJm5kKTsNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQor
CSAgICAvKiBYWFggc2hvdWxkIHRoZSBsYXN0IGFyZ3VtZW50IHRvIHZmc19j
cmVhdGU6IGJvb2wgd2FudF9leGNsLCBiZSAwIG9yIDE/ICovDQorCSAgICBy
ZXQgPSB2ZnNfY3JlYXRlKG5kLnBhdGguZGVudHJ5LT5kX2lub2RlLCBkZW50
cnksIFNfSVJVU1J8U19JV1VTUiwgMCk7DQorI2Vsc2UNCisJICAgIC8qIFhY
WCBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9v
bCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19j
cmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxT
X0lXVVNSLCAwKTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCSAgICBkcHV0KGRlbnRy
eSk7DQorCSAgICBtdXRleF91bmxvY2soJm5kLnBhdGguZGVudHJ5LT5kX2lu
b2RlLT5pX211dGV4KTsNCisJICAgIHBhdGhfcHV0KCZuZC5wYXRoKTsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZuZC5wYXRoLCBkZW50cnkp
Ow0KKyNlbHNlDQorCSAgICBkb25lX3BhdGhfY3JlYXRlKCZwYXRoLCBkZW50
cnkpOw0KKyNlbmRpZg0KIAl9DQogDQotCW11dGV4X3VubG9jaygmbmQucGF0
aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KLQlwYXRoX3B1dCgmbmQu
cGF0aCk7DQotDQogCWlmIChyZXQpIHsNCiAJICAgIHByaW50aygibm5wZnNf
YmxvY2tfb3BlbiglcykgY3JlYXRlIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFt
ZSwgLXJldCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQpAQCAtNDIx
LDE0ICs0ODAsMjIgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5wZnNf
bm9kZSAqbm9kZQ0KICAgICB9IGVsc2Ugew0KICNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkpDQogCXN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50
LCBmbGFncyk7DQotI2Vsc2UNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgICAgIHN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50
LCBmbGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgICAgIHN0
cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4oJm5kLnBhdGgsIGZsYWdzLCBj
dXJyZW50X2NyZWQoKSk7DQorI2Vsc2UNCisgICAgICAgIHN0cnVjdCBmaWxl
ICpmID0gZGVudHJ5X29wZW4oJnBhdGgsIGZsYWdzLCBjdXJyZW50X2NyZWQo
KSk7DQogI2VuZGlmDQogCWlmIChJU19FUlIoZikpIHsNCiAJICAgIHJldCA9
IFBUUl9FUlIoZik7DQogCSAgICBwcmludGsoIm5ucGZzX2Jsb2NrX29wZW4o
JXMpIG9wZW4gZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1lLCAtcmV0KTsNCiAJ
ICAgIG5ucGZzX2RlYnVnX29vcHMoKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkgICAgcGF0aF9wdXQo
Jm5kLnBhdGgpOw0KKyNlbHNlDQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQor
I2VuZGlmDQogCX0gZWxzZSB7DQogCSAgICAqZmlsZSA9IGY7DQogCX0NCkBA
IC00MzcsNyArNTA0LDcgQEAgbm5wZnNfYmxvY2tfb3BlbihzdHJ1Y3Qgbm5w
ZnNfbm9kZSAqbm9kZQ0KICAgICAvKiBwYXRoX3JlbGVhc2UoKSBpcyB1c3Vh
bGx5IGhhbmRsZWQgb24gY2xvc2UgKi8NCiANCiAgb3V0Og0KLSNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjkp
DQogICAgIGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsNCiAgICAgY3VycmVu
dC0+ZnNnaWQgPSBzYXZlZ2lkOw0KICNlbHNlDQpkaWZmIC11cHJOIC1Ybm9k
aWZmIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBh
cmxhL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jDQotLS0gYXJsYS1jdnMt
b2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMDYtMTItMTEgMTc6
MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u
bnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTExMiwxMCArMTEyLDE1IEBAIG5ucGZzX3ByaW50X2FsaWFz
ZXMoY29uc3Qgc3RydWN0IGlub2RlICoNCiB2b2lkDQogbm5wZnNfcHJpbnRf
YWxpYXNlc19yZWFsKGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQorICAg
IHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiAgICAgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5Ow0KICAgICBpbnQgYmFpbG91dCA9IDEwMDsN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Myw2LDApDQogICAgIGFsaWFzID0gaW5vZGUtPmlfZGVudHJ5Lm5leHQ7DQog
ICAgIHdoaWxlIChhbGlhcyAhPSAmaW5vZGUtPmlfZGVudHJ5KSB7DQogCWlm
ICgtLWJhaWxvdXQgPCAwKSB7DQpAQCAtMTMxLDYgKzEzNiwyNiBAQCBubnBm
c19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGluDQogCX0NCiAJ
YWxpYXMgPSBhbGlhcy0+bmV4dDsNCiAgICAgfQ0KKyNlbHNlDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAg
ICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUt
PmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3Jf
ZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMp
IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks
ICZpbm9kZS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQor
CWlmICgtLWJhaWxvdXQgPCAwKSB7DQorCSAgICBwcmludGsoIiAuLi4iKTsN
CisJICAgIGJyZWFrOw0KKwl9DQorCWlmIChkZW50cnkpIHsNCisJICAgIHBy
aW50aygiICUuKnMoJXApIiwgKGludClkZW50cnktPmRfbmFtZS5sZW4sDQor
CQkgICBkZW50cnktPmRfbmFtZS5uYW1lLCBkZW50cnkpOw0KKwkgICAgaWYg
KG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoJmRlbnRyeS0+ZF9oYXNoKSkNCisJ
CXByaW50aygiKHVuaGFzaGVkKSIpOw0KKwl9DQorICAgIH0NCisjZW5kaWYN
CiAgICAgcHJpbnRrKCJcbiIpOw0KIH0NCiANCkBAIC0xNDYsNyArMTcxLDEx
IEBAIG5ucGZzX3ByaW50X2NoaWxkcmVuKGNvbnN0IHN0cnVjdCBkZW50cnkN
CiANCiAgICAgd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9zdWJkaXJz
KSB7DQogCXN0cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkN
CiAJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry
dWN0IGRlbnRyeSwgZF91LmRfY2hpbGQpOw0KKyNlbHNlDQorCXN0cnVjdCBk
ZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBkZW50cnks
IGRfY2hpbGQpOw0KKyNlbmRpZg0KIA0KIAlwcmludGsoIiAlLipzKCVwKSIs
IChpbnQpY2hpbGQtPmRfbmFtZS5sZW4sDQogCSAgICAgICBjaGlsZC0+ZF9u
YW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1j
dnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEvbm5wZnMvbGlu
dXgvbm5wZnNfZGV2LmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5wZnMvbGludXgv
bm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODozMzozNi4wMDAwMDAwMDAgKzAy
MDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMTYtMDEt
MTQgMTY6Mjg6MTkuMDAwMDAwMDAwICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5
IEBAIG5ucGZzX2ludmFsaWRhdGVfYWxsKHN0cnVjdCBubnBmcyAqbm5wZnMN
CiAgICAgTk5QRlNERUIoWERFQk5PREUsICgiZnJlZV9hbGxfbm5wZnNfbm9k
ZXMgc3RhcnRpbmdcbiIpKTsNCiANCiAgICAgc2hyaW5rX2RjYWNoZV9zYihu
bnBmcy0+c2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigyLDYsMzcpDQogICAgIGludmFsaWRhdGVfaW5vZGVzKG5ucGZz
LT5zYik7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTk9E
RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBkb25lXG4iKSk7DQogfQ0KQEAg
LTM3NCw3ICszNzYsMTEgQEAgbm5wZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2Rl
ICogaW5vZGUsIHN0cg0KIHN0YXRpYyBzc2l6ZV90DQogbm5wZnNfZGV2cmVh
ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciAqYnVmLCBzaXplX3QgY291bnQs
IGxvZmZfdCAqcHBvcykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2
ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZWxzZQ0K
KyAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXY7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmcyAq
bm5wZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KICAgICBzdHJ1Y3Qgbm5w
ZnNfbGluayAqZmlyc3Q7DQogICAgIGludCByZXQgPSAwLCBlcnJvciA9IDA7
DQpAQCAtNDM5LDggKzQ0NSwxMiBAQCBubnBmc19kZXZ3cml0ZShzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgY29uc3QgDQogDQogICAgIE5OUEZTREVCKFhERUJERVYs
ICgibm5wZnNfZGV2d3JpdGVcbiIpKTsNCiAgICAgDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgZGV2
ID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCi0gICAgbm5w
ZnNwID0gJm5ucGZzW01JTk9SKGRldildOw0KKyNlbHNlDQorICAgIGRldiA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k
aWYNCisgICAgIG5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiANCiAg
ICAgZG93bigmbm5wZnNwLT5jaGFubmVsX3NlbSk7DQogICAgIGlmIChubnBm
c3AtPnN0YXR1cyAmIE5OUEZTX0RFVldSSVRFKSB7DQpAQCAtNTA1LDE5ICs1
MTUsMzcgQEAgbm5wZnNfZGV2d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNv
bnN0IA0KIC8qDQogICogTm90IHVzZWQuDQogICovDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiBzdGF0aWMg
aW50DQogbm5wZnNfZGV2aW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3Ry
dWN0IGZpbGUgKmZpbGUsDQogCSAgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1
bnNpZ25lZCBsb25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5w
ZnNfdW5sb2NrZWRfZGV2aW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQorCSAg
ICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj
ZW5kaWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDIsNiwzNikNCiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBm
c19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCiAJCSAgICAg
ICBpbm9kZS0+aV9yZGV2LCBmaWxlLT5mX2ZsYWdzKSk7DQorI2VsaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAg
ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk
LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfZGVudHJ5LT5k
X2lub2RlLT5pX3JkZXYsIGZpbGUtPmZfZmxhZ3MpKTsNCisjZWxzZQ0KKyAg
ICBOTlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVk
LCBmbGFncyA9ICVkXG4iLA0KKwkJICAgICAgIGZpbGUtPmZfcGF0aC5kZW50
cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+Zl9mbGFncykpOw0KKyNlbmRp
Zg0KICAgICByZXR1cm4gLUVJTlZBTDsNCiB9DQogDQogc3RhdGljIHVuc2ln
bmVkIGludA0KIG5ucGZzX2RldnBvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBv
bGxfdGFibGUgKndhaXQpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIG5ucGZzX2Rldl90IGRl
diA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vsc2UN
CisgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+
ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMg
Km5ucGZzcCA9ICZubnBmc1tNSU5PUihkZXYpXTsNCiAgICAgaW50IHJldCA9
IDA7DQogICAgIA0KQEAgLTk1Myw3ICs5ODEsMTEgQEAgc3RydWN0IGZpbGVf
b3BlcmF0aW9ucyBubnBmc19mb3BzID0gew0KICAgICByZWFkOgkJbm5wZnNf
ZGV2cmVhZCwNCiAgICAgd3JpdGU6CQlubnBmc19kZXZ3cml0ZSwNCiAgICAg
cG9sbDoJCW5ucGZzX2RldnBvbGwsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAgaW9jdGw6CQlubnBm
c19kZXZpb2N0bCwNCisjZWxzZQ0KKyAgICB1bmxvY2tlZF9pb2N0bDoJbm5w
ZnNfdW5sb2NrZWRfZGV2aW9jdGwsDQorI2VuZGlmDQogICAgIHJlbGVhc2U6
CQlubnBmc19kZXZjbG9zZSwNCiAgICAgb3BlbjoJCW5ucGZzX2Rldm9wZW4s
DQogfTsNCkBAIC05NjgsOCArMTAwMCwxMyBAQCBubnBmc19pbml0X2Rldmlj
ZSh2b2lkKQ0KIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCYobm5wZnNbaV0ud2Fp
dF9xdWV1ZSkpOw0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0ubWVzc2FnZXEp
Ow0KIAlubnBmc19pbml0cSgmbm5wZnNbaV0uc2xlZXBxKTsNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM3KQ0KIAlp
bml0X01VVEVYKCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0pOw0KIAlpbml0X01V
VEVYKCZubnBmc1tpXS5jaGFubmVsX3NlbSk7DQorI2Vsc2UNCisJc2VtYV9p
bml0KCZubnBmc1tpXS5pbmFjdGl2ZV9zZW0sIDEpOw0KKwlzZW1hX2luaXQo
Jm5ucGZzW2ldLmNoYW5uZWxfc2VtLCAxKTsNCisjZW5kaWYNCiAJSU5JVF9M
SVNUX0hFQUQoJm5ucGZzW2ldLmluYWN0aXZlX2xpc3QpOw0KIAlubnBmc1tp
XS5ubm9kZXMgPSAwOw0KICAgICB9DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFy
bGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jIGFybGEv
bm5wZnMvbGludXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtY3ZzLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19pbm9kZW9wcy5jCTIwMTAtMDgtMDggMjI6
NDM6MDQuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS9ubnBmcy9saW51eC9u
bnBmc19pbm9kZW9wcy5jCTIwMTYtMDMtMTkgMDI6MDM6MTAuMDAwMDAwMDAw
ICswMTAwDQpAQCAtNDAsMTAgKzQwLDE0IEBADQogI2luY2x1ZGUgPG5ucGZz
L25ucGZzX2Rldi5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19kaXJlbnQu
aD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCisjaW5j
bHVkZSA8bGludXgvYWlvLmg+DQogI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMu
aD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPg0KICNpbmNsdWRlIDxsaW51
eC9wYWdlbWFwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2UtZmxhZ3MuaD4N
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDQs
MSwwKQ0KKyNpbmNsdWRlIDxsaW51eC91aW8uaD4NCisjZW5kaWYNCiAjaW5j
bHVkZSA8bGludXgvd3JpdGViYWNrLmg+DQogI2luY2x1ZGUgPGFzbS9mY250
bC5oPg0KIA0KQEAgLTU0LDExICs1OCwyMyBAQCBSQ1NJRCgiJElkOiBubnBm
c19pbm9kZW9wcy5jLHYgMS4yMjYgMjAxDQogc3RhdGljIGludA0KIG5ucGZz
X2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQgZmxhZyk7DQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRhdGUoc3RydWN0
IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCk7DQotDQor
I2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKTsNCisjZW5k
aWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2RfZGVsZXRlKHN0
cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0aWMNCitpbnQN
CitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
Ow0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZWxlYXNl
KHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMjE0LDggKzIzMCwxMyBA
QCBubnBmc19pbm9kZV92YWxpZChzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KICAq
IG5ucGZzX2xvb2t1cCBub3cgcmV0dXJucyBhIGRlbnRyeS4NCiAgKi8NCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2
LDApDQogc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KIG5ucGZzX2xvb2t1cCAo
c3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry
dWN0IG5hbWVpZGF0YSAqbmQpDQorI2Vsc2UNCitzdGF0aWMgc3RydWN0IGRl
bnRyeSAqDQorbm5wZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2Vu
ZGlmDQogew0KICAgICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9nZXRub2RlIG1z
ZzsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQpAQCAtNDA3LDcgKzQy
OCwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpu
b2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls
ZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu
b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl
DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu
dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u
cGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qg
bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg
IGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDc0LDE1
ICs0OTksMTggQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxl
LCB1X2ludA0KICAqDQogICovDQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDM1KQ0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQogc3RhdGljIGlu
dA0KIG5ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZGVu
dHJ5ICpkZW50cnksIGludCBkYXRhc3luYykNCi0jZWxzZQ0KKyNlbGlmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KIHN0
YXRpYyBpbnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50
IGRhdGFzeW5jKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25ucGZzX2ZzeW5j
KHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQs
IGludCBkYXRhc3luYykNCiAjZW5kaWYNCiB7DQotI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzNSkNCiAg
ICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gZmlsZS0+Zl9wYXRoLmRlbnRy
eTsNCiAjZW5kaWYNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IERFTlRS
WV9UT19JTk9ERShkZW50cnkpOw0KQEAgLTQ5MCw2ICs1MTgsOCBAQCBubnBm
c19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzDQogICAgIHN0
cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiAN
CisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lu
b2RlX3ZhbGlkKGlub2RlKTsNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4g
ZXJyb3I7DQpAQCAtNjIyLDExICs2NTIsMjUgQEAgY2hlY2tfcmlnaHRzIChu
bnBmc19yaWdodHMgcmlnaHRzLCBpbnQgbQ0KICAqIFdlIGRvbid0IGhvbGQg
aV9tdXRleC4NCiAgKi8NCiANCisjaWYgKExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkgfHwgTElOVVhfVkVSU0lPTl9DT0RF
ID49IEtFUk5FTF9WRVJTSU9OKDMsMSwwKSkNCiBzdGF0aWMgaW50DQogbm5w
ZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSkN
CisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19wZXJtaXNzaW9uKHN0cnVj
dCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp
DQorI2VuZGlmDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KLSAgICBubnBm
c19wYWdfdCBwYWcgPSBubnBmc19nZXRfcGFnKCk7DQorICAgIG5ucGZzX3Bh
Z190IHBhZzsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDMsMSwwKQ0KKyAgICBpZiAobW9kZSAmIE1BWV9OT1RfQkxPQ0sp
DQorICAgICAgICByZXR1cm4gLUVDSElMRDsNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KKyAgICBpZiAo
ZmxhZ3MgJiBJUEVSTV9GTEFHX1JDVSkNCisgICAgICAgIHJldHVybiAtRUNI
SUxEOw0KKyNlbmRpZg0KKw0KKyAgICBwYWcgPSBubnBmc19nZXRfcGFnKCk7
DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWNj
ZXNzICglcCkgbW9kZSA9IDAlbyBhbGlhc2VzOiIsIGlub2RlLCBtb2RlKSk7
DQogICAgIG5ucGZzX3ByaW50X2FsaWFzZXMoaW5vZGUpOw0KQEAgLTc4NCwx
MSArODI4LDE5IEBAIG5ucGZzX2RhdGFfdmFsaWQoc3RydWN0IGlub2RlICpp
bm9kZSwgdV8NCiBpbnQgbm5wZnNfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICog
ZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hKQ0KIHsNCiAgICAg
aW50IGZsYWdzLCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2Rl
ICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQor
ICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5
LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFj
ZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsNCiANCiAgICAgTk5QRlNE
RUIoWERFQlZOT1BTLCAoIm5ucGZzX21tYXAgaW5vZGU6ICVwXG4iLCBpbm9k
ZSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9kZW50
cnkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3ByaW50X3BhdGgoZmlsZS0+Zl9w
YXRoLmRlbnRyeSk7DQorI2VuZGlmDQogICAgIE5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19tbWFwIGFsaWFzZXM6IikpOw0KICAgICBubnBmc19wcmlu
dF9hbGlhc2VzKGlub2RlKTsNCiAgICAgDQpAQCAtODIzLDI4ICs4NzUsNTEg
QEAgaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAqIGZpbGUsIA0K
ICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0KIG5ucGZzX2Fp
b19yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJICAgICAgIGNvbnN0IHN0
cnVjdCBpb3ZlYyAqaW92LCB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsDQogCSAg
ICAgICBsb2ZmX3QgcG9zKQ0KKyNlbHNlDQorc3RhdGljIHNzaXplX3QNCitu
bnBmc19yZWFkX2l0ZXIoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92
X2l0ZXIgKnRvKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsN
CiAgICAgc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEyLDAp
DQogICAgIHNzaXplX3QgY291bnQgPSBpb2NiLT5raV9sZWZ0Ow0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMSwwKQ0K
KyAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbmJ5dGVzOw0KKyNlbHNl
DQorICAgIHNzaXplX3QgY291bnQgPSBpb3ZfaXRlcl9jb3VudCh0byk7DQor
I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUt
PmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNl
bmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19Y
Tk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVMTCkNCiAJ
Tk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmlsZSglcCk6IHRv
a2VuczogMHgleFxuIiwNCiAJCQkgICAgIGlub2RlLCB4bi0+dG9rZW5zKSk7
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTYsMCkNCiAgICAgZXJyb3IgPSBubnBmc19kYXRhX3ZhbGlkKGlub2Rl
LCBOTlBGU19EQVRBX1IsIHBvcywgcG9zICsgY291bnQpOw0KKyNlbHNlDQor
ICAgIGVycm9yID0gbm5wZnNfZGF0YV92YWxpZChpbm9kZSwgTk5QRlNfREFU
QV9SLCBpb2NiLT5raV9wb3MsIGlvY2ItPmtpX3BvcyArIGNvdW50KTsNCisj
ZW5kaWYNCiAgICAgaWYgKGVycm9yKSB7DQogCU5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19yZWFkX2ZpbGU6IGRhdGEgbm90IHZhbGlkICVkXG4iLCBl
cnJvcikpOw0KIAlyZXR1cm4gZXJyb3I7DQogICAgIH0NCiAgICAgDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkN
CiAgICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3JlYWQoaW9jYiwgaW92
LCBucl9zZWdzLCBwb3MpOw0KKyNlbHNlDQorICAgIGVycm9yID0gZ2VuZXJp
Y19maWxlX3JlYWRfaXRlcihpb2NiLCB0byk7DQorI2VuZGlmDQogICAgIE5O
UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWFkX2ZpbGU6IGVycm9yID0g
JWRcbiIsIGVycm9yKSk7DQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAt
ODUzLDE3ICs5MjgsMzYgQEAgbm5wZnNfYWlvX3JlYWQoc3RydWN0IGtpb2Ni
ICppb2NiLA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiBzdGF0aWMgc3NpemVfdA0K
IG5ucGZzX2Fpb193cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQljb25z
dCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9zZWdzLA0K
IAkJbG9mZl90IHBvcykNCisjZWxzZQ0KK3N0YXRpYyBzc2l6ZV90DQorbm5w
ZnNfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3Zf
aXRlciAqZnJvbSkNCisjZW5kaWYNCiB7DQogICAgIGludCBlcnJvciA9IDA7
DQogICAgIHN0cnVjdCBmaWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiww
KQ0KICAgICBzc2l6ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkN
CisgICAgc3NpemVfdCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxz
ZQ0KKyAgICBzc2l6ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7
DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0K
KyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9U
T19YTk9ERShpbm9kZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBw
b3M7DQorI2Vsc2UNCisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9w
b3M7DQorI2VuZGlmDQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMs
ICgibm5wZnNfYWlvX3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJ
CSBpbm9kZSwgeG4tPnRva2VucykpOw0KQEAgLTg3Nyw3ICs5NzEsMTEgQEAg
bm5wZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJcmV0dXJu
IGVycm9yOw0KICAgICB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTYsMCkNCiAgICAgZXJyb3IgPSBnZW5lcmlj
X2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGlvdiwgbnJfc2VncywgcG9zKTsNCisj
ZWxzZQ0KKyAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV93cml0ZV9pdGVyKGlv
Y2IsIGZyb20pOw0KKyNlbmRpZg0KICAgICBpZiAoIUlTX0VSUl9WQUxVRShl
cnJvcikpDQogCXhuLT5mbGFncyB8PSBOTlBGU19EQVRBX0RJUlRZOyAvKiBY
WFggcmFjZSAqLw0KIA0KQEAgLTg4NSw5ICs5ODMsMTkgQEAgbm5wZnNfYWlv
X3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwNCiAgICAgcmV0dXJuIGVycm9y
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZzX2NyZWF0ZShzdHJ1
Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KIAkgICAg
IGludCBtb2RlLCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCitzdGF0
aWMgaW50DQorbm5wZnNfY3JlYXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksDQorCSAgICAgdW1vZGVfdCBtb2RlLCBzdHJ1
Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBm
c19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRl
bnRyeSwNCisJICAgICB1bW9kZV90IG1vZGUsIGJvb2wgZXhjbCkNCisjZW5k
aWYNCiB7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KICAgICBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAtMTAzOCw4ICsxMTQ2LDEzIEBAIG5u
cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg
cmV0dXJuIGVycm9yOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywzLDApDQogc3RhdGljIGludA0KIG5ucGZz
X21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRyeSAqZGVu
dHJ5LCBpbnQgbW9kZSkNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19t
a2RpcihzdHJ1Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRy
eSwgdW1vZGVfdCBtb2RlKQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5u
cGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBA
IC0xMjUyLDEyICsxMzY1LDIxIEBAIHN0YXRpYyBpbnQgbm5wZnNfc3ltbGlu
ayhzdHJ1Y3QgaW5vZGUgKmQNCiAvKg0KICAqIFdlIGhvbGQgaV9tdXRleC4N
CiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxMSwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19yZWFkZGlyKHN0cnVj
dCBmaWxlICogZmlsZSwgdm9pZCAqIGRpcmVudCwgZmlsbGRpcl90IGZpbGxk
aXIpDQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfaXRlcmF0ZShzdHJ1
Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkaXJfY29udGV4dCAqY3R4KQ0KKyNl
bmRpZg0KIHsNCiAgICAgaW50IGVycm9yOw0KICAgICBsb2ZmX3Qgb2Zmc2V0
LCBiZWdpbl9vZmZzZXQ7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9k
ZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0
cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lu
b2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgaW5vZGUgKmNhY2hlX2lub2Rl
Ow0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9E
RShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMjgxLDYgKzE0MDMs
NyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAq
DQogDQogICAgIGNhY2hlX2lub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+
aG9zdDsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxMSwwKQ0KICAgICB3aGlsZSAoZmlsZS0+Zl9wb3MgPCBpX3Np
emVfcmVhZChjYWNoZV9pbm9kZSkpIHsNCiAJTk5QRlNERUIoWERFQlJFQURE
SVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgZmlsZS0+Zl9wb3M6ICVk
IGlfc2l6ZTogJWRcbiIsDQpAQCAtMTI5Myw2ICsxNDE2LDIwIEBAIG5ucGZz
X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJbWFwcGlu
ZyA9IGJhY2tmaWxlLT5mX21hcHBpbmc7DQogCWlucGFnZSA9IGZpbGUtPmZf
cG9zICYgKFBBR0VfQ0FDSEVfU0laRS0xKTsNCiAJcGFnZV9udW0gPSBmaWxl
LT5mX3BvcyA+PiBQQUdFX0NBQ0hFX1NISUZUOw0KKyNlbHNlDQorICAgIHdo
aWxlIChjdHgtPnBvcyA8IGlfc2l6ZV9yZWFkKGNhY2hlX2lub2RlKSkgew0K
KwlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJICAgICAgICgibm5wZnNfcmVh
ZGRpciBmaWxlLT5mX3BvczogJWQgaV9zaXplOiAlZFxuIiwNCisJCShpbnQp
IGN0eC0+cG9zLCAoaW50KSBjYWNoZV9pbm9kZS0+aV9zaXplKSk7DQorCWJl
Z2luX29mZnNldCA9IGN0eC0+cG9zICZ+IChOTlBGU19ESVJFTlRfQkxPQ0tT
SVpFIC0gMSk7DQorCW9mZnNldCA9IGN0eC0+cG9zICYgKE5OUEZTX0RJUkVO
VF9CTE9DS1NJWkUgLSAxKTsNCisJY3R4LT5wb3MgPSBiZWdpbl9vZmZzZXQ7
DQorCU5OUEZTREVCKFhERUJSRUFERElSLCAoIm5ucGZzX3JlYWRkaXIgYmVn
aW5fb2Zmc2V0OiAlZCBvZmZzZXQ6ICVkXG4iLA0KKwkJCSAgICAgKGludCli
ZWdpbl9vZmZzZXQsIChpbnQpb2Zmc2V0KSk7DQorCW1hcHBpbmcgPSBiYWNr
ZmlsZS0+Zl9tYXBwaW5nOw0KKwlpbnBhZ2UgPSBjdHgtPnBvcyAmIChQQUdF
X0NBQ0hFX1NJWkUtMSk7DQorCXBhZ2VfbnVtID0gY3R4LT5wb3MgPj4gUEFH
RV9DQUNIRV9TSElGVDsNCisjZW5kaWYNCiANCiAJTk5QRlNERUIoWERFQlJF
QURESVIsDQogCSAgICAgICAoIm5ucGZzX3JlYWRkaXIgaW5wYWdlOiAlZCBw
YWdlX251bTogJWx1XG4iLA0KQEAgLTEzMjgsNiArMTQ2NSw3IEBAIG5ucGZz
X3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAo
aW50KSB4ZGlyZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0
K2JlZ2luX29mZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQt
PmRfZmlsZW5vICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRp
ciAoZGlyZW50LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0x
MzM5LDEyICsxNDc3LDI4IEBAIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUg
KiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGlyIGZpbGxkaXI6
ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsNCiAJICAgIH0N
CisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5vICE9IDANCisJ
CSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwNCisJCQkJICAg
ICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVudC0+ZF9uYW1s
ZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQorCQkJCSAgICAg
RFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERFQlJFQURESVIs
DQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxuIiwgZmlsbGRp
cl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2VuZGlmDQogCSAg
ICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQogCSAgICBpZiAo
eGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KIAkJcHJpbnRrKEtFUk5fRU1F
UkcgIk5OUEZTIFBhbmljOiAiDQogCQkgICAgICAgImVtcHR5IGRpcmVudCBh
dCAlbGxkIGluIG5ucGZzX3JlYWRkaXIsIHBvcyAlZCBzaXplICVkXG4iLA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEx
LDApDQogCQkgICAgICAgKGxvbmcgbG9uZylvZmZzZXQsIChpbnQpZmlsZS0+
Zl9wb3MsDQorI2Vsc2UNCisJCSAgICAgICAobG9uZyBsb25nKW9mZnNldCwg
KGludCljdHgtPnBvcywNCisjZW5kaWYNCiAJCSAgICAgICAoaW50KWNhY2hl
X2lub2RlLT5pX3NpemUpOw0KIAkJTk5QRlNERUIoWERFQlZOT1BTLCAoImlu
b2RlOiAlcCBhbGlhc2VzOiIsIGlub2RlKSk7DQogCQlubnBmc19wcmludF9h
bGlhc2VzKGlub2RlKTsNCkBAIC0xMzYyLDcgKzE1MTYsMTEgQEAgbm5wZnNf
cmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZvaWQgKg0KIAlpZiAob2Zm
c2V0ID4gTk5QRlNfRElSRU5UX0JMT0NLU0laRSkNCiAJICAgIG9mZnNldCA9
IE5OUEZTX0RJUkVOVF9CTE9DS1NJWkU7DQogDQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJZmlsZS0+Zl9w
b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2Vsc2UNCisJY3R4LT5w
b3MgPSBiZWdpbl9vZmZzZXQgKyBvZmZzZXQ7DQorI2VuZGlmDQogDQogCWlm
IChlcnJvciB8fCBvZmZzZXQgPCBOTlBGU19ESVJFTlRfQkxPQ0tTSVpFKQ0K
IAkgICAgYnJlYWs7DQpAQCAtMTM5NSwxMiArMTU1MywyNSBAQCBubnBmc19y
ZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjDQogICogV2UgZG9u
J3QgaG9sZCBpX211dGV4Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiBzdGF0aWMgdm9pZCAq
DQogbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwN
CiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDUsMCkNCitzdGF0aWMgY29u
c3QgY2hhciAqDQorbm5wZnNfZm9sbG93X2xpbmsgKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwNCisJCSB2b2lkICoqcGFnZSkNCisjZWxzZQ0KK3N0YXRpYyBj
b25zdCBjaGFyICoNCitubnBmc19nZXRfbGluayAoc3RydWN0IGRlbnRyeSAq
ZGVudHJ5LA0KKwkJIHN0cnVjdCBpbm9kZSAqaW5vZGUsDQorCQkgc3RydWN0
IGRlbGF5ZWRfY2FsbCAqZG9uZSkNCisjZW5kaWYNCiB7DQogICAgIGludCBl
cnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDQsNSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVO
VFJZX1RPX0lOT0RFKGRlbnRyeSk7DQorI2VuZGlmDQogDQogICAgIE5OUEZT
REVCKFhERUJWTk9QUywgKCJubnBmc19mb2xsb3dfbGlua1xuIikpOw0KICAg
ICANCkBAIC0xNDA4LDcgKzE1NzksMTMgQEAgbm5wZnNfZm9sbG93X2xpbmsg
KHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0KICAgICBpZiAoZXJyb3IpDQogICAg
ICAgIHJldHVybiBFUlJfUFRSKGVycm9yKTsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwyLDApDQogICAgIHJldHVy
biBwYWdlX2ZvbGxvd19saW5rX2xpZ2h0KGRlbnRyeSwgbmQpOw0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0K
KyAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19saWdodChkZW50cnksIHBh
Z2UpOw0KKyNlbHNlDQorICAgIHJldHVybiBwYWdlX2dldF9saW5rKGRlbnRy
eSwgaW5vZGUsIGRvbmUpOw0KKyNlbmRpZg0KIH0NCiANCiAvKg0KQEAgLTE0
OTAsNiArMTY2Nyw4IEBAIG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlu
b2RlICppbm9kZSwNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAg
ICBpbnQgZXJyb3IgPSAwOw0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQog
ICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVc
biIpKTsNCiANCiAgICAgZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9k
ZSk7DQpAQCAtMTUyMyw4ICsxNzAyLDEzIEBAIG5ucGZzX2ZsdXNoKHN0cnVj
dCBmaWxlICpmaWxlLCBmbF9vd25lcl8NCiB7DQogICAgIE5OUEZTREVCKFhE
RUJWTk9QUywgKCJubnBmc19mbHVzaFxuIikpOw0KIA0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIGlm
IChmaWxlICYmIGZpbGUtPmZfZGVudHJ5ICYmIGZpbGUtPmZfZGVudHJ5LT5k
X2lub2RlKQ0KIAlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZf
ZGVudHJ5LT5kX2lub2RlLCBmaWxlKTsNCisjZWxzZQ0KKyAgICBpZiAoZmls
ZSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5ICYmIGZpbGUtPmZfcGF0aC5kZW50
cnktPmRfaW5vZGUpDQorCXJldHVybiBubnBmc19yZWxlYXNlX2ZpbGUoZmls
ZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZmlsZSk7DQorI2VuZGlmDQog
ICAgIGVsc2UNCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTE1MzMsMTAgKzE3MTcs
MjQgQEAgbm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVy
Xw0KICAqIFJldHVybiAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBv
dGhlcndpc2UgMC4NCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIGludA0KLW5ucGZz
X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBu
YW1laWRhdGEgKm5kKSANCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0K
K3N0YXRpYyBpbnQNCitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRy
eSAqZGVudHJ5LCB1bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0K
ICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRl
bnRyeSk7DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCisgICAgaWYgKGZsYWdzICYgTE9PS1VQX1JDVSkN
CisgICAgICAgIHJldHVybiAtRUNISUxEOw0KKyNlbGlmIExJTlVYX1ZFUlNJ
T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIGlmIChu
ZCAmJiBuZC0+ZmxhZ3MgJiBMT09LVVBfUkNVKQ0KKyAgICAgICAgcmV0dXJu
IC1FQ0hJTEQ7DQorI2VuZGlmDQorDQogICAgIE5OUEZTREVCKFhERUJWTk9Q
UywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAgXCIlLipzXCIgKGlub2RlICVw
KVxuIiwNCiAJCSAgICAgICBkZW50cnksDQogCQkgICAgICAgKGludClkZW50
cnktPmRfbmFtZS5sZW4sDQpAQCAtMTU4Miw5ICsxNzgwLDE1IEBAIG5ucGZz
X2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkNCiAgICAgcmV0
dXJuIDA7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigyLDYsMzgpDQogc3RhdGljDQogaW50DQogbm5wZnNfZF9k
ZWxldGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbHNlDQorc3RhdGlj
DQoraW50DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAq
ZGVudHJ5KQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IGlub2RlICppbm9k
ZTsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KQEAgLTE2MTQsNyAr
MTgxOCwxMSBAQCBubnBmc19zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmls
ZSwgbG9mDQogCQkgIHVuc2lnbmVkIGludCBmbGFncykNCiB7DQogICAgIGlu
dCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9
IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVj
dCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
Ow0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9E
RV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBpZiAoeG4gIT0gTlVM
TCkNCkBAIC0xNzA3LDYgKzE5MTUsOCBAQCBubnBmc193cml0ZV9iYWNrcGFn
ZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogDQogCWludCBlcnJvcjsNCiAJDQor
CSh2b2lkKW9mZnNldDsNCisNCiAJZG8gew0KIAkJZXJyb3IgPSBwYWdlY2Fj
aGVfd3JpdGVfYmVnaW4oYmFja2ZpbGUsIG1hcHBpbmcsIDAsIGxlbiwNCiAJ
CQkJCSAgICAgIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwNCkBAIC0xNzMw
LDcgKzE5NDAsMTEgQEAgbm5wZnNfd3JpdGVfYmFja3BhZ2Uoc3RydWN0IHBh
Z2UgKnBhZ2UsIA0KIAkJcHJpbnRrKCJubnBmc193cml0ZV9iYWNrcGFnZTog
RUlPXG4iKTsNCiAjaWZkZWYgTk5QRlNfU0FGRV9TWU5DDQogCWVsc2UNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMy
KQ0KIAkJKHZvaWQpc3luY19wYWdlX3JhbmdlKG1hcHBpbmctPmhvc3QsIG1h
cHBpbmcsIG9mZnNldCwgbGVuKTsNCisjZWxzZQ0KKwkJKHZvaWQpZmlsZW1h
cF93cml0ZV9hbmRfd2FpdF9yYW5nZShtYXBwaW5nLCBvZmZzZXQsIG9mZnNl
dCArIGxlbiAtIDEpOw0KKyNlbmRpZg0KICNlbmRpZg0KIAkNCiAJcmV0dXJu
IGVycm9yOw0KQEAgLTE3NDcsNiArMTk2MSw4IEBAIG5ucGZzX3JlYWRfYmFj
a3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHMNCiAJc3RydWN0IHBhZ2UgKmJh
Y2twYWdlOw0KIAl1bnNpZ25lZCBsb25nIG9mZnNldDsNCiANCisJKHZvaWQp
b2Zmc2V0Ow0KKw0KIAliYWNrcGFnZSA9IHJlYWRfbWFwcGluZ19wYWdlKG1h
cHBpbmcsIG4sIGJhY2tmaWxlKTsNCiAJaWYgKCFJU19FUlIoYmFja3BhZ2Up
KSB7DQogCQl3YWl0X29uX3BhZ2VfbG9ja2VkKGJhY2twYWdlKTsNCkBAIC0x
ODk0LDExICsyMTEwLDE3IEBAIG5ucGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0
IGZpbGUgKmZpbGUsIHMNCiANCiAJaWYgKG1vZHNpemUgPiBpX3NpemVfcmVh
ZChpbm9kZSkpIHsNCiAJCWludCBlcnJvcjsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw4LDApDQogCQllcnJvciA9IHZt
dHJ1bmNhdGUoaW5vZGUsIG1vZHNpemUpOw0KKyNlbHNlDQorCQllcnJvciA9
IGlub2RlX25ld3NpemVfb2soaW5vZGUsIG1vZHNpemUpOw0KKwkJaWYoIWVy
cm9yKQ0KKwkJCXRydW5jYXRlX3NldHNpemUoaW5vZGUsIG1vZHNpemUpOw0K
KyNlbmRpZg0KIAkJaWYgKGVycm9yKSB7DQogCQkJcHJpbnRrKCJubnBmc19w
cmVwYXJlX3dyaXRlOiB0cnVuY2F0ZSglbGx1KSAtPiAlZFxuIiwNCiAJCQkg
ICAgICAgbW9kc2l6ZSwgLWVycm9yKTsNCi0JCQlCVUcoKTsgLyogWFhYIG5v
dCBjb3JyZWN0ICovDQorCQkJLypCVUcoKTsqLyAvKiBYWFggbm90IGNvcnJl
Y3QgKi8NCiAJCX0NCiAJfQ0KIA0KQEAgLTE5MjUsNyArMjE0Nyw2IEBAIG5u
cGZzX3ByZXBhcmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIHMNCiB9DQog
DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQotDQogc3RhdGljIGludA0KIG5ucGZzX3dyaXRlX2JlZ2luKHN0
cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu
ZywgbG9mZl90IHBvcywNCiB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdz
LCBzdHJ1Y3QgcGFnZSAqKnBhZ2VwLCB2b2lkICoqZnNkYXRhKQ0KQEAgLTE5
MzMsNTggKzIxNTQsNjcgQEAgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBmbGFn
cywgc3RydWN0IHBhZw0KIAlzdHJ1Y3QgcGFnZSAqcGFnZTsNCiAJcGdvZmZf
dCBpbmRleDsNCiAJdW5zaWduZWQgZnJvbTsNCisJaW50IHJldCA9IDA7DQog
DQogCWluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7DQogCWZyb20g
PSBwb3MgJiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQogDQotI2lmZGVmIEFP
UF9GTEFHX05PRlMNCiAJcGFnZSA9IGdyYWJfY2FjaGVfcGFnZV93cml0ZV9i
ZWdpbihtYXBwaW5nLCBpbmRleCwgZmxhZ3MpOw0KLSNlbHNlDQotCXBhZ2Ug
PSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7DQotI2VuZGlm
DQotCWlmIChwYWdlID09IE5VTEwpDQorCWlmICghcGFnZSkNCiAJCXJldHVy
biAtRU5PTUVNOw0KIA0KIAkqcGFnZXAgPSBwYWdlOw0KIA0KLQlyZXR1cm4g
bm5wZnNfcHJlcGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsg
bGVuKTsNCi19DQorCXJldCA9IG5ucGZzX3ByZXBhcmVfd3JpdGUoZmlsZSwg
cGFnZSwgZnJvbSwgZnJvbSArIGxlbik7DQorCWlmIChyZXQpIHsNCisJCXVu
bG9ja19wYWdlKHBhZ2UpOw0KKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2Up
Ow0KKwl9DQogDQorCXJldHVybiByZXQ7DQorfQ0KICNlbmRpZg0KIA0KKy8q
IFhYWCB3ZSB1c2UgdGhlIHN5c3RlbSBwcm92aWRlZCBzaW1wbGVfY29tbWl0
X3dyaXRlIGluc3RlYWQgc28gdGhpcyBmdW5jdGlvbiBpcyB1bnVzZWQgZm9y
IG5vdyAqLw0KKyNpZiAwDQogc3RhdGljIGludA0KIG5ucGZzX2NvbW1pdF93
cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQog
CQkgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCiB7DQotICAgIHN0
cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KLSAg
ICBsb2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9D
QUNIRV9TSElGVCkgKyB0bzsNCisJc3RydWN0IGlub2RlICppbm9kZSA9IHBh
Z2UtPm1hcHBpbmctPmhvc3Q7DQorCWxvZmZfdCBwb3MgPSAoKGxvZmZfdClw
YWdlLT5pbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUKSArIHRvOw0KIA0KLSAg
ICBpZiAocG9zID4gaW5vZGUtPmlfc2l6ZSkgew0KLQlpX3NpemVfd3JpdGUo
aW5vZGUsIHBvcyk7DQorCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKQ0KKwkJ
U2V0UGFnZVVwdG9kYXRlKHBhZ2UpOw0KIA0KLQlzcGluX2xvY2soJmlub2Rl
LT5pX2xvY2spOw0KLQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9CTE9D
S1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQotCXNwaW5fdW5sb2Nr
KCZpbm9kZS0+aV9sb2NrKTsNCi0gICAgfQ0KLSAgICBzZXRfcGFnZV9kaXJ0
eShwYWdlKTsNCisJaWYgKHBvcyA+IGlub2RlLT5pX3NpemUpIHsNCisJCWlf
c2l6ZV93cml0ZShpbm9kZSwgcG9zKTsNCisNCisJCXNwaW5fbG9jaygmaW5v
ZGUtPmlfbG9jayk7DQorCQlpbm9kZS0+aV9ibG9ja3MgPSAocG9zICsgSV9C
TE9DS1NfVU5JVCAtIDEpID4+IElfQkxPQ0tTX0JJVFM7DQorCQlzcGluX3Vu
bG9jaygmaW5vZGUtPmlfbG9jayk7DQorCX0NCisJc2V0X3BhZ2VfZGlydHko
cGFnZSk7DQogDQogI2lmIDANCi0gICAgew0KLQljaGFyICphZGRyOw0KLQlr
bWFwKHBhZ2UpOw0KLQlhZGRyID0gcGFnZV9hZGRyZXNzKHBhZ2UpOw0KLQlO
TlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfY29tbWl0X3dyaXRlKCVwKTog
JXgleCV4JXhcbiIsDQorCXsNCisJICAgIGNoYXIgKmFkZHI7DQorCSAgICBr
bWFwKHBhZ2UpOw0KKwkgICAgYWRkciA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsN
CisJICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19jb21taXRfd3Jp
dGUoJXApOiAleCV4JXgleFxuIiwNCiAJCQkgICAgIGZpbGUtPmZfbWFwcGlu
Zy0+aG9zdCwgDQogCQkJICAgICBhZGRyWzBdLCBhZGRyWzFdLCBhZGRyWzJd
LCBhZGRyWzNdKSk7DQotCWt1bm1hcChwYWdlKTsNCi0gICAgfQ0KKwkgICAg
a3VubWFwKHBhZ2UpOw0KKwl9DQogI2VuZGlmDQotICAgIA0KLSAgICByZXR1
cm4gMDsNCisgDQorCXJldHVybiAwOw0KIH0NCisjZW5kaWYNCiANCiAjaWYg
TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN
Ci0NCisvKiBYWFggd2UgdXNlIHRoZSBzeXN0ZW0gcHJvdmlkZWQgc2ltcGxl
X3dyaXRlX2VuZCBpbnN0ZWFkIHNvIHRoaXMgZnVuY3Rpb24gaXMgdW51c2Vk
IGZvciBub3cgKi8NCisjaWYgMA0KIHN0YXRpYyBpbnQNCiBubnBmc193cml0
ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNl
ICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KIAkJdW5zaWduZWQgbGVuLCB1bnNp
Z25lZCBjb3BpZWQsIHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEp
DQpAQCAtMTk5MywxMCArMjIyMywxOCBAQCBubnBmc193cml0ZV9lbmQoc3Ry
dWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCS8qIHplcm8gdGhlIHN0YWxl
IHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAqLw0K
IAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJdm9pZCAqa2FkZHIgPSBr
bWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZvaWQg
KmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQogCQltZW1z
ZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQpOw0K
IAkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJa3VubWFwX2F0
b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBfYXRv
bWljKGthZGRyKTsNCisjZW5kaWYNCiAJfQ0KIA0KIAlubnBmc19jb21taXRf
d3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQpAQCAt
MjAwNiw3ICsyMjQ0LDcgQEAgbm5wZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxl
ICpmaWxlLCBzdHJ1Yw0KIA0KIAlyZXR1cm4gY29waWVkOw0KIH0NCi0NCisj
ZW5kaWYNCiAjZW5kaWYNCiANCiBjb25zdA0KQEAgLTIwMTUsMTAgKzIyNTMs
MTAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBubnBmc19h
bw0KIAkud3JpdGVwYWdlID0gbm5wZnNfd3JpdGVwYWdlLA0KICNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCS5w
cmVwYXJlX3dyaXRlID0gbm5wZnNfcHJlcGFyZV93cml0ZSwNCi0JLmNvbW1p
dF93cml0ZSA9IG5ucGZzX2NvbW1pdF93cml0ZSwNCisJLmNvbW1pdF93cml0
ZSA9IHNpbXBsZV9jb21taXRfd3JpdGUsDQogI2Vsc2UNCiAJLndyaXRlX2Jl
Z2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQotCS53cml0ZV9lbmQgPSBubnBm
c193cml0ZV9lbmQsDQorCS53cml0ZV9lbmQgPSBzaW1wbGVfd3JpdGVfZW5k
LA0KICNlbmRpZg0KIH07DQogDQpAQCAtMjAyNyw4ICsyMjY1LDEzIEBAIHN0
cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8N
CiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0
aW9ucyA9IHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxNiwwKQ0KICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVh
ZCwNCiAgICAgLmFpb193cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxz
ZQ0KKyAgICAucmVhZF9pdGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAu
d3JpdGVfaXRlcgk9IG5ucGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAg
IC5tbWFwCT0gbm5wZnNfZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZz
X29wZW4sDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEs
NyArMjI4NCwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rl
YWRfb3BlcmF0DQogfTsNCiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u
cGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0g
bm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5u
cGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2Zs
dXNoLA0KIH07DQogDQpAQCAtMjA3OCw2ICsyMzI1LDEwIEBAIHN0cnVjdCBp
bm9kZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfaW5vZGUNCiANCiBzdHJ1Y3Qg
aW5vZGVfb3BlcmF0aW9ucyBubnBmc19saW5rX2lub2RlX29wZXJhdGlvbnMg
PSB7DQogICAgIC5yZWFkbGluayAJCT0gbm5wZnNfcmVhZGxpbmssDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsNSwwKQ0K
ICAgICAuZm9sbG93X2xpbmsgCT0gbm5wZnNfZm9sbG93X2xpbmssDQogICAg
IC5wdXRfbGluayAJCT0gcGFnZV9wdXRfbGluaywNCisjZWxzZQ0KKyAgICAu
Z2V0X2xpbmsJCT0gbm5wZnNfZ2V0X2xpbmssDQorI2VuZGlmDQogfTsNCmRp
ZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u
cGZzX2xvYWQuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYw0KLS0t
IGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJMjAwNi0x
MC0zMSAxMTowMjo0MS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhL25ucGZz
L2xpbnV4L25ucGZzX2xvYWQuYwkyMDE2LTAxLTEzIDIwOjE0OjAyLjAwMDAw
MDAwMCArMDEwMA0KQEAgLTU0LDcgKzU0LDExIEBAIGV4dGVybiBzdHJ1Y3Qg
ZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMNCiANCiBzdHJ1Y3QgZmlsZV9z
eXN0ZW1fdHlwZSBubnBmc19mc190eXBlID0gew0KICAgICAgICBuYW1lOiAg
ICAgICAgICAgIm5ucGZzIiwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICAgICBnZXRfc2I6ICAgICAg
ICAgbm5wZnNfZ2V0X3NiLA0KKyNlbHNlDQorICAgICAgIG1vdW50OiAgICAg
ICAgICBubnBmc19tb3VudCwNCisjZW5kaWYNCiAgICAgICAga2lsbF9zYjog
ICAgICAgIGtpbGxfbGl0dGVyX3N1cGVyLA0KICAgICAgICBvd25lcjogICAg
ICAgICAgVEhJU19NT0RVTEUsDQogfTsNCmRpZmYgLXVwck4gLVhub2RpZmYg
YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYyBhcmxh
L25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9s
ZC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxMC0wOC0wOCAyMjo0
MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u
cGZzX21lc3NhZ2UuYwkyMDE2LTAxLTI0IDE4OjUyOjI4LjAwMDAwMDAwMCAr
MDEwMA0KQEAgLTU1LDkgKzU1LDE1IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNf
ZF9yZW1vdmUoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5Q
RlNERUIoWERFQk1TRywgKCJubnBmc19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5
KSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQogICAg
IGRnZXRfbG9ja2VkKGRlbnRyeSk7DQogICAgIHNwaW5fdW5sb2NrKCZkY2Fj
aGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZkZW50cnktPmRf
bG9jayk7DQorICAgIGRnZXRfZGxvY2soZGVudHJ5KTsNCisgICAgc3Bpbl91
bmxvY2soJmRlbnRyeS0+ZF9sb2NrKTsNCisjZW5kaWYNCiAgICAgZF9kcm9w
KGRlbnRyeSk7DQogICAgIGRwdXQoZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcg
KzEyNywxMSBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBu
bnBmcyAqDQogICAgIHN0cnVjdCBpbm9kZSAqZGksICppbm9kZTsNCiAgICAg
c3RydWN0IGRlbnRyeSAqcGFyZW50ID0gTlVMTDsNCiAgICAgc3RydWN0IHFz
dHIgc3FzdHI7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsN
CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRp
Zg0KICAgICANCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19tZXNz
YWdlX2luc3RhbGxub2RlXG4iKSk7DQogICAgIA0KQEAgLTE3NiwxMiArMTg2
LDI2IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz
ICoNCiAgICAgICoNCiAgICAgICovDQogICAgIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMg
PSBkaS0+aV9kZW50cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZk
aS0+aV9kZW50cnkpIHsNCiAJcGFyZW50ID0gbGlzdF9lbnRyeShhbGlhcywg
c3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQotCXNwaW5fbG9jaygmZGNhY2hl
X2xvY2spOw0KLQlkZ2V0X2xvY2tlZChwYXJlbnQpOw0KLQlzcGluX3VubG9j
aygmZGNhY2hlX2xvY2spOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l
bnRyeShwYXJlbnQsIGFsaWFzLCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsICZk
aS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9m
b3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfdS5kX2Fs
aWFzKSB7DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgc3Bpbl9sb2NrKCZkY2FjaGVf
bG9jayk7DQorICAgIGRnZXRfbG9ja2VkKHBhcmVudCk7DQorICAgIHNwaW5f
dW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl9sb2Nr
KCZwYXJlbnQtPmRfbG9jayk7DQorICAgIGRnZXRfZGxvY2socGFyZW50KTsN
CisgICAgc3Bpbl91bmxvY2soJnBhcmVudC0+ZF9sb2NrKTsNCisjZW5kaWYN
CiAJZGVudHJ5ID0gZF9sb29rdXAocGFyZW50LCAmc3FzdHIpOw0KIAlOTlBG
U0RFQihYREVCTVNHLA0KIAkJICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9k
ZTogYWxpYXMgJXAsIGxvb2t1cCAlcFxuIiwNCkBAIC0yMzMsNyArMjU3LDkg
QEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0K
IAkNCiAJZHB1dChkZW50cnkpOw0KIAlkZW50cnkgPSBOVUxMOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJ
YWxpYXMgPSBhbGlhcy0+bmV4dDsNCisjZW5kaWYNCiAJZHB1dChwYXJlbnQp
Ow0KICAgICB9DQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVz
c2FnZV9pbnN0YWxsbm9kZTogZG9uZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAt
MjY4LDcgKzI5NCwxMyBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxhdHRyKHN0
cnVjdCBubnBmcyAqDQogICAgIH0NCiANCiAgICAgaW5vZGUgPSBYTk9ERV9U
T19WTk9ERSh0KTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMyw2LDApDQogICAgIGRlbnRyeSA9IGxpc3RfZW50cnkoaW5v
ZGUtPmlfZGVudHJ5Lm5leHQsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0K
KyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
MTksMCkNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVu
dHJ5LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0K
KyAgICBkZW50cnkgPSBobGlzdF9lbnRyeShpbm9kZS0+aV9kZW50cnkuZmly
c3QsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFzKTsNCisjZW5kaWYNCiAg
ICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9p
bnN0YWxsYXR0ciBuYW1lOiVzXG4iLA0KIAkJICAgICAgIGRlbnRyeS0+ZF9u
YW1lLm5hbWUpKTsNCkBAIC0zOTYsMTcgKzQyOCwzNSBAQCBubnBmc19tZXNz
YWdlX2luc3RhbGxkYXRhKHN0cnVjdCBubnBmcyAqDQogc3RhdGljIHZvaWQN
CiBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGlu
dCBwYXJlbnQpDQogew0KKyAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAg
c3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KIA0KICBhZ2Fp
bjoNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
Miw2LDM4KQ0KICAgICBzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxz
ZQ0KKyAgICBzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOw0KKyNlbmRpZg0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYs
MCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsNCiAgICAg
d2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0Jc3RydWN0
IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9l
bnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBkX2FsaWFz
KSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnks
ICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0KKyAgICBo
bGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9kZW50cnks
IGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0X2hlYWQg
KnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAqeGQ7DQog
CQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRl
bnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkgPT0gTlVM
TCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBhbmljOiBk
ZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAgIGJyZWFr
Ow0KQEAgLTQyMiw3ICs0NzIsMTEgQEAgY2xlYXJfYWxsX2NoaWxkcmVuIChz
dHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5LT5kX3N1
YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRyeS0+ZF9z
dWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAgPSBzdWJk
aXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3Rf
ZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vs
c2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0
bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0KIAkgICAg
c3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhERUJNU0cs
ICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2RlOiAlcC8l
cCAiDQogCQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4iLA0KQEAg
LTQ0MiwxNCArNDk2LDI0IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAoc3RydWN0
IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVkaWF0ZWx5
ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAwKSB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl
bHNlDQorCSAgICAgICAgc3Bpbl91bmxvY2soJmlub2RlLT5pX2xvY2spOw0K
KyNlbmRpZg0KIAkJbm5wZnNfZF9yZW1vdmUoY2hpbGQpOw0KIAkJZ290byBh
Z2FpbjsNCiAJICAgIH0NCiAJfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4
dDsNCisjZW5kaWYNCiAgICAgfQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogICAgIHNwaW5fdW5sb2NrKCZk
Y2FjaGVfbG9jayk7DQorI2Vsc2UNCisgICAgc3Bpbl91bmxvY2soJmlub2Rl
LT5pX2xvY2spOw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMgdm9pZA0KQEAg
LTcxOSwxMiArNzgzLDIyIEBAIG5ucGZzX21lc3NhZ2VfdmVyc2lvbihzdHJ1
Y3Qgbm5wZnMgKm5ucGYNCiANCiAgICAgLyogc2FuaXR5IGNoZWNrIGJlZm9y
ZSB3ZSBsb29rIGF0IGl0ICovDQogICAgIGlmIChzaXplID09IHNpemVvZigq
bWVzc2FnZSkgJiYgbWVzc2FnZS0+dmVyc2lvbiA9PSBOTlBGU19WRVJTSU9O
KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlz
dHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAlpbnQgZXJyb3I7DQogDQog
CXVpbnQ2NF90IGJsb2Nrc2l6ZSA9IG1lc3NhZ2UtPmJsb2Nrc2l6ZTsNCiAN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2
LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3VwKCIuIiwgMCwgJm5kKTsNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJm5kLnBhdGgpOw0K
KyNlbHNlDQorCWVycm9yID0ga2Vybl9wYXRoKCIuIiwgMCwgJnBhdGgpOw0K
KyNlbmRpZg0KIAlpZiAoZXJyb3IpIHsNCiAJICAgIC8qDQogCSAgICAgKiBC
YWQgY2FjaGUgcm9vdCwganVzdCByZXR1cm4uDQpAQCAtNzM1LDExICs4MDks
MTcgQEAgbm5wZnNfbWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5w
Zg0KIAkJICAgIm5ucGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9s
b29rdXAsICINCiAJCSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBl
bHNlIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KIAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQo
bmQucGF0aC5tbnQpOw0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQo
bmQucGF0aC5kZW50cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0K
KyNlbHNlDQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRo
Lm1udCk7DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRl
bnRyeSk7DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAg
ICANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9O
KDIsNiwyOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDI5KQ0KIAkgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50LT5m
c3VpZDsNCiAJICAgIG5ucGZzcC0+Z2lkID0gY3VycmVudC0+ZnNnaWQ7DQog
I2Vsc2UNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZz
L2xpbnV4L25ucGZzX25vZGUuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX25v
ZGUuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9saW51eC9ubnBmc19ub2Rl
LmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisrKyBh
cmxhL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDE2LTAxLTE0IDE2OjUx
OjExLjAwMDAwMDAwMCArMDEwMA0KQEAgLTEzMiw3ICsxMzIsMTIgQEAgbm5w
ZnNfc2V0c2l6ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1aW50Ng0KIAlwcmlu
dGsoIm5ucGZzX3NldHNpemU6IHRydW5jYXRpbmcgQDB4JWxsdVxuIiwNCiAJ
ICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpc2l6ZSk7DQogI2VuZGlmDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOCww
KQ0KIAl2bXRydW5jYXRlKGlub2RlLCBzaXplKTsgLyogWFhYIHJldHZhbCAq
Lw0KKyNlbHNlDQorCWlmKCFpbm9kZV9uZXdzaXplX29rKGlub2RlLCBzaXpl
KSkNCisJICAgIHRydW5jYXRlX3NldHNpemUoaW5vZGUsIHNpemUpOw0KKyNl
bmRpZg0KIAlubnBmc19ibG9ja190cnVuY2F0ZSh4biwgc2l6ZSk7DQogICAg
IH0NCiB9DQpAQCAtMTUwLDkgKzE1NSwxOCBAQCBubnBmc19hdHRyMmlub2Rl
KGNvbnN0IHN0cnVjdCBubnBmc19hdHRyDQogCXN0cnVjdCB0aW1lc3BlYyBu
b3RpbWUgPSB7MH07DQogDQogCWlub2RlLT5pX21vZGUgICA9IDA7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN
CiAJaW5vZGUtPmlfdWlkICAgID0gMDsNCiAJaW5vZGUtPmlfZ2lkICAgID0g
MDsNCisjZWxzZQ0KKwlpbm9kZS0+aV91aWQgICAgPSBLVUlEVF9JTklUKDAp
Ow0KKwlpbm9kZS0+aV9naWQgICAgPSBLR0lEVF9JTklUKDApOw0KKyNlbmRp
Zg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gMTsNCisjZWxzZQ0KKwlzZXRf
bmxpbmsoaW5vZGUsIDEpOw0KKyNlbmRpZg0KIAlpbm9kZS0+aV9hdGltZSAg
PSBub3RpbWU7DQogCWlub2RlLT5pX210aW1lICA9IG5vdGltZTsNCiAJaW5v
ZGUtPmlfY3RpbWUgID0gbm90aW1lOw0KQEAgLTE2OSw3ICsxODMsMTEgQEAg
bm5wZnNfYXR0cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KICAg
ICBpZiAoWEFfVkFMSURfR0lEKGF0dHIpKQ0KIAlpbm9kZS0+aV9naWQgICAg
PSBhdHRyLT54YV9naWQ7DQogICAgIGlmIChYQV9WQUxJRF9OTElOSyhhdHRy
KSkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywyLDApDQogCWlub2RlLT5pX25saW5rICA9IGF0dHItPnhhX25saW5rOw0K
KyNlbHNlDQorCXNldF9ubGluayhpbm9kZSwgYXR0ci0+eGFfbmxpbmspOw0K
KyNlbmRpZg0KICAgICANCiAgICAgaWYgKFhBX1ZBTElEX1NJWkUoYXR0cikp
IHsNCiAJbm5wZnNfc2V0c2l6ZShpbm9kZSwgYXR0ci0+eGFfc2l6ZSk7DQpA
QCAtNTEwLDEyICs1MjgsMjQgQEAgbm5wZnNfaGFzX3BhZyhjb25zdCBzdHJ1
Y3Qgbm5wZnNfbm9kZSAqeA0KIGludA0KIG5ucGZzX25vZGVfdXNlcnMoc3Ry
dWN0IGlub2RlICppbm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkICpwb3M7DQorI2Vsc2UNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKnBv
czsNCisjZW5kaWYNCiAgICAgaW50IHVzZXJzID0gMDsNCiAgICAgDQogICAg
IC8qIFhYWCB0aGlzIHNob3VsZCBwcm9iYWJseSBiZSBwcm90ZWN0ZWQgc29t
ZWhvdyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAgICAgbGlzdF9mb3JfZWFjaChwb3MsICZpbm9kZS0+
aV9kZW50cnkpIHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaChwb3Ms
ICZpbm9kZS0+aV9kZW50cnkpIHsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRy
eSwgZF9hbGlhcyk7DQorI2Vsc2UNCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5
ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVjdCBkZW50cnksIGRfdS5kX2FsaWFz
KTsNCisjZW5kaWYNCiAJaWYgKG5ucGZzX2Rjb3VudChkZW50cnkpID4gMSkN
CiAJICAgIHVzZXJzKys7DQogICAgIH0NCmRpZmYgLXVwck4gLVhub2RpZmYg
YXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMgYXJs
YS9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy5jDQotLS0gYXJsYS1jdnMt
b2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMJMjAxMC0wOC0wOCAy
Mjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4
L25ucGZzX3N5c2NhbGxzLmMJMjAxNi0wMi0yMCAxOTo0Mzo0Mi4wMDAwMDAw
MDAgKzAxMDANCkBAIC00Miw3ICs0Miw5IEBADQogI2luY2x1ZGUgPG5ucGZz
L25ucGZzX3N5c2NhbGxzLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2Nv
bW1vbi5oPg0KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAjaW5j
bHVkZSA8bGludXgvc21wX2xvY2suaD4NCisjZW5kaWYNCiAjaW5jbHVkZSA8
bGludXgvc21wLmg+DQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCiAN
CkBAIC01MCw2ICs1MiwxMSBAQA0KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0
eS5oPg0KICNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g
S0VSTkVMX1ZFUlNJT04oMyw3LDApDQorI3VuZGVmIFNZU0NBTExIQUNLDQor
LyogdGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qg
d29yayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciwgc2Ugbm5wZnNfc3lzY2Fs
bHMtbG9zc2FnZS5jICovDQorI2VuZGlmDQorDQogI2lmIDANCiAjaWZkZWYg
Q09ORklHX0NPTVBBVA0KICNpbmNsdWRlIDxsaW51eC9pb2N0bDMyLmg+DQpA
QCAtODIsMTIgKzg5LDIyIEBAIHR5cGVkZWYgc3RydWN0IGFmc3Byb2NkYXRh
IHsNCiAgICAgdW5zaWduZWQgbG9uZyBzeXNjYWxsOw0KIH0gYWZzcHJvY2Rh
dGE7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzNikNCiBzdGF0aWMgaW50DQogbm5wZnNfcHJvY2ZzX2lvY3Rs
KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkJ
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNl
bHNlDQorc3RhdGljIGxvbmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0
IGZpbGUgKmZpbGUsDQorCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25l
ZCBsb25nIGFyZyk7DQorI2VuZGlmDQogDQogc3RhdGljIHN0cnVjdCBmaWxl
X29wZXJhdGlvbnMgbm5wZnNfcHJvY2ZzX2ZvcHMgPSB7DQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNikNCiAgICAg
LmlvY3RsID0gbm5wZnNfcHJvY2ZzX2lvY3RsLA0KKyNlbHNlDQorICAgIC51
bmxvY2tlZF9pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0bCwNCisjZW5kaWYN
CiB9Ow0KIA0KIA0KQEAgLTE2MCw4ICsxNzcsMTAgQEAgbm5wZnNfZ2V0X3Bh
Z19zZWModm9pZCkNCiANCiAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtF
Uk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1cnJlbnQtPnVp
ZDsNCi0jZWxzZQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgcmV0dXJuIGN1cnJlbnRfdWlkKCk7
DQorI2Vsc2UNCisgICAgeyBrdWlkX3Qga3VpZCA9IGN1cnJlbnRfdWlkKCk7
IHJldHVybiBrdWlkLnZhbDsgfQ0KICNlbmRpZg0KIH0NCiANCkBAIC0xOTks
NyArMjE4LDEyIEBAIGZpbmRfcGFnKHN0cnVjdCBncm91cF9pbmZvICpnaSkN
CiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJmaW5kX3BhZzogbmdyb3VwcyA9
ICVkXG4iLCBnaS0+bmdyb3VwcykpOw0KIA0KICAgICBmb3IgKGkgPSBnaS0+
bmdyb3VwcyAtIDE7IGkgPj0gMDsgaS0tKSB7DQorI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAJZ2lkX3QgZ3Jv
dXAgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJa2dpZF90IGtncm91
cCA9IEdST1VQX0FUKGdpLCBpKTsNCisJZ2lkX3QgZ3JvdXAgPSBrZ3JvdXAu
dmFsOw0KKyNlbmRpZg0KIAlpZiAoKG5ucGZzX3BhZ190KWdyb3VwID49IE5O
UEZTX1BBR19MTElNICYmIChubnBmc19wYWdfdClncm91cCA8IE5OUEZTX1BB
R19VTElNKSB7DQogCSAgICBOTlBGU0RFQihYREVCU1lTLA0KIAkJICAgICAo
ImZpbmRfcGFnOiBFeGlzdGluZyBwYWcgJXUgYXQgcG9zICV1XG4iLCBncm91
cCwgaSkpOw0KQEAgLTIyMCw3ICsyNDQsMTIgQEAgbm5wZnNfZ2V0X3BhZ19n
cm91cCh2b2lkKQ0KICAgICBubnBmc19wYWdfdCByZXQgPSBjdXJyZW50LT51
aWQ7DQogI2Vsc2UNCiAgICAgc3RydWN0IGdyb3VwX2luZm8gKmdpID0gZ2V0
X2N1cnJlbnRfZ3JvdXBzKCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8
IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgbm5wZnNfcGFnX3QgcmV0
ID0gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICBrdWlkX3Qga3VpZCA9
IGN1cnJlbnRfdWlkKCk7DQorICAgIG5ucGZzX3BhZ190IHJldCA9IGt1aWQu
dmFsOw0KKyNlbmRpZg0KICNlbmRpZg0KICAgICBpbnQgaTsNCiANCkBAIC0y
MzAsNyArMjU5LDExIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiAN
CiAgICAgaSA9IGZpbmRfcGFnKGdpKTsNCiAgICAgaWYgKGkgIT0gTk5QRlNf
UEFHX05PVEZPVU5EKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApDQogCXJldCA9IEdST1VQX0FUKGdpLCBpKTsN
CisjZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gR1JPVVBfQVQoZ2ksIGkpOyBy
ZXQgPSBrZ2lkLnZhbDsgfQ0KKyNlbmRpZg0KIA0KICAgICBwdXRfZ3JvdXBf
aW5mbyhnaSk7DQogDQpAQCAtMjgwLDEwICszMTMsMTcgQEAgc3RvcmVfcGFn
KG5ucGZzX3BhZ190IHBhZ251bSkNCiAJY291bnQgLT0gTkdST1VQU19QRVJf
QkxPQ0s7DQogICAgIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBpZiAoZm91bmQpDQogCUdS
T1VQX0FUKG5ld19naSwgaSkgPSBwYWdudW07DQogICAgIGVsc2UNCiAJR1JP
VVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAxKSA9IHBhZ251bTsN
CisjZWxzZQ0KKyAgICBpZiAoZm91bmQpDQorCXsga2dpZF90IGtnaWQgPSBL
R0lEVF9JTklUKHBhZ251bSk7IEdST1VQX0FUKG5ld19naSwgaSkgPSBrZ2lk
OyB9DQorICAgIGVsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQo
cGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBuZXdfZ2ktPm5ncm91cHMgLSAx
KSA9IGtnaWQ7IH0NCisjZW5kaWYNCiAgICAgDQogICAgIHNldF9jdXJyZW50
X2dyb3VwcyhuZXdfZ2kpOw0KICAgICBwdXRfZ3JvdXBfaW5mbyhuZXdfZ2kp
Ow0KQEAgLTMyNSw4ICszNjUsMTAgQEAgbm5wZnNfZ2V0X3BhZygpDQogDQog
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs
MjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UNCisjZWxp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDAp
DQogICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIHsg
a3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3VpZC52YWw7
IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtNDMyLDcgKzQ3NCw3IEBAIG5ucGZz
X3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6ZSwgb2xkX2cNCiAjZW5kaWYg
LyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYgLyogR1JPVVBQQUdTICovDQog
DQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitzdHJ1Y3Qgbm5wZnNfZmlsZV9o
YW5kbGUgew0KICAgICBubnBmc19kZXZfdCBkZXY7DQogICAgIGlub190IGlu
b2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAtNTE5LDI2ICs1NjEsNTggQEAg
bm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBhcmxhVmljZUlvY3RsIA0KICAq
IGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxvdycNCiAgKi8NCiANCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
IHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChz
dHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9s
bG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK3VzZXJf
cGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1c2VyX3Bh
dGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQogew0KICAgICBjaGFyICprbmFt
ZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAgICAgaW50IGVycm9yID0gMDsN
CiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1c2VyX3BhdGgpOw0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisg
ICAga25hbWUgPSBnZXRuYW1lKHVzZXJfcGF0aCk7DQorI2Vsc2UNCisgICAg
a25hbWUgPSBfX2dldG5hbWUoKTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElT
X0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUp
KTsNCiAgICAgaWYgKGZvbGxvdykNCiAJZmxhZ3MgfD0gTE9PS1VQX0ZPTExP
VzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT
SU9OKDMsNywwKQ0KKyAgICBlcnJvciA9IHN0cm5jcHlfZnJvbV91c2VyKGtu
YW1lLCB1c2VyX3BhdGgsIFBBVEhfTUFYKTsNCisgICAgaWYgKGVycm9yIDwg
MCB8fCBlcnJvciA9PSBQQVRIX01BWCkgew0KKwlfX3B1dG5hbWUoa25hbWUp
Ow0KKwlyZXR1cm4gRVJSX1BUUihlcnJvcik7DQorICAgIH0NCisjZW5kaWYN
CisNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19zeXNjYWxsOiBs
b29raW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBlcnJv
ciA9IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQpOw0KKyNlbGlmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisg
ICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRo
KSk7DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZs
YWdzLCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1dG5hbWUoa25hbWUp
Ow0KKyNlbHNlDQorICAgIF9fcHV0bmFtZShrbmFtZSk7DQorI2VuZGlmDQog
ICAgIGlmIChlcnJvcikNCiAJcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp
DQogICAgIHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAg
cmV0dXJuIHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlu
a2FnZSBsb25nDQpAQCAtNTUzLDEzICs2MjcsMjEgQEAgc3lzX2Fmc19pbnQg
KGludCBvcGVyYXRpb24sDQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3Bp
b2N0bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2Vf
d2FrZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBO
VUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UN
CisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAgICAgDQogICAg
IG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VSTkVMKTsNCiAg
ICAgaWYgKG1zZyA9PSBOVUxMKQ0KICAgICAgIHJldHVybiAtRU5PTUVNOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy
LDYsMzkpDQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisgICAgLyog
WFhYIGxvY2tfa2VybmVsKCkgaXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRkaW5n
IGFuIHByaXZhdGUgbG9jayAqLw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RF
QihYREVCU1lTLCAoInN5c19hZnMga2VybmVsIGxvY2tlZFxuIikpOw0KIA0K
QEAgLTU5Nyw3ICs2NzksMTEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRp
b24sDQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5
LDApDQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFf
cGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50
cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xs
b3dTeW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0K
IAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjkz
LDEzICs3NzksMjEgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQog
ICAgIA0KICB1bmxvY2s6DQogICAgIGlmIChkZW50cnkpDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJcGF0
aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCXBhdGhfcHV0KCZwYXRoKTsN
CisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19z
eXNjYWxsIHJldHVybnMgZXJyb3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAg
ICAgTk5QRlNERUIoWERFQlNZUywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tc
biIpKTsNCiAgICAga2ZyZWUobXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2Vy
bmVsKCk7DQorI2Vsc2UNCisgICAgLyogWFhYIHNlZSB0aGUgY29tbWVudCBh
dCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlmDQogDQogICAgIHJl
dHVybiBlcnJvcjsNCiB9DQpAQCAtNzQ4LDkgKzg0MiwxNSBAQCBzeXNfYWZz
IChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9sbG93U3ltbGlua3Mp
Ow0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19wcm9jZnNfaW9j
dGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsDQog
CQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj
ZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVj
dCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWdu
ZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBhZnNwcm9jZGF0YSBh
cmdzOw0KICAgICBsb25nIHJldDsNCkBAIC04MDcsNyArOTA3LDExIEBAIHN0
YXRpYyBpbnQgbm5wZnNfaW5pdF9wcm9jZnModm9pZCkNCiAgICAgbm5wZnNf
cHJvY2ZzX2Rpci0+b3duZXIgPSBUSElTX01PRFVMRTsNCiAjZW5kaWYNCiAg
ICAgDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTAsMCkNCiAgICAgZW50cnkgPSBjcmVhdGVfcHJvY19lbnRyeShOTlBG
U19QUk9DX05PREUsIDA2NjYsIG5ucGZzX3Byb2Nmc19kaXIpOw0KKyNlbHNl
DQorICAgIGVudHJ5ID0gcHJvY19jcmVhdGUoTk5QRlNfUFJPQ19OT0RFLCAw
NjY2LCBOVUxMLCAmbm5wZnNfcHJvY2ZzX2ZvcHMpOw0KKyNlbmRpZg0KICAg
ICBpZiAoZW50cnkgPT0gTlVMTCkgew0KIAlOTlBGU0RFQihYREVCU1lTLCAo
Im5ucGZzX2luaXRfcHJvY2ZzOiBubyBub2RlXG4iKSk7DQogCXJlbW92ZV9w
cm9jX2VudHJ5KCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsNCkBAIC04
MTcsNyArOTIxLDkgQEAgc3RhdGljIGludCBubnBmc19pbml0X3Byb2Nmcyh2
b2lkKQ0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzApDQogICAgIGVudHJ5LT5vd25lciA9IFRISVNfTU9EVUxFOw0K
ICNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDEwLDApDQogICAgIGVudHJ5LT5wcm9jX2ZvcHMgPSAmbm5wZnNf
cHJvY2ZzX2ZvcHM7DQorI2VuZGlmDQogDQogI2lmZGVmIFNZU0NBTExDT01Q
QVQNCiAgICAgaWYgKHJlZ2lzdGVyX2lvY3RsMzJfY29udmVyc2lvbihBUkxB
X1ZJT0NfU1lTQ0FMTDMyLCBubnBmc19wcm9jZnNfaW9jdGwzMikpIHsNCmRp
ZmYgLXVwck4gLVhub2RpZmYgYXJsYS1jdnMtb2xkL25ucGZzL2xpbnV4L25u
cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhL25ucGZzL2xpbnV4L25ucGZz
X3N5c2NhbGxzLWxvc3NhZ2UuYw0KLS0tIGFybGEtY3ZzLW9sZC9ubnBmcy9s
aW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0wOC0wOCAyMjo0
MzowNS4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25u
cGZzX3N5c2NhbGxzLWxvc3NhZ2UuYwkyMDE2LTAxLTEzIDIxOjUxOjQ5LjAw
MDAwMDAwMCArMDEwMA0KQEAgLTUwLDggKzUwLDE3IEBADQogUkNTSUQoIiRJ
ZDogbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jLHYgMS4xOSAyMDEwLzA4LzA4
IDIwOjQzOjA1IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMyw3LDApDQorLyog
dGhlIG1ldGhvZCB0byByZWFkICdsb3dlcl9ib3VuZCcgZG9lcyBub3Qgd29y
ayBvbiBrZXJuZWwgMy43IGFuZCBsYXRlciAqLw0KKyN1bmRlZiBTWVNDQUxM
SEFDSw0KKyNlbmRpZg0KKw0KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5o
Pg0KKyNpZmRlZiBTWVNDQUxMSEFDSw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCiBzdGF0aWMgdm9pZCAqbG93
ZXJfYm91bmQgPSAma2VybmVsX3RocmVhZDsNCisjZW5kaWYNCisjZW5kaWYN
CiANCiB2b2lkICogX19hdHRyaWJ1dGVfXygod2VhaykpIHN5c19jYWxsX3Rh
YmxlKHZvaWQpOw0KIG5ucGZzX3N5c19jYWxsX2Z1bmN0aW9uICpubnBmc19z
eXNfY2FsbF90YWJsZSA9DQpAQCAtNjYsNiArNzUsOCBAQCBjb25zdCBjaGFy
ICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogI2lmZGVmIF9feDg2XzY0X18N
CiBleHRlcm4gcndsb2NrX3QgdGFza2xpc3RfbG9jayBfX2F0dHJpYnV0ZV9f
KCh3ZWFrKSk7DQogI2VuZGlmDQorDQorI2lmZGVmIFNZU0NBTExIQUNLDQog
c3RhdGljIHZvaWQgKioNCiBnZXRfc3RhcnRfYWRkcih2b2lkKSB7DQogI2lm
ZGVmIF9feDg2XzY0X18NCkBAIC03NCw2ICs4NSw3IEBAIGdldF9zdGFydF9h
ZGRyKHZvaWQpIHsNCiAgICAgcmV0dXJuICh2b2lkICoqKSZtdXRleF9sb2Nr
Ow0KICNlbmRpZg0KIH0NCisjZW5kaWYNCiANCiBzdGF0aWMgaW5saW5lIGlu
dCANCiBrYWxsc3ltX2lzX2VxdWFsKHVuc2lnbmVkIGxvbmcgYWRkciwgY29u
c3QgY2hhciAqbmFtZSkNCkBAIC0xNDIsNiArMTU0LDggQEAgdmVyaWZ5KHZv
aWQgKipwKSB7DQogICAgIHJldHVybiAxOw0KIH0NCiANCisjaWZkZWYgU1lT
Q0FMTEhBQ0sNCisNCiBzdGF0aWMgaW5saW5lIGludCBsb29rc19nb29kKHZv
aWQgKipwKQ0KIHsNCiAgICAgaWYgKCpwIDw9ICh2b2lkKilsb3dlcl9ib3Vu
ZCB8fCAqcCA+PSAodm9pZCopcCkNCkBAIC0xOTEsMyArMjA1LDUgQEAgbm5w
ZnNfZml4dXBfc3lzY2FsbF9sb3NzYWdlKHZvaWQpDQogDQogICAgIHJldHVy
biAwOw0KIH0NCisNCisjZW5kaWYNCmRpZmYgLXVwck4gLVhub2RpZmYgYXJs
YS1jdnMtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEvbm5w
ZnMvbGludXgvbm5wZnNfdmZzb3BzLmMNCi0tLSBhcmxhLWN2cy1vbGQvbm5w
ZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxMC0wOC0wOCAyMjo0MzowNi4w
MDAwMDAwMDAgKzAyMDANCisrKyBhcmxhL25ucGZzL2xpbnV4L25ucGZzX3Zm
c29wcy5jCTIwMTYtMDItMTQgMDE6MzY6MDYuMDAwMDAwMDAwICswMTAwDQpA
QCAtNTAsNyArNTAsOSBAQCBSQ1NJRCgiJElkOiBubnBmc192ZnNvcHMuYyx2
IDEuMTExIDIwMTAvDQogc3RydWN0IG5ucGZzIG5ucGZzW05OTlBGU107DQog
DQogc3RhdGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZCBubnBmc193cml0ZV9zdXBl
cihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYik7DQorI2VuZGlmDQogDQogc3Rh
dGljIGludCBubnBmc19zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBz
dHJ1Y3Qga3N0YXRmcyAqYnVmKTsNCiANCkBAIC01OSw3ICs2MSw5IEBAIHN0
YXRpYyBzdHJ1Y3Qgc3VwZXJfb3BlcmF0aW9ucyBubnBmc19zb3ANCiAgICAg
ZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVfZnJlZSwNCiAgICAgZHJvcF9p
bm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9kZSwNCiAgICAgcHV0X3N1cGVy
CQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHdyaXRlX3N1cGVyCQk6
IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRpZg0KICAgICBzdGF0ZnMJCTog
bm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAtODYsNyArOTAsMTEgQEAgbm5w
ZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUgKmkpDQogCSAqIHJvb3QncyBw
cml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFuZCBub25lIGlzIG5lZWRlZCku
DQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3JlZC51aWQgPSAwOw0KKyNlbHNl
DQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lOSVQoMCk7DQorI2VuZGlmDQog
CW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAllcnJvciA9IG5ucGZzX21lc3Nh
Z2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCkBA
IC0xMjEsOCArMTI5LDEzIEBAIG1ha2Vfcm9vdF9pbm9kZShzdHJ1Y3Qgbm5w
ZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01PREUoJm5vZGUuYXR0ciwgU19J
RkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRfTkxJTksoJm5vZGUuYXR0ciwg
MTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5vZGUuYXR0ciwgMCk7DQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTQsMCkN
CiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VU
X0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxzZQ0KKyAgICBYQV9TRVRfVUlE
KCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkpOw0KKyAgICBYQV9TRVRfR0lE
KCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkpOw0KKyNlbmRpZg0KICAgICBY
QV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7DQogICAgIFhBX1NFVF9NVElN
RSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX0NUSU1FKCZub2RlLmF0
dHIsIDApOw0KQEAgLTE1MSw3ICsxNjQsMTEgQEAgbWFrZV9yb290IChzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBubnBmcy0+cm9vdCA9IGlub2Rl
Ow0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFuZGxpbmcgKi8NCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw0LDApDQogICAg
IGRwID0gZF9hbGxvY19yb290KGlub2RlKTsNCisjZWxzZQ0KKyAgICBkcCA9
IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5kaWYNCiAgICAgbm5wZnNfZF9p
bml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9IGRwOw0KICAgICByZXR1cm4g
MDsNCkBAIC0xNzUsMTMgKzE5MiwyNyBAQCBubnBmc19yZWFkX3N1cGVyIChz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAgIE5OUEZTREVCKFhERUJWRk9Q
UywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdpbiBzZXR0aW5nIHZhcmlhYmxl
c1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAhPSBOVUxMKSB7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJ
c3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKwlzdHJ1Y3QgcGF0aCBw
YXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAllcnJvciA9IHBhdGhfbG9va3Vw
KGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJvciA9IGtlcm5fcGF0aChk
YXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3Bh
dGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRpZg0KIAlpZiAoZXJyb3IpDQog
CSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7DQogCWVsc2UNCisjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAkg
ICAgZGRldiA9IG5kLnBhdGguZGVudHJ5Ow0KKyNlbHNlDQorCSAgICBkZGV2
ID0gcGF0aC5kZW50cnk7DQorI2VuZGlmDQogDQogCWlmICghSVNfRVJSKGRk
ZXYpKSB7DQogCSAgICBtaW5vcmRldmljZSA9IE1JTk9SKGRkZXYtPmRfaW5v
ZGUtPmlfcmRldik7DQpAQCAtMjI1LDYgKzI1Niw3IEBAIG5ucGZzX2ZpbGxf
c3VwZXIgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2INCiAgICAgcmV0dXJuIDA7
DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzkpDQogaW50DQogbm5wZnNfZ2V0X3NiKHN0cnVjdCBmaWxl
X3N5c3RlbV90eXBlICpmc190eXBlLA0KIAkgICAgIGludCBmbGFncywgY29u
c3QgY2hhciAqZGV2X25hbWUsDQpAQCAtMjMyLDEyICsyNjQsMjMgQEAgbm5w
ZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmcw0KIHsNCiAg
ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg
bm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQorI2Vsc2UNCitzdHJ1Y3Qg
ZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBl
ICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywgY29uc3QgY2hhciAqZGV2
X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSkgDQorew0KKyAgICByZXR1cm4g
bW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxf
c3VwZXIpOw0KK30NCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQNCiBu
bnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzYikNCiB7
DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisjZW5kaWYNCiANCiAvKg0K
ICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3Niw3ICszMTksMTEgQEAg
bm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLA0KICAg
ICB0bXAuZl9zcGFyZVsxXSA9IDA7DQogICAgIHRtcC5mX3NwYXJlWzJdID0g
MDsNCiAgICAgdG1wLmZfc3BhcmVbM10gPSAwOw0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIHRtcC5m
X3NwYXJlWzRdID0gMDsNCisjZWxzZQ0KKyAgICB0bXAuZl9mbGFncyA9IDA7
DQorI2VuZGlmDQogICAgICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0K
IH0NCg==
---276651502-1959661401-1458350954=:21643
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-1959661401-1458350954=:21643--