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: Migrate upstream fixes Date: Sun, 31 May 2026 02:07:17 GMT Message-ID: <178019323783.1.63508555038622714.rpms-ibus-66e07d2dbc09@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 66e07d2dbc09bce7848b96a11cf75a25851ff063 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiA2NmUwN2QyZGJjMDliY2U3ODQ4Yjk2YTExY2Y3NWEyNTg1MWZmMDYzCiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDE5LTExLTE4VDEzOjM4OjUwKzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsyNTc4Ly0xNSBpbiAyIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9pYnVzL2MvNjZlMDdkMmRiYzA5YmNlNzg0OGI5 NmExMWNmNzVhMjU4NTFmZjA2Mz9icmFuY2g9YXV0b3Rvb2wKCiAgICAgICAgICAgIExvZzoKICAg ICAgICAgICAgTWlncmF0ZSB1cHN0cmVhbSBmaXhlcwoKLSBSZXBsYWNlIHB1c2ggd2l0aCBjZCBm b3IgUG9zaXggU0gKLSBVc2UgWERHX0NPTkZJR19IT01FIGZvciBVbml4IHNvY2tldCBkaXJlY3Rv cnkKLSBGaXggZGVwcmVjYXRlZCBBUElzCi0gRml4IHJlc3RhcnQgY3Jhc2ggd2l0aCBpbm90aWZ5 IHJlYWQoKQotIEZpeCBCdWcgMTY1ODE4NyBleGl0IGBpYnVzIGVtb2ppYCB3aXRoIEVzY2FwZSBr ZXkKLSBBZGQgZnIoYmVwb19hZm5vcikga2V5bWFwCi0gQWRkIGZpbGUgbGlzdCBpbiByZWdpc3Ry eSBmaWxlIGZvciBTaWx2ZXJibHVlCgotLS0KZGlmZiAtLWdpdCBhL2lidXMtSEVBRC5wYXRjaCBi L2lidXMtSEVBRC5wYXRjaAppbmRleCA2ZmFhMTBmLi5iYmQ4NzJhIDEwMDY0NAotLS0gYS9pYnVz LUhFQUQucGF0Y2gKKysrIGIvaWJ1cy1IRUFELnBhdGNoCkBAIC0xLDMgKzEsMTA0NyBAQAorRnJv bSBmY2IyMTg3ZGQ0NmQ3MTAzMTg2N2YzYmQ0MzE5NmMyNDQ4NjkzNDY5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgor RGF0ZTogRnJpLCA2IFNlcCAyMDE5IDIwOjU5OjQ5ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIHNy Yy90ZXN0czogUmVwbGFjZSBwdXNoIHdpdGggY2QgZm9yIFBvc2l4IFNICisKK0JVRz1odHRwczov L2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yMTI0CitCVUc9aHR0cHM6Ly9naXRodWIuY29t L2lidXMvaWJ1cy9pc3N1ZXMvMjEyNgorLS0tCisgc3JjL3Rlc3RzL2lidXMtY29uZmlnLmMgfCAy ICstCisgc3JjL3Rlc3RzL3J1bnRlc3QgICAgICAgfCA1ICsrKy0tCisgMiBmaWxlcyBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvdGVz dHMvaWJ1cy1jb25maWcuYyBiL3NyYy90ZXN0cy9pYnVzLWNvbmZpZy5jCitpbmRleCA5YjkyNWFk OS4uNWU4NDVmMTAgMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMvaWJ1cy1jb25maWcuYworKysrIGIv c3JjL3Rlc3RzL2lidXMtY29uZmlnLmMKK0BAIC0xMTQsNyArMTE0LDcgQEAgdGVzdF9jb25maWdf c2V0X2dldCAodm9pZCkKKyAgICAgICAgICAgICB2YWx1ZV9iaXRzIHw9ICgxIDw8IDEpOworICAg ICAgICAgfQorICAgICAgICAgZWxzZSB7CistICAgICAgICAgICAgZ193YXJuaW5nICgidW5rbm93 IHZhbHVlIG5hbWU9JXMiLCBuYW1lKTsKKysgICAgICAgICAgICBnX3dhcm5pbmcgKCJVbmtub3du IHZhbHVlIG5hbWU9JXMiLCBuYW1lKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGlidXNfY29uZmln X3Vuc2V0IChjb25maWcsICJ0ZXN0IiwgbmFtZSk7CisgICAgICAgICBnX3ZhcmlhbnRfdW5yZWYg KHZhbHVlKTsKK2RpZmYgLS1naXQgYS9zcmMvdGVzdHMvcnVudGVzdCBiL3NyYy90ZXN0cy9ydW50 ZXN0CitpbmRleCAxZmNjOTI4My4uZWQzODk5MmYgMTAwNzU1CistLS0gYS9zcmMvdGVzdHMvcnVu dGVzdAorKysrIGIvc3JjL3Rlc3RzL3J1bnRlc3QKK0BAIC0xMTEsNyArMTExLDggQEAgZmkKKyBy dW5fdGVzdF9jYXNlKCkKKyB7CisgICAgIHRlc3QgLWQgJHRzdGRpciB8fCBta2RpciAkdHN0ZGly CistICAgIHB1c2hkICR0c3RkaXIKKysgICAgYmFja3VwX2Rpcj0kUFdECisrICAgIGNkICR0c3Rk aXIKKyAKKyAgICAgbmVlZF9idXM9bm8KKyAgICAgZm9yIHQgaW4gJEJVU19SRVFVSVJFRF9URVNU UzsgZG8KK0BAIC0xOTAsNyArMTkxLDcgQEAgcnVuX3Rlc3RfY2FzZSgpCisgCisgICAgIHJldHZh bD1gZXhwciAkcmV0dmFsIFx8ICQ/YAorIAorLSAgICBwb3BkCisrICAgIGNkICRiYWNrdXBfZGly CisgCisgICAgIGZ1bmNfY2xlYW51cCAkdHN0ZGlyCisgfQorLS0gCisyLjIxLjAKKworRnJvbSA0 OGE4ZDdlZDU4YmRmYjAyYzI0YzgwMzliYWUxY2IxNWQ0ZmMxYmNlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0 ZTogRnJpLCA2IFNlcCAyMDE5IDIxOjI0OjI0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIERlbGV0 ZSBkZXByZWNhdGVkIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSBzaW5jZSBnbGliIDIuNTgKKwor R19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUoKSBhbmQgR19BRERfUFJJVkFURSgpIGhhdmUgYmVl biBhdmFpbGFibGUKK3NpbmNlIDIuMzguCitJQnVzU2VydmljZSBoYXMgY3VzdG9tIEdCYXNlSW5p dEZ1bmMgYW5kIEdCYXNlRmluYWxpemVGdW5jIGluCitpYnVzX3NlcnZpY2VfZ2V0X3R5cGUoKSBh bmQgaW1wbGVtZW50cyBpYnVzX3NlcnZpY2VfcHJpdmF0ZV9vZmZzZXQKK2FuZCBpYnVzX3NlcnZp Y2VfZ2V0X2luc3RhbmNlX3ByaXZhdGUoKSBkaXJlY3RseSB3aXRob3V0CitHX0RFRklORV9UWVBF X1dJVEhfUFJJVkFURSgpLgorLS0tCisgYnVzL2lidXNpbXBsLmMgICAgICAgICB8ICA3ICsrKy0t LQorIHNyYy9pYnVzYnVzLmMgICAgICAgICAgfCAgOCArKystLS0KKyBzcmMvaWJ1c2NvbXBvbmVu dC5jICAgIHwgMTAgKysrKy0tLS0KKyBzcmMvaWJ1c2NvbmZpZy5jICAgICAgIHwgIDkgKysrLS0t LQorIHNyYy9pYnVzZW1vamkuYyAgICAgICAgfCAxNCArKysrKy0tLS0tLQorIHNyYy9pYnVzZW5n aW5lLmMgICAgICAgfCAxMCArKystLS0tLQorIHNyYy9pYnVzZW5naW5lZGVzYy5jICAgfCAxMCAr KysrLS0tLQorIHNyYy9pYnVzZW5naW5lc2ltcGxlLmMgfCAgOCArKystLS0KKyBzcmMvaWJ1c2Zh Y3RvcnkuYyAgICAgIHwgIDggKysrLS0tCisgc3JjL2lidXNob3RrZXkuYyAgICAgICB8IDU1ICsr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNyYy9pYnVzaW5wdXRj b250ZXh0LmMgfCAxMiArKysrLS0tLS0KKyBzcmMvaWJ1c29iamVjdC5jICAgICAgIHwgIDggKysr LS0tCisgc3JjL2lidXNvYnNlcnZlZHBhdGguYyB8ICA2ICsrLS0tCisgc3JjL2lidXNwcm9wZXJ0 eS5jICAgICB8ICA4ICsrKy0tLQorIHNyYy9pYnVzcmVnaXN0cnkuYyAgICAgfCAxMCArKystLS0t LQorIHNyYy9pYnVzc2VyaWFsaXphYmxlLmMgfCAyNCArKysrKysrKysrKysrKy0tLS0KKyBzcmMv aWJ1c3NlcnZpY2UuYyAgICAgIHwgMzQgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KKyBzcmMv aWJ1c3VuaWNvZGUuYyAgICAgIHwgMjQgKysrKysrKystLS0tLS0tLS0tCisgc3JjL2lidXN4ZXZl bnQuYyAgICAgICB8IDIyICsrKysrKysrLS0tLS0tLS0tCisgMTkgZmlsZXMgY2hhbmdlZCwgMTM1 IGluc2VydGlvbnMoKyksIDE1MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2J1cy9pYnVz aW1wbC5jIGIvYnVzL2lidXNpbXBsLmMKK2luZGV4IGJiYmI1NzcwLi4zOWIxNjEzOSAxMDA2NDQK Ky0tLSBhL2J1cy9pYnVzaW1wbC5jCisrKysgYi9idXMvaWJ1c2ltcGwuYworQEAgLTIsOCArMiw4 IEBACisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cwor ICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21h aWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJlZCBI YXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQg SGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTIxODAsNyArMjE4MCw4IEBAIGJ1 c19pYnVzX2ltcGxfcmVnaXN0cnlfZGVzdHJveSAoQnVzSUJ1c0ltcGwgKmlidXMpCisgCisgICAg IGdfY2xlYXJfcG9pbnRlciAoJmlidXMtPmVuZ2luZV90YWJsZSwgZ19oYXNoX3RhYmxlX2Rlc3Ry b3kpOworIAorLSAgICBnX2NsZWFyX3BvaW50ZXIgKCZpYnVzLT5yZWdpc3RyeSwgaWJ1c19vYmpl Y3RfZGVzdHJveSk7CisrICAgIGlidXNfb2JqZWN0X2Rlc3Ryb3kgKElCVVNfT0JKRUNUIChpYnVz LT5yZWdpc3RyeSkpOworKyAgICBpYnVzLT5yZWdpc3RyeSA9IE5VTEw7CisgCisgICAgIGlmIChp YnVzLT5leHRlbnNpb25fcmVnaXN0ZXJfa2V5cykKKyAgICAgICAgIGdfY2xlYXJfcG9pbnRlciAo JmlidXMtPmV4dGVuc2lvbl9yZWdpc3Rlcl9rZXlzLCBnX3ZhcmlhbnRfdW5yZWYpOworZGlmZiAt LWdpdCBhL3NyYy9pYnVzYnVzLmMgYi9zcmMvaWJ1c2J1cy5jCitpbmRleCAwOTA1NDg1MS4uMDc4 M2U3YmIgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2J1cy5jCisrKysgYi9zcmMvaWJ1c2J1cy5jCitA QCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUg SW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgUGVuZyBIdWFuZyA8c2hhd24u cC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggVGFrYW8gRnVq aXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDE1 LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICogQ29w eXJpZ2h0IChDKSAyMDA4LTIwMTYgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorQEAgLTM2 LDcgKzM2LDcgQEAKKyAjaW5jbHVkZSAiaWJ1c2NvbmZpZy5oIgorIAorICNkZWZpbmUgSUJVU19C VVNfR0VUX1BSSVZBVEUobykgIFwKKy0gICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgo byksIElCVVNfVFlQRV9CVVMsIElCdXNCdXNQcml2YXRlKSkKKysgICAoKElCdXNCdXNQcml2YXRl ICopaWJ1c19idXNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIGVudW0geworICAgICBD T05ORUNURUQsCitAQCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkICAgICAgaWJ1c19idXNf Z2V0X3Byb3BlcnR5ICAgICAgICAgICAoSUJ1c0J1cyAgICAgICAgICAgICAgICAqYnVzLAorIAor IHN0YXRpYyB2b2lkICAgICBpYnVzX2J1c19jbG9zZV9jb25uZWN0aW9uICAgICAgICAoSUJ1c0J1 cyAgICAgICAgICAgICAgICAqYnVzKTsKKyAKKy1HX0RFRklORV9UWVBFIChJQnVzQnVzLCBpYnVz X2J1cywgSUJVU19UWVBFX09CSkVDVCkKKytHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1 c0J1cywgaWJ1c19idXMsIElCVVNfVFlQRV9PQkpFQ1QpCisgCisgc3RhdGljIHZvaWQKKyBpYnVz X2J1c19jbGFzc19pbml0IChJQnVzQnVzQ2xhc3MgKmNsYXNzKQorQEAgLTIzNCw4ICsyMzQsNiBA QCBpYnVzX2J1c19jbGFzc19pbml0IChJQnVzQnVzQ2xhc3MgKmNsYXNzKQorICAgICAgICAgICAg IEdfVFlQRV9OT05FLAorICAgICAgICAgICAgIDMsCisgICAgICAgICAgICAgR19UWVBFX1NUUklO RywgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORyk7CistCistICAgIGdfdHlwZV9jbGFzc19h ZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0J1c1ByaXZhdGUpKTsKKyB9CisgCisgc3Rh dGljIHZvaWQKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c2NvbXBvbmVudC5jIGIvc3JjL2lidXNjb21w b25lbnQuYworaW5kZXggYTkzM2U3OWIuLjk4MzdmNDdjIDEwMDY0NAorLS0tIGEvc3JjL2lidXNj b21wb25lbnQuYworKysrIGIvc3JjL2lidXNjb21wb25lbnQuYworQEAgLTIsNyArMiw3IEBACisg LyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29w eXJpZ2h0IChDKSAyMDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+ CistICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdo dCAoQykgMjAwOC0yMDE5IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAt NTgsNyArNTgsNyBAQCBzdHJ1Y3QgX0lCdXNDb21wb25lbnRQcml2YXRlIHsKKyB9OworIAorICNk ZWZpbmUgSUJVU19DT01QT05FTlRfR0VUX1BSSVZBVEUobykgIFwKKy0gICAoR19UWVBFX0lOU1RB TkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9DT01QT05FTlQsIElCdXNDb21wb25lbnRQ cml2YXRlKSkKKysgICAoKElCdXNDb21wb25lbnRQcml2YXRlICopaWJ1c19jb21wb25lbnRfZ2V0 X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIC8vIHN0YXRpYyBndWludCAgICAgICAgICAgIF9z aWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OworIAorQEAgLTkwLDcgKzkwLDkgQEAgc3RhdGlj IHZvaWQgICAgICAgICBpYnVzX2NvbXBvbmVudF9wYXJzZV9vYnNlcnZlZF9wYXRocworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxOb2RlICAgICAg ICAgICAgICAgICpub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICBhY2Nlc3NfZnMpOworIAorLUdfREVG SU5FX1RZUEUgKElCdXNDb21wb25lbnQsIGlidXNfY29tcG9uZW50LCBJQlVTX1RZUEVfU0VSSUFM SVpBQkxFKQorK0dfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJQnVzQ29tcG9uZW50LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX2NvbXBvbmVudCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKKyAKKyBzdGF0aWMgdm9pZAor IGlidXNfY29tcG9uZW50X2NsYXNzX2luaXQgKElCdXNDb21wb25lbnRDbGFzcyAqY2xhc3MpCitA QCAtOTksOCArMTAxLDYgQEAgaWJ1c19jb21wb25lbnRfY2xhc3NfaW5pdCAoSUJ1c0NvbXBvbmVu dENsYXNzICpjbGFzcykKKyAgICAgSUJ1c09iamVjdENsYXNzICpvYmplY3RfY2xhc3MgPSBJQlVT X09CSkVDVF9DTEFTUyAoY2xhc3MpOworICAgICBJQnVzU2VyaWFsaXphYmxlQ2xhc3MgKnNlcmlh bGl6YWJsZV9jbGFzcyA9IElCVVNfU0VSSUFMSVpBQkxFX0NMQVNTIChjbGFzcyk7CisgCistICAg IGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0NvbXBvbmVudFBy aXZhdGUpKTsKKy0KKyAgICAgZ29iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gKEdPYmplY3RT ZXRQcm9wZXJ0eUZ1bmMpIGlidXNfY29tcG9uZW50X3NldF9wcm9wZXJ0eTsKKyAgICAgZ29iamVj dF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gKEdPYmplY3RHZXRQcm9wZXJ0eUZ1bmMpIGlidXNfY29t cG9uZW50X2dldF9wcm9wZXJ0eTsKKyAgICAgb2JqZWN0X2NsYXNzLT5kZXN0cm95ID0gKElCdXNP YmplY3REZXN0cm95RnVuYykgaWJ1c19jb21wb25lbnRfZGVzdHJveTsKK2RpZmYgLS1naXQgYS9z cmMvaWJ1c2NvbmZpZy5jIGIvc3JjL2lidXNjb25maWcuYworaW5kZXggNjIxYTRlNTMuLjcxM2Zl MjUxIDEwMDY0NAorLS0tIGEvc3JjL2lidXNjb25maWcuYworKysrIGIvc3JjL2lidXNjb25maWcu YworQEAgLTIsNyArMiw3IEBACisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVzIC0g VGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNo YXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFJlZCBI YXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCisgICoK KyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworQEAgLTI3LDcgKzI3LDcgQEAKKyAjaW5jbHVkZSAiaWJ1c2Vycm9y LmgiCisgCisgI2RlZmluZSBJQlVTX0NPTkZJR19HRVRfUFJJVkFURShvKSAgXAorLSAgIChHX1RZ UEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX0NPTkZJRywgSUJ1c0NvbmZp Z1ByaXZhdGUpKQorKyAgICgoSUJ1c0NvbmZpZ1ByaXZhdGUgKilpYnVzX2NvbmZpZ19nZXRfaW5z dGFuY2VfcHJpdmF0ZSAobykpCisgCisgZW51bSB7CisgICAgIFZBTFVFX0NIQU5HRUQsCitAQCAt NjUsNiArNjUsNyBAQCBzdGF0aWMgdm9pZCAgICAgIF9zaWduYWxfdW5zdWJzY3JpYmUgICAgICAg IChHREJ1c1Byb3h5ICAgICAgICAgKnByb3h5LAorIHN0YXRpYyB2b2lkICAgICAgX3JlbW92ZV9h bGxfbWF0Y2hfcnVsZXMgICAgKElCdXNDb25maWcgICAgICAgICAqY29uZmlnKTsKKyAKKyBHX0RF RklORV9UWVBFX1dJVEhfQ09ERSAoSUJ1c0NvbmZpZywgaWJ1c19jb25maWcsIElCVVNfVFlQRV9Q Uk9YWSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgR19BRERfUFJJVkFURSAoSUJ1c0NvbmZp ZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFIChHX1RZ UEVfSU5JVEFCTEUsIGluaXRhYmxlX2lmYWNlX2luaXQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRSAoR19UWVBFX0FTWU5DX0lOSVRBQkxFLCBhc3luY19p bml0YWJsZV9pZmFjZV9pbml0KQorICAgICAgICAgICAgICAgICAgICAgICAgICApOworQEAgLTc1 LDggKzc2LDYgQEAgaWJ1c19jb25maWdfY2xhc3NfaW5pdCAoSUJ1c0NvbmZpZ0NsYXNzICpjbGFz cykKKyAgICAgR0RCdXNQcm94eUNsYXNzICpkYnVzX3Byb3h5X2NsYXNzID0gR19EQlVTX1BST1hZ X0NMQVNTIChjbGFzcyk7CisgICAgIElCdXNQcm94eUNsYXNzICpwcm94eV9jbGFzcyA9IElCVVNf UFJPWFlfQ0xBU1MgKGNsYXNzKTsKKyAKKy0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChj bGFzcywgc2l6ZW9mIChJQnVzQ29uZmlnUHJpdmF0ZSkpOworLQorICAgICBkYnVzX3Byb3h5X2Ns YXNzLT5nX3NpZ25hbCA9IGlidXNfY29uZmlnX2dfc2lnbmFsOworICAgICBwcm94eV9jbGFzcy0+ ZGVzdHJveSA9IGlidXNfY29uZmlnX3JlYWxfZGVzdHJveTsKKyAKK0BAIC0xMTYsNyArMTE1LDcg QEAgaWJ1c19jb25maWdfaW5pdCAoSUJ1c0NvbmZpZyAqY29uZmlnKQorIHN0YXRpYyB2b2lkCisg aWJ1c19jb25maWdfcmVhbF9kZXN0cm95IChJQnVzUHJveHkgKnByb3h5KQorIHsKKy0gICAgSUJ1 c0NvbmZpZ1ByaXZhdGUgKnByaXYgPSBJQlVTX0NPTkZJR19HRVRfUFJJVkFURSAocHJveHkpOwor KyAgICBJQnVzQ29uZmlnUHJpdmF0ZSAqcHJpdiA9IElCVVNfQ09ORklHX0dFVF9QUklWQVRFIChJ QlVTX0NPTkZJRyAocHJveHkpKTsKKyAKKyAgICAgX3NpZ25hbF91bnN1YnNjcmliZSAoR19EQlVT X1BST1hZIChwcm94eSksIHByaXYtPndhdGNoX2NvbmZpZ19zaWduYWxfaWQpOworICAgICBfcmVt b3ZlX2FsbF9tYXRjaF9ydWxlcyAoSUJVU19DT05GSUcgKHByb3h5KSk7CitkaWZmIC0tZ2l0IGEv c3JjL2lidXNlbW9qaS5jIGIvc3JjL2lidXNlbW9qaS5jCitpbmRleCBkNTZjNDhhYS4uYWU4OTA3 YTIgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2Vtb2ppLmMKKysrKyBiL3NyYy9pYnVzZW1vamkuYwor QEAgLTEsOCArMSw4IEBACisgLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRl bnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLworIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyog YnVzIC0gVGhlIElucHV0IEJ1cworLSAqIENvcHlyaWdodCAoQykgMjAxNyBUYWthbyBGdWppd2Fy YSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgUmVk IEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IFRha2FvIEZ1aml3YXJhIDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IFJl ZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtNDcsOSArNDcsNyBAQCBzdHJ1 Y3QgX0lCdXNFbW9qaURhdGFQcml2YXRlIHsKKyB9OworIAorICNkZWZpbmUgSUJVU19FTU9KSV9E QVRBX0dFVF9QUklWQVRFKG8pICBcCistICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAo KG8pLCBcCistICAgIElCVVNfVFlQRV9FTU9KSV9EQVRBLCBcCistICAgIElCdXNFbW9qaURhdGFQ cml2YXRlKSkKKysgICAoKElCdXNFbW9qaURhdGFQcml2YXRlICopaWJ1c19lbW9qaV9kYXRhX2dl dF9pbnN0YW5jZV9wcml2YXRlIChvKSkKKyAKKyAvKiBmdW5jdGlvbnMgcHJvdG90eXBlICovCisg c3RhdGljIHZvaWQgICAgICBpYnVzX2Vtb2ppX2RhdGFfc2V0X3Byb3BlcnR5ICAoSUJ1c0Vtb2pp RGF0YSAgICAgICAqZW1vamksCitAQCAtNjgsNyArNjYsOSBAQCBzdGF0aWMgZ2ludCAgICAgIGli dXNfZW1vamlfZGF0YV9kZXNlcmlhbGl6ZSAgIChJQnVzRW1vamlEYXRhICAgICAgICplbW9qaSwK KyBzdGF0aWMgZ2Jvb2xlYW4gIGlidXNfZW1vamlfZGF0YV9jb3B5ICAgICAgICAgIChJQnVzRW1v amlEYXRhICAgICAgICplbW9qaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBJQnVzRW1vamlEYXRhICpzcmMpOworIAorLUdfREVGSU5FX1RZ UEUgKElCdXNFbW9qaURhdGEsIGlidXNfZW1vamlfZGF0YSwgSUJVU19UWVBFX1NFUklBTElaQUJM RSkKKytHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1c0Vtb2ppRGF0YSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWJ1c19lbW9qaV9kYXRhLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQorIAorIHN0YXRpYyB2b2lkCisgaWJ1 c19lbW9qaV9kYXRhX2NsYXNzX2luaXQgKElCdXNFbW9qaURhdGFDbGFzcyAqY2xhc3MpCitAQCAt ODksOCArODksNiBAQCBpYnVzX2Vtb2ppX2RhdGFfY2xhc3NfaW5pdCAoSUJ1c0Vtb2ppRGF0YUNs YXNzICpjbGFzcykKKyAgICAgc2VyaWFsaXphYmxlX2NsYXNzLT5jb3B5ICAgICAgICA9CisgICAg ICAgICAgICAgKElCdXNTZXJpYWxpemFibGVDb3B5RnVuYykgaWJ1c19lbW9qaV9kYXRhX2NvcHk7 CisgCistICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0Vt b2ppRGF0YVByaXZhdGUpKTsKKy0KKyAgICAgLyogaW5zdGFsbCBwcm9wZXJ0aWVzICovCisgICAg IC8qKgorICAgICAgKiBJQnVzRW1vamlEYXRhOmVtb2ppOgorZGlmZiAtLWdpdCBhL3NyYy9pYnVz ZW5naW5lLmMgYi9zcmMvaWJ1c2VuZ2luZS5jCitpbmRleCA3ZmI0ZTg1Ni4uOWFlYWZiZjkgMTAw NjQ0CistLS0gYS9zcmMvaWJ1c2VuZ2luZS5jCisrKysgYi9zcmMvaWJ1c2VuZ2luZS5jCitAQCAt Miw4ICsyLDggQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5w dXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5o dWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDE4IFRha2FvIEZ1aml3YXJhIDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJl ZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBS ZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTMyLDcgKzMyLDcgQEAKKyAj aW5jbHVkZSAiaWJ1c3hldmVudC5oIgorIAorICNkZWZpbmUgSUJVU19FTkdJTkVfR0VUX1BSSVZB VEUobykgIFwKKy0gICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQ RV9FTkdJTkUsIElCdXNFbmdpbmVQcml2YXRlKSkKKysgICAoKElCdXNFbmdpbmVQcml2YXRlICop aWJ1c19lbmdpbmVfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIGVudW0geworICAgICBQ Uk9DRVNTX0tFWV9FVkVOVCwKK0BAIC0xODcsNyArMTg3LDcgQEAgc3RhdGljIHZvaWQgICAgICBp YnVzX2VuZ2luZV9kYnVzX3Byb3BlcnR5X2NoYW5nZWQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAgICAgICAgICp2YWx1ZSk7CisgCisg CistR19ERUZJTkVfVFlQRSAoSUJ1c0VuZ2luZSwgaWJ1c19lbmdpbmUsIElCVVNfVFlQRV9TRVJW SUNFKQorK0dfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJQnVzRW5naW5lLCBpYnVzX2VuZ2lu ZSwgSUJVU19UWVBFX1NFUlZJQ0UpCisgCisgc3RhdGljIGNvbnN0IGdjaGFyIGludHJvc3BlY3Rp b25feG1sW10gPQorICAgICAiPG5vZGU+IgorQEAgLTgzMCw4ICs4MzAsNiBAQCBpYnVzX2VuZ2lu ZV9jbGFzc19pbml0IChJQnVzRW5naW5lQ2xhc3MgKmNsYXNzKQorICAgICAgICAgICAgIEdfVFlQ RV9VSU5ULAorICAgICAgICAgICAgIEdfVFlQRV9VSU5UKTsKKyAKKy0gICAgZ190eXBlX2NsYXNz X2FkZF9wcml2YXRlIChjbGFzcywgc2l6ZW9mIChJQnVzRW5naW5lUHJpdmF0ZSkpOworLQorICAg ICB0ZXh0X2VtcHR5ID0gaWJ1c190ZXh0X25ld19mcm9tX3N0YXRpY19zdHJpbmcgKCIiKTsKKyAg ICAgZ19vYmplY3RfcmVmX3NpbmsgKHRleHRfZW1wdHkpOworIH0KK2RpZmYgLS1naXQgYS9zcmMv aWJ1c2VuZ2luZWRlc2MuYyBiL3NyYy9pYnVzZW5naW5lZGVzYy5jCitpbmRleCAyMjYyMjg2NS4u MDY0NTg4YmQgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2VuZ2luZWRlc2MuYworKysrIGIvc3JjL2li dXNlbmdpbmVkZXNjLmMKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICov CisgLyogYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE1IFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAw OC0yMDE1IFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0 LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTcyLDcgKzcyLDcgQEAgc3RydWN0IF9J QnVzRW5naW5lRGVzY1ByaXZhdGUgeworIH07CisgCisgI2RlZmluZSBJQlVTX0VOR0lORV9ERVND X0dFVF9QUklWQVRFKG8pICBcCistICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8p LCBJQlVTX1RZUEVfRU5HSU5FX0RFU0MsIElCdXNFbmdpbmVEZXNjUHJpdmF0ZSkpCisrICAgKChJ QnVzRW5naW5lRGVzY1ByaXZhdGUgKilpYnVzX2VuZ2luZV9kZXNjX2dldF9pbnN0YW5jZV9wcml2 YXRlIChvKSkKKyAKKyAvLyBzdGF0aWMgZ3VpbnQgICAgICAgICAgICBfc2lnbmFsc1tMQVNUX1NJ R05BTF0gPSB7IDAgfTsKKyAKK0BAIC05NSw3ICs5NSw5IEBAIHN0YXRpYyBnYm9vbGVhbiAgICAg aWJ1c19lbmdpbmVfZGVzY19jb3B5ICAgICAgICAgICAoSUJ1c0VuZ2luZURlc2MgICAgICAgICAq ZGVzCisgc3RhdGljIGdib29sZWFuICAgICBpYnVzX2VuZ2luZV9kZXNjX3BhcnNlX3htbF9ub2Rl IChJQnVzRW5naW5lRGVzYyAgICAgICAgICpkZXNjLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9kZSAgICAgICAgICAgICAgICAqbm9k ZSk7CisgCistR19ERUZJTkVfVFlQRSAoSUJ1c0VuZ2luZURlc2MsIGlidXNfZW5naW5lX2Rlc2Ms IElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCisrR19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUgKElC dXNFbmdpbmVEZXNjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9k ZXNjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX1RZUEVfU0VSSUFMSVpBQkxF KQorIAorIAorIHN0YXRpYyB2b2lkCitAQCAtMTEzLDggKzExNSw2IEBAIGlidXNfZW5naW5lX2Rl c2NfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZURlc2NDbGFzcyAqY2xhc3MpCisgICAgIHNlcmlhbGl6 YWJsZV9jbGFzcy0+ZGVzZXJpYWxpemUgPSAoSUJ1c1NlcmlhbGl6YWJsZURlc2VyaWFsaXplRnVu YykgaWJ1c19lbmdpbmVfZGVzY19kZXNlcmlhbGl6ZTsKKyAgICAgc2VyaWFsaXphYmxlX2NsYXNz LT5jb3B5ICAgICAgICA9IChJQnVzU2VyaWFsaXphYmxlQ29weUZ1bmMpIGlidXNfZW5naW5lX2Rl c2NfY29weTsKKyAKKy0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChjbGFzcywgc2l6ZW9m IChJQnVzRW5naW5lRGVzY1ByaXZhdGUpKTsKKy0KKyAgICAgLyogaW5zdGFsbCBwcm9wZXJ0aWVz ICovCisgICAgIC8qKgorICAgICAgKiBJQnVzRW5naW5lRGVzYzpuYW1lOgorZGlmZiAtLWdpdCBh L3NyYy9pYnVzZW5naW5lc2ltcGxlLmMgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCitpbmRleCBi NjIzZTE0OS4uNDNiZDUyODMgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCisr KysgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCitAQCAtNDUsNyArNDUsNyBAQAorIAorICNkZWZp bmUgWDExX0RBVEFESVIgWDExX0RBVEFfUFJFRklYICIvc2hhcmUvWDExL2xvY2FsZSIKKyAjZGVm aW5lIElCVVNfRU5HSU5FX1NJTVBMRV9HRVRfUFJJVkFURShvKSAgXAorLSAgIChHX1RZUEVfSU5T VEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX0VOR0lORV9TSU1QTEUsIElCdXNFbmdp bmVTaW1wbGVQcml2YXRlKSkKKysgICAoKElCdXNFbmdpbmVTaW1wbGVQcml2YXRlICopaWJ1c19l bmdpbmVfc2ltcGxlX2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKKyAKKyAjZGVmaW5lIFNFVF9D T01QT1NFX0JVRkZFUl9FTEVNRU5UX05FWFQoYnVmZmVyLCBpbmRleCwgdmFsdWUpIHsgICAgICAg ICBcCisgICAgIGlmICgoaW5kZXgpID49IENPTVBPU0VfQlVGRkVSX1NJWkUgJiYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorQEAgLTE1MCw3ICsxNTAsOSBAQCBzdGF0aWMgdm9pZCAg ICAgaWJ1c19lbmdpbmVfc2ltcGxlX2NvbW1pdF9zdHIgIChJQnVzRW5naW5lU2ltcGxlICAgICpz aW1wbGUsCisgc3RhdGljIHZvaWQgICAgIGlidXNfZW5naW5lX3NpbXBsZV91cGRhdGVfcHJlZWRp dF90ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo SUJ1c0VuZ2luZVNpbXBsZSAgICAqc2ltcGxlKTsKKyAKKy1HX0RFRklORV9UWVBFIChJQnVzRW5n aW5lU2ltcGxlLCBpYnVzX2VuZ2luZV9zaW1wbGUsIElCVVNfVFlQRV9FTkdJTkUpCisrR19ERUZJ TkVfVFlQRV9XSVRIX1BSSVZBVEUgKElCdXNFbmdpbmVTaW1wbGUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlidXNfZW5naW5lX3NpbXBsZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSUJVU19UWVBFX0VOR0lORSkKKyAKKyBzdGF0aWMgdm9pZAorIGlidXNfZW5naW5lX3Np bXBsZV9jbGFzc19pbml0IChJQnVzRW5naW5lU2ltcGxlQ2xhc3MgKmNsYXNzKQorQEAgLTE3MCw4 ICsxNzIsNiBAQCBpYnVzX2VuZ2luZV9zaW1wbGVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZVNpbXBs ZUNsYXNzICpjbGFzcykKKyAgICAgZW5naW5lX2NsYXNzLT5wYWdlX3VwICAgPSBpYnVzX2VuZ2lu ZV9zaW1wbGVfcGFnZV91cDsKKyAgICAgZW5naW5lX2NsYXNzLT5jYW5kaWRhdGVfY2xpY2tlZAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGlidXNfZW5naW5lX3NpbXBsZV9jYW5kaWRh dGVfY2xpY2tlZDsKKy0KKy0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChjbGFzcywgc2l6 ZW9mIChJQnVzRW5naW5lU2ltcGxlUHJpdmF0ZSkpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorZGlm ZiAtLWdpdCBhL3NyYy9pYnVzZmFjdG9yeS5jIGIvc3JjL2lidXNmYWN0b3J5LmMKK2luZGV4IGU5 MTVjOTMxLi5jYjliNTNjYyAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzZmFjdG9yeS5jCisrKysgYi9z cmMvaWJ1c2ZhY3RvcnkuYworQEAgLTIsNyArMiw3IEBACisgLyogdmltOnNldCBldCBzdHM9NDog Ki8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE1 IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykg MjAwOC0yMDE1IFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQg SGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTI2LDcgKzI2LDcgQEAKKyAjaW5j bHVkZSAiaWJ1c2ludGVybmFsLmgiCisgCisgI2RlZmluZSBJQlVTX0ZBQ1RPUllfR0VUX1BSSVZB VEUobykgIFwKKy0gICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQ RV9GQUNUT1JZLCBJQnVzRmFjdG9yeVByaXZhdGUpKQorKyAgICgoSUJ1c0ZhY3RvcnlQcml2YXRl ICopaWJ1c19mYWN0b3J5X2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkKKyAKKyBlbnVtIHsKKyAg ICAgQ1JFQVRFX0VOR0lORSwKK0BAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyB2b2lkICAgICAgaWJ1 c19mYWN0b3J5X2VuZ2luZV9kZXN0cm95X2NiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKElCdXNFbmdpbmUgICAgICAgICAqZW5naW5lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzRmFjdG9yeSAgICAgICAg KmZhY3RvcnkpOworIAorLUdfREVGSU5FX1RZUEUgKElCdXNGYWN0b3J5LCBpYnVzX2ZhY3Rvcnks IElCVVNfVFlQRV9TRVJWSUNFKQorK0dfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJQnVzRmFj dG9yeSwgaWJ1c19mYWN0b3J5LCBJQlVTX1RZUEVfU0VSVklDRSkKKyAKKyBzdGF0aWMgY29uc3Qg Z2NoYXIgaW50cm9zcGVjdGlvbl94bWxbXSA9CisgICAgICI8bm9kZT4iCitAQCAtMTU4LDggKzE1 OCw2IEBAIGlidXNfZmFjdG9yeV9jbGFzc19pbml0IChJQnVzRmFjdG9yeUNsYXNzICpjbGFzcykK KyAKKyAgICAgaWJ1c19zZXJ2aWNlX2NsYXNzX2FkZF9pbnRlcmZhY2VzIChJQlVTX1NFUlZJQ0Vf Q0xBU1MgKGNsYXNzKSwgaW50cm9zcGVjdGlvbl94bWwpOworIAorLSAgICBnX3R5cGVfY2xhc3Nf YWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2YgKElCdXNGYWN0b3J5UHJpdmF0ZSkpOworLQorICAg ICAvKioKKyAgICAgICogSUJ1c0ZhY3Rvcnk6OmNyZWF0ZS1lbmdpbmU6CisgICAgICAqIEBmYWN0 b3J5OiB0aGUgZmFjdG9yeSB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCitkaWZmIC0tZ2l0IGEv c3JjL2lidXNob3RrZXkuYyBiL3NyYy9pYnVzaG90a2V5LmMKK2luZGV4IDI0OWVkNWQyLi5kNGFi N2MyMyAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzaG90a2V5LmMKKysrKyBiL3NyYy9pYnVzaG90a2V5 LmMKK0BAIC0yLDggKzIsOCBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogSUJ1cyAt IFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxz aGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTggVGFrYW8gRnVq aXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDA4 LTIwMTggUmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IFRha2FvIEZ1 aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAw OC0yMDE5IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtMjcsNyArMjcs NyBAQAorICNpbmNsdWRlICJpYnVzc2hhcmUuaCIKKyAKKyAjZGVmaW5lIElCVVNfSE9US0VZX1BS T0ZJTEVfR0VUX1BSSVZBVEUobykgIFwKKy0gICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRF ICgobyksIElCVVNfVFlQRV9IT1RLRVlfUFJPRklMRSwgSUJ1c0hvdGtleVByb2ZpbGVQcml2YXRl KSkKKysgICAoKElCdXNIb3RrZXlQcm9maWxlUHJpdmF0ZSAqKWlidXNfaG90a2V5X3Byb2ZpbGVf Z2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIGVudW0geworICAgICBUUklHR0VSLAorQEAg LTc5LDcgKzc5LDEwIEBAIHN0YXRpYyBndWludCAgICAgICAgIG5vcm1hbGl6ZV9tb2RpZmllcnMg ICAgICAgICAgICAoZ3VpbnQgICAgICAgICAgICAgICAgICAga2V5CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAg ICAgICBtb2RpZmllcnMpOworIHN0YXRpYyBnYm9vbGVhbiAgICAgIGlzX21vZGlmaWVyICAgICAg ICAgICAgICAgICAgICAoZ3VpbnQgICAgICAgICAgICAgICAgICAga2V5dmFsKTsKKyAKKy1zdGF0 aWMgSUJ1c1NlcmlhbGl6YWJsZUNsYXNzICpwYXJlbnRfY2xhc3MgPSBOVUxMOworK0dfREVGSU5F X1RZUEVfV0lUSF9QUklWQVRFIChJQnVzSG90a2V5UHJvZmlsZSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWJ1c19ob3RrZXlfcHJvZmlsZSwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKKysKKyAKKyBzdGF0aWMgZ3VpbnQgcHJvZmls ZV9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OworIAorQEAgLTE0MSw0MyArMTQ0LDEyIEBA IGlidXNfaG90a2V5X2NtcF93aXRoX2RhdGEgKElCdXNIb3RrZXkgKmhvdGtleTEsCisgCisgCisg CistR1R5cGUKKy1pYnVzX2hvdGtleV9wcm9maWxlX2dldF90eXBlICh2b2lkKQorLXsKKy0gICAg c3RhdGljIEdUeXBlIHR5cGUgPSAwOworLQorLSAgICBzdGF0aWMgY29uc3QgR1R5cGVJbmZvIHR5 cGVfaW5mbyA9IHsKKy0gICAgICAgIHNpemVvZiAoSUJ1c0hvdGtleVByb2ZpbGVDbGFzcyksCist ICAgICAgICAoR0Jhc2VJbml0RnVuYykgICAgIE5VTEwsCistICAgICAgICAoR0Jhc2VGaW5hbGl6 ZUZ1bmMpIE5VTEwsCistICAgICAgICAoR0NsYXNzSW5pdEZ1bmMpICAgIGlidXNfaG90a2V5X3By b2ZpbGVfY2xhc3NfaW5pdCwKKy0gICAgICAgIE5VTEwsICAgICAgICAgICAgICAgLyogY2xhc3Mg ZmluYWxpemUgKi8KKy0gICAgICAgIE5VTEwsICAgICAgICAgICAgICAgLyogY2xhc3MgZGF0YSAq LworLSAgICAgICAgc2l6ZW9mIChJQnVzSG90a2V5UHJvZmlsZSksCistICAgICAgICAwLAorLSAg ICAgICAgKEdJbnN0YW5jZUluaXRGdW5jKSBpYnVzX2hvdGtleV9wcm9maWxlX2luaXQsCistICAg IH07CistCistICAgIGlmICh0eXBlID09IDApIHsKKy0gICAgICAgIHR5cGUgPSBnX3R5cGVfcmVn aXN0ZXJfc3RhdGljIChJQlVTX1RZUEVfU0VSSUFMSVpBQkxFLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJJQnVzSG90a2V5UHJvZmlsZSIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnR5cGVfaW5mbywKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwKTsKKy0gICAgfQorLQorLSAgICByZXR1cm4gdHlwZTsK Ky19CistCisgc3RhdGljIHZvaWQKKyBpYnVzX2hvdGtleV9wcm9maWxlX2NsYXNzX2luaXQgKElC dXNIb3RrZXlQcm9maWxlQ2xhc3MgKmNsYXNzKQorIHsKKyAgICAgSUJ1c09iamVjdENsYXNzICpv YmplY3RfY2xhc3MgPSBJQlVTX09CSkVDVF9DTEFTUyAoY2xhc3MpOworICAgICBJQnVzU2VyaWFs aXphYmxlQ2xhc3MgKnNlcmlhbGl6YWJsZV9jbGFzcyA9IElCVVNfU0VSSUFMSVpBQkxFX0NMQVNT IChjbGFzcyk7CisgCistICAgIHBhcmVudF9jbGFzcyA9IChJQnVzU2VyaWFsaXphYmxlQ2xhc3Mg KikgZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50IChjbGFzcyk7CistCistICAgIGdfdHlwZV9jbGFz c19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAoSUJ1c0hvdGtleVByb2ZpbGVQcml2YXRlKSk7 CistCisgICAgIG9iamVjdF9jbGFzcy0+ZGVzdHJveSA9IChJQnVzT2JqZWN0RGVzdHJveUZ1bmMp IGlidXNfaG90a2V5X3Byb2ZpbGVfZGVzdHJveTsKKyAKKyAgICAgc2VyaWFsaXphYmxlX2NsYXNz LT5zZXJpYWxpemUgICA9IChJQnVzU2VyaWFsaXphYmxlU2VyaWFsaXplRnVuYykgaWJ1c19ob3Rr ZXlfcHJvZmlsZV9zZXJpYWxpemU7CitAQCAtMjU1LDcgKzIyNyw4IEBAIGlidXNfaG90a2V5X3By b2ZpbGVfZGVzdHJveSAoSUJ1c0hvdGtleVByb2ZpbGUgKnByb2ZpbGUpCisgICAgICAgICBwcml2 LT5ob3RrZXlzID0gTlVMTDsKKyAgICAgfQorIAorLSAgICBJQlVTX09CSkVDVF9DTEFTUyAocGFy ZW50X2NsYXNzKS0+ZGVzdHJveSAoKElCdXNPYmplY3QgKilwcm9maWxlKTsKKysgICAgSUJVU19P QkpFQ1RfQ0xBU1MgKGlidXNfaG90a2V5X3Byb2ZpbGVfcGFyZW50X2NsYXNzKS0+CisrICAgICAg ICAgICAgZGVzdHJveSAoKElCdXNPYmplY3QgKilwcm9maWxlKTsKKyB9CisgCisgc3RhdGljIGdi b29sZWFuCitAQCAtMjY0LDcgKzIzNyw4IEBAIGlidXNfaG90a2V5X3Byb2ZpbGVfc2VyaWFsaXpl IChJQnVzSG90a2V5UHJvZmlsZSAqcHJvZmlsZSwKKyB7CisgICAgIGdib29sZWFuIHJldHZhbDsK KyAKKy0gICAgcmV0dmFsID0gcGFyZW50X2NsYXNzLT5zZXJpYWxpemUgKChJQnVzU2VyaWFsaXph YmxlICopIHByb2ZpbGUsIGJ1aWxkZXIpOworKyAgICByZXR2YWwgPSBJQlVTX1NFUklBTElaQUJM RV9DTEFTUyAoaWJ1c19ob3RrZXlfcHJvZmlsZV9wYXJlbnRfY2xhc3MpLT4KKysgICAgICAgICAg ICBzZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopIHByb2ZpbGUsIGJ1aWxkZXIpOworICAg ICBnX3JldHVybl92YWxfaWZfZmFpbCAocmV0dmFsLCBGQUxTRSk7CisgCisgICAgIHJldHVybiBU UlVFOworQEAgLTI3Niw3ICsyNTAsOCBAQCBpYnVzX2hvdGtleV9wcm9maWxlX2Rlc2VyaWFsaXpl IChJQnVzSG90a2V5UHJvZmlsZSAqcHJvZmlsZSwKKyB7CisgICAgIGdpbnQgcmV0dmFsOworIAor LSAgICByZXR2YWwgPSBwYXJlbnRfY2xhc3MtPmRlc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJs ZSAqKSBwcm9maWxlLCB2YXJpYW50KTsKKysgICAgcmV0dmFsID0gSUJVU19TRVJJQUxJWkFCTEVf Q0xBU1MgKGlidXNfaG90a2V5X3Byb2ZpbGVfcGFyZW50X2NsYXNzKS0+CisrICAgICAgICAgICAg ZGVzZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopIHByb2ZpbGUsIHZhcmlhbnQpOworICAg ICBnX3JldHVybl92YWxfaWZfZmFpbCAocmV0dmFsLCAwKTsKKyAKKyAgICAgcmV0dXJuIHJldHZh bDsKK0BAIC0yODgsOCArMjYzLDggQEAgaWJ1c19ob3RrZXlfcHJvZmlsZV9jb3B5IChJQnVzSG90 a2V5UHJvZmlsZSAgICAgICAqZGVzdCwKKyB7CisgICAgIGdib29sZWFuIHJldHZhbDsKKyAKKy0g ICAgcmV0dmFsID0gcGFyZW50X2NsYXNzLT5jb3B5ICgoSUJ1c1NlcmlhbGl6YWJsZSAqKWRlc3Qs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNTZXJpYWxpemFibGUgKilz cmMpOworKyAgICByZXR2YWwgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoaWJ1c19ob3RrZXlf cHJvZmlsZV9wYXJlbnRfY2xhc3MpLT4KKysgICAgICAgICAgICBjb3B5ICgoSUJ1c1NlcmlhbGl6 YWJsZSAqKWRlc3QsIChJQnVzU2VyaWFsaXphYmxlICopc3JjKTsKKyAgICAgZ19yZXR1cm5fdmFs X2lmX2ZhaWwgKHJldHZhbCwgRkFMU0UpOworIAorICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAo SUJVU19JU19IT1RLRVlfUFJPRklMRSAoZGVzdCksIEZBTFNFKTsKK2RpZmYgLS1naXQgYS9zcmMv aWJ1c2lucHV0Y29udGV4dC5jIGIvc3JjL2lidXNpbnB1dGNvbnRleHQuYworaW5kZXggYTgwOWVm MDguLjJiMTQzOGZjIDEwMDY0NAorLS0tIGEvc3JjL2lidXNpbnB1dGNvbnRleHQuYworKysrIGIv c3JjL2lidXNpbnB1dGNvbnRleHQuYworQEAgLTIsOCArMiw4IEBACisgLyogdmltOnNldCBldCBz dHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAw OC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdo dCAoQykgMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKy0g KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChD KSAyMDE4LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Cisr ICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBs aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMKK0BAIC0zMSw3ICszMSw3IEBACisgI2luY2x1ZGUgImlidXNlcnJvci5oIgorIAorICNk ZWZpbmUgSUJVU19JTlBVVF9DT05URVhUX0dFVF9QUklWQVRFKG8pICBcCistICAgKEdfVFlQRV9J TlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZUEVfSU5QVVRfQ09OVEVYVCwgSUJ1c0lu cHV0Q29udGV4dFByaXZhdGUpKQorKyAgICgoSUJ1c0lucHV0Q29udGV4dFByaXZhdGUgKilpYnVz X2lucHV0X2NvbnRleHRfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIGVudW0geworICAg ICBFTkFCTEVELAorQEAgLTgzLDcgKzgzLDkgQEAgc3RhdGljIHZvaWQgICAgIGlidXNfaW5wdXRf Y29udGV4dF9nX3NpZ25hbCAgICAgKEdEQnVzUHJveHkgICAgICAgICAgICAgKnByb3h5LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh ciAgICAgICAgICAgICpzaWduYWxfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAgICAgICAgICAgICAqcGFyYW1ldGVycyk7 CisgCistR19ERUZJTkVfVFlQRSAoSUJ1c0lucHV0Q29udGV4dCwgaWJ1c19pbnB1dF9jb250ZXh0 LCBJQlVTX1RZUEVfUFJPWFkpCisrR19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUgKElCdXNJbnB1 dENvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfaW5wdXRfY29udGV4 dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1BST1hZKQorIAorIHN0 YXRpYyB2b2lkCisgaWJ1c19pbnB1dF9jb250ZXh0X2NsYXNzX2luaXQgKElCdXNJbnB1dENvbnRl eHRDbGFzcyAqY2xhc3MpCitAQCAtOTEsOCArOTMsNiBAQCBpYnVzX2lucHV0X2NvbnRleHRfY2xh c3NfaW5pdCAoSUJ1c0lucHV0Q29udGV4dENsYXNzICpjbGFzcykKKyAgICAgSUJ1c1Byb3h5Q2xh c3MgKmlidXNfcHJveHlfY2xhc3MgPSBJQlVTX1BST1hZX0NMQVNTIChjbGFzcyk7CisgICAgIEdE QnVzUHJveHlDbGFzcyAqZ19kYnVzX3Byb3h5X2NsYXNzID0gR19EQlVTX1BST1hZX0NMQVNTIChj bGFzcyk7CisgCistICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAo SUJ1c0lucHV0Q29udGV4dFByaXZhdGUpKTsKKy0KKyAgICAgaWJ1c19wcm94eV9jbGFzcy0+ZGVz dHJveSA9IGlidXNfaW5wdXRfY29udGV4dF9yZWFsX2Rlc3Ryb3k7CisgCisgICAgIGdfZGJ1c19w cm94eV9jbGFzcy0+Z19zaWduYWwgPSBpYnVzX2lucHV0X2NvbnRleHRfZ19zaWduYWw7CitkaWZm IC0tZ2l0IGEvc3JjL2lidXNvYmplY3QuYyBiL3NyYy9pYnVzb2JqZWN0LmMKK2luZGV4IDI1ODA0 OGMwLi4xNWQ5YWEzYSAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzb2JqZWN0LmMKKysrKyBiL3NyYy9p YnVzb2JqZWN0LmMKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisg LyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBQZW5n IEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMDgt MjAxMyBSZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwg SW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC0yNSw3ICsyNSw3IEBACisgI2luY2x1ZGUg ImlidXNpbnRlcm5hbC5oIgorIAorICNkZWZpbmUgSUJVU19PQkpFQ1RfR0VUX1BSSVZBVEUobykg IFwKKy0gICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9PQkpF Q1QsIElCdXNPYmplY3RQcml2YXRlKSkKKysgICAoKElCdXNPYmplY3RQcml2YXRlICopaWJ1c19v YmplY3RfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIGVudW0geworICAgICBERVNUUk9Z LAorQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGljIHZvaWQgICAgICBpYnVzX29iamVjdF9kaXNwb3Nl ICAgICAgICAoSUJ1c09iamVjdCAgICAgICAgICpvYmopOworIHN0YXRpYyB2b2lkICAgICAgaWJ1 c19vYmplY3RfZmluYWxpemUgICAgICAgKElCdXNPYmplY3QgICAgICAgICAqb2JqKTsKKyBzdGF0 aWMgdm9pZCAgICAgIGlidXNfb2JqZWN0X3JlYWxfZGVzdHJveSAgIChJQnVzT2JqZWN0ICAgICAg ICAgKm9iaik7CisgCistR19ERUZJTkVfVFlQRSAoSUJ1c09iamVjdCwgaWJ1c19vYmplY3QsIEdf VFlQRV9JTklUSUFMTFlfVU5PV05FRCkKKytHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1 c09iamVjdCwgaWJ1c19vYmplY3QsIEdfVFlQRV9JTklUSUFMTFlfVU5PV05FRCkKKyAKKyBzdGF0 aWMgdm9pZAorIGlidXNfb2JqZWN0X2NsYXNzX2luaXQgICAgIChJQnVzT2JqZWN0Q2xhc3MgKmNs YXNzKQorQEAgLTg2LDggKzg2LDYgQEAgaWJ1c19vYmplY3RfY2xhc3NfaW5pdCAgICAgKElCdXNP YmplY3RDbGFzcyAqY2xhc3MpCisgICAgICAgICAgICAgX2lidXNfbWFyc2hhbF9WT0lEX19WT0lE LAorICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsKKyAKKy0gICAgZ190eXBlX2NsYXNzX2Fk ZF9wcml2YXRlIChjbGFzcywgc2l6ZW9mIChJQnVzT2JqZWN0UHJpdmF0ZSkpOworLQorICNpZmRl ZiBERUJVR19NRU1PUlkKKyAgICAgX2NvdW50X3RhYmxlID0gZ19oYXNoX3RhYmxlX25ldyAoZ19k aXJlY3RfaGFzaCwgZ19kaXJlY3RfZXF1YWwpOworICNlbmRpZgorZGlmZiAtLWdpdCBhL3NyYy9p YnVzb2JzZXJ2ZWRwYXRoLmMgYi9zcmMvaWJ1c29ic2VydmVkcGF0aC5jCitpbmRleCBjYmI4NDZk Zi4uNWI3OWYxZmUgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c29ic2VydmVkcGF0aC5jCisrKysgYi9z cmMvaWJ1c29ic2VydmVkcGF0aC5jCitAQCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0IHN0 cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5wdXQgSUJ1cworICAqIENvcHlyaWdodCAoQykgMjAw OC0yMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdo dCAoQykgMjAwOC0yMDE1IFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx OSBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTM3LDcgKzM3LDcgQEAg c3RydWN0IF9JQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSB7CisgdHlwZWRlZiBzdHJ1Y3QgX0lCdXNP YnNlcnZlZFBhdGhQcml2YXRlIElCdXNPYnNlcnZlZFBhdGhQcml2YXRlOworIAorICNkZWZpbmUg SUJVU19PQlNFUlZFRF9QQVRIX0dFVF9QUklWQVRFKG8pICBcCistICAgKEdfVFlQRV9JTlNUQU5D RV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZUEVfT0JTRVJWRURfUEFUSCwgSUJ1c09ic2VydmVk UGF0aFByaXZhdGUpKQorKyAgICgoSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKilpYnVzX29ic2Vy dmVkX3BhdGhfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIC8vIHN0YXRpYyBndWludCAg ICAgICAgICAgIF9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OworIAorQEAgLTYwLDggKzYw LDYgQEAgaWJ1c19vYnNlcnZlZF9wYXRoX2NsYXNzX2luaXQgKElCdXNPYnNlcnZlZFBhdGhDbGFz cyAqY2xhc3MpCisgICAgIElCdXNPYmplY3RDbGFzcyAqb2JqZWN0X2NsYXNzID0gSUJVU19PQkpF Q1RfQ0xBU1MgKGNsYXNzKTsKKyAgICAgSUJ1c1NlcmlhbGl6YWJsZUNsYXNzICpzZXJpYWxpemFi bGVfY2xhc3MgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoY2xhc3MpOworIAorLSAgICAvLyBn X3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2YgKElCdXNPYnNlcnZlZFBhdGhQ cml2YXRlKSk7CistCisgICAgIG9iamVjdF9jbGFzcy0+ZGVzdHJveSA9IChJQnVzT2JqZWN0RGVz dHJveUZ1bmMpIGlidXNfb2JzZXJ2ZWRfcGF0aF9kZXN0cm95OworIAorICAgICBzZXJpYWxpemFi bGVfY2xhc3MtPnNlcmlhbGl6ZSAgID0gKElCdXNTZXJpYWxpemFibGVTZXJpYWxpemVGdW5jKSBp YnVzX29ic2VydmVkX3BhdGhfc2VyaWFsaXplOworZGlmZiAtLWdpdCBhL3NyYy9pYnVzcHJvcGVy dHkuYyBiL3NyYy9pYnVzcHJvcGVydHkuYworaW5kZXggYzZhMzc1MzQuLmU4N2QyNmI2IDEwMDY0 NAorLS0tIGEvc3JjL2lidXNwcm9wZXJ0eS5jCisrKysgYi9zcmMvaWJ1c3Byb3BlcnR5LmMKK0BA IC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogSUJ1cyAtIFRoZSBJ bnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5w Lmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBSZWQgSGF0LCBJ bmMuCisrICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgorICAqCisgICog VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKK0BAIC01OSw3ICs1OSw3IEBAIHN0cnVjdCBfSUJ1c1Byb3BlcnR5UHJpdmF0 ZSB7CisgfTsKKyAKKyAjZGVmaW5lIElCVVNfUFJPUEVSVFlfR0VUX1BSSVZBVEUobykgIFwKKy0g ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9QUk9QRVJUWSwg SUJ1c1Byb3BlcnR5UHJpdmF0ZSkpCisrICAgKChJQnVzUHJvcGVydHlQcml2YXRlICopaWJ1c19w cm9wZXJ0eV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAobykpCisgCisgLyogZnVuY3Rpb25zIHByb3Rv dHlwZSAqLworIHN0YXRpYyB2b2lkICAgICAgICAgaWJ1c19wcm9wZXJ0eV9zZXRfcHJvcGVydHkg IChJQnVzUHJvcGVydHkgICAgICAgKnByb3AsCitAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgZ2lu dCAgICAgICAgIGlidXNfcHJvcGVydHlfZGVzZXJpYWxpemUgICAoSUJ1c1Byb3BlcnR5ICAgICAg ICpwcm9wLAorIHN0YXRpYyBnYm9vbGVhbiAgICAgaWJ1c19wcm9wZXJ0eV9jb3B5ICAgICAgICAg IChJQnVzUHJvcGVydHkgICAgICAgKmRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElCdXNQcm9wZXJ0eSAqc3JjKTsKKyAKKy1HX0RF RklORV9UWVBFIChJQnVzUHJvcGVydHksIGlidXNfcHJvcGVydHksIElCVVNfVFlQRV9TRVJJQUxJ WkFCTEUpCisrR19ERUZJTkVfVFlQRV9XSVRIX1BSSVZBVEUgKElCdXNQcm9wZXJ0eSwgaWJ1c19w cm9wZXJ0eSwgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKKyAKKyBzdGF0aWMgdm9pZAorIGlidXNf cHJvcGVydHlfY2xhc3NfaW5pdCAoSUJ1c1Byb3BlcnR5Q2xhc3MgKmNsYXNzKQorQEAgLTg3LDgg Kzg3LDYgQEAgaWJ1c19wcm9wZXJ0eV9jbGFzc19pbml0IChJQnVzUHJvcGVydHlDbGFzcyAqY2xh c3MpCisgICAgIElCdXNPYmplY3RDbGFzcyAqb2JqZWN0X2NsYXNzID0gSUJVU19PQkpFQ1RfQ0xB U1MgKGNsYXNzKTsKKyAgICAgSUJ1c1NlcmlhbGl6YWJsZUNsYXNzICpzZXJpYWxpemFibGVfY2xh c3MgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoY2xhc3MpOworIAorLSAgICBnX3R5cGVfY2xh c3NfYWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2YgKElCdXNQcm9wZXJ0eVByaXZhdGUpKTsKKy0K KyAgICAgZ29iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gKEdPYmplY3RTZXRQcm9wZXJ0eUZ1 bmMpIGlidXNfcHJvcGVydHlfc2V0X3Byb3BlcnR5OworICAgICBnb2JqZWN0X2NsYXNzLT5nZXRf cHJvcGVydHkgPSAoR09iamVjdEdldFByb3BlcnR5RnVuYykgaWJ1c19wcm9wZXJ0eV9nZXRfcHJv cGVydHk7CisgCitkaWZmIC0tZ2l0IGEvc3JjL2lidXNyZWdpc3RyeS5jIGIvc3JjL2lidXNyZWdp c3RyeS5jCitpbmRleCBiMDQ4Mzk5OC4uNDM5OTBkNWYgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3Jl Z2lzdHJ5LmMKKysrKyBiL3NyYy9pYnVzcmVnaXN0cnkuYworQEAgLTIsOCArMiw4IEBACisgLyog dmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJp Z2h0IChDKSAyMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENv cHlyaWdodCAoQykgMjAxNS0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21h aWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAxNSBSZWQgSGF0LCBJbmMuCisrICogQ29weXJp Z2h0IChDKSAyMDE1LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+CisrICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgUmVkIEhhdCwgSW5jLgorICAqCisgICog VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKK0BAIC01NSw3ICs1NSw3IEBAIHN0cnVjdCBfSUJ1c1JlZ2lzdHJ5UHJpdmF0 ZSB7CisgfTsKKyAKKyAjZGVmaW5lIElCVVNfUkVHSVNUUllfR0VUX1BSSVZBVEUobykgIFwKKy0g ICAoR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9SRUdJU1RSWSwg SUJ1c1JlZ2lzdHJ5UHJpdmF0ZSkpCisrICAgKChJQnVzUmVnaXN0cnlQcml2YXRlICopaWJ1c19y ZWdpc3RyeV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAobykpCisgCisgLyogZnVuY3Rpb25zIHByb3Rv dHlwZSAqLworIHN0YXRpYyB2b2lkICAgICBpYnVzX3JlZ2lzdHJ5X2Rlc3Ryb3kgICAgICAgIChJ QnVzUmVnaXN0cnkgICAgICAgICAgICpyZWdpc3RyeSk7CitAQCAtNjcsNyArNjcsNyBAQCBzdGF0 aWMgZ2ludCAgICAgaWJ1c19yZWdpc3RyeV9kZXNlcmlhbGl6ZSAgICAoSUJ1c1JlZ2lzdHJ5ICAg ICAgICAgICAqcmVnaXN0cnksCisgc3RhdGljIGdib29sZWFuIGlidXNfcmVnaXN0cnlfY29weSAg ICAgICAgICAgKElCdXNSZWdpc3RyeSAgICAgICAgICAgKmRlc3QsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElCdXNSZWdpc3RyeSAgICAgKnNy Yyk7CisgCistR19ERUZJTkVfVFlQRSAoSUJ1c1JlZ2lzdHJ5LCBpYnVzX3JlZ2lzdHJ5LCBJQlVT X1RZUEVfU0VSSUFMSVpBQkxFKQorK0dfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJQnVzUmVn aXN0cnksIGlidXNfcmVnaXN0cnksIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCisgCisgc3RhdGlj IHZvaWQKKyBpYnVzX3JlZ2lzdHJ5X2NsYXNzX2luaXQgKElCdXNSZWdpc3RyeUNsYXNzICpjbGFz cykKK0BAIC04NCw4ICs4NCw2IEBAIGlidXNfcmVnaXN0cnlfY2xhc3NfaW5pdCAoSUJ1c1JlZ2lz dHJ5Q2xhc3MgKmNsYXNzKQorICAgICAgICAgKElCdXNTZXJpYWxpemFibGVEZXNlcmlhbGl6ZUZ1 bmMpIGlidXNfcmVnaXN0cnlfZGVzZXJpYWxpemU7CisgICAgIHNlcmlhbGl6YWJsZV9jbGFzcy0+ Y29weSA9IChJQnVzU2VyaWFsaXphYmxlQ29weUZ1bmMpIGlidXNfcmVnaXN0cnlfY29weTsKKyAK Ky0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChjbGFzcywgc2l6ZW9mIChJQnVzUmVnaXN0 cnlQcml2YXRlKSk7CistCisgICAgIC8qIGluc3RhbGwgc2lnbmFscyAqLworICAgICAvKioKKyAg ICAgICogSUJ1c1JlZ2lzdHJ5OjpjaGFuZ2VkOgorZGlmZiAtLWdpdCBhL3NyYy9pYnVzc2VyaWFs aXphYmxlLmMgYi9zcmMvaWJ1c3NlcmlhbGl6YWJsZS5jCitpbmRleCBhOGQ0ZGQ2NS4uMjMxMDIw YjcgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3NlcmlhbGl6YWJsZS5jCisrKysgYi9zcmMvaWJ1c3Nl cmlhbGl6YWJsZS5jCitAQCAtMiw4ICsyLDggQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwor IC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUGVu ZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDE4 IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorLSAqIENvcHlyaWdo dCAoQykgMjAwOC0yMDE4IFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAx OSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmln aHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAg LTI0LDcgKzI0LDcgQEAKKyAjaW5jbHVkZSAiaWJ1c3NlcmlhbGl6YWJsZS5oIgorIAorICNkZWZp bmUgSUJVU19TRVJJQUxJWkFCTEVfR0VUX1BSSVZBVEUobykgIFwKKy0gICAoR19UWVBFX0lOU1RB TkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUsIElCdXNTZXJpYWxp emFibGVQcml2YXRlKSkKKysgICAoKElCdXNTZXJpYWxpemFibGVQcml2YXRlICopaWJ1c19zZXJp YWxpemFibGVfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorIAorIGVudW0geworICAgICBMQVNU X1NJR05BTCwKK0BAIC01MCw3ICs1MCwxNSBAQCBzdGF0aWMgZ2Jvb2xlYW4gIGlidXNfc2VyaWFs aXphYmxlX3JlYWxfY29weSAgICAgICAgKElCdXNTZXJpYWxpemFibGUgICAgICAgKmRlcworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg SUJ1c1NlcmlhbGl6YWJsZSAqc3JjKTsKKyAKKyBzdGF0aWMgSUJ1c09iamVjdENsYXNzICpwYXJl bnRfY2xhc3MgPSBOVUxMOworK3N0YXRpYyBnaW50IGlidXNfc2VyaWFsaXphYmxlX3ByaXZhdGVf b2Zmc2V0OworIAorK0dfR05VQ19VTlVTRUQKKytzdGF0aWMgaW5saW5lIGdwb2ludGVyCisraWJ1 c19zZXJpYWxpemFibGVfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKElCdXNTZXJpYWxpemFibGUgKnNl bGYpCisreworKyAgICByZXR1cm4gKEdfU1RSVUNUX01FTUJFUl9QIChzZWxmLCBpYnVzX3Nlcmlh bGl6YWJsZV9wcml2YXRlX29mZnNldCkpOworK30KKysgCisgR1R5cGUKKyBpYnVzX3NlcmlhbGl6 YWJsZV9nZXRfdHlwZSAodm9pZCkKKyB7CitAQCAtNzMsNiArODEsOSBAQCBpYnVzX3NlcmlhbGl6 YWJsZV9nZXRfdHlwZSAodm9pZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiSUJ1c1NlcmlhbGl6YWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnR5cGVfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwKTsKKysgICAgICAgIGlidXNfc2VyaWFsaXphYmxlX3ByaXZhdGVfb2Zmc2V0ID0KKysg ICAgICAgICAgICAgICAgZ190eXBlX2FkZF9pbnN0YW5jZV9wcml2YXRlICh0eXBlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoSUJ1c1Nlcmlh bGl6YWJsZVByaXZhdGUpKTsKKyAgICAgfQorIAorICAgICByZXR1cm4gdHlwZTsKK0BAIC0xMDEs NyArMTEyLDEwIEBAIGlidXNfc2VyaWFsaXphYmxlX2NsYXNzX2luaXQgICAgIChJQnVzU2VyaWFs aXphYmxlQ2xhc3MgKmNsYXNzKQorIAorICAgICBwYXJlbnRfY2xhc3MgPSAoSUJ1c09iamVjdENs YXNzICopIGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoY2xhc3MpOworIAorLSAgICBnX3R5cGVf Y2xhc3NfYWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2YgKElCdXNTZXJpYWxpemFibGVQcml2YXRl KSk7CisrICAgIGlmIChpYnVzX3NlcmlhbGl6YWJsZV9wcml2YXRlX29mZnNldCkgeworKyAgICAg ICAgZ190eXBlX2NsYXNzX2FkanVzdF9wcml2YXRlX29mZnNldCAoY2xhc3MsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaWJ1c19zZXJpYWxpemFibGVfcHJp dmF0ZV9vZmZzZXQpOworKyAgICB9CisgCisgICAgIG9iamVjdF9jbGFzcy0+ZGVzdHJveSA9IChJ QnVzT2JqZWN0RGVzdHJveUZ1bmMpIGlidXNfc2VyaWFsaXphYmxlX2Rlc3Ryb3k7CisgCitAQCAt MTg0LDcgKzE5OCw3IEBAIGlidXNfc2VyaWFsaXphYmxlX3JlYWxfY29weSAoSUJ1c1NlcmlhbGl6 YWJsZSAqZGVzdCwKKyB7CisgICAgIElCdXNTZXJpYWxpemFibGVQcml2YXRlICpzcmNfcHJpdjsK KyAgICAgSUJ1c1NlcmlhbGl6YWJsZVByaXZhdGUgKmRlc3RfcHJpdjsKKy0gICAgc3JjX3ByaXYg PSBJQlVTX1NFUklBTElaQUJMRV9HRVRfUFJJVkFURSAoc3JjKTsKKysgICAgc3JjX3ByaXYgPSBJ QlVTX1NFUklBTElaQUJMRV9HRVRfUFJJVkFURSAoSUJVU19TRVJJQUxJWkFCTEUgKHNyYykpOwor ICAgICBkZXN0X3ByaXYgPSBJQlVTX1NFUklBTElaQUJMRV9HRVRfUFJJVkFURSAoZGVzdCk7Cisg CisgICAgIGdfZGF0YWxpc3RfZm9yZWFjaCAoJnNyY19wcml2LT5hdHRhY2htZW50cywKK2RpZmYg LS1naXQgYS9zcmMvaWJ1c3NlcnZpY2UuYyBiL3NyYy9pYnVzc2VydmljZS5jCitpbmRleCBlYjM3 MGU4Yi4uNjAyNTViZDUgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3NlcnZpY2UuYworKysrIGIvc3Jj L2lidXNzZXJ2aWNlLmMKK0BAIC0yLDggKzIsOCBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICov CisgLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNSBQ ZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIw MTUtMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKy0gKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAy MDE1LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICog Q29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAq IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKK0BAIC0yNCw3ICsyNCw3IEBACisgI2luY2x1ZGUgImlidXNpbnRlcm5hbC5oIgorIAorICNk ZWZpbmUgSUJVU19TRVJWSUNFX0dFVF9QUklWQVRFKG8pICBcCistICAgKEdfVFlQRV9JTlNUQU5D RV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZUEVfU0VSVklDRSwgSUJ1c1NlcnZpY2VQcml2YXRl KSkKKysgICAoKElCdXNTZXJ2aWNlUHJpdmF0ZSAqKWlidXNfc2VydmljZV9nZXRfaW5zdGFuY2Vf cHJpdmF0ZSAobykpCisgCisgZW51bSB7CisgICAgIExBU1RfU0lHTkFMCitAQCAtMTMzLDYgKzEz MywxMyBAQCBzdGF0aWMgY29uc3QgR0RCdXNJbnRlcmZhY2VWVGFibGUgaWJ1c19zZXJ2aWNlX2lu dGVyZmFjZV92dGFibGUgPSB7CisgfTsKKyAKKyBzdGF0aWMgSUJ1c09iamVjdENsYXNzICppYnVz X3NlcnZpY2VfcGFyZW50X2NsYXNzID0gTlVMTDsKKytzdGF0aWMgZ2ludCBpYnVzX3NlcnZpY2Vf cHJpdmF0ZV9vZmZzZXQ7CisrCisrc3RhdGljIGlubGluZSBncG9pbnRlcgorK2lidXNfc2Vydmlj ZV9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoSUJ1c1NlcnZpY2UgKnNlbGYpCisreworKyAgICByZXR1 cm4gKEdfU1RSVUNUX01FTUJFUl9QIChzZWxmLCBpYnVzX3NlcnZpY2VfcHJpdmF0ZV9vZmZzZXQp KTsKKyt9CisgCisgR1R5cGUKKyBpYnVzX3NlcnZpY2VfZ2V0X3R5cGUgKHZvaWQpCitAQCAtMTU2 LDYgKzE2Myw5IEBAIGlidXNfc2VydmljZV9nZXRfdHlwZSAodm9pZCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiSUJ1c1NlcnZpY2UiLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZ0eXBlX2luZm8sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCk7CisrICAgICAgICBpYnVzX3NlcnZpY2VfcHJpdmF0ZV9v ZmZzZXQgPQorKyAgICAgICAgICAgICAgICBnX3R5cGVfYWRkX2luc3RhbmNlX3ByaXZhdGUgKHR5 cGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m IChJQnVzU2VydmljZVByaXZhdGUpKTsKKyAgICAgfQorIAorICAgICByZXR1cm4gdHlwZTsKK0BA IC0xOTgsMTIgKzIwOCwyMCBAQCBpYnVzX3NlcnZpY2VfY2xhc3NfaW5pdCAoSUJ1c1NlcnZpY2VD bGFzcyAqY2xhc3MpCisgICAgIEdPYmplY3RDbGFzcyAqZ29iamVjdF9jbGFzcyA9IEdfT0JKRUNU X0NMQVNTIChjbGFzcyk7CisgICAgIElCdXNPYmplY3RDbGFzcyAqaWJ1c19vYmplY3RfY2xhc3Mg PSBJQlVTX09CSkVDVF9DTEFTUyAoY2xhc3MpOworIAorLSAgICBpYnVzX3NlcnZpY2VfcGFyZW50 X2NsYXNzID0gSUJVU19PQkpFQ1RfQ0xBU1MgKGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoY2xh c3MpKTsKKysgICAgaWJ1c19zZXJ2aWNlX3BhcmVudF9jbGFzcyA9CisrICAgICAgICAgICAgSUJV U19PQkpFQ1RfQ0xBU1MgKGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoY2xhc3MpKTsKKysgICAg aWYgKGlidXNfc2VydmljZV9wcml2YXRlX29mZnNldCkgeworKyAgICAgICAgZ190eXBlX2NsYXNz X2FkanVzdF9wcml2YXRlX29mZnNldCAoY2xhc3MsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmaWJ1c19zZXJ2aWNlX3ByaXZhdGVfb2Zmc2V0KTsKKysgICAg fQorIAorICAgICBnb2JqZWN0X2NsYXNzLT5jb25zdHJ1Y3RlZCAgPSBpYnVzX3NlcnZpY2VfY29u c3RydWN0ZWQ7CistICAgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IChHT2JqZWN0U2V0 UHJvcGVydHlGdW5jKSBpYnVzX3NlcnZpY2Vfc2V0X3Byb3BlcnR5OworLSAgICBnb2JqZWN0X2Ns YXNzLT5nZXRfcHJvcGVydHkgPSAoR09iamVjdEdldFByb3BlcnR5RnVuYykgaWJ1c19zZXJ2aWNl X2dldF9wcm9wZXJ0eTsKKy0gICAgaWJ1c19vYmplY3RfY2xhc3MtPmRlc3Ryb3kgID0gKElCdXNP YmplY3REZXN0cm95RnVuYykgaWJ1c19zZXJ2aWNlX2Rlc3Ryb3k7CisrICAgIGdvYmplY3RfY2xh c3MtPnNldF9wcm9wZXJ0eSA9CisrICAgICAgICAgICAgKEdPYmplY3RTZXRQcm9wZXJ0eUZ1bmMp IGlidXNfc2VydmljZV9zZXRfcHJvcGVydHk7CisrICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9w ZXJ0eSA9CisrICAgICAgICAgICAgKEdPYmplY3RHZXRQcm9wZXJ0eUZ1bmMpIGlidXNfc2Vydmlj ZV9nZXRfcHJvcGVydHk7CisrICAgIGlidXNfb2JqZWN0X2NsYXNzLT5kZXN0cm95ICA9CisrICAg ICAgICAgICAgKElCdXNPYmplY3REZXN0cm95RnVuYykgaWJ1c19zZXJ2aWNlX2Rlc3Ryb3k7Cisg CisgICAgIC8qIHZpcnR1YWwgZnVuY3Rpb25zICovCisgICAgIGNsYXNzLT5zZXJ2aWNlX21ldGhv ZF9jYWxsID0gaWJ1c19zZXJ2aWNlX3NlcnZpY2VfbWV0aG9kX2NhbGw7CitAQCAtMjUyLDggKzI3 MCw2IEBAIGlidXNfc2VydmljZV9jbGFzc19pbml0IChJQnVzU2VydmljZUNsYXNzICpjbGFzcykK KyAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFNX1NUQVRJQ19OSUNLIHwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBHX1BBUkFNX1NUQVRJQ19CTFVSQikKKyAgICAgICAgICAgICAgICAg ICAgICk7CistCistICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVvZiAo SUJ1c1NlcnZpY2VQcml2YXRlKSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitkaWZmIC0tZ2l0IGEv c3JjL2lidXN1bmljb2RlLmMgYi9zcmMvaWJ1c3VuaWNvZGUuYworaW5kZXggYWFjOWMxMzUuLjll NmY2YjJiIDEwMDY0NAorLS0tIGEvc3JjL2lidXN1bmljb2RlLmMKKysrKyBiL3NyYy9pYnVzdW5p Y29kZS5jCitAQCAtMSw4ICsxLDggQEAKKyAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6 IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCisgLyogdmltOnNldCBldCBzdHM9NDog Ki8KKyAvKiBidXMgLSBUaGUgSW5wdXQgQnVzCistICogQ29weXJpZ2h0IChDKSAyMDE4IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykg MjAxOCBSZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgVGFrYW8gRnVq aXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDE4 LTIwMTkgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC02NCwxMyArNjQs OSBAQCB0eXBlZGVmIHN0cnVjdCB7CisgfSBJQnVzVW5pY29kZURhdGFMb2FkRGF0YTsKKyAKKyAj ZGVmaW5lIElCVVNfVU5JQ09ERV9EQVRBX0dFVF9QUklWQVRFKG8pICBcCistICAgKEdfVFlQRV9J TlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBcCistICAgIElCVVNfVFlQRV9VTklDT0RFX0RBVEEs IFwKKy0gICAgSUJ1c1VuaWNvZGVEYXRhUHJpdmF0ZSkpCisrICAgKChJQnVzVW5pY29kZURhdGFQ cml2YXRlICopaWJ1c191bmljb2RlX2RhdGFfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKG8pKQorICNk ZWZpbmUgSUJVU19VTklDT0RFX0JMT0NLX0dFVF9QUklWQVRFKG8pICBcCistICAgKEdfVFlQRV9J TlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBcCistICAgIElCVVNfVFlQRV9VTklDT0RFX0JMT0NL LCBcCistICAgIElCdXNVbmljb2RlQmxvY2tQcml2YXRlKSkKKysgICAoKElCdXNVbmljb2RlQmxv Y2tQcml2YXRlICopaWJ1c191bmljb2RlX2Jsb2NrX2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkK KyAKKyAvKiBmdW5jdGlvbnMgcHJvdG90eXBlICovCisgc3RhdGljIHZvaWQgICAgICBpYnVzX3Vu aWNvZGVfZGF0YV9zZXRfcHJvcGVydHkgKElCdXNVbmljb2RlRGF0YSAgICAgICp1bmljb2RlLAor QEAgLTEwNiw4ICsxMDIsMTIgQEAgc3RhdGljIGdpbnQgICAgICBpYnVzX3VuaWNvZGVfYmxvY2tf ZGVzZXJpYWxpemUgKElCdXNVbmljb2RlQmxvY2sgICAgICpibG9jaywKKyBzdGF0aWMgZ2Jvb2xl YW4gIGlidXNfdW5pY29kZV9ibG9ja19jb3B5ICAgICAgICAoSUJ1c1VuaWNvZGVCbG9jayAgICAg KmRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgSUJ1c1VuaWNvZGVCbG9jayAqc3JjKTsKKyAKKy1HX0RFRklORV9UWVBFIChJQnVzVW5p Y29kZURhdGEsIGlidXNfdW5pY29kZV9kYXRhLCBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQorLUdf REVGSU5FX1RZUEUgKElCdXNVbmljb2RlQmxvY2ssIGlidXNfdW5pY29kZV9ibG9jaywgSUJVU19U WVBFX1NFUklBTElaQUJMRSkKKytHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1c1VuaWNv ZGVEYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX3VuaWNvZGVfZGF0YSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19UWVBFX1NFUklBTElaQUJMRSkKKytH X0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1c1VuaWNvZGVCbG9jaywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWJ1c191bmljb2RlX2Jsb2NrLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQorIAorIHN0YXRpYyB2b2lkCisgaWJ1 c191bmljb2RlX2RhdGFfY2xhc3NfaW5pdCAoSUJ1c1VuaWNvZGVEYXRhQ2xhc3MgKmNsYXNzKQor QEAgLTEyOCw4ICsxMjgsNiBAQCBpYnVzX3VuaWNvZGVfZGF0YV9jbGFzc19pbml0IChJQnVzVW5p Y29kZURhdGFDbGFzcyAqY2xhc3MpCisgICAgIHNlcmlhbGl6YWJsZV9jbGFzcy0+Y29weSAgICAg ICAgPQorICAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlQ29weUZ1bmMpIGlidXNfdW5pY29k ZV9kYXRhX2NvcHk7CisgCistICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNp emVvZiAoSUJ1c1VuaWNvZGVEYXRhUHJpdmF0ZSkpOworLQorICAgICAvKiBpbnN0YWxsIHByb3Bl cnRpZXMgKi8KKyAgICAgLyoqCisgICAgICAqIElCdXNVbmljb2RlRGF0YTpjb2RlOgorQEAgLTY5 MCw4ICs2ODgsNiBAQCBpYnVzX3VuaWNvZGVfYmxvY2tfY2xhc3NfaW5pdCAoSUJ1c1VuaWNvZGVC bG9ja0NsYXNzICpjbGFzcykKKyAgICAgc2VyaWFsaXphYmxlX2NsYXNzLT5jb3B5ICAgICAgICA9 CisgICAgICAgICAgICAgKElCdXNTZXJpYWxpemFibGVDb3B5RnVuYykgaWJ1c191bmljb2RlX2Js b2NrX2NvcHk7CisgCistICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoY2xhc3MsIHNpemVv ZiAoSUJ1c1VuaWNvZGVCbG9ja1ByaXZhdGUpKTsKKy0KKyAgICAgLyogaW5zdGFsbCBwcm9wZXJ0 aWVzICovCisgICAgIC8qKgorICAgICAgKiBJQnVzVW5pY29kZUJsb2NrOnN0YXJ0OgorZGlmZiAt LWdpdCBhL3NyYy9pYnVzeGV2ZW50LmMgYi9zcmMvaWJ1c3hldmVudC5jCitpbmRleCAyODdiYjk5 Yi4uYTJlYTdiNTcgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3hldmVudC5jCisrKysgYi9zcmMvaWJ1 c3hldmVudC5jCitAQCAtMSw4ICsxLDggQEAKKyAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZz ZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCisgLyogdmltOnNldCBldCBzdHM9 NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworLSAqIENvcHlyaWdodCAoQykgMjAxOCBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQg KEMpIDIwMTggUmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykg MjAxOC0yMDE5IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtMjQsMTMg KzI0LDExIEBACisgCisgI2RlZmluZSBJQlVTX0VYVEVOU0lPTl9FVkVOVF9WRVJTSU9OIDEKKyAj ZGVmaW5lIElCVVNfRVhURU5TSU9OX0VWRU5UX0dFVF9QUklWQVRFKG8pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCistICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElCVVNfVFlQRV9FWFRFTlNJT05fRVZFTlQsICAgICAgICAgICAgIFwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzRXh0ZW5zaW9uRXZlbnRQcml2YXRl KSkKKysgICAoKElCdXNFeHRlbnNpb25FdmVudFByaXZhdGUgKilpYnVzX2V4dGVuc2lvbl9ldmVu dF9nZXRfaW5zdGFuY2VfcHJpdmF0ZSAobykpCisgCisgI2RlZmluZSBJQlVTX1hfRVZFTlRfVkVS U0lPTiAxCisgI2RlZmluZSBJQlVTX1hfRVZFTlRfR0VUX1BSSVZBVEUobykgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB VEUgKChvKSwgSUJVU19UWVBFX1hfRVZFTlQsIElCdXNYRXZlbnRQcml2YXRlKSkKKysgICAoKElC dXNYRXZlbnRQcml2YXRlICopaWJ1c194X2V2ZW50X2dldF9pbnN0YW5jZV9wcml2YXRlIChvKSkK KyAKKyBlbnVtIHsKKyAgICAgUFJPUF8wLAorQEAgLTEyOCw4ICsxMjYsMTIgQEAgc3RhdGljIGdp bnQgICAgICBpYnVzX3hfZXZlbnRfZGVzZXJpYWxpemUgICAgICAgICAgKElCdXNYRXZlbnQgICAg ICAgICAqZXZlbnQsCisgc3RhdGljIGdib29sZWFuICBpYnVzX3hfZXZlbnRfY29weSAgICAgICAg ICAgICAgICAgKElCdXNYRXZlbnQgICAgICAgICAqZGVzdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSUJ1c1hFdmVudCAgICpzcmMp OworIAorLUdfREVGSU5FX1RZUEUgKElCdXNFeHRlbnNpb25FdmVudCwgaWJ1c19leHRlbnNpb25f ZXZlbnQsIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCistR19ERUZJTkVfVFlQRSAoSUJ1c1hFdmVu dCwgaWJ1c194X2V2ZW50LCBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQorK0dfREVGSU5FX1RZUEVf V0lUSF9QUklWQVRFIChJQnVzRXh0ZW5zaW9uRXZlbnQsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlidXNfZXh0ZW5zaW9uX2V2ZW50LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQorK0dfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJ QnVzWEV2ZW50LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX3hfZXZlbnQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCisgCisg c3RhdGljIHZvaWQKKyBpYnVzX2V4dGVuc2lvbl9ldmVudF9jbGFzc19pbml0IChJQnVzRXh0ZW5z aW9uRXZlbnRDbGFzcyAqY2xhc3MpCitAQCAtMjI4LDggKzIzMCw2IEBAIGlidXNfZXh0ZW5zaW9u X2V2ZW50X2NsYXNzX2luaXQgKElCdXNFeHRlbnNpb25FdmVudENsYXNzICpjbGFzcykKKyAgICAg ICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBHX1BBUkFN X1JFQURXUklURSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1Rf T05MWSkpOworLQorLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGNsYXNzLCBzaXplb2Yg KElCdXNFeHRlbnNpb25FdmVudFByaXZhdGUpKTsKKyB9CisgCisgc3RhdGljIHZvaWQKK0BAIC03 NzksOCArNzc5LDYgQEAgaWJ1c194X2V2ZW50X2NsYXNzX2luaXQgKElCdXNYRXZlbnRDbGFzcyAq Y2xhc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgR19QQVJBTV9SRUFEV1JJVEUgfAorICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFS QU1fQ09OU1RSVUNUX09OTFkpKTsKKy0KKy0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlIChj bGFzcywgc2l6ZW9mIChJQnVzWEV2ZW50UHJpdmF0ZSkpOworIH0KKyAKKyBzdGF0aWMgdm9pZAor LS0gCisyLjIxLjAKKwogRnJvbSAzZDQ0MmRiZjkzNmQxOTdhYTExY2EwYTcxNjYzYzJiYzYxNjk2 MTUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWpp d2FyYTFAZ21haWwuY29tPgogRGF0ZTogRnJpLCAxMyBTZXAgMjAxOSAxNTo1OTowMyArMDkwMApA QCAtMTQ4LDI4ICsxMTkyLDI2NyBAQCBpbmRleCAzYTYyNjIzMC4uMjQzOWRlMTQgMTAwNjQ0CiAg ICAgICAgICBnX2Vycm9yICgiWW91ciBzb2NrZXQgYWRkcmVzcyBkb2VzIG5vdCBoYXZlIHRoZSBm b3JtYXQgdW5peDp0bXBkaXI9JERJUiAiCiBAQCAtMTUyLDcgKzIwMyw3IEBAIGJ1c19zZXJ2ZXJf aW5pdCAodm9pZCkKICAgICAgc2VydmVyID0gIGdfZGJ1c19zZXJ2ZXJfbmV3X3N5bmMgKAotICAg ICAgICAgICAgICAgICAgICAgZ19hZGRyZXNzLCAvKiB0aGUgcGxhY2Ugd2hlcmUgdGhlIHNvY2tl dCBmaWxlIGxpdmVzLCBlLmcuIC90bXAsIGFic3RyYWN0IG5hbWVzcGFjZSwgZXRjLiAqLworICAg ICAgICAgICAgICAgICAgICAgZ19hZGRyZXNzLCAvKiB0aGUgcGxhY2Ugd2hlcmUgdGhlIHNvY2tl dCBmaWxlIGxpdmVzLCBlLmcuIC90bXAsIGFic3RyYWN0IG5hbWVzcGFjZSwgZXRjLiAqLworICAg ICAgICAgICAgICAgICAgICAgZmxhZ3MsIGd1aWQsCistICAgICAgICAgICAgICAgICAgICBOVUxM IC8qIG9ic2VydmVyICovLAorKyAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICBOVUxMIC8qIGNhbmNlbGxhYmxlICovLAorICAgICAgICAgICAgICAgICAg ICAgJmVycm9yKTsKKyAgICAgaWYgKHNlcnZlciA9PSBOVUxMKSB7CitAQCAtMTYyLDcgKzIxMywx MyBAQCBidXNfc2VydmVyX2luaXQgKHZvaWQpCisgICAgIH0KKyAgICAgZ19mcmVlIChndWlkKTsK KyAKKy0gICAgZ19zaWduYWxfY29ubmVjdCAoc2VydmVyLCAibmV3LWNvbm5lY3Rpb24iLCBHX0NB TExCQUNLIChidXNfbmV3X2Nvbm5lY3Rpb25fY2IpLCBOVUxMKTsKKysgICAgZ19zaWduYWxfY29u bmVjdCAob2JzZXJ2ZXIsICJhbGxvdy1tZWNoYW5pc20iLAorKyAgICAgICAgICAgICAgICAgICAg ICBHX0NBTExCQUNLIChidXNfYWxsb3dfbWVjaGFuaXNtX2NiKSwgTlVMTCk7CisrICAgIGdfc2ln bmFsX2Nvbm5lY3QgKG9ic2VydmVyLCAiYXV0aG9yaXplLWF1dGhlbnRpY2F0ZWQtcGVlciIsCisr ICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKGJ1c19hdXRob3JpemVfYXV0aGVudGlj YXRlZF9wZWVyX2NiKSwgTlVMTCk7CisrICAgIGdfb2JqZWN0X3VucmVmIChvYnNlcnZlcik7Cisr ICAgIGdfc2lnbmFsX2Nvbm5lY3QgKHNlcnZlciwgIm5ldy1jb25uZWN0aW9uIiwKKysgICAgICAg ICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoYnVzX25ld19jb25uZWN0aW9uX2NiKSwgTlVMTCk7 CisgCisgICAgIGdfZGJ1c19zZXJ2ZXJfc3RhcnQgKHNlcnZlcik7CisgCistLSAKKzIuMjEuMAor CitGcm9tIGExNDFhMTQxMDJkYTAzOGUzZjM1NTU3ZWM0MmUxNGUzMjJjZmRmZjEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+CitEYXRlOiBGcmksIDEzIFNlcCAyMDE5IDIwOjE5OjM2ICswOTAwCitTdWJqZWN0OiBbUEFU Q0hdIGJ1czogVXNlIFhER19SVU5USU1FX0RJUiBmb3IgVW5peCBzb2NrZXQgZGlyZWN0b3J5CisK K2dfZGJ1c19zZXJ2ZXJfbmV3X3N5bmMoKSBpcyBmYWlsZWQgd2l0aCBhZGRyZXNzICJ1bml4OnRt cGRpcj0vdG1wL2lidXMiCitpbiBCU0Qgc3lzdGVtcyBiZWNhdXNlIEJTRCBzeXN0ZW1zIGRvIG5v dCBzdXBwb3J0IGFic3RyYWN0IHNvY2tldCBmaWxlcworYW5kIHVzZSB0aGUgcmVhbCBmaWxlcyBi dXQgbm8gZGlyZWN0b3J5ICIvdG1wL2lidXMiLiBOb3cgdGhlIGRlZmF1bHQKK2RpcmVjdG9yeSB3 aWxsIGJlIGFuIHVuaXF1ZSAidW5peDp0bXBkaXI9JFhER19SVU5USU1FX0RJUi9pYnVzIiBieSB1 c2VyCitpbiBMaW51eCBhbmQgInVuaXg6dG1wZGlyPS90bXAiIGluIEJTRCBhbmQgbWtkaXIoKSBy dW5zIHdpdGggdGhlIGRpcmVjdG9yeQorbW9kZSAwNzAwIG5vdCB0byBtb2RpZnkgYnkgbWFsaWNp b3VzIHVzZXJzLgorCitCVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjEx NgorLS0tCisgYnVzL2dsb2JhbC5jIHwgIDYgKystLQorIGJ1cy9zZXJ2ZXIuYyB8IDk5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyBjb25maWd1 cmUuYWMgfCAyNSArKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9u cygrKSwgMTAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9idXMvZ2xvYmFsLmMgYi9idXMv Z2xvYmFsLmMKK2luZGV4IDJiYThiMmE3Li44NzU4ZDkyMyAxMDA2NDQKKy0tLSBhL2J1cy9nbG9i YWwuYworKysrIGIvYnVzL2dsb2JhbC5jCitAQCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0 IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAy MDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAwOC0y MDE5IFJlZCBIYXQsIEluYy4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgR29vZ2xlLCBJbmMuCisg ICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCitAQCAtMjEsMTAgKzIxLDEyIEBACisgICogVVNBCisgICovCisgCisrI2lu Y2x1ZGUgPGNvbmZpZy5oPgorKworICNpbmNsdWRlICJnbG9iYWwuaCIKKyAKKyBnY2hhciAqKmdf YXJndiA9IE5VTEw7CistZ2NoYXIgKmdfYWRkcmVzcyA9ICJ1bml4OnRtcGRpcj0vdG1wL2lidXMi OworK2djaGFyICpnX2FkZHJlc3MgPSBJQlVTX1NPQ0tFVF9ESVI7CisgZ2NoYXIgKmdfY2FjaGUg PSAiYXV0byI7CisgZ2Jvb2xlYW4gZ19tZW1wcm8gPSBGQUxTRTsKKyBnYm9vbGVhbiBnX3ZlcmJv c2UgPSBGQUxTRTsKK2RpZmYgLS1naXQgYS9idXMvc2VydmVyLmMgYi9idXMvc2VydmVyLmMKK2lu ZGV4IDI0MzlkZTE0Li5kOWMzMGU0NCAxMDA2NDQKKy0tLSBhL2J1cy9zZXJ2ZXIuYworKysrIGIv YnVzL3NlcnZlci5jCitAQCAtMjIsNiArMjIsOCBAQAorICAqLworICNpbmNsdWRlICJzZXJ2ZXIu aCIKKyAKKysjaW5jbHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyAj aW5jbHVkZSA8Z2lvL2dpby5oPgorICNpbmNsdWRlIDxzdGRsaWIuaD4KKyAjaW5jbHVkZSA8c3Ry aW5nLmg+CitAQCAtMTgwLDI4ICsxODIsMTAyIEBAIGJ1c19hY3F1aXJlZF9oYW5kbGVyIChHREJ1 c0Nvbm5lY3Rpb24gICAgICAgKmNvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwpOworIH0KKyAKKytzdGF0aWMgZ2NoYXIgKgorK19idXNfZXh0cmFjdF9hZGRyZXNz ICh2b2lkKQorK3sKKysgICAgZ2NoYXIgKnNvY2tldF9hZGRyZXNzID0gZ19zdHJkdXAgKGdfYWRk cmVzcyk7CisrICAgIGdjaGFyICpwOworKworKyNkZWZpbmUgSUZfUkVQTEFDRV9WQVJJQUJMRV9X SVRIX0ZVTkModmFyaWFibGUsIGZ1bmMsIGZvcm1hdCkgICAgICAgICAgIFwKKysgICAgaWYgKChw ID0gZ19zdHJzdHJfbGVuIChzb2NrZXRfYWRkcmVzcywgLTEsICh2YXJpYWJsZSkpKSkgeyAgICAg ICAgICBcCisrICAgICAgICBnY2hhciAqc3ViMSA9IGdfc3RybmR1cCAoc29ja2V0X2FkZHJlc3Ms IHAgLSBzb2NrZXRfYWRkcmVzcyk7ICAgXAorKyAgICAgICAgZ2NoYXIgKnN1YjIgPSBnX3N0cmR1 cCAocCArIHN0cmxlbiAodmFyaWFibGUpKTsgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIGdj aGFyICp0bXAgPSBnX3N0cmR1cF9wcmludGYgKCIlcyIgZm9ybWF0ICIlcyIsICAgICAgICAgICAg ICAgICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWIxLCAoZnVu YykgKCksIHN1YjIpOyAgICAgICAgICAgXAorKyAgICAgICAgZ19mcmVlIChzdWIxKTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIGdf ZnJlZSAoc3ViMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgICAgICBnX2ZyZWUgKHNvY2tldF9hZGRyZXNzKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgc29ja2V0X2FkZHJlc3MgPSB0bXA7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgfQorKwor KyAgICBJRl9SRVBMQUNFX1ZBUklBQkxFX1dJVEhfRlVOQyAoIiRYREdfUlVOVElNRV9ESVIiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19nZXRfdXNlcl9ydW50aW1lX2Rp ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyIpCisrICAgIGVsc2UK KysgICAgSUZfUkVQTEFDRV9WQVJJQUJMRV9XSVRIX0ZVTkMgKCIkWERHX0NBQ0hFX0hPTUUiLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19nZXRfdXNlcl9jYWNoZV9kaXIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiKQorKyAgICBlbHNlCisr ICAgIElGX1JFUExBQ0VfVkFSSUFCTEVfV0lUSF9GVU5DICgiJFVJRCIsIGdldHVpZCwgIiVkIikK KysKKysjdW5kZWYgSUZfUkVQTEFDRV9WQVJJQUJMRV9XSVRIX0ZVTkMKKysKKysgICAgcmV0dXJu IHNvY2tldF9hZGRyZXNzOworK30KKysKKyB2b2lkCisgYnVzX3NlcnZlcl9pbml0ICh2b2lkKQor IHsKKy0gICAgR0Vycm9yICplcnJvciA9IE5VTEw7CisrI2RlZmluZSBJQlVTX1VOSVhfVE1QRElS ICAgICAgICAidW5peDp0bXBkaXI9IgorKyNkZWZpbmUgSUJVU19VTklYX1BBVEggICAgICAgICAg InVuaXg6cGF0aD0iCisrI2RlZmluZSBJQlVTX1VOSVhfQUJTVFJBQ1QgICAgICAidW5peDphYnN0 cmFjdD0iCisrI2RlZmluZSBJQlVTX1VOSVhfRElSICAgICAgICAgICAidW5peDpkaXI9IgorKwor KyAgICBnY2hhciAqc29ja2V0X2FkZHJlc3M7CisgICAgIEdEQnVzU2VydmVyRmxhZ3MgZmxhZ3Mg PSBHX0RCVVNfU0VSVkVSX0ZMQUdTX05PTkU7CisgICAgIGdjaGFyICpndWlkOworICAgICBHREJ1 c0F1dGhPYnNlcnZlciAqb2JzZXJ2ZXI7CisrICAgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAg ICBnY2hhciAqdW5peF9kaXIgPSBOVUxMOworIAorICAgICBkYnVzID0gYnVzX2RidXNfaW1wbF9n ZXRfZGVmYXVsdCAoKTsKKyAgICAgaWJ1cyA9IGJ1c19pYnVzX2ltcGxfZ2V0X2RlZmF1bHQgKCk7 CisgICAgIGJ1c19kYnVzX2ltcGxfcmVnaXN0ZXJfb2JqZWN0IChkYnVzLCAoSUJ1c1NlcnZpY2Ug KilpYnVzKTsKKyAKKyAgICAgLyogaW5pdCBzZXJ2ZXIgKi8KKysgICAgc29ja2V0X2FkZHJlc3Mg PSBfYnVzX2V4dHJhY3RfYWRkcmVzcyAoKTsKKysKKysjZGVmaW5lIElGX0dFVF9VTklYX0RJUihw cmVmaXgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIGlm IChnX3N0cl9oYXNfcHJlZml4IChzb2NrZXRfYWRkcmVzcywgKHByZWZpeCkpKSB7ICAgICAgICAg ICAgICAgICAgXAorKyAgICAgICAgdW5peF9kaXIgPSBnX3N0cmR1cCAoc29ja2V0X2FkZHJlc3Mg KyBzdHJsZW4gKHByZWZpeCkpOyAgICAgICAgIFwKKysgICAgfQorKworKyAgICBJRl9HRVRfVU5J WF9ESVIgKElCVVNfVU5JWF9UTVBESVIpCisrICAgIGVsc2UKKysgICAgSUZfR0VUX1VOSVhfRElS IChJQlVTX1VOSVhfUEFUSCkKKysgICAgZWxzZQorKyAgICBJRl9HRVRfVU5JWF9ESVIgKElCVVNf VU5JWF9BQlNUUkFDVCkKKysgICAgZWxzZQorKyAgICBJRl9HRVRfVU5JWF9ESVIgKElCVVNfVU5J WF9ESVIpCisrICAgIGVsc2UgeworKyAgICAgICAgZ19lcnJvciAoIllvdXIgc29ja2V0IGFkZHJl c3MgXCIlc1wiIGRvZXMgbm90IGNvcnJlc3BvbmQgd2l0aCAiCisrICAgICAgICAgICAgICAgICAi b25lIG9mIHRoZSBmb2xsb3dpbmcgZm9ybWF0czsgIgorKyAgICAgICAgICAgICAgICAgSUJVU19V TklYX1RNUERJUiAiRElSLCAiIElCVVNfVU5JWF9QQVRIICJGSUxFLCAiCisrICAgICAgICAgICAg ICAgICBJQlVTX1VOSVhfQUJTVFJBQ1QgIkZJTEUsICIgSUJVU19VTklYX0RJUiAiRElSLiIsCisr ICAgICAgICAgICAgICAgICBzb2NrZXRfYWRkcmVzcyk7CisrICAgIH0KKysgICAgaWYgKCFnX2Zp bGVfdGVzdCAodW5peF9kaXIsIEdfRklMRV9URVNUX0VYSVNUUyB8IEdfRklMRV9URVNUX0lTX0RJ UikpIHsKKysgICAgICAgIC8qIFJlcXVpcmUgbWtkaXIgZm9yIEJTRCBzeXN0ZW0uICovCisrICAg ICAgICBpZiAoZ19ta2Rpcl93aXRoX3BhcmVudHMgKHVuaXhfZGlyLCAwKSAhPSAwKSB7CisrICAg ICAgICAgICAgZ19lcnJvciAoIm1rZGlyIGlzIGZhaWxlZCBpbjogJXM6ICVzIiwKKysgICAgICAg ICAgICAgICAgICAgICB1bml4X2RpciwgZ19zdHJlcnJvciAoZXJybm8pKTsKKysgICAgICAgIH0K KysgICAgICAgIC8qIFRoZSBtb2RlIDA3MDAgY2FuIGVsaW1pbmF0ZSBtYWxpY2lvdXMgdXNlcnMg Y2hhbmdlIHRoZSBtb2RlLgorKyAgICAgICAgICogYGNobW9kYCBydW5zIGZvciB0aGUgbGFzdCBk aXJlY3Rvcnkgb25seSBub3QgdG8gY2hhbmdlIHRoZSBtb2RlcworKyAgICAgICAgICogb2YgdGhl IHBhcmVudCBkaXJlY3Rvcmllcy4gRS5nLiAiL3RtcC9pYnVzIi4KKysgICAgICAgICAqLworKyAg ICAgICAgaWYgKGdfY2htb2QgKHVuaXhfZGlyLCAwNzAwKSAhPSAwKSB7CisrICAgICAgICAgICAg Z19lcnJvciAoImNobW9kKDcwMCkgaXMgZmFpbGVkIGluOiAlczogJXMiLAorKyAgICAgICAgICAg ICAgICAgICAgIHVuaXhfZGlyLCBnX3N0cmVycm9yIChlcnJubykpOworKyAgICAgICAgfQorKyAg ICB9CisrICAgIGdfZnJlZSAodW5peF9kaXIpOworICAgICBndWlkID0gZ19kYnVzX2dlbmVyYXRl X2d1aWQgKCk7CisgICAgIG9ic2VydmVyID0gZ19kYnVzX2F1dGhfb2JzZXJ2ZXJfbmV3ICgpOwor LSAgICBpZiAoIWdfc3RyX2hhc19wcmVmaXggKGdfYWRkcmVzcywgInVuaXg6dG1wZGlyPSIpICYm CistICAgICAgICAhZ19zdHJfaGFzX3ByZWZpeCAoZ19hZGRyZXNzLCAidW5peDpwYXRoPSIpKSB7 CistICAgICAgICBnX2Vycm9yICgiWW91ciBzb2NrZXQgYWRkcmVzcyBkb2VzIG5vdCBoYXZlIHRo ZSBmb3JtYXQgdW5peDp0bXBkaXI9JERJUiAiCistICAgICAgICAgICAgICAgICAib3IgdW5peDpw YXRoPSRGSUxFOyAlcyIsIGdfYWRkcmVzcyk7CistICAgIH0KKyAgICAgc2VydmVyID0gIGdfZGJ1 c19zZXJ2ZXJfbmV3X3N5bmMgKAorLSAgICAgICAgICAgICAgICAgICAgZ19hZGRyZXNzLCAvKiB0 aGUgcGxhY2Ugd2hlcmUgdGhlIHNvY2tldCBmaWxlIGxpdmVzLCBlLmcuIC90bXAsIGFic3RyYWN0 IG5hbWVzcGFjZSwgZXRjLiAqLworKyAgICAgICAgICAgICAgICAgICAgLyogdGhlIHBsYWNlIHdo ZXJlIHRoZSBzb2NrZXQgZmlsZSBsaXZlcywgZS5nLiAvdG1wLAorKyAgICAgICAgICAgICAgICAg ICAgICogYWJzdHJhY3QgbmFtZXNwYWNlLCBldGMuICovCisrICAgICAgICAgICAgICAgICAgICBz b2NrZXRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgIGZsYWdzLCBndWlkLAotLSAgICAg ICAgICAgICAgICAgICAgTlVMTCAvKiBvYnNlcnZlciAqLywKLSsgICAgICAgICAgICAgICAgICAg IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIsCiAgICAgICAgICAgICAg ICAgICAgICBOVUxMIC8qIGNhbmNlbGxhYmxlICovLAotICAgICAgICAgICAgICAgICAgICAgJmVy cm9yKTsKK0BAIC0yMDksOCArMjg1LDkgQEAgYnVzX3NlcnZlcl9pbml0ICh2b2lkKQogICAgICBp ZiAoc2VydmVyID09IE5VTEwpIHsKLUBAIC0xNjIsNyArMjEzLDEzIEBAIGJ1c19zZXJ2ZXJfaW5p dCAodm9pZCkKKyAgICAgICAgIGdfZXJyb3IgKCJnX2RidXNfc2VydmVyX25ld19zeW5jKCkgaXMg ZmFpbGVkIHdpdGggYWRkcmVzcyAlcyAiCisgICAgICAgICAgICAgICAgICAiYW5kIGd1aWQgJXM6 ICVzIiwKKy0gICAgICAgICAgICAgICAgIGdfYWRkcmVzcywgZ3VpZCwgZXJyb3ItPm1lc3NhZ2Up OworKyAgICAgICAgICAgICAgICAgc29ja2V0X2FkZHJlc3MsIGd1aWQsIGVycm9yLT5tZXNzYWdl KTsKICAgICAgfQorKyAgICBnX2ZyZWUgKHNvY2tldF9hZGRyZXNzKTsKICAgICAgZ19mcmVlIChn dWlkKTsKICAKLS0gICAgZ19zaWduYWxfY29ubmVjdCAoc2VydmVyLCAibmV3LWNvbm5lY3Rpb24i LCBHX0NBTExCQUNLIChidXNfbmV3X2Nvbm5lY3Rpb25fY2IpLCBOVUxMKTsKLSsgICAgZ19zaWdu YWxfY29ubmVjdCAob2JzZXJ2ZXIsICJhbGxvdy1tZWNoYW5pc20iLAotKyAgICAgICAgICAgICAg ICAgICAgICBHX0NBTExCQUNLIChidXNfYWxsb3dfbWVjaGFuaXNtX2NiKSwgTlVMTCk7Ci0rICAg IGdfc2lnbmFsX2Nvbm5lY3QgKG9ic2VydmVyLCAiYXV0aG9yaXplLWF1dGhlbnRpY2F0ZWQtcGVl ciIsCi0rICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKGJ1c19hdXRob3JpemVfYXV0 aGVudGljYXRlZF9wZWVyX2NiKSwgTlVMTCk7Ci0rICAgIGdfb2JqZWN0X3VucmVmIChvYnNlcnZl cik7Ci0rICAgIGdfc2lnbmFsX2Nvbm5lY3QgKHNlcnZlciwgIm5ldy1jb25uZWN0aW9uIiwKLSsg ICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoYnVzX25ld19jb25uZWN0aW9uX2NiKSwg TlVMTCk7CisgICAgIGdfc2lnbmFsX2Nvbm5lY3QgKG9ic2VydmVyLCAiYWxsb3ctbWVjaGFuaXNt IiwKK0BAIC0yMzUsNiArMzEyLDEyIEBAIGJ1c19zZXJ2ZXJfaW5pdCAodm9pZCkKKyAgICAgICAg ICAgICAgICAgICAgIEdfQlVTX05BTUVfT1dORVJfRkxBR1NfTk9ORSwKKyAgICAgICAgICAgICAg ICAgICAgIGJ1c19hY3F1aXJlZF9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgTlVMTCwg TlVMTCwgTlVMTCwgTlVMTCk7CisrCisrI3VuZGVmIElGX0dFVF9VTklYX0RJUgorKyN1bmRlZiBJ QlVTX1VOSVhfVE1QRElSCisrI3VuZGVmIElCVVNfVU5JWF9QQVRICisrI3VuZGVmIElCVVNfVU5J WF9BQlNUUkFDVAorKyN1bmRlZiBJQlVTX1VOSVhfRElSCisgfQogIAotICAgICBnX2RidXNfc2Vy dmVyX3N0YXJ0IChzZXJ2ZXIpOworIGNvbnN0IGdjaGFyICoKK2RpZmYgLS1naXQgYS9jb25maWd1 cmUuYWMgYi9jb25maWd1cmUuYWMKK2luZGV4IGM0N2UyM2RjLi4wYzFlZTQwZSAxMDA2NDQKKy0t LSBhL2NvbmZpZ3VyZS5hYworKysrIGIvY29uZmlndXJlLmFjCitAQCAtNzAyLDYgKzcwMiwzMCBA QCB0aGUgVUNEIGZpbGVzIGZyb20gaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL1VOSURB VEEvKQorICAgICBlbmFibGVfdW5pY29kZV9kaWN0PSJ5ZXMgKGVuYWJsZWQsIHVzZSAtLWRpc2Fi bGUtdW5pY29kZS1kaWN0IHRvIGRpc2FibGUpIgorIGZpCiAgCisrQUNfQVJHX1dJVEgoc29ja2V0 LWRpciwKKysgICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1zb2NrZXQtZGlyWz1ESVJdXSwKKysg ICAgICAgIFtTZXQgdGhlIGRlZmF1bHQgc29ja2V0IGRpcmVjdG9yeSB0byBjb25uZWN0IGlidXMt ZGFlbW9uIHdpdGggRC1CdXMKKysgICAgICAgICBjb25uZWN0aW9ucyAoZGVmYXVsdDogIiRYREdf UlVOVElNRV9ESVIvaWJ1cyIpLgorKyAgICAgICAgIFRoZSBiZXN0IHByYWN0aWNlIG9mIHRoZSBz b2NrZXQgZGlyZWN0b3J5IHdvdWxkIGJlIHVuaXF1ZSBwZXIgdXNlcgorKyAgICAgICAgIG5vdCB0 byBtb2RpZnkgYnkgbWFsaWNpb3VzIHVzZXJzIGJ1dCBYREdfUlVOVElNRV9ESVIgaXMgbm90IGlu dGVncmF0ZWQKKysgICAgICAgICBpbiBCU0Qgc3lzdGVtcyBhbmQgdGhlIEJTRCdzIGRlZmF1bHQg aXMgIi90bXAiLgorKyAgICAgICAgICIkWERHX1JVTVRJTUVfRElSIiwgIiRYREdfQ0FDSEVfSE9N RSIsICIkVUlEIiBhcmUgZXh0cmFjdGVkIGJ5CisrICAgICAgICAgaWJ1cy1kYWVtb24uCisrICAg ICAgICAgaWJ1cy1kYWVtb24gYWxzbyBydW5zIG1rZGlyIGZvciB0aGUgc29ja2V0IGRpcmVjdG9y eSBzaW5jZSBCU0QKKysgICAgICAgICBzeXN0ZW1zIGRvIG5vdCBzdXBwb3J0IGFic3RyYWN0IHNv Y2tldCBwYXRocy4KKysgICAgICAgICBUaGUgc29ja2V0IHBhdGggb24gYSBORlMgbW91bnQgd291 bGQgbm90IGJlIGEgZ29vZCBpZGVhIGxpa2VzCisrICAgICAgICAgIi9ob21lLyRVU0VSIiBiZWNh dXNlIHRoZSBkaXJlY3RvcnkgaXMgbm90IHNvbWV0aW1lcyBhY2Nlc3NpYmxlCisrICAgICAgICAg d2l0aCB0aGUgbmV0d29yayBjb25kaXRpb24uXSksCisrICAgIFtJQlVTX1NPQ0tFVF9ESVI9JHdp dGhfc29ja2V0X2Rpcl0sCisrICAgIFtjYXNlICRob3N0IGluCisrICAgICAgICAgKmxpbnV4Kikg SUJVU19TT0NLRVRfRElSPSd1bml4OnRtcGRpcj0kWERHX1JVTlRJTUVfRElSL2lidXMnOzsKKysg ICAgICAgICAqKSAgICAgICBJQlVTX1NPQ0tFVF9ESVI9J3VuaXg6dG1wZGlyPS90bXAnOzsKKysg ICAgIGVzYWNdCisrCisrKQorK0FDX0RFRklORV9VTlFVT1RFRChJQlVTX1NPQ0tFVF9ESVIsICIk SUJVU19TT0NLRVRfRElSIiwKKysgICAgICAgICAgICAgICAgICAgW1RoZSBkZWZhdWx0IHNvY2tl dCBkaXJlY3RvcnkgdG8gY29ubmVjdCBpYnVzLWRhZW1vbi5dKQorKworICMgQ2hlY2sgaXNvLWNv ZGVzLgorIFBLR19DSEVDS19NT0RVTEVTKElTT0NPREVTLCBbCisgICAgIGlzby1jb2RlcworQEAg LTc5Myw2ICs4MTcsNyBAQCBCdWlsZCBvcHRpb25zOgorICAgQ0xEUiBhbm5vdGF0aW9uIGRpcmVj dG9yeSAgICAgJEVNT0pJX0FOTk9UQVRJT05fRElSCisgICBFbmFibGUgVW5pY29kZSBkaWN0ICAg ICAgICAgICAkZW5hYmxlX3VuaWNvZGVfZGljdAorICAgVUNEIGRpcmVjdG9yeSAgICAgICAgICAg ICAgICAgJFVDRF9ESVIKKysgIFNvY2tldCBkaXJlY3RvcnkgICAgICAgICAgICAgICIkSUJVU19T T0NLRVRfRElSIgorICAgUnVuIHRlc3QgY2FzZXMgICAgICAgICAgICAgICAgJGVuYWJsZV90ZXN0 cworICAgSW5zdGFsbCB0ZXN0cyAgICAgICAgICAgICAgICAgJGVuYWJsZV9pbnN0YWxsX3Rlc3Rz CisgXSkKIC0tIAogMi4yMS4wCiAKQEAgLTIwMywzICsxNDg2LDEyNzIgQEAgaW5kZXggNWZkMzdm MTAuLmRkOWQzMWQ0IDEwMDY0NAogLS0gCiAyLjIxLjAKIAorRnJvbSA1NzQyZTFiMzk5ZTVkNTBm MzRmMzViMWNkYTc0ZTU0OGI5NTU1NGRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog ZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogV2VkLCAyIE9jdCAy MDE5IDE2OjQxOjI3ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCBYREdfUlVOVElNRV9E SVIgdG8gWERHX0NPTkZJR19IT01FCisKK1NvbWUgdXNlcnMgZmFpbGVkIHRvIHJ1biBpYnVzLWRh ZW1vbiB3aXRoIFhER19SVU5USU1FX0RJUiBiZWNhdXNlCit0aGUgZGlyZWN0b3J5IGlzIG5vdCBj cmVhdGVkIGJ5IGBzdWAgY29tbWFuZC4KK05vdyB0aGUgSUJ1cyBzb2NrZXQgZmlsZXMgd2lsbCBi ZSBnZW5lcmF0ZWQgaW4gWERHX0NBQ0hFX0hPTUUuCisKK0JVRz1odHRwczovL2dpdGh1Yi5jb20v aWJ1cy9pYnVzL2lzc3Vlcy8yMTM1CistLS0KKyBjb25maWd1cmUuYWMgICAgfCA2ICsrKystLQor IDIgZmlsZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitpbmRleCAwYzFlZTQwZS4uODQ1 ODliZTAgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBiL2NvbmZpZ3VyZS5hYworQEAg LTcwNSwxMCArNzA1LDEyIEBAIGZpCisgQUNfQVJHX1dJVEgoc29ja2V0LWRpciwKKyAgICAgQVNf SEVMUF9TVFJJTkcoWy0td2l0aC1zb2NrZXQtZGlyWz1ESVJdXSwKKyAgICAgICAgIFtTZXQgdGhl IGRlZmF1bHQgc29ja2V0IGRpcmVjdG9yeSB0byBjb25uZWN0IGlidXMtZGFlbW9uIHdpdGggRC1C dXMKKy0gICAgICAgICBjb25uZWN0aW9ucyAoZGVmYXVsdDogIiRYREdfUlVOVElNRV9ESVIvaWJ1 cyIpLgorKyAgICAgICAgIGNvbm5lY3Rpb25zIChkZWZhdWx0OiAiJFhER19DQUNIRV9IT01FL2li dXMiKS4KKyAgICAgICAgICBUaGUgYmVzdCBwcmFjdGljZSBvZiB0aGUgc29ja2V0IGRpcmVjdG9y eSB3b3VsZCBiZSB1bmlxdWUgcGVyIHVzZXIKKyAgICAgICAgICBub3QgdG8gbW9kaWZ5IGJ5IG1h bGljaW91cyB1c2VycyBidXQgWERHX1JVTlRJTUVfRElSIGlzIG5vdCBpbnRlZ3JhdGVkCisgICAg ICAgICAgaW4gQlNEIHN5c3RlbXMgYW5kIHRoZSBCU0QncyBkZWZhdWx0IGlzICIvdG1wIi4KKysg ICAgICAgICBYREdfUlVNVElNRV9ESVIgaXMgbm90IHVzZWZ1bCBub3cgYmVjYXVzZSBYREdfUlVN VElNRV9ESVIgaXMgYXZhaWxhYmxlCisrICAgICAgICAgYnkgbG9naW4gYnV0IG5vdCBgc3VgIGNv bW1hbmQgYnV0IGlidXMtZGFlbW9uIGNhbiBiZSBydW4gd2l0aCBzdS4KKyAgICAgICAgICAiJFhE R19SVU1USU1FX0RJUiIsICIkWERHX0NBQ0hFX0hPTUUiLCAiJFVJRCIgYXJlIGV4dHJhY3RlZCBi eQorICAgICAgICAgIGlidXMtZGFlbW9uLgorICAgICAgICAgIGlidXMtZGFlbW9uIGFsc28gcnVu cyBta2RpciBmb3IgdGhlIHNvY2tldCBkaXJlY3Rvcnkgc2luY2UgQlNECitAQCAtNzE4LDcgKzcy MCw3IEBAIEFDX0FSR19XSVRIKHNvY2tldC1kaXIsCisgICAgICAgICAgd2l0aCB0aGUgbmV0d29y ayBjb25kaXRpb24uXSksCisgICAgIFtJQlVTX1NPQ0tFVF9ESVI9JHdpdGhfc29ja2V0X2Rpcl0s CisgICAgIFtjYXNlICRob3N0IGluCistICAgICAgICAgKmxpbnV4KikgSUJVU19TT0NLRVRfRElS PSd1bml4OnRtcGRpcj0kWERHX1JVTlRJTUVfRElSL2lidXMnOzsKKysgICAgICAgICAqbGludXgq KSBJQlVTX1NPQ0tFVF9ESVI9J3VuaXg6dG1wZGlyPSRYREdfQ0FDSEVfSE9NRS9pYnVzJzs7Cisg ICAgICAgICAgKikgICAgICAgSUJVU19TT0NLRVRfRElSPSd1bml4OnRtcGRpcj0vdG1wJzs7Cisg ICAgICBlc2FjXQorIAorLS0gCisyLjIxLjAKKworRnJvbSAzNTg2M2Q4MWQxNWUzZDM0NjNjZDVk YWZkMDQ3M2FmYjE5M2M1N2UzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdh cmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogV2VkLCAzMCBPY3QgMjAxOSAx NzoyOToyNSArMDkwMAorU3ViamVjdDogW1BBVENIXSBGaXggZGVwcmVjYXRlZCBBUElzCisKKy0g Rml4IGRlcHJlY2F0ZWQgZ3RrX21pc2Nfc2V0X3BhZGRpbmcoKSwgZ3RrX3dpZGdldF9zZXRfbWFy Z2luX2xlZnQoKSwKKyAgZ3RrX3dpZGdldF9zZXRfbWFyZ2luX3JpZ2h0KCkgaW4gZW1vamlsYW5n LnB5LCBlbmdpbmVkaWFsb2cucHksCisgIHNldHVwLnVpLCBjYW5kaWRhdGVhcmVhLnZhbGEsIGNh bmRpZGF0ZXBhbmVsLnZhbGEsIHN3aXRjaGVyLnZhbGEKKyAgc2luY2UgR1RLIDMuMTIKKworLSBG aXggZ19uZXcwKCkgYXJndW1lbnQgMSByYW5nZSBbMTg0NDY3NDQwNzE1NjIwNjc5NjgsIDE4NDQ2 NzQ0MDczNzA5NTUxNjE1XQorICBleGNlZWRzIG1heGltdW0gb2JqZWN0IHNpemUgOTIyMzM3MjAz Njg1NDc3NTgwNworICBbLVdhbGxvYy1zaXplLWxhcmdlci10aGFuPV0gYnkgYWRkaW5nIGdfYXNz ZXJ0KCkgaW4gaWJ1c2NvbXBvc2V0YWJsZS5jCisKKy0gRml4IGdka19rZXltYXBfZ2V0X2RlZmF1 bHQoKSB3aXRoIGdka19rZXltYXBfZ2V0X2Zvcl9kaXNwbGF5KCkgaW4KKyAgYmluZGluZ2NvbW1v bi52YWxhCisKKy0gRml4IHN0cmluZy51dGY4X29mZnNldCgpIHdpdGggc3RyaW5nLm5leHRfY2hh cigpIGluIGVtb2ppZXIudmFsYQorCistIEZpeCBQb3NpeC5TSUdVU1IxIHdpdGggUG9zaXguU2ln bmFsLlVTUjEgaW4gcGFuZWwudmFsYQorLS0tCisgYnVzL2lidXNpbXBsLmMgICAgICAgICAgICAg IHwgIDEgKworIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICB8ICAzICsrLQorIHNldHVwL2Vt b2ppbGFuZy5weSAgICAgICAgICB8IDE0ICsrKysrKystLS0tLS0tCisgc2V0dXAvZW5naW5lZGlh bG9nLnB5ICAgICAgIHwgMTggKysrKysrKysrLS0tLS0tLS0tCisgc2V0dXAvc2V0dXAudWkgICAg ICAgICAgICAgIHwgMzQgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQorIHNyYy9p YnVzY29tcG9zZXRhYmxlLmMgICAgICB8ICAxICsKKyB1aS9ndGszL2JpbmRpbmdjb21tb24udmFs YSAgfCAgNiArKystLS0KKyB1aS9ndGszL2NhbmRpZGF0ZWFyZWEudmFsYSAgfCAgOSArKysrKy0t LS0KKyB1aS9ndGszL2NhbmRpZGF0ZXBhbmVsLnZhbGEgfCAxMCArKysrKy0tLS0tCisgdWkvZ3Rr My9lbW9qaWVyLnZhbGEgICAgICAgIHwgIDQgKysrLQorIHVpL2d0azMvcGFuZWwudmFsYSAgICAg ICAgICB8ICA0ICsrLS0KKyB1aS9ndGszL3N3aXRjaGVyLnZhbGEgICAgICAgfCAgOSArKysrKy0t LS0KKyAxMiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2J1cy9pYnVzaW1wbC5jIGIvYnVzL2lidXNpbXBsLmMKK2luZGV4IDM5 YjE2MTM5Li44NTc2MWQzMCAxMDA2NDQKKy0tLSBhL2J1cy9pYnVzaW1wbC5jCisrKysgYi9idXMv aWJ1c2ltcGwuYworQEAgLTIxODAsNiArMjE4MCw3IEBAIGJ1c19pYnVzX2ltcGxfcmVnaXN0cnlf ZGVzdHJveSAoQnVzSUJ1c0ltcGwgKmlidXMpCisgCisgICAgIGdfY2xlYXJfcG9pbnRlciAoJmli dXMtPmVuZ2luZV90YWJsZSwgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kpOworIAorKyAgICAvKiBnX2Ns ZWFyX3BvaW50ZXIoKSBkb2VzIG5vdCBzZXQgdGhlIGNhc3QuICovCisgICAgIGlidXNfb2JqZWN0 X2Rlc3Ryb3kgKElCVVNfT0JKRUNUIChpYnVzLT5yZWdpc3RyeSkpOworICAgICBpYnVzLT5yZWdp c3RyeSA9IE5VTEw7CisgCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFj CitpbmRleCA4NDU4OWJlMC4uYWI3NGEzODAgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysr KyBiL2NvbmZpZ3VyZS5hYworQEAgLTUzLDYgKzUzLDcgQEAgbTRfZGVmaW5lKFtpYnVzX2JpbmFy eV92ZXJzaW9uXSwKKyAKKyAjIFJlcXVpcmVkIHZlcnNpb25zIG9mIG90aGVyIHBhY2thZ2VzLgor IG00X2RlZmluZShbZ2xpYl9yZXF1aXJlZF92ZXJzaW9uXSwgWzIuNDYuMF0pCisrbTRfZGVmaW5l KFtndGszX3JlcXVpcmVkX3ZlcnNpb25dLCBbMy4xMi4wXSkKKyAKKyAjIFZBTEFfVEFSR0VUX0dM SUJfVkVSU0lPTiBpcyB1c2VkIGJ5IHZhbGFjIC0tY2NvZGUgLS10YXJnZXQtZ2xpYiAuCisgIyBW QUxBX1RBUkdFVF9HTElCX1ZFUlNJT04gYW5kIGdsaWJfcmVxdWlyZWRfdmVyc2lvbiB3aWxsIGJl IGRpZmZlcmVudAorQEAgLTIzOCw3ICsyMzksNyBAQCBmaQorIGlmIHRlc3QgeCIkZW5hYmxlX2d0 azMiID0geCJ5ZXMiOyB0aGVuCisgICAgICMgY2hlY2sgZm9yIGd0azMKKyAgICAgUEtHX0NIRUNL X01PRFVMRVMoR1RLMywgWworLSAgICAgICAgZ3RrKy0zLjAKKysgICAgICAgIGd0aystMy4wID49 IGd0azNfcmVxdWlyZWRfdmVyc2lvbgorICAgICBdKQorICAgICBQS0dfQ0hFQ0tfRVhJU1RTKFtn ZGstd2F5bGFuZC0zLjBdLAorICAgICAgICAgW2VuYWJsZV9nZGszX3dheWxhbmQ9eWVzXSwKK2Rp ZmYgLS1naXQgYS9zZXR1cC9lbW9qaWxhbmcucHkgYi9zZXR1cC9lbW9qaWxhbmcucHkKK2luZGV4 IDgyNTA1ODlkLi41ODc1N2Q4NiAxMDA2NDQKKy0tLSBhL3NldHVwL2Vtb2ppbGFuZy5weQorKysr IGIvc2V0dXAvZW1vamlsYW5nLnB5CitAQCAtMyw3ICszLDcgQEAKKyAjCisgIyBpYnVzIC0gVGhl IElucHV0IEJ1cworICMKKy0jIENvcHlyaWdodCAoYykgMjAxNyBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysjIENvcHlyaWdodCAoYykgMjAxNy0yMDE5IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorICMgQ29weXJpZ2h0IChjKSAy MDE3IFJlZCBIYXQsIEluYy4KKyAjCisgIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCitAQCAtODMsOCArODMsOCBAQCBjbGFzcyBF bW9qaUxhbmdDaG9vc2VyKEd0ay5EaWFsb2cpOgorICAgICAgICAgICAgICAgICBoc2Nyb2xsYmFy X3BvbGljeSA9IEd0ay5Qb2xpY3lUeXBlLk5FVkVSLAorICAgICAgICAgICAgICAgICB2c2Nyb2xs YmFyX3BvbGljeSA9IEd0ay5Qb2xpY3lUeXBlLk5FVkVSLAorICAgICAgICAgICAgICAgICBzaGFk b3dfdHlwZSA9IEd0ay5TaGFkb3dUeXBlLklOLAorLSAgICAgICAgICAgICAgICBtYXJnaW5fbGVm dCA9IDYsCistICAgICAgICAgICAgICAgIG1hcmdpbl9yaWdodCA9IDYsCisrICAgICAgICAgICAg ICAgIG1hcmdpbl9zdGFydCA9IDYsCisrICAgICAgICAgICAgICAgIG1hcmdpbl9lbmQgPSA2LAor ICAgICAgICAgICAgICAgICBtYXJnaW5fdG9wID0gNiwKKyAgICAgICAgICAgICAgICAgbWFyZ2lu X2JvdHRvbSA9IDYpCisgICAgICAgICBzZWxmLnZib3guYWRkKHNlbGYuX19zY3JvbGxlZCkKK0BA IC0xOTIsOCArMTkyLDggQEAgY2xhc3MgRW1vamlMYW5nQ2hvb3NlcihHdGsuRGlhbG9nKToKKyAg ICAgICAgIGxhYmVsID0gR3RrLkxhYmVsKGxhYmVsID0gdGV4dCkKKyAgICAgICAgIGxhYmVsLnNl dF9oYWxpZ24oYWxpZ25tZW50KQorICAgICAgICAgbGFiZWwuc2V0X3ZhbGlnbihHdGsuQWxpZ24u Q0VOVEVSKQorLSAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9sZWZ0KDIwKQorLSAgICAgICAgbGFi ZWwuc2V0X21hcmdpbl9yaWdodCgyMCkKKysgICAgICAgIGxhYmVsLnNldF9tYXJnaW5fc3RhcnQo MjApCisrICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX2VuZCgyMCkKKyAgICAgICAgIGxhYmVsLnNl dF9tYXJnaW5fdG9wKDYpCisgICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX2JvdHRvbSg2KQorICAg ICAgICAgaGJveC5wYWNrX3N0YXJ0KGxhYmVsLCBUcnVlLCBUcnVlLCAwKQorQEAgLTIzNSw4ICsy MzUsOCBAQCBjbGFzcyBFbW9qaUxhbmdDaG9vc2VyKEd0ay5EaWFsb2cpOgorICAgICAgICAgcm93 LnNldF90b29sdGlwX3RleHQoXygiTW9yZeKApiIpKQorICAgICAgICAgYXJyb3cgPSBHdGsuSW1h Z2UubmV3X2Zyb21faWNvbl9uYW1lKCd2aWV3LW1vcmUtc3ltYm9saWMnLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5JY29uU2l6ZS5NRU5VKQorLSAg ICAgICAgYXJyb3cuc2V0X21hcmdpbl9sZWZ0KDIwKQorLSAgICAgICAgYXJyb3cuc2V0X21hcmdp bl9yaWdodCgyMCkKKysgICAgICAgIGFycm93LnNldF9tYXJnaW5fc3RhcnQoMjApCisrICAgICAg ICBhcnJvdy5zZXRfbWFyZ2luX2VuZCgyMCkKKyAgICAgICAgIGFycm93LnNldF9tYXJnaW5fdG9w KDYpCisgICAgICAgICBhcnJvdy5zZXRfbWFyZ2luX2JvdHRvbSg2KQorICAgICAgICAgYXJyb3cu c2V0X2hhbGlnbihHdGsuQWxpZ24uQ0VOVEVSKQorZGlmZiAtLWdpdCBhL3NldHVwL2VuZ2luZWRp YWxvZy5weSBiL3NldHVwL2VuZ2luZWRpYWxvZy5weQoraW5kZXggMmM0NzJkZWIuLjcyZGVhZGE4 IDEwMDY0NAorLS0tIGEvc2V0dXAvZW5naW5lZGlhbG9nLnB5CisrKysgYi9zZXR1cC9lbmdpbmVk aWFsb2cucHkKK0BAIC00LDcgKzQsNyBAQAorICMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAjCisg IyBDb3B5cmlnaHQgKGMpIDIwMTUgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+ CistIyBDb3B5cmlnaHQgKGMpIDIwMTUgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+CisrIyBDb3B5cmlnaHQgKGMpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAjIENvcHlyaWdodCAoYykgMjAxMy0yMDE1IFJlZCBI YXQsIEluYy4KKyAjCisgIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCitAQCAtNzAsOCArNzAsOCBAQCBjbGFzcyBFbmdpbmVEaWFs b2coR3RrLkRpYWxvZyk6CisgICAgICAgICAgICAgICAgIGhzY3JvbGxiYXJfcG9saWN5ID0gR3Rr LlBvbGljeVR5cGUuTkVWRVIsCisgICAgICAgICAgICAgICAgIHZzY3JvbGxiYXJfcG9saWN5ID0g R3RrLlBvbGljeVR5cGUuTkVWRVIsCisgICAgICAgICAgICAgICAgIHNoYWRvd190eXBlID0gR3Rr LlNoYWRvd1R5cGUuSU4sCistICAgICAgICAgICAgICAgIG1hcmdpbl9sZWZ0ID0gNiwKKy0gICAg ICAgICAgICAgICAgbWFyZ2luX3JpZ2h0ID0gNiwKKysgICAgICAgICAgICAgICAgbWFyZ2luX3N0 YXJ0ID0gNiwKKysgICAgICAgICAgICAgICAgbWFyZ2luX2VuZCA9IDYsCisgICAgICAgICAgICAg ICAgIG1hcmdpbl90b3AgPSA2LAorICAgICAgICAgICAgICAgICBtYXJnaW5fYm90dG9tID0gNikK KyAgICAgICAgIHNlbGYudmJveC5hZGQoc2VsZi5fX3Njcm9sbGVkKQorQEAgLTk0LDggKzk0LDgg QEAgY2xhc3MgRW5naW5lRGlhbG9nKEd0ay5EaWFsb2cpOgorICAgICAgICAgc2VsZi5fX2ZpbHRl cl90aW1lb3V0X2lkID0gMAorICAgICAgICAgc2VsZi5fX2ZpbHRlcl93b3JkID0gTm9uZQorICAg ICAgICAgc2VsZi5fX2ZpbHRlcl9lbnRyeSA9IEd0ay5TZWFyY2hFbnRyeShoZXhwYW5kID0gVHJ1 ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2lu X2xlZnQgPSA2LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtYXJnaW5fcmlnaHQgPSA2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtYXJnaW5fc3RhcnQgPSA2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtYXJnaW5fZW5kID0gNiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luX3RvcCA9IDYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbl9ib3R0b20gPSA2KQorICAg ICAgICAgc2VsZi5fX2ZpbHRlcl9lbnRyeS5zZXRfbm9fc2hvd19hbGwoVHJ1ZSkKK0BAIC0xNjQs OCArMTY0LDggQEAgY2xhc3MgRW5naW5lRGlhbG9nKEd0ay5EaWFsb2cpOgorICAgICAgICAgbGFi ZWwgPSBHdGsuTGFiZWwobGFiZWwgPSB0ZXh0KQorICAgICAgICAgbGFiZWwuc2V0X2hhbGlnbihh bGlnbm1lbnQpCisgICAgICAgICBsYWJlbC5zZXRfdmFsaWduKEd0ay5BbGlnbi5DRU5URVIpCist ICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX2xlZnQoMjApCistICAgICAgICBsYWJlbC5zZXRfbWFy Z2luX3JpZ2h0KDIwKQorKyAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9zdGFydCgyMCkKKysgICAg ICAgIGxhYmVsLnNldF9tYXJnaW5fZW5kKDIwKQorICAgICAgICAgbGFiZWwuc2V0X21hcmdpbl90 b3AoNikKKyAgICAgICAgIGxhYmVsLnNldF9tYXJnaW5fYm90dG9tKDYpCisgICAgICAgICBoYm94 LnBhY2tfc3RhcnQobGFiZWwsIFRydWUsIFRydWUsIDApCitAQCAtMjA1LDggKzIwNSw4IEBAIGNs YXNzIEVuZ2luZURpYWxvZyhHdGsuRGlhbG9nKToKKyAgICAgICAgIHJvdy5zZXRfdG9vbHRpcF90 ZXh0KF8oIk1vcmXigKYiKSkKKyAgICAgICAgIGFycm93ID0gR3RrLkltYWdlLm5ld19mcm9tX2lj b25fbmFtZSgndmlldy1tb3JlLXN5bWJvbGljJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHdGsuSWNvblNpemUuTUVOVSkKKy0gICAgICAgIGFycm93LnNl dF9tYXJnaW5fbGVmdCgyMCkKKy0gICAgICAgIGFycm93LnNldF9tYXJnaW5fcmlnaHQoMjApCisr ICAgICAgICBhcnJvdy5zZXRfbWFyZ2luX3N0YXJ0KDIwKQorKyAgICAgICAgYXJyb3cuc2V0X21h cmdpbl9lbmQoMjApCisgICAgICAgICBhcnJvdy5zZXRfbWFyZ2luX3RvcCg2KQorICAgICAgICAg YXJyb3cuc2V0X21hcmdpbl9ib3R0b20oNikKKyAgICAgICAgIGFycm93LnNldF9oYWxpZ24oR3Rr LkFsaWduLkNFTlRFUikKK2RpZmYgLS1naXQgYS9zZXR1cC9zZXR1cC51aSBiL3NldHVwL3NldHVw LnVpCitpbmRleCA5ZDlkN2VlOS4uNTY0NTMwNTQgMTAwNjQ0CistLS0gYS9zZXR1cC9zZXR1cC51 aQorKysrIGIvc2V0dXAvc2V0dXAudWkKK0BAIC05MCw4ICs5MCw4IEBACisgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJzcGFjaW5nIj4xODwvcHJvcGVydHk+CisgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9wIj4xMjwvcHJvcGVydHk+CisgICAgICAgICAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fYm90dG9tIj4xMjwvcHJvcGVydHk+CistICAg ICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fbGVmdCI+MTI8L3Byb3BlcnR5Pgor LSAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3JpZ2h0Ij4xMjwvcHJvcGVy dHk+CisrICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQiPjEyPC9w cm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9lbmQiPjEy PC9wcm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgPGNoaWxkPgorICAgICAgICAgICAgICAgICAg IDxvYmplY3QgY2xhc3M9Ikd0a0ZyYW1lIiBpZD0iZnJhbWUzIj4KKyAgICAgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KK0BAIC0xMDUsNyAr MTA1LDcgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY29sdW1u X3NwYWNpbmciPjEyPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0icm93X3NwYWNpbmciPjY8L3Byb3BlcnR5PgorICAgICAgICAgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9wIj42PC9wcm9wZXJ0eT4KKy0gICAgICAgICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX2xlZnQiPjEyPC9wcm9wZXJ0eT4K KysgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3N0YXJ0Ij4x MjwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAgICAgICAgICAgPGNoaWxkPgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrTGFiZWwiIGlkPSJsYWJlbDgiPgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1 ZTwvcHJvcGVydHk+CitAQCAtMzY2LDcgKzM2Niw3IEBACisgICAgICAgICAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9ImNvbHVtbl9zcGFjaW5nIj4xMjwvcHJvcGVydHk+CisgICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InJvd19zcGFjaW5nIj42PC9wcm9wZXJ0 eT4KKyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3RvcCI+ NjwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1h cmdpbl9sZWZ0Ij4xMjwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgPHByb3Bl cnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MTI8L3Byb3BlcnR5PgorICAgICAgICAgICAgICAgICAg ICAgICAgIDxjaGlsZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9 Ikd0a0xhYmVsIiBpZD0ibGFiZWw2Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgorQEAgLTU4OSw4ICs1ODksOCBA QAorICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY2FuX2ZvY3VzIj5GYWxzZTwvcHJv cGVydHk+CisgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9wIj4xMjwv cHJvcGVydHk+CisgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fYm90dG9t Ij4xMjwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5f bGVmdCI+MTI8L3Byb3BlcnR5PgorLSAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFy Z2luX3JpZ2h0Ij4xMjwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJtYXJnaW5fc3RhcnQiPjEyPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgPHByb3BlcnR5 IG5hbWU9Im1hcmdpbl9lbmQiPjEyPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgPGNoaWxk PgorICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0JveCIgaWQ9Imhib3gxIj4K KyAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcmllbnRhdGlvbiI+aG9yaXpv bnRhbDwvcHJvcGVydHk+CitAQCAtNjU4LDcgKzY1OCw3IEBACisgICAgICAgICAgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9ImNhbl9mb2N1cyI+RmFsc2U8L3Byb3BlcnR5PgorICAgICAg ICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzcGFjaW5nIj41PC9wcm9wZXJ0eT4K KyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGF5b3V0X3N0eWxlIj5z dGFydDwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9 Im1hcmdpbl9sZWZ0Ij4xMjwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MTI8L3Byb3BlcnR5PgorICAgICAgICAgICAgICAg ICAgICAgICAgIDxjaGlsZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xh c3M9Ikd0a0J1dHRvbiIgaWQ9ImJ1dHRvbl9lbmdpbmVfYWRkIj4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImxhYmVsIiB0cmFuc2xhdGFibGU9InllcyI+X0Fk ZDwvcHJvcGVydHk+CitAQCAtODExLDcgKzgxMSw3IEBACisgICAgICAgICAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9Im1heF93aWR0aF9jaGFycyI+NzQ8L3Byb3BlcnR5PgorICAgICAg ICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJsYWJlbCIgdHJhbnNsYXRhYmxlPSJ5 ZXMiPiZsdDtzbWFsbCZndDsmbHQ7aSZndDtUaGUgYWN0aXZlIGlucHV0IG1ldGhvZCBjYW4gYmUg c3dpdGNoZWQgYXJvdW5kIGZyb20gdGhlIHNlbGVjdGVkIG9uZXMgaW4gdGhlIGFib3ZlIGxpc3Qg YnkgcHJlc3NpbmcgdGhlIGtleWJvYXJkIHNob3J0Y3V0IGtleXMgb3IgY2xpY2tpbmcgdGhlIHBh bmVsIGljb24uJmx0Oy9pJmd0OyZsdDsvc21hbGwmZ3Q7PC9wcm9wZXJ0eT4KKyAgICAgICAgICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idXNlX21hcmt1cCI+VHJ1ZTwvcHJvcGVydHk+ CistICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fbGVm dCI+MDwvcHJvcGVydHkgLS0+CisrICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBwcm9wZXJ0 eSBuYW1lPSJtYXJnaW5fc3RhcnQiPjA8L3Byb3BlcnR5IC0tPgorICAgICAgICAgICAgICAgICAg ICAgICA8L29iamVjdD4KKyAgICAgICAgICAgICAgICAgICAgICAgPHBhY2tpbmc+CisgICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImV4cGFuZCI+VHJ1ZTwvcHJvcGVydHk+ CitAQCAtODUwLDggKzg1MCw4IEBACisgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJz cGFjaW5nIj4xODwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJt YXJnaW5fdG9wIj4xMjwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJtYXJnaW5fYm90dG9tIj4xMjwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgIDxwcm9wZXJ0 eSBuYW1lPSJtYXJnaW5fbGVmdCI+MTI8L3Byb3BlcnR5PgorLSAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0ibWFyZ2luX3JpZ2h0Ij4xMjwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQiPjEyPC9wcm9wZXJ0eT4KKysgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9lbmQiPjEyPC9wcm9wZXJ0eT4KKyAgICAgICAg ICAgICAgICAgPGNoaWxkPgorICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0Zy YW1lIiBpZD0iZnJhbWVfZW1vamkxIj4KKyAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KK0BAIC04NjUsNyArODY1LDcgQEAKKyAgICAg ICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY29sdW1uX3NwYWNpbmciPjEyPC9w cm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0icm93X3Nw YWNpbmciPjY8L3Byb3BlcnR5PgorICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJtYXJnaW5fdG9wIj42PC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAgICAgICA8 cHJvcGVydHkgbmFtZT0ibWFyZ2luX2xlZnQiPjEyPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3N0YXJ0Ij4xMjwvcHJvcGVydHk+Cisg ICAgICAgICAgICAgICAgICAgICAgICAgPGNoaWxkPgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgPG9iamVjdCBjbGFzcz0iR3RrTGFiZWwiIGlkPSJsYWJlbF9lbW9qaTEiPgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1ZTwvcHJvcGVy dHk+CitAQCAtMTAwNCw3ICsxMDA0LDcgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0iY29sdW1uX3NwYWNpbmciPjEyPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0icm93X3NwYWNpbmciPjY8L3Byb3BlcnR5PgorICAg ICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9wIj42PC9wcm9w ZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX2xl ZnQiPjEyPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFt ZT0ibWFyZ2luX3N0YXJ0Ij4xMjwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9InJvd19ob21vZ2VuZW91cyI+ZmFsc2U8L3Byb3BlcnR5PgorICAgICAg ICAgICAgICAgICAgICAgICAgIDxjaGlsZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxv YmplY3QgY2xhc3M9Ikd0a0xhYmVsIiBpZD0ibGFiZWxfZW1vamlfZm9udCI+CitAQCAtMTE4Nyw4 ICsxMTg3LDggQEAKKyAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNhbl9mb2N1cyI+ RmFsc2U8L3Byb3BlcnR5PgorICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2lu X3RvcCI+MTI8L3Byb3BlcnR5PgorICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFy Z2luX2JvdHRvbSI+MTI8L3Byb3BlcnR5PgorLSAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFt ZT0ibWFyZ2luX2xlZnQiPjEyPC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgPHByb3BlcnR5 IG5hbWU9Im1hcmdpbl9yaWdodCI+MTI8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0ibWFyZ2luX3N0YXJ0Ij4xMjwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fZW5kIj4xMjwvcHJvcGVydHk+CisgICAgICAgICAgICAg ICAgIDxjaGlsZD4KKyAgICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJHdGtGcmFtZSIg aWQ9ImZyYW1lMiI+CisgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJs ZSI+VHJ1ZTwvcHJvcGVydHk+CitAQCAtMTIwMiw3ICsxMjAyLDcgQEAKKyAgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY2FuX2ZvY3VzIj5GYWxzZTwvcHJvcGVydHk+Cisg ICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNwYWNpbmciPjY8L3Byb3Bl cnR5PgorICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fdG9w Ij42PC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0i bWFyZ2luX2xlZnQiPjI0PC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0ibWFyZ2luX3N0YXJ0Ij4yNDwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAg ICAgICAgICAgPGNoaWxkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFz cz0iR3RrQ2hlY2tCdXR0b24iIGlkPSJjaGVja2J1dHRvbl91c2Vfc3lzX2xheW91dCI+CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJsYWJlbCIgdHJhbnNsYXRh YmxlPSJ5ZXMiPlVzZSBzeXN0ZW0ga2V5Ym9hcmQgbGF5b3V0PC9wcm9wZXJ0eT4KK0BAIC0xMjUx LDcgKzEyNTEsNyBAQAorICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJj YW5fZm9jdXMiPkZhbHNlPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0ic3BhY2luZyI+NjwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl90b3AiPjY8L3Byb3BlcnR5PgorLSAgICAgICAgICAg ICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fbGVmdCI+MjQ8L3Byb3BlcnR5Pgor KyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQiPjI0 PC9wcm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+CisgICAgICAgICAg ICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJHdGtDaGVja0J1dHRvbiIgaWQ9ImNoZWNr YnV0dG9uX3VzZV9nbG9iYWxfZW5naW5lIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9ImxhYmVsIiB0cmFuc2xhdGFibGU9InllcyI+U2hhcmUgdGhlIHNhbWUg aW5wdXQgbWV0aG9kIGFtb25nIGFsbCBhcHBsaWNhdGlvbnM8L3Byb3BlcnR5PgorQEAgLTEzNDgs NyArMTM0OCw3IEBAIEhvbWVwYWdlOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL3dpa2kK KyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iaGFsaWduIj5zdGFydDwv cHJvcGVydHk+CisgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImRyYXdf aW5kaWNhdG9yIj5UcnVlPC9wcm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0ibWFyZ2luX3RvcCI+NjwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9sZWZ0Ij4xMjwvcHJvcGVydHk+CisrICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MTI8L3Byb3Bl cnR5PgorICAgICAgICAgICAgICAgICAgICAgICA8L29iamVjdD4KKyAgICAgICAgICAgICAgICAg ICAgIDwvY2hpbGQ+CisgICAgICAgICAgICAgICAgICAgICA8Y2hpbGQgdHlwZT0ibGFiZWwiPgor ZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9zZXRhYmxlLmMgYi9zcmMvaWJ1c2NvbXBvc2V0YWJs ZS5jCitpbmRleCBkZDlkMzFkNC4uZTRlM2E3Y2QgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2NvbXBv c2V0YWJsZS5jCisrKysgYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCitAQCAtMTA1OCw2ICsxMDU4 LDcgQEAgaWJ1c19jb21wb3NlX3RhYmxlX2xpc3RfYWRkX2FycmF5IChHU0xpc3QgICAgICAgICpj b21wb3NlX3RhYmxlcywKKyAgICAgaW50IGk7CisgICAgIGd1aW50MTYgKmlidXNfY29tcG9zZV9z ZXFzID0gTlVMTDsKKyAKKysgICAgZ19hc3NlcnQgKGxlbmd0aCA+PSAwKTsKKyAgICAgZ19yZXR1 cm5fdmFsX2lmX2ZhaWwgKGRhdGEgIT0gTlVMTCwgY29tcG9zZV90YWJsZXMpOworICAgICBnX3Jl dHVybl92YWxfaWZfZmFpbCAobWF4X3NlcV9sZW4gPD0gSUJVU19NQVhfQ09NUE9TRV9MRU4sIGNv bXBvc2VfdGFibGVzKTsKKyAKK2RpZmYgLS1naXQgYS91aS9ndGszL2JpbmRpbmdjb21tb24udmFs YSBiL3VpL2d0azMvYmluZGluZ2NvbW1vbi52YWxhCitpbmRleCA0MTcxZjI5ZC4uMTUwZDRjMzkg MTAwNjQ0CistLS0gYS91aS9ndGszL2JpbmRpbmdjb21tb24udmFsYQorKysrIGIvdWkvZ3RrMy9i aW5kaW5nY29tbW9uLnZhbGEKK0BAIC0zLDcgKzMsNyBAQAorICAqIGlidXMgLSBUaGUgSW5wdXQg QnVzCisgICoKKyAgKiBDb3B5cmlnaHQoYykgMjAxOCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5n QGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQoYykgMjAxOCBUYWthbyBGdWp3aWFyYSA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQoYykgMjAxOC0yMDE5IFRha2FvIEZ1 andpYXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorICAqCisgICogVGhpcyBsaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK K0BAIC03NSw4ICs3NSw4IEBAIGNsYXNzIEJpbmRpbmdDb21tb24geworICAgICAgICAgLy8gd29y a2Fyb3VuZCBhIGJ1ZyBpbiBnZGsgdmFwaSB2YWxhID4gMC4xOAorICAgICAgICAgLy8gaHR0cHM6 Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTY3NzU1OQorICNpZiBWQUxBXzBf MTgKKy0gICAgICAgICAgICBHZGsuS2V5bWFwLmdldF9kZWZhdWx0KCkubWFwX3ZpcnR1YWxfbW9k aWZpZXJzKAorLSAgICAgICAgICAgICAgICAgICAgcmVmIHN3aXRjaF9tb2RpZmllcnMpOworKyAg ICAgICAgICAgIEdkay5LZXltYXAuZ2V0X2Zvcl9kaXNwbGF5KEdkay5EaXNwbGF5LmdldF9kZWZh dWx0KCkKKysgICAgICAgICAgICAgICAgICAgICkubWFwX3ZpcnR1YWxfbW9kaWZpZXJzKHJlZiBz d2l0Y2hfbW9kaWZpZXJzKTsKKyAjZWxzZQorICAgICAgICAgICAgIGlmICgoc3dpdGNoX21vZGlm aWVycyAmIEdkay5Nb2RpZmllclR5cGUuU1VQRVJfTUFTSykgIT0gMCkKKyAgICAgICAgICAgICAg ICAgc3dpdGNoX21vZGlmaWVycyB8PSBHZGsuTW9kaWZpZXJUeXBlLk1PRDRfTUFTSzsKK2RpZmYg LS1naXQgYS91aS9ndGszL2NhbmRpZGF0ZWFyZWEudmFsYSBiL3VpL2d0azMvY2FuZGlkYXRlYXJl YS52YWxhCitpbmRleCA3ODFlY2QxZS4uYjIyYWI1ZGEgMTAwNjQ0CistLS0gYS91aS9ndGszL2Nh bmRpZGF0ZWFyZWEudmFsYQorKysrIGIvdWkvZ3RrMy9jYW5kaWRhdGVhcmVhLnZhbGEKK0BAIC0z LDcgKzMsNyBAQAorICAqIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICoKKyAgKiBDb3B5cmlnaHQo YykgMjAxMS0yMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENv cHlyaWdodChjKSAyMDE1LTIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CisrICogQ29weXJpZ2h0KGMpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtMjE1LDkgKzIx NSwxMCBAQCBjbGFzcyBDYW5kaWRhdGVBcmVhIDogR3RrLkJveCB7CisgICAgICAgICAgICAgICAg IGNhbmRpZGF0ZS5zaG93KCk7CisgICAgICAgICAgICAgICAgIG1fY2FuZGlkYXRlcyArPSBjYW5k aWRhdGU7CisgCistICAgICAgICAgICAgICAgIC8qIFVzZSBHdGsuV2lkZ2V0LnNldF9tYXJnaW5f c3RhcnQoKSBzaW5jZSBndGsgMy4xMiAqLworLSAgICAgICAgICAgICAgICBsYWJlbC5zZXRfcGFk ZGluZyg4LCAwKTsKKy0gICAgICAgICAgICAgICAgY2FuZGlkYXRlLnNldF9wYWRkaW5nKDgsIDAp OworKyAgICAgICAgICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX3N0YXJ0ICg4KTsKKysgICAgICAg ICAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9lbmQgKDgpOworKyAgICAgICAgICAgICAgICBjYW5k aWRhdGUuc2V0X21hcmdpbl9zdGFydCAoOCk7CisrICAgICAgICAgICAgICAgIGNhbmRpZGF0ZS5z ZXRfbWFyZ2luX2VuZCAoOCk7CisgCisgICAgICAgICAgICAgICAgIC8vIE1ha2UgYSBjb3B5IG9m IGkgdG8gd29ya2Fyb3VuZCBhIGJ1ZyBpbiB2YWxhLgorICAgICAgICAgICAgICAgICAvLyBodHRw czovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4MzM2CitkaWZmIC0tZ2l0 IGEvdWkvZ3RrMy9jYW5kaWRhdGVwYW5lbC52YWxhIGIvdWkvZ3RrMy9jYW5kaWRhdGVwYW5lbC52 YWxhCitpbmRleCBkNDA0YzY1OS4uODk5NGNkYjkgMTAwNjQ0CistLS0gYS91aS9ndGszL2NhbmRp ZGF0ZXBhbmVsLnZhbGEKKysrKyBiL3VpL2d0azMvY2FuZGlkYXRlcGFuZWwudmFsYQorQEAgLTMs NyArMyw3IEBACisgICogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKgorICAqIENvcHlyaWdodChj KSAyMDExLTIwMTUgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29w eXJpZ2h0KGMpIDIwMTUtMjAxOCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWls LmNvbT4KKysgKiBDb3B5cmlnaHQoYykgMjAxNS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC0yNDIsMTYgKzI0 MiwxNiBAQCBwdWJsaWMgY2xhc3MgQ2FuZGlkYXRlUGFuZWwgOiBHdGsuQm94eworICAgICAgICAg bV9wcmVlZGl0X2xhYmVsLnNldF9zaXplX3JlcXVlc3QoMjAsIC0xKTsKKyAgICAgICAgIG1fcHJl ZWRpdF9sYWJlbC5zZXRfaGFsaWduKEd0ay5BbGlnbi5TVEFSVCk7CisgICAgICAgICBtX3ByZWVk aXRfbGFiZWwuc2V0X3ZhbGlnbihHdGsuQWxpZ24uQ0VOVEVSKTsKKy0gICAgICAgIC8qIFVzZSBH dGsuV2lkZ2V0LnNldF9tYXJnaW5fc3RhcnQoKSBzaW5jZSBndGsgMy4xMiAqLworLSAgICAgICAg bV9wcmVlZGl0X2xhYmVsLnNldF9wYWRkaW5nKDgsIDApOworKyAgICAgICAgbV9wcmVlZGl0X2xh YmVsLnNldF9tYXJnaW5fc3RhcnQoOCk7CisrICAgICAgICBtX3ByZWVkaXRfbGFiZWwuc2V0X21h cmdpbl9lbmQoOCk7CisgICAgICAgICBtX3ByZWVkaXRfbGFiZWwuc2V0X25vX3Nob3dfYWxsKHRy dWUpOworIAorICAgICAgICAgbV9hdXhfbGFiZWwgPSBuZXcgR3RrLkxhYmVsKG51bGwpOworICAg ICAgICAgbV9hdXhfbGFiZWwuc2V0X3NpemVfcmVxdWVzdCgyMCwgLTEpOworICAgICAgICAgbV9h dXhfbGFiZWwuc2V0X2hhbGlnbihHdGsuQWxpZ24uU1RBUlQpOworICAgICAgICAgbV9hdXhfbGFi ZWwuc2V0X3ZhbGlnbihHdGsuQWxpZ24uQ0VOVEVSKTsKKy0gICAgICAgIC8qIFVzZSBHdGsuV2lk Z2V0LnNldF9tYXJnaW5fc3RhcnQoKSBzaW5jZSBndGsgMy4xMiAqLworLSAgICAgICAgbV9hdXhf bGFiZWwuc2V0X3BhZGRpbmcoOCwgMCk7CisrICAgICAgICBtX2F1eF9sYWJlbC5zZXRfbWFyZ2lu X3N0YXJ0KDgpOworKyAgICAgICAgbV9hdXhfbGFiZWwuc2V0X21hcmdpbl9lbmQoOCk7CisgICAg ICAgICBtX2F1eF9sYWJlbC5zZXRfbm9fc2hvd19hbGwodHJ1ZSk7CisgCisgICAgICAgICBtX2Nh bmRpZGF0ZV9hcmVhID0gbmV3IENhbmRpZGF0ZUFyZWEobV92ZXJ0aWNhbF9wYW5lbF9zeXN0ZW0p OworZGlmZiAtLWdpdCBhL3VpL2d0azMvZW1vamllci52YWxhIGIvdWkvZ3RrMy9lbW9qaWVyLnZh bGEKK2luZGV4IGZjMTVjZmZlLi40ZTUyNzY5YyAxMDA2NDQKKy0tLSBhL3VpL2d0azMvZW1vamll ci52YWxhCisrKysgYi91aS9ndGszL2Vtb2ppZXIudmFsYQorQEAgLTIxNDcsMTEgKzIxNDcsMTMg QEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICBuY2FuZGlkYXRlcykpOworICAgICAgICAgaW50IGNoYXJf Y291bnQgPSB0ZXh0LnRleHQuY2hhcl9jb3VudCgpOworICAgICAgICAgaW50IHN0YXJ0X2luZGV4 ID0gLTE7CisrICAgICAgICB1bm93bmVkIHN0cmluZyB0aXRsZSA9IHRleHQudGV4dDsKKyAgICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhcl9jb3VudDsgaSsrKSB7CistICAgICAgICAgICAg aWYgKHRleHQudGV4dC51dGY4X29mZnNldChpKS5oYXNfcHJlZml4KGxhbmd1YWdlKSkgeworKyAg ICAgICAgICAgIGlmICh0aXRsZS5oYXNfcHJlZml4KGxhbmd1YWdlKSkgeworICAgICAgICAgICAg ICAgICBzdGFydF9pbmRleCA9IGk7CisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgIH0KKysgICAgICAgICAgICB0aXRsZSA9IHRpdGxlLm5leHRfY2hhcigpOworICAgICAgICAg fQorICAgICAgICAgaWYgKHN0YXJ0X2luZGV4ID49IDApIHsKKyAgICAgICAgICAgICB2YXIgYXR0 ciA9IG5ldyBJQnVzLkF0dHJpYnV0ZSgKK2RpZmYgLS1naXQgYS91aS9ndGszL3BhbmVsLnZhbGEg Yi91aS9ndGszL3BhbmVsLnZhbGEKK2luZGV4IDIwNTQ2NThlLi42ODBjODZlZCAxMDA2NDQKKy0t LSBhL3VpL2d0azMvcGFuZWwudmFsYQorKysrIGIvdWkvZ3RrMy9wYW5lbC52YWxhCitAQCAtMTA1 Myw3ICsxMDUzLDcgQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7CisgCisgICAg IHByaXZhdGUgdm9pZCBzaG93X3NldHVwX2RpYWxvZygpIHsKKyAgICAgICAgIGlmIChtX3NldHVw X3BpZCAhPSAwKSB7CistICAgICAgICAgICAgaWYgKFBvc2l4LmtpbGwobV9zZXR1cF9waWQsIFBv c2l4LlNJR1VTUjEpID09IDApCisrICAgICAgICAgICAgaWYgKFBvc2l4LmtpbGwobV9zZXR1cF9w aWQsIFBvc2l4LlNpZ25hbC5VU1IxKSA9PSAwKQorICAgICAgICAgICAgICAgICByZXR1cm47Cisg ICAgICAgICAgICAgbV9zZXR1cF9waWQgPSAwOworICAgICAgICAgfQorQEAgLTEwODcsNyArMTA4 Nyw3IEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2UgeworIAorICAgICAgICAgICAg IHN0cmluZyBjb3B5cmlnaHQgPQorICAgICAgICAgICAgICAgICAiQ29weXJpZ2h0IMKpIDIwMDct MjAxNSBQZW5nIEh1YW5nXG4iICsKKy0gICAgICAgICAgICAgICAgIkNvcHlyaWdodCDCqSAyMDE1 IFRha2FvIEZ1aml3YXJhXG4iICsKKysgICAgICAgICAgICAgICAgIkNvcHlyaWdodCDCqSAyMDE1 LTIwMTkgVGFrYW8gRnVqaXdhcmFcbiIgKworICAgICAgICAgICAgICAgICAiQ29weXJpZ2h0IMKp IDIwMDctMjAxNSBSZWQgSGF0LCBJbmMuXG4iOworIAorICAgICAgICAgICAgIG1fYWJvdXRfZGlh bG9nLnNldF9jb3B5cmlnaHQoY29weXJpZ2h0KTsKK2RpZmYgLS1naXQgYS91aS9ndGszL3N3aXRj aGVyLnZhbGEgYi91aS9ndGszL3N3aXRjaGVyLnZhbGEKK2luZGV4IDBkZTQ0ZTk4Li5hNDUyOWM4 OCAxMDA2NDQKKy0tLSBhL3VpL2d0azMvc3dpdGNoZXIudmFsYQorKysrIGIvdWkvZ3RrMy9zd2l0 Y2hlci52YWxhCitAQCAtMyw3ICszLDcgQEAKKyAgKiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAq CisgICogQ29weXJpZ2h0KGMpIDIwMTEtMjAxNiBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdt YWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQoYykgMjAxNS0yMDE3IFRha2FvIEZ1aml3YXJhIDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodChjKSAyMDE1LTIwMTkgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICoKKyAgKiBUaGlzIGxpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworQEAgLTEyNSw5ICsxMjUsMTAgQEAgY2xhc3MgU3dpdGNoZXIgOiBHdGsuV2luZG93IHsKKyAg ICAgICAgIEF0ay5PYmplY3Qgb2JqID0gbV9sYWJlbC5nZXRfYWNjZXNzaWJsZSgpOworICAgICAg ICAgb2JqLnNldF9yb2xlIChBdGsuUm9sZS5TVEFUVVNCQVIpOworIAorLSAgICAgICAgLyogVXNl IEd0ay5XaWRnZXQuc2V0X21hcmdpbl9zdGFydCgpIGFuZAorLSAgICAgICAgICogR3RrLldpZGdl dC5zZXRfbWFyZ2luX3RvcCgpIHNpbmNlIGd0ayAzLjEyICovCistICAgICAgICBtX2xhYmVsLnNl dF9wYWRkaW5nKDMsIDMpOworKyAgICAgICAgbV9sYWJlbC5zZXRfbWFyZ2luX3N0YXJ0KDMpOwor KyAgICAgICAgbV9sYWJlbC5zZXRfbWFyZ2luX2VuZCgzKTsKKysgICAgICAgIG1fbGFiZWwuc2V0 X21hcmdpbl90b3AoMyk7CisrICAgICAgICBtX2xhYmVsLnNldF9tYXJnaW5fYm90dG9tKDMpOwor ICAgICAgICAgdmJveC5wYWNrX2VuZChtX2xhYmVsLCBmYWxzZSwgZmFsc2UsIDApOworIAorICAg ICAgICAgZ3JhYl9mb2N1cygpOworLS0gCisyLjIxLjAKKworRnJvbSBlZmViN2I5Njg5MTI2ZTRm MDViZDFlMTA0NDFjZGM0YTM3MjBmZjFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog Um9iZXJ0IEhvZmZtYW5uIDxleHRlcm5lci5kbC5ob2ZmbWFubkBtdWVuY2hlbi5kZT4KK0RhdGU6 IEZyaSwgMSBOb3YgMjAxOSAyMTo1NToxMyArMDkwMAorU3ViamVjdDogW1BBVENIXSBidXM6IEZp eCByZXN0YXJ0IGNyYXNoIHdpdGggaW5vdGlmeSByZWFkKCkKKworRG8gbm90IGNsb3NlIGlub3Rp ZnkgZGVzY2lwdG9ycyB3aGVuIHJlc3RhcnRpbmcgdGhlIHNlcnZlci4gVGhpcworbWF5IGxlYWQg dG8gY3Jhc2hlcyBpbiBnbGliLgorCitGaXhlcyBjcmFzaCBpbiBsaWJnbGliL2xpYmdpbyB3aXRo CitHTGliLUdJTy1FUlJPUiA6IGlub3RpZnkgcmVhZCgpOiBCYWQgZmlsZSBkZXNjcmlwdG9yCisK K1NlZSBhbHNvIHNyYy90ZXN0cy9pYnVzLWJ1cy5jOiBzdGFydF9leGl0X2FzeW5jKCk6CisgICAg LyogV2hlbiBgLi9ydW50ZXN0IGlidXMtYnVzYCBydW5zLCBpYnVzLWRhZW1vbiBzb21ldGltZXMg ZmFpbGVkIHRvCisgICAgICogcmVzdGFydCBiZWNhdXNlIGNsb3NpbmcgYSBmaWxlIGRlc2NyaXB0 b3Igd2FzIGZhaWxlZCBpbgorICAgICAqIGJ1cy9zZXJ2ZXIuYzpfcmVzdGFydF9zZXJ2ZXIoKSB3 aXRoIGEgZm9sbG93aW5nIGVycm9yOgorICAgICAqICAgICAiaW5vdGlmeSByZWFkKCk6IEJhZCBm aWxlIGRlc2NyaXB0b3IiCisKK1Rlc3QgcGxhbjoKK1J1bgorJCBpYnVzIHJlc3RhcnQKK3NldmVy YWwgdGltZXMuIFdpdGhvdXQgdGhlIHBhdGNoIGlidXMtZGFlbW9uIHdpbGwgY3Jhc2ggb2NjYXNp b25hbGx5LgorCitCVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzIxNDgKKy0t LQorIGJ1cy9zZXJ2ZXIuYyB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL2J1cy9zZXJ2ZXIuYyBiL2J1cy9zZXJ2ZXIuYworaW5kZXggZDljMzBlNDQuLmE3NTU0YTg4 IDEwMDY0NAorLS0tIGEvYnVzL3NlcnZlci5jCisrKysgYi9idXMvc2VydmVyLmMKK0BAIC0yNiw2 ICsyNiw4IEBACisgI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisgI2luY2x1ZGUgPGdpby9naW8u aD4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisrI2luY2x1ZGUgPGZjbnRsLmg+CisrI2luY2x1ZGUg PGVycm5vLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorIAorICNpbmNsdWRlICJkYnVzaW1wbC5o IgorQEAgLTQ1LDE2ICs0NywzMyBAQCBfcmVzdGFydF9zZXJ2ZXIgKHZvaWQpCisgeworICAgICBn Y2hhciAqZXhlOworICAgICBnaW50IGZkOworKyAgICBzc2l6ZV90IHI7CisrICAgIGludCBNQVhT SVpFID0gMHhGRkY7CisrICAgIGNoYXIgcHJvY2xua1tNQVhTSVpFXTsKKysgICAgY2hhciBmaWxl bmFtZVtNQVhTSVpFXTsKKyAKKy0gICAgZXhlID0gZ19zdHJkdXBfcHJpbnRmICgiL3Byb2MvJWQv ZXhlIiwgZ2V0cGlkICgpKTsKKy0gICAgZXhlID0gZ19maWxlX3JlYWRfbGluayAoZXhlLCBOVUxM KTsKKysgICAgZXhlID0gZ19maWxlX3JlYWRfbGluayAoIi9wcm9jL3NlbGYvZXhlIiwgTlVMTCk7 CisgCisgICAgIGlmIChleGUgPT0gTlVMTCkKKy0gICAgICAgIGV4ZSA9IEJJTkRJUiAiL2lidXMt ZGFlbW9uIjsKKysgICAgICAgIGV4ZSA9IGdfc3RyZHVwIChCSU5ESVIgIi9pYnVzLWRhZW1vbiIp OworIAorICAgICAvKiBjbG9zZSBhbGwgZmRzIGV4Y2VwdCBzdGRpbiwgc3Rkb3V0LCBzdGRlcnIg Ki8KKyAgICAgZm9yIChmZCA9IDM7IGZkIDw9IHN5c2NvbmYgKF9TQ19PUEVOX01BWCk7IGZkICsr KSB7CistICAgICAgICBjbG9zZSAoZmQpOworKyAgICAgICAgZXJybm8gPSAwOworKyAgICAgICAg Lyogb25seSBjbG9zZSB2YWxpZCBmZHMgKi8KKysgICAgICAgIGlmIChmY250bCAoZmQsIEZfR0VU RkQpICE9IC0xIHx8IGVycm5vICE9IEVCQURGKSB7CisrICAgICAgICAgICAgZ19zcHJpbnRmIChw cm9jbG5rLCAiL3Byb2Mvc2VsZi9mZC8lZCIsIGZkKTsKKysgICAgICAgICAgICByID0gcmVhZGxp bmsgKHByb2NsbmssIGZpbGVuYW1lLCBNQVhTSVpFKTsKKysgICAgICAgICAgICBpZiAociA8IDAp IHsKKysgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAgfQorKyAgICAgICAg ICAgIGZpbGVuYW1lW3JdID0gJ1wwJzsKKysKKysgICAgICAgICAgICAvKiBEbyBub3QgY2xvc2Ug J2Fub25faW5vZGU6aW5vdGlmeScgZmRzLCB0aGF0IG1heSBjcmFzaCBpbiBnbGliICovCisrICAg ICAgICAgICAgaWYgKGdfc3RyY21wMCAoZmlsZW5hbWUsICJhbm9uX2lub2RlOmlub3RpZnkiKSAh PSAwKSB7CisrICAgICAgICAgICAgICAgIGNsb3NlIChmZCk7CisrICAgICAgICAgICAgfQorKyAg ICAgICAgfQorICAgICB9CisgCisgICAgIF9yZXN0YXJ0ID0gRkFMU0U7CitAQCAtNjksNiArODgs NyBAQCBfcmVzdGFydF9zZXJ2ZXIgKHZvaWQpCisgICAgICAgICBleGVjdiAoZXhlLCBnX2FyZ3Yp OworICAgICB9CisgICAgIGdfd2FybmluZyAoImV4ZWN2ICVzIGZhaWxlZCEiLCBnX2FyZ3ZbMF0p OworKyAgICBnX2ZyZWUgKGV4ZSk7CisgICAgIGV4aXQgKC0xKTsKKyB9CisgCistLSAKKzIuMjEu MAorCitGcm9tIDI2YTgxMDViNzAwMzk1M2U1NmJmMDQ0MjZlZTg5YTkzNDgyYTQ1YzUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CitEYXRlOiBTdW4sIDEwIE5vdiAyMDE5IDA5OjUzOjI3ICswOTAwCitTdWJqZWN0OiBb UEFUQ0hdIHVpL2d0azM6IEZpeCB0byBleGl0IGBpYnVzIGVtb2ppYCB3aXRoIEVzY2FwZSBrZXkK KworV2hlbiBFc2NhcGUga2V5IGlzIHByZXNzZWQsIHRoZSBjdXJyZW50IGlidXMtdWktZW1vamll ciBzaG91bGQgZXhpdAorYWx0aG91Z2ggYW5vdGhlciBkYWVtb24gb25lIGlzIGFsaXZlLgorCitg aWJ1cyBlbW9qaWAgd2FzIHVzZWQgaW4gV2F5bGFuZCBkZXNrdG9wIGFzIGEgd29ya2Fyb3VuZCBi dXQgbm93CitJQnVzIGVtb2ppIGZ1bmN0aW9ucyBhcmUgbW92ZWQgdG8gdGhlIGVuZ2luZSdzIHBy ZS1lZGl0IGFuZCB0aGUgc2FtZQorZnVuY3Rpb24gaXMgYXZhaWxhYmxlIHdpdGggQ3RybC1TZmhp dC1lIGFuZCBzcGFjZSBrZXkgc28gdGhpcyBwcm9ibGVtCit3b3VsZCBub3QgYmUgc28gdmlzaWJs ZS4KKworQlVHPXJoYnojMTY1ODE4NworLS0tCisgdWkvZ3RrMy9lbW9qaWVyLnZhbGEgICAgfCAg NSArKy0tCisgdWkvZ3RrMy9lbW9qaWVyYXBwLnZhbGEgfCA2MyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLQorIDIgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygr KSwgMjAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS91aS9ndGszL2Vtb2ppZXIudmFsYSBi L3VpL2d0azMvZW1vamllci52YWxhCitpbmRleCA0ZTUyNzY5Yy4uMTNiYWNlYmQgMTAwNjQ0Cist LS0gYS91aS9ndGszL2Vtb2ppZXIudmFsYQorKysrIGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKK0BA IC0zMjAsNiArMzIwLDcgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0 aW9uV2luZG93IHsKKyAKKyAgICAgcHVibGljIHNpZ25hbCB2b2lkIGNhbmRpZGF0ZV9jbGlja2Vk KHVpbnQgaW5kZXgsIHVpbnQgYnV0dG9uLCB1aW50IHN0YXRlKTsKKyAgICAgcHVibGljIHNpZ25h bCB2b2lkIGNvbW1pdF90ZXh0KHN0cmluZyB0ZXh0KTsKKysgICAgcHVibGljIHNpZ25hbCB2b2lk IGNhbmNlbCgpOworIAorICAgICBwdWJsaWMgSUJ1c0Vtb2ppZXIoKSB7CisgICAgICAgICBHTGli Lk9iamVjdCgKK0BAIC0xNzg5LDggKzE3OTAsNyBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIg OiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAgICAgICAgIHNob3dfZW1vamlfdmFyaWFu dHMoZW1vamlzKTsKKyAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgIH0KKy0gICAg ICAgIGlmIChtX2lucHV0X2NvbnRleHRfcGF0aCAhPSAiIikKKy0gICAgICAgICAgICBtX3Jlc3Vs dCA9IHRleHQ7CisrICAgICAgICBtX3Jlc3VsdCA9IHRleHQ7CisgICAgICAgICBpZiAobmVlZF9j b21taXRfc2lnbmFsKQorICAgICAgICAgICAgIGNvbW1pdF90ZXh0KHRleHQpOworICAgICAgICAg cmV0dXJuIGZhbHNlOworQEAgLTE4OTcsNiArMTg5Nyw3IEBAIHB1YmxpYyBjbGFzcyBJQnVzRW1v amllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAgICAgICAgICAgLy8gUGFnZVVwL1Bh Z2VEb3duLgorICAgICAgICAgICAgIHJlbW92ZV9hbGxfY2hpbGRyZW4oKTsKKyAgICAgICAgIH0K KysgICAgICAgIGNhbmNlbCgpOworICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9CisgCitk aWZmIC0tZ2l0IGEvdWkvZ3RrMy9lbW9qaWVyYXBwLnZhbGEgYi91aS9ndGszL2Vtb2ppZXJhcHAu dmFsYQoraW5kZXggZTgzMzE5ODkuLjc4M2M2MTFjIDEwMDY0NAorLS0tIGEvdWkvZ3RrMy9lbW9q aWVyYXBwLnZhbGEKKysrKyBiL3VpL2d0azMvZW1vamllcmFwcC52YWxhCitAQCAtMyw2ICszLDcg QEAKKyAgKiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAqCisgICogQ29weXJpZ2h0IChjKSAyMDE3 IFBlbmcgV3UgPGFsZXhlcGljb0BnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChjKSAyMDE3LTIw MTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICoKKyAgKiBU aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworQEAgLTQwLDYgKzQxLDMzIEBAIHB1YmxpYyBjbGFzcyBFbW9qaUFwcGxpY2F0 aW9uIDogR3RrLkFwcGxpY2F0aW9uIHsKKyAgICAgfQorIAorIAorKyAgICBwcml2YXRlIHZvaWQg c2F2ZV9zZWxlY3RlZF9zdHJpbmcoc3RyaW5nPyBzZWxlY3RlZF9zdHJpbmcsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sICAgIGNhbmNlbGxlZCkgeworKyAgICAg ICAgaWYgKGNhbmNlbGxlZCkgeworKyAgICAgICAgICAgIG1fY29tbWFuZF9saW5lLnByaW50KCIl c1xuIiwgXygiQ2FuY2VsZWQgdG8gY2hvb3NlIGFuIGVtb2ppLiIpKTsKKysgICAgICAgICAgICBy ZXR1cm47CisrICAgICAgICB9CisrICAgICAgICBHTGliLnJldHVybl9pZl9mYWlsKHNlbGVjdGVk X3N0cmluZyAhPSBudWxsKTsKKysgICAgICAgIEd0ay5DbGlwYm9hcmQgY2xpcGJvYXJkID0gR3Rr LkNsaXBib2FyZC5nZXQoR2RrLlNFTEVDVElPTl9DTElQQk9BUkQpOworKyAgICAgICAgY2xpcGJv YXJkLnNldF90ZXh0KHNlbGVjdGVkX3N0cmluZywgLTEpOworKyAgICAgICAgY2xpcGJvYXJkLnN0 b3JlKCk7CisrCisrICAgICAgICB2YXIgZW1vamllcl9mYXZvcml0ZXMgPSBtX3NldHRpbmdzX2Vt b2ppLmdldF9zdHJ2KCJmYXZvcml0ZXMiKTsKKysgICAgICAgIGJvb2wgaGFzX2Zhdm9yaXRlID0g ZmFsc2U7CisrICAgICAgICBmb3JlYWNoICh1bm93bmVkIHN0cmluZyBmYXZvcml0ZSBpbiBlbW9q aWVyX2Zhdm9yaXRlcykgeworKyAgICAgICAgICAgIGlmIChmYXZvcml0ZSA9PSBzZWxlY3RlZF9z dHJpbmcpIHsKKysgICAgICAgICAgICAgICAgaGFzX2Zhdm9yaXRlID0gdHJ1ZTsKKysgICAgICAg ICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgaWYg KCFoYXNfZmF2b3JpdGUpIHsKKysgICAgICAgICAgICBlbW9qaWVyX2Zhdm9yaXRlcyArPSBzZWxl Y3RlZF9zdHJpbmc7CisrICAgICAgICAgICAgbV9zZXR0aW5nc19lbW9qaS5zZXRfc3RydigiZmF2 b3JpdGVzIiwgZW1vamllcl9mYXZvcml0ZXMpOworKyAgICAgICAgfQorKyAgICAgICAgbV9jb21t YW5kX2xpbmUucHJpbnQoIiVzXG4iLCBfKCJDb3BpZWQgYW4gZW1vamkgdG8geW91ciBjbGlwYm9h cmQuIikpOworKyAgICB9CisrCisrCisgICAgIHByaXZhdGUgdm9pZCBzaG93X2RpYWxvZyhBcHBs aWNhdGlvbkNvbW1hbmRMaW5lIGNvbW1hbmRfbGluZSkgeworICAgICAgICAgbV9jb21tYW5kX2xp bmUgPSBjb21tYW5kX2xpbmU7CisgICAgICAgICBtX2Vtb2ppZXIucmVzZXQoKTsKK0BAIC01NSw3 ICs4Myw3IEBAIHB1YmxpYyBjbGFzcyBFbW9qaUFwcGxpY2F0aW9uIDogR3RrLkFwcGxpY2F0aW9u IHsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICBpZiAoYnV0dG9uID09IElCdXNFbW9q aWVyLkJVVFRPTl9DTE9TRV9CVVRUT04pIHsKKyAgICAgICAgICAgICBtX2Vtb2ppZXIuaGlkZSgp OworLSAgICAgICAgICAgIG1fY29tbWFuZF9saW5lLnByaW50KCIlc1xuIiwgXygiQ2FuY2VsZWQg dG8gY2hvb3NlIGFuIGVtb2ppLiIpKTsKKysgICAgICAgICAgICBzYXZlX3NlbGVjdGVkX3N0cmlu ZyhudWxsLCB0cnVlKTsKKyAgICAgICAgICAgICBtX2NvbW1hbmRfbGluZSA9IG51bGw7CisgICAg ICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorQEAgLTc0LDIzICsxMDIsNyBAQCBwdWJsaWMg Y2xhc3MgRW1vamlBcHBsaWNhdGlvbiA6IEd0ay5BcHBsaWNhdGlvbiB7CisgICAgICAgICB9Cisg ICAgICAgICBzdHJpbmcgZW1vamkgPSBtX2Vtb2ppZXIuZ2V0X2N1cnJlbnRfY2FuZGlkYXRlKCk7 CisgICAgICAgICBtX2Vtb2ppZXIuaGlkZSgpOworLSAgICAgICAgR3RrLkNsaXBib2FyZCBjbGlw Ym9hcmQgPSBHdGsuQ2xpcGJvYXJkLmdldChHZGsuU0VMRUNUSU9OX0NMSVBCT0FSRCk7CistICAg ICAgICBjbGlwYm9hcmQuc2V0X3RleHQoZW1vamksIC0xKTsKKy0gICAgICAgIGNsaXBib2FyZC5z dG9yZSgpOworLQorLSAgICAgICAgdmFyIGVtb2ppZXJfZmF2b3JpdGVzID0gbV9zZXR0aW5nc19l bW9qaS5nZXRfc3RydigiZmF2b3JpdGVzIik7CistICAgICAgICBib29sIGhhc19mYXZvcml0ZSA9 IGZhbHNlOworLSAgICAgICAgZm9yZWFjaCAodW5vd25lZCBzdHJpbmcgZmF2b3JpdGUgaW4gZW1v amllcl9mYXZvcml0ZXMpIHsKKy0gICAgICAgICAgICBpZiAoZmF2b3JpdGUgPT0gZW1vamkpIHsK Ky0gICAgICAgICAgICAgICAgaGFzX2Zhdm9yaXRlID0gdHJ1ZTsKKy0gICAgICAgICAgICAgICAg YnJlYWs7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQorLSAgICAgICAgaWYgKCFoYXNfZmF2 b3JpdGUpIHsKKy0gICAgICAgICAgICBlbW9qaWVyX2Zhdm9yaXRlcyArPSBlbW9qaTsKKy0gICAg ICAgICAgICBtX3NldHRpbmdzX2Vtb2ppLnNldF9zdHJ2KCJmYXZvcml0ZXMiLCBlbW9qaWVyX2Zh dm9yaXRlcyk7CistICAgICAgICB9CistICAgICAgICBtX2NvbW1hbmRfbGluZS5wcmludCgiJXNc biIsIF8oIkNvcGllZCBhbiBlbW9qaSB0byB5b3VyIGNsaXBib2FyZC4iKSk7CisrICAgICAgICBz YXZlX3NlbGVjdGVkX3N0cmluZyhlbW9qaSwgZmFsc2UpOworICAgICAgICAgbV9jb21tYW5kX2xp bmUgPSBudWxsOworICAgICB9CisgCitAQCAtMjAyLDYgKzIxNCwyMSBAQCBwdWJsaWMgY2xhc3Mg RW1vamlBcHBsaWNhdGlvbiA6IEd0ay5BcHBsaWNhdGlvbiB7CisgICAgICAgICAgICAgbV9lbW9q aWVyLmNhbmRpZGF0ZV9jbGlja2VkLmNvbm5lY3QoKGksIGIsIHMpID0+IHsKKyAgICAgICAgICAg ICAgICAgY2FuZGlkYXRlX2NsaWNrZWRfbG9va3VwX3RhYmxlKGksIGIsIHMpOworICAgICAgICAg ICAgIH0pOworKyAgICAgICAgICAgIG1fZW1vamllci5jYW5jZWwuY29ubmVjdCgoKSA9PiB7Cisr ICAgICAgICAgICAgICAgIGlmIChtX2NvbW1hbmRfbGluZSA9PSBudWxsKQorKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuOworKyAgICAgICAgICAgICAgICBtX2Vtb2ppZXIuaGlkZSgpOworKyAg ICAgICAgICAgICAgICBzYXZlX3NlbGVjdGVkX3N0cmluZyhudWxsLCB0cnVlKTsKKysgICAgICAg ICAgICAgICAgbV9jb21tYW5kX2xpbmUgPSBudWxsOworKyAgICAgICAgICAgIH0pOworKyAgICAg ICAgICAgIG1fZW1vamllci5jb21taXRfdGV4dC5jb25uZWN0KCgpID0+IHsKKysgICAgICAgICAg ICAgICAgaWYgKG1fY29tbWFuZF9saW5lID09IG51bGwpCisrICAgICAgICAgICAgICAgICAgICBy ZXR1cm47CisrICAgICAgICAgICAgICAgIG1fZW1vamllci5oaWRlKCk7CisrICAgICAgICAgICAg ICAgIHN0cmluZyBzZWxlY3RlZF9zdHJpbmcgPSBtX2Vtb2ppZXIuZ2V0X3NlbGVjdGVkX3N0cmlu ZygpOworKyAgICAgICAgICAgICAgICBzYXZlX3NlbGVjdGVkX3N0cmluZyhzZWxlY3RlZF9zdHJp bmcsIGZhbHNlKTsKKysgICAgICAgICAgICAgICAgbV9jb21tYW5kX2xpbmUgPSBudWxsOworKyAg ICAgICAgICAgIH0pOworICAgICAgICAgfQorIAorICAgICAgICAgYWN0aXZhdGVfZGlhbG9nKGNv bW1hbmRfbGluZSk7CistLSAKKzIuMjEuMAorCitGcm9tIDc2YjE3NzNjNmVmNTI5ODg4YmNkNjJj NGY4MjA3Yzg5YmEyMzUwM2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04 P3E/RnI9QzM9QTlkPUMzPUE5cmljPTIwTWFuZ2Fuby1UYXJ1bWk/PSA8Zm1hbmdAbWcwLmZyPgor RGF0ZTogTW9uLCAxOCBOb3YgMjAxOSAxMjowNTozNSArMDkwMAorU3ViamVjdDogW1BBVENIXSBl bmdpbmUtc2ltcGxlOiBBZGQgdGhlIEZyZW5jaCBiZXBvX2Fmbm9yIGxheW91dAorCitCVUc9aHR0 cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzIxNTUKKy0tLQorIGVuZ2luZS9zaW1wbGUu eG1sLmluIHwgMTIgKysrKysrKysrKysrCisgMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMo KykKKworZGlmZiAtLWdpdCBhL2VuZ2luZS9zaW1wbGUueG1sLmluIGIvZW5naW5lL3NpbXBsZS54 bWwuaW4KK2luZGV4IDQ0NDVjMjU0Li5mYzE1NDFlYyAxMDA2NDQKKy0tLSBhL2VuZ2luZS9zaW1w bGUueG1sLmluCisrKysgYi9lbmdpbmUvc2ltcGxlLnhtbC5pbgorQEAgLTI4Myw2ICsyODMsMTgg QEAKKyAgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbj5pYnVzLWtleWJvYXJkPC9pY29uPgor ICAgICAgICAgICAgICAgICAgICAgICAgIDxyYW5rPjE8L3Jhbms+CisgICAgICAgICAgICAgICAg IDwvZW5naW5lPgorKyAgICAgICAgICAgICAgICA8ZW5naW5lPgorKyAgICAgICAgICAgICAgICAg ICAgICAgIDxuYW1lPnhrYjpmcjpiZXBvX2Fmbm9yOmZyYTwvbmFtZT4KKysgICAgICAgICAgICAg ICAgICAgICAgICA8bGFuZ3VhZ2U+ZnI8L2xhbmd1YWdlPgorKyAgICAgICAgICAgICAgICAgICAg ICAgIDxsaWNlbnNlPkdQTDwvbGljZW5zZT4KKysgICAgICAgICAgICAgICAgICAgICAgICA8YXV0 aG9yPlBlbmcgSHVhbmcgJmx0O3NoYXduLnAuaHVhbmdAZ21haWwuY29tJmd0OzwvYXV0aG9yPgor KyAgICAgICAgICAgICAgICAgICAgICAgIDxsYXlvdXQ+ZnI8L2xheW91dD4KKysgICAgICAgICAg ICAgICAgICAgICAgICA8bGF5b3V0X3ZhcmlhbnQ+YmVwb19hZm5vcjwvbGF5b3V0X3ZhcmlhbnQ+ CisrICAgICAgICAgICAgICAgICAgICAgICAgPGxvbmduYW1lPkZyZW5jaCAoQmVwbywgZXJnb25v bWljLCBEdm9yYWsgd2F5LCBBRk5PUik8L2xvbmduYW1lPgorKyAgICAgICAgICAgICAgICAgICAg ICAgIDxkZXNjcmlwdGlvbj5GcmVuY2ggKEJlcG8sIGVyZ29ub21pYywgRHZvcmFrIHdheSwgQUZO T1IpPC9kZXNjcmlwdGlvbj4KKysgICAgICAgICAgICAgICAgICAgICAgICA8aWNvbj5pYnVzLWtl eWJvYXJkPC9pY29uPgorKyAgICAgICAgICAgICAgICAgICAgICAgIDxyYW5rPjE8L3Jhbms+Cisr ICAgICAgICAgICAgICAgIDwvZW5naW5lPgorICAgICAgICAgICAgICAgICA8ZW5naW5lPgorICAg ICAgICAgICAgICAgICAgICAgICAgIDxuYW1lPnhrYjpmcjpkdm9yYWs6ZnJhPC9uYW1lPgorICAg ICAgICAgICAgICAgICAgICAgICAgIDxsYW5ndWFnZT5mcjwvbGFuZ3VhZ2U+CistLSAKKzIuMjEu MAorCitGcm9tIDdmMzM1ZGNjM2RjZmU1MWY3NGYxZGM0ZTEzMzE1ZTEwMzFkNDU2MWUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CitEYXRlOiBNb24sIDE4IE5vdiAyMDE5IDExOjMzOjA0ICswOTAwCitTdWJqZWN0OiBb UEFUQ0hdIHNyYzogQWRkIGZpbGUgbGlzdCBpbiByZWdpc3RyeSBmaWxlCisKK1VuZGVyIEZlZG9y YSBTaWx2ZXJibHVlLCBzdF9tdGltZSBpbiAvdXNyL3NoYXJlL2lidXMvY29tcG9uZW50IGlzCisx IEphbiAxOTcwIGV2ZW4gaWYgaWJ1cyBlbmdpbmVzIGFyZSBpbnN0YWxsZWQgYW5kIGlidXMtZGFl bW9uCitjYW5ub3QgZGV0ZWN0IG5ldyBlbmdpbmVzLgorTm93IElCdXNPYnNlcnZlZFBhdGggc2F2 ZXMgaGFzaGVkIGZpbGUgbGlzdCBiZXNpZGVzIHN0X210aW1lIG9mCit0aGUgY29tcG5lbnQgZGly ZWN0b3J5IHRvIGRldGVjdCB0aGUgaW5zdGFsbGVkIGVuZ2luZXMgbmV3bHkuCisKK0JVRz1odHRw czovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yMTMyCistLS0KKyBzcmMvaWJ1c2NvbXBv bmVudC5jICAgIHwgICA3ICstCisgc3JjL2lidXNvYnNlcnZlZHBhdGguYyB8IDI3NSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQorIHNyYy9pYnVzcmVnaXN0cnkuYyAg ICAgfCAgIDIgKy0KKyAzIGZpbGVzIGNoYW5nZWQsIDI1MCBpbnNlcnRpb25zKCspLCAzNCBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9uZW50LmMgYi9zcmMvaWJ1c2Nv bXBvbmVudC5jCitpbmRleCA5ODM3ZjQ3Yy4uYmJmZjEwZmQgMTAwNjQ0CistLS0gYS9zcmMvaWJ1 c2NvbXBvbmVudC5jCisrKysgYi9zcmMvaWJ1c2NvbXBvbmVudC5jCitAQCAtMiw2ICsyLDcgQEAK KyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNv bT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgUmVkIEhhdCwgSW5jLgor ICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorQEAgLTQ5OSwxMSArNTAwLDcgQEAgaWJ1c19jb21wb25lbnRfb3V0cHV0 IChJQnVzQ29tcG9uZW50ICpjb21wb25lbnQsCisgCisgICAgICAgICBmb3IgKHAgPSBjb21wb25l bnQtPnByaXYtPm9ic2VydmVkX3BhdGhzOyBwICE9IE5VTEw7IHAgPSBwLT5uZXh0ICkgeworICAg ICAgICAgICAgIElCdXNPYnNlcnZlZFBhdGggKnBhdGggPSAoSUJ1c09ic2VydmVkUGF0aCAqKSBw LT5kYXRhOworLQorLSAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwg aW5kZW50ICsgMik7CistICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZiAob3V0cHV0 LCAiPHBhdGggbXRpbWU9XCIlbGRcIiA+JXM8L3BhdGg+XG4iLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhdGgtPm10aW1lLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBhdGgtPnBhdGgpOworKyAgICAgICAgICAgIGlidXNfb2JzZXJ2ZWRfcGF0 aF9vdXRwdXQgKHBhdGgsIG91dHB1dCwgaW5kZW50ICsgMik7CisgICAgICAgICB9CisgCisgICAg ICAgICBnX3N0cmluZ19hcHBlbmRfaW5kZW50IChvdXRwdXQsIGluZGVudCArIDEpOworZGlmZiAt LWdpdCBhL3NyYy9pYnVzb2JzZXJ2ZWRwYXRoLmMgYi9zcmMvaWJ1c29ic2VydmVkcGF0aC5jCitp bmRleCA1Yjc5ZjFmZS4uYmY3MjI5YjcgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c29ic2VydmVkcGF0 aC5jCisrKysgYi9zcmMvaWJ1c29ic2VydmVkcGF0aC5jCitAQCAtMiw2ICsyLDcgQEAKKyAvKiB2 aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5wdXQgSUJ1cworICAqIENvcHly aWdodCAoQykgMjAwOC0yMDE1IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgor KyAqIENvcHlyaWdodCAoQykgMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCisgICoK KyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCitAQCAtMzAsOSArMzEsOSBAQCBlbnVtIHsKKyB9OworIAorIAorLS8qIElCdXNP YnNlcnZlZFBhdGhQcml2ICovCisrLyogSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKi8KKyBzdHJ1 Y3QgX0lCdXNPYnNlcnZlZFBhdGhQcml2YXRlIHsKKy0gICAgZ3BvaW50ZXIgcGFkOworKyAgICBn dWludCAgICpmaWxlX2hhc2hfbGlzdDsKKyB9OworIHR5cGVkZWYgc3RydWN0IF9JQnVzT2JzZXJ2 ZWRQYXRoUHJpdmF0ZSBJQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZTsKKyAKK0BAIC01Miw3ICs1Myw5 IEBAIHN0YXRpYyBnYm9vbGVhbiAgaWJ1c19vYnNlcnZlZF9wYXRoX2NvcHkgICAgICAgICAgICAo SUJ1c09ic2VydmVkUGF0aCAgICAgICAqZGVzCisgc3RhdGljIGdib29sZWFuICBpYnVzX29ic2Vy dmVkX3BhdGhfcGFyc2VfeG1sX25vZGUgIChJQnVzT2JzZXJ2ZWRQYXRoICAgICAgICpwYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1M Tm9kZSAgICAgICAgICAgICAgICAqbm9kZSk7CisgCistR19ERUZJTkVfVFlQRSAoSUJ1c09ic2Vy dmVkUGF0aCwgaWJ1c19vYnNlcnZlZF9wYXRoLCBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQorK0df REVGSU5FX1RZUEVfV0lUSF9QUklWQVRFIChJQnVzT2JzZXJ2ZWRQYXRoLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpYnVzX29ic2VydmVkX3BhdGgsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElCVVNfVFlQRV9TRVJJQUxJWkFCTEUpCisgCisgc3RhdGljIHZvaWQKKyBpYnVz X29ic2VydmVkX3BhdGhfY2xhc3NfaW5pdCAoSUJ1c09ic2VydmVkUGF0aENsYXNzICpjbGFzcykK K0BAIC04NCw3ICs4Nyw5IEBAIHN0YXRpYyBnYm9vbGVhbgorIGlidXNfb2JzZXJ2ZWRfcGF0aF9z ZXJpYWxpemUgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR1ZhcmlhbnRCdWlsZGVyICAqYnVpbGRlcikKKyB7CisrICAgIElCdXNPYnNlcnZl ZFBhdGhQcml2YXRlICpwcml2ID0gSUJVU19PQlNFUlZFRF9QQVRIX0dFVF9QUklWQVRFIChwYXRo KTsKKyAgICAgZ2Jvb2xlYW4gcmV0dmFsOworKyAgICBndWludCBpOworIAorICAgICByZXR2YWwg PSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoaWJ1c19vYnNlcnZlZF9wYXRoX3BhcmVudF9jbGFz cyktPgorICAgICAgICAgICAgIHNlcmlhbGl6ZSAoKElCdXNTZXJpYWxpemFibGUgKilwYXRoLCBi dWlsZGVyKTsKK0BAIC05Myw2ICs5OCwxNSBAQCBpYnVzX29ic2VydmVkX3BhdGhfc2VyaWFsaXpl IChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAorICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGJ1 aWxkZXIsICJzIiwgcGF0aC0+cGF0aCk7CisgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCAoYnVp bGRlciwgIngiLCBwYXRoLT5tdGltZSk7CisgCisrICAgIGlmICghcHJpdi0+ZmlsZV9oYXNoX2xp c3QpIHsKKysgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCAoYnVpbGRlciwgInUiLCAwKTsK KysgICAgICAgIHJldHVybiBUUlVFOworKyAgICB9CisrICAgIGZvciAoaSA9IDA7IHByaXYtPmZp bGVfaGFzaF9saXN0W2ldOyBpKyspOworKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGJ1aWxk ZXIsICJ1IiwgaSk7CisrICAgIGZvciAoaSA9IDA7IHByaXYtPmZpbGVfaGFzaF9saXN0W2ldOyBp KyspCisrICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQgKGJ1aWxkZXIsICJ1IiwgcHJpdi0+ ZmlsZV9oYXNoX2xpc3RbaV0pOworKworICAgICByZXR1cm4gVFJVRTsKKyB9CisgCitAQCAtMTAw LDcgKzExNCw5IEBAIHN0YXRpYyBnaW50CisgaWJ1c19vYnNlcnZlZF9wYXRoX2Rlc2VyaWFsaXpl IChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR1ZhcmlhbnQgICAgICAgICAqdmFyaWFudCkKKyB7CisrICAgIElCdXNPYnNlcnZlZFBhdGhQ cml2YXRlICpwcml2ID0gSUJVU19PQlNFUlZFRF9QQVRIX0dFVF9QUklWQVRFIChwYXRoKTsKKyAg ICAgZ2ludCByZXR2YWw7CisrICAgIGd1aW50IGksIGxlbmd0aCA9IDA7CisgCisgICAgIHJldHZh bCA9IElCVVNfU0VSSUFMSVpBQkxFX0NMQVNTIChpYnVzX29ic2VydmVkX3BhdGhfcGFyZW50X2Ns YXNzKS0+CisgICAgICAgICAgICAgZGVzZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopcGF0 aCwgdmFyaWFudCk7CitAQCAtMTA5LDYgKzEyNSwxNSBAQCBpYnVzX29ic2VydmVkX3BhdGhfZGVz ZXJpYWxpemUgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgsCisgICAgIGlidXNfZ192YXJpYW50X2dl dF9jaGlsZF9zdHJpbmcgKHZhcmlhbnQsIHJldHZhbCsrLCAmcGF0aC0+cGF0aCk7CisgICAgIGdf dmFyaWFudF9nZXRfY2hpbGQgKHZhcmlhbnQsIHJldHZhbCsrLCAieCIsICZwYXRoLT5tdGltZSk7 CisgCisrICAgIGlmIChnX3ZhcmlhbnRfbl9jaGlsZHJlbiAodmFyaWFudCkgPCByZXR2YWwgKyAy KQorKyAgICAgICAgcmV0dXJuIHJldHZhbDsKKysgICAgZ192YXJpYW50X2dldF9jaGlsZCAodmFy aWFudCwgcmV0dmFsKyssICJ1IiwgJmxlbmd0aCk7CisrICAgIGlmICghbGVuZ3RoKQorKyAgICAg ICAgcmV0dXJuIHJldHZhbDsKKysgICAgcHJpdi0+ZmlsZV9oYXNoX2xpc3QgPSBnX25ldzAgKGd1 aW50LCBsZW5ndGggKyAxKTsKKysgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQorKyAg ICAgICAgZ192YXJpYW50X2dldF9jaGlsZCAodmFyaWFudCwgcmV0dmFsKyssICJ1IiwgJnByaXYt PmZpbGVfaGFzaF9saXN0W2ldKTsKKysKKyAgICAgcmV0dXJuIHJldHZhbDsKKyB9CisgCitAQCAt MTE2LDE0ICsxNDEsMjcgQEAgc3RhdGljIGdib29sZWFuCisgaWJ1c19vYnNlcnZlZF9wYXRoX2Nv cHkgKElCdXNPYnNlcnZlZFBhdGggICAgICAgKmRlc3QsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IElCdXNPYnNlcnZlZFBhdGggKnNyYykKKyB7CisrICAgIElCdXNPYnNlcnZlZFBh dGhQcml2YXRlICpkZXN0X3ByaXYgPSBJQlVTX09CU0VSVkVEX1BBVEhfR0VUX1BSSVZBVEUgKGRl c3QpOworKyAgICBJQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSAqc3JjX3ByaXYgPQorKyAgICAgICAg ICAgIElCVVNfT0JTRVJWRURfUEFUSF9HRVRfUFJJVkFURSAoKElCdXNPYnNlcnZlZFBhdGggKilz cmMpOworICAgICBnYm9vbGVhbiByZXR2YWw7CisrICAgIGd1aW50IGk7CisgCistICAgIHJldHZh bCA9IElCVVNfU0VSSUFMSVpBQkxFX0NMQVNTIChpYnVzX29ic2VydmVkX3BhdGhfcGFyZW50X2Ns YXNzKS0+Y29weSAoKElCdXNTZXJpYWxpemFibGUgKilkZXN0LCAoSUJ1c1NlcmlhbGl6YWJsZSAq KXNyYyk7CisrICAgIHJldHZhbCA9IElCVVNfU0VSSUFMSVpBQkxFX0NMQVNTIChpYnVzX29ic2Vy dmVkX3BhdGhfcGFyZW50X2NsYXNzKS0+CisrICAgICAgICAgICAgY29weSAoKElCdXNTZXJpYWxp emFibGUgKilkZXN0LCAoSUJ1c1NlcmlhbGl6YWJsZSAqKXNyYyk7CisgICAgIGdfcmV0dXJuX3Zh bF9pZl9mYWlsIChyZXR2YWwsIEZBTFNFKTsKKyAKKyAgICAgZGVzdC0+cGF0aCA9IGdfc3RyZHVw IChzcmMtPnBhdGgpOworICAgICBkZXN0LT5tdGltZSA9IHNyYy0+bXRpbWU7CisgCisrICAgIGdf Y2xlYXJfcG9pbnRlciAoJmRlc3RfcHJpdi0+ZmlsZV9oYXNoX2xpc3QsIGdfZnJlZSk7CisrICAg IGlmICghc3JjX3ByaXYtPmZpbGVfaGFzaF9saXN0KQorKyAgICAgICAgcmV0dXJuIFRSVUU7Cisr ICAgIGZvciAoaSA9IDA7IHNyY19wcml2LT5maWxlX2hhc2hfbGlzdFtpXTsgaSsrKTsKKysgICAg ZGVzdF9wcml2LT5maWxlX2hhc2hfbGlzdCA9IGdfbmV3MCAoZ3VpbnQsIGkgKyAxKTsKKysgICAg Zm9yIChpID0gMDsgc3JjX3ByaXYtPmZpbGVfaGFzaF9saXN0W2ldOyBpKyspCisrICAgICAgICBk ZXN0X3ByaXYtPmZpbGVfaGFzaF9saXN0W2ldID0gc3JjX3ByaXYtPmZpbGVfaGFzaF9saXN0W2ld OworKworICAgICByZXR1cm4gVFJVRTsKKyB9CisgCitAQCAtMTM3LDIzICsxNzUsNDggQEAgaWJ1 c19vYnNlcnZlZF9wYXRoX2NvcHkgKElCdXNPYnNlcnZlZFBhdGggICAgICAgKmRlc3QsCisgCisg dm9pZAorIGlidXNfb2JzZXJ2ZWRfcGF0aF9vdXRwdXQgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgs CistICAgICAgICAgICAgICAgICAgICAgICAgICBHU3RyaW5nICAgICAgICAgKm91dHB1dCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgICAgICAgICAgICAgaW5kZW50KQorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdTdHJpbmcgICAgICAgICAgKm91dHB1dCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICBpbmRlbnQpCisgeworKyAgICBJ QnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSAqcHJpdiA9IElCVVNfT0JTRVJWRURfUEFUSF9HRVRfUFJJ VkFURSAocGF0aCk7CisrICAgIGd1aW50IGk7CisrCisgICAgIGdfYXNzZXJ0IChJQlVTX0lTX09C U0VSVkVEX1BBVEggKHBhdGgpKTsKKyAgICAgZ19hc3NlcnQgKG91dHB1dCk7CisgCistICAgIGdf c3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwgaW5kZW50KTsKKy0gICAgZ19zdHJpbmdfYXBw ZW5kX3ByaW50ZiAob3V0cHV0LCAiPHBhdGggbXRpbWU9XCIlbGRcIiA+JXM8L3BhdGg+XG4iLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgtPm10aW1lLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgtPnBhdGgpOworKyAgICBpZiAoIXBy aXYtPmZpbGVfaGFzaF9saXN0KSB7CisrICAgICAgICBnX3N0cmluZ19hcHBlbmRfaW5kZW50IChv dXRwdXQsIGluZGVudCk7CisrICAgICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmIChvdXRwdXQs ICI8cGF0aCBtdGltZT1cIiVsZFwiID4lczwvcGF0aD5cbiIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXRoLT5tdGltZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhdGgtPnBhdGgpOworKyAgICB9IGVsc2UgeworKyAgICAgICAgZ19zdHJpbmdfYXBwZW5k X2luZGVudCAob3V0cHV0LCBpbmRlbnQpOworKyAgICAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50 ZiAoCisrICAgICAgICAgICAgICAgIG91dHB1dCwKKysgICAgICAgICAgICAgICAgIjxwYXRoIG10 aW1lPVwiJWxkXCIgdHlwZT1cImRpclwiIHBhdGg9XCIlc1wiPlxuIiwKKysgICAgICAgICAgICAg ICAgcGF0aC0+bXRpbWUsCisrICAgICAgICAgICAgICAgIHBhdGgtPnBhdGgpOworKyAgICAgICAg Zm9yIChpID0gMDsgcHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV07IGkrKykgeworKyAgICAgICAgICAg IGdfc3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwgaW5kZW50ICsgMSk7CisrICAgICAgICAg ICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZiAob3V0cHV0LCAiPGZpbGUgaGFzaD1cIiV1XCIgLz5c biIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+ZmlsZV9oYXNo X2xpc3RbaV0pOworKyAgICAgICAgfQorKyAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2luZGVudCAo b3V0cHV0LCBpbmRlbnQpOworKyAgICAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZiAob3V0cHV0 LCAiPC9wYXRoPlxuIik7CisrICAgIH0KKyB9CisgCisgZ2Jvb2xlYW4KKyBpYnVzX29ic2VydmVk X3BhdGhfY2hlY2tfbW9kaWZpY2F0aW9uIChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoKQorIHsKKysg ICAgSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKnByaXYgPSBJQlVTX09CU0VSVkVEX1BBVEhfR0VU X1BSSVZBVEUgKHBhdGgpOworICAgICBnY2hhciAqcmVhbF9wYXRoID0gTlVMTDsKKyAgICAgc3Ry dWN0IHN0YXQgYnVmOworKyAgICBnYm9vbGVhbiByZXR2YWwgPSBGQUxTRTsKKysgICAgR0RpciAq ZGlyID0gTlVMTDsKKysgICAgY29uc3QgZ2NoYXIgKm5hbWU7CisrICAgIGd1aW50IGkgPSAwOwor KyAgICBndWludCBmaWxlX251bSA9IDA7CisgCisgICAgIGdfYXNzZXJ0IChJQlVTX0lTX09CU0VS VkVEX1BBVEggKHBhdGgpKTsKKyAKK0BAIC0xNjksMTEgKzIzMiw3MSBAQCBpYnVzX29ic2VydmVk X3BhdGhfY2hlY2tfbW9kaWZpY2F0aW9uIChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoKQorICAgICAg ICAgYnVmLnN0X210aW1lID0gMDsKKyAgICAgfQorIAorLSAgICBnX2ZyZWUgKHJlYWxfcGF0aCk7 CisgCistICAgIGlmIChwYXRoLT5tdGltZSA9PSBidWYuc3RfbXRpbWUpCistICAgICAgICByZXR1 cm4gRkFMU0U7CistICAgIHJldHVybiBUUlVFOworKyAgICBpZiAocGF0aC0+bXRpbWUgIT0gYnVm LnN0X210aW1lKSB7CisrICAgICAgICByZXR2YWwgPSBUUlVFOworKyAgICAgICAgZ290byBlbmRf Y2hlY2tfbW9kaWZpY2F0aW9uOworKyAgICB9CisrCisrICAgIC8qIElmIGFuIGlidXMgZW5naW5l IGlzIGluc3RhbGxlZCwgbm9ybWFsIGZpbGUgc3lzdGVtIHVwZGF0ZXMKKysgICAgICogdGhlIGRp cmVjdG9yeSBtdGltZSBvZiAiL3Vzci9zaGFyZS9pYnVzL2NvbXBvbmVudCIgYW5kCisrICAgICAq IHBhdGgtPm10aW1lIG9mIHRoZSBjYWNoZSBmaWxlIGFuZCBidWYuc3RfbXRpbWUgb2YgdGhlIGN1 cnJlbnQgZGlyZWN0b3J5CisrICAgICAqIGNvdWxkIGhhdmUgdGhlIGRpZmZlcmVudCB2YWx1ZXMu CisrICAgICAqCisrICAgICAqIEJ1dCB1bmRlciBhIHNwZWNpYWwgZmlsZSBzeXN0ZW0sIHRoZSBi dWYuc3RfbXRpbWUgaXMgbm90IHVwZGF0ZWQKKysgICAgICogZXZlbiBpZiBhbiBpYnVzIGVuZ2lu ZSBpcyBpbnN0YWxsZWQsIGxpa2VzIEZlZG9yYSBTaWx2ZXJibHVlCisrICAgICAqIGFuZCBpYnVz X29ic2VydmVkX3BhdGhfY2hlY2tfbW9kaWZpY2F0aW9uKCkgY291bGQgbm90IGRldGVjdAorKyAg ICAgKiB0aGUgaW5zdGFsbGVkIGlidXMgZW5naW5lcy4KKysgICAgICogTm93IHBhdGgtPnByaXYt PmZpbGVfaGFzaF9saXN0IHJlc2VydmVzIHRoZSBoYXNoIGxpc3Qgb2YgdGhlIGZpbGVzCisrICAg ICAqIGluIHRoZSBvYnNlcnZlZCBkaXJlY3RvcnkgYW5kIGlmIGEgbmV3IGlidXMgZW5naW5lIGlz IGluc3RhbGxlZCwKKysgICAgICogdGhlIGhhc2ggb2YgdGhlIGNvbXBvc2UgZmlsZSBkb2VzIG5v dCBleGlzdHMgaW4gdGhlIGNhY2hlJ3MKKysgICAgICogZmlsZV9oYXNoX2xpc3QgYW5kIGlidXMt ZGFlbW9uIHJlZ2VuZXJhdGUgdGhlIGNhY2hlIHN1Y2Nlc3NmdWxseS4KKysgICAgICovCisrICAg IGlmICghcHJpdi0+ZmlsZV9oYXNoX2xpc3QpIHsKKysgICAgICAgIC8qIElmIHRoZSBjYWNoZSB2 ZXJzaW9uIGlzIG9sZCwgaWJ1c19yZWdpc3RyeV9sb2FkX2NhY2hlKCkgcmV0dXJucworKyAgICAg ICAgICogRkFMU0UgYW5kIGlidXNfcmVnaXN0cnlfY2hlY2tfbW9kaWZpY2F0aW9uKCkgYW5kIHRo aXMgYXJlIG5vdAorKyAgICAgICAgICogY2FsbGVkLgorKyAgICAgICAgICogSWYgdGhlIGNhY2hl IHZlcnNpb24gaXMgdGhlIGxhdGVzdCwgdGhlIGNhY2hlIGZpbGUgaW5jbHVkZXMgdGhlCisrICAg ICAgICAgKiBmaWxsZWQgZmlsZV9oYXNoX2xpc3QgZm9yIGRpcmVjdG9yaWVzIHdpdGggaWJ1c19v YnNlcnZlZF9wYXRoX25ldygpCisrICAgICAgICAgKiB3aGVuIHRoZSBjYWNoZSB3YXMgZ2VuZXJh dGVkLgorKyAgICAgICAgICogVGhlbiBpZiBmaWxlX2hhc2hfbGlzdCBpcyBudWxsLCBpdCdzIGEg c2ltcGxlIGZpbGUgaW4gaWJ1cworKyAgICAgICAgICogY29tcG9uZW50cyBhbmQgcmV0dXJuIGhl cmUgc2ltcGx5LgorKyAgICAgICAgICovCisrICAgICAgICBnb3RvIGVuZF9jaGVja19tb2RpZmlj YXRpb247CisrICAgIH0KKysgICAgZGlyID0gZ19kaXJfb3BlbiAocmVhbF9wYXRoLCAwLCBOVUxM KTsKKysgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGRpciwgRkFMU0UpOworKworKyAgICB3aGls ZSAoKG5hbWUgPSBnX2Rpcl9yZWFkX25hbWUgKGRpcikpICE9IE5VTEwpIHsKKysgICAgICAgIGd1 aW50IGN1cnJlbnRfaGFzaDsKKysgICAgICAgIGdib29sZWFuIGhhc19maWxlID0gRkFMU0U7Cisr CisrICAgICAgICBpZiAoIWdfc3RyX2hhc19zdWZmaXggKG5hbWUsICIueG1sIikpCisrICAgICAg ICAgICAgY29udGludWU7CisrICAgICAgICBjdXJyZW50X2hhc2ggPSBnX3N0cl9oYXNoIChuYW1l KTsKKysgICAgICAgIGZvciAoaSA9IDA7IHByaXYtPmZpbGVfaGFzaF9saXN0W2ldOyBpKyspIHsK KysgICAgICAgICAgICBpZiAoY3VycmVudF9oYXNoID09IHByaXYtPmZpbGVfaGFzaF9saXN0W2ld KSB7CisrICAgICAgICAgICAgICAgIGhhc19maWxlID0gVFJVRTsKKysgICAgICAgICAgICAgICAg YnJlYWs7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgaWYgKCFoYXNfZmls ZSkgeworKyAgICAgICAgICAgIHJldHZhbCA9IFRSVUU7CisrICAgICAgICAgICAgZ290byBlbmRf Y2hlY2tfbW9kaWZpY2F0aW9uOworKyAgICAgICAgfQorKyAgICAgICAgZmlsZV9udW0rKzsKKysg ICAgfQorKyAgICBpZiAoIXJldHZhbCkgeworKyAgICAgICAgZm9yIChpID0gMDsgcHJpdi0+Zmls ZV9oYXNoX2xpc3RbaV07IGkrKyk7CisrICAgICAgICBpZiAoZmlsZV9udW0gIT0gaSkKKysgICAg ICAgICAgICByZXR2YWwgPSBUUlVFOworKyAgICB9CisrCisrZW5kX2NoZWNrX21vZGlmaWNhdGlv bjoKKysgICAgaWYgKGRpcikKKysgICAgICAgIGdfZGlyX2Nsb3NlIChkaXIpOworKyAgICBnX2Zy ZWUgKHJlYWxfcGF0aCk7CisrICAgIHJldHVybiByZXR2YWw7CisgfQorIAorIHN0YXRpYyB2b2lk CitAQCAtMjI0LDcgKzM0Nyw3IEBAIGlidXNfb2JzZXJ2ZWRfcGF0aF90cmF2ZXJzZSAoSUJ1c09i c2VydmVkUGF0aCAqcGF0aCwKKyAgICAgICAgICAgICBwYXRocyA9IGdfbGlzdF9hcHBlbmQgKHBh dGhzLCBzdWIpOworICAgICAgICAgICAgIHBhdGhzID0gZ19saXN0X2NvbmNhdCAocGF0aHMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX29ic2VydmVkX3BhdGhfdHJh dmVyc2UgKHN1YiwgZGlyX29ubHkpKTsKKy0gICAgICAgIH0gZWxzZSBpZiAoIWRpcl9vbmx5KSB7 CisrICAgICAgICB9IGVsc2UgaWYgKHN1Yi0+aXNfZXhpc3QgJiYgIWRpcl9vbmx5KSB7CisgICAg ICAgICAgICAgcGF0aHMgPSBnX2xpc3RfYXBwZW5kIChwYXRocywgc3ViKTsKKyAgICAgICAgIH0K KyAgICAgfQorQEAgLTIzMywzNiArMzU2LDEwMiBAQCBpYnVzX29ic2VydmVkX3BhdGhfdHJhdmVy c2UgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgsCisgICAgIHJldHVybiBwYXRoczsKKyB9CisgCisr Cisrc3RhdGljIGdib29sZWFuCisraWJ1c19vYnNlcnZlZF9wYXRoX3BhcnNlX2ZpbGUgKElCdXNP YnNlcnZlZFBhdGggKnBhdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTE5v ZGUgICAgICAgICAgKm5vZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAg ICAgICAgICAgICAgKm50aCkKKyt7CisrICAgIElCdXNPYnNlcnZlZFBhdGhQcml2YXRlICpwcml2 ID0gSUJVU19PQlNFUlZFRF9QQVRIX0dFVF9QUklWQVRFIChwYXRoKTsKKysgICAgZ2NoYXIgKiph dHRyOworKworKyAgICBmb3IgKGF0dHIgPSBub2RlLT5hdHRyaWJ1dGVzOyBhdHRyWzBdOyBhdHRy ICs9IDIpIHsKKysgICAgICAgIGd1aW50IGhhc2ggPSAwOworKworKyAgICAgICAgaWYgKGdfc3Ry Y21wMCAoKmF0dHIsICJoYXNoIikgPT0gMCkKKysgICAgICAgICAgICBoYXNoID0gYXRvbCAoYXR0 clsxXSk7CisrICAgICAgICBlbHNlIGlmIChnX3N0cmNtcDAgKCphdHRyLCAibmFtZSIpID09IDAp CisrICAgICAgICAgICAgaGFzaCA9IGdfc3RyX2hhc2ggKGF0dHJbMV0pOworKyAgICAgICAgaWYg KGhhc2gpIHsKKysgICAgICAgICAgICBpZiAoIXByaXYtPmZpbGVfaGFzaF9saXN0KSB7CisrICAg ICAgICAgICAgICAgICpudGggPSAwOworKyAgICAgICAgICAgICAgICBwcml2LT5maWxlX2hhc2hf bGlzdCA9IGdfbmV3MCAoZ3VpbnQsICpudGggKyAyKTsKKysgICAgICAgICAgICB9IGVsc2Ugewor KyAgICAgICAgICAgICAgICBwcml2LT5maWxlX2hhc2hfbGlzdCA9IGdfcmVuZXcgKGd1aW50LCBw cml2LT5maWxlX2hhc2hfbGlzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqbnRoICsgMik7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIHBy aXYtPmZpbGVfaGFzaF9saXN0WypudGhdID0gaGFzaDsKKysgICAgICAgICAgICBwcml2LT5maWxl X2hhc2hfbGlzdFsqbnRoICsgMV0gPSAwOworKyAgICAgICAgICAgICpudGggKz0gMTsKKysgICAg ICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysgICAgICAgIGdfd2FybmluZyAoIlVua29u d24gYXR0cmlidXRlICVzIiwgYXR0clswXSk7CisrICAgIH0KKysKKysgICAgcmV0dXJuIFRSVUU7 CisrfQorKworKworIHN0YXRpYyBnYm9vbGVhbgorIGlidXNfb2JzZXJ2ZWRfcGF0aF9wYXJzZV94 bWxfbm9kZSAoSUJ1c09ic2VydmVkUGF0aCAqcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhNTE5vZGUgICAgICAgICAgKm5vZGUpCisgeworKyAgICBnY2hhciAqKmF0 dHI7CisrICAgIGNvbnN0IGdjaGFyICpmdWxsX3BhdGggPSBub2RlLT50ZXh0OworKyAgICBHTGlz dCAqcDsKKysgICAgaW50IGkgPSAwOworKworICAgICBnX2Fzc2VydCAoSUJVU19JU19PQlNFUlZF RF9QQVRIIChwYXRoKSk7CisgICAgIGdfYXNzZXJ0IChub2RlKTsKKyAKKy0gICAgaWYgKEdfVU5M SUtFTFkgKGdfc3RyY21wMCAobm9kZS0+bmFtZSwgInBhdGgiKSAhPSAwKSkgeworKyAgICBpZiAo R19VTkxJS0VMWSAoZ19zdHJjbXAwIChub2RlLT5uYW1lLCAicGF0aCIpICE9IDApKQorICAgICAg ICAgcmV0dXJuIEZBTFNFOworKworKyAgICBmb3IgKGF0dHIgPSBub2RlLT5hdHRyaWJ1dGVzOyBh dHRyWzBdOyBhdHRyICs9IDIpIHsKKysgICAgICAgIGlmIChnX3N0cmNtcDAgKCphdHRyLCAibXRp bWUiKSA9PSAwKSB7CisrICAgICAgICAgICAgcGF0aC0+bXRpbWUgPSBhdG9sIChhdHRyWzFdKTsK KysgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysgICAgICAgIGlmIChnX3N0cmNt cDAgKCphdHRyLCAicGF0aCIpID09IDApIHsKKysgICAgICAgICAgICBmdWxsX3BhdGggPSBhdHRy WzFdOworKyAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgfQorKyAgICAgICAgaWYgKGdf c3RyY21wMCAoKmF0dHIsICJ0eXBlIikgPT0gMCkgeworKyAgICAgICAgICAgIGlmICghZ19zdHJj bXAwIChhdHRyWzFdLCAiZGlyIikpCisrICAgICAgICAgICAgICAgIHBhdGgtPmlzX2RpciA9IFRS VUU7CisrICAgICAgICAgICAgZWxzZSBpZiAoIWdfc3RyY21wMCAoYXR0clsxXSwgImZpbGUiKSkK KysgICAgICAgICAgICAgICAgcGF0aC0+aXNfZGlyID0gRkFMU0U7CisrICAgICAgICAgICAgZWxz ZQorKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJUaGUgdHlwZSBhdHRyaWJ1dGUgY2FuIGJl IFwiZGlyXCIgb3IgXCJmaWxlXCIuIik7CisrICAgICAgICAgICAgY29udGludWU7CisrICAgICAg ICB9CisrICAgICAgICBnX3dhcm5pbmcgKCJVbmtvbnduIGF0dHJpYnV0ZSAlcyIsIGF0dHJbMF0p OworICAgICB9CisgCistICAgIGlmIChub2RlLT50ZXh0WzBdID09ICd+JyAmJiBub2RlLT50ZXh0 WzFdICE9IEdfRElSX1NFUEFSQVRPUikgeworLSAgICAgICAgZ193YXJuaW5nICgiSW52YWxpZCBw YXRoIFwiJXNcIiIsIG5vZGUtPnRleHQpOworKyAgICBpZiAoZnVsbF9wYXRoWzBdID09ICd+JyAm JiBmdWxsX3BhdGhbMV0gIT0gR19ESVJfU0VQQVJBVE9SKSB7CisrICAgICAgICBnX3dhcm5pbmcg KCJJbnZhbGlkIHBhdGggXCIlc1wiIiwgZnVsbF9wYXRoKTsKKyAgICAgICAgIHJldHVybiBGQUxT RTsKKyAgICAgfQorIAorLSAgICBwYXRoLT5wYXRoID0gZ19zdHJkdXAgKG5vZGUtPnRleHQpOwor KyAgICBwYXRoLT5wYXRoID0gZ19zdHJkdXAgKGZ1bGxfcGF0aCk7CisgCistICAgIGdjaGFyICoq YXR0cjsKKy0gICAgZm9yIChhdHRyID0gbm9kZS0+YXR0cmlidXRlczsgYXR0clswXTsgYXR0ciAr PSAyKSB7CistICAgICAgICBpZiAoZ19zdHJjbXAwICgqYXR0ciwgIm10aW1lIikgPT0gMCkgewor LSAgICAgICAgICAgIHBhdGgtPm10aW1lID0gYXRvbCAoYXR0clsxXSk7CisrICAgIGlmICghcGF0 aC0+aXNfZGlyKQorKyAgICAgICAgcmV0dXJuIFRSVUU7CisrCisrICAgIGZvciAoaSA9IDAsIHAg PSBub2RlLT5zdWJfbm9kZXM7IHAgIT0gTlVMTDsgcCA9IHAtPm5leHQpIHsKKysgICAgICAgIFhN TE5vZGUgKnN1Yl9ub2RlID0gKFhNTE5vZGUgKilwLT5kYXRhOworKworKyAgICAgICAgaWYgKEdf VU5MSUtFTFkgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJmaWxlIikgIT0gMCkpIHsKKysg ICAgICAgICAgICBnX3dhcm5pbmcgKCJVbmtvbnduIHRhZyAlcyIsIHN1Yl9ub2RlLT5uYW1lKTsK KyAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgIH0KKy0gICAgICAgIGdfd2FybmluZyAo IlVua29ud24gYXR0cmlidXRlICVzIiwgYXR0clswXSk7CisrICAgICAgICBpYnVzX29ic2VydmVk X3BhdGhfcGFyc2VfZmlsZSAocGF0aCwgc3ViX25vZGUsICZpKTsKKyAgICAgfQorIAorICAgICBy ZXR1cm4gVFJVRTsKKyB9CisgCisrCisgSUJ1c09ic2VydmVkUGF0aCAqCisgaWJ1c19vYnNlcnZl ZF9wYXRoX25ld19mcm9tX3htbF9ub2RlIChYTUxOb2RlICpub2RlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBmaWxsX3N0YXQpCitAQCAtMjg4LDE2ICs0 NzcsNDYgQEAgSUJ1c09ic2VydmVkUGF0aCAqCisgaWJ1c19vYnNlcnZlZF9wYXRoX25ldyAoY29u c3QgZ2NoYXIgKnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgIGZp bGxfc3RhdCkKKyB7CistICAgIGdfYXNzZXJ0IChwYXRoKTsKKy0KKyAgICAgSUJ1c09ic2VydmVk UGF0aCAqb3A7CisrICAgIElCdXNPYnNlcnZlZFBhdGhQcml2YXRlICpwcml2OworKyAgICBHTGlz dCAqZmlsZV9saXN0LCAqbDsKKysgICAgZ3VpbnQgaSA9IDA7CisgCisrICAgIGdfYXNzZXJ0IChw YXRoKTsKKyAgICAgb3AgPSAoSUJ1c09ic2VydmVkUGF0aCAqKSBnX29iamVjdF9uZXcgKElCVVNf VFlQRV9PQlNFUlZFRF9QQVRILCBOVUxMKTsKKyAgICAgb3AtPnBhdGggPSBnX3N0cmR1cCAocGF0 aCk7CisgCistICAgIGlmIChmaWxsX3N0YXQpIHsKKy0gICAgICAgIGlidXNfb2JzZXJ2ZWRfcGF0 aF9maWxsX3N0YXQgKG9wKTsKKysgICAgcHJpdiA9IElCVVNfT0JTRVJWRURfUEFUSF9HRVRfUFJJ VkFURSAob3ApOworKyAgICBsID0gZmlsZV9saXN0ID0gaWJ1c19vYnNlcnZlZF9wYXRoX3RyYXZl cnNlIChvcCwgRkFMU0UpOworKyAgICBmb3IgKDsgbDsgbCA9IGwtPm5leHQpIHsKKysgICAgICAg IElCdXNPYnNlcnZlZFBhdGggKnN1YiA9IGwtPmRhdGE7CisrICAgICAgICBjb25zdCBnY2hhciAq ZmlsZSA9IE5VTEw7CisrCisrICAgICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc3ViICYmIHN1 Yi0+cGF0aCwgb3ApOworKworKyAgICAgICAgZmlsZSA9IHN1Yi0+cGF0aDsKKysgICAgICAgIGlm ICghZ19zdHJfaGFzX3N1ZmZpeCAoZmlsZSwgIi54bWwiKSkKKysgICAgICAgICAgICBjb250aW51 ZTsKKysgICAgICAgIGlmIChnX3N0cl9oYXNfcHJlZml4IChmaWxlLCBwYXRoKSkgeworKyAgICAg ICAgICAgIGZpbGUgKz0gc3RybGVuIChwYXRoKTsKKysgICAgICAgICAgICBpZiAoKmZpbGUgPT0g Jy8nKQorKyAgICAgICAgICAgICAgICBmaWxlKys7CisrICAgICAgICAgICAgLyogSWdub3JlIHN1 YiBkaXJlY3RvcmllcyAqLworKyAgICAgICAgICAgIGlmIChzdHJjaHIgKGZpbGUsICcvJykpCisr ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgfQorKyAgICAgICAgaWYgKCFpKQor KyAgICAgICAgICAgIHByaXYtPmZpbGVfaGFzaF9saXN0ID0gZ19uZXcwIChndWludCwgaSArIDIp OworKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIHByaXYtPmZpbGVfaGFzaF9saXN0ID0gZ19y ZW5ldyAoZ3VpbnQsIHByaXYtPmZpbGVfaGFzaF9saXN0LCBpICsgMik7CisrICAgICAgICBwcml2 LT5maWxlX2hhc2hfbGlzdFtpXSA9IGdfc3RyX2hhc2ggKGZpbGUpOworKyAgICAgICAgcHJpdi0+ ZmlsZV9oYXNoX2xpc3RbaSArIDFdID0gMDsKKysgICAgICAgICsraTsKKyAgICAgfQorKyAgICBn X2xpc3RfZnJlZV9mdWxsIChmaWxlX2xpc3QsIChHRGVzdHJveU5vdGlmeSlpYnVzX29ic2VydmVk X3BhdGhfZGVzdHJveSk7CisrCisrICAgIGlmIChmaWxsX3N0YXQpCisrICAgICAgICBpYnVzX29i c2VydmVkX3BhdGhfZmlsbF9zdGF0IChvcCk7CisgCisgICAgIHJldHVybiBvcDsKKyB9CitkaWZm IC0tZ2l0IGEvc3JjL2lidXNyZWdpc3RyeS5jIGIvc3JjL2lidXNyZWdpc3RyeS5jCitpbmRleCA0 Mzk5MGQ1Zi4uMzc4Mzg4ZDkgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3JlZ2lzdHJ5LmMKKysrKyBi L3NyYy9pYnVzcmVnaXN0cnkuYworQEAgLTI5LDcgKzI5LDcgQEAKKyAjaW5jbHVkZSAiaWJ1c3Jl Z2lzdHJ5LmgiCisgCisgI2RlZmluZSBJQlVTX0NBQ0hFX01BR0lDIDB4NDk0MjU1NTMgLyogIklC VVMiICovCistI2RlZmluZSBJQlVTX0NBQ0hFX1ZFUlNJT04gMHgwMDAxMDUxMgorKyNkZWZpbmUg SUJVU19DQUNIRV9WRVJTSU9OIDB4MDAwMTA1MjIKKyAKKyBlbnVtIHsKKyAgICAgQ0hBTkdFRCwK Ky0tIAorMi4yMS4wCisKCmRpZmYgLS1naXQgYS9pYnVzLnNwZWMgYi9pYnVzLnNwZWMKaW5kZXgg NDk1ZDk1Ni4uNTllN2E4YSAxMDA2NDQKLS0tIGEvaWJ1cy5zcGVjCisrKyBiL2lidXMuc3BlYwpA QCAtMzUsNyArMzUsNyBAQAogCiBOYW1lOiAgICAgICAgICAgaWJ1cwogVmVyc2lvbjogICAgICAg IDEuNS4yMQotUmVsZWFzZTogICAgICAgIDMlez9kaXN0fQorUmVsZWFzZTogICAgICAgIDQlez9k aXN0fQogU3VtbWFyeTogICAgICAgIEludGVsbGlnZW50IElucHV0IEJ1cyBmb3IgTGludXggT1MK IExpY2Vuc2U6ICAgICAgICBMR1BMdjIrCiBVUkw6ICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIu Y29tL2lidXMvJW5hbWUvd2lraQpAQCAtMjY5LDYgKzI2OSw3IEBAIGZpCiAjYXV0b3JlY29uZiAt ZiAtaSAtdgogI21ha2UgLUMgdWkvZ3RrMyBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKICNtYWtl IC1DIHRvb2xzIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYworYXV0b3JlY29uZiAtZiAtaSAtdgog JWNvbmZpZ3VyZSBcCiAgICAgLS1kaXNhYmxlLXN0YXRpYyBcCiAgICAgLS1lbmFibGUtZ3RrMiBc CkBAIC0yOTAsNiArMjkxLDcgQEAgZmkKICAgICAtLWVuYWJsZS1pbnN0YWxsLXRlc3RzIFwKICAg ICAle25pbH0KIAorbWFrZSAtQyB1aS9ndGszIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYwogbWFr ZSAlez9fc21wX21mbGFnc30KIAogJWluc3RhbGwKQEAgLTQ2MSw2ICs0NjMsMTUgQEAgZGNvbmYg dXBkYXRlIHx8IDoKICV7X2RhdGFkaXJ9L2luc3RhbGxlZC10ZXN0cy9pYnVzCiAKICVjaGFuZ2Vs b2cKKyogTW9uIE5vdiAxOCAyMDE5IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29t PiAtIDEuNS4yMS00CistIFJlcGxhY2UgcHVzaCB3aXRoIGNkIGZvciBQb3NpeCBTSAorLSBVc2Ug WERHX0NPTkZJR19IT01FIGZvciBVbml4IHNvY2tldCBkaXJlY3RvcnkKKy0gRml4IGRlcHJlY2F0 ZWQgQVBJcworLSBGaXggcmVzdGFydCBjcmFzaCB3aXRoIGlub3RpZnkgcmVhZCgpCistIEZpeCBC dWcgMTY1ODE4NyBleGl0IGBpYnVzIGVtb2ppYCB3aXRoIEVzY2FwZSBrZXkKKy0gQWRkIGZyKGJl cG9fYWZub3IpIGtleW1hcAorLSBBZGQgZmlsZSBsaXN0IGluIHJlZ2lzdHJ5IGZpbGUgZm9yIFNp bHZlcmJsdWUKKwogKiBGcmkgT2N0IDA0IDIwMTkgVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJl ZGhhdC5jb20+IC0gMS41LjIxLTMKIC0gRml4IHRvIGFsbG9jYXRlIGNvbXBvc2Ugb3V0cHV0IGJ1 ZmZlciB3aXRoIG1vcmUgdGhhbiB0d28gY2hhcnMKIAo=