patch for vanilla kernel 2.6.18
Lino Sanfilippo <[email protected]> Tue, 07 Jul 2009 17:12:52 +0200
| Newsgroups | gmane.linux.dazuko.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------080403000800050709010803 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 *************************************************** --------------080403000800050709010803 Content-Type: text/plain; name="patch_2.6.18" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="patch_2.6.18" ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w LjAtcmM0XzIuNi4xOC9DSEFOR0VMT0cKLS0tIGRhenVrb2ZzLTMuMC4wL0NIQU5HRUxPRwky MDA5LTAyLTIyIDE3OjUxOjIyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt cmM0XzIuNi4xOC9DSEFOR0VMT0cJMjAwOC0xMi0xMiAxODowMTowNy4wMDAwMDAwMDAgKzAx MDAKQEAgLTIsMTEgKzIsNiBAQAogIERhenVrb0ZTIENIQU5HRUxPRwogPT09PT09PT09PT09 PT09PT09PT0KIAotMy4wLjAgKDIwMDktMDItMjIpCi0tIGFkZGVkIGRlZmluZSBmb3IgdmVy c2lvbiBudW1iZXIgb3V0cHV0Ci0tIGFkZGVkIHBhdGNoZXMgZm9yIHZhcmlvdXMgb3RoZXIg a2VybmVscwotCi0KIDMuMC4wLXJjNCAoMjAwOC0xMS0zMCkKIC0gZml4IGluY29ycmVjdCBk ZW50cnkvdmZzbW50IHJlZmVyZW5jaW5nIHdoZW4gYWNjZXNzIGRlbmllZAogLSBmaXggaW1w cm9wZXIgY2xlYW51cCBpbiBzZXZlcmFsIGVycm9yIGhhbmRsaW5nIGNvbmRpdGlvbnMKZGlm ZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4w LXJjNF8yLjYuMTgvY3RybF9kZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvY3RybF9kZXYuYwky MDA5LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt cmM0XzIuNi4xOC9jdHJsX2Rldi5jCTIwMDktMDItMDEgMjM6MzY6MTIuMDAwMDAwMDAwICsw MTAwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRl IDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUg PGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSAiZXZlbnQuaCIKICNpbmNs dWRlICJkZXYuaCIKQEAgLTE4MSw5ICsxODIsMTEgQEAgaW50IGRhenVrb2ZzX2N0cmxfZGV2 X2luaXQoaW50IGRldl9tYWpvcgogCWlmIChlcnIpCiAJCWdvdG8gZXJyb3Jfb3V0MTsKIAor CWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsICZwbGF0Zm9ybV9idXMsIAor CSAgICAgICAgICAgICAgICAgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3IpLCAiJXMu Y3RybCIsIAorCQkJICAgIERFVklDRV9OQU1FKTsKKwogCS8qIGNyZWF0ZSBjb250cm9sIGRl dmljZSAqLwotCWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1L REVWKGRldl9tYWpvciwgZGV2X21pbm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuY3RybCIsIERF VklDRV9OQU1FKTsKIAlpZiAoSVNfRVJSKGRldikpIHsKIAkJZXJyID0gUFRSX0VSUihkZXYp OwogCQlnb3RvIGVycm9yX291dDI7CkBAIC0xOTcsNiArMjAwLDcgQEAgZXJyb3Jfb3V0MToK IAlyZXR1cm4gZXJyOwogfQogCisKIHZvaWQgZGF6dWtvZnNfY3RybF9kZXZfZGVzdHJveShp bnQgZGV2X21ham9yLCBpbnQgZGV2X21pbm9yLAogCQkJICAgICAgIHN0cnVjdCBjbGFzcyAq ZGF6dWtvZnNfY2xhc3MpCiB7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvZGF6 dWtvZnNfZnMuaCBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjE4L2RhenVrb2ZzX2ZzLmgKLS0t IGRhenVrb2ZzLTMuMC4wL2RhenVrb2ZzX2ZzLmgJMjAwOS0wMi0yMiAxNzo0MzoxMS4wMDAw MDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvZGF6dWtvZnNfZnMu aAkyMDA5LTA3LTAzIDE4OjAxOjU2LjAwMDAwMDAwMCArMDIwMApAQCAtMyw3ICszLDcgQEAK ICAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0IEVyZXogWmFkb2sKICAgIENvcHlyaWdodCAo QykgMjAwMS0yMDA0IFN0b255IEJyb29rIFVuaXZlcnNpdHkKICAgIENvcHlyaWdodCAoQykg MjAwNC0yMDA3IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycC4KLSAgIENv cHlyaWdodCAoQykgMjAwOC0yMDA5IEpvaG4gT2duZXNzCisgICBDb3B5cmlnaHQgKEMpIDIw MDggSm9obiBPZ25lc3MKICAgICAgQXV0aG9yOiBKb2huIE9nbmVzcyA8ZGF6dWtvY29kZUBv Z25lc3MubmV0PgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNCw4ICsyNCw2IEBACiAjaWZuZGVmIF9f REFaVUtPRlNfRlNfSAogI2RlZmluZSBfX0RBWlVLT0ZTX0ZTX0gKIAotI2RlZmluZSBEQVpV S09GU19WRVJTSU9OICIzLjAuMCIKLQogZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1 a29mc19kZW50cnlfaW5mb19jYWNoZXA7CiBleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmRh enVrb2ZzX2ZpbGVfaW5mb19jYWNoZXA7CiBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBkYXp1a29mc19tYWluX2ZvcHM7CkBAIC01OSw2ICs1NywzNyBAQCBzdHJ1Y3QgZGF6dWtv ZnNfZmlsZV9pbmZvIHsKIAlzdHJ1Y3QgZmlsZSAqbG93ZXJfZmlsZTsKIH07CiAKK3ZvaWQg ZnNzdGFja19jb3B5X2lub2RlX3NpemUoc3RydWN0IGlub2RlICpkc3QsIGNvbnN0IHN0cnVj dCBpbm9kZSAqc3JjKTsKKworc3RhdGljIGlubGluZQordm9pZCBmc3N0YWNrX2NvcHlfYXR0 cl9hdGltZShzdHJ1Y3QgaW5vZGUgKmRzdCwgY29uc3Qgc3RydWN0IGlub2RlICpzcmMpCit7 CisJZHN0LT5pX2F0aW1lID0gc3JjLT5pX2F0aW1lOworfQorCitzdGF0aWMgaW5saW5lCit2 b2lkIGZzc3RhY2tfY29weV9hdHRyX3RpbWVzKHN0cnVjdCBpbm9kZSAqZHN0LCBjb25zdCBz dHJ1Y3QgaW5vZGUgKnNyYykKK3sKKwlkc3QtPmlfYXRpbWUgPSBzcmMtPmlfYXRpbWU7CisJ ZHN0LT5pX210aW1lID0gc3JjLT5pX210aW1lOworCWRzdC0+aV9jdGltZSA9IHNyYy0+aV9j dGltZTsKK30KKworc3RhdGljIGlubGluZSAKK3ZvaWQgZnNzdGFja19jb3B5X2F0dHJfYWxs KHN0cnVjdCBpbm9kZSAqZHN0LCBjb25zdCBzdHJ1Y3QgaW5vZGUgKnNyYykKK3sKKwlkc3Qt PmlfbW9kZSA9IHNyYy0+aV9tb2RlOworCWRzdC0+aV91aWQgPSBzcmMtPmlfdWlkOworCWRz dC0+aV9naWQgPSBzcmMtPmlfZ2lkOworCWRzdC0+aV9yZGV2ID0gc3JjLT5pX3JkZXY7CisJ ZHN0LT5pX2F0aW1lID0gc3JjLT5pX2F0aW1lOworCWRzdC0+aV9tdGltZSA9IHNyYy0+aV9t dGltZTsKKwlkc3QtPmlfY3RpbWUgPSBzcmMtPmlfY3RpbWU7CisJZHN0LT5pX2Jsa3NpemU9 IHNyYy0+aV9ibGtzaXplOworCWRzdC0+aV9ibGtiaXRzID0gc3JjLT5pX2Jsa2JpdHM7CisJ ZHN0LT5pX2ZsYWdzID0gc3JjLT5pX2ZsYWdzOworfQorCiBzdGF0aWMgaW5saW5lCiBzdHJ1 Y3QgZGF6dWtvZnNfc2JfaW5mbyAqR0VUX1NCX0lORk8oc3RydWN0IHN1cGVyX2Jsb2NrICp1 cHBlcl9zYikKIHsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9kZW50cnkuYyBk YXp1a29mcy0zLjAuMC1yYzRfMi42LjE4L2RlbnRyeS5jCi0tLSBkYXp1a29mcy0zLjAuMC9k ZW50cnkuYwkyMDA5LTAyLTIyIDE3OjQ0OjIyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtv ZnMtMy4wLjAtcmM0XzIuNi4xOC9kZW50cnkuYwkyMDA4LTEyLTEyIDE4OjE2OjE1LjAwMDAw MDAwMCArMDEwMApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAj aW5jbHVkZSA8bGludXgvbmFtZWkuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgotI2lu Y2x1ZGUgPGxpbnV4L2ZzX3N0YWNrLmg+CisKIAogI2luY2x1ZGUgImRhenVrb2ZzX2ZzLmgi CiAKQEAgLTY1LDE5ICs2NSwxOSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2RfcmV2YWxpZGF0 ZShzdHJ1Y3QgCiAKIAlsb3dlcl9tbnQgPSBHRVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAKLQl2 ZnNtb3VudF9zYXZlID0gbmQtPnBhdGgubW50OwotCWRlbnRyeV9zYXZlID0gbmQtPnBhdGgu ZGVudHJ5OworCXZmc21vdW50X3NhdmUgPSBuZC0+bW50OworCWRlbnRyeV9zYXZlID0gbmQt PmRlbnRyeTsKIAotCW5kLT5wYXRoLm1udCA9IG1udGdldChsb3dlcl9tbnQpOwotCW5kLT5w YXRoLmRlbnRyeSA9IGRnZXQobG93ZXJfZGVudHJ5KTsKKwluZC0+bW50ID0gbW50Z2V0KGxv d2VyX21udCk7CisJbmQtPmRlbnRyeSA9IGRnZXQobG93ZXJfZGVudHJ5KTsKIAogCXZhbGlk ID0gbG93ZXJfZGVudHJ5LT5kX29wLT5kX3JldmFsaWRhdGUobG93ZXJfZGVudHJ5LCBuZCk7 CiAKIAltbnRwdXQobG93ZXJfbW50KTsKIAlkcHV0KGxvd2VyX2RlbnRyeSk7CiAKLQluZC0+ cGF0aC5tbnQgPSB2ZnNtb3VudF9zYXZlOwotCW5kLT5wYXRoLmRlbnRyeSA9IGRlbnRyeV9z YXZlOworCW5kLT5tbnQgPSB2ZnNtb3VudF9zYXZlOworCW5kLT5kZW50cnkgPSBkZW50cnlf c2F2ZTsKIAogCS8qIHVwZGF0ZSB0aGUgaW5vZGUsIGV2ZW4gaWYgZF9yZXZhbGlkYXRlKCkg IT0gMSAqLwogCWlmIChkZW50cnktPmRfaW5vZGUpIHsKQEAgLTg1LDcgKzg1LDcgQEAgc3Rh dGljIGludCBkYXp1a29mc19kX3JldmFsaWRhdGUoc3RydWN0IAogCiAJCWxvd2VyX2lub2Rl ID0gR0VUX0xPV0VSX0lOT0RFKGRlbnRyeS0+ZF9pbm9kZSk7CiAKLQkJZnNzdGFja19jb3B5 X2F0dHJfYWxsKGRlbnRyeS0+ZF9pbm9kZSwgbG93ZXJfaW5vZGUsIE5VTEwpOworCQlmc3N0 YWNrX2NvcHlfYXR0cl9hbGwoZGVudHJ5LT5kX2lub2RlLCBsb3dlcl9pbm9kZSk7CiAJfQog b3V0OgogCXJldHVybiB2YWxpZDsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9l dmVudC5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvZXZlbnQuYwotLS0gZGF6dWtvZnMt My4wLjAvZXZlbnQuYwkyMDA5LTAyLTIyIDE3OjQ0OjAzLjAwMDAwMDAwMCArMDEwMAorKysg ZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4xOC9ldmVudC5jCTIwMDktMDctMDMgMTg6NTY6NTMu MDAwMDAwMDAwICswMjAwCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8bGludXgvZmls ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4K LSNpbmNsdWRlIDxsaW51eC9mcmVlemVyLmg+CiAKICNpbmNsdWRlICJkZXYuaCIKICNpbmNs dWRlICJkYXp1a29mc19mcy5oIgpAQCAtMTEzLDIxICsxMTIsMjEgQEAgaW50IGRhenVrb2Zz X2luaXRfZXZlbnRzKHZvaWQpCiAJZGF6dWtvZnNfZ3JvdXBfY2FjaGVwID0KIAkJa21lbV9j YWNoZV9jcmVhdGUoImRhenVrb2ZzX2dyb3VwX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1 Y3QgZGF6dWtvZnNfZ3JvdXApLCAwLAotCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxM KTsKKwkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1 a29mc19ncm91cF9jYWNoZXApCiAJCWdvdG8gZXJyb3Jfb3V0OwogCiAJZGF6dWtvZnNfZXZl bnRfY29udGFpbmVyX2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3JlYXRlKCJkYXp1a29mc19l dmVudF9jb250YWluZXJfY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19l dmVudF9jb250YWluZXIpLCAwLAotCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMKTsK KwkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1a29m c19ldmVudF9jb250YWluZXJfY2FjaGVwKQogCQlnb3RvIGVycm9yX291dDsKIAogCWRhenVr b2ZzX2V2ZW50X2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3JlYXRlKCJkYXp1a29mc19ldmVu dF9jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2V2ZW50KSwgMCwKLQkJ CQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCk7CisJCQkJICBTTEFCX0hXQ0FDSEVfQUxJ R04sIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZXZlbnRfY2FjaGVwKQogCQlnb3Rv IGVycm9yX291dDsKIApAQCAtMTYyLDE2ICsxNjEsMjMgQEAgc3RhdGljIGludCBjYXB0dXJl X2dyb3VwX2NvdW50KGludCAqY2FjaAogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBpbnQg Z2V0X2dyb3VwX2NvdW50KHZvaWQpCitzdGF0aWMgaW50IGdldF9ncm91cF9jb3VudF9pbnRl cnJ1cHRpYmxlKHZvaWQpCiB7CiAJaW50IGNhY2hlID0gMDsKLQlpbnQgcmV0ID0gd2FpdF9l dmVudF9mcmVlemFibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKLQkJCQkgICAgICAgY2FwdHVy ZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOworCWludCByZXQgPSB3YWl0X2V2ZW50X2lu dGVycnVwdGlibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKKwkJCQkgICAgICAgICAgIGNhcHR1 cmVfZ3JvdXBfY291bnQoJmNhY2hlKSA9PSAwKTsKIAlpZiAocmV0ID09IDApCiAJCXJldCA9 IF9fZ3JvdXBfY291bnQ7CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBnZXRfZ3Jv dXBfY291bnQodm9pZCkKK3sKKwlpbnQgY2FjaGUgPSAwOworCXdhaXRfZXZlbnQoX19ncm91 cF9jb3VudF9xdWV1ZSwgY2FwdHVyZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOworCXJl dHVybiBfX2dyb3VwX2NvdW50OworfQorCiBzdGF0aWMgdm9pZCBwdXRfZ3JvdXBfY291bnQo dm9pZCkKIHsKIAltdXRleF9sb2NrKCZncm91cF9jb3VudF9tdXRleCk7CkBAIC0zOTksNyAr NDA1LDcgQEAgaW50IGRhenVrb2ZzX2FkZF9ncm91cChjb25zdCBjaGFyICpuYW1lLAogCWlu dCBhbHJlYWR5X2V4aXN0czsKIAlpbnQgYXZhaWxhYmxlX2lkID0gMDsKIAlzdHJ1Y3QgZGF6 dWtvZnNfZ3JvdXAgKmdycDsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50KCk7 CisJaW50IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7CiAK IAlpZiAoZ3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC00NDcsNyAr NDUzLDcgQEAgaW50IGRhenVrb2ZzX3JlbW92ZV9ncm91cChjb25zdCBjaGFyICpuYQogCWlu dCByZXQgPSAwOwogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwogCXN0cnVjdCBsaXN0 X2hlYWQgKnBvczsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50KCk7CisJaW50 IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7CiAKIAlpZiAo Z3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC03MDEsMTEgKzcwNywx MCBAQCBpbnQgZGF6dWtvZnNfY2hlY2tfYWNjZXNzKHN0cnVjdCBkZW50cnkgCiB7CiAJc3Ry dWN0IGRhenVrb2ZzX2V2ZW50X2NvbnRhaW5lciAqZWNfYXJyYXlbR1JPVVBfQ09VTlRdOwog CXN0cnVjdCBkYXp1a29mc19ldmVudCAqZXZ0OwotCWludCBncnBfY291bnQgPSBnZXRfZ3Jv dXBfY291bnQoKTsKLQlpbnQgZXJyOworCWludCBncnBfY291bnQ7CisJaW50IGVyciA9IDA7 CiAKLQlpZiAoZ3JwX2NvdW50IDwgMCkKLQkJcmV0dXJuIGdycF9jb3VudDsKKwlncnBfY291 bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsKIAogCWlmIChjaGVja19hY2Nlc3NfcHJlY2hlY2so Z3JwX2NvdW50KSkgewogCQlwdXRfZ3JvdXBfY291bnQoKTsKQEAgLTcxMywzMiArNzE4LDI5 IEBAIGludCBkYXp1a29mc19jaGVja19hY2Nlc3Moc3RydWN0IGRlbnRyeSAKIAl9CiAKIAkv KiBhdCB0aGlzIHBvaW50LCB0aGUgYWNjZXNzIHNob3VsZCBiZSBoYW5kbGVkICovCi0KIAlp ZiAoYWxsb2NhdGVfZXZlbnRfYW5kX2NvbnRhaW5lcnMoJmV2dCwgZWNfYXJyYXksIGdycF9j b3VudCkpIHsKIAkJcHV0X2dyb3VwX2NvdW50KCk7Ci0JCWVyciA9IC1FTk9NRU07Ci0JCWdv dG8gb3V0OworCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0KIAlldnQtPmRlbnRyeSA9IGRnZXQo ZGVudHJ5KTsKIAlldnQtPm1udCA9IG1udGdldChtbnQpOwogCWV2dC0+cGlkID0gY3VycmVu dC0+cGlkOwotCiAJYXNzaWduX2V2ZW50X3RvX2dyb3VwcyhldnQsIGVjX2FycmF5KTsKIAog CXB1dF9ncm91cF9jb3VudCgpOwogCi0JLyogd2FpdCB1bnRpbCBldmVudCBjb21wbGV0ZWx5 IHByb2Nlc3NlZCBvciBzaWduYWwgKi8KLQllcnIgPSB3YWl0X2V2ZW50X2ZyZWV6YWJsZShl dnQtPnF1ZXVlLCBldmVudF9hc3NpZ25lZChldnQpID09IDApOworCS8qIHdhaXQgdW50aWwg ZXZlbnQgY29tcGxldGVseSBwcm9jZXNzZWQgKi8KKwl3YWl0X2V2ZW50KGV2dC0+cXVldWUs IGV2ZW50X2Fzc2lnbmVkKGV2dCkgPT0gMCk7CiAKIAlpZiAoZXZ0LT5kZW55KQogCQllcnIg PSAtRVBFUk07CiAKIAlyZWxlYXNlX2V2ZW50KGV2dCwgMCwgMCk7Ci1vdXQ6CisJCiAJcmV0 dXJuIGVycjsKIH0KIAorCiBpbnQgZGF6dWtvZnNfZ3JvdXBfb3Blbl90cmFja2luZyh1bnNp Z25lZCBsb25nIGdyb3VwX2lkKQogewogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwpA QCAtODc0LDcgKzg3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgZGF6dWtvZnNfZXZlbnRfY29udGFp bmVyICoKIAkvKiBtb3ZlIGZpcnN0IHRvZG8taXRlbSB0byB3b3JraW5nIGxpc3QgKi8KIAlt dXRleF9sb2NrKCZ3b3JrX211dGV4KTsKIAlpZiAoIWxpc3RfZW1wdHkoJmdycC0+dG9kb19s aXN0Lmxpc3QpKSB7Ci0JCWVjID0gbGlzdF9maXJzdF9lbnRyeSgmZ3JwLT50b2RvX2xpc3Qu bGlzdCwKKwkJc3RydWN0IGxpc3RfaGVhZCAqaGVhZCA9ICZncnAtPnRvZG9fbGlzdC5saXN0 OworCQllYyA9IGxpc3RfZW50cnkoaGVhZC0+bmV4dCwKIAkJCQkgICAgICBzdHJ1Y3QgZGF6 dWtvZnNfZXZlbnRfY29udGFpbmVyLCBsaXN0KTsKIAkJbGlzdF9kZWwoJmVjLT5saXN0KTsK IAkJbGlzdF9hZGQoJmVjLT5saXN0LCAmZ3JwLT53b3JraW5nX2xpc3QubGlzdCk7CkBAIC05 MjgsNyArOTMxLDggQEAgc3RhdGljIGludCBvcGVuX2ZpbGUoc3RydWN0IGRhenVrb2ZzX2V2 ZQogCS8qIGFkZCBteXNlbGYgdG8gYmUgaWdub3JlZCBvbiBmaWxlIG9wZW4gKHRvIGF2b2lk IHJlY3Vyc2lvbikgKi8KIAltYXNrX3Byb2MoJnByb2MpOwogCi0JZWMtPmZpbGUgPSBkZW50 cnlfb3BlbihkZ2V0KGV2dC0+ZGVudHJ5KSwgbW50Z2V0KGV2dC0+bW50KSwgT19SRE9OTFkp OworCWVjLT5maWxlID0gZGVudHJ5X29wZW4oZGdldChldnQtPmRlbnRyeSksIG1udGdldChl dnQtPm1udCksIAorCQkJICAgICAgIE9fUkRPTkxZIHwgT19MQVJHRUZJTEUpOwogCWlmIChJ U19FUlIoZWMtPmZpbGUpKSB7CiAJCWNoZWNrX3JlY3Vyc2lvbigpOyAgLyogcmVtb3ZlIG15 c2VsZiBmcm9tIHByb2NfbGlzdCAqLwogCQlyZXQgPSBQVFJfRVJSKGVjLT5maWxlKTsKQEAg LTEwMDQsOSArMTAwOCw5IEBAIGludCBkYXp1a29mc19nZXRfZXZlbnQodW5zaWduZWQgbG9u ZyBncm8KIAl9CiAKIAl3aGlsZSAoMSkgewotCQlyZXQgPSB3YWl0X2V2ZW50X2ZyZWV6YWJs ZShncnAtPnF1ZXVlLAotCQkJCQkgICBpc19ldmVudF9hdmFpbGFibGUoZ3JwKSB8fAotCQkJ CQkgICBncnAtPmRlcHJlY2F0ZWQpOworCQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGli bGUoZ3JwLT5xdWV1ZSwKKwkJCQkJICAgICAgIGlzX2V2ZW50X2F2YWlsYWJsZShncnApIHx8 CisJCQkJCSAgICAgICBncnAtPmRlcHJlY2F0ZWQpOwogCQlpZiAocmV0ICE9IDApCiAJCQli cmVhazsKIApkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2ZpbGUuYyBkYXp1a29m cy0zLjAuMC1yYzRfMi42LjE4L2ZpbGUuYwotLS0gZGF6dWtvZnMtMy4wLjAvZmlsZS5jCTIw MDktMDItMjIgMTc6NDM6MTEuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1y YzRfMi42LjE4L2ZpbGUuYwkyMDA5LTA3LTAzIDE4OjUwOjMzLjAwMDAwMDAwMCArMDIwMApA QCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGlu dXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgv ZnNfc3RhY2suaD4KKwogCiAjaW5jbHVkZSAiZGF6dWtvZnNfZnMuaCIKICNpbmNsdWRlICJl dmVudC5oIgpAQCAtMTc3LDEwICsxNzcsMTEgQEAgc3RhdGljIGludCBkYXp1a29mc19vcGVu KHN0cnVjdCBpbm9kZSAqaQogCXN0cnVjdCBmaWxlICpsb3dlcl9maWxlOwogCWludCBlcnI7 CiAKLQllcnIgPSBkYXp1a29mc19jaGVja19hY2Nlc3MoZmlsZS0+Zl9kZW50cnksIGZpbGUt PmZfdmZzbW50KTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycm9yX291dDE7Ci0KKwlpZiAoU19J U1JFRyhpbm9kZS0+aV9tb2RlKSkgeworCQllcnIgPSBkYXp1a29mc19jaGVja19hY2Nlc3Mo ZmlsZS0+Zl9kZW50cnksIGZpbGUtPmZfdmZzbW50KTsKKwkJaWYgKGVycikKKwkJCWdvdG8g ZXJyb3Jfb3V0MTsKKwl9CQogCVNFVF9GSUxFX0lORk8oZmlsZSwga21lbV9jYWNoZV96YWxs b2MoZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcCwKIAkJICAgICAgR0ZQX0tFUk5FTCkpOwog CWlmICghR0VUX0ZJTEVfSU5GTyhmaWxlKSkgewpAQCAtMjcyLDYgKzI3MywyMCBAQCBvdXQ6 CiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBkYXp1a29mc19tbWFwIChzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bSkKK3sKKworCXN0cnVjdCBm aWxlICpsb3dlcl9maWxlID0gR0VUX0xPV0VSX0ZJTEUoZmlsZSk7CisKKwkvKiBpZiBsb3dl ciBmcyBkb2VzIG5vdCBzdXBwb3J0IG1tYXAoKSwgd2UgZG9udCBjYWxsIGdlbmVyaWNfZmls ZV9yZWFkb25seV9tbWFwKCksIAorCSAqIHNpbmNlIHRoaXMgd291bGQgcmVzdWx0IGluIGNh bGxpbmcgbG93ZXIgcmVhZHBhZ2UoKSwgd2hpY2ggbWlnaHQgbm90IGJlIAorCSAqIGRlZmlu ZWQgYnkgbG93ZXIgZnMgaWYgbW1hcCgpIGlzIG5vdCBzdXBwb3J0ZWQqLworCWlmICghbG93 ZXJfZmlsZS0+Zl9vcCB8fCAhbG93ZXJfZmlsZS0+Zl9vcC0+bW1hcCkgCisJCXJldHVybiAt RU5PREVWOworCQorCisJcmV0dXJuIGdlbmVyaWNfZmlsZV9yZWFkb25seV9tbWFwKGZpbGUs IHZtKTsKK30KIC8qKgogICogVW51c2VkIG9wZXJhdGlvbnM6CiAgKiAgIC0gb3duZXIKQEAg LTI5NSwxOCArMzEwLDE1IEBAIG91dDoKIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtv ZnNfbWFpbl9mb3BzID0gewogCS5sbHNlZWsJCT0gZGF6dWtvZnNfbGxzZWVrLAogCS5yZWFk CQk9IGRhenVrb2ZzX3JlYWQsCi0JLmFpb19yZWFkCT0gZ2VuZXJpY19maWxlX2Fpb19yZWFk LAogCS53cml0ZQkJPSBkYXp1a29mc193cml0ZSwKLQkuYWlvX3dyaXRlCT0gZ2VuZXJpY19m aWxlX2Fpb193cml0ZSwKIAkucmVhZGRpcgk9IGRhenVrb2ZzX3JlYWRkaXIsCiAJLmlvY3Rs CQk9IGRhenVrb2ZzX2lvY3RsLAotCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAorCS5t bWFwCQk9IGRhenVrb2ZzX21tYXAsCiAJLm9wZW4JCT0gZGF6dWtvZnNfb3BlbiwKIAkuZmx1 c2gJCT0gZGF6dWtvZnNfZmx1c2gsCiAJLnJlbGVhc2UJPSBkYXp1a29mc19yZWxlYXNlLAog CS5mc3luYwkJPSBkYXp1a29mc19mc3luYywKIAkuZmFzeW5jCQk9IGRhenVrb2ZzX2Zhc3lu YywKLQkuc3BsaWNlX3JlYWQJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3JlYWQsCiB9OwogCiAv KioKQEAgLTMzNSwxMSArMzQ3LDEwIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtv ZnNfbWFpbl9mb3AKIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfZGly X2ZvcHMgPSB7CiAJLnJlYWRkaXIJPSBkYXp1a29mc19yZWFkZGlyLAogCS5pb2N0bAkJPSBk YXp1a29mc19pb2N0bCwKLQkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1hcCwKKwkubW1hcAkJ PSBkYXp1a29mc19tbWFwLAogCS5vcGVuCQk9IGRhenVrb2ZzX29wZW4sCiAJLmZsdXNoCQk9 IGRhenVrb2ZzX2ZsdXNoLAogCS5yZWxlYXNlCT0gZGF6dWtvZnNfcmVsZWFzZSwKIAkuZnN5 bmMJCT0gZGF6dWtvZnNfZnN5bmMsCiAJLmZhc3luYwkJPSBkYXp1a29mc19mYXN5bmMsCi0J LnNwbGljZV9yZWFkCT0gZ2VuZXJpY19maWxlX3NwbGljZV9yZWFkLAogfTsKZGlmZiAteCBD VlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9ncm91cF9kZXYuYyBkYXp1a29mcy0zLjAuMC1yYzRf Mi42LjE4L2dyb3VwX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9ncm91cF9kZXYuYwkyMDA5 LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0 XzIuNi4xOC9ncm91cF9kZXYuYwkyMDA5LTAyLTAxIDIzOjM2OjI1LjAwMDAwMDAwMCArMDEw MApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8 bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgImRhenVrb2ZzX2ZzLmgiCiAj aW5jbHVkZSAiZXZlbnQuaCIKQEAgLTIwOSw5ICsyMTAsOSBAQCBpbnQgZGF6dWtvZnNfZ3Jv dXBfZGV2X2luaXQoaW50IGRldl9tYWpvCiAKIAkvKiBjcmVhdGUgZ3JvdXAgZGV2aWNlcyAq LwogCWZvciAoaSA9IDA7IGkgPCBHUk9VUF9DT1VOVDsgaSsrKSB7Ci0JCWRldiA9IGRldmlj ZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsCi0JCQkJICAgIE1LREVWKGRldl9tYWpv ciwgZGV2X21pbm9yX2VuZCksIE5VTEwsCi0JCQkJICAgICIlcy4lZCIsIERFVklDRV9OQU1F LCBpKTsKKwkJZGV2ID0gZGV2aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywgJnBsYXRmb3Jt X2J1cywKKwkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwgIiVzLiVk IiwgCisJCQkJICAgIERFVklDRV9OQU1FLCBpKTsKIAkJaWYgKElTX0VSUihkZXYpKSB7CiAJ CQllcnIgPSBQVFJfRVJSKGRldik7CiAJCQlnb3RvIGVycm9yX291dDI7CmRpZmYgLXggQ1ZT IC1ydXAgZGF6dWtvZnMtMy4wLjAvaWduX2Rldi5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYu MTgvaWduX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9pZ25fZGV2LmMJMjAwOS0wMi0yMiAx Nzo0NToyMC4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgv aWduX2Rldi5jCTIwMDktMDItMDEgMjM6MzY6MTguMDAwMDAwMDAwICswMTAwCkBAIC0yMiw2 ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9jZGV2 Lmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRm b3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSAiZGF6dWtvZnNfZnMuaCIKICNpbmNsdWRlICJk ZXYuaCIKQEAgLTE0NCw3ICsxNDUsNyBAQCBpbnQgZGF6dWtvZnNfaWduX2Rldl9pbml0KGlu dCBkZXZfbWFqb3IsCiAJZGF6dWtvZnNfaWduX2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3Jl YXRlKCJkYXp1a29mc19pZ25fY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29m c19wcm9jKSwgMCwKLQkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCk7CisJCQkJICBT TEFCX0hXQ0FDSEVfQUxJR04sIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfaWduX2Nh Y2hlcCkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGVycm9yX291dDE7CkBAIC0xNTgs OCArMTU5LDkgQEAgaW50IGRhenVrb2ZzX2lnbl9kZXZfaW5pdChpbnQgZGV2X21ham9yLAog CQlnb3RvIGVycm9yX291dDI7CiAKIAkvKiBjcmVhdGUgaWdub3JlIGRldmljZSAqLwotCWRl diA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1LREVWKGRldl9tYWpv ciwgZGV2X21pbm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuaWduIiwgREVWSUNFX05BTUUpOwor CWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsICZwbGF0Zm9ybV9idXMsIAor CQkgICAgICAgICAgICBNS0RFVihkZXZfbWFqb3IsIGRldl9taW5vciksICIlcy5pZ24iLCAK KwkJCSAgICBERVZJQ0VfTkFNRSk7CiAJaWYgKElTX0VSUihkZXYpKSB7CiAJCWVyciA9IFBU Ul9FUlIoZGV2KTsKIAkJZ290byBlcnJvcl9vdXQzOwpAQCAtMTc2LDYgKzE3OCw3IEBAIGVy cm9yX291dDE6CiAJcmV0dXJuIGVycjsKIH0KIAorCiB2b2lkIGRhenVrb2ZzX2lnbl9kZXZf ZGVzdHJveShpbnQgZGV2X21ham9yLCBpbnQgZGV2X21pbm9yLAogCQkJICAgICAgc3RydWN0 IGNsYXNzICpkYXp1a29mc19jbGFzcykKIHsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0z LjAuMC9pbm9kZS5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvaW5vZGUuYwotLS0gZGF6 dWtvZnMtMy4wLjAvaW5vZGUuYwkyMDA5LTAyLTIyIDE3OjQ2OjAyLjAwMDAwMDAwMCArMDEw MAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4xOC9pbm9kZS5jCTIwMDktMDctMDYgMTA6 MjY6NTIuMDAwMDAwMDAwICswMjAwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8bGlu dXgvbmFtZWkuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4 L3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxsaW51eC9mc19zdGFjay5oPgorCiAKICNpbmNsdWRl ICJkYXp1a29mc19mcy5oIgogCkBAIC0zNCw2ICszNCwxMiBAQCBzdGF0aWMgc3RydWN0IGlu b2RlX29wZXJhdGlvbnMgZGF6dWtvZnNfCiBzdGF0aWMgc3RydWN0IGlub2RlX29wZXJhdGlv bnMgZGF6dWtvZnNfZGlyX2lvcHM7CiBzdGF0aWMgc3RydWN0IGlub2RlX29wZXJhdGlvbnMg ZGF6dWtvZnNfbWFpbl9pb3BzOwogCit2b2lkIGZzc3RhY2tfY29weV9pbm9kZV9zaXplKHN0 cnVjdCBpbm9kZSAqZHN0LCBjb25zdCBzdHJ1Y3QgaW5vZGUgKnNyYykKK3sKKwlpX3NpemVf d3JpdGUoZHN0LCBpX3NpemVfcmVhZCgoc3RydWN0IGlub2RlICopIHNyYykpOworCWRzdC0+ aV9ibG9ja3MgPSBzcmMtPmlfYmxvY2tzOworfQorCiBzdGF0aWMgaW50IGRhenVrb2ZzX2lu b2RlX3Rlc3Qoc3RydWN0IGlub2RlICppbm9kZSwKIAkJCSAgICAgICB2b2lkICpjYW5kaWRh dGVfbG93ZXJfaW5vZGUpCiB7CkBAIC00NywxMiArNTMsMjUgQEAgc3RhdGljIGludCBkYXp1 a29mc19pbm9kZV90ZXN0KHN0cnVjdCBpbgogCiBzdGF0aWMgdm9pZCBkYXp1a29mc19pbml0 X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGUp CiB7Ci0JU0VUX0xPV0VSX0lOT0RFKGlub2RlLCBsb3dlcl9pbm9kZSk7Ci0JaW5vZGUtPmlf aW5vID0gbG93ZXJfaW5vZGUtPmlfaW5vOwotCWlub2RlLT5pX3ZlcnNpb24rKzsKLQlpbm9k ZS0+aV9vcCA9ICZkYXp1a29mc19tYWluX2lvcHM7Ci0JaW5vZGUtPmlfZm9wID0gJmRhenVr b2ZzX21haW5fZm9wczsKLQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZkYXp1a29mc19h b3BzOworICAgICAgICBTRVRfTE9XRVJfSU5PREUoaW5vZGUsIGxvd2VyX2lub2RlKTsKKyAg ICAgICAgaW5vZGUtPmlfaW5vID0gbG93ZXJfaW5vZGUtPmlfaW5vOworICAgICAgICBpbm9k ZS0+aV92ZXJzaW9uKys7CisKKyAgICAgICAgaWYgKFNfSVNESVIobG93ZXJfaW5vZGUtPmlf bW9kZSkpIHsKKyAgICAgICAgICAgICAgICBpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19kaXJf aW9wczsKKyAgICAgICAgICAgICAgICBpbm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfZGlyX2Zv cHM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW5vZGUtPmlfb3AgPSAm ZGF6dWtvZnNfbWFpbl9pb3BzOworICAgICAgICAgICAgICAgIGlub2RlLT5pX2ZvcCA9ICZk YXp1a29mc19tYWluX2ZvcHM7CisKKyAgICAgICAgICAgICAgICBpZiAoU19JU0xOSyhsb3dl cl9pbm9kZS0+aV9tb2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlub2RlLT5pX29w ID0gJmRhenVrb2ZzX3N5bWxpbmtfaW9wczsKKyAgICAgICAgICAgICAgICBlbHNlICBpZiAo c3BlY2lhbF9maWxlKGxvd2VyX2lub2RlLT5pX21vZGUpKSB7CisgICAgICAgICAgICAgICAg ICAgICAgICBpbml0X3NwZWNpYWxfaW5vZGUoaW5vZGUsIGxvd2VyX2lub2RlLT5pX21vZGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJfaW5v ZGUtPmlfcmRldik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlu b2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmRhenVrb2ZzX2FvcHM7CiB9CiAKIHN0YXRpYyBp bnQgZGF6dWtvZnNfaW5vZGVfc2V0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKmxvd2Vy X2lub2RlKQpAQCAtNjIsNzIgKzgxLDEyNCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2Rl X3NldChzdHJ1Y3QgaW5vCiB9CiAKIGludCBkYXp1a29mc19pbnRlcnBvc2Uoc3RydWN0IGRl bnRyeSAqbG93ZXJfZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCSAgICAgc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IGZsYWcpCisJCSAgICAgc3RydWN0IHN1cGVyX2Js b2NrICpzYiwgaW50IGhhc2gpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZTsKLQlzdHJ1Y3Qg aW5vZGUgKmxvd2VyX2lub2RlID0gaWdyYWIobG93ZXJfZGVudHJ5LT5kX2lub2RlKTsKLQlp bnQgZXJyID0gMDsKKwlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2lub2RlOworCWludCBlcnI7CiAK LQlpZiAoIWxvd2VyX2lub2RlKSB7Ci0JCWVyciA9IC1FU1RBTEU7Ci0JCWdvdG8gb3V0Owot CX0KKwlsb3dlcl9pbm9kZSA9IGlncmFiKGxvd2VyX2RlbnRyeS0+ZF9pbm9kZSk7CiAKLQlp ZiAobG93ZXJfaW5vZGUtPmlfc2IgIT0gR0VUX0xPV0VSX1NCKHNiKSkgewotCQlpcHV0KGxv d2VyX2lub2RlKTsKLQkJZXJyID0gLUVYREVWOwotCQlnb3RvIG91dDsKLQl9CisJaWYgKCFs b3dlcl9pbm9kZSkgCisJCXJldHVybiAtRVNUQUxFOwogCiAJaW5vZGUgPSBpZ2V0NV9sb2Nr ZWQoc2IsICh1bnNpZ25lZCBsb25nKWxvd2VyX2lub2RlLAogCQkJICAgICBkYXp1a29mc19p bm9kZV90ZXN0LCBkYXp1a29mc19pbm9kZV9zZXQsCiAJCQkgICAgIGxvd2VyX2lub2RlKTsK LQogCWlmICghaW5vZGUpIHsKLQkJaXB1dChsb3dlcl9pbm9kZSk7CiAJCWVyciA9IC1FQUND RVM7Ci0JCWdvdG8gb3V0OworCQlnb3RvIGVycjsKIAl9CiAKLQlpZiAoaW5vZGUtPmlfc3Rh dGUgJiBJX05FVykgeworCWlmIChpbm9kZS0+aV9zdGF0ZSAmIElfTkVXKSAKIAkJdW5sb2Nr X25ld19pbm9kZShpbm9kZSk7CiAJCS8qCiAJCSAqIFRoaXMgaXMgYSBuZXcgbm9kZSBzbyB3 ZSBsZWF2ZSB0aGUgbG93ZXJfbm9kZSAiaW4gdXNlIgogCQkgKiBhbmQgZG8gbm90IGNhbGwg aXB1dCgpLgogCQkgKi8KLQl9IGVsc2UgeworCWVsc2UgCiAJCS8qCiAJCSAqIFRoaXMgaXMg bm90IGEgbmV3IG5vZGUgc28gd2UgZGVjcmVtZW50IHRoZSB1c2FnZSBjb3VudC4KIAkJICov CiAJCWlwdXQobG93ZXJfaW5vZGUpOwotCX0KIAotCWlmIChTX0lTTE5LKGxvd2VyX2lub2Rl LT5pX21vZGUpKQotCQlpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19zeW1saW5rX2lvcHM7Ci0J ZWxzZSBpZiAoU19JU0RJUihsb3dlcl9pbm9kZS0+aV9tb2RlKSkKLQkJaW5vZGUtPmlfb3Ag PSAmZGF6dWtvZnNfZGlyX2lvcHM7Ci0KLQlpZiAoU19JU0RJUihsb3dlcl9pbm9kZS0+aV9t b2RlKSkKLQkJaW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX2Rpcl9mb3BzOwotCi0JaWYgKHNw ZWNpYWxfZmlsZShsb3dlcl9pbm9kZS0+aV9tb2RlKSkgewotCQlpbml0X3NwZWNpYWxfaW5v ZGUoaW5vZGUsIGxvd2VyX2lub2RlLT5pX21vZGUsCi0JCQkJICAgbG93ZXJfaW5vZGUtPmlf cmRldik7Ci0JfQotCi0JZGVudHJ5LT5kX29wID0gJmRhenVrb2ZzX2RvcHM7CiAKLQlpZiAo ZmxhZykKKwlpZiAoaGFzaCkKIAkJZF9hZGQoZGVudHJ5LCBpbm9kZSk7CiAJZWxzZQogCQlk X2luc3RhbnRpYXRlKGRlbnRyeSwgaW5vZGUpOwogCi0JZnNzdGFja19jb3B5X2F0dHJfYWxs KGlub2RlLCBsb3dlcl9pbm9kZSwgTlVMTCk7CisJZnNzdGFja19jb3B5X2F0dHJfYWxsKGlu b2RlLCBsb3dlcl9pbm9kZSk7CiAJZnNzdGFja19jb3B5X2lub2RlX3NpemUoaW5vZGUsIGxv d2VyX2lub2RlKTsKLW91dDoKKworCXJldHVybiAwOworZXJyOgorCWlwdXQobG93ZXJfaW5v ZGUpOwogCXJldHVybiBlcnI7CiB9CiAKKy8qIGNyZWF0ZXMgYSBuZXcgbG93ZXIgZGVudHJ5 ICovCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqZGF6dWtvZnNfbmV3X2xvd2VyX2RlbnRyeShz dHJ1Y3QgcXN0ciAqbmFtZSwKKwkJCQkJCXN0cnVjdCBkZW50cnkgKmxvd2VyX2Jhc2UsIAor CQkJCQkJc3RydWN0IG5hbWVpZGF0YSAqbmQpCit7CisJc3RydWN0IGRlbnRyeSAqbmV3X2Rl bnRyeTsKKwlzdHJ1Y3QgZGVudHJ5ICp0bXA7CisJc3RydWN0IGlub2RlICpsb3dlcl9pbm9k ZTsKKworCWxvd2VyX2lub2RlID0gbG93ZXJfYmFzZS0+ZF9pbm9kZTsKKwkvKiBYWFg6IGlz IHRoaXMgY2hlY2sgc3RpbGwgbmVjZXNzYXJ5PyAoc2VlIF9fbG9va3VwX2hhc2goKSkKKwkg ICBUaGlzIGlzIChob3BlbHkpIHByb3RlY3RlZCBieSBsb2NrZWQgdXBwZXIgaW5vZGUgKi8K KwlpZiAoSVNfREVBRERJUihsb3dlcl9pbm9kZSkpIHsKKwkJbmV3X2RlbnRyeSA9IEVSUl9Q VFIoLUVOT0VOVCk7CisJCWdvdG8gb3V0OworCX0KKwl0bXAgPSBkX2FsbG9jKGxvd2VyX2Jh c2UsIG5hbWUpOworCWlmICghdG1wKSB7CisJCW5ld19kZW50cnkgPSBFUlJfUFRSKC1FTk9N RU0pOworCQlnb3RvIG91dDsKKwl9CisJbmV3X2RlbnRyeSA9IGxvd2VyX2lub2RlLT5pX29w LT5sb29rdXAobG93ZXJfaW5vZGUsIHRtcCwgbmQpOworCS8qIGxvb2t1cCgpIHNlZW1pbmds eSBpcyBhbGxvd2VkIHRvIHJldHVybiBpdHMgb3duIGRlbnRyeSAod2hpY2ggCisJICogbWF5 IGluZGVlZCBiZSBhIGRlbnRyeSBvciBvbmx5IGFuIGVycm9yKS4gSWYgc28KKwkgKiB3ZSB1 c2UgaXQgYW5kIGRpc2NhcmQgb3Vycy4gT3RoZXJ3aXNlIHdlIHVzZSBvdXJzICovIAorCWlm ICghbmV3X2RlbnRyeSkgCisJCW5ld19kZW50cnkgPSB0bXA7CisJZWxzZSAKKwkJZHB1dCh0 bXApOworCQkKK291dDoJCQorCXJldHVybiBuZXdfZGVudHJ5OworfQorCisKKy8qIGdldCBs b3dlciBkZW50cnkgZm9yIGdpdmVuIG5hbWUgKi8KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpk YXp1a29mc19sb29rdXBfb25lX2xvd2VyKHN0cnVjdCBxc3RyICpuYW1lLCAKKwkJCQkJCXN0 cnVjdCBkZW50cnkgKmxvd2VyX2Jhc2UsCisJCQkJCQlzdHJ1Y3QgdmZzbW91bnQgKmxvd2Vy X21udCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpyZXN1bHQ7CisJc3RydWN0IG5hbWVpZGF0YSBu ZDsKKwlpbnQgZXJyOworCisJLyogc2VlIHZmc19wYXRoX2xvb2t1cCBpbiBrZXJuZWwgdmVy c2lvbnMgPj0gMi42LjI0ICovCisJbmQubGFzdF90eXBlID0gTEFTVF9ST09UOworCW5kLmZs YWdzID0gMDsKKwluZC5kZXB0aCA9IDA7CisJbmQuZGVudHJ5ID0gZGdldChsb3dlcl9iYXNl KTsKKwluZC5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKworCWVyciA9IHBhdGhfd2Fsayhu YW1lLT5uYW1lLCAmbmQpOworCisJaWYgKCFlcnIpIHsKKwkJLyogaW5vZGUgYWxyZWFkeSBl eGlzdHMgb24gZGlzayAqLworCQlyZXN1bHQgPSBuZC5kZW50cnk7CisJCS8qIHdlIGRvbnQg bmVlZCB0aGUgbW91bnQgKi8KKwkJbW50cHV0KG5kLm1udCk7CisJCWdvdG8gb3V0OworCX0K KwlpZiAoZXJyICE9IC1FTk9FTlQpIHsgLyogdGhpcyBpcyBhIFJFQUwgZXJyb3IgKi8JCisJ CXJlc3VsdCA9IEVSUl9QVFIoZXJyKTsKKwkJZ290byBvdXQ7CisJfQkKKwkvKiBjcmVhdGUg YSBuZXcgKGxvd2VyKSBkZW50cnkgKi8KKwlyZXN1bHQgPSBkYXp1a29mc19uZXdfbG93ZXJf ZGVudHJ5KG5hbWUsIGxvd2VyX2Jhc2UsICZuZCk7CitvdXQ6CisJcmV0dXJuIHJlc3VsdDsK KworfQorCisKIC8qKgogICogRGVzY3JpcHRpb246IENhbGxlZCB3aGVuIHRoZSBWRlMgbmVl ZHMgdG8gbG9vayB1cCBhbiBpbm9kZSBpbiBhIHBhcmVudAogICogZGlyZWN0b3J5LiBUaGUg bmFtZSB0byBsb29rIGZvciBpcyBmb3VuZCBpbiB0aGUgZGVudHJ5LiBUaGlzIG1ldGhvZApA QCAtMTQ4LDYyICsyMTksNDggQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmRhenVrb2ZzX2xv b2t1cChzdAogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeTsKIAlzdHJ1Y3QgZGVudHJ5 ICpsb3dlcl9kZW50cnlfcGFyZW50OwogCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50Owot CWludCBlcnIgPSAwOwotCi0JaWYgKChkZW50cnktPmRfbmFtZS5sZW4gPT0gMSAmJiAhc3Ry Y21wKGRlbnRyeS0+ZF9uYW1lLm5hbWUsICIuIikpCi0JICAgIHx8IChkZW50cnktPmRfbmFt ZS5sZW4gPT0gMiAmJgotCQkhc3RyY21wKGRlbnRyeS0+ZF9uYW1lLm5hbWUsICIuLiIpKSkg ewotCQlkX2Ryb3AoZGVudHJ5KTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JZGVudHJ5LT5kX29w ID0gJmRhenVrb2ZzX2RvcHM7CisJaW50IGVycjsKIAogCWxvd2VyX2RlbnRyeV9wYXJlbnQg PSBHRVRfTE9XRVJfREVOVFJZKGRlbnRyeS0+ZF9wYXJlbnQpOwotCWxvd2VyX2RlbnRyeSA9 IGxvb2t1cF9vbmVfbGVuKGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGxvd2VyX2RlbnRyeV9wYXJl bnQsCi0JCQkJICAgICAgZGVudHJ5LT5kX25hbWUubGVuKTsKKwkvKiBzaG91bGQgYmUgcmVs ZWFzZWQgaW4gZF9yZWxlYXNlKCkgKi8KKwlsb3dlcl9tbnQgPSBtbnRnZXQoR0VUX0xPV0VS X01OVChkZW50cnktPmRfcGFyZW50KSk7CiAKKwlsb3dlcl9kZW50cnkgPSBkYXp1a29mc19s b29rdXBfb25lX2xvd2VyKCZkZW50cnktPmRfbmFtZSwgCisJCQkJCQkgbG93ZXJfZGVudHJ5 X3BhcmVudCwgCisJCQkJCQkgbG93ZXJfbW50KTsgCiAJaWYgKElTX0VSUihsb3dlcl9kZW50 cnkpKSB7Ci0JCWVyciA9IFBUUl9FUlIobG93ZXJfZGVudHJ5KTsKLQkJZF9kcm9wKGRlbnRy eSk7Ci0JCWdvdG8gb3V0OworCQltbnRwdXQobG93ZXJfbW50KTsKKwkJcmV0dXJuIGxvd2Vy X2RlbnRyeTsKIAl9Ci0KIAlCVUdfT04oIWF0b21pY19yZWFkKCZsb3dlcl9kZW50cnktPmRf Y291bnQpKTsKIAorCWRlbnRyeS0+ZF9vcCA9ICZkYXp1a29mc19kb3BzOwogCVNFVF9ERU5U UllfSU5GTyhkZW50cnksIGttZW1fY2FjaGVfemFsbG9jKGRhenVrb2ZzX2RlbnRyeV9pbmZv X2NhY2hlcCwKIAkJCUdGUF9LRVJORUwpKTsKIAogCWlmICghR0VUX0RFTlRSWV9JTkZPKGRl bnRyeSkpIHsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBvdXRfZHB1dDsKKwkJbW50cHV0 KGxvd2VyX21udCk7CisJCWRwdXQobG93ZXJfZGVudHJ5KTsKKwkJcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CiAJfQotCi0JbG93ZXJfbW50ID0gbW50Z2V0KEdFVF9MT1dFUl9NTlQoZGVu dHJ5LT5kX3BhcmVudCkpOwotCi0JZnNzdGFja19jb3B5X2F0dHJfYXRpbWUoZGlyLCBsb3dl cl9kZW50cnlfcGFyZW50LT5kX2lub2RlKTsKLQogCVNFVF9MT1dFUl9ERU5UUlkoZGVudHJ5 LCBsb3dlcl9kZW50cnksIGxvd2VyX21udCk7Ci0KKwkvKiBmcm9tIG5vdyBsb3dlciBkZW50 cnkgYW5kIGxvd2VyIG1vdW50IGFyZSByZWxlYXNlZCBpbiAKKwkgIGRfcmVsZWFzZSBvZiB1 cHBlciBkZW50cnkgKi8KKwlmc3N0YWNrX2NvcHlfYXR0cl9hdGltZShkaXIsIGxvd2VyX2Rl bnRyeV9wYXJlbnQtPmRfaW5vZGUpOwogCWlmICghbG93ZXJfZGVudHJ5LT5kX2lub2RlKSB7 CiAJCS8qCiAJCSAqIFdlIHdhbnQgdG8gYWRkIGJlY2F1c2Ugd2UgY291bGQgbm90IGZpbmQg aW4gbG93ZXIuCiAJCSAqLwogCQlkX2FkZChkZW50cnksIE5VTEwpOwotCQlnb3RvIG91dDsK KwkJZ290byBvazsKIAl9CiAKIAllcnIgPSBkYXp1a29mc19pbnRlcnBvc2UobG93ZXJfZGVu dHJ5LCBkZW50cnksIGRpci0+aV9zYiwgMSk7Ci0JaWYgKGVycikKLQkJZ290byBvdXRfZHB1 dDsKLQlnb3RvIG91dDsKLQotb3V0X2RwdXQ6Ci0JZHB1dChsb3dlcl9kZW50cnkpOwotCWRf ZHJvcChkZW50cnkpOworCWlmIChlcnIpIAorCQlyZXR1cm4gRVJSX1BUUihlcnIpOwogCi1v dXQ6Ci0JcmV0dXJuIEVSUl9QVFIoZXJyKTsKK29rOgorCXJldHVybiBOVUxMOyAvKiB0ZWxs IGNhbGxlciB0byB1c2UgaXRzIG93biwgcGFzc2VkIGRlbnRyeSwgbm90IG91cnMgKi8KIH0K IAogLyoqCkBAIC0yOTQsMTkgKzM1MSwxOSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2NyZWF0 ZShzdHJ1Y3QgaW5vZGUgCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFy ZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JdmZzbW91 bnRfc2F2ZSA9IG5kLT5wYXRoLm1udDsKLQlkZW50cnlfc2F2ZSA9IG5kLT5wYXRoLmRlbnRy eTsKKwl2ZnNtb3VudF9zYXZlID0gbmQtPm1udDsKKwlkZW50cnlfc2F2ZSA9IG5kLT5kZW50 cnk7CiAKLQluZC0+cGF0aC5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKLQluZC0+cGF0aC5k ZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CisJbmQtPm1udCA9IG1udGdldChsb3dlcl9t bnQpOworCW5kLT5kZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CiAKIAllcnIgPSB2ZnNf Y3JlYXRlKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbW9kZSwg bmQpOwogCiAJbW50cHV0KGxvd2VyX21udCk7CiAJZHB1dChsb3dlcl9kZW50cnkpOwogCi0J bmQtPnBhdGgubW50ID0gdmZzbW91bnRfc2F2ZTsKLQluZC0+cGF0aC5kZW50cnkgPSBkZW50 cnlfc2F2ZTsKKwluZC0+bW50ID0gdmZzbW91bnRfc2F2ZTsKKwluZC0+ZGVudHJ5ID0gZGVu dHJ5X3NhdmU7CiAKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTM0MCw3ICszOTcsOCBA QCBzdGF0aWMgaW50IGRhenVrb2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlCiAJbXV0ZXhfbG9j a19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAg SV9NVVRFWF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX3N5bWxpbmsobG93ZXJfZGVudHJ5X3Bh cmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBzeW1uYW1lKTsKKwllcnIgPSB2ZnNfc3ltbGlu ayhsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnksIHN5bW5hbWUsCisJ CQkgIFNfSUFMTFVHTyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAgLTQ1Miw5ICs1 MTAsMzcgQEAgc3RhdGljIHZvaWQgZGF6dWtvZnNfcHV0X2xpbmsoc3RydWN0IGRlbgogICog RGVzY3JpcHRpb246IENhbGxlZCBieSB0aGUgVkZTIHRvIGNoZWNrIGZvciBhY2Nlc3Mgcmln aHRzIG9uIGEKICAqIFBPU0lYLWxpa2UgZmlsZXN5c3RlbS4KICAqLwotc3RhdGljIGludCBk YXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQorc3Rh dGljIGludCBkYXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBt YXNrLAorCQkJICAgICAgIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewotCXJldHVybiBpbm9k ZV9wZXJtaXNzaW9uKEdFVF9MT1dFUl9JTk9ERShpbm9kZSksIG1hc2spOworCXN0cnVjdCB2 ZnNtb3VudCAqbG93ZXJfbW50ID0gTlVMTDsKKwlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50 cnkgPSBOVUxMOworCXN0cnVjdCB2ZnNtb3VudCAqdmZzbW50X3NhdmUgPSBOVUxMOworCXN0 cnVjdCBkZW50cnkgKmRlbnRyeV9zYXZlID0gTlVMTDsKKwlpbnQgZXJyOworCisJaWYgKG5k KSB7CisJCWxvd2VyX21udCA9IEdFVF9MT1dFUl9NTlQobmQtPmRlbnRyeSk7CisJCWxvd2Vy X2RlbnRyeSA9IEdFVF9MT1dFUl9ERU5UUlkobmQtPmRlbnRyeSk7CisKKwkJdmZzbW50X3Nh dmUgPSBuZC0+bW50OworCQlkZW50cnlfc2F2ZSA9IG5kLT5kZW50cnk7CisKKwkJbmQtPm1u dCA9IG1udGdldChsb3dlcl9tbnQpOworCQluZC0+ZGVudHJ5ID0gZGdldChsb3dlcl9kZW50 cnkpOworCX0KKworCWVyciA9IHBlcm1pc3Npb24oR0VUX0xPV0VSX0lOT0RFKGlub2RlKSwg bWFzaywgbmQpOworCisJaWYgKG5kKSB7CisJCW1udHB1dChsb3dlcl9tbnQpOworCQlkcHV0 KGxvd2VyX2RlbnRyeSk7CisKKwkJbmQtPm1udCA9IHZmc21udF9zYXZlOworCQluZC0+ZGVu dHJ5ID0gZGVudHJ5X3NhdmU7CisJfQorCisgICAgICAgIHJldHVybiBlcnI7CiB9CiAKIC8q KgpAQCAtNDY4LDE0ICs1NTQsMjcgQEAgc3RhdGljIGludCBkYXp1a29mc19zZXRhdHRyKHN0 cnVjdCBkZW50cgogCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGUgPSBHRVRfTE9XRVJfSU5P REUoaW5vZGUpOwogCWludCBlcnI7CiAKLQllcnIgPSBub3RpZnlfY2hhbmdlKGxvd2VyX2Rl bnRyeSwgaWEpOwogCi0JZnNzdGFja19jb3B5X2F0dHJfYWxsKGlub2RlLCBsb3dlcl9pbm9k ZSwgTlVMTCk7Ci0JZnNzdGFja19jb3B5X2lub2RlX3NpemUoaW5vZGUsIGxvd2VyX2lub2Rl KTsKKwlpZiAoIWxvd2VyX2lub2RlLT5pX29wIHx8ICFsb3dlcl9pbm9kZS0+aV9vcC0+c2V0 YXR0cikgCisJCS8qIFhYWDogYXQgdGhpcyBwb2ludCBpdCBpcyB0b28gbGF0ZSB0byBoYW5k bGUgaW5vZGVzIHByb3Blcmx5IHRoYXQgZG8gTk9UCisJCXNwZWNpZnkgc2V0YXR0cigpLiBW RlMgd291bGQgbm9ybWFsbHkgY2FsbCBpbm9kZV9zZXRhdHRyKCkgaW4gCisJCXRoaXMgY2Fz ZS4gU28gdG8gZm9yY2UgdGhpcyB3ZSBqdW1wIGJhY2sgdG8gbm90aWZ5X2NoYW5nZSB3aGlj aCB3aWxsCisJCWhhbmRsZSB0aGlzIGZvciB1cy4gQnV0IHRoaXMgaXMgZGFuZ2Vyb3VzOgor CQlUaGUgYXR0cmlidXRlcyBtaWdodCBiZSBtb2RpZmllZCBieSBub3RpZnlfY2hhbmdlKCkg aW4gYSB3YXkKKwkJdGhhdCByZXN1bHRzIGluIGludmFsaWQgYXR0cmlidXRlcy4gVGhpcyBz ZWVtcyB0byBiZSB0aGUgY2FzZQorCQlpZiB0aGUgaW5vZGUgZm9yIHdoaWNoIHRoaXMgZnVu Y3Rpb24gaXMgY2FsbGVkIGhhcyB0aGUgc2V0dWlkCisJCW9yIHNldGdpZCBiaXQgc2V0ICov IAorCQllcnIgPSBub3RpZnlfY2hhbmdlKGxvd2VyX2RlbnRyeSwgaWEpOworCWVsc2UgCisJ CWVyciA9IGxvd2VyX2lub2RlLT5pX29wLT5zZXRhdHRyKGxvd2VyX2RlbnRyeSwgaWEpOwor CQorCWlmICghZXJyKSB7CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChpbm9kZSwgbG93ZXJf aW5vZGUpOworCQlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShpbm9kZSwgbG93ZXJfaW5vZGUp OworCX0gCiAKIAlyZXR1cm4gZXJyOwogfQotCiAvKioKICAqIERlc2NyaXB0aW9uOiBDYWxs ZWQgYnkgdGhlIFZGUyB0byBzZXQgYW4gZXh0ZW5kZWQgYXR0cmlidXRlIGZvciBhIGZpbGUu CiAgKiBFeHRlbmRlZCBhdHRyaWJ1dGUgaXMgYSBuYW1lOnZhbHVlIHBhaXIgYXNzb2NpYXRl ZCB3aXRoIGFuIGlub2RlLiBUaGlzCkBAIC00OTYsMTQgKzU5NSwxNCBAQCBzdGF0aWMgaW50 IGRhenVrb2ZzX3NldHhhdHRyKHN0cnVjdCBkZW50CiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9p bm9kZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5zZXR4YXR0 cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsKIAkJZ290byBv dXQ7CiAJfQogCiAJZXJyID0gbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5zZXR4YXR0cihs b3dlcl9kZW50cnksIG5hbWUsIHZhbHVlLAogCQkJCQkJIHNpemUsIGZsYWdzKTsKIAotCWZz c3RhY2tfY29weV9hdHRyX2FsbChkZW50cnktPmRfaW5vZGUsIGxvd2VyX2RlbnRyeV9pbm9k ZSwgTlVMTCk7CisJZnNzdGFja19jb3B5X2F0dHJfYWxsKGRlbnRyeS0+ZF9pbm9kZSwgbG93 ZXJfZGVudHJ5X2lub2RlKTsKIAlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShkZW50cnktPmRf aW5vZGUsIGxvd2VyX2RlbnRyeV9pbm9kZSk7CiBvdXQ6CiAJcmV0dXJuIGVycjsKQEAgLTUy OCw3ICs2MjcsNyBAQCBzdGF0aWMgc3NpemVfdCBkYXp1a29mc19nZXR4YXR0cihzdHJ1Y3Qg CiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVu dHJ5X2lub2RlLT5pX29wLT5nZXR4YXR0cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIg PSAtRU9QTk9UU1VQUDsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC01NTcsNyArNjU2LDcgQEAg c3RhdGljIHNzaXplX3QgZGF6dWtvZnNfbGlzdHhhdHRyKHN0cnVjdAogCiAJaWYgKCFsb3dl cl9kZW50cnlfaW5vZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9v cC0+bGlzdHhhdHRyKSB7Ci0JCWVyciA9IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQ OwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTU4NCw3ICs2ODMsNyBAQCBzdGF0aWMgaW50IGRh enVrb2ZzX3JlbW92ZXhhdHRyKHN0cnVjdCBkCiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9k ZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5yZW1vdmV4YXR0 cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsKIAkJZ290byBv dXQ7CiAJfQogCkBAIC03MjQsMTAgKzgyMyw5IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVu YW1lKHN0cnVjdCBpbm9kZSAKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAotCWZzc3RhY2tf Y29weV9hdHRyX2FsbChuZXdfZGlyLCBsb3dlcl9uZXdfZGVudHJ5X3BhcmVudF9pbm9kZSwg TlVMTCk7CisJZnNzdGFja19jb3B5X2F0dHJfYWxsKG5ld19kaXIsIGxvd2VyX25ld19kZW50 cnlfcGFyZW50X2lub2RlKTsKIAlpZiAobmV3X2RpciAhPSBvbGRfZGlyKQotCQlmc3N0YWNr X2NvcHlfYXR0cl9hbGwob2xkX2RpciwgbG93ZXJfb2xkX2RlbnRyeV9wYXJlbnRfaW5vZGUs Ci0JCQkJICAgICAgTlVMTCk7CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChvbGRfZGlyLCBs b3dlcl9vbGRfZGVudHJ5X3BhcmVudF9pbm9kZSk7CiBvdXQ6CiAJZHB1dChsb3dlcl9vbGRf ZGVudHJ5X3BhcmVudCk7CiAJZHB1dChsb3dlcl9uZXdfZGVudHJ5X3BhcmVudCk7CmRpZmYg LXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUgZGF6dWtvZnMtMy4wLjAtcmM0 XzIuNi4xOC9NYWtlZmlsZQotLS0gZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUJMjAwOS0wMi0y MiAxNzo0NjowMi4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYu MTgvTWFrZWZpbGUJMjAwOS0wNS0xMSAxOTo1MDoxOS4wMDAwMDAwMDAgKzAyMDAKQEAgLTE5 LDYgKzE5LDcgQEAgZGF6dWtvZnNfaW5zdGFsbDogZGF6dWtvZnNfbW9kdWxlcwogCiBjbGVh bjoKIAlybSAtZiBNb2R1bGUuc3ltdmVycworCXJtIC1mIG1vZHVsZXMub3JkZXIKIAltYWtl IC1DICQoREFaVUtPRlNfS0VSTkVMX1NSQykgU1VCRElSUz0iYHB3ZGAiIGNsZWFuCiAKIC5Q SE9OWTogZGF6dWtvZnNfbW9kdWxlcyBkYXp1a29mc19pbnN0YWxsIGNsZWFuCmRpZmYgLXgg Q1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvUkVBRE1FIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYu MTgvUkVBRE1FCi0tLSBkYXp1a29mcy0zLjAuMC9SRUFETUUJMjAwOS0wMi0yMiAxNzozODoy MS4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvUkVBRE1F CTIwMDgtMTItMTIgMTg6MDE6MDcuMDAwMDAwMDAwICswMTAwCkBAIC0yMSwxMCArMjEsMTAg QEAgTk9URTogRGF6dWtvRlMgaXMgY29tcGxldGVseSBzZXBhcmF0ZSBmcgogPT09PT09PT09 PT09PT09PT0KIAogQmVsb3cgYXJlIGJyaWVmIGluc3RydWN0aW9ucyB0byBnZXQgRGF6dWtv RlMgY29tcGlsZWQgYW5kIHJ1bm5pbmcgb24gYQotc3lzdGVtIHdpdGggYSBMaW51eCAyLjYu Mjgga2VybmVsLiBZb3UgbWF5IG5lZWQgdG8gbWFudWFsbHkgYWRqdXN0IHRoZQorc3lzdGVt IHdpdGggYSBMaW51eCAyLjYuMjcga2VybmVsLiBZb3UgbWF5IG5lZWQgdG8gbWFudWFsbHkg YWRqdXN0IHRoZQogTWFrZWZpbGUgaWYgeW91IGtlcm5lbCBzb3VyY2VzIGFyZSBub3QgaW4g dGhlIGRlZmF1bHQgbG9jYXRpb24uCi0oUGF0Y2hlcyBhcmUgcHJvdmlkZWQgZm9yIHZhcmlv dXMgb3RoZXIga2VybmVscy4gU2VlIHRoZSBzZWN0aW9uIGJlbG93Ci10aXRsZWQgIlBBVENI SU5HIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4pCisoQSBwYXRjaCBpcyBwcm92aWRlZCB0byBj b252ZXJ0IHRoZSBEYXp1a29GUyBjb2RlIHRvIHN1cHBvcnQgTGludXgKKzIuNi4yNi4pCiAK IGNvbXBpbGUgdGhlIGtlcm5lbCBtb2R1bGUKICAgIyBtYWtlCkBAIC01MiwyNSArNTIsNiBA QCB1bm1vdW50IERhenVrb0ZTCiAKIAogCi09PT09PT09PT09Ci0gUEFUQ0hJTkcKLT09PT09 PT09PT0KLQotSW4gdGhlICJwYXRjaGVzIiBkaXJlY3RvcnkgdGhlcmUgYXJlIHBhdGNoZXMg YXZhaWxhYmxlIHRvIG1vZGlmeSB0aGUKLURhenVrb0ZTIGNvZGUgdG8gZml0IHZhcmlvdXMg b3RoZXIga2VybmVscy4gRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUKLXJ1bm5pbmcgb3BlblNV U0UgMTEuMSB5b3UgY2FuIHBhdGNoIHRoZSBjb2RlIHdpdGggdGhlIGZvbGxvd2luZwotY29t bWFuZDoKLQotJCBwYXRjaCAtcDEgPCBwYXRjaGVzL3BhdGNoLW9wZW5zdXNlLTExLjEKLQot VGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgZXJyb3JzLiBJZiB0aGVyZSBhcmUgZXJyb3JzLCB0 aGVuIHRoZSBwYXRjaAotaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgcmVwb3J0ZWQgb24gdGhl IGRhenVrby1kZXZlbCBtYWlsaW5nIGxpc3QuCi0KLU9uY2UgdGhlIGNvZGUgaGFzIGJlZW4g cGF0Y2hlZCB5b3UgY2FuIGJ1aWxkIHRoZSBrZXJuZWwgbW9kdWxlIGFzCi1kZXNjcmliZWQg aW4gdGhlIHNlY3Rpb24gIkJVSUxEIC8gSU5TVEFMTCIgYWJvdmUuCi0KLQotCiA9PT09PT09 PT0KICBURVNUSU5HCiA9PT09PT09PT0KQEAgLTE1NCw5ICsxMzUsNiBAQCBhbnkgcHJvYmxl bXMuCiAgS05PV04gSVNTVUVTCiA9PT09PT09PT09PT09PQogCi0tIFRoZSBrZXJuZWwgd2ls bCBjcmFzaCBpZiB5b3UgYXR0ZW1wdCB0byBtb3VudCBEYXp1a29GUyB0byBhIGZpbGUgaW5z dGVhZAotICBvZiBhIGRpcmVjdG9yeS4gKFRoZSB2YXJpb3VzIGtlcm5lbCBwYXRjaGVzIGhh bmRsZSB0aGlzIGVycm9yLikKLQogLSBEYXp1a29GUyBkb2VzIG5vdCBzdXBwb3J0IHdyaXRp bmcgdG8gbWVtb3J5IG1hcHBlZCBmaWxlcy4gVGhpcyBzaG91bGQgbm90CiAgIGNhdXNlIHRo ZSBrZXJuZWwgdG8gY3Jhc2gsIGJ1dCB3aWxsIGluc3RlYWQgcmVzdWx0IGluIHRoZSBhcHBs aWNhdGlvbgogICBmYWlsaW5nIHRvIHBlcmZvcm0gdGhlIHdyaXRlcyAoYWx0aG91Z2ggbW1h cCgpIHdpbGwgYXBwZWFyIHRvIGJlCmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAv c3VwZXIuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjE4L3N1cGVyLmMKLS0tIGRhenVrb2Zz LTMuMC4wL3N1cGVyLmMJMjAwOS0wMi0yMiAxNzo0NjowMi4wMDAwMDAwMDAgKzAxMDAKKysr IGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvc3VwZXIuYwkyMDA5LTA3LTAzIDE3OjU4OjQy LjAwMDAwMDAwMCArMDIwMApAQCAtMzUsNiArMzUsOSBAQCBzdGF0aWMgc3RydWN0IGttZW1f Y2FjaGUgKmRhenVrb2ZzX3NiX2luCiBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZGVu dHJ5X2luZm9fY2FjaGVwOwogc3RydWN0IGttZW1fY2FjaGUgKmRhenVrb2ZzX2ZpbGVfaW5m b19jYWNoZXA7CiAKKworI2RlZmluZSBEQVpVS09GU19WRVJTSU9OICIzLjAuMC1yYzQtYXZp cmEtYjIuNiIKKwogc3RhdGljIHN0cnVjdCBpbm9kZSAqZGF6dWtvZnNfYWxsb2NfaW5vZGUo c3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5m byAqaW5vZGVpOwpAQCAtMTU4LDggKzE2MSw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVh ZF9zdXBlcihzdHJ1Y3Qgc3UKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbG93ZXJf cm9vdCA9IGRnZXQobmQucGF0aC5kZW50cnkpOwotCWxvd2VyX21udCA9IG1udGdldChuZC5w YXRoLm1udCk7CisJbG93ZXJfcm9vdCA9IGRnZXQobmQuZGVudHJ5KTsKKwlsb3dlcl9tbnQg PSBtbnRnZXQobmQubW50KTsKIAogCWlmIChJU19FUlIobG93ZXJfcm9vdCkpIHsKIAkJZXJy ID0gUFRSX0VSUihsb3dlcl9yb290KTsKQEAgLTE3MCw2ICsxNzMsMTAgQEAgc3RhdGljIGlu dCBkYXp1a29mc19yZWFkX3N1cGVyKHN0cnVjdCBzdQogCQllcnIgPSAtRU5PRU5UOwogCQln b3RvIG91dF9wdXQ7CiAJfQorCWlmICghU19JU0RJUihsb3dlcl9yb290LT5kX2lub2RlLT5p X21vZGUpKSB7CisJCWVyciA9IC1FTk9FTlQ7CisJCWdvdG8gb3V0X3B1dDsKKwl9CiAKIAlT RVRfTE9XRVJfU0Ioc2IsIGxvd2VyX3Jvb3QtPmRfc2IpOwogCXNiLT5zX21heGJ5dGVzID0g bG93ZXJfcm9vdC0+ZF9zYi0+c19tYXhieXRlczsKQEAgLTE4NCw3ICsxOTEsNyBAQCBvdXRf cHV0OgogCWRwdXQobG93ZXJfcm9vdCk7CiAJbW50cHV0KGxvd2VyX21udCk7CiBvdXQ6Ci0J cGF0aF9wdXQoJm5kLnBhdGgpOworCXBhdGhfcmVsZWFzZSgmbmQpOwogCXJldHVybiBlcnI7 CiB9CiAKQEAgLTIxMywxNSArMjIwLDE2IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfZ2V0X3Ni KHN0cnVjdCBmaWxlX3MKIAogb3V0X2Fib3J0OgogCXVwX3dyaXRlKCZzYi0+c191bW91bnQp OworCWRwdXQoc2ItPnNfcm9vdCk7CiAJZGVhY3RpdmF0ZV9zdXBlcihzYik7CiBvdXQ6CiAJ cmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgaW5pdF9vbmNlKHZvaWQgKmRhdGEpCitz dGF0aWMgdm9pZCBpbml0X29uY2Uodm9pZCAqdnB0ciwgc3RydWN0IGttZW1fY2FjaGUgKmNh Y2hlcCwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVf aW5mbyAqaW5vZGVfaW5mbyA9Ci0JCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKWRh dGE7CisJCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKXZwdHI7CiAKIAltZW1zZXQo aW5vZGVfaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19pbm9kZV9pbmZvKSk7CiAJ aW5vZGVfaW5pdF9vbmNlKCYoaW5vZGVfaW5mby0+dmZzX2lub2RlKSk7CkBAIC0yNTYsNyAr MjY0LDcgQEAgc3RhdGljIGludCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2Ny ZWF0ZSgiZGF6dWtvZnNfaW5vZGVfaW5mb19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0 IGRhenVrb2ZzX2lub2RlX2luZm8pLCAwLAogCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLAot CQkJCSAgaW5pdF9vbmNlKTsKKwkJCQkgIGluaXRfb25jZSwgTlVMTCk7CiAJaWYgKCFkYXp1 a29mc19pbm9kZV9pbmZvX2NhY2hlcCkKIAkJZ290byBvdXRfbm9tZW07CiAKQEAgLTI2NCw3 ICsyNzIsNyBAQCBzdGF0aWMgaW50IGluaXRfY2FjaGVzKHZvaWQpCiAJCWttZW1fY2FjaGVf Y3JlYXRlKCJkYXp1a29mc19zYl9pbmZvX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1Y3Qg ZGF6dWtvZnNfc2JfaW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJ ICBOVUxMKTsKKwkJCQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfc2JfaW5mb19j YWNoZXApCiAJCWdvdG8gb3V0X25vbWVtOwogCkBAIC0yNzIsNyArMjgwLDcgQEAgc3RhdGlj IGludCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2NyZWF0ZSgiZGF6dWtvZnNf ZGVudHJ5X2luZm9fY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19kZW50 cnlfaW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsK KwkJCQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZGVudHJ5X2luZm9fY2FjaGVw KQogCQlnb3RvIG91dF9ub21lbTsKIApAQCAtMjgwLDcgKzI4OCw3IEBAIHN0YXRpYyBpbnQg aW5pdF9jYWNoZXModm9pZCkKIAkJa21lbV9jYWNoZV9jcmVhdGUoImRhenVrb2ZzX2ZpbGVf aW5mb19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2ZpbGVfaW5mbyks IDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsKKwkJCQkgIE5V TEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcCkKIAkJZ290byBv dXRfbm9tZW07CiAKQEAgLTMwNSw3ICszMTMsNyBAQCBzdGF0aWMgc3RydWN0IGZpbGVfc3lz dGVtX3R5cGUgZGF6dWtvZnNfCiAKIHN0YXRpYyBpbnQgX19pbml0IGluaXRfZGF6dWtvZnNf ZnModm9pZCkKIHsKLQlpbnQgZXJyID0gMDsKKwlpbnQgZXJyOwogCiAJZXJyID0gZGF6dWtv ZnNfZGV2X2luaXQoKTsKIAlpZiAoZXJyKQpAQCAtMzE5LDcgKzMyNyw3IEBAIHN0YXRpYyBp bnQgX19pbml0IGluaXRfZGF6dWtvZnNfZnModm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIGVy cm9yX291dDM7CiAKLQlwcmludGsoS0VSTl9JTkZPICJkYXp1a29mczogbG9hZGVkLCB2ZXJz aW9uPSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1 a29mczogbG9hZGVkLCB2ZXJzaW9uPSIgREFaVUtPRlNfVkVSU0lPTiAiXG4iKTsKIAlyZXR1 cm4gMDsKIAogZXJyb3Jfb3V0MzoKQEAgLTMzNSw3ICszNDMsNyBAQCBzdGF0aWMgdm9pZCBf X2V4aXQgZXhpdF9kYXp1a29mc19mcyh2b2lkCiAJdW5yZWdpc3Rlcl9maWxlc3lzdGVtKCZk YXp1a29mc19mc190eXBlKTsKIAlkZXN0cm95X2NhY2hlcygpOwogCWRhenVrb2ZzX2Rldl9k ZXN0cm95KCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IHVubG9hZGVkLCB2ZXJz aW9uPSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1 a29mczogdW5sb2FkZWQsIHZlcnNpb249IiBEQVpVS09GU19WRVJTSU9OICJcbiIpOwogfQog CiBNT0RVTEVfQVVUSE9SKCJKb2huIE9nbmVzcyIpOwo= --------------080403000800050709010803 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 --------------080403000800050709010803--