[5062] in arla-drinkers

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

Re: PATCH v2: Arla CVS Current on Linux 2.6.34 to 4.4

daemon@ATHENA.MIT.EDU (Bo Branten)
Sat Jan 16 08:49:35 2016

From arla-drinkers-bounces@stacken.kth.se Sat Jan 16 13:49:35 2016
Return-Path: <arla-drinkers-bounces@stacken.kth.se>
Delivered-To: arla-drinkers-mtg@bloom-picayune.mit.edu
Received: (qmail 1886 invoked from network); 16 Jan 2016 13:49:35 -0000
Received: from mx5.kth.se (130.237.32.10)
  by charon.mit.edu with SMTP; 16 Jan 2016 13:49:35 -0000
Received: from mx5.kth.se (localhost [127.0.0.1])
	by mx5.kth.se (Postfix) with ESMTP id 545682400E0;
	Sat, 16 Jan 2016 14:49:34 +0100 (CET)
X-Virus-Scanned: by amavisd-new at kth.se
Received: from mx5.kth.se ([127.0.0.1])
	by mx5.kth.se (mx5.kth.se [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id pqNzGBNu6ib8; Sat, 16 Jan 2016 14:49:16 +0100 (CET)
Received: from vingummi.stacken.kth.se (lists.stacken.kth.se [130.237.234.174])
	by mx5.kth.se (Postfix) with ESMTP;
	Sat, 16 Jan 2016 14:49:15 +0100 (CET)
Received: from vingummi.stacken.kth.se (localhost [IPv6:::1])
	by vingummi.stacken.kth.se (Postfix) with ESMTP id CB33D14C92A;
	Sat, 16 Jan 2016 14:49:15 +0100 (CET)
Received: by vingummi.stacken.kth.se (Postfix)
 id CC73314CA7D; Sat, 16 Jan 2016 14:49:14 +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 C919D14CA45
 for <arla-drinkers@stacken.kth.se>; Sat, 16 Jan 2016 14:49:14 +0100 (CET)
Received: from mx5.kth.se (localhost [127.0.0.1])
 by mx5.kth.se (Postfix) with ESMTP id BBA4D2400DC
 for <arla-drinkers@stacken.kth.se>; Sat, 16 Jan 2016 14:49:14 +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]:35542
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 sLB4VAq50Gfn for <arla-drinkers@stacken.kth.se>;
 Sat, 16 Jan 2016 14:49:13 +0100 (CET)
Received: from mail.acc.umu.se (mail.acc.umu.se [IPv6:2001:6b0:e:2018::156])
 by mx5.kth.se (Postfix) with ESMTPS
 for <arla-drinkers@stacken.kth.se>; Sat, 16 Jan 2016 14:49:12 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by amavisd-new (Postfix) with ESMTP id C03CD69
 for <arla-drinkers@stacken.kth.se>; Sat, 16 Jan 2016 14:49:12 +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 2CD1268
 for <arla-drinkers@stacken.kth.se>; Sat, 16 Jan 2016 14:49:08 +0100 (MET)
Received: by suiko.acc.umu.se (Postfix, from userid 10005)
 id 1FFFD44B8C; Sat, 16 Jan 2016 14:49:08 +0100 (CET)
Received: from localhost (localhost [127.0.0.1])
 by suiko.acc.umu.se (Postfix) with ESMTP id 1AFCA44B8B
 for <arla-drinkers@stacken.kth.se>; Sat, 16 Jan 2016 14:49:08 +0100 (CET)
Date: Sat, 16 Jan 2016 14:49:08 +0100 (CET)
From: Bo Branten <bosse@acc.umu.se>
To: arla-drinkers@stacken.kth.se
Subject: Re: PATCH v2: Arla CVS Current on Linux 2.6.34 to 4.4
In-Reply-To: <alpine.DEB.2.10.1601150312080.11672@suiko.acc.umu.se>
Message-ID: <alpine.DEB.2.10.1601161447360.16393@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-1358444250-1452952148=:16393"
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-1358444250-1452952148=:16393
Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII

PATCH v2: Arla CVS Current on Linux 2.6.34 to 4.4

Two small corrections in the use of vfs_path_lookup from v3.12 and
iov_iter_count from v4.1. With this patch it should be possible to try
nnpfs on all Linux kernels up to 4.4.

Bo Branten

---276651502-1358444250-1452952148=:16393
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v2-arla-cvs-for-linux-4.4
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.DEB.2.10.1601161449080.16393@suiko.acc.umu.se>
Content-Description: 
Content-Disposition: attachment; filename=patch-v2-arla-cvs-for-linux-4.4

ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvaW5jbHVk
ZS9ubnBmcy9ubnBmc19hdHRyLmggYXJsYS1mb3ItbGludXgtNC40L25ucGZz
L2luY2x1ZGUvbm5wZnMvbm5wZnNfYXR0ci5oDQotLS0gYXJsYS1jdnMvbm5w
ZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODoz
MzozMC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQv
bm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0xMiAx
OToyOTo1MC41MjIwNzIwODQgKzAxMDANCkBAIC0xMTMsOCArMTEzLDEzIEBA
IHN0cnVjdCBubnBmc19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5r
Ow0KICAgICB1aW50MzJfdAkJeGFfdHlwZTsNCiANCisjaWYgKGRlZmluZWQo
X19LRVJORUxfXykgJiYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W
RVJTSU9OKDMsMTQsMCkpDQorICAgIGt1aWRfdAkJeGFfdWlkOw0KKyAgICBr
Z2lkX3QJCXhhX2dpZDsNCisjZWxzZQ0KICAgICB1aW50MzJfdAkJeGFfdWlk
Ow0KICAgICB1aW50MzJfdAkJeGFfZ2lkOw0KKyNlbmRpZg0KIA0KICAgICB1
aW50MzJfdAkJeGFfYXRpbWU7DQogICAgIHVpbnQzMl90CQl4YV9tdGltZTsN
CmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3ZzL25ucGZzL2luY2x1
ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oIGFybGEtZm9yLWxpbnV4LTQuNC9u
bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX21lc3NhZ2UuaA0KLS0tIGFybGEt
Y3ZzL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5oCTIwMDkt
MDItMjQgMjE6MjA6NTUuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS1mb3It
bGludXgtNC40L25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVzc2FnZS5o
CTIwMTYtMDEtMTQgMDA6MjY6MDQuMTI2MDE1MTM2ICswMTAwDQpAQCAtNTIs
NyArNTIsMTEgQEAgdHlwZWRlZiB1aW50MTZfdCBubnBmc19yaWdodHM7DQog
ICogVGhlIG5ucGZzX2NyZWQsIGlmIHBhZyA9PSAwLCB1c2UgdWlkIA0KICAq
Lw0KIHR5cGVkZWYgc3RydWN0IG5ucGZzX2NyZWQgew0KKyNpZiAoZGVmaW5l
ZChfX0tFUk5FTF9fKSAmJiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVM
X1ZFUlNJT04oMywxNCwwKSkNCisgICAga3VpZF90IHVpZDsNCisjZWxzZQ0K
ICAgICB1aW50MzJfdCB1aWQ7DQorI2VuZGlmDQogICAgIG5ucGZzX3BhZ190
IHBhZzsNCiB9IG5ucGZzX2NyZWQ7DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZm
LnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oIGFy
bGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5o
DQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfZnMuaAky
MDA2LTEwLTI0IDE4OjMzOjQ4LjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEt
Zm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19mcy5oCTIw
MTYtMDEtMTMgMjI6NTc6MDYuMzg3NjkzMzM5ICswMTAwDQpAQCAtODQsOCAr
ODQsMTMgQEAgc3RydWN0IG5ucGZzIHsNCiAgICAgc3RydWN0IHZmc21vdW50
ICpjYWNoZXJvb3Q7IC8qIHNpbXBsaWZ5IG9wZW4gb2YgY2FjaGUgYmxvY2tz
ICovDQogICAgIHN0cnVjdCBkZW50cnkgKmNhY2hlZGlyOw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQog
ICAgIHVpZF90IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVu
dGl0eSAqLw0KICAgICBnaWRfdCBnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90
IHVpZDsgLyoga2VlcCB0cmFjayBvZiBkYWVtb24ncyBpZGVudGl0eSAqLw0K
KyAgICBrZ2lkX3QgZ2lkOw0KKyNlbmRpZg0KIA0KICAgICBzdHJ1Y3Qgew0K
IAlpbnQgcmVjdXJzZTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEt
Y3ZzL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaCBhcmxhLWZvci1s
aW51eC00LjQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oDQotLS0g
YXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbG9jbC5oCTIwMTAt
MDgtMDggMjI6NDM6MDYuMDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3It
bGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2xvY2wuaAkyMDE2
LTAxLTEzIDIzOjAxOjEwLjE3ODcwODAzNyArMDEwMA0KQEAgLTUxLDcgKzUx
LDkgQEANCiAjaW5jbHVkZSA8bGludXgvc3RhdC5oPg0KICNpbmNsdWRlIDxs
aW51eC9zdHJpbmcuaD4NCiAjaW5jbHVkZSA8bGludXgvbmFtZWkuaD4NCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5
KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KKyNlbmRpZg0KICNp
bmNsdWRlIDxsaW51eC93YWl0Lmg+DQogDQogLyoNCkBAIC0xMzgsMTAgKzE0
MCwxNyBAQCB0eXBlZGVmIF9fdTMyICB1aW50MzJfdDsNCiBpbnQNCiBubnBm
c19mZXRjaF9yb290KHN0cnVjdCBpbm9kZSAqaSk7DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiBpbnQN
CiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5
cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN
CiAJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgdmZzbW91bnQgKm1udCk7DQor
I2Vsc2UNCitzdHJ1Y3QgZGVudHJ5Kg0KK25ucGZzX21vdW50KHN0cnVjdCBm
aWxlX3N5c3RlbV90eXBlICpmc190eXBlLA0KKwkgICAgIGludCBmbGFncywg
Y29uc3QgY2hhciAqZGV2X25hbWUsDQorCSAgICAgdm9pZCAqZGF0YSk7DQor
I2VuZGlmDQogDQogZXh0ZXJuIHN0cnVjdCBkZW50cnlfb3BlcmF0aW9ucyBu
bnBmc19kZW50cnlfb3BlcmF0aW9uczsNCiANCkBAIC0xOTQsMTAgKzIwMywy
MSBAQCBubnBmc19pd3JpdGVjb3VudCAoc3RydWN0IGlub2RlICppbm9kZSkN
CiAgKiBIZWxwIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIGRlbnRyeS0+ZF9jb3Vu
dCBhIHBvcnRhYmxlIHdheQ0KICAqLw0KIA0KKy8qI2lmIExJTlVYX1ZFUlNJ
T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkqLw0KIHN0YXRpYyBp
bmxpbmUgaW50DQogbm5wZnNfZGNvdW50IChjb25zdCBzdHJ1Y3QgZGVudHJ5
ICpkZW50cnkpDQorLyojZWxzZQ0KK3N0YXRpYyBpbmxpbmUgaW50DQorbm5w
ZnNfZGNvdW50IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmKi8N
CiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiAgICAgcmV0dXJuIGF0b21pY19yZWFkKCZkZW50cnktPmRf
Y291bnQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMTEsMCkNCisgICAgcmV0dXJuIGF0b21pY19yZWFkKChjb25z
dCBhdG9taWNfdCopJmRlbnRyeS0+ZF9jb3VudCk7DQorI2Vsc2UNCisgICAg
cmV0dXJuIGRfY291bnQoZGVudHJ5KTs7DQorI2VuZGlmDQogfQ0KIA0KIGV4
dGVybiANCkBAIC0yMjksNyArMjQ5LDEyIEBAIG5ucGZzX2ZpeHVwX3N5c2Nh
bGxfbG9zc2FnZSh2b2lkKTsNCiAjZW5kaWYNCiANCiAjZGVmaW5lIG5ucGZz
X2Rldl90IGRldl90DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAjZGVmaW5lIG5ucGZzX2RfZW50cnlf
dW5oYXNoZWQoZCkgaGxpc3RfdW5oYXNoZWQoZCkNCisjZWxzZQ0KKyNkZWZp
bmUgbm5wZnNfZF9lbnRyeV91bmhhc2hlZChkKSBobGlzdF9ibF91bmhhc2hl
ZChkKQ0KKyNlbmRpZg0KIA0KICNkZWZpbmUgTk5QRlNfTk9PUCAgICAgIHdo
aWxlKDApe30NCiANCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFybGEtY3Zz
L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jIGFybGEtZm9yLWxpbnV4LTQu
NC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYw0KLS0tIGFybGEtY3ZzL25u
cGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTAtMDgtMDggMjI6NDM6MDQu
MDAwMDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZz
L2xpbnV4L25ucGZzX2Jsb2Nrcy5jCTIwMTYtMDEtMTYgMTQ6MTY6NDkuOTk0
NDM3ODEzICswMTAwDQpAQCAtNDMsNiArNDMsMTEgQEANCiAjaW5jbHVkZSA8
bGludXgvbW91bnQuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiANCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDMsMTIs
MCkNCitleHRlcm4gaW50IHZmc19wYXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5
ICosIHN0cnVjdCB2ZnNtb3VudCAqLA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwg
dW5zaWduZWQgaW50LCBzdHJ1Y3QgcGF0aCAqKTsNCisjZW5kaWYNCisNCiAv
Kg0KICAqIHJldHVybiB0cnVlIGlmIGJsb2NrIGlzIGluIGNhY2hlDQogICov
DQpAQCAtMjkwLDcgKzI5NSwxMyBAQCBubnBmc19ibG9ja19leHRlbmQoc3Ry
dWN0IG5ucGZzX25vZGUgKm5vDQogICAgIGJhY2tub2RlID0gYmFja2ZpbGUt
PmZfbWFwcGluZy0+aG9zdDsNCiANCiAgICAgbXV0ZXhfbG9jaygmYmFja25v
ZGUtPmlfbXV0ZXgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDgsMCkNCiAgICAgcmV0ID0gdm10cnVuY2F0ZShiYWNr
bm9kZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZWxzZQ0KKyAgICByZXQgPSBp
bm9kZV9uZXdzaXplX29rKGJhY2tub2RlLCBubnBmc19ibG9ja3NpemUpOw0K
KyAgICBpZighcmV0KQ0KKyAgICAgICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNr
bm9kZSwgbm5wZnNfYmxvY2tzaXplKTsNCisjZW5kaWYNCiAgICAgbXV0ZXhf
dW5sb2NrKCZiYWNrbm9kZS0+aV9tdXRleCk7DQogICAgIA0KICAgICBmaWxw
X2Nsb3NlKGJhY2tmaWxlLCBOVUxMKTsNCkBAIC0zMTgsMTUgKzMyOSwyNyBA
QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog
ICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gTk5QRlNfRlJPTV9YTk9ERShu
b2RlKTsNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IFhOT0RFX1RPX1ZO
T0RFKG5vZGUpOw0KICAgICBpbnQgZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZs
YWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTksMCkNCiAgICAgc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0K
KyAgICBzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0LDApDQogICAgIHVp
ZF90IHNhdmV1aWQ7DQogICAgIGdpZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisg
ICAga3VpZF90IHNhdmV1aWQ7DQorICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNl
bmRpZg0KICAgICBpbnQgcmV0Ow0KICNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDI5KQ0KICAgICBjb25zdCBzdHJ1Y3Qg
Y3JlZCAqb2xkX2NyZWQ7DQogICAgIHN0cnVjdCBjcmVkICpvdmVycmlkZV9j
cmVkOw0KICNlbmRpZg0KIA0KKyAgICAodm9pZClzYXZldWlkOw0KKyAgICAo
dm9pZClzYXZlZ2lkOw0KKw0KICAgICBCVUdfT04oIW5ucGZzcCk7DQogICAg
IEJVR19PTihmbGFncyAmIE9fQ1JFQVQgJiYgZmlsZSAhPSBOVUxMKTsNCiAN
CkBAIC0zNjYsMTAgKzM4OSwyMiBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVj
dCBubnBmc19ub2RlICpub2RlDQogICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVf
Y3JlZHMob3ZlcnJpZGVfY3JlZCk7DQogI2VuZGlmDQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KICAgICBy
ZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNw
LT5jYWNoZXJvb3QsDQogCQkJICBjYWNoZW5hbWUsDQogCQkJICBmbGFncyAm
IE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCiAJCQkgICZuZCk7DQor
I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
OSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNo
ZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQor
CQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJ
CQkgICZuZC5wYXRoKTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9s
b29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQor
CQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09L
VVBfUEFSRU5UIDogMCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAg
aWYgKHJldCkgew0KIAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5t
YXNrczsNCiAJdWludDMyX3QgbWFzazsNCkBAIC0zOTYsMTYgKzQzMSwzNyBA
QCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQog
ICAgIA0KICAgICBpZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBt
b2RlIGJpdHMgb24gY3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNp
ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkN
CiAJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQs
IDApOwkNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDE5LDApDQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxsIHRvIGtl
cm5fcGF0aF9jcmVhdGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVudCBvcHRp
b25hbD8gKi8NCisJc3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRo
X2NyZWF0ZShBVF9GRENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkNCisjZWxz
ZQ0KKwkvKiBUT0RPOiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhfY3Jl
YXRlKCksIGlzIHRoZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICovDQor
CXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRf
RkRDV0QsIE5VTEwsICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlmIChJU19F
UlIoZGVudHJ5KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50cnkpOw0K
IAl9IGVsc2Ugew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiAJICAgIHJldCA9IHZmc19jcmVhdGUobmQucGF0
aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAm
bmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCisJICAgIC8qIFRPRE86IHNob3VsZCB0aGUgbGFzdCBh
cmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29sIHdhbnRfZXhjbCwgYmUgMCBv
ciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5wYXRoLmRlbnRy
eS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNSfFNfSVdVU1IsIDApOw0KKyNl
bHNlDQorCSAgICAvKiBUT0RPOiBzaG91bGQgdGhlIGxhc3QgYXJndW1lbnQg
dG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4Y2wsIGJlIDAgb3IgMT8gKi8N
CisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0aC5kZW50cnktPmRfaW5vZGUs
IGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAwKTsNCisjZW5kaWYNCiAJICAg
IGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCW11dGV4X3VubG9jaygm
bmQucGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KIAlwYXRoX3B1
dCgmbmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZwYXRoLmRl
bnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBhdGhfcHV0KCZwYXRoKTsN
CisjZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkgICAgcHJpbnRrKCJubnBm
c19ibG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVu
YW1lLCAtcmV0KTsNCkBAIC00MjEsMTQgKzQ3NywyMyBAQCBubnBmc19ibG9j
a19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIH0gZWxzZSB7
DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIs
NiwyOSkNCiAJc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5wYXRo
LmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzKTsNCi0jZWxzZQ0KKyNlbGlm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0K
ICAgICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbihuZC5wYXRo
LmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdzLCBjdXJyZW50X2NyZWQoKSk7
DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o
MywxOSwwKQ0KKwlzdHJ1Y3QgcGF0aCB0bXBfcGF0aCA9IHsgLm1udCA9IG5k
LnBhdGgubW50LCAuZGVudHJ5ID0gbmQucGF0aC5kZW50cnkgfTsNCisgICAg
ICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29wZW4oJnRtcF9wYXRoLCBm
bGFncywgY3VycmVudF9jcmVkKCkpOw0KKyNlbHNlDQorICAgICAgICBzdHJ1
Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZwYXRoLCBmbGFncywgY3VycmVu
dF9jcmVkKCkpOw0KICNlbmRpZg0KIAlpZiAoSVNfRVJSKGYpKSB7DQogCSAg
ICByZXQgPSBQVFJfRVJSKGYpOw0KIAkgICAgcHJpbnRrKCJubnBmc19ibG9j
a19vcGVuKCVzKSBvcGVuIGZhaWxlZDogJWRcbiIsIGNhY2hlbmFtZSwgLXJl
dCk7DQogCSAgICBubnBmc19kZWJ1Z19vb3BzKCk7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIHBh
dGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0aF9wdXQoJnBh
dGgpOw0KKyNlbmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZpbGUgPSBmOw0K
IAl9DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9s
aW51eC9ubnBmc19jb21tb24uYyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMv
bGludXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51
eC9ubnBmc19jb21tb24uYwkyMDA2LTEyLTExIDE3OjMxOjQ2LjAwMDAwMDAw
MCArMDEwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9u
bnBmc19jb21tb24uYwkyMDE2LTAxLTE0IDE2OjE1OjAwLjM0NzQ0NzY1NyAr
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
YW1lLm5hbWUsIGNoaWxkKTsNCmRpZmYgLXVwck4gLVhub2RpZmYudHh0IGFy
bGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFybGEtZm9yLWxpbnV4
LTQuNC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtY3ZzL25u
cGZzL2xpbnV4L25ucGZzX2Rldi5jCTIwMDYtMTAtMjQgMTg6MzM6MzYuMDAw
MDAwMDAwICswMjAwDQorKysgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xp
bnV4L25ucGZzX2Rldi5jCTIwMTYtMDEtMTQgMTY6Mjg6MTkuMjUwNDk1ODIw
ICswMTAwDQpAQCAtMzAwLDcgKzMwMCw5IEBAIG5ucGZzX2ludmFsaWRhdGVf
YWxsKHN0cnVjdCBubnBmcyAqbm5wZnMNCiAgICAgTk5QRlNERUIoWERFQk5P
REUsICgiZnJlZV9hbGxfbm5wZnNfbm9kZXMgc3RhcnRpbmdcbiIpKTsNCiAN
CiAgICAgc2hyaW5rX2RjYWNoZV9zYihubnBmcy0+c2IpOw0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzcpDQogICAg
IGludmFsaWRhdGVfaW5vZGVzKG5ucGZzLT5zYik7DQorI2VuZGlmDQogICAg
IA0KICAgICBOTlBGU0RFQihYREVCTk9ERSwgKCJmcmVlX2FsbF9ubnBmc19u
b2RlcyBkb25lXG4iKSk7DQogfQ0KQEAgLTM3NCw3ICszNzYsMTEgQEAgbm5w
ZnNfZGV2Y2xvc2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cg0KIHN0YXRp
YyBzc2l6ZV90DQogbm5wZnNfZGV2cmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwg
Y2hhciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykNCiB7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks
MCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRf
aW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYg
PSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vu
ZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9S
KGRldildOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbGluayAqZmlyc3Q7DQogICAg
IGludCByZXQgPSAwLCBlcnJvciA9IDA7DQpAQCAtNDM5LDggKzQ0NSwxMiBA
QCBubnBmc19kZXZ3cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QNCiAN
CiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZ3cml0ZVxuIikp
Ow0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywxOSwwKQ0KICAgICBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZS0+aV9yZGV2Ow0KLSAgICBubnBmc3AgPSAmbm5wZnNbTUlOT1IoZGV2
KV07DQorI2Vsc2UNCisgICAgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+
ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KKyAgICAgbm5wZnNwID0gJm5u
cGZzW01JTk9SKGRldildOw0KIA0KICAgICBkb3duKCZubnBmc3AtPmNoYW5u
ZWxfc2VtKTsNCiAgICAgaWYgKG5ucGZzcC0+c3RhdHVzICYgTk5QRlNfREVW
V1JJVEUpIHsNCkBAIC01MDUsMTkgKzUxNSwzNyBAQCBubnBmc19kZXZ3cml0
ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QNCiAvKg0KICAqIE5vdCB1c2Vk
Lg0KICAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzYpDQogc3RhdGljIGludA0KIG5ucGZzX2RldmlvY3RsKHN0
cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KIAkgICAg
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2Vs
c2UNCitzdGF0aWMgbG9uZw0KK25ucGZzX3VubG9ja2VkX2RldmlvY3RsKHN0
cnVjdCBmaWxlICpmaWxlLA0KKwkgICAgICAgdW5zaWduZWQgaW50IGNtZCwg
dW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KKyNpZiBMSU5VWF9W
RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIE5O
UEZTREVCKFhERUJERVYsICgibm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZs
YWdzID0gJWRcbiIsDQogCQkgICAgICAgaW5vZGUtPmlfcmRldiwgZmlsZS0+
Zl9mbGFncykpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsMTksMCkNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu
bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg
ICAgICBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBmaWxlLT5m
X2ZsYWdzKSk7DQorI2Vsc2UNCisgICAgTk5QRlNERUIoWERFQkRFViwgKCJu
bnBmc19kZXZpb2N0bCBkZXYgPSAlZCwgZmxhZ3MgPSAlZFxuIiwNCisJCSAg
ICAgICBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYsIGZp
bGUtPmZfZmxhZ3MpKTsNCisjZW5kaWYNCiAgICAgcmV0dXJuIC1FSU5WQUw7
DQogfQ0KIA0KIHN0YXRpYyB1bnNpZ25lZCBpbnQNCiBubnBmc19kZXZwb2xs
KHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQ0KIHsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww
KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9
IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k
aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io
ZGV2KV07DQogICAgIGludCByZXQgPSAwOw0KICAgICANCkBAIC05NTMsNyAr
OTgxLDExIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbm5wZnNfZm9wcyA9
IHsNCiAgICAgcmVhZDoJCW5ucGZzX2RldnJlYWQsDQogICAgIHdyaXRlOgkJ
bm5wZnNfZGV2d3JpdGUsDQogICAgIHBvbGw6CQlubnBmc19kZXZwb2xsLA0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs
MzYpDQogICAgIGlvY3RsOgkJbm5wZnNfZGV2aW9jdGwsDQorI2Vsc2UNCisg
ICAgdW5sb2NrZWRfaW9jdGw6CW5ucGZzX3VubG9ja2VkX2RldmlvY3RsLA0K
KyNlbmRpZg0KICAgICByZWxlYXNlOgkJbm5wZnNfZGV2Y2xvc2UsDQogICAg
IG9wZW46CQlubnBmc19kZXZvcGVuLA0KIH07DQpAQCAtOTY4LDggKzEwMDAs
MTMgQEAgbm5wZnNfaW5pdF9kZXZpY2Uodm9pZCkNCiAJaW5pdF93YWl0cXVl
dWVfaGVhZCgmKG5ucGZzW2ldLndhaXRfcXVldWUpKTsNCiAJbm5wZnNfaW5p
dHEoJm5ucGZzW2ldLm1lc3NhZ2VxKTsNCiAJbm5wZnNfaW5pdHEoJm5ucGZz
W2ldLnNsZWVwcSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzNykNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uaW5h
Y3RpdmVfc2VtKTsNCiAJaW5pdF9NVVRFWCgmbm5wZnNbaV0uY2hhbm5lbF9z
ZW0pOw0KKyNlbHNlDQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uaW5hY3RpdmVf
c2VtLCAxKTsNCisJc2VtYV9pbml0KCZubnBmc1tpXS5jaGFubmVsX3NlbSwg
MSk7DQorI2VuZGlmDQogCUlOSVRfTElTVF9IRUFEKCZubnBmc1tpXS5pbmFj
dGl2ZV9saXN0KTsNCiAJbm5wZnNbaV0ubm5vZGVzID0gMDsNCiAgICAgfQ0K
ZGlmZiAtdXByTiAtWG5vZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgv
bm5wZnNfaW5vZGVvcHMuYyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGlu
dXgvbm5wZnNfaW5vZGVvcHMuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4
L25ucGZzX2lub2Rlb3BzLmMJMjAxMC0wOC0wOCAyMjo0MzowNC4wMDAwMDAw
MDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMvbGludXgv
bm5wZnNfaW5vZGVvcHMuYwkyMDE2LTAxLTE1IDEyOjQ0OjU2LjkyMjg5NjYz
OSArMDEwMA0KQEAgLTQwLDEwICs0MCwxNCBAQA0KICNpbmNsdWRlIDxubnBm
cy9ubnBmc19kZXYuaD4NCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGlyZW50
Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX3N5c2NhbGxzLmg+DQorI2lu
Y2x1ZGUgPGxpbnV4L2Fpby5oPg0KICNpbmNsdWRlIDxsaW51eC9iaW5mbXRz
Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4NCiAjaW5jbHVkZSA8bGlu
dXgvcGFnZW1hcC5oPg0KICNpbmNsdWRlIDxsaW51eC9wYWdlLWZsYWdzLmg+
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTig0
LDEsMCkNCisjaW5jbHVkZSA8bGludXgvdWlvLmg+DQorI2VuZGlmDQogI2lu
Y2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPg0KICNpbmNsdWRlIDxhc20vZmNu
dGwuaD4NCiANCkBAIC01NCwxMSArNTgsMjMgQEAgUkNTSUQoIiRJZDogbm5w
ZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMQ0KIHN0YXRpYyBpbnQNCiBubnBm
c19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUsIHVfaW50IGZsYWcpOw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVj
dCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpOw0KLQ0K
KyNlbHNlDQogc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1
Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBmbGFncyk7DQorI2Vu
ZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOCkNCitzdGF0aWMNCitpbnQNCiBubnBmc19kX2RlbGV0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KKyNlbHNlDQorc3RhdGljDQoraW50
DQorbm5wZnNfZF9kZWxldGUoY29uc3Qgc3RydWN0IGRlbnRyeSAqZGVudHJ5
KTsNCisjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KIG5ucGZzX2RfcmVsZWFz
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOw0KQEAgLTIxNCw4ICsyMzAsMTMg
QEAgbm5wZnNfaW5vZGVfdmFsaWQoc3RydWN0IGlub2RlICppbm9kZSkNCiAg
KiBubnBmc19sb29rdXAgbm93IHJldHVybnMgYSBkZW50cnkuDQogICovDQog
DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMs
NiwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiBubnBmc19sb29rdXAg
KHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0
cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIHN0cnVjdCBk
ZW50cnkgKg0KK25ucGZzX2xvb2t1cCAoc3RydWN0IGlub2RlICpkaXIsIHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdzKQ0KKyNl
bmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0bm9kZSBt
c2c7DQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwOw0KQEAgLTQwNyw3ICs0
MjgsMTEgQEAgZmluZF9maXJzdF9ibG9jayhzdHJ1Y3Qgbm5wZnNfbm9kZSAq
bm9kZQ0KIHN0YXRpYyBpbnQNCiBubnBmc19mc3luY19pbnQoc3RydWN0IGZp
bGUgKmZpbGUsIHVfaW50IGZsYWcpDQogew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBp
bm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxz
ZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRl
bnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IG5ucGZzICpu
bnBmc3AgPSBOTlBGU19GUk9NX1ZOT0RFKGlub2RlKTsNCiAgICAgc3RydWN0
IG5ucGZzX25vZGUgKnhuID0gVk5PREVfVE9fWE5PREUoaW5vZGUpOw0KICAg
ICBsb2ZmX3QgbGVuID0gaV9zaXplX3JlYWQoaW5vZGUpOw0KQEAgLTQ3NCwx
NSArNDk5LDE4IEBAIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmls
ZSwgdV9pbnQNCiAgKg0KICAqLw0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigyLCA2LCAzNSkNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM1KQ0KIHN0YXRpYyBp
bnQNCiBubnBmc19mc3luYyhzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGRl
bnRyeSAqZGVudHJ5LCBpbnQgZGF0YXN5bmMpDQotI2Vsc2UNCisjZWxpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiBz
dGF0aWMgaW50DQogbm5wZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGlu
dCBkYXRhc3luYykNCisjZWxzZQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3lu
YyhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5k
LCBpbnQgZGF0YXN5bmMpDQogI2VuZGlmDQogew0KLSNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiwgNiwgMzUpDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMzUpDQog
ICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZpbGUtPmZfcGF0aC5kZW50
cnk7DQogI2VuZGlmDQogICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBERU5U
UllfVE9fSU5PREUoZGVudHJ5KTsNCkBAIC00OTAsNiArNTE4LDggQEAgbm5w
ZnNfZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGludCBkYXRhcw0KICAgICBz
dHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQogICAgIGludCBlcnJvciA9IDA7DQog
DQorICAgICh2b2lkKW5ucGZzcDsNCisNCiAgICAgZXJyb3IgPSBubnBmc19p
bm9kZV92YWxpZChpbm9kZSk7DQogICAgIGlmIChlcnJvcikNCiAJcmV0dXJu
IGVycm9yOw0KQEAgLTYyMiwxMSArNjUyLDI1IEBAIGNoZWNrX3JpZ2h0cyAo
bm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50IG0NCiAgKiBXZSBkb24ndCBob2xk
IGlfbXV0ZXguDQogICovDQogDQorI2lmIChMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpIHx8IExJTlVYX1ZFUlNJT05fQ09E
RSA+PSBLRVJORUxfVkVSU0lPTigzLDEsMCkpDQogc3RhdGljIGludA0KIG5u
cGZzX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1vZGUp
DQorI2Vsc2UNCitzdGF0aWMgaW50DQorbm5wZnNfcGVybWlzc2lvbihzdHJ1
Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZsYWdz
KQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAgbm5w
ZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBmc19w
YWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxf
VkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JMT0NL
KQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhfVkVS
U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAgaWYg
KGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4gLUVD
SElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3BhZygp
Ow0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2Fj
Y2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9kZSkp
Ow0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC03ODQs
MTEgKzgyOCwxOSBAQCBubnBmc19kYXRhX3ZhbGlkKHN0cnVjdCBpbm9kZSAq
aW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmlsZSAq
IGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiB7DQogICAg
IGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBpbm9k
ZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxzZQ0K
KyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRlbnRy
eS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGFkZHJlc3Nfc3Bh
Y2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7DQogDQogICAgIE5OUEZT
REVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlub2RlOiAlcFxuIiwgaW5v
ZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZfZGVu
dHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZf
cGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVCVk5P
UFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsNCiAgICAgbm5wZnNfcHJp
bnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAgLTgyMywyOCArODc1LDUx
IEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxlLA0K
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
RShpbm9kZSk7DQogICAgIGNoYXIgKmJ1ZjsNCkBAIC0xMzI4LDYgKzE0NTAs
NyBAQCBubnBmc19yZWFkZGlyKHN0cnVjdCBmaWxlICogZmlsZSwgdm9pZCAq
DQogCQkgICAgKGludCkgeGRpcmVudC0+ZF9uYW1sZW4sDQogCQkgICAgKGlu
dCkgKG9mZnNldCtiZWdpbl9vZmZzZXQpKSk7DQogDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTEsMCkNCiAJICAgIGlm
ICh4ZGlyZW50LT5kX2ZpbGVubyAhPSAwDQogCQkmJiAoZmlsbGRpcl9lcnJv
ciA9IGZpbGxkaXIgKGRpcmVudCwNCiAJCQkJICAgICB4ZGlyZW50LT5kX25h
bWUsDQpAQCAtMTMzOSw2ICsxNDYyLDE4IEBAIG5ucGZzX3JlYWRkaXIoc3Ry
dWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCQkgKCJubnBmc19yZWFkZGly
IGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7DQogCQlicmVhazsN
CiAJICAgIH0NCisjZWxzZQ0KKwkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5v
ICE9IDANCisJCSYmIChmaWxsZGlyX2Vycm9yID0gZGlyX2VtaXQgKGN0eCwN
CisJCQkJICAgICB4ZGlyZW50LT5kX25hbWUsDQorCQkJCSAgICAgeGRpcmVu
dC0+ZF9uYW1sZW4sDQorCQkJCSAgICAgeGRpcmVudC0+ZF9maWxlbm8sDQor
CQkJCSAgICAgRFRfVU5LTk9XTikpIDwgMCkgew0KKwkJTk5QRlNERUIoWERF
QlJFQURESVIsDQorCQkJICgibm5wZnNfcmVhZGRpciBmaWxsZGlyOiAlZFxu
IiwgZmlsbGRpcl9lcnJvcikpOw0KKwkJYnJlYWs7DQorCSAgICB9DQorI2Vu
ZGlmDQogCSAgICBvZmZzZXQgKz0geGRpcmVudC0+ZF9yZWNsZW47DQogDQog
CSAgICBpZiAoeGRpcmVudC0+ZF9yZWNsZW4gPT0gMCkgew0KQEAgLTEzOTUs
OSArMTUzMCwxNSBAQCBubnBmc19yZWFkbGluayAoc3RydWN0IGRlbnRyeSAq
ZGVudHJ5LCBjDQogICogV2UgZG9uJ3QgaG9sZCBpX211dGV4Lg0KICAqLw0K
IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0
LDIsMCkNCiBzdGF0aWMgdm9pZCAqDQogbm5wZnNfZm9sbG93X2xpbmsgKHN0
cnVjdCBkZW50cnkgKmRlbnRyeSwNCiAJCSBzdHJ1Y3QgbmFtZWlkYXRhICpu
ZCkNCisjZWxzZQ0KK3N0YXRpYyBjb25zdCBjaGFyICoNCitubnBmc19mb2xs
b3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KKwkJIHZvaWQgKipw
YWdlKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCiAgICAg
c3RydWN0IGlub2RlICppbm9kZSA9IERFTlRSWV9UT19JTk9ERShkZW50cnkp
Ow0KQEAgLTE0MDgsNyArMTU0OSwxMSBAQCBubnBmc19mb2xsb3dfbGluayAo
c3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAgIGlmIChlcnJvcikNCiAgICAg
ICAgcmV0dXJuIEVSUl9QVFIoZXJyb3IpOw0KIA0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDIsMCkNCiAgICAgcmV0dXJu
IHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBuZCk7DQorI2Vsc2UN
CisgICAgcmV0dXJuIHBhZ2VfZm9sbG93X2xpbmtfbGlnaHQoZGVudHJ5LCBw
YWdlKTsNCisjZW5kaWYNCiB9DQogDQogLyoNCkBAIC0xNDkwLDYgKzE2MzUs
OCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9kZSAqaW5vZGUs
DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCiAgICAgaW50IGVycm9y
ID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNwOw0KKw0KICAgICBOTlBGU0RF
QihYREVCVk5PUFMsICgibm5wZnNfcmVsZWFzZV9maWxlXG4iKSk7DQogDQog
ICAgIGVycm9yID0gbm5wZnNfaW5vZGVfdmFsaWQoaW5vZGUpOw0KQEAgLTE1
MjMsOCArMTY3MCwxMyBAQCBubnBmc19mbHVzaChzdHJ1Y3QgZmlsZSAqZmls
ZSwgZmxfb3duZXJfDQogew0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi
bm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmlsZSAmJiBm
aWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZSkNCiAJ
cmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRyeS0+ZF9p
bm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYgZmlsZS0+
Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2Rl
KQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZfcGF0aC5k
ZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBlbHNlDQog
CXJldHVybiAwOw0KIH0NCkBAIC0xNTMzLDggKzE2ODUsMTMgQEAgbm5wZnNf
Zmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyXw0KICAqIFJldHVy
biAxIGlmIGBkZW50cnknIGlzIHN0aWxsIHZhbGlkLCBvdGhlcndpc2UgMC4N
CiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMyw2LDApDQorc3RhdGljIGludA0KK25ucGZzX2RfcmV2YWxpZGF0
ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5k
KQ0KKyNlbHNlDQogc3RhdGljIGludA0KLW5ucGZzX2RfcmV2YWxpZGF0ZShz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKm5kKSAN
CitubnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB1
bnNpZ25lZCBpbnQgZmxhZ3MpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3Qg
aW5vZGUgKmlub2RlID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQogICAg
IE5OUEZTREVCKFhERUJWTk9QUywgKCJubnBmc19kX3JldmFsaWRhdGUgJXAg
XCIlLipzXCIgKGlub2RlICVwKVxuIiwNCkBAIC0xNTgyLDkgKzE3MzksMTUg
QEAgbm5wZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeQ0K
ICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E
RSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiBzdGF0aWMNCiBpbnQNCiBu
bnBmc19kX2RlbGV0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpDQorI2Vsc2UN
CitzdGF0aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3Qg
ZGVudHJ5ICpkZW50cnkpDQorI2VuZGlmDQogew0KICAgICBzdHJ1Y3QgaW5v
ZGUgKmlub2RlOw0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG47DQpAQCAt
MTYxNCw3ICsxNzc3LDExIEBAIG5ucGZzX3NwbGljZV9yZWFkKHN0cnVjdCBm
aWxlICpmaWxlLCBsb2YNCiAJCSAgdW5zaWduZWQgaW50IGZsYWdzKQ0KIHsN
CiAgICAgaW50IGVycm9yID0gMDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7DQorI2Vsc2UNCisg
ICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnkt
PmRfaW5vZGU7DQorI2VuZGlmDQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4
biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgDQogICAgIGlmICh4
biAhPSBOVUxMKQ0KQEAgLTE3MDcsNiArMTg3NCw4IEBAIG5ucGZzX3dyaXRl
X2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdlLA0KIA0KIAlpbnQgZXJyb3I7
DQogCQ0KKwkodm9pZClvZmZzZXQ7DQorDQogCWRvIHsNCiAJCWVycm9yID0g
cGFnZWNhY2hlX3dyaXRlX2JlZ2luKGJhY2tmaWxlLCBtYXBwaW5nLCAwLCBs
ZW4sDQogCQkJCQkgICAgICBBT1BfRkxBR19VTklOVEVSUlVQVElCTEUsDQpA
QCAtMTc0Nyw2ICsxOTE2LDggQEAgbm5wZnNfcmVhZF9iYWNrcGFnZShzdHJ1
Y3QgcGFnZSAqcGFnZSwgcw0KIAlzdHJ1Y3QgcGFnZSAqYmFja3BhZ2U7DQog
CXVuc2lnbmVkIGxvbmcgb2Zmc2V0Ow0KIA0KKwkodm9pZClvZmZzZXQ7DQor
DQogCWJhY2twYWdlID0gcmVhZF9tYXBwaW5nX3BhZ2UobWFwcGluZywgbiwg
YmFja2ZpbGUpOw0KIAlpZiAoIUlTX0VSUihiYWNrcGFnZSkpIHsNCiAJCXdh
aXRfb25fcGFnZV9sb2NrZWQoYmFja3BhZ2UpOw0KQEAgLTE4OTQsMTEgKzIw
NjUsMTcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1Y3QgZmlsZSAqZmls
ZSwgcw0KIA0KIAlpZiAobW9kc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkg
ew0KIAkJaW50IGVycm9yOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL
RVJORUxfVkVSU0lPTigzLDgsMCkNCiAJCWVycm9yID0gdm10cnVuY2F0ZShp
bm9kZSwgbW9kc2l6ZSk7DQorI2Vsc2UNCisJCWVycm9yID0gaW5vZGVfbmV3
c2l6ZV9vayhpbm9kZSwgbW9kc2l6ZSk7DQorCQlpZighZXJyb3IpDQorCQkJ
dHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgbW9kc2l6ZSk7DQorI2VuZGlmDQog
CQlpZiAoZXJyb3IpIHsNCiAJCQlwcmludGsoIm5ucGZzX3ByZXBhcmVfd3Jp
dGU6IHRydW5jYXRlKCVsbHUpIC0+ICVkXG4iLA0KIAkJCSAgICAgICBtb2Rz
aXplLCAtZXJyb3IpOw0KLQkJCUJVRygpOyAvKiBYWFggbm90IGNvcnJlY3Qg
Ki8NCisJCQkvKkJVRygpOyovIC8qIFhYWCBub3QgY29ycmVjdCAqLw0KIAkJ
fQ0KIAl9DQogDQpAQCAtMTk5MywxMCArMjE3MCwxOCBAQCBubnBmc193cml0
ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjDQogDQogCS8qIHplcm8g
dGhlIHN0YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQg
Y29weSAqLw0KIAlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJdm9pZCAq
a2FkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UN
CisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlm
DQogCQltZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBj
b3BpZWQpOw0KIAkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAkJ
a3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlr
dW5tYXBfYXRvbWljKGthZGRyKTsNCisjZW5kaWYNCiAJfQ0KIA0KIAlubnBm
c19jb21taXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGll
ZCk7DQpAQCAtMjAyNyw4ICsyMjEyLDEzIEBAIHN0cnVjdCBhZGRyZXNzX3Nw
YWNlX29wZXJhdGlvbnMgbm5wZnNfYW8NCiAgKi8NCiANCiBzdHJ1Y3QgZmls
ZV9vcGVyYXRpb25zIG5ucGZzX2ZpbGVfb3BlcmF0aW9ucyA9IHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K
ICAgICAuYWlvX3JlYWQJPSBubnBmc19haW9fcmVhZCwNCiAgICAgLmFpb193
cml0ZQk9IG5ucGZzX2Fpb193cml0ZSwNCisjZWxzZQ0KKyAgICAucmVhZF9p
dGVyCT0gbm5wZnNfcmVhZF9pdGVyLA0KKyAgICAud3JpdGVfaXRlcgk9IG5u
cGZzX3dyaXRlX2l0ZXIsDQorI2VuZGlmDQogICAgIC5tbWFwCT0gbm5wZnNf
ZmlsZV9tbWFwLA0KICAgICAub3Blbgk9IG5ucGZzX29wZW4sDQogICAgIC5m
bHVzaAk9IG5ucGZzX2ZsdXNoLA0KQEAgLTIwNDEsNyArMjIzMSwxMSBAQCBz
dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2RlYWRfb3BlcmF0DQogfTsN
CiANCiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVyYXRp
b25zID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDExLDApDQogICAgIC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRpciwN
CisjZWxzZQ0KKyAgICAuaXRlcmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUsDQor
I2VuZGlmDQogICAgIC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KIH07DQogDQpk
aWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9u
bnBmc19sb2FkLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25u
cGZzX2xvYWQuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX2xv
YWQuYwkyMDA2LTEwLTMxIDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysr
IGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMJ
MjAxNi0wMS0xMyAyMDoxNDowMi44MzAxMDM1MTcgKzAxMDANCkBAIC01NCw3
ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBubnBm
c19mb3BzDQogDQogc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgbm5wZnNfZnNf
dHlwZSA9IHsNCiAgICAgICAgbmFtZTogICAgICAgICAgICJubnBmcyIsDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwz
OSkNCiAgICAgICAgZ2V0X3NiOiAgICAgICAgIG5ucGZzX2dldF9zYiwNCisj
ZWxzZQ0KKyAgICAgICBtb3VudDogICAgICAgICAgbm5wZnNfbW91bnQsDQor
I2VuZGlmDQogICAgICAgIGtpbGxfc2I6ICAgICAgICBraWxsX2xpdHRlcl9z
dXBlciwNCiAgICAgICAgb3duZXI6ICAgICAgICAgIFRISVNfTU9EVUxFLA0K
IH07DQpkaWZmIC11cHJOIC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9s
aW51eC9ubnBmc19tZXNzYWdlLmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZz
L2xpbnV4L25ucGZzX21lc3NhZ2UuYw0KLS0tIGFybGEtY3ZzL25ucGZzL2xp
bnV4L25ucGZzX21lc3NhZ2UuYwkyMDEwLTA4LTA4IDIyOjQzOjA1LjAwMDAw
MDAwMCArMDIwMA0KKysrIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51
eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0xNCAxNjo1MDoxNS4xMzk1NzUx
NTEgKzAxMDANCkBAIC01NSw5ICs1NSwxNSBAQCBzdGF0aWMgdm9pZA0KIG5u
cGZzX2RfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCiB7DQogICAg
IE5OUEZTREVCKFhERUJNU0csICgibm5wZnNfZF9yZW1vdmUgJXBcbiIsIGRl
bnRyeSkpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigyLDYsMzgpDQogICAgIHNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0K
ICAgICBkZ2V0X2xvY2tlZChkZW50cnkpOw0KICAgICBzcGluX3VubG9jaygm
ZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5fbG9jaygmZGVudHJ5
LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKGRlbnRyeSk7DQorICAgIHNw
aW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7DQorI2VuZGlmDQogICAgIGRf
ZHJvcChkZW50cnkpOw0KICAgICBkcHV0KGRlbnRyeSk7DQogfQ0KQEAgLTEy
MSw3ICsxMjcsMTEgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZShzdHJ1
Y3Qgbm5wZnMgKg0KICAgICBzdHJ1Y3QgaW5vZGUgKmRpLCAqaW5vZGU7DQog
ICAgIHN0cnVjdCBkZW50cnkgKnBhcmVudCA9IE5VTEw7DQogICAgIHN0cnVj
dCBxc3RyIHNxc3RyOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxp
YXM7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMyw5LDApDQorICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisj
ZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhERUJNU0csICgibm5wZnNf
bWVzc2FnZV9pbnN0YWxsbm9kZVxuIikpOw0KICAgICANCkBAIC0xNzYsMTIg
KzE4NiwyNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxub2RlKHN0cnVjdCBu
bnBmcyAqDQogICAgICAqDQogICAgICAqLw0KICAgICANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGFs
aWFzID0gZGktPmlfZGVudHJ5Lm5leHQ7DQogICAgIHdoaWxlIChhbGlhcyAh
PSAmZGktPmlfZGVudHJ5KSB7DQogCXBhcmVudCA9IGxpc3RfZW50cnkoYWxp
YXMsIHN0cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KLQlzcGluX2xvY2soJmRj
YWNoZV9sb2NrKTsNCi0JZGdldF9sb2NrZWQocGFyZW50KTsNCi0Jc3Bpbl91
bmxvY2soJmRjYWNoZV9sb2NrKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgaGxpc3RfZm9yX2Vh
Y2hfZW50cnkocGFyZW50LCBhbGlhcywgJmRpLT5pX2RlbnRyeSwgZF9hbGlh
cykgew0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDMsMTksMCkNCisgICAgaGxpc3RfZm9yX2VhY2hfZW50cnkocGFyZW50
LCAmZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2Vsc2UNCisgICAgaGxp
c3RfZm9yX2VhY2hfZW50cnkocGFyZW50LCAmZGktPmlfZGVudHJ5LCBkX3Uu
ZF9hbGlhcykgew0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQorICAgIHNwaW5fbG9jaygmZGNh
Y2hlX2xvY2spOw0KKyAgICBkZ2V0X2xvY2tlZChwYXJlbnQpOw0KKyAgICBz
cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIHNwaW5f
bG9jaygmcGFyZW50LT5kX2xvY2spOw0KKyAgICBkZ2V0X2Rsb2NrKHBhcmVu
dCk7DQorICAgIHNwaW5fdW5sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQorI2Vu
ZGlmDQogCWRlbnRyeSA9IGRfbG9va3VwKHBhcmVudCwgJnNxc3RyKTsNCiAJ
Tk5QRlNERUIoWERFQk1TRywNCiAJCSAoIm5ucGZzX21lc3NhZ2VfaW5zdGFs
bG5vZGU6IGFsaWFzICVwLCBsb29rdXAgJXBcbiIsDQpAQCAtMjMzLDcgKzI1
Nyw5IEBAIG5ucGZzX21lc3NhZ2VfaW5zdGFsbG5vZGUoc3RydWN0IG5ucGZz
ICoNCiAJDQogCWRwdXQoZGVudHJ5KTsNCiAJZGVudHJ5ID0gTlVMTDsNCisj
aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDAp
DQogCWFsaWFzID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogCWRwdXQocGFy
ZW50KTsNCiAgICAgfQ0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZz
X21lc3NhZ2VfaW5zdGFsbG5vZGU6IGRvbmUgaW5zdGFsbGluZ1xuIikpOw0K
QEAgLTI2OCw3ICsyOTQsMTMgQEAgbm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0
cihzdHJ1Y3Qgbm5wZnMgKg0KICAgICB9DQogDQogICAgIGlub2RlID0gWE5P
REVfVE9fVk5PREUodCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBkZW50cnkgPSBsaXN0X2VudHJ5
KGlub2RlLT5pX2RlbnRyeS5uZXh0LCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFz
KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQorICAgIGRlbnRyeSA9IGhsaXN0X2VudHJ5KGlub2RlLT5p
X2RlbnRyeS5maXJzdCwgc3RydWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2Vs
c2UNCisgICAgZGVudHJ5ID0gaGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5
LmZpcnN0LCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9hbGlhcyk7DQorI2VuZGlm
DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCTVNHLCAoIm5ucGZzX21lc3Nh
Z2VfaW5zdGFsbGF0dHIgbmFtZTolc1xuIiwNCiAJCSAgICAgICBkZW50cnkt
PmRfbmFtZS5uYW1lKSk7DQpAQCAtMzk2LDE3ICs0MjgsMzYgQEAgbm5wZnNf
bWVzc2FnZV9pbnN0YWxsZGF0YShzdHJ1Y3Qgbm5wZnMgKg0KIHN0YXRpYyB2
b2lkDQogY2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCBpbnQgcGFyZW50KQ0KIHsNCisgICAgc3RydWN0IGRlbnRyeSAqZGVudHJ5
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDYsMCkNCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqYWxpYXM7DQorI2VsaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5LDApDQor
ICAgIHN0cnVjdCBobGlzdF9ub2RlICphbGlhczsNCisjZW5kaWYNCiANCiAg
YWdhaW46DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT
SU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQor
I2Vsc2UNCisgICAgLyogVE9ETzogZmluZCB0aGUgZGVudHJ5IHRvIGxvY2sg
Ki8NCisgICAgLypzcGluX2xvY2soJmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNl
bmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50cnkubmV4dDsN
CiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50cnkpIHsNCi0J
c3RydWN0IGRlbnRyeSAqZGVudHJ5Ow0KKyNlbGlmIExJTlVYX1ZFUlNJT05f
Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSwwKQ0KKyAgICBobGlzdF9mb3Jf
ZWFjaF9lbnRyeShkZW50cnksIGFsaWFzLCAmaW5vZGUtPmlfZGVudHJ5LCBk
X2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM
X1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShk
ZW50cnksICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxzZQ0K
KyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShkZW50cnksICZpbm9kZS0+aV9k
ZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQogCXN0cnVjdCBsaXN0
X2hlYWQgKnN1YmRpcnM7DQogCXN0cnVjdCBubnBmc19kZW50cnlfZGF0YSAq
eGQ7DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAJZGVudHJ5ID0gbGlzdF9lbnRyeShhbGlhcywgc3Ry
dWN0IGRlbnRyeSwgZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChkZW50cnkg
PT0gTlVMTCkgew0KIAkgICAgcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTIFBh
bmljOiBkZW50cnkgaW4gYWxpYXMgbGlzdCBpcyBudWxsXG4iKTsNCiAJICAg
IGJyZWFrOw0KQEAgLTQyMiw3ICs0NzMsMTEgQEAgY2xlYXJfYWxsX2NoaWxk
cmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIAlzdWJkaXJzID0gZGVudHJ5
LT5kX3N1YmRpcnMubmV4dDsNCiAJd2hpbGUgKHN1YmRpcnMgIT0gJmRlbnRy
eS0+ZF9zdWJkaXJzKSB7DQogCSAgICBzdHJ1Y3QgbGlzdF9oZWFkICp0bXAg
PSBzdWJkaXJzOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDE5LDApDQogCSAgICBzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9
IGxpc3RfZW50cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7
DQorI2Vsc2UNCisJICAgIHN0cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9l
bnRyeSh0bXAsIHN0cnVjdCBkZW50cnksIGRfY2hpbGQpOw0KKyNlbmRpZg0K
IAkgICAgc3ViZGlycyA9IHRtcC0+bmV4dDsNCiAJICAgIE5OUEZTREVCKFhE
RUJNU0csICgiY2xlYXJfYWxsX2NoaWxkcmVuIGNoaWxkOiAlLipzIGlub2Rl
OiAlcC8lcCAiDQogCQkJICAgICAgICJkY291bnQ6ICVkIGFsaWFzZXM6XG4i
LA0KQEAgLTQ0MiwxNCArNDk3LDI2IEBAIGNsZWFyX2FsbF9jaGlsZHJlbiAo
c3RydWN0IGlub2RlICppbm9kZSwNCiANCiAJICAgIC8qIFRocm93IGltbWVk
aWF0ZWx5ICovDQogCSAgICBpZiAobm5wZnNfZGNvdW50KGNoaWxkKSA9PSAw
KSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDIsNiwzOCkNCiAJICAgICAgICBzcGluX3VubG9jaygmZGNhY2hlX2xvY2sp
Ow0KKyNlbHNlDQorCQkvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRyeSAqLw0K
KwkJLypzcGluX3VubG9jaygmZGVudHJ5LT5kX2xvY2spOyovDQorI2VuZGlm
DQogCQlubnBmc19kX3JlbW92ZShjaGlsZCk7DQogCQlnb3RvIGFnYWluOw0K
IAkgICAgfQ0KIAl9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDMsNiwwKQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KKyNl
bmRpZg0KICAgICB9DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F
TF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl91bmxvY2soJmRjYWNoZV9s
b2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiB1bmxvY2sgdGhlIGRlbnRy
eSAqLw0KKyAgICAvKnNwaW5fdW5sb2NrKCZkZW50cnktPmRfbG9jayk7Ki8N
CisjZW5kaWYNCiB9DQogDQogc3RhdGljIHZvaWQNCkBAIC03MTksMTIgKzc4
NiwyMiBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24oc3RydWN0IG5ucGZzICpu
bnBmDQogDQogICAgIC8qIHNhbml0eSBjaGVjayBiZWZvcmUgd2UgbG9vayBh
dCBpdCAqLw0KICAgICBpZiAoc2l6ZSA9PSBzaXplb2YoKm1lc3NhZ2UpICYm
IG1lc3NhZ2UtPnZlcnNpb24gPT0gTk5QRlNfVkVSU0lPTikgew0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog
CXN0cnVjdCBuYW1laWRhdGEgbmQ7DQorI2Vsc2UNCisJc3RydWN0IHBhdGgg
cGF0aDsNCisjZW5kaWYNCiAJaW50IGVycm9yOw0KIA0KIAl1aW50NjRfdCBi
bG9ja3NpemUgPSBtZXNzYWdlLT5ibG9ja3NpemU7DQogDQorI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAJZXJy
b3IgPSBwYXRoX2xvb2t1cCgiLiIsIDAsICZuZCk7DQorI2VsaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwllcnJv
ciA9IGtlcm5fcGF0aCgiLiIsIDAsICZuZC5wYXRoKTsNCisjZWxzZQ0KKwll
cnJvciA9IGtlcm5fcGF0aCgiLiIsIDAsICZwYXRoKTsNCisjZW5kaWYNCiAJ
aWYgKGVycm9yKSB7DQogCSAgICAvKg0KIAkgICAgICogQmFkIGNhY2hlIHJv
b3QsIGp1c3QgcmV0dXJuLg0KQEAgLTczNSw5ICs4MTIsMTUgQEAgbm5wZnNf
bWVzc2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIAkJICAgIm5u
cGZzX21lc3NhZ2VfdmVyc2lvbiBmYWlsZWQgcGF0aF9sb29rdXAsICINCiAJ
CSAgICJlcnJubzogJWRcbiIsIGVycm9yKTsNCiAJfSBlbHNlIHsNCisjaWYg
TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0K
IAkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQucGF0aC5tbnQp
Ow0KIAkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQucGF0aC5kZW50
cnkpOw0KIAkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNlDQorCSAg
ICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRoLm1udCk7DQorCSAg
ICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRlbnRyeSk7DQorCSAg
ICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAgICANCiAjaWYgTElO
VVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJ
ICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQpkaWZmIC11cHJO
IC1Ybm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19ub2Rl
LmMgYXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX25vZGUu
Yw0KLS0tIGFybGEtY3ZzL25ucGZzL2xpbnV4L25ucGZzX25vZGUuYwkyMDA3
LTAxLTAzIDE0OjUyOjAyLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtZm9y
LWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19ub2RlLmMJMjAxNi0wMS0x
NCAxNjo1MToxMS40MjA1Nzg1NDQgKzAxMDANCkBAIC0xMzIsNyArMTMyLDEy
IEBAIG5ucGZzX3NldHNpemUoc3RydWN0IGlub2RlICppbm9kZSwgdWludDYN
CiAJcHJpbnRrKCJubnBmc19zZXRzaXplOiB0cnVuY2F0aW5nIEAweCVsbHVc
biIsDQogCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKXNpemUpOw0KICNl
bmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDgsMCkNCiAJdm10cnVuY2F0ZShpbm9kZSwgc2l6ZSk7IC8qIFhYWCBy
ZXR2YWwgKi8NCisjZWxzZQ0KKwlpZighaW5vZGVfbmV3c2l6ZV9vayhpbm9k
ZSwgc2l6ZSkpDQorCSAgICB0cnVuY2F0ZV9zZXRzaXplKGlub2RlLCBzaXpl
KTsNCisjZW5kaWYNCiAJbm5wZnNfYmxvY2tfdHJ1bmNhdGUoeG4sIHNpemUp
Ow0KICAgICB9DQogfQ0KQEAgLTE1MCw5ICsxNTUsMTggQEAgbm5wZnNfYXR0
cjJpbm9kZShjb25zdCBzdHJ1Y3Qgbm5wZnNfYXR0cg0KIAlzdHJ1Y3QgdGlt
ZXNwZWMgbm90aW1lID0gezB9Ow0KIA0KIAlpbm9kZS0+aV9tb2RlICAgPSAw
Ow0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz
LDE0LDApDQogCWlub2RlLT5pX3VpZCAgICA9IDA7DQogCWlub2RlLT5pX2dp
ZCAgICA9IDA7DQorI2Vsc2UNCisJaW5vZGUtPmlfdWlkICAgID0gS1VJRFRf
SU5JVCgwKTsNCisJaW5vZGUtPmlfZ2lkICAgID0gS0dJRFRfSU5JVCgwKTsN
CisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF
UlNJT04oMywyLDApDQogCWlub2RlLT5pX25saW5rICA9IDE7DQorI2Vsc2UN
CisJc2V0X25saW5rKGlub2RlLCAxKTsNCisjZW5kaWYNCiAJaW5vZGUtPmlf
YXRpbWUgID0gbm90aW1lOw0KIAlpbm9kZS0+aV9tdGltZSAgPSBub3RpbWU7
DQogCWlub2RlLT5pX2N0aW1lICA9IG5vdGltZTsNCkBAIC0xNjksNyArMTgz
LDExIEBAIG5ucGZzX2F0dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0
dHINCiAgICAgaWYgKFhBX1ZBTElEX0dJRChhdHRyKSkNCiAJaW5vZGUtPmlf
Z2lkICAgID0gYXR0ci0+eGFfZ2lkOw0KICAgICBpZiAoWEFfVkFMSURfTkxJ
TksoYXR0cikpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W
RVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSBhdHRyLT54YV9u
bGluazsNCisjZWxzZQ0KKwlzZXRfbmxpbmsoaW5vZGUsIGF0dHItPnhhX25s
aW5rKTsNCisjZW5kaWYNCiAgICAgDQogICAgIGlmIChYQV9WQUxJRF9TSVpF
KGF0dHIpKSB7DQogCW5ucGZzX3NldHNpemUoaW5vZGUsIGF0dHItPnhhX3Np
emUpOw0KQEAgLTUxMCwxMiArNTI4LDI0IEBAIG5ucGZzX2hhc19wYWcoY29u
c3Qgc3RydWN0IG5ucGZzX25vZGUgKngNCiBpbnQNCiBubnBmc19ub2RlX3Vz
ZXJzKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogew0KKyNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCiAgICAgc3RydWN0
IGxpc3RfaGVhZCAqcG9zOw0KKyNlbHNlDQorICAgIHN0cnVjdCBobGlzdF9u
b2RlICpwb3M7DQorI2VuZGlmDQogICAgIGludCB1c2VycyA9IDA7DQogICAg
IA0KICAgICAvKiBYWFggdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgcHJvdGVj
dGVkIHNvbWVob3cgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS
TkVMX1ZFUlNJT04oMyw2LDApDQogICAgIGxpc3RfZm9yX2VhY2gocG9zLCAm
aW5vZGUtPmlfZGVudHJ5KSB7DQorI2Vsc2UNCisgICAgaGxpc3RfZm9yX2Vh
Y2gocG9zLCAmaW5vZGUtPmlfZGVudHJ5KSB7DQorI2VuZGlmDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJ
c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gbGlzdF9lbnRyeShwb3MsIHN0cnVj
dCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbHNlDQorCXN0cnVjdCBkZW50cnkg
KmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1Y3QgZGVudHJ5LCBkX3Uu
ZF9hbGlhcyk7DQorI2VuZGlmDQogCWlmIChubnBmc19kY291bnQoZGVudHJ5
KSA+IDEpDQogCSAgICB1c2VycysrOw0KICAgICB9DQpkaWZmIC11cHJOIC1Y
bm9kaWZmLnR4dCBhcmxhLWN2cy9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs
cy5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19zeXNj
YWxscy5jDQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lzY2Fs
bHMuYwkyMDEwLTA4LTA4IDIyOjQzOjA2LjAwMDAwMDAwMCArMDIwMA0KKysr
IGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxs
cy5jCTIwMTYtMDEtMTQgMTc6MDA6MjAuNjQxNjExNjU1ICswMTAwDQpAQCAt
NDIsNyArNDIsOSBAQA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19zeXNjYWxs
cy5oPg0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19jb21tb24uaD4NCiAjaW5j
bHVkZSA8bGludXgvZmlsZS5oPg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzkpDQogI2luY2x1ZGUgPGxpbnV4L3Nt
cF9sb2NrLmg+DQorI2VuZGlmDQogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0K
ICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQogDQpAQCAtNTAsNiArNTIs
MTEgQEANCiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4NCiAjZW5kaWYN
CiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9O
KDMsNywwKQ0KKyN1bmRlZiBTWVNDQUxMSEFDSw0KKy8qIHRoZSBtZXRob2Qg
dG8gcmVhZCAnbG93ZXJfYm91bmQnIGRvZXMgbm90IHdvcmsgb24ga2VybmVs
IDMuNyBhbmQgbGF0ZXIsIHNlIG5ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyAq
Lw0KKyNlbmRpZg0KKw0KICNpZiAwDQogI2lmZGVmIENPTkZJR19DT01QQVQN
CiAjaW5jbHVkZSA8bGludXgvaW9jdGwzMi5oPg0KQEAgLTgyLDEyICs4OSwy
MiBAQCB0eXBlZGVmIHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2ln
bmVkIGxvbmcgc3lzY2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQog
c3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGlu
dCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBs
b25nDQorbm5wZnNfcHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0K
KwkJICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0K
KyNlbmRpZg0KIA0KIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5u
cGZzX3Byb2Nmc19mb3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg
PCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZz
X3Byb2Nmc19pb2N0bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwg
PSBubnBmc19wcm9jZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBA
IC0xNjAsOCArMTc3LDEwIEBAIG5ucGZzX2dldF9wYWdfc2VjKHZvaWQpDQog
DQogI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigy
LDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQotI2Vsc2UNCisj
ZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0
LDApDQogICAgIHJldHVybiBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAg
IHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgpOyByZXR1cm4ga3VpZC52
YWw7IH0NCiAjZW5kaWYNCiB9DQogDQpAQCAtMTk5LDcgKzIxOCwxMiBAQCBm
aW5kX3BhZyhzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ2kpDQogICAgIE5OUEZTREVC
KFhERUJTWVMsICgiZmluZF9wYWc6IG5ncm91cHMgPSAlZFxuIiwgZ2ktPm5n
cm91cHMpKTsNCiANCiAgICAgZm9yIChpID0gZ2ktPm5ncm91cHMgLSAxOyBp
ID49IDA7IGktLSkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO
RUxfVkVSU0lPTigzLDE0LDApDQogCWdpZF90IGdyb3VwID0gR1JPVVBfQVQo
Z2ksIGkpOw0KKyNlbHNlDQorCWtnaWRfdCBrZ3JvdXAgPSBHUk9VUF9BVChn
aSwgaSk7DQorCWdpZF90IGdyb3VwID0ga2dyb3VwLnZhbDsNCisjZW5kaWYN
CiAJaWYgKChubnBmc19wYWdfdClncm91cCA+PSBOTlBGU19QQUdfTExJTSAm
JiAobm5wZnNfcGFnX3QpZ3JvdXAgPCBOTlBGU19QQUdfVUxJTSkgew0KIAkg
ICAgTk5QRlNERUIoWERFQlNZUywNCiAJCSAgICAgKCJmaW5kX3BhZzogRXhp
c3RpbmcgcGFnICV1IGF0IHBvcyAldVxuIiwgZ3JvdXAsIGkpKTsNCkBAIC0y
MjAsNyArMjQ0LDEyIEBAIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9pZCkNCiAg
ICAgbm5wZnNfcGFnX3QgcmV0ID0gY3VycmVudC0+dWlkOw0KICNlbHNlDQog
ICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGdldF9jdXJyZW50X2dyb3Vw
cygpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE0LDApDQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1cnJlbnRfdWlk
KCk7DQorI2Vsc2UNCisgICAga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp
Ow0KKyAgICBubnBmc19wYWdfdCByZXQgPSBrdWlkLnZhbDsNCisjZW5kaWYN
CiAjZW5kaWYNCiAgICAgaW50IGk7DQogDQpAQCAtMjMwLDcgKzI1OSwxMSBA
QCBubnBmc19nZXRfcGFnX2dyb3VwKHZvaWQpDQogDQogICAgIGkgPSBmaW5k
X3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VORCkN
CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx
NCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7DQorI2Vsc2UNCisJeyBr
Z2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsgcmV0ID0ga2dpZC52YWw7
IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3VwX2luZm8oZ2kpOw0KIA0K
QEAgLTI4MCwxMCArMzEzLDE3IEBAIHN0b3JlX3BhZyhubnBmc19wYWdfdCBw
YWdudW0pDQogCWNvdW50IC09IE5HUk9VUFNfUEVSX0JMT0NLOw0KICAgICB9
DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O
KDMsMTQsMCkNCiAgICAgaWYgKGZvdW5kKQ0KIAlHUk9VUF9BVChuZXdfZ2ks
IGkpID0gcGFnbnVtOw0KICAgICBlbHNlDQogCUdST1VQX0FUKG5ld19naSwg
bmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBwYWdudW07DQorI2Vsc2UNCisgICAg
aWYgKGZvdW5kKQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdu
dW0pOyBHUk9VUF9BVChuZXdfZ2ksIGkpID0ga2dpZDsgfQ0KKyAgICBlbHNl
DQorCXsga2dpZF90IGtnaWQgPSBLR0lEVF9JTklUKHBhZ251bSk7IEdST1VQ
X0FUKG5ld19naSwgbmV3X2dpLT5uZ3JvdXBzIC0gMSkgPSBrZ2lkOyB9DQor
I2VuZGlmDQogICAgIA0KICAgICBzZXRfY3VycmVudF9ncm91cHMobmV3X2dp
KTsNCiAgICAgcHV0X2dyb3VwX2luZm8obmV3X2dpKTsNCkBAIC0zMjUsOCAr
MzY1LDEwIEBAIG5ucGZzX2dldF9wYWcoKQ0KIA0KICNpZiBMSU5VWF9WRVJT
SU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICByZXR1
cm4gY3VycmVudC0+dWlkOw0KLSNlbHNlDQorI2VsaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICByZXR1cm4g
Y3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1aWRfdCBrdWlkID0g
Y3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9DQogI2VuZGlmDQog
fQ0KIA0KQEAgLTQzMiw3ICs0NzQsNyBAQCBubnBmc19zZXRncm91cHMxNiAo
aW50IGdpZHNldHNpemUsIG9sZF9nDQogI2VuZGlmIC8qIFNZU0NBTExIQUNL
ICovDQogI2VuZGlmIC8qIEdST1VQUEFHUyAqLw0KIA0KLXN0cnVjdCBmaWxl
X2hhbmRsZSB7DQorc3RydWN0IG5ucGZzX2ZpbGVfaGFuZGxlIHsNCiAgICAg
bm5wZnNfZGV2X3QgZGV2Ow0KICAgICBpbm9fdCBpbm9kZTsNCiAgICAgX191
MzIgZ2VuOw0KQEAgLTUxOSwxNCArNTYxLDI3IEBAIG5ucGZzX2RlYnVnX3By
aW50IChzdHJ1Y3QgYXJsYVZpY2VJb2N0bA0KICAqIGZvbGxvdyBzeW1saW5r
cyBpZmYgYGZvbGxvdycNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3Qg
ZGVudHJ5ICoNCiB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRh
ICpuZCwgY2hhciAqdXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQor
c3RhdGljIHN0cnVjdCBkZW50cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0
cnVjdCBwYXRoICpwYXRoLCBjaGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cp
DQorI2VuZGlmDQogew0KLSAgICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZs
YWdzID0gMDsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCi0gICAga25hbWUg
PSBnZXRuYW1lICh1c2VyX3BhdGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisgICAgY2hhciAqa25hbWU7
DQorICAgIGtuYW1lID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQor
ICAgIGNvbnN0IGNoYXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUg
KmZuYW1lOw0KKyAgICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisg
ICAga25hbWUgPSBmbmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYg
KElTX0VSUihrbmFtZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25h
bWUpKTsNCiAgICAgaWYgKGZvbGxvdykNCkBAIC01MzQsMTEgKzU4OSwyNSBA
QCB1c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwNCiAN
CiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBmc19zeXNjYWxsOiBsb29r
aW5nIHVwOiAlc1xuIiwga25hbWUpKTsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBlcnJvciA9
IHBhdGhfbG9va3VwKGtuYW1lLCBmbGFncywgbmQpOw0KKyNlbGlmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAg
ZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdzLCAmKG5kLT5wYXRoKSk7
DQorI2Vsc2UNCisgICAgZXJyb3IgPSBrZXJuX3BhdGgoa25hbWUsIGZsYWdz
LCBwYXRoKTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg
S0VSTkVMX1ZFUlNJT04oMyw3LDApDQogICAgIHB1dG5hbWUoa25hbWUpOw0K
KyNlbHNlDQorICAgIGttZW1fY2FjaGVfZnJlZShuYW1lc19jYWNoZXAsICh2
b2lkICopa25hbWUpOw0KKyNlbmRpZg0KICAgICBpZiAoZXJyb3IpDQogCXJl
dHVybiBFUlJfUFRSKGVycm9yKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF
IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICByZXR1cm4gbmQtPnBh
dGguZGVudHJ5Ow0KKyNlbHNlDQorICAgIHJldHVybiBwYXRoLT5kZW50cnk7
DQorI2VuZGlmDQogfQ0KIA0KIGFzbWxpbmthZ2UgbG9uZw0KQEAgLTU1Mywx
MyArNjIyLDIxIEBAIHN5c19hZnNfaW50IChpbnQgb3BlcmF0aW9uLA0KICAg
ICBzdHJ1Y3Qgbm5wZnNfbWVzc2FnZV9waW9jdGwgKm1zZyA9IE5VTEw7DQog
ICAgIHN0cnVjdCBubnBmc19tZXNzYWdlX3dha2V1cCAqbXNnMjsNCiAgICAg
c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0gTlVMTDsNCisjaWYgTElOVVhfVkVS
U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBzdHJ1
Y3QgbmFtZWlkYXRhIG5kOw0KKyNlbHNlDQorICAgIHN0cnVjdCBwYXRoIHBh
dGg7DQorI2VuZGlmDQogICAgIA0KICAgICBtc2cgPSBrbWFsbG9jKHNpemVv
ZigqbXNnKSwgR0ZQX0tFUk5FTCk7DQogICAgIGlmIChtc2cgPT0gTlVMTCkN
CiAgICAgICByZXR1cm4gLUVOT01FTTsNCiANCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KICAgICBsb2NrX2tl
cm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IGxvY2tfa2VybmVsKCkg
aXMgcmVtb3ZlZCwgY29uc2lkZXIgYWRkaW5nIGFuIHByaXZhdGUgbG9jayAq
Lw0KKyNlbmRpZg0KIA0KICAgICBOTlBGU0RFQihYREVCU1lTLCAoInN5c19h
ZnMga2VybmVsIGxvY2tlZFxuIikpOw0KIA0KQEAgLTU5Nyw3ICs2NzQsMTEg
QEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogCSAgICB9DQogCX0N
CiAJaWYgKGFfcGF0aFAgIT0gTlVMTCkgew0KKyNpZiBMSU5VWF9WRVJTSU9O
X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBkZW50cnkg
PSB1c2VyX3BhdGgyZGVudHJ5ICgmbmQsIGFfcGF0aFAsIGFfZm9sbG93U3lt
bGlua3MpOw0KKyNlbHNlDQorCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVu
dHJ5ICgmcGF0aCwgYV9wYXRoUCwgYV9mb2xsb3dTeW1saW5rcyk7DQorI2Vu
ZGlmDQogCSAgICBpZiAoIWRlbnRyeSkgew0KIAkJZXJyb3IgPSAtRUlOVkFM
Ow0KIAkJZ290byB1bmxvY2s7DQpAQCAtNjkzLDEzICs3NzQsMjEgQEAgc3lz
X2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxvY2s6DQog
ICAgIGlmIChkZW50cnkpDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF
Uk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJcGF0aF9wdXQoJm5kLnBhdGgpOw0K
KyNlbHNlDQorCXBhdGhfcHV0KCZwYXRoKTsNCisjZW5kaWYNCiANCiAgICAg
Tk5QRlNERUIoWERFQlNZUywgKCJubnBmc19zeXNjYWxsIHJldHVybnMgZXJy
b3I6ICVsZFxuIiwgZXJyb3IpKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlNZ
UywgKCJzeXNfYWZzIGtlcm5lbCB1bmxvY2tcbiIpKTsNCiAgICAga2ZyZWUo
bXNnKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ
T04oMiw2LDM5KQ0KICAgICB1bmxvY2tfa2VybmVsKCk7DQorI2Vsc2UNCisg
ICAgLyogVE9ETzogc2VlIHRoZSBjb21tZW50IGF0IGxvY2tfa2VybmVsKCkg
YWJvdmUgKi8NCisjZW5kaWYNCiANCiAgICAgcmV0dXJuIGVycm9yOw0KIH0N
CkBAIC03NDgsOSArODM3LDE1IEBAIHN5c19hZnMgKGludCBvcGVyYXRpb24s
DQogCQkgICAgICAgYV9mb2xsb3dTeW1saW5rcyk7DQogfQ0KIA0KKyNpZiBM
SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQog
c3RhdGljIGludA0KIG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUg
Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGlu
dCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbHNlDQorc3RhdGljIGxv
bmcNCitubnBmc19wcm9jZnNfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsDQor
CQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykNCisj
ZW5kaWYNCiB7DQogICAgIGFmc3Byb2NkYXRhIGFyZ3M7DQogICAgIGxvbmcg
cmV0Ow0KQEAgLTgwNyw3ICs5MDIsMTEgQEAgc3RhdGljIGludCBubnBmc19p
bml0X3Byb2Nmcyh2b2lkKQ0KICAgICBubnBmc19wcm9jZnNfZGlyLT5vd25l
ciA9IFRISVNfTU9EVUxFOw0KICNlbmRpZg0KICAgICANCisjaWYgTElOVVhf
VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBl
bnRyeSA9IGNyZWF0ZV9wcm9jX2VudHJ5KE5OUEZTX1BST0NfTk9ERSwgMDY2
Niwgbm5wZnNfcHJvY2ZzX2Rpcik7DQorI2Vsc2UNCisgICAgZW50cnkgPSBw
cm9jX2NyZWF0ZShOTlBGU19QUk9DX05PREUsIDA2NjYsIE5VTEwsICZubnBm
c19wcm9jZnNfZm9wcyk7DQorI2VuZGlmDQogICAgIGlmIChlbnRyeSA9PSBO
VUxMKSB7DQogCU5OUEZTREVCKFhERUJTWVMsICgibm5wZnNfaW5pdF9wcm9j
ZnM6IG5vIG5vZGVcbiIpKTsNCiAJcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIg
Tk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KQEAgLTgxNyw3ICs5MTYsOSBAQCBz
dGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQpDQogI2lmIExJTlVY
X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzMCkNCiAgICAg
ZW50cnktPm93bmVyID0gVEhJU19NT0RVTEU7DQogI2VuZGlmDQorI2lmIExJ
TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTAsMCkNCiAg
ICAgZW50cnktPnByb2NfZm9wcyA9ICZubnBmc19wcm9jZnNfZm9wczsNCisj
ZW5kaWYNCiANCiAjaWZkZWYgU1lTQ0FMTENPTVBBVA0KICAgICBpZiAocmVn
aXN0ZXJfaW9jdGwzMl9jb252ZXJzaW9uKEFSTEFfVklPQ19TWVNDQUxMMzIs
IG5ucGZzX3Byb2Nmc19pb2N0bDMyKSkgew0KZGlmZiAtdXByTiAtWG5vZGlm
Zi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9z
c2FnZS5jIGFybGEtZm9yLWxpbnV4LTQuNC9ubnBmcy9saW51eC9ubnBmc19z
eXNjYWxscy1sb3NzYWdlLmMNCi0tLSBhcmxhLWN2cy9ubnBmcy9saW51eC9u
bnBmc19zeXNjYWxscy1sb3NzYWdlLmMJMjAxMC0wOC0wOCAyMjo0MzowNS4w
MDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZvci1saW51eC00LjQvbm5wZnMv
bGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jCTIwMTYtMDEtMTMgMjE6
NTE6NDkuNjgyNDU3MjEzICswMTAwDQpAQCAtNTAsOCArNTAsMTcgQEANCiBS
Q1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAxLjE5IDIw
MTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcs
MCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5kJyBkb2Vz
IG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQorI3VuZGVm
IFNZU0NBTExIQUNLDQorI2VuZGlmDQorDQogI2luY2x1ZGUgPGxpbnV4L2th
bGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJTlVYX1ZF
UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0YXRpYyB2
b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNlbmRpZg0K
KyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgc3lz
X2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVuY3Rpb24g
Km5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Niw2ICs3NSw4IEBAIGNv
bnN0IGNoYXIgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkNCiAjaWZkZWYgX194
ODZfNjRfXw0KIGV4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0
cmlidXRlX18oKHdlYWspKTsNCiAjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FM
TEhBQ0sNCiBzdGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQp
IHsNCiAjaWZkZWYgX194ODZfNjRfXw0KQEAgLTc0LDYgKzg1LDcgQEAgZ2V0
X3N0YXJ0X2FkZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11
dGV4X2xvY2s7DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBp
bmxpbmUgaW50IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBh
ZGRyLCBjb25zdCBjaGFyICpuYW1lKQ0KQEAgLTE0Miw2ICsxNTQsOCBAQCB2
ZXJpZnkodm9pZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNp
ZmRlZiBTWVNDQUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tz
X2dvb2Qodm9pZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxv
d2VyX2JvdW5kIHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE5MSwzICsyMDUs
NSBAQCBubnBmc19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAg
ICAgcmV0dXJuIDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5v
ZGlmZi50eHQgYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMg
YXJsYS1mb3ItbGludXgtNC40L25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5j
DQotLS0gYXJsYS1jdnMvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAx
MC0wOC0wOCAyMjo0MzowNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLWZv
ci1saW51eC00LjQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0w
MS0xNCAxNzoxMzoxOC4yNjM2NTg1MzYgKzAxMDANCkBAIC01MCw3ICs1MCw5
IEBAIFJDU0lEKCIkSWQ6IG5ucGZzX3Zmc29wcy5jLHYgMS4xMTEgMjAxMC8N
CiBzdHJ1Y3Qgbm5wZnMgbm5wZnNbTk5OUEZTXTsNCiANCiBzdGF0aWMgdm9p
ZCBubnBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7DQor
I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww
KQ0KIHN0YXRpYyB2b2lkIG5ucGZzX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBl
cl9ibG9jayAqIHNiKTsNCisjZW5kaWYNCiANCiBzdGF0aWMgaW50IG5ucGZz
X3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBrc3RhdGZz
ICpidWYpOw0KIA0KQEAgLTU5LDcgKzYxLDkgQEAgc3RhdGljIHN0cnVjdCBz
dXBlcl9vcGVyYXRpb25zIG5ucGZzX3NvcA0KICAgICBkZXN0cm95X2lub2Rl
CTogbm5wZnNfbm9kZV9mcmVlLA0KICAgICBkcm9wX2lub2RlCQk6IGdlbmVy
aWNfZGVsZXRlX2lub2RlLA0KICAgICBwdXRfc3VwZXIJCTogbm5wZnNfcHV0
X3N1cGVyLA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS
U0lPTigzLDYsMCkNCiAgICAgd3JpdGVfc3VwZXIJCTogbm5wZnNfd3JpdGVf
c3VwZXIsDQorI2VuZGlmDQogICAgIHN0YXRmcwkJOiBubnBmc19zdGF0ZnMs
DQogfTsNCiANCkBAIC04Niw3ICs5MCwxMSBAQCBubnBmc19mZXRjaF9yb290
KHN0cnVjdCBpbm9kZSAqaSkNCiAJICogcm9vdCdzIHByaXZpbGlnZXMgKHVz
dWFsbHkgbm9uZSwgYW5kIG5vbmUgaXMgbmVlZGVkKS4NCiAJICovDQogCQ0K
KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE0
LDApDQogCW1zZy5jcmVkLnVpZCA9IDA7DQorI2Vsc2UNCisJbXNnLmNyZWQu
dWlkID0gS1VJRFRfSU5JVCgwKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFn
ID0gMDsNCiAJDQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw
LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KQEAgLTEyMSw4ICsxMjks
MTMgQEAgbWFrZV9yb290X2lub2RlKHN0cnVjdCBubnBmcyAqbm5wZnNwKQ0K
ICAgICBYQV9TRVRfTU9ERSgmbm9kZS5hdHRyLCBTX0lGRElSIHwgMDc3Nyk7
DQogICAgIFhBX1NFVF9OTElOSygmbm9kZS5hdHRyLCAxMDApOw0KICAgICBY
QV9TRVRfU0laRSgmbm9kZS5hdHRyLCAwKTsNCisjaWYgTElOVVhfVkVSU0lP
Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KICAgICBYQV9TRVRf
VUlEKCZub2RlLmF0dHIsIDApOw0KICAgICBYQV9TRVRfR0lEKCZub2RlLmF0
dHIsIDApOw0KKyNlbHNlDQorICAgIFhBX1NFVF9VSUQoJm5vZGUuYXR0ciwg
S1VJRFRfSU5JVCgwKSk7DQorICAgIFhBX1NFVF9HSUQoJm5vZGUuYXR0ciwg
S0dJRFRfSU5JVCgwKSk7DQorI2VuZGlmDQogICAgIFhBX1NFVF9BVElNRSgm
bm9kZS5hdHRyLCAwKTsNCiAgICAgWEFfU0VUX01USU1FKCZub2RlLmF0dHIs
IDApOw0KICAgICBYQV9TRVRfQ1RJTUUoJm5vZGUuYXR0ciwgMCk7DQpAQCAt
MTUxLDcgKzE2NCwxMSBAQCBtYWtlX3Jvb3QgKHN0cnVjdCBzdXBlcl9ibG9j
ayAqc2IpDQogICAgIG5ucGZzLT5yb290ID0gaW5vZGU7DQogDQogICAgIC8q
IFhYWCBlcnJvciBoYW5kbGluZyAqLw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDQsMCkNCiAgICAgZHAgPSBkX2FsbG9j
X3Jvb3QoaW5vZGUpOw0KKyNlbHNlDQorICAgIGRwID0gZF9tYWtlX3Jvb3Qo
aW5vZGUpOw0KKyNlbmRpZg0KICAgICBubnBmc19kX2luaXQoZHApOw0KICAg
ICBzYi0+c19yb290ID0gZHA7DQogICAgIHJldHVybiAwOw0KQEAgLTE3NSwx
MyArMTkyLDI3IEBAIG5ucGZzX3JlYWRfc3VwZXIgKHN0cnVjdCBzdXBlcl9i
bG9jayAqIHMNCiAgICAgTk5QRlNERUIoWERFQlZGT1BTLCAoIm5ucGZzX3Jl
YWRfc3VwZXI6IGJlZ2luIHNldHRpbmcgdmFyaWFibGVzXG4iKSk7DQogDQog
ICAgIGlmIChkYXRhICE9IE5VTEwpIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D
T0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgbmFtZWlk
YXRhIG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlm
DQogCQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAoZGF0YSwgMCwgJm5k
KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP
TigzLDE5LDApDQorCWVycm9yID0ga2Vybl9wYXRoKGRhdGEsIDAsICZuZC5w
YXRoKTsNCisjZWxzZQ0KKwllcnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAm
cGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikNCiAJICAgIGRkZXYgPSBF
UlJfUFRSKGVycm9yKTsNCiAJZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP
REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogCSAgICBkZGV2ID0gbmQu
cGF0aC5kZW50cnk7DQorI2Vsc2UNCisJICAgIGRkZXYgPSBwYXRoLmRlbnRy
eTsNCisjZW5kaWYNCiANCiAJaWYgKCFJU19FUlIoZGRldikpIHsNCiAJICAg
IG1pbm9yZGV2aWNlID0gTUlOT1IoZGRldi0+ZF9pbm9kZS0+aV9yZGV2KTsN
CkBAIC0yMjUsNiArMjU2LDcgQEAgbm5wZnNfZmlsbF9zdXBlciAoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYg0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lm
IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkN
CiBpbnQNCiBubnBmc19nZXRfc2Ioc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg
KmZzX3R5cGUsDQogCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZf
bmFtZSwNCkBAIC0yMzIsMTIgKzI2NCwyMyBAQCBubnBmc19nZXRfc2Ioc3Ry
dWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzDQogew0KICAgICByZXR1cm4gZ2V0
X3NiX25vZGV2KGZzX3R5cGUsIGZsYWdzLCBkYXRhLCBubnBmc19maWxsX3N1
cGVyLCBtbnQpOw0KIH0NCisjZWxzZQ0KK3N0cnVjdCBkZW50cnkqDQorbm5w
ZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5cGUsDQor
CSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwNCisJICAg
ICB2b2lkICpkYXRhKSANCit7DQorICAgIHJldHVybiBtb3VudF9ub2Rldihm
c190eXBlLCBmbGFncywgZGF0YSwgbm5wZnNfZmlsbF9zdXBlcik7DQorfQ0K
KyNlbmRpZg0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf
VkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgdm9pZA0KIG5ucGZzX3dyaXRlX3N1
cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKQ0KIHsNCiAgICAgc2ItPnNf
ZGlydCA9IDA7DQogfQ0KKyNlbmRpZg0KIA0KIC8qDQogICogWFhYIGlzIHRo
aXMgZ29vZD8gDQo=

---276651502-1358444250-1452952148=:16393
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-1358444250-1452952148=:16393--

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