patch for ubuntu 7.10

Lino Sanfilippo <[email protected]> Tue, 07 Jul 2009 17:11:45 +0200
Newsgroups gmane.linux.dazuko.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------040600090204050509070609
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



Geschäftsführender Gesellschafter: Tjark Auerbach
Sitz der Gesellschaft: Tettnang
Handelsregister: Amtsgericht Ulm, HRB 630992
ALLGEMEINE GESCHÄFTSBEDINGUNGEN
Es gelten unsere Allgemeinen Geschäftsbedingungen
(AGB). Sie finden sie in der jeweils gültigen Fassung
im Internet unter http://www.avira.de/agb
***************************************************
--------------040600090204050509070609
Content-Type: text/plain;
 name="patch_ubuntu7.10"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="patch_ubuntu7.10"

ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yMl9VYnVudHU3LjEwL0NIQU5HRUxPRwotLS0gZGF6dWtvZnMtMy4wLjAv
Q0hBTkdFTE9HCTIwMDktMDItMjIgMTc6NTE6MjIuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1
a29mcy0zLjAuMC1yYzRfMi42LjIyX1VidW50dTcuMTAvQ0hBTkdFTE9HCTIwMDktMDYtMTgg
MTI6Mjc6NDguMDAwMDAwMDAwICswMjAwCkBAIC0yLDExICsyLDYgQEAKICBEYXp1a29GUyBD
SEFOR0VMT0cKID09PT09PT09PT09PT09PT09PT09CiAKLTMuMC4wICgyMDA5LTAyLTIyKQot
LSBhZGRlZCBkZWZpbmUgZm9yIHZlcnNpb24gbnVtYmVyIG91dHB1dAotLSBhZGRlZCBwYXRj
aGVzIGZvciB2YXJpb3VzIG90aGVyIGtlcm5lbHMKLQotCiAzLjAuMC1yYzQgKDIwMDgtMTEt
MzApCiAtIGZpeCBpbmNvcnJlY3QgZGVudHJ5L3Zmc21udCByZWZlcmVuY2luZyB3aGVuIGFj
Y2VzcyBkZW5pZWQKIC0gZml4IGltcHJvcGVyIGNsZWFudXAgaW4gc2V2ZXJhbCBlcnJvciBo
YW5kbGluZyBjb25kaXRpb25zCk51ciBpbiBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIyX1Vi
dW50dTcuMTA6IENIQU5HRUxPR19BVklSQS4KZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0z
LjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjJfVWJ1bnR1Ny4xMC9j
dHJsX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jCTIwMDktMDItMjIgMTc6
NDU6MjAuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIyX1Vi
dW50dTcuMTAvY3RybF9kZXYuYwkyMDA5LTA2LTE4IDEyOjI3OjQ4LjAwMDAwMDAwMCArMDIw
MApAQCAtMTgzLDcgKzE4Myw3IEBAIGludCBkYXp1a29mc19jdHJsX2Rldl9pbml0KGludCBk
ZXZfbWFqb3IKIAogCS8qIGNyZWF0ZSBjb250cm9sIGRldmljZSAqLwogCWRldiA9IGRldmlj
ZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1LREVWKGRldl9tYWpvciwgZGV2X21p
bm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuY3RybCIsIERFVklDRV9OQU1FKTsKKwkJCSAgICAi
JXMuY3RybCIsIERFVklDRV9OQU1FKTsKIAlpZiAoSVNfRVJSKGRldikpIHsKIAkJZXJyID0g
UFRSX0VSUihkZXYpOwogCQlnb3RvIGVycm9yX291dDI7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6
dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMuaCBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIyX1Vi
dW50dTcuMTAvZGF6dWtvZnNfZnMuaAotLS0gZGF6dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMu
aAkyMDA5LTAyLTIyIDE3OjQzOjExLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yMl9VYnVudHU3LjEwL2RhenVrb2ZzX2ZzLmgJMjAwOS0wNy0wMyAxODow
MToyMC4wMDAwMDAwMDAgKzAyMDAKQEAgLTMsNyArMyw3IEBACiAgICBDb3B5cmlnaHQgKEMp
IDE5OTctMjAwNCBFcmV6IFphZG9rCiAgICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCBTdG9u
eSBCcm9vayBVbml2ZXJzaXR5CiAgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNyBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnAuCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgt
MjAwOSBKb2huIE9nbmVzcworICAgQ29weXJpZ2h0IChDKSAyMDA4IEpvaG4gT2duZXNzCiAg
ICAgIEF1dGhvcjogSm9obiBPZ25lc3MgPGRhenVrb2NvZGVAb2duZXNzLm5ldD4KIAogICAg
VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgpAQCAtMjQsOCArMjQsNiBAQAogI2lmbmRlZiBfX0RBWlVLT0ZTX0ZTX0gKICNk
ZWZpbmUgX19EQVpVS09GU19GU19ICiAKLSNkZWZpbmUgREFaVUtPRlNfVkVSU0lPTiAiMy4w
LjAiCi0KIGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZGVudHJ5X2luZm9f
Y2FjaGVwOwogZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19maWxlX2luZm9f
Y2FjaGVwOwogZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfbWFpbl9m
b3BzOwpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2RlbnRyeS5jIGRhenVrb2Zz
LTMuMC4wLXJjNF8yLjYuMjJfVWJ1bnR1Ny4xMC9kZW50cnkuYwotLS0gZGF6dWtvZnMtMy4w
LjAvZGVudHJ5LmMJMjAwOS0wMi0yMiAxNzo0NDoyMi4wMDAwMDAwMDAgKzAxMDAKKysrIGRh
enVrb2ZzLTMuMC4wLXJjNF8yLjYuMjJfVWJ1bnR1Ny4xMC9kZW50cnkuYwkyMDA5LTA2LTE4
IDEyOjI3OjQ4LjAwMDAwMDAwMCArMDIwMApAQCAtNjUsMTkgKzY1LDE5IEBAIHN0YXRpYyBp
bnQgZGF6dWtvZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCAKIAogCWxvd2VyX21udCA9IEdFVF9M
T1dFUl9NTlQoZGVudHJ5KTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+cGF0aC5tbnQ7Ci0J
ZGVudHJ5X3NhdmUgPSBuZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRfc2F2ZSA9IG5kLT5t
bnQ7CisJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBhdGgubW50ID0gbW50
Z2V0KGxvd2VyX21udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChsb3dlcl9kZW50cnkp
OworCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVudHJ5ID0gZGdldChs
b3dlcl9kZW50cnkpOwogCiAJdmFsaWQgPSBsb3dlcl9kZW50cnktPmRfb3AtPmRfcmV2YWxp
ZGF0ZShsb3dlcl9kZW50cnksIG5kKTsKIAogCW1udHB1dChsb3dlcl9tbnQpOwogCWRwdXQo
bG93ZXJfZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50X3NhdmU7Ci0JbmQt
PnBhdGguZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZmc21vdW50X3NhdmU7
CisJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJLyogdXBkYXRlIHRoZSBpbm9kZSwg
ZXZlbiBpZiBkX3JldmFsaWRhdGUoKSAhPSAxICovCiAJaWYgKGRlbnRyeS0+ZF9pbm9kZSkg
ewpAQCAtODUsNyArODUsNyBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2RfcmV2YWxpZGF0ZShz
dHJ1Y3QgCiAKIAkJbG93ZXJfaW5vZGUgPSBHRVRfTE9XRVJfSU5PREUoZGVudHJ5LT5kX2lu
b2RlKTsKIAotCQlmc3N0YWNrX2NvcHlfYXR0cl9hbGwoZGVudHJ5LT5kX2lub2RlLCBsb3dl
cl9pbm9kZSwgTlVMTCk7CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChkZW50cnktPmRfaW5v
ZGUsIGxvd2VyX2lub2RlKTsKIAl9CiBvdXQ6CiAJcmV0dXJuIHZhbGlkOwpkaWZmIC14IENW
UyAtcnVwIGRhenVrb2ZzLTMuMC4wL2V2ZW50LmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4y
Ml9VYnVudHU3LjEwL2V2ZW50LmMKLS0tIGRhenVrb2ZzLTMuMC4wL2V2ZW50LmMJMjAwOS0w
Mi0yMiAxNzo0NDowMy4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8y
LjYuMjJfVWJ1bnR1Ny4xMC9ldmVudC5jCTIwMDktMDctMDMgMTg6NTY6MTEuMDAwMDAwMDAw
ICswMjAwCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgogI2lu
Y2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KLSNpbmNsdWRl
IDxsaW51eC9mcmVlemVyLmg+CiAKICNpbmNsdWRlICJkZXYuaCIKICNpbmNsdWRlICJkYXp1
a29mc19mcy5oIgpAQCAtMTEzLDIxICsxMTIsMjEgQEAgaW50IGRhenVrb2ZzX2luaXRfZXZl
bnRzKHZvaWQpCiAJZGF6dWtvZnNfZ3JvdXBfY2FjaGVwID0KIAkJa21lbV9jYWNoZV9jcmVh
dGUoImRhenVrb2ZzX2dyb3VwX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1Y3QgZGF6dWtv
ZnNfZ3JvdXApLCAwLAotCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMKTsKKwkJCQkg
IFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1a29mc19ncm91
cF9jYWNoZXApCiAJCWdvdG8gZXJyb3Jfb3V0OwogCiAJZGF6dWtvZnNfZXZlbnRfY29udGFp
bmVyX2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3JlYXRlKCJkYXp1a29mc19ldmVudF9jb250
YWluZXJfY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19ldmVudF9jb250
YWluZXIpLCAwLAotCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMKTsKKwkJCQkgIFNM
QUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1a29mc19ldmVudF9j
b250YWluZXJfY2FjaGVwKQogCQlnb3RvIGVycm9yX291dDsKIAogCWRhenVrb2ZzX2V2ZW50
X2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3JlYXRlKCJkYXp1a29mc19ldmVudF9jYWNoZSIs
CiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2V2ZW50KSwgMCwKLQkJCQkgIFNMQUJf
SFdDQUNIRV9BTElHTiwgTlVMTCk7CisJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sIE5VTEws
IE5VTEwpOwogCWlmICghZGF6dWtvZnNfZXZlbnRfY2FjaGVwKQogCQlnb3RvIGVycm9yX291
dDsKIApAQCAtMTYyLDE2ICsxNjEsMjMgQEAgc3RhdGljIGludCBjYXB0dXJlX2dyb3VwX2Nv
dW50KGludCAqY2FjaAogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBpbnQgZ2V0X2dyb3Vw
X2NvdW50KHZvaWQpCitzdGF0aWMgaW50IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxl
KHZvaWQpCiB7CiAJaW50IGNhY2hlID0gMDsKLQlpbnQgcmV0ID0gd2FpdF9ldmVudF9mcmVl
emFibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKLQkJCQkgICAgICAgY2FwdHVyZV9ncm91cF9j
b3VudCgmY2FjaGUpID09IDApOworCWludCByZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGli
bGUoX19ncm91cF9jb3VudF9xdWV1ZSwKKwkJCQkgICAgICAgICAgIGNhcHR1cmVfZ3JvdXBf
Y291bnQoJmNhY2hlKSA9PSAwKTsKIAlpZiAocmV0ID09IDApCiAJCXJldCA9IF9fZ3JvdXBf
Y291bnQ7CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBnZXRfZ3JvdXBfY291bnQo
dm9pZCkKK3sKKwlpbnQgY2FjaGUgPSAwOworCXdhaXRfZXZlbnQoX19ncm91cF9jb3VudF9x
dWV1ZSwgY2FwdHVyZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOworCXJldHVybiBfX2dy
b3VwX2NvdW50OworfQorCiBzdGF0aWMgdm9pZCBwdXRfZ3JvdXBfY291bnQodm9pZCkKIHsK
IAltdXRleF9sb2NrKCZncm91cF9jb3VudF9tdXRleCk7CkBAIC0zOTksNyArNDA1LDcgQEAg
aW50IGRhenVrb2ZzX2FkZF9ncm91cChjb25zdCBjaGFyICpuYW1lLAogCWludCBhbHJlYWR5
X2V4aXN0czsKIAlpbnQgYXZhaWxhYmxlX2lkID0gMDsKIAlzdHJ1Y3QgZGF6dWtvZnNfZ3Jv
dXAgKmdycDsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50KCk7CisJaW50IGdy
cF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7CiAKIAlpZiAoZ3Jw
X2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC00NDcsNyArNDUzLDcgQEAg
aW50IGRhenVrb2ZzX3JlbW92ZV9ncm91cChjb25zdCBjaGFyICpuYQogCWludCByZXQgPSAw
OwogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwogCXN0cnVjdCBsaXN0X2hlYWQgKnBv
czsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50KCk7CisJaW50IGdycF9jb3Vu
dCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7CiAKIAlpZiAoZ3JwX2NvdW50
IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC03MDEsMTEgKzcwNywxMCBAQCBpbnQg
ZGF6dWtvZnNfY2hlY2tfYWNjZXNzKHN0cnVjdCBkZW50cnkgCiB7CiAJc3RydWN0IGRhenVr
b2ZzX2V2ZW50X2NvbnRhaW5lciAqZWNfYXJyYXlbR1JPVVBfQ09VTlRdOwogCXN0cnVjdCBk
YXp1a29mc19ldmVudCAqZXZ0OwotCWludCBncnBfY291bnQgPSBnZXRfZ3JvdXBfY291bnQo
KTsKLQlpbnQgZXJyOworCWludCBncnBfY291bnQ7CisJaW50IGVyciA9IDA7CiAKLQlpZiAo
Z3JwX2NvdW50IDwgMCkKLQkJcmV0dXJuIGdycF9jb3VudDsKKwlncnBfY291bnQgPSBnZXRf
Z3JvdXBfY291bnQoKTsKIAogCWlmIChjaGVja19hY2Nlc3NfcHJlY2hlY2soZ3JwX2NvdW50
KSkgewogCQlwdXRfZ3JvdXBfY291bnQoKTsKQEAgLTcxMywzMiArNzE4LDI5IEBAIGludCBk
YXp1a29mc19jaGVja19hY2Nlc3Moc3RydWN0IGRlbnRyeSAKIAl9CiAKIAkvKiBhdCB0aGlz
IHBvaW50LCB0aGUgYWNjZXNzIHNob3VsZCBiZSBoYW5kbGVkICovCi0KIAlpZiAoYWxsb2Nh
dGVfZXZlbnRfYW5kX2NvbnRhaW5lcnMoJmV2dCwgZWNfYXJyYXksIGdycF9jb3VudCkpIHsK
IAkJcHV0X2dyb3VwX2NvdW50KCk7Ci0JCWVyciA9IC1FTk9NRU07Ci0JCWdvdG8gb3V0Owor
CQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0KIAlldnQtPmRlbnRyeSA9IGRnZXQoZGVudHJ5KTsK
IAlldnQtPm1udCA9IG1udGdldChtbnQpOwogCWV2dC0+cGlkID0gY3VycmVudC0+cGlkOwot
CiAJYXNzaWduX2V2ZW50X3RvX2dyb3VwcyhldnQsIGVjX2FycmF5KTsKIAogCXB1dF9ncm91
cF9jb3VudCgpOwogCi0JLyogd2FpdCB1bnRpbCBldmVudCBjb21wbGV0ZWx5IHByb2Nlc3Nl
ZCBvciBzaWduYWwgKi8KLQllcnIgPSB3YWl0X2V2ZW50X2ZyZWV6YWJsZShldnQtPnF1ZXVl
LCBldmVudF9hc3NpZ25lZChldnQpID09IDApOworCS8qIHdhaXQgdW50aWwgZXZlbnQgY29t
cGxldGVseSBwcm9jZXNzZWQgKi8KKwl3YWl0X2V2ZW50KGV2dC0+cXVldWUsIGV2ZW50X2Fz
c2lnbmVkKGV2dCkgPT0gMCk7CiAKIAlpZiAoZXZ0LT5kZW55KQogCQllcnIgPSAtRVBFUk07
CiAKIAlyZWxlYXNlX2V2ZW50KGV2dCwgMCwgMCk7Ci1vdXQ6CisJCiAJcmV0dXJuIGVycjsK
IH0KIAorCiBpbnQgZGF6dWtvZnNfZ3JvdXBfb3Blbl90cmFja2luZyh1bnNpZ25lZCBsb25n
IGdyb3VwX2lkKQogewogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwpAQCAtOTI4LDcg
KzkzMCw4IEBAIHN0YXRpYyBpbnQgb3Blbl9maWxlKHN0cnVjdCBkYXp1a29mc19ldmUKIAkv
KiBhZGQgbXlzZWxmIHRvIGJlIGlnbm9yZWQgb24gZmlsZSBvcGVuICh0byBhdm9pZCByZWN1
cnNpb24pICovCiAJbWFza19wcm9jKCZwcm9jKTsKIAotCWVjLT5maWxlID0gZGVudHJ5X29w
ZW4oZGdldChldnQtPmRlbnRyeSksIG1udGdldChldnQtPm1udCksIE9fUkRPTkxZKTsKKwll
Yy0+ZmlsZSA9IGRlbnRyeV9vcGVuKGRnZXQoZXZ0LT5kZW50cnkpLCBtbnRnZXQoZXZ0LT5t
bnQpLCAKKwkJCSAgICAgICBPX1JET05MWSB8IE9fTEFSR0VGSUxFKTsKIAlpZiAoSVNfRVJS
KGVjLT5maWxlKSkgewogCQljaGVja19yZWN1cnNpb24oKTsgIC8qIHJlbW92ZSBteXNlbGYg
ZnJvbSBwcm9jX2xpc3QgKi8KIAkJcmV0ID0gUFRSX0VSUihlYy0+ZmlsZSk7CkBAIC0xMDA0
LDkgKzEwMDcsOSBAQCBpbnQgZGF6dWtvZnNfZ2V0X2V2ZW50KHVuc2lnbmVkIGxvbmcgZ3Jv
CiAJfQogCiAJd2hpbGUgKDEpIHsKLQkJcmV0ID0gd2FpdF9ldmVudF9mcmVlemFibGUoZ3Jw
LT5xdWV1ZSwKLQkJCQkJICAgaXNfZXZlbnRfYXZhaWxhYmxlKGdycCkgfHwKLQkJCQkJICAg
Z3JwLT5kZXByZWNhdGVkKTsKKwkJcmV0ID0gd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGdy
cC0+cXVldWUsCisJCQkJCSAgICAgICBpc19ldmVudF9hdmFpbGFibGUoZ3JwKSB8fAorCQkJ
CQkgICAgICAgZ3JwLT5kZXByZWNhdGVkKTsKIAkJaWYgKHJldCAhPSAwKQogCQkJYnJlYWs7
CiAKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9maWxlLmMgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yMl9VYnVudHU3LjEwL2ZpbGUuYwotLS0gZGF6dWtvZnMtMy4wLjAvZmls
ZS5jCTIwMDktMDItMjIgMTc6NDM6MTEuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0z
LjAuMC1yYzRfMi42LjIyX1VidW50dTcuMTAvZmlsZS5jCTIwMDktMDctMDMgMTg6NTA6MDIu
MDAwMDAwMDAwICswMjAwCkBAIC0xNzcsMTAgKzE3NywxMSBAQCBzdGF0aWMgaW50IGRhenVr
b2ZzX29wZW4oc3RydWN0IGlub2RlICppCiAJc3RydWN0IGZpbGUgKmxvd2VyX2ZpbGU7CiAJ
aW50IGVycjsKIAotCWVyciA9IGRhenVrb2ZzX2NoZWNrX2FjY2VzcyhmaWxlLT5mX2RlbnRy
eSwgZmlsZS0+Zl92ZnNtbnQpOwotCWlmIChlcnIpCi0JCWdvdG8gZXJyb3Jfb3V0MTsKLQor
CWlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKSB7CisJCWVyciA9IGRhenVrb2ZzX2NoZWNr
X2FjY2VzcyhmaWxlLT5mX2RlbnRyeSwgZmlsZS0+Zl92ZnNtbnQpOworCQlpZiAoZXJyKQor
CQkJZ290byBlcnJvcl9vdXQxOworCX0KIAlTRVRfRklMRV9JTkZPKGZpbGUsIGttZW1fY2Fj
aGVfemFsbG9jKGRhenVrb2ZzX2ZpbGVfaW5mb19jYWNoZXAsCiAJCSAgICAgIEdGUF9LRVJO
RUwpKTsKIAlpZiAoIUdFVF9GSUxFX0lORk8oZmlsZSkpIHsKQEAgLTI3Miw2ICsyNzMsMjAg
QEAgb3V0OgogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgZGF6dWtvZnNfbW1hcCAo
c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm0pCit7CisKKwlz
dHJ1Y3QgZmlsZSAqbG93ZXJfZmlsZSA9IEdFVF9MT1dFUl9GSUxFKGZpbGUpOworCisJLyog
aWYgbG93ZXIgZnMgZG9lcyBub3Qgc3VwcG9ydCBtbWFwKCksIHdlIGRvbnQgY2FsbCBnZW5l
cmljX2ZpbGVfcmVhZG9ubHlfbW1hcCgpLCAKKwkgKiBzaW5jZSB0aGlzIHdvdWxkIHJlc3Vs
dCBpbiBjYWxsaW5nIGxvd2VyIHJlYWRwYWdlKCksIHdoaWNoIG1pZ2h0IG5vdCBiZSAKKwkg
KiBkZWZpbmVkIGJ5IGxvd2VyIGZzIGlmIG1tYXAoKSBpcyBub3Qgc3VwcG9ydGVkKi8KKwlp
ZiAoIWxvd2VyX2ZpbGUtPmZfb3AgfHwgIWxvd2VyX2ZpbGUtPmZfb3AtPm1tYXApIAorCQly
ZXR1cm4gLUVOT0RFVjsKKwkKKworCXJldHVybiBnZW5lcmljX2ZpbGVfcmVhZG9ubHlfbW1h
cChmaWxlLCB2bSk7Cit9CiAvKioKICAqIFVudXNlZCBvcGVyYXRpb25zOgogICogICAtIG93
bmVyCkBAIC0yOTUsMTggKzMxMCwxNSBAQCBvdXQ6CiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z
IGRhenVrb2ZzX21haW5fZm9wcyA9IHsKIAkubGxzZWVrCQk9IGRhenVrb2ZzX2xsc2VlaywK
IAkucmVhZAkJPSBkYXp1a29mc19yZWFkLAotCS5haW9fcmVhZAk9IGdlbmVyaWNfZmlsZV9h
aW9fcmVhZCwKIAkud3JpdGUJCT0gZGF6dWtvZnNfd3JpdGUsCi0JLmFpb193cml0ZQk9IGdl
bmVyaWNfZmlsZV9haW9fd3JpdGUsCiAJLnJlYWRkaXIJPSBkYXp1a29mc19yZWFkZGlyLAog
CS5pb2N0bAkJPSBkYXp1a29mc19pb2N0bCwKLQkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1h
cCwKKwkubW1hcAkJPSBkYXp1a29mc19tbWFwLAogCS5vcGVuCQk9IGRhenVrb2ZzX29wZW4s
CiAJLmZsdXNoCQk9IGRhenVrb2ZzX2ZsdXNoLAogCS5yZWxlYXNlCT0gZGF6dWtvZnNfcmVs
ZWFzZSwKIAkuZnN5bmMJCT0gZGF6dWtvZnNfZnN5bmMsCiAJLmZhc3luYwkJPSBkYXp1a29m
c19mYXN5bmMsCi0JLnNwbGljZV9yZWFkCT0gZ2VuZXJpY19maWxlX3NwbGljZV9yZWFkLAog
fTsKIAogLyoqCkBAIC0zMzUsMTEgKzM0NywxMCBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z
IGRhenVrb2ZzX21haW5fZm9wCiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVr
b2ZzX2Rpcl9mb3BzID0gewogCS5yZWFkZGlyCT0gZGF6dWtvZnNfcmVhZGRpciwKIAkuaW9j
dGwJCT0gZGF6dWtvZnNfaW9jdGwsCi0JLm1tYXAJCT0gZ2VuZXJpY19maWxlX21tYXAsCisJ
Lm1tYXAJCT0gZGF6dWtvZnNfbW1hcCwKIAkub3BlbgkJPSBkYXp1a29mc19vcGVuLAogCS5m
bHVzaAkJPSBkYXp1a29mc19mbHVzaCwKIAkucmVsZWFzZQk9IGRhenVrb2ZzX3JlbGVhc2Us
CiAJLmZzeW5jCQk9IGRhenVrb2ZzX2ZzeW5jLAogCS5mYXN5bmMJCT0gZGF6dWtvZnNfZmFz
eW5jLAotCS5zcGxpY2VfcmVhZAk9IGdlbmVyaWNfZmlsZV9zcGxpY2VfcmVhZCwKIH07CmRp
ZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvZ3JvdXBfZGV2LmMgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yMl9VYnVudHU3LjEwL2dyb3VwX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAu
MC9ncm91cF9kZXYuYwkyMDA5LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysg
ZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMl9VYnVudHU3LjEwL2dyb3VwX2Rldi5jCTIwMDkt
MDYtMTggMTI6Mjc6NDguMDAwMDAwMDAwICswMjAwCkBAIC0yMTAsNyArMjEwLDcgQEAgaW50
IGRhenVrb2ZzX2dyb3VwX2Rldl9pbml0KGludCBkZXZfbWFqbwogCS8qIGNyZWF0ZSBncm91
cCBkZXZpY2VzICovCiAJZm9yIChpID0gMDsgaSA8IEdST1VQX0NPVU5UOyBpKyspIHsKIAkJ
ZGV2ID0gZGV2aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywgTlVMTCwKLQkJCQkgICAgTUtE
RVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwgTlVMTCwKKwkJCQkgICAgTUtERVYoZGV2
X21ham9yLCBkZXZfbWlub3JfZW5kKSwKIAkJCQkgICAgIiVzLiVkIiwgREVWSUNFX05BTUUs
IGkpOwogCQlpZiAoSVNfRVJSKGRldikpIHsKIAkJCWVyciA9IFBUUl9FUlIoZGV2KTsKZGlm
ZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9pZ25fZGV2LmMgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yMl9VYnVudHU3LjEwL2lnbl9kZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvaWdu
X2Rldi5jCTIwMDktMDItMjIgMTc6NDU6MjAuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29m
cy0zLjAuMC1yYzRfMi42LjIyX1VidW50dTcuMTAvaWduX2Rldi5jCTIwMDktMDYtMTggMTI6
Mjc6NDguMDAwMDAwMDAwICswMjAwCkBAIC0xNDQsNyArMTQ0LDcgQEAgaW50IGRhenVrb2Zz
X2lnbl9kZXZfaW5pdChpbnQgZGV2X21ham9yLAogCWRhenVrb2ZzX2lnbl9jYWNoZXAgPQog
CQlrbWVtX2NhY2hlX2NyZWF0ZSgiZGF6dWtvZnNfaWduX2NhY2hlIiwKIAkJCQkgIHNpemVv
ZihzdHJ1Y3QgZGF6dWtvZnNfcHJvYyksIDAsCi0JCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04s
IE5VTEwpOworCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMLCBOVUxMKTsKIAlpZiAo
IWRhenVrb2ZzX2lnbl9jYWNoZXApIHsKIAkJZXJyID0gLUVOT01FTTsKIAkJZ290byBlcnJv
cl9vdXQxOwpAQCAtMTU5LDcgKzE1OSw3IEBAIGludCBkYXp1a29mc19pZ25fZGV2X2luaXQo
aW50IGRldl9tYWpvciwKIAogCS8qIGNyZWF0ZSBpZ25vcmUgZGV2aWNlICovCiAJZGV2ID0g
ZGV2aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywgTlVMTCwgTUtERVYoZGV2X21ham9yLCBk
ZXZfbWlub3IpLAotCQkJICAgIE5VTEwsICIlcy5pZ24iLCBERVZJQ0VfTkFNRSk7CisJCQkg
ICAgIiVzLmlnbiIsIERFVklDRV9OQU1FKTsKIAlpZiAoSVNfRVJSKGRldikpIHsKIAkJZXJy
ID0gUFRSX0VSUihkZXYpOwogCQlnb3RvIGVycm9yX291dDM7CmRpZmYgLXggQ1ZTIC1ydXAg
ZGF6dWtvZnMtMy4wLjAvaW5vZGUuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjIyX1VidW50
dTcuMTAvaW5vZGUuYwotLS0gZGF6dWtvZnMtMy4wLjAvaW5vZGUuYwkyMDA5LTAyLTIyIDE3
OjQ2OjAyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMl9V
YnVudHU3LjEwL2lub2RlLmMJMjAwOS0wNy0wNiAxMDozMDowMy4wMDAwMDAwMDAgKzAyMDAK
QEAgLTQ3LDE0ICs0NywyOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2RlX3Rlc3Qoc3Ry
dWN0IGluCiAKIHN0YXRpYyB2b2lkIGRhenVrb2ZzX2luaXRfaW5vZGUoc3RydWN0IGlub2Rl
ICppbm9kZSwgc3RydWN0IGlub2RlICpsb3dlcl9pbm9kZSkKIHsKLQlTRVRfTE9XRVJfSU5P
REUoaW5vZGUsIGxvd2VyX2lub2RlKTsKLQlpbm9kZS0+aV9pbm8gPSBsb3dlcl9pbm9kZS0+
aV9pbm87Ci0JaW5vZGUtPmlfdmVyc2lvbisrOwotCWlub2RlLT5pX29wID0gJmRhenVrb2Zz
X21haW5faW9wczsKLQlpbm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfbWFpbl9mb3BzOwotCWlu
b2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmRhenVrb2ZzX2FvcHM7CisgICAgICAgIFNFVF9M
T1dFUl9JTk9ERShpbm9kZSwgbG93ZXJfaW5vZGUpOworICAgICAgICBpbm9kZS0+aV9pbm8g
PSBsb3dlcl9pbm9kZS0+aV9pbm87CisgICAgICAgIGlub2RlLT5pX3ZlcnNpb24rKzsKKwor
ICAgICAgICBpZiAoU19JU0RJUihsb3dlcl9pbm9kZS0+aV9tb2RlKSkgeworICAgICAgICAg
ICAgICAgIGlub2RlLT5pX29wID0gJmRhenVrb2ZzX2Rpcl9pb3BzOworICAgICAgICAgICAg
ICAgIGlub2RlLT5pX2ZvcCA9ICZkYXp1a29mc19kaXJfZm9wczsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19tYWluX2lvcHM7
CisgICAgICAgICAgICAgICAgaW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX21haW5fZm9wczsK
KworICAgICAgICAgICAgICAgIGlmIChTX0lTTE5LKGxvd2VyX2lub2RlLT5pX21vZGUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgaW5vZGUtPmlfb3AgPSAmZGF6dWtvZnNfc3ltbGlu
a19pb3BzOworICAgICAgICAgICAgICAgIGVsc2UgIGlmIChzcGVjaWFsX2ZpbGUobG93ZXJf
aW5vZGUtPmlfbW9kZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXRfc3BlY2lh
bF9pbm9kZShpbm9kZSwgbG93ZXJfaW5vZGUtPmlfbW9kZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcl9pbm9kZS0+aV9yZGV2KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaW5vZGUtPmlfbWFwcGluZy0+YV9v
cHMgPSAmZGF6dWtvZnNfYW9wczsKIH0KIAorCiBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2Rl
X3NldChzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICpsb3dlcl9pbm9kZSkKIHsKIAlkYXp1
a29mc19pbml0X2lub2RlKGlub2RlLCAoc3RydWN0IGlub2RlICopbG93ZXJfaW5vZGUpOwpA
QCAtNjIsNzIgKzc2LDEyNCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2RlX3NldChzdHJ1
Y3QgaW5vCiB9CiAKIGludCBkYXp1a29mc19pbnRlcnBvc2Uoc3RydWN0IGRlbnRyeSAqbG93
ZXJfZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCSAgICAgc3RydWN0IHN1cGVy
X2Jsb2NrICpzYiwgaW50IGZsYWcpCisJCSAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwg
aW50IGhhc2gpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZTsKLQlzdHJ1Y3QgaW5vZGUgKmxv
d2VyX2lub2RlID0gaWdyYWIobG93ZXJfZGVudHJ5LT5kX2lub2RlKTsKLQlpbnQgZXJyID0g
MDsKKwlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2lub2RlOworCWludCBlcnI7CiAKLQlpZiAoIWxv
d2VyX2lub2RlKSB7Ci0JCWVyciA9IC1FU1RBTEU7Ci0JCWdvdG8gb3V0OwotCX0KKwlsb3dl
cl9pbm9kZSA9IGlncmFiKGxvd2VyX2RlbnRyeS0+ZF9pbm9kZSk7CiAKLQlpZiAobG93ZXJf
aW5vZGUtPmlfc2IgIT0gR0VUX0xPV0VSX1NCKHNiKSkgewotCQlpcHV0KGxvd2VyX2lub2Rl
KTsKLQkJZXJyID0gLUVYREVWOwotCQlnb3RvIG91dDsKLQl9CisJaWYgKCFsb3dlcl9pbm9k
ZSkgCisJCXJldHVybiAtRVNUQUxFOwogCiAJaW5vZGUgPSBpZ2V0NV9sb2NrZWQoc2IsICh1
bnNpZ25lZCBsb25nKWxvd2VyX2lub2RlLAogCQkJICAgICBkYXp1a29mc19pbm9kZV90ZXN0
LCBkYXp1a29mc19pbm9kZV9zZXQsCiAJCQkgICAgIGxvd2VyX2lub2RlKTsKLQogCWlmICgh
aW5vZGUpIHsKLQkJaXB1dChsb3dlcl9pbm9kZSk7CiAJCWVyciA9IC1FQUNDRVM7Ci0JCWdv
dG8gb3V0OworCQlnb3RvIGVycjsKIAl9CiAKLQlpZiAoaW5vZGUtPmlfc3RhdGUgJiBJX05F
VykgeworCWlmIChpbm9kZS0+aV9zdGF0ZSAmIElfTkVXKSAKIAkJdW5sb2NrX25ld19pbm9k
ZShpbm9kZSk7CiAJCS8qCiAJCSAqIFRoaXMgaXMgYSBuZXcgbm9kZSBzbyB3ZSBsZWF2ZSB0
aGUgbG93ZXJfbm9kZSAiaW4gdXNlIgogCQkgKiBhbmQgZG8gbm90IGNhbGwgaXB1dCgpLgog
CQkgKi8KLQl9IGVsc2UgeworCWVsc2UgCiAJCS8qCiAJCSAqIFRoaXMgaXMgbm90IGEgbmV3
IG5vZGUgc28gd2UgZGVjcmVtZW50IHRoZSB1c2FnZSBjb3VudC4KIAkJICovCiAJCWlwdXQo
bG93ZXJfaW5vZGUpOwotCX0KIAotCWlmIChTX0lTTE5LKGxvd2VyX2lub2RlLT5pX21vZGUp
KQotCQlpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19zeW1saW5rX2lvcHM7Ci0JZWxzZSBpZiAo
U19JU0RJUihsb3dlcl9pbm9kZS0+aV9tb2RlKSkKLQkJaW5vZGUtPmlfb3AgPSAmZGF6dWtv
ZnNfZGlyX2lvcHM7Ci0KLQlpZiAoU19JU0RJUihsb3dlcl9pbm9kZS0+aV9tb2RlKSkKLQkJ
aW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX2Rpcl9mb3BzOwotCi0JaWYgKHNwZWNpYWxfZmls
ZShsb3dlcl9pbm9kZS0+aV9tb2RlKSkgewotCQlpbml0X3NwZWNpYWxfaW5vZGUoaW5vZGUs
IGxvd2VyX2lub2RlLT5pX21vZGUsCi0JCQkJICAgbG93ZXJfaW5vZGUtPmlfcmRldik7Ci0J
fQogCi0JZGVudHJ5LT5kX29wID0gJmRhenVrb2ZzX2RvcHM7Ci0KLQlpZiAoZmxhZykKKwlp
ZiAoaGFzaCkKIAkJZF9hZGQoZGVudHJ5LCBpbm9kZSk7CiAJZWxzZQogCQlkX2luc3RhbnRp
YXRlKGRlbnRyeSwgaW5vZGUpOwogCi0JZnNzdGFja19jb3B5X2F0dHJfYWxsKGlub2RlLCBs
b3dlcl9pbm9kZSwgTlVMTCk7CisJZnNzdGFja19jb3B5X2F0dHJfYWxsKGlub2RlLCBsb3dl
cl9pbm9kZSk7CiAJZnNzdGFja19jb3B5X2lub2RlX3NpemUoaW5vZGUsIGxvd2VyX2lub2Rl
KTsKLW91dDoKKworCXJldHVybiAwOworZXJyOgorCWlwdXQobG93ZXJfaW5vZGUpOwogCXJl
dHVybiBlcnI7CiB9CiAKKy8qIGNyZWF0ZXMgYSBuZXcgbG93ZXIgZGVudHJ5ICovCitzdGF0
aWMgc3RydWN0IGRlbnRyeSAqZGF6dWtvZnNfbmV3X2xvd2VyX2RlbnRyeShzdHJ1Y3QgcXN0
ciAqbmFtZSwKKwkJCQkJCXN0cnVjdCBkZW50cnkgKmxvd2VyX2Jhc2UsIAorCQkJCQkJc3Ry
dWN0IG5hbWVpZGF0YSAqbmQpCit7CisJc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeTsKKwlz
dHJ1Y3QgZGVudHJ5ICp0bXA7CisJc3RydWN0IGlub2RlICpsb3dlcl9pbm9kZTsKKworCWxv
d2VyX2lub2RlID0gbG93ZXJfYmFzZS0+ZF9pbm9kZTsKKwkvKiBYWFg6IGlzIHRoaXMgY2hl
Y2sgc3RpbGwgbmVjZXNzYXJ5PyAoc2VlIF9fbG9va3VwX2hhc2goKSkKKwkgICBUaGlzIGlz
IChob3BlbHkpIHByb3RlY3RlZCBieSBsb2NrZWQgdXBwZXIgaW5vZGUgKi8KKwlpZiAoSVNf
REVBRERJUihsb3dlcl9pbm9kZSkpIHsKKwkJbmV3X2RlbnRyeSA9IEVSUl9QVFIoLUVOT0VO
VCk7CisJCWdvdG8gb3V0OworCX0KKwl0bXAgPSBkX2FsbG9jKGxvd2VyX2Jhc2UsIG5hbWUp
OworCWlmICghdG1wKSB7CisJCW5ld19kZW50cnkgPSBFUlJfUFRSKC1FTk9NRU0pOworCQln
b3RvIG91dDsKKwl9CisJbmV3X2RlbnRyeSA9IGxvd2VyX2lub2RlLT5pX29wLT5sb29rdXAo
bG93ZXJfaW5vZGUsIHRtcCwgbmQpOworCS8qIGxvb2t1cCgpIHNlZW1pbmdseSBpcyBhbGxv
d2VkIHRvIHJldHVybiBpdHMgb3duIGRlbnRyeSAod2hpY2ggCisJICogbWF5IGluZGVlZCBi
ZSBhIGRlbnRyeSBvciBvbmx5IGFuIGVycm9yKS4gSWYgc28KKwkgKiB3ZSB1c2UgaXQgYW5k
IGRpc2NhcmQgb3Vycy4gT3RoZXJ3aXNlIHdlIHVzZSBvdXJzICovIAorCWlmICghbmV3X2Rl
bnRyeSkgCisJCW5ld19kZW50cnkgPSB0bXA7CisJZWxzZSAKKwkJZHB1dCh0bXApOworCQkK
K291dDoJCQorCXJldHVybiBuZXdfZGVudHJ5OworfQorCisKKy8qIGdldCBsb3dlciBkZW50
cnkgZm9yIGdpdmVuIG5hbWUgKi8KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpkYXp1a29mc19s
b29rdXBfb25lX2xvd2VyKHN0cnVjdCBxc3RyICpuYW1lLCAKKwkJCQkJCXN0cnVjdCBkZW50
cnkgKmxvd2VyX2Jhc2UsCisJCQkJCQlzdHJ1Y3QgdmZzbW91bnQgKmxvd2VyX21udCkKK3sK
KwlzdHJ1Y3QgZGVudHJ5ICpyZXN1bHQ7CisJc3RydWN0IG5hbWVpZGF0YSBuZDsKKwlpbnQg
ZXJyOworCisJLyogc2VlIHZmc19wYXRoX2xvb2t1cCBpbiBrZXJuZWwgdmVyc2lvbnMgPj0g
Mi42LjI0ICovCisJbmQubGFzdF90eXBlID0gTEFTVF9ST09UOworCW5kLmZsYWdzID0gMDsK
KwluZC5kZXB0aCA9IDA7CisJbmQuZGVudHJ5ID0gZGdldChsb3dlcl9iYXNlKTsKKwluZC5t
bnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKworCWVyciA9IHBhdGhfd2FsayhuYW1lLT5uYW1l
LCAmbmQpOworCisJaWYgKCFlcnIpIHsKKwkJLyogaW5vZGUgYWxyZWFkeSBleGlzdHMgb24g
ZGlzayAqLworCQlyZXN1bHQgPSBuZC5kZW50cnk7CisJCS8qIHdlIGRvbnQgbmVlZCB0aGUg
bW91bnQgKi8KKwkJbW50cHV0KG5kLm1udCk7CisJCWdvdG8gb3V0OworCX0KKwlpZiAoZXJy
ICE9IC1FTk9FTlQpIHsgLyogdGhpcyBpcyBhIFJFQUwgZXJyb3IgKi8JCisJCXJlc3VsdCA9
IEVSUl9QVFIoZXJyKTsKKwkJZ290byBvdXQ7CisJfQkKKwkvKiBjcmVhdGUgYSBuZXcgKGxv
d2VyKSBkZW50cnkgKi8KKwlyZXN1bHQgPSBkYXp1a29mc19uZXdfbG93ZXJfZGVudHJ5KG5h
bWUsIGxvd2VyX2Jhc2UsICZuZCk7CitvdXQ6CisJcmV0dXJuIHJlc3VsdDsKKworfQorCisK
IC8qKgogICogRGVzY3JpcHRpb246IENhbGxlZCB3aGVuIHRoZSBWRlMgbmVlZHMgdG8gbG9v
ayB1cCBhbiBpbm9kZSBpbiBhIHBhcmVudAogICogZGlyZWN0b3J5LiBUaGUgbmFtZSB0byBs
b29rIGZvciBpcyBmb3VuZCBpbiB0aGUgZGVudHJ5LiBUaGlzIG1ldGhvZApAQCAtMTQ4LDYy
ICsyMTQsNDggQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmRhenVrb2ZzX2xvb2t1cChzdAog
CXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeTsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9k
ZW50cnlfcGFyZW50OwogCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50OwotCWludCBlcnIg
PSAwOwotCi0JaWYgKChkZW50cnktPmRfbmFtZS5sZW4gPT0gMSAmJiAhc3RyY21wKGRlbnRy
eS0+ZF9uYW1lLm5hbWUsICIuIikpCi0JICAgIHx8IChkZW50cnktPmRfbmFtZS5sZW4gPT0g
MiAmJgotCQkhc3RyY21wKGRlbnRyeS0+ZF9uYW1lLm5hbWUsICIuLiIpKSkgewotCQlkX2Ry
b3AoZGVudHJ5KTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JZGVudHJ5LT5kX29wID0gJmRhenVr
b2ZzX2RvcHM7CisJaW50IGVycjsKIAogCWxvd2VyX2RlbnRyeV9wYXJlbnQgPSBHRVRfTE9X
RVJfREVOVFJZKGRlbnRyeS0+ZF9wYXJlbnQpOwotCWxvd2VyX2RlbnRyeSA9IGxvb2t1cF9v
bmVfbGVuKGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGxvd2VyX2RlbnRyeV9wYXJlbnQsCi0JCQkJ
ICAgICAgZGVudHJ5LT5kX25hbWUubGVuKTsKKwkvKiBzaG91bGQgYmUgcmVsZWFzZWQgaW4g
ZF9yZWxlYXNlKCkgKi8KKwlsb3dlcl9tbnQgPSBtbnRnZXQoR0VUX0xPV0VSX01OVChkZW50
cnktPmRfcGFyZW50KSk7CiAKKwlsb3dlcl9kZW50cnkgPSBkYXp1a29mc19sb29rdXBfb25l
X2xvd2VyKCZkZW50cnktPmRfbmFtZSwgCisJCQkJCQkgbG93ZXJfZGVudHJ5X3BhcmVudCwg
CisJCQkJCQkgbG93ZXJfbW50KTsgCiAJaWYgKElTX0VSUihsb3dlcl9kZW50cnkpKSB7Ci0J
CWVyciA9IFBUUl9FUlIobG93ZXJfZGVudHJ5KTsKLQkJZF9kcm9wKGRlbnRyeSk7Ci0JCWdv
dG8gb3V0OworCQltbnRwdXQobG93ZXJfbW50KTsKKwkJcmV0dXJuIGxvd2VyX2RlbnRyeTsK
IAl9Ci0KIAlCVUdfT04oIWF0b21pY19yZWFkKCZsb3dlcl9kZW50cnktPmRfY291bnQpKTsK
IAorCWRlbnRyeS0+ZF9vcCA9ICZkYXp1a29mc19kb3BzOwogCVNFVF9ERU5UUllfSU5GTyhk
ZW50cnksIGttZW1fY2FjaGVfemFsbG9jKGRhenVrb2ZzX2RlbnRyeV9pbmZvX2NhY2hlcCwK
IAkJCUdGUF9LRVJORUwpKTsKIAogCWlmICghR0VUX0RFTlRSWV9JTkZPKGRlbnRyeSkpIHsK
LQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBvdXRfZHB1dDsKKwkJbW50cHV0KGxvd2VyX21u
dCk7CisJCWRwdXQobG93ZXJfZGVudHJ5KTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7
CiAJfQotCi0JbG93ZXJfbW50ID0gbW50Z2V0KEdFVF9MT1dFUl9NTlQoZGVudHJ5LT5kX3Bh
cmVudCkpOwotCi0JZnNzdGFja19jb3B5X2F0dHJfYXRpbWUoZGlyLCBsb3dlcl9kZW50cnlf
cGFyZW50LT5kX2lub2RlKTsKLQogCVNFVF9MT1dFUl9ERU5UUlkoZGVudHJ5LCBsb3dlcl9k
ZW50cnksIGxvd2VyX21udCk7Ci0KKwkvKiBmcm9tIG5vdyBsb3dlciBkZW50cnkgYW5kIGxv
d2VyIG1vdW50IGFyZSByZWxlYXNlZCBpbiAKKwkgIGRfcmVsZWFzZSBvZiB1cHBlciBkZW50
cnkgKi8KKwlmc3N0YWNrX2NvcHlfYXR0cl9hdGltZShkaXIsIGxvd2VyX2RlbnRyeV9wYXJl
bnQtPmRfaW5vZGUpOwogCWlmICghbG93ZXJfZGVudHJ5LT5kX2lub2RlKSB7CiAJCS8qCiAJ
CSAqIFdlIHdhbnQgdG8gYWRkIGJlY2F1c2Ugd2UgY291bGQgbm90IGZpbmQgaW4gbG93ZXIu
CiAJCSAqLwogCQlkX2FkZChkZW50cnksIE5VTEwpOwotCQlnb3RvIG91dDsKKwkJZ290byBv
azsKIAl9CiAKIAllcnIgPSBkYXp1a29mc19pbnRlcnBvc2UobG93ZXJfZGVudHJ5LCBkZW50
cnksIGRpci0+aV9zYiwgMSk7Ci0JaWYgKGVycikKLQkJZ290byBvdXRfZHB1dDsKLQlnb3Rv
IG91dDsKLQotb3V0X2RwdXQ6Ci0JZHB1dChsb3dlcl9kZW50cnkpOwotCWRfZHJvcChkZW50
cnkpOworCWlmIChlcnIpIAorCQlyZXR1cm4gRVJSX1BUUihlcnIpOwogCi1vdXQ6Ci0JcmV0
dXJuIEVSUl9QVFIoZXJyKTsKK29rOgorCXJldHVybiBOVUxMOyAvKiB0ZWxsIGNhbGxlciB0
byB1c2UgaXRzIG93biwgcGFzc2VkIGRlbnRyeSwgbm90IG91cnMgKi8KIH0KIAogLyoqCkBA
IC0yMTYsNiArMjY4LDcgQEAgc3RhdGljIGludCBkYXp1a29mc19ta25vZChzdHJ1Y3QgaW5v
ZGUgKgogCQkJICBkZXZfdCBkZXYpCiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5
ID0gR0VUX0xPV0VSX0RFTlRSWShkZW50cnkpOworCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJf
bW50ID0gR0VUX0xPV0VSX01OVChkZW50cnkpOwogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2Rl
bnRyeV9wYXJlbnQgPSBkZ2V0KGxvd2VyX2RlbnRyeS0+ZF9wYXJlbnQpOwogCXN0cnVjdCBp
bm9kZSAqbG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSA9IGxvd2VyX2RlbnRyeV9wYXJlbnQt
PmRfaW5vZGU7CiAJaW50IGVyciA9IC1FTk9FTlQ7CkBAIC0yMjMsNyArMjc2LDggQEAgc3Rh
dGljIGludCBkYXp1a29mc19ta25vZChzdHJ1Y3QgaW5vZGUgKgogCW11dGV4X2xvY2tfbmVz
dGVkKCYobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkgIElfTVVU
RVhfUEFSRU5UKTsKIAotCWVyciA9IHZmc19ta25vZChsb3dlcl9kZW50cnlfcGFyZW50X2lu
b2RlLCBsb3dlcl9kZW50cnksIG1vZGUsIGRldik7CisJZXJyID0gdmZzX21rbm9kKGxvd2Vy
X2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSxsb3dlcl9tbnQsIAorCQkJIG1v
ZGUsIGRldik7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAgLTI0OCw2ICszMDIsNyBA
QCBvdXQ6CiBzdGF0aWMgaW50IGRhenVrb2ZzX21rZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBz
dHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBtb2RlKQogewogCXN0cnVjdCBkZW50cnkgKmxv
d2VyX2RlbnRyeSA9IEdFVF9MT1dFUl9ERU5UUlkoZGVudHJ5KTsKKwlzdHJ1Y3QgdmZzbW91
bnQgKmxvd2VyX21udCA9IEdFVF9MT1dFUl9NTlQoZGVudHJ5KTsKIAlzdHJ1Y3QgZGVudHJ5
ICpsb3dlcl9kZW50cnlfcGFyZW50ID0gZGdldChsb3dlcl9kZW50cnktPmRfcGFyZW50KTsK
IAlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUgPSBsb3dlcl9kZW50
cnlfcGFyZW50LT5kX2lub2RlOwogCWludCBlcnIgPSAtRU5PRU5UOwpAQCAtMjU1LDcgKzMx
MCw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfbWtkaXIoc3RydWN0IGlub2RlICoKIAltdXRl
eF9sb2NrX25lc3RlZCgmKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUtPmlfbXV0ZXgpLAog
CQkJICBJX01VVEVYX1BBUkVOVCk7CiAKLQllcnIgPSB2ZnNfbWtkaXIobG93ZXJfZGVudHJ5
X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBtb2RlKTsKKwllcnIgPSB2ZnNfbWtkaXIo
bG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBsb3dlcl9tbnQsCisJ
CQltb2RlKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIApAQCAtMjk0LDE5ICszNTAsMTkg
QEAgc3RhdGljIGludCBkYXp1a29mc19jcmVhdGUoc3RydWN0IGlub2RlIAogCW11dGV4X2xv
Y2tfbmVzdGVkKCYobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkg
IElfTVVURVhfUEFSRU5UKTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+cGF0aC5tbnQ7Ci0J
ZGVudHJ5X3NhdmUgPSBuZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRfc2F2ZSA9IG5kLT5t
bnQ7CisJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBhdGgubW50ID0gbW50
Z2V0KGxvd2VyX21udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChsb3dlcl9kZW50cnkp
OworCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVudHJ5ID0gZGdldChs
b3dlcl9kZW50cnkpOwogCiAJZXJyID0gdmZzX2NyZWF0ZShsb3dlcl9kZW50cnlfcGFyZW50
X2lub2RlLCBsb3dlcl9kZW50cnksIG1vZGUsIG5kKTsKIAogCW1udHB1dChsb3dlcl9tbnQp
OwogCWRwdXQobG93ZXJfZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50X3Nh
dmU7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZmc21v
dW50X3NhdmU7CisJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJaWYgKGVycikKIAkJ
Z290byBvdXQ7CkBAIC0zMzMsNiArMzg5LDcgQEAgc3RhdGljIGludCBkYXp1a29mc19zeW1s
aW5rKHN0cnVjdCBpbm9kZQogCQkJICAgIGNvbnN0IGNoYXIgKnN5bW5hbWUpCiB7CiAJc3Ry
dWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShkZW50cnkpOwor
CXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50ID0gR0VUX0xPV0VSX01OVChkZW50cnkpOwog
CXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxvd2VyX2RlbnRy
eS0+ZF9wYXJlbnQpOwogCXN0cnVjdCBpbm9kZSAqbG93ZXJfZGVudHJ5X3BhcmVudF9pbm9k
ZSA9IGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGU7CiAJaW50IGVyciA9IC1FTk9FTlQ7
CkBAIC0zNDAsNyArMzk3LDggQEAgc3RhdGljIGludCBkYXp1a29mc19zeW1saW5rKHN0cnVj
dCBpbm9kZQogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9k
ZS0+aV9tdXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5UKTsKIAotCWVyciA9IHZmc19zeW1s
aW5rKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgc3ltbmFtZSk7
CisJZXJyID0gdmZzX3N5bWxpbmsobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJf
ZGVudHJ5LCBsb3dlcl9tbnQsIAorCQkJICBzeW1uYW1lLCBTX0lBTExVR08pOwogCWlmIChl
cnIpCiAJCWdvdG8gb3V0OwogCkBAIC00NTIsOSArNTEwLDM3IEBAIHN0YXRpYyB2b2lkIGRh
enVrb2ZzX3B1dF9saW5rKHN0cnVjdCBkZW4KICAqIERlc2NyaXB0aW9uOiBDYWxsZWQgYnkg
dGhlIFZGUyB0byBjaGVjayBmb3IgYWNjZXNzIHJpZ2h0cyBvbiBhCiAgKiBQT1NJWC1saWtl
IGZpbGVzeXN0ZW0uCiAgKi8KLXN0YXRpYyBpbnQgZGF6dWtvZnNfcGVybWlzc2lvbihzdHJ1
Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaykKK3N0YXRpYyBpbnQgZGF6dWtvZnNfcGVybWlz
c2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaywKKwkJCSAgICAgICBzdHJ1Y3Qg
bmFtZWlkYXRhICpuZCkKIHsKLQlyZXR1cm4gaW5vZGVfcGVybWlzc2lvbihHRVRfTE9XRVJf
SU5PREUoaW5vZGUpLCBtYXNrKTsKKwlzdHJ1Y3QgdmZzbW91bnQgKmxvd2VyX21udCA9IE5V
TEw7CisJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5ID0gTlVMTDsKKwlzdHJ1Y3QgdmZz
bW91bnQgKnZmc21udF9zYXZlID0gTlVMTDsKKwlzdHJ1Y3QgZGVudHJ5ICpkZW50cnlfc2F2
ZSA9IE5VTEw7CisJaW50IGVycjsKKworCWlmIChuZCkgeworCQlsb3dlcl9tbnQgPSBHRVRf
TE9XRVJfTU5UKG5kLT5kZW50cnkpOworCQlsb3dlcl9kZW50cnkgPSBHRVRfTE9XRVJfREVO
VFJZKG5kLT5kZW50cnkpOworCisJCXZmc21udF9zYXZlID0gbmQtPm1udDsKKwkJZGVudHJ5
X3NhdmUgPSBuZC0+ZGVudHJ5OworCisJCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsK
KwkJbmQtPmRlbnRyeSA9IGRnZXQobG93ZXJfZGVudHJ5KTsKKwl9CisKKwllcnIgPSBwZXJt
aXNzaW9uKEdFVF9MT1dFUl9JTk9ERShpbm9kZSksIG1hc2ssIG5kKTsKKworCWlmIChuZCkg
eworCQltbnRwdXQobG93ZXJfbW50KTsKKwkJZHB1dChsb3dlcl9kZW50cnkpOworCisJCW5k
LT5tbnQgPSB2ZnNtbnRfc2F2ZTsKKwkJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOworCX0K
KworICAgICAgICByZXR1cm4gZXJyOwogfQogCiAvKioKQEAgLTQ2NCwxOCArNTUwLDMyIEBA
IHN0YXRpYyBpbnQgZGF6dWtvZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW4KIHN0YXRpYyBpbnQg
ZGF6dWtvZnNfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAq
aWEpCiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRS
WShkZW50cnkpOworCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50ID0gR0VUX0xPV0VSX01O
VChkZW50cnkpOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CiAJ
c3RydWN0IGlub2RlICpsb3dlcl9pbm9kZSA9IEdFVF9MT1dFUl9JTk9ERShpbm9kZSk7CiAJ
aW50IGVycjsKIAotCWVyciA9IG5vdGlmeV9jaGFuZ2UobG93ZXJfZGVudHJ5LCBpYSk7CiAK
LQlmc3N0YWNrX2NvcHlfYXR0cl9hbGwoaW5vZGUsIGxvd2VyX2lub2RlLCBOVUxMKTsKLQlm
c3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShpbm9kZSwgbG93ZXJfaW5vZGUpOworCWlmICghbG93
ZXJfaW5vZGUtPmlfb3AgfHwgIWxvd2VyX2lub2RlLT5pX29wLT5zZXRhdHRyKSAKKwkJLyog
WFhYOiBhdCB0aGlzIHBvaW50IGl0IGlzIHRvbyBsYXRlIHRvIGhhbmRsZSBpbm9kZXMgcHJv
cGVybHkgdGhhdCBkbyBOT1QKKwkJc3BlY2lmeSBzZXRhdHRyKCkuIFZGUyB3b3VsZCBub3Jt
YWxseSBjYWxsIGlub2RlX3NldGF0dHIoKSBpbiAKKwkJdGhpcyBjYXNlLiBTbyB0byBmb3Jj
ZSB0aGlzIHdlIGp1bXAgYmFjayB0byBub3RpZnlfY2hhbmdlIHdoaWNoIHdpbGwKKwkJaGFu
ZGxlIHRoaXMgZm9yIHVzLiBCdXQgdGhpcyBpcyBkYW5nZXJvdXM6CisJCVRoZSBhdHRyaWJ1
dGVzIG1pZ2h0IGJlIG1vZGlmaWVkIGJ5IG5vdGlmeV9jaGFuZ2UoKSBpbiBhIHdheQorCQl0
aGF0IHJlc3VsdHMgaW4gaW52YWxpZCBhdHRyaWJ1dGVzLiBUaGlzIHNlZW1zIHRvIGJlIHRo
ZSBjYXNlCisJCWlmIHRoZSBpbm9kZSBmb3Igd2hpY2ggdGhpcyBmdW5jdGlvbiBpcyBjYWxs
ZWQgaGFzIHRoZSBzZXR1aWQKKwkJb3Igc2V0Z2lkIGJpdCBzZXQgKi8gCisJCWVyciA9IG5v
dGlmeV9jaGFuZ2UobG93ZXJfZGVudHJ5LCBsb3dlcl9tbnQsIGlhKTsKKwllbHNlIAorCQll
cnIgPSBsb3dlcl9pbm9kZS0+aV9vcC0+c2V0YXR0cihsb3dlcl9kZW50cnksIGlhKTsKKwkK
KwlpZiAoIWVycikgeworCQlmc3N0YWNrX2NvcHlfYXR0cl9hbGwoaW5vZGUsIGxvd2VyX2lu
b2RlKTsKKwkJZnNzdGFja19jb3B5X2lub2RlX3NpemUoaW5vZGUsIGxvd2VyX2lub2RlKTsK
Kwl9IAogCiAJcmV0dXJuIGVycjsKIH0KLQogLyoqCiAgKiBEZXNjcmlwdGlvbjogQ2FsbGVk
IGJ5IHRoZSBWRlMgdG8gc2V0IGFuIGV4dGVuZGVkIGF0dHJpYnV0ZSBmb3IgYSBmaWxlLgog
ICogRXh0ZW5kZWQgYXR0cmlidXRlIGlzIGEgbmFtZTp2YWx1ZSBwYWlyIGFzc29jaWF0ZWQg
d2l0aCBhbiBpbm9kZS4gVGhpcwpAQCAtNDk2LDE0ICs1OTYsMTQgQEAgc3RhdGljIGludCBk
YXp1a29mc19zZXR4YXR0cihzdHJ1Y3QgZGVudAogCiAJaWYgKCFsb3dlcl9kZW50cnlfaW5v
ZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcC0+c2V0eGF0dHIp
IHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0
OwogCX0KIAogCWVyciA9IGxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcC0+c2V0eGF0dHIobG93
ZXJfZGVudHJ5LCBuYW1lLCB2YWx1ZSwKIAkJCQkJCSBzaXplLCBmbGFncyk7CiAKLQlmc3N0
YWNrX2NvcHlfYXR0cl9hbGwoZGVudHJ5LT5kX2lub2RlLCBsb3dlcl9kZW50cnlfaW5vZGUs
IE5VTEwpOworCWZzc3RhY2tfY29weV9hdHRyX2FsbChkZW50cnktPmRfaW5vZGUsIGxvd2Vy
X2RlbnRyeV9pbm9kZSk7CiAJZnNzdGFja19jb3B5X2lub2RlX3NpemUoZGVudHJ5LT5kX2lu
b2RlLCBsb3dlcl9kZW50cnlfaW5vZGUpOwogb3V0OgogCXJldHVybiBlcnI7CkBAIC01Mjgs
NyArNjI4LDcgQEAgc3RhdGljIHNzaXplX3QgZGF6dWtvZnNfZ2V0eGF0dHIoc3RydWN0IAog
CiAJaWYgKCFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRy
eV9pbm9kZS0+aV9vcC0+Z2V0eGF0dHIpIHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJyID0g
LUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0OwogCX0KIApAQCAtNTU3LDcgKzY1Nyw3IEBAIHN0
YXRpYyBzc2l6ZV90IGRhenVrb2ZzX2xpc3R4YXR0cihzdHJ1Y3QKIAogCWlmICghbG93ZXJf
ZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJICAgICFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3At
Pmxpc3R4YXR0cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsK
IAkJZ290byBvdXQ7CiAJfQogCkBAIC01ODQsNyArNjg0LDcgQEAgc3RhdGljIGludCBkYXp1
a29mc19yZW1vdmV4YXR0cihzdHJ1Y3QgZAogCiAJaWYgKCFsb3dlcl9kZW50cnlfaW5vZGUt
Pmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcC0+cmVtb3ZleGF0dHIp
IHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0
OwogCX0KIApAQCAtNjAzLDYgKzcwMyw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfbGluayhz
dHJ1Y3QgZGVudHJ5ICoKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9vbGRfZGVudHJ5ID0g
R0VUX0xPV0VSX0RFTlRSWShvbGRfZGVudHJ5KTsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9u
ZXdfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShuZXdfZGVudHJ5KTsKKwlzdHJ1Y3QgdmZz
bW91bnQgKmxvd2VyX29sZF9tbnQgPSBHRVRfTE9XRVJfTU5UKG9sZF9kZW50cnkpOworCXN0
cnVjdCB2ZnNtb3VudCAqbG93ZXJfbmV3X21udCA9IEdFVF9MT1dFUl9NTlQobmV3X2RlbnRy
eSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5X3BhcmVudCA9IGRnZXQobG93ZXJf
bmV3X2RlbnRyeS0+ZF9wYXJlbnQpOwogCXN0cnVjdCBpbm9kZSAqbG93ZXJfZGVudHJ5X3Bh
cmVudF9pbm9kZSA9IGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGU7CiAJaW50IGVyciA9
IC1FTk9FTlQ7CkBAIC02MTAsOCArNzEyLDkgQEAgc3RhdGljIGludCBkYXp1a29mc19saW5r
KHN0cnVjdCBkZW50cnkgKgogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93ZXJfZGVudHJ5X3Bh
cmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5UKTsKIAotCWVyciA9
IHZmc19saW5rKGxvd2VyX29sZF9kZW50cnksIGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUs
Ci0JCSAgICAgICBsb3dlcl9uZXdfZGVudHJ5KTsKKwllcnIgPSB2ZnNfbGluayhsb3dlcl9v
bGRfZGVudHJ5LCBsb3dlcl9vbGRfbW50LAorCQkgICAgICAgbG93ZXJfZGVudHJ5X3BhcmVu
dF9pbm9kZSwgbG93ZXJfbmV3X2RlbnRyeSwKKwkJICAgICAgIGxvd2VyX25ld19tbnQpOwog
CWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCkBAIC02MzUsNiArNzM4LDcgQEAgb3V0Ogogc3Rh
dGljIGludCBkYXp1a29mc191bmxpbmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50
cnkgKmRlbnRyeSkKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50cnkgPSBHRVRfTE9X
RVJfREVOVFJZKGRlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICpsb3dlcl9tbnQgPSBHRVRf
TE9XRVJfTU5UKGRlbnRyeSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5X3BhcmVu
dCA9IGRnZXQobG93ZXJfZGVudHJ5LT5kX3BhcmVudCk7CiAJc3RydWN0IGlub2RlICpsb3dl
cl9kZW50cnlfcGFyZW50X2lub2RlID0gbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9kZTsK
IAlpbnQgZXJyOwpAQCAtNjQyLDcgKzc0Niw3IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfdW5s
aW5rKHN0cnVjdCBpbm9kZSAKIAltdXRleF9sb2NrX25lc3RlZCgmKGxvd2VyX2RlbnRyeV9w
YXJlbnRfaW5vZGUtPmlfbXV0ZXgpLAogCQkJICBJX01VVEVYX1BBUkVOVCk7CiAKLQllcnIg
PSB2ZnNfdW5saW5rKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSk7
CisJZXJyID0gdmZzX3VubGluayhsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9k
ZW50cnksIGxvd2VyX21udCk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAgLTY2NCw2
ICs3NjgsNyBAQCBvdXQ6CiBzdGF0aWMgaW50IGRhenVrb2ZzX3JtZGlyKHN0cnVjdCBpbm9k
ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGRlbnRyeSAqbG93
ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShkZW50cnkpOworCXN0cnVjdCB2ZnNtb3Vu
dCAqbG93ZXJfbW50ID0gR0VUX0xPV0VSX01OVChkZW50cnkpOwogCXN0cnVjdCBkZW50cnkg
Kmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxvd2VyX2RlbnRyeS0+ZF9wYXJlbnQpOwog
CXN0cnVjdCBpbm9kZSAqbG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSA9IGxvd2VyX2RlbnRy
eV9wYXJlbnQtPmRfaW5vZGU7CiAJaW50IGVycjsKQEAgLTY3MSw3ICs3NzYsNyBAQCBzdGF0
aWMgaW50IGRhenVrb2ZzX3JtZGlyKHN0cnVjdCBpbm9kZSAqCiAJbXV0ZXhfbG9ja19uZXN0
ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRF
WF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX3JtZGlyKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5v
ZGUsIGxvd2VyX2RlbnRyeSk7CisJZXJyID0gdmZzX3JtZGlyKGxvd2VyX2RlbnRyeV9wYXJl
bnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbG93ZXJfbW50KTsKIAlpZiAoZXJyKQogCQlnb3Rv
IG91dDsKIApAQCAtNjk2LDYgKzgwMSw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVuYW1l
KHN0cnVjdCBpbm9kZSAKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9vbGRfZGVudHJ5ID0g
R0VUX0xPV0VSX0RFTlRSWShvbGRfZGVudHJ5KTsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9u
ZXdfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShuZXdfZGVudHJ5KTsKKwlzdHJ1Y3QgdmZz
bW91bnQgKmxvd2VyX29sZF9tbnQgPSBHRVRfTE9XRVJfTU5UKG9sZF9kZW50cnkpOworCXN0
cnVjdCB2ZnNtb3VudCAqbG93ZXJfbmV3X21udCA9IEdFVF9MT1dFUl9NTlQobmV3X2RlbnRy
eSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfb2xkX2RlbnRyeV9wYXJlbnQgPQogCQlkZ2V0
KGxvd2VyX29sZF9kZW50cnktPmRfcGFyZW50KTsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9u
ZXdfZGVudHJ5X3BhcmVudCA9CkBAIC03MTgsMTYgKzgyNSwxNiBAQCBzdGF0aWMgaW50IGRh
enVrb2ZzX3JlbmFtZShzdHJ1Y3QgaW5vZGUgCiAKIAlsb2NrX3JlbmFtZShsb3dlcl9vbGRf
ZGVudHJ5X3BhcmVudCwgbG93ZXJfbmV3X2RlbnRyeV9wYXJlbnQpOwogCWVyciA9IHZmc19y
ZW5hbWUobG93ZXJfb2xkX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX29sZF9kZW50cnks
Ci0JCQkgbG93ZXJfbmV3X2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX25ld19kZW50cnkp
OworCQkJIGxvd2VyX29sZF9tbnQsIGxvd2VyX25ld19kZW50cnlfcGFyZW50X2lub2RlLCAK
KwkJCSBsb3dlcl9uZXdfZGVudHJ5LCBsb3dlcl9uZXdfbW50KTsKIAl1bmxvY2tfcmVuYW1l
KGxvd2VyX29sZF9kZW50cnlfcGFyZW50LCBsb3dlcl9uZXdfZGVudHJ5X3BhcmVudCk7CiAK
IAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAotCWZzc3RhY2tfY29weV9hdHRyX2FsbChuZXdf
ZGlyLCBsb3dlcl9uZXdfZGVudHJ5X3BhcmVudF9pbm9kZSwgTlVMTCk7CisJZnNzdGFja19j
b3B5X2F0dHJfYWxsKG5ld19kaXIsIGxvd2VyX25ld19kZW50cnlfcGFyZW50X2lub2RlKTsK
IAlpZiAobmV3X2RpciAhPSBvbGRfZGlyKQotCQlmc3N0YWNrX2NvcHlfYXR0cl9hbGwob2xk
X2RpciwgbG93ZXJfb2xkX2RlbnRyeV9wYXJlbnRfaW5vZGUsCi0JCQkJICAgICAgTlVMTCk7
CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChvbGRfZGlyLCBsb3dlcl9vbGRfZGVudHJ5X3Bh
cmVudF9pbm9kZSk7CiBvdXQ6CiAJZHB1dChsb3dlcl9vbGRfZGVudHJ5X3BhcmVudCk7CiAJ
ZHB1dChsb3dlcl9uZXdfZGVudHJ5X3BhcmVudCk7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtv
ZnMtMy4wLjAvTWFrZWZpbGUgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMl9VYnVudHU3LjEw
L01ha2VmaWxlCi0tLSBkYXp1a29mcy0zLjAuMC9NYWtlZmlsZQkyMDA5LTAyLTIyIDE3OjQ2
OjAyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yMl9VYnVu
dHU3LjEwL01ha2VmaWxlCTIwMDktMDYtMTggMTI6Mjc6NDguMDAwMDAwMDAwICswMjAwCkBA
IC0xOSw2ICsxOSw3IEBAIGRhenVrb2ZzX2luc3RhbGw6IGRhenVrb2ZzX21vZHVsZXMKIAog
Y2xlYW46CiAJcm0gLWYgTW9kdWxlLnN5bXZlcnMKKwlybSAtZiBtb2R1bGVzLm9yZGVyCiAJ
bWFrZSAtQyAkKERBWlVLT0ZTX0tFUk5FTF9TUkMpIFNVQkRJUlM9ImBwd2RgIiBjbGVhbgog
CiAuUEhPTlk6IGRhenVrb2ZzX21vZHVsZXMgZGF6dWtvZnNfaW5zdGFsbCBjbGVhbgpkaWZm
IC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL1JFQURNRSBkYXp1a29mcy0zLjAuMC1yYzRf
Mi42LjIyX1VidW50dTcuMTAvUkVBRE1FCi0tLSBkYXp1a29mcy0zLjAuMC9SRUFETUUJMjAw
OS0wMi0yMiAxNzozODoyMS4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJj
NF8yLjYuMjJfVWJ1bnR1Ny4xMC9SRUFETUUJMjAwOS0wNi0xOCAxMjoyNzo0OC4wMDAwMDAw
MDAgKzAyMDAKQEAgLTIxLDEwICsyMSwxMCBAQCBOT1RFOiBEYXp1a29GUyBpcyBjb21wbGV0
ZWx5IHNlcGFyYXRlIGZyCiA9PT09PT09PT09PT09PT09PQogCiBCZWxvdyBhcmUgYnJpZWYg
aW5zdHJ1Y3Rpb25zIHRvIGdldCBEYXp1a29GUyBjb21waWxlZCBhbmQgcnVubmluZyBvbiBh
Ci1zeXN0ZW0gd2l0aCBhIExpbnV4IDIuNi4yOCBrZXJuZWwuIFlvdSBtYXkgbmVlZCB0byBt
YW51YWxseSBhZGp1c3QgdGhlCitzeXN0ZW0gd2l0aCBhIExpbnV4IDIuNi4yNyBrZXJuZWwu
IFlvdSBtYXkgbmVlZCB0byBtYW51YWxseSBhZGp1c3QgdGhlCiBNYWtlZmlsZSBpZiB5b3Ug
a2VybmVsIHNvdXJjZXMgYXJlIG5vdCBpbiB0aGUgZGVmYXVsdCBsb2NhdGlvbi4KLShQYXRj
aGVzIGFyZSBwcm92aWRlZCBmb3IgdmFyaW91cyBvdGhlciBrZXJuZWxzLiBTZWUgdGhlIHNl
Y3Rpb24gYmVsb3cKLXRpdGxlZCAiUEFUQ0hJTkciIGZvciBtb3JlIGluZm9ybWF0aW9uLikK
KyhBIHBhdGNoIGlzIHByb3ZpZGVkIHRvIGNvbnZlcnQgdGhlIERhenVrb0ZTIGNvZGUgdG8g
c3VwcG9ydCBMaW51eAorMi42LjI2LikKIAogY29tcGlsZSB0aGUga2VybmVsIG1vZHVsZQog
ICAjIG1ha2UKQEAgLTUyLDI1ICs1Miw2IEBAIHVubW91bnQgRGF6dWtvRlMKIAogCiAKLT09
PT09PT09PT0KLSBQQVRDSElORwotPT09PT09PT09PQotCi1JbiB0aGUgInBhdGNoZXMiIGRp
cmVjdG9yeSB0aGVyZSBhcmUgcGF0Y2hlcyBhdmFpbGFibGUgdG8gbW9kaWZ5IHRoZQotRGF6
dWtvRlMgY29kZSB0byBmaXQgdmFyaW91cyBvdGhlciBrZXJuZWxzLiBGb3IgZXhhbXBsZSwg
aWYgeW91IGFyZQotcnVubmluZyBvcGVuU1VTRSAxMS4xIHlvdSBjYW4gcGF0Y2ggdGhlIGNv
ZGUgd2l0aCB0aGUgZm9sbG93aW5nCi1jb21tYW5kOgotCi0kIHBhdGNoIC1wMSA8IHBhdGNo
ZXMvcGF0Y2gtb3BlbnN1c2UtMTEuMQotCi1UaGVyZSBzaG91bGQgbm90IGJlIGFueSBlcnJv
cnMuIElmIHRoZXJlIGFyZSBlcnJvcnMsIHRoZW4gdGhlIHBhdGNoCi1pcyBicm9rZW4gYW5k
IHNob3VsZCBiZSByZXBvcnRlZCBvbiB0aGUgZGF6dWtvLWRldmVsIG1haWxpbmcgbGlzdC4K
LQotT25jZSB0aGUgY29kZSBoYXMgYmVlbiBwYXRjaGVkIHlvdSBjYW4gYnVpbGQgdGhlIGtl
cm5lbCBtb2R1bGUgYXMKLWRlc2NyaWJlZCBpbiB0aGUgc2VjdGlvbiAiQlVJTEQgLyBJTlNU
QUxMIiBhYm92ZS4KLQotCi0KID09PT09PT09PQogIFRFU1RJTkcKID09PT09PT09PQpAQCAt
MTU0LDkgKzEzNSw2IEBAIGFueSBwcm9ibGVtcy4KICBLTk9XTiBJU1NVRVMKID09PT09PT09
PT09PT09CiAKLS0gVGhlIGtlcm5lbCB3aWxsIGNyYXNoIGlmIHlvdSBhdHRlbXB0IHRvIG1v
dW50IERhenVrb0ZTIHRvIGEgZmlsZSBpbnN0ZWFkCi0gIG9mIGEgZGlyZWN0b3J5LiAoVGhl
IHZhcmlvdXMga2VybmVsIHBhdGNoZXMgaGFuZGxlIHRoaXMgZXJyb3IuKQotCiAtIERhenVr
b0ZTIGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyB0byBtZW1vcnkgbWFwcGVkIGZpbGVzLiBU
aGlzIHNob3VsZCBub3QKICAgY2F1c2UgdGhlIGtlcm5lbCB0byBjcmFzaCwgYnV0IHdpbGwg
aW5zdGVhZCByZXN1bHQgaW4gdGhlIGFwcGxpY2F0aW9uCiAgIGZhaWxpbmcgdG8gcGVyZm9y
bSB0aGUgd3JpdGVzIChhbHRob3VnaCBtbWFwKCkgd2lsbCBhcHBlYXIgdG8gYmUKZGlmZiAt
eCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9zdXBlci5jIGRhenVrb2ZzLTMuMC4wLXJjNF8y
LjYuMjJfVWJ1bnR1Ny4xMC9zdXBlci5jCi0tLSBkYXp1a29mcy0zLjAuMC9zdXBlci5jCTIw
MDktMDItMjIgMTc6NDY6MDIuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1y
YzRfMi42LjIyX1VidW50dTcuMTAvc3VwZXIuYwkyMDA5LTA3LTAzIDE3OjU3OjM5LjAwMDAw
MDAwMCArMDIwMApAQCAtMzUsNiArMzUsMTAgQEAgc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hl
ICpkYXp1a29mc19zYl9pbgogc3RydWN0IGttZW1fY2FjaGUgKmRhenVrb2ZzX2RlbnRyeV9p
bmZvX2NhY2hlcDsKIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19maWxlX2luZm9fY2Fj
aGVwOwogCisKKyNkZWZpbmUgREFaVUtPRlNfVkVSU0lPTiAiMy4wLjAtcmM0LWF2aXJhLWIy
LjYiCisKKwogc3RhdGljIHN0cnVjdCBpbm9kZSAqZGF6dWtvZnNfYWxsb2NfaW5vZGUoc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAq
aW5vZGVpOwpAQCAtMTU4LDggKzE2Miw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVhZF9z
dXBlcihzdHJ1Y3Qgc3UKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbG93ZXJfcm9v
dCA9IGRnZXQobmQucGF0aC5kZW50cnkpOwotCWxvd2VyX21udCA9IG1udGdldChuZC5wYXRo
Lm1udCk7CisJbG93ZXJfcm9vdCA9IGRnZXQobmQuZGVudHJ5KTsKKwlsb3dlcl9tbnQgPSBt
bnRnZXQobmQubW50KTsKIAogCWlmIChJU19FUlIobG93ZXJfcm9vdCkpIHsKIAkJZXJyID0g
UFRSX0VSUihsb3dlcl9yb290KTsKQEAgLTE3MCw2ICsxNzQsMTAgQEAgc3RhdGljIGludCBk
YXp1a29mc19yZWFkX3N1cGVyKHN0cnVjdCBzdQogCQllcnIgPSAtRU5PRU5UOwogCQlnb3Rv
IG91dF9wdXQ7CiAJfQorCWlmICghU19JU0RJUihsb3dlcl9yb290LT5kX2lub2RlLT5pX21v
ZGUpKSB7CisJCWVyciA9IC1FTk9FTlQ7CisJCWdvdG8gb3V0X3B1dDsKKwl9CiAKIAlTRVRf
TE9XRVJfU0Ioc2IsIGxvd2VyX3Jvb3QtPmRfc2IpOwogCXNiLT5zX21heGJ5dGVzID0gbG93
ZXJfcm9vdC0+ZF9zYi0+c19tYXhieXRlczsKQEAgLTE4NCw3ICsxOTIsNyBAQCBvdXRfcHV0
OgogCWRwdXQobG93ZXJfcm9vdCk7CiAJbW50cHV0KGxvd2VyX21udCk7CiBvdXQ6Ci0JcGF0
aF9wdXQoJm5kLnBhdGgpOworCXBhdGhfcmVsZWFzZSgmbmQpOwogCXJldHVybiBlcnI7CiB9
CiAKQEAgLTIxMywxNSArMjIxLDE2IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfZ2V0X3NiKHN0
cnVjdCBmaWxlX3MKIAogb3V0X2Fib3J0OgogCXVwX3dyaXRlKCZzYi0+c191bW91bnQpOwor
CWRwdXQoc2ItPnNfcm9vdCk7CiAJZGVhY3RpdmF0ZV9zdXBlcihzYik7CiBvdXQ6CiAJcmV0
dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgaW5pdF9vbmNlKHZvaWQgKmRhdGEpCitzdGF0
aWMgdm9pZCBpbml0X29uY2Uodm9pZCAqdnB0ciwgc3RydWN0IGttZW1fY2FjaGUgKmNhY2hl
cCwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5m
byAqaW5vZGVfaW5mbyA9Ci0JCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKWRhdGE7
CisJCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKXZwdHI7CiAKIAltZW1zZXQoaW5v
ZGVfaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19pbm9kZV9pbmZvKSk7CiAJaW5v
ZGVfaW5pdF9vbmNlKCYoaW5vZGVfaW5mby0+dmZzX2lub2RlKSk7CkBAIC0yNTYsNyArMjY1
LDcgQEAgc3RhdGljIGludCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2NyZWF0
ZSgiZGF6dWtvZnNfaW5vZGVfaW5mb19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRh
enVrb2ZzX2lub2RlX2luZm8pLCAwLAogCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLAotCQkJ
CSAgaW5pdF9vbmNlKTsKKwkJCQkgIGluaXRfb25jZSwgTlVMTCk7CiAJaWYgKCFkYXp1a29m
c19pbm9kZV9pbmZvX2NhY2hlcCkKIAkJZ290byBvdXRfbm9tZW07CiAKQEAgLTI2NCw3ICsy
NzMsNyBAQCBzdGF0aWMgaW50IGluaXRfY2FjaGVzKHZvaWQpCiAJCWttZW1fY2FjaGVfY3Jl
YXRlKCJkYXp1a29mc19zYl9pbmZvX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1Y3QgZGF6
dWtvZnNfc2JfaW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBO
VUxMKTsKKwkJCQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfc2JfaW5mb19jYWNo
ZXApCiAJCWdvdG8gb3V0X25vbWVtOwogCkBAIC0yNzIsNyArMjgxLDcgQEAgc3RhdGljIGlu
dCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2NyZWF0ZSgiZGF6dWtvZnNfZGVu
dHJ5X2luZm9fY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19kZW50cnlf
aW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsKKwkJ
CQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZGVudHJ5X2luZm9fY2FjaGVwKQog
CQlnb3RvIG91dF9ub21lbTsKIApAQCAtMjgwLDcgKzI4OSw3IEBAIHN0YXRpYyBpbnQgaW5p
dF9jYWNoZXModm9pZCkKIAkJa21lbV9jYWNoZV9jcmVhdGUoImRhenVrb2ZzX2ZpbGVfaW5m
b19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2ZpbGVfaW5mbyksIDAs
CiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsKKwkJCQkgIE5VTEws
IE5VTEwpOwogCWlmICghZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcCkKIAkJZ290byBvdXRf
bm9tZW07CiAKQEAgLTMwNSw3ICszMTQsNyBAQCBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVt
X3R5cGUgZGF6dWtvZnNfCiAKIHN0YXRpYyBpbnQgX19pbml0IGluaXRfZGF6dWtvZnNfZnMo
dm9pZCkKIHsKLQlpbnQgZXJyID0gMDsKKwlpbnQgZXJyOwogCiAJZXJyID0gZGF6dWtvZnNf
ZGV2X2luaXQoKTsKIAlpZiAoZXJyKQpAQCAtMzE5LDcgKzMyOCw3IEBAIHN0YXRpYyBpbnQg
X19pbml0IGluaXRfZGF6dWtvZnNfZnModm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIGVycm9y
X291dDM7CiAKLQlwcmludGsoS0VSTl9JTkZPICJkYXp1a29mczogbG9hZGVkLCB2ZXJzaW9u
PSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1a29m
czogbG9hZGVkLCB2ZXJzaW9uPSIgREFaVUtPRlNfVkVSU0lPTiAiXG4iKTsKIAlyZXR1cm4g
MDsKIAogZXJyb3Jfb3V0MzoKQEAgLTMzNSw3ICszNDQsNyBAQCBzdGF0aWMgdm9pZCBfX2V4
aXQgZXhpdF9kYXp1a29mc19mcyh2b2lkCiAJdW5yZWdpc3Rlcl9maWxlc3lzdGVtKCZkYXp1
a29mc19mc190eXBlKTsKIAlkZXN0cm95X2NhY2hlcygpOwogCWRhenVrb2ZzX2Rldl9kZXN0
cm95KCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IHVubG9hZGVkLCB2ZXJzaW9u
PSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1a29m
czogdW5sb2FkZWQsIHZlcnNpb249IiBEQVpVS09GU19WRVJTSU9OICJcbiIpOwogfQogCiBN
T0RVTEVfQVVUSE9SKCJKb2huIE9nbmVzcyIpOwo=
--------------040600090204050509070609
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Dazuko-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dazuko-devel

--------------040600090204050509070609--