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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Delete upstreamed patches Date: Sun, 31 May 2026 02:07:20 GMT Message-ID: <178019324067.1.4268397372429861323.rpms-ibus-bd586f3b2dab@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: bd586f3b2dab6cbdc0fc640595e9b36a7539a10a QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiBiZDU4NmYzYjJkYWI2Y2JkYzBmYzY0MDU5NWU5YjM2YTc1Mzlh MTBhCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDIwLTAyLTIxVDIyOjE1OjM5KzA5OjAwClN0YXRzICA6ICswLy0zMzg0IGluIDEgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy9iZDU4 NmYzYjJkYWI2Y2JkYzBmYzY0MDU5NWU5YjM2YTc1MzlhMTBhP2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpEZWxldGUgdXBzdHJlYW1lZCBwYXRjaGVzCgotLS0KZGlmZiAtLWdpdCBhL2lidXMtSEVBRC5w YXRjaCBiL2lidXMtSEVBRC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWU4 M2EzNi4uMDAwMDAwMAotLS0gYS9pYnVzLUhFQUQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz Mzg0ICswLDAgQEAKLUZyb20gZmNiMjE4N2RkNDZkNzEwMzE4NjdmM2JkNDMxOTZjMjQ0ODY5MzQ2 OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdh cmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgNiBTZXAgMjAxOSAyMDo1OTo0OSArMDkwMAotU3Vi amVjdDogW1BBVENIXSBzcmMvdGVzdHM6IFJlcGxhY2UgcHVzaCB3aXRoIGNkIGZvciBQb3NpeCBT SAotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjEyNAotQlVHPWh0 dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIxMjYKLS0tLQotIHNyYy90ZXN0cy9p YnVzLWNvbmZpZy5jIHwgMiArLQotIHNyYy90ZXN0cy9ydW50ZXN0ICAgICAgIHwgNSArKystLQot IDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZm IC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtY29uZmlnLmMgYi9zcmMvdGVzdHMvaWJ1cy1jb25maWcu YwotaW5kZXggOWI5MjVhZDkuLjVlODQ1ZjEwIDEwMDY0NAotLS0tIGEvc3JjL3Rlc3RzL2lidXMt Y29uZmlnLmMKLSsrKyBiL3NyYy90ZXN0cy9pYnVzLWNvbmZpZy5jCi1AQCAtMTE0LDcgKzExNCw3 IEBAIHRlc3RfY29uZmlnX3NldF9nZXQgKHZvaWQpCi0gICAgICAgICAgICAgdmFsdWVfYml0cyB8 PSAoMSA8PCAxKTsKLSAgICAgICAgIH0KLSAgICAgICAgIGVsc2UgewotLSAgICAgICAgICAgIGdf d2FybmluZyAoInVua25vdyB2YWx1ZSBuYW1lPSVzIiwgbmFtZSk7Ci0rICAgICAgICAgICAgZ193 YXJuaW5nICgiVW5rbm93biB2YWx1ZSBuYW1lPSVzIiwgbmFtZSk7Ci0gICAgICAgICB9Ci0gICAg ICAgICBpYnVzX2NvbmZpZ191bnNldCAoY29uZmlnLCAidGVzdCIsIG5hbWUpOwotICAgICAgICAg Z192YXJpYW50X3VucmVmICh2YWx1ZSk7Ci1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL3J1bnRlc3Qg Yi9zcmMvdGVzdHMvcnVudGVzdAotaW5kZXggMWZjYzkyODMuLmVkMzg5OTJmIDEwMDc1NQotLS0t IGEvc3JjL3Rlc3RzL3J1bnRlc3QKLSsrKyBiL3NyYy90ZXN0cy9ydW50ZXN0Ci1AQCAtMTExLDcg KzExMSw4IEBAIGZpCi0gcnVuX3Rlc3RfY2FzZSgpCi0gewotICAgICB0ZXN0IC1kICR0c3RkaXIg fHwgbWtkaXIgJHRzdGRpcgotLSAgICBwdXNoZCAkdHN0ZGlyCi0rICAgIGJhY2t1cF9kaXI9JFBX RAotKyAgICBjZCAkdHN0ZGlyCi0gCi0gICAgIG5lZWRfYnVzPW5vCi0gICAgIGZvciB0IGluICRC VVNfUkVRVUlSRURfVEVTVFM7IGRvCi1AQCAtMTkwLDcgKzE5MSw3IEBAIHJ1bl90ZXN0X2Nhc2Uo KQotIAotICAgICByZXR2YWw9YGV4cHIgJHJldHZhbCBcfCAkP2AKLSAKLS0gICAgcG9wZAotKyAg ICBjZCAkYmFja3VwX2RpcgotIAotICAgICBmdW5jX2NsZWFudXAgJHRzdGRpcgotIH0KLS0tIAot Mi4yMS4wCi0KLUZyb20gNDhhOGQ3ZWQ1OGJkZmIwMmMyNGM4MDM5YmFlMWNiMTVkNGZjMWJjZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgNiBTZXAgMjAxOSAyMToyNDoyNCArMDkwMAotU3ViamVj dDogW1BBVENIXSBEZWxldGUgZGVwcmVjYXRlZCBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgc2lu Y2UgZ2xpYiAyLjU4Ci0KLUdfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFKCkgYW5kIEdfQUREX1BS SVZBVEUoKSBoYXZlIGJlZW4gYXZhaWxhYmxlCi1zaW5jZSAyLjM4LgotSUJ1c1NlcnZpY2UgaGFz IGN1c3RvbSBHQmFzZUluaXRGdW5jIGFuZCBHQmFzZUZpbmFsaXplRnVuYyBpbgotaWJ1c19zZXJ2 aWNlX2dldF90eXBlKCkgYW5kIGltcGxlbWVudHMgaWJ1c19zZXJ2aWNlX3ByaXZhdGVfb2Zmc2V0 Ci1hbmQgaWJ1c19zZXJ2aWNlX2dldF9pbnN0YW5jZV9wcml2YXRlKCkgZGlyZWN0bHkgd2l0aG91 dAotR19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUoKS4KLS0tLQotIGJ1cy9pYnVzaW1wbC5jICAg ICAgICAgfCAgNyArKystLS0KLSBzcmMvaWJ1c2J1cy5jICAgICAgICAgIHwgIDggKysrLS0tCi0g c3JjL2lidXNjb21wb25lbnQuYyAgICB8IDEwICsrKystLS0tCi0gc3JjL2lidXNjb25maWcuYyAg ICAgICB8ICA5ICsrKy0tLS0KLSBzcmMvaWJ1c2Vtb2ppLmMgICAgICAgIHwgMTQgKysrKystLS0t LS0KLSBzcmMvaWJ1c2VuZ2luZS5jICAgICAgIHwgMTAgKysrLS0tLS0KLSBzcmMvaWJ1c2VuZ2lu ZWRlc2MuYyAgIHwgMTAgKysrKy0tLS0KLSBzcmMvaWJ1c2VuZ2luZXNpbXBsZS5jIHwgIDggKysr LS0tCi0gc3JjL2lidXNmYWN0b3J5LmMgICAgICB8ICA4ICsrKy0tLQotIHNyYy9pYnVzaG90a2V5 LmMgICAgICAgfCA1NSArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSBzcmMvaWJ1c2lucHV0Y29udGV4dC5jIHwgMTIgKysrKy0tLS0tCi0gc3JjL2lidXNvYmplY3Qu YyAgICAgICB8ICA4ICsrKy0tLQotIHNyYy9pYnVzb2JzZXJ2ZWRwYXRoLmMgfCAgNiArKy0tLQot IHNyYy9pYnVzcHJvcGVydHkuYyAgICAgfCAgOCArKystLS0KLSBzcmMvaWJ1c3JlZ2lzdHJ5LmMg ICAgIHwgMTAgKysrLS0tLS0KLSBzcmMvaWJ1c3NlcmlhbGl6YWJsZS5jIHwgMjQgKysrKysrKysr KysrKystLS0tCi0gc3JjL2lidXNzZXJ2aWNlLmMgICAgICB8IDM0ICsrKysrKysrKysrKysrKysr KystLS0tLS0tCi0gc3JjL2lidXN1bmljb2RlLmMgICAgICB8IDI0ICsrKysrKysrLS0tLS0tLS0t LQotIHNyYy9pYnVzeGV2ZW50LmMgICAgICAgfCAyMiArKysrKysrKy0tLS0tLS0tLQotIDE5IGZp bGVzIGNoYW5nZWQsIDEzNSBpbnNlcnRpb25zKCspLCAxNTIgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9idXMvaWJ1c2ltcGwuYyBiL2J1cy9pYnVzaW1wbC5jCi1pbmRleCBiYmJiNTc3MC4u MzliMTYxMzkgMTAwNjQ0Ci0tLS0gYS9idXMvaWJ1c2ltcGwuYwotKysrIGIvYnVzL2lidXNpbXBs LmMKLUBAIC0yLDggKzIsOCBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAt IFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBQZW5nIEh1YW5nIDxz aGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBUYWth byBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMp IDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgVGFr YW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChD KSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yMTgw LDcgKzIxODAsOCBAQCBidXNfaWJ1c19pbXBsX3JlZ2lzdHJ5X2Rlc3Ryb3kgKEJ1c0lCdXNJbXBs ICppYnVzKQotIAotICAgICBnX2NsZWFyX3BvaW50ZXIgKCZpYnVzLT5lbmdpbmVfdGFibGUsIGdf aGFzaF90YWJsZV9kZXN0cm95KTsKLSAKLS0gICAgZ19jbGVhcl9wb2ludGVyICgmaWJ1cy0+cmVn aXN0cnksIGlidXNfb2JqZWN0X2Rlc3Ryb3kpOwotKyAgICBpYnVzX29iamVjdF9kZXN0cm95IChJ QlVTX09CSkVDVCAoaWJ1cy0+cmVnaXN0cnkpKTsKLSsgICAgaWJ1cy0+cmVnaXN0cnkgPSBOVUxM OwotIAotICAgICBpZiAoaWJ1cy0+ZXh0ZW5zaW9uX3JlZ2lzdGVyX2tleXMpCi0gICAgICAgICBn X2NsZWFyX3BvaW50ZXIgKCZpYnVzLT5leHRlbnNpb25fcmVnaXN0ZXJfa2V5cywgZ192YXJpYW50 X3VucmVmKTsKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2J1cy5jIGIvc3JjL2lidXNidXMuYwotaW5k ZXggMDkwNTQ4NTEuLjA3ODNlN2JiIDEwMDY0NAotLS0tIGEvc3JjL2lidXNidXMuYwotKysrIGIv c3JjL2lidXNidXMuYwotQEAgLTIsNyArMiw3IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8K LSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAx NS0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENv cHlyaWdodCAoQykgMjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21h aWwuY29tPgotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE2IFJlZCBIYXQsIEluYy4KLSAgKgot ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKLUBAIC0zNiw3ICszNiw3IEBACi0gI2luY2x1ZGUgImlidXNjb25maWcuaCIKLSAK LSAjZGVmaW5lIElCVVNfQlVTX0dFVF9QUklWQVRFKG8pICBcCi0tICAgKEdfVFlQRV9JTlNUQU5D RV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZUEVfQlVTLCBJQnVzQnVzUHJpdmF0ZSkpCi0rICAg KChJQnVzQnVzUHJpdmF0ZSAqKWlidXNfYnVzX2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKLSAK LSBlbnVtIHsKLSAgICAgQ09OTkVDVEVELAotQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgdm9p ZCAgICAgIGlidXNfYnVzX2dldF9wcm9wZXJ0eSAgICAgICAgICAgKElCdXNCdXMgICAgICAgICAg ICAgICAgKmJ1cywKLSAKLSBzdGF0aWMgdm9pZCAgICAgaWJ1c19idXNfY2xvc2VfY29ubmVjdGlv biAgICAgICAgKElCdXNCdXMgICAgICAgICAgICAgICAgKmJ1cyk7Ci0gCi0tR19ERUZJTkVfVFlQ RSAoSUJ1c0J1cywgaWJ1c19idXMsIElCVVNfVFlQRV9PQkpFQ1QpCi0rR19ERUZJTkVfVFlQRV9X SVRIX1BSSVZBVEUgKElCdXNCdXMsIGlidXNfYnVzLCBJQlVTX1RZUEVfT0JKRUNUKQotIAotIHN0 YXRpYyB2b2lkCi0gaWJ1c19idXNfY2xhc3NfaW5pdCAoSUJ1c0J1c0NsYXNzICpjbGFzcykKLUBA IC0yMzQsOCArMjM0LDYgQEAgaWJ1c19idXNfY2xhc3NfaW5pdCAoSUJ1c0J1c0NsYXNzICpjbGFz cykKLSAgICAgICAgICAgICBHX1RZUEVfTk9ORSwKLSAgICAgICAgICAgICAzLAotICAgICAgICAg ICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcpOwotLQotLSAg ICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2YgKElCdXNCdXNQcml2YXRl KSk7Ci0gfQotIAotIHN0YXRpYyB2b2lkCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXNjb21wb25lbnQu YyBiL3NyYy9pYnVzY29tcG9uZW50LmMKLWluZGV4IGE5MzNlNzliLi45ODM3ZjQ3YyAxMDA2NDQK LS0tLSBhL3NyYy9pYnVzY29tcG9uZW50LmMKLSsrKyBiL3NyYy9pYnVzY29tcG9uZW50LmMKLUBA IC0yLDcgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogYnVzIC0gVGhlIElu cHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAu aHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFJlZCBIYXQsIElu Yy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBU aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYwotQEAgLTU4LDcgKzU4LDcgQEAgc3RydWN0IF9JQnVzQ29tcG9uZW50UHJpdmF0 ZSB7Ci0gfTsKLSAKLSAjZGVmaW5lIElCVVNfQ09NUE9ORU5UX0dFVF9QUklWQVRFKG8pICBcCi0t ICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZUEVfQ09NUE9ORU5U LCBJQnVzQ29tcG9uZW50UHJpdmF0ZSkpCi0rICAgKChJQnVzQ29tcG9uZW50UHJpdmF0ZSAqKWli dXNfY29tcG9uZW50X2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKLSAKLSAvLyBzdGF0aWMgZ3Vp bnQgICAgICAgICAgICBfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAgfTsKLSAKLUBAIC05MCw3 ICs5MCw5IEBAIHN0YXRpYyB2b2lkICAgICAgICAgaWJ1c19jb21wb25lbnRfcGFyc2Vfb2JzZXJ2 ZWRfcGF0aHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWE1MTm9kZSAgICAgICAgICAgICAgICAqbm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgYWNjZXNz X2ZzKTsKLSAKLS1HX0RFRklORV9UWVBFIChJQnVzQ29tcG9uZW50LCBpYnVzX2NvbXBvbmVudCwg SUJVU19UWVBFX1NFUklBTElaQUJMRSkKLStHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1 c0NvbXBvbmVudCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c19jb21wb25lbnQs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCi0g Ci0gc3RhdGljIHZvaWQKLSBpYnVzX2NvbXBvbmVudF9jbGFzc19pbml0IChJQnVzQ29tcG9uZW50 Q2xhc3MgKmNsYXNzKQotQEAgLTk5LDggKzEwMSw2IEBAIGlidXNfY29tcG9uZW50X2NsYXNzX2lu aXQgKElCdXNDb21wb25lbnRDbGFzcyAqY2xhc3MpCi0gICAgIElCdXNPYmplY3RDbGFzcyAqb2Jq ZWN0X2NsYXNzID0gSUJVU19PQkpFQ1RfQ0xBU1MgKGNsYXNzKTsKLSAgICAgSUJ1c1NlcmlhbGl6 YWJsZUNsYXNzICpzZXJpYWxpemFibGVfY2xhc3MgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAo Y2xhc3MpOwotIAotLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2Yg KElCdXNDb21wb25lbnRQcml2YXRlKSk7Ci0tCi0gICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9w ZXJ0eSA9IChHT2JqZWN0U2V0UHJvcGVydHlGdW5jKSBpYnVzX2NvbXBvbmVudF9zZXRfcHJvcGVy dHk7Ci0gICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IChHT2JqZWN0R2V0UHJvcGVy dHlGdW5jKSBpYnVzX2NvbXBvbmVudF9nZXRfcHJvcGVydHk7Ci0gICAgIG9iamVjdF9jbGFzcy0+ ZGVzdHJveSA9IChJQnVzT2JqZWN0RGVzdHJveUZ1bmMpIGlidXNfY29tcG9uZW50X2Rlc3Ryb3k7 Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNjb25maWcuYyBiL3NyYy9pYnVzY29uZmlnLmMKLWluZGV4 IDYyMWE0ZTUzLi43MTNmZTI1MSAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzY29uZmlnLmMKLSsrKyBi L3NyYy9pYnVzY29uZmlnLmMKLUBAIC0yLDcgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6 ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx MCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMp IDIwMDgtMjAxMCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVk IEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yNyw3ICsyNyw3IEBACi0gI2lu Y2x1ZGUgImlidXNlcnJvci5oIgotIAotICNkZWZpbmUgSUJVU19DT05GSUdfR0VUX1BSSVZBVEUo bykgIFwKLS0gICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9D T05GSUcsIElCdXNDb25maWdQcml2YXRlKSkKLSsgICAoKElCdXNDb25maWdQcml2YXRlICopaWJ1 c19jb25maWdfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQotIAotIGVudW0gewotICAgICBWQUxV RV9DSEFOR0VELAotQEAgLTY1LDYgKzY1LDcgQEAgc3RhdGljIHZvaWQgICAgICBfc2lnbmFsX3Vu c3Vic2NyaWJlICAgICAgICAoR0RCdXNQcm94eSAgICAgICAgICpwcm94eSwKLSBzdGF0aWMgdm9p ZCAgICAgIF9yZW1vdmVfYWxsX21hdGNoX3J1bGVzICAgIChJQnVzQ29uZmlnICAgICAgICAgKmNv bmZpZyk7Ci0gCi0gR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKElCdXNDb25maWcsIGlidXNfY29u ZmlnLCBJQlVTX1RZUEVfUFJPWFksCi0rICAgICAgICAgICAgICAgICAgICAgICAgIEdfQUREX1BS SVZBVEUgKElCdXNDb25maWcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5U X0lOVEVSRkFDRSAoR19UWVBFX0lOSVRBQkxFLCBpbml0YWJsZV9pZmFjZV9pbml0KQotICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UgKEdfVFlQRV9BU1lOQ19J TklUQUJMRSwgYXN5bmNfaW5pdGFibGVfaWZhY2VfaW5pdCkKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLUBAIC03NSw4ICs3Niw2IEBAIGlidXNfY29uZmlnX2NsYXNzX2luaXQgKElCdXND b25maWdDbGFzcyAqY2xhc3MpCi0gICAgIEdEQnVzUHJveHlDbGFzcyAqZGJ1c19wcm94eV9jbGFz cyA9IEdfREJVU19QUk9YWV9DTEFTUyAoY2xhc3MpOwotICAgICBJQnVzUHJveHlDbGFzcyAqcHJv eHlfY2xhc3MgPSBJQlVTX1BST1hZX0NMQVNTIChjbGFzcyk7Ci0gCi0tICAgIGdfdHlwZV9jbGFz c19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0NvbmZpZ1ByaXZhdGUpKTsKLS0KLSAg ICAgZGJ1c19wcm94eV9jbGFzcy0+Z19zaWduYWwgPSBpYnVzX2NvbmZpZ19nX3NpZ25hbDsKLSAg ICAgcHJveHlfY2xhc3MtPmRlc3Ryb3kgPSBpYnVzX2NvbmZpZ19yZWFsX2Rlc3Ryb3k7Ci0gCi1A QCAtMTE2LDcgKzExNSw3IEBAIGlidXNfY29uZmlnX2luaXQgKElCdXNDb25maWcgKmNvbmZpZykK LSBzdGF0aWMgdm9pZAotIGlidXNfY29uZmlnX3JlYWxfZGVzdHJveSAoSUJ1c1Byb3h5ICpwcm94 eSkKLSB7Ci0tICAgIElCdXNDb25maWdQcml2YXRlICpwcml2ID0gSUJVU19DT05GSUdfR0VUX1BS SVZBVEUgKHByb3h5KTsKLSsgICAgSUJ1c0NvbmZpZ1ByaXZhdGUgKnByaXYgPSBJQlVTX0NPTkZJ R19HRVRfUFJJVkFURSAoSUJVU19DT05GSUcgKHByb3h5KSk7Ci0gCi0gICAgIF9zaWduYWxfdW5z dWJzY3JpYmUgKEdfREJVU19QUk9YWSAocHJveHkpLCBwcml2LT53YXRjaF9jb25maWdfc2lnbmFs X2lkKTsKLSAgICAgX3JlbW92ZV9hbGxfbWF0Y2hfcnVsZXMgKElCVVNfQ09ORklHIChwcm94eSkp OwotZGlmZiAtLWdpdCBhL3NyYy9pYnVzZW1vamkuYyBiL3NyYy9pYnVzZW1vamkuYwotaW5kZXgg ZDU2YzQ4YWEuLmFlODkwN2EyIDEwMDY0NAotLS0tIGEvc3JjL2lidXNlbW9qaS5jCi0rKysgYi9z cmMvaWJ1c2Vtb2ppLmMKLUBAIC0xLDggKzEsOCBAQAotIC8qIC0qLSBtb2RlOiBDOyBjLWJhc2lj LW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi8KLSAvKiB2aW06c2V0IGV0 IHN0cz00OiAqLwotIC8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKLS0gKiBDb3B5cmlnaHQgKEMpIDIw MTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0tICogQ29weXJp Z2h0IChDKSAyMDE3IFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQg KEMpIDIwMTctMjAxOSBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTQ3 LDkgKzQ3LDcgQEAgc3RydWN0IF9JQnVzRW1vamlEYXRhUHJpdmF0ZSB7Ci0gfTsKLSAKLSAjZGVm aW5lIElCVVNfRU1PSklfREFUQV9HRVRfUFJJVkFURShvKSAgXAotLSAgIChHX1RZUEVfSU5TVEFO Q0VfR0VUX1BSSVZBVEUgKChvKSwgXAotLSAgICBJQlVTX1RZUEVfRU1PSklfREFUQSwgXAotLSAg ICBJQnVzRW1vamlEYXRhUHJpdmF0ZSkpCi0rICAgKChJQnVzRW1vamlEYXRhUHJpdmF0ZSAqKWli dXNfZW1vamlfZGF0YV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAobykpCi0gCi0gLyogZnVuY3Rpb25z IHByb3RvdHlwZSAqLwotIHN0YXRpYyB2b2lkICAgICAgaWJ1c19lbW9qaV9kYXRhX3NldF9wcm9w ZXJ0eSAgKElCdXNFbW9qaURhdGEgICAgICAgKmVtb2ppLAotQEAgLTY4LDcgKzY2LDkgQEAgc3Rh dGljIGdpbnQgICAgICBpYnVzX2Vtb2ppX2RhdGFfZGVzZXJpYWxpemUgICAoSUJ1c0Vtb2ppRGF0 YSAgICAgICAqZW1vamksCi0gc3RhdGljIGdib29sZWFuICBpYnVzX2Vtb2ppX2RhdGFfY29weSAg ICAgICAgICAoSUJ1c0Vtb2ppRGF0YSAgICAgICAqZW1vamksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSUJ1c0Vtb2ppRGF0YSAqc3JjKTsK LSAKLS1HX0RFRklORV9UWVBFIChJQnVzRW1vamlEYXRhLCBpYnVzX2Vtb2ppX2RhdGEsIElCVVNf VFlQRV9TRVJJQUxJWkFCTEUpCi0rR19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUgKElCdXNFbW9q aURhdGEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfZW1vamlfZGF0YSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKLSAKLSBz dGF0aWMgdm9pZAotIGlidXNfZW1vamlfZGF0YV9jbGFzc19pbml0IChJQnVzRW1vamlEYXRhQ2xh c3MgKmNsYXNzKQotQEAgLTg5LDggKzg5LDYgQEAgaWJ1c19lbW9qaV9kYXRhX2NsYXNzX2luaXQg KElCdXNFbW9qaURhdGFDbGFzcyAqY2xhc3MpCi0gICAgIHNlcmlhbGl6YWJsZV9jbGFzcy0+Y29w eSAgICAgICAgPQotICAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlQ29weUZ1bmMpIGlidXNf ZW1vamlfZGF0YV9jb3B5OwotIAotLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGNsYXNz LCBzaXplb2YgKElCdXNFbW9qaURhdGFQcml2YXRlKSk7Ci0tCi0gICAgIC8qIGluc3RhbGwgcHJv cGVydGllcyAqLwotICAgICAvKioKLSAgICAgICogSUJ1c0Vtb2ppRGF0YTplbW9qaToKLWRpZmYg LS1naXQgYS9zcmMvaWJ1c2VuZ2luZS5jIGIvc3JjL2lidXNlbmdpbmUuYwotaW5kZXggN2ZiNGU4 NTYuLjlhZWFmYmY5IDEwMDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmUuYwotKysrIGIvc3JjL2li dXNlbmdpbmUuYwotQEAgLTIsOCArMiw4IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8KLSAv KiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcg SHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAxOCBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQg KEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkg VGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0 IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0z Miw3ICszMiw3IEBACi0gI2luY2x1ZGUgImlidXN4ZXZlbnQuaCIKLSAKLSAjZGVmaW5lIElCVVNf RU5HSU5FX0dFVF9QUklWQVRFKG8pICBcCi0tICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFU RSAoKG8pLCBJQlVTX1RZUEVfRU5HSU5FLCBJQnVzRW5naW5lUHJpdmF0ZSkpCi0rICAgKChJQnVz RW5naW5lUHJpdmF0ZSAqKWlidXNfZW5naW5lX2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKLSAK LSBlbnVtIHsKLSAgICAgUFJPQ0VTU19LRVlfRVZFTlQsCi1AQCAtMTg3LDcgKzE4Nyw3IEBAIHN0 YXRpYyB2b2lkICAgICAgaWJ1c19lbmdpbmVfZGJ1c19wcm9wZXJ0eV9jaGFuZ2VkCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAg ICAqdmFsdWUpOwotIAotIAotLUdfREVGSU5FX1RZUEUgKElCdXNFbmdpbmUsIGlidXNfZW5naW5l LCBJQlVTX1RZUEVfU0VSVklDRSkKLStHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1c0Vu Z2luZSwgaWJ1c19lbmdpbmUsIElCVVNfVFlQRV9TRVJWSUNFKQotIAotIHN0YXRpYyBjb25zdCBn Y2hhciBpbnRyb3NwZWN0aW9uX3htbFtdID0KLSAgICAgIjxub2RlPiIKLUBAIC04MzAsOCArODMw LDYgQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFzcykKLSAg ICAgICAgICAgICBHX1RZUEVfVUlOVCwKLSAgICAgICAgICAgICBHX1RZUEVfVUlOVCk7Ci0gCi0t ICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0VuZ2luZVBy aXZhdGUpKTsKLS0KLSAgICAgdGV4dF9lbXB0eSA9IGlidXNfdGV4dF9uZXdfZnJvbV9zdGF0aWNf c3RyaW5nICgiIik7Ci0gICAgIGdfb2JqZWN0X3JlZl9zaW5rICh0ZXh0X2VtcHR5KTsKLSB9Ci1k aWZmIC0tZ2l0IGEvc3JjL2lidXNlbmdpbmVkZXNjLmMgYi9zcmMvaWJ1c2VuZ2luZWRlc2MuYwot aW5kZXggMjI2MjI4NjUuLjA2NDU4OGJkIDEwMDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmVkZXNj LmMKLSsrKyBiL3NyYy9pYnVzZW5naW5lZGVzYy5jCi1AQCAtMiw3ICsyLDcgQEAKLSAvKiB2aW06 c2V0IGV0IHN0cz00OiAqLwotIC8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQg KEMpIDIwMDgtMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAy MDA4LTIwMTkgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC03Miw3ICs3 Miw3IEBAIHN0cnVjdCBfSUJ1c0VuZ2luZURlc2NQcml2YXRlIHsKLSB9OwotIAotICNkZWZpbmUg SUJVU19FTkdJTkVfREVTQ19HRVRfUFJJVkFURShvKSAgXAotLSAgIChHX1RZUEVfSU5TVEFOQ0Vf R0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX0VOR0lORV9ERVNDLCBJQnVzRW5naW5lRGVzY1By aXZhdGUpKQotKyAgICgoSUJ1c0VuZ2luZURlc2NQcml2YXRlICopaWJ1c19lbmdpbmVfZGVzY19n ZXRfaW5zdGFuY2VfcHJpdmF0ZSAobykpCi0gCi0gLy8gc3RhdGljIGd1aW50ICAgICAgICAgICAg X3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwIH07Ci0gCi1AQCAtOTUsNyArOTUsOSBAQCBzdGF0 aWMgZ2Jvb2xlYW4gICAgIGlidXNfZW5naW5lX2Rlc2NfY29weSAgICAgICAgICAgKElCdXNFbmdp bmVEZXNjICAgICAgICAgKmRlcwotIHN0YXRpYyBnYm9vbGVhbiAgICAgaWJ1c19lbmdpbmVfZGVz Y19wYXJzZV94bWxfbm9kZSAoSUJ1c0VuZ2luZURlc2MgICAgICAgICAqZGVzYywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTE5vZGUgICAg ICAgICAgICAgICAgKm5vZGUpOwotIAotLUdfREVGSU5FX1RZUEUgKElCdXNFbmdpbmVEZXNjLCBp YnVzX2VuZ2luZV9kZXNjLCBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQotK0dfREVGSU5FX1RZUEVf V0lUSF9QUklWQVRFIChJQnVzRW5naW5lRGVzYywKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWJ1c19lbmdpbmVfZGVzYywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19U WVBFX1NFUklBTElaQUJMRSkKLSAKLSAKLSBzdGF0aWMgdm9pZAotQEAgLTExMyw4ICsxMTUsNiBA QCBpYnVzX2VuZ2luZV9kZXNjX2NsYXNzX2luaXQgKElCdXNFbmdpbmVEZXNjQ2xhc3MgKmNsYXNz KQotICAgICBzZXJpYWxpemFibGVfY2xhc3MtPmRlc2VyaWFsaXplID0gKElCdXNTZXJpYWxpemFi bGVEZXNlcmlhbGl6ZUZ1bmMpIGlidXNfZW5naW5lX2Rlc2NfZGVzZXJpYWxpemU7Ci0gICAgIHNl cmlhbGl6YWJsZV9jbGFzcy0+Y29weSAgICAgICAgPSAoSUJ1c1NlcmlhbGl6YWJsZUNvcHlGdW5j KSBpYnVzX2VuZ2luZV9kZXNjX2NvcHk7Ci0gCi0tICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0 ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0VuZ2luZURlc2NQcml2YXRlKSk7Ci0tCi0gICAgIC8qIGlu c3RhbGwgcHJvcGVydGllcyAqLwotICAgICAvKioKLSAgICAgICogSUJ1c0VuZ2luZURlc2M6bmFt ZToKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jIGIvc3JjL2lidXNlbmdpbmVz aW1wbGUuYwotaW5kZXggYjYyM2UxNDkuLjQzYmQ1MjgzIDEwMDY0NAotLS0tIGEvc3JjL2lidXNl bmdpbmVzaW1wbGUuYwotKysrIGIvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotQEAgLTQ1LDcgKzQ1 LDcgQEAKLSAKLSAjZGVmaW5lIFgxMV9EQVRBRElSIFgxMV9EQVRBX1BSRUZJWCAiL3NoYXJlL1gx MS9sb2NhbGUiCi0gI2RlZmluZSBJQlVTX0VOR0lORV9TSU1QTEVfR0VUX1BSSVZBVEUobykgIFwK LS0gICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9FTkdJTkVf U0lNUExFLCBJQnVzRW5naW5lU2ltcGxlUHJpdmF0ZSkpCi0rICAgKChJQnVzRW5naW5lU2ltcGxl UHJpdmF0ZSAqKWlidXNfZW5naW5lX3NpbXBsZV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAobykpCi0g Ci0gI2RlZmluZSBTRVRfQ09NUE9TRV9CVUZGRVJfRUxFTUVOVF9ORVhUKGJ1ZmZlciwgaW5kZXgs IHZhbHVlKSB7ICAgICAgICAgXAotICAgICBpZiAoKGluZGV4KSA+PSBDT01QT1NFX0JVRkZFUl9T SVpFICYmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLUBAIC0xNTAsNyArMTUwLDkg QEAgc3RhdGljIHZvaWQgICAgIGlidXNfZW5naW5lX3NpbXBsZV9jb21taXRfc3RyICAoSUJ1c0Vu Z2luZVNpbXBsZSAgICAqc2ltcGxlLAotIHN0YXRpYyB2b2lkICAgICBpYnVzX2VuZ2luZV9zaW1w bGVfdXBkYXRlX3ByZWVkaXRfdGV4dAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKElCdXNFbmdpbmVTaW1wbGUgICAgKnNpbXBsZSk7Ci0gCi0tR19ERUZJ TkVfVFlQRSAoSUJ1c0VuZ2luZVNpbXBsZSwgaWJ1c19lbmdpbmVfc2ltcGxlLCBJQlVTX1RZUEVf RU5HSU5FKQotK0dfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJQnVzRW5naW5lU2ltcGxlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9zaW1wbGUsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElCVVNfVFlQRV9FTkdJTkUpCi0gCi0gc3RhdGljIHZvaWQK LSBpYnVzX2VuZ2luZV9zaW1wbGVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZVNpbXBsZUNsYXNzICpj bGFzcykKLUBAIC0xNzAsOCArMTcyLDYgQEAgaWJ1c19lbmdpbmVfc2ltcGxlX2NsYXNzX2luaXQg KElCdXNFbmdpbmVTaW1wbGVDbGFzcyAqY2xhc3MpCi0gICAgIGVuZ2luZV9jbGFzcy0+cGFnZV91 cCAgID0gaWJ1c19lbmdpbmVfc2ltcGxlX3BhZ2VfdXA7Ci0gICAgIGVuZ2luZV9jbGFzcy0+Y2Fu ZGlkYXRlX2NsaWNrZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpYnVzX2VuZ2lu ZV9zaW1wbGVfY2FuZGlkYXRlX2NsaWNrZWQ7Ci0tCi0tICAgIGdfdHlwZV9jbGFzc19hZGRfcHJp dmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0VuZ2luZVNpbXBsZVByaXZhdGUpKTsKLSB9Ci0gCi0g c3RhdGljIHZvaWQKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2ZhY3RvcnkuYyBiL3NyYy9pYnVzZmFj dG9yeS5jCi1pbmRleCBlOTE1YzkzMS4uY2I5YjUzY2MgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2Zh Y3RvcnkuYwotKysrIGIvc3JjL2lidXNmYWN0b3J5LmMKLUBAIC0yLDcgKzIsNyBAQAotIC8qIHZp bTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmln aHQgKEMpIDIwMDgtMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0g KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChD KSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yNiw3 ICsyNiw3IEBACi0gI2luY2x1ZGUgImlidXNpbnRlcm5hbC5oIgotIAotICNkZWZpbmUgSUJVU19G QUNUT1JZX0dFVF9QUklWQVRFKG8pICBcCi0tICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFU RSAoKG8pLCBJQlVTX1RZUEVfRkFDVE9SWSwgSUJ1c0ZhY3RvcnlQcml2YXRlKSkKLSsgICAoKElC dXNGYWN0b3J5UHJpdmF0ZSAqKWlidXNfZmFjdG9yeV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAobykp Ci0gCi0gZW51bSB7Ci0gICAgIENSRUFURV9FTkdJTkUsCi1AQCAtODcsNyArODcsNyBAQCBzdGF0 aWMgdm9pZCAgICAgIGlidXNfZmFjdG9yeV9lbmdpbmVfZGVzdHJveV9jYgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzRW5naW5lICAgICAgICAgKmVu Z2luZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1 c0ZhY3RvcnkgICAgICAgICpmYWN0b3J5KTsKLSAKLS1HX0RFRklORV9UWVBFIChJQnVzRmFjdG9y eSwgaWJ1c19mYWN0b3J5LCBJQlVTX1RZUEVfU0VSVklDRSkKLStHX0RFRklORV9UWVBFX1dJVEhf UFJJVkFURSAoSUJ1c0ZhY3RvcnksIGlidXNfZmFjdG9yeSwgSUJVU19UWVBFX1NFUlZJQ0UpCi0g Ci0gc3RhdGljIGNvbnN0IGdjaGFyIGludHJvc3BlY3Rpb25feG1sW10gPQotICAgICAiPG5vZGU+ IgotQEAgLTE1OCw4ICsxNTgsNiBAQCBpYnVzX2ZhY3RvcnlfY2xhc3NfaW5pdCAoSUJ1c0ZhY3Rv cnlDbGFzcyAqY2xhc3MpCi0gCi0gICAgIGlidXNfc2VydmljZV9jbGFzc19hZGRfaW50ZXJmYWNl cyAoSUJVU19TRVJWSUNFX0NMQVNTIChjbGFzcyksIGludHJvc3BlY3Rpb25feG1sKTsKLSAKLS0g ICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChjbGFzcywgc2l6ZW9mIChJQnVzRmFjdG9yeVBy aXZhdGUpKTsKLS0KLSAgICAgLyoqCi0gICAgICAqIElCdXNGYWN0b3J5OjpjcmVhdGUtZW5naW5l OgotICAgICAgKiBAZmFjdG9yeTogdGhlIGZhY3Rvcnkgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25h bAotZGlmZiAtLWdpdCBhL3NyYy9pYnVzaG90a2V5LmMgYi9zcmMvaWJ1c2hvdGtleS5jCi1pbmRl eCAyNDllZDVkMi4uZDRhYjdjMjMgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2hvdGtleS5jCi0rKysg Yi9zcmMvaWJ1c2hvdGtleS5jCi1AQCAtMiw4ICsyLDggQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00 OiAqLwotIC8qIElCdXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIw MTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChD KSAyMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotLSAqIENv cHlyaWdodCAoQykgMjAwOC0yMDE4IFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIw MTgtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YwotQEAgLTI3LDcgKzI3LDcgQEAKLSAjaW5jbHVkZSAiaWJ1c3NoYXJlLmgiCi0gCi0gI2RlZmlu ZSBJQlVTX0hPVEtFWV9QUk9GSUxFX0dFVF9QUklWQVRFKG8pICBcCi0tICAgKEdfVFlQRV9JTlNU QU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZUEVfSE9US0VZX1BST0ZJTEUsIElCdXNIb3Rr ZXlQcm9maWxlUHJpdmF0ZSkpCi0rICAgKChJQnVzSG90a2V5UHJvZmlsZVByaXZhdGUgKilpYnVz X2hvdGtleV9wcm9maWxlX2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKLSAKLSBlbnVtIHsKLSAg ICAgVFJJR0dFUiwKLUBAIC03OSw3ICs3OSwxMCBAQCBzdGF0aWMgZ3VpbnQgICAgICAgICBub3Jt YWxpemVfbW9kaWZpZXJzICAgICAgICAgICAgKGd1aW50ICAgICAgICAgICAgICAgICAgIGtleQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp bnQgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzKTsKLSBzdGF0aWMgZ2Jvb2xlYW4gICAgICBp c19tb2RpZmllciAgICAgICAgICAgICAgICAgICAgKGd1aW50ICAgICAgICAgICAgICAgICAgIGtl eXZhbCk7Ci0gCi0tc3RhdGljIElCdXNTZXJpYWxpemFibGVDbGFzcyAqcGFyZW50X2NsYXNzID0g TlVMTDsKLStHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1c0hvdGtleVByb2ZpbGUsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfaG90a2V5X3Byb2ZpbGUsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCi0rCi0gCi0gc3Rh dGljIGd1aW50IHByb2ZpbGVfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAgfTsKLSAKLUBAIC0x NDEsNDMgKzE0NCwxMiBAQCBpYnVzX2hvdGtleV9jbXBfd2l0aF9kYXRhIChJQnVzSG90a2V5ICpo b3RrZXkxLAotIAotIAotIAotLUdUeXBlCi0taWJ1c19ob3RrZXlfcHJvZmlsZV9nZXRfdHlwZSAo dm9pZCkKLS17Ci0tICAgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDsKLS0KLS0gICAgc3RhdGljIGNv bnN0IEdUeXBlSW5mbyB0eXBlX2luZm8gPSB7Ci0tICAgICAgICBzaXplb2YgKElCdXNIb3RrZXlQ cm9maWxlQ2xhc3MpLAotLSAgICAgICAgKEdCYXNlSW5pdEZ1bmMpICAgICBOVUxMLAotLSAgICAg ICAgKEdCYXNlRmluYWxpemVGdW5jKSBOVUxMLAotLSAgICAgICAgKEdDbGFzc0luaXRGdW5jKSAg ICBpYnVzX2hvdGtleV9wcm9maWxlX2NsYXNzX2luaXQsCi0tICAgICAgICBOVUxMLCAgICAgICAg ICAgICAgIC8qIGNsYXNzIGZpbmFsaXplICovCi0tICAgICAgICBOVUxMLCAgICAgICAgICAgICAg IC8qIGNsYXNzIGRhdGEgKi8KLS0gICAgICAgIHNpemVvZiAoSUJ1c0hvdGtleVByb2ZpbGUpLAot LSAgICAgICAgMCwKLS0gICAgICAgIChHSW5zdGFuY2VJbml0RnVuYykgaWJ1c19ob3RrZXlfcHJv ZmlsZV9pbml0LAotLSAgICB9OwotLQotLSAgICBpZiAodHlwZSA9PSAwKSB7Ci0tICAgICAgICB0 eXBlID0gZ190eXBlX3JlZ2lzdGVyX3N0YXRpYyAoSUJVU19UWVBFX1NFUklBTElaQUJMRSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSUJ1c0hvdGtleVByb2ZpbGUi LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0eXBlX2luZm8sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7Ci0tICAgIH0KLS0KLS0g ICAgcmV0dXJuIHR5cGU7Ci0tfQotLQotIHN0YXRpYyB2b2lkCi0gaWJ1c19ob3RrZXlfcHJvZmls ZV9jbGFzc19pbml0IChJQnVzSG90a2V5UHJvZmlsZUNsYXNzICpjbGFzcykKLSB7Ci0gICAgIElC dXNPYmplY3RDbGFzcyAqb2JqZWN0X2NsYXNzID0gSUJVU19PQkpFQ1RfQ0xBU1MgKGNsYXNzKTsK LSAgICAgSUJ1c1NlcmlhbGl6YWJsZUNsYXNzICpzZXJpYWxpemFibGVfY2xhc3MgPSBJQlVTX1NF UklBTElaQUJMRV9DTEFTUyAoY2xhc3MpOwotIAotLSAgICBwYXJlbnRfY2xhc3MgPSAoSUJ1c1Nl cmlhbGl6YWJsZUNsYXNzICopIGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoY2xhc3MpOwotLQot LSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2YgKElCdXNIb3RrZXlQ cm9maWxlUHJpdmF0ZSkpOwotLQotICAgICBvYmplY3RfY2xhc3MtPmRlc3Ryb3kgPSAoSUJ1c09i amVjdERlc3Ryb3lGdW5jKSBpYnVzX2hvdGtleV9wcm9maWxlX2Rlc3Ryb3k7Ci0gCi0gICAgIHNl cmlhbGl6YWJsZV9jbGFzcy0+c2VyaWFsaXplICAgPSAoSUJ1c1NlcmlhbGl6YWJsZVNlcmlhbGl6 ZUZ1bmMpIGlidXNfaG90a2V5X3Byb2ZpbGVfc2VyaWFsaXplOwotQEAgLTI1NSw3ICsyMjcsOCBA QCBpYnVzX2hvdGtleV9wcm9maWxlX2Rlc3Ryb3kgKElCdXNIb3RrZXlQcm9maWxlICpwcm9maWxl KQotICAgICAgICAgcHJpdi0+aG90a2V5cyA9IE5VTEw7Ci0gICAgIH0KLSAKLS0gICAgSUJVU19P QkpFQ1RfQ0xBU1MgKHBhcmVudF9jbGFzcyktPmRlc3Ryb3kgKChJQnVzT2JqZWN0ICopcHJvZmls ZSk7Ci0rICAgIElCVVNfT0JKRUNUX0NMQVNTIChpYnVzX2hvdGtleV9wcm9maWxlX3BhcmVudF9j bGFzcyktPgotKyAgICAgICAgICAgIGRlc3Ryb3kgKChJQnVzT2JqZWN0ICopcHJvZmlsZSk7Ci0g fQotIAotIHN0YXRpYyBnYm9vbGVhbgotQEAgLTI2NCw3ICsyMzcsOCBAQCBpYnVzX2hvdGtleV9w cm9maWxlX3NlcmlhbGl6ZSAoSUJ1c0hvdGtleVByb2ZpbGUgKnByb2ZpbGUsCi0gewotICAgICBn Ym9vbGVhbiByZXR2YWw7Ci0gCi0tICAgIHJldHZhbCA9IHBhcmVudF9jbGFzcy0+c2VyaWFsaXpl ICgoSUJ1c1NlcmlhbGl6YWJsZSAqKSBwcm9maWxlLCBidWlsZGVyKTsKLSsgICAgcmV0dmFsID0g SUJVU19TRVJJQUxJWkFCTEVfQ0xBU1MgKGlidXNfaG90a2V5X3Byb2ZpbGVfcGFyZW50X2NsYXNz KS0+Ci0rICAgICAgICAgICAgc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKSBwcm9maWxl LCBidWlsZGVyKTsKLSAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHJldHZhbCwgRkFMU0UpOwot IAotICAgICByZXR1cm4gVFJVRTsKLUBAIC0yNzYsNyArMjUwLDggQEAgaWJ1c19ob3RrZXlfcHJv ZmlsZV9kZXNlcmlhbGl6ZSAoSUJ1c0hvdGtleVByb2ZpbGUgKnByb2ZpbGUsCi0gewotICAgICBn aW50IHJldHZhbDsKLSAKLS0gICAgcmV0dmFsID0gcGFyZW50X2NsYXNzLT5kZXNlcmlhbGl6ZSAo KElCdXNTZXJpYWxpemFibGUgKikgcHJvZmlsZSwgdmFyaWFudCk7Ci0rICAgIHJldHZhbCA9IElC VVNfU0VSSUFMSVpBQkxFX0NMQVNTIChpYnVzX2hvdGtleV9wcm9maWxlX3BhcmVudF9jbGFzcykt PgotKyAgICAgICAgICAgIGRlc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKSBwcm9maWxl LCB2YXJpYW50KTsKLSAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHJldHZhbCwgMCk7Ci0gCi0g ICAgIHJldHVybiByZXR2YWw7Ci1AQCAtMjg4LDggKzI2Myw4IEBAIGlidXNfaG90a2V5X3Byb2Zp bGVfY29weSAoSUJ1c0hvdGtleVByb2ZpbGUgICAgICAgKmRlc3QsCi0gewotICAgICBnYm9vbGVh biByZXR2YWw7Ci0gCi0tICAgIHJldHZhbCA9IHBhcmVudF9jbGFzcy0+Y29weSAoKElCdXNTZXJp YWxpemFibGUgKilkZXN0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVz U2VyaWFsaXphYmxlICopc3JjKTsKLSsgICAgcmV0dmFsID0gSUJVU19TRVJJQUxJWkFCTEVfQ0xB U1MgKGlidXNfaG90a2V5X3Byb2ZpbGVfcGFyZW50X2NsYXNzKS0+Ci0rICAgICAgICAgICAgY29w eSAoKElCdXNTZXJpYWxpemFibGUgKilkZXN0LCAoSUJ1c1NlcmlhbGl6YWJsZSAqKXNyYyk7Ci0g ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChyZXR2YWwsIEZBTFNFKTsKLSAKLSAgICAgZ19yZXR1 cm5fdmFsX2lmX2ZhaWwgKElCVVNfSVNfSE9US0VZX1BST0ZJTEUgKGRlc3QpLCBGQUxTRSk7Ci1k aWZmIC0tZ2l0IGEvc3JjL2lidXNpbnB1dGNvbnRleHQuYyBiL3NyYy9pYnVzaW5wdXRjb250ZXh0 LmMKLWluZGV4IGE4MDllZjA4Li4yYjE0MzhmYyAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzaW5wdXRj b250ZXh0LmMKLSsrKyBiL3NyYy9pYnVzaW5wdXRjb250ZXh0LmMKLUBAIC0yLDggKzIsOCBAQAot IC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNv bT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggUmVkIEhhdCwgSW5jLgot KyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2Fy YTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IFJlZCBIYXQsIEluYy4K LSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMzEsNyArMzEsNyBAQAotICNpbmNsdWRlICJpYnVz ZXJyb3IuaCIKLSAKLSAjZGVmaW5lIElCVVNfSU5QVVRfQ09OVEVYVF9HRVRfUFJJVkFURShvKSAg XAotLSAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX0lOUFVU X0NPTlRFWFQsIElCdXNJbnB1dENvbnRleHRQcml2YXRlKSkKLSsgICAoKElCdXNJbnB1dENvbnRl eHRQcml2YXRlICopaWJ1c19pbnB1dF9jb250ZXh0X2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkK LSAKLSBlbnVtIHsKLSAgICAgRU5BQkxFRCwKLUBAIC04Myw3ICs4Myw5IEBAIHN0YXRpYyB2b2lk ICAgICBpYnVzX2lucHV0X2NvbnRleHRfZ19zaWduYWwgICAgIChHREJ1c1Byb3h5ICAgICAgICAg ICAgICpwcm94eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAqc2lnbmFsX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgICAg ICAgKnBhcmFtZXRlcnMpOwotIAotLUdfREVGSU5FX1RZUEUgKElCdXNJbnB1dENvbnRleHQsIGli dXNfaW5wdXRfY29udGV4dCwgSUJVU19UWVBFX1BST1hZKQotK0dfREVGSU5FX1RZUEVfV0lUSF9Q UklWQVRFIChJQnVzSW5wdXRDb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp YnVzX2lucHV0X2NvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfVFlQ RV9QUk9YWSkKLSAKLSBzdGF0aWMgdm9pZAotIGlidXNfaW5wdXRfY29udGV4dF9jbGFzc19pbml0 IChJQnVzSW5wdXRDb250ZXh0Q2xhc3MgKmNsYXNzKQotQEAgLTkxLDggKzkzLDYgQEAgaWJ1c19p bnB1dF9jb250ZXh0X2NsYXNzX2luaXQgKElCdXNJbnB1dENvbnRleHRDbGFzcyAqY2xhc3MpCi0g ICAgIElCdXNQcm94eUNsYXNzICppYnVzX3Byb3h5X2NsYXNzID0gSUJVU19QUk9YWV9DTEFTUyAo Y2xhc3MpOwotICAgICBHREJ1c1Byb3h5Q2xhc3MgKmdfZGJ1c19wcm94eV9jbGFzcyA9IEdfREJV U19QUk9YWV9DTEFTUyAoY2xhc3MpOwotIAotLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUg KGNsYXNzLCBzaXplb2YgKElCdXNJbnB1dENvbnRleHRQcml2YXRlKSk7Ci0tCi0gICAgIGlidXNf cHJveHlfY2xhc3MtPmRlc3Ryb3kgPSBpYnVzX2lucHV0X2NvbnRleHRfcmVhbF9kZXN0cm95Owot IAotICAgICBnX2RidXNfcHJveHlfY2xhc3MtPmdfc2lnbmFsID0gaWJ1c19pbnB1dF9jb250ZXh0 X2dfc2lnbmFsOwotZGlmZiAtLWdpdCBhL3NyYy9pYnVzb2JqZWN0LmMgYi9zcmMvaWJ1c29iamVj dC5jCi1pbmRleCAyNTgwNDhjMC4uMTVkOWFhM2EgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c29iamVj dC5jCi0rKysgYi9zcmMvaWJ1c29iamVjdC5jCi1AQCAtMiw3ICsyLDcgQEAKLSAvKiB2aW06c2V0 IGV0IHN0cz00OiAqLwotIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0IChD KSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29w eXJpZ2h0IChDKSAyMDA4LTIwMTMgUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAw OC0yMDE5IFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMjUsNyArMjUs NyBAQAotICNpbmNsdWRlICJpYnVzaW50ZXJuYWwuaCIKLSAKLSAjZGVmaW5lIElCVVNfT0JKRUNU X0dFVF9QUklWQVRFKG8pICBcCi0tICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8p LCBJQlVTX1RZUEVfT0JKRUNULCBJQnVzT2JqZWN0UHJpdmF0ZSkpCi0rICAgKChJQnVzT2JqZWN0 UHJpdmF0ZSAqKWlidXNfb2JqZWN0X2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKLSAKLSBlbnVt IHsKLSAgICAgREVTVFJPWSwKLUBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkICAgICAgaWJ1 c19vYmplY3RfZGlzcG9zZSAgICAgICAgKElCdXNPYmplY3QgICAgICAgICAqb2JqKTsKLSBzdGF0 aWMgdm9pZCAgICAgIGlidXNfb2JqZWN0X2ZpbmFsaXplICAgICAgIChJQnVzT2JqZWN0ICAgICAg ICAgKm9iaik7Ci0gc3RhdGljIHZvaWQgICAgICBpYnVzX29iamVjdF9yZWFsX2Rlc3Ryb3kgICAo SUJ1c09iamVjdCAgICAgICAgICpvYmopOwotIAotLUdfREVGSU5FX1RZUEUgKElCdXNPYmplY3Qs IGlidXNfb2JqZWN0LCBHX1RZUEVfSU5JVElBTExZX1VOT1dORUQpCi0rR19ERUZJTkVfVFlQRV9X SVRIX1BSSVZBVEUgKElCdXNPYmplY3QsIGlidXNfb2JqZWN0LCBHX1RZUEVfSU5JVElBTExZX1VO T1dORUQpCi0gCi0gc3RhdGljIHZvaWQKLSBpYnVzX29iamVjdF9jbGFzc19pbml0ICAgICAoSUJ1 c09iamVjdENsYXNzICpjbGFzcykKLUBAIC04Niw4ICs4Niw2IEBAIGlidXNfb2JqZWN0X2NsYXNz X2luaXQgICAgIChJQnVzT2JqZWN0Q2xhc3MgKmNsYXNzKQotICAgICAgICAgICAgIF9pYnVzX21h cnNoYWxfVk9JRF9fVk9JRCwKLSAgICAgICAgICAgICBHX1RZUEVfTk9ORSwgMCk7Ci0gCi0tICAg IGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c09iamVjdFByaXZh dGUpKTsKLS0KLSAjaWZkZWYgREVCVUdfTUVNT1JZCi0gICAgIF9jb3VudF90YWJsZSA9IGdfaGFz aF90YWJsZV9uZXcgKGdfZGlyZWN0X2hhc2gsIGdfZGlyZWN0X2VxdWFsKTsKLSAjZW5kaWYKLWRp ZmYgLS1naXQgYS9zcmMvaWJ1c29ic2VydmVkcGF0aC5jIGIvc3JjL2lidXNvYnNlcnZlZHBhdGgu YwotaW5kZXggY2JiODQ2ZGYuLjViNzlmMWZlIDEwMDY0NAotLS0tIGEvc3JjL2lidXNvYnNlcnZl ZHBhdGguYwotKysrIGIvc3JjL2lidXNvYnNlcnZlZHBhdGguYwotQEAgLTIsNyArMiw3IEBACi0g LyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBpYnVzIC0gVGhlIElucHV0IElCdXMKLSAgKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNv bT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBA IC0zNyw3ICszNyw3IEBAIHN0cnVjdCBfSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgewotIHR5cGVk ZWYgc3RydWN0IF9JQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSBJQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0 ZTsKLSAKLSAjZGVmaW5lIElCVVNfT0JTRVJWRURfUEFUSF9HRVRfUFJJVkFURShvKSAgXAotLSAg IChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX09CU0VSVkVEX1BB VEgsIElCdXNPYnNlcnZlZFBhdGhQcml2YXRlKSkKLSsgICAoKElCdXNPYnNlcnZlZFBhdGhQcml2 YXRlICopaWJ1c19vYnNlcnZlZF9wYXRoX2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKLSAKLSAv LyBzdGF0aWMgZ3VpbnQgICAgICAgICAgICBfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7IDAgfTsK LSAKLUBAIC02MCw4ICs2MCw2IEBAIGlidXNfb2JzZXJ2ZWRfcGF0aF9jbGFzc19pbml0IChJQnVz T2JzZXJ2ZWRQYXRoQ2xhc3MgKmNsYXNzKQotICAgICBJQnVzT2JqZWN0Q2xhc3MgKm9iamVjdF9j bGFzcyA9IElCVVNfT0JKRUNUX0NMQVNTIChjbGFzcyk7Ci0gICAgIElCdXNTZXJpYWxpemFibGVD bGFzcyAqc2VyaWFsaXphYmxlX2NsYXNzID0gSUJVU19TRVJJQUxJWkFCTEVfQ0xBU1MgKGNsYXNz KTsKLSAKLS0gICAgLy8gZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChjbGFzcywgc2l6ZW9mIChJ QnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSkpOwotLQotICAgICBvYmplY3RfY2xhc3MtPmRlc3Ryb3kg PSAoSUJ1c09iamVjdERlc3Ryb3lGdW5jKSBpYnVzX29ic2VydmVkX3BhdGhfZGVzdHJveTsKLSAK LSAgICAgc2VyaWFsaXphYmxlX2NsYXNzLT5zZXJpYWxpemUgICA9IChJQnVzU2VyaWFsaXphYmxl U2VyaWFsaXplRnVuYykgaWJ1c19vYnNlcnZlZF9wYXRoX3NlcmlhbGl6ZTsKLWRpZmYgLS1naXQg YS9zcmMvaWJ1c3Byb3BlcnR5LmMgYi9zcmMvaWJ1c3Byb3BlcnR5LmMKLWluZGV4IGM2YTM3NTM0 Li5lODdkMjZiNiAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzcHJvcGVydHkuYwotKysrIGIvc3JjL2li dXNwcm9wZXJ0eS5jCi1AQCAtMiw3ICsyLDcgQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwot IC8qIElCdXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUGVu ZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4 LTIwMTAgUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IFJlZCBIYXQs IEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNTksNyArNTksNyBAQCBzdHJ1Y3QgX0lC dXNQcm9wZXJ0eVByaXZhdGUgewotIH07Ci0gCi0gI2RlZmluZSBJQlVTX1BST1BFUlRZX0dFVF9Q UklWQVRFKG8pICBcCi0tICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVT X1RZUEVfUFJPUEVSVFksIElCdXNQcm9wZXJ0eVByaXZhdGUpKQotKyAgICgoSUJ1c1Byb3BlcnR5 UHJpdmF0ZSAqKWlidXNfcHJvcGVydHlfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQotIAotIC8q IGZ1bmN0aW9ucyBwcm90b3R5cGUgKi8KLSBzdGF0aWMgdm9pZCAgICAgICAgIGlidXNfcHJvcGVy dHlfc2V0X3Byb3BlcnR5ICAoSUJ1c1Byb3BlcnR5ICAgICAgICpwcm9wLAotQEAgLTc4LDcgKzc4 LDcgQEAgc3RhdGljIGdpbnQgICAgICAgICBpYnVzX3Byb3BlcnR5X2Rlc2VyaWFsaXplICAgKElC dXNQcm9wZXJ0eSAgICAgICAqcHJvcCwKLSBzdGF0aWMgZ2Jvb2xlYW4gICAgIGlidXNfcHJvcGVy dHlfY29weSAgICAgICAgICAoSUJ1c1Byb3BlcnR5ICAgICAgICpkZXN0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJQnVzUHJvcGVydHkg KnNyYyk7Ci0gCi0tR19ERUZJTkVfVFlQRSAoSUJ1c1Byb3BlcnR5LCBpYnVzX3Byb3BlcnR5LCBJ QlVTX1RZUEVfU0VSSUFMSVpBQkxFKQotK0dfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJQnVz UHJvcGVydHksIGlidXNfcHJvcGVydHksIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCi0gCi0gc3Rh dGljIHZvaWQKLSBpYnVzX3Byb3BlcnR5X2NsYXNzX2luaXQgKElCdXNQcm9wZXJ0eUNsYXNzICpj bGFzcykKLUBAIC04Nyw4ICs4Nyw2IEBAIGlidXNfcHJvcGVydHlfY2xhc3NfaW5pdCAoSUJ1c1By b3BlcnR5Q2xhc3MgKmNsYXNzKQotICAgICBJQnVzT2JqZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9 IElCVVNfT0JKRUNUX0NMQVNTIChjbGFzcyk7Ci0gICAgIElCdXNTZXJpYWxpemFibGVDbGFzcyAq c2VyaWFsaXphYmxlX2NsYXNzID0gSUJVU19TRVJJQUxJWkFCTEVfQ0xBU1MgKGNsYXNzKTsKLSAK LS0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChjbGFzcywgc2l6ZW9mIChJQnVzUHJvcGVy dHlQcml2YXRlKSk7Ci0tCi0gICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IChHT2Jq ZWN0U2V0UHJvcGVydHlGdW5jKSBpYnVzX3Byb3BlcnR5X3NldF9wcm9wZXJ0eTsKLSAgICAgZ29i amVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gKEdPYmplY3RHZXRQcm9wZXJ0eUZ1bmMpIGlidXNf cHJvcGVydHlfZ2V0X3Byb3BlcnR5OwotIAotZGlmZiAtLWdpdCBhL3NyYy9pYnVzcmVnaXN0cnku YyBiL3NyYy9pYnVzcmVnaXN0cnkuYwotaW5kZXggYjA0ODM5OTguLjQzOTkwZDVmIDEwMDY0NAot LS0tIGEvc3JjL2lidXNyZWdpc3RyeS5jCi0rKysgYi9zcmMvaWJ1c3JlZ2lzdHJ5LmMKLUBAIC0y LDggKzIsOCBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogYnVzIC0gVGhlIElucHV0 IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdt YWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVkIEhhdCwg SW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE5IFJlZCBIYXQs IEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgX0lC dXNSZWdpc3RyeVByaXZhdGUgewotIH07Ci0gCi0gI2RlZmluZSBJQlVTX1JFR0lTVFJZX0dFVF9Q UklWQVRFKG8pICBcCi0tICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVT X1RZUEVfUkVHSVNUUlksIElCdXNSZWdpc3RyeVByaXZhdGUpKQotKyAgICgoSUJ1c1JlZ2lzdHJ5 UHJpdmF0ZSAqKWlidXNfcmVnaXN0cnlfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQotIAotIC8q IGZ1bmN0aW9ucyBwcm90b3R5cGUgKi8KLSBzdGF0aWMgdm9pZCAgICAgaWJ1c19yZWdpc3RyeV9k ZXN0cm95ICAgICAgICAoSUJ1c1JlZ2lzdHJ5ICAgICAgICAgICAqcmVnaXN0cnkpOwotQEAgLTY3 LDcgKzY3LDcgQEAgc3RhdGljIGdpbnQgICAgIGlidXNfcmVnaXN0cnlfZGVzZXJpYWxpemUgICAg KElCdXNSZWdpc3RyeSAgICAgICAgICAgKnJlZ2lzdHJ5LAotIHN0YXRpYyBnYm9vbGVhbiBpYnVz X3JlZ2lzdHJ5X2NvcHkgICAgICAgICAgIChJQnVzUmVnaXN0cnkgICAgICAgICAgICpkZXN0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJQnVz UmVnaXN0cnkgICAgICpzcmMpOwotIAotLUdfREVGSU5FX1RZUEUgKElCdXNSZWdpc3RyeSwgaWJ1 c19yZWdpc3RyeSwgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKLStHX0RFRklORV9UWVBFX1dJVEhf UFJJVkFURSAoSUJ1c1JlZ2lzdHJ5LCBpYnVzX3JlZ2lzdHJ5LCBJQlVTX1RZUEVfU0VSSUFMSVpB QkxFKQotIAotIHN0YXRpYyB2b2lkCi0gaWJ1c19yZWdpc3RyeV9jbGFzc19pbml0IChJQnVzUmVn aXN0cnlDbGFzcyAqY2xhc3MpCi1AQCAtODQsOCArODQsNiBAQCBpYnVzX3JlZ2lzdHJ5X2NsYXNz X2luaXQgKElCdXNSZWdpc3RyeUNsYXNzICpjbGFzcykKLSAgICAgICAgIChJQnVzU2VyaWFsaXph YmxlRGVzZXJpYWxpemVGdW5jKSBpYnVzX3JlZ2lzdHJ5X2Rlc2VyaWFsaXplOwotICAgICBzZXJp YWxpemFibGVfY2xhc3MtPmNvcHkgPSAoSUJ1c1NlcmlhbGl6YWJsZUNvcHlGdW5jKSBpYnVzX3Jl Z2lzdHJ5X2NvcHk7Ci0gCi0tICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNp emVvZiAoSUJ1c1JlZ2lzdHJ5UHJpdmF0ZSkpOwotLQotICAgICAvKiBpbnN0YWxsIHNpZ25hbHMg Ki8KLSAgICAgLyoqCi0gICAgICAqIElCdXNSZWdpc3RyeTo6Y2hhbmdlZDoKLWRpZmYgLS1naXQg YS9zcmMvaWJ1c3NlcmlhbGl6YWJsZS5jIGIvc3JjL2lidXNzZXJpYWxpemFibGUuYwotaW5kZXgg YThkNGRkNjUuLjIzMTAyMGI3IDEwMDY0NAotLS0tIGEvc3JjL2lidXNzZXJpYWxpemFibGUuYwot KysrIGIvc3JjL2lidXNzZXJpYWxpemFibGUuYwotQEAgLTIsOCArMiw4IEBACi0gLyogdmltOnNl dCBldCBzdHM9NDogKi8KLSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAo QykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENv cHlyaWdodCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNv bT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJp Z2h0IChDKSAyMDE4LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgotICAqCi0gICog VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKLUBAIC0yNCw3ICsyNCw3IEBACi0gI2luY2x1ZGUgImlidXNzZXJpYWxpemFi bGUuaCIKLSAKLSAjZGVmaW5lIElCVVNfU0VSSUFMSVpBQkxFX0dFVF9QUklWQVRFKG8pICBcCi0t ICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZUEVfU0VSSUFMSVpB QkxFLCBJQnVzU2VyaWFsaXphYmxlUHJpdmF0ZSkpCi0rICAgKChJQnVzU2VyaWFsaXphYmxlUHJp dmF0ZSAqKWlidXNfc2VyaWFsaXphYmxlX2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKLSAKLSBl bnVtIHsKLSAgICAgTEFTVF9TSUdOQUwsCi1AQCAtNTAsNyArNTAsMTUgQEAgc3RhdGljIGdib29s ZWFuICBpYnVzX3NlcmlhbGl6YWJsZV9yZWFsX2NvcHkgICAgICAgIChJQnVzU2VyaWFsaXphYmxl ICAgICAgICpkZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IElCdXNTZXJpYWxpemFibGUgKnNyYyk7Ci0gCi0gc3RhdGljIElCdXNP YmplY3RDbGFzcyAqcGFyZW50X2NsYXNzID0gTlVMTDsKLStzdGF0aWMgZ2ludCBpYnVzX3Nlcmlh bGl6YWJsZV9wcml2YXRlX29mZnNldDsKLSAKLStHX0dOVUNfVU5VU0VECi0rc3RhdGljIGlubGlu ZSBncG9pbnRlcgotK2lidXNfc2VyaWFsaXphYmxlX2dldF9pbnN0YW5jZV9wcml2YXRlIChJQnVz U2VyaWFsaXphYmxlICpzZWxmKQotK3sKLSsgICAgcmV0dXJuIChHX1NUUlVDVF9NRU1CRVJfUCAo c2VsZiwgaWJ1c19zZXJpYWxpemFibGVfcHJpdmF0ZV9vZmZzZXQpKTsKLSt9Ci0rIAotIEdUeXBl Ci0gaWJ1c19zZXJpYWxpemFibGVfZ2V0X3R5cGUgKHZvaWQpCi0gewotQEAgLTczLDYgKzgxLDkg QEAgaWJ1c19zZXJpYWxpemFibGVfZ2V0X3R5cGUgKHZvaWQpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIklCdXNTZXJpYWxpemFibGUiLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZ0eXBlX2luZm8sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCk7Ci0rICAgICAgICBpYnVzX3NlcmlhbGl6YWJsZV9wcml2 YXRlX29mZnNldCA9Ci0rICAgICAgICAgICAgICAgIGdfdHlwZV9hZGRfaW5zdGFuY2VfcHJpdmF0 ZSAodHlwZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YgKElCdXNTZXJpYWxpemFibGVQcml2YXRlKSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJu IHR5cGU7Ci1AQCAtMTAxLDcgKzExMiwxMCBAQCBpYnVzX3NlcmlhbGl6YWJsZV9jbGFzc19pbml0 ICAgICAoSUJ1c1NlcmlhbGl6YWJsZUNsYXNzICpjbGFzcykKLSAKLSAgICAgcGFyZW50X2NsYXNz ID0gKElCdXNPYmplY3RDbGFzcyAqKSBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQgKGNsYXNzKTsK LSAKLS0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChjbGFzcywgc2l6ZW9mIChJQnVzU2Vy aWFsaXphYmxlUHJpdmF0ZSkpOwotKyAgICBpZiAoaWJ1c19zZXJpYWxpemFibGVfcHJpdmF0ZV9v ZmZzZXQpIHsKLSsgICAgICAgIGdfdHlwZV9jbGFzc19hZGp1c3RfcHJpdmF0ZV9vZmZzZXQgKGNs YXNzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlidXNf c2VyaWFsaXphYmxlX3ByaXZhdGVfb2Zmc2V0KTsKLSsgICAgfQotIAotICAgICBvYmplY3RfY2xh c3MtPmRlc3Ryb3kgPSAoSUJ1c09iamVjdERlc3Ryb3lGdW5jKSBpYnVzX3NlcmlhbGl6YWJsZV9k ZXN0cm95OwotIAotQEAgLTE4NCw3ICsxOTgsNyBAQCBpYnVzX3NlcmlhbGl6YWJsZV9yZWFsX2Nv cHkgKElCdXNTZXJpYWxpemFibGUgKmRlc3QsCi0gewotICAgICBJQnVzU2VyaWFsaXphYmxlUHJp dmF0ZSAqc3JjX3ByaXY7Ci0gICAgIElCdXNTZXJpYWxpemFibGVQcml2YXRlICpkZXN0X3ByaXY7 Ci0tICAgIHNyY19wcml2ID0gSUJVU19TRVJJQUxJWkFCTEVfR0VUX1BSSVZBVEUgKHNyYyk7Ci0r ICAgIHNyY19wcml2ID0gSUJVU19TRVJJQUxJWkFCTEVfR0VUX1BSSVZBVEUgKElCVVNfU0VSSUFM SVpBQkxFIChzcmMpKTsKLSAgICAgZGVzdF9wcml2ID0gSUJVU19TRVJJQUxJWkFCTEVfR0VUX1BS SVZBVEUgKGRlc3QpOwotIAotICAgICBnX2RhdGFsaXN0X2ZvcmVhY2ggKCZzcmNfcHJpdi0+YXR0 YWNobWVudHMsCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXNzZXJ2aWNlLmMgYi9zcmMvaWJ1c3NlcnZp Y2UuYwotaW5kZXggZWIzNzBlOGIuLjYwMjU1YmQ1IDEwMDY0NAotLS0tIGEvc3JjL2lidXNzZXJ2 aWNlLmMKLSsrKyBiL3NyYy9pYnVzc2VydmljZS5jCi1AQCAtMiw4ICsyLDggQEAKLSAvKiB2aW06 c2V0IGV0IHN0cz00OiAqLwotIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0 IChDKSAyMDA4LTIwMTUgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICog Q29weXJpZ2h0IChDKSAyMDE1LTIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTggUmVkIEhhdCwgSW5jLgotKyAq IENvcHlyaWdodCAoQykgMjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE5IFJlZCBIYXQsIEluYy4KLSAg KgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMjQsNyArMjQsNyBAQAotICNpbmNsdWRlICJpYnVzaW50 ZXJuYWwuaCIKLSAKLSAjZGVmaW5lIElCVVNfU0VSVklDRV9HRVRfUFJJVkFURShvKSAgXAotLSAg IChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX1NFUlZJQ0UsIElC dXNTZXJ2aWNlUHJpdmF0ZSkpCi0rICAgKChJQnVzU2VydmljZVByaXZhdGUgKilpYnVzX3NlcnZp Y2VfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQotIAotIGVudW0gewotICAgICBMQVNUX1NJR05B TAotQEAgLTEzMyw2ICsxMzMsMTMgQEAgc3RhdGljIGNvbnN0IEdEQnVzSW50ZXJmYWNlVlRhYmxl IGlidXNfc2VydmljZV9pbnRlcmZhY2VfdnRhYmxlID0gewotIH07Ci0gCi0gc3RhdGljIElCdXNP YmplY3RDbGFzcyAqaWJ1c19zZXJ2aWNlX3BhcmVudF9jbGFzcyA9IE5VTEw7Ci0rc3RhdGljIGdp bnQgaWJ1c19zZXJ2aWNlX3ByaXZhdGVfb2Zmc2V0OwotKwotK3N0YXRpYyBpbmxpbmUgZ3BvaW50 ZXIKLStpYnVzX3NlcnZpY2VfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKElCdXNTZXJ2aWNlICpzZWxm KQotK3sKLSsgICAgcmV0dXJuIChHX1NUUlVDVF9NRU1CRVJfUCAoc2VsZiwgaWJ1c19zZXJ2aWNl X3ByaXZhdGVfb2Zmc2V0KSk7Ci0rfQotIAotIEdUeXBlCi0gaWJ1c19zZXJ2aWNlX2dldF90eXBl ICh2b2lkKQotQEAgLTE1Niw2ICsxNjMsOSBAQCBpYnVzX3NlcnZpY2VfZ2V0X3R5cGUgKHZvaWQp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIklCdXNTZXJ2aWNlIiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHlwZV9pbmZvLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwotKyAgICAgICAgaWJ1c19z ZXJ2aWNlX3ByaXZhdGVfb2Zmc2V0ID0KLSsgICAgICAgICAgICAgICAgZ190eXBlX2FkZF9pbnN0 YW5jZV9wcml2YXRlICh0eXBlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZiAoSUJ1c1NlcnZpY2VQcml2YXRlKSk7Ci0gICAgIH0KLSAKLSAgICAg cmV0dXJuIHR5cGU7Ci1AQCAtMTk4LDEyICsyMDgsMjAgQEAgaWJ1c19zZXJ2aWNlX2NsYXNzX2lu aXQgKElCdXNTZXJ2aWNlQ2xhc3MgKmNsYXNzKQotICAgICBHT2JqZWN0Q2xhc3MgKmdvYmplY3Rf Y2xhc3MgPSBHX09CSkVDVF9DTEFTUyAoY2xhc3MpOwotICAgICBJQnVzT2JqZWN0Q2xhc3MgKmli dXNfb2JqZWN0X2NsYXNzID0gSUJVU19PQkpFQ1RfQ0xBU1MgKGNsYXNzKTsKLSAKLS0gICAgaWJ1 c19zZXJ2aWNlX3BhcmVudF9jbGFzcyA9IElCVVNfT0JKRUNUX0NMQVNTIChnX3R5cGVfY2xhc3Nf cGVla19wYXJlbnQgKGNsYXNzKSk7Ci0rICAgIGlidXNfc2VydmljZV9wYXJlbnRfY2xhc3MgPQot KyAgICAgICAgICAgIElCVVNfT0JKRUNUX0NMQVNTIChnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQg KGNsYXNzKSk7Ci0rICAgIGlmIChpYnVzX3NlcnZpY2VfcHJpdmF0ZV9vZmZzZXQpIHsKLSsgICAg ICAgIGdfdHlwZV9jbGFzc19hZGp1c3RfcHJpdmF0ZV9vZmZzZXQgKGNsYXNzLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlidXNfc2VydmljZV9wcml2YXRl X29mZnNldCk7Ci0rICAgIH0KLSAKLSAgICAgZ29iamVjdF9jbGFzcy0+Y29uc3RydWN0ZWQgID0g aWJ1c19zZXJ2aWNlX2NvbnN0cnVjdGVkOwotLSAgICBnb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVy dHkgPSAoR09iamVjdFNldFByb3BlcnR5RnVuYykgaWJ1c19zZXJ2aWNlX3NldF9wcm9wZXJ0eTsK LS0gICAgZ29iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gKEdPYmplY3RHZXRQcm9wZXJ0eUZ1 bmMpIGlidXNfc2VydmljZV9nZXRfcHJvcGVydHk7Ci0tICAgIGlidXNfb2JqZWN0X2NsYXNzLT5k ZXN0cm95ICA9IChJQnVzT2JqZWN0RGVzdHJveUZ1bmMpIGlidXNfc2VydmljZV9kZXN0cm95Owot KyAgICBnb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPQotKyAgICAgICAgICAgIChHT2JqZWN0 U2V0UHJvcGVydHlGdW5jKSBpYnVzX3NlcnZpY2Vfc2V0X3Byb3BlcnR5OwotKyAgICBnb2JqZWN0 X2NsYXNzLT5nZXRfcHJvcGVydHkgPQotKyAgICAgICAgICAgIChHT2JqZWN0R2V0UHJvcGVydHlG dW5jKSBpYnVzX3NlcnZpY2VfZ2V0X3Byb3BlcnR5OwotKyAgICBpYnVzX29iamVjdF9jbGFzcy0+ ZGVzdHJveSAgPQotKyAgICAgICAgICAgIChJQnVzT2JqZWN0RGVzdHJveUZ1bmMpIGlidXNfc2Vy dmljZV9kZXN0cm95OwotIAotICAgICAvKiB2aXJ0dWFsIGZ1bmN0aW9ucyAqLwotICAgICBjbGFz cy0+c2VydmljZV9tZXRob2RfY2FsbCA9IGlidXNfc2VydmljZV9zZXJ2aWNlX21ldGhvZF9jYWxs OwotQEAgLTI1Miw4ICsyNzAsNiBAQCBpYnVzX3NlcnZpY2VfY2xhc3NfaW5pdCAoSUJ1c1NlcnZp Y2VDbGFzcyAqY2xhc3MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9TVEFUSUNf TklDSyB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9TVEFUSUNfQkxVUkIpCi0g ICAgICAgICAgICAgICAgICAgICApOwotLQotLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUg KGNsYXNzLCBzaXplb2YgKElCdXNTZXJ2aWNlUHJpdmF0ZSkpOwotIH0KLSAKLSBzdGF0aWMgdm9p ZAotZGlmZiAtLWdpdCBhL3NyYy9pYnVzdW5pY29kZS5jIGIvc3JjL2lidXN1bmljb2RlLmMKLWlu ZGV4IGFhYzljMTM1Li45ZTZmNmIyYiAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzdW5pY29kZS5jCi0r KysgYi9zcmMvaWJ1c3VuaWNvZGUuYwotQEAgLTEsOCArMSw4IEBACi0gLyogLSotIG1vZGU6IEM7 IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwotIC8qIHZp bTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogYnVzIC0gVGhlIElucHV0IEJ1cwotLSAqIENvcHlyaWdo dCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLS0g KiBDb3B5cmlnaHQgKEMpIDIwMTggUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAx OC0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENv cHlyaWdodCAoQykgMjAxOC0yMDE5IFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFy eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj Ci1AQCAtNjQsMTMgKzY0LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewotIH0gSUJ1c1VuaWNvZGVEYXRh TG9hZERhdGE7Ci0gCi0gI2RlZmluZSBJQlVTX1VOSUNPREVfREFUQV9HRVRfUFJJVkFURShvKSAg XAotLSAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgXAotLSAgICBJQlVTX1RZ UEVfVU5JQ09ERV9EQVRBLCBcCi0tICAgIElCdXNVbmljb2RlRGF0YVByaXZhdGUpKQotKyAgICgo SUJ1c1VuaWNvZGVEYXRhUHJpdmF0ZSAqKWlidXNfdW5pY29kZV9kYXRhX2dldF9pbnN0YW5jZV9w cml2YXRlIChvKSkKLSAjZGVmaW5lIElCVVNfVU5JQ09ERV9CTE9DS19HRVRfUFJJVkFURShvKSAg XAotLSAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgXAotLSAgICBJQlVTX1RZ UEVfVU5JQ09ERV9CTE9DSywgXAotLSAgICBJQnVzVW5pY29kZUJsb2NrUHJpdmF0ZSkpCi0rICAg KChJQnVzVW5pY29kZUJsb2NrUHJpdmF0ZSAqKWlidXNfdW5pY29kZV9ibG9ja19nZXRfaW5zdGFu Y2VfcHJpdmF0ZSAobykpCi0gCi0gLyogZnVuY3Rpb25zIHByb3RvdHlwZSAqLwotIHN0YXRpYyB2 b2lkICAgICAgaWJ1c191bmljb2RlX2RhdGFfc2V0X3Byb3BlcnR5IChJQnVzVW5pY29kZURhdGEg ICAgICAqdW5pY29kZSwKLUBAIC0xMDYsOCArMTAyLDEyIEBAIHN0YXRpYyBnaW50ICAgICAgaWJ1 c191bmljb2RlX2Jsb2NrX2Rlc2VyaWFsaXplIChJQnVzVW5pY29kZUJsb2NrICAgICAqYmxvY2ss Ci0gc3RhdGljIGdib29sZWFuICBpYnVzX3VuaWNvZGVfYmxvY2tfY29weSAgICAgICAgKElCdXNV bmljb2RlQmxvY2sgICAgICpkZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IElCdXNVbmljb2RlQmxvY2sgKnNyYyk7Ci0gCi0tR19ERUZJ TkVfVFlQRSAoSUJ1c1VuaWNvZGVEYXRhLCBpYnVzX3VuaWNvZGVfZGF0YSwgSUJVU19UWVBFX1NF UklBTElaQUJMRSkKLS1HX0RFRklORV9UWVBFIChJQnVzVW5pY29kZUJsb2NrLCBpYnVzX3VuaWNv ZGVfYmxvY2ssIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCi0rR19ERUZJTkVfVFlQRV9XSVRIX1BS SVZBVEUgKElCdXNVbmljb2RlRGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1 c191bmljb2RlX2RhdGEsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfVFlQRV9T RVJJQUxJWkFCTEUpCi0rR19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUgKElCdXNVbmljb2RlQmxv Y2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfdW5pY29kZV9ibG9jaywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKLSAKLSBz dGF0aWMgdm9pZAotIGlidXNfdW5pY29kZV9kYXRhX2NsYXNzX2luaXQgKElCdXNVbmljb2RlRGF0 YUNsYXNzICpjbGFzcykKLUBAIC0xMjgsOCArMTI4LDYgQEAgaWJ1c191bmljb2RlX2RhdGFfY2xh c3NfaW5pdCAoSUJ1c1VuaWNvZGVEYXRhQ2xhc3MgKmNsYXNzKQotICAgICBzZXJpYWxpemFibGVf Y2xhc3MtPmNvcHkgICAgICAgID0KLSAgICAgICAgICAgICAoSUJ1c1NlcmlhbGl6YWJsZUNvcHlG dW5jKSBpYnVzX3VuaWNvZGVfZGF0YV9jb3B5OwotIAotLSAgICBnX3R5cGVfY2xhc3NfYWRkX3By aXZhdGUgKGNsYXNzLCBzaXplb2YgKElCdXNVbmljb2RlRGF0YVByaXZhdGUpKTsKLS0KLSAgICAg LyogaW5zdGFsbCBwcm9wZXJ0aWVzICovCi0gICAgIC8qKgotICAgICAgKiBJQnVzVW5pY29kZURh dGE6Y29kZToKLUBAIC02OTAsOCArNjg4LDYgQEAgaWJ1c191bmljb2RlX2Jsb2NrX2NsYXNzX2lu aXQgKElCdXNVbmljb2RlQmxvY2tDbGFzcyAqY2xhc3MpCi0gICAgIHNlcmlhbGl6YWJsZV9jbGFz cy0+Y29weSAgICAgICAgPQotICAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlQ29weUZ1bmMp IGlidXNfdW5pY29kZV9ibG9ja19jb3B5OwotIAotLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZh dGUgKGNsYXNzLCBzaXplb2YgKElCdXNVbmljb2RlQmxvY2tQcml2YXRlKSk7Ci0tCi0gICAgIC8q IGluc3RhbGwgcHJvcGVydGllcyAqLwotICAgICAvKioKLSAgICAgICogSUJ1c1VuaWNvZGVCbG9j azpzdGFydDoKLWRpZmYgLS1naXQgYS9zcmMvaWJ1c3hldmVudC5jIGIvc3JjL2lidXN4ZXZlbnQu YwotaW5kZXggMjg3YmI5OWIuLmEyZWE3YjU3IDEwMDY0NAotLS0tIGEvc3JjL2lidXN4ZXZlbnQu YwotKysrIGIvc3JjL2lidXN4ZXZlbnQuYwotQEAgLTEsOCArMSw4IEBACi0gLyogLSotIG1vZGU6 IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwotIC8q IHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLS0gKiBDb3B5 cmlnaHQgKEMpIDIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ Ci0tICogQ29weXJpZ2h0IChDKSAyMDE4IFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQgKEMp IDIwMTgtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsg KiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYwotQEAgLTI0LDEzICsyNCwxMSBAQAotIAotICNkZWZpbmUgSUJVU19FWFRFTlNJT05fRVZF TlRfVkVSU0lPTiAxCi0gI2RlZmluZSBJQlVTX0VYVEVOU0lPTl9FVkVOVF9HRVRfUFJJVkFURShv KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotLSAgIChHX1RZUEVfSU5TVEFOQ0VfR0VU X1BSSVZBVEUgKChvKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX1RZUEVfRVhURU5TSU9OX0VWRU5ULCAg ICAgICAgICAgICBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c0V4dGVu c2lvbkV2ZW50UHJpdmF0ZSkpCi0rICAgKChJQnVzRXh0ZW5zaW9uRXZlbnRQcml2YXRlICopaWJ1 c19leHRlbnNpb25fZXZlbnRfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQotIAotICNkZWZpbmUg SUJVU19YX0VWRU5UX1ZFUlNJT04gMQotICNkZWZpbmUgSUJVU19YX0VWRU5UX0dFVF9QUklWQVRF KG8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLS0gICAoR19UWVBFX0lO U1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9YX0VWRU5ULCBJQnVzWEV2ZW50UHJp dmF0ZSkpCi0rICAgKChJQnVzWEV2ZW50UHJpdmF0ZSAqKWlidXNfeF9ldmVudF9nZXRfaW5zdGFu Y2VfcHJpdmF0ZSAobykpCi0gCi0gZW51bSB7Ci0gICAgIFBST1BfMCwKLUBAIC0xMjgsOCArMTI2 LDEyIEBAIHN0YXRpYyBnaW50ICAgICAgaWJ1c194X2V2ZW50X2Rlc2VyaWFsaXplICAgICAgICAg IChJQnVzWEV2ZW50ICAgICAgICAgKmV2ZW50LAotIHN0YXRpYyBnYm9vbGVhbiAgaWJ1c194X2V2 ZW50X2NvcHkgICAgICAgICAgICAgICAgIChJQnVzWEV2ZW50ICAgICAgICAgKmRlc3QsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElC dXNYRXZlbnQgICAqc3JjKTsKLSAKLS1HX0RFRklORV9UWVBFIChJQnVzRXh0ZW5zaW9uRXZlbnQs IGlidXNfZXh0ZW5zaW9uX2V2ZW50LCBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQotLUdfREVGSU5F X1RZUEUgKElCdXNYRXZlbnQsIGlidXNfeF9ldmVudCwgSUJVU19UWVBFX1NFUklBTElaQUJMRSkK LStHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1c0V4dGVuc2lvbkV2ZW50LAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpYnVzX2V4dGVuc2lvbl9ldmVudCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKLStHX0RFRklORV9UWVBF X1dJVEhfUFJJVkFURSAoSUJ1c1hFdmVudCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWJ1c194X2V2ZW50LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX1RZUEVfU0VS SUFMSVpBQkxFKQotIAotIHN0YXRpYyB2b2lkCi0gaWJ1c19leHRlbnNpb25fZXZlbnRfY2xhc3Nf aW5pdCAoSUJ1c0V4dGVuc2lvbkV2ZW50Q2xhc3MgKmNsYXNzKQotQEAgLTIyOCw4ICsyMzAsNiBA QCBpYnVzX2V4dGVuc2lvbl9ldmVudF9jbGFzc19pbml0IChJQnVzRXh0ZW5zaW9uRXZlbnRDbGFz cyAqY2xhc3MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgR19QQVJBTV9SRUFEV1JJVEUgfAotICAgICAgICAgICAgICAgICAgICAgICAgIEdf UEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKLS0KLS0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRl IChjbGFzcywgc2l6ZW9mIChJQnVzRXh0ZW5zaW9uRXZlbnRQcml2YXRlKSk7Ci0gfQotIAotIHN0 YXRpYyB2b2lkCi1AQCAtNzc5LDggKzc3OSw2IEBAIGlidXNfeF9ldmVudF9jbGFzc19pbml0IChJ QnVzWEV2ZW50Q2xhc3MgKmNsYXNzKQotICAgICAgICAgICAgICAgICAgICAgICAgICIiLAotICAg ICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBRFdSSVRFIHwKLSAgICAgICAgICAgICAg ICAgICAgICAgICBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSk7Ci0tCi0tICAgIGdfdHlwZV9jbGFz c19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c1hFdmVudFByaXZhdGUpKTsKLSB9Ci0g Ci0gc3RhdGljIHZvaWQKLS0tIAotMi4yMS4wCi0KLUZyb20gM2Q0NDJkYmY5MzZkMTk3YWExMWNh MGE3MTY2M2MyYmM2MTY5NjE1MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3 YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMTMgU2VwIDIwMTkg MTU6NTk6MDMgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gYnVzOiBJbXBsZW1lbnQgR0RCdXNBdXRo T2JzZXJ2ZXIgY2FsbGJhY2sKLQotaWJ1cyB1c2VzIGEgR0RCdXNTZXJ2ZXIgd2l0aCBHX0RCVVNf U0VSVkVSX0ZMQUdTX0FVVEhFTlRJQ0FUSU9OX0FMTE9XX0FOT05ZTU9VUywKLWFuZCBkb2Vzbid0 IHNldCBhIEdEQnVzQXV0aE9ic2VydmVyLCB3aGljaCBhbGxvd3MgYW55b25lIHdobyBjYW4gY29u bmVjdAotdG8gaXRzIEFGX1VOSVggc29ja2V0IHRvIGF1dGhlbnRpY2F0ZSBhbmQgYmUgYXV0aG9y aXplZCB0byBzZW5kIG1ldGhvZCBjYWxscy4KLUl0IGFsc28gc2VlbXMgdG8gdXNlIGFuIGFic3Ry YWN0IEFGX1VOSVggc29ja2V0LCB3aGljaCBkb2VzIG5vdCBoYXZlCi1maWxlc3lzdGVtIHBlcm1p c3Npb25zLCBzbyB0aGUgcHJhY3RpY2FsIGVmZmVjdCBtaWdodCBiZSB0aGF0IGEgbG9jYWwKLWF0 dGFja2VyIGNhbiBjb25uZWN0IHRvIGFub3RoZXIgdXNlcidzIGlidXMgc2VydmljZSBhbmQgbWFr ZSBhcmJpdHJhcnkKLW1ldGhvZCBjYWxscy4KLQotQlVHUz1yaGJ6IzE3MTc5NTgKLS0tLQotIGJ1 cy9zZXJ2ZXIuYyB8IDg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9idXMvc2VydmVyLmMgYi9idXMvc2VydmVyLmMKLWluZGV4 IDNhNjI2MjMwLi4yNDM5ZGUxNCAxMDA2NDQKLS0tLSBhL2J1cy9zZXJ2ZXIuYwotKysrIGIvYnVz L3NlcnZlci5jCi1AQCAtMiw3ICsyLDggQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwotIC8q IGJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1 YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx MCBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgVGFrYW8gRnVqaXdh cmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDA4LTIw MTkgUmVkIEhhdCwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC02OSwxNyArNzAsNjQg QEAgX3Jlc3RhcnRfc2VydmVyICh2b2lkKQotICAgICBleGl0ICgtMSk7Ci0gfQotIAotKy8qKgot KyAqIGJ1c19hbGxvd19tZWNoYW5pc21fY2I6Ci0rICogQG9ic2VydmVyOiBBICNHREJ1c0F1dGhP YnNlcnZlci4KLSsgKiBAbWVjaGFuaXNtOiBUaGUgbmFtZSBvZiB0aGUgbWVjaGFuaXNtLgotKyAq IEB1c2VyX2RhdGE6IGFsd2F5cyAlTlVMTC4KLSsgKgotKyAqIENoZWNrIGlmIEBtZWNoYW5pc20g Y2FuIGJlIHVzZWQgdG8gYXV0aGVudGljYXRlIHRoZSBvdGhlciBwZWVyLgotKyAqIFJldHVybnM6 ICVUUlVFIGlmIHRoZSBwZWVyJ3MgbWVjaGFuaXNtIGlzIGFsbG93ZWQuCi0rICovCi0rc3RhdGlj IGdib29sZWFuCi0rYnVzX2FsbG93X21lY2hhbmlzbV9jYiAoR0RCdXNBdXRoT2JzZXJ2ZXIgICAg ICpvYnNlcnZlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAg ICAgKm1lY2hhbmlzbSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBHX0dOVUNfVU5VU0VEIGdw b2ludGVyIHVzZXJfZGF0YSkKLSt7Ci0rICAgIGlmIChnX3N0cmNtcDAgKG1lY2hhbmlzbSwgIkVY VEVSTkFMIikgPT0gMCkKLSsgICAgICAgIHJldHVybiBUUlVFOwotKyAgICByZXR1cm4gRkFMU0U7 Ci0rfQotKwotKy8qKgotKyAqIGJ1c19hdXRob3JpemVfYXV0aGVudGljYXRlZF9wZWVyX2NiOgot KyAqIEBvYnNlcnZlcjogQSAjR0RCdXNBdXRoT2JzZXJ2ZXIuCi0rICogQHN0cmVhbTogQSAjR0lP U3RyZWFtLgotKyAqIEBjcmVkZW50aWFsczogQSAjR0NyZWRlbnRpYWxzLgotKyAqIEB1c2VyX2Rh dGE6IGFsd2F5cyAlTlVMTC4KLSsgKgotKyAqIENoZWNrIGlmIGEgcGVlciB3aG8gaGFzIGFscmVh ZHkgYXV0aGVudGljYXRlZCBzaG91bGQgYmUgYXV0aG9yaXplZC4KLSsgKiBSZXR1cm5zOiAlVFJV RSBpZiB0aGUgcGVlcidzIGNyZWRlbnRpYWwgaXMgYXV0aG9yaXplZC4KLSsgKi8KLStzdGF0aWMg Z2Jvb2xlYW4KLStidXNfYXV0aG9yaXplX2F1dGhlbnRpY2F0ZWRfcGVlcl9jYiAoR0RCdXNBdXRo T2JzZXJ2ZXIgICAgICpvYnNlcnZlciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR0lPU3RyZWFtICAgICAgICAgICAgICpzdHJlYW0sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdDcmVkZW50aWFscyAgICAgICAgICAqY3JlZGVudGlhbHMsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfR05VQ19VTlVTRUQgZ3BvaW50 ZXIgdXNlcl9kYXRhKQotK3sKLSsgICAgZ2Jvb2xlYW4gYXV0aG9yaXplZCA9IEZBTFNFOwotKyAg ICBpZiAoY3JlZGVudGlhbHMpIHsKLSsgICAgICAgIEdDcmVkZW50aWFscyAqb3duX2NyZWRlbnRp YWxzID0gZ19jcmVkZW50aWFsc19uZXcgKCk7Ci0rICAgICAgICBpZiAoZ19jcmVkZW50aWFsc19p c19zYW1lX3VzZXIgKGNyZWRlbnRpYWxzLCBvd25fY3JlZGVudGlhbHMsIE5VTEwpKQotKyAgICAg ICAgICAgIGF1dGhvcml6ZWQgPSBUUlVFOwotKyAgICAgICAgZ19vYmplY3RfdW5yZWYgKG93bl9j cmVkZW50aWFscyk7Ci0rICAgIH0KLSsgICAgcmV0dXJuIGF1dGhvcml6ZWQ7Ci0rfQotKwotIC8q KgotICAqIGJ1c19uZXdfY29ubmVjdGlvbl9jYjoKLS0gKiBAdXNlcl9kYXRhOiBhbHdheXMgTlVM TC4KLS0gKiBAcmV0dXJuczogVFJVRSB3aGVuIHRoZSBmdW5jdGlvbiBjYW4gaGFuZGxlIHRoZSBj b25uZWN0aW9uLgotKyAqIEBvYnNlcnZlcjogQSAjR0RCdXNBdXRoT2JzZXJ2ZXIuCi0rICogQGRi dXNfY29ubmVjdGlvbjogQSAjR0RCdXNjb25uZWN0aW9uLgotKyAqIEB1c2VyX2RhdGE6IGFsd2F5 cyAlTlVMTC4KLSAgKgotICAqIEhhbmRsZSBpbmNvbWluZyBjb25uZWN0aW9ucy4KLSsgKiBSZXR1 cm5zOiAlVFJVRSB3aGVuIHRoZSBmdW5jdGlvbiBjYW4gaGFuZGxlIHRoZSBjb25uZWN0aW9uLgot ICAqLwotIHN0YXRpYyBnYm9vbGVhbgotLWJ1c19uZXdfY29ubmVjdGlvbl9jYiAoR0RCdXNTZXJ2 ZXIgICAgICpzZXJ2ZXIsCi0tICAgICAgICAgICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24g KmRidXNfY29ubmVjdGlvbiwKLS0gICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAg ICAgdXNlcl9kYXRhKQotK2J1c19uZXdfY29ubmVjdGlvbl9jYiAoR0RCdXNTZXJ2ZXIgICAgICAg ICAgICpzZXJ2ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24gICAg ICAgKmRidXNfY29ubmVjdGlvbiwKLSsgICAgICAgICAgICAgICAgICAgICAgIEdfR05VQ19VTlVT RUQgZ3BvaW50ZXIgdXNlcl9kYXRhKQotIHsKLSAgICAgQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlv biA9IGJ1c19jb25uZWN0aW9uX25ldyAoZGJ1c19jb25uZWN0aW9uKTsKLSAgICAgYnVzX2RidXNf aW1wbF9uZXdfY29ubmVjdGlvbiAoZGJ1cywgY29ubmVjdGlvbik7Ci1AQCAtOTQsOSArMTQyLDkg QEAgYnVzX25ld19jb25uZWN0aW9uX2NiIChHREJ1c1NlcnZlciAgICAgKnNlcnZlciwKLSB9Ci0g Ci0gc3RhdGljIHZvaWQKLS1fc2VydmVyX2Nvbm5lY3Rfc3RhcnRfcG9ydGFsX2NiIChHT2JqZWN0 ICAgICAgKnNvdXJjZV9vYmplY3QsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0FzeW5jUmVzdWx0ICpyZXMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Bv aW50ZXIgICAgICB1c2VyX2RhdGEpCi0rX3NlcnZlcl9jb25uZWN0X3N0YXJ0X3BvcnRhbF9jYiAo R09iamVjdCAgICAgICAgICAgICAgICpzb3VyY2Vfb2JqZWN0LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICAgICAgICAqcmVzLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfR05VQ19VTlVTRUQgZ3BvaW50ZXIgdXNlcl9kYXRhKQot IHsKLSAgICAgR1ZhcmlhbnQgKnJlc3VsdDsKLSAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci1A QCAtMTEzLDkgKzE2MSw5IEBAIF9zZXJ2ZXJfY29ubmVjdF9zdGFydF9wb3J0YWxfY2IgKEdPYmpl Y3QgICAgICAqc291cmNlX29iamVjdCwKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLS1idXNfYWNxdWly ZWRfaGFuZGxlciAoR0RCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAotLSAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBnY2hhciAgICAgKm5hbWUsCi0tICAgICAgICAgICAgICAgICAgICAgIGdw b2ludGVyICAgICAgICAgdXNlcl9kYXRhKQotK2J1c19hY3F1aXJlZF9oYW5kbGVyIChHREJ1c0Nv bm5lY3Rpb24gICAgICAgKmNvbm5lY3Rpb24sCi0rICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGdjaGFyICAgICAgICAgICAqbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICAgR19HTlVDX1VO VVNFRCBncG9pbnRlciB1c2VyX2RhdGEpCi0gewotICAgICBnX2RidXNfY29ubmVjdGlvbl9jYWxs IChjb25uZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX1NFUlZJQ0Vf UE9SVEFMLAotQEAgLTEzNiwxNCArMTg0LDE3IEBAIHZvaWQKLSBidXNfc2VydmVyX2luaXQgKHZv aWQpCi0gewotICAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLSsgICAgR0RCdXNTZXJ2ZXJGbGFn cyBmbGFncyA9IEdfREJVU19TRVJWRVJfRkxBR1NfTk9ORTsKLSsgICAgZ2NoYXIgKmd1aWQ7Ci0r ICAgIEdEQnVzQXV0aE9ic2VydmVyICpvYnNlcnZlcjsKLSAKLSAgICAgZGJ1cyA9IGJ1c19kYnVz X2ltcGxfZ2V0X2RlZmF1bHQgKCk7Ci0gICAgIGlidXMgPSBidXNfaWJ1c19pbXBsX2dldF9kZWZh dWx0ICgpOwotICAgICBidXNfZGJ1c19pbXBsX3JlZ2lzdGVyX29iamVjdCAoZGJ1cywgKElCdXNT ZXJ2aWNlICopaWJ1cyk7Ci0gCi0gICAgIC8qIGluaXQgc2VydmVyICovCi0tICAgIEdEQnVzU2Vy dmVyRmxhZ3MgZmxhZ3MgPSBHX0RCVVNfU0VSVkVSX0ZMQUdTX0FVVEhFTlRJQ0FUSU9OX0FMTE9X X0FOT05ZTU9VUzsKLS0gICAgZ2NoYXIgKmd1aWQgPSBnX2RidXNfZ2VuZXJhdGVfZ3VpZCAoKTsK LSsgICAgZ3VpZCA9IGdfZGJ1c19nZW5lcmF0ZV9ndWlkICgpOwotKyAgICBvYnNlcnZlciA9IGdf ZGJ1c19hdXRoX29ic2VydmVyX25ldyAoKTsKLSAgICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4IChn X2FkZHJlc3MsICJ1bml4OnRtcGRpcj0iKSAmJgotICAgICAgICAgIWdfc3RyX2hhc19wcmVmaXgg KGdfYWRkcmVzcywgInVuaXg6cGF0aD0iKSkgewotICAgICAgICAgZ19lcnJvciAoIllvdXIgc29j a2V0IGFkZHJlc3MgZG9lcyBub3QgaGF2ZSB0aGUgZm9ybWF0IHVuaXg6dG1wZGlyPSRESVIgIgot QEAgLTE1Miw3ICsyMDMsNyBAQCBidXNfc2VydmVyX2luaXQgKHZvaWQpCi0gICAgIHNlcnZlciA9 ICBnX2RidXNfc2VydmVyX25ld19zeW5jICgKLSAgICAgICAgICAgICAgICAgICAgIGdfYWRkcmVz cywgLyogdGhlIHBsYWNlIHdoZXJlIHRoZSBzb2NrZXQgZmlsZSBsaXZlcywgZS5nLiAvdG1wLCBh YnN0cmFjdCBuYW1lc3BhY2UsIGV0Yy4gKi8KLSAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCBn dWlkLAotLSAgICAgICAgICAgICAgICAgICAgTlVMTCAvKiBvYnNlcnZlciAqLywKLSsgICAgICAg ICAgICAgICAgICAgIG9ic2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgTlVMTCAvKiBjYW5j ZWxsYWJsZSAqLywKLSAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7Ci0gICAgIGlmIChzZXJ2 ZXIgPT0gTlVMTCkgewotQEAgLTE2Miw3ICsyMTMsMTMgQEAgYnVzX3NlcnZlcl9pbml0ICh2b2lk KQotICAgICB9Ci0gICAgIGdfZnJlZSAoZ3VpZCk7Ci0gCi0tICAgIGdfc2lnbmFsX2Nvbm5lY3Qg KHNlcnZlciwgIm5ldy1jb25uZWN0aW9uIiwgR19DQUxMQkFDSyAoYnVzX25ld19jb25uZWN0aW9u X2NiKSwgTlVMTCk7Ci0rICAgIGdfc2lnbmFsX2Nvbm5lY3QgKG9ic2VydmVyLCAiYWxsb3ctbWVj aGFuaXNtIiwKLSsgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoYnVzX2FsbG93X21l Y2hhbmlzbV9jYiksIE5VTEwpOwotKyAgICBnX3NpZ25hbF9jb25uZWN0IChvYnNlcnZlciwgImF1 dGhvcml6ZS1hdXRoZW50aWNhdGVkLXBlZXIiLAotKyAgICAgICAgICAgICAgICAgICAgICBHX0NB TExCQUNLIChidXNfYXV0aG9yaXplX2F1dGhlbnRpY2F0ZWRfcGVlcl9jYiksIE5VTEwpOwotKyAg ICBnX29iamVjdF91bnJlZiAob2JzZXJ2ZXIpOwotKyAgICBnX3NpZ25hbF9jb25uZWN0IChzZXJ2 ZXIsICJuZXctY29ubmVjdGlvbiIsCi0rICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sg KGJ1c19uZXdfY29ubmVjdGlvbl9jYiksIE5VTEwpOwotIAotICAgICBnX2RidXNfc2VydmVyX3N0 YXJ0IChzZXJ2ZXIpOwotIAotLS0gCi0yLjIxLjAKLQotRnJvbSBhMTQxYTE0MTAyZGEwMzhlM2Yz NTU1N2VjNDJlMTRlMzIyY2ZkZmYxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVq aXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAxMyBTZXAgMjAx OSAyMDoxOTozNiArMDkwMAotU3ViamVjdDogW1BBVENIXSBidXM6IFVzZSBYREdfUlVOVElNRV9E SVIgZm9yIFVuaXggc29ja2V0IGRpcmVjdG9yeQotCi1nX2RidXNfc2VydmVyX25ld19zeW5jKCkg aXMgZmFpbGVkIHdpdGggYWRkcmVzcyAidW5peDp0bXBkaXI9L3RtcC9pYnVzIgotaW4gQlNEIHN5 c3RlbXMgYmVjYXVzZSBCU0Qgc3lzdGVtcyBkbyBub3Qgc3VwcG9ydCBhYnN0cmFjdCBzb2NrZXQg ZmlsZXMKLWFuZCB1c2UgdGhlIHJlYWwgZmlsZXMgYnV0IG5vIGRpcmVjdG9yeSAiL3RtcC9pYnVz Ii4gTm93IHRoZSBkZWZhdWx0Ci1kaXJlY3Rvcnkgd2lsbCBiZSBhbiB1bmlxdWUgInVuaXg6dG1w ZGlyPSRYREdfUlVOVElNRV9ESVIvaWJ1cyIgYnkgdXNlcgotaW4gTGludXggYW5kICJ1bml4OnRt cGRpcj0vdG1wIiBpbiBCU0QgYW5kIG1rZGlyKCkgcnVucyB3aXRoIHRoZSBkaXJlY3RvcnkKLW1v ZGUgMDcwMCBub3QgdG8gbW9kaWZ5IGJ5IG1hbGljaW91cyB1c2Vycy4KLQotQlVHPWh0dHBzOi8v Z2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIxMTYKLS0tLQotIGJ1cy9nbG9iYWwuYyB8ICA2 ICsrLS0KLSBidXMvc2VydmVyLmMgfCA5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCi0gY29uZmlndXJlLmFjIHwgMjUgKysrKysrKysrKysrKwot IDMgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvYnVzL2dsb2JhbC5jIGIvYnVzL2dsb2JhbC5jCi1pbmRleCAyYmE4YjJhNy4u ODc1OGQ5MjMgMTAwNjQ0Ci0tLS0gYS9idXMvZ2xvYmFsLmMKLSsrKyBiL2J1cy9nbG9iYWwuYwot QEAgLTIsNyArMiw3IEBACi0gLyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBpYnVzIC0gVGhl IElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXdu LnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFJlZCBIYXQs IEluYy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCi0gICogQ29w eXJpZ2h0IChjKSAyMDEyIEdvb2dsZSwgSW5jLgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotQEAgLTIxLDEwICsy MSwxMiBAQAotICAqIFVTQQotICAqLwotIAotKyNpbmNsdWRlIDxjb25maWcuaD4KLSsKLSAjaW5j bHVkZSAiZ2xvYmFsLmgiCi0gCi0gZ2NoYXIgKipnX2FyZ3YgPSBOVUxMOwotLWdjaGFyICpnX2Fk ZHJlc3MgPSAidW5peDp0bXBkaXI9L3RtcC9pYnVzIjsKLStnY2hhciAqZ19hZGRyZXNzID0gSUJV U19TT0NLRVRfRElSOwotIGdjaGFyICpnX2NhY2hlID0gImF1dG8iOwotIGdib29sZWFuIGdfbWVt cHJvID0gRkFMU0U7Ci0gZ2Jvb2xlYW4gZ192ZXJib3NlID0gRkFMU0U7Ci1kaWZmIC0tZ2l0IGEv YnVzL3NlcnZlci5jIGIvYnVzL3NlcnZlci5jCi1pbmRleCAyNDM5ZGUxNC4uZDljMzBlNDQgMTAw NjQ0Ci0tLS0gYS9idXMvc2VydmVyLmMKLSsrKyBiL2J1cy9zZXJ2ZXIuYwotQEAgLTIyLDYgKzIy LDggQEAKLSAgKi8KLSAjaW5jbHVkZSAic2VydmVyLmgiCi0gCi0rI2luY2x1ZGUgPGVycm5vLmg+ Ci0rI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+Ci0gI2luY2x1ZGUgPGdpby9naW8uaD4KLSAjaW5j bHVkZSA8c3RkbGliLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotQEAgLTE4MCwyOCArMTgyLDEw MiBAQCBidXNfYWNxdWlyZWRfaGFuZGxlciAoR0RCdXNDb25uZWN0aW9uICAgICAgICpjb25uZWN0 aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSB9Ci0gCi0rc3RhdGlj IGdjaGFyICoKLStfYnVzX2V4dHJhY3RfYWRkcmVzcyAodm9pZCkKLSt7Ci0rICAgIGdjaGFyICpz b2NrZXRfYWRkcmVzcyA9IGdfc3RyZHVwIChnX2FkZHJlc3MpOwotKyAgICBnY2hhciAqcDsKLSsK LSsjZGVmaW5lIElGX1JFUExBQ0VfVkFSSUFCTEVfV0lUSF9GVU5DKHZhcmlhYmxlLCBmdW5jLCBm b3JtYXQpICAgICAgICAgICBcCi0rICAgIGlmICgocCA9IGdfc3Ryc3RyX2xlbiAoc29ja2V0X2Fk ZHJlc3MsIC0xLCAodmFyaWFibGUpKSkpIHsgICAgICAgICAgXAotKyAgICAgICAgZ2NoYXIgKnN1 YjEgPSBnX3N0cm5kdXAgKHNvY2tldF9hZGRyZXNzLCBwIC0gc29ja2V0X2FkZHJlc3MpOyAgIFwK LSsgICAgICAgIGdjaGFyICpzdWIyID0gZ19zdHJkdXAgKHAgKyBzdHJsZW4gKHZhcmlhYmxlKSk7 ICAgICAgICAgICAgICAgICBcCi0rICAgICAgICBnY2hhciAqdG1wID0gZ19zdHJkdXBfcHJpbnRm ICgiJXMiIGZvcm1hdCAiJXMiLCAgICAgICAgICAgICAgICAgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3ViMSwgKGZ1bmMpICgpLCBzdWIyKTsgICAgICAgICAgIFwK LSsgICAgICAgIGdfZnJlZSAoc3ViMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgICAgICBnX2ZyZWUgKHN1YjIpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICAgZ19mcmVlIChz b2NrZXRfYWRkcmVzcyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK LSsgICAgICAgIHNvY2tldF9hZGRyZXNzID0gdG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCi0rICAgIH0KLSsKLSsgICAgSUZfUkVQTEFDRV9WQVJJQUJMRV9X SVRIX0ZVTkMgKCIkWERHX1JVTlRJTUVfRElSIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfZ2V0X3VzZXJfcnVudGltZV9kaXIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiJXMiKQotKyAgICBlbHNlCi0rICAgIElGX1JFUExBQ0VfVkFSSUFCTEVf V0lUSF9GVU5DICgiJFhER19DQUNIRV9IT01FIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfZ2V0X3VzZXJfY2FjaGVfZGlyLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIiVzIikKLSsgICAgZWxzZQotKyAgICBJRl9SRVBMQUNFX1ZBUklBQkxFX1dJ VEhfRlVOQyAoIiRVSUQiLCBnZXR1aWQsICIlZCIpCi0rCi0rI3VuZGVmIElGX1JFUExBQ0VfVkFS SUFCTEVfV0lUSF9GVU5DCi0rCi0rICAgIHJldHVybiBzb2NrZXRfYWRkcmVzczsKLSt9Ci0rCi0g dm9pZAotIGJ1c19zZXJ2ZXJfaW5pdCAodm9pZCkKLSB7Ci0tICAgIEdFcnJvciAqZXJyb3IgPSBO VUxMOwotKyNkZWZpbmUgSUJVU19VTklYX1RNUERJUiAgICAgICAgInVuaXg6dG1wZGlyPSIKLSsj ZGVmaW5lIElCVVNfVU5JWF9QQVRIICAgICAgICAgICJ1bml4OnBhdGg9IgotKyNkZWZpbmUgSUJV U19VTklYX0FCU1RSQUNUICAgICAgInVuaXg6YWJzdHJhY3Q9IgotKyNkZWZpbmUgSUJVU19VTklY X0RJUiAgICAgICAgICAgInVuaXg6ZGlyPSIKLSsKLSsgICAgZ2NoYXIgKnNvY2tldF9hZGRyZXNz OwotICAgICBHREJ1c1NlcnZlckZsYWdzIGZsYWdzID0gR19EQlVTX1NFUlZFUl9GTEFHU19OT05F OwotICAgICBnY2hhciAqZ3VpZDsKLSAgICAgR0RCdXNBdXRoT2JzZXJ2ZXIgKm9ic2VydmVyOwot KyAgICBHRXJyb3IgKmVycm9yID0gTlVMTDsKLSsgICAgZ2NoYXIgKnVuaXhfZGlyID0gTlVMTDsK LSAKLSAgICAgZGJ1cyA9IGJ1c19kYnVzX2ltcGxfZ2V0X2RlZmF1bHQgKCk7Ci0gICAgIGlidXMg PSBidXNfaWJ1c19pbXBsX2dldF9kZWZhdWx0ICgpOwotICAgICBidXNfZGJ1c19pbXBsX3JlZ2lz dGVyX29iamVjdCAoZGJ1cywgKElCdXNTZXJ2aWNlICopaWJ1cyk7Ci0gCi0gICAgIC8qIGluaXQg c2VydmVyICovCi0rICAgIHNvY2tldF9hZGRyZXNzID0gX2J1c19leHRyYWN0X2FkZHJlc3MgKCk7 Ci0rCi0rI2RlZmluZSBJRl9HRVRfVU5JWF9ESVIocHJlZml4KSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBpZiAoZ19zdHJfaGFzX3ByZWZpeCAoc29ja2V0 X2FkZHJlc3MsIChwcmVmaXgpKSkgeyAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgIHVuaXhf ZGlyID0gZ19zdHJkdXAgKHNvY2tldF9hZGRyZXNzICsgc3RybGVuIChwcmVmaXgpKTsgICAgICAg ICBcCi0rICAgIH0KLSsKLSsgICAgSUZfR0VUX1VOSVhfRElSIChJQlVTX1VOSVhfVE1QRElSKQot KyAgICBlbHNlCi0rICAgIElGX0dFVF9VTklYX0RJUiAoSUJVU19VTklYX1BBVEgpCi0rICAgIGVs c2UKLSsgICAgSUZfR0VUX1VOSVhfRElSIChJQlVTX1VOSVhfQUJTVFJBQ1QpCi0rICAgIGVsc2UK LSsgICAgSUZfR0VUX1VOSVhfRElSIChJQlVTX1VOSVhfRElSKQotKyAgICBlbHNlIHsKLSsgICAg ICAgIGdfZXJyb3IgKCJZb3VyIHNvY2tldCBhZGRyZXNzIFwiJXNcIiBkb2VzIG5vdCBjb3JyZXNw b25kIHdpdGggIgotKyAgICAgICAgICAgICAgICAgIm9uZSBvZiB0aGUgZm9sbG93aW5nIGZvcm1h dHM7ICIKLSsgICAgICAgICAgICAgICAgIElCVVNfVU5JWF9UTVBESVIgIkRJUiwgIiBJQlVTX1VO SVhfUEFUSCAiRklMRSwgIgotKyAgICAgICAgICAgICAgICAgSUJVU19VTklYX0FCU1RSQUNUICJG SUxFLCAiIElCVVNfVU5JWF9ESVIgIkRJUi4iLAotKyAgICAgICAgICAgICAgICAgc29ja2V0X2Fk ZHJlc3MpOwotKyAgICB9Ci0rICAgIGlmICghZ19maWxlX3Rlc3QgKHVuaXhfZGlyLCBHX0ZJTEVf VEVTVF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSB7Ci0rICAgICAgICAvKiBSZXF1aXJl IG1rZGlyIGZvciBCU0Qgc3lzdGVtLiAqLwotKyAgICAgICAgaWYgKGdfbWtkaXJfd2l0aF9wYXJl bnRzICh1bml4X2RpciwgMCkgIT0gMCkgewotKyAgICAgICAgICAgIGdfZXJyb3IgKCJta2RpciBp cyBmYWlsZWQgaW46ICVzOiAlcyIsCi0rICAgICAgICAgICAgICAgICAgICAgdW5peF9kaXIsIGdf c3RyZXJyb3IgKGVycm5vKSk7Ci0rICAgICAgICB9Ci0rICAgICAgICAvKiBUaGUgbW9kZSAwNzAw IGNhbiBlbGltaW5hdGUgbWFsaWNpb3VzIHVzZXJzIGNoYW5nZSB0aGUgbW9kZS4KLSsgICAgICAg ICAqIGBjaG1vZGAgcnVucyBmb3IgdGhlIGxhc3QgZGlyZWN0b3J5IG9ubHkgbm90IHRvIGNoYW5n ZSB0aGUgbW9kZXMKLSsgICAgICAgICAqIG9mIHRoZSBwYXJlbnQgZGlyZWN0b3JpZXMuIEUuZy4g Ii90bXAvaWJ1cyIuCi0rICAgICAgICAgKi8KLSsgICAgICAgIGlmIChnX2NobW9kICh1bml4X2Rp ciwgMDcwMCkgIT0gMCkgewotKyAgICAgICAgICAgIGdfZXJyb3IgKCJjaG1vZCg3MDApIGlzIGZh aWxlZCBpbjogJXM6ICVzIiwKLSsgICAgICAgICAgICAgICAgICAgICB1bml4X2RpciwgZ19zdHJl cnJvciAoZXJybm8pKTsKLSsgICAgICAgIH0KLSsgICAgfQotKyAgICBnX2ZyZWUgKHVuaXhfZGly KTsKLSAgICAgZ3VpZCA9IGdfZGJ1c19nZW5lcmF0ZV9ndWlkICgpOwotICAgICBvYnNlcnZlciA9 IGdfZGJ1c19hdXRoX29ic2VydmVyX25ldyAoKTsKLS0gICAgaWYgKCFnX3N0cl9oYXNfcHJlZml4 IChnX2FkZHJlc3MsICJ1bml4OnRtcGRpcj0iKSAmJgotLSAgICAgICAgIWdfc3RyX2hhc19wcmVm aXggKGdfYWRkcmVzcywgInVuaXg6cGF0aD0iKSkgewotLSAgICAgICAgZ19lcnJvciAoIllvdXIg c29ja2V0IGFkZHJlc3MgZG9lcyBub3QgaGF2ZSB0aGUgZm9ybWF0IHVuaXg6dG1wZGlyPSRESVIg IgotLSAgICAgICAgICAgICAgICAgIm9yIHVuaXg6cGF0aD0kRklMRTsgJXMiLCBnX2FkZHJlc3Mp OwotLSAgICB9Ci0gICAgIHNlcnZlciA9ICBnX2RidXNfc2VydmVyX25ld19zeW5jICgKLS0gICAg ICAgICAgICAgICAgICAgIGdfYWRkcmVzcywgLyogdGhlIHBsYWNlIHdoZXJlIHRoZSBzb2NrZXQg ZmlsZSBsaXZlcywgZS5nLiAvdG1wLCBhYnN0cmFjdCBuYW1lc3BhY2UsIGV0Yy4gKi8KLSsgICAg ICAgICAgICAgICAgICAgIC8qIHRoZSBwbGFjZSB3aGVyZSB0aGUgc29ja2V0IGZpbGUgbGl2ZXMs IGUuZy4gL3RtcCwKLSsgICAgICAgICAgICAgICAgICAgICAqIGFic3RyYWN0IG5hbWVzcGFjZSwg ZXRjLiAqLwotKyAgICAgICAgICAgICAgICAgICAgc29ja2V0X2FkZHJlc3MsCi0gICAgICAgICAg ICAgICAgICAgICBmbGFncywgZ3VpZCwKLSAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLAot ICAgICAgICAgICAgICAgICAgICAgTlVMTCAvKiBjYW5jZWxsYWJsZSAqLywKLUBAIC0yMDksOCAr Mjg1LDkgQEAgYnVzX3NlcnZlcl9pbml0ICh2b2lkKQotICAgICBpZiAoc2VydmVyID09IE5VTEwp IHsKLSAgICAgICAgIGdfZXJyb3IgKCJnX2RidXNfc2VydmVyX25ld19zeW5jKCkgaXMgZmFpbGVk IHdpdGggYWRkcmVzcyAlcyAiCi0gICAgICAgICAgICAgICAgICAiYW5kIGd1aWQgJXM6ICVzIiwK LS0gICAgICAgICAgICAgICAgIGdfYWRkcmVzcywgZ3VpZCwgZXJyb3ItPm1lc3NhZ2UpOwotKyAg ICAgICAgICAgICAgICAgc29ja2V0X2FkZHJlc3MsIGd1aWQsIGVycm9yLT5tZXNzYWdlKTsKLSAg ICAgfQotKyAgICBnX2ZyZWUgKHNvY2tldF9hZGRyZXNzKTsKLSAgICAgZ19mcmVlIChndWlkKTsK LSAKLSAgICAgZ19zaWduYWxfY29ubmVjdCAob2JzZXJ2ZXIsICJhbGxvdy1tZWNoYW5pc20iLAot QEAgLTIzNSw2ICszMTIsMTIgQEAgYnVzX3NlcnZlcl9pbml0ICh2b2lkKQotICAgICAgICAgICAg ICAgICAgICAgR19CVVNfTkFNRV9PV05FUl9GTEFHU19OT05FLAotICAgICAgICAgICAgICAgICAg ICAgYnVzX2FjcXVpcmVkX2hhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxM LCBOVUxMLCBOVUxMKTsKLSsKLSsjdW5kZWYgSUZfR0VUX1VOSVhfRElSCi0rI3VuZGVmIElCVVNf VU5JWF9UTVBESVIKLSsjdW5kZWYgSUJVU19VTklYX1BBVEgKLSsjdW5kZWYgSUJVU19VTklYX0FC U1RSQUNUCi0rI3VuZGVmIElCVVNfVU5JWF9ESVIKLSB9Ci0gCi0gY29uc3QgZ2NoYXIgKgotZGlm ZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggYzQ3ZTIzZGMuLjBj MWVlNDBlIDEwMDY0NAotLS0tIGEvY29uZmlndXJlLmFjCi0rKysgYi9jb25maWd1cmUuYWMKLUBA IC03MDIsNiArNzAyLDMwIEBAIHRoZSBVQ0QgZmlsZXMgZnJvbSBodHRwczovL3d3dy51bmljb2Rl Lm9yZy9QdWJsaWMvVU5JREFUQS8pCi0gICAgIGVuYWJsZV91bmljb2RlX2RpY3Q9InllcyAoZW5h YmxlZCwgdXNlIC0tZGlzYWJsZS11bmljb2RlLWRpY3QgdG8gZGlzYWJsZSkiCi0gZmkKLSAKLStB Q19BUkdfV0lUSChzb2NrZXQtZGlyLAotKyAgICBBU19IRUxQX1NUUklORyhbLS13aXRoLXNvY2tl dC1kaXJbPURJUl1dLAotKyAgICAgICAgW1NldCB0aGUgZGVmYXVsdCBzb2NrZXQgZGlyZWN0b3J5 IHRvIGNvbm5lY3QgaWJ1cy1kYWVtb24gd2l0aCBELUJ1cwotKyAgICAgICAgIGNvbm5lY3Rpb25z IChkZWZhdWx0OiAiJFhER19SVU5USU1FX0RJUi9pYnVzIikuCi0rICAgICAgICAgVGhlIGJlc3Qg cHJhY3RpY2Ugb2YgdGhlIHNvY2tldCBkaXJlY3Rvcnkgd291bGQgYmUgdW5pcXVlIHBlciB1c2Vy Ci0rICAgICAgICAgbm90IHRvIG1vZGlmeSBieSBtYWxpY2lvdXMgdXNlcnMgYnV0IFhER19SVU5U SU1FX0RJUiBpcyBub3QgaW50ZWdyYXRlZAotKyAgICAgICAgIGluIEJTRCBzeXN0ZW1zIGFuZCB0 aGUgQlNEJ3MgZGVmYXVsdCBpcyAiL3RtcCIuCi0rICAgICAgICAgIiRYREdfUlVNVElNRV9ESVIi LCAiJFhER19DQUNIRV9IT01FIiwgIiRVSUQiIGFyZSBleHRyYWN0ZWQgYnkKLSsgICAgICAgICBp YnVzLWRhZW1vbi4KLSsgICAgICAgICBpYnVzLWRhZW1vbiBhbHNvIHJ1bnMgbWtkaXIgZm9yIHRo ZSBzb2NrZXQgZGlyZWN0b3J5IHNpbmNlIEJTRAotKyAgICAgICAgIHN5c3RlbXMgZG8gbm90IHN1 cHBvcnQgYWJzdHJhY3Qgc29ja2V0IHBhdGhzLgotKyAgICAgICAgIFRoZSBzb2NrZXQgcGF0aCBv biBhIE5GUyBtb3VudCB3b3VsZCBub3QgYmUgYSBnb29kIGlkZWEgbGlrZXMKLSsgICAgICAgICAi L2hvbWUvJFVTRVIiIGJlY2F1c2UgdGhlIGRpcmVjdG9yeSBpcyBub3Qgc29tZXRpbWVzIGFjY2Vz c2libGUKLSsgICAgICAgICB3aXRoIHRoZSBuZXR3b3JrIGNvbmRpdGlvbi5dKSwKLSsgICAgW0lC VVNfU09DS0VUX0RJUj0kd2l0aF9zb2NrZXRfZGlyXSwKLSsgICAgW2Nhc2UgJGhvc3QgaW4KLSsg ICAgICAgICAqbGludXgqKSBJQlVTX1NPQ0tFVF9ESVI9J3VuaXg6dG1wZGlyPSRYREdfUlVOVElN RV9ESVIvaWJ1cyc7OwotKyAgICAgICAgICopICAgICAgIElCVVNfU09DS0VUX0RJUj0ndW5peDp0 bXBkaXI9L3RtcCc7OwotKyAgICAgZXNhY10KLSsKLSspCi0rQUNfREVGSU5FX1VOUVVPVEVEKElC VVNfU09DS0VUX0RJUiwgIiRJQlVTX1NPQ0tFVF9ESVIiLAotKyAgICAgICAgICAgICAgICAgICBb VGhlIGRlZmF1bHQgc29ja2V0IGRpcmVjdG9yeSB0byBjb25uZWN0IGlidXMtZGFlbW9uLl0pCi0r Ci0gIyBDaGVjayBpc28tY29kZXMuCi0gUEtHX0NIRUNLX01PRFVMRVMoSVNPQ09ERVMsIFsKLSAg ICAgaXNvLWNvZGVzCi1AQCAtNzkzLDYgKzgxNyw3IEBAIEJ1aWxkIG9wdGlvbnM6Ci0gICBDTERS IGFubm90YXRpb24gZGlyZWN0b3J5ICAgICAkRU1PSklfQU5OT1RBVElPTl9ESVIKLSAgIEVuYWJs ZSBVbmljb2RlIGRpY3QgICAgICAgICAgICRlbmFibGVfdW5pY29kZV9kaWN0Ci0gICBVQ0QgZGly ZWN0b3J5ICAgICAgICAgICAgICAgICAkVUNEX0RJUgotKyAgU29ja2V0IGRpcmVjdG9yeSAgICAg ICAgICAgICAgIiRJQlVTX1NPQ0tFVF9ESVIiCi0gICBSdW4gdGVzdCBjYXNlcyAgICAgICAgICAg ICAgICAkZW5hYmxlX3Rlc3RzCi0gICBJbnN0YWxsIHRlc3RzICAgICAgICAgICAgICAgICAkZW5h YmxlX2luc3RhbGxfdGVzdHMKLSBdKQotLS0gCi0yLjIxLjAKLQotRnJvbSA3NzM0MjBmYWQyMzA3 OGNlZWY4M2U4YWU4NGJiYTRlMTM5ZDBiZWEzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVGh1LCAxOSBT ZXAgMjAxOSAxNzowOTo0NiArMDkwMAotU3ViamVjdDogW1BBVENIXSBzcmM6IEZpeCB0byBhbGxv Y2F0ZSBjb21wb3NlIG91dHB1dCBidWZmZXIgd2l0aCBtb3JlIHRoYW4gdHdvCi0gY2hhcnMKLQot SWYgdGhlIGNvbXBvc2Ugb3V0cHV0IGNoYXJzIGFyZSBtb3JlIHRoYW4gdHdvLCBJQnVzQ29tcG9z ZSBjYWxscwotZ19yZW5ldygpIGJ1dCB0aGUgc2l6ZSBpcyBub3QgZW5vdWdoIHRvIGluc2VydCAn XDAnLgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjEyMwotLS0t Ci0gc3JjL2lidXNjb21wb3NldGFibGUuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9zZXRh YmxlLmMgYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi1pbmRleCA1ZmQzN2YxMC4uZGQ5ZDMxZDQg MTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi0rKysgYi9zcmMvaWJ1c2NvbXBv c2V0YWJsZS5jCi1AQCAtMTQ4LDcgKzE0OCw3IEBAIHBhcnNlX2NvbXBvc2VfdmFsdWUgKElCdXND b21wb3NlRGF0YSAgKmNvbXBvc2VfZGF0YSwKLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgICAgICBjb21wb3NlX2RhdGEtPnZhbHVlcyA9IGdfcmVuZXcgKGd1bmljaGFyLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvc2VfZGF0 YS0+dmFsdWVzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5fdWNoYXJzICsgMSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbl91Y2hhcnMgKyAyKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg Y29tcG9zZV9kYXRhLT52YWx1ZXNbbl91Y2hhcnMrK10gPSAqdXA7Ci0gICAgICAgICB9Ci0tLSAK LTIuMjEuMAotCi1Gcm9tIDU3NDJlMWIzOTllNWQ1MGYzNGYzNWIxY2RhNzRlNTQ4Yjk1NTU0ZGEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDIgT2N0IDIwMTkgMTY6NDE6MjcgKzA5MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gUmV2ZXJ0IFhER19SVU5USU1FX0RJUiB0byBYREdfQ09ORklHX0hPTUUKLQot U29tZSB1c2VycyBmYWlsZWQgdG8gcnVuIGlidXMtZGFlbW9uIHdpdGggWERHX1JVTlRJTUVfRElS IGJlY2F1c2UKLXRoZSBkaXJlY3RvcnkgaXMgbm90IGNyZWF0ZWQgYnkgYHN1YCBjb21tYW5kLgot Tm93IHRoZSBJQnVzIHNvY2tldCBmaWxlcyB3aWxsIGJlIGdlbmVyYXRlZCBpbiBYREdfQ0FDSEVf SE9NRS4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIxMzUKLS0t LQotIGNvbmZpZ3VyZS5hYyAgICB8IDYgKysrKy0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9j b25maWd1cmUuYWMKLWluZGV4IDBjMWVlNDBlLi44NDU4OWJlMCAxMDA2NDQKLS0tLSBhL2NvbmZp Z3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNzA1LDEwICs3MDUsMTIgQEAgZmkKLSBB Q19BUkdfV0lUSChzb2NrZXQtZGlyLAotICAgICBBU19IRUxQX1NUUklORyhbLS13aXRoLXNvY2tl dC1kaXJbPURJUl1dLAotICAgICAgICAgW1NldCB0aGUgZGVmYXVsdCBzb2NrZXQgZGlyZWN0b3J5 IHRvIGNvbm5lY3QgaWJ1cy1kYWVtb24gd2l0aCBELUJ1cwotLSAgICAgICAgIGNvbm5lY3Rpb25z IChkZWZhdWx0OiAiJFhER19SVU5USU1FX0RJUi9pYnVzIikuCi0rICAgICAgICAgY29ubmVjdGlv bnMgKGRlZmF1bHQ6ICIkWERHX0NBQ0hFX0hPTUUvaWJ1cyIpLgotICAgICAgICAgIFRoZSBiZXN0 IHByYWN0aWNlIG9mIHRoZSBzb2NrZXQgZGlyZWN0b3J5IHdvdWxkIGJlIHVuaXF1ZSBwZXIgdXNl cgotICAgICAgICAgIG5vdCB0byBtb2RpZnkgYnkgbWFsaWNpb3VzIHVzZXJzIGJ1dCBYREdfUlVO VElNRV9ESVIgaXMgbm90IGludGVncmF0ZWQKLSAgICAgICAgICBpbiBCU0Qgc3lzdGVtcyBhbmQg dGhlIEJTRCdzIGRlZmF1bHQgaXMgIi90bXAiLgotKyAgICAgICAgIFhER19SVU1USU1FX0RJUiBp cyBub3QgdXNlZnVsIG5vdyBiZWNhdXNlIFhER19SVU1USU1FX0RJUiBpcyBhdmFpbGFibGUKLSsg ICAgICAgICBieSBsb2dpbiBidXQgbm90IGBzdWAgY29tbWFuZCBidXQgaWJ1cy1kYWVtb24gY2Fu IGJlIHJ1biB3aXRoIHN1LgotICAgICAgICAgICIkWERHX1JVTVRJTUVfRElSIiwgIiRYREdfQ0FD SEVfSE9NRSIsICIkVUlEIiBhcmUgZXh0cmFjdGVkIGJ5Ci0gICAgICAgICAgaWJ1cy1kYWVtb24u Ci0gICAgICAgICAgaWJ1cy1kYWVtb24gYWxzbyBydW5zIG1rZGlyIGZvciB0aGUgc29ja2V0IGRp cmVjdG9yeSBzaW5jZSBCU0QKLUBAIC03MTgsNyArNzIwLDcgQEAgQUNfQVJHX1dJVEgoc29ja2V0 LWRpciwKLSAgICAgICAgICB3aXRoIHRoZSBuZXR3b3JrIGNvbmRpdGlvbi5dKSwKLSAgICAgW0lC VVNfU09DS0VUX0RJUj0kd2l0aF9zb2NrZXRfZGlyXSwKLSAgICAgW2Nhc2UgJGhvc3QgaW4KLS0g ICAgICAgICAqbGludXgqKSBJQlVTX1NPQ0tFVF9ESVI9J3VuaXg6dG1wZGlyPSRYREdfUlVOVElN RV9ESVIvaWJ1cyc7OwotKyAgICAgICAgICpsaW51eCopIElCVVNfU09DS0VUX0RJUj0ndW5peDp0 bXBkaXI9JFhER19DQUNIRV9IT01FL2lidXMnOzsKLSAgICAgICAgICAqKSAgICAgICBJQlVTX1NP Q0tFVF9ESVI9J3VuaXg6dG1wZGlyPS90bXAnOzsKLSAgICAgIGVzYWNdCi0gCi0tLSAKLTIuMjEu MAotCi1Gcm9tIDM1ODYzZDgxZDE1ZTNkMzQ2M2NkNWRhZmQwNDczYWZiMTkzYzU3ZTMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+Ci1EYXRlOiBXZWQsIDMwIE9jdCAyMDE5IDE3OjI5OjI1ICswOTAwCi1TdWJqZWN0OiBb UEFUQ0hdIEZpeCBkZXByZWNhdGVkIEFQSXMKLQotLSBGaXggZGVwcmVjYXRlZCBndGtfbWlzY19z ZXRfcGFkZGluZygpLCBndGtfd2lkZ2V0X3NldF9tYXJnaW5fbGVmdCgpLAotICBndGtfd2lkZ2V0 X3NldF9tYXJnaW5fcmlnaHQoKSBpbiBlbW9qaWxhbmcucHksIGVuZ2luZWRpYWxvZy5weSwKLSAg c2V0dXAudWksIGNhbmRpZGF0ZWFyZWEudmFsYSwgY2FuZGlkYXRlcGFuZWwudmFsYSwgc3dpdGNo ZXIudmFsYQotICBzaW5jZSBHVEsgMy4xMgotCi0tIEZpeCBnX25ldzAoKSBhcmd1bWVudCAxIHJh bmdlIFsxODQ0Njc0NDA3MTU2MjA2Nzk2OCwgMTg0NDY3NDQwNzM3MDk1NTE2MTVdCi0gIGV4Y2Vl ZHMgbWF4aW11bSBvYmplY3Qgc2l6ZSA5MjIzMzcyMDM2ODU0Nzc1ODA3Ci0gIFstV2FsbG9jLXNp emUtbGFyZ2VyLXRoYW49XSBieSBhZGRpbmcgZ19hc3NlcnQoKSBpbiBpYnVzY29tcG9zZXRhYmxl LmMKLQotLSBGaXggZ2RrX2tleW1hcF9nZXRfZGVmYXVsdCgpIHdpdGggZ2RrX2tleW1hcF9nZXRf Zm9yX2Rpc3BsYXkoKSBpbgotICBiaW5kaW5nY29tbW9uLnZhbGEKLQotLSBGaXggc3RyaW5nLnV0 Zjhfb2Zmc2V0KCkgd2l0aCBzdHJpbmcubmV4dF9jaGFyKCkgaW4gZW1vamllci52YWxhCi0KLS0g Rml4IFBvc2l4LlNJR1VTUjEgd2l0aCBQb3NpeC5TaWduYWwuVVNSMSBpbiBwYW5lbC52YWxhCi0t LS0KLSBidXMvaWJ1c2ltcGwuYyAgICAgICAgICAgICAgfCAgMSArCi0gY29uZmlndXJlLmFjICAg ICAgICAgICAgICAgIHwgIDMgKystCi0gc2V0dXAvZW1vamlsYW5nLnB5ICAgICAgICAgIHwgMTQg KysrKysrKy0tLS0tLS0KLSBzZXR1cC9lbmdpbmVkaWFsb2cucHkgICAgICAgfCAxOCArKysrKysr KystLS0tLS0tLS0KLSBzZXR1cC9zZXR1cC51aSAgICAgICAgICAgICAgfCAzNCArKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL2lidXNjb21wb3NldGFibGUuYyAgICAgIHwg IDEgKwotIHVpL2d0azMvYmluZGluZ2NvbW1vbi52YWxhICB8ICA2ICsrKy0tLQotIHVpL2d0azMv Y2FuZGlkYXRlYXJlYS52YWxhICB8ICA5ICsrKysrLS0tLQotIHVpL2d0azMvY2FuZGlkYXRlcGFu ZWwudmFsYSB8IDEwICsrKysrLS0tLS0KLSB1aS9ndGszL2Vtb2ppZXIudmFsYSAgICAgICAgfCAg NCArKystCi0gdWkvZ3RrMy9wYW5lbC52YWxhICAgICAgICAgIHwgIDQgKystLQotIHVpL2d0azMv c3dpdGNoZXIudmFsYSAgICAgICB8ICA5ICsrKysrLS0tLQotIDEyIGZpbGVzIGNoYW5nZWQsIDYw IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYnVzL2lidXNp bXBsLmMgYi9idXMvaWJ1c2ltcGwuYwotaW5kZXggMzliMTYxMzkuLjg1NzYxZDMwIDEwMDY0NAot LS0tIGEvYnVzL2lidXNpbXBsLmMKLSsrKyBiL2J1cy9pYnVzaW1wbC5jCi1AQCAtMjE4MCw2ICsy MTgwLDcgQEAgYnVzX2lidXNfaW1wbF9yZWdpc3RyeV9kZXN0cm95IChCdXNJQnVzSW1wbCAqaWJ1 cykKLSAKLSAgICAgZ19jbGVhcl9wb2ludGVyICgmaWJ1cy0+ZW5naW5lX3RhYmxlLCBnX2hhc2hf dGFibGVfZGVzdHJveSk7Ci0gCi0rICAgIC8qIGdfY2xlYXJfcG9pbnRlcigpIGRvZXMgbm90IHNl dCB0aGUgY2FzdC4gKi8KLSAgICAgaWJ1c19vYmplY3RfZGVzdHJveSAoSUJVU19PQkpFQ1QgKGli dXMtPnJlZ2lzdHJ5KSk7Ci0gICAgIGlidXMtPnJlZ2lzdHJ5ID0gTlVMTDsKLSAKLWRpZmYgLS1n aXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4IDg0NTg5YmUwLi5hYjc0YTM4 MCAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29uZmlndXJlLmFjCi1AQCAtNTMs NiArNTMsNyBAQCBtNF9kZWZpbmUoW2lidXNfYmluYXJ5X3ZlcnNpb25dLAotIAotICMgUmVxdWly ZWQgdmVyc2lvbnMgb2Ygb3RoZXIgcGFja2FnZXMuCi0gbTRfZGVmaW5lKFtnbGliX3JlcXVpcmVk X3ZlcnNpb25dLCBbMi40Ni4wXSkKLSttNF9kZWZpbmUoW2d0azNfcmVxdWlyZWRfdmVyc2lvbl0s IFszLjEyLjBdKQotIAotICMgVkFMQV9UQVJHRVRfR0xJQl9WRVJTSU9OIGlzIHVzZWQgYnkgdmFs YWMgLS1jY29kZSAtLXRhcmdldC1nbGliIC4KLSAjIFZBTEFfVEFSR0VUX0dMSUJfVkVSU0lPTiBh bmQgZ2xpYl9yZXF1aXJlZF92ZXJzaW9uIHdpbGwgYmUgZGlmZmVyZW50Ci1AQCAtMjM4LDcgKzIz OSw3IEBAIGZpCi0gaWYgdGVzdCB4IiRlbmFibGVfZ3RrMyIgPSB4InllcyI7IHRoZW4KLSAgICAg IyBjaGVjayBmb3IgZ3RrMwotICAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhHVEszLCBbCi0tICAgICAg ICBndGsrLTMuMAotKyAgICAgICAgZ3RrKy0zLjAgPj0gZ3RrM19yZXF1aXJlZF92ZXJzaW9uCi0g ICAgIF0pCi0gICAgIFBLR19DSEVDS19FWElTVFMoW2dkay13YXlsYW5kLTMuMF0sCi0gICAgICAg ICBbZW5hYmxlX2dkazNfd2F5bGFuZD15ZXNdLAotZGlmZiAtLWdpdCBhL3NldHVwL2Vtb2ppbGFu Zy5weSBiL3NldHVwL2Vtb2ppbGFuZy5weQotaW5kZXggODI1MDU4OWQuLjU4NzU3ZDg2IDEwMDY0 NAotLS0tIGEvc2V0dXAvZW1vamlsYW5nLnB5Ci0rKysgYi9zZXR1cC9lbW9qaWxhbmcucHkKLUBA IC0zLDcgKzMsNyBAQAotICMKLSAjIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gIwotLSMgQ29weXJp Z2h0IChjKSAyMDE3IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgot KyMgQ29weXJpZ2h0IChjKSAyMDE3LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+Ci0gIyBDb3B5cmlnaHQgKGMpIDIwMTcgUmVkIEhhdCwgSW5jLgotICMKLSAj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKLUBAIC04Myw4ICs4Myw4IEBAIGNsYXNzIEVtb2ppTGFuZ0Nob29zZXIoR3RrLkRpYWxv Zyk6Ci0gICAgICAgICAgICAgICAgIGhzY3JvbGxiYXJfcG9saWN5ID0gR3RrLlBvbGljeVR5cGUu TkVWRVIsCi0gICAgICAgICAgICAgICAgIHZzY3JvbGxiYXJfcG9saWN5ID0gR3RrLlBvbGljeVR5 cGUuTkVWRVIsCi0gICAgICAgICAgICAgICAgIHNoYWRvd190eXBlID0gR3RrLlNoYWRvd1R5cGUu SU4sCi0tICAgICAgICAgICAgICAgIG1hcmdpbl9sZWZ0ID0gNiwKLS0gICAgICAgICAgICAgICAg bWFyZ2luX3JpZ2h0ID0gNiwKLSsgICAgICAgICAgICAgICAgbWFyZ2luX3N0YXJ0ID0gNiwKLSsg ICAgICAgICAgICAgICAgbWFyZ2luX2VuZCA9IDYsCi0gICAgICAgICAgICAgICAgIG1hcmdpbl90 b3AgPSA2LAotICAgICAgICAgICAgICAgICBtYXJnaW5fYm90dG9tID0gNikKLSAgICAgICAgIHNl bGYudmJveC5hZGQoc2VsZi5fX3Njcm9sbGVkKQotQEAgLTE5Miw4ICsxOTIsOCBAQCBjbGFzcyBF bW9qaUxhbmdDaG9vc2VyKEd0ay5EaWFsb2cpOgotICAgICAgICAgbGFiZWwgPSBHdGsuTGFiZWwo bGFiZWwgPSB0ZXh0KQotICAgICAgICAgbGFiZWwuc2V0X2hhbGlnbihhbGlnbm1lbnQpCi0gICAg ICAgICBsYWJlbC5zZXRfdmFsaWduKEd0ay5BbGlnbi5DRU5URVIpCi0tICAgICAgICBsYWJlbC5z ZXRfbWFyZ2luX2xlZnQoMjApCi0tICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX3JpZ2h0KDIwKQot KyAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9zdGFydCgyMCkKLSsgICAgICAgIGxhYmVsLnNldF9t YXJnaW5fZW5kKDIwKQotICAgICAgICAgbGFiZWwuc2V0X21hcmdpbl90b3AoNikKLSAgICAgICAg IGxhYmVsLnNldF9tYXJnaW5fYm90dG9tKDYpCi0gICAgICAgICBoYm94LnBhY2tfc3RhcnQobGFi ZWwsIFRydWUsIFRydWUsIDApCi1AQCAtMjM1LDggKzIzNSw4IEBAIGNsYXNzIEVtb2ppTGFuZ0No b29zZXIoR3RrLkRpYWxvZyk6Ci0gICAgICAgICByb3cuc2V0X3Rvb2x0aXBfdGV4dChfKCJNb3Jl 4oCmIikpCi0gICAgICAgICBhcnJvdyA9IEd0ay5JbWFnZS5uZXdfZnJvbV9pY29uX25hbWUoJ3Zp ZXctbW9yZS1zeW1ib2xpYycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR3RrLkljb25TaXplLk1FTlUpCi0tICAgICAgICBhcnJvdy5zZXRfbWFyZ2luX2xl ZnQoMjApCi0tICAgICAgICBhcnJvdy5zZXRfbWFyZ2luX3JpZ2h0KDIwKQotKyAgICAgICAgYXJy b3cuc2V0X21hcmdpbl9zdGFydCgyMCkKLSsgICAgICAgIGFycm93LnNldF9tYXJnaW5fZW5kKDIw KQotICAgICAgICAgYXJyb3cuc2V0X21hcmdpbl90b3AoNikKLSAgICAgICAgIGFycm93LnNldF9t YXJnaW5fYm90dG9tKDYpCi0gICAgICAgICBhcnJvdy5zZXRfaGFsaWduKEd0ay5BbGlnbi5DRU5U RVIpCi1kaWZmIC0tZ2l0IGEvc2V0dXAvZW5naW5lZGlhbG9nLnB5IGIvc2V0dXAvZW5naW5lZGlh bG9nLnB5Ci1pbmRleCAyYzQ3MmRlYi4uNzJkZWFkYTggMTAwNjQ0Ci0tLS0gYS9zZXR1cC9lbmdp bmVkaWFsb2cucHkKLSsrKyBiL3NldHVwL2VuZ2luZWRpYWxvZy5weQotQEAgLTQsNyArNCw3IEBA Ci0gIyBpYnVzIC0gVGhlIElucHV0IEJ1cwotICMKLSAjIENvcHlyaWdodCAoYykgMjAxNSBQZW5n IEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0jIENvcHlyaWdodCAoYykgMjAxNSBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsjIENvcHlyaWdodCAo YykgMjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgot ICMgQ29weXJpZ2h0IChjKSAyMDEzLTIwMTUgUmVkIEhhdCwgSW5jLgotICMKLSAjIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLUBA IC03MCw4ICs3MCw4IEBAIGNsYXNzIEVuZ2luZURpYWxvZyhHdGsuRGlhbG9nKToKLSAgICAgICAg ICAgICAgICAgaHNjcm9sbGJhcl9wb2xpY3kgPSBHdGsuUG9saWN5VHlwZS5ORVZFUiwKLSAgICAg ICAgICAgICAgICAgdnNjcm9sbGJhcl9wb2xpY3kgPSBHdGsuUG9saWN5VHlwZS5ORVZFUiwKLSAg ICAgICAgICAgICAgICAgc2hhZG93X3R5cGUgPSBHdGsuU2hhZG93VHlwZS5JTiwKLS0gICAgICAg ICAgICAgICAgbWFyZ2luX2xlZnQgPSA2LAotLSAgICAgICAgICAgICAgICBtYXJnaW5fcmlnaHQg PSA2LAotKyAgICAgICAgICAgICAgICBtYXJnaW5fc3RhcnQgPSA2LAotKyAgICAgICAgICAgICAg ICBtYXJnaW5fZW5kID0gNiwKLSAgICAgICAgICAgICAgICAgbWFyZ2luX3RvcCA9IDYsCi0gICAg ICAgICAgICAgICAgIG1hcmdpbl9ib3R0b20gPSA2KQotICAgICAgICAgc2VsZi52Ym94LmFkZChz ZWxmLl9fc2Nyb2xsZWQpCi1AQCAtOTQsOCArOTQsOCBAQCBjbGFzcyBFbmdpbmVEaWFsb2coR3Rr LkRpYWxvZyk6Ci0gICAgICAgICBzZWxmLl9fZmlsdGVyX3RpbWVvdXRfaWQgPSAwCi0gICAgICAg ICBzZWxmLl9fZmlsdGVyX3dvcmQgPSBOb25lCi0gICAgICAgICBzZWxmLl9fZmlsdGVyX2VudHJ5 ID0gR3RrLlNlYXJjaEVudHJ5KGhleHBhbmQgPSBUcnVlLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5fbGVmdCA9IDYsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbl9yaWdodCA9IDYsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbl9zdGFydCA9 IDYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdp bl9lbmQgPSA2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtYXJnaW5fdG9wID0gNiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWFyZ2luX2JvdHRvbSA9IDYpCi0gICAgICAgICBzZWxmLl9fZmlsdGVyX2VudHJ5 LnNldF9ub19zaG93X2FsbChUcnVlKQotQEAgLTE2NCw4ICsxNjQsOCBAQCBjbGFzcyBFbmdpbmVE aWFsb2coR3RrLkRpYWxvZyk6Ci0gICAgICAgICBsYWJlbCA9IEd0ay5MYWJlbChsYWJlbCA9IHRl eHQpCi0gICAgICAgICBsYWJlbC5zZXRfaGFsaWduKGFsaWdubWVudCkKLSAgICAgICAgIGxhYmVs LnNldF92YWxpZ24oR3RrLkFsaWduLkNFTlRFUikKLS0gICAgICAgIGxhYmVsLnNldF9tYXJnaW5f bGVmdCgyMCkKLS0gICAgICAgIGxhYmVsLnNldF9tYXJnaW5fcmlnaHQoMjApCi0rICAgICAgICBs YWJlbC5zZXRfbWFyZ2luX3N0YXJ0KDIwKQotKyAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9lbmQo MjApCi0gICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX3RvcCg2KQotICAgICAgICAgbGFiZWwuc2V0 X21hcmdpbl9ib3R0b20oNikKLSAgICAgICAgIGhib3gucGFja19zdGFydChsYWJlbCwgVHJ1ZSwg VHJ1ZSwgMCkKLUBAIC0yMDUsOCArMjA1LDggQEAgY2xhc3MgRW5naW5lRGlhbG9nKEd0ay5EaWFs b2cpOgotICAgICAgICAgcm93LnNldF90b29sdGlwX3RleHQoXygiTW9yZeKApiIpKQotICAgICAg ICAgYXJyb3cgPSBHdGsuSW1hZ2UubmV3X2Zyb21faWNvbl9uYW1lKCd2aWV3LW1vcmUtc3ltYm9s aWMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5J Y29uU2l6ZS5NRU5VKQotLSAgICAgICAgYXJyb3cuc2V0X21hcmdpbl9sZWZ0KDIwKQotLSAgICAg ICAgYXJyb3cuc2V0X21hcmdpbl9yaWdodCgyMCkKLSsgICAgICAgIGFycm93LnNldF9tYXJnaW5f c3RhcnQoMjApCi0rICAgICAgICBhcnJvdy5zZXRfbWFyZ2luX2VuZCgyMCkKLSAgICAgICAgIGFy cm93LnNldF9tYXJnaW5fdG9wKDYpCi0gICAgICAgICBhcnJvdy5zZXRfbWFyZ2luX2JvdHRvbSg2 KQotICAgICAgICAgYXJyb3cuc2V0X2hhbGlnbihHdGsuQWxpZ24uQ0VOVEVSKQotZGlmZiAtLWdp dCBhL3NldHVwL3NldHVwLnVpIGIvc2V0dXAvc2V0dXAudWkKLWluZGV4IDlkOWQ3ZWU5Li41NjQ1 MzA1NCAxMDA2NDQKLS0tLSBhL3NldHVwL3NldHVwLnVpCi0rKysgYi9zZXR1cC9zZXR1cC51aQot QEAgLTkwLDggKzkwLDggQEAKLSAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNwYWNp bmciPjE4PC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdp bl90b3AiPjEyPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1h cmdpbl9ib3R0b20iPjEyPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9Im1hcmdpbl9sZWZ0Ij4xMjwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgIDxwcm9wZXJ0 eSBuYW1lPSJtYXJnaW5fcmlnaHQiPjEyPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MTI8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAg ICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX2VuZCI+MTI8L3Byb3BlcnR5PgotICAgICAgICAgICAg ICAgICA8Y2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrRnJhbWUi IGlkPSJmcmFtZTMiPgotICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2li bGUiPlRydWU8L3Byb3BlcnR5PgotQEAgLTEwNSw3ICsxMDUsNyBAQAotICAgICAgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjb2x1bW5fc3BhY2luZyI+MTI8L3Byb3BlcnR5Pgot ICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyb3dfc3BhY2luZyI+Njwv cHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdp bl90b3AiPjY8L3Byb3BlcnR5PgotLSAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJtYXJnaW5fbGVmdCI+MTI8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQiPjEyPC9wcm9wZXJ0eT4KLSAgICAgICAgICAg ICAgICAgICAgICAgICA8Y2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0 IGNsYXNzPSJHdGtMYWJlbCIgaWQ9ImxhYmVsOCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KLUBAIC0zNjYsNyAr MzY2LDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY29sdW1u X3NwYWNpbmciPjEyPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0icm93X3NwYWNpbmciPjY8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9wIj42PC9wcm9wZXJ0eT4KLS0gICAgICAgICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX2xlZnQiPjEyPC9wcm9wZXJ0eT4K LSsgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3N0YXJ0Ij4x MjwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPGNoaWxkPgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrTGFiZWwiIGlkPSJsYWJlbDYiPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1 ZTwvcHJvcGVydHk+Ci1AQCAtNTg5LDggKzU4OSw4IEBACi0gICAgICAgICAgICAgICAgIDxwcm9w ZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPkZhbHNlPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9Im1hcmdpbl90b3AiPjEyPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9ib3R0b20iPjEyPC9wcm9wZXJ0eT4KLS0gICAgICAg ICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9sZWZ0Ij4xMjwvcHJvcGVydHk+Ci0tICAg ICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fcmlnaHQiPjEyPC9wcm9wZXJ0eT4K LSsgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MTI8L3Byb3Bl cnR5PgotKyAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX2VuZCI+MTI8L3By b3BlcnR5PgotICAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgPG9i amVjdCBjbGFzcz0iR3RrQm94IiBpZD0iaGJveDEiPgotICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9Im9yaWVudGF0aW9uIj5ob3Jpem9udGFsPC9wcm9wZXJ0eT4KLUBAIC02NTgs NyArNjU4LDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY2Fu X2ZvY3VzIj5GYWxzZTwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPHByb3Bl cnR5IG5hbWU9InNwYWNpbmciPjU8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJsYXlvdXRfc3R5bGUiPnN0YXJ0PC9wcm9wZXJ0eT4KLS0gICAgICAg ICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX2xlZnQiPjEyPC9wcm9wZXJ0 eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3N0YXJ0 Ij4xMjwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPGNoaWxkPgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrQnV0dG9uIiBpZD0iYnV0dG9u X2VuZ2luZV9hZGQiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFt ZT0ibGFiZWwiIHRyYW5zbGF0YWJsZT0ieWVzIj5fQWRkPC9wcm9wZXJ0eT4KLUBAIC04MTEsNyAr ODExLDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWF4X3dp ZHRoX2NoYXJzIj43NDwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPHByb3Bl cnR5IG5hbWU9ImxhYmVsIiB0cmFuc2xhdGFibGU9InllcyI+Jmx0O3NtYWxsJmd0OyZsdDtpJmd0 O1RoZSBhY3RpdmUgaW5wdXQgbWV0aG9kIGNhbiBiZSBzd2l0Y2hlZCBhcm91bmQgZnJvbSB0aGUg c2VsZWN0ZWQgb25lcyBpbiB0aGUgYWJvdmUgbGlzdCBieSBwcmVzc2luZyB0aGUga2V5Ym9hcmQg c2hvcnRjdXQga2V5cyBvciBjbGlja2luZyB0aGUgcGFuZWwgaWNvbi4mbHQ7L2kmZ3Q7Jmx0Oy9z bWFsbCZndDs8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJ1c2VfbWFya3VwIj5UcnVlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgICAg ICA8IS0tIHByb3BlcnR5IG5hbWU9Im1hcmdpbl9sZWZ0Ij4wPC9wcm9wZXJ0eSAtLT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICA8IS0tIHByb3BlcnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MDwv cHJvcGVydHkgLS0+Ci0gICAgICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0PgotICAgICAgICAg ICAgICAgICAgICAgICA8cGFja2luZz4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0iZXhwYW5kIj5UcnVlPC9wcm9wZXJ0eT4KLUBAIC04NTAsOCArODUwLDggQEAKLSAg ICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNwYWNpbmciPjE4PC9wcm9wZXJ0eT4KLSAg ICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl90b3AiPjEyPC9wcm9wZXJ0eT4K LSAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9ib3R0b20iPjEyPC9wcm9w ZXJ0eT4KLS0gICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9sZWZ0Ij4xMjwv cHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fcmlnaHQi PjEyPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9z dGFydCI+MTI8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFy Z2luX2VuZCI+MTI8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci0gICAgICAg ICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrRnJhbWUiIGlkPSJmcmFtZV9lbW9qaTEiPgot ICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3Bl cnR5PgotQEAgLTg2NSw3ICs4NjUsNyBAQAotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9w ZXJ0eSBuYW1lPSJjb2x1bW5fc3BhY2luZyI+MTI8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyb3dfc3BhY2luZyI+NjwvcHJvcGVydHk+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl90b3AiPjY8L3Byb3Bl cnR5PgotLSAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fbGVm dCI+MTI8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJtYXJnaW5fc3RhcnQiPjEyPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8 Y2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJHdGtMYWJl bCIgaWQ9ImxhYmVsX2Vtb2ppMSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9w ZXJ0eSBuYW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KLUBAIC0xMDA0LDcgKzEwMDQsNyBA QAotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjb2x1bW5fc3BhY2lu ZyI+MTI8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJyb3dfc3BhY2luZyI+NjwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9Im1hcmdpbl90b3AiPjY8L3Byb3BlcnR5PgotLSAgICAgICAgICAgICAgICAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fbGVmdCI+MTI8L3Byb3BlcnR5PgotKyAgICAg ICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQiPjEyPC9wcm9w ZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0icm93X2hvbW9n ZW5lb3VzIj5mYWxzZTwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPGNoaWxk PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrTGFiZWwiIGlk PSJsYWJlbF9lbW9qaV9mb250Ij4KLUBAIC0xMTg3LDggKzExODcsOCBAQAotICAgICAgICAgICAg ICAgICA8cHJvcGVydHkgbmFtZT0iY2FuX2ZvY3VzIj5GYWxzZTwvcHJvcGVydHk+Ci0gICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9wIj4xMjwvcHJvcGVydHk+Ci0gICAg ICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fYm90dG9tIj4xMjwvcHJvcGVydHk+ Ci0tICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fbGVmdCI+MTI8L3Byb3Bl cnR5PgotLSAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3JpZ2h0Ij4xMjwv cHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQi PjEyPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9l bmQiPjEyPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgPGNoaWxkPgotICAgICAgICAgICAg ICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0ZyYW1lIiBpZD0iZnJhbWUyIj4KLSAgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KLUBAIC0x MjAyLDcgKzEyMDIsNyBAQAotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJjYW5fZm9jdXMiPkZhbHNlPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8 cHJvcGVydHkgbmFtZT0ic3BhY2luZyI+NjwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl90b3AiPjY8L3Byb3BlcnR5PgotLSAgICAgICAg ICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fbGVmdCI+MjQ8L3Byb3BlcnR5 PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQi PjI0PC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJHdGtDaGVja0J1dHRvbiIgaWQ9ImNo ZWNrYnV0dG9uX3VzZV9zeXNfbGF5b3V0Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9ImxhYmVsIiB0cmFuc2xhdGFibGU9InllcyI+VXNlIHN5c3RlbSBrZXli b2FyZCBsYXlvdXQ8L3Byb3BlcnR5PgotQEAgLTEyNTEsNyArMTI1MSw3IEBACi0gICAgICAgICAg ICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNhbl9mb2N1cyI+RmFsc2U8L3Byb3BlcnR5 PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzcGFjaW5nIj42PC9w cm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2lu X3RvcCI+NjwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9Im1hcmdpbl9sZWZ0Ij4yNDwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MjQ8L3Byb3BlcnR5PgotICAgICAgICAgICAg ICAgICAgICAgICAgIDxjaGlsZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3Qg Y2xhc3M9Ikd0a0NoZWNrQnV0dG9uIiBpZD0iY2hlY2tidXR0b25fdXNlX2dsb2JhbF9lbmdpbmUi PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFiZWwiIHRy YW5zbGF0YWJsZT0ieWVzIj5TaGFyZSB0aGUgc2FtZSBpbnB1dCBtZXRob2QgYW1vbmcgYWxsIGFw cGxpY2F0aW9uczwvcHJvcGVydHk+Ci1AQCAtMTM0OCw3ICsxMzQ4LDcgQEAgSG9tZXBhZ2U6IGh0 dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvd2lraQotICAgICAgICAgICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJoYWxpZ24iPnN0YXJ0PC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iZHJhd19pbmRpY2F0b3IiPlRydWU8L3Byb3BlcnR5 PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9wIj42 PC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFy Z2luX2xlZnQiPjEyPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0ibWFyZ2luX3N0YXJ0Ij4xMjwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAg ICAgIDwvb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICAgPC9jaGlsZD4KLSAgICAgICAgICAg ICAgICAgICAgIDxjaGlsZCB0eXBlPSJsYWJlbCI+Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNjb21w b3NldGFibGUuYyBiL3NyYy9pYnVzY29tcG9zZXRhYmxlLmMKLWluZGV4IGRkOWQzMWQ0Li5lNGUz YTdjZCAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzY29tcG9zZXRhYmxlLmMKLSsrKyBiL3NyYy9pYnVz Y29tcG9zZXRhYmxlLmMKLUBAIC0xMDU4LDYgKzEwNTgsNyBAQCBpYnVzX2NvbXBvc2VfdGFibGVf bGlzdF9hZGRfYXJyYXkgKEdTTGlzdCAgICAgICAgKmNvbXBvc2VfdGFibGVzLAotICAgICBpbnQg aTsKLSAgICAgZ3VpbnQxNiAqaWJ1c19jb21wb3NlX3NlcXMgPSBOVUxMOwotIAotKyAgICBnX2Fz c2VydCAobGVuZ3RoID49IDApOwotICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoZGF0YSAhPSBO VUxMLCBjb21wb3NlX3RhYmxlcyk7Ci0gICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChtYXhfc2Vx X2xlbiA8PSBJQlVTX01BWF9DT01QT1NFX0xFTiwgY29tcG9zZV90YWJsZXMpOwotIAotZGlmZiAt LWdpdCBhL3VpL2d0azMvYmluZGluZ2NvbW1vbi52YWxhIGIvdWkvZ3RrMy9iaW5kaW5nY29tbW9u LnZhbGEKLWluZGV4IDQxNzFmMjlkLi4xNTBkNGMzOSAxMDA2NDQKLS0tLSBhL3VpL2d0azMvYmlu ZGluZ2NvbW1vbi52YWxhCi0rKysgYi91aS9ndGszL2JpbmRpbmdjb21tb24udmFsYQotQEAgLTMs NyArMyw3IEBACi0gICogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKgotICAqIENvcHlyaWdodChj KSAyMDE4IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdo dChjKSAyMDE4IFRha2FvIEZ1andpYXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAq IENvcHlyaWdodChjKSAyMDE4LTIwMTkgVGFrYW8gRnVqd2lhcmEgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+Ci0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTc1LDggKzc1LDggQEAgY2xhc3Mg QmluZGluZ0NvbW1vbiB7Ci0gICAgICAgICAvLyB3b3JrYXJvdW5kIGEgYnVnIGluIGdkayB2YXBp IHZhbGEgPiAwLjE4Ci0gICAgICAgICAvLyBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9Njc3NTU5Ci0gI2lmIFZBTEFfMF8xOAotLSAgICAgICAgICAgIEdkay5LZXlt YXAuZ2V0X2RlZmF1bHQoKS5tYXBfdmlydHVhbF9tb2RpZmllcnMoCi0tICAgICAgICAgICAgICAg ICAgICByZWYgc3dpdGNoX21vZGlmaWVycyk7Ci0rICAgICAgICAgICAgR2RrLktleW1hcC5nZXRf Zm9yX2Rpc3BsYXkoR2RrLkRpc3BsYXkuZ2V0X2RlZmF1bHQoKQotKyAgICAgICAgICAgICAgICAg ICAgKS5tYXBfdmlydHVhbF9tb2RpZmllcnMocmVmIHN3aXRjaF9tb2RpZmllcnMpOwotICNlbHNl Ci0gICAgICAgICAgICAgaWYgKChzd2l0Y2hfbW9kaWZpZXJzICYgR2RrLk1vZGlmaWVyVHlwZS5T VVBFUl9NQVNLKSAhPSAwKQotICAgICAgICAgICAgICAgICBzd2l0Y2hfbW9kaWZpZXJzIHw9IEdk ay5Nb2RpZmllclR5cGUuTU9ENF9NQVNLOwotZGlmZiAtLWdpdCBhL3VpL2d0azMvY2FuZGlkYXRl YXJlYS52YWxhIGIvdWkvZ3RrMy9jYW5kaWRhdGVhcmVhLnZhbGEKLWluZGV4IDc4MWVjZDFlLi5i MjJhYjVkYSAxMDA2NDQKLS0tLSBhL3VpL2d0azMvY2FuZGlkYXRlYXJlYS52YWxhCi0rKysgYi91 aS9ndGszL2NhbmRpZGF0ZWFyZWEudmFsYQotQEAgLTMsNyArMyw3IEBACi0gICogaWJ1cyAtIFRo ZSBJbnB1dCBCdXMKLSAgKgotICAqIENvcHlyaWdodChjKSAyMDExLTIwMTUgUGVuZyBIdWFuZyA8 c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0KGMpIDIwMTUtMjAxNyBUYWth byBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQoYykg MjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotICAq Ci0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yMTUsOSArMjE1LDEwIEBAIGNsYXNzIENhbmRpZGF0ZUFy ZWEgOiBHdGsuQm94IHsKLSAgICAgICAgICAgICAgICAgY2FuZGlkYXRlLnNob3coKTsKLSAgICAg ICAgICAgICAgICAgbV9jYW5kaWRhdGVzICs9IGNhbmRpZGF0ZTsKLSAKLS0gICAgICAgICAgICAg ICAgLyogVXNlIEd0ay5XaWRnZXQuc2V0X21hcmdpbl9zdGFydCgpIHNpbmNlIGd0ayAzLjEyICov Ci0tICAgICAgICAgICAgICAgIGxhYmVsLnNldF9wYWRkaW5nKDgsIDApOwotLSAgICAgICAgICAg ICAgICBjYW5kaWRhdGUuc2V0X3BhZGRpbmcoOCwgMCk7Ci0rICAgICAgICAgICAgICAgIGxhYmVs LnNldF9tYXJnaW5fc3RhcnQgKDgpOwotKyAgICAgICAgICAgICAgICBsYWJlbC5zZXRfbWFyZ2lu X2VuZCAoOCk7Ci0rICAgICAgICAgICAgICAgIGNhbmRpZGF0ZS5zZXRfbWFyZ2luX3N0YXJ0ICg4 KTsKLSsgICAgICAgICAgICAgICAgY2FuZGlkYXRlLnNldF9tYXJnaW5fZW5kICg4KTsKLSAKLSAg ICAgICAgICAgICAgICAgLy8gTWFrZSBhIGNvcHkgb2YgaSB0byB3b3JrYXJvdW5kIGEgYnVnIGlu IHZhbGEuCi0gICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3No b3dfYnVnLmNnaT9pZD02MjgzMzYKLWRpZmYgLS1naXQgYS91aS9ndGszL2NhbmRpZGF0ZXBhbmVs LnZhbGEgYi91aS9ndGszL2NhbmRpZGF0ZXBhbmVsLnZhbGEKLWluZGV4IGQ0MDRjNjU5Li44OTk0 Y2RiOSAxMDA2NDQKLS0tLSBhL3VpL2d0azMvY2FuZGlkYXRlcGFuZWwudmFsYQotKysrIGIvdWkv Z3RrMy9jYW5kaWRhdGVwYW5lbC52YWxhCi1AQCAtMyw3ICszLDcgQEAKLSAgKiBpYnVzIC0gVGhl IElucHV0IEJ1cwotICAqCi0gICogQ29weXJpZ2h0KGMpIDIwMTEtMjAxNSBQZW5nIEh1YW5nIDxz aGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQoYykgMjAxNS0yMDE4IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodChjKSAy MDE1LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0gICoK LSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYwotQEAgLTI0MiwxNiArMjQyLDE2IEBAIHB1YmxpYyBjbGFzcyBDYW5k aWRhdGVQYW5lbCA6IEd0ay5Cb3h7Ci0gICAgICAgICBtX3ByZWVkaXRfbGFiZWwuc2V0X3NpemVf cmVxdWVzdCgyMCwgLTEpOwotICAgICAgICAgbV9wcmVlZGl0X2xhYmVsLnNldF9oYWxpZ24oR3Rr LkFsaWduLlNUQVJUKTsKLSAgICAgICAgIG1fcHJlZWRpdF9sYWJlbC5zZXRfdmFsaWduKEd0ay5B bGlnbi5DRU5URVIpOwotLSAgICAgICAgLyogVXNlIEd0ay5XaWRnZXQuc2V0X21hcmdpbl9zdGFy dCgpIHNpbmNlIGd0ayAzLjEyICovCi0tICAgICAgICBtX3ByZWVkaXRfbGFiZWwuc2V0X3BhZGRp bmcoOCwgMCk7Ci0rICAgICAgICBtX3ByZWVkaXRfbGFiZWwuc2V0X21hcmdpbl9zdGFydCg4KTsK LSsgICAgICAgIG1fcHJlZWRpdF9sYWJlbC5zZXRfbWFyZ2luX2VuZCg4KTsKLSAgICAgICAgIG1f cHJlZWRpdF9sYWJlbC5zZXRfbm9fc2hvd19hbGwodHJ1ZSk7Ci0gCi0gICAgICAgICBtX2F1eF9s YWJlbCA9IG5ldyBHdGsuTGFiZWwobnVsbCk7Ci0gICAgICAgICBtX2F1eF9sYWJlbC5zZXRfc2l6 ZV9yZXF1ZXN0KDIwLCAtMSk7Ci0gICAgICAgICBtX2F1eF9sYWJlbC5zZXRfaGFsaWduKEd0ay5B bGlnbi5TVEFSVCk7Ci0gICAgICAgICBtX2F1eF9sYWJlbC5zZXRfdmFsaWduKEd0ay5BbGlnbi5D RU5URVIpOwotLSAgICAgICAgLyogVXNlIEd0ay5XaWRnZXQuc2V0X21hcmdpbl9zdGFydCgpIHNp bmNlIGd0ayAzLjEyICovCi0tICAgICAgICBtX2F1eF9sYWJlbC5zZXRfcGFkZGluZyg4LCAwKTsK LSsgICAgICAgIG1fYXV4X2xhYmVsLnNldF9tYXJnaW5fc3RhcnQoOCk7Ci0rICAgICAgICBtX2F1 eF9sYWJlbC5zZXRfbWFyZ2luX2VuZCg4KTsKLSAgICAgICAgIG1fYXV4X2xhYmVsLnNldF9ub19z aG93X2FsbCh0cnVlKTsKLSAKLSAgICAgICAgIG1fY2FuZGlkYXRlX2FyZWEgPSBuZXcgQ2FuZGlk YXRlQXJlYShtX3ZlcnRpY2FsX3BhbmVsX3N5c3RlbSk7Ci1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9l bW9qaWVyLnZhbGEgYi91aS9ndGszL2Vtb2ppZXIudmFsYQotaW5kZXggZmMxNWNmZmUuLjRlNTI3 NjljIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKLSsrKyBiL3VpL2d0azMvZW1v amllci52YWxhCi1AQCAtMjE0NywxMSArMjE0NywxMyBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2pp ZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewotICAgICAgICAgICAgICAgICAgICAgICAgIG5j YW5kaWRhdGVzKSk7Ci0gICAgICAgICBpbnQgY2hhcl9jb3VudCA9IHRleHQudGV4dC5jaGFyX2Nv dW50KCk7Ci0gICAgICAgICBpbnQgc3RhcnRfaW5kZXggPSAtMTsKLSsgICAgICAgIHVub3duZWQg c3RyaW5nIHRpdGxlID0gdGV4dC50ZXh0OwotICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBj aGFyX2NvdW50OyBpKyspIHsKLS0gICAgICAgICAgICBpZiAodGV4dC50ZXh0LnV0Zjhfb2Zmc2V0 KGkpLmhhc19wcmVmaXgobGFuZ3VhZ2UpKSB7Ci0rICAgICAgICAgICAgaWYgKHRpdGxlLmhhc19w cmVmaXgobGFuZ3VhZ2UpKSB7Ci0gICAgICAgICAgICAgICAgIHN0YXJ0X2luZGV4ID0gaTsKLSAg ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgfQotKyAgICAgICAgICAgIHRpdGxl ID0gdGl0bGUubmV4dF9jaGFyKCk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAoc3RhcnRfaW5k ZXggPj0gMCkgewotICAgICAgICAgICAgIHZhciBhdHRyID0gbmV3IElCdXMuQXR0cmlidXRlKAot ZGlmZiAtLWdpdCBhL3VpL2d0azMvcGFuZWwudmFsYSBiL3VpL2d0azMvcGFuZWwudmFsYQotaW5k ZXggMjA1NDY1OGUuLjY4MGM4NmVkIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9wYW5lbC52YWxhCi0r KysgYi91aS9ndGszL3BhbmVsLnZhbGEKLUBAIC0xMDUzLDcgKzEwNTMsNyBAQCBjbGFzcyBQYW5l bCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAKLSAgICAgcHJpdmF0ZSB2b2lkIHNob3dfc2V0dXBf ZGlhbG9nKCkgewotICAgICAgICAgaWYgKG1fc2V0dXBfcGlkICE9IDApIHsKLS0gICAgICAgICAg ICBpZiAoUG9zaXgua2lsbChtX3NldHVwX3BpZCwgUG9zaXguU0lHVVNSMSkgPT0gMCkKLSsgICAg ICAgICAgICBpZiAoUG9zaXgua2lsbChtX3NldHVwX3BpZCwgUG9zaXguU2lnbmFsLlVTUjEpID09 IDApCi0gICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICBtX3NldHVwX3BpZCA9 IDA7Ci0gICAgICAgICB9Ci1AQCAtMTA4Nyw3ICsxMDg3LDcgQEAgY2xhc3MgUGFuZWwgOiBJQnVz LlBhbmVsU2VydmljZSB7Ci0gCi0gICAgICAgICAgICAgc3RyaW5nIGNvcHlyaWdodCA9Ci0gICAg ICAgICAgICAgICAgICJDb3B5cmlnaHQgwqkgMjAwNy0yMDE1IFBlbmcgSHVhbmdcbiIgKwotLSAg ICAgICAgICAgICAgICAiQ29weXJpZ2h0IMKpIDIwMTUgVGFrYW8gRnVqaXdhcmFcbiIgKwotKyAg ICAgICAgICAgICAgICAiQ29weXJpZ2h0IMKpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYVxuIiAr Ci0gICAgICAgICAgICAgICAgICJDb3B5cmlnaHQgwqkgMjAwNy0yMDE1IFJlZCBIYXQsIEluYy5c biI7Ci0gCi0gICAgICAgICAgICAgbV9hYm91dF9kaWFsb2cuc2V0X2NvcHlyaWdodChjb3B5cmln aHQpOwotZGlmZiAtLWdpdCBhL3VpL2d0azMvc3dpdGNoZXIudmFsYSBiL3VpL2d0azMvc3dpdGNo ZXIudmFsYQotaW5kZXggMGRlNDRlOTguLmE0NTI5Yzg4IDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9z d2l0Y2hlci52YWxhCi0rKysgYi91aS9ndGszL3N3aXRjaGVyLnZhbGEKLUBAIC0zLDcgKzMsNyBA QAotICAqIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gICoKLSAgKiBDb3B5cmlnaHQoYykgMjAxMS0y MDE2IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodChj KSAyMDE1LTIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0r ICogQ29weXJpZ2h0KGMpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMTI1LDkgKzEyNSwxMCBAQCBj bGFzcyBTd2l0Y2hlciA6IEd0ay5XaW5kb3cgewotICAgICAgICAgQXRrLk9iamVjdCBvYmogPSBt X2xhYmVsLmdldF9hY2Nlc3NpYmxlKCk7Ci0gICAgICAgICBvYmouc2V0X3JvbGUgKEF0ay5Sb2xl LlNUQVRVU0JBUik7Ci0gCi0tICAgICAgICAvKiBVc2UgR3RrLldpZGdldC5zZXRfbWFyZ2luX3N0 YXJ0KCkgYW5kCi0tICAgICAgICAgKiBHdGsuV2lkZ2V0LnNldF9tYXJnaW5fdG9wKCkgc2luY2Ug Z3RrIDMuMTIgKi8KLS0gICAgICAgIG1fbGFiZWwuc2V0X3BhZGRpbmcoMywgMyk7Ci0rICAgICAg ICBtX2xhYmVsLnNldF9tYXJnaW5fc3RhcnQoMyk7Ci0rICAgICAgICBtX2xhYmVsLnNldF9tYXJn aW5fZW5kKDMpOwotKyAgICAgICAgbV9sYWJlbC5zZXRfbWFyZ2luX3RvcCgzKTsKLSsgICAgICAg IG1fbGFiZWwuc2V0X21hcmdpbl9ib3R0b20oMyk7Ci0gICAgICAgICB2Ym94LnBhY2tfZW5kKG1f bGFiZWwsIGZhbHNlLCBmYWxzZSwgMCk7Ci0gCi0gICAgICAgICBncmFiX2ZvY3VzKCk7Ci0tLSAK LTIuMjEuMAotCi1Gcm9tIGVmZWI3Yjk2ODkxMjZlNGYwNWJkMWUxMDQ0MWNkYzRhMzcyMGZmMWMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSb2JlcnQgSG9mZm1hbm4gPGV4dGVybmVy LmRsLmhvZmZtYW5uQG11ZW5jaGVuLmRlPgotRGF0ZTogRnJpLCAxIE5vdiAyMDE5IDIxOjU1OjEz ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGJ1czogRml4IHJlc3RhcnQgY3Jhc2ggd2l0aCBpbm90 aWZ5IHJlYWQoKQotCi1EbyBub3QgY2xvc2UgaW5vdGlmeSBkZXNjaXB0b3JzIHdoZW4gcmVzdGFy dGluZyB0aGUgc2VydmVyLiBUaGlzCi1tYXkgbGVhZCB0byBjcmFzaGVzIGluIGdsaWIuCi0KLUZp eGVzIGNyYXNoIGluIGxpYmdsaWIvbGliZ2lvIHdpdGgKLUdMaWItR0lPLUVSUk9SIDogaW5vdGlm eSByZWFkKCk6IEJhZCBmaWxlIGRlc2NyaXB0b3IKLQotU2VlIGFsc28gc3JjL3Rlc3RzL2lidXMt YnVzLmM6IHN0YXJ0X2V4aXRfYXN5bmMoKToKLSAgICAvKiBXaGVuIGAuL3J1bnRlc3QgaWJ1cy1i dXNgIHJ1bnMsIGlidXMtZGFlbW9uIHNvbWV0aW1lcyBmYWlsZWQgdG8KLSAgICAgKiByZXN0YXJ0 IGJlY2F1c2UgY2xvc2luZyBhIGZpbGUgZGVzY3JpcHRvciB3YXMgZmFpbGVkIGluCi0gICAgICog YnVzL3NlcnZlci5jOl9yZXN0YXJ0X3NlcnZlcigpIHdpdGggYSBmb2xsb3dpbmcgZXJyb3I6Ci0g ICAgICogICAgICJpbm90aWZ5IHJlYWQoKTogQmFkIGZpbGUgZGVzY3JpcHRvciIKLQotVGVzdCBw bGFuOgotUnVuCi0kIGlidXMgcmVzdGFydAotc2V2ZXJhbCB0aW1lcy4gV2l0aG91dCB0aGUgcGF0 Y2ggaWJ1cy1kYWVtb24gd2lsbCBjcmFzaCBvY2Nhc2lvbmFsbHkuCi0KLUJVRz1odHRwczovL2dp dGh1Yi5jb20vaWJ1cy9pYnVzL3B1bGwvMjE0OAotLS0tCi0gYnVzL3NlcnZlci5jIHwgMjggKysr KysrKysrKysrKysrKysrKysrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYnVzL3NlcnZlci5jIGIvYnVzL3Nl cnZlci5jCi1pbmRleCBkOWMzMGU0NC4uYTc1NTRhODggMTAwNjQ0Ci0tLS0gYS9idXMvc2VydmVy LmMKLSsrKyBiL2J1cy9zZXJ2ZXIuYwotQEAgLTI2LDYgKzI2LDggQEAKLSAjaW5jbHVkZSA8Z2xp Yi9nc3RkaW8uaD4KLSAjaW5jbHVkZSA8Z2lvL2dpby5oPgotICNpbmNsdWRlIDxzdGRsaWIuaD4K LSsjaW5jbHVkZSA8ZmNudGwuaD4KLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSAjaW5jbHVkZSA8c3Ry aW5nLmg+Ci0gCi0gI2luY2x1ZGUgImRidXNpbXBsLmgiCi1AQCAtNDUsMTYgKzQ3LDMzIEBAIF9y ZXN0YXJ0X3NlcnZlciAodm9pZCkKLSB7Ci0gICAgIGdjaGFyICpleGU7Ci0gICAgIGdpbnQgZmQ7 Ci0rICAgIHNzaXplX3QgcjsKLSsgICAgaW50IE1BWFNJWkUgPSAweEZGRjsKLSsgICAgY2hhciBw cm9jbG5rW01BWFNJWkVdOwotKyAgICBjaGFyIGZpbGVuYW1lW01BWFNJWkVdOwotIAotLSAgICBl eGUgPSBnX3N0cmR1cF9wcmludGYgKCIvcHJvYy8lZC9leGUiLCBnZXRwaWQgKCkpOwotLSAgICBl eGUgPSBnX2ZpbGVfcmVhZF9saW5rIChleGUsIE5VTEwpOwotKyAgICBleGUgPSBnX2ZpbGVfcmVh ZF9saW5rICgiL3Byb2Mvc2VsZi9leGUiLCBOVUxMKTsKLSAKLSAgICAgaWYgKGV4ZSA9PSBOVUxM KQotLSAgICAgICAgZXhlID0gQklORElSICIvaWJ1cy1kYWVtb24iOwotKyAgICAgICAgZXhlID0g Z19zdHJkdXAgKEJJTkRJUiAiL2lidXMtZGFlbW9uIik7Ci0gCi0gICAgIC8qIGNsb3NlIGFsbCBm ZHMgZXhjZXB0IHN0ZGluLCBzdGRvdXQsIHN0ZGVyciAqLwotICAgICBmb3IgKGZkID0gMzsgZmQg PD0gc3lzY29uZiAoX1NDX09QRU5fTUFYKTsgZmQgKyspIHsKLS0gICAgICAgIGNsb3NlIChmZCk7 Ci0rICAgICAgICBlcnJubyA9IDA7Ci0rICAgICAgICAvKiBvbmx5IGNsb3NlIHZhbGlkIGZkcyAq LwotKyAgICAgICAgaWYgKGZjbnRsIChmZCwgRl9HRVRGRCkgIT0gLTEgfHwgZXJybm8gIT0gRUJB REYpIHsKLSsgICAgICAgICAgICBnX3NwcmludGYgKHByb2NsbmssICIvcHJvYy9zZWxmL2ZkLyVk IiwgZmQpOwotKyAgICAgICAgICAgIHIgPSByZWFkbGluayAocHJvY2xuaywgZmlsZW5hbWUsIE1B WFNJWkUpOwotKyAgICAgICAgICAgIGlmIChyIDwgMCkgewotKyAgICAgICAgICAgICAgICBjb250 aW51ZTsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgZmlsZW5hbWVbcl0gPSAnXDAnOwot KwotKyAgICAgICAgICAgIC8qIERvIG5vdCBjbG9zZSAnYW5vbl9pbm9kZTppbm90aWZ5JyBmZHMs IHRoYXQgbWF5IGNyYXNoIGluIGdsaWIgKi8KLSsgICAgICAgICAgICBpZiAoZ19zdHJjbXAwIChm aWxlbmFtZSwgImFub25faW5vZGU6aW5vdGlmeSIpICE9IDApIHsKLSsgICAgICAgICAgICAgICAg Y2xvc2UgKGZkKTsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0gICAgIH0KLSAKLSAgICAg X3Jlc3RhcnQgPSBGQUxTRTsKLUBAIC02OSw2ICs4OCw3IEBAIF9yZXN0YXJ0X3NlcnZlciAodm9p ZCkKLSAgICAgICAgIGV4ZWN2IChleGUsIGdfYXJndik7Ci0gICAgIH0KLSAgICAgZ193YXJuaW5n ICgiZXhlY3YgJXMgZmFpbGVkISIsIGdfYXJndlswXSk7Ci0rICAgIGdfZnJlZSAoZXhlKTsKLSAg ICAgZXhpdCAoLTEpOwotIH0KLSAKLS0tIAotMi4yMS4wCi0KLUZyb20gMjZhODEwNWI3MDAzOTUz ZTU2YmYwNDQyNmVlODlhOTM0ODJhNDVjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFN1biwgMTAgTm92 IDIwMTkgMDk6NTM6MjcgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gdWkvZ3RrMzogRml4IHRvIGV4 aXQgYGlidXMgZW1vamlgIHdpdGggRXNjYXBlIGtleQotCi1XaGVuIEVzY2FwZSBrZXkgaXMgcHJl c3NlZCwgdGhlIGN1cnJlbnQgaWJ1cy11aS1lbW9qaWVyIHNob3VsZCBleGl0Ci1hbHRob3VnaCBh bm90aGVyIGRhZW1vbiBvbmUgaXMgYWxpdmUuCi0KLWBpYnVzIGVtb2ppYCB3YXMgdXNlZCBpbiBX YXlsYW5kIGRlc2t0b3AgYXMgYSB3b3JrYXJvdW5kIGJ1dCBub3cKLUlCdXMgZW1vamkgZnVuY3Rp b25zIGFyZSBtb3ZlZCB0byB0aGUgZW5naW5lJ3MgcHJlLWVkaXQgYW5kIHRoZSBzYW1lCi1mdW5j dGlvbiBpcyBhdmFpbGFibGUgd2l0aCBDdHJsLVNmaGl0LWUgYW5kIHNwYWNlIGtleSBzbyB0aGlz IHByb2JsZW0KLXdvdWxkIG5vdCBiZSBzbyB2aXNpYmxlLgotCi1CVUc9cmhieiMxNjU4MTg3Ci0t LS0KLSB1aS9ndGszL2Vtb2ppZXIudmFsYSAgICB8ICA1ICsrLS0KLSB1aS9ndGszL2Vtb2ppZXJh cHAudmFsYSB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCi0g MiBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3VpL2d0azMvZW1vamllci52YWxhIGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKLWlu ZGV4IDRlNTI3NjljLi4xM2JhY2ViZCAxMDA2NDQKLS0tLSBhL3VpL2d0azMvZW1vamllci52YWxh Ci0rKysgYi91aS9ndGszL2Vtb2ppZXIudmFsYQotQEAgLTMyMCw2ICszMjAsNyBAQCBwdWJsaWMg Y2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgewotIAotICAgICBwdWJs aWMgc2lnbmFsIHZvaWQgY2FuZGlkYXRlX2NsaWNrZWQodWludCBpbmRleCwgdWludCBidXR0b24s IHVpbnQgc3RhdGUpOwotICAgICBwdWJsaWMgc2lnbmFsIHZvaWQgY29tbWl0X3RleHQoc3RyaW5n IHRleHQpOwotKyAgICBwdWJsaWMgc2lnbmFsIHZvaWQgY2FuY2VsKCk7Ci0gCi0gICAgIHB1Ymxp YyBJQnVzRW1vamllcigpIHsKLSAgICAgICAgIEdMaWIuT2JqZWN0KAotQEAgLTE3ODksOCArMTc5 MCw3IEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7 Ci0gICAgICAgICAgICAgc2hvd19lbW9qaV92YXJpYW50cyhlbW9qaXMpOwotICAgICAgICAgICAg IHJldHVybiB0cnVlOwotICAgICAgICAgfQotLSAgICAgICAgaWYgKG1faW5wdXRfY29udGV4dF9w YXRoICE9ICIiKQotLSAgICAgICAgICAgIG1fcmVzdWx0ID0gdGV4dDsKLSsgICAgICAgIG1fcmVz dWx0ID0gdGV4dDsKLSAgICAgICAgIGlmIChuZWVkX2NvbW1pdF9zaWduYWwpCi0gICAgICAgICAg ICAgY29tbWl0X3RleHQodGV4dCk7Ci0gICAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtMTg5Nyw2 ICsxODk3LDcgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2lu ZG93IHsKLSAgICAgICAgICAgICAvLyBQYWdlVXAvUGFnZURvd24uCi0gICAgICAgICAgICAgcmVt b3ZlX2FsbF9jaGlsZHJlbigpOwotICAgICAgICAgfQotKyAgICAgICAgY2FuY2VsKCk7Ci0gICAg ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAKLWRpZmYgLS1naXQgYS91aS9ndGszL2Vtb2pp ZXJhcHAudmFsYSBiL3VpL2d0azMvZW1vamllcmFwcC52YWxhCi1pbmRleCBlODMzMTk4OS4uNzgz YzYxMWMgMTAwNjQ0Ci0tLS0gYS91aS9ndGszL2Vtb2ppZXJhcHAudmFsYQotKysrIGIvdWkvZ3Rr My9lbW9qaWVyYXBwLnZhbGEKLUBAIC0zLDYgKzMsNyBAQAotICAqIGlidXMgLSBUaGUgSW5wdXQg QnVzCi0gICoKLSAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgUGVuZyBXdSA8YWxleGVwaWNvQGdtYWls LmNvbT4KLSsgKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNDAsNiArNDEs MzMgQEAgcHVibGljIGNsYXNzIEVtb2ppQXBwbGljYXRpb24gOiBHdGsuQXBwbGljYXRpb24gewot ICAgICB9Ci0gCi0gCi0rICAgIHByaXZhdGUgdm9pZCBzYXZlX3NlbGVjdGVkX3N0cmluZyhzdHJp bmc/IHNlbGVjdGVkX3N0cmluZywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgICAgY2FuY2VsbGVkKSB7Ci0rICAgICAgICBpZiAoY2FuY2VsbGVkKSB7Ci0rICAg ICAgICAgICAgbV9jb21tYW5kX2xpbmUucHJpbnQoIiVzXG4iLCBfKCJDYW5jZWxlZCB0byBjaG9v c2UgYW4gZW1vamkuIikpOwotKyAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIH0KLSsgICAg ICAgIEdMaWIucmV0dXJuX2lmX2ZhaWwoc2VsZWN0ZWRfc3RyaW5nICE9IG51bGwpOwotKyAgICAg ICAgR3RrLkNsaXBib2FyZCBjbGlwYm9hcmQgPSBHdGsuQ2xpcGJvYXJkLmdldChHZGsuU0VMRUNU SU9OX0NMSVBCT0FSRCk7Ci0rICAgICAgICBjbGlwYm9hcmQuc2V0X3RleHQoc2VsZWN0ZWRfc3Ry aW5nLCAtMSk7Ci0rICAgICAgICBjbGlwYm9hcmQuc3RvcmUoKTsKLSsKLSsgICAgICAgIHZhciBl bW9qaWVyX2Zhdm9yaXRlcyA9IG1fc2V0dGluZ3NfZW1vamkuZ2V0X3N0cnYoImZhdm9yaXRlcyIp OwotKyAgICAgICAgYm9vbCBoYXNfZmF2b3JpdGUgPSBmYWxzZTsKLSsgICAgICAgIGZvcmVhY2gg KHVub3duZWQgc3RyaW5nIGZhdm9yaXRlIGluIGVtb2ppZXJfZmF2b3JpdGVzKSB7Ci0rICAgICAg ICAgICAgaWYgKGZhdm9yaXRlID09IHNlbGVjdGVkX3N0cmluZykgewotKyAgICAgICAgICAgICAg ICBoYXNfZmF2b3JpdGUgPSB0cnVlOwotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAg ICAgICB9Ci0rICAgICAgICB9Ci0rICAgICAgICBpZiAoIWhhc19mYXZvcml0ZSkgewotKyAgICAg ICAgICAgIGVtb2ppZXJfZmF2b3JpdGVzICs9IHNlbGVjdGVkX3N0cmluZzsKLSsgICAgICAgICAg ICBtX3NldHRpbmdzX2Vtb2ppLnNldF9zdHJ2KCJmYXZvcml0ZXMiLCBlbW9qaWVyX2Zhdm9yaXRl cyk7Ci0rICAgICAgICB9Ci0rICAgICAgICBtX2NvbW1hbmRfbGluZS5wcmludCgiJXNcbiIsIF8o IkNvcGllZCBhbiBlbW9qaSB0byB5b3VyIGNsaXBib2FyZC4iKSk7Ci0rICAgIH0KLSsKLSsKLSAg ICAgcHJpdmF0ZSB2b2lkIHNob3dfZGlhbG9nKEFwcGxpY2F0aW9uQ29tbWFuZExpbmUgY29tbWFu ZF9saW5lKSB7Ci0gICAgICAgICBtX2NvbW1hbmRfbGluZSA9IGNvbW1hbmRfbGluZTsKLSAgICAg ICAgIG1fZW1vamllci5yZXNldCgpOwotQEAgLTU1LDcgKzgzLDcgQEAgcHVibGljIGNsYXNzIEVt b2ppQXBwbGljYXRpb24gOiBHdGsuQXBwbGljYXRpb24gewotICAgICAgICAgICAgIHJldHVybjsK LSAgICAgICAgIGlmIChidXR0b24gPT0gSUJ1c0Vtb2ppZXIuQlVUVE9OX0NMT1NFX0JVVFRPTikg ewotICAgICAgICAgICAgIG1fZW1vamllci5oaWRlKCk7Ci0tICAgICAgICAgICAgbV9jb21tYW5k X2xpbmUucHJpbnQoIiVzXG4iLCBfKCJDYW5jZWxlZCB0byBjaG9vc2UgYW4gZW1vamkuIikpOwot KyAgICAgICAgICAgIHNhdmVfc2VsZWN0ZWRfc3RyaW5nKG51bGwsIHRydWUpOwotICAgICAgICAg ICAgIG1fY29tbWFuZF9saW5lID0gbnVsbDsKLSAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg ICB9Ci1AQCAtNzQsMjMgKzEwMiw3IEBAIHB1YmxpYyBjbGFzcyBFbW9qaUFwcGxpY2F0aW9uIDog R3RrLkFwcGxpY2F0aW9uIHsKLSAgICAgICAgIH0KLSAgICAgICAgIHN0cmluZyBlbW9qaSA9IG1f ZW1vamllci5nZXRfY3VycmVudF9jYW5kaWRhdGUoKTsKLSAgICAgICAgIG1fZW1vamllci5oaWRl KCk7Ci0tICAgICAgICBHdGsuQ2xpcGJvYXJkIGNsaXBib2FyZCA9IEd0ay5DbGlwYm9hcmQuZ2V0 KEdkay5TRUxFQ1RJT05fQ0xJUEJPQVJEKTsKLS0gICAgICAgIGNsaXBib2FyZC5zZXRfdGV4dChl bW9qaSwgLTEpOwotLSAgICAgICAgY2xpcGJvYXJkLnN0b3JlKCk7Ci0tCi0tICAgICAgICB2YXIg ZW1vamllcl9mYXZvcml0ZXMgPSBtX3NldHRpbmdzX2Vtb2ppLmdldF9zdHJ2KCJmYXZvcml0ZXMi KTsKLS0gICAgICAgIGJvb2wgaGFzX2Zhdm9yaXRlID0gZmFsc2U7Ci0tICAgICAgICBmb3JlYWNo ICh1bm93bmVkIHN0cmluZyBmYXZvcml0ZSBpbiBlbW9qaWVyX2Zhdm9yaXRlcykgewotLSAgICAg ICAgICAgIGlmIChmYXZvcml0ZSA9PSBlbW9qaSkgewotLSAgICAgICAgICAgICAgICBoYXNfZmF2 b3JpdGUgPSB0cnVlOwotLSAgICAgICAgICAgICAgICBicmVhazsKLS0gICAgICAgICAgICB9Ci0t ICAgICAgICB9Ci0tICAgICAgICBpZiAoIWhhc19mYXZvcml0ZSkgewotLSAgICAgICAgICAgIGVt b2ppZXJfZmF2b3JpdGVzICs9IGVtb2ppOwotLSAgICAgICAgICAgIG1fc2V0dGluZ3NfZW1vamku c2V0X3N0cnYoImZhdm9yaXRlcyIsIGVtb2ppZXJfZmF2b3JpdGVzKTsKLS0gICAgICAgIH0KLS0g ICAgICAgIG1fY29tbWFuZF9saW5lLnByaW50KCIlc1xuIiwgXygiQ29waWVkIGFuIGVtb2ppIHRv IHlvdXIgY2xpcGJvYXJkLiIpKTsKLSsgICAgICAgIHNhdmVfc2VsZWN0ZWRfc3RyaW5nKGVtb2pp LCBmYWxzZSk7Ci0gICAgICAgICBtX2NvbW1hbmRfbGluZSA9IG51bGw7Ci0gICAgIH0KLSAKLUBA IC0yMDIsNiArMjE0LDIxIEBAIHB1YmxpYyBjbGFzcyBFbW9qaUFwcGxpY2F0aW9uIDogR3RrLkFw cGxpY2F0aW9uIHsKLSAgICAgICAgICAgICBtX2Vtb2ppZXIuY2FuZGlkYXRlX2NsaWNrZWQuY29u bmVjdCgoaSwgYiwgcykgPT4gewotICAgICAgICAgICAgICAgICBjYW5kaWRhdGVfY2xpY2tlZF9s b29rdXBfdGFibGUoaSwgYiwgcyk7Ci0gICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAgbV9l bW9qaWVyLmNhbmNlbC5jb25uZWN0KCgpID0+IHsKLSsgICAgICAgICAgICAgICAgaWYgKG1fY29t bWFuZF9saW5lID09IG51bGwpCi0rICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0rICAgICAg ICAgICAgICAgIG1fZW1vamllci5oaWRlKCk7Ci0rICAgICAgICAgICAgICAgIHNhdmVfc2VsZWN0 ZWRfc3RyaW5nKG51bGwsIHRydWUpOwotKyAgICAgICAgICAgICAgICBtX2NvbW1hbmRfbGluZSA9 IG51bGw7Ci0rICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAgbV9lbW9qaWVyLmNvbW1pdF90 ZXh0LmNvbm5lY3QoKCkgPT4gewotKyAgICAgICAgICAgICAgICBpZiAobV9jb21tYW5kX2xpbmUg PT0gbnVsbCkKLSsgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgICAgICAgICAg bV9lbW9qaWVyLmhpZGUoKTsKLSsgICAgICAgICAgICAgICAgc3RyaW5nIHNlbGVjdGVkX3N0cmlu ZyA9IG1fZW1vamllci5nZXRfc2VsZWN0ZWRfc3RyaW5nKCk7Ci0rICAgICAgICAgICAgICAgIHNh dmVfc2VsZWN0ZWRfc3RyaW5nKHNlbGVjdGVkX3N0cmluZywgZmFsc2UpOwotKyAgICAgICAgICAg ICAgICBtX2NvbW1hbmRfbGluZSA9IG51bGw7Ci0rICAgICAgICAgICAgfSk7Ci0gICAgICAgICB9 Ci0gCi0gICAgICAgICBhY3RpdmF0ZV9kaWFsb2coY29tbWFuZF9saW5lKTsKLS0tIAotMi4yMS4w Ci0KLUZyb20gNzZiMTc3M2M2ZWY1Mjk4ODhiY2Q2MmM0ZjgyMDdjODliYTIzNTAzZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ID0/VVRGLTg/cT9Gcj1DMz1BOWQ9QzM9QTlyaWM9MjBN YW5nYW5vLVRhcnVtaT89IDxmbWFuZ0BtZzAuZnI+Ci1EYXRlOiBNb24sIDE4IE5vdiAyMDE5IDEy OjA1OjM1ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGVuZ2luZS1zaW1wbGU6IEFkZCB0aGUgRnJl bmNoIGJlcG9fYWZub3IgbGF5b3V0Ci0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVz L3B1bGwvMjE1NQotLS0tCi0gZW5naW5lL3NpbXBsZS54bWwuaW4gfCAxMiArKysrKysrKysrKysK LSAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZW5naW5l L3NpbXBsZS54bWwuaW4gYi9lbmdpbmUvc2ltcGxlLnhtbC5pbgotaW5kZXggNDQ0NWMyNTQuLmZj MTU0MWVjIDEwMDY0NAotLS0tIGEvZW5naW5lL3NpbXBsZS54bWwuaW4KLSsrKyBiL2VuZ2luZS9z aW1wbGUueG1sLmluCi1AQCAtMjgzLDYgKzI4MywxOCBAQAotICAgICAgICAgICAgICAgICAgICAg ICAgIDxpY29uPmlidXMta2V5Ym9hcmQ8L2ljb24+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg PHJhbms+MTwvcmFuaz4KLSAgICAgICAgICAgICAgICAgPC9lbmdpbmU+Ci0rICAgICAgICAgICAg ICAgIDxlbmdpbmU+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPG5hbWU+eGtiOmZyOmJlcG9f YWZub3I6ZnJhPC9uYW1lPgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxsYW5ndWFnZT5mcjwv bGFuZ3VhZ2U+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGxpY2Vuc2U+R1BMPC9saWNlbnNl PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxhdXRob3I+UGVuZyBIdWFuZyAmbHQ7c2hhd24u cC5odWFuZ0BnbWFpbC5jb20mZ3Q7PC9hdXRob3I+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg PGxheW91dD5mcjwvbGF5b3V0PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxsYXlvdXRfdmFy aWFudD5iZXBvX2Fmbm9yPC9sYXlvdXRfdmFyaWFudD4KLSsgICAgICAgICAgICAgICAgICAgICAg ICA8bG9uZ25hbWU+RnJlbmNoIChCZXBvLCBlcmdvbm9taWMsIER2b3JhayB3YXksIEFGTk9SKTwv bG9uZ25hbWU+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGRlc2NyaXB0aW9uPkZyZW5jaCAo QmVwbywgZXJnb25vbWljLCBEdm9yYWsgd2F5LCBBRk5PUik8L2Rlc2NyaXB0aW9uPgotKyAgICAg ICAgICAgICAgICAgICAgICAgIDxpY29uPmlidXMta2V5Ym9hcmQ8L2ljb24+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgPHJhbms+MTwvcmFuaz4KLSsgICAgICAgICAgICAgICAgPC9lbmdpbmU+ Ci0gICAgICAgICAgICAgICAgIDxlbmdpbmU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPG5h bWU+eGtiOmZyOmR2b3JhazpmcmE8L25hbWU+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPGxh bmd1YWdlPmZyPC9sYW5ndWFnZT4KLS0tIAotMi4yMS4wCi0KLUZyb20gN2YzMzVkY2MzZGNmZTUx Zjc0ZjFkYzRlMTMzMTVlMTAzMWQ0NTYxZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMTggTm92 IDIwMTkgMTE6MzM6MDQgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjOiBBZGQgZmlsZSBsaXN0 IGluIHJlZ2lzdHJ5IGZpbGUKLQotVW5kZXIgRmVkb3JhIFNpbHZlcmJsdWUsIHN0X210aW1lIGlu IC91c3Ivc2hhcmUvaWJ1cy9jb21wb25lbnQgaXMKLTEgSmFuIDE5NzAgZXZlbiBpZiBpYnVzIGVu Z2luZXMgYXJlIGluc3RhbGxlZCBhbmQgaWJ1cy1kYWVtb24KLWNhbm5vdCBkZXRlY3QgbmV3IGVu Z2luZXMuCi1Ob3cgSUJ1c09ic2VydmVkUGF0aCBzYXZlcyBoYXNoZWQgZmlsZSBsaXN0IGJlc2lk ZXMgc3RfbXRpbWUgb2YKLXRoZSBjb21wbmVudCBkaXJlY3RvcnkgdG8gZGV0ZWN0IHRoZSBpbnN0 YWxsZWQgZW5naW5lcyBuZXdseS4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMv aXNzdWVzLzIxMzIKLS0tLQotIHNyYy9pYnVzY29tcG9uZW50LmMgICAgfCAgIDcgKy0KLSBzcmMv aWJ1c29ic2VydmVkcGF0aC5jIHwgMjc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tCi0gc3JjL2lidXNyZWdpc3RyeS5jICAgICB8ICAgMiArLQotIDMgZmlsZXMgY2hh bmdlZCwgMjUwIGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv c3JjL2lidXNjb21wb25lbnQuYyBiL3NyYy9pYnVzY29tcG9uZW50LmMKLWluZGV4IDk4MzdmNDdj Li5iYmZmMTBmZCAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzY29tcG9uZW50LmMKLSsrKyBiL3NyYy9p YnVzY29tcG9uZW50LmMKLUBAIC0yLDYgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICov Ci0gLyogYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAx OSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAgKiBDb3B5cmln aHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi1AQCAtNDk5LDEx ICs1MDAsNyBAQCBpYnVzX2NvbXBvbmVudF9vdXRwdXQgKElCdXNDb21wb25lbnQgKmNvbXBvbmVu dCwKLSAKLSAgICAgICAgIGZvciAocCA9IGNvbXBvbmVudC0+cHJpdi0+b2JzZXJ2ZWRfcGF0aHM7 IHAgIT0gTlVMTDsgcCA9IHAtPm5leHQgKSB7Ci0gICAgICAgICAgICAgSUJ1c09ic2VydmVkUGF0 aCAqcGF0aCA9IChJQnVzT2JzZXJ2ZWRQYXRoICopIHAtPmRhdGE7Ci0tCi0tICAgICAgICAgICAg Z19zdHJpbmdfYXBwZW5kX2luZGVudCAob3V0cHV0LCBpbmRlbnQgKyAyKTsKLS0gICAgICAgICAg ICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmIChvdXRwdXQsICI8cGF0aCBtdGltZT1cIiVsZFwiID4l czwvcGF0aD5cbiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC0+ bXRpbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC0+cGF0aCk7 Ci0rICAgICAgICAgICAgaWJ1c19vYnNlcnZlZF9wYXRoX291dHB1dCAocGF0aCwgb3V0cHV0LCBp bmRlbnQgKyAyKTsKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9pbmRl bnQgKG91dHB1dCwgaW5kZW50ICsgMSk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNvYnNlcnZlZHBh dGguYyBiL3NyYy9pYnVzb2JzZXJ2ZWRwYXRoLmMKLWluZGV4IDViNzlmMWZlLi5iZjcyMjliNyAx MDA2NDQKLS0tLSBhL3NyYy9pYnVzb2JzZXJ2ZWRwYXRoLmMKLSsrKyBiL3NyYy9pYnVzb2JzZXJ2 ZWRwYXRoLmMKLUBAIC0yLDYgKzIsNyBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyog aWJ1cyAtIFRoZSBJbnB1dCBJQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgUGVuZyBI dWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDE5IFRh a2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotICAqIENvcHlyaWdodCAo QykgMjAwOC0yMDE5IFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLUBAIC0zMCw5ICszMSw5 IEBAIGVudW0gewotIH07Ci0gCi0gCi0tLyogSUJ1c09ic2VydmVkUGF0aFByaXYgKi8KLSsvKiBJ QnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSAqLwotIHN0cnVjdCBfSUJ1c09ic2VydmVkUGF0aFByaXZh dGUgewotLSAgICBncG9pbnRlciBwYWQ7Ci0rICAgIGd1aW50ICAgKmZpbGVfaGFzaF9saXN0Owot IH07Ci0gdHlwZWRlZiBzdHJ1Y3QgX0lCdXNPYnNlcnZlZFBhdGhQcml2YXRlIElCdXNPYnNlcnZl ZFBhdGhQcml2YXRlOwotIAotQEAgLTUyLDcgKzUzLDkgQEAgc3RhdGljIGdib29sZWFuICBpYnVz X29ic2VydmVkX3BhdGhfY29weSAgICAgICAgICAgIChJQnVzT2JzZXJ2ZWRQYXRoICAgICAgICpk ZXMKLSBzdGF0aWMgZ2Jvb2xlYW4gIGlidXNfb2JzZXJ2ZWRfcGF0aF9wYXJzZV94bWxfbm9kZSAg KElCdXNPYnNlcnZlZFBhdGggICAgICAgKnBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxOb2RlICAgICAgICAgICAgICAgICpub2Rl KTsKLSAKLS1HX0RFRklORV9UWVBFIChJQnVzT2JzZXJ2ZWRQYXRoLCBpYnVzX29ic2VydmVkX3Bh dGgsIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCi0rR19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUg KElCdXNPYnNlcnZlZFBhdGgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfb2Jz ZXJ2ZWRfcGF0aCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1NFUklB TElaQUJMRSkKLSAKLSBzdGF0aWMgdm9pZAotIGlidXNfb2JzZXJ2ZWRfcGF0aF9jbGFzc19pbml0 IChJQnVzT2JzZXJ2ZWRQYXRoQ2xhc3MgKmNsYXNzKQotQEAgLTg0LDcgKzg3LDkgQEAgc3RhdGlj IGdib29sZWFuCi0gaWJ1c19vYnNlcnZlZF9wYXRoX3NlcmlhbGl6ZSAoSUJ1c09ic2VydmVkUGF0 aCAqcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudEJ1aWxkZXIg ICpidWlsZGVyKQotIHsKLSsgICAgSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKnByaXYgPSBJQlVT X09CU0VSVkVEX1BBVEhfR0VUX1BSSVZBVEUgKHBhdGgpOwotICAgICBnYm9vbGVhbiByZXR2YWw7 Ci0rICAgIGd1aW50IGk7Ci0gCi0gICAgIHJldHZhbCA9IElCVVNfU0VSSUFMSVpBQkxFX0NMQVNT IChpYnVzX29ic2VydmVkX3BhdGhfcGFyZW50X2NsYXNzKS0+Ci0gICAgICAgICAgICAgc2VyaWFs aXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXBhdGgsIGJ1aWxkZXIpOwotQEAgLTkzLDYgKzk4LDE1 IEBAIGlidXNfb2JzZXJ2ZWRfcGF0aF9zZXJpYWxpemUgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgs Ci0gICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCAoYnVpbGRlciwgInMiLCBwYXRoLT5wYXRoKTsK LSAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkIChidWlsZGVyLCAieCIsIHBhdGgtPm10aW1lKTsK LSAKLSsgICAgaWYgKCFwcml2LT5maWxlX2hhc2hfbGlzdCkgewotKyAgICAgICAgZ192YXJpYW50 X2J1aWxkZXJfYWRkIChidWlsZGVyLCAidSIsIDApOwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0r ICAgIH0KLSsgICAgZm9yIChpID0gMDsgcHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV07IGkrKyk7Ci0r ICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCAoYnVpbGRlciwgInUiLCBpKTsKLSsgICAgZm9yIChp ID0gMDsgcHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV07IGkrKykKLSsgICAgICAgIGdfdmFyaWFudF9i dWlsZGVyX2FkZCAoYnVpbGRlciwgInUiLCBwcml2LT5maWxlX2hhc2hfbGlzdFtpXSk7Ci0rCi0g ICAgIHJldHVybiBUUlVFOwotIH0KLSAKLUBAIC0xMDAsNyArMTE0LDkgQEAgc3RhdGljIGdpbnQK LSBpYnVzX29ic2VydmVkX3BhdGhfZGVzZXJpYWxpemUgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICp2YXJp YW50KQotIHsKLSsgICAgSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKnByaXYgPSBJQlVTX09CU0VS VkVEX1BBVEhfR0VUX1BSSVZBVEUgKHBhdGgpOwotICAgICBnaW50IHJldHZhbDsKLSsgICAgZ3Vp bnQgaSwgbGVuZ3RoID0gMDsKLSAKLSAgICAgcmV0dmFsID0gSUJVU19TRVJJQUxJWkFCTEVfQ0xB U1MgKGlidXNfb2JzZXJ2ZWRfcGF0aF9wYXJlbnRfY2xhc3MpLT4KLSAgICAgICAgICAgICBkZXNl cmlhbGl6ZSAoKElCdXNTZXJpYWxpemFibGUgKilwYXRoLCB2YXJpYW50KTsKLUBAIC0xMDksNiAr MTI1LDE1IEBAIGlidXNfb2JzZXJ2ZWRfcGF0aF9kZXNlcmlhbGl6ZSAoSUJ1c09ic2VydmVkUGF0 aCAqcGF0aCwKLSAgICAgaWJ1c19nX3ZhcmlhbnRfZ2V0X2NoaWxkX3N0cmluZyAodmFyaWFudCwg cmV0dmFsKyssICZwYXRoLT5wYXRoKTsKLSAgICAgZ192YXJpYW50X2dldF9jaGlsZCAodmFyaWFu dCwgcmV0dmFsKyssICJ4IiwgJnBhdGgtPm10aW1lKTsKLSAKLSsgICAgaWYgKGdfdmFyaWFudF9u X2NoaWxkcmVuICh2YXJpYW50KSA8IHJldHZhbCArIDIpCi0rICAgICAgICByZXR1cm4gcmV0dmFs OwotKyAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkICh2YXJpYW50LCByZXR2YWwrKywgInUiLCAmbGVu Z3RoKTsKLSsgICAgaWYgKCFsZW5ndGgpCi0rICAgICAgICByZXR1cm4gcmV0dmFsOwotKyAgICBw cml2LT5maWxlX2hhc2hfbGlzdCA9IGdfbmV3MCAoZ3VpbnQsIGxlbmd0aCArIDEpOwotKyAgICBm b3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspCi0rICAgICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxk ICh2YXJpYW50LCByZXR2YWwrKywgInUiLCAmcHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV0pOwotKwot ICAgICByZXR1cm4gcmV0dmFsOwotIH0KLSAKLUBAIC0xMTYsMTQgKzE0MSwyNyBAQCBzdGF0aWMg Z2Jvb2xlYW4KLSBpYnVzX29ic2VydmVkX3BhdGhfY29weSAoSUJ1c09ic2VydmVkUGF0aCAgICAg ICAqZGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSUJ1c09ic2VydmVkUGF0 aCAqc3JjKQotIHsKLSsgICAgSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKmRlc3RfcHJpdiA9IElC VVNfT0JTRVJWRURfUEFUSF9HRVRfUFJJVkFURSAoZGVzdCk7Ci0rICAgIElCdXNPYnNlcnZlZFBh dGhQcml2YXRlICpzcmNfcHJpdiA9Ci0rICAgICAgICAgICAgSUJVU19PQlNFUlZFRF9QQVRIX0dF VF9QUklWQVRFICgoSUJ1c09ic2VydmVkUGF0aCAqKXNyYyk7Ci0gICAgIGdib29sZWFuIHJldHZh bDsKLSsgICAgZ3VpbnQgaTsKLSAKLS0gICAgcmV0dmFsID0gSUJVU19TRVJJQUxJWkFCTEVfQ0xB U1MgKGlidXNfb2JzZXJ2ZWRfcGF0aF9wYXJlbnRfY2xhc3MpLT5jb3B5ICgoSUJ1c1NlcmlhbGl6 YWJsZSAqKWRlc3QsIChJQnVzU2VyaWFsaXphYmxlICopc3JjKTsKLSsgICAgcmV0dmFsID0gSUJV U19TRVJJQUxJWkFCTEVfQ0xBU1MgKGlidXNfb2JzZXJ2ZWRfcGF0aF9wYXJlbnRfY2xhc3MpLT4K LSsgICAgICAgICAgICBjb3B5ICgoSUJ1c1NlcmlhbGl6YWJsZSAqKWRlc3QsIChJQnVzU2VyaWFs aXphYmxlICopc3JjKTsKLSAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKHJldHZhbCwgRkFMU0Up OwotIAotICAgICBkZXN0LT5wYXRoID0gZ19zdHJkdXAgKHNyYy0+cGF0aCk7Ci0gICAgIGRlc3Qt Pm10aW1lID0gc3JjLT5tdGltZTsKLSAKLSsgICAgZ19jbGVhcl9wb2ludGVyICgmZGVzdF9wcml2 LT5maWxlX2hhc2hfbGlzdCwgZ19mcmVlKTsKLSsgICAgaWYgKCFzcmNfcHJpdi0+ZmlsZV9oYXNo X2xpc3QpCi0rICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgZm9yIChpID0gMDsgc3JjX3ByaXYt PmZpbGVfaGFzaF9saXN0W2ldOyBpKyspOwotKyAgICBkZXN0X3ByaXYtPmZpbGVfaGFzaF9saXN0 ID0gZ19uZXcwIChndWludCwgaSArIDEpOwotKyAgICBmb3IgKGkgPSAwOyBzcmNfcHJpdi0+Zmls ZV9oYXNoX2xpc3RbaV07IGkrKykKLSsgICAgICAgIGRlc3RfcHJpdi0+ZmlsZV9oYXNoX2xpc3Rb aV0gPSBzcmNfcHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV07Ci0rCi0gICAgIHJldHVybiBUUlVFOwot IH0KLSAKLUBAIC0xMzcsMjMgKzE3NSw0OCBAQCBpYnVzX29ic2VydmVkX3BhdGhfY29weSAoSUJ1 c09ic2VydmVkUGF0aCAgICAgICAqZGVzdCwKLSAKLSB2b2lkCi0gaWJ1c19vYnNlcnZlZF9wYXRo X291dHB1dCAoSUJ1c09ic2VydmVkUGF0aCAqcGF0aCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgIEdTdHJpbmcgICAgICAgICAqb3V0cHV0LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg Z2ludCAgICAgICAgICAgICBpbmRlbnQpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgR1N0 cmluZyAgICAgICAgICAqb3V0cHV0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQg ICAgICAgICAgICAgIGluZGVudCkKLSB7Ci0rICAgIElCdXNPYnNlcnZlZFBhdGhQcml2YXRlICpw cml2ID0gSUJVU19PQlNFUlZFRF9QQVRIX0dFVF9QUklWQVRFIChwYXRoKTsKLSsgICAgZ3VpbnQg aTsKLSsKLSAgICAgZ19hc3NlcnQgKElCVVNfSVNfT0JTRVJWRURfUEFUSCAocGF0aCkpOwotICAg ICBnX2Fzc2VydCAob3V0cHV0KTsKLSAKLS0gICAgZ19zdHJpbmdfYXBwZW5kX2luZGVudCAob3V0 cHV0LCBpbmRlbnQpOwotLSAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmIChvdXRwdXQsICI8cGF0 aCBtdGltZT1cIiVsZFwiID4lczwvcGF0aD5cbiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGF0aC0+bXRpbWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGF0aC0+cGF0aCk7Ci0rICAgIGlmICghcHJpdi0+ZmlsZV9oYXNoX2xpc3QpIHsKLSsg ICAgICAgIGdfc3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwgaW5kZW50KTsKLSsgICAgICAg IGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKG91dHB1dCwgIjxwYXRoIG10aW1lPVwiJWxkXCIgPiVz PC9wYXRoPlxuIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgtPm10aW1l LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC0+cGF0aCk7Ci0rICAgIH0g ZWxzZSB7Ci0rICAgICAgICBnX3N0cmluZ19hcHBlbmRfaW5kZW50IChvdXRwdXQsIGluZGVudCk7 Ci0rICAgICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmICgKLSsgICAgICAgICAgICAgICAgb3V0 cHV0LAotKyAgICAgICAgICAgICAgICAiPHBhdGggbXRpbWU9XCIlbGRcIiB0eXBlPVwiZGlyXCIg cGF0aD1cIiVzXCI+XG4iLAotKyAgICAgICAgICAgICAgICBwYXRoLT5tdGltZSwKLSsgICAgICAg ICAgICAgICAgcGF0aC0+cGF0aCk7Ci0rICAgICAgICBmb3IgKGkgPSAwOyBwcml2LT5maWxlX2hh c2hfbGlzdFtpXTsgaSsrKSB7Ci0rICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2luZGVudCAo b3V0cHV0LCBpbmRlbnQgKyAxKTsKLSsgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRm IChvdXRwdXQsICI8ZmlsZSBoYXNoPVwiJXVcIiAvPlxuIiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwcml2LT5maWxlX2hhc2hfbGlzdFtpXSk7Ci0rICAgICAgICB9Ci0r ICAgICAgICBnX3N0cmluZ19hcHBlbmRfaW5kZW50IChvdXRwdXQsIGluZGVudCk7Ci0rICAgICAg ICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmIChvdXRwdXQsICI8L3BhdGg+XG4iKTsKLSsgICAgfQot IH0KLSAKLSBnYm9vbGVhbgotIGlidXNfb2JzZXJ2ZWRfcGF0aF9jaGVja19tb2RpZmljYXRpb24g KElCdXNPYnNlcnZlZFBhdGggKnBhdGgpCi0gewotKyAgICBJQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0 ZSAqcHJpdiA9IElCVVNfT0JTRVJWRURfUEFUSF9HRVRfUFJJVkFURSAocGF0aCk7Ci0gICAgIGdj aGFyICpyZWFsX3BhdGggPSBOVUxMOwotICAgICBzdHJ1Y3Qgc3RhdCBidWY7Ci0rICAgIGdib29s ZWFuIHJldHZhbCA9IEZBTFNFOwotKyAgICBHRGlyICpkaXIgPSBOVUxMOwotKyAgICBjb25zdCBn Y2hhciAqbmFtZTsKLSsgICAgZ3VpbnQgaSA9IDA7Ci0rICAgIGd1aW50IGZpbGVfbnVtID0gMDsK LSAKLSAgICAgZ19hc3NlcnQgKElCVVNfSVNfT0JTRVJWRURfUEFUSCAocGF0aCkpOwotIAotQEAg LTE2OSwxMSArMjMyLDcxIEBAIGlidXNfb2JzZXJ2ZWRfcGF0aF9jaGVja19tb2RpZmljYXRpb24g KElCdXNPYnNlcnZlZFBhdGggKnBhdGgpCi0gICAgICAgICBidWYuc3RfbXRpbWUgPSAwOwotICAg ICB9Ci0gCi0tICAgIGdfZnJlZSAocmVhbF9wYXRoKTsKLSAKLS0gICAgaWYgKHBhdGgtPm10aW1l ID09IGJ1Zi5zdF9tdGltZSkKLS0gICAgICAgIHJldHVybiBGQUxTRTsKLS0gICAgcmV0dXJuIFRS VUU7Ci0rICAgIGlmIChwYXRoLT5tdGltZSAhPSBidWYuc3RfbXRpbWUpIHsKLSsgICAgICAgIHJl dHZhbCA9IFRSVUU7Ci0rICAgICAgICBnb3RvIGVuZF9jaGVja19tb2RpZmljYXRpb247Ci0rICAg IH0KLSsKLSsgICAgLyogSWYgYW4gaWJ1cyBlbmdpbmUgaXMgaW5zdGFsbGVkLCBub3JtYWwgZmls ZSBzeXN0ZW0gdXBkYXRlcwotKyAgICAgKiB0aGUgZGlyZWN0b3J5IG10aW1lIG9mICIvdXNyL3No YXJlL2lidXMvY29tcG9uZW50IiBhbmQKLSsgICAgICogcGF0aC0+bXRpbWUgb2YgdGhlIGNhY2hl IGZpbGUgYW5kIGJ1Zi5zdF9tdGltZSBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkKLSsgICAgICog Y291bGQgaGF2ZSB0aGUgZGlmZmVyZW50IHZhbHVlcy4KLSsgICAgICoKLSsgICAgICogQnV0IHVu ZGVyIGEgc3BlY2lhbCBmaWxlIHN5c3RlbSwgdGhlIGJ1Zi5zdF9tdGltZSBpcyBub3QgdXBkYXRl ZAotKyAgICAgKiBldmVuIGlmIGFuIGlidXMgZW5naW5lIGlzIGluc3RhbGxlZCwgbGlrZXMgRmVk b3JhIFNpbHZlcmJsdWUKLSsgICAgICogYW5kIGlidXNfb2JzZXJ2ZWRfcGF0aF9jaGVja19tb2Rp ZmljYXRpb24oKSBjb3VsZCBub3QgZGV0ZWN0Ci0rICAgICAqIHRoZSBpbnN0YWxsZWQgaWJ1cyBl bmdpbmVzLgotKyAgICAgKiBOb3cgcGF0aC0+cHJpdi0+ZmlsZV9oYXNoX2xpc3QgcmVzZXJ2ZXMg dGhlIGhhc2ggbGlzdCBvZiB0aGUgZmlsZXMKLSsgICAgICogaW4gdGhlIG9ic2VydmVkIGRpcmVj dG9yeSBhbmQgaWYgYSBuZXcgaWJ1cyBlbmdpbmUgaXMgaW5zdGFsbGVkLAotKyAgICAgKiB0aGUg aGFzaCBvZiB0aGUgY29tcG9zZSBmaWxlIGRvZXMgbm90IGV4aXN0cyBpbiB0aGUgY2FjaGUncwot KyAgICAgKiBmaWxlX2hhc2hfbGlzdCBhbmQgaWJ1cy1kYWVtb24gcmVnZW5lcmF0ZSB0aGUgY2Fj aGUgc3VjY2Vzc2Z1bGx5LgotKyAgICAgKi8KLSsgICAgaWYgKCFwcml2LT5maWxlX2hhc2hfbGlz dCkgewotKyAgICAgICAgLyogSWYgdGhlIGNhY2hlIHZlcnNpb24gaXMgb2xkLCBpYnVzX3JlZ2lz dHJ5X2xvYWRfY2FjaGUoKSByZXR1cm5zCi0rICAgICAgICAgKiBGQUxTRSBhbmQgaWJ1c19yZWdp c3RyeV9jaGVja19tb2RpZmljYXRpb24oKSBhbmQgdGhpcyBhcmUgbm90Ci0rICAgICAgICAgKiBj YWxsZWQuCi0rICAgICAgICAgKiBJZiB0aGUgY2FjaGUgdmVyc2lvbiBpcyB0aGUgbGF0ZXN0LCB0 aGUgY2FjaGUgZmlsZSBpbmNsdWRlcyB0aGUKLSsgICAgICAgICAqIGZpbGxlZCBmaWxlX2hhc2hf bGlzdCBmb3IgZGlyZWN0b3JpZXMgd2l0aCBpYnVzX29ic2VydmVkX3BhdGhfbmV3KCkKLSsgICAg ICAgICAqIHdoZW4gdGhlIGNhY2hlIHdhcyBnZW5lcmF0ZWQuCi0rICAgICAgICAgKiBUaGVuIGlm IGZpbGVfaGFzaF9saXN0IGlzIG51bGwsIGl0J3MgYSBzaW1wbGUgZmlsZSBpbiBpYnVzCi0rICAg ICAgICAgKiBjb21wb25lbnRzIGFuZCByZXR1cm4gaGVyZSBzaW1wbHkuCi0rICAgICAgICAgKi8K LSsgICAgICAgIGdvdG8gZW5kX2NoZWNrX21vZGlmaWNhdGlvbjsKLSsgICAgfQotKyAgICBkaXIg PSBnX2Rpcl9vcGVuIChyZWFsX3BhdGgsIDAsIE5VTEwpOwotKyAgICBnX3JldHVybl92YWxfaWZf ZmFpbCAoZGlyLCBGQUxTRSk7Ci0rCi0rICAgIHdoaWxlICgobmFtZSA9IGdfZGlyX3JlYWRfbmFt ZSAoZGlyKSkgIT0gTlVMTCkgewotKyAgICAgICAgZ3VpbnQgY3VycmVudF9oYXNoOwotKyAgICAg ICAgZ2Jvb2xlYW4gaGFzX2ZpbGUgPSBGQUxTRTsKLSsKLSsgICAgICAgIGlmICghZ19zdHJfaGFz X3N1ZmZpeCAobmFtZSwgIi54bWwiKSkKLSsgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAg IGN1cnJlbnRfaGFzaCA9IGdfc3RyX2hhc2ggKG5hbWUpOwotKyAgICAgICAgZm9yIChpID0gMDsg cHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV07IGkrKykgewotKyAgICAgICAgICAgIGlmIChjdXJyZW50 X2hhc2ggPT0gcHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV0pIHsKLSsgICAgICAgICAgICAgICAgaGFz X2ZpbGUgPSBUUlVFOwotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICB9Ci0r ICAgICAgICB9Ci0rICAgICAgICBpZiAoIWhhc19maWxlKSB7Ci0rICAgICAgICAgICAgcmV0dmFs ID0gVFJVRTsKLSsgICAgICAgICAgICBnb3RvIGVuZF9jaGVja19tb2RpZmljYXRpb247Ci0rICAg ICAgICB9Ci0rICAgICAgICBmaWxlX251bSsrOwotKyAgICB9Ci0rICAgIGlmICghcmV0dmFsKSB7 Ci0rICAgICAgICBmb3IgKGkgPSAwOyBwcml2LT5maWxlX2hhc2hfbGlzdFtpXTsgaSsrKTsKLSsg ICAgICAgIGlmIChmaWxlX251bSAhPSBpKQotKyAgICAgICAgICAgIHJldHZhbCA9IFRSVUU7Ci0r ICAgIH0KLSsKLStlbmRfY2hlY2tfbW9kaWZpY2F0aW9uOgotKyAgICBpZiAoZGlyKQotKyAgICAg ICAgZ19kaXJfY2xvc2UgKGRpcik7Ci0rICAgIGdfZnJlZSAocmVhbF9wYXRoKTsKLSsgICAgcmV0 dXJuIHJldHZhbDsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0yMjQsNyArMzQ3LDcgQEAgaWJ1 c19vYnNlcnZlZF9wYXRoX3RyYXZlcnNlIChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAotICAgICAg ICAgICAgIHBhdGhzID0gZ19saXN0X2FwcGVuZCAocGF0aHMsIHN1Yik7Ci0gICAgICAgICAgICAg cGF0aHMgPSBnX2xpc3RfY29uY2F0IChwYXRocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlidXNfb2JzZXJ2ZWRfcGF0aF90cmF2ZXJzZSAoc3ViLCBkaXJfb25seSkpOwot LSAgICAgICAgfSBlbHNlIGlmICghZGlyX29ubHkpIHsKLSsgICAgICAgIH0gZWxzZSBpZiAoc3Vi LT5pc19leGlzdCAmJiAhZGlyX29ubHkpIHsKLSAgICAgICAgICAgICBwYXRocyA9IGdfbGlzdF9h cHBlbmQgKHBhdGhzLCBzdWIpOwotICAgICAgICAgfQotICAgICB9Ci1AQCAtMjMzLDM2ICszNTYs MTAyIEBAIGlidXNfb2JzZXJ2ZWRfcGF0aF90cmF2ZXJzZSAoSUJ1c09ic2VydmVkUGF0aCAqcGF0 aCwKLSAgICAgcmV0dXJuIHBhdGhzOwotIH0KLSAKLSsKLStzdGF0aWMgZ2Jvb2xlYW4KLStpYnVz X29ic2VydmVkX3BhdGhfcGFyc2VfZmlsZSAoSUJ1c09ic2VydmVkUGF0aCAqcGF0aCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9kZSAgICAgICAgICAqbm9kZSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAqbnRoKQotK3sKLSsg ICAgSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKnByaXYgPSBJQlVTX09CU0VSVkVEX1BBVEhfR0VU X1BSSVZBVEUgKHBhdGgpOwotKyAgICBnY2hhciAqKmF0dHI7Ci0rCi0rICAgIGZvciAoYXR0ciA9 IG5vZGUtPmF0dHJpYnV0ZXM7IGF0dHJbMF07IGF0dHIgKz0gMikgewotKyAgICAgICAgZ3VpbnQg aGFzaCA9IDA7Ci0rCi0rICAgICAgICBpZiAoZ19zdHJjbXAwICgqYXR0ciwgImhhc2giKSA9PSAw KQotKyAgICAgICAgICAgIGhhc2ggPSBhdG9sIChhdHRyWzFdKTsKLSsgICAgICAgIGVsc2UgaWYg KGdfc3RyY21wMCAoKmF0dHIsICJuYW1lIikgPT0gMCkKLSsgICAgICAgICAgICBoYXNoID0gZ19z dHJfaGFzaCAoYXR0clsxXSk7Ci0rICAgICAgICBpZiAoaGFzaCkgewotKyAgICAgICAgICAgIGlm ICghcHJpdi0+ZmlsZV9oYXNoX2xpc3QpIHsKLSsgICAgICAgICAgICAgICAgKm50aCA9IDA7Ci0r ICAgICAgICAgICAgICAgIHByaXYtPmZpbGVfaGFzaF9saXN0ID0gZ19uZXcwIChndWludCwgKm50 aCArIDIpOwotKyAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgICAgIHByaXYtPmZp bGVfaGFzaF9saXN0ID0gZ19yZW5ldyAoZ3VpbnQsIHByaXYtPmZpbGVfaGFzaF9saXN0LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpudGggKyAyKTsK LSsgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgcHJpdi0+ZmlsZV9oYXNoX2xpc3RbKm50aF0g PSBoYXNoOwotKyAgICAgICAgICAgIHByaXYtPmZpbGVfaGFzaF9saXN0WypudGggKyAxXSA9IDA7 Ci0rICAgICAgICAgICAgKm50aCArPSAxOwotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAg ICAgfQotKyAgICAgICAgZ193YXJuaW5nICgiVW5rb253biBhdHRyaWJ1dGUgJXMiLCBhdHRyWzBd KTsKLSsgICAgfQotKwotKyAgICByZXR1cm4gVFJVRTsKLSt9Ci0rCi0rCi0gc3RhdGljIGdib29s ZWFuCi0gaWJ1c19vYnNlcnZlZF9wYXRoX3BhcnNlX3htbF9ub2RlIChJQnVzT2JzZXJ2ZWRQYXRo ICpwYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9kZSAgICAg ICAgICAqbm9kZSkKLSB7Ci0rICAgIGdjaGFyICoqYXR0cjsKLSsgICAgY29uc3QgZ2NoYXIgKmZ1 bGxfcGF0aCA9IG5vZGUtPnRleHQ7Ci0rICAgIEdMaXN0ICpwOwotKyAgICBpbnQgaSA9IDA7Ci0r Ci0gICAgIGdfYXNzZXJ0IChJQlVTX0lTX09CU0VSVkVEX1BBVEggKHBhdGgpKTsKLSAgICAgZ19h c3NlcnQgKG5vZGUpOwotIAotLSAgICBpZiAoR19VTkxJS0VMWSAoZ19zdHJjbXAwIChub2RlLT5u YW1lLCAicGF0aCIpICE9IDApKSB7Ci0rICAgIGlmIChHX1VOTElLRUxZIChnX3N0cmNtcDAgKG5v ZGUtPm5hbWUsICJwYXRoIikgIT0gMCkpCi0gICAgICAgICByZXR1cm4gRkFMU0U7Ci0rCi0rICAg IGZvciAoYXR0ciA9IG5vZGUtPmF0dHJpYnV0ZXM7IGF0dHJbMF07IGF0dHIgKz0gMikgewotKyAg ICAgICAgaWYgKGdfc3RyY21wMCAoKmF0dHIsICJtdGltZSIpID09IDApIHsKLSsgICAgICAgICAg ICBwYXRoLT5tdGltZSA9IGF0b2wgKGF0dHJbMV0pOwotKyAgICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgfQotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoKmF0dHIsICJwYXRoIikgPT0gMCkg ewotKyAgICAgICAgICAgIGZ1bGxfcGF0aCA9IGF0dHJbMV07Ci0rICAgICAgICAgICAgY29udGlu dWU7Ci0rICAgICAgICB9Ci0rICAgICAgICBpZiAoZ19zdHJjbXAwICgqYXR0ciwgInR5cGUiKSA9 PSAwKSB7Ci0rICAgICAgICAgICAgaWYgKCFnX3N0cmNtcDAgKGF0dHJbMV0sICJkaXIiKSkKLSsg ICAgICAgICAgICAgICAgcGF0aC0+aXNfZGlyID0gVFJVRTsKLSsgICAgICAgICAgICBlbHNlIGlm ICghZ19zdHJjbXAwIChhdHRyWzFdLCAiZmlsZSIpKQotKyAgICAgICAgICAgICAgICBwYXRoLT5p c19kaXIgPSBGQUxTRTsKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIGdfd2Fy bmluZyAoIlRoZSB0eXBlIGF0dHJpYnV0ZSBjYW4gYmUgXCJkaXJcIiBvciBcImZpbGVcIi4iKTsK LSsgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIGdfd2FybmluZyAo IlVua29ud24gYXR0cmlidXRlICVzIiwgYXR0clswXSk7Ci0gICAgIH0KLSAKLS0gICAgaWYgKG5v ZGUtPnRleHRbMF0gPT0gJ34nICYmIG5vZGUtPnRleHRbMV0gIT0gR19ESVJfU0VQQVJBVE9SKSB7 Ci0tICAgICAgICBnX3dhcm5pbmcgKCJJbnZhbGlkIHBhdGggXCIlc1wiIiwgbm9kZS0+dGV4dCk7 Ci0rICAgIGlmIChmdWxsX3BhdGhbMF0gPT0gJ34nICYmIGZ1bGxfcGF0aFsxXSAhPSBHX0RJUl9T RVBBUkFUT1IpIHsKLSsgICAgICAgIGdfd2FybmluZyAoIkludmFsaWQgcGF0aCBcIiVzXCIiLCBm dWxsX3BhdGgpOwotICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0gCi0tICAgIHBhdGgt PnBhdGggPSBnX3N0cmR1cCAobm9kZS0+dGV4dCk7Ci0rICAgIHBhdGgtPnBhdGggPSBnX3N0cmR1 cCAoZnVsbF9wYXRoKTsKLSAKLS0gICAgZ2NoYXIgKiphdHRyOwotLSAgICBmb3IgKGF0dHIgPSBu b2RlLT5hdHRyaWJ1dGVzOyBhdHRyWzBdOyBhdHRyICs9IDIpIHsKLS0gICAgICAgIGlmIChnX3N0 cmNtcDAgKCphdHRyLCAibXRpbWUiKSA9PSAwKSB7Ci0tICAgICAgICAgICAgcGF0aC0+bXRpbWUg PSBhdG9sIChhdHRyWzFdKTsKLSsgICAgaWYgKCFwYXRoLT5pc19kaXIpCi0rICAgICAgICByZXR1 cm4gVFJVRTsKLSsKLSsgICAgZm9yIChpID0gMCwgcCA9IG5vZGUtPnN1Yl9ub2RlczsgcCAhPSBO VUxMOyBwID0gcC0+bmV4dCkgewotKyAgICAgICAgWE1MTm9kZSAqc3ViX25vZGUgPSAoWE1MTm9k ZSAqKXAtPmRhdGE7Ci0rCi0rICAgICAgICBpZiAoR19VTkxJS0VMWSAoZ19zdHJjbXAwIChzdWJf bm9kZS0+bmFtZSwgImZpbGUiKSAhPSAwKSkgewotKyAgICAgICAgICAgIGdfd2FybmluZyAoIlVu a29ud24gdGFnICVzIiwgc3ViX25vZGUtPm5hbWUpOwotICAgICAgICAgICAgIGNvbnRpbnVlOwot ICAgICAgICAgfQotLSAgICAgICAgZ193YXJuaW5nICgiVW5rb253biBhdHRyaWJ1dGUgJXMiLCBh dHRyWzBdKTsKLSsgICAgICAgIGlidXNfb2JzZXJ2ZWRfcGF0aF9wYXJzZV9maWxlIChwYXRoLCBz dWJfbm9kZSwgJmkpOwotICAgICB9Ci0gCi0gICAgIHJldHVybiBUUlVFOwotIH0KLSAKLSsKLSBJ QnVzT2JzZXJ2ZWRQYXRoICoKLSBpYnVzX29ic2VydmVkX3BhdGhfbmV3X2Zyb21feG1sX25vZGUg KFhNTE5vZGUgKm5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi b29sZWFuIGZpbGxfc3RhdCkKLUBAIC0yODgsMTYgKzQ3Nyw0NiBAQCBJQnVzT2JzZXJ2ZWRQYXRo ICoKLSBpYnVzX29ic2VydmVkX3BhdGhfbmV3IChjb25zdCBnY2hhciAqcGF0aCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgZmlsbF9zdGF0KQotIHsKLS0gICAgZ19hc3Nl cnQgKHBhdGgpOwotLQotICAgICBJQnVzT2JzZXJ2ZWRQYXRoICpvcDsKLSsgICAgSUJ1c09ic2Vy dmVkUGF0aFByaXZhdGUgKnByaXY7Ci0rICAgIEdMaXN0ICpmaWxlX2xpc3QsICpsOwotKyAgICBn dWludCBpID0gMDsKLSAKLSsgICAgZ19hc3NlcnQgKHBhdGgpOwotICAgICBvcCA9IChJQnVzT2Jz ZXJ2ZWRQYXRoICopIGdfb2JqZWN0X25ldyAoSUJVU19UWVBFX09CU0VSVkVEX1BBVEgsIE5VTEwp OwotICAgICBvcC0+cGF0aCA9IGdfc3RyZHVwIChwYXRoKTsKLSAKLS0gICAgaWYgKGZpbGxfc3Rh dCkgewotLSAgICAgICAgaWJ1c19vYnNlcnZlZF9wYXRoX2ZpbGxfc3RhdCAob3ApOwotKyAgICBw cml2ID0gSUJVU19PQlNFUlZFRF9QQVRIX0dFVF9QUklWQVRFIChvcCk7Ci0rICAgIGwgPSBmaWxl X2xpc3QgPSBpYnVzX29ic2VydmVkX3BhdGhfdHJhdmVyc2UgKG9wLCBGQUxTRSk7Ci0rICAgIGZv ciAoOyBsOyBsID0gbC0+bmV4dCkgewotKyAgICAgICAgSUJ1c09ic2VydmVkUGF0aCAqc3ViID0g bC0+ZGF0YTsKLSsgICAgICAgIGNvbnN0IGdjaGFyICpmaWxlID0gTlVMTDsKLSsKLSsgICAgICAg IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzdWIgJiYgc3ViLT5wYXRoLCBvcCk7Ci0rCi0rICAgICAg ICBmaWxlID0gc3ViLT5wYXRoOwotKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4IChmaWxl LCAiLnhtbCIpKQotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgaWYgKGdfc3RyX2hh c19wcmVmaXggKGZpbGUsIHBhdGgpKSB7Ci0rICAgICAgICAgICAgZmlsZSArPSBzdHJsZW4gKHBh dGgpOwotKyAgICAgICAgICAgIGlmICgqZmlsZSA9PSAnLycpCi0rICAgICAgICAgICAgICAgIGZp bGUrKzsKLSsgICAgICAgICAgICAvKiBJZ25vcmUgc3ViIGRpcmVjdG9yaWVzICovCi0rICAgICAg ICAgICAgaWYgKHN0cmNociAoZmlsZSwgJy8nKSkKLSsgICAgICAgICAgICAgICAgY29udGludWU7 Ci0rICAgICAgICB9Ci0rICAgICAgICBpZiAoIWkpCi0rICAgICAgICAgICAgcHJpdi0+ZmlsZV9o YXNoX2xpc3QgPSBnX25ldzAgKGd1aW50LCBpICsgMik7Ci0rICAgICAgICBlbHNlCi0rICAgICAg ICAgICAgcHJpdi0+ZmlsZV9oYXNoX2xpc3QgPSBnX3JlbmV3IChndWludCwgcHJpdi0+ZmlsZV9o YXNoX2xpc3QsIGkgKyAyKTsKLSsgICAgICAgIHByaXYtPmZpbGVfaGFzaF9saXN0W2ldID0gZ19z dHJfaGFzaCAoZmlsZSk7Ci0rICAgICAgICBwcml2LT5maWxlX2hhc2hfbGlzdFtpICsgMV0gPSAw OwotKyAgICAgICAgKytpOwotICAgICB9Ci0rICAgIGdfbGlzdF9mcmVlX2Z1bGwgKGZpbGVfbGlz dCwgKEdEZXN0cm95Tm90aWZ5KWlidXNfb2JzZXJ2ZWRfcGF0aF9kZXN0cm95KTsKLSsKLSsgICAg aWYgKGZpbGxfc3RhdCkKLSsgICAgICAgIGlidXNfb2JzZXJ2ZWRfcGF0aF9maWxsX3N0YXQgKG9w KTsKLSAKLSAgICAgcmV0dXJuIG9wOwotIH0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c3JlZ2lzdHJ5 LmMgYi9zcmMvaWJ1c3JlZ2lzdHJ5LmMKLWluZGV4IDQzOTkwZDVmLi4zNzgzODhkOSAxMDA2NDQK LS0tLSBhL3NyYy9pYnVzcmVnaXN0cnkuYwotKysrIGIvc3JjL2lidXNyZWdpc3RyeS5jCi1AQCAt MjksNyArMjksNyBAQAotICNpbmNsdWRlICJpYnVzcmVnaXN0cnkuaCIKLSAKLSAjZGVmaW5lIElC VVNfQ0FDSEVfTUFHSUMgMHg0OTQyNTU1MyAvKiAiSUJVUyIgKi8KLS0jZGVmaW5lIElCVVNfQ0FD SEVfVkVSU0lPTiAweDAwMDEwNTEyCi0rI2RlZmluZSBJQlVTX0NBQ0hFX1ZFUlNJT04gMHgwMDAx MDUyMgotIAotIGVudW0gewotICAgICBDSEFOR0VELAotLS0gCi0yLjIxLjAKLQotRnJvbSBiY2Nm OTRkNWVjMWM1ZmM4MGQ1YWVhYzYyMmYyYWI4MDA3ZDVhMjhhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTog RnJpLCAyOSBOb3YgMjAxOSAyMDoyODo0OSArMDkwMAotU3ViamVjdDogW1BBVENIXSBzcmMvdGVz dHM6IFJIRUwgY29kZXJldmlldyBmb3IgaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyCi0KLS0t LQotIHNyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIuaW4gfCAxNiArKysrKysr KysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVy LmluIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbgotaW5kZXggMTQx ZTliNWIuLjcyNTM3Y2Q0IDEwMDc1NQotLS0tIGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0 aW5nLXJ1bm5lci5pbgotKysrIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5l ci5pbgotQEAgLTI4LDYgKzI4LDEwIEBACi0gIyAjIC9yb290L2lidXMvdGVzdHMvdGVzdC1jb25z b2xlLnNoIC0tdGVzdHMgaWJ1cy1jb21wb3NlIFwKLSAjICAgLS1idWlsZGRpciAvcm9vdC9pYnVz L3NyYy90ZXN0cyAtLXNyY2RpciAvcm9vdC9pYnVzL3NyYy90ZXN0cwotIAotKyMgUE9TSVggc2gg aGFzIG5vICdlY2hvIC1lJwotKzogJHtFQ0hPOj0nL3Vzci9iaW4vZWNobyd9Ci0rCi0rCi0gUFJP R05BTUU9YGJhc2VuYW1lICQwYAotIFZFUlNJT049MC4xCi0gRElTUExBWT06OTkuMAotQEAgLTU0 LDE1ICs1OCwxNSBAQCBwcmludF9sb2coKQotICAgICAgICAgICAgIHNoaWZ0Ci0gICAgICAgICBm aQotICAgICAgICAgTk9fRVNDQVBFPWBlY2hvICRAIHwgc2VkIC1lICdzL1xcXDAzM1xcWzA7My5t Ly9nJyAtZSAncy9cXFwwMzNcXFswbS8vZydgCi0tICAgICAgICBlY2hvICROT19FU0NBUEUgPj4g JFJFU1VMVF9MT0cKLSsgICAgICAgICRFQ0hPICROT19FU0NBUEUgPj4gJFJFU1VMVF9MT0cKLSAg ICAgZWxzZQotLSAgICAgICAgZWNobyAkQAotKyAgICAgICAgJEVDSE8gJEAKLSAgICAgZmkKLSB9 Ci0gCi0gdXNhZ2UoKQotIHsKLS0gICAgZWNobyAtZSBcCi0rICAgICRFQ0hPIC1lIFwKLSAiVGhp cyB0ZXN0IHJ1bnMgL3Vzci9iaW4vaWJ1cy1kYWVtb24gYWZ0ZXIgaW5zdGFsbCBpYnVzXG4iICAg ICAgICAgICAgICAgICAgICAgXAotICIkUFJPR05BTUUgW09QVElPTlPigKZdXG4iICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAiXG4iICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAotQEAgLTkyLDcgKzk2LDcgQEAgcGFyc2VfYXJncygpCi0gICAgIHdo aWxlIFsgMSBdIDsgZG8KLSAgICAgICAgIGNhc2UgIiQxIiBpbgotICAgICAgICAgLWggfCAtLWhl bHAgKSAgICAgICAgdXNhZ2U7IGV4aXQgMDs7Ci0tICAgICAgICAtdiB8IC0tdmVyc2lvbiApICAg ICBlY2hvIC1lICIkVkVSU0lPTiI7IGV4aXQgMDs7Ci0rICAgICAgICAtdiB8IC0tdmVyc2lvbiAp ICAgICAkRUNITyAtZSAiJFZFUlNJT04iOyBleGl0IDA7OwotICAgICAgICAgLWIgfCAtLWJ1aWxk ZGlyICkgICAgQlVJTERESVI9IiQyIjsgc2hpZnQgMjs7Ci0gICAgICAgICAtcyB8IC0tc3JjZGly ICkgICAgICBTUkNESVI9IiQyIjsgc2hpZnQgMjs7Ci0gICAgICAgICAtYyB8IC0tbm8tZ3JhcGhp Y3MgKSBIQVZFX0dSQVBISUNTPTA7IHNoaWZ0OzsKLUBAIC0xMjEsNyArMTI1LDcgQEAgaW5pdF9k ZXNrdG9wKCkKLSAgICAgZmkKLSAgICAgaWYgWyAiJFRFU1RfTE9HIiA9ICIiIF0gOyB0aGVuCi0g ICAgICAgICBwcmludF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogJHtSRUR9RVJST1Ike05DfTog YSBsb2cgZmlsZSBpcyByZXF1aXJlZCB0byBnZXQgcmV0dXJuIHZhbHVlIHdpdGggJ3JlYWQnIGNv bW1hbmQiCi0tICAgICAgICBleGl0IC0xCi0rICAgICAgICBleGl0IDI1NQotICAgICBlbGlmIFsg LWYgJFRFU1RfTE9HIF0gOyB0aGVuCi0gICAgICAgICBybSAkVEVTVF9MT0cKLSAgICAgZmkKLUBA IC0yOTEsNyArMjk1LDcgQEAgRU9GCi0gICAgIGRvbmUKLSAgICAgY2hpbGRfcGFzcz1gZ3JlcCAn XlBBU1M6JyAkVEVTVF9MT0cgfCB3YyAtbGAKLSAgICAgY2hpbGRfZmFpbD1gZ3JlcCAnXkZBSUw6 JyAkVEVTVF9MT0cgfCB3YyAtbGAKLS0gICAgaWYgWyAkY2hpbGRfcGFzcyAtbmUgMCAtbyAkY2hp bGRfZmFpbCAtbmUgMCBdIDsgdGhlbgotKyAgICBpZiBbICRjaGlsZF9wYXNzIC1uZSAwIF0gfHwg WyAkY2hpbGRfZmFpbCAtbmUgMCBdIDsgdGhlbgotICAgICAgICAgcGFzcz0kY2hpbGRfcGFzcwot ICAgICAgICAgaWYgWyAkY2hpbGRfZmFpbCAtbmUgMCBdIDsgdGhlbgotICAgICAgICAgICAgIGZh aWw9YGV4cHIgJGNoaWxkX2ZhaWwgLyAyYAotLS0gCi0yLjIxLjAKLQotRnJvbSBkNTA2MjdmMGI3 YTAwMGVlMTNlYTZkY2MwMmE0MTYyYmUxZmE4NTNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVHVlLCAz IERlYyAyMDE5IDIxOjQyOjQ5ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNyYy90ZXN0czogUkhF TCBjb2RlcmV2aWV3ICMyIGZvciBpYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIKLQotLS0tCi0g c3JjL3Rlc3RzL2lidXMtY29tcG9zZS1sb2NhbGVzLmluICAgICAgICB8IDIxICsrKysrKystLS0t LS0tLQotIHNyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIuaW4gfCAzMyArKysr KysrKysrKystLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyks IDI3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS1s b2NhbGVzLmluIGIvc3JjL3Rlc3RzL2lidXMtY29tcG9zZS1sb2NhbGVzLmluCi1pbmRleCBmNjUw YjU4NC4uYjM2MTY1ZmUgMTAwNzU1Ci0tLS0gYS9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLWxvY2Fs ZXMuaW4KLSsrKyBiL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UtbG9jYWxlcy5pbgotQEAgLTcsMjcg KzcsMjYgQEAgQlVJTERESVI9YGRpcm5hbWUgJDBgCi0gZXhwb3J0IElCVVNfQ09NUE9TRV9DQUNI RV9ESVI9JFBXRAotIAotIHJldHZhbD0wCi0tIyBMZXQgZm9yLWxvb3Agbm90aWNlICdcbicgYXMg YSBkZWxpbWl0ZXIKLS1JRlM9JCdcbicKLS1mb3IgdmFyIGluIGBjYXQgJFNSQ0RJUi9pYnVzLWNv bXBvc2UuZW52YAotKyMgRGVsZXRlZCBmb3IgdmFyIGluIGBjYXQgKi5lbnZgIGJlY2F1c2UgSUZT PSQnXG4nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gUE9TSVggc2gKLSt3aGlsZSByZWFkIHZhcgotIGRv Ci0tICAgICMgUmV2ZXJ0IElGUyB0byByZWNvZ25pemUgZW52IGE9Zm9vIGI9Zm9vCi0tICAgIElG Uz0nICcKLSAgICAgSVNfQ09NTUVOVD1gZWNobyAiJHZhciIgfCBncmVwICJeIyJgCi0gICAgIGlm IFsgIngkSVNfQ09NTUVOVCIgIT0geCBdIDsgdGhlbgotICAgICAgICAgY29udGludWUKLSAgICAg ZmkKLS0gICAgZWNobyAiIyBTdGFydGluZyAkdmFyICRCVUlMRERJUi9pYnVzLWNvbXBvc2UgJFNS Q0RJUiAkQCIKLS0gICAgZW52ICR2YXIgJEJVSUxERElSL2lidXMtY29tcG9zZSAkU1JDRElSICRA Ci0rICAgICMgVXNlICQqIGluc3RlYWQgb2YgJEAgbm90IHRvIG1peCBzdHJpbmdzIGFuZCBpbnRl Z2VycwotKyAgICBlY2hvICIjIFN0YXJ0aW5nICR2YXIgJEJVSUxERElSL2lidXMtY29tcG9zZSAk U1JDRElSICQqIgotKyAgICAjIE5lZWQgdG8gZW5jbG9zZSAkQCB3aXRoIGRvdWJsZSBxdW90ZXMg bm90IHRvIHNwbGl0IHRoZSBhcnJheS4KLSsgICAgZW52ICR2YXIgJEJVSUxERElSL2lidXMtY29t cG9zZSAkU1JDRElSICIkQCIKLSAgICAgcmV0dmFsPWBleHByICRyZXR2YWwgKyAkP2AKLS0gICAg ZWNobyAiIyBGaW5pc2hlZCAkdmFyICRCVUlMRERJUi9pYnVzLWNvbXBvc2UgJFNSQ0RJUiAkQCB3 aXRoICRyZXR2YWwiCi0rICAgIGVjaG8gIiMgRmluaXNoZWQgJHZhciAkQlVJTERESVIvaWJ1cy1j b21wb3NlICRTUkNESVIgJCogd2l0aCAkcmV0dmFsIgotIAotICAgICBDQUNIRV9GSUxFUz1gbHMg Ki5jYWNoZWAKLSAgICAgaWYgWyB4IiRDQUNIRV9GSUxFUyIgIT0geCBdIDsgdGhlbgotICAgICAg ICAgZWNobyAiQ2xlYW4gJENBQ0hFX0ZJTEVTIgotICAgICAgICAgcm0gJENBQ0hFX0ZJTEVTCi0g ICAgIGZpCi0tICAgIElGUz0kJ1xuJwotLWRvbmUKLS1JRlM9JyAnCi0rZG9uZSA8PCBFT0ZfRU5W UwotK2BjYXQgJFNSQ0RJUi9pYnVzLWNvbXBvc2UuZW52YAotK0VPRl9FTlZTCi0gZXhpdCAkcmV0 dmFsCi1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5p biBiL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIuaW4KLWluZGV4IDcyNTM3 Y2Q0Li45ODE5NDFkNSAxMDA3NTUKLS0tLSBhL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGlu Zy1ydW5uZXIuaW4KLSsrKyBiL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIu aW4KLUBAIC0zMCw2ICszMCw4IEBACi0gCi0gIyBQT1NJWCBzaCBoYXMgbm8gJ2VjaG8gLWUnCi0g OiAke0VDSE86PScvdXNyL2Jpbi9lY2hvJ30KLSsjIFBPU0lYIHNoIGhhcyAkVUlECi0rOiAke1VJ RDo9J2BpZCAtdWAnfQotIAotIAotIFBST0dOQU1FPWBiYXNlbmFtZSAkMGAKLUBAIC01NywxMCAr NTksMTAgQEAgcHJpbnRfbG9nKCkKLSAgICAgICAgIGlmIFsgeCIkMSIgPSB4Jy1lJyBdIDsgdGhl bgotICAgICAgICAgICAgIHNoaWZ0Ci0gICAgICAgICBmaQotLSAgICAgICAgTk9fRVNDQVBFPWBl Y2hvICRAIHwgc2VkIC1lICdzL1xcXDAzM1xcWzA7My5tLy9nJyAtZSAncy9cXFwwMzNcXFswbS8v ZydgCi0rICAgICAgICBOT19FU0NBUEU9YGVjaG8gIiRAIiB8IHNlZCAtZSAncy9cXFwwMzNcXFsw OzMubS8vZycgLWUgJ3MvXFxcMDMzXFxbMG0vL2cnYAotICAgICAgICAgJEVDSE8gJE5PX0VTQ0FQ RSA+PiAkUkVTVUxUX0xPRwotICAgICBlbHNlCi0tICAgICAgICAkRUNITyAkQAotKyAgICAgICAg JEVDSE8gIiRAIgotICAgICBmaQotIH0KLSAKLUBAIC0yMzEsOSArMjMzLDkgQEAgcnVuX2RpcmVj dF90ZXN0X2Nhc2VzKCkKLSAgICAgICAgIGlmIHRlc3QgeCIkRU5WUyIgPSB4IDsgdGhlbgotICAg ICAgICAgICAgICRCVUlMRERJUi8kdHN0ICRTUkNESVIgMj4+JFRFU1RfTE9HIDE+PiRURVNUX0xP RwotICAgICAgICAgICAgIHJldHZhbD0kPwotLSAgICAgICAgICAgIHJlYWQgcGFzcyBmYWlsIDw8 IEVPRgotKyAgICAgICAgICAgIHJlYWQgcGFzcyBmYWlsIDw8IEVPRl9DT1VOVAotICAgICAgICAg ICAgIGBjb3VudF9jYXNlX3Jlc3VsdCAkcmV0dmFsICRwYXNzICRmYWlsYAotLUVPRgotK0VPRl9D T1VOVAotICAgICAgICAgICAgIGVjaG9fY2FzZV9yZXN1bHQgJHJldHZhbCAkdHN0Ci0gICAgICAg ICAgICAgQ0FDSEVfRklMRVM9YGxzICouY2FjaGVgCi0gICAgICAgICAgICAgaWYgWyB4IiRDQUNI RV9GSUxFUyIgIT0geCBdIDsgdGhlbgotQEAgLTI0MiwxMSArMjQ0LDkgQEAgRU9GCi0gICAgICAg ICAgICAgZmkKLSAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICBpPTEKLS0gICAgICAgICAgICAj IExldCBmb3ItbG9vcCBub3RpY2UgJ1xuJyBhcyBhIGRlbGltaXRlcgotLSAgICAgICAgICAgIElG Uz0kJ1xuJwotLSAgICAgICAgICAgIGZvciBlIGluICRFTlZTOyBkbwotLSAgICAgICAgICAgICAg ICAjIFJldmVydCBJRlMgdG8gcmVjb2duaXplIGVudiBhPWZvbyBiPWZvbwotLSAgICAgICAgICAg ICAgICBJRlM9JyAnCi0rICAgICAgICAgICAgIyBEZWxldGVkIGZvciB2YXIgaW4gIiRFTlZTIiBi ZWNhdXNlIElGUz0kJ1xuJyBpcyBub3Qgc3VwcG9ydGVkCi0rICAgICAgICAgICAgIyBpbiBQT1NJ WCBzaAotKyAgICAgICAgICAgIHdoaWxlIHJlYWQgZSA7IGRvCi0gICAgICAgICAgICAgICAgIGZp cnN0PWBlY2hvICIkZSIgfCBncmVwICdeIydgCi0gICAgICAgICAgICAgICAgIGlmIHRlc3QgeCIk Zmlyc3QiID0geCIjIiA7IHRoZW4KLSAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi1AQCAt MjU1LDkgKzI1NSw5IEBAIEVPRgotICAgICAgICAgICAgICAgICBlbnYgJGUgJEJVSUxERElSLyR0 c3QgJFNSQ0RJUiAyPj4kVEVTVF9MT0cgMT4+JFRFU1RfTE9HCi0gICAgICAgICAgICAgICAgIHJl dHZhbD0kPwotICAgICAgICAgICAgICAgICBlY2hvICIjIEZpbmlzaGVkICRlICRCVUlMRERJUi8k dHN0ICRTUkNESVIgd2l0aCAkcmV0dmFsIiA+PiRURVNUX0xPRwotLSAgICAgICAgICAgICAgICBy ZWFkIHBhc3MgZmFpbCA8PCBFT0YKLSsgICAgICAgICAgICAgICAgcmVhZCBwYXNzIGZhaWwgPDwg RU9GX0NPVU5UCi0gICAgICAgICAgICAgICAgIGBjb3VudF9jYXNlX3Jlc3VsdCAkcmV0dmFsICRw YXNzICRmYWlsYAotLUVPRgotK0VPRl9DT1VOVAotICAgICAgICAgICAgICAgICBlY2hvX2Nhc2Vf cmVzdWx0ICRyZXR2YWwgJHRzdCAkZQotICAgICAgICAgICAgICAgICBDQUNIRV9GSUxFUz1gbHMg Ki5jYWNoZWAKLSAgICAgICAgICAgICAgICAgaWYgWyB4IiRDQUNIRV9GSUxFUyIgIT0geCBdIDsg dGhlbgotQEAgLTI2NSw5ICsyNjUsOSBAQCBFT0YKLSAgICAgICAgICAgICAgICAgICAgIHJtICRD QUNIRV9GSUxFUwotICAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICAgICBpPWBleHBy ICRpICsgMWAKLS0gICAgICAgICAgICAgICAgSUZTPSQnXG4nCi0tICAgICAgICAgICAgZG9uZQot LSAgICAgICAgICAgIElGUz0nICcKLSsgICAgICAgICAgICBkb25lIDw8IEVPRl9FTlZTCi0rICAg ICAgICAgICAgYGVjaG8gIiRFTlZTImAKLStFT0ZfRU5WUwotICAgICAgICAgZmkKLSAgICAgZG9u ZQotICAgICBlY2hvICRwYXNzICRmYWlsCi1AQCAtMzU3LDcgKzM1Nyw3IEBAIGZpbml0KCkKLSAK LSBtYWluKCkKLSB7Ci0tICAgIHBhcnNlX2FyZ3MgJEAKLSsgICAgcGFyc2VfYXJncyAiJEAiCi0g ICAgIGluaXRfZGVza3RvcAotICAgICBydW5fZGJ1c19kYWVtb24gMj4+JFRFU1RfTE9HIDE+PiRU RVNUX0xPRwotICAgICBydW5fZGVza3RvcCAyPj4kVEVTVF9MT0cgMT4+JFRFU1RfTE9HCi1AQCAt MzY1LDQgKzM2NSw1IEBAIG1haW4oKQotICAgICBmaW5pdAotIH0KLSAKLS1tYWluICRACi0rIyBO ZWVkIHRvIGVuY2xvc2UgJEAgd2l0aCBkb3VibGUgcXVvdGVzIG5vdCB0byBzcGxpdCB0aGUgYXJy YXkuCi0rbWFpbiAiJEAiCi0tLSAKLTIuMjEuMAotCi1Gcm9tIDI1ZDExZjVjZmQ0YzM5ZTUzYmUx MWExMzQ4ZGEyOWE2MTU5M2NjNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWpp d2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDExIERlYyAyMDE5 IDE2OjI4OjIyICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNsaWVudC9ndGsyOiBGaXggdG8gc2V0 IHVzZV9idXR0b25fcHJlc3NfZXZlbnQgYWZ0ZXIgc2lnbmFscwotIGFyZSBjb25uZWN0ZWQKLQot X2lidXNfY29udGV4dF91cGRhdGVfcHJlZWRpdF90ZXh0X2NiKCkgY2FuIGJlIGNhbGxlZCB3aXRo IHJlc2V0IHNpZ25hbHMKLWJlZm9yZSBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3co KSBpcyBjYWxsZWQuIFRoZW4KLXVzZV9idXR0b25fcHJlc3NfZXZlbnQgbmVlZHMgdG8gYmUgc2V0 IG9ubHkgd2hlbiB0aGUgc2lnbmFscyBhcmUgY29ubmVjdGVkLgotCi1CVUc9aHR0cHM6Ly9naXRo dWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMTk4MAotLS0tCi0gY2xpZW50L2d0azIvaWJ1c2ltY29u dGV4dC5jIHwgMTIgKysrKysrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NsaWVudC9ndGsyL2lidXNpbWNvbnRl eHQuYyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotaW5kZXggNWUzNDU3YmEuLmFjNWRl ODA5IDEwMDY0NAotLS0tIGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi0rKysgYi9jbGll bnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLUBAIC0xMDc0LDggKzEwNzQsOSBAQCBpYnVzX2ltX2Nv bnRleHRfcmVzZXQgKEd0a0lNQ29udGV4dCAqY29udGV4dCkKLSAgICAgICAgIC8qIENvbW1lbnRl ZCBvdXQgaWJ1c19pbV9jb250ZXh0X2NsZWFyX3ByZWVkaXRfdGV4dCgpLgotICAgICAgICAgICog SGFuZ3VsIG5lZWRzIHRvIHJlY2VpdmUgdGhlIHJlc2V0IGNhbGxiYWNrIHdpdGggYnV0dG9uIHBy ZXNzCi0gICAgICAgICAgKiBidXQgb3RoZXIgSU1FcyBzaG91bGQgYXZvaWQgdG8gcmVjZWl2ZSB0 aGUgcmVzZXQgY2FsbGJhY2sKLS0gICAgICAgICAqIHNvIHRoZSBzaWduYWwgd291bGQgbmVlZCB0 byBiZSBjdXN0b21pemVkIHdpdGggR3RrU2V0dGluZy4KLS0gICAgICAgICAqIElCdXMgdXNlcyBi dXR0b24tcHJlc3MtZXZlbnQgaW5zdGVhZC4KLSsgICAgICAgICAqIGJ5IHRoZW1zZWx2ZXMuCi0r ICAgICAgICAgKiBJQnVzIHVzZXMgYnV0dG9uLXByZXNzLWV2ZW50IGluc3RlYWQgdW50aWwgR1RL IGlzIGZpeGVkLgotKyAgICAgICAgICogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2d0 ay9pc3N1ZXMvMTUzNAotICAgICAgICAgICovCi0gICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRf cmVzZXQgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KTsKLSAgICAgfQotQEAgLTE2NTcsMTAg KzE2NTgsMTMgQEAgX2lidXNfY29udGV4dF91cGRhdGVfcHJlZWRpdF90ZXh0X2NiIChJQnVzSW5w dXRDb250ZXh0ICAqaWJ1c2NvbnRleHQsCi0gICAgIGlmICghaWJ1c2ltY29udGV4dC0+dXNlX2J1 dHRvbl9wcmVzc19ldmVudCAmJgotICAgICAgICAgbW9kZSA9PSBJQlVTX0VOR0lORV9QUkVFRElU X0NPTU1JVCkgewotICNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAwKQotLSAgICAgICAg aWYgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cpCi0rICAgICAgICBpZiAoaWJ1c2ltY29u dGV4dC0+Y2xpZW50X3dpbmRvdykgewotICAgICAgICAgICAgIF9jb25uZWN0X2J1dHRvbl9wcmVz c19ldmVudCAoaWJ1c2ltY29udGV4dCwgVFJVRSk7Ci0tI2VuZGlmCi0rICAgICAgICAgICAgaWJ1 c2ltY29udGV4dC0+dXNlX2J1dHRvbl9wcmVzc19ldmVudCA9IFRSVUU7Ci0rICAgICAgICB9Ci0r I2Vsc2UKLSAgICAgICAgIGlidXNpbWNvbnRleHQtPnVzZV9idXR0b25fcHJlc3NfZXZlbnQgPSBU UlVFOwotKyNlbmRpZgotICAgICB9Ci0gCi0gICAgIHN0ciA9IHRleHQtPnRleHQ7Ci0tLSAKLTIu MjEuMAotCi1Gcm9tIGM2NjJhMDJiZjNiNTA5MTRjNjk3YWYxMmZjMTUyZWU5N2UyZGY5NjEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+Ci1EYXRlOiBXZWQsIDI1IERlYyAyMDE5IDE3OjMwOjU2ICswOTAwCi1TdWJqZWN0 OiBbUEFUQ0hdIGNsaWVudC9ndGsyOiBGaXggdG8gY29ubmVjdCBidXR0b24tcHJlc3MtZXZlbnQg c2lnbmFsCi0KLUlCdXMgY2xpZW50cyBkbyBub3QgY29ubmVjdCBidXR0b24tcHJlc3MtZXZlbnQg aW4gc29tZSBjb25kaXRpb25zCi1hbmQgaXQgd2lsbCBiZSBmaXhlZC4KLQotQlVHPWh0dHBzOi8v Z2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzE5ODAKLS0tLQotIGNsaWVudC9ndGsyL2lidXNp bWNvbnRleHQuYyB8IDIxICsrKysrKysrKysrKy0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0 azIvaWJ1c2ltY29udGV4dC5jIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCBh YzVkZTgwOS4uMzA1ODU0MDMgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0 LmMKLSsrKyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotQEAgLTIsOCArMiw4IEBACi0g LyogdmltOnNldCBldCBzdHM9NDogKi8KLSAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwotICAqIENv cHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29t PgotLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWpp d2FyYTFAZ21haWwuY29tPgotLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJlZCBIYXQsIElu Yy4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVq aXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJ bmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTczLDcgKzczLDcgQEAgc3RydWN0IF9JQnVz SU1Db250ZXh0IHsKLSAgICAgR0NhbmNlbGxhYmxlICAgICpjYW5jZWxsYWJsZTsKLSAgICAgR1F1 ZXVlICAgICAgICAgICpldmVudHNfcXVldWU7Ci0gCi0tICAgIGdib29sZWFuIHVzZV9idXR0b25f cHJlc3NfZXZlbnQ7Ci0rICAgIGdib29sZWFuICAgICAgICAgdXNlX2J1dHRvbl9wcmVzc19ldmVu dDsKLSB9OwotIAotIHN0cnVjdCBfSUJ1c0lNQ29udGV4dENsYXNzIHsKLUBAIC0xMTI1LDYgKzEx MjUsMTAgQEAgaWJ1c19pbV9jb250ZXh0X2dldF9wcmVlZGl0X3N0cmluZyAoR3RrSU1Db250ZXh0 ICAgKmNvbnRleHQsCi0gCi0gCi0gI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCi0r LyogVXNlIHRoZSBidXR0b24tcHJlc3MtZXZlbnQgc2lnbmFsIHVudGlsIEd0a0lNQ29udGV4dCBh bHdheXMgZW1pdHMgdGhlIHJlc2V0Ci0rICogc2lnbmFsLgotKyAqIGh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9ndGsvbWVyZ2VfcmVxdWVzdHMvNDYwCi0rICovCi0gc3RhdGljIGdib29s ZWFuCi0gaWJ1c19pbV9jb250ZXh0X2J1dHRvbl9wcmVzc19ldmVudF9jYiAoR3RrV2lkZ2V0ICAg ICAgKndpZGdldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZGtF dmVudEJ1dHRvbiAqZXZlbnQsCi1AQCAtMTE1NywxMSArMTE2MSwxMyBAQCBfY29ubmVjdF9idXR0 b25fcHJlc3NfZXZlbnQgKElCdXNJTUNvbnRleHQgKmlidXNpbWNvbnRleHQsCi0gICAgICAgICAg ICAgICAgICAgICAiYnV0dG9uLXByZXNzLWV2ZW50IiwKLSAgICAgICAgICAgICAgICAgICAgIEdf Q0FMTEJBQ0sgKGlidXNfaW1fY29udGV4dF9idXR0b25fcHJlc3NfZXZlbnRfY2IpLAotICAgICAg ICAgICAgICAgICAgICAgaWJ1c2ltY29udGV4dCk7Ci0rICAgICAgICAgICAgaWJ1c2ltY29udGV4 dC0+dXNlX2J1dHRvbl9wcmVzc19ldmVudCA9IFRSVUU7Ci0gICAgICAgICB9IGVsc2UgewotICAg ICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyAoCi0gICAgICAg ICAgICAgICAgICAgICB3aWRnZXQsCi0gICAgICAgICAgICAgICAgICAgICBHX0NBTExCQUNLIChp YnVzX2ltX2NvbnRleHRfYnV0dG9uX3ByZXNzX2V2ZW50X2NiKSwKLSAgICAgICAgICAgICAgICAg ICAgIGlidXNpbWNvbnRleHQpOwotKyAgICAgICAgICAgIGlidXNpbWNvbnRleHQtPnVzZV9idXR0 b25fcHJlc3NfZXZlbnQgPSBGQUxTRTsKLSAgICAgICAgIH0KLSAgICAgfQotIH0KLUBAIC0xMTg4 LDcgKzExOTQsNyBAQCBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKEd0a0lNQ29u dGV4dCAqY29udGV4dCwgR2RrV2luZG93ICpjbGllbnQpCi0gICAgIGlmIChjbGllbnQgIT0gTlVM TCkgewotICAgICAgICAgaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdyA9IGdfb2JqZWN0X3Jl ZiAoY2xpZW50KTsKLSAjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5MywgMCkKLS0gICAgICAg IGlmIChpYnVzaW1jb250ZXh0LT51c2VfYnV0dG9uX3ByZXNzX2V2ZW50KQotKyAgICAgICAgaWYg KCFpYnVzaW1jb250ZXh0LT51c2VfYnV0dG9uX3ByZXNzX2V2ZW50KQotICAgICAgICAgICAgIF9j b25uZWN0X2J1dHRvbl9wcmVzc19ldmVudCAoaWJ1c2ltY29udGV4dCwgVFJVRSk7Ci0gI2VuZGlm Ci0gICAgIH0KLUBAIC0xNjU1LDE3ICsxNjYxLDE0IEBAIF9pYnVzX2NvbnRleHRfdXBkYXRlX3By ZWVkaXRfdGV4dF9jYiAoSUJ1c0lucHV0Q29udGV4dCAgKmlidXNjb250ZXh0LAotICAgICAgICAg aWJ1c2ltY29udGV4dC0+cHJlZWRpdF9hdHRycyA9IE5VTEw7Ci0gICAgIH0KLSAKLSsjaWYgIUdU S19DSEVDS19WRVJTSU9OICgzLCA5MywgMCkKLSAgICAgaWYgKCFpYnVzaW1jb250ZXh0LT51c2Vf YnV0dG9uX3ByZXNzX2V2ZW50ICYmCi0gICAgICAgICBtb2RlID09IElCVVNfRU5HSU5FX1BSRUVE SVRfQ09NTUlUKSB7Ci0tI2lmICFHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTMsIDApCi0gICAgICAg ICBpZiAoaWJ1c2ltY29udGV4dC0+Y2xpZW50X3dpbmRvdykgewotICAgICAgICAgICAgIF9jb25u ZWN0X2J1dHRvbl9wcmVzc19ldmVudCAoaWJ1c2ltY29udGV4dCwgVFJVRSk7Ci0tICAgICAgICAg ICAgaWJ1c2ltY29udGV4dC0+dXNlX2J1dHRvbl9wcmVzc19ldmVudCA9IFRSVUU7Ci0gICAgICAg ICB9Ci0tI2Vsc2UKLS0gICAgICAgIGlidXNpbWNvbnRleHQtPnVzZV9idXR0b25fcHJlc3NfZXZl bnQgPSBUUlVFOwotLSNlbmRpZgotICAgICB9Ci0rI2VuZGlmCi0gCi0gICAgIHN0ciA9IHRleHQt PnRleHQ7Ci0gICAgIGlidXNpbWNvbnRleHQtPnByZWVkaXRfc3RyaW5nID0gZ19zdHJkdXAgKHN0 cik7Ci0tLSAKLTIuMjEuMAotCi1Gcm9tIGVjYzM0NjVhNTg1NDQ4NDg2YjJjZTY4YmNlZmMxMWQ2 YWViYWU3NTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2Fv LmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDIzIEphbiAyMDIwIDE2OjEzOjA1ICsw OTAwCi1TdWJqZWN0OiBbUEFUQ0ggMS81XSBjbGllbnQvZ3RrMjogRml4IHNvbWUgZm9ybWF0IHNl bnRlbmNlcwotCi0tLS0KLSBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgfCAyMyArKysrKysr KysrKy0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMiBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyBi L2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotaW5kZXggMzA1ODU0MDMuLjUwMjkwYzU1IDEw MDY0NAotLS0tIGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi0rKysgYi9jbGllbnQvZ3Rr Mi9pYnVzaW1jb250ZXh0LmMKLUBAIC03Myw3ICs3Myw5IEBAIHN0cnVjdCBfSUJ1c0lNQ29udGV4 dCB7Ci0gICAgIEdDYW5jZWxsYWJsZSAgICAqY2FuY2VsbGFibGU7Ci0gICAgIEdRdWV1ZSAgICAg ICAgICAqZXZlbnRzX3F1ZXVlOwotIAotKyNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDkzLCAw KQotICAgICBnYm9vbGVhbiAgICAgICAgIHVzZV9idXR0b25fcHJlc3NfZXZlbnQ7Ci0rI2VuZGlm Ci0gfTsKLSAKLSBzdHJ1Y3QgX0lCdXNJTUNvbnRleHRDbGFzcyB7Ci1AQCAtMTM3LDEyICsxMzks MTIgQEAgc3RhdGljIHZvaWQgICAgIGlidXNfaW1fY29udGV4dF9zZXRfc3Vycm91bmRpbmcKLSAK LSAvKiBzdGF0aWMgbWV0aG9kcyovCi0gc3RhdGljIHZvaWQgICAgIF9pYnVzX2NvbnRleHRfdXBk YXRlX3ByZWVkaXRfdGV4dF9jYgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoSUJ1c0lucHV0Q29udGV4dCAgICppYnVzY29udGV4dCwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNUZXh0ICAgICAgICAgICAqdGV4dCwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgICAgICAg ICAgICAgICAgY3Vyc29yX3BvcywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgdmlzaWJsZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgbW9kZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNJTUNvbnRleHQg ICAgICAqaWJ1c2ltY29udGV4dCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoSUJ1c0lucHV0Q29udGV4dCAgICppYnVzY29udGV4dCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzVGV4dCAgICAgICAgICAgKnRl eHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAg ICAgICAgICAgICAgICBjdXJzb3JfcG9zLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgdmlzaWJsZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgIG1v ZGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1c0lN Q29udGV4dCAgICAgICppYnVzaW1jb250ZXh0KTsKLSBzdGF0aWMgdm9pZCAgICAgX2NyZWF0ZV9p bnB1dF9jb250ZXh0ICAgICAgIChJQnVzSU1Db250ZXh0ICAgICAgKmNvbnRleHQpOwotIHN0YXRp YyBnYm9vbGVhbiBfc2V0X2N1cnNvcl9sb2NhdGlvbl9pbnRlcm5hbAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNJTUNvbnRleHQgICAgICAqY29udGV4 dCk7Ci1AQCAtMTcyLDcgKzE3NCw2IEBAIHN0YXRpYyB2b2lkICAgICBfY3JlYXRlX2Zha2VfaW5w dXRfY29udGV4dCAgKHZvaWQpOwotIHN0YXRpYyBnYm9vbGVhbiBfc2V0X2NvbnRlbnRfdHlwZSAg ICAgICAgICAgKElCdXNJTUNvbnRleHQgICAgICAqY29udGV4dCk7Ci0gCi0gCi0tCi0gc3RhdGlj IEdUeXBlICAgICAgICAgICAgICAgIF9pYnVzX3R5cGVfaW1fY29udGV4dCA9IDA7Ci0gc3RhdGlj IEd0a0lNQ29udGV4dENsYXNzICAgICpwYXJlbnRfY2xhc3MgPSBOVUxMOwotIAotQEAgLTMxMyw3 ICszMTQsNiBAQCBfcHJvY2Vzc19rZXlfZXZlbnRfZG9uZSAoR09iamVjdCAgICAgICpvYmplY3Qs Ci0gewotICAgICBJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0ID0gKElCdXNJbnB1dENvbnRleHQg KilvYmplY3Q7Ci0gICAgIEdka0V2ZW50S2V5ICpldmVudCA9IChHZGtFdmVudEtleSAqKSB1c2Vy X2RhdGE7Ci0tCi0gICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOwotICAgICBnYm9vbGVhbiByZXR2 YWwgPSBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmNfZmluaXNoICgK LSAgICAgICAgICAgICBjb250ZXh0LAotQEAgLTM2MiwxMiArMzYyLDEwIEBAIF9wcm9jZXNzX2tl eV9ldmVudCAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCwKLSAgICAgICAgIHJldHZhbCA9IFRS VUU7Ci0gICAgIH0KLSAKLS0gICAgaWYgKHJldHZhbCkgewotKyAgICBpZiAocmV0dmFsKQotICAg ICAgICAgZXZlbnQtPnN0YXRlIHw9IElCVVNfSEFORExFRF9NQVNLOwotLSAgICB9Ci0tICAgIGVs c2UgewotKyAgICBlbHNlCi0gICAgICAgICBldmVudC0+c3RhdGUgfD0gSUJVU19JR05PUkVEX01B U0s7Ci0tICAgIH0KLSAKLSAgICAgcmV0dXJuIHJldHZhbDsKLSB9Ci1AQCAtMTUwOCw2ICsxNTA2 LDcgQEAgX2tleV9pc19tb2RpZmllciAoZ3VpbnQga2V5dmFsKQotICAgICAgICAgcmV0dXJuIEZB TFNFOwotICAgICB9Ci0gfQotKwotIC8qIENvcHkgZnJvbSBnZGsgKi8KLSBzdGF0aWMgR2RrRXZl bnRLZXkgKgotIF9jcmVhdGVfZ2RrX2V2ZW50IChJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0 LAotLS0gCi0yLjI0LjEKLQotRnJvbSBhZmMwYTg5Yzc0OTUwMzUxYzMyZGYzZDYwYWJiMzQzYTBk YmMwNmNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWxleCBIZW5yaWUgPGFsZXho ZW5yaWUyNEBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDI0IEphbiAyMDIwIDE1OjM3OjAxICswOTAw Ci1TdWJqZWN0OiBbUEFUQ0ggMi81XSBIYW5kbGUgc21hbGwgZmluYWwgc2lnbWEgaW4gaWJ1c19r ZXl2YWxfY29udmVydF9jYXNlCi0KLWxvd2VyY2FzZTogR1JFRUsgU01BTEwgTEVUVEVSIEZJTkFM IFNJR01BIChVKzAzQzIpCi11cHBlcmNhc2U6IEdSRUVLIENBUElUQUwgTEVUVEVSIFNJR01BIChV KzAzQTMpCi0KLVRoaXMgbWFwcGluZyB3YXMgY29ycmVjdCBpbiBVQ1NDb252ZXJ0Q2FzZSwgYnV0 IHRoZSAibGVnYWN5IiBtYXBwaW5nCi1tdXN0IGFsc28gYmUgY29ycmVjdCBmb3IgQ2FwcyBMb2Nr IHRvIHdvcmsgd2l0aCB0aGUgZmluYWwgc2lnbWEga2V5LgotCi1odHRwczovL2dpdGxhYi5mcmVl ZGVza3RvcC5vcmcveG9yZy9saWIvbGlieDExL2NvbW1pdC83ZjQ2YTM4MTM5Ci0KLUJVRz1odHRw czovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL3B1bGwvMjE3NgotLS0tCi0gc3JjL2lidXNrZXluYW1l cy5jIHwgNSArKystLQotIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2tleW5hbWVzLmMgYi9zcmMvaWJ1c2tleW5h bWVzLmMKLWluZGV4IDA4NTA1NTk4Li41NDRjNmFkZSAxMDA2NDQKLS0tLSBhL3NyYy9pYnVza2V5 bmFtZXMuYwotKysrIGIvc3JjL2lidXNrZXluYW1lcy5jCi1AQCAtMzMxLDggKzMzMSw5IEBAIGli dXNfa2V5dmFsX2NvbnZlcnRfY2FzZSAoZ3VpbnQgc3ltYm9sLAotICAgICAgICAgeHVwcGVyIC09 IChJQlVTX0tFWV9HcmVla19hbHBoYWFjY2VudCAtIElCVVNfS0VZX0dyZWVrX0FMUEhBYWNjZW50 KTsKLSAgICAgICBlbHNlIGlmIChzeW1ib2wgPj0gSUJVU19LRVlfR3JlZWtfQUxQSEEgJiYgc3lt Ym9sIDw9IElCVVNfS0VZX0dyZWVrX09NRUdBKQotICAgICAgICAgeGxvd2VyICs9IChJQlVTX0tF WV9HcmVla19hbHBoYSAtIElCVVNfS0VZX0dyZWVrX0FMUEhBKTsKLS0gICAgICBlbHNlIGlmIChz eW1ib2wgPj0gSUJVU19LRVlfR3JlZWtfYWxwaGEgJiYgc3ltYm9sIDw9IElCVVNfS0VZX0dyZWVr X29tZWdhICYmCi0tICAgICAgICAgICAgICAgc3ltYm9sICE9IElCVVNfS0VZX0dyZWVrX2ZpbmFs c21hbGxzaWdtYSkKLSsgICAgICBlbHNlIGlmIChzeW1ib2wgPT0gSUJVU19LRVlfR3JlZWtfZmlu YWxzbWFsbHNpZ21hKQotKyAgICAgICAgeHVwcGVyID0gSUJVU19LRVlfR3JlZWtfU0lHTUE7Ci0r ICAgICAgZWxzZSBpZiAoc3ltYm9sID49IElCVVNfS0VZX0dyZWVrX2FscGhhICYmIHN5bWJvbCA8 PSBJQlVTX0tFWV9HcmVla19vbWVnYSkKLSAgICAgICAgIHh1cHBlciAtPSAoSUJVU19LRVlfR3Jl ZWtfYWxwaGEgLSBJQlVTX0tFWV9HcmVla19BTFBIQSk7Ci0gICAgICAgYnJlYWs7Ci0gICAgIH0K LS0tIAotMi4yNC4xCi0KLUZyb20gNzQ4NjM4NTFlODM5NzJlODZhNWJkYjNkYTNkOTk3ODRmYzhk NDk1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVq aXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMjggSmFuIDIwMjAgMTg6NDY6MTMgKzA5MDAK LVN1YmplY3Q6IFtQQVRDSCAzLzVdIHNyYy90ZXN0czogSW5jcmVhc2Ugc2xlZXAgdG8gMyB3YWl0 aW5nIGZvciBJQnVzQ29uZmlnCi0KLVNsZWVwIDEgd291bGQgYmUgdG9vIHNob3J0IGZvciBpYnVz LWRhZW1vbiB3aGljaCBjb3VsZCBydW4gYWxsIGNvbXBvbmVudHMuCi1pYnVzLWNvbmZpZyB0ZXN0 IHJlcXVpcmVzIHRoZSBydW5uaW5nIElCdXNDb25maWcgYW5kIHRoZSB0ZXN0IGNvdWxkIGZhaWwK LWluIHNvbWUgc2xvdyBzeXN0ZW1zLgotU2xlZXAgdGltZSB3aWxsIGJlIGluY3JlYXNlZCB0byAz IHRvIHJ1biBhbGwgY29tcG9uZW50cy4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2li dXMvaXNzdWVzLzIxNzAKLS0tLQotIHNyYy90ZXN0cy9pYnVzLWNvbmZpZy5jICAgICAgICAgICAg ICAgICAgfCA0ICsrKysKLSBzcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyLmlu IHwgMiArLQotIHNyYy90ZXN0cy9ydW50ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgfCAyICst Ci0gMyBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1jb25maWcuYyBiL3NyYy90ZXN0cy9pYnVzLWNvbmZp Zy5jCi1pbmRleCA1ZTg0NWYxMC4uMGQ5ODEyYTMgMTAwNjQ0Ci0tLS0gYS9zcmMvdGVzdHMvaWJ1 cy1jb25maWcuYwotKysrIGIvc3JjL3Rlc3RzL2lidXMtY29uZmlnLmMKLUBAIC0xNiw2ICsxNiwx MCBAQCBmaW5pc2hfY3JlYXRlX2NvbmZpZ19hc3luY19zdWNjZXNzIChHT2JqZWN0ICAgICAgKnNv dXJjZV9vYmplY3QsCi0gICAgIElCdXNDb25maWcgKmNvbmZpZyA9Ci0gICAgICAgICAgIGlidXNf Y29uZmlnX25ld19hc3luY19maW5pc2ggKHJlcywgJmVycm9yKTsKLSAKLSsgICAgaWYgKGVycm9y KSB7Ci0rICAgICAgICBnX21lc3NhZ2UgKCJGYWlsZWQgdG8gZ2VuZXJhdGUgSUJ1c0NvbmZpZzog JXMiLCBlcnJvci0+bWVzc2FnZSk7Ci0rICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKLSsg ICAgfQotICAgICBnX2Fzc2VydCAoSUJVU19JU19DT05GSUcgKGNvbmZpZykpOwotIAotICAgICAv KiBTaW5jZSB3ZSByZXVzZSBzaW5nbGUgRC1CdXMgY29ubmVjdGlvbiwgd2UgbmVlZCB0byByZW1v dmUgdGhlCi1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5l ci5pbiBiL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIuaW4KLWluZGV4IDk4 MTk0MWQ1Li4wZDlhODQ3YyAxMDA3NTUKLS0tLSBhL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVz dGluZy1ydW5uZXIuaW4KLSsrKyBiL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5u ZXIuaW4KLUBAIC0xOTAsNyArMTkwLDcgQEAgcnVuX2Rlc2t0b3AoKQotICAgICBIQVNfR05PTUU9 YGVjaG8gJERFU0tUT1BfQ09NTUFORCB8IGdyZXAgZ25vbWUtc2Vzc2lvbmAKLSAgICAgaWYgWyB4 IiRIQVNfR05PTUUiID0geCBdIDsgdGhlbgotICAgICAgICAgaWJ1cy1kYWVtb24gLS1kYWVtb25p emUgLS12ZXJib3NlCi0tICAgICAgICBzbGVlcCAxCi0rICAgICAgICBzbGVlcCAzCi0gICAgIGZp Ci0gfQotIAotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9ydW50ZXN0IGIvc3JjL3Rlc3RzL3J1bnRl c3QKLWluZGV4IGVkMzg5OTJmLi5hNmU0MTk0YiAxMDA3NTUKLS0tLSBhL3NyYy90ZXN0cy9ydW50 ZXN0Ci0rKysgYi9zcmMvdGVzdHMvcnVudGVzdAotQEAgLTE4MCw3ICsxODAsNyBAQCBydW5fdGVz dF9jYXNlKCkKLSAgICAgICAgIGZpCi0gCi0gICAgICAgICAjIFdhaXQgdW50aWwgYWxsIG5lY2Vz c2FyeSBjb21wb25lbnRzIGFyZSB1cC4KLS0gICAgICAgIHNsZWVwIDEKLSsgICAgICAgIHNsZWVw IDMKLSAKLSAgICAgICAgIGV4cG9ydCBHVEtfSU1fTU9EVUxFPWlidXMKLSAgICAgZmkKLS0tIAot Mi4yNC4xCi0KLUZyb20gY2Q0ZmVmNWEzMjkwODY5ZmMxYzM2MzkyZjVkNDA0ZmEwOTkzMjkyNiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMzEgSmFuIDIwMjAgMTU6MzU6MDIgKzA5MDAKLVN1Ympl Y3Q6IFtQQVRDSCA0LzVdIHNyYzogRml4IFNFR1YgdG8gYWNjZXNzIE5VTEwgR0Vycm9yIHdoZW4g Y29tcG9zZSBsZW5ndGgKLSBpcyB6ZXJvCi0KLUJVRz1yaGJ6IzE3ODg3NTQKLS0tLQotIHNyYy9p YnVzY29tcG9zZXRhYmxlLmMgfCA2ICsrKystLQotIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c2NvbXBvc2V0YWJs ZS5jIGIvc3JjL2lidXNjb21wb3NldGFibGUuYwotaW5kZXggZTRlM2E3Y2QuLjNmNDM5MTM0IDEw MDY0NAotLS0tIGEvc3JjL2lidXNjb21wb3NldGFibGUuYwotKysrIGIvc3JjL2lidXNjb21wb3Nl dGFibGUuYwotQEAgLTEyNywxMiArMTI3LDE0IEBAIHBhcnNlX2NvbXBvc2VfdmFsdWUgKElCdXND b21wb3NlRGF0YSAgKmNvbXBvc2VfZGF0YSwKLSAgICAgICAgIGNvbXBvc2VfZGF0YS0+dmFsdWVz WzBdID0gZ19hc2NpaV9zdHJ0b2xsKHAsIE5VTEwsIDgpOwotICAgICAgICAgY29tcG9zZV9kYXRh LT52YWx1ZXNbMV0gPSAwOwotICAgICB9IGVsc2UgewotLSAgICAgICAgaWYgKCEodWNoYXJzID0g Z191dGY4X3RvX3VjczQgKHVzdHIsIC0xLCBOVUxMLCBOVUxMLCAmZXJyb3IpKSB8fAotLSAgICAg ICAgICAgICF1Y2hhcnNbMF0pIHsKLSsgICAgICAgIGlmICghKHVjaGFycyA9IGdfdXRmOF90b191 Y3M0ICh1c3RyLCAtMSwgTlVMTCwgTlVMTCwgJmVycm9yKSkpIHsKLSAgICAgICAgICAgICBnX3dh cm5pbmcgKCJJbnZhbGlkIFVuaWNvZGU6ICVzOiAlcyBpbiAlczoiLAotICAgICAgICAgICAgICAg ICAgICAgICAgZXJyb3ItPm1lc3NhZ2UsIHVzdHIsIGxpbmUpOwotICAgICAgICAgICAgIGdfZXJy b3JfZnJlZSAoZXJyb3IpOwotICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSsgICAgICAgIH0gZWxz ZSBpZiAoIXVjaGFyc1swXSkgewotKyAgICAgICAgICAgIGdfd2FybmluZyAoIkludmFsaWQgVW5p Y29kZTogXCJcIiBpbiAlczoiLCBsaW5lKTsKLSsgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAg ICAgICB9Ci0gCi0gICAgICAgICBmb3IgKHVwID0gdWNoYXJzOyAqdXA7IHVwKyspIHsKLS0tIAot Mi4yNC4xCi0KLUZyb20gYTE3MDVhZDdlNWY5MGNmOGQ4N2NhZjMyZDdiN2FjYzcxMjVlNjc3OCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KLURhdGU6IFRodSwgMTMgRmViIDIwMjAgMTY6NDk6MTIgKzA5MDAKLVN1Ympl Y3Q6IFtQQVRDSCA1LzVdIGJ1czogRml4IHJlY3Vyc2l2ZSBta2RpciBpcyBmYWlsZWQgaW4KLSAv dmFyL2xpYi9nZG0vLmNhY2hlL2lidXMKLQotSWYgdGhlIHBhcmVudCBkaXJlY3RvcnkgKC92YXIv bGliL2dkbS8uY2FjaGUpIGlzIG5vdCBjcmVhdGVkLAotbWtkaXIgY2hpbGRkaXIgKC92YXIvbGli L2dkbS8uY2FjaGUvaWJ1cykgaXMgZmFpbGVkIGJ5IHRoZSBwYXJlbnRkaXIKLXdpdGggbW9kZV90 ID0gMC4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIxNzcKLS0t LQotIGJ1cy9zZXJ2ZXIuYyB8IDEyICsrKystLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9idXMvc2VydmVyLmMg Yi9idXMvc2VydmVyLmMKLWluZGV4IGE3NTU0YTg4Li42YzllMmMwMiAxMDA2NDQKLS0tLSBhL2J1 cy9zZXJ2ZXIuYwotKysrIGIvYnVzL3NlcnZlci5jCi1AQCAtMjc3LDE3ICsyNzcsMTMgQEAgYnVz X3NlcnZlcl9pbml0ICh2b2lkKQotICAgICAgICAgICAgICAgICAgc29ja2V0X2FkZHJlc3MpOwot ICAgICB9Ci0gICAgIGlmICghZ19maWxlX3Rlc3QgKHVuaXhfZGlyLCBHX0ZJTEVfVEVTVF9FWElT VFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSB7Ci0tICAgICAgICAvKiBSZXF1aXJlIG1rZGlyIGZv ciBCU0Qgc3lzdGVtLiAqLwotLSAgICAgICAgaWYgKGdfbWtkaXJfd2l0aF9wYXJlbnRzICh1bml4 X2RpciwgMCkgIT0gMCkgewotLSAgICAgICAgICAgIGdfZXJyb3IgKCJta2RpciBpcyBmYWlsZWQg aW46ICVzOiAlcyIsCi0tICAgICAgICAgICAgICAgICAgICAgdW5peF9kaXIsIGdfc3RyZXJyb3Ig KGVycm5vKSk7Ci0tICAgICAgICB9Ci0tICAgICAgICAvKiBUaGUgbW9kZSAwNzAwIGNhbiBlbGlt aW5hdGUgbWFsaWNpb3VzIHVzZXJzIGNoYW5nZSB0aGUgbW9kZS4KLSsgICAgICAgIC8qIFJlcXVp cmUgbWtkaXIgZm9yIEJTRCBzeXN0ZW0uCi0rICAgICAgICAgKiBUaGUgbW9kZSAwNzAwIGNhbiBl bGltaW5hdGUgbWFsaWNpb3VzIHVzZXJzIGNoYW5nZSB0aGUgbW9kZS4KLSAgICAgICAgICAqIGBj aG1vZGAgcnVucyBmb3IgdGhlIGxhc3QgZGlyZWN0b3J5IG9ubHkgbm90IHRvIGNoYW5nZSB0aGUg bW9kZXMKLSAgICAgICAgICAqIG9mIHRoZSBwYXJlbnQgZGlyZWN0b3JpZXMuIEUuZy4gIi90bXAv aWJ1cyIuCi0gICAgICAgICAgKi8KLS0gICAgICAgIGlmIChnX2NobW9kICh1bml4X2RpciwgMDcw MCkgIT0gMCkgewotLSAgICAgICAgICAgIGdfZXJyb3IgKCJjaG1vZCg3MDApIGlzIGZhaWxlZCBp bjogJXM6ICVzIiwKLSsgICAgICAgIGlmIChnX21rZGlyX3dpdGhfcGFyZW50cyAodW5peF9kaXIs IDA3MDApICE9IDApIHsKLSsgICAgICAgICAgICBnX2Vycm9yICgibWtkaXIgaXMgZmFpbGVkIGlu OiAlczogJXMiLAotICAgICAgICAgICAgICAgICAgICAgIHVuaXhfZGlyLCBnX3N0cmVycm9yIChl cnJubykpOwotICAgICAgICAgfQotICAgICB9Ci0tLSAKLTIuMjQuMQotCg==