From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/gsi-openssh] epel10.2: Based on openssh-9.9p1-26.el10 Date: Sat, 30 May 2026 01:18:33 GMT Message-ID: <178010391366.1.10491047381666753428.rpms-gsi-openssh-52f242b91bc2@fedoraproject.org> List-ID: X-Git-Repo: rpms/gsi-openssh X-Git-Branch: epel10.2 X-Git-Rev: 52f242b91bc224468ae1b43e61723343aace3881 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ3NpLW9wZW5zc2gK QnJhbmNoIDogZXBlbDEwLjIKQ29tbWl0IDogNTJmMjQyYjkxYmMyMjQ0NjhhZTFiNDNlNjE3MjMz NDNhYWNlMzg4MQpBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2lj cy51dS5zZT4KRGF0ZSAgIDogMjAyNi0wNS0zMFQwMzowOTowNiswMjowMApTdGF0cyAgOiArMTUx OC8tNDIzIGluIDE4IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5v cmcvcnBtcy9nc2ktb3BlbnNzaC9jLzUyZjI0MmI5MWJjMjI0NDY4YWUxYjQzZTYxNzIzMzQzYWFj ZTM4ODE/YnJhbmNoPWVwZWwxMC4yCgpMb2c6CkJhc2VkIG9uIG9wZW5zc2gtOS45cDEtMjYuZWwx MAoKLS0tCmRpZmYgLS1naXQgYS9nc2ktb3BlbnNzaC5zcGVjIGIvZ3NpLW9wZW5zc2guc3BlYwpp bmRleCAxNDgxYTQyLi5iODBjZjQwIDEwMDY0NAotLS0gYS9nc2ktb3BlbnNzaC5zcGVjCisrKyBi L2dzaS1vcGVuc3NoLnNwZWMKQEAgLTI4LDcgKzI4LDcgQEAKIFN1bW1hcnk6IEFuIGltcGxlbWVu dGF0aW9uIG9mIHRoZSBTU0ggcHJvdG9jb2wgd2l0aCBHU0kgYXV0aGVudGljYXRpb24KIE5hbWU6 IGdzaS1vcGVuc3NoCiBWZXJzaW9uOiAle29wZW5zc2hfdmVyfQotUmVsZWFzZTogNSV7P2Rpc3R9 CitSZWxlYXNlOiA2JXs/ZGlzdH0KIFByb3ZpZGVzOiBnc2lzc2ggPSAle3ZlcnNpb259LSV7cmVs ZWFzZX0KIE9ic29sZXRlczogZ3Npc3NoIDwgNS44cDItMgogVVJMOiBodHRwOi8vd3d3Lm9wZW5z c2guY29tL3BvcnRhYmxlLmh0bWwKQEAgLTIwNyw2ICsyMDcsMzAgQEAgUGF0Y2gxMDMyOiBvcGVu c3NoLTkuOXAxLXJlamVjdC1jbnRybC1jaGFycy1pbi11c2VybmFtZS5wYXRjaAogUGF0Y2gxMDMz OiBvcGVuc3NoLTkuOXAxLXJlamVjdC1udWxsLWNoYXItaW4tdXJsLXN0cmluZy5wYXRjaAogUGF0 Y2gxMDM0OiBvcGVuc3NoLTkuOXAxLXNzaGQtbm8tZGVsZWdhdGUtY3JlZGVudGlhbHMucGF0Y2gK IFBhdGNoMTAzNTogb3BlbnNzaC0xMC4wLW1sa2VtLW5pc3QtZmlwcy5wYXRjaAorIyB1cHN0cmVh bSA2ODNkMGFiZTU5NmIwNjlhODk2ZjE2ODhmODYyNTZmMWJlZWIwY2RjCisjIHVwc3RyZWFtIDkz MTMyMzNhNzM1NzMzODIxZGZkMTcwYjcwNzgyZmI3ZGE0OTI5NjIKKyMgdXBzdHJlYW0gMmIwZjRh NzJiZDg3YmVmN2NjOWYwYTE4ODljZmM5ODU0NWNiYjE1OAorIyB1cHN0cmVhbSAxOWY3Y2IzOWVl Y2I0YjhmNzY4ZjM3ZTgyOTRkYzNhOTE0MmUwMjJiCisjIHVwc3RyZWFtIDk3YjMyZmEyYWYyNWMx NmFlYzRkZTg1YzVjYmI2M2ZkMDM4YjRkZmEKK1BhdGNoMTAzNzogb3BlbnNzaC05LjlwMS1maXJz dC1tYXRjaC13aW5zLnBhdGNoCisjIHVwc3RyZWFtIGVkZGQxZDJkYWE2NGE2YWIxYTkxNWNhODg0 MzZmYTQxYWVkZTQ0ZDQKKyMgdXBzdHJlYW0gYmMzMjgxNDRmMTQ5YWYwNzEzOWEwZjJjMTMyOTAx OGNkODViODZiNworUGF0Y2gxMDM4OiBvcGVuc3NoLTkuOXAxLW1heHN0YXJ0dXBzLW1pc3RyYWNr aW5nLnBhdGNoCisjIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc3NoL29wZW5zc2gtcG9ydGFibGUv cHVsbC82NDkKK1BhdGNoMTAzOTogb3BlbnNzaC05LjlwMS1maWxsLWRlZmF1bHQtb3B0aW9ucy1l cnJvci5wYXRjaAorIyB1cHN0cmVhbSA0ODdlOGFjMTQ2ZjdkNjYxNmY2NWMxMjVkNWVkYjIxMDUx OWI4MzNhCitQYXRjaDEwNDA6IG9wZW5zc2gtOS45cDEtc2NwLWNsZWFyLXNldHVpZC5wYXRjaAor IyB1cHN0cmVhbSBjODA1Yjk3YjY3Yzc3NGUwYmY5MjJmZmIyOWRmYmNkYTlkN2I1YWRkCitQYXRj aDEwNDE6IG9wZW5zc2gtOS45cDEtbXV4LWFza3Bhc3MtY2hlY2sucGF0Y2gKKyMgdXBzdHJlYW0g ZmQxYzdlMTMxZjMzMTk0MmQyMGY0MmYzMWU3OTkxMmQ1NzAwODFmYQorUGF0Y2gxMDQyOiBvcGVu c3NoLTkuOXAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24ucGF0Y2gKKyMgdXBzdHJlYW0g ZmQxYzdlMTMxZjMzMTk0MmQyMGY0MmYzMWU3OTkxMmQ1NzAwODFmYQorUGF0Y2gxMDQzOiBvcGVu c3NoLTkuOXAxLWF1dGhvcml6ZWQta2V5cy1wcmluY2lwbGVzLW9wdGlvbi5wYXRjaAorIyB1cHN0 cmVhbSA3NjY4NWM5YjA5YTY2NDM1Y2QyYWQ4MzczMjQ2YWRmMWM1Mzk3NmQzCisjIHVwc3RyZWFt IDBhMGVmNDUxNTM2MTE0M2NhZDIxYWZhMDcyMzE5ODIzODU0YzFjZjYKKyMgdXBzdHJlYW0gNjA3 YmQ4NzFlYzAyOWU5YWEyMmU2MzJhMjI1NDcyNTBmM2NhZTIyMworIyB1cHN0cmVhbSAxMzQwZDNm YThlNGJiMTIyOTA2YTgyMTU5YzRjOWI5MTU4NGQ2NWNlCitQYXRjaDEwNDQ6IG9wZW5zc2gtOS45 cDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRjaAogCiAjIFRoaXMgaXMg dGhlIHBhdGNoIHRoYXQgYWRkcyBHU0kgc3VwcG9ydAogIyBCYXNlZCBvbiBocG5faXNzaGQtZ3Np LjcuNXAxYi5wYXRjaCBmcm9tIEdsb2J1cyB1cHN0cmVhbQpAQCAtMjE2LDcgKzI0MCw3IEBAIFBh dGNoOTg6IG9wZW5zc2gtOS45cDEtZ3Npc3NoLnBhdGNoCiAjIEJhc2VkIG9uIGh0dHBzOi8vZ2l0 aHViLmNvbS9yYXBpZXIxL2hwbi1zc2gvIHRhZzogaHBuLTE4LjYuMAogUGF0Y2g5OTogb3BlbnNz aC05LjlwMS1ocG4tMTguNi4wLnBhdGNoCiAKLUxpY2Vuc2U6IEJTRC0zLUNsYXVzZSBBTkQgQlNE LTItQ2xhdXNlIEFORCBJU0MgQU5EIFNTSC1PcGVuU1NIIEFORCBzc2gta2V5c2NhbiBBTkQgc3By aW50ZiBBTkQgTGljZW5zZVJlZi1GZWRvcmEtUHVibGljLURvbWFpbiBBTkQgWDExLWRpc3RyaWJ1 dGUtbW9kaWZpY2F0aW9ucy12YXJpYW50CitMaWNlbnNlOiBCU0QtMy1DbGF1c2UgQU5EIEJTRC0y LUNsYXVzZSBBTkQgSVNDIEFORCBTU0gtT3BlblNTSCBBTkQgc3NoLWtleXNjYW4gQU5EIHNucHJp bnRmIEFORCBMaWNlbnNlUmVmLUZlZG9yYS1QdWJsaWMtRG9tYWluIEFORCBYMTEtZGlzdHJpYnV0 ZS1tb2RpZmljYXRpb25zLXZhcmlhbnQKIFJlcXVpcmVzOiAvc2Jpbi9ub2xvZ2luCiAKIEJ1aWxk UmVxdWlyZXM6IGF1dG9jb25mLCBhdXRvbWFrZSwgcGVybC1pbnRlcnByZXRlciwgcGVybC1nZW5l cmF0b3JzLCB6bGliLWRldmVsCkBAIC0yMjksNyArMjUzLDYgQEAgQnVpbGRSZXF1aXJlczogc3lz dGVtZC1ycG0tbWFjcm9zCiBCdWlsZFJlcXVpcmVzOiBnY2MgbWFrZQogQnVpbGRSZXF1aXJlczog cDExLWtpdC1kZXZlbAogQnVpbGRSZXF1aXJlczogbGliZmlkbzItZGV2ZWwKLVJlY29tbWVuZHM6 IHAxMS1raXQKIAogJWlmICV7a2VyYmVyb3M1fQogQnVpbGRSZXF1aXJlczoga3JiNS1kZXZlbApA QCAtMzk0LDYgKzQxNywxNCBAQCBncGd2MiAtLXF1aWV0IC0ta2V5cmluZyAle1NPVVJDRTN9ICV7 U09VUkNFMX0gJXtTT1VSQ0UwfQogJXBhdGNoIC1QIDEwMzMgLXAxIC1iIC5yZWplY3QtbnVsbC1j aGFyLWluLXVybC1zdHJpbmcKICVwYXRjaCAtUCAxMDM0IC1wMSAtYiAuc3NoZC1ub2dzc2NyZWRz CiAlcGF0Y2ggLVAgMTAzNSAtcDEgLWIgLm1sa2VtLW5pc3QtZmlwcworJXBhdGNoIC1QIDEwMzcg LXAxIC1iIC5maXJzdC1tYXRjaC13aW5zCislcGF0Y2ggLVAgMTAzOCAtcDEgLWIgLm1heHN0YXJ0 dXBzLW1pc3RyYWNraW5nCislcGF0Y2ggLVAgMTAzOSAtcDEgLWIgLmZpbGwtZGVmYXVsdC1vcHRp b25zLWVycm9yCislcGF0Y2ggLVAgMTA0MCAtcDEgLWIgLnNjcC1jbGVhci1zZXR1aWQKKyVwYXRj aCAtUCAxMDQxIC1wMSAtYiAubXV4LWFza3Bhc3MtY2hlY2sKKyVwYXRjaCAtUCAxMDQyIC1wMSAt YiAuZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbgorJXBhdGNoIC1QIDEwNDMgLXAxIC1iIC5h dXRob3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24KKyVwYXRjaCAtUCAxMDQ0IC1wMSAtYiAu cHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcwogCiAlcGF0Y2ggLVAgMTAwIC1wMSAt YiAuY292ZXJpdHkKIApAQCAtNjE5LDYgKzY1MCw5IEBAIGZpCiAlZ2hvc3QgJWF0dHIoMDY0NCxy b290LHJvb3QpICV7X2xvY2Fsc3RhdGVkaXJ9L2xpYi8uZ3Npc3NoLWhvc3Qta2V5cy1taWdyYXRp b24KIAogJWNoYW5nZWxvZworKiBGcmkgTWF5IDI5IDIwMjYgTWF0dGlhcyBFbGxlcnQgPG1hdHRp YXMuZWxsZXJ0QHBoeXNpY3MudXUuc2U+IC0gOS45cDEtNgorLSBCYXNlZCBvbiBvcGVuc3NoLTku OXAxLTI2LmVsMTAKKwogKiBUdWUgTWFyIDI0IDIwMjYgTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMu ZWxsZXJ0QHBoeXNpY3MudXUuc2U+IC0gOS45cDEtNQogLSBCYXNlZCBvbiBvcGVuc3NoLTkuOXAx LTE5LmVsMTAKIAoKZGlmZiAtLWdpdCBhL29wZW5zc2gtMTAuMC1tbGtlbS1uaXN0LWZpcHMucGF0 Y2ggYi9vcGVuc3NoLTEwLjAtbWxrZW0tbmlzdC1maXBzLnBhdGNoCmluZGV4IGI2MTBiNmUuLjk1 MWUzNjcgMTAwNjQ0Ci0tLSBhL29wZW5zc2gtMTAuMC1tbGtlbS1uaXN0LWZpcHMucGF0Y2gKKysr IGIvb3BlbnNzaC0xMC4wLW1sa2VtLW5pc3QtZmlwcy5wYXRjaApAQCAtMSwxNyArMSw4NSBAQAor ZGlmZiAtLWdpdCBhL2NvbXBhdC5jIGIvY29tcGF0LmMKK2luZGV4IDRlNjExZGMzOS4uYjVmNGNj Njg1IDEwMDY0NAorLS0tIGEvY29tcGF0LmMKKysrKyBiL2NvbXBhdC5jCitAQCAtMzYsNiArMzYs NyBAQAorICNpbmNsdWRlICJjb21wYXQuaCIKKyAjaW5jbHVkZSAibG9nLmgiCisgI2luY2x1ZGUg Im1hdGNoLmgiCisrI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgorIAorIC8qIGRldGVybWluZSBi dWcgZmxhZ3MgZnJvbSBTU0ggcHJvdG9jb2wgYmFubmVyICovCisgdm9pZAorQEAgLTE0OCw4ICsx NDksOSBAQCBjaGFyICoKKyBjb21wYXRfa2V4X3Byb3Bvc2FsKHN0cnVjdCBzc2ggKnNzaCwgY29u c3QgY2hhciAqcCkKKyB7CisgCWNoYXIgKmNwID0gTlVMTCwgKmNwMiA9IE5VTEw7CisrCWludCBt bGtlbV9hdmFpbGFibGUgPSBpc19tbGtlbTc2OF9hdmFpbGFibGUoKTsKKyAKKy0JaWYgKChzc2gt PmNvbXBhdCAmIChTU0hfQlVHX0NVUlZFMjU1MTlQQUR8U1NIX09MRF9ESEdFWCkpID09IDApCisr CWlmICgoc3NoLT5jb21wYXQgJiAoU1NIX0JVR19DVVJWRTI1NTE5UEFEfFNTSF9PTERfREhHRVgp KSA9PSAwICYmIG1sa2VtX2F2YWlsYWJsZSA9PSAyKQorIAkJcmV0dXJuIHhzdHJkdXAocCk7Cisg CWRlYnVnMl9mKCJvcmlnaW5hbCBLRVggcHJvcG9zYWw6ICVzIiwgcCk7CisgCWlmICgoc3NoLT5j b21wYXQgJiBTU0hfQlVHX0NVUlZFMjU1MTlQQUQpICE9IDApCitAQCAtMTY0LDYgKzE2NiwyNSBA QCBjb21wYXRfa2V4X3Byb3Bvc2FsKHN0cnVjdCBzc2ggKnNzaCwgY29uc3QgY2hhciAqcCkKKyAJ CWZyZWUoY3ApOworIAkJY3AgPSBjcDI7CisgCX0KKysJaWYgKG1sa2VtX2F2YWlsYWJsZSA9PSAy KQorKwkJcmV0dXJuIGNwID8gY3AgOiB4c3RyZHVwKHApOworKwlpZiAobWxrZW1fYXZhaWxhYmxl ID09IDEgJiYgRklQU19tb2RlKCkpIHsKKysJCWlmICgoY3AyID0gbWF0Y2hfZmlsdGVyX2Rlbnls aXN0KGNwID8gY3AgOiBwLAorKwkJICAgICJtbGtlbTc2OHgyNTUxOS1zaGEyNTYiKSkgPT0gTlVM TCkKKysJCQlmYXRhbCgibWF0Y2hfZmlsdGVyX2RlbnlsaXN0IGZhaWxlZCIpOworKwkJZnJlZShj cCk7CisrCQljcCA9IGNwMjsKKysJfQorKwlpZiAobWxrZW1fYXZhaWxhYmxlID09IDApIHsKKysJ CWlmICgoY3AyID0gbWF0Y2hfZmlsdGVyX2RlbnlsaXN0KGNwID8gY3AgOiBwLAorKwkJICAgICJt bGtlbTc2OHgyNTUxOS1zaGEyNTYsIgorKwkJICAgICJtbGtlbTc2OG5pc3RwMjU2LXNoYTI1Niwi CisrCQkgICAgIm1sa2VtMTAyNG5pc3RwMzg0LXNoYTM4NCIpKSA9PSBOVUxMKQorKwkJCWZhdGFs KCJtYXRjaF9maWx0ZXJfZGVueWxpc3QgZmFpbGVkIik7CisrCQlmcmVlKGNwKTsKKysJCWNwID0g Y3AyOworKwl9CisrCisgCWlmIChjcCA9PSBOVUxMIHx8ICpjcCA9PSAnXDAnKQorIAkJZmF0YWwo Ik5vIHN1cHBvcnRlZCBrZXkgZXhjaGFuZ2UgYWxnb3JpdGhtcyBmb3VuZCIpOworIAlkZWJ1ZzJf ZigiY29tcGF0IEtFWCBwcm9wb3NhbDogJXMiLCBjcCk7CitkaWZmIC0tZ2l0IGEvY29tcGF0Lmgg Yi9jb21wYXQuaAoraW5kZXggMmU2ZGI1YmY5Li5iNzhlNTViNjkgMTAwNjQ0CistLS0gYS9jb21w YXQuaAorKysrIGIvY29tcGF0LmgKK0BAIC02Miw0ICs2Miw1IEBAIHN0cnVjdCBzc2g7CisgCisg dm9pZCAgICBjb21wYXRfYmFubmVyKHN0cnVjdCBzc2ggKiwgY29uc3QgY2hhciAqKTsKKyBjaGFy CSpjb21wYXRfa2V4X3Byb3Bvc2FsKHN0cnVjdCBzc2ggKiwgY29uc3QgY2hhciAqKTsKKytpbnQg aXNfbWxrZW03NjhfYXZhaWxhYmxlKHZvaWQpOworICNlbmRpZgogZGlmZiAtLWdpdCBhL2tleC1u YW1lcy5jIGIva2V4LW5hbWVzLmMKIGluZGV4IGE3MjhlMGIzOC4uOWI4NTJlOGFiIDEwMDY0NAog LS0tIGEva2V4LW5hbWVzLmMKICsrKyBiL2tleC1uYW1lcy5jCi1AQCAtMTEyLDEzICsxMTIsMzAg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZXhhbGcgZ3NzX2tleGFsZ3NbXSA9IHsKK0BAIC0zNSw2 ICszNSw3IEBACisgI2luY2x1ZGUgPG9wZW5zc2wvY3J5cHRvLmg+CisgI2luY2x1ZGUgPG9wZW5z c2wvZmlwcy5oPgorICNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorKyNpbmNsdWRlIDxvcGVuc3Ns L2Vyci5oPgorICNlbmRpZgorIAorICNpbmNsdWRlICJrZXguaCIKK0BAIC0xMTMsMTQgKzExMywy NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtleGFsZyBnc3Nfa2V4YWxnc1tdCiAgCXsgTlVMTCwg MCwgLTEsIC0xfSwKICB9OwogIAogKy8qCiArICogMCAtIHVuYXZhaWxhYmxlCiArICogMSAtIGF2 YWlsYWJsZSBpbiBub24tRklQUyBtb2RlCi0rICogMiAtIGF2YWlsYWJsZSBpbiBGSVBTIG1vZGUK KysgKiAyIC0gYXZhaWxhYmxlIGFsd2F5cwogKyAqLwotIHN0YXRpYyBpbnQgaXNfbWxrZW03Njhf YXZhaWxhYmxlKCkKKy1zdGF0aWMgaW50IGlzX21sa2VtNzY4X2F2YWlsYWJsZSgpCisraW50IGlz X21sa2VtNzY4X2F2YWlsYWJsZSgpCiAgewogIAlzdGF0aWMgaW50IGlzX2ZldGNoZWQgPSAtMTsK ICAKQEAgLTIwLDIxICs4OCwxOCBAQCBpbmRleCBhNzI4ZTBiMzguLjliODUyZThhYiAxMDA2NDQK IC0JCWlzX2ZldGNoZWQgPSBtbGtlbTc2OCAhPSBOVUxMID8gMSA6IDA7CiArCQlFVlBfS0VNICpt bGtlbTc2OCA9IE5VTEw7CiArCi0rCQlpZiAoRklQU19tb2RlKCkgPT0gMSkgewotKwkJICAgIG1s a2VtNzY4ID0gRVZQX0tFTV9mZXRjaChOVUxMLCAibWxrZW03NjgiLCBOVUxMKTsKLSsJCSAgICBp c19mZXRjaGVkID0gbWxrZW03NjggIT0gTlVMTCA/IDIgOiAwOwotKwotKwkJICAgIGlmIChpc19m ZXRjaGVkID09IDApIHsKLSsJCSAgICAgICAgbWxrZW03NjggPSBFVlBfS0VNX2ZldGNoKE5VTEws ICJtbGtlbTc2OCIsICJwcm92aWRlcj1kZWZhdWx0LC1maXBzIik7Ci0rCQkgICAgICAgIGlzX2Zl dGNoZWQgPSBtbGtlbTc2OCAhPSBOVUxMID8gMSA6IDA7Ci0rCQkgICAgfQotKwkJfSBlbHNlIHsK LSsJCSAgICBtbGtlbTc2OCA9IEVWUF9LRU1fZmV0Y2goTlVMTCwgIm1sa2VtNzY4IiwgTlVMTCk7 Ci0rCQkgICAgaXNfZmV0Y2hlZCA9IG1sa2VtNzY4ICE9IE5VTEwgPyAxIDogMDsKKysJCUVSUl9z ZXRfbWFyaygpOworKwkJbWxrZW03NjggPSBFVlBfS0VNX2ZldGNoKE5VTEwsICJtbGtlbTc2OCIs IE5VTEwpOworKwkJaXNfZmV0Y2hlZCA9IChtbGtlbTc2OCA9PSBOVUxMKSA/IDAgOiAyOworKwkJ aWYgKGlzX2ZldGNoZWQgPT0gMCAmJiBGSVBTX21vZGUoKSA9PSAxKSB7CisrCQkgICAgbWxrZW03 NjggPSBFVlBfS0VNX2ZldGNoKE5VTEwsICJtbGtlbTc2OCIsICJwcm92aWRlcj1kZWZhdWx0LC1m aXBzIik7CisrCQkgICAgaXNfZmV0Y2hlZCA9IChtbGtlbTc2OCA9PSBOVUxMKSA/IDAgOiAxOwog KwkJfQogIAkJRVZQX0tFTV9mcmVlKG1sa2VtNzY4KTsKKysJCUVSUl9wb3BfdG9fbWFyaygpOwog IAl9CiAgCisgCXJldHVybiBpc19mZXRjaGVkOwogQEAgLTEzMSwxMyArMTQ4LDMyIEBAIGtleF9h bGdfbGlzdF9pbnRlcm5hbChjaGFyIHNlcCwgY29uc3Qgc3RydWN0IGtleGFsZyAqYWxncykKICAJ Y2hhciAqcmV0ID0gTlVMTCwgKnRtcDsKICAJc2l6ZV90IG5sZW4sIHJsZW4gPSAwOwpAQCAtMTA4 LDYgKzE3MywyNSBAQCBpbmRleCBhNzI4ZTBiMzguLjliODUyZThhYiAxMDA2NDQKICAKICAJZm9y IChrID0ga2V4YWxnczsgay0+bmFtZSAhPSBOVUxMOyBrKyspIHsKICAJCWlmIChzdHJjbXAoay0+ bmFtZSwgbmFtZSkgPT0gMCkKK0BAIC0yOTIsOCArMjk1LDE2IEBAIGtleF9uYW1lc192YWxpZChj b25zdCBjaGFyICpuYW1lcykKKyAJZm9yICgocCA9IHN0cnNlcCgmY3AsICIsIikpOyBwICYmICpw ICE9ICdcMCc7CisgCSAgICAocCA9IHN0cnNlcCgmY3AsICIsIikpKSB7CisgCQlpZiAoa2V4X2Fs Z19ieV9uYW1lKHApID09IE5VTEwpIHsKKy0JCQlpZiAoRklQU19tb2RlKCkpCistCQkJCWVycm9y KCJcIiUuMTAwc1wiIGlzIG5vdCBhbGxvd2VkIGluIEZJUFMgbW9kZSIsIHApOworKwkJCWlmIChG SVBTX21vZGUoKSkgeworKwkJCQlpZiAoKHN0cmNtcChwLCBLRVhfTUxLRU03NjhYMjU1MTlfU0hB MjU2KSA9PSAwKQorKwkJCQkgICAgfHwgKHN0cmNtcChwLCBLRVhfTUxLRU03NjhOSVNUUDI1Nl9T SEEyNTYpID09IDApCisrCQkJCSAgICB8fCAoc3RyY21wKHAsIEtFWF9NTEtFTTEwMjROSVNUUDM4 NF9TSEEzODQpID09IDApKSB7CisrCQkJCQlkZWJ1ZygiXCIlLjEwMHNcIiBpcyBub3QgYWxsb3dl ZCBpbiBGSVBTIG1vZGUiLCBwKTsKKysJCQkJCWNvbnRpbnVlOworKwkJCQl9CisrCQkJCWVsc2UK KysJCQkJCWVycm9yKCJcIiUuMTAwc1wiIGlzIG5vdCBhbGxvd2VkIGluIEZJUFMgbW9kZSIsIHAp OworKwkJCX0KKyAJCQllbHNlCisgCQkJCWVycm9yKCJVbnN1cHBvcnRlZCBLRVggYWxnb3JpdGht IFwiJS4xMDBzXCIiLCBwKTsKKyAJCQlmcmVlKHMpOwogZGlmZiAtLWdpdCBhL2tleGdlbi5jIGIv a2V4Z2VuLmMKIGluZGV4IDZlOTEwZjg0Zi4uNGJjM2Y5ZmFmIDEwMDY0NAogLS0tIGEva2V4Z2Vu LmMKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTEwLjAtbWxrZW0tbmlzdC5wYXRjaCBiL29wZW5zc2gt MTAuMC1tbGtlbS1uaXN0LnBhdGNoCmluZGV4IDIyYjhlYzYuLmNiODczYzYgMTAwNjQ0Ci0tLSBh L29wZW5zc2gtMTAuMC1tbGtlbS1uaXN0LnBhdGNoCisrKyBiL29wZW5zc2gtMTAuMC1tbGtlbS1u aXN0LnBhdGNoCkBAIC02NzYsNyArNjc2LDcgQEAgaW5kZXggNjcwMDQ5ZGNkLi40NjNkMTg3NzEg MTAwNjQ0CiArCS8qIGdlbmVyYXRlIEVDREgga2V5IHBhaXIsIHN0b3JlIHNlcnZlciBwdWJrZXkg YWZ0ZXIgY2lwaGVydGV4dCAqLwogKwlzZXJ2ZXJfa2V5ID0gbmlzdF9wa2V5X2tleWdlbihzZXJ2 ZXJfa2V5X2xlbik7CiArCi0rCWlmICgociA9IGdldF91bmNvbXByZXNzZWRfZWNfcHVia2V5KHNl cnZlcl9rZXksIHNlcnZlcl9wdWIsIHNlcnZlcl9rZXlfbGVuKSAhPSAwKSB8fAorKwlpZiAoKHNl cnZlcl9rZXkgPT0gTlVMTCkgfHwgKHIgPSBnZXRfdW5jb21wcmVzc2VkX2VjX3B1YmtleShzZXJ2 ZXJfa2V5LCBzZXJ2ZXJfcHViLCBzZXJ2ZXJfa2V5X2xlbikgIT0gMCkgfHwKICsJICAgIChyID0g c3NoYnVmX3B1dChidWYsIHNlY3JldCwgc2l6ZW9mKHNlY3JldCkpKSAhPSAwIHx8CiArCSAgICAo ciA9IHNzaGJ1Zl9wdXQoc2VydmVyX2Jsb2IsIGVuY19vdXQsIGVuY19vdXRfbGVuKSAhPSAwKXx8 CiArCSAgICAociA9IHNzaGJ1Zl9wdXQoc2VydmVyX2Jsb2IsIHNlcnZlcl9wdWIsIHNlcnZlcl9r ZXlfbGVuKSkgIT0gMCkKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTYuN3AxLWNvdmVyaXR5LnBhdGNo IGIvb3BlbnNzaC02LjdwMS1jb3Zlcml0eS5wYXRjaAppbmRleCBmZmUwYzY5Li4yNzZjYzQzIDEw MDY0NAotLS0gYS9vcGVuc3NoLTYuN3AxLWNvdmVyaXR5LnBhdGNoCisrKyBiL29wZW5zc2gtNi43 cDEtY292ZXJpdHkucGF0Y2gKQEAgLTE1OSw2ICsxNTksNDYgQEAgZGlmZiAtdXAgb3BlbnNzaC04 LjdwMS9vcGVuYnNkLWNvbXBhdC9ic2QtcHNlbGVjdC5jLmNvdmVyaXR5IG9wZW5zc2gtOC43cDEv b3BlbmIKIGRpZmYgLXVwIG9wZW5zc2gtOC41cDEvcmVhZGNvbmYuYy5jb3Zlcml0eSBvcGVuc3No LTguNXAxL3JlYWRjb25mLmMKIC0tLSBvcGVuc3NoLTguNXAxL3JlYWRjb25mLmMuY292ZXJpdHkJ MjAyMS0wMy0yNCAxMjowMzozMy43Nzg5NjgxMzEgKzAxMDAKICsrKyBvcGVuc3NoLTguNXAxL3Jl YWRjb25mLmMJMjAyMS0wMy0yNCAxMjowMzozMy43ODU5NjgxODAgKzAxMDAKK0BAIC03NDksMTIg Kzc0OSwxMiBAQCBtYXRjaF9jZmdfbGluZShPcHRpb25zICpvcHRpb25zLCBjb25zdCBjCisgCWRl YnVnMigiY2hlY2tpbmcgbWF0Y2ggZm9yICclcycgaG9zdCAlcyBvcmlnaW5hbGx5ICVzIiwKKyAJ ICAgIGZ1bGxfbGluZSwgaG9zdCwgb3JpZ2luYWxfaG9zdCk7CisgCXdoaWxlICgoYXR0cmliID0g YXJndl9uZXh0KGFjcCwgYXZwKSkgIT0gTlVMTCkgeworLQkJYXR0cmliID0gb2F0dHJpYiA9IHhz dHJkdXAoYXR0cmliKTsKKyAJCS8qIFRlcm1pbmF0ZSBvbiBjb21tZW50ICovCisgCQlpZiAoKmF0 dHJpYiA9PSAnIycpIHsKKyAJCQlhcmd2X2NvbnN1bWUoYWNwKTsKKyAJCQlicmVhazsKKyAJCX0K KysJCWF0dHJpYiA9IG9hdHRyaWIgPSB4c3RyZHVwKGF0dHJpYik7CisgCQlhcmcgPSBjcml0ZXJp YSA9IE5VTEw7CisgCQl0aGlzX3Jlc3VsdCA9IDE7CisgCQlpZiAoKG5lZ2F0ZSA9IChhdHRyaWJb MF0gPT0gJyEnKSkpCitAQCAtNzkzLDcgKzc5Myw3IEBAIG1hdGNoX2NmZ19saW5lKE9wdGlvbnMg Km9wdGlvbnMsIGNvbnN0IGMKKyAJCQlkZWJ1ZzMoIiUuMjAwcyBsaW5lICVkOiAlc21hdGNoZWQg JyVzJyIsCisgCQkJICAgIGZpbGVuYW1lLCBsaW5lbnVtLAorIAkJCSAgICB0aGlzX3Jlc3VsdCA/ ICIiIDogIm5vdCAiLCBvYXR0cmliKTsKKy0JCQljb250aW51ZTsKKysJCQlnb3RvIG5leHQ7Cisg CQl9CisgCisgCQkvKiBLZWVwIHRoaXMgbGlzdCBpbiBzeW5jIHdpdGggYmVsb3cgKi8KK0BAIC04 NjMsNyArODYzLDcgQEAgbWF0Y2hfY2ZnX2xpbmUoT3B0aW9ucyAqb3B0aW9ucywgY29uc3QgYwor IAkJCQlkZWJ1ZzMoIiUuMjAwcyBsaW5lICVkOiBza2lwcGVkIGV4ZWMgIgorIAkJCQkgICAgIlwi JS4xMDBzXCIiLCBmaWxlbmFtZSwgbGluZW51bSwgY21kKTsKKyAJCQkJZnJlZShjbWQpOworLQkJ CQljb250aW51ZTsKKysJCQkJZ290byBuZXh0OworIAkJCX0KKyAJCQlyID0gZXhlY3V0ZV9pbl9z aGVsbChjbWQpOworIAkJCWlmIChyID09IC0xKSB7CitAQCAtODg3LDYgKzg4Nyw3IEBAIG1hdGNo X2NmZ19saW5lKE9wdGlvbnMgKm9wdGlvbnMsIGNvbnN0IGMKKyAJCSAgICBjcml0ZXJpYSA9PSBO VUxMID8gIiIgOiAiIFwiIiwKKyAJCSAgICBjcml0ZXJpYSA9PSBOVUxMID8gIiIgOiBjcml0ZXJp YSwKKyAJCSAgICBjcml0ZXJpYSA9PSBOVUxMID8gIiIgOiAiXCIiKTsKKytuZXh0OgorIAkJZnJl ZShjcml0ZXJpYSk7CisgCQlmcmVlKG9hdHRyaWIpOworIAkJb2F0dHJpYiA9IGF0dHJpYiA9IE5V TEw7CiBAQCAtMTg0Nyw2ICsxODQ3LDcgQEAgcGFyc2VfcHVia2V5X2FsZ29zOgogIAkJCX0gZWxz ZSBpZiAociAhPSAwKSB7CiAgCQkJCWVycm9yKCIlLjIwMHMgbGluZSAlZDogZ2xvYiBmYWlsZWQg Zm9yICVzLiIsCkBAIC0xNzAsNiArMjEwLDEwOCBAQCBkaWZmIC11cCBvcGVuc3NoLTguNXAxL3Jl YWRjb25mLmMuY292ZXJpdHkgb3BlbnNzaC04LjVwMS9yZWFkY29uZi5jCiBkaWZmIC11cCBvcGVu c3NoLTcuNHAxL3NlcnZjb25mLmMuY292ZXJpdHkgb3BlbnNzaC03LjRwMS9zZXJ2Y29uZi5jCiAt LS0gb3BlbnNzaC03LjRwMS9zZXJ2Y29uZi5jLmNvdmVyaXR5CTIwMTYtMTItMjMgMTY6NDA6MjYu ODk2Nzg4NjkwICswMTAwCiArKysgb3BlbnNzaC03LjRwMS9zZXJ2Y29uZi5jCTIwMTYtMTItMjMg MTY6NDA6MjYuOTAxNzg4NjkxICswMTAwCitAQCAtMTEyMCwxMiArMTEyMCwxMiBAQCBtYXRjaF9j ZmdfbGluZShjb25zdCBjaGFyICpmdWxsX2xpbmUsIGluCisgCX0KKyAKKyAJd2hpbGUgKChvYXR0 cmliID0gYXJndl9uZXh0KGFjcCwgYXZwKSkgIT0gTlVMTCkgeworLQkJYXR0cmliID0geHN0cmR1 cChvYXR0cmliKTsKKyAJCS8qIFRlcm1pbmF0ZSBvbiBjb21tZW50ICovCistCQlpZiAoKmF0dHJp YiA9PSAnIycpIHsKKysJCWlmICgqb2F0dHJpYiA9PSAnIycpIHsKKyAJCQlhcmd2X2NvbnN1bWUo YWNwKTsgLyogbWFyayBhbGwgYXJndW1lbnRzIGNvbnN1bWVkICovCisgCQkJYnJlYWs7CisgCQl9 CisrCQlhdHRyaWIgPSB4c3RyZHVwKG9hdHRyaWIpOworIAkJYXJnID0gTlVMTDsKKyAJCWF0dHJp YnV0ZXMrKzsKKyAJCS8qIENyaXRlcmlvbiAiYWxsIiBoYXMgbm8gYXJndW1lbnQgYW5kIG11c3Qg YXBwZWFyIGFsb25lICovCitAQCAtMTE0NywxMyArMTE0NywxMyBAQCBtYXRjaF9jZmdfbGluZShj b25zdCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQlpZiAoc3RyY2FzZWNtcChhdHRyaWIsICJpbnZh bGlkLXVzZXIiKSA9PSAwKSB7CisgCQkJaWYgKGNpID09IE5VTEwpIHsKKyAJCQkJcmVzdWx0ID0g MDsKKy0JCQkJY29udGludWU7CisrCQkJCWdvdG8gbmV4dDsKKyAJCQl9CisgCQkJaWYgKGNpLT51 c2VyX2ludmFsaWQgPT0gMCkKKyAJCQkJcmVzdWx0ID0gMDsKKyAJCQllbHNlCisgCQkJCWRlYnVn KCJtYXRjaGVkIGludmFsaWQtdXNlciBhdCBsaW5lICVkIiwgbGluZSk7CistCQkJY29udGludWU7 CisrCQkJZ290byBuZXh0OworIAkJfQorIAorIAkJLyogS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3 aXRoIGJlbG93ICovCitAQCAtMTE3OSw3ICsxMTc5LDcgQEAgbWF0Y2hfY2ZnX2xpbmUoY29uc3Qg Y2hhciAqZnVsbF9saW5lLCBpbgorIAkJaWYgKHN0cmNhc2VjbXAoYXR0cmliLCAidXNlciIpID09 IDApIHsKKyAJCQlpZiAoY2kgPT0gTlVMTCB8fCAoY2ktPnRlc3QgJiYgY2ktPnVzZXIgPT0gTlVM TCkpIHsKKyAJCQkJcmVzdWx0ID0gMDsKKy0JCQkJY29udGludWU7CisrCQkJCWdvdG8gbmV4dDsK KyAJCQl9CisgCQkJaWYgKGNpLT51c2VyID09IE5VTEwpCisgCQkJCW1hdGNoX3Rlc3RfbWlzc2lu Z19mYXRhbCgiVXNlciIsICJ1c2VyIik7CitAQCAtMTE5MSw3ICsxMTkxLDcgQEAgbWF0Y2hfY2Zn X2xpbmUoY29uc3QgY2hhciAqZnVsbF9saW5lLCBpbgorIAkJfSBlbHNlIGlmIChzdHJjYXNlY21w KGF0dHJpYiwgImdyb3VwIikgPT0gMCkgeworIAkJCWlmIChjaSA9PSBOVUxMIHx8IChjaS0+dGVz dCAmJiBjaS0+dXNlciA9PSBOVUxMKSkgeworIAkJCQlyZXN1bHQgPSAwOworLQkJCQljb250aW51 ZTsKKysJCQkJZ290byBuZXh0OworIAkJCX0KKyAJCQlpZiAoY2ktPnVzZXIgPT0gTlVMTCkKKyAJ CQkJbWF0Y2hfdGVzdF9taXNzaW5nX2ZhdGFsKCJHcm91cCIsICJ1c2VyIik7CitAQCAtMTIwNSw3 ICsxMjA1LDcgQEAgbWF0Y2hfY2ZnX2xpbmUoY29uc3QgY2hhciAqZnVsbF9saW5lLCBpbgorIAkJ fSBlbHNlIGlmIChzdHJjYXNlY21wKGF0dHJpYiwgImhvc3QiKSA9PSAwKSB7CisgCQkJaWYgKGNp ID09IE5VTEwgfHwgKGNpLT50ZXN0ICYmIGNpLT5ob3N0ID09IE5VTEwpKSB7CisgCQkJCXJlc3Vs dCA9IDA7CistCQkJCWNvbnRpbnVlOworKwkJCQlnb3RvIG5leHQ7CisgCQkJfQorIAkJCWlmIChj aS0+aG9zdCA9PSBOVUxMKQorIAkJCQltYXRjaF90ZXN0X21pc3NpbmdfZmF0YWwoIkhvc3QiLCAi aG9zdCIpOworQEAgLTEyMjAsNyArMTIyMCw3IEBAIG1hdGNoX2NmZ19saW5lKGNvbnN0IGNoYXIg KmZ1bGxfbGluZSwgaW4KKyAJCQkJCWZhdGFsKCJJbnZhbGlkIE1hdGNoIGFkZHJlc3MgYXJndW1l bnQgIgorIAkJCQkJICAgICInJXMnIGF0IGxpbmUgJWQiLCBhcmcsIGxpbmUpOworIAkJCQlyZXN1 bHQgPSAwOworLQkJCQljb250aW51ZTsKKysJCQkJZ290byBuZXh0OworIAkJCX0KKyAJCQlpZiAo Y2ktPmFkZHJlc3MgPT0gTlVMTCkKKyAJCQkJbWF0Y2hfdGVzdF9taXNzaW5nX2ZhdGFsKCJBZGRy ZXNzIiwgImFkZHIiKTsKK0BAIC0xMjQ0LDcgKzEyNDQsNyBAQCBtYXRjaF9jZmdfbGluZShjb25z dCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQkJCQkgICAgImFyZ3VtZW50ICclcycgYXQgbGluZSAl ZCIsIGFyZywKKyAJCQkJCSAgICBsaW5lKTsKKyAJCQkJcmVzdWx0ID0gMDsKKy0JCQkJY29udGlu dWU7CisrCQkJCWdvdG8gbmV4dDsKKyAJCQl9CisgCQkJaWYgKGNpLT5sYWRkcmVzcyA9PSBOVUxM KQorIAkJCQltYXRjaF90ZXN0X21pc3NpbmdfZmF0YWwoIkxvY2FsQWRkcmVzcyIsCitAQCAtMTI3 Miw3ICsxMjcyLDcgQEAgbWF0Y2hfY2ZnX2xpbmUoY29uc3QgY2hhciAqZnVsbF9saW5lLCBpbgor IAkJCX0KKyAJCQlpZiAoY2kgPT0gTlVMTCB8fCAoY2ktPnRlc3QgJiYgY2ktPmxwb3J0ID09IC0x KSkgeworIAkJCQlyZXN1bHQgPSAwOworLQkJCQljb250aW51ZTsKKysJCQkJZ290byBuZXh0Owor IAkJCX0KKyAJCQlpZiAoY2ktPmxwb3J0ID09IDApCisgCQkJCW1hdGNoX3Rlc3RfbWlzc2luZ19m YXRhbCgiTG9jYWxQb3J0IiwgImxwb3J0Iik7CitAQCAtMTI4Niw3ICsxMjg2LDcgQEAgbWF0Y2hf Y2ZnX2xpbmUoY29uc3QgY2hhciAqZnVsbF9saW5lLCBpbgorIAkJfSBlbHNlIGlmIChzdHJjYXNl Y21wKGF0dHJpYiwgInJkb21haW4iKSA9PSAwKSB7CisgCQkJaWYgKGNpID09IE5VTEwgfHwgKGNp LT50ZXN0ICYmIGNpLT5yZG9tYWluID09IE5VTEwpKSB7CisgCQkJCXJlc3VsdCA9IDA7CistCQkJ CWNvbnRpbnVlOworKwkJCQlnb3RvIG5leHQ7CisgCQkJfQorIAkJCWlmIChjaS0+cmRvbWFpbiA9 PSBOVUxMKQorIAkJCQltYXRjaF90ZXN0X21pc3NpbmdfZmF0YWwoIlJEb21haW4iLCAicmRvbWFp biIpOworQEAgLTEzMDAsNiArMTMwMCw3IEBAIG1hdGNoX2NmZ19saW5lKGNvbnN0IGNoYXIgKmZ1 bGxfbGluZSwgaW4KKyAJCQlyZXN1bHQgPSAtMTsKKyAJCQlnb3RvIG91dDsKKyAJCX0KKytuZXh0 OgorIAkJZnJlZShhdHRyaWIpOworIAkJYXR0cmliID0gTlVMTDsKKyAJfQogQEAgLTE2MzgsOCAr MTYzOCw5IEBAIHByb2Nlc3Nfc2VydmVyX2NvbmZpZ19saW5lKFNlcnZlck9wdGlvbnMKICAJCWlm ICgqYWN0aXZlcCAmJiAqY2hhcnB0ciA9PSBOVUxMKSB7CiAgCQkJKmNoYXJwdHIgPSB0aWxkZV9l eHBhbmRfZmlsZW5hbWUoYXJnLCBnZXR1aWQoKSk7CkBAIC0yNDYsMyArMzg4LDIyIEBAIGRpZmYg LXVwIG9wZW5zc2gtOC41cDEvc3NoLWtleWdlbi5jLmNvdmVyaXR5IG9wZW5zc2gtOC41cDEvc3No LWtleWdlbi5jCiAgCQl9IGVsc2UgewogIAkJCWlmIChzdHJuY2FzZWNtcChjcCwgImtleToiLCA0 KSA9PSAwKSB7CiAgCQkJCWNwICs9IDQ7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hkLmMgYi9z c2hkLmMKKy0tLSBhL3NzaGQuYwkyMDI2LTA0LTAxIDE0OjI5OjE0LjE4NjczNjIzMyArMDIwMAor KysrIGIvc3NoZC5jCTIwMjYtMDQtMDEgMTQ6MzY6NTkuMTM2ODgxODE5ICswMjAwCitAQCAtMTA3 OSw2ICsxMDc5LDcgQEAgc2VydmVyX2FjY2VwdF9sb29wKGludCAqc29ja19pbiwgaW50ICpzbwor IAkJCQlzZW5kX3JleGVjX3N0YXRlKGNvbmZpZ19zWzBdLCBjZmcpOworIAkJCQljbG9zZShjb25m aWdfc1swXSk7CisgCQkJCWZyZWUocGZkKTsKKysJCQkJZnJlZShzdGFydHVwX3BvbGxmZCk7Cisg CQkJCXJldHVybjsKKyAJCQl9CisgCitAQCAtMTExMSw2ICsxMTEyLDcgQEAgc2VydmVyX2FjY2Vw dF9sb29wKGludCAqc29ja19pbiwgaW50ICpzbworIAkJCQkgICAgbG9nX3N0ZGVycik7CisgCQkJ CWNsb3NlKGNvbmZpZ19zWzBdKTsKKyAJCQkJZnJlZShwZmQpOworKwkJCQlmcmVlKHN0YXJ0dXBf cG9sbGZkKTsKKyAJCQkJcmV0dXJuOworIAkJCX0KKyAKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTcu NnAxLWF1ZGl0LnBhdGNoIGIvb3BlbnNzaC03LjZwMS1hdWRpdC5wYXRjaAppbmRleCAyYzdkZGM1 Li5hMzJhYmM5IDEwMDY0NAotLS0gYS9vcGVuc3NoLTcuNnAxLWF1ZGl0LnBhdGNoCisrKyBiL29w ZW5zc2gtNy42cDEtYXVkaXQucGF0Y2gKQEAgLTIwOTMsNyArMjA5Myw3IEBAIGRpZmYgLXVwIG9w ZW5zc2gtOC42cDEvc3NoZC1zZXNzaW9uLmMuYXVkaXQgb3BlbnNzaC04LjZwMS9zc2hkLXNlc3Np b24uYwogKyNlbmRpZiAvKiBXSVRIX09QRU5TU0wgKi8KICsgICAgICBjYXNlIEtFWV9FRDI1NTE5 X0NFUlQ6CiArICAgICAgY2FzZSBLRVlfRUQyNTUxOToKLSsgICAgICAgICAgICAgIHJldHVybiAo ay0+ZWQyNTUxOV9wayAhPSBOVUxMKTsKKysgICAgICAgICAgICAgIHJldHVybiAoay0+ZWQyNTUx OV9zayAhPSBOVUxMKTsKICsgICAgICBkZWZhdWx0OgogKyAgICAgICAgICAgICAgLyogZmF0YWwo ImtleV9pc19wcml2YXRlOiBiYWQga2V5IHR5cGUgJWQiLCBrLT50eXBlKTsgKi8KICsgICAgICAg ICAgICAgIHJldHVybiAwOwoKZGlmZiAtLWdpdCBhL29wZW5zc2gtNy43cDEtZmlwcy5wYXRjaCBi L29wZW5zc2gtNy43cDEtZmlwcy5wYXRjaAppbmRleCBmY2QwMjQ1Li44ZDQ0MmE0IDEwMDY0NAot LS0gYS9vcGVuc3NoLTcuN3AxLWZpcHMucGF0Y2gKKysrIGIvb3BlbnNzaC03LjdwMS1maXBzLnBh dGNoCkBAIC03MDEsMyArNzAxLDI5IEBAIGRpZmYgLXVwIG9wZW5zc2gtOS45cDEva2V4LmMueHh4 IG9wZW5zc2gtOS45cDEva2V4LmMKICAJaWYgKChjcCA9IGtleF9uYW1lc19jYXQoa2V4YWxnb3Ms IHNzaC0+a2V4LT5zZXJ2ZXIgPwogIAkgICAgImV4dC1pbmZvLXMsa2V4LXN0cmljdC1zLXYwMEBv cGVuc3NoLmNvbSIgOgogIAkgICAgImV4dC1pbmZvLWMsa2V4LXN0cmljdC1jLXYwMEBvcGVuc3No LmNvbSIpKSA9PSBOVUxMKQorZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoLWtleXNjYW4uYyBiL3Nz aC1rZXlzY2FuLmMKKy0tLSBhL3NzaC1rZXlzY2FuLmMJMjAyNi0wMy0xOCAxMzo1ODo1NS43MDgx OTMzNzMgKzAxMDAKKysrKyBiL3NzaC1rZXlzY2FuLmMJMjAyNi0wMy0xOCAxNTozNDozNS40OTU5 NDI1MzggKzAxMDAKK0BAIC0yMiw2ICsyMiw3IEBACisgI2lmZGVmIFdJVEhfT1BFTlNTTAorICNp bmNsdWRlIDxvcGVuc3NsL2JuLmg+CisgI2VuZGlmCisrI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5o PgorIAorICNpbmNsdWRlIDxsaW1pdHMuaD4KKyAjaW5jbHVkZSA8bmV0ZGIuaD4KK0BAIC0yMzks NiArMjQwLDE0IEBAIGtleWdyYWJfc3NoMihjb24gKmMpCisgCWNoYXIgKm15cHJvcG9zYWxbUFJP UE9TQUxfTUFYXSA9IHsgS0VYX0NMSUVOVCB9OworIAlpbnQgcjsKKyAKKysJaWYgKEZJUFNfbW9k ZSgpKSB7CisrCQlteXByb3Bvc2FsW1BST1BPU0FMX0tFWF9BTEdTXSA9IEtFWF9ERUZBVUxUX0tF WF9GSVBTOworKwkJbXlwcm9wb3NhbFtQUk9QT1NBTF9FTkNfQUxHU19DVE9TXSA9IEtFWF9GSVBT X0VOQ1JZUFQ7CisrCQlteXByb3Bvc2FsW1BST1BPU0FMX0VOQ19BTEdTX1NUT0NdID0gS0VYX0ZJ UFNfRU5DUllQVDsKKysJCW15cHJvcG9zYWxbUFJPUE9TQUxfTUFDX0FMR1NfQ1RPU10gPSBLRVhf RklQU19NQUM7CisrCQlteXByb3Bvc2FsW1BST1BPU0FMX01BQ19BTEdTX1NUT0NdID0gS0VYX0ZJ UFNfTUFDOworKwl9CisrCisgCXN3aXRjaCAoYy0+Y19rZXl0eXBlKSB7CisgCWNhc2UgS1RfRFNB OgorIAkJbXlwcm9wb3NhbFtQUk9QT1NBTF9TRVJWRVJfSE9TVF9LRVlfQUxHU10gPSBnZXRfY2Vy dCA/CgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjZwMS1nc3NhcGkta2V5ZXgucGF0Y2ggYi9vcGVu c3NoLTkuNnAxLWdzc2FwaS1rZXlleC5wYXRjaAppbmRleCBlZjFmOTdlLi41ODc1OTQzIDEwMDY0 NAotLS0gYS9vcGVuc3NoLTkuNnAxLWdzc2FwaS1rZXlleC5wYXRjaAorKysgYi9vcGVuc3NoLTku NnAxLWdzc2FwaS1rZXlleC5wYXRjaApAQCAtMSw2ICsxLDYgQEAKIGRpZmYgLS1jb2xvciAtcnVO cCBhL2F1dGgyLmMgYi9hdXRoMi5jCi0tLS0gYS9hdXRoMi5jCTIwMjQtMDktMTYgMTE6NDU6NTYu ODU4MTMzMjQxICswMjAwCi0rKysgYi9hdXRoMi5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNjg4OTM5 NzU1ICswMjAwCistLS0gYS9hdXRoMi5jCTIwMjYtMDMtMTMgMTI6MzI6NDguNDYzODMwNjcyICsw MTAwCisrKysgYi9hdXRoMi5jCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEzNTU5MDAwICswMTAwCiBA QCAtNzEsNiArNzEsNyBAQCBleHRlcm4gQXV0aG1ldGhvZCBtZXRob2RfcGFzc3dkOwogIGV4dGVy biBBdXRobWV0aG9kIG1ldGhvZF9rYmRpbnQ7CiAgZXh0ZXJuIEF1dGhtZXRob2QgbWV0aG9kX2hv c3RiYXNlZDsKQEAgLTE4LDggKzE4LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDIuYyBi L2F1dGgyLmMKICAjZW5kaWYKICAJJm1ldGhvZF9wYXNzd2QsCiBkaWZmIC0tY29sb3IgLXJ1TnAg YS9hdXRoMi1nc3MuYyBiL2F1dGgyLWdzcy5jCi0tLS0gYS9hdXRoMi1nc3MuYwkyMDI0LTA5LTE2 IDExOjQ1OjU2Ljg1ODEzMzI0MSArMDIwMAotKysrIGIvYXV0aDItZ3NzLmMJMjAyNC0wOS0xNiAx MTo0NjozNC42ODk5Mzk3NzYgKzAyMDAKKy0tLSBhL2F1dGgyLWdzcy5jCTIwMjYtMDMtMTMgMTI6 MzI6NDguNDY0MTU4OTc4ICswMTAwCisrKysgYi9hdXRoMi1nc3MuYwkyMDI2LTAzLTEzIDEyOjE2 OjQwLjAxMTU3OTQ3NiArMDEwMAogQEAgLTUxLDYgKzUxLDcgQEAKICAjZGVmaW5lIFNTSF9HU1NB UElfTUFYX01FQ0hTCTIwNDgKICAKQEAgLTEwOCw4ICsxMDgsOCBAQCBkaWZmIC0tY29sb3IgLXJ1 TnAgYS9hdXRoMi1nc3MuYyBiL2F1dGgyLWdzcy5jCiAgCSZtZXRob2RjZmdfZ3NzYXBpLAogIAl1 c2VyYXV0aF9nc3NhcGksCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1tZXRob2RzLmMgYi9h dXRoMi1tZXRob2RzLmMKLS0tLSBhL2F1dGgyLW1ldGhvZHMuYwkyMDI0LTA3LTAxIDA2OjM2OjI4 LjAwMDAwMDAwMCArMDIwMAotKysrIGIvYXV0aDItbWV0aG9kcy5jCTIwMjQtMDktMTYgMTE6NDY6 MzQuNjg5OTM5Nzc2ICswMjAwCistLS0gYS9hdXRoMi1tZXRob2RzLmMJMjAyNC0wOS0yMCAwMDoy MDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2F1dGgyLW1ldGhvZHMuYwkyMDI2LTAzLTEzIDEy OjE2OjQwLjAxMTYyMTUwMiArMDEwMAogQEAgLTUwLDYgKzUwLDExIEBAIHN0cnVjdCBhdXRobWV0 aG9kX2NmZyBtZXRob2RjZmdfcHVia2V5ID0KICAJJm9wdGlvbnMucHVia2V5X2F1dGhlbnRpY2F0 aW9uCiAgfTsKQEAgLTEzMSw4ICsxMzEsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoMi1t ZXRob2RzLmMgYi9hdXRoMi1tZXRob2RzLmMKICAjZW5kaWYKICAJJm1ldGhvZGNmZ19wYXNzd2Qs CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9hdXRoLmMgYi9hdXRoLmMKLS0tLSBhL2F1dGguYwkyMDI0 LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysrIGIvYXV0aC5jCTIwMjQtMDktMTYg MTE6NDY6MzQuNjkwOTM5Nzk4ICswMjAwCistLS0gYS9hdXRoLmMJMjAyNC0wOS0yMCAwMDoyMDo0 OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2F1dGguYwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3MTk3 MTQ1MiArMDEwMAogQEAgLTM1Niw3ICszNTYsOCBAQCBhdXRoX3Jvb3RfYWxsb3dlZChzdHJ1Y3Qg c3NoICpzc2gsIGNvbnN0CiAgCWNhc2UgUEVSTUlUX05PX1BBU1NXRDoKICAJCWlmIChzdHJjbXAo bWV0aG9kLCAicHVibGlja2V5IikgPT0gMCB8fApAQCAtMTQ0LDggKzE0NCw4IEBAIGRpZmYgLS1j b2xvciAtcnVOcCBhL2F1dGguYyBiL2F1dGguYwogIAkJYnJlYWs7CiAgCWNhc2UgUEVSTUlUX0ZP UkNFRF9PTkxZOgogZGlmZiAtLWNvbG9yIC1ydU5wIGEvY2Fub2hvc3QuYyBiL2Nhbm9ob3N0LmMK LS0tLSBhL2Nhbm9ob3N0LmMJMjAyNC0wNy0wMSAwNjozNjoyOC4wMDAwMDAwMDAgKzAyMDAKLSsr KyBiL2Nhbm9ob3N0LmMJMjAyNC0wOS0xNiAxMTo0NjozNC42OTA5Mzk3OTggKzAyMDAKKy0tLSBh L2Nhbm9ob3N0LmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2Nh bm9ob3N0LmMJMjAyNi0wMy0xMyAxMjoxNjozOS45NzE2MTQzNDkgKzAxMDAKIEBAIC0zNSw2ICsz NSw5OSBAQAogICNpbmNsdWRlICJjYW5vaG9zdC5oIgogICNpbmNsdWRlICJtaXNjLmgiCkBAIC0y NDcsOCArMjQ3LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvY2Fub2hvc3QuYyBiL2Nhbm9ob3N0 LmMKICBpcHY2NF9ub3JtYWxpc2VfbWFwcGVkKHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlICphZGRy LCBzb2NrbGVuX3QgKmxlbikKICB7CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9jYW5vaG9zdC5oIGIv Y2Fub2hvc3QuaAotLS0tIGEvY2Fub2hvc3QuaAkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAw MCArMDIwMAotKysrIGIvY2Fub2hvc3QuaAkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5MDkzOTc5OCAr MDIwMAorLS0tIGEvY2Fub2hvc3QuaAkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIw MAorKysrIGIvY2Fub2hvc3QuaAkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3MzAxMDIyNyArMDEwMAog QEAgLTE1LDYgKzE1LDkgQEAKICAjaWZuZGVmIF9DQU5PSE9TVF9ICiAgI2RlZmluZSBfQ0FOT0hP U1RfSApAQCAtMjYwLDggKzI2MCw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2Nhbm9ob3N0Lmgg Yi9jYW5vaG9zdC5oCiAgaW50CQkgZ2V0X3BlZXJfcG9ydChpbnQpOwogIGNoYXIJCSpnZXRfbG9j YWxfaXBhZGRyKGludCk7CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9jbGllbnRsb29wLmMgYi9jbGll bnRsb29wLmMKLS0tLSBhL2NsaWVudGxvb3AuYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAw MCArMDIwMAotKysrIGIvY2xpZW50bG9vcC5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNjkwOTM5Nzk4 ICswMjAwCistLS0gYS9jbGllbnRsb29wLmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL2NsaWVudGxvb3AuYwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3MzA2NzQ3NSAr MDEwMAogQEAgLTExNSw2ICsxMTUsMTAgQEAKICAjaW5jbHVkZSAic3NoZXJyLmgiCiAgI2luY2x1 ZGUgImhvc3RmaWxlLmgiCkBAIC0yODksOCArMjg5LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEv Y2xpZW50bG9vcC5jIGIvY2xpZW50bG9vcC5jCiAgCQlpZiAoY29ubl9pbl9yZWFkeSkKICAJCQlj bGllbnRfcHJvY2Vzc19uZXRfaW5wdXQoc3NoKTsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL2NvbmZp Z3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotLS0tIGEvY29uZmlndXJlLmFjCTIwMjQtMDktMTYgMTE6 NDU6NTYuODcwMTMzNDk3ICswMjAwCi0rKysgYi9jb25maWd1cmUuYWMJMjAyNC0wOS0xNiAxMTo0 NjozNC42OTE5Mzk4MTkgKzAyMDAKKy0tLSBhL2NvbmZpZ3VyZS5hYwkyMDI2LTAzLTEzIDEyOjMy OjQ4LjQ3NjQ5NzExMSArMDEwMAorKysrIGIvY29uZmlndXJlLmFjCTIwMjYtMDMtMTMgMTI6MTY6 MzkuOTc0MDY3OTc4ICswMTAwCiBAQCAtNzc0LDYgKzc3NCwzMCBAQCBpbnQgbWFpbih2b2lkKSB7 IGlmIChOU1ZlcnNpb25PZlJ1blRpbWVMCiAgCSAgICBbVXNlIHR1bm5lbCBkZXZpY2UgY29tcGF0 aWJpbGl0eSB0byBPcGVuQlNEXSkKICAJQUNfREVGSU5FKFtTU0hfVFVOX1BSRVBFTkRfQUZdLCBb MV0sCkBAIC0zMjMsOCArMzIzLDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvY29uZmlndXJlLmFj IGIvY29uZmlndXJlLmFjCiAgCUFDX0NIRUNLX0RFQ0woW0FVX0lQdjRdLCBbXSwKICAJICAgIEFD X0RFRklORShbQVVfSVB2NF0sIFswXSwgW1N5c3RlbSBvbmx5IHN1cHBvcnRzIElQdjQgYXVkaXQg cmVjb3Jkc10pCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3MtZ2Vuci5jIGIvZ3NzLWdlbnIuYwot LS0tIGEvZ3NzLWdlbnIuYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysr IGIvZ3NzLWdlbnIuYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjcwODk0MDE4MSArMDIwMAorLS0tIGEv Z3NzLWdlbnIuYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvZ3Nz LWdlbnIuYwkyMDI2LTAzLTEzIDEyOjE2OjQwLjAxMjY3Mjc1OSArMDEwMAogQEAgLTQyLDkgKzQy LDMzIEBACiAgI2luY2x1ZGUgInNzaGJ1Zi5oIgogICNpbmNsdWRlICJsb2cuaCIKQEAgLTcxMCw4 ICs3MTAsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9nc3MtZ2Vuci5jIGIvZ3NzLWdlbnIuYwog KwogICNlbmRpZiAvKiBHU1NBUEkgKi8KIGRpZmYgLS1jb2xvciAtcnVOcCBhL2dzcy1zZXJ2LmMg Yi9nc3Mtc2Vydi5jCi0tLS0gYS9nc3Mtc2Vydi5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAw MDAwICswMjAwCi0rKysgYi9nc3Mtc2Vydi5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNjkyOTM5ODQw ICswMjAwCistLS0gYS9nc3Mtc2Vydi5jCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICsw MjAwCisrKysgYi9nc3Mtc2Vydi5jCTIwMjYtMDMtMTMgMTI6MTY6MzkuOTc4Nzg3ODE4ICswMTAw CiBAQCAtMSw3ICsxLDcgQEAKICAvKiAkT3BlbkJTRDogZ3NzLXNlcnYuYyx2IDEuMzIgMjAyMC8w My8xMyAwMzoxNzowNyBkam0gRXhwICQgKi8KICAKQEAgLTEwMDQsOCArMTAwNCw4IEBAIGRpZmYg LS1jb2xvciAtcnVOcCBhL2dzcy1zZXJ2LmMgYi9nc3Mtc2Vydi5jCiAgCiAgLyogUHJpdmlsZWdl ZCAqLwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYta3JiNS5jIGIvZ3NzLXNlcnYta3Ji NS5jCi0tLS0gYS9nc3Mtc2Vydi1rcmI1LmMJMjAyNC0wNy0wMSAwNjozNjoyOC4wMDAwMDAwMDAg KzAyMDAKLSsrKyBiL2dzcy1zZXJ2LWtyYjUuYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5MjkzOTg0 MCArMDIwMAorLS0tIGEvZ3NzLXNlcnYta3JiNS5jCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAw MDAwICswMjAwCisrKysgYi9nc3Mtc2Vydi1rcmI1LmMJMjAyNi0wMy0xMyAxMjoxNjozOS45Nzg5 MzQwNTYgKzAxMDAKIEBAIC0xLDcgKzEsNyBAQAogIC8qICRPcGVuQlNEOiBnc3Mtc2Vydi1rcmI1 LmMsdiAxLjkgMjAxOC8wNy8wOSAyMTozNzo1NSBtYXJrdXMgRXhwICQgKi8KICAKQEAgLTExNDMs OCArMTE0Myw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2dzcy1zZXJ2LWtyYjUuYyBiL2dzcy1z ZXJ2LWtyYjUuYwogIAogICNlbmRpZiAvKiBLUkI1ICovCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9r ZXguYyBiL2tleC5jCi0tLS0gYS9rZXguYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCAr MDIwMAotKysrIGIva2V4LmMJMjAyNC0wOS0xNiAxMTo0NjozNC42OTI5Mzk4NDAgKzAyMDAKKy0t LSBhL2tleC5jCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9rZXgu YwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3ODg1NzY1MyArMDEwMAogQEAgLTI5NywxNyArMjk3LDM3 IEBAIHN0YXRpYyBpbnQKICBrZXhfY29tcG9zZV9leHRfaW5mb19zZXJ2ZXIoc3RydWN0IHNzaCAq c3NoLCBzdHJ1Y3Qgc3NoYnVmICptKQogIHsKQEAgLTEyMDAsOCArMTIwMCw4IEBAIGRpZmYgLS1j b2xvciAtcnVOcCBhL2tleC5jIGIva2V4LmMKICAJc3Noa2V5X2ZyZWUoa2V4LT5pbml0aWFsX2hv c3RrZXkpOwogIAlmcmVlKGtleC0+ZmFpbGVkX2Nob2ljZSk7CiBkaWZmIC0tY29sb3IgLXJ1TnAg YS9rZXhkaC5jIGIva2V4ZGguYwotLS0tIGEva2V4ZGguYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAw MDAwMDAwMCArMDIwMAotKysrIGIva2V4ZGguYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5MzkzOTg2 MiArMDIwMAorLS0tIGEva2V4ZGguYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIw MAorKysrIGIva2V4ZGguYwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3OTUzNzIyOCArMDEwMAogQEAg LTQ5LDEzICs0OSwyMyBAQCBrZXhfZGhfa2V5Z2VuKHN0cnVjdCBrZXggKmtleCkKICB7CiAgCXN3 aXRjaCAoa2V4LT5rZXhfdHlwZSkgewpAQCAtMTIyNyw4ICsxMjI3LDggQEAgZGlmZiAtLWNvbG9y IC1ydU5wIGEva2V4ZGguYyBiL2tleGRoLmMKICAJCWJyZWFrOwogIAljYXNlIEtFWF9ESF9HUlAx OF9TSEE1MTI6CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnZW4uYyBiL2tleGdlbi5jCi0tLS0g YS9rZXhnZW4uYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysrIGIva2V4 Z2VuLmMJMjAyNC0wOS0xNiAxMTo0NjozNC42OTM5Mzk4NjIgKzAyMDAKKy0tLSBhL2tleGdlbi5j CTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9rZXhnZW4uYwkyMDI2 LTAzLTEzIDEyOjE2OjM5Ljk3OTczNzMzNSArMDEwMAogQEAgLTQ0LDcgKzQ0LDcgQEAKICBzdGF0 aWMgaW50IGlucHV0X2tleF9nZW5faW5pdChpbnQsIHVfaW50MzJfdCwgc3RydWN0IHNzaCAqKTsK ICBzdGF0aWMgaW50IGlucHV0X2tleF9nZW5fcmVwbHkoaW50IHR5cGUsIHVfaW50MzJfdCBzZXEs IHN0cnVjdCBzc2ggKnNzaCk7CkBAIC0xMjQwLDcgKzEyNDAsNyBAQCBkaWZmIC0tY29sb3IgLXJ1 TnAgYS9rZXhnZW4uYyBiL2tleGdlbi5jCiAgICAgIGNvbnN0IHN0cnVjdCBzc2hidWYgKmNsaWVu dF92ZXJzaW9uLAogZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3NzYy5jIGIva2V4Z3NzYy5jCiAt LS0gYS9rZXhnc3NjLmMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBi L2tleGdzc2MuYwkyMDI0LTEwLTE0IDE1OjE4OjAyLjQ5MTc5ODEwNSArMDIwMAorKysrIGIva2V4 Z3NzYy5jCTIwMjYtMDMtMTMgMTI6MjU6MjMuMTE1ODEyMTkwICswMTAwCiBAQCAtMCwwICsxLDcw NiBAQAogKy8qCiArICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDkgU2ltb24gV2lsa2luc29uLiBB bGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTM2OSw3ICsxMzY5LDcgQEAgZGlmZiAtLWNvbG9yIC1y dU5wIGEva2V4Z3NzYy5jIGIva2V4Z3NzYy5jCiArCiArCS8qIFZlcmlmeSB0aGF0IHRoZSBoYXNo IG1hdGNoZXMgdGhlIE1JQyB3ZSBqdXN0IGdvdC4gKi8KICsJaWYgKEdTU19FUlJPUihzc2hfZ3Nz YXBpX2NoZWNrbWljKGdzcywgJmdzcy0+YnVmLCAmZ3NzLT5tc2dfdG9rKSkpCi0rCQlzc2hwa3Rf ZGlzY29ubmVjdChzc2gsICJIYXNoJ3MgTUlDIGRpZG4ndCB2ZXJpZnkiKTsKKysJCXNzaF9wYWNr ZXRfZGlzY29ubmVjdChzc2gsICJIYXNoJ3MgTUlDIGRpZG4ndCB2ZXJpZnkiKTsKICsKICsJZ3Nz X3JlbGVhc2VfYnVmZmVyKCZnc3MtPm1pbm9yLCAmZ3NzLT5tc2dfdG9rKTsKICsKQEAgLTE1OTIs MTAgKzE1OTIsMTAgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3NzYy5jIGIva2V4Z3NzYy5j CiArCQkJZmF0YWwoIkZhaWxlZCB0byByZWFkIHRva2VuOiAlcyIsIHNzaF9lcnIocikpOwogKwkJ LyogSWYgd2UncmUgYWxyZWFkeSBjb21wbGV0ZSAtIHByb3RvY29sIGVycm9yICovCiArCQlpZiAo Z3NzLT5tYWpvciA9PSBHU1NfU19DT01QTEVURSkKLSsJCQlzc2hwa3RfZGlzY29ubmVjdChzc2gs ICJQcm90b2NvbCBlcnJvcjogcmVjZWl2ZWQgdG9rZW4gd2hlbiBjb21wbGV0ZSIpOworKwkJCXNz aF9wYWNrZXRfZGlzY29ubmVjdChzc2gsICJQcm90b2NvbCBlcnJvcjogcmVjZWl2ZWQgdG9rZW4g d2hlbiBjb21wbGV0ZSIpOwogKwl9IGVsc2UgewogKwkJaWYgKGdzcy0+bWFqb3IgIT0gR1NTX1Nf Q09NUExFVEUpCi0rCQkJc3NocGt0X2Rpc2Nvbm5lY3Qoc3NoLCAiUHJvdG9jb2wgZXJyb3I6IGRp ZCBub3QgcmVjZWl2ZSBmaW5hbCB0b2tlbiIpOworKwkJCXNzaF9wYWNrZXRfZGlzY29ubmVjdChz c2gsICJQcm90b2NvbCBlcnJvcjogZGlkIG5vdCByZWNlaXZlIGZpbmFsIHRva2VuIik7CiArCX0K ICsJaWYgKChyID0gc3NocGt0X2dldF9lbmQoc3NoKSkgIT0gMCkKICsJCWZhdGFsKCJFeHBlY3Rp bmcgZW5kIG9mIHBhY2tldC4iKTsKQEAgLTE3MzEsNyArMTczMSw3IEBAIGRpZmYgLS1jb2xvciAt cnVOcCBhL2tleGdzc2MuYyBiL2tleGdzc2MuYwogKwogKwkvKiBWZXJpZnkgdGhhdCB0aGUgaGFz aCBtYXRjaGVzIHRoZSBNSUMgd2UganVzdCBnb3QuICovCiArCWlmIChHU1NfRVJST1Ioc3NoX2dz c2FwaV9jaGVja21pYyhnc3MsICZnc3MtPmJ1ZiwgJmdzcy0+bXNnX3RvaykpKQotKwkJc3NocGt0 X2Rpc2Nvbm5lY3Qoc3NoLCAiSGFzaCdzIE1JQyBkaWRuJ3QgdmVyaWZ5Iik7CisrCQlzc2hfcGFj a2V0X2Rpc2Nvbm5lY3Qoc3NoLCAiSGFzaCdzIE1JQyBkaWRuJ3QgdmVyaWZ5Iik7CiArCiArCWdz c19yZWxlYXNlX2J1ZmZlcigmZ3NzLT5taW5vciwgJmdzcy0+bXNnX3Rvayk7CiArCkBAIC0xOTMy LDEwICsxOTMyLDEwIEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleGdzc2MuYyBiL2tleGdzc2Mu YwogKwkJCWZhdGFsKCJGYWlsZWQgdG8gcmVhZCB0b2tlbjogJXMiLCBzc2hfZXJyKHIpKTsKICsJ CS8qIElmIHdlJ3JlIGFscmVhZHkgY29tcGxldGUgLSBwcm90b2NvbCBlcnJvciAqLwogKwkJaWYg KGdzcy0+bWFqb3IgPT0gR1NTX1NfQ09NUExFVEUpCi0rCQkJc3NocGt0X2Rpc2Nvbm5lY3Qoc3No LCAiUHJvdG9jb2wgZXJyb3I6IHJlY2VpdmVkIHRva2VuIHdoZW4gY29tcGxldGUiKTsKKysJCQlz c2hfcGFja2V0X2Rpc2Nvbm5lY3Qoc3NoLCAiUHJvdG9jb2wgZXJyb3I6IHJlY2VpdmVkIHRva2Vu IHdoZW4gY29tcGxldGUiKTsKICsJfSBlbHNlIHsKICsJCWlmIChnc3MtPm1ham9yICE9IEdTU19T X0NPTVBMRVRFKQotKwkJCXNzaHBrdF9kaXNjb25uZWN0KHNzaCwgIlByb3RvY29sIGVycm9yOiBk aWQgbm90IHJlY2VpdmUgZmluYWwgdG9rZW4iKTsKKysJCQlzc2hfcGFja2V0X2Rpc2Nvbm5lY3Qo c3NoLCAiUHJvdG9jb2wgZXJyb3I6IGRpZCBub3QgcmVjZWl2ZSBmaW5hbCB0b2tlbiIpOwogKwl9 CiArCWlmICgociA9IHNzaHBrdF9nZXRfZW5kKHNzaCkpICE9IDApCiArCQlmYXRhbCgiRXhwZWN0 aW5nIGVuZCBvZiBwYWNrZXQuIik7CkBAIC0xOTUwLDggKzE5NTAsOCBAQCBkaWZmIC0tY29sb3Ig LXJ1TnAgYS9rZXhnc3NjLmMgYi9rZXhnc3NjLmMKICsjZW5kaWYgLyogZGVmaW5lZChHU1NBUEkp ICYmIGRlZmluZWQoV0lUSF9PUEVOU1NMKSAqLwogZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3Nz cy5jIGIva2V4Z3Nzcy5jCiAtLS0gYS9rZXhnc3NzLmMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBiL2tleGdzc3MuYwkyMDI0LTEwLTE0IDE1OjE4OjAyLjQ5MTc5ODEw NSArMDIwMAotQEAgLTAsMCArMSw2MDEgQEAKKysrKyBiL2tleGdzc3MuYwkyMDI2LTAzLTEzIDEy OjMyOjE3LjU1NjE3MjU5MSArMDEwMAorQEAgLTAsMCArMSw2MDMgQEAKICsvKgogKyAqIENvcHly aWdodCAoYykgMjAwMS0yMDA5IFNpbW9uIFdpbGtpbnNvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K ICsgKgpAQCAtMjA4Myw3ICsyMDgzLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3Nzcy5j IGIva2V4Z3Nzcy5jCiArewogKwlzdHJ1Y3Qga2V4ICprZXggPSBzc2gtPmtleDsKICsJR3NzY3R4 dCAqZ3NzID0ga2V4LT5nc3M7Ci0rCWdzc19idWZmZXJfZGVzYyBtc2dfdG9rOworKwlnc3NfYnVm ZmVyX2Rlc2MgbXNnX3RvayA9IEdTU19DX0VNUFRZX0JVRkZFUjsKICsJdV9jaGFyIGhhc2hbU1NI X0RJR0VTVF9NQVhfTEVOR1RIXTsKICsJc2l6ZV90IGhhc2hsZW47CiArCXN0cnVjdCBzc2hidWYg KnNoYXJlZF9zZWNyZXQgPSBOVUxMOwpAQCAtMjE2Nyw3ICsyMTY3LDggQEAgZGlmZiAtLWNvbG9y IC1ydU5wIGEva2V4Z3Nzcy5jIGIva2V4Z3Nzcy5jCiArCUdzc2N0eHQgKmdzcyA9IGtleC0+Z3Nz OwogKwlzdHJ1Y3Qgc3NoYnVmICplbXB0eTsKICsJc3RydWN0IHNzaGJ1ZiAqY2xpZW50X3B1Ymtl eSA9IE5VTEw7Ci0rCWdzc19idWZmZXJfZGVzYyByZWN2X3Rvaywgc2VuZF90b2sgPSBHU1NfQ19F TVBUWV9CVUZGRVI7CisrCWdzc19idWZmZXJfZGVzYyByZWN2X3RvayA9IEdTU19DX0VNUFRZX0JV RkZFUjsKKysJZ3NzX2J1ZmZlcl9kZXNjIHNlbmRfdG9rID0gR1NTX0NfRU1QVFlfQlVGRkVSOwog KwlPTV91aW50MzIgcmV0X2ZsYWdzID0gMDsKICsJaW50IHI7CiArCkBAIC0yMjQzLDcgKzIyNDQs OCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXhnc3NzLmMgYi9rZXhnc3NzLmMKICsJCSAgICAg IHN0cnVjdCBzc2ggKnNzaCkKICt7CiArCUdzc2N0eHQgKmdzcyA9IHNzaC0+a2V4LT5nc3M7Ci0r CWdzc19idWZmZXJfZGVzYyByZWN2X3Rvaywgc2VuZF90b2sgPSBHU1NfQ19FTVBUWV9CVUZGRVI7 CisrCWdzc19idWZmZXJfZGVzYyByZWN2X3RvayA9IEdTU19DX0VNUFRZX0JVRkZFUjsKKysJZ3Nz X2J1ZmZlcl9kZXNjIHNlbmRfdG9rID0gR1NTX0NfRU1QVFlfQlVGRkVSOwogKwlPTV91aW50MzIg cmV0X2ZsYWdzID0gMDsKICsJaW50IHI7CiArCkBAIC0yMzM0LDcgKzIzMzYsNyBAQCBkaWZmIC0t Y29sb3IgLXJ1TnAgYS9rZXhnc3NzLmMgYi9rZXhnc3NzLmMKICt7CiArCXN0cnVjdCBrZXggKmtl eCA9IHNzaC0+a2V4OwogKwlHc3NjdHh0ICpnc3MgPSBrZXgtPmdzczsKLSsJZ3NzX2J1ZmZlcl9k ZXNjIG1zZ190b2s7CisrCWdzc19idWZmZXJfZGVzYyBtc2dfdG9rID0gR1NTX0NfRU1QVFlfQlVG RkVSOwogKwl1X2NoYXIgaGFzaFtTU0hfRElHRVNUX01BWF9MRU5HVEhdOwogKwlzaXplX3QgaGFz aGxlbjsKICsJY29uc3QgQklHTlVNICpwdWJfa2V5LCAqZGhfcCwgKmRoX2c7CkBAIC0yNDc1LDEw ICsyNDc3LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3Nzcy5jIGIva2V4Z3Nzcy5jCiAr CQlmYXRhbCgiR1NTX0dFWCwgYmFkIHBhcmFtZXRlcnM6ICVkICE8ICVkICE8ICVkIiwgbWluLCBu Yml0cywgbWF4KTsKICsKICsJa2V4LT5kaCA9IG1tX2Nob29zZV9kaChtaW4sIG5iaXRzLCBtYXgp OwotKwlpZiAoa2V4LT5kaCA9PSBOVUxMKSB7Ci0rCQlzc2hwa3RfZGlzY29ubmVjdChzc2gsICJQ cm90b2NvbCBlcnJvcjogbm8gbWF0Y2hpbmcgZ3JvdXAgZm91bmQiKTsKLSsJCWZhdGFsKCJQcm90 b2NvbCBlcnJvcjogbm8gbWF0Y2hpbmcgZ3JvdXAgZm91bmQiKTsKLSsJfQorKwlpZiAoa2V4LT5k aCA9PSBOVUxMKQorKwkJc3NoX3BhY2tldF9kaXNjb25uZWN0KHNzaCwgIlByb3RvY29sIGVycm9y OiBubyBtYXRjaGluZyBncm91cCBmb3VuZCIpOwogKwogKwlESF9nZXQwX3BxZyhrZXgtPmRoLCAm ZGhfcCwgTlVMTCwgJmRoX2cpOwogKwlpZiAoKHIgPSBzc2hwa3Rfc3RhcnQoc3NoLCBTU0gyX01T R19LRVhHU1NfR1JPVVApKSAhPSAwIHx8CkBAIC0yNTEwLDcgKzI1MTAsOCBAQCBkaWZmIC0tY29s b3IgLXJ1TnAgYS9rZXhnc3NzLmMgYi9rZXhnc3NzLmMKICsJCSAgICAgc3RydWN0IHNzaCAqc3No KQogK3sKICsJR3NzY3R4dCAqZ3NzID0gc3NoLT5rZXgtPmdzczsKLSsJZ3NzX2J1ZmZlcl9kZXNj IHJlY3ZfdG9rLCBzZW5kX3RvayA9IEdTU19DX0VNUFRZX0JVRkZFUjsKKysJZ3NzX2J1ZmZlcl9k ZXNjIHJlY3ZfdG9rID0gR1NTX0NfRU1QVFlfQlVGRkVSOworKwlnc3NfYnVmZmVyX2Rlc2Mgc2Vu ZF90b2sgPSBHU1NfQ19FTVBUWV9CVUZGRVI7CiArCU9NX3VpbnQzMiByZXRfZmxhZ3MgPSAwOwog KwlpbnQgcjsKICsKQEAgLTI1MzcsNyArMjUzOCw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tl eGdzc3MuYyBiL2tleGdzc3MuYwogKwkJCSBzdHJ1Y3Qgc3NoICpzc2gpCiArewogKwlHc3NjdHh0 ICpnc3MgPSBzc2gtPmtleC0+Z3NzOwotKwlnc3NfYnVmZmVyX2Rlc2MgcmVjdl90b2ssIHNlbmRf dG9rID0gR1NTX0NfRU1QVFlfQlVGRkVSOworKwlnc3NfYnVmZmVyX2Rlc2MgcmVjdl90b2sgPSBH U1NfQ19FTVBUWV9CVUZGRVI7CisrCWdzc19idWZmZXJfZGVzYyBzZW5kX3RvayA9IEdTU19DX0VN UFRZX0JVRkZFUjsKICsJT01fdWludDMyIHJldF9mbGFncyA9IDA7CiArCWludCByOwogKwpAQCAt MjU1NCw4ICsyNTU2LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4Z3Nzcy5jIGIva2V4Z3Nz cy5jCiArCiArI2VuZGlmIC8qIGRlZmluZWQoR1NTQVBJKSAmJiBkZWZpbmVkKFdJVEhfT1BFTlNT TCkgKi8KIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC5oIGIva2V4LmgKLS0tLSBhL2tleC5oCTIw MjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9rZXguaAkyMDI0LTA5LTE2 IDExOjQ2OjM0LjcxMDk0MDIyNCArMDIwMAorLS0tIGEva2V4LmgJMjAyNC0wOS0yMCAwMDoyMDo0 OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL2tleC5oCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEzNjg4 OTk3ICswMTAwCiBAQCAtMjksNiArMjksMTAgQEAKICAjaW5jbHVkZSAibWFjLmgiCiAgI2luY2x1 ZGUgImNyeXB0b19hcGkuaCIKQEAgLTI1NjcsNyArMjU2OSw3IEBAIGRpZmYgLS1jb2xvciAtcnVO cCBhL2tleC5oIGIva2V4LmgKICAjaWZkZWYgV0lUSF9PUEVOU1NMCiAgIyBpbmNsdWRlIDxvcGVu c3NsL2JuLmg+CiAgIyBpbmNsdWRlIDxvcGVuc3NsL2RoLmg+Ci1AQCAtMTAyLDYgKzEwNiwxNSBA QCBlbnVtIGtleF9leGNoYW5nZSB7CitAQCAtMTAzLDYgKzEwNywxNSBAQCBlbnVtIGtleF9leGNo YW5nZSB7CiAgCUtFWF9DMjU1MTlfU0hBMjU2LAogIAlLRVhfS0VNX1NOVFJVUDc2MVgyNTUxOV9T SEE1MTIsCiAgCUtFWF9LRU1fTUxLRU03NjhYMjU1MTlfU0hBMjU2LApAQCAtMjU4Myw3ICsyNTg1 LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4LmggYi9rZXguaAogIAlLRVhfTUFYCiAgfTsK ICAKLUBAIC0xNjQsNiArMTc3LDEzIEBAIHN0cnVjdCBrZXggeworQEAgLTE2NSw2ICsxNzgsMTMg QEAgc3RydWN0IGtleCB7CiAgCXVfaW50CWZsYWdzOwogIAlpbnQJaGFzaF9hbGc7CiAgCWludAll Y19uaWQ7CkBAIC0yNTk3LDcgKzI1OTksNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXguaCBi L2tleC5oCiAgCWNoYXIJKmZhaWxlZF9jaG9pY2U7CiAgCWludAkoKnZlcmlmeV9ob3N0X2tleSko c3RydWN0IHNzaGtleSAqLCBzdHJ1Y3Qgc3NoICopOwogIAlzdHJ1Y3Qgc3Noa2V5ICooKmxvYWRf aG9zdF9wdWJsaWNfa2V5KShpbnQsIGludCwgc3RydWN0IHNzaCAqKTsKLUBAIC0xODksOCArMjA5 LDEwIEBAIGludAkga2V4X2hhc2hfZnJvbV9uYW1lKGNvbnN0IGNoYXIgKik7CitAQCAtMTkxLDgg KzIxMSwxMCBAQCBpbnQJIGtleF9oYXNoX2Zyb21fbmFtZShjb25zdCBjaGFyICopOwogIGludAkg a2V4X25pZF9mcm9tX25hbWUoY29uc3QgY2hhciAqKTsKICBpbnQJIGtleF9uYW1lc192YWxpZChj b25zdCBjaGFyICopOwogIGNoYXIJKmtleF9hbGdfbGlzdChjaGFyKTsKQEAgLTI2MDgsNyArMjYx MCw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC5oIGIva2V4LmgKICBpbnQJIGtleF9hc3Nl bWJsZV9uYW1lcyhjaGFyICoqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CiAgdm9pZAkg a2V4X3Byb3Bvc2FsX3BvcHVsYXRlX2VudHJpZXMoc3RydWN0IHNzaCAqLCBjaGFyICpwcm9wW1BS T1BPU0FMX01BWF0sCiAgICAgIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFy ICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKLUBAIC0yMjQsNiArMjQ2LDEyIEBAIGlu dAkga2V4Z2V4X2NsaWVudChzdHJ1Y3Qgc3NoICopOworQEAgLTIyNiw2ICsyNDgsMTIgQEAgaW50 CSBrZXhnZXhfY2xpZW50KHN0cnVjdCBzc2ggKik7CiAgaW50CSBrZXhnZXhfc2VydmVyKHN0cnVj dCBzc2ggKik7CiAgaW50CSBrZXhfZ2VuX2NsaWVudChzdHJ1Y3Qgc3NoICopOwogIGludAkga2V4 X2dlbl9zZXJ2ZXIoc3RydWN0IHNzaCAqKTsKQEAgLTI2MjEsNyArMjYyMyw3IEBAIGRpZmYgLS1j b2xvciAtcnVOcCBhL2tleC5oIGIva2V4LmgKICAKICBpbnQJIGtleF9kaF9rZXlwYWlyKHN0cnVj dCBrZXggKik7CiAgaW50CSBrZXhfZGhfZW5jKHN0cnVjdCBrZXggKiwgY29uc3Qgc3RydWN0IHNz aGJ1ZiAqLCBzdHJ1Y3Qgc3NoYnVmICoqLAotQEAgLTI1Niw2ICsyODQsMTIgQEAgaW50CSBrZXhn ZXhfaGFzaChpbnQsIGNvbnN0IHN0cnVjdCBzc2hidQorQEAgLTI2NCw2ICsyOTIsMTIgQEAgaW50 CSBrZXhnZXhfaGFzaChpbnQsIGNvbnN0IHN0cnVjdCBzc2hidQogICAgICBjb25zdCBCSUdOVU0g KiwgY29uc3QgdV9jaGFyICosIHNpemVfdCwKICAgICAgdV9jaGFyICosIHNpemVfdCAqKTsKICAK QEAgLTI2MzUsOCArMjYzNyw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC5oIGIva2V4LmgK ICAJX19hdHRyaWJ1dGVfXygoX19ib3VuZGVkX18oX19taW5ieXRlc19fLCAxLCBDVVJWRTI1NTE5 X1NJWkUpKSkKICAJX19hdHRyaWJ1dGVfXygoX19ib3VuZGVkX18oX19taW5ieXRlc19fLCAyLCBD VVJWRTI1NTE5X1NJWkUpKSk7CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXgtbmFtZXMuYyBiL2tl eC1uYW1lcy5jCi0tLS0gYS9rZXgtbmFtZXMuYwkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAw MCArMDIwMAotKysrIGIva2V4LW5hbWVzLmMJMjAyNC0wOS0xNiAxMTo0NjozNC42OTQ5Mzk4ODMg KzAyMDAKKy0tLSBhL2tleC1uYW1lcy5jCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICsw MjAwCisrKysgYi9rZXgtbmFtZXMuYwkyMDI2LTAzLTEzIDEyOjE2OjM5Ljk3OTYwMzA0OCArMDEw MAogQEAgLTQ1LDYgKzQ1LDEwIEBACiAgI2luY2x1ZGUgInNzaGVyci5oIgogICNpbmNsdWRlICJ4 bWFsbG9jLmgiCkBAIC0yNjQ4LDcgKzI2NTAsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXgt bmFtZXMuYyBiL2tleC1uYW1lcy5jCiAgc3RydWN0IGtleGFsZyB7CiAgCWNoYXIgKm5hbWU7CiAg CXVfaW50IHR5cGU7Ci1AQCAtODMsMTUgKzg3LDI4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2V4 YWxnIGtleGFsZ3NbXSA9IHsKK0BAIC04OSwxNSArOTMsMjggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBrZXhhbGcga2V4YWxnc1tdID0gewogICNlbmRpZiAvKiBIQVZFX0VWUF9TSEEyNTYgfHwgIVdJ VEhfT1BFTlNTTCAqLwogIAl7IE5VTEwsIDAsIC0xLCAtMX0sCiAgfTsKQEAgLTI2ODAsNyArMjY4 Miw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL2tleC1uYW1lcy5jIGIva2V4LW5hbWVzLmMKICAJ CWlmIChyZXQgIT0gTlVMTCkKICAJCQlyZXRbcmxlbisrXSA9IHNlcDsKICAJCW5sZW4gPSBzdHJs ZW4oay0+bmFtZSk7Ci1AQCAtMTA2LDYgKzEyMywxOCBAQCBrZXhfYWxnX2xpc3QoY2hhciBzZXAp CitAQCAtMTEyLDYgKzEyOSwxOCBAQCBrZXhfYWxnX2xpc3QoY2hhciBzZXApCiAgCXJldHVybiBy ZXQ7CiAgfQogIApAQCAtMjY5OSw3ICsyNzAxLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEva2V4 LW5hbWVzLmMgYi9rZXgtbmFtZXMuYwogIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2V4YWxnICoKICBr ZXhfYWxnX2J5X25hbWUoY29uc3QgY2hhciAqbmFtZSkKICB7Ci1AQCAtMTE1LDYgKzE0NCwxMCBA QCBrZXhfYWxnX2J5X25hbWUoY29uc3QgY2hhciAqbmFtZSkKK0BAIC0xMjEsNiArMTUwLDEwIEBA IGtleF9hbGdfYnlfbmFtZShjb25zdCBjaGFyICpuYW1lKQogIAkJaWYgKHN0cmNtcChrLT5uYW1l LCBuYW1lKSA9PSAwKQogIAkJCXJldHVybiBrOwogIAl9CkBAIC0yNzEwLDcgKzI3MTIsNyBAQCBk aWZmIC0tY29sb3IgLXJ1TnAgYS9rZXgtbmFtZXMuYyBiL2tleC1uYW1lcy5jCiAgCXJldHVybiBO VUxMOwogIH0KICAKLUBAIC0zMjgsMyArMzYxLDI2IEBAIGtleF9hc3NlbWJsZV9uYW1lcyhjaGFy ICoqbGlzdHAsIGNvbnN0IGMKK0BAIC0zMzQsMyArMzY3LDI2IEBAIGtleF9hc3NlbWJsZV9uYW1l cyhjaGFyICoqbGlzdHAsIGNvbnN0IGMKICAJZnJlZShyZXQpOwogIAlyZXR1cm4gcjsKICB9CkBA IC0yNzM4LDggKzI3NDAsOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9rZXgtbmFtZXMuYyBiL2tl eC1uYW1lcy5jCiArCXJldHVybiAxOwogK30KIGRpZmYgLS1jb2xvciAtcnVOcCBhL01ha2VmaWxl LmluIGIvTWFrZWZpbGUuaW4KLS0tLSBhL01ha2VmaWxlLmluCTIwMjQtMDktMTYgMTE6NDU6NTYu ODY4MTMzNDU0ICswMjAwCi0rKysgYi9NYWtlZmlsZS5pbgkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5 NTkzOTkwNCArMDIwMAorLS0tIGEvTWFrZWZpbGUuaW4JMjAyNi0wMy0xMyAxMjozMjo0OC40NzUw ODEwNzQgKzAxMDAKKysrKyBiL01ha2VmaWxlLmluCTIwMjYtMDMtMTMgMTI6MTY6MzkuOTc5NDUz MzA3ICswMTAwCiBAQCAtMTE0LDYgKzExNCw3IEBAIExJQlNTSF9PQkpTPSR7TElCT1BFTlNTSF9P QkpTfSBcCiAgCWtleC5vIGtleC1uYW1lcy5vIGtleGRoLm8ga2V4Z2V4Lm8ga2V4ZWNkaC5vIGtl eGMyNTUxOS5vIFwKICAJa2V4Z2V4Yy5vIGtleGdleHMubyBcCkBAIC0yNzY3LDkgKzI3NjksOSBA QCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9NYWtlZmlsZS5pbiBiL01ha2VmaWxlLmluCiAgcmVncmVz cy9tb2RwaXBlJChFWEVFWFQpOiAkKHNyY2RpcikvcmVncmVzcy9tb2RwaXBlLmMgJChSRUdSRVNT TElCUykKICAJJChDQykgJChDRkxBR1MpICQoQ1BQRkxBR1MpIC1vICRAICQoc3JjZGlyKS9yZWdy ZXNzL21vZHBpcGUuYyBcCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yLmMgYi9tb25pdG9y LmMKLS0tLSBhL21vbml0b3IuYwkyMDI0LTA5LTE2IDExOjQ1OjU2Ljg2MTEzMzMwNSArMDIwMAot KysrIGIvbW9uaXRvci5jCTIwMjQtMDktMTYgMTE6NDY6MzQuNjk2OTM5OTI2ICswMjAwCi1AQCAt MTQzLDYgKzE0Myw4IEBAIGludCBtbV9hbnN3ZXJfZ3NzX3NldHVwX2N0eChzdHJ1Y3Qgc3NoICoK Ky0tLSBhL21vbml0b3IuYwkyMDI2LTAzLTEzIDEyOjMyOjQ4LjQ2NzMxMTA1OCArMDEwMAorKysr IGIvbW9uaXRvci5jCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEyNDc3Nzk5ICswMTAwCitAQCAtMTQ0 LDYgKzE0NCw4IEBAIGludCBtbV9hbnN3ZXJfZ3NzX3NldHVwX2N0eChzdHJ1Y3Qgc3NoICoKICBp bnQgbW1fYW5zd2VyX2dzc19hY2NlcHRfY3R4KHN0cnVjdCBzc2ggKiwgaW50LCBzdHJ1Y3Qgc3No YnVmICopOwogIGludCBtbV9hbnN3ZXJfZ3NzX3VzZXJvayhzdHJ1Y3Qgc3NoICosIGludCwgc3Ry dWN0IHNzaGJ1ZiAqKTsKICBpbnQgbW1fYW5zd2VyX2dzc19jaGVja21pYyhzdHJ1Y3Qgc3NoICos IGludCwgc3RydWN0IHNzaGJ1ZiAqKTsKQEAgLTI3NzgsNyArMjc4MCw3IEBAIGRpZmYgLS1jb2xv ciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3IuYwogICNlbmRpZgogIAogICNpZmRlZiBTU0hf QVVESVRfRVZFTlRTCi1AQCAtMjE5LDExICsyMjEsMTggQEAgc3RydWN0IG1vbl90YWJsZSBtb25f ZGlzcGF0Y2hfcHJvdG8yMFtdCitAQCAtMjIwLDExICsyMjIsMTggQEAgc3RydWN0IG1vbl90YWJs ZSBtb25fZGlzcGF0Y2hfcHJvdG8yMFtdCiAgICAgIHtNT05JVE9SX1JFUV9HU1NTVEVQLCAwLCBt bV9hbnN3ZXJfZ3NzX2FjY2VwdF9jdHh9LAogICAgICB7TU9OSVRPUl9SRVFfR1NTVVNFUk9LLCBN T05fT05DRXxNT05fQVVUSERFQ0lERSwgbW1fYW5zd2VyX2dzc191c2Vyb2t9LAogICAgICB7TU9O SVRPUl9SRVFfR1NTQ0hFQ0tNSUMsIE1PTl9PTkNFLCBtbV9hbnN3ZXJfZ3NzX2NoZWNrbWljfSwK QEAgLTI3OTcsNyArMjc5OSw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21v bml0b3IuYwogICNpZmRlZiBXSVRIX09QRU5TU0wKICAgICAge01PTklUT1JfUkVRX01PRFVMSSwg MCwgbW1fYW5zd2VyX21vZHVsaX0sCiAgI2VuZGlmCi1AQCAtMjkyLDYgKzMwMSwxMCBAQCBtb25p dG9yX2NoaWxkX3ByZWF1dGgoc3RydWN0IHNzaCAqc3NoLCBzCitAQCAtMjkzLDYgKzMwMiwxMCBA QCBtb25pdG9yX2NoaWxkX3ByZWF1dGgoc3RydWN0IHNzaCAqc3NoLCBzCiAgCS8qIFBlcm1pdCBy ZXF1ZXN0cyBmb3IgbW9kdWxpIGFuZCBzaWduYXR1cmVzICovCiAgCW1vbml0b3JfcGVybWl0KG1v bl9kaXNwYXRjaCwgTU9OSVRPUl9SRVFfTU9EVUxJLCAxKTsKICAJbW9uaXRvcl9wZXJtaXQobW9u X2Rpc3BhdGNoLCBNT05JVE9SX1JFUV9TSUdOLCAxKTsKQEAgLTI4MDgsNyArMjgxMCw3IEBAIGRp ZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3IuYwogIAogIAkvKiBUaGUgZmly c3QgZmV3IHJlcXVlc3RzIGRvIG5vdCByZXF1aXJlIGFzeW5jaHJvbm91cyBhY2Nlc3MgKi8KICAJ d2hpbGUgKCFhdXRoZW50aWNhdGVkKSB7Ci1AQCAtMzQ0LDggKzM1NywxNSBAQCBtb25pdG9yX2No aWxkX3ByZWF1dGgoc3RydWN0IHNzaCAqc3NoLCBzCitAQCAtMzQ1LDggKzM1OCwxNSBAQCBtb25p dG9yX2NoaWxkX3ByZWF1dGgoc3RydWN0IHNzaCAqc3NoLCBzCiAgCQlpZiAoZW50LT5mbGFncyAm IChNT05fQVVUSERFQ0lERXxNT05fQUxPRykpIHsKICAJCQlhdXRoX2xvZyhzc2gsIGF1dGhlbnRp Y2F0ZWQsIHBhcnRpYWwsCiAgCQkJICAgIGF1dGhfbWV0aG9kLCBhdXRoX3N1Ym1ldGhvZCk7CkBA IC0yODI1LDcgKzI4MjcsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yLmMgYi9tb25p dG9yLmMKICAJCQlpZiAoYXV0aGVudGljYXRlZCB8fCBwYXJ0aWFsKSB7CiAgCQkJCWF1dGgyX3Vw ZGF0ZV9zZXNzaW9uX2luZm8oYXV0aGN0eHQsCiAgCQkJCSAgICBhdXRoX21ldGhvZCwgYXV0aF9z dWJtZXRob2QpOwotQEAgLTQxMyw2ICs0MzMsMTAgQEAgbW9uaXRvcl9jaGlsZF9wb3N0YXV0aChz dHJ1Y3Qgc3NoICpzc2gsCitAQCAtNDE0LDYgKzQzNCwxMCBAQCBtb25pdG9yX2NoaWxkX3Bvc3Rh dXRoKHN0cnVjdCBzc2ggKnNzaCwKICAJbW9uaXRvcl9wZXJtaXQobW9uX2Rpc3BhdGNoLCBNT05J VE9SX1JFUV9NT0RVTEksIDEpOwogIAltb25pdG9yX3Blcm1pdChtb25fZGlzcGF0Y2gsIE1PTklU T1JfUkVRX1NJR04sIDEpOwogIAltb25pdG9yX3Blcm1pdChtb25fZGlzcGF0Y2gsIE1PTklUT1Jf UkVRX1RFUk0sIDEpOwpAQCAtMjgzNiw3ICsyODM4LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEv bW9uaXRvci5jIGIvbW9uaXRvci5jCiAgCiAgCWlmIChhdXRoX29wdHMtPnBlcm1pdF9wdHlfZmxh ZykgewogIAkJbW9uaXRvcl9wZXJtaXQobW9uX2Rpc3BhdGNoLCBNT05JVE9SX1JFUV9QVFksIDEp OwotQEAgLTE3OTMsNiArMTgxNywxNyBAQCBtb25pdG9yX2FwcGx5X2tleXN0YXRlKHN0cnVjdCBz c2ggKnNzaCwKK0BAIC0xODAzLDYgKzE4MjcsMTcgQEAgbW9uaXRvcl9hcHBseV9rZXlzdGF0ZShz dHJ1Y3Qgc3NoICpzc2gsCiAgIyBpZmRlZiBPUEVOU1NMX0hBU19FQ0MKICAJa2V4LT5rZXhbS0VY X0VDREhfU0hBMl0gPSBrZXhfZ2VuX3NlcnZlcjsKICAjIGVuZGlmCkBAIC0yODU0LDcgKzI4NTYs NyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yLmMgYi9tb25pdG9yLmMKICAjZW5kaWYg LyogV0lUSF9PUEVOU1NMICovCiAgCWtleC0+a2V4W0tFWF9DMjU1MTlfU0hBMjU2XSA9IGtleF9n ZW5fc2VydmVyOwogIAlrZXgtPmtleFtLRVhfS0VNX1NOVFJVUDc2MVgyNTUxOV9TSEE1MTJdID0g a2V4X2dlbl9zZXJ2ZXI7Ci1AQCAtMTg4NSw4ICsxOTIwLDggQEAgbW1fYW5zd2VyX2dzc19zZXR1 cF9jdHgoc3RydWN0IHNzaCAqc3NoLAorQEAgLTE4OTYsOCArMTkzMSw4IEBAIG1tX2Fuc3dlcl9n c3Nfc2V0dXBfY3R4KHN0cnVjdCBzc2ggKnNzaCwKICAJdV9jaGFyICpwOwogIAlpbnQgcjsKICAK QEAgLTI4NjUsNyArMjg2Nyw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21v bml0b3IuYwogIAogIAlpZiAoKHIgPSBzc2hidWZfZ2V0X3N0cmluZyhtLCAmcCwgJmxlbikpICE9 IDApCiAgCQlmYXRhbF9mcihyLCAicGFyc2UiKTsKLUBAIC0xOTE4LDggKzE5NTMsOCBAQCBtbV9h bnN3ZXJfZ3NzX2FjY2VwdF9jdHgoc3RydWN0IHNzaCAqc3NoCitAQCAtMTkyOSw4ICsxOTY0LDgg QEAgbW1fYW5zd2VyX2dzc19hY2NlcHRfY3R4KHN0cnVjdCBzc2ggKnNzaAogIAlPTV91aW50MzIg ZmxhZ3MgPSAwOyAvKiBHU0kgbmVlZHMgdGhpcyAqLwogIAlpbnQgcjsKICAKQEAgLTI4NzYsNyAr Mjg3OCw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3IuYwogIAog IAlpZiAoKHIgPSBzc2hfZ3NzYXBpX2dldF9idWZmZXJfZGVzYyhtLCAmaW4pKSAhPSAwKQogIAkJ ZmF0YWxfZnIociwgInNzaF9nc3NhcGlfZ2V0X2J1ZmZlcl9kZXNjIik7Ci1AQCAtMTkzOSw2ICsx OTc0LDcgQEAgbW1fYW5zd2VyX2dzc19hY2NlcHRfY3R4KHN0cnVjdCBzc2ggKnNzaAorQEAgLTE5 NTAsNiArMTk4NSw3IEBAIG1tX2Fuc3dlcl9nc3NfYWNjZXB0X2N0eChzdHJ1Y3Qgc3NoICpzc2gK ICAJCW1vbml0b3JfcGVybWl0KG1vbl9kaXNwYXRjaCwgTU9OSVRPUl9SRVFfR1NTU1RFUCwgMCk7 CiAgCQltb25pdG9yX3Blcm1pdChtb25fZGlzcGF0Y2gsIE1PTklUT1JfUkVRX0dTU1VTRVJPSywg MSk7CiAgCQltb25pdG9yX3Blcm1pdChtb25fZGlzcGF0Y2gsIE1PTklUT1JfUkVRX0dTU0NIRUNL TUlDLCAxKTsKQEAgLTI4ODQsNyArMjg4Niw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0 b3IuYyBiL21vbml0b3IuYwogIAl9CiAgCXJldHVybiAoMCk7CiAgfQotQEAgLTE5NTAsOCArMTk4 Niw4IEBAIG1tX2Fuc3dlcl9nc3NfY2hlY2ttaWMoc3RydWN0IHNzaCAqc3NoLAorQEAgLTE5NjEs OCArMTk5Nyw4IEBAIG1tX2Fuc3dlcl9nc3NfY2hlY2ttaWMoc3RydWN0IHNzaCAqc3NoLAogIAlP TV91aW50MzIgcmV0OwogIAlpbnQgcjsKICAKQEAgLTI4OTUsNyArMjg5Nyw3IEBAIGRpZmYgLS1j b2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3IuYwogIAogIAlpZiAoKHIgPSBzc2hfZ3Nz YXBpX2dldF9idWZmZXJfZGVzYyhtLCAmZ3NzYnVmKSkgIT0gMCB8fAogIAkgICAgKHIgPSBzc2hf Z3NzYXBpX2dldF9idWZmZXJfZGVzYyhtLCAmbWljKSkgIT0gMCkKLUBAIC0xOTc3LDEzICsyMDEz LDE3IEBAIG1tX2Fuc3dlcl9nc3NfY2hlY2ttaWMoc3RydWN0IHNzaCAqc3NoLAorQEAgLTE5ODgs MTMgKzIwMjQsMTcgQEAgbW1fYW5zd2VyX2dzc19jaGVja21pYyhzdHJ1Y3Qgc3NoICpzc2gsCiAg aW50CiAgbW1fYW5zd2VyX2dzc191c2Vyb2soc3RydWN0IHNzaCAqc3NoLCBpbnQgc29jaywgc3Ry dWN0IHNzaGJ1ZiAqbSkKICB7CkBAIC0yOTE3LDcgKzI5MTksNyBAQCBkaWZmIC0tY29sb3IgLXJ1 TnAgYS9tb25pdG9yLmMgYi9tb25pdG9yLmMKICAKICAJc3NoYnVmX3Jlc2V0KG0pOwogIAlpZiAo KHIgPSBzc2hidWZfcHV0X3UzMihtLCBhdXRoZW50aWNhdGVkKSkgIT0gMCkKLUBAIC0xOTkyLDcg KzIwMzIsMTEgQEAgbW1fYW5zd2VyX2dzc191c2Vyb2soc3RydWN0IHNzaCAqc3NoLCBpbgorQEAg LTIwMDMsNyArMjA0MywxMSBAQCBtbV9hbnN3ZXJfZ3NzX3VzZXJvayhzdHJ1Y3Qgc3NoICpzc2gs IGluCiAgCWRlYnVnM19mKCJzZW5kaW5nIHJlc3VsdCAlZCIsIGF1dGhlbnRpY2F0ZWQpOwogIAlt bV9yZXF1ZXN0X3NlbmQoc29jaywgTU9OSVRPUl9BTlNfR1NTVVNFUk9LLCBtKTsKICAKQEAgLTI5 MzAsNyArMjkzMiw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3IuYyBiL21vbml0b3Iu YwogIAogIAlpZiAoKGRpc3BsYXluYW1lID0gc3NoX2dzc2FwaV9kaXNwbGF5bmFtZSgpKSAhPSBO VUxMKQogIAkJYXV0aDJfcmVjb3JkX2luZm8oYXV0aGN0eHQsICIlcyIsIGRpc3BsYXluYW1lKTsK LUBAIC0yMDAwLDUgKzIwNDQsODQgQEAgbW1fYW5zd2VyX2dzc191c2Vyb2soc3RydWN0IHNzaCAq c3NoLCBpbgorQEAgLTIwMTEsNSArMjA1NSw4NCBAQCBtbV9hbnN3ZXJfZ3NzX3VzZXJvayhzdHJ1 Y3Qgc3NoICpzc2gsIGluCiAgCS8qIE1vbml0b3IgbG9vcCB3aWxsIHRlcm1pbmF0ZSBpZiBhdXRo ZW50aWNhdGVkICovCiAgCXJldHVybiAoYXV0aGVudGljYXRlZCk7CiAgfQpAQCAtMzAxNiw4ICsz MDE4LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5jIGIvbW9uaXRvci5jCiAgI2Vu ZGlmIC8qIEdTU0FQSSAqLwogIAogZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5oIGIvbW9u aXRvci5oCi0tLS0gYS9tb25pdG9yLmgJMjAyNC0wOS0xNiAxMTo0NTo1Ni44NjExMzMzMDUgKzAy MDAKLSsrKyBiL21vbml0b3IuaAkyMDI0LTA5LTE2IDExOjQ2OjM0LjY5NjkzOTkyNiArMDIwMAor LS0tIGEvbW9uaXRvci5oCTIwMjYtMDMtMTMgMTI6MzI6NDguNDY3ODUzODQ1ICswMTAwCisrKysg Yi9tb25pdG9yLmgJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTE5MjkwMjkgKzAxMDAKIEBAIC02Nyw2 ICs2Nyw4IEBAIGVudW0gbW9uaXRvcl9yZXF0eXBlIHsKICAJTU9OSVRPUl9SRVFfUEFNX0ZSRUVf Q1RYID0gMTEwLCBNT05JVE9SX0FOU19QQU1fRlJFRV9DVFggPSAxMTEsCiAgCU1PTklUT1JfUkVR X0FVRElUX0VWRU5UID0gMTEyLCBNT05JVE9SX1JFUV9BVURJVF9DT01NQU5EID0gMTEzLApAQCAt MzAyOCw4ICszMDMwLDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvci5oIGIvbW9uaXRv ci5oCiAgCiAgc3RydWN0IHNzaDsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL21vbml0b3Jfd3JhcC5j IGIvbW9uaXRvcl93cmFwLmMKLS0tLSBhL21vbml0b3Jfd3JhcC5jCTIwMjQtMDktMTYgMTE6NDU6 NTYuODYyMTMzMzI2ICswMjAwCi0rKysgYi9tb25pdG9yX3dyYXAuYwkyMDI0LTA5LTE2IDExOjQ2 OjM0LjY5NzkzOTk0NyArMDIwMAorLS0tIGEvbW9uaXRvcl93cmFwLmMJMjAyNi0wMy0xMyAxMjoz Mjo0OC40NjgxNDgzMDUgKzAxMDAKKysrKyBiL21vbml0b3Jfd3JhcC5jCTIwMjYtMDMtMTMgMTI6 MTY6NDAuMDExOTY5MjcyICswMTAwCiBAQCAtMTA3NSwxMyArMTA3NSwxNSBAQCBtbV9zc2hfZ3Nz YXBpX2NoZWNrbWljKEdzc2N0eHQgKmN0eCwgZ3NzCiAgfQogIApAQCAtMzEwOCw4ICszMTEwLDgg QEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvcl93cmFwLmMgYi9tb25pdG9yX3dyYXAuYwog IAogIC8qCiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9tb25pdG9yX3dyYXAuaCBiL21vbml0b3Jfd3Jh cC5oCi0tLS0gYS9tb25pdG9yX3dyYXAuaAkyMDI0LTA5LTE2IDExOjQ1OjU2Ljg2MjEzMzMyNiAr MDIwMAotKysrIGIvbW9uaXRvcl93cmFwLmgJMjAyNC0wOS0xNiAxMTo0NjozNC42OTc5Mzk5NDcg KzAyMDAKKy0tLSBhL21vbml0b3Jfd3JhcC5oCTIwMjYtMDMtMTMgMTI6MzI6NDguNDY4NDQ2OTQw ICswMTAwCisrKysgYi9tb25pdG9yX3dyYXAuaAkyMDI2LTAzLTEzIDEyOjE2OjQwLjAxMjAxNTg1 MSArMDEwMAogQEAgLTY3LDggKzY3LDEwIEBAIHZvaWQgbW1fZGVjb2RlX2FjdGl2YXRlX3NlcnZl cl9vcHRpb25zKHMKICBPTV91aW50MzIgbW1fc3NoX2dzc2FwaV9zZXJ2ZXJfY3R4KEdzc2N0eHQg KiosIGdzc19PSUQpOwogIE9NX3VpbnQzMiBtbV9zc2hfZ3NzYXBpX2FjY2VwdF9jdHgoR3NzY3R4 dCAqLApAQCAtMzEyMyw4ICszMTI1LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvbW9uaXRvcl93 cmFwLmggYi9tb25pdG9yX3dyYXAuaAogIAogICNpZmRlZiBVU0VfUEFNCiBkaWZmIC0tY29sb3Ig LXJ1TnAgYS9yZWFkY29uZi5jIGIvcmVhZGNvbmYuYwotLS0tIGEvcmVhZGNvbmYuYwkyMDI0LTA3 LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysrIGIvcmVhZGNvbmYuYwkyMDI0LTA5LTE2 IDExOjQ2OjM0LjY5OTkzOTk5MCArMDIwMAorLS0tIGEvcmVhZGNvbmYuYwkyMDI0LTA5LTIwIDAw OjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvcmVhZGNvbmYuYwkyMDI2LTAzLTEzIDEyOjE2 OjQwLjAxMjA1ODEzNyArMDEwMAogQEAgLTcwLDYgKzcwLDcgQEAKICAjaW5jbHVkZSAidWlkc3dh cC5oIgogICNpbmNsdWRlICJteXByb3Bvc2FsLmgiCkBAIC0zMTY1LDcgKzMxNjcsNyBAQCBkaWZm IC0tY29sb3IgLXJ1TnAgYS9yZWFkY29uZi5jIGIvcmVhZGNvbmYuYwogICNlbmRpZgogICNpZmRl ZiBFTkFCTEVfUEtDUzExCiAgCXsgInBrY3MxMXByb3ZpZGVyIiwgb1BLQ1MxMVByb3ZpZGVyIH0s Ci1AQCAtMTIyNywxMCArMTI0Miw0MiBAQCBwYXJzZV90aW1lOgorQEAgLTEyNTYsMTAgKzEyNzEs NDIgQEAgcGFyc2VfdGltZToKICAJCWludHB0ciA9ICZvcHRpb25zLT5nc3NfYXV0aGVudGljYXRp b247CiAgCQlnb3RvIHBhcnNlX2ZsYWc7CiAgCkBAIC0zMjA4LDcgKzMyMTAsNyBAQCBkaWZmIC0t Y29sb3IgLXJ1TnAgYS9yZWFkY29uZi5jIGIvcmVhZGNvbmYuYwogIAljYXNlIG9CYXRjaE1vZGU6 CiAgCQlpbnRwdHIgPSAmb3B0aW9ucy0+YmF0Y2hfbW9kZTsKICAJCWdvdG8gcGFyc2VfZmxhZzsK LUBAIC0yNTQyLDcgKzI1ODksMTMgQEAgaW5pdGlhbGl6ZV9vcHRpb25zKE9wdGlvbnMgKiBvcHRp b25zKQorQEAgLTI1NzYsNyArMjYyMywxMyBAQCBpbml0aWFsaXplX29wdGlvbnMoT3B0aW9ucyAq IG9wdGlvbnMpCiAgCW9wdGlvbnMtPmZ3ZF9vcHRzLnN0cmVhbWxvY2FsX2JpbmRfdW5saW5rID0g LTE7CiAgCW9wdGlvbnMtPnB1YmtleV9hdXRoZW50aWNhdGlvbiA9IC0xOwogIAlvcHRpb25zLT5n c3NfYXV0aGVudGljYXRpb24gPSAtMTsKQEAgLTMyMjIsNyArMzIyNCw3IEBAIGRpZmYgLS1jb2xv ciAtcnVOcCBhL3JlYWRjb25mLmMgYi9yZWFkY29uZi5jCiAgCW9wdGlvbnMtPnBhc3N3b3JkX2F1 dGhlbnRpY2F0aW9uID0gLTE7CiAgCW9wdGlvbnMtPmtiZF9pbnRlcmFjdGl2ZV9hdXRoZW50aWNh dGlvbiA9IC0xOwogIAlvcHRpb25zLT5rYmRfaW50ZXJhY3RpdmVfZGV2aWNlcyA9IE5VTEw7Ci1A QCAtMjcwNSw4ICsyNzU4LDE4IEBAIGZpbGxfZGVmYXVsdF9vcHRpb25zKE9wdGlvbnMgKiBvcHRp b25zKQorQEAgLTI3MzksOCArMjc5MiwxOCBAQCBmaWxsX2RlZmF1bHRfb3B0aW9ucyhPcHRpb25z ICogb3B0aW9ucykKICAJCW9wdGlvbnMtPnB1YmtleV9hdXRoZW50aWNhdGlvbiA9IFNTSF9QVUJL RVlfQVVUSF9BTEw7CiAgCWlmIChvcHRpb25zLT5nc3NfYXV0aGVudGljYXRpb24gPT0gLTEpCiAg CQlvcHRpb25zLT5nc3NfYXV0aGVudGljYXRpb24gPSAwOwpAQCAtMzI0MSw3ICszMjQzLDcgQEAg ZGlmZiAtLWNvbG9yIC1ydU5wIGEvcmVhZGNvbmYuYyBiL3JlYWRjb25mLmMKICAJaWYgKG9wdGlv bnMtPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uID09IC0xKQogIAkJb3B0aW9ucy0+cGFzc3dvcmRf YXV0aGVudGljYXRpb24gPSAxOwogIAlpZiAob3B0aW9ucy0+a2JkX2ludGVyYWN0aXZlX2F1dGhl bnRpY2F0aW9uID09IC0xKQotQEAgLTM1MzMsNyArMzU5NiwxNCBAQCBkdW1wX2NsaWVudF9jb25m aWcoT3B0aW9ucyAqbywgY29uc3QgY2hhCitAQCAtMzU2Nyw3ICszNjMwLDE0IEBAIGR1bXBfY2xp ZW50X2NvbmZpZyhPcHRpb25zICpvLCBjb25zdCBjaGEKICAJZHVtcF9jZmdfZm10aW50KG9HYXRl d2F5UG9ydHMsIG8tPmZ3ZF9vcHRzLmdhdGV3YXlfcG9ydHMpOwogICNpZmRlZiBHU1NBUEkKICAJ ZHVtcF9jZmdfZm10aW50KG9Hc3NBdXRoZW50aWNhdGlvbiwgby0+Z3NzX2F1dGhlbnRpY2F0aW9u KTsKQEAgLTMyNTcsOCArMzI1OSw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3JlYWRjb25mLmMg Yi9yZWFkY29uZi5jCiAgCWR1bXBfY2ZnX2ZtdGludChvSGFzaEtub3duSG9zdHMsIG8tPmhhc2hf a25vd25faG9zdHMpOwogIAlkdW1wX2NmZ19mbXRpbnQob0hvc3RiYXNlZEF1dGhlbnRpY2F0aW9u LCBvLT5ob3N0YmFzZWRfYXV0aGVudGljYXRpb24pOwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvcmVh ZGNvbmYuaCBiL3JlYWRjb25mLmgKLS0tLSBhL3JlYWRjb25mLmgJMjAyNC0wNy0wMSAwNjozNjoy OC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3JlYWRjb25mLmgJMjAyNC0wOS0xNiAxMTo0NjozNC42 OTk5Mzk5OTAgKzAyMDAKKy0tLSBhL3JlYWRjb25mLmgJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAw MDAwMDAgKzAyMDAKKysrKyBiL3JlYWRjb25mLmgJMjAyNi0wMy0xMyAxMjoxNjozOS45OTExNDA0 MzAgKzAxMDAKIEBAIC00MCw3ICs0MCwxMyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgCWludCAgICAg cHVia2V5X2F1dGhlbnRpY2F0aW9uOwkvKiBUcnkgc3NoMiBwdWJrZXkgYXV0aGVudGljYXRpb24u ICovCiAgCWludCAgICAgaG9zdGJhc2VkX2F1dGhlbnRpY2F0aW9uOwkvKiBzc2gyJ3Mgcmhvc3Rz X3JzYSAqLwpAQCAtMzI3NCw4ICszMjc2LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvcmVhZGNv bmYuaCBiL3JlYWRjb25mLmgKICAJCQkJCQkgKiBhdXRoZW50aWNhdGlvbi4gKi8KICAJaW50ICAg ICBrYmRfaW50ZXJhY3RpdmVfYXV0aGVudGljYXRpb247IC8qIFRyeSBrZXlib2FyZC1pbnRlcmFj dGl2ZSBhdXRoLiAqLwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2VydmNvbmYuYyBiL3NlcnZjb25m LmMKLS0tLSBhL3NlcnZjb25mLmMJMjAyNC0wNy0wMSAwNjozNjoyOC4wMDAwMDAwMDAgKzAyMDAK LSsrKyBiL3NlcnZjb25mLmMJMjAyNC0wOS0xNiAxMTo0NjozNC43MDA5NDAwMTEgKzAyMDAKKy0t LSBhL3NlcnZjb25mLmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBi L3NlcnZjb25mLmMJMjAyNi0wMy0xMyAxMjoxNjozOS45OTExODU1MjggKzAxMDAKIEBAIC02OCw2 ICs2OCw3IEBACiAgI2luY2x1ZGUgImF1dGguaCIKICAjaW5jbHVkZSAibXlwcm9wb3NhbC5oIgpA QCAtMzI5Niw3ICszMjk4LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2VydmNvbmYuYyBiL3Nl cnZjb25mLmMKICAJb3B0aW9ucy0+cGFzc3dvcmRfYXV0aGVudGljYXRpb24gPSAtMTsKICAJb3B0 aW9ucy0+a2JkX2ludGVyYWN0aXZlX2F1dGhlbnRpY2F0aW9uID0gLTE7CiAgCW9wdGlvbnMtPnBl cm1pdF9lbXB0eV9wYXNzd2QgPSAtMTsKLUBAIC0zNzYsMTAgKzM4MCwxOCBAQCBmaWxsX2RlZmF1 bHRfc2VydmVyX29wdGlvbnMoU2VydmVyT3B0aW9uCitAQCAtMzc4LDEwICszODIsMTggQEAgZmls bF9kZWZhdWx0X3NlcnZlcl9vcHRpb25zKFNlcnZlck9wdGlvbgogIAkJb3B0aW9ucy0+a2VyYmVy b3NfZ2V0X2Fmc190b2tlbiA9IDA7CiAgCWlmIChvcHRpb25zLT5nc3NfYXV0aGVudGljYXRpb24g PT0gLTEpCiAgCQlvcHRpb25zLT5nc3NfYXV0aGVudGljYXRpb24gPSAwOwpAQCAtMzMxNSw3ICsz MzE3LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2VydmNvbmYuYyBiL3NlcnZjb25mLmMKICAJ aWYgKG9wdGlvbnMtPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uID09IC0xKQogIAkJb3B0aW9ucy0+ cGFzc3dvcmRfYXV0aGVudGljYXRpb24gPSAxOwogIAlpZiAob3B0aW9ucy0+a2JkX2ludGVyYWN0 aXZlX2F1dGhlbnRpY2F0aW9uID09IC0xKQotQEAgLTU1OCw2ICs1NzAsNyBAQCB0eXBlZGVmIGVu dW0geworQEAgLTU2NCw2ICs1NzYsNyBAQCB0eXBlZGVmIGVudW0gewogIAlzUGVyU291cmNlUGVu YWx0aWVzLCBzUGVyU291cmNlUGVuYWx0eUV4ZW1wdExpc3QsCiAgCXNDbGllbnRBbGl2ZUludGVy dmFsLCBzQ2xpZW50QWxpdmVDb3VudE1heCwgc0F1dGhvcml6ZWRLZXlzRmlsZSwKICAJc0dzc0F1 dGhlbnRpY2F0aW9uLCBzR3NzQ2xlYW51cENyZWRzLCBzR3NzU3RyaWN0QWNjZXB0b3IsCkBAIC0z MzIzLDcgKzMzMjUsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNv bmYuYwogIAlzQWNjZXB0RW52LCBzU2V0RW52LCBzUGVybWl0VHVubmVsLAogIAlzTWF0Y2gsIHNQ ZXJtaXRPcGVuLCBzUGVybWl0TGlzdGVuLCBzRm9yY2VDb21tYW5kLCBzQ2hyb290RGlyZWN0b3J5 LAogIAlzVXNlUHJpdmlsZWdlU2VwYXJhdGlvbiwgc0FsbG93QWdlbnRGb3J3YXJkaW5nLAotQEAg LTY0MywxMiArNjU2LDIyIEBAIHN0YXRpYyBzdHJ1Y3QgeworQEAgLTY0OSwxMiArNjYyLDIyIEBA IHN0YXRpYyBzdHJ1Y3QgewogICNpZmRlZiBHU1NBUEkKICAJeyAiZ3NzYXBpYXV0aGVudGljYXRp b24iLCBzR3NzQXV0aGVudGljYXRpb24sIFNTSENGR19BTEwgfSwKICAJeyAiZ3NzYXBpY2xlYW51 cGNyZWRlbnRpYWxzIiwgc0dzc0NsZWFudXBDcmVkcywgU1NIQ0ZHX0dMT0JBTCB9LApAQCAtMzM0 Niw3ICszMzQ4LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2VydmNvbmYuYyBiL3NlcnZjb25m LmMKICAJeyAicGFzc3dvcmRhdXRoZW50aWNhdGlvbiIsIHNQYXNzd29yZEF1dGhlbnRpY2F0aW9u LCBTU0hDRkdfQUxMIH0sCiAgCXsgImtiZGludGVyYWN0aXZlYXV0aGVudGljYXRpb24iLCBzS2Jk SW50ZXJhY3RpdmVBdXRoZW50aWNhdGlvbiwgU1NIQ0ZHX0FMTCB9LAogIAl7ICJjaGFsbGVuZ2Vy ZXNwb25zZWF1dGhlbnRpY2F0aW9uIiwgc0tiZEludGVyYWN0aXZlQXV0aGVudGljYXRpb24sIFNT SENGR19BTEwgfSwgLyogYWxpYXMgKi8KLUBAIC0xNTg1LDYgKzE2MDgsMTAgQEAgcHJvY2Vzc19z ZXJ2ZXJfY29uZmlnX2xpbmVfZGVwdGgoU2VydmVyTworQEAgLTE2MDUsNiArMTYyOCwxMCBAQCBw cm9jZXNzX3NlcnZlcl9jb25maWdfbGluZV9kZXB0aChTZXJ2ZXJPCiAgCQlpbnRwdHIgPSAmb3B0 aW9ucy0+Z3NzX2F1dGhlbnRpY2F0aW9uOwogIAkJZ290byBwYXJzZV9mbGFnOwogIApAQCAtMzM1 Nyw3ICszMzU5LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2VydmNvbmYuYyBiL3NlcnZjb25m LmMKICAJY2FzZSBzR3NzQ2xlYW51cENyZWRzOgogIAkJaW50cHRyID0gJm9wdGlvbnMtPmdzc19j bGVhbnVwX2NyZWRzOwogIAkJZ290byBwYXJzZV9mbGFnOwotQEAgLTE1OTMsNiArMTYyMCwyMiBA QCBwcm9jZXNzX3NlcnZlcl9jb25maWdfbGluZV9kZXB0aChTZXJ2ZXJPCitAQCAtMTYxMyw2ICsx NjQwLDIyIEBAIHByb2Nlc3Nfc2VydmVyX2NvbmZpZ19saW5lX2RlcHRoKFNlcnZlck8KICAJCWlu dHB0ciA9ICZvcHRpb25zLT5nc3Nfc3RyaWN0X2FjY2VwdG9yOwogIAkJZ290byBwYXJzZV9mbGFn OwogIApAQCAtMzM4MCw3ICszMzgyLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2VydmNvbmYu YyBiL3NlcnZjb25mLmMKICAJY2FzZSBzUGFzc3dvcmRBdXRoZW50aWNhdGlvbjoKICAJCWludHB0 ciA9ICZvcHRpb25zLT5wYXNzd29yZF9hdXRoZW50aWNhdGlvbjsKICAJCWdvdG8gcGFyc2VfZmxh ZzsKLUBAIC0zMTc4LDYgKzMyMjEsMTAgQEAgZHVtcF9jb25maWcoU2VydmVyT3B0aW9ucyAqbykK K0BAIC0zMjA0LDYgKzMyNDcsMTAgQEAgZHVtcF9jb25maWcoU2VydmVyT3B0aW9ucyAqbykKICAj aWZkZWYgR1NTQVBJCiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzQXV0aGVudGljYXRpb24sIG8tPmdz c19hdXRoZW50aWNhdGlvbik7CiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzQ2xlYW51cENyZWRzLCBv LT5nc3NfY2xlYW51cF9jcmVkcyk7CkBAIC0zMzkyLDkgKzMzOTQsOSBAQCBkaWZmIC0tY29sb3Ig LXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYuYwogIAlkdW1wX2NmZ19mbXRpbnQoc1Bhc3N3 b3JkQXV0aGVudGljYXRpb24sIG8tPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uKTsKICAJZHVtcF9j ZmdfZm10aW50KHNLYmRJbnRlcmFjdGl2ZUF1dGhlbnRpY2F0aW9uLAogZGlmZiAtLWNvbG9yIC1y dU5wIGEvc2VydmNvbmYuaCBiL3NlcnZjb25mLmgKLS0tLSBhL3NlcnZjb25mLmgJMjAyNC0wNy0w MSAwNjozNjoyOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBiL3NlcnZjb25mLmgJMjAyNC0wOS0xNiAx MTo0NjozNC43MDA5NDAwMTEgKzAyMDAKLUBAIC0xNDksOCArMTQ5LDExIEBAIHR5cGVkZWYgc3Ry dWN0IHsKKy0tLSBhL3NlcnZjb25mLmgJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAy MDAKKysrKyBiL3NlcnZjb25mLmgJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMDQ5OTM1MzQgKzAxMDAK K0BAIC0xNTAsOCArMTUwLDExIEBAIHR5cGVkZWYgc3RydWN0IHsKICAJaW50ICAgICBrZXJiZXJv c19nZXRfYWZzX3Rva2VuOwkJLyogSWYgdHJ1ZSwgdHJ5IHRvIGdldCBBRlMgdG9rZW4gaWYKICAJ CQkJCQkgKiBhdXRoZW50aWNhdGVkIHdpdGggS2VyYmVyb3MuICovCiAgCWludCAgICAgZ3NzX2F1 dGhlbnRpY2F0aW9uOwkvKiBJZiB0cnVlLCBwZXJtaXQgR1NTQVBJIGF1dGhlbnRpY2F0aW9uICov CkBAIC0zNDA3LDggKzM0MDksOCBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5oIGIv c2VydmNvbmYuaAogIAkJCQkJCSAqIGF1dGhlbnRpY2F0aW9uLiAqLwogIAlpbnQgICAgIGtiZF9p bnRlcmFjdGl2ZV9hdXRoZW50aWNhdGlvbjsJLyogSWYgdHJ1ZSwgcGVybWl0ICovCiBkaWZmIC0t Y29sb3IgLXJ1TnAgYS9zZXNzaW9uLmMgYi9zZXNzaW9uLmMKLS0tLSBhL3Nlc3Npb24uYwkyMDI0 LTA5LTE2IDExOjQ1OjU2Ljg2NjEzMzQxMSArMDIwMAotKysrIGIvc2Vzc2lvbi5jCTIwMjQtMDkt MTYgMTE6NDY6MzQuNzAxOTQwMDMyICswMjAwCistLS0gYS9zZXNzaW9uLmMJMjAyNi0wMy0xMyAx MjozMjo0OC40NzIyODAxMDQgKzAxMDAKKysrKyBiL3Nlc3Npb24uYwkyMDI2LTAzLTEzIDEyOjE2 OjQwLjAwNTAzNDUyNCArMDEwMAogQEAgLTI2NzQsMTMgKzI2NzQsMTkgQEAgZG9fY2xlYW51cChz dHJ1Y3Qgc3NoICpzc2gsIEF1dGhjdHh0ICphdQogIAogICNpZmRlZiBLUkI1CkBAIC0zNDMyLDkg KzM0MzQsOSBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXNzaW9uLmMgYi9zZXNzaW9uLmMKICAK ICAJLyogcmVtb3ZlIGFnZW50IHNvY2tldCAqLwogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoLjEg Yi9zc2guMQotLS0tIGEvc3NoLjEJMjAyNC0wOS0xNiAxMTo0NTo1Ni44NzUxMzM2MDMgKzAyMDAK LSsrKyBiL3NzaC4xCTIwMjQtMDktMTYgMTE6NDY6MzQuNzAxOTQwMDMyICswMjAwCi1AQCAtNTM2 LDcgKzUzNiwxMyBAQCBGb3IgZnVsbCBkZXRhaWxzIG9mIHRoZSBvcHRpb25zIGxpc3RlZCBiCist LS0gYS9zc2guMQkyMDI2LTAzLTEzIDEyOjMyOjQ4LjQ3OTY4MTQzNCArMDEwMAorKysrIGIvc3No LjEJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMTIyMTc3ODAgKzAxMDAKK0BAIC01MzgsNyArNTM4LDEz IEBAIEZvciBmdWxsIGRldGFpbHMgb2YgdGhlIG9wdGlvbnMgbGlzdGVkIGIKICAuSXQgR2F0ZXdh eVBvcnRzCiAgLkl0IEdsb2JhbEtub3duSG9zdHNGaWxlCiAgLkl0IEdTU0FQSUF1dGhlbnRpY2F0 aW9uCkBAIC0zNDQ4LDcgKzM0NTAsNyBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2guMSBiL3Nz aC4xCiAgLkl0IEhhc2hLbm93bkhvc3RzCiAgLkl0IEhvc3QKICAuSXQgSG9zdGJhc2VkQWNjZXB0 ZWRBbGdvcml0aG1zCi1AQCAtNjI0LDYgKzYzMCw4IEBAIGZsYWcpLAorQEAgLTYyNiw2ICs2MzIs OCBAQCBmbGFnKSwKICAoc3VwcG9ydGVkIG1lc3NhZ2UgaW50ZWdyaXR5IGNvZGVzKSwKICAuQXIg a2V4CiAgKGtleSBleGNoYW5nZSBhbGdvcml0aG1zKSwKQEAgLTM0NTgsOCArMzQ2MCw4IEBAIGRp ZmYgLS1jb2xvciAtcnVOcCBhL3NzaC4xIGIvc3NoLjEKICAoa2V5IHR5cGVzKSwKICAuQXIga2V5 LWNhLXNpZ24KIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaC5jIGIvc3NoLmMKLS0tLSBhL3NzaC5j CTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9zc2guYwkyMDI0LTA5 LTE2IDExOjQ2OjM0LjcwMjk0MDA1NCArMDIwMAorLS0tIGEvc3NoLmMJMjAyNC0wOS0yMCAwMDoy MDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3NzaC5jCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEy NzY4MDQ2ICswMTAwCiBAQCAtODI3LDYgKzgyNyw4IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYp CiAgCQkJZWxzZSBpZiAoc3RyY21wKG9wdGFyZywgImtleCIpID09IDAgfHwKICAJCQkgICAgc3Ry Y2FzZWNtcChvcHRhcmcsICJLZXhBbGdvcml0aG1zIikgPT0gMCkKQEAgLTM0ODEsOCArMzQ4Myw4 IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaC5jIGIvc3NoLmMKICAJCQlpZiAoY3AgPT0gTlVM TCkKICAJCQkJZmF0YWwoIlVuc3VwcG9ydGVkIHF1ZXJ5IFwiJXNcIiIsIG9wdGFyZyk7CiBkaWZm IC0tY29sb3IgLXJ1TnAgYS9zc2hfY29uZmlnIGIvc3NoX2NvbmZpZwotLS0tIGEvc3NoX2NvbmZp ZwkyMDI0LTA5LTE2IDExOjQ1OjU2Ljg4NDEzMzc5NSArMDIwMAotKysrIGIvc3NoX2NvbmZpZwky MDI0LTA5LTE2IDExOjQ2OjM0LjcwMjk0MDA1NCArMDIwMAorLS0tIGEvc3NoX2NvbmZpZwkyMDI2 LTAzLTEzIDEyOjMyOjQ4LjQ4Nzk3NjMwNyArMDEwMAorKysrIGIvc3NoX2NvbmZpZwkyMDI2LTAz LTEzIDEyOjE2OjQwLjAwNzc2OTM3NyArMDEwMAogQEAgLTI0LDYgKzI0LDggQEAKICAjICAgSG9z dGJhc2VkQXV0aGVudGljYXRpb24gbm8KICAjICAgR1NTQVBJQXV0aGVudGljYXRpb24gbm8KQEAg LTM0OTMsOCArMzQ5NSw4IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaF9jb25maWcgYi9zc2hf Y29uZmlnCiAgIyAgIENoZWNrSG9zdElQIG5vCiAgIyAgIEFkZHJlc3NGYW1pbHkgYW55CiBkaWZm IC0tY29sb3IgLXJ1TnAgYS9zc2hfY29uZmlnLjUgYi9zc2hfY29uZmlnLjUKLS0tLSBhL3NzaF9j b25maWcuNQkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIwMAotKysrIGIvc3NoX2Nv bmZpZy41CTIwMjQtMDktMTYgMTE6NDY6MzQuNzAzOTQwMDc1ICswMjAwCistLS0gYS9zc2hfY29u ZmlnLjUJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3NzaF9jb25m aWcuNQkyMDI2LTAzLTEzIDEyOjE2OjQwLjAxMzAwMDI1NyArMDEwMAogQEAgLTkzOCwxMCArOTM4 LDY4IEBAIFRoZSBkZWZhdWx0IGlzCiAgU3BlY2lmaWVzIHdoZXRoZXIgdXNlciBhdXRoZW50aWNh dGlvbiBiYXNlZCBvbiBHU1NBUEkgaXMgYWxsb3dlZC4KICBUaGUgZGVmYXVsdCBpcwpAQCAtMzU2 NSw4ICszNTY3LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoX2NvbmZpZy41IGIvc3NoX2Nv bmZpZy41CiAgSW5kaWNhdGVzIHRoYXQKICAuWHIgc3NoIDEKIGRpZmYgLS1jb2xvciAtcnVOcCBh L3NzaGNvbm5lY3QyLmMgYi9zc2hjb25uZWN0Mi5jCi0tLS0gYS9zc2hjb25uZWN0Mi5jCTIwMjQt MDctMDEgMDY6MzY6MjguMDAwMDAwMDAwICswMjAwCi0rKysgYi9zc2hjb25uZWN0Mi5jCTIwMjQt MDktMTYgMTE6NDY6MzQuNzAzOTQwMDc1ICswMjAwCistLS0gYS9zc2hjb25uZWN0Mi5jCTIwMjQt MDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9zc2hjb25uZWN0Mi5jCTIwMjYt MDMtMTMgMTI6MTY6NDAuMDA4MDUzODk4ICswMTAwCiBAQCAtMjIyLDYgKzIyMiwxMSBAQCBzc2hf a2V4MihzdHJ1Y3Qgc3NoICpzc2gsIGNoYXIgKmhvc3QsIHN0CiAgCWNoYXIgKmFsbF9rZXksICpo a2FsZ3MgPSBOVUxMOwogIAlpbnQgciwgdXNlX2tub3duX2hvc3RzX29yZGVyID0gMDsKQEAgLTM2 NjksNyArMzY3MSw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGNvbm5lY3QyLmMgYi9zc2hj b25uZWN0Mi5jCiAgI2lmZGVmIERFQlVHX0tFWERICiAgCS8qIHNlbmQgMXN0IGVuY3J5cHRlZC9t YWNlZC9jb21wcmVzc2VkIG1lc3NhZ2UgKi8KICAJaWYgKChyID0gc3NocGt0X3N0YXJ0KHNzaCwg U1NIMl9NU0dfSUdOT1JFKSkgIT0gMCB8fAotQEAgLTM2OCw2ICs0MzksNyBAQCBzdGF0aWMgaW50 IGlucHV0X2dzc2FwaV9yZXNwb25zZShpbnQgdHlwCitAQCAtMzY5LDYgKzQ0MCw3IEBAIHN0YXRp YyBpbnQgaW5wdXRfZ3NzYXBpX3Jlc3BvbnNlKGludCB0eXAKICBzdGF0aWMgaW50IGlucHV0X2dz c2FwaV90b2tlbihpbnQgdHlwZSwgdV9pbnQzMl90LCBzdHJ1Y3Qgc3NoICopOwogIHN0YXRpYyBp bnQgaW5wdXRfZ3NzYXBpX2Vycm9yKGludCwgdV9pbnQzMl90LCBzdHJ1Y3Qgc3NoICopOwogIHN0 YXRpYyBpbnQgaW5wdXRfZ3NzYXBpX2VycnRvayhpbnQsIHVfaW50MzJfdCwgc3RydWN0IHNzaCAq KTsKQEAgLTM2NzcsNyArMzY3OSw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGNvbm5lY3Qy LmMgYi9zc2hjb25uZWN0Mi5jCiAgI2VuZGlmCiAgCiAgdm9pZAl1c2VyYXV0aChzdHJ1Y3Qgc3No ICosIGNoYXIgKik7Ci1AQCAtMzg0LDYgKzQ1NiwxMSBAQCBzdGF0aWMgY2hhciAqYXV0aG1ldGhv ZHNfZ2V0KHZvaWQpOworQEAgLTM4NSw2ICs0NTcsMTEgQEAgc3RhdGljIGNoYXIgKmF1dGhtZXRo b2RzX2dldCh2b2lkKTsKICAKICBBdXRobWV0aG9kIGF1dGhtZXRob2RzW10gPSB7CiAgI2lmZGVm IEdTU0FQSQpAQCAtMzY4OSw3ICszNjkxLDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoY29u bmVjdDIuYyBiL3NzaGNvbm5lY3QyLmMKICAJeyJnc3NhcGktd2l0aC1taWMiLAogIAkJdXNlcmF1 dGhfZ3NzYXBpLAogIAkJdXNlcmF1dGhfZ3NzYXBpX2NsZWFudXAsCi1AQCAtNzU1LDEyICs4MzIs MzIgQEAgdXNlcmF1dGhfZ3NzYXBpKHN0cnVjdCBzc2ggKnNzaCkKK0BAIC03NTYsMTIgKzgzMywz MiBAQCB1c2VyYXV0aF9nc3NhcGkoc3RydWN0IHNzaCAqc3NoKQogIAlPTV91aW50MzIgbWluOwog IAlpbnQgciwgb2sgPSAwOwogIAlnc3NfT0lEIG1lY2ggPSBOVUxMOwpAQCAtMzcyMyw3ICszNzI1 LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoY29ubmVjdDIuYyBiL3NzaGNvbm5lY3QyLmMK ICAKICAJLyogQ2hlY2sgdG8gc2VlIHdoZXRoZXIgdGhlIG1lY2hhbmlzbSBpcyB1c2FibGUgYmVm b3JlIHdlIG9mZmVyIGl0ICovCiAgCXdoaWxlIChhdXRoY3R4dC0+bWVjaF90cmllZCA8IGF1dGhj dHh0LT5nc3Nfc3VwcG9ydGVkX21lY2hzLT5jb3VudCAmJgotQEAgLTc2OSwxMyArODY2LDE1IEBA IHVzZXJhdXRoX2dzc2FwaShzdHJ1Y3Qgc3NoICpzc2gpCitAQCAtNzcwLDEzICs4NjcsMTUgQEAg dXNlcmF1dGhfZ3NzYXBpKHN0cnVjdCBzc2ggKnNzaCkKICAJCSAgICBlbGVtZW50c1thdXRoY3R4 dC0+bWVjaF90cmllZF07CiAgCQkvKiBNeSBERVIgZW5jb2RpbmcgcmVxdWlyZXMgbGVuZ3RoPDEy OCAqLwogIAkJaWYgKG1lY2gtPmxlbmd0aCA8IDEyOCAmJiBzc2hfZ3NzYXBpX2NoZWNrX21lY2hh bmlzbSgmZ3NzY3R4dCwKQEAgLTM3NDAsNyArMzc0Miw3IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBh L3NzaGNvbm5lY3QyLmMgYi9zc2hjb25uZWN0Mi5jCiAgCWlmICghb2sgfHwgbWVjaCA9PSBOVUxM KQogIAkJcmV0dXJuIDA7CiAgCi1AQCAtMTAwOSw2ICsxMTA4LDU1IEBAIGlucHV0X2dzc2FwaV9l cnJvcihpbnQgdHlwZSwgdV9pbnQzMl90IHAKK0BAIC0xMDEwLDYgKzExMDksNTUgQEAgaW5wdXRf Z3NzYXBpX2Vycm9yKGludCB0eXBlLCB1X2ludDMyX3QgcAogIAlmcmVlKGxhbmcpOwogIAlyZXR1 cm4gcjsKICB9CkBAIC0zNzk3LDkgKzM3OTksOSBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hj b25uZWN0Mi5jIGIvc3NoY29ubmVjdDIuYwogIAogIHN0YXRpYyBpbnQKIGRpZmYgLS1jb2xvciAt cnVOcCBhL3NzaGQuYyBiL3NzaGQuYwotLS0tIGEvc3NoZC5jCTIwMjQtMDctMDEgMDY6MzY6Mjgu MDAwMDAwMDAwICswMjAwCi0rKysgYi9zc2hkLmMJMjAyNC0wOS0xNiAxMTo0NjozNC43MDQ5NDAw OTYgKzAyMDAKLUBAIC0xNTUxLDcgKzE1NTEsOCBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQor LS0tIGEvc3NoZC5jCTIwMjQtMDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9z c2hkLmMJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMDg0MjY4MDIgKzAxMDAKK0BAIC0xNTU4LDcgKzE1 NTgsOCBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQogIAkJZnJlZShmcCk7CiAgCX0KICAJYWNj dW11bGF0ZV9ob3N0X3RpbWluZ19zZWNyZXQoY2ZnLCBOVUxMKTsKQEAgLTM4MTAsOCArMzgxMiw4 IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGQuYyBiL3NzaGQuYwogIAkJZXhpdCgxKTsKICAJ fQogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoZF9jb25maWcgYi9zc2hkX2NvbmZpZwotLS0tIGEv c3NoZF9jb25maWcJMjAyNC0wOS0xNiAxMTo0NTo1Ni44ODgxMzM4ODAgKzAyMDAKLSsrKyBiL3Nz aGRfY29uZmlnCTIwMjQtMDktMTYgMTE6NDY6MzQuNzA0OTQwMDk2ICswMjAwCistLS0gYS9zc2hk X2NvbmZpZwkyMDI2LTAzLTEzIDEyOjMyOjQ4LjQ5MTg0MTA5MiArMDEwMAorKysrIGIvc3NoZF9j b25maWcJMjAyNi0wMy0xMyAxMjoxNjo0MC4wMDg2MjkyMDkgKzAxMDAKIEBAIC03Nyw2ICs3Nyw4 IEBAIEF1dGhvcml6ZWRLZXlzRmlsZQkuc3NoL2F1dGhvcml6ZWRfa2V5cwogICMgR1NTQVBJIG9w dGlvbnMKICAjR1NTQVBJQXV0aGVudGljYXRpb24gbm8KQEAgLTM4MjIsOCArMzgyNCw4IEBAIGRp ZmYgLS1jb2xvciAtcnVOcCBhL3NzaGRfY29uZmlnIGIvc3NoZF9jb25maWcKICAjIFNldCB0aGlz IHRvICd5ZXMnIHRvIGVuYWJsZSBQQU0gYXV0aGVudGljYXRpb24sIGFjY291bnQgcHJvY2Vzc2lu ZywKICAjIGFuZCBzZXNzaW9uIHByb2Nlc3NpbmcuIElmIHRoaXMgaXMgZW5hYmxlZCwgUEFNIGF1 dGhlbnRpY2F0aW9uIHdpbGwKIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGRfY29uZmlnLjUgYi9z c2hkX2NvbmZpZy41Ci0tLS0gYS9zc2hkX2NvbmZpZy41CTIwMjQtMDktMTYgMTE6NDU6NTYuODg1 MTMzODE2ICswMjAwCi0rKysgYi9zc2hkX2NvbmZpZy41CTIwMjQtMDktMTYgMTE6NDY6MzQuNzA0 OTQwMDk2ICswMjAwCistLS0gYS9zc2hkX2NvbmZpZy41CTIwMjYtMDMtMTMgMTI6MzI6NDguNDg5 MDY5NDYxICswMTAwCisrKysgYi9zc2hkX2NvbmZpZy41CTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEz NDk1OTIxICswMTAwCiBAQCAtNzM5LDYgKzczOSwxMSBAQCBTcGVjaWZpZXMgd2hldGhlciB0byBh dXRvbWF0aWNhbGx5IGRlc3RyCiAgb24gbG9nb3V0LgogIFRoZSBkZWZhdWx0IGlzCkBAIC0zODcw LDkgKzM4NzIsOSBAQCBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hkX2NvbmZpZy41IGIvc3NoZF9j b25maWcuNQogIFNwZWNpZmllcyB0aGUgc2lnbmF0dXJlIGFsZ29yaXRobXMgdGhhdCB3aWxsIGJl IGFjY2VwdGVkIGZvciBob3N0YmFzZWQKICBhdXRoZW50aWNhdGlvbiBhcyBhIGxpc3Qgb2YgY29t bWEtc2VwYXJhdGVkIHBhdHRlcm5zLgogZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoZC1zZXNzaW9u LmMgYi9zc2hkLXNlc3Npb24uYwotLS0tIGEvc3NoZC1zZXNzaW9uLmMJMjAyNC0wOS0xNiAxMTo0 NTo1Ni44ODgxMzM4ODAgKzAyMDAKLSsrKyBiL3NzaGQtc2Vzc2lvbi5jCTIwMjQtMDktMTYgMTE6 NDY6MzQuNzA1OTQwMTE4ICswMjAwCi1AQCAtNjYwLDggKzY2MCw4IEBAIG5vdGlmeV9ob3N0a2V5 cyhzdHJ1Y3Qgc3NoICpzc2gpCistLS0gYS9zc2hkLXNlc3Npb24uYwkyMDI2LTAzLTEzIDEyOjMy OjQ4LjQ5MTM5MjU3NyArMDEwMAorKysrIGIvc3NoZC1zZXNzaW9uLmMJMjAyNi0wMy0xMyAxMjox Njo0MC4wMTMyMDIzOTAgKzAxMDAKK0BAIC02NjIsOCArNjYyLDggQEAgbm90aWZ5X2hvc3RrZXlz KHN0cnVjdCBzc2ggKnNzaCkKICAJfQogIAlkZWJ1ZzNfZigic2VudCAldSBob3N0a2V5cyIsIG5r ZXlzKTsKICAJaWYgKG5rZXlzID09IDApCkBAIC0zODgzLDcgKzM4ODUsNyBAQCBkaWZmIC0tY29s b3IgLXJ1TnAgYS9zc2hkLXNlc3Npb24uYyBiL3NzaGQtc2Vzc2lvbi5jCiAgCQlzc2hwa3RfZmF0 YWwoc3NoLCByLCAiJXM6IHNlbmQiLCBfX2Z1bmNfXyk7CiAgCXNzaGJ1Zl9mcmVlKGJ1Zik7CiAg fQotQEAgLTExODAsOCArMTE4MCw5IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCitAQCAtMTE4 Miw4ICsxMTgyLDkgQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKICAJCQlicmVhazsKICAJCX0K ICAJfQpAQCAtMzg5NSw3ICszODk3LDcgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoZC1zZXNz aW9uLmMgYi9zc2hkLXNlc3Npb24uYwogIAogIAkvKiBFbnN1cmUgdGhhdCB1bWFzayBkaXNhbGxv d3MgYXQgbGVhc3QgZ3JvdXAgYW5kIHdvcmxkIHdyaXRlICovCiAgCW5ld191bWFzayA9IHVtYXNr KDAwNzcpIHwgMDAyMjsKLUBAIC0xNDYyLDYgKzE0NjMsNDggQEAgZG9fc3NoMl9rZXgoc3RydWN0 IHNzaCAqc3NoKQorQEAgLTE0NzYsNiArMTQ3Nyw0OCBAQCBkb19zc2gyX2tleChzdHJ1Y3Qgc3No ICpzc2gpCiAgCiAgCWZyZWUoaGthbGdzKTsKICAKQEAgLTM5NDQsNyArMzk0Niw3IEBAIGRpZmYg LS1jb2xvciAtcnVOcCBhL3NzaGQtc2Vzc2lvbi5jIGIvc3NoZC1zZXNzaW9uLmMKICAJLyogc3Rh cnQga2V5IGV4Y2hhbmdlICovCiAgCWlmICgociA9IGtleF9zZXR1cChzc2gsIG15cHJvcG9zYWwp KSAhPSAwKQogIAkJZmF0YWxfcihyLCAia2V4X3NldHVwIik7Ci1AQCAtMTQ3OSw3ICsxNTIyLDE4 IEBAIGRvX3NzaDJfa2V4KHN0cnVjdCBzc2ggKnNzaCkKK0BAIC0xNDkzLDcgKzE1MzYsMTggQEAg ZG9fc3NoMl9rZXgoc3RydWN0IHNzaCAqc3NoKQogICAjaWZkZWYgT1BFTlNTTF9IQVNfRUNDCiAg CWtleC0+a2V4W0tFWF9FQ0RIX1NIQTJdID0ga2V4X2dlbl9zZXJ2ZXI7CiAgICNlbmRpZgpAQCAt Mzk2NSw4ICszOTY3LDggQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoZC1zZXNzaW9uLmMgYi9z c2hkLXNlc3Npb24uYwogIAlrZXgtPmtleFtLRVhfS0VNX1NOVFJVUDc2MVgyNTUxOV9TSEE1MTJd ID0ga2V4X2dlbl9zZXJ2ZXI7CiAgIAlrZXgtPmtleFtLRVhfS0VNX01MS0VNNzY4WDI1NTE5X1NI QTI1Nl0gPSBrZXhfZ2VuX3NlcnZlcjsKIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaC1nc3MuaCBi L3NzaC1nc3MuaAotLS0tIGEvc3NoLWdzcy5oCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAwMDAw ICswMjAwCi0rKysgYi9zc2gtZ3NzLmgJMjAyNC0wOS0xNiAxMTo0NjozNC43MTA5NDAyMjQgKzAy MDAKKy0tLSBhL3NzaC1nc3MuaAkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAor KysrIGIvc3NoLWdzcy5oCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDEzNDUzMTU0ICswMTAwCiBAQCAt NjEsMTAgKzYxLDM2IEBACiAgCiAgI2RlZmluZSBTU0hfR1NTX09JRFRZUEUgMHgwNgpAQCAtNDA5 Miw5ICs0MDk0LDkgQEAgZGlmZiAtLWNvbG9yIC1ydU5wIGEvc3NoLWdzcy5oIGIvc3NoLWdzcy5o CiAgCiAgI2VuZGlmIC8qIF9TU0hfR1NTX0ggKi8KIGRpZmYgLS1jb2xvciAtcnVOcCBhL3NzaGtl eS5jIGIvc3Noa2V5LmMKLS0tLSBhL3NzaGtleS5jCTIwMjQtMDctMDEgMDY6MzY6MjguMDAwMDAw MDAwICswMjAwCi0rKysgYi9zc2hrZXkuYwkyMDI0LTA5LTE2IDExOjQ2OjM0LjcwNjk0MDEzOSAr MDIwMAotQEAgLTEzMSw2ICsxMzEsNzUgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzc2hrZXlfaW1w bCBzc2hrZXlfeAorLS0tIGEvc3Noa2V5LmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL3NzaGtleS5jCTIwMjYtMDMtMTMgMTI6MTY6NDAuMDA2NjM0NDYxICswMTAw CitAQCAtMTMyLDYgKzEzMiw3NSBAQCBleHRlcm4gY29uc3Qgc3RydWN0IHNzaGtleV9pbXBsIHNz aGtleV94CiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzc2hrZXlfaW1wbCBzc2hrZXlfeG1zc19jZXJ0 X2ltcGw7CiAgI2VuZGlmCiAgCkBAIC00MTcwLDcgKzQxNzIsNyBAQCBkaWZmIC0tY29sb3IgLXJ1 TnAgYS9zc2hrZXkuYyBiL3NzaGtleS5jCiAgY29uc3Qgc3RydWN0IHNzaGtleV9pbXBsICogY29u c3Qga2V5aW1wbHNbXSA9IHsKICAJJnNzaGtleV9lZDI1NTE5X2ltcGwsCiAgCSZzc2hrZXlfZWQy NTUxOV9jZXJ0X2ltcGwsCi1AQCAtMTY5LDYgKzIzOCw3IEBAIGNvbnN0IHN0cnVjdCBzc2hrZXlf aW1wbCAqIGNvbnN0IGtleWltcGwKK0BAIC0xNzAsNiArMjM5LDcgQEAgY29uc3Qgc3RydWN0IHNz aGtleV9pbXBsICogY29uc3Qga2V5aW1wbAogIAkmc3Noa2V5X3htc3NfaW1wbCwKICAJJnNzaGtl eV94bXNzX2NlcnRfaW1wbCwKICAjZW5kaWYKQEAgLTQxNzgsNyArNDE4MCw3IEBAIGRpZmYgLS1j b2xvciAtcnVOcCBhL3NzaGtleS5jIGIvc3Noa2V5LmMKICAJTlVMTAogIH07CiAgCi1AQCAtMzI0 LDcgKzM5NCw3IEBAIHNzaGtleV9hbGdfbGlzdChpbnQgY2VydHNfb25seSwgaW50IHBsYWkKK0BA IC0zMzksNyArNDA5LDcgQEAgc3Noa2V5X2FsZ19saXN0KGludCBjZXJ0c19vbmx5LCBpbnQgcGxh aQogIAogIAlmb3IgKGkgPSAwOyBrZXlpbXBsc1tpXSAhPSBOVUxMOyBpKyspIHsKICAJCWltcGwg PSBrZXlpbXBsc1tpXTsKQEAgLTQxODgsOSArNDE5MCw5IEBAIGRpZmYgLS1jb2xvciAtcnVOcCBh L3NzaGtleS5jIGIvc3Noa2V5LmMKICAJCWlmICghaW5jbHVkZV9zaWdvbmx5ICYmIGltcGwtPnNp Z29ubHkpCiAgCQkJY29udGludWU7CiBkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hrZXkuaCBiL3Nz aGtleS5oCi0tLS0gYS9zc2hrZXkuaAkyMDI0LTA3LTAxIDA2OjM2OjI4LjAwMDAwMDAwMCArMDIw MAotKysrIGIvc3Noa2V5LmgJMjAyNC0wOS0xNiAxMTo0NjozNC43MDY5NDAxMzkgKzAyMDAKLUBA IC03MSw2ICs3MSw3IEBAIGVudW0gc3Noa2V5X3R5cGVzIHsKKy0tLSBhL3NzaGtleS5oCTIwMjQt MDktMjAgMDA6MjA6NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9zc2hrZXkuaAkyMDI2LTAzLTEz IDEyOjE2OjQwLjAwODk3MjMyOCArMDEwMAorQEAgLTczLDYgKzczLDcgQEAgZW51bSBzc2hrZXlf dHlwZXMgewogIAlLRVlfRUNEU0FfU0tfQ0VSVCwKICAJS0VZX0VEMjU1MTlfU0ssCiAgCUtFWV9F RDI1NTE5X1NLX0NFUlQsCgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1hdXRob3JpemVkLWtl eXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLWF1dGhvcml6ZWQta2V5 cy1wcmluY2lwbGVzLW9wdGlvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi45YmRkMTk5Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC05LjlwMS1hdXRob3JpemVk LWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorZGlmZiAtLWNv bG9yIC1ydU5wIGEvYXV0aDItcHVia2V5ZmlsZS5jIGIvYXV0aDItcHVia2V5ZmlsZS5jCistLS0g YS9hdXRoMi1wdWJrZXlmaWxlLmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAK KysrKyBiL2F1dGgyLXB1YmtleWZpbGUuYwkyMDI2LTA0LTA5IDE0OjM4OjQxLjY5NzE3ODYxMiAr MDIwMAorQEAgLTUwLDYgKzUwLDcgQEAKKyAjaW5jbHVkZSAiYXV0aGZpbGUuaCIKKyAjaW5jbHVk ZSAibWF0Y2guaCIKKyAjaW5jbHVkZSAic3NoZXJyLmgiCisrI2luY2x1ZGUgInhtYWxsb2MuaCIK KyAKKyBpbnQKKyBhdXRoX2F1dGhvcmlzZV9rZXlvcHRzKHN0cnVjdCBwYXNzd2QgKnB3LCBzdHJ1 Y3Qgc3NoYXV0aG9wdCAqb3B0cywKK0BAIC0xNDYsMjAgKzE0NywyMyBAQCBhdXRoX2F1dGhvcmlz ZV9rZXlvcHRzKHN0cnVjdCBwYXNzd2QgKnB3Cisgc3RhdGljIGludAorIG1hdGNoX3ByaW5jaXBh bHNfb3B0aW9uKGNvbnN0IGNoYXIgKnByaW5jaXBhbF9saXN0LCBzdHJ1Y3Qgc3Noa2V5X2NlcnQg KmNlcnQpCisgeworLQljaGFyICpyZXN1bHQ7CisrCWNoYXIgKmxpc3QsICpvbGlzdCwgKmVudHJ5 OworIAl1X2ludCBpOworIAorLQkvKiBYWFggcGVyY2VudF9leHBhbmQoKSBzZXF1ZW5jZXMgZm9y IGF1dGhvcml6ZWRfcHJpbmNpcGFscz8gKi8KKy0KKy0JZm9yIChpID0gMDsgaSA8IGNlcnQtPm5w cmluY2lwYWxzOyBpKyspIHsKKy0JCWlmICgocmVzdWx0ID0gbWF0Y2hfbGlzdChjZXJ0LT5wcmlu Y2lwYWxzW2ldLAorLQkJICAgIHByaW5jaXBhbF9saXN0LCBOVUxMKSkgIT0gTlVMTCkgeworLQkJ CWRlYnVnMygibWF0Y2hlZCBwcmluY2lwYWwgZnJvbSBrZXkgb3B0aW9ucyBcIiUuMTAwc1wiIiwK Ky0JCQkgICAgcmVzdWx0KTsKKy0JCQlmcmVlKHJlc3VsdCk7CistCQkJcmV0dXJuIDE7CisrCW9s aXN0ID0gbGlzdCA9IHhzdHJkdXAocHJpbmNpcGFsX2xpc3QpOworKwlmb3IgKDs7KSB7CisrCQlp ZiAoKGVudHJ5ID0gc3Ryc2VwKCZsaXN0LCAiLCIpKSA9PSBOVUxMIHx8ICplbnRyeSA9PSAnXDAn KQorKwkJCWJyZWFrOworKwkJZm9yIChpID0gMDsgaSA8IGNlcnQtPm5wcmluY2lwYWxzOyBpKysp IHsKKysJCQlpZiAoc3RyY21wKGVudHJ5LCBjZXJ0LT5wcmluY2lwYWxzW2ldKSA9PSAwKSB7Cisr CQkJCWRlYnVnMygibWF0Y2hlZCBwcmluY2lwYWwgZnJvbSBrZXkgaSIKKysJCQkJICAgICJvcHRp b25zIFwiJS4xMDBzXCIiLCBlbnRyeSk7CisrCQkJCWZyZWUob2xpc3QpOworKwkJCQlyZXR1cm4g MTsKKysJCQl9CisgCQl9CisgCX0KKysJZnJlZShvbGlzdCk7CisgCXJldHVybiAwOworIH0KKyAK CmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24u cGF0Y2ggYi9vcGVuc3NoLTkuOXAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24ucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I5M2NhNAotLS0gL2Rldi9udWxs CisrKyBiL29wZW5zc2gtOS45cDEtZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbi5wYXRjaApA QCAtMCwwICsxLDEwMyBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItaG9zdGJhc2VkLmMg Yi9hdXRoMi1ob3N0YmFzZWQuYworLS0tIGEvYXV0aDItaG9zdGJhc2VkLmMJMjAyNi0wNC0wOSAx MzoyMjoyOC4xMTQwNDU3NDkgKzAyMDAKKysrKyBiL2F1dGgyLWhvc3RiYXNlZC5jCTIwMjYtMDQt MDkgMTQ6MzQ6NDQuODc2MzkzODIyICswMjAwCitAQCAtOTYsOSArOTYsMTAgQEAgdXNlcmF1dGhf aG9zdGJhc2VkKHN0cnVjdCBzc2ggKnNzaCwgY29ucworIAkJZXJyb3JfZigiY2Fubm90IGRlY29k ZSBrZXk6ICVzIiwgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CistCWlmIChrZXktPnR5cGUg IT0gcGt0eXBlKSB7CistCQllcnJvcl9mKCJ0eXBlIG1pc21hdGNoIGZvciBkZWNvZGVkIGtleSAi CistCQkgICAgIihyZWNlaXZlZCAlZCwgZXhwZWN0ZWQgJWQpIiwga2V5LT50eXBlLCBwa3R5cGUp OworKwlpZiAoa2V5LT50eXBlICE9IHBrdHlwZSB8fCAoc3Noa2V5X3R5cGVfcGxhaW4ocGt0eXBl KSA9PSBLRVlfRUNEU0EgJiYKKysJICAgIHNzaGtleV9lY2RzYV9uaWRfZnJvbV9uYW1lKHBrYWxn KSAhPSBrZXktPmVjZHNhX25pZCkpIHsKKysJCWVycm9yX2YoImtleSB0eXBlIG1pc21hdGNoIGZv ciBkZWNvZGVkIGtleSAiCisrCQkgICAgIihyZWNlaXZlZCAlcywgZXhwZWN0ZWQgJXMpIiwgc3No a2V5X3NzaF9uYW1lKGtleSksIHBrYWxnKTsKKyAJCWdvdG8gZG9uZTsKKyAJfQorIAlpZiAobWF0 Y2hfcGF0dGVybl9saXN0KHBrYWxnLCBvcHRpb25zLmhvc3RiYXNlZF9hY2NlcHRlZF9hbGdvcywg MCkgIT0gMSkgeworZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItcHVia2V5LmMgYi9hdXRoMi1w dWJrZXkuYworLS0tIGEvYXV0aDItcHVia2V5LmMJMjAyNi0wNC0wOSAxMzoyMjoyOC4xNTcxOTQx MTggKzAyMDAKKysrKyBiL2F1dGgyLXB1YmtleS5jCTIwMjYtMDQtMDkgMTQ6MzU6NDguOTk3Njg5 MzQ3ICswMjAwCitAQCAtMTUyLDkgKzE1MiwxMCBAQCB1c2VyYXV0aF9wdWJrZXkoc3RydWN0IHNz aCAqc3NoLCBjb25zdCBjCisgCQllcnJvcl9mKCJjYW5ub3QgZGVjb2RlIGtleTogJXMiLCBwa2Fs Zyk7CisgCQlnb3RvIGRvbmU7CisgCX0KKy0JaWYgKGtleS0+dHlwZSAhPSBwa3R5cGUpIHsKKy0J CWVycm9yX2YoInR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQga2V5ICIKKy0JCSAgICAiKHJlY2Vp dmVkICVkLCBleHBlY3RlZCAlZCkiLCBrZXktPnR5cGUsIHBrdHlwZSk7CisrCWlmIChrZXktPnR5 cGUgIT0gcGt0eXBlIHx8IChzc2hrZXlfdHlwZV9wbGFpbihwa3R5cGUpID09IEtFWV9FQ0RTQSAm JgorKwkgICAgc3Noa2V5X2VjZHNhX25pZF9mcm9tX25hbWUocGthbGcpICE9IGtleS0+ZWNkc2Ff bmlkKSkgeworKwkJZXJyb3JfZigia2V5IHR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQga2V5ICIK KysJCSAgICAiKHJlY2VpdmVkICVzLCBleHBlY3RlZCAlcykiLCBzc2hrZXlfc3NoX25hbWUoa2V5 KSwgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CisgCWlmIChhdXRoMl9rZXlfYWxyZWFkeV91 c2VkKGF1dGhjdHh0LCBrZXkpKSB7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hjb25uZWN0Mi5j IGIvc3NoY29ubmVjdDIuYworLS0tIGEvc3NoY29ubmVjdDIuYwkyMDI2LTA0LTA5IDEzOjIyOjI4 LjE5MzQxMjU1MyArMDIwMAorKysrIGIvc3NoY29ubmVjdDIuYwkyMDI2LTA0LTA5IDE0OjQyOjM3 LjY0NDk0NTc2MiArMDIwMAorQEAgLTkxLDYgKzkxLDcgQEAgZXh0ZXJuIE9wdGlvbnMgb3B0aW9u czsKKyBzdGF0aWMgY2hhciAqeHh4X2hvc3Q7Cisgc3RhdGljIHN0cnVjdCBzb2NrYWRkciAqeHh4 X2hvc3RhZGRyOworIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAqeHh4X2Nvbm5f aW5mbzsKKytzdGF0aWMgaW50IGtleV90eXBlX2FsbG93ZWQoc3RydWN0IHNzaGtleSAqLCBjb25z dCBjaGFyICopOworIAorIHN0YXRpYyBpbnQKKyB2ZXJpZnlfaG9zdF9rZXlfY2FsbGJhY2soc3Ry dWN0IHNzaGtleSAqaG9zdGtleSwgc3RydWN0IHNzaCAqc3NoKQorQEAgLTEwMCw2ICsxMDEsMTAg QEAgdmVyaWZ5X2hvc3Rfa2V5X2NhbGxiYWNrKHN0cnVjdCBzc2hrZXkgKgorIAlpZiAoKHIgPSBz c2hrZXlfY2hlY2tfcnNhX2xlbmd0aChob3N0a2V5LAorIAkgICAgb3B0aW9ucy5yZXF1aXJlZF9y c2Ffc2l6ZSkpICE9IDApCisgCQlmYXRhbF9yKHIsICJCYWQgc2VydmVyIGhvc3Qga2V5Iik7Cisr CWlmICgha2V5X3R5cGVfYWxsb3dlZChob3N0a2V5LCBvcHRpb25zLmhvc3RrZXlhbGdvcml0aG1z KSkgeworKwkJZmF0YWwoIlNlcnZlciBob3N0IGtleSAlcyBub3QgaW4gSG9zdEtleUFsZ29yaXRo bXMiLAorKwkJICAgIHNzaGtleV9zc2hfbmFtZShob3N0a2V5KSk7CisrCX0KKyAJaWYgKHZlcmlm eV9ob3N0X2tleSh4eHhfaG9zdCwgeHh4X2hvc3RhZGRyLCBob3N0a2V5LAorIAkgICAgeHh4X2Nv bm5faW5mbykgIT0gMCkKKyAJCWZhdGFsKCJIb3N0IGtleSB2ZXJpZmljYXRpb24gZmFpbGVkLiIp OworQEAgLTE3NzYsMzQgKzE3ODEsMzcgQEAgbG9hZF9pZGVudGl0eV9maWxlKElkZW50aXR5ICpp ZCkKKyB9CisgCisgc3RhdGljIGludAorLWtleV90eXBlX2FsbG93ZWRfYnlfY29uZmlnKHN0cnVj dCBzc2hrZXkgKmtleSkKKytrZXlfdHlwZV9hbGxvd2VkKHN0cnVjdCBzc2hrZXkgKmtleSwgY29u c3QgY2hhciAqYWxsb3dsaXN0KQorIHsKKy0JaWYgKG1hdGNoX3BhdHRlcm5fbGlzdChzc2hrZXlf c3NoX25hbWUoa2V5KSwKKy0JICAgIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29zLCAwKSA9 PSAxKQorKwlpZiAobWF0Y2hfcGF0dGVybl9saXN0KHNzaGtleV9zc2hfbmFtZShrZXkpLCBhbGxv d2xpc3QsIDApID09IDEpCisgCQlyZXR1cm4gMTsKKyAKKyAJLyogUlNBIGtleXMvY2VydHMgbWln aHQgYmUgYWxsb3dlZCBieSBhbHRlcm5hdGUgc2lnbmF0dXJlIHR5cGVzICovCisgCXN3aXRjaCAo a2V5LT50eXBlKSB7CisgCWNhc2UgS0VZX1JTQToKKy0JCWlmIChtYXRjaF9wYXR0ZXJuX2xpc3Qo InJzYS1zaGEyLTUxMiIsCistCQkgICAgb3B0aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxnb3MsIDAp ID09IDEpCisrCQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hhMi01MTIiLCBhbGxvd2xp c3QsIDApID09IDEpCisgCQkJcmV0dXJuIDE7CistCQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KCJy c2Etc2hhMi0yNTYiLAorLQkJICAgIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29zLCAwKSA9 PSAxKQorKwkJaWYgKG1hdGNoX3BhdHRlcm5fbGlzdCgicnNhLXNoYTItMjU2IiwgYWxsb3dsaXN0 LCAwKSA9PSAxKQorIAkJCXJldHVybiAxOworIAkJYnJlYWs7CisgCWNhc2UgS0VZX1JTQV9DRVJU OgorIAkJaWYgKG1hdGNoX3BhdHRlcm5fbGlzdCgicnNhLXNoYTItNTEyLWNlcnQtdjAxQG9wZW5z c2guY29tIiwKKy0JCSAgICBvcHRpb25zLnB1YmtleV9hY2NlcHRlZF9hbGdvcywgMCkgPT0gMSkK KysJCSAgICBhbGxvd2xpc3QsIDApID09IDEpCisgCQkJcmV0dXJuIDE7CisgCQlpZiAobWF0Y2hf cGF0dGVybl9saXN0KCJyc2Etc2hhMi0yNTYtY2VydC12MDFAb3BlbnNzaC5jb20iLAorLQkJICAg IG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29zLCAwKSA9PSAxKQorKwkJICAgIGFsbG93bGlz dCwgMCkgPT0gMSkKKyAJCQlyZXR1cm4gMTsKKyAJCWJyZWFrOworIAl9CisgCXJldHVybiAwOwor IH0KKyAKKytzdGF0aWMgaW50Cisra2V5X3R5cGVfYWxsb3dlZF9ieV9jb25maWcoc3RydWN0IHNz aGtleSAqa2V5KQorK3sKKysJcmV0dXJuIGtleV90eXBlX2FsbG93ZWQoa2V5LCBvcHRpb25zLnB1 YmtleV9hY2NlcHRlZF9hbGdvcyk7CisrfQorKworIC8qIG9idGFpbiBhIGxpc3Qgb2Yga2V5cyBm cm9tIHRoZSBhZ2VudCAqLworIHN0YXRpYyBpbnQKKyBnZXRfYWdlbnRfaWRlbnRpdGllcyhzdHJ1 Y3Qgc3NoICpzc2gsIGludCAqYWdlbnRfZmRwLAoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEt ZmlsbC1kZWZhdWx0LW9wdGlvbnMtZXJyb3IucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLWZpbGwtZGVm YXVsdC1vcHRpb25zLWVycm9yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjRiODA1MDQKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTkuOXAxLWZpbGwtZGVmYXVs dC1vcHRpb25zLWVycm9yLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2RpZmYgLS1jb2xvciAtcnVO cCBhL3JlYWRjb25mLmMgYi9yZWFkY29uZi5jCistLS0gYS9yZWFkY29uZi5jCTIwMjYtMDQtMDIg MTU6MzY6NDkuNjI0Mzk0ODM2ICswMjAwCisrKysgYi9yZWFkY29uZi5jCTIwMjYtMDQtMDIgMTU6 NDM6MTUuMTE1MDQ3MTkwICswMjAwCitAQCAtMjc3OSw3ICsyNzc5LDcgQEAgZmlsbF9kZWZhdWx0 X29wdGlvbnMoT3B0aW9ucyAqIG9wdGlvbnMpCisgeworIAljaGFyICphbGxfY2lwaGVyLCAqYWxs X21hYywgKmFsbF9rZXgsICphbGxfa2V5LCAqYWxsX3NpZzsKKyAJY2hhciAqZGVmX2NpcGhlciwg KmRlZl9tYWMsICpkZWZfa2V4LCAqZGVmX2tleSwgKmRlZl9zaWc7CistCWludCByZXQgPSAwLCBy OworKwlpbnQgcmV0ID0gMDsKKyAKKyAJaWYgKG9wdGlvbnMtPmZvcndhcmRfYWdlbnQgPT0gLTEp CisgCQlvcHRpb25zLT5mb3J3YXJkX2FnZW50ID0gMDsKK0BAIC0yOTg5LDkgKzI5ODksOSBAQCBm aWxsX2RlZmF1bHRfb3B0aW9ucyhPcHRpb25zICogb3B0aW9ucykKKyAJICAgIEtFWF9GSVBTX1BL X0FMRyA6IFNTSF9BTExPV0VEX0NBX1NJR0FMR1MpLCBhbGxfc2lnKTsKKyAjZGVmaW5lIEFTU0VN QkxFKHdoYXQsIGRlZmF1bHRzLCBhbGwpIFwKKyAJZG8geyBcCistCQlpZiAoKHIgPSBrZXhfYXNz ZW1ibGVfbmFtZXMoJm9wdGlvbnMtPndoYXQsIFwKKysJCWlmICgocmV0ID0ga2V4X2Fzc2VtYmxl X25hbWVzKCZvcHRpb25zLT53aGF0LCBcCisgCQkgICAgZGVmYXVsdHMsIGFsbCkpICE9IDApIHsg XAorLQkJCWVycm9yX2ZyKHIsICIlcyIsICN3aGF0KTsgXAorKwkJCWVycm9yX2ZyKHJldCwgIiVz IiwgI3doYXQpOyBcCisgCQkJZ290byBmYWlsOyBcCisgCQl9IFwKKyAJfSB3aGlsZSAoMCkKCmRp ZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLWZpcnN0LW1hdGNoLXdpbnMucGF0Y2ggYi9vcGVuc3No LTkuOXAxLWZpcnN0LW1hdGNoLXdpbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uN2Q3NjQzNwotLS0gL2Rldi9udWxsCisrKyBiL29wZW5zc2gtOS45cDEtZmlyc3Qt bWF0Y2gtd2lucy5wYXRjaApAQCAtMCwwICsxLDEwNiBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEv cmVncmVzcy9jZmdwYXJzZS5zaCBiL3JlZ3Jlc3MvY2ZncGFyc2Uuc2gKKy0tLSBhL3JlZ3Jlc3Mv Y2ZncGFyc2Uuc2gJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBiL3Jl Z3Jlc3MvY2ZncGFyc2Uuc2gJMjAyNi0wMy0wNSAxNzozMDo1NC45NTk2OTA3NDQgKzAxMDAKK0BA IC01MSw3ICs1MSw3IEBAIGxpc3RlbmFkZHJlc3MgOjoxCisgRU9ECisgCisgKCRTVURPICR7U1NI RH0gLVQgLWYgJE9CSi9zc2hkX2NvbmZpZy4xIHwgXAorLSBncmVwICdsaXN0ZW5hZGRyZXNzICcg PiRPQkovc3NoZF9jb25maWcuMiAmJgorKyBncmVwICdebGlzdGVuYWRkcmVzcyAnID4kT0JKL3Nz aGRfY29uZmlnLjIgJiYKKyAgZGlmZiAkT0JKL3NzaGRfY29uZmlnLjAgJE9CSi9zc2hkX2NvbmZp Zy4yKSB8fCBcCisgIGZhaWwgImxpc3RlbmFkZHJlc3Mgb3JkZXIgMSIKKyAjIHRlc3QgMjogbGlz dGVuYWRkcmVzcyBmaXJzdAorQEAgLTY3LDkgKzY3LDIyIEBAIGxpc3RlbmFkZHJlc3MgOjoxCisg RU9ECisgCisgKCRTVURPICR7U1NIRH0gLVQgLWYgJE9CSi9zc2hkX2NvbmZpZy4xIHwgXAorLSBn cmVwICdsaXN0ZW5hZGRyZXNzICcgPiRPQkovc3NoZF9jb25maWcuMiAmJgorKyBncmVwICdebGlz dGVuYWRkcmVzcyAnID4kT0JKL3NzaGRfY29uZmlnLjIgJiYKKyAgZGlmZiAkT0JKL3NzaGRfY29u ZmlnLjAgJE9CSi9zc2hkX2NvbmZpZy4yKSB8fCBcCisgIGZhaWwgImxpc3RlbmFkZHJlc3Mgb3Jk ZXIgMiIKKyAKKysjIENoZWNrIGlkZW1wb3RlbmNlIG9mIE1heFN0YXJ0dXBzCisrdmVyYm9zZSAi bWF4c3RhcnR1cHMgaWRlbXBvdGVudCIKKytlY2hvICJtYXhzdGFydHVwcyAxOjI6MyIgPiAkT0JK L3NzaGRfY29uZmlnLjAKKytjYXQgPiAkT0JKL3NzaGRfY29uZmlnLjEgPDxFT0QKKyske1NTSERf S0VZU30KKytNYXhTdGFydHVwcyAxOjI6MworK01heFN0YXJ0dXBzIDg6MTY6MzIKKytFT0QKKyso JFNVRE8gJHtTU0hEfSAtVCAtZiAkT0JKL3NzaGRfY29uZmlnLjEgfCBcCisrIGdyZXAgJ15tYXhz dGFydHVwcyAnID4kT0JKL3NzaGRfY29uZmlnLjIgJiYKKysgZGlmZiAkT0JKL3NzaGRfY29uZmln LjAgJE9CSi9zc2hkX2NvbmZpZy4yKSB8fCBcCisrIGZhaWwgIm1heHN0YXJ0dXBzIGlkZW1wb3Rl bmNlIgorKworICMgY2xlYW51cAorIHJtIC1mICRPQkovc3NoZF9jb25maWcuWzAxMl0KK2RpZmYg LS1jb2xvciAtcnVOcCBhL3NlcnZjb25mLmMgYi9zZXJ2Y29uZi5jCistLS0gYS9zZXJ2Y29uZi5j CTIwMjYtMDMtMDUgMTY6MTU6NDkuMDM1Mjc1Mjk3ICswMTAwCisrKysgYi9zZXJ2Y29uZi5jCTIw MjYtMDMtMDUgMTc6MTM6MjkuOTE1ODk3MzI5ICswMTAwCitAQCAtMTM2Niw3ICsxMzY2LDcgQEAg cHJvY2Vzc19zZXJ2ZXJfY29uZmlnX2xpbmVfZGVwdGgoU2VydmVyTworICAgICBzdHJ1Y3QgaW5j bHVkZV9saXN0ICppbmNsdWRlcykKKyB7CisgCWNoYXIgKnN0ciwgKioqY2hhcmFycmF5cHRyLCAq KmNoYXJwdHIsICphcmcsICphcmcyLCAqcCwgKmtleXdvcmQ7CistCWludCBjbWRsaW5lID0gMCwg KmludHB0ciwgdmFsdWUsIHZhbHVlMiwgbiwgcG9ydCwgb2FjdGl2ZSwgcjsKKysJaW50IGNtZGxp bmUgPSAwLCAqaW50cHRyLCB2YWx1ZSwgdmFsdWUyLCB2YWx1ZTMsIG4sIHBvcnQsIG9hY3RpdmUs IHI7CisgCWludCBjYV9vbmx5ID0gMCwgZm91bmQgPSAwOworIAlTeXNsb2dGYWNpbGl0eSAqbG9n X2ZhY2lsaXR5X3B0cjsKKyAJTG9nTGV2ZWwgKmxvZ19sZXZlbF9wdHI7CitAQCAtMjA5NSwyNSAr MjA5NSwyNyBAQCBwcm9jZXNzX3NlcnZlcl9jb25maWdfbGluZV9kZXB0aChTZXJ2ZXJPCisgCQlp ZiAoIWFyZyB8fCAqYXJnID09ICdcMCcpCisgCQkJZmF0YWwoIiVzIGxpbmUgJWQ6ICVzIG1pc3Np bmcgYXJndW1lbnQuIiwKKyAJCQkgICAgZmlsZW5hbWUsIGxpbmVudW0sIGtleXdvcmQpOworKwkJ LyogYmVnaW46cmF0ZTptYXggKi8KKyAJCWlmICgobiA9IHNzY2FuZihhcmcsICIlZDolZDolZCIs CistCQkgICAgJm9wdGlvbnMtPm1heF9zdGFydHVwc19iZWdpbiwKKy0JCSAgICAmb3B0aW9ucy0+ bWF4X3N0YXJ0dXBzX3JhdGUsCistCQkgICAgJm9wdGlvbnMtPm1heF9zdGFydHVwcykpID09IDMp IHsKKy0JCQlpZiAob3B0aW9ucy0+bWF4X3N0YXJ0dXBzX2JlZ2luID4KKy0JCQkgICAgb3B0aW9u cy0+bWF4X3N0YXJ0dXBzIHx8CistCQkJICAgIG9wdGlvbnMtPm1heF9zdGFydHVwc19yYXRlID4g MTAwIHx8CistCQkJICAgIG9wdGlvbnMtPm1heF9zdGFydHVwc19yYXRlIDwgMSkKKysJCSAgICAm dmFsdWUsICZ2YWx1ZTIsICZ2YWx1ZTMpKSA9PSAzKSB7CisrCQkJaWYgKHZhbHVlID4gdmFsdWUz IHx8IHZhbHVlMiA+IDEwMCB8fCB2YWx1ZTIgPCAxKQorIAkJCQlmYXRhbCgiJXMgbGluZSAlZDog SW52YWxpZCAlcyBzcGVjLiIsCisgCQkJCSAgICBmaWxlbmFtZSwgbGluZW51bSwga2V5d29yZCk7 CistCQl9IGVsc2UgaWYgKG4gIT0gMSkKKysJCX0gZWxzZSBpZiAobiA9PSAxKSB7CisrCQkJdmFs dWUzID0gdmFsdWU7CisrCQkJdmFsdWUgPSB2YWx1ZTIgPSAtMTsKKysJCX0gZWxzZSB7CisgCQkJ ZmF0YWwoIiVzIGxpbmUgJWQ6IEludmFsaWQgJXMgc3BlYy4iLAorIAkJCSAgICBmaWxlbmFtZSwg bGluZW51bSwga2V5d29yZCk7CistCQllbHNlCistCQkJb3B0aW9ucy0+bWF4X3N0YXJ0dXBzID0g b3B0aW9ucy0+bWF4X3N0YXJ0dXBzX2JlZ2luOworLQkJaWYgKG9wdGlvbnMtPm1heF9zdGFydHVw cyA8PSAwIHx8CistCQkgICAgb3B0aW9ucy0+bWF4X3N0YXJ0dXBzX2JlZ2luIDw9IDApCisrCQl9 CisrCQlpZiAodmFsdWUzIDw9IDAgfHwgKHZhbHVlMiAhPSAtMSAmJiB2YWx1ZSA8PSAwKSkKKyAJ CQlmYXRhbCgiJXMgbGluZSAlZDogSW52YWxpZCAlcyBzcGVjLiIsCisgCQkJICAgIGZpbGVuYW1l LCBsaW5lbnVtLCBrZXl3b3JkKTsKKysJCWlmICgqYWN0aXZlcCAmJiBvcHRpb25zLT5tYXhfc3Rh cnR1cHMgPT0gLTEpIHsKKysJCQlvcHRpb25zLT5tYXhfc3RhcnR1cHNfYmVnaW4gPSB2YWx1ZTsK KysJCQlvcHRpb25zLT5tYXhfc3RhcnR1cHNfcmF0ZSA9IHZhbHVlMjsKKysJCQlvcHRpb25zLT5t YXhfc3RhcnR1cHMgPSB2YWx1ZTM7CisrCQl9CisgCQlicmVhazsKKyAKKyAJY2FzZSBzUGVyU291 cmNlTmV0QmxvY2tTaXplOgorQEAgLTIxMzMsNyArMjEzNSw3IEBAIHByb2Nlc3Nfc2VydmVyX2Nv bmZpZ19saW5lX2RlcHRoKFNlcnZlck8KKyAJCWlmIChuICE9IDEgJiYgbiAhPSAyKQorIAkJCWZh dGFsKCIlcyBsaW5lICVkOiBJbnZhbGlkICVzIHNwZWMuIiwKKyAJCQkgICAgZmlsZW5hbWUsIGxp bmVudW0sIGtleXdvcmQpOworLQkJaWYgKCphY3RpdmVwKSB7CisrCQlpZiAoKmFjdGl2ZXAgJiYg b3B0aW9ucy0+cGVyX3NvdXJjZV9tYXNrbGVuX2lwdjQgPT0gLTEpIHsKKyAJCQlvcHRpb25zLT5w ZXJfc291cmNlX21hc2tsZW5faXB2NCA9IHZhbHVlOworIAkJCW9wdGlvbnMtPnBlcl9zb3VyY2Vf bWFza2xlbl9pcHY2ID0gdmFsdWUyOworIAkJfQorQEAgLTI2MjEsNyArMjYyMyw3IEBAIHByb2Nl c3Nfc2VydmVyX2NvbmZpZ19saW5lX2RlcHRoKFNlcnZlck8KKyAJCWVsc2UgaWYgKCh2YWx1ZTIg PSBwYXJzZV9pcHFvcyhhcmcpKSA9PSAtMSkKKyAJCQlmYXRhbCgiJXMgbGluZSAlZDogQmFkICVz IHZhbHVlOiAlcyIsCisgCQkJICAgIGZpbGVuYW1lLCBsaW5lbnVtLCBrZXl3b3JkLCBhcmcpOwor LQkJaWYgKCphY3RpdmVwKSB7CisrCQlpZiAoKmFjdGl2ZXAgJiYgb3B0aW9ucy0+aXBfcW9zX2lu dGVyYWN0aXZlID09IC0xKSB7CisgCQkJb3B0aW9ucy0+aXBfcW9zX2ludGVyYWN0aXZlID0gdmFs dWU7CisgCQkJb3B0aW9ucy0+aXBfcW9zX2J1bGsgPSB2YWx1ZTI7CisgCQl9CgpkaWZmIC0tZ2l0 IGEvb3BlbnNzaC05LjlwMS1nc2lzc2gucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLWdzaXNzaC5wYXRj aAppbmRleCA0YWJiZTllLi44YWJiOWU4IDEwMDY0NAotLS0gYS9vcGVuc3NoLTkuOXAxLWdzaXNz aC5wYXRjaAorKysgYi9vcGVuc3NoLTkuOXAxLWdzaXNzaC5wYXRjaApAQCAtNzY1LDggKzc2NSw4 IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3NoLTkuOXAx L2dzcy1zZXJ2LmMKICB9CiArI2VuZGlmCiAgCi0gCiAgLyogRXh0cmFjdCB0aGUgY2xpZW50IGRl dGFpbHMgZnJvbSBhIGdpdmVuIGNvbnRleHQuIFRoaXMgY2FuIG9ubHkgcmVsaWFibHkKKyAgKiBi ZSBjYWxsZWQgb25jZSBmb3IgYSBjb250ZXh0ICovCiBAQCAtMzk0LDIxICs0MjgsMjQgQEAKICAJ Z3NzX2J1ZmZlcl9kZXNjIGVuYW1lID0gR1NTX0NfRU1QVFlfQlVGRkVSOwogIApAQCAtOTIzLDcg KzkyMyw3IEBAIGRpZmYgLU51ciBvcGVuc3NoLTkuOXAxLm9yaWcvZ3NzLXNlcnYuYyBvcGVuc3No LTkuOXAxL2dzcy1zZXJ2LmMKICsJCQlnc3NfcmVsZWFzZV9uYW1lKCZsbWluLCAmZ3NzYXBpX2Ns aWVudC5jdHhfbmFtZSk7CiAgCiAgCQkJaWYgKGdzc2FwaV9jbGllbnQuaW5kaWNhdG9ycyAhPSBO VUxMKSB7Ci0gCQkJCWZvcihpID0gMDsgZ3NzYXBpX2NsaWVudC5pbmRpY2F0b3JzW2ldICE9IE5V TEw7IGkrKykgeworIAkJCQlmb3IgKGkgPSAwOyBnc3NhcGlfY2xpZW50LmluZGljYXRvcnNbaV0g IT0gTlVMTDsgaSsrKQogQEAgLTU3OSw2ICs2NDksMjQgQEAKICAJcmV0dXJuICgwKTsKICB9CkBA IC0xODYzLDkgKzE4NjMsOSBAQCBkaWZmIC1OdXIgb3BlbnNzaC05LjlwMS5vcmlnL3NlcnZjb25m LmMgb3BlbnNzaC05LjlwMS9zZXJ2Y29uZi5jCiAgCW9wdGlvbnMtPmdzc19kZWxlZ19jcmVkcyA9 IC0xOwogIAlvcHRpb25zLT5nc3Nfc3RyaWN0X2FjY2VwdG9yID0gLTE7CiArCW9wdGlvbnMtPmdz aV9hbGxvd19saW1pdGVkX3Byb3h5ID0gLTE7CisgCW9wdGlvbnMtPmdzc19pbmRpY2F0b3JzID0g TlVMTDsKICAJb3B0aW9ucy0+Z3NzX3N0b3JlX3Jla2V5ID0gLTE7CiAgCW9wdGlvbnMtPmdzc19r ZXhfYWxnb3JpdGhtcyA9IE5VTEw7Ci0gCW9wdGlvbnMtPmdzc19pbmRpY2F0b3JzID0gTlVMTDsK IEBAIC0zMTcsNiArMzE5LDggQEAKICAJCW9wdGlvbnMtPnVzZV9wYW0gPSAwOwogIAlpZiAob3B0 aW9ucy0+cGFtX3NlcnZpY2VfbmFtZSA9PSBOVUxMKQoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45 cDEtbWF4c3RhcnR1cHMtbWlzdHJhY2tpbmcucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLW1heHN0YXJ0 dXBzLW1pc3RyYWNraW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjBlOTI5MDMKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTkuOXAxLW1heHN0YXJ0dXBzLW1p c3RyYWNraW5nLnBhdGNoCkBAIC0wLDAgKzEsNzMgQEAKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3Ny Y2xpbWl0LmMgYi9zcmNsaW1pdC5jCistLS0gYS9zcmNsaW1pdC5jCTIwMjQtMDktMjAgMDA6MjA6 NDguMDAwMDAwMDAwICswMjAwCisrKysgYi9zcmNsaW1pdC5jCTIwMjYtMDMtMDYgMTM6MzA6NDgu NDA4MzA5NjE5ICswMTAwCitAQCAtNDI3LDcgKzQyNyw5IEBAIHNyY2xpbWl0X3BlbmFsaXNlKHN0 cnVjdCB4YWRkciAqYWRkciwgaW4KKyAJCQlwZW5hbHR5LT5hY3RpdmUgPSAxOworIAkJaWYgKFJC X0lOU0VSVChwZW5hbHRpZXNfYnlfZXhwaXJ5LCBieV9leHBpcnksIHBlbmFsdHkpICE9IE5VTEwp CisgCQkJZmF0YWxfZigiaW50ZXJuYWwgZXJyb3I6ICVzIHBlbmFsdHkgdGFibGVzIGNvcnJ1cHQi LCB0KTsKKy0JCXZlcmJvc2VfZigiJXM6IG5ldyAlcyAlcyBwZW5hbHR5IG9mICVkIHNlY29uZHMg Zm9yICVzIiwgdCwKKysJCWRvX2xvZzJfZihwZW5hbHR5LT5hY3RpdmUgPworKwkJICAgIFNZU0xP R19MRVZFTF9JTkZPIDogU1lTTE9HX0xFVkVMX1ZFUkJPU0UsCisrCQkgICAgIiVzOiBuZXcgJXMg JXMgcGVuYWx0eSBvZiAlZCBzZWNvbmRzIGZvciAlcyIsIHQsCisgCQkgICAgYWRkcm5ldG1hc2ss IHBlbmFsdHktPmFjdGl2ZSA/ICJhY3RpdmUiIDogImRlZmVycmVkIiwKKyAJCSAgICBwZW5hbHR5 X3NlY3MsIHJlYXNvbik7CisgCQlpZiAoKysoKm5wZW5hbHRpZXNwKSA+IChzaXplX3QpbWF4X3Nv dXJjZXMpCitAQCAtNDQ2LDcgKzQ0OCw3IEBAIHNyY2xpbWl0X3BlbmFsaXNlKHN0cnVjdCB4YWRk ciAqYWRkciwgaW4KKyAJCWV4aXN0aW5nLT5leHBpcnkgPSBub3cgKyBwZW5hbHR5X2NmZy5wZW5h bHR5X21heDsKKyAJaWYgKGV4aXN0aW5nLT5leHBpcnkgLSBub3cgPiBwZW5hbHR5X2NmZy5wZW5h bHR5X21pbiAmJgorIAkgICAgIWV4aXN0aW5nLT5hY3RpdmUpIHsKKy0JCXZlcmJvc2VfZigiJXM6 IGFjdGl2YXRpbmcgJXMgcGVuYWx0eSBvZiAlbGxkIHNlY29uZHMgZm9yICVzIiwKKysJCWxvZ2l0 X2YoIiVzOiBhY3RpdmF0aW5nICVzIHBlbmFsdHkgb2YgJWxsZCBzZWNvbmRzIGZvciAlcyIsCisg CQkgICAgYWRkcm5ldG1hc2ssIHQsIChsb25nIGxvbmcpKGV4aXN0aW5nLT5leHBpcnkgLSBub3cp LAorIAkJICAgIHJlYXNvbik7CisgCQlleGlzdGluZy0+YWN0aXZlID0gMTsKK2RpZmYgLS1jb2xv ciAtcnVOcCBhL3NzaGQuYyBiL3NzaGQuYworLS0tIGEvc3NoZC5jCTIwMjYtMDMtMDYgMTM6MTA6 NTIuNjUzNjE3NTQ4ICswMTAwCisrKysgYi9zc2hkLmMJMjAyNi0wMy0wNiAxMzoyNDo1MC44NjUw Nzk5OTggKzAxMDAKK0BAIC0yOTEsOCArMjkxLDEwIEBAIGNoaWxkX2ZpbmlzaChzdHJ1Y3QgZWFy bHlfY2hpbGQgKmNoaWxkKQorIHsKKyAJaWYgKGNoaWxkcmVuX2FjdGl2ZSA9PSAwKQorIAkJZmF0 YWxfZigiaW50ZXJuYWwgZXJyb3I6IGNoaWxkcmVuX2FjdGl2ZSB1bmRlcmZsb3ciKTsKKy0JaWYg KGNoaWxkLT5waXBlZmQgIT0gLTEpCisrCWlmIChjaGlsZC0+cGlwZWZkICE9IC0xKSB7CisrCQlz cmNsaW1pdF9kb25lKGNoaWxkLT5waXBlZmQpOworIAkJY2xvc2UoY2hpbGQtPnBpcGVmZCk7Cisr CX0KKyAJZnJlZShjaGlsZC0+aWQpOworIAltZW1zZXQoY2hpbGQsICdcMCcsIHNpemVvZigqY2hp bGQpKTsKKyAJY2hpbGQtPnBpcGVmZCA9IC0xOworQEAgLTMxMSw2ICszMTMsNyBAQCBjaGlsZF9j bG9zZShzdHJ1Y3QgZWFybHlfY2hpbGQgKmNoaWxkLCBpCisgCWlmICghcXVpZXQpCisgCQlkZWJ1 Z19mKCJlbnRlciVzIiwgZm9yY2VfZmluYWwgPyAiIChmb3JjaW5nKSIgOiAiIik7CisgCWlmIChj aGlsZC0+cGlwZWZkICE9IC0xKSB7CisrCQlzcmNsaW1pdF9kb25lKGNoaWxkLT5waXBlZmQpOwor IAkJY2xvc2UoY2hpbGQtPnBpcGVmZCk7CisgCQljaGlsZC0+cGlwZWZkID0gLTE7CisgCX0KK0BA IC05NzgsMTAgKzk4MSwxMSBAQCBzZXJ2ZXJfYWNjZXB0X2xvb3AoaW50ICpzb2NrX2luLCBpbnQg KnNvCisgCQkJCX0KKyAJCQkJLyogRkFMTFRIUk9VR0ggKi8KKyAJCQljYXNlIDA6CistCQkJCS8q IGNoaWxkIGV4aXRlZCBwcmVhdXRoICovCisrCQkJCS8qIGNoaWxkIGNsb3NlZCBwaXBlICovCisg CQkJCWlmIChjaGlsZHJlbltpXS5lYXJseSkKKyAJCQkJCWxpc3RlbmluZy0tOworLQkJCQlzcmNs aW1pdF9kb25lKGNoaWxkcmVuW2ldLnBpcGVmZCk7CisrCQkJCWRlYnVnM19mKCJjaGlsZCAlbHUg Zm9yICVzIGNsb3NlZCBwaXBlIiwKKysJCQkJICAgIChsb25nKWNoaWxkcmVuW2ldLnBpZCwgY2hp bGRyZW5baV0uaWQpOworIAkJCQljaGlsZF9jbG9zZSgmKGNoaWxkcmVuW2ldKSwgMCwgMCk7Cisg CQkJCWJyZWFrOworIAkJCWNhc2UgMToKK0BAIC0xMDAzLDYgKzEwMDcsMTIgQEAgc2VydmVyX2Fj Y2VwdF9sb29wKGludCAqc29ja19pbiwgaW50ICpzbworIAkJCQkJICAgICJjaGlsZCAlbGQgZm9y ICVzIGluIHN0YXRlICVkIiwKKyAJCQkJCSAgICAoaW50KWMsIChsb25nKWNoaWxkcmVuW2ldLnBp ZCwKKyAJCQkJCSAgICBjaGlsZHJlbltpXS5pZCwgY2hpbGRyZW5baV0uZWFybHkpOworKworKwkJ CQkJaWYgKGNoaWxkcmVuW2ldLmVhcmx5KQorKwkJCQkJCWxpc3RlbmluZy0tOworKwkJCQkJaWYg KGNoaWxkcmVuW2ldLnBpZCA+IDApCisrCQkJCQkJa2lsbChjaGlsZHJlbltpXS5waWQsIFNJR1RF Uk0pOworKwkJCQkJY2hpbGRfY2xvc2UoJihjaGlsZHJlbltpXSksIDAsIDApOworIAkJCQl9Cisg CQkJCWJyZWFrOworIAkJCX0KCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLW11eC1hc2twYXNz LWNoZWNrLnBhdGNoIGIvb3BlbnNzaC05LjlwMS1tdXgtYXNrcGFzcy1jaGVjay5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTc2MjQzCi0tLSAvZGV2L251bGwKKysr IGIvb3BlbnNzaC05LjlwMS1tdXgtYXNrcGFzcy1jaGVjay5wYXRjaApAQCAtMCwwICsxLDIwIEBA CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9tdXguYyBiL211eC5jCistLS0gYS9tdXguYwkyMDI0LTA5 LTIwIDAwOjIwOjQ4LjAwMDAwMDAwMCArMDIwMAorKysrIGIvbXV4LmMJMjAyNi0wNC0wOSAxNTow MjozNi4wMTYxOTg4MTQgKzAyMDAKK0BAIC0xMTM3LDYgKzExMzcsMTYgQEAgbXV4X21hc3Rlcl9w cm9jZXNzX3Byb3h5KHN0cnVjdCBzc2ggKnNzaAorIAorIAlkZWJ1Z19mKCJjaGFubmVsICVkOiBw cm94eSByZXF1ZXN0IiwgYy0+c2VsZik7CisgCisrCWlmIChvcHRpb25zLmNvbnRyb2xfbWFzdGVy ID09IFNTSENUTF9NQVNURVJfQVNLIHx8CisrCSAgICBvcHRpb25zLmNvbnRyb2xfbWFzdGVyID09 IFNTSENUTF9NQVNURVJfQVVUT19BU0spIHsKKysJCWlmICghYXNrX3Blcm1pc3Npb24oIkFsbG93 IG11bHRpcGxleCBwcm94eSBjb25uZWN0aW9uPyIpKSB7CisrCQkJZGVidWcyX2YoInByb3h5IHJl ZnVzZWQgYnkgdXNlciIpOworKwkJCXJlcGx5X2Vycm9yKHJlcGx5LCBNVVhfU19QRVJNSVNTSU9O X0RFTklFRCwgcmlkLAorKwkJCSAgICAiUGVybWlzc2lvbiBkZW5pZWQiKTsKKysJCQlyZXR1cm4g MDsKKysJCX0KKysJfQorKworIAljLT5tdXhfcmNiID0gY2hhbm5lbF9wcm94eV9kb3duc3RyZWFt OworIAlpZiAoKHIgPSBzc2hidWZfcHV0X3UzMihyZXBseSwgTVVYX1NfUFJPWFkpKSAhPSAwIHx8 CisgCSAgICAociA9IHNzaGJ1Zl9wdXRfdTMyKHJlcGx5LCByaWQpKSAhPSAwKQoKZGlmZiAtLWdp dCBhL29wZW5zc2gtOS45cDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRj aCBiL29wZW5zc2gtOS45cDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVlNDE1Ci0tLSAvZGV2L251 bGwKKysrIGIvb3BlbnNzaC05LjlwMS1wcm94eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tz LnBhdGNoCkBAIC0wLDAgKzEsNDAyIEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9yZWFkY29uZi5j IGIvcmVhZGNvbmYuYworLS0tIGEvcmVhZGNvbmYuYwkyMDI2LTA0LTEwIDE1OjQyOjUwLjY5Mzcy NTgyMCArMDIwMAorKysrIGIvcmVhZGNvbmYuYwkyMDI2LTA0LTEwIDE1OjQ5OjU3LjQ0MTExMDI4 NyArMDIwMAorQEAgLTE1MzMsOSArMTUzMyw2IEBAIHBhcnNlX2NoYXJfYXJyYXk6CisgCisgCWNh c2Ugb1Byb3h5Q29tbWFuZDoKKyAJCWNoYXJwdHIgPSAmb3B0aW9ucy0+cHJveHlfY29tbWFuZDsK Ky0JCS8qIElnbm9yZSBQcm94eUNvbW1hbmQgaWYgUHJveHlKdW1wIGFscmVhZHkgc3BlY2lmaWVk ICovCistCQlpZiAob3B0aW9ucy0+anVtcF9ob3N0ICE9IE5VTEwpCistCQkJY2hhcnB0ciA9ICZv cHRpb25zLT5qdW1wX2hvc3Q7IC8qIFNraXAgYmVsb3cgKi8KKyBwYXJzZV9jb21tYW5kOgorIAkJ aWYgKHN0ciA9PSBOVUxMKSB7CisgCQkJZXJyb3IoIiUuMjAwcyBsaW5lICVkOiBNaXNzaW5nIGFy Z3VtZW50LiIsCitAQCAtMTU1Niw3ICsxNTUzLDcgQEAgcGFyc2VfY29tbWFuZDoKKyAJCX0KKyAJ CWxlbiA9IHN0cnNwbihzdHIsIFdISVRFU1BBQ0UgIj0iKTsKKyAJCS8qIFhYWCB1c2UgYXJndj8g Ki8KKy0JCWlmIChwYXJzZV9qdW1wKHN0ciArIGxlbiwgb3B0aW9ucywgKmFjdGl2ZXApID09IC0x KSB7CisrCQlpZiAocGFyc2VfanVtcChzdHIgKyBsZW4sIG9wdGlvbnMsIGNtZGxpbmUsICphY3Rp dmVwKSA9PSAtMSkgeworIAkJCWVycm9yKCIlLjIwMHMgbGluZSAlZDogSW52YWxpZCBQcm94eUp1 bXAgXCIlc1wiIiwKKyAJCQkgICAgZmlsZW5hbWUsIGxpbmVudW0sIHN0ciArIGxlbik7CisgCQkJ Z290byBvdXQ7CitAQCAtMzM3MCw2NSArMzM2NywxMTYgQEAgcGFyc2VfZm9yd2FyZChzdHJ1Y3Qg Rm9yd2FyZCAqZndkLCBjb25zdAorIH0KKyAKKyBpbnQKKy1wYXJzZV9qdW1wKGNvbnN0IGNoYXIg KnMsIE9wdGlvbnMgKm8sIGludCBhY3RpdmUpCisrc3NoX3ZhbGlkX2hvc3RuYW1lKGNvbnN0IGNo YXIgKnMpCisgeworLQljaGFyICpvcmlnLCAqc2R1cCwgKmNwOworLQljaGFyICpob3N0ID0gTlVM TCwgKnVzZXIgPSBOVUxMOworLQlpbnQgciwgcmV0ID0gLTEsIHBvcnQgPSAtMSwgZmlyc3Q7Cisr CXNpemVfdCBpOworIAorLQlhY3RpdmUgJj0gby0+cHJveHlfY29tbWFuZCA9PSBOVUxMICYmIG8t Pmp1bXBfaG9zdCA9PSBOVUxMOworKwlpZiAoKnMgPT0gJy0nKQorKwkJcmV0dXJuIDA7CisrCWZv ciAoaSA9IDA7IHNbaV0gIT0gMDsgaSsrKSB7CisrCQlpZiAoc3RyY2hyKCInYFwiJFxcOyY8Pnwo KXt9LCIsIHNbaV0pICE9IE5VTEwgfHwKKysJCSAgICBpc3NwYWNlKCh1X2NoYXIpc1tpXSkgfHwg aXNjbnRybCgodV9jaGFyKXNbaV0pKQorKwkJCXJldHVybiAwOworKwl9CisrCXJldHVybiAxOwor K30KKyAKKy0Jb3JpZyA9IHNkdXAgPSB4c3RyZHVwKHMpOworK2ludAorK3NzaF92YWxpZF9ydXNl cihjb25zdCBjaGFyICpzKQorK3sKKysJc2l6ZV90IGk7CisrCisrCWlmICgqcyA9PSAnLScpCisr CQlyZXR1cm4gMDsKKysJZm9yIChpID0gMDsgc1tpXSAhPSAwOyBpKyspIHsKKysJCWlmIChpc2Nu dHJsKCh1X2NoYXIpc1tpXSkpCisrCQkJcmV0dXJuIDA7CisrCQlpZiAoc3RyY2hyKCInYFwiOyY8 PnwoKXt9Iiwgc1tpXSkgIT0gTlVMTCkKKysJCQlyZXR1cm4gMDsKKysJCS8qIERpc2FsbG93ICct JyBhZnRlciB3aGl0ZXNwYWNlICovCisrCQlpZiAoaXNzcGFjZSgodV9jaGFyKXNbaV0pICYmIHNb aSArIDFdID09ICctJykKKysJCQlyZXR1cm4gMDsKKysJCS8qIERpc2FsbG93IFwgaW4gbGFzdCBw b3NpdGlvbiAqLworKwkJaWYgKHNbaV0gPT0gJ1xcJyAmJiBzW2kgKyAxXSA9PSAnXDAnKQorKwkJ CXJldHVybiAwOworKwl9CisrCXJldHVybiAxOworK30KKysKKytpbnQKKytwYXJzZV9qdW1wKGNv bnN0IGNoYXIgKnMsIE9wdGlvbnMgKm8sIGludCBzdHJpY3QsIGludCBhY3RpdmUpCisreworKwlj aGFyICpvcmlnID0gTlVMTCwgKnNkdXAgPSBOVUxMLCAqY3A7CisrCWNoYXIgKnRtcF91c2VyID0g TlVMTCwgKnRtcF9ob3N0ID0gTlVMTCwgKmhvc3QgPSBOVUxMLCAqdXNlciA9IE5VTEw7CisrCWlu dCByLCByZXQgPSAtMSwgdG1wX3BvcnQgPSAtMSwgcG9ydCA9IC0xLCBmaXJzdCA9IDE7CisrCisr CWlmIChzdHJjYXNlY21wKHMsICJub25lIikgPT0gMCkgeworKwkJaWYgKGFjdGl2ZSAmJiBvLT5q dW1wX2hvc3QgPT0gTlVMTCkgeworKwkJCW8tPmp1bXBfaG9zdCA9IHhzdHJkdXAoIm5vbmUiKTsK KysJCQlvLT5qdW1wX3BvcnQgPSAwOworKwkJfQorKwkJcmV0dXJuIDA7CisrCX0KKyAKKy0JLyog UmVtb3ZlIGNvbW1lbnQgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgKi8KKysJb3JpZyA9IHhzdHJk dXAocyk7CisgCWlmICgoY3AgPSBzdHJjaHIob3JpZywgJyMnKSkgIT0gTlVMTCkKKyAJCSpjcCA9 ICdcMCc7CisgCXJ0cmltKG9yaWcpOworIAorLQlmaXJzdCA9IGFjdGl2ZTsKKysJYWN0aXZlICY9 IG8tPnByb3h5X2NvbW1hbmQgPT0gTlVMTCAmJiBvLT5qdW1wX2hvc3QgPT0gTlVMTDsKKysJc2R1 cCA9IHhzdHJkdXAob3JpZyk7CisgCWRvIHsKKy0JCWlmIChzdHJjYXNlY21wKHMsICJub25lIikg PT0gMCkKKy0JCQlicmVhazsKKysJCS8qIFdvcmsgYmFja3dhcmRzIHRocm91Z2ggc3RyaW5nICov CisgCQlpZiAoKGNwID0gc3RycmNocihzZHVwLCAnLCcpKSA9PSBOVUxMKQorIAkJCWNwID0gc2R1 cDsgLyogbGFzdCAqLworIAkJZWxzZQorIAkJCSpjcCsrID0gJ1wwJzsKKyAKKy0JCWlmIChmaXJz dCkgeworLQkJCS8qIEZpcnN0IGFyZ3VtZW50IGFuZCBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZSAq LworLQkJCXIgPSBwYXJzZV9zc2hfdXJpKGNwLCAmdXNlciwgJmhvc3QsICZwb3J0KTsKKy0JCQlp ZiAociA9PSAtMSB8fCAociA9PSAxICYmCistCQkJICAgIHBhcnNlX3VzZXJfaG9zdF9wb3J0KGNw LCAmdXNlciwgJmhvc3QsICZwb3J0KSAhPSAwKSkKKysJCXIgPSBwYXJzZV9zc2hfdXJpKGNwLCAm dG1wX3VzZXIsICZ0bXBfaG9zdCwgJnRtcF9wb3J0KTsKKysJCWlmIChyID09IC0xIHx8IChyID09 IDEgJiYgcGFyc2VfdXNlcl9ob3N0X3BvcnQoY3AsCisrCQkgICAgJnRtcF91c2VyLCAmdG1wX2hv c3QsICZ0bXBfcG9ydCkgIT0gMCkpCisrCQkJZ290byBvdXQ7IC8qIGVycm9yIGFscmVhZHkgbG9n Z2VkICovCisrCQlpZiAoc3RyaWN0KSB7CisrCQkJaWYgKCFzc2hfdmFsaWRfaG9zdG5hbWUodG1w X2hvc3QpKSB7CisrCQkJCWVycm9yX2YoImludmFsaWQgaG9zdG5hbWUgXCIlc1wiIiwgdG1wX2hv c3QpOworIAkJCQlnb3RvIG91dDsKKy0JCX0gZWxzZSB7CistCQkJLyogU3Vic2VxdWVudCBhcmd1 bWVudCBvciBpbmFjdGl2ZSBjb25maWd1cmF0aW9uICovCistCQkJciA9IHBhcnNlX3NzaF91cmko Y3AsIE5VTEwsIE5VTEwsIE5VTEwpOworLQkJCWlmIChyID09IC0xIHx8IChyID09IDEgJiYKKy0J CQkgICAgcGFyc2VfdXNlcl9ob3N0X3BvcnQoY3AsIE5VTEwsIE5VTEwsIE5VTEwpICE9IDApKQor KwkJCX0KKysJCQlpZiAodG1wX3VzZXIgIT0gTlVMTCAmJiAhc3NoX3ZhbGlkX3J1c2VyKHRtcF91 c2VyKSkgeworKwkJCQllcnJvcl9mKCJpbnZhbGlkIHVzZXJuYW1lIFwiJXNcIiIsIHRtcF91c2Vy KTsKKyAJCQkJZ290byBvdXQ7CisrCQkJfQorKwkJfQorKwkJaWYgKGZpcnN0KSB7CisrCQkJdXNl ciA9IHRtcF91c2VyOworKwkJCWhvc3QgPSB0bXBfaG9zdDsKKysJCQlwb3J0ID0gdG1wX3BvcnQ7 CisrCQkJdG1wX3VzZXIgPSB0bXBfaG9zdCA9IE5VTEw7IC8qIHRyYW5zZmVycmVkICovCisgCQl9 CisgCQlmaXJzdCA9IDA7IC8qIG9ubHkgY2hlY2sgc3ludGF4IGZvciBzdWJzZXF1ZW50IGhvc3Rz ICovCisrCQlmcmVlKHRtcF91c2VyKTsKKysJCWZyZWUodG1wX2hvc3QpOworKwkJdG1wX3VzZXIg PSB0bXBfaG9zdCA9IE5VTEw7CisrCQl0bXBfcG9ydCA9IC0xOworIAl9IHdoaWxlIChjcCAhPSBz ZHVwKTsKKysKKyAJLyogc3VjY2VzcyAqLworIAlpZiAoYWN0aXZlKSB7CistCQlpZiAoc3RyY2Fz ZWNtcChzLCAibm9uZSIpID09IDApIHsKKy0JCQlvLT5qdW1wX2hvc3QgPSB4c3RyZHVwKCJub25l Iik7CistCQkJby0+anVtcF9wb3J0ID0gMDsKKy0JCX0gZWxzZSB7CistCQkJby0+anVtcF91c2Vy ID0gdXNlcjsKKy0JCQlvLT5qdW1wX2hvc3QgPSBob3N0OworLQkJCW8tPmp1bXBfcG9ydCA9IHBv cnQ7CistCQkJby0+cHJveHlfY29tbWFuZCA9IHhzdHJkdXAoIm5vbmUiKTsKKy0JCQl1c2VyID0g aG9zdCA9IE5VTEw7CistCQkJaWYgKChjcCA9IHN0cnJjaHIocywgJywnKSkgIT0gTlVMTCAmJiBj cCAhPSBzKSB7CistCQkJCW8tPmp1bXBfZXh0cmEgPSB4c3RyZHVwKHMpOworLQkJCQlvLT5qdW1w X2V4dHJhW2NwIC0gc10gPSAnXDAnOworLQkJCX0KKysJCW8tPmp1bXBfdXNlciA9IHVzZXI7Cisr CQlvLT5qdW1wX2hvc3QgPSBob3N0OworKwkJby0+anVtcF9wb3J0ID0gcG9ydDsKKysJCW8tPnBy b3h5X2NvbW1hbmQgPSB4c3RyZHVwKCJub25lIik7CisrCQl1c2VyID0gaG9zdCA9IE5VTEw7IC8q IHRyYW5zZmVycmVkICovCisrCQlpZiAob3JpZyAhPSBOVUxMICYmIChjcCA9IHN0cnJjaHIob3Jp ZywgJywnKSkgIT0gTlVMTCkgeworKwkJCW8tPmp1bXBfZXh0cmEgPSB4c3RyZHVwKG9yaWcpOwor KwkJCW8tPmp1bXBfZXh0cmFbY3AgLSBvcmlnXSA9ICdcMCc7CisgCQl9CisgCX0KKyAJcmV0ID0g MDsKKyAgb3V0OgorIAlmcmVlKG9yaWcpOworKwlmcmVlKHNkdXApOworKwlmcmVlKHRtcF91c2Vy KTsKKysJZnJlZSh0bXBfaG9zdCk7CisgCWZyZWUodXNlcik7CisgCWZyZWUoaG9zdCk7CisgCXJl dHVybiByZXQ7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9yZWFkY29uZi5oIGIvcmVhZGNvbmYuaAor LS0tIGEvcmVhZGNvbmYuaAkyMDI2LTA0LTEwIDE1OjQyOjUwLjQ3MDY5NzcxNCArMDIwMAorKysr IGIvcmVhZGNvbmYuaAkyMDI2LTA0LTEwIDE1OjQ5OjU3LjQ0MjExMDMwNiArMDIwMAorQEAgLTI0 OSw3ICsyNDksOSBAQCBpbnQJIHByb2Nlc3NfY29uZmlnX2xpbmUoT3B0aW9ucyAqLCBzdHJ1Cisg aW50CSByZWFkX2NvbmZpZ19maWxlKGNvbnN0IGNoYXIgKiwgc3RydWN0IHBhc3N3ZCAqLCBjb25z dCBjaGFyICosCisgICAgIGNvbnN0IGNoYXIgKiwgT3B0aW9ucyAqLCBpbnQsIGludCAqKTsKKyBp bnQJIHBhcnNlX2ZvcndhcmQoc3RydWN0IEZvcndhcmQgKiwgY29uc3QgY2hhciAqLCBpbnQsIGlu dCk7CistaW50CSBwYXJzZV9qdW1wKGNvbnN0IGNoYXIgKiwgT3B0aW9ucyAqLCBpbnQpOworK2lu dAkgc3NoX3ZhbGlkX2hvc3RuYW1lKGNvbnN0IGNoYXIgKik7CisraW50CSBzc2hfdmFsaWRfcnVz ZXIoY29uc3QgY2hhciAqKTsKKytpbnQJIHBhcnNlX2p1bXAoY29uc3QgY2hhciAqLCBPcHRpb25z ICosIGludCwgaW50KTsKKyBpbnQJIHBhcnNlX3NzaF91cmkoY29uc3QgY2hhciAqLCBjaGFyICoq LCBjaGFyICoqLCBpbnQgKik7CisgaW50CSBkZWZhdWx0X3NzaF9wb3J0KHZvaWQpOworIGludAkg b3B0aW9uX2NsZWFyX29yX25vbmUoY29uc3QgY2hhciAqKTsKK2RpZmYgLS1jb2xvciAtcnVOcCBh L3JlZ3Jlc3MvTWFrZWZpbGUgYi9yZWdyZXNzL01ha2VmaWxlCistLS0gYS9yZWdyZXNzL01ha2Vm aWxlCTIwMjYtMDQtMTAgMTU6NDI6NTAuNTMzODE1NzAyICswMjAwCisrKysgYi9yZWdyZXNzL01h a2VmaWxlCTIwMjYtMDQtMTAgMTY6MDc6MzAuNTY2MDk0NDUwICswMjAwCitAQCAtMTExLDcgKzEx MSw4IEBAIExURVNUUz0gCWNvbm5lY3QgXAorIAkJYWdlbnQtcGtjczExLXJlc3RyaWN0IFwKKyAJ CWFnZW50LXBrY3MxMS1jZXJ0IFwKKyAJCXBlbmFsdHkgXAorLQkJcGVuYWx0eS1leHBpcmUKKysJ CXBlbmFsdHktZXhwaXJlIFwKKysJCXByb3h5anVtcAorIAorIElOVEVST1BfVEVTVFM9CXB1dHR5 LXRyYW5zZmVyIHB1dHR5LWNpcGhlcnMgcHV0dHkta2V4IGNvbmNoLWNpcGhlcnMKKyBJTlRFUk9Q X1RFU1RTKz0JZHJvcGJlYXItY2lwaGVycyBkcm9wYmVhci1rZXgKK2RpZmYgLS1jb2xvciAtcnVO cCBhL3JlZ3Jlc3MvcHJveHlqdW1wLnNoIGIvcmVncmVzcy9wcm94eWp1bXAuc2gKKy0tLSBhL3Jl Z3Jlc3MvcHJveHlqdW1wLnNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisr KysgYi9yZWdyZXNzL3Byb3h5anVtcC5zaAkyMDI2LTA0LTEwIDE2OjA3OjU1LjIyNTk1ODIwNiAr MDIwMAorQEAgLTAsMCArMSwxMDIgQEAKKysjCSRPcGVuQlNEOiBwcm94eWp1bXAuc2gsdiAxLjEg MjAyNi8wMy8zMCAwNzoxOTowMiBkam0gRXhwICQKKysjCVBsYWNlZCBpbiB0aGUgUHVibGljIERv bWFpbi4KKysKKyt0aWQ9InByb3h5anVtcCIKKysKKysjIFBhcnNpbmcgdGVzdHMKKyt2ZXJib3Nl ICJiYXNpYyBwYXJzaW5nIgorK2ZvciBqc3BlYyBpbiBcCisrCSJqdW1wMSIgXAorKwkidXNlckBq dW1wMSIgXAorKwkianVtcDE6MjIyMiIgXAorKwkidXNlckBqdW1wMToyMjIyIiBcCisrCSJqdW1w MSxqdW1wMiIgXAorKwkidXNlcjFAanVtcDE6MjIyMSx1c2VyMkBqdW1wMjoyMjIyIiBcCisrCSJz c2g6Ly91c2VyQGhvc3Q6MjIyMyIgXAorKwk7IGRvCisrCWNhc2UgIiRqc3BlYyIgaW4KKysJImp1 bXAxIikJCWV4cGVjdGVkPSJqdW1wMSIgOzsKKysJInVzZXJAanVtcDEiKQkJZXhwZWN0ZWQ9InVz ZXJAanVtcDEiIDs7CisrCSJqdW1wMToyMjIyIikJCWV4cGVjdGVkPSJqdW1wMToyMjIyIiA7Owor KwkidXNlckBqdW1wMToyMjIyIikJZXhwZWN0ZWQ9InVzZXJAanVtcDE6MjIyMiIgOzsKKysJImp1 bXAxLGp1bXAyIikJCWV4cGVjdGVkPSJqdW1wMSxqdW1wMiIgOzsKKysJInVzZXIxQGp1bXAxOjIy MjEsdXNlcjJAanVtcDI6MjIyMiIpCisrCQlleHBlY3RlZD0idXNlcjFAanVtcDE6MjIyMSx1c2Vy MkBqdW1wMjoyMjIyIiA7OworKwkic3NoOi8vdXNlckBob3N0OjIyMjMiKQlleHBlY3RlZD0idXNl ckBob3N0OjIyMjMiIDs7CisrCWVzYWMKKysJZj1gJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Qcm94 eUp1bXA9IiRqc3BlYyIgc29tZWhvc3QgfCBcCisrCQlhd2sgJy9ecHJveHlqdW1wIC97cHJpbnQg JDJ9J2AKKysJaWYgWyAiJGYiICE9ICIkZXhwZWN0ZWQiIF07IHRoZW4KKysJCWZhaWwgIlByb3h5 SnVtcCAkanNwZWM6IGV4cGVjdGVkICRleHBlY3RlZCwgZ290ICRmIgorKwlmaQorKwlmPWAke1NT SH0gLUdGIC9kZXYvbnVsbCAtSiAiJGpzcGVjIiBzb21laG9zdCB8IFwKKysJCWF3ayAnL15wcm94 eWp1bXAgL3twcmludCAkMn0nYAorKwlpZiBbICIkZiIgIT0gIiRleHBlY3RlZCIgXTsgdGhlbgor KwkJZmFpbCAic3NoIC1KICRqc3BlYzogZXhwZWN0ZWQgJGV4cGVjdGVkLCBnb3QgJGYiCisrCWZp CisrZG9uZQorKworK3ZlcmJvc2UgInByZWNlZGVuY2UiCisrZj1gJHtTU0h9IC1HRiAvZGV2L251 bGwgLW9Qcm94eUp1bXA9bm9uZSAtb1Byb3h5SnVtcD1qdW1wMSBzb21laG9zdCB8IFwKKysJZ3Jl cCAiXnByb3h5anVtcCAiYAorK2lmIFsgLW4gIiRmIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5SnVt cD1ub25lIGZpcnN0IGRpZCBub3Qgd2luIgorK2ZpCisrZj1gJHtTU0h9IC1HRiAvZGV2L251bGwg LW9Qcm94eUp1bXA9anVtcCAtb1Byb3h5Q29tbWFuZD1mb28gc29tZWhvc3QgfCBcCisrCWdyZXAg Il5wcm94eWp1bXAgImAKKytpZiBbICIkZiIgIT0gInByb3h5anVtcCBqdW1wIiBdOyB0aGVuCisr CWZhaWwgIlByb3h5SnVtcCBmaXJzdCBkaWQgbm90IHdpbiBvdmVyIFByb3h5Q29tbWFuZCIKKytm aQorK2Y9YCR7U1NIfSAtR0YgL2Rldi9udWxsIC1vUHJveHlDb21tYW5kPWZvbyAtb1Byb3h5SnVt cD1qdW1wIHNvbWVob3N0IHwgXAorKwlncmVwICJecHJveHljb21tYW5kICJgCisraWYgWyAiJGYi ICE9ICJwcm94eWNvbW1hbmQgZm9vIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5Q29tbWFuZCBmaXJz dCBkaWQgbm90IHdpbiBvdmVyIFByb3h5SnVtcCIKKytmaQorKworK3ZlcmJvc2UgImNvbW1hbmQt bGluZSAtSiBpbnZhbGlkIGNoYXJhY3RlcnMiCisrY3AgJE9CSi9zc2hfY29uZmlnICRPQkovc3No X2NvbmZpZy5vcmlnCisrZm9yIGpzcGVjIGluIFwKKysJImhvc3Q7d2l0aDtzZW1pY29sb24iIFwK KysJImhvc3Qnd2l0aCdxdW90ZSIgXAorKwkiaG9zdFxgd2l0aFxgYmFja3RpY2siIFwKKysJImhv c3RcJHdpdGhcJGRvbGxhciIgXAorKwkiaG9zdCh3aXRoKWJyYWNlIiBcCisrCSJ1c2VyO3dpdGg7 c2VtaWNvbG9uQGhvc3QiIFwKKysJInVzZXInd2l0aCdxdW90ZUBob3N0IiBcCisrCSJ1c2VyXGB3 aXRoXGBiYWNrdGlja0Bob3N0IiBcCisrCSJ1c2VyKHdpdGgpYnJhY2VAaG9zdCIgOyBkbworKwkk e1NTSH0gLUdGIC9kZXYvbnVsbCAtSiAiJGpzcGVjIiBzb21laG9zdCA+L2Rldi9udWxsIDI+JjEK KysJaWYgWyAkPyAtbmUgMjU1IF07IHRoZW4KKysJCWZhaWwgInNzaCAtSiBcIiRqc3BlY1wiIHdh cyBub3QgcmVqZWN0ZWQiCisrCWZpCisrCSR7U1NIfSAtR0YgL2Rldi9udWxsIC1vUHJveHlKdW1w PSIkanNwZWMiIHNvbWVob3N0ID4vZGV2L251bGwgMj4mMQorKwlpZiBbICQ/IC1uZSAyNTUgXTsg dGhlbgorKwkJZmFpbCAic3NoIC1vUHJveHlKdW1wPVwiJGpzcGVjXCIgd2FzIG5vdCByZWplY3Rl ZCIKKysJZmkKKytkb25lCisrIyBTcGVjaWFsIGNoYXJhY3RlcnMgc2hvdWxkIGJlIGFjY2VwdGVk IGluIHRoZSBjb25maWcgdGhvdWdoLgorK2VjaG8gIlByb3h5SnVtcCB1c2VyO3dpdGg7c2VtaWNv bG9uQGhvc3Q7d2l0aDtzZW1pY29sb24iID4+ICRPQkovc3NoX2NvbmZpZworK2Y9YCR7U1NIfSAt R0YgJE9CSi9zc2hfY29uZmlnIHNvbWVob3N0IHwgZ3JlcCAiXnByb3h5anVtcCAiYAorK2lmIFsg IiRmIiAhPSAicHJveHlqdW1wIHVzZXI7d2l0aDtzZW1pY29sb25AaG9zdDt3aXRoO3NlbWljb2xv biIgXTsgdGhlbgorKwlmYWlsICJQcm94eUp1bXAgZGlkIG5vdCBhbGxvdyBzcGVjaWFsIGNoYXJh Y3RlcnMgaW4gY29uZmlnOiAkZiIKKytmaQorKworK3ZlcmJvc2UgImZ1bmN0aW9uYWwgdGVzdCIK KysjIFVzZSBkaWZmZXJlbnQgbmFtZXMgdG8gYXZvaWQgdGhlIGxvb3AgZGV0ZWN0aW9uIGluIHNz aC5jCisrZ3JlcCAtaXYgSG9zdEtleUFsaWFzICRPQkovc3NoX2NvbmZpZy5vcmlnID4gJE9CSi9z c2hfY29uZmlnCisrY2F0IDw8IF9FT0YgPj4gJE9CSi9zc2hfY29uZmlnCisrSG9zdCBqdW1wLWhv c3QKKysJSG9zdGtleUFsaWFzIGp1bXAtaG9zdAorK0hvc3QgdGFyZ2V0LWhvc3QKKysJSG9zdGtl eUFsaWFzIHRhcmdldC1ob3N0CisrX0VPRgorK2NwICRPQkova25vd25faG9zdHMgJE9CSi9rbm93 bl9ob3N0cy5vcmlnCisrc2VkICdzL15bXiBdKiAvanVtcC1ob3N0IC8nIDwgJE9CSi9rbm93bl9o b3N0cy5vcmlnID4gJE9CSi9rbm93bl9ob3N0cworK3NlZCAncy9eW14gXSogL3RhcmdldC1ob3N0 IC8nIDwgJE9CSi9rbm93bl9ob3N0cy5vcmlnID4+ICRPQkova25vd25faG9zdHMKKytzdGFydF9z c2hkCisrCisrdmVyYm9zZSAiZnVuY3Rpb25hbCBQcm94eUp1bXAiCisrcmVzPWAke1JFQUxfU1NI fSAtRiAkT0JKL3NzaF9jb25maWcgLUoganVtcC1ob3N0IHRhcmdldC1ob3N0IGVjaG8gIlNVQ0NF U1MiIDI+L2Rldi9udWxsYAorK2lmIFsgIiRyZXMiICE9ICJTVUNDRVNTIiBdOyB0aGVuCisrCWZh aWwgImZ1bmN0aW9uYWwgdGVzdCBmYWlsZWQ6IGV4cGVjdGVkIFNVQ0NFU1MsIGdvdCAkcmVzIgor K2ZpCitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2guYyBiL3NzaC5jCistLS0gYS9zc2guYwkyMDI2 LTA0LTEwIDE1OjQyOjUwLjY1NzkxMzE4OSArMDIwMAorKysrIGIvc3NoLmMJMjAyNi0wNC0xMCAx NjowNDowNy40ODkwNDc5NjYgKzAyMDAKK0BAIC02MzksNDMgKzYzOSw2IEBAIHNzaF9jb25uX2lu Zm9fZnJlZShzdHJ1Y3Qgc3NoX2Nvbm5faW5mbworIAlmcmVlKGNpbmZvKTsKKyB9CisgCistc3Rh dGljIGludAorLXZhbGlkX2hvc3RuYW1lKGNvbnN0IGNoYXIgKnMpCisteworLQlzaXplX3QgaTsK Ky0KKy0JaWYgKCpzID09ICctJykKKy0JCXJldHVybiAwOworLQlmb3IgKGkgPSAwOyBzW2ldICE9 IDA7IGkrKykgeworLQkJaWYgKHN0cmNocigiJ2BcIiRcXDsmPD58KCl7fSIsIHNbaV0pICE9IE5V TEwgfHwKKy0JCSAgICBpc3NwYWNlKCh1X2NoYXIpc1tpXSkgfHwgaXNjbnRybCgodV9jaGFyKXNb aV0pKQorLQkJCXJldHVybiAwOworLQl9CistCXJldHVybiAxOworLX0KKy0KKy1zdGF0aWMgaW50 CistdmFsaWRfcnVzZXIoY29uc3QgY2hhciAqcykKKy17CistCXNpemVfdCBpOworLQorLQlpZiAo KnMgPT0gJy0nKQorLQkJcmV0dXJuIDA7CistCWZvciAoaSA9IDA7IHNbaV0gIT0gMDsgaSsrKSB7 CistCQlpZiAoaXNjbnRybCgodV9jaGFyKXNbaV0pKQorLQkJCXJldHVybiAwOworLQkJaWYgKHN0 cmNocigiJ2BcIjsmPD58KCl7fSIsIHNbaV0pICE9IE5VTEwpCistCQkJcmV0dXJuIDA7CistCQkv KiBEaXNhbGxvdyAnLScgYWZ0ZXIgd2hpdGVzcGFjZSAqLworLQkJaWYgKGlzc3BhY2UoKHVfY2hh cilzW2ldKSAmJiBzW2kgKyAxXSA9PSAnLScpCistCQkJcmV0dXJuIDA7CistCQkvKiBEaXNhbGxv dyBcIGluIGxhc3QgcG9zaXRpb24gKi8KKy0JCWlmIChzW2ldID09ICdcXCcgJiYgc1tpICsgMV0g PT0gJ1wwJykKKy0JCQlyZXR1cm4gMDsKKy0JfQorLQlyZXR1cm4gMTsKKy19CistCisgLyoKKyAg KiBNYWluIHByb2dyYW0gZm9yIHRoZSBzc2ggY2xpZW50LgorICAqLworQEAgLTkzMSw5ICs4OTQs OSBAQCBtYWluKGludCBhYywgY2hhciAqKmF2KQorIAkJCX0KKyAJCQlpZiAob3B0aW9ucy5wcm94 eV9jb21tYW5kICE9IE5VTEwpCisgCQkJCWZhdGFsKCJDYW5ub3Qgc3BlY2lmeSAtSiB3aXRoIFBy b3h5Q29tbWFuZCIpOworLQkJCWlmIChwYXJzZV9qdW1wKG9wdGFyZywgJm9wdGlvbnMsIDEpID09 IC0xKQorKwkJCWlmIChwYXJzZV9qdW1wKG9wdGFyZywgJm9wdGlvbnMsIDEsIDEpID09IC0xKQor KworIAkJCQlmYXRhbCgiSW52YWxpZCAtSiBhcmd1bWVudCIpOworLQkJCW9wdGlvbnMucHJveHlf Y29tbWFuZCA9IHhzdHJkdXAoIm5vbmUiKTsKKyAJCQlicmVhazsKKyAJCWNhc2UgJ3QnOgorIAkJ CWlmIChvcHRpb25zLnJlcXVlc3RfdHR5ID09IFJFUVVFU1RfVFRZX1lFUykKK0BAIC0xMTgzLDEw ICsxMTQ2LDE1IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisgCWlmICghaG9zdCkKKyAJCXVz YWdlKCk7CisgCistCWlmICghdmFsaWRfaG9zdG5hbWUoaG9zdCkpCistCQlmYXRhbCgiaG9zdG5h bWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIik7CistCWlmIChvcHRpb25zLnVzZXIgIT0g TlVMTCAmJiAhdmFsaWRfcnVzZXIob3B0aW9ucy51c2VyKSkKKysJLyoKKysJICogVmFsaWRhdGUg Y29tbWFuZGxpbmUtc3BlY2lmaWVkIHZhbHVlcyB0aGF0IGVuZCB1cCBpbiAldG9rZW5zCisrCSAq IGJlZm9yZSB0aGV5IGFyZSB1c2VkIGluIGNvbmZpZyBwYXJzaW5nLgorKwkgKi8KKysJaWYgKG9w dGlvbnMudXNlciAhPSBOVUxMICYmICFzc2hfdmFsaWRfcnVzZXIob3B0aW9ucy51c2VyKSkKKyAJ CWZhdGFsKCJyZW1vdGUgdXNlcm5hbWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIik7Cisr CWlmICghc3NoX3ZhbGlkX2hvc3RuYW1lKGhvc3QpKQorKwkJZmF0YWwoImhvc3RuYW1lIGNvbnRh aW5zIGludmFsaWQgY2hhcmFjdGVycyIpOworKworIAlvcHRpb25zLmhvc3RfYXJnID0geHN0cmR1 cChob3N0KTsKKyAKKyAJLyogSW5pdGlhbGl6ZSB0aGUgY29tbWFuZCB0byBleGVjdXRlIG9uIHJl bW90ZSBob3N0LiAqLworQEAgLTEzNDcsNyArMTMxNSw4IEBAIG1haW4oaW50IGFjLCBjaGFyICoq YXYpCisgCQkJc3NoYmluID0gInNzaCI7CisgCisgCQkvKiBDb25zaXN0ZW5jeSBjaGVjayAqLwor LQkJaWYgKG9wdGlvbnMucHJveHlfY29tbWFuZCAhPSBOVUxMKQorKwkJaWYgKG9wdGlvbnMucHJv eHlfY29tbWFuZCAhPSBOVUxMICYmCisrCQkgICAgc3RyY2FzZWNtcChvcHRpb25zLnByb3h5X2Nv bW1hbmQsICJub25lIikgIT0gMCkKKyAJCQlmYXRhbCgiaW5jb25zaXN0ZW50IG9wdGlvbnM6IFBy b3h5Q29tbWFuZCtQcm94eUp1bXAiKTsKKyAJCS8qIE5ldmVyIHVzZSBGRCBwYXNzaW5nIGZvciBQ cm94eUp1bXAgKi8KKyAJCW9wdGlvbnMucHJveHlfdXNlX2ZkcGFzcyA9IDA7CitAQCAtMTQ2Nyw3 ICsxNDM2LDcgQEAgbWFpbihpbnQgYWMsIGNoYXIgKiphdikKKyAJY2luZm8tPmptcGhvc3QgPSB4 c3RyZHVwKG9wdGlvbnMuanVtcF9ob3N0ID09IE5VTEwgPworIAkgICAgIiIgOiBvcHRpb25zLmp1 bXBfaG9zdCk7CisgCistCWlmICh1c2VyX29uX2NvbW1hbmRsaW5lICYmICF2YWxpZF9ydXNlcihv cHRpb25zLnVzZXIpKQorKwlpZiAodXNlcl9vbl9jb21tYW5kbGluZSAmJiAhc3NoX3ZhbGlkX3J1 c2VyKG9wdGlvbnMudXNlcikpCisgCQlmYXRhbCgicmVtb3RlIHVzZXJuYW1lIGNvbnRhaW5zIGlu dmFsaWQgY2hhcmFjdGVycyIpOworIAorIAljaW5mby0+Y29ubl9oYXNoX2hleCA9IHNzaF9jb25u ZWN0aW9uX2hhc2goY2luZm8tPnRoaXNob3N0LAoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEt c2NwLWNsZWFyLXNldHVpZC5wYXRjaCBiL29wZW5zc2gtOS45cDEtc2NwLWNsZWFyLXNldHVpZC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTg0OGExCi0tLSAvZGV2 L251bGwKKysrIGIvb3BlbnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoCkBAIC0wLDAg KzEsMTUgQEAKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3NjcC5jIGIvc2NwLmMKKy0tLSBhL3NjcC5j CTIwMjYtMDQtMDcgMTU6NTQ6MTEuMTkzNzMwODQyICswMjAwCisrKysgYi9zY3AuYwkyMDI2LTA0 LTA3IDE1OjU1OjUyLjUyOTQyNTQ4MSArMDIwMAorQEAgLTE3MDUsOCArMTcwNSwxMCBAQCBzaW5r KGludCBhcmdjLCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqCisgCisgCXNldGltZXMgPSB0YXJn aXNkaXIgPSAwOworIAltYXNrID0gdW1hc2soMCk7CistCWlmICghcGZsYWcpCisrCWlmICghcGZs YWcpIHsKKysJCW1hc2sgfD0gMDcwMDA7CisgCQkodm9pZCkgdW1hc2sobWFzayk7CisrCX0KKyAJ aWYgKGFyZ2MgIT0gMSkgeworIAkJcnVuX2VycigiYW1iaWd1b3VzIHRhcmdldCIpOworIAkJZXhp dCgxKTsKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLXNzaGQtbm8tZGVsZWdhdGUtY3JlZGVu dGlhbHMucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLXNzaGQtbm8tZGVsZWdhdGUtY3JlZGVudGlhbHMu cGF0Y2gKaW5kZXggMmI3MDEwMy4uNTlkMDEyMCAxMDA2NDQKLS0tIGEvb3BlbnNzaC05LjlwMS1z c2hkLW5vLWRlbGVnYXRlLWNyZWRlbnRpYWxzLnBhdGNoCisrKyBiL29wZW5zc2gtOS45cDEtc3No ZC1uby1kZWxlZ2F0ZS1jcmVkZW50aWFscy5wYXRjaApAQCAtMSw4ICsxLDcgQEAKLWRpZmYgLS1n aXQgYS9nc3Mtc2Vydi5jIGIvZ3NzLXNlcnYuYwotaW5kZXggNWMwNDkxY2YxLi5lMmM1MDFkMGMg MTAwNjQ0Ci0tLS0gYS9nc3Mtc2Vydi5jCi0rKysgYi9nc3Mtc2Vydi5jCi1AQCAtNTA5LDYgKzUw OSwxMSBAQCBzc2hfZ3NzYXBpX2NsZWFudXBfY3JlZHModm9pZCkKK2RpZmYgLS1jb2xvciAtcnVO cCBhL2dzcy1zZXJ2LmMgYi9nc3Mtc2Vydi5jCistLS0gYS9nc3Mtc2Vydi5jCTIwMjYtMDMtMTEg MTM6NTQ6NTMuMDc2OTI0ODIzICswMTAwCisrKysgYi9nc3Mtc2Vydi5jCTIwMjYtMDMtMTEgMTQ6 MTA6NDEuMjMyODU1MDg2ICswMTAwCitAQCAtNDkzLDYgKzQ5MywxMSBAQCBzc2hfZ3NzYXBpX2Ns ZWFudXBfY3JlZHModm9pZCkKICBpbnQKICBzc2hfZ3NzYXBpX3N0b3JlY3JlZHModm9pZCkKICB7 CkBAIC0xNCwxOSArMTMsMTggQEAgaW5kZXggNWMwNDkxY2YxLi5lMmM1MDFkMGMgMTAwNjQ0CiAg CWlmIChnc3NhcGlfY2xpZW50Lm1lY2ggJiYgZ3NzYXBpX2NsaWVudC5tZWNoLT5zdG9yZWNyZWRz KSB7CiAgCQlyZXR1cm4gKCpnc3NhcGlfY2xpZW50Lm1lY2gtPnN0b3JlY3JlZHMpKCZnc3NhcGlf Y2xpZW50KTsKICAJfSBlbHNlCi1kaWZmIC0tZ2l0IGEvc2VydmNvbmYuYyBiL3NlcnZjb25mLmMK LWluZGV4IGFhYjY1MzI0NC4uMDJhOTg4OGM5IDEwMDY0NAotLS0tIGEvc2VydmNvbmYuYwotKysr IGIvc2VydmNvbmYuYwotQEAgLTE0NCw2ICsxNDQsNyBAQCBpbml0aWFsaXplX3NlcnZlcl9vcHRp b25zKFNlcnZlck9wdGlvbnMgKm9wdGlvbnMpCitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29u Zi5jIGIvc2VydmNvbmYuYworLS0tIGEvc2VydmNvbmYuYwkyMDI2LTAzLTExIDEzOjU0OjUzLjA4 NjI2MzE4NyArMDEwMAorKysrIGIvc2VydmNvbmYuYwkyMDI2LTAzLTExIDE0OjAzOjEwLjcwODcx MzUyNCArMDEwMAorQEAgLTE0Myw2ICsxNDMsNyBAQCBpbml0aWFsaXplX3NlcnZlcl9vcHRpb25z KFNlcnZlck9wdGlvbnMKICAJb3B0aW9ucy0+Z3NzX2F1dGhlbnRpY2F0aW9uPS0xOwogIAlvcHRp b25zLT5nc3Nfa2V5ZXggPSAtMTsKICAJb3B0aW9ucy0+Z3NzX2NsZWFudXBfY3JlZHMgPSAtMTsK ICsJb3B0aW9ucy0+Z3NzX2RlbGVnX2NyZWRzID0gLTE7CiAgCW9wdGlvbnMtPmdzc19zdHJpY3Rf YWNjZXB0b3IgPSAtMTsKKyAJb3B0aW9ucy0+Z3NzX2luZGljYXRvcnMgPSBOVUxMOwogIAlvcHRp b25zLT5nc3Nfc3RvcmVfcmVrZXkgPSAtMTsKLSAJb3B0aW9ucy0+Z3NzX2tleF9hbGdvcml0aG1z ID0gTlVMTDsKLUBAIC00MDMsNiArNDA0LDggQEAgZmlsbF9kZWZhdWx0X3NlcnZlcl9vcHRpb25z KFNlcnZlck9wdGlvbnMgKm9wdGlvbnMpCitAQCAtNDAyLDYgKzQwMyw4IEBAIGZpbGxfZGVmYXVs dF9zZXJ2ZXJfb3B0aW9ucyhTZXJ2ZXJPcHRpb24KICAJCW9wdGlvbnMtPmdzc19rZXlleCA9IDA7 CiAgCWlmIChvcHRpb25zLT5nc3NfY2xlYW51cF9jcmVkcyA9PSAtMSkKICAJCW9wdGlvbnMtPmdz c19jbGVhbnVwX2NyZWRzID0gMTsKQEAgLTYxLDcgKzU5LDcgQEAgaW5kZXggYWFiNjUzMjQ0Li4w MmE5ODg4YzkgMTAwNjQ0CiAgCXsgImdzc2FwaXN0cmljdGFjY2VwdG9yY2hlY2siLCBzVW5zdXBw b3J0ZWQsIFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpa2V5ZXhjaGFuZ2UiLCBzVW5zdXBw b3J0ZWQsIFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpc3RvcmVjcmVkZW50aWFsc29ucmVr ZXkiLCBzVW5zdXBwb3J0ZWQsIFNTSENGR19HTE9CQUwgfSwKLUBAIC0xNzEzLDYgKzE3MTksMTAg QEAgcHJvY2Vzc19zZXJ2ZXJfY29uZmlnX2xpbmVfZGVwdGgoU2VydmVyT3B0aW9ucyAqb3B0aW9u cywgY2hhciAqbGluZSwKK0BAIC0xNzAzLDYgKzE3MDksMTAgQEAgcHJvY2Vzc19zZXJ2ZXJfY29u ZmlnX2xpbmVfZGVwdGgoU2VydmVyTwogIAkJaW50cHRyID0gJm9wdGlvbnMtPmdzc19jbGVhbnVw X2NyZWRzOwogIAkJZ290byBwYXJzZV9mbGFnOwogIApAQCAtNzIsNyArNzAsNyBAQCBpbmRleCBh YWI2NTMyNDQuLjAyYTk4ODhjOSAxMDA2NDQKICAJY2FzZSBzR3NzU3RyaWN0QWNjZXB0b3I6CiAg CQlpbnRwdHIgPSAmb3B0aW9ucy0+Z3NzX3N0cmljdF9hY2NlcHRvcjsKICAJCWdvdG8gcGFyc2Vf ZmxhZzsKLUBAIC0zMzU5LDYgKzMzNjksNyBAQCBkdW1wX2NvbmZpZyhTZXJ2ZXJPcHRpb25zICpv KQorQEAgLTMzNDgsNiArMzM1OCw3IEBAIGR1bXBfY29uZmlnKFNlcnZlck9wdGlvbnMgKm8pCiAg I2lmZGVmIEdTU0FQSQogIAlkdW1wX2NmZ19mbXRpbnQoc0dzc0F1dGhlbnRpY2F0aW9uLCBvLT5n c3NfYXV0aGVudGljYXRpb24pOwogIAlkdW1wX2NmZ19mbXRpbnQoc0dzc0NsZWFudXBDcmVkcywg by0+Z3NzX2NsZWFudXBfY3JlZHMpOwpAQCAtODAsMTAgKzc4LDkgQEAgaW5kZXggYWFiNjUzMjQ0 Li4wMmE5ODg4YzkgMTAwNjQ0CiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzS2V5RXgsIG8tPmdzc19r ZXlleCk7CiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzU3RyaWN0QWNjZXB0b3IsIG8tPmdzc19zdHJp Y3RfYWNjZXB0b3IpOwogIAlkdW1wX2NmZ19mbXRpbnQoc0dzc1N0b3JlUmVrZXksIG8tPmdzc19z dG9yZV9yZWtleSk7Ci1kaWZmIC0tZ2l0IGEvc2VydmNvbmYuaCBiL3NlcnZjb25mLmgKLWluZGV4 IDdjNDFkZjQxNy4uNmJmZGY2MzA1IDEwMDY0NAotLS0tIGEvc2VydmNvbmYuaAotKysrIGIvc2Vy dmNvbmYuaAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvc2VydmNvbmYuaCBiL3NlcnZjb25mLmgKKy0t LSBhL3NlcnZjb25mLmgJMjAyNi0wMy0xMSAxMzo1NDo1My4wODY3NjM3MDkgKzAxMDAKKysrKyBi L3NlcnZjb25mLmgJMjAyNi0wMy0xMSAxNDoxMzo1MS4xMzA3MDg3NjkgKzAxMDAKIEBAIC0xNTgs NiArMTU4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogIAlpbnQgICAgIGdzc19hdXRoZW50aWNhdGlv bjsJLyogSWYgdHJ1ZSwgcGVybWl0IEdTU0FQSSBhdXRoZW50aWNhdGlvbiAqLwogIAlpbnQgICAg IGdzc19rZXlleDsJCS8qIElmIHRydWUsIHBlcm1pdCBHU1NBUEkga2V5IGV4Y2hhbmdlICovCkBA IC05MiwxMSArODksMTAgQEAgaW5kZXggN2M0MWRmNDE3Li42YmZkZjYzMDUgMTAwNjQ0CiAgCWlu dCAgICAgZ3NzX3N0cmljdF9hY2NlcHRvcjsJLyogSWYgdHJ1ZSwgcmVzdHJpY3QgdGhlIEdTU0FQ SSBhY2NlcHRvciBuYW1lICovCiAgCWludCAJZ3NzX3N0b3JlX3Jla2V5OwogIAljaGFyICAgKmdz c19rZXhfYWxnb3JpdGhtczsJLyogR1NTQVBJIGtleCBtZXRob2RzIHRvIGJlIG9mZmVyZWQgYnkg Y2xpZW50LiAqLwotZGlmZiAtLWdpdCBhL3NzaGRfY29uZmlnLjAgYi9zc2hkX2NvbmZpZy4wCi1p bmRleCA0OTM0OWJiMzAuLmU3OThmNGRmNSAxMDA2NDQKLS0tLSBhL3NzaGRfY29uZmlnLjAKLSsr KyBiL3NzaGRfY29uZmlnLjAKLUBAIC00NTMsNiArNDUzLDkgQEAgREVTQ1JJUFRJT04KK2RpZmYg LS1jb2xvciAtcnVOcCBhL3NzaGRfY29uZmlnLjAgYi9zc2hkX2NvbmZpZy4wCistLS0gYS9zc2hk X2NvbmZpZy4wCTIwMjYtMDMtMTEgMTM6NTQ6NTIuOTA0MjMzNDcxICswMTAwCisrKysgYi9zc2hk X2NvbmZpZy4wCTIwMjYtMDMtMTEgMTQ6MTI6MzUuMzQxMTcwNzM3ICswMTAwCitAQCAtNDUxLDYg KzQ1MSw5IEBAIERFU0NSSVBUSU9OCiAgICAgICAgICAgICAgIFNwZWNpZmllcyB3aGV0aGVyIHRv IGF1dG9tYXRpY2FsbHkgZGVzdHJveSB0aGUgdXNlcidzIGNyZWRlbnRpYWxzCiAgICAgICAgICAg ICAgIGNhY2hlIG9uIGxvZ291dC4gIFRoZSBkZWZhdWx0IGlzIHllcy4KICAKQEAgLTEwNiwxMSAr MTAyLDEwIEBAIGluZGV4IDQ5MzQ5YmIzMC4uZTc5OGY0ZGY1IDEwMDY0NAogICAgICAgR1NTQVBJ U3RyaWN0QWNjZXB0b3JDaGVjawogICAgICAgICAgICAgICBEZXRlcm1pbmVzIHdoZXRoZXIgdG8g YmUgc3RyaWN0IGFib3V0IHRoZSBpZGVudGl0eSBvZiB0aGUgR1NTQVBJCiAgICAgICAgICAgICAg IGFjY2VwdG9yIGEgY2xpZW50IGF1dGhlbnRpY2F0ZXMgYWdhaW5zdC4gIElmIHNldCB0byB5ZXMg dGhlbiB0aGUKLWRpZmYgLS1naXQgYS9zc2hkX2NvbmZpZy41IGIvc3NoZF9jb25maWcuNQotaW5k ZXggOTBhYjg3ZWRkLi44YzY3N2JmZDAgMTAwNjQ0Ci0tLS0gYS9zc2hkX2NvbmZpZy41Ci0rKysg Yi9zc2hkX2NvbmZpZy41Ci1AQCAtNzMzLDYgKzczMyw5IEBAIFNwZWNpZmllcyB3aGV0aGVyIHRv IGF1dG9tYXRpY2FsbHkgZGVzdHJveSB0aGUgdXNlcidzIGNyZWRlbnRpYWxzIGNhY2hlCitkaWZm IC0tY29sb3IgLXJ1TnAgYS9zc2hkX2NvbmZpZy41IGIvc3NoZF9jb25maWcuNQorLS0tIGEvc3No ZF9jb25maWcuNQkyMDI2LTAzLTExIDEzOjU0OjUzLjA4NzA0NjM1MiArMDEwMAorKysrIGIvc3No ZF9jb25maWcuNQkyMDI2LTAzLTExIDE0OjA1OjE1LjY1NzI0ODAzMSArMDEwMAorQEAgLTczMyw2 ICs3MzMsOSBAQCBTcGVjaWZpZXMgd2hldGhlciB0byBhdXRvbWF0aWNhbGx5IGRlc3RyCiAgb24g bG9nb3V0LgogIFRoZSBkZWZhdWx0IGlzCiAgLkNtIHllcyAuCgpkaWZmIC0tZ2l0IGEvb3BlbnNz aC05LjlwMS1zdXBwb3J0LWF1dGhlbnRpY2F0aW9uLWluZGljYXRvcnMtaW4tR1NTQVBJLnBhdGNo IGIvb3BlbnNzaC05LjlwMS1zdXBwb3J0LWF1dGhlbnRpY2F0aW9uLWluZGljYXRvcnMtaW4tR1NT QVBJLnBhdGNoCmluZGV4IDIzN2U0NWQuLjZjNTVhNjYgMTAwNjQ0Ci0tLSBhL29wZW5zc2gtOS45 cDEtc3VwcG9ydC1hdXRoZW50aWNhdGlvbi1pbmRpY2F0b3JzLWluLUdTU0FQSS5wYXRjaAorKysg Yi9vcGVuc3NoLTkuOXAxLXN1cHBvcnQtYXV0aGVudGljYXRpb24taW5kaWNhdG9ycy1pbi1HU1NB UEkucGF0Y2gKQEAgLTEsMzggKzEsNyBAQAotRnJvbSA1ZDVhNjZlOTZhZDAzMTMyZjY1MzcxMDcw ZjRmYTQ3NWYxMDIwN2Q5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWxleGFuZGVy IEJva292b3kgPGFib2tvdm95QHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDEwIEp1biAyMDI0IDIz OjAwOjAzICswMzAwCi1TdWJqZWN0OiBbUEFUQ0hdIHN1cHBvcnQgYXV0aGVudGljYXRpb24gaW5k aWNhdG9ycyBpbiBHU1NBUEkKLQotUkZDIDY2ODAgZGVmaW5lcyBhIHNldCBvZiBHU1NBUEkgZXh0 ZW5zaW9ucyB0byBoYW5kbGUgYXR0cmlidXRlcwotYXNzb2NpYXRlZCB3aXRoIHRoZSBHU1NBUEkg bmFtZXMuIE1JVCBLZXJiZXJvcyBhbmQgRnJlZUlQQSB1c2UKLW5hbWUgYXR0cmlidXRlcyB0byBh ZGQgaW5mb3JtYXRpb24gYWJvdXQgcHJlLWF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgdXNlZAotdG8g YWNxdWlyZSB0aGUgaW5pdGlhbCBLZXJiZXJvcyB0aWNrZXQuIFRoZSBhdHRyaWJ1dGUgJ2F1dGgt aW5kaWNhdG9ycycKLW1heSBjb250YWluIGxpc3Qgb2Ygc3RyaW5ncyB0aGF0IEtEQyBoYXMgYXNz b2NpYXRlZCB3aXRoIHRoZSB0aWNrZXQKLWlzc3VhbmNlIHByb2Nlc3MuCi0KLVVzZSBhdXRoZW50 aWNhdGlvbiBpbmRpY2F0b3JzIHRvIGF1dGhvcmlzZSBvciBkZW55IGFjY2VzcyB0byBTU0ggc2Vy dmVyLgotR1NTQVBJSW5kaWNhdG9ycyBzZXR0aW5nIGFsbG93cyB0byBzcGVjaWZ5IGEgbGlzdCBv ZiBwb3NzaWJsZSBpbmRpY2F0b3JzCi10aGF0IGEgS2VyYmVyb3MgdGlja2V0IHByZXNlbnRlZCBt dXN0IG9yIG11c3Qgbm90IGNvbnRhaW4uIE1vcmUgZGV0YWlscwotb24gdGhlIHN5bnRheCBhcmUg cHJvdmlkZWQgaW4gc3NoZF9jb25maWcoNSkgbWFuIHBhZ2UuCi0KLUZpeGVzOiBodHRwczovL2J1 Z3ppbGxhLm1pbmRyb3Qub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk2Ci0KLVNpZ25lZC1vZmYtYnk6 IEFsZXhhbmRlciBCb2tvdm95IDxhYm9rb3ZveUByZWRoYXQuY29tPgotLS0tCi0gY29uZmlndXJl LmFjICAgIHwgICAxICsKLSBnc3Mtc2Vydi1rcmI1LmMgfCAgNjQgKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tCi0gZ3NzLXNlcnYuYyAgICAgIHwgMTAzICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQotIHNlcnZjb25mLmMgICAgICB8ICAxNSArKysr KystCi0gc2VydmNvbmYuaCAgICAgIHwgICAyICsKLSBzc2gtZ3NzLmggICAgICAgfCAgIDcgKysr KwotIHNzaGRfY29uZmlnLjUgICB8ICA0NCArKysrKysrKysrKysrKysrKysrKysKLSA3IGZpbGVz IGNoYW5nZWQsIDIyOCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0 IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCi1pbmRleCBkOTJhODU4MDkuLjJjYmUyMGJm MyAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNTAw NCw2ICs1MDA0LDcgQEAgQUNfQVJHX1dJVEgoW2tlcmJlcm9zNV0sCitkaWZmIC0tY29sb3IgLXJ1 TnAgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKKy0tLSBhL2NvbmZpZ3VyZS5hYwkyMDI2 LTAzLTEwIDEyOjQzOjM2Ljg2MDc4NDgxMyArMDEwMAorKysrIGIvY29uZmlndXJlLmFjCTIwMjYt MDMtMTAgMTI6NDY6MjcuMDIyMjk3ODM1ICswMTAwCitAQCAtNDkzMiw2ICs0OTMyLDcgQEAgQUNf QVJHX1dJVEgoW2tlcmJlcm9zNV0sCiAgCQlBQ19DSEVDS19IRUFERVJTKFtnc3NhcGkuaCBnc3Nh cGkvZ3NzYXBpLmhdKQogIAkJQUNfQ0hFQ0tfSEVBREVSUyhbZ3NzYXBpX2tyYjUuaCBnc3NhcGkv Z3NzYXBpX2tyYjUuaF0pCiAgCQlBQ19DSEVDS19IRUFERVJTKFtnc3NhcGlfZ2VuZXJpYy5oIGdz c2FwaS9nc3NhcGlfZ2VuZXJpYy5oXSkKQEAgLTQwLDExMyArOSwxMCBAQCBpbmRleCBkOTJhODU4 MDkuLjJjYmUyMGJmMyAxMDA2NDQKICAKICAJCUFDX1NFQVJDSF9MSUJTKFtrX2hhc2Fmc10sIFtr YWZzXSwgW0FDX0RFRklORShbVVNFX0FGU10sIFsxXSwKICAJCQlbRGVmaW5lIHRoaXMgaWYgeW91 IHdhbnQgdG8gdXNlIGxpYmthZnMnIEFGUyBzdXBwb3J0XSldKQotZGlmZiAtLWdpdCBhL2dzcy1z ZXJ2LWtyYjUuYyBiL2dzcy1zZXJ2LWtyYjUuYwotaW5kZXggMDMxODhkOWIzLi4yYzc4NmVmMTQg MTAwNjQ0Ci0tLS0gYS9nc3Mtc2Vydi1rcmI1LmMKLSsrKyBiL2dzcy1zZXJ2LWtyYjUuYwotQEAg LTQzLDYgKzQzLDcgQEAKLSAjaW5jbHVkZSAibG9nLmgiCi0gI2luY2x1ZGUgIm1pc2MuaCIKLSAj aW5jbHVkZSAic2VydmNvbmYuaCIKLSsjaW5jbHVkZSAibWF0Y2guaCIKLSAKLSAjaW5jbHVkZSAi c3NoLWdzcy5oIgotIAotQEAgLTg3LDYgKzg4LDMyIEBAIHNzaF9nc3NhcGlfa3JiNV9pbml0KHZv aWQpCi0gCXJldHVybiAxOwotIH0KLSAKLSsvKiBDaGVjayBpZiBhbnkgb2YgdGhlIGluZGljYXRv cnMgaW4gdGhlIEtlcmJlcm9zIHRpY2tldCBtYXRjaAotKyAqIG9uZSBvZiBpbmRpY2F0b3JzIGlu IHRoZSBsaXN0IG9mIGFsbG93ZWQvZGVuaWVkIHJ1bGVzLgotKyAqIEluIGNhc2Ugb2YgdGhlIG1h dGNoLCBhcHBseSB0aGUgZGVjaXNpb24gZnJvbSB0aGUgcnVsZS4KLSsgKiBJbiBjYXNlIG9mIG5v IGluZGljYXRvciBmcm9tIHRoZSB0aWNrZXQgbWF0Y2hpbmcgdGhlIHJ1bGUsIGRlbnkKLSsgKi8K LSsKLStzdGF0aWMgaW50Ci0rc3NoX2dzc2FwaV9jaGVja19pbmRpY2F0b3JzKHNzaF9nc3NhcGlf Y2xpZW50ICpjbGllbnQsIGludCAqbWF0Y2hlZCkKLSt7Ci0rCWludCByZXQ7Ci0rCXVfaW50IGk7 Ci0rCi0rCS8qIENoZWNrIGluZGljYXRvcnMgKi8KLSsJZm9yIChpID0gMDsgY2xpZW50LT5pbmRp Y2F0b3JzW2ldICE9IE5VTEw7IGkrKykgewotKwkJcmV0ID0gbWF0Y2hfcGF0dGVybl9saXN0KGNs aWVudC0+aW5kaWNhdG9yc1tpXSwKLSsJCQkJCSBvcHRpb25zLmdzc19pbmRpY2F0b3JzLCAxKTsK LSsJCS8qIG5lZ2F0aXZlIG9yIHBvc2l0aXZlIG1hdGNoICovCi0rCQlpZiAocmV0ICE9IDApIHsK LSsJCQkqbWF0Y2hlZCA9IGk7Ci0rCQkJcmV0dXJuIHJldDsKLSsJCX0KLSsJfQotKwkvKiBObyBy dWxlIG1hdGNoZWQgKi8KLSsJcmV0dXJuIDA7Ci0rfQotKwotIC8qIENoZWNrIGlmIHRoaXMgdXNl ciBpcyBPSyB0byBsb2dpbi4gVGhpcyBvbmx5IHdvcmtzIHdpdGgga3JiNSAtIG90aGVyCi0gICog R1NTQVBJIG1lY2hhbmlzbXMgd2lsbCBuZWVkIHRoZWlyIG93bi4KLSAgKiBSZXR1cm5zIHRydWUg aWYgdGhlIHVzZXIgaXMgT0sgdG8gbG9nIGluLCBvdGhlcndpc2UgcmV0dXJucyAwCi1AQCAtMTkz LDcgKzIyMCw3IEBAIHN0YXRpYyBpbnQKLSBzc2hfZ3NzYXBpX2tyYjVfdXNlcm9rKHNzaF9nc3Nh cGlfY2xpZW50ICpjbGllbnQsIGNoYXIgKm5hbWUpCi0gewotIAlrcmI1X3ByaW5jaXBhbCBwcmlu YzsKLS0JaW50IHJldHZhbDsKLSsJaW50IHJldHZhbCwgbWF0Y2hlZDsKLSAJY29uc3QgY2hhciAq ZXJybXNnOwotIAlpbnQgazVsb2dpbl9leGlzdHM7Ci0gCi1AQCAtMjE2LDE3ICsyNDMsNDIgQEAg c3NoX2dzc2FwaV9rcmI1X3VzZXJvayhzc2hfZ3NzYXBpX2NsaWVudCAqY2xpZW50LCBjaGFyICpu YW1lKQotIAlpZiAoazVsb2dpbl9leGlzdHMgJiYKLSAJICAgIHNzaF9rcmI1X2t1c2Vyb2soa3Ji X2NvbnRleHQsIHByaW5jLCBuYW1lLCBrNWxvZ2luX2V4aXN0cykpIHsKLSAJCXJldHZhbCA9IDE7 Ci0tCQlsb2dpdCgiQXV0aG9yaXplZCB0byAlcywga3JiNSBwcmluY2lwYWwgJXMgKGtyYjVfa3Vz ZXJvaykiLAotLQkJICAgIG5hbWUsIChjaGFyICopY2xpZW50LT5kaXNwbGF5bmFtZS52YWx1ZSk7 Ci0rCSAgICBlcnJtc2cgPSAia3JiNV9rdXNlcm9rIjsKLSAJfSBlbHNlIGlmIChzc2hfZ3NzYXBp X2tyYjVfY21kb2socHJpbmMsIGNsaWVudC0+ZXhwb3J0ZWRuYW1lLnZhbHVlLAotIAkJbmFtZSwg azVsb2dpbl9leGlzdHMpKSB7Ci0gCQlyZXR2YWwgPSAxOwotLQkJbG9naXQoIkF1dGhvcml6ZWQg dG8gJXMsIGtyYjUgcHJpbmNpcGFsICVzICIKLS0JCSAgICAiKHNzaF9nc3NhcGlfa3JiNV9jbWRv aykiLAotLQkJICAgIG5hbWUsIChjaGFyICopY2xpZW50LT5kaXNwbGF5bmFtZS52YWx1ZSk7Ci0r CQllcnJtc2cgPSAic3NoX2dzc2FwaV9rcmI1X2NtZG9rIjsKLSAJfSBlbHNlCi0gCQlyZXR2YWwg PSAwOwotIAotKwlpZiAoKHJldHZhbCA9PSAxKSAmJiAob3B0aW9ucy5nc3NfaW5kaWNhdG9ycyAh PSBOVUxMKSkgewotKwkJLyogQXQgdGhpcyBwb2ludCB0aGUgY29uZmlndXJhdGlvbiBlbmZvcmNl cyBwcmVzZW5jZSBvZiBpbmRpY2F0b3JzCi0rCQkgKiBzbyB3ZSBkcm9wIHRoZSBhdXRob3JpemF0 aW9uIHJlc3VsdCBhZ2FpbiAqLwotKwkJcmV0dmFsID0gMDsKLSsJCWlmIChjbGllbnQtPmluZGlj YXRvcnMpIHsKLSsJCQltYXRjaGVkID0gLTE7Ci0rCQkJcmV0dmFsID0gc3NoX2dzc2FwaV9jaGVj a19pbmRpY2F0b3JzKGNsaWVudCwgJm1hdGNoZWQpOwotKwkJCWlmIChyZXR2YWwgIT0gMCkgewot KwkJCQlyZXR2YWwgPSAocmV0dmFsID09IDEpOwotKwkJCQlsb2dpdCgiVGlja2V0IGNvbnRhaW5z IGluZGljYXRvciAlcywgIgotKwkJCQkJImtyYjUgcHJpbmNpcGFsICVzIGlzICVzIiwKLSsJCQkJ CWNsaWVudC0+aW5kaWNhdG9yc1ttYXRjaGVkXSwKLSsJCQkJCShjaGFyICopY2xpZW50LT5kaXNw bGF5bmFtZS52YWx1ZSwKLSsJCQkJICAgICAgICByZXR2YWwgPyAiYWxsb3dlZCIgOiAiZGVuaWVk Iik7Ci0rCQkJCWdvdG8gY29udDsKLSsJCQl9Ci0rCQl9Ci0rCQlpZiAocmV0dmFsID09IDApIHsK LSsJCQlsb2dpdCgiR1NTQVBJIGF1dGhlbnRpY2F0aW9uIGluZGljYXRvcnMgZW5mb3JjZWQgIgot KwkJCQkiYnV0IG5vdCBtYXRjaGVkLiBrcmI1IHByaW5jaXBhbCAlcyBkZW5pZWQiLAotKwkJCShj aGFyICopY2xpZW50LT5kaXNwbGF5bmFtZS52YWx1ZSk7Ci0rCQl9Ci0rCX0KLStjb250OgotKwlp ZiAocmV0dmFsID09IDEpIHsKLSsJCWxvZ2l0KCJBdXRob3JpemVkIHRvICVzLCBrcmI1IHByaW5j aXBhbCAlcyAoJXMpIiwKLSsJCSAgICBuYW1lLCAoY2hhciAqKWNsaWVudC0+ZGlzcGxheW5hbWUu dmFsdWUsIGVycm1zZyk7Ci0rCX0KLSAJa3JiNV9mcmVlX3ByaW5jaXBhbChrcmJfY29udGV4dCwg cHJpbmMpOwotIAlyZXR1cm4gcmV0dmFsOwotIH0KLWRpZmYgLS1naXQgYS9nc3Mtc2Vydi5jIGIv Z3NzLXNlcnYuYwotaW5kZXggOWQ1NDM1ZWRhLi41YzA0OTFjZjEgMTAwNjQ0Ci0tLS0gYS9nc3Mt c2Vydi5jCi0rKysgYi9nc3Mtc2Vydi5jCi1AQCAtNTQsNyArNTQsNyBAQCBleHRlcm4gU2VydmVy T3B0aW9ucyBvcHRpb25zOworZGlmZiAtLWNvbG9yIC1ydU5wIGEvZ3NzLXNlcnYuYyBiL2dzcy1z ZXJ2LmMKKy0tLSBhL2dzcy1zZXJ2LmMJMjAyNi0wMy0xMCAxMjo0MzozNi44MDI0NDMwMzQgKzAx MDAKKysrKyBiL2dzcy1zZXJ2LmMJMjAyNi0wMy0xMiAxMDowNDozNy41MjA5OTMzMzAgKzAxMDAK K0BAIC01Myw3ICs1Myw3IEBAIGV4dGVybiBTZXJ2ZXJPcHRpb25zIG9wdGlvbnM7CiAgCiAgc3Rh dGljIHNzaF9nc3NhcGlfY2xpZW50IGdzc2FwaV9jbGllbnQgPQogICAgICB7IEdTU19DX0VNUFRZ X0JVRkZFUiwgR1NTX0NfRU1QVFlfQlVGRkVSLCBHU1NfQ19OT19DUkVERU5USUFMLApAQCAtMTU1 LDcgKzIxLDcgQEAgaW5kZXggOWQ1NDM1ZWRhLi41YzA0OTFjZjEgMTAwNjQ0CiAgCiAgc3NoX2dz c2FwaV9tZWNoIGdzc2FwaV9udWxsX21lY2ggPQogICAgICB7IE5VTEwsIE5VTEwsIHswLCBOVUxM fSwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTH07Ci1AQCAtMjk2LDYgKzI5Niw5MiBAQCBz c2hfZ3NzYXBpX3BhcnNlX2VuYW1lKEdzc2N0eHQgKmN0eCwgZ3NzX2J1ZmZlcl90IGVuYW1lLCBn c3NfYnVmZmVyX3QgbmFtZSkKK0BAIC0yOTUsNiArMjk1LDk1IEBAIHNzaF9nc3NhcGlfcGFyc2Vf ZW5hbWUoR3NzY3R4dCAqY3R4LCBnc3MKICAJcmV0dXJuIEdTU19TX0NPTVBMRVRFOwogIH0KICAK QEAgLTE2Myw5ICsyOSwxMCBAQCBpbmRleCA5ZDU0MzVlZGEuLjVjMDQ5MWNmMSAxMDA2NDQKICsv KiBFeHRyYWN0IGF1dGhlbnRpY2F0aW9uIGluZGljYXRvcnMgZnJvbSB0aGUgS2VyYmVyb3MgdGlj a2V0LiBBdXRoZW50aWNhdGlvbgogKyAqIGluZGljYXRvcnMgYXJlIEdTU0FQSSBuYW1lIGF0dHJp YnV0ZXMgZm9yIHRoZSBuYW1lICJhdXRoLWluZGljYXRvcnMiLgogKyAqIE11bHRpcGxlIGluZGlj YXRvcnMgbWlnaHQgYmUgcHJlc2VudCBpbiB0aGUgdGlja2V0LgotKyAqIEVhY2ggaW5kaWNhdG9y IGlzIGEgdXRmOCBzdHJpbmcuICovCisrICogRWFjaCBpbmRpY2F0b3IgaXMgYW4gdXRmOCBzdHJp bmcuICovCiArCiArI2RlZmluZSBBVVRIX0lORElDQVRPUlNfVEFHICJhdXRoLWluZGljYXRvcnMi CisrI2RlZmluZSBTU0hfR1NTQVBJX01BWF9JTkRJQ0FUT1JTIDY0CiArCiArLyogUHJpdmlsZWdl ZCAoY2FsbGVkIGZyb20gYWNjZXB0X3NlY3VyZV9jdHgpICovCiArc3RhdGljIE9NX3VpbnQzMgpA QCAtMTg4LDI0ICs1NSw3IEBAIGluZGV4IDlkNTQzNWVkYS4uNWMwNDkxY2YxIDEwMDY0NAogKwkJ cmV0dXJuICgwKTsKICsJfQogKwotKwljb3VudCA9IDA7Ci0rCWZvciAoaSA9IDA7IGkgPCBhdHRy cy0+Y291bnQ7IGkrKykgewotKwkJLyogc2tpcCBhbnl0aGluZyBidXQgYXV0aC1pbmRpY2F0b3Jz ICovCi0rCQlpZiAoKChzaXplb2YoQVVUSF9JTkRJQ0FUT1JTX1RBRykgLSAxKSAhPSBhdHRycy0+ ZWxlbWVudHNbaV0ubGVuZ3RoKSB8fAotKwkJICAgIHN0cm5jbXAoQVVUSF9JTkRJQ0FUT1JTX1RB RywKLSsJCQkgICAgYXR0cnMtPmVsZW1lbnRzW2ldLnZhbHVlLAotKwkJCSAgICBzaXplb2YoQVVU SF9JTkRJQ0FUT1JTX1RBRykgLSAxKSAhPSAwKQotKwkJCWNvbnRpbnVlOwotKwkJY291bnQrKzsK LSsJfQotKwotKwlpZiAoY291bnQgPT0gMCkgewotKwkJLyogTm8gYXV0aC1pbmRpY2F0b3JzIGlu IHRoZSB0aWNrZXQgKi8KLSsJCSh2b2lkKSBnc3NfcmVsZWFzZV9idWZmZXJfc2V0KCZjdHgtPm1p bm9yLCAmYXR0cnMpOwotKwkJcmV0dXJuICgwKTsKLSsJfQotKwotKwljbGllbnQtPmluZGljYXRv cnMgPSByZWNhbGxvY2FycmF5KE5VTEwsIDAsIGNvdW50ICsgMSwgc2l6ZW9mKGNoYXIqKSk7Cisr CWNsaWVudC0+aW5kaWNhdG9ycyA9IE5VTEw7CiArCWNvdW50ID0gMDsKICsJZm9yIChpID0gMDsg aSA8IGF0dHJzLT5jb3VudDsgaSsrKSB7CiArCQlhdXRoZW50aWNhdGVkID0gMDsKQEAgLTIxMywy MiArNjMsMzMgQEAgaW5kZXggOWQ1NDM1ZWRhLi41YzA0OTFjZjEgMTAwNjQ0CiArCQltb3JlID0g LTE7CiArCQkvKiBza2lwIGFueXRoaW5nIGJ1dCBhdXRoLWluZGljYXRvcnMgKi8KICsJCWlmICgo KHNpemVvZihBVVRIX0lORElDQVRPUlNfVEFHKSAtIDEpICE9IGF0dHJzLT5lbGVtZW50c1tpXS5s ZW5ndGgpIHx8Ci0rCQkgICAgc3RybmNtcChBVVRIX0lORElDQVRPUlNfVEFHLAotKwkJCSAgICBh dHRycy0+ZWxlbWVudHNbaV0udmFsdWUsCi0rCQkJICAgIHNpemVvZihBVVRIX0lORElDQVRPUlNf VEFHKSAtIDEpICE9IDApCisrCQkgICAgbWVtY21wKEFVVEhfSU5ESUNBVE9SU19UQUcsCisrCQkJ ICAgYXR0cnMtPmVsZW1lbnRzW2ldLnZhbHVlLAorKwkJCSAgIHNpemVvZihBVVRIX0lORElDQVRP UlNfVEFHKSAtIDEpICE9IDApCiArCQkJY29udGludWU7CiArCQkvKiByZXRyaWV2ZSBhbGwgaW5k aWNhdG9ycyAqLwogKwkJd2hpbGUgKG1vcmUgIT0gMCkgewogKwkJCXZhbHVlLnZhbHVlID0gTlVM TDsKICsJCQlkaXNwbGF5X3ZhbHVlLnZhbHVlID0gTlVMTDsKICsJCQljdHgtPm1ham9yID0gZ3Nz X2dldF9uYW1lX2F0dHJpYnV0ZSgmY3R4LT5taW5vciwgZ3NzX25hbWUsCi0rCQkJCQkmYXR0cnMt PmVsZW1lbnRzW2ldLCAmYXV0aGVudGljYXRlZCwKLSsJCQkJCSZjb21wbGV0ZSwgJnZhbHVlLCAm ZGlzcGxheV92YWx1ZSwgJm1vcmUpOwotKwkJCWlmIChjdHgtPm1ham9yICE9IEdTU19TX0NPTVBM RVRFKSB7CisrCQkJCQkJCSAgICAmYXR0cnMtPmVsZW1lbnRzW2ldLCAmYXV0aGVudGljYXRlZCwK KysJCQkJCQkJICAgICZjb21wbGV0ZSwgJnZhbHVlLCAmZGlzcGxheV92YWx1ZSwgJm1vcmUpOwor KwkJCWlmIChjdHgtPm1ham9yICE9IEdTU19TX0NPTVBMRVRFKQogKwkJCQlnb3RvIG91dDsKLSsJ CQl9CiArCiArCQkJaWYgKCh2YWx1ZS52YWx1ZSAhPSBOVUxMKSAmJiBhdXRoZW50aWNhdGVkKSB7 CisrCQkJCWlmIChjb3VudCA+PSBTU0hfR1NTQVBJX01BWF9JTkRJQ0FUT1JTKSB7CisrCQkJCQls b2dpdCgic3NoX2dzc2FwaV9nZXRpbmRpY2F0b3JzOiB0b28gbWFueSAiCisrCQkJCQkgICAgImlu ZGljYXRvcnMsIHRydW5jYXRpbmcgYXQgJWQiLAorKwkJCQkJICAgIFNTSF9HU1NBUElfTUFYX0lO RElDQVRPUlMpOworKwkJCQkJLyogdmFsdWUvZGlzcGxheV92YWx1ZSByZWxlYXNlZCBhdCBvdXQ6 ICovCisrCQkJCQlnb3RvIGRvbmU7CisrCQkJCX0KKysKKysJCQkJY2xpZW50LT5pbmRpY2F0b3Jz ID0geHJlY2FsbG9jYXJyYXkoY2xpZW50LT5pbmRpY2F0b3JzLCBjb3VudCwgY291bnQgKyAxLCBz aXplb2YoY2hhciopKTsKKysJCQkJaWYgKGNsaWVudC0+aW5kaWNhdG9ycyA9PSBOVUxMKSB7Cisr CQkJCQlmYXRhbCgic3NoX2dzc2FwaV9nZXRpbmRpY2F0b3JzIGZhaWxlZCB0byBhbGxvY2F0ZSBt ZW1vcnkiKTsKKysJCQkJfQogKwkJCQljbGllbnQtPmluZGljYXRvcnNbY291bnRdID0geG1hbGxv Yyh2YWx1ZS5sZW5ndGggKyAxKTsKICsJCQkJbWVtY3B5KGNsaWVudC0+aW5kaWNhdG9yc1tjb3Vu dF0sIHZhbHVlLnZhbHVlLCB2YWx1ZS5sZW5ndGgpOwogKwkJCQljbGllbnQtPmluZGljYXRvcnNb Y291bnRdW3ZhbHVlLmxlbmd0aF0gPSAnXDAnOwpAQCAtMjM3LDE4ICs5OCwyNiBAQCBpbmRleCA5 ZDU0MzVlZGEuLjVjMDQ5MWNmMSAxMDA2NDQKICsJCX0KICsJfQogKworK2RvbmU6CisrCS8qIHNs b3QgW2NvdW50XSBpcyB6ZXJvZWQgYnkgcmVjYWxsb2NhcnJheSwgc2VydmVzIGFzIE5VTEwgc2Vu dGluZWwgKi8KKysKICtvdXQ6CisrCWlmIChjdHgtPm1ham9yICE9IEdTU19TX0NPTVBMRVRFICYm IGNsaWVudC0+aW5kaWNhdG9ycyAhPSBOVUxMKSB7CisrCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7 IGkrKykKKysJCQlmcmVlKGNsaWVudC0+aW5kaWNhdG9yc1tpXSk7CisrCQlmcmVlKGNsaWVudC0+ aW5kaWNhdG9ycyk7CisrCQljbGllbnQtPmluZGljYXRvcnMgPSBOVUxMOworKwl9CiArCSh2b2lk KSBnc3NfcmVsZWFzZV9idWZmZXIoJmN0eC0+bWlub3IsICZ2YWx1ZSk7CiArCSh2b2lkKSBnc3Nf cmVsZWFzZV9idWZmZXIoJmN0eC0+bWlub3IsICZkaXNwbGF5X3ZhbHVlKTsKICsJKHZvaWQpIGdz c19yZWxlYXNlX2J1ZmZlcl9zZXQoJmN0eC0+bWlub3IsICZhdHRycyk7CiArCXJldHVybiAoY3R4 LT5tYWpvcik7CiArfQogKwotKwogIC8qIEV4dHJhY3QgdGhlIGNsaWVudCBkZXRhaWxzIGZyb20g YSBnaXZlbiBjb250ZXh0LiBUaGlzIGNhbiBvbmx5IHJlbGlhYmx5CiAgICogYmUgY2FsbGVkIG9u Y2UgZm9yIGEgY29udGV4dCAqLwogIAotQEAgLTM4NSw2ICs0NzEsMTIgQEAgc3NoX2dzc2FwaV9n ZXRjbGllbnQoR3NzY3R4dCAqY3R4LCBzc2hfZ3NzYXBpX2NsaWVudCAqY2xpZW50KQorQEAgLTM4 NCw2ICs0NzMsMTIgQEAgc3NoX2dzc2FwaV9nZXRjbGllbnQoR3NzY3R4dCAqY3R4LCBzc2hfZwog IAl9CiAgCiAgCWdzc19yZWxlYXNlX2J1ZmZlcigmY3R4LT5taW5vciwgJmVuYW1lKTsKQEAgLTI2 MSw3ICsxMzAsNyBAQCBpbmRleCA5ZDU0MzVlZGEuLjVjMDQ5MWNmMSAxMDA2NDQKICAKICAJLyog V2UgY2FuJ3QgY29weSB0aGlzIHN0cnVjdHVyZSwgc28gd2UganVzdCBtb3ZlIHRoZSBwb2ludGVy IHRvIGl0ICovCiAgCWNsaWVudC0+Y3JlZHMgPSBjdHgtPmNsaWVudF9jcmVkczsKLUBAIC00NDcs NiArNTM5LDcgQEAgaW50CitAQCAtNDQ2LDYgKzU0MSw3IEBAIGludAogIHNzaF9nc3NhcGlfdXNl cm9rKGNoYXIgKnVzZXIsIHN0cnVjdCBwYXNzd2QgKnB3LCBpbnQga2V4KQogIHsKICAJT01fdWlu dDMyIGxtaW47CkBAIC0yNjksMzQgKzEzOCwxNzQgQEAgaW5kZXggOWQ1NDM1ZWRhLi41YzA0OTFj ZjEgMTAwNjQ0CiAgCiAgCSh2b2lkKSBrZXg7IC8qIHVzZWQgaW4gcHJpdmlsZWdlIHNlcGFyYXRp b24gKi8KICAKLUBAIC00NjUsNiArNTU4LDE0IEBAIHNzaF9nc3NhcGlfdXNlcm9rKGNoYXIgKnVz ZXIsIHN0cnVjdCBwYXNzd2QgKnB3LCBpbnQga2V4KQorQEAgLTQ2NCw4ICs1NjAsMTQgQEAgc3No X2dzc2FwaV91c2Vyb2soY2hhciAqdXNlciwgc3RydWN0IHBhcwogIAkJCWdzc19yZWxlYXNlX2J1 ZmZlcigmbG1pbiwgJmdzc2FwaV9jbGllbnQuZGlzcGxheW5hbWUpOwogIAkJCWdzc19yZWxlYXNl X2J1ZmZlcigmbG1pbiwgJmdzc2FwaV9jbGllbnQuZXhwb3J0ZWRuYW1lKTsKICAJCQlnc3NfcmVs ZWFzZV9jcmVkKCZsbWluLCAmZ3NzYXBpX2NsaWVudC5jcmVkcyk7CistCQkJZXhwbGljaXRfYnpl cm8oJmdzc2FwaV9jbGllbnQsCistCQkJICAgIHNpemVvZihzc2hfZ3NzYXBpX2NsaWVudCkpOwog KwogKwkJCWlmIChnc3NhcGlfY2xpZW50LmluZGljYXRvcnMgIT0gTlVMTCkgewotKwkJCQlmb3Io aSA9IDA7IGdzc2FwaV9jbGllbnQuaW5kaWNhdG9yc1tpXSAhPSBOVUxMOyBpKyspIHsKKysJCQkJ Zm9yIChpID0gMDsgZ3NzYXBpX2NsaWVudC5pbmRpY2F0b3JzW2ldICE9IE5VTEw7IGkrKykKICsJ CQkJCWZyZWUoZ3NzYXBpX2NsaWVudC5pbmRpY2F0b3JzW2ldKTsKLSsJCQkJfQogKwkJCQlmcmVl KGdzc2FwaV9jbGllbnQuaW5kaWNhdG9ycyk7CiArCQkJfQogKwotIAkJCWV4cGxpY2l0X2J6ZXJv KCZnc3NhcGlfY2xpZW50LAotIAkJCSAgICBzaXplb2Yoc3NoX2dzc2FwaV9jbGllbnQpKTsKKysJ CQlleHBsaWNpdF9iemVybygmZ3NzYXBpX2NsaWVudCwgc2l6ZW9mKHNzaF9nc3NhcGlfY2xpZW50 KSk7CiAgCQkJcmV0dXJuIDA7Ci1kaWZmIC0tZ2l0IGEvc2VydmNvbmYuYyBiL3NlcnZjb25mLmMK LWluZGV4IGU3ZTRhZDA0Ni4uYWFiNjUzMjQ0IDEwMDY0NAotLS0tIGEvc2VydmNvbmYuYwotKysr IGIvc2VydmNvbmYuYwotQEAgLTE0Nyw2ICsxNDcsNyBAQCBpbml0aWFsaXplX3NlcnZlcl9vcHRp b25zKFNlcnZlck9wdGlvbnMgKm9wdGlvbnMpCisgCQl9CisgCWVsc2UKK2RpZmYgLS1jb2xvciAt cnVOcCBhL2dzcy1zZXJ2LWtyYjUuYyBiL2dzcy1zZXJ2LWtyYjUuYworLS0tIGEvZ3NzLXNlcnYt a3JiNS5jCTIwMjYtMDMtMTAgMTI6NDM6MzYuODIzMDE1MzM2ICswMTAwCisrKysgYi9nc3Mtc2Vy di1rcmI1LmMJMjAyNi0wMy0xMSAxMjo1ODo1Ni4wMjQ0NTUyMzggKzAxMDAKK0BAIC00Myw2ICs0 Myw3IEBACisgI2luY2x1ZGUgImxvZy5oIgorICNpbmNsdWRlICJtaXNjLmgiCisgI2luY2x1ZGUg InNlcnZjb25mLmgiCisrI2luY2x1ZGUgIm1hdGNoLmgiCisgCisgI2luY2x1ZGUgInNzaC1nc3Mu aCIKKyAKK0BAIC04Nyw2ICs4OCwzMyBAQCBzc2hfZ3NzYXBpX2tyYjVfaW5pdCh2b2lkKQorIAly ZXR1cm4gMTsKKyB9CisgCisrLyogQ2hlY2sgaWYgYW55IG9mIHRoZSBpbmRpY2F0b3JzIGluIHRo ZSBLZXJiZXJvcyB0aWNrZXQgbWF0Y2gKKysgKiBvbmUgb2YgaW5kaWNhdG9ycyBpbiB0aGUgbGlz dCBvZiBhbGxvd2VkL2RlbmllZCBydWxlcy4KKysgKiBJbiBjYXNlIG9mIHRoZSBtYXRjaCwgYXBw bHkgdGhlIGRlY2lzaW9uIGZyb20gdGhlIHJ1bGUuCisrICogSW4gY2FzZSBvZiBubyBpbmRpY2F0 b3IgZnJvbSB0aGUgdGlja2V0IG1hdGNoaW5nIHRoZSBydWxlLCBkZW55CisrICovCisrCisrc3Rh dGljIGludAorK3NzaF9nc3NhcGlfY2hlY2tfaW5kaWNhdG9ycyhzc2hfZ3NzYXBpX2NsaWVudCAq Y2xpZW50LCBpbnQgKm1hdGNoZWQpCisreworKwlpbnQgcmV0OworKwl1X2ludCBpOworKwkqbWF0 Y2hlZCA9IC0xOworKworKwkvKiBDaGVjayBpbmRpY2F0b3JzICovCisrCWZvciAoaSA9IDA7IGNs aWVudC0+aW5kaWNhdG9yc1tpXSAhPSBOVUxMOyBpKyspIHsKKysJCXJldCA9IG1hdGNoX3BhdHRl cm5fbGlzdChjbGllbnQtPmluZGljYXRvcnNbaV0sCisrCQkJCQkgb3B0aW9ucy5nc3NfaW5kaWNh dG9ycywgMSk7CisrCQkvKiBuZWdhdGl2ZSBvciBwb3NpdGl2ZSBtYXRjaCAqLworKwkJaWYgKHJl dCAhPSAwKSB7CisrCQkJKm1hdGNoZWQgPSBpOworKwkJCXJldHVybiByZXQ7CisrCQl9CisrCX0K KysJLyogTm8gcnVsZSBtYXRjaGVkICovCisrCXJldHVybiAwOworK30KKysKKyAvKiBDaGVjayBp ZiB0aGlzIHVzZXIgaXMgT0sgdG8gbG9naW4uIFRoaXMgb25seSB3b3JrcyB3aXRoIGtyYjUgLSBv dGhlcgorICAqIEdTU0FQSSBtZWNoYW5pc21zIHdpbGwgbmVlZCB0aGVpciBvd24uCisgICogUmV0 dXJucyB0cnVlIGlmIHRoZSB1c2VyIGlzIE9LIHRvIGxvZyBpbiwgb3RoZXJ3aXNlIHJldHVybnMg MAorQEAgLTE5MywxNSArMjIxLDE1IEBAIHN0YXRpYyBpbnQKKyBzc2hfZ3NzYXBpX2tyYjVfdXNl cm9rKHNzaF9nc3NhcGlfY2xpZW50ICpjbGllbnQsIGNoYXIgKm5hbWUpCisgeworIAlrcmI1X3By aW5jaXBhbCBwcmluYzsKKy0JaW50IHJldHZhbDsKKysJaW50IHJldHZhbCwgbWF0Y2hlZCwgc3Vj Y2VzczsKKyAJY29uc3QgY2hhciAqZXJybXNnOworIAlpbnQgazVsb2dpbl9leGlzdHM7CisgCisg CWlmIChzc2hfZ3NzYXBpX2tyYjVfaW5pdCgpID09IDApCisgCQlyZXR1cm4gMDsKKyAKKy0JaWYg KChyZXR2YWwgPSBrcmI1X3BhcnNlX25hbWUoa3JiX2NvbnRleHQsIGNsaWVudC0+ZXhwb3J0ZWRu YW1lLnZhbHVlLAorLQkgICAgJnByaW5jKSkpIHsKKysJcmV0dmFsID0ga3JiNV9wYXJzZV9uYW1l KGtyYl9jb250ZXh0LCBjbGllbnQtPmV4cG9ydGVkbmFtZS52YWx1ZSwgJnByaW5jKTsKKysJaWYg KHJldHZhbCkgeworIAkJZXJybXNnID0ga3JiNV9nZXRfZXJyb3JfbWVzc2FnZShrcmJfY29udGV4 dCwgcmV0dmFsKTsKKyAJCWxvZ2l0KCJrcmI1X3BhcnNlX25hbWUoKTogJS4xMDBzIiwgZXJybXNn KTsKKyAJCWtyYjVfZnJlZV9lcnJvcl9tZXNzYWdlKGtyYl9jb250ZXh0LCBlcnJtc2cpOworQEAg LTIxNiwxNyArMjQ0LDYwIEBAIHNzaF9nc3NhcGlfa3JiNV91c2Vyb2soc3NoX2dzc2FwaV9jbGll bnQKKyAJaWYgKGs1bG9naW5fZXhpc3RzICYmCisgCSAgICBzc2hfa3JiNV9rdXNlcm9rKGtyYl9j b250ZXh0LCBwcmluYywgbmFtZSwgazVsb2dpbl9leGlzdHMpKSB7CisgCQlyZXR2YWwgPSAxOwor LQkJbG9naXQoIkF1dGhvcml6ZWQgdG8gJXMsIGtyYjUgcHJpbmNpcGFsICVzIChrcmI1X2t1c2Vy b2spIiwKKy0JCSAgICBuYW1lLCAoY2hhciAqKWNsaWVudC0+ZGlzcGxheW5hbWUudmFsdWUpOwor KwkJZXJybXNnID0gImtyYjVfa3VzZXJvayI7CisgCX0gZWxzZSBpZiAoc3NoX2dzc2FwaV9rcmI1 X2NtZG9rKHByaW5jLCBjbGllbnQtPmV4cG9ydGVkbmFtZS52YWx1ZSwKKyAJCW5hbWUsIGs1bG9n aW5fZXhpc3RzKSkgeworIAkJcmV0dmFsID0gMTsKKy0JCWxvZ2l0KCJBdXRob3JpemVkIHRvICVz LCBrcmI1IHByaW5jaXBhbCAlcyAiCistCQkgICAgIihzc2hfZ3NzYXBpX2tyYjVfY21kb2spIiwK Ky0JCSAgICBuYW1lLCAoY2hhciAqKWNsaWVudC0+ZGlzcGxheW5hbWUudmFsdWUpOworLQl9IGVs c2UKKysJCWVycm1zZyA9ICJzc2hfZ3NzYXBpX2tyYjVfY21kb2siOworKwl9IGVsc2UgeworKwkJ cmV0dmFsID0gMDsKKysJCWdvdG8gb3V0OworKwl9CisrCisrCS8qIEF0IHRoaXMgcG9pbnQgd2Ug YXJlIGdvb2QgaWYgbm8gaW5kaWNhdG9ycyB3ZXJlIGRlZmluZWQgKi8KKysJaWYgKG9wdGlvbnMu Z3NzX2luZGljYXRvcnMgPT0gTlVMTCkgeworKwkJcmV0dmFsID0gMTsKKysJCWdvdG8gb3V0Owor Kwl9CisrCisrCS8qIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBpbmRpY2F0b3JzIGRlZmluZWQgaW4g dGhlIGNvbmZpZ3VyYXRpb24sCisrCSAqIGlmIGNsaWVudHQgZGlkIG5vdCBwcm92aWRlIGFueSBp bmRpY2F0b3JzLCB3ZSByZWplY3QgKi8KKysJaWYgKCFjbGllbnQtPmluZGljYXRvcnMpIHsKKysJ CXJldHZhbCA9IDA7CisrCQlsb2dpdCgiR1NTQVBJIGF1dGhlbnRpY2F0aW9uIGluZGljYXRvcnMg ZW5mb3JjZWQgIgorKwkJICAgICAgImJ1dCBpbmRpY2F0b3JzIG5vdCBwcm92aWRlZCBieSB0aGUg Y2xpZW50LiAiCisrCQkgICAgICAia3JiNSBwcmluY2lwYWwgJXMgZGVuaWVkIiwKKysJCSAgICAg IChjaGFyICopY2xpZW50LT5kaXNwbGF5bmFtZS52YWx1ZSk7CisrCQlnb3RvIG91dDsKKysJfQor KworKwkvKiBBdCB0aGlzIHBvaW50IHRoZSBjb25maWd1cmF0aW9uIGVuZm9yY2VzIHByZXNlbmNl IG9mIGluZGljYXRvcnMKKysJICogY2hlY2sgdGhlIG1hdGNoICovCisrCW1hdGNoZWQgPSAtMTsK KysJc3VjY2VzcyA9IHNzaF9nc3NhcGlfY2hlY2tfaW5kaWNhdG9ycyhjbGllbnQsICZtYXRjaGVk KTsKKysKKysJc3dpdGNoIChzdWNjZXNzKSB7CisrCWNhc2UgMToKKysJCWxvZ2l0KCJQcm92aWRl ZCBpbmRpY2F0b3IgJXMgYWxsb3dlZCBieSB0aGUgY29uZmlndXJhdGlvbiIsCisrCQkgICAgICBj bGllbnQtPmluZGljYXRvcnNbbWF0Y2hlZF0pOworKwkJcmV0dmFsID0gMTsKKysJCWJyZWFrOwor KwljYXNlIC0xOgorKwkJbG9naXQoIlByb3ZpZGVkIGluZGljYXRvciAlcyByZWplY3RlZCBieSB0 aGUgY29uZmlndXJhdGlvbiIsCisrCQkgICAgICBjbGllbnQtPmluZGljYXRvcnNbbWF0Y2hlZF0p OworKwkJcmV0dmFsID0gMDsKKysJCWJyZWFrOworKwlkZWZhdWx0OgorKwkJbG9naXQoIlByb3Zp ZGVkIGluZGljYXRvcnMgZG8gbm90IG1hdGNoIHRoZSBjb25maWd1cmF0aW9uIik7CisgCQlyZXR2 YWwgPSAwOworKwkJYnJlYWs7CisrCX0KKyAKKytvdXQ6CisrCWlmIChyZXR2YWwgPT0gMSkgewor KwkJbG9naXQoIkF1dGhvcml6ZWQgdG8gJXMsIGtyYjUgcHJpbmNpcGFsICVzICglcykiLAorKwkJ ICAgICAgbmFtZSwgKGNoYXIgKiljbGllbnQtPmRpc3BsYXluYW1lLnZhbHVlLCBlcnJtc2cpOwor Kwl9CisgCWtyYjVfZnJlZV9wcmluY2lwYWwoa3JiX2NvbnRleHQsIHByaW5jKTsKKyAJcmV0dXJu IHJldHZhbDsKKyB9CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5jIGIvc2VydmNvbmYu YworLS0tIGEvc2VydmNvbmYuYwkyMDI2LTAzLTEwIDEyOjQzOjM2LjkyODA2MDM1MyArMDEwMAor KysrIGIvc2VydmNvbmYuYwkyMDI2LTAzLTExIDEzOjIwOjA5LjcyNTM1NDkyNSArMDEwMAorQEAg LTE0NCw2ICsxNDQsNyBAQCBpbml0aWFsaXplX3NlcnZlcl9vcHRpb25zKFNlcnZlck9wdGlvbnMK KyAJb3B0aW9ucy0+Z3NzX2tleWV4ID0gLTE7CisgCW9wdGlvbnMtPmdzc19jbGVhbnVwX2NyZWRz ID0gLTE7CiAgCW9wdGlvbnMtPmdzc19zdHJpY3RfYWNjZXB0b3IgPSAtMTsKKysJb3B0aW9ucy0+ Z3NzX2luZGljYXRvcnMgPSBOVUxMOwogIAlvcHRpb25zLT5nc3Nfc3RvcmVfcmVrZXkgPSAtMTsK ICAJb3B0aW9ucy0+Z3NzX2tleF9hbGdvcml0aG1zID0gTlVMTDsKLSsJb3B0aW9ucy0+Z3NzX2lu ZGljYXRvcnMgPSBOVUxMOwogIAlvcHRpb25zLT51c2Vfa3VzZXJvayA9IC0xOwotIAlvcHRpb25z LT5lbmFibGVfazV1c2VycyA9IC0xOwotIAlvcHRpb25zLT5wYXNzd29yZF9hdXRoZW50aWNhdGlv biA9IC0xOwotQEAgLTU5OCw3ICs1OTksNyBAQCB0eXBlZGVmIGVudW0geworQEAgLTU1Nyw2ICs1 NTgsNyBAQCBmaWxsX2RlZmF1bHRfc2VydmVyX29wdGlvbnMoU2VydmVyT3B0aW9uCisgCUNMRUFS X09OX05PTkUob3B0aW9ucy0+cm91dGluZ19kb21haW4pOworIAlDTEVBUl9PTl9OT05FKG9wdGlv bnMtPmhvc3Rfa2V5X2FnZW50KTsKKyAJQ0xFQVJfT05fTk9ORShvcHRpb25zLT5wZXJfc291cmNl X3BlbmFsdHlfZXhlbXB0KTsKKysJQ0xFQVJfT05fTk9ORShvcHRpb25zLT5nc3NfaW5kaWNhdG9y cyk7CisgCisgCWZvciAoaSA9IDA7IGkgPCBvcHRpb25zLT5udW1faG9zdF9rZXlfZmlsZXM7IGkr KykKKyAJCUNMRUFSX09OX05PTkUob3B0aW9ucy0+aG9zdF9rZXlfZmlsZXNbaV0pOworQEAgLTU5 NCw3ICs1OTYsNyBAQCB0eXBlZGVmIGVudW0gewogIAlzUGVyU291cmNlUGVuYWx0aWVzLCBzUGVy U291cmNlUGVuYWx0eUV4ZW1wdExpc3QsCiAgCXNDbGllbnRBbGl2ZUludGVydmFsLCBzQ2xpZW50 QWxpdmVDb3VudE1heCwgc0F1dGhvcml6ZWRLZXlzRmlsZSwKICAJc0dzc0F1dGhlbnRpY2F0aW9u LCBzR3NzQ2xlYW51cENyZWRzLCBzR3NzRW5hYmxlazV1c2Vycywgc0dzc1N0cmljdEFjY2VwdG9y LApAQCAtMzA1LDcgKzMxNCw3IEBAIGluZGV4IGU3ZTRhZDA0Ni4uYWFiNjUzMjQ0IDEwMDY0NAog IAlzQWNjZXB0RW52LCBzU2V0RW52LCBzUGVybWl0VHVubmVsLAogIAlzTWF0Y2gsIHNQZXJtaXRP cGVuLCBzUGVybWl0TGlzdGVuLCBzRm9yY2VDb21tYW5kLCBzQ2hyb290RGlyZWN0b3J5LAogIAlz VXNlUHJpdmlsZWdlU2VwYXJhdGlvbiwgc0FsbG93QWdlbnRGb3J3YXJkaW5nLAotQEAgLTY5NCw2 ICs2OTUsNyBAQCBzdGF0aWMgc3RydWN0IHsKK0BAIC02OTAsNiArNjkyLDcgQEAgc3RhdGljIHN0 cnVjdCB7CiAgCXsgImdzc2FwaXN0b3JlY3JlZGVudGlhbHNvbnJla2V5Iiwgc0dzc1N0b3JlUmVr ZXksIFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpa2V4YWxnb3JpdGhtcyIsIHNHc3NLZXhB bGdvcml0aG1zLCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaWVuYWJsZWs1dXNlcnMiLCBz R3NzRW5hYmxlazV1c2VycywgU1NIQ0ZHX0FMTCB9LApAQCAtMzEzLDcgKzMyMiw3IEBAIGluZGV4 IGU3ZTRhZDA0Ni4uYWFiNjUzMjQ0IDEwMDY0NAogICNlbHNlCiAgCXsgImdzc2FwaWF1dGhlbnRp Y2F0aW9uIiwgc1Vuc3VwcG9ydGVkLCBTU0hDRkdfQUxMIH0sCiAgCXsgImdzc2FwaWNsZWFudXBj cmVkZW50aWFscyIsIHNVbnN1cHBvcnRlZCwgU1NIQ0ZHX0dMT0JBTCB9LAotQEAgLTcwMyw2ICs3 MDUsNyBAQCBzdGF0aWMgc3RydWN0IHsKK0BAIC02OTksNiArNzAyLDcgQEAgc3RhdGljIHN0cnVj dCB7CiAgCXsgImdzc2FwaXN0b3JlY3JlZGVudGlhbHNvbnJla2V5Iiwgc1Vuc3VwcG9ydGVkLCBT U0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaWtleGFsZ29yaXRobXMiLCBzVW5zdXBwb3J0ZWQs IFNTSENGR19HTE9CQUwgfSwKICAJeyAiZ3NzYXBpZW5hYmxlazV1c2VycyIsIHNVbnN1cHBvcnRl ZCwgU1NIQ0ZHX0FMTCB9LApAQCAtMzIxLDcgKzMzMCw3IEBAIGluZGV4IGU3ZTRhZDA0Ni4uYWFi NjUzMjQ0IDEwMDY0NAogICNlbmRpZgogIAl7ICJnc3N1c2VzZXNzaW9uY2NhY2hlIiwgc1Vuc3Vw cG9ydGVkLCBTU0hDRkdfR0xPQkFMIH0sCiAgCXsgImdzc2FwaXVzZXNlc3Npb25jcmVkY2FjaGUi LCBzVW5zdXBwb3J0ZWQsIFNTSENGR19HTE9CQUwgfSwKLUBAIC0xNzMwLDYgKzE3MzMsMTUgQEAg cHJvY2Vzc19zZXJ2ZXJfY29uZmlnX2xpbmVfZGVwdGgoU2VydmVyT3B0aW9ucyAqb3B0aW9ucywg Y2hhciAqbGluZSwKK0BAIC0xNzE1LDYgKzE3MTksMTUgQEAgcHJvY2Vzc19zZXJ2ZXJfY29uZmln X2xpbmVfZGVwdGgoU2VydmVyTwogIAkJCW9wdGlvbnMtPmdzc19rZXhfYWxnb3JpdGhtcyA9IHhz dHJkdXAoYXJnKTsKICAJCWJyZWFrOwogIApAQCAtMzM3LDcgKzM0Niw3IEBAIGluZGV4IGU3ZTRh ZDA0Ni4uYWFiNjUzMjQ0IDEwMDY0NAogIAljYXNlIHNQYXNzd29yZEF1dGhlbnRpY2F0aW9uOgog IAkJaW50cHRyID0gJm9wdGlvbnMtPnBhc3N3b3JkX2F1dGhlbnRpY2F0aW9uOwogIAkJZ290byBw YXJzZV9mbGFnOwotQEAgLTMzNTEsNiArMzM2Myw3IEBAIGR1bXBfY29uZmlnKFNlcnZlck9wdGlv bnMgKm8pCitAQCAtMzMyOSw2ICszMzQyLDcgQEAgZHVtcF9jb25maWcoU2VydmVyT3B0aW9ucyAq bykKICAJZHVtcF9jZmdfZm10aW50KHNHc3NTdHJpY3RBY2NlcHRvciwgby0+Z3NzX3N0cmljdF9h Y2NlcHRvcik7CiAgCWR1bXBfY2ZnX2ZtdGludChzR3NzU3RvcmVSZWtleSwgby0+Z3NzX3N0b3Jl X3Jla2V5KTsKICAJZHVtcF9jZmdfc3RyaW5nKHNHc3NLZXhBbGdvcml0aG1zLCBvLT5nc3Nfa2V4 X2FsZ29yaXRobXMpOwpAQCAtMzQ1LDEwICszNTQsOSBAQCBpbmRleCBlN2U0YWQwNDYuLmFhYjY1 MzI0NCAxMDA2NDQKICAjZW5kaWYKICAJZHVtcF9jZmdfZm10aW50KHNQYXNzd29yZEF1dGhlbnRp Y2F0aW9uLCBvLT5wYXNzd29yZF9hdXRoZW50aWNhdGlvbik7CiAgCWR1bXBfY2ZnX2ZtdGludChz S2JkSW50ZXJhY3RpdmVBdXRoZW50aWNhdGlvbiwKLWRpZmYgLS1naXQgYS9zZXJ2Y29uZi5oIGIv c2VydmNvbmYuaAotaW5kZXggN2M3ZTVkNDM0Li43YzQxZGY0MTcgMTAwNjQ0Ci0tLS0gYS9zZXJ2 Y29uZi5oCi0rKysgYi9zZXJ2Y29uZi5oCitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zZXJ2Y29uZi5o IGIvc2VydmNvbmYuaAorLS0tIGEvc2VydmNvbmYuaAkyMDI2LTAzLTEwIDEyOjQzOjM2LjgzMzEx OTkyMCArMDEwMAorKysrIGIvc2VydmNvbmYuaAkyMDI2LTAzLTExIDEzOjIxOjM2Ljc0MjExNzAz MyArMDEwMAogQEAgLTE4MSw2ICsxODEsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgCWNoYXIgICAq KmFsbG93X2dyb3VwczsKICAJdV9pbnQgbnVtX2RlbnlfZ3JvdXBzOwpAQCAtMzU3LDcgKzM2NSw3 IEBAIGluZGV4IDdjN2U1ZDQzNC4uN2M0MWRmNDE3IDEwMDY0NAogIAogIAl1X2ludCBudW1fc3Vi c3lzdGVtczsKICAJY2hhciAgICoqc3Vic3lzdGVtX25hbWU7Ci1AQCAtMzEwLDYgKzMxMSw3IEBA IFRBSUxRX0hFQUQoaW5jbHVkZV9saXN0LCBpbmNsdWRlX2l0ZW0pOworQEAgLTMwOSw2ICszMTAs NyBAQCBUQUlMUV9IRUFEKGluY2x1ZGVfbGlzdCwgaW5jbHVkZV9pdGVtKTsKICAJCU1fQ1BfU1RS T1BUKHJvdXRpbmdfZG9tYWluKTsgXAogIAkJTV9DUF9TVFJPUFQocGVybWl0X3VzZXJfZW52X2Fs bG93bGlzdCk7IFwKICAJCU1fQ1BfU1RST1BUKHBhbV9zZXJ2aWNlX25hbWUpOyBcCkBAIC0zNjUs MzYgKzM3MywxMCBAQCBpbmRleCA3YzdlNWQ0MzQuLjdjNDFkZjQxNyAxMDA2NDQKICAJCU1fQ1Bf U1RSQVJSQVlPUFQoYXV0aG9yaXplZF9rZXlzX2ZpbGVzLCBudW1fYXV0aGtleXNfZmlsZXMpOyBc CiAgCQlNX0NQX1NUUkFSUkFZT1BUKGFsbG93X3VzZXJzLCBudW1fYWxsb3dfdXNlcnMpOyBcCiAg CQlNX0NQX1NUUkFSUkFZT1BUKGRlbnlfdXNlcnMsIG51bV9kZW55X3VzZXJzKTsgXAotZGlmZiAt LWdpdCBhL3NzaC1nc3MuaCBiL3NzaC1nc3MuaAotaW5kZXggYTg5NGUyM2M5Li41OWNmNDZkNDcg MTAwNjQ0Ci0tLS0gYS9zc2gtZ3NzLmgKLSsrKyBiL3NzaC1nc3MuaAotQEAgLTM0LDYgKzM0LDEy IEBACi0gI2luY2x1ZGUgPGdzc2FwaS9nc3NhcGkuaD4KLSAjZW5kaWYKLSAKLSsjaWZkZWYgSEFW RV9HU1NBUElfRVhUX0gKLSsjaW5jbHVkZSA8Z3NzYXBpX2V4dC5oPgotKyNlbGlmIGRlZmluZWQo SEFWRV9HU1NBUElfR1NTQVBJX0VYVF9IKQotKyNpbmNsdWRlIDxnc3NhcGkvZ3NzYXBpX2V4dC5o PgotKyNlbmRpZgotKwotICNpZmRlZiBLUkI1Ci0gIyBpZm5kZWYgSEVJTURBTAotICMgIGlmZGVm IEhBVkVfR1NTQVBJX0dFTkVSSUNfSAotQEAgLTEwNyw2ICsxMTMsNyBAQCB0eXBlZGVmIHN0cnVj dCB7Ci0gCXNzaF9nc3NhcGlfY2NhY2hlIHN0b3JlOwotIAlpbnQgdXNlZDsKLSAJaW50IHVwZGF0 ZWQ7Ci0rCWNoYXIgKippbmRpY2F0b3JzOyAvKiBhdXRoIGluZGljYXRvcnMgKi8KLSB9IHNzaF9n c3NhcGlfY2xpZW50OwotIAotIHR5cGVkZWYgc3RydWN0IHNzaF9nc3NhcGlfbWVjaF9zdHJ1Y3Qg ewotZGlmZiAtLWdpdCBhL3NzaGRfY29uZmlnLjUgYi9zc2hkX2NvbmZpZy41Ci1pbmRleCA1ODNh MDFjZGIuLjkwYWI4N2VkZCAxMDA2NDQKLS0tLSBhL3NzaGRfY29uZmlnLjUKLSsrKyBiL3NzaGRf Y29uZmlnLjUKLUBAIC03ODUsNiArNzg1LDUwIEBAIGdzcy1uaXN0cDI1Ni1zaGEyNTYtCitkaWZm IC0tY29sb3IgLXJ1TnAgYS9zc2hkX2NvbmZpZy41IGIvc3NoZF9jb25maWcuNQorLS0tIGEvc3No ZF9jb25maWcuNQkyMDI2LTAzLTEwIDEyOjQzOjM2Ljg1OTMxMzMwMiArMDEwMAorKysrIGIvc3No ZF9jb25maWcuNQkyMDI2LTAzLTExIDEzOjI4OjA0LjU0MTk3MDA2MyArMDEwMAorQEAgLTc4NSw2 ICs3ODUsNTIgQEAgZ3NzLW5pc3RwMjU2LXNoYTI1Ni0KICBnc3MtY3VydmUyNTUxOS1zaGEyNTYt CiAgLkVkCiAgVGhpcyBvcHRpb24gb25seSBhcHBsaWVzIHRvIGNvbm5lY3Rpb25zIHVzaW5nIEdT U0FQSS4KQEAgLTQ0MSwxMCArNDIzLDMzIEBAIGluZGV4IDU4M2EwMWNkYi4uOTBhYjg3ZWRkIDEw MDY0NAogK0ZJRE8yLWJhc2VkIHByZS1hdXRoZW50aWNhdGlvbiBpbiBGcmVlSVBBLCB1c2luZyBG SURPMiBVU0IgYW5kIE5GQyB0b2tlbnMKICsuRWwKICsuUHAKLStUaGUgZGVmYXVsdCBpcyB0byBu b3QgdXNlIEdTU0FQSSBhdXRoZW50aWNhdGlvbiBpbmRpY2F0b3JzIGZvciBhY2Nlc3MgZGVjaXNp b25zLgorK1RoZSBkZWZhdWx0CisrLkRxIG5vbmUKKytpcyB0byBub3QgdXNlIEdTU0FQSSBhdXRo ZW50aWNhdGlvbiBpbmRpY2F0b3JzIGZvciBhY2Nlc3MgZGVjaXNpb25zLgogIC5JdCBDbSBIb3N0 YmFzZWRBY2NlcHRlZEFsZ29yaXRobXMKICBUaGUgZGVmYXVsdCBpcyBoYW5kbGVkIHN5c3RlbS13 aWRlIGJ5CiAgLlhyIGNyeXB0by1wb2xpY2llcyA3IC4KLS0tIAotMi40OS4wCi0KK2RpZmYgLS1j b2xvciAtcnVOcCBhL3NzaC1nc3MuaCBiL3NzaC1nc3MuaAorLS0tIGEvc3NoLWdzcy5oCTIwMjYt MDMtMTAgMTI6NDM6MzYuODk4MTQ4MzA5ICswMTAwCisrKysgYi9zc2gtZ3NzLmgJMjAyNi0wMy0x MSAxMzoyMzowNy42MDE5NTY5NjUgKzAxMDAKK0BAIC0zNCw2ICszNCwxMiBAQAorICNpbmNsdWRl IDxnc3NhcGkvZ3NzYXBpLmg+CisgI2VuZGlmCisgCisrI2lmZGVmIEhBVkVfR1NTQVBJX0VYVF9I CisrI2luY2x1ZGUgPGdzc2FwaV9leHQuaD4KKysjZWxpZiBkZWZpbmVkKEhBVkVfR1NTQVBJX0dT U0FQSV9FWFRfSCkKKysjaW5jbHVkZSA8Z3NzYXBpL2dzc2FwaV9leHQuaD4KKysjZW5kaWYKKysK KyAjaWZkZWYgS1JCNQorICMgaWZuZGVmIEhFSU1EQUwKKyAjICBpZmRlZiBIQVZFX0dTU0FQSV9H RU5FUklDX0gKK0BAIC0xMTIsNiArMTE4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIAlzc2hfZ3Nz YXBpX2NjYWNoZSBzdG9yZTsKKyAJaW50IHVzZWQ7CisgCWludCB1cGRhdGVkOworKwljaGFyICoq aW5kaWNhdG9yczsgLyogYXV0aCBpbmRpY2F0b3JzICovCisgfSBzc2hfZ3NzYXBpX2NsaWVudDsK KyAKKyB0eXBlZGVmIHN0cnVjdCBzc2hfZ3NzYXBpX21lY2hfc3RydWN0IHsK