From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 30285 invoked from network); 9 Jul 2022 10:34:39 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 9 Jul 2022 10:34:39 -0000 Content-Type: multipart/mixed; boundary="===============2800820583326168452==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_7zip-22=2E00?= To: ml@inbox.vuxu.org From: r-ricci Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 09 Jul 2022 12:34:39 +0200 List-Id: Message-ID: <20220709103439.qMfHADSq2ynyurQQHB6iJkBrD_DxszD5vr_T0LJ2hbU@z> GitHub notification mails are now in MIME to allow UTF8. --===============2800820583326168452== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgci1yaWNjaSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vci1y aWNjaS92b2lkLXBhY2thZ2VzIDd6aXAKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzM3OTQwCgpOZXcgcGFja2FnZTogN3ppcC0yMi4wMAo8IS0tIFVuY29t bWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBh cHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhl IGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2Fn ZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVu dHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0 ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0K DQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBo b3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5H Lm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUg YnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9y ZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCjwhLS0N CiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3Ig bXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1 aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0t Pg0KDQpJIGRvbid0IHRoaW5rIHRoZXJlJ3MgYW55IHJlYXNvbiB0byBzaGlwIHRoZSBmdWxsIGFu ZCB0aGUgcmVkdWNlZCB2ZXJzaW9ucyBpbiB0aGUgc2FtZSBwYWNrYWdlLCBzbyBJIGp1c3QgY29t cGlsZSB0aGUgZnVsbCBvbmUgYW5kIGNyZWF0ZSBzeW1saW5rcyBmb3IgY29tcGF0aWJpbGl0eS4N Cg0KVE9ETzoNCg0KLSBmaXggbXVzbDogaXQgdXNlcyBzb21lIGZ1bmN0aW9ucyByZXF1aXJpbmcg YF9HTlVfU09VUkNFYCwgYnV0IG90aGVyIHBhcnRzIG9mIHRoZSBzb3VyY2UgZGVmaW5lIGl0IHdp dGhvdXQgY2hlY2tpbmcgaWYgaXQncyBhbHJlYWR5IGRlZmluZWQsIHNvIEkgZ2V0IGNvbXBpbGF0 aW9uIGVycm9ycyBpZiBJIGp1c3QgZGVmaW5lIGl0IGdsb2JhbGx5Lg0KLSBidWlsZCB3aXRoIGFz c2VtYmx5IHdoZXJlIHBvc3NpYmxlDQotIGJ1aWxkIGEgdmVyc2lvbiB3aXRoIFJBUiBzdXBwb3J0 IChub25mcmVlIHJlcG8pDQotIHVzZSBvdXIgY29tcGlsZSBhbmQgbGluayBmbGFncw0KLSB3aGF0 J3MgdGhlIG1vc3QgYXBwcm9wcmlhdGUgbmFtZSBmb3IgdGhlIHBhY2thZ2U/IDd6aXAsIDctemlw IG9yIDd6Pw0KDQpjbG9zZXMgIzM3ODc1CgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzc5NDAucGF0Y2ggaXMgYXR0YWNo ZWQ= --===============2800820583326168452== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-7zip-37940.patch" RnJvbSBlNTAyY2JiYTBhNWI1Yjk4ZWJhNTIxMTg2ZjMyOWVjYTEzM2ExOTMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnRvIFJpY2NpIDxyaWNjaUBkaXNyb290Lm9yZz4KRGF0 ZTogU2F0LCA5IEp1bCAyMDIyIDEyOjA1OjIyICswMjAwClN1YmplY3Q6IFtQQVRDSF0gTmV3IHBh Y2thZ2U6IDd6aXAtMjIuMDAKCi0tLQogc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xICAgICAgICAg ICAgICAgICAgICAgIHwgMjE1ICsrKysrKysrKysrKwogc3JjcGtncy83emlwL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDQ3ICsrKwogc3JjcGtncy9wN3ppcCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvcDd6aXAtdW5yYXIgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBzcmNwa2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZF LTIwMTgtNTk5Ni5wYXRjaCAgfCAyMjEgLS0tLS0tLS0tLS0tLQogc3JjcGtncy9wN3ppcC9wYXRj aGVzLzMwLUNWRS0yMDE4LTEwMTE1LnBhdGNoIHwgMzExIC0tLS0tLS0tLS0tLS0tLS0tLQogc3Jj cGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE2LTkyOTYucGF0Y2ggICAgIHwgIDEyIC0KIHNyY3Br Z3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaCAgICB8ICAyNiAtLQogc3JjcGtn cy9wN3ppcC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ3IC0tLQogc3JjcGtn cy9wN3ppcC91cGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIDEwIGZpbGVz IGNoYW5nZWQsIDI2MyBpbnNlcnRpb25zKCspLCA2MTkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy83emlwL3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9wN3ppcAogZGVs ZXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcDd6aXAtdW5yYXIKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZFLTIwMTgtNTk5Ni5wYXRjaAogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNi05Mjk2LnBhdGNo CiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE3LTE3OTY5 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9wN3ppcC90ZW1wbGF0ZQogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy83 emlwL2ZpbGVzLzd6ei4xIGIvc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmUxNTliZDk0YmI0Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xCkBAIC0wLDAgKzEsMjE1IEBACisuVEggN1paICIx IiAiRmVicnVhcnkgMTQsIDIwMjIiCisuU0ggTkFNRQorN3p6IFwtIFN0YW5kYWxvbmUgY29uc29s ZSB2ZXJzaW9uIG9mIHRoZSA3LVppcCBmaWxlIGFyY2hpdmVyCisuU0ggU1lOT1BTSVMKKy5CIDd6 egorLlwiIFxmSVwsPGNvbW1hbmQ+IFwvW1xmSVwsPHN3aXRjaD5cLy4uLl0gXGZJXCw8YXJjaGl2 ZV9uYW1lPiBcL1tcZklcLDxmaWxlX25hbWVzPlwvLi4uXSBbXGZJXCxAbGlzdF9maWxlXC9dCisu QlIgPGNvbW1hbmQ+CisuQlIgWzxzd2l0Y2g+Li4uXQorLkJSIDxhcmNoaXZlX25hbWU+CisuQlIg WzxmaWxlX25hbWVzPl0KKy5CUiBbQGxpc3RmaWxlXQorLlNIIERFU0NSSVBUSU9OCis3XC1aaXAg aXMgYSBmaWxlIGFyY2hpdmVyIHdpdGggYSBoaWdoIGNvbXByZXNzaW9uIHJhdGlvLiBTdXBwb3J0 ZWQgZm9ybWF0czoKKy5JUAorUGFja2luZyBhbmQgdW5wYWNraW5nOiA3eiwgWFosIEJaSVAyLCBH WklQLCBUQVIsIFpJUCBhbmQgV0lNLgorLklQCitVbnBhY2tpbmcgb25seTogQVIsIEFSSiwgQ0FC LCBDSE0sIENQSU8sIENyYW1GUywgRE1HLCBFWFQsIEZBVCwgR1BULCBIRlMsIElIRVgsIElTTywg TFpILCBMWk1BLCBNQlIsIE1TSSwgTlNJUywgTlRGUywgUUNPVzIsIFJBUiwgUlBNLCBTcXVhc2hG UywgVURGLCBVRUZJLCBWREksIFZIRCwgVkhEWCwgVk1ESywgV0lNLCBYQVIgYW5kIFouCisuU0gg Q29tbWFuZHMKKy5UUAorLkJSIGEKK0FkZCBmaWxlcyB0byBhcmNoaXZlCisuVFAKKy5CUiBiCitC ZW5jaG1hcmsKKy5UUAorLkJSIGQKK0RlbGV0ZSBmaWxlcyBmcm9tIGFyY2hpdmUKKy5UUAorLkJS IGUKK0V4dHJhY3QgZmlsZXMgZnJvbSBhcmNoaXZlICh3aXRob3V0IHVzaW5nIGRpcmVjdG9yeSBu YW1lcykKKy5UUAorLkJSIGgKK0NhbGN1bGF0ZSBoYXNoIHZhbHVlcyBmb3IgZmlsZXMKKy5UUAor LkJSIGkKK1Nob3cgaW5mb3JtYXRpb24gYWJvdXQgc3VwcG9ydGVkIGZvcm1hdHMKKy5UUAorLkJS IGwKK0xpc3QgY29udGVudHMgb2YgYXJjaGl2ZQorLlRQCisuQlIgcm4KK1JlbmFtZSBmaWxlcyBp biBhcmNoaXZlCisuVFAKKy5CUiB0CitUZXN0IGludGVncml0eSBvZiBhcmNoaXZlCisuVFAKKy5C UiB1CitVcGRhdGUgZmlsZXMgdG8gYXJjaGl2ZQorLlRQCisuQlIgeAorRXh0cmFjdCBmaWxlcyB3 aXRoIGZ1bGwgcGF0aHMKKy5TSCBTd2l0Y2hlcworLlRQCisuQlIgXC1cLQorU3RvcCBzd2l0Y2hl cyBhbmQgQGxpc3RmaWxlIHBhcnNpbmcKKy5UUAorLkJSIFwtYWlbcltcLXwwXV17QGxpc3RmaWxl fCF3aWxkY2FyZH0KK0luY2x1ZGUgYXJjaGl2ZXMKKy5UUAorLkJSIFwtYXhbcltcLXwwXV17QGxp c3RmaWxlfCF3aWxkY2FyZH0KK0V4Y2x1ZGUgYXJjaGl2ZXMKKy5UUAorLkJSIFwtYW97YXxzfHR8 dX0KK1NldCBPdmVyd3JpdGUgbW9kZQorLlRQCisuQlIgXC1hbgorRGlzYWJsZSBhcmNoaXZlX25h bWUgZmllbGQKKy5UUAorLkJSIFwtYmJbMFwtM10KK1NldCBvdXRwdXQgbG9nIGxldmVsCisuVFAK Ky5CUiBcLWJkCitEaXNhYmxlIHByb2dyZXNzIGluZGljYXRvcgorLlRQCisuQlIgXC1ic3tvfGV8 cH17MHwxfDJ9CitTZXQgb3V0cHV0IHN0cmVhbSBmb3Igb3V0cHV0L2Vycm9yL3Byb2dyZXNzIGxp bmUKKy5UUAorLkJSIFwtYnQKK3Nob3cgZXhlY3V0aW9uIHRpbWUgc3RhdGlzdGljcworLlRQCisu QlIgXC1pW3JbXC18MF1de0BsaXN0ZmlsZXwhd2lsZGNhcmR9CitJbmNsdWRlIGZpbGVuYW1lcwor LlRQCisuQlIgXC1te1BhcmFtZXRlcnN9CitTZXQgY29tcHJlc3Npb24gTWV0aG9kCisuVFAKKy5C UiBcLW1tdFtOXQorU2V0IG51bWJlciBvZiBDUFUgdGhyZWFkcworLlRQCisuQlIgXC1teFtOXQor U2V0IGNvbXByZXNzaW9uIGxldmVsOiBcLW14MSAoZmFzdGVzdCkgLi4uIFwtbXg5ICh1bHRyYSkK Ky5UUAorLkJSIFwtb3tEaXJlY3Rvcnl9CitTZXQgT3V0cHV0IGRpcmVjdG9yeQorLlRQCisuQlIg XC1we1Bhc3N3b3JkfQorU2V0IFBhc3N3b3JkCisuVFAKKy5CUiBcLXJbXC18MF0KK1JlY3Vyc2Ug c3ViZGlyZWN0b3JpZXMgZm9yIG5hbWUgc2VhcmNoCisuVFAKKy5CUiBcLXNhe2F8ZXxzfQorU2V0 IEFyY2hpdmUgbmFtZSBtb2RlCisuVFAKKy5CUiBcLXNjY3tVVEZcLTh8V0lOfERPU30KK1NldCBj aGFyc2V0IGZvciBmb3IgY29uc29sZSBpbnB1dC9vdXRwdXQKKy5UUAorLkJSIFwtc2Nze1VURlwt OHxVVEZcLTE2TEV8VVRGXC0xNkJFfFdJTnxET1N8e2lkfX0KK1NldCBjaGFyc2V0IGZvciBsaXN0 IGZpbGVzCisuVFAKKy5CUiBcLXNjcmNbQ1JDMzJ8Q1JDNjR8U0hBMXxTSEEyNTZ8Kl0KK1NldCBo YXNoIGZ1bmN0aW9uIGZvciB4LCBlLCBoIGNvbW1hbmRzCisuVFAKKy5CUiBcLXNkZWwKK0RlbGV0 ZSBmaWxlcyBhZnRlciBjb21wcmVzc2lvbgorLlRQCisuQlIgXC1zZW1sWy5dCitTZW5kIGFyY2hp dmUgYnkgZW1haWwKKy5UUAorLkJSIFwtc2Z4W3tuYW1lfV0KK0NyZWF0ZSBTRlggYXJjaGl2ZQor LlRQCisuQlIgXC1zaVt7bmFtZX1dCitSZWFkIGRhdGEgZnJvbSBzdGRpbgorLlRQCisuQlIgXC1z bHAKK1NldCBMYXJnZSBQYWdlcyBtb2RlCisuVFAKKy5CUiBcLXNsdAorU2hvdyB0ZWNobmljYWwg aW5mb3JtYXRpb24gZm9yIGwgKExpc3QpIGNvbW1hbmQKKy5UUAorLkJSIFwtc25oCitTdG9yZSBo YXJkIGxpbmtzIGFzIGxpbmtzCisuVFAKKy5CUiBcLXNubAorU3RvcmUgc3ltYm9saWMgbGlua3Mg YXMgbGlua3MKKy5UUAorLkJSIFwtc25pCitTdG9yZSBOVCBzZWN1cml0eSBpbmZvcm1hdGlvbgor LlRQCisuQlIgXC1zbnNbXC1dCitTdG9yZSBOVEZTIGFsdGVybmF0ZSBzdHJlYW1zCisuVFAKKy5C UiBcLXNvCitXcml0ZSBkYXRhIHRvIHN0ZG91dAorLlRQCisuQlIgXC1zcGQKK0Rpc2FibGUgd2ls ZGNhcmQgbWF0Y2hpbmcgZm9yIGZpbGUgbmFtZXMKKy5UUAorLkJSIFwtc3BlCitFbGltaW5hdGUg ZHVwbGljYXRpb24gb2Ygcm9vdCBmb2xkZXIgZm9yIGV4dHJhY3QgY29tbWFuZAorLlRQCisuQlIg XC1zcGYKK1VzZSBmdWxseSBxdWFsaWZpZWQgZmlsZSBwYXRocworLlRQCisuQlIgXC1zc2NbXC1d CitTZXQgc2Vuc2l0aXZlIGNhc2UgbW9kZQorLlRQCisuQlIgXC1zc2UKK1N0b3AgYXJjaGl2ZSBj cmVhdGluZywgaWYgaXQgY2FuJ3Qgb3BlbiBzb21lIGlucHV0IGZpbGUKKy5UUAorLkJSIFwtc3Nw CitEbyBub3QgY2hhbmdlIExhc3QgQWNjZXNzIFRpbWUgb2Ygc291cmNlIGZpbGVzIHdoaWxlIGFy Y2hpdmluZworLlRQCisuQlIgXC1zc3cKK0NvbXByZXNzIHNoYXJlZCBmaWxlcworLlRQCisuQlIg XC1zdGwKK1NldCBhcmNoaXZlIHRpbWVzdGFtcCBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IG1vZGlm aWVkIGZpbGUKKy5UUAorLkJSIFwtc3Rte0hleE1hc2t9CitTZXQgQ1BVIHRocmVhZCBhZmZpbml0 eSBtYXNrIChoZXhhZGVjaW1hbCBudW1iZXIpCisuVFAKKy5CUiBcLXN0eHtUeXBlfQorRXhjbHVk ZSBhcmNoaXZlIHR5cGUKKy5UUAorLkJSIFwtdHtUeXBlfQorU2V0IHR5cGUgb2YgYXJjaGl2ZQor LlRQCisuQlIgXC11W1wtXVtwI11bcSNdW3IjXVt4I11beSNdW3ojXVshbmV3QXJjaGl2ZU5hbWVd CitVcGRhdGUgb3B0aW9ucworLlRQCisuQlIgXC12e1NpemV9W2J8a3xtfGddCitDcmVhdGUgdm9s dW1lcworLlRQCisuQlIgXC13W3twYXRofV0KK1NldCB3b3JraW5nIGRpcmVjdG9yeS4gRW1wdHkg cGF0aCBtZWFucyBhIHRlbXBvcmFyeSBkaXJlY3RvcnkKKy5UUAorLkJSIFwteFtyW1wtfDBdXXtA bGlzdGZpbGV8IXdpbGRjYXJkfQorRXhjbHVkZSBmaWxlbmFtZXMKKy5UUAorLkJSIFwteQorQXNz dW1lIFllcyBvbiBhbGwgcXVlcmllcworLlNIIExpc3RmaWxlCitZb3UgY2FuIHN1cHBseSBvbmUg b3IgbW9yZSBmaWxlbmFtZXMgb3Igd2lsZGNhcmRzIGZvciBzcGVjaWFsIGxpc3QgZmlsZXMgKGZp bGVzIGNvbnRhaW5pbmcgbGlzdHMgb2YgZmlsZXMpLiBUaGUgZmlsZW5hbWVzIGluIHN1Y2ggbGlz dCBmaWxlIG11c3QgYmUgc2VwYXJhdGVkIGJ5IG5ldyBsaW5lIHN5bWJvbChzKS4gRm9yIGxpc3Qg ZmlsZXMsIDdcLVppcCB1c2VzIFVURlwtOCBlbmNvZGluZyBieSBkZWZhdWx0LiBZb3UgY2FuIGNo YW5nZSBlbmNvZGluZyB1c2luZworLkJSIFwtc2NzCitzd2l0Y2guIE11bHRpcGxlIGxpc3QgZmls ZXMgYXJlIHN1cHBvcnRlZC4KKy5QUAorRm9yIGV4YW1wbGUsIGlmIHRoZSBmaWxlICJsaXN0Zmls ZS50eHQiIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmc6CisuSVAKK015IHByb2dyYW1zXFwqLmNwcAor LmJyCitTcmNcXCouY3BwCisuUFAKK3RoZW4gdGhlIGNvbW1hbmQKKy5JUAorLkIgN3ogYSBcLXR6 aXAgYXJjaGl2ZS56aXAgQGxpc3RmaWxlLnR4dAorLlBQCithZGRzIHRvIHRoZSBhcmNoaXZlICJh cmNoaXZlLnppcCIgYWxsICIqLmNwcCIgZmlsZXMgZnJvbSBkaXJlY3RvcmllcyAiTXkgcHJvZ3Jh bXMiIGFuZCAiU3JjIi4KKy5TSCAiU0VFIEFMU08iCisuQlIgeHogKDEpCisuYnIKK0ZyZXF1ZW50 bHkgQXNrZWQgUXVlc3Rpb25zOiA8aHR0cHM6Ly93d3cuNy16aXAub3JnL2ZhcS5odG1sPgorLmJy CitSZWNvdmVyIGNvcnJ1cHRlZCA3eiBhcmNoaXZlOiA8aHR0cHM6Ly93d3cuNy16aXAub3JnL3Jl Y292ZXIuaHRtbD4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv N3ppcC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjkz OTEzY2NmM2YwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZQpAQCAt MCwwICsxLDQ3IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICc3emlwJworcGtnbmFtZT03emlwCit2 ZXJzaW9uPTIyLjAwCityZXZpc2lvbj0xCitjcmVhdGVfd3Jrc3JjPXllcworc2hvcnRfZGVzYz0i RmlsZSBhcmNoaXZlciB3aXRoIGEgaGlnaCBjb21wcmVzc2lvbiByYXRpbyIKK21haW50YWluZXI9 IlJvYmVydG8gUmljY2kgPHJpY2NpQGRpc3Jvb3Qub3JnPiIKK2xpY2Vuc2U9IkxHUEwtMi4xLW9y LWxhdGVyLCBCU0QtMy1DbGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly93d3cuNy16aXAub3JnIgor Y2hhbmdlbG9nPSJodHRwczovL3d3dy43LXppcC5vcmcvaGlzdG9yeS50eHQiCitkaXN0ZmlsZXM9 Imh0dHBzOi8vd3d3LjctemlwLm9yZy9hLzd6JHt2ZXJzaW9uLy8uL30tc3JjLnRhci54eiIKK2No ZWNrc3VtPTQwOTY5ZjYwMWU4NmFmZjQ5YWFhMGJhMGRmNWNlNmZkMzk3Y2Y3ZTI2ODNhODRiNTkx YjAwODFlNDYxZWY2NzUKKworZG9fYnVpbGQoKSB7CisJY2QgQ1BQLzd6aXAvQnVuZGxlcy9BbG9u ZTIKKwltYWtlICIkbWFrZWpvYnMiIC1mIG1ha2VmaWxlLmdjYyBDQz0iJENDIiBDWFg9IiRDWFgi IERJU0FCTEVfUkFSX0NPTVBSRVNTPTEKK30KKworZG9faW5zdGFsbCgpIHsKKwl2YmluIENQUC83 emlwL0J1bmRsZXMvQWxvbmUyL19vLzd6egorCWZvciBpIGluIDd6IDd6YSA3enI7IGRvCisJCWxu IC1zZiA3enogJHtERVNURElSfS91c3IvYmluLyR7aX0KKwlkb25lCisKKwl2bGljZW5zZSBET0Mv TGljZW5zZS50eHQKKworCSMgaHR0cHM6Ly9jZ2l0LmZyZWVic2Qub3JnL3BvcnRzL3BsYWluL2Fy Y2hpdmVycy83LXppcC9maWxlcy83enouMQorCXZtYW4gJHtGSUxFU0RJUn0vN3p6LjEKK30KKwor Izd6aXAtcmFyX3BhY2thZ2UoKSB7CisJI3JlcG9zaXRvcnk9bm9uZnJlZQorCSNjb25mbGljdHM9 N3ppcAorCSNzaG9ydF9kZXNjKz0iIHdpdGggUkFSIHN1cHBvcnQiCisjfQorCitwN3ppcF9wYWNr YWdlKCkgeworCWJ1aWxkX3N0eWxlPW1ldGEKKwlkZXBlbmRzPTd6aXAKKwlzaG9ydF9kZXNjPSJD b21tYW5kLWxpbmUgdmVyc2lvbiBvZiB0aGUgN3ppcCBjb21wcmVzc2VkIGZpbGUgYXJjaGl2ZSAo dHJhbnNpdGlvbmFsIGR1bW15IHBhY2thZ2UpIgorfQorCisjcDd6aXAtdW5yYXJfcGFja2FnZSB7 CisJI2J1aWxkX3N0eWxlPW1ldGEKKwkjZGVwZW5kcz03emlwLXJhcgorCSNzaG9ydF9kZXNjPSJD b21tYW5kLWxpbmUgdmVyc2lvbiBvZiB0aGUgN3ppcCBjb21wcmVzc2VkIGZpbGUgYXJjaGl2ZSAt IFJBUiBzdXBwb3J0ICh0cmFuc2l0aW9uYWwgZHVtbXkgcGFja2FnZSkiCisjfQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9wN3ppcCBiL3NyY3BrZ3MvcDd6aXAKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5k ZXggMDAwMDAwMDAwMDAwLi4yODQzMTI1OTVhNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3A3emlwCkBAIC0wLDAgKzEgQEAKKzd6aXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwLXVucmFyIGIvc3JjcGtncy9wN3ppcC11bnJhcgpkZWxl dGVkIGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggYmY1MzQ5ZWU2NjY2Li4wMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9wN3ppcC11bnJhcgorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXA3emlw ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9w YXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMjAt Q1ZFLTIwMTgtNTk5Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjczM2Jm ZjkxODk1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzIwLUNWRS0y MDE4LTU5OTYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotRnJvbTogUm9i ZXJ0IEx1YmVyZGEgPHJvYmVydEBkZWJpYW4ub3JnPgotRGF0ZTogU3VuLCAyOCBKYW4gMjAxOCAy Mzo0Nzo0MCArMDEwMAotU3ViamVjdDogQ1ZFLTIwMTgtNTk5NgotCi1Ib3BlZnVsbHkgZml4IE1l bW9yeSBDb3JydXB0aW9ucyB2aWEgUkFSIFBQTWQgKENWRS0yMDE4LTU5OTYpIGJ5Ci1hcHBseWlu ZyBhIGZldyBjaGFuZ2VzIGZyb20gN1ppcCAxOC4wMC1iZXRhLgotCi1CdWctRGViaWFuOiBodHRw czovL2J1Z3MuZGViaWFuLm9yZy8jODg4MzE0Ci0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIx RGVjb2Rlci5jcHAgfCAxMyArKysrKysrKystLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURl Y29kZXIuaCAgIHwgIDEgKwotIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcCB8IDEw ICsrKysrKysrKy0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oICAgfCAgMSArCi0g Q1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwIHwgMjMgKysrKysrKysrKysrKysrKysr KystLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oICAgfCAgMiArKwotIDYgZmls ZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNz L1JhcjFEZWNvZGVyLmNwcAotaW5kZXggMWFhZWRjYy4uNjgwMzBjNyAxMDA2NDQKLS0tLSBhL0NQ UC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyMURlY29kZXIuY3BwCi1AQCAtMjksNyArMjksNyBAQCBwdWJsaWM6Ci0gfTsKLSAqLwotIAot LUNEZWNvZGVyOjpDRGVjb2RlcigpOiBtX0lzU29saWQoZmFsc2UpIHsgfQotK0NEZWNvZGVyOjpD RGVjb2RlcigpOiBtX0lzU29saWQoZmFsc2UpLCBfZXJyb3JNb2RlKGZhbHNlKSB7IH0KLSAKLSB2 b2lkIENEZWNvZGVyOjpJbml0U3RydWN0dXJlcygpCi0gewotQEAgLTQwNiw5ICs0MDYsMTQgQEAg SFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0s IElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIEluaXREYXRhKCk7Ci0gICBpZiAoIW1fSXNTb2xp ZCkKLSAgIHsKLSsgICAgX2Vycm9yTW9kZSA9IGZhbHNlOwotICAgICBJbml0U3RydWN0dXJlcygp OwotICAgICBJbml0SHVmZigpOwotICAgfQotKwotKyAgaWYgKF9lcnJvck1vZGUpCi0rICAgIHJl dHVybiBTX0ZBTFNFOwotKwotICAgaWYgKG1fVW5wYWNrU2l6ZSA+IDApCi0gICB7Ci0gICAgIEdl dEZsYWdzQnVmKCk7Ci1AQCAtNDc3LDkgKzQ4Miw5IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6 Q29kZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0K LSAgICAgY29uc3QgVUludDY0ICppblNpemUsIGNvbnN0IFVJbnQ2NCAqb3V0U2l6ZSwgSUNvbXBy ZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSB7Ci0gICB0cnkgeyByZXR1cm4gQ29kZVJlYWwo aW5TdHJlYW0sIG91dFN0cmVhbSwgaW5TaXplLCBvdXRTaXplLCBwcm9ncmVzcyk7IH0KLS0gIGNh dGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgeyByZXR1cm4gZS5FcnJvckNvZGU7IH0K LS0gIGNhdGNoKGNvbnN0IENMek91dFdpbmRvd0V4Y2VwdGlvbiAmZSkgeyByZXR1cm4gZS5FcnJv ckNvZGU7IH0KLS0gIGNhdGNoKC4uLikgeyByZXR1cm4gU19GQUxTRTsgfQotKyAgY2F0Y2goY29u c3QgQ0luQnVmZmVyRXhjZXB0aW9uICZlKSB7IF9lcnJvck1vZGUgPSB0cnVlOyByZXR1cm4gZS5F cnJvckNvZGU7IH0KLSsgIGNhdGNoKGNvbnN0IENMek91dFdpbmRvd0V4Y2VwdGlvbiAmZSkgeyBf ZXJyb3JNb2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0rICBjYXRjaCguLi4pIHsg X2Vycm9yTW9kZSA9IHRydWU7IHJldHVybiBTX0ZBTFNFOyB9Ci0gfQotIAotIFNURE1FVEhPRElN UCBDRGVjb2Rlcjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5dGUgKmRhdGEsIFVJbnQz MiBzaXplKQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmggYi9D UFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oCi1pbmRleCA2MzBmMDg5Li4wMWI2MDZiIDEw MDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotKysrIGIvQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgotIAot ICAgSW50NjQgbV9VbnBhY2tTaXplOwotICAgYm9vbCBtX0lzU29saWQ7Ci0rICBib29sIF9lcnJv ck1vZGU7Ci0gCi0gICBVSW50MzIgUmVhZEJpdHMoaW50IG51bUJpdHMpOwotICAgSFJFU1VMVCBD b3B5QmxvY2soVUludDMyIGRpc3RhbmNlLCBVSW50MzIgbGVuKTsKLWRpZmYgLS1naXQgYS9DUFAv N3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVj b2Rlci5jcHAKLWluZGV4IGIzZjJiNGIuLjA1ODBjOGQgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9D b21wcmVzcy9SYXIyRGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNv ZGVyLmNwcAotQEAgLTgwLDcgKzgwLDggQEAgc3RhdGljIGNvbnN0IFVJbnQzMiBrSGlzdG9yeVNp emUgPSAxIDw8IDIwOwotIHN0YXRpYyBjb25zdCBVSW50MzIga1dpbmRvd1Jlc2VydlNpemUgPSAo MSA8PCAyMikgKyAyNTY7Ci0gCi0gQ0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0tICBtX0lzU29saWQo ZmFsc2UpCi0rICBtX0lzU29saWQoZmFsc2UpLAotKyAgbV9UYWJsZXNPSyhmYWxzZSkKLSB7Ci0g fQotIAotQEAgLTEwMCw2ICsxMDEsOCBAQCBVSW50MzIgQ0RlY29kZXI6OlJlYWRCaXRzKHVuc2ln bmVkIG51bUJpdHMpIHsgcmV0dXJuIG1fSW5CaXRTdHJlYW0uUmVhZEJpdHMobnVtQgotIAotIGJv b2wgQ0RlY29kZXI6OlJlYWRUYWJsZXModm9pZCkKLSB7Ci0rICBtX1RhYmxlc09LID0gZmFsc2U7 Ci0rCi0gICBCeXRlIGxldmVsTGV2ZWxzW2tMZXZlbFRhYmxlU2l6ZV07Ci0gICBCeXRlIG5ld0xl dmVsc1trTWF4VGFibGVTaXplXTsKLSAgIG1fQXVkaW9Nb2RlID0gKFJlYWRCaXRzKDEpID09IDEp OwotQEAgLTE3MCw2ICsxNzMsOCBAQCBib29sIENEZWNvZGVyOjpSZWFkVGFibGVzKHZvaWQpCi0g ICB9Ci0gICAKLSAgIG1lbWNweShtX0xhc3RMZXZlbHMsIG5ld0xldmVscywga01heFRhYmxlU2l6 ZSk7Ci0rICBtX1RhYmxlc09LID0gdHJ1ZTsKLSsKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLUBA IC0zNDQsNiArMzQ5LDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJ blN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgICAgICByZXR1cm4g U19GQUxTRTsKLSAgIH0KLSAKLSsgIGlmICghbV9UYWJsZXNPSykKLSsgICAgcmV0dXJuIFNfRkFM U0U7Ci0rCi0gICBVSW50NjQgc3RhcnRQb3MgPSBtX091dFdpbmRvd1N0cmVhbS5HZXRQcm9jZXNz ZWRTaXplKCk7Ci0gICB3aGlsZSAocG9zIDwgdW5QYWNrU2l6ZSkKLSAgIHsKLWRpZmYgLS1naXQg YS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFy MkRlY29kZXIuaAotaW5kZXggM2EwNTM1Yy4uMGU5MDA1ZiAxMDA2NDQKLS0tLSBhL0NQUC83emlw L0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNv ZGVyLmgKLUBAIC0xMzksNiArMTM5LDcgQEAgY2xhc3MgQ0RlY29kZXIgOgotIAotICAgVUludDY0 IG1fUGFja1NpemU7Ci0gICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgbV9UYWJsZXNPSzsKLSAK LSAgIHZvaWQgSW5pdFN0cnVjdHVyZXMoKTsKLSAgIFVJbnQzMiBSZWFkQml0cyh1bnNpZ25lZCBu dW1CaXRzKTsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAg Yi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLWluZGV4IDNiZjI1MTMuLjZjYjhh NmEgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLSsrKyBi L0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcAotQEAgLTkyLDcgKzkyLDggQEAgQ0Rl Y29kZXI6OkNEZWNvZGVyKCk6Ci0gICBfd3JpdHRlbkZpbGVTaXplKDApLAotICAgX3ZtRGF0YSgw KSwKLSAgIF92bUNvZGUoMCksCi0tICBtX0lzU29saWQoZmFsc2UpCi0rICBtX0lzU29saWQoZmFs c2UpLAotKyAgX2Vycm9yTW9kZShmYWxzZSkKLSB7Ci0gICBQcG1kN19Db25zdHJ1Y3QoJl9wcG1k KTsKLSB9Ci1AQCAtNTQ1LDYgKzU0Niw5IEBAIEhSRVNVTFQgQ0RlY29kZXI6OlJlYWRUYWJsZXMo Ym9vbCAma2VlcERlY29tcHJlc3NpbmcpCi0gICAgIHJldHVybiBJbml0UFBNKCk7Ci0gICB9Ci0g Ci0rICBUYWJsZXNSZWFkID0gZmFsc2U7Ci0rICBUYWJsZXNPSyA9IGZhbHNlOwotKwotICAgX2x6 TW9kZSA9IHRydWU7Ci0gICBQcmV2QWxpZ25CaXRzID0gMDsKLSAgIFByZXZBbGlnbkNvdW50ID0g MDsKLUBAIC02MDYsNiArNjEwLDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6UmVhZFRhYmxlcyhib29s ICZrZWVwRGVjb21wcmVzc2luZykKLSAgICAgICB9Ci0gICAgIH0KLSAgIH0KLSsgIGlmIChJbnB1 dEVvZkVycm9yKCkpCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKwotICAgVGFibGVzUmVhZCA9IHRy dWU7Ci0gCi0gICAvLyBvcmlnaW5hbCBjb2RlIGhhcyBjaGVjayBoZXJlOgotQEAgLTYyMyw2ICs2 MzAsOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpSZWFkVGFibGVzKGJvb2wgJmtlZXBEZWNvbXByZXNz aW5nKQotICAgUklGKG1fTGVuRGVjb2Rlci5CdWlsZCgmbmV3TGV2ZWxzW2tNYWluVGFibGVTaXpl ICsga0Rpc3RUYWJsZVNpemUgKyBrQWxpZ25UYWJsZVNpemVdKSk7Ci0gCi0gICBtZW1jcHkobV9M YXN0TGV2ZWxzLCBuZXdMZXZlbHMsIGtUYWJsZXNTaXplc1N1bSk7Ci0rCi0rICBUYWJsZXNPSyA9 IHRydWU7Ci0rCi0gICByZXR1cm4gU19PSzsKLSB9Ci0gCi1AQCAtODI0LDcgKzgzNCwxMiBAQCBI UkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJlc3NQcm9ncmVzc0luZm8gKnByb2dyZXNz KQotICAgICBQcG1Fc2NDaGFyID0gMjsKLSAgICAgUHBtRXJyb3IgPSB0cnVlOwotICAgICBJbml0 RmlsdGVycygpOwotKyAgICBfZXJyb3JNb2RlID0gZmFsc2U7Ci0gICB9Ci0rCi0rICBpZiAoX2Vy cm9yTW9kZSkKLSsgICAgcmV0dXJuIFNfRkFMU0U7Ci0rCi0gICBpZiAoIW1fSXNTb2xpZCB8fCAh VGFibGVzUmVhZCkKLSAgIHsKLSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLUBAIC04Mzgs NiArODUzLDggQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJvZ3Jlc3NJ bmZvICpwcm9ncmVzcykKLSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLSAgICAgaWYgKF9s ek1vZGUpCi0gICAgIHsKLSsgICAgICBpZiAoIVRhYmxlc09LKQotKyAgICAgICAgcmV0dXJuIFNf RkFMU0U7Ci0gICAgICAgUklOT0soRGVjb2RlTFooa2VlcERlY29tcHJlc3NpbmcpKQotICAgICB9 Ci0gICAgIGVsc2UKLUBAIC05MDEsOCArOTE4LDggQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpD b2RlKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbQot ICAgICBfdW5wYWNrU2l6ZSA9IG91dFNpemUgPyAqb3V0U2l6ZSA6IChVSW50NjQpKEludDY0KS0x OwotICAgICByZXR1cm4gQ29kZVJlYWwocHJvZ3Jlc3MpOwotICAgfQotLSAgY2F0Y2goY29uc3Qg Q0luQnVmZmVyRXhjZXB0aW9uICZlKSAgeyByZXR1cm4gZS5FcnJvckNvZGU7IH0KLS0gIGNhdGNo KC4uLikgeyByZXR1cm4gU19GQUxTRTsgfQotKyAgY2F0Y2goY29uc3QgQ0luQnVmZmVyRXhjZXB0 aW9uICZlKSAgeyBfZXJyb3JNb2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0rICBj YXRjaCguLi4pIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJldHVybiBTX0ZBTFNFOyB9Ci0gICAvLyBD TmV3RXhjZXB0aW9uIGlzIHBvc3NpYmxlIGhlcmUuIEJ1dCBwcm9iYWJseSBDTmV3RXhjZXB0aW9u IGlzIGNhdXNlZAotICAgLy8gYnkgZXJyb3IgaW4gZGF0YSBzdHJlYW0uCi0gfQotZGlmZiAtLWdp dCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9S YXIzRGVjb2Rlci5oCi1pbmRleCBjMTMwY2VjLi4yZjcyZDdkIDEwMDY0NAotLS0tIGEvQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0Rl Y29kZXIuaAotQEAgLTE5Miw2ICsxOTIsNyBAQCBjbGFzcyBDRGVjb2RlcjoKLSAgIFVJbnQzMiBf bGFzdEZpbHRlcjsKLSAKLSAgIGJvb2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBfZXJyb3JNb2RlOwot IAotICAgYm9vbCBfbHpNb2RlOwotICAgYm9vbCBfdW5zdXBwb3J0ZWRGaWx0ZXI7Ci1AQCAtMjAw LDYgKzIwMSw3IEBAIGNsYXNzIENEZWNvZGVyOgotICAgVUludDMyIFByZXZBbGlnbkNvdW50Owot IAotICAgYm9vbCBUYWJsZXNSZWFkOwotKyAgYm9vbCBUYWJsZXNPSzsKLSAKLSAgIENQcG1kNyBf cHBtZDsKLSAgIGludCBQcG1Fc2NDaGFyOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9wYXRj aGVzLzMwLUNWRS0yMDE4LTEwMTE1LnBhdGNoIGIvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzMwLUNW RS0yMDE4LTEwMTE1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDljNGJm ODFmMDAuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIw MTgtMTAxMTUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMTEgKzAsMCBAQAotRnJvbTogUm9i ZXJ0IEx1YmVyZGEgPHJvYmVydEBkZWJpYW4ub3JnPgotRGF0ZTogVHVlLCAyOSBNYXkgMjAxOCAy Mzo1OTowOSArMDIwMAotU3ViamVjdDogRml4IENWRS0yMDE4LTEwMTE1Ci0KLUFwcGx5ICJwYXRj aCIgdGFrZW4gZnJvbSBodHRwczovL2xhbmRhdmUuaW8vZmlsZXMvcGF0Y2hfN3ppcF9DVkUtMjAx OC0xMDExNS50eHQKLQotCi1CdWdzLURlYmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvODk3 Njc0Ci0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAgfCAxNiArKysrKysr KysrKy0tLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaCAgIHwgIDMgKystCi0g Q1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwIHwgMTcgKysrKysrKysrKysrKy0tLS0K LSBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oICAgfCAgMyArKy0KLSBDUFAvN3ppcC9D b21wcmVzcy9SYXIzRGVjb2Rlci5jcHAgfCAxOSArKysrKysrKysrKysrKystLS0tCi0gQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaCAgIHwgIDMgKystCi0gQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyNURlY29kZXIuY3BwIHwgIDggKysrKysrKysKLSBDUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVj b2Rlci5oICAgfCAgMSArCi0gOCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxNiBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVy LmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotaW5kZXggNjgwMzBjNy4u OGM4OTBjOCAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAot KysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3BwCi1AQCAtMjksNyArMjksNyBA QCBwdWJsaWM6Ci0gfTsKLSAqLwotIAotLUNEZWNvZGVyOjpDRGVjb2RlcigpOiBtX0lzU29saWQo ZmFsc2UpLCBfZXJyb3JNb2RlKGZhbHNlKSB7IH0KLStDRGVjb2Rlcjo6Q0RlY29kZXIoKTogX2lz U29saWQoZmFsc2UpLCBfc29saWRBbGxvd2VkKGZhbHNlKSwgX2Vycm9yTW9kZShmYWxzZSkgeyB9 Ci0gCi0gdm9pZCBDRGVjb2Rlcjo6SW5pdFN0cnVjdHVyZXMoKQotIHsKLUBAIC0zNDUsNyArMzQ1 LDcgQEAgdm9pZCBDRGVjb2Rlcjo6R2V0RmxhZ3NCdWYoKQotIAotIHZvaWQgQ0RlY29kZXI6Oklu aXREYXRhKCkKLSB7Ci0tICBpZiAoIW1fSXNTb2xpZCkKLSsgIGlmICghX2lzU29saWQpCi0gICB7 Ci0gICAgIEF2clBsY0IgPSBBdnJMbjEgPSBBdnJMbjIgPSBBdnJMbjMgPSBOdW1IdWYgPSBCdWY2 MCA9IDA7Ci0gICAgIEF2clBsYyA9IDB4MzUwMDsKLUBAIC0zOTEsNiArMzkxLDExIEBAIEhSRVNV TFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2Vx dWVudGlhbE91dFN0cmVhbSAqCi0gICBpZiAoaW5TaXplID09IE5VTEwgfHwgb3V0U2l6ZSA9PSBO VUxMKQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotIAotKyAgaWYgKF9pc1NvbGlkICYmICFf c29saWRBbGxvd2VkKQotKyAgICByZXR1cm4gU19GQUxTRTsKLSsKLSsgIF9zb2xpZEFsbG93ZWQg PSBmYWxzZTsKLSsKLSAgIGlmICghbV9PdXRXaW5kb3dTdHJlYW0uQ3JlYXRlKGtIaXN0b3J5U2l6 ZSkpCi0gICAgIHJldHVybiBFX09VVE9GTUVNT1JZOwotICAgaWYgKCFtX0luQml0U3RyZWFtLkNy ZWF0ZSgxIDw8IDIwKSkKLUBAIC0zOTgsMTMgKzQwMywxMyBAQCBIUkVTVUxUIENEZWNvZGVyOjpD b2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJl YW0gKgotIAotICAgbV9VbnBhY2tTaXplID0gKEludDY0KSpvdXRTaXplOwotICAgbV9PdXRXaW5k b3dTdHJlYW0uU2V0U3RyZWFtKG91dFN0cmVhbSk7Ci0tICBtX091dFdpbmRvd1N0cmVhbS5Jbml0 KG1fSXNTb2xpZCk7Ci0rICBtX091dFdpbmRvd1N0cmVhbS5Jbml0KF9pc1NvbGlkKTsKLSAgIG1f SW5CaXRTdHJlYW0uU2V0U3RyZWFtKGluU3RyZWFtKTsKLSAgIG1fSW5CaXRTdHJlYW0uSW5pdCgp OwotIAotICAgLy8gQ0NvZGVyUmVsZWFzZXIgY29kZXJSZWxlYXNlcih0aGlzKTsKLSAgIEluaXRE YXRhKCk7Ci0tICBpZiAoIW1fSXNTb2xpZCkKLSsgIGlmICghX2lzU29saWQpCi0gICB7Ci0gICAg IF9lcnJvck1vZGUgPSBmYWxzZTsKLSAgICAgSW5pdFN0cnVjdHVyZXMoKTsKLUBAIC00NzUsNiAr NDgwLDcgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAq aW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIH0KLSAgIGlmIChtX1VucGFja1Np emUgPCAwKQotICAgICByZXR1cm4gU19GQUxTRTsKLSsgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwot ICAgcmV0dXJuIG1fT3V0V2luZG93U3RyZWFtLkZsdXNoKCk7Ci0gfQotIAotQEAgLTQ5MSw3ICs0 OTcsNyBAQCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVzMihjb25z dCBCeXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLSB7Ci0gICBpZiAoc2l6ZSA8IDEpCi0gICAgIHJl dHVybiBFX0lOVkFMSURBUkc7Ci0tICBtX0lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsK LSsgIF9pc1NvbGlkID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0gICByZXR1cm4gU19PSzsKLSB9 Ci0gCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaCBiL0NQUC83 emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmgKLWluZGV4IDAxYjYwNmIuLjhhYmIzYTMgMTAwNjQ0 Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oCi0rKysgYi9DUFAvN3ppcC9D b21wcmVzcy9SYXIxRGVjb2Rlci5oCi1AQCAtMzgsNyArMzgsOCBAQCBwdWJsaWM6Ci0gICBVSW50 MzIgTGFzdExlbmd0aDsKLSAKLSAgIEludDY0IG1fVW5wYWNrU2l6ZTsKLS0gIGJvb2wgbV9Jc1Nv bGlkOwotKyAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wg X2Vycm9yTW9kZTsKLSAKLSAgIFVJbnQzMiBSZWFkQml0cyhpbnQgbnVtQml0cyk7Ci1kaWZmIC0t Z2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJl c3MvUmFyMkRlY29kZXIuY3BwCi1pbmRleCAwNTgwYzhkLi5iZThkODQyIDEwMDY0NAotLS0tIGEv Q1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi0rKysgYi9DUFAvN3ppcC9Db21wcmVz cy9SYXIyRGVjb2Rlci5jcHAKLUBAIC04MCw3ICs4MCw4IEBAIHN0YXRpYyBjb25zdCBVSW50MzIg a0hpc3RvcnlTaXplID0gMSA8PCAyMDsKLSBzdGF0aWMgY29uc3QgVUludDMyIGtXaW5kb3dSZXNl cnZTaXplID0gKDEgPDwgMjIpICsgMjU2OwotIAotIENEZWNvZGVyOjpDRGVjb2RlcigpOgotLSAg bV9Jc1NvbGlkKGZhbHNlKSwKLSsgIF9pc1NvbGlkKGZhbHNlKSwKLSsgIF9zb2xpZEFsbG93ZWQo ZmFsc2UpLAotICAgbV9UYWJsZXNPSyhmYWxzZSkKLSB7Ci0gfQotQEAgLTMyMCw2ICszMjEsMTAg QEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJl YW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIGlmIChpblNpemUgPT0gTlVMTCB8fCBvdXRT aXplID09IE5VTEwpCi0gICAgIHJldHVybiBFX0lOVkFMSURBUkc7Ci0gCi0rICBpZiAoX2lzU29s aWQgJiYgIV9zb2xpZEFsbG93ZWQpCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKyAgX3NvbGlkQWxs b3dlZCA9IGZhbHNlOwotKwotICAgaWYgKCFtX091dFdpbmRvd1N0cmVhbS5DcmVhdGUoa0hpc3Rv cnlTaXplKSkKLSAgICAgcmV0dXJuIEVfT1VUT0ZNRU1PUlk7Ci0gICBpZiAoIW1fSW5CaXRTdHJl YW0uQ3JlYXRlKDEgPDwgMjApKQotQEAgLTMzMCwxMiArMzM1LDEyIEBAIEhSRVNVTFQgQ0RlY29k ZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91 dFN0cmVhbSAqCi0gICBVSW50NjQgcG9zID0gMCwgdW5QYWNrU2l6ZSA9ICpvdXRTaXplOwotICAg Ci0gICBtX091dFdpbmRvd1N0cmVhbS5TZXRTdHJlYW0ob3V0U3RyZWFtKTsKLS0gIG1fT3V0V2lu ZG93U3RyZWFtLkluaXQobV9Jc1NvbGlkKTsKLSsgIG1fT3V0V2luZG93U3RyZWFtLkluaXQoX2lz U29saWQpOwotICAgbV9JbkJpdFN0cmVhbS5TZXRTdHJlYW0oaW5TdHJlYW0pOwotICAgbV9JbkJp dFN0cmVhbS5Jbml0KCk7Ci0gCi0gICAvLyBDQ29kZXJSZWxlYXNlciBjb2RlclJlbGVhc2VyKHRo aXMpOwotLSAgaWYgKCFtX0lzU29saWQpCi0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBJ bml0U3RydWN0dXJlcygpOwotICAgICBpZiAodW5QYWNrU2l6ZSA9PSAwKQotQEAgLTM0Myw2ICsz NDgsNyBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICpp blN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgICAgIGlmIChtX0luQml0U3RyZWFt LkdldFByb2Nlc3NlZFNpemUoKSArIDIgPD0gbV9QYWNrU2l6ZSkgLy8gdGVzdCBpdDogcHJvYmFi bHkgaW5jb3JyZWN0OwotICAgICAgICAgaWYgKCFSZWFkVGFibGVzKCkpCi0gICAgICAgICAgIHJl dHVybiBTX0ZBTFNFOwotKyAgICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAgICAgIHJldHVy biBTX09LOwotICAgICB9Ci0gICAgIGlmICghUmVhZFRhYmxlcygpKQotQEAgLTM4Niw2ICszOTIs OSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0 cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotIAotICAgaWYgKCFSZWFkTGFzdFRhYmxlcygp KQotICAgICByZXR1cm4gU19GQUxTRTsKLSsKLSsgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotKwot ICAgcmV0dXJuIG1fT3V0V2luZG93U3RyZWFtLkZsdXNoKCk7Ci0gfQotIAotQEAgLTQwMiw3ICs0 MTEsNyBAQCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVzMihjb25z dCBCeXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLSB7Ci0gICBpZiAoc2l6ZSA8IDEpCi0gICAgIHJl dHVybiBFX0lOVkFMSURBUkc7Ci0tICBtX0lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsK LSsgIF9pc1NvbGlkID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0gICByZXR1cm4gU19PSzsKLSB9 Ci0gCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaCBiL0NQUC83 emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLWluZGV4IDBlOTAwNWYuLjM3MGJjZTIgMTAwNjQ0 Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi0rKysgYi9DUFAvN3ppcC9D b21wcmVzcy9SYXIyRGVjb2Rlci5oCi1AQCAtMTM4LDcgKzEzOCw4IEBAIGNsYXNzIENEZWNvZGVy IDoKLSAgIEJ5dGUgbV9MYXN0TGV2ZWxzW2tNYXhUYWJsZVNpemVdOwotIAotICAgVUludDY0IG1f UGFja1NpemU7Ci0tICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgX2lzU29saWQ7Ci0rICBib29s IF9zb2xpZEFsbG93ZWQ7Ci0gICBib29sIG1fVGFibGVzT0s7Ci0gCi0gICB2b2lkIEluaXRTdHJ1 Y3R1cmVzKCk7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3Bw IGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi1pbmRleCA2Y2I4YTZhLi43Yjg1 ODMzIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi0rKysg Yi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLUBAIC05Miw3ICs5Miw4IEBAIENE ZWNvZGVyOjpDRGVjb2RlcigpOgotICAgX3dyaXR0ZW5GaWxlU2l6ZSgwKSwKLSAgIF92bURhdGEo MCksCi0gICBfdm1Db2RlKDApLAotLSAgbV9Jc1NvbGlkKGZhbHNlKSwKLSsgIF9pc1NvbGlkKGZh bHNlKSwKLSsgIF9zb2xpZEFsbG93ZWQoZmFsc2UpLAotICAgX2Vycm9yTW9kZShmYWxzZSkKLSB7 Ci0gICBQcG1kN19Db25zdHJ1Y3QoJl9wcG1kKTsKLUBAIC04MjEsNyArODIyLDcgQEAgSFJFU1VM VCBDRGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSB7 Ci0gICBfd3JpdHRlbkZpbGVTaXplID0gMDsKLSAgIF91bnN1cHBvcnRlZEZpbHRlciA9IGZhbHNl OwotLSAgaWYgKCFtX0lzU29saWQpCi0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBfbHpT aXplID0gMDsKLSAgICAgX3dpblBvcyA9IDA7Ci1AQCAtODQwLDEyICs4NDEsMTUgQEAgSFJFU1VM VCBDRGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSAg IGlmIChfZXJyb3JNb2RlKQotICAgICByZXR1cm4gU19GQUxTRTsKLSAKLS0gIGlmICghbV9Jc1Nv bGlkIHx8ICFUYWJsZXNSZWFkKQotKyAgaWYgKCFfaXNTb2xpZCB8fCAhVGFibGVzUmVhZCkKLSAg IHsKLSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLSAgICAgUklOT0soUmVhZFRhYmxlcyhr ZWVwRGVjb21wcmVzc2luZykpOwotICAgICBpZiAoIWtlZXBEZWNvbXByZXNzaW5nKQotKyAgICB7 Ci0rICAgICAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0gICAgICAgcmV0dXJuIFNfT0s7Ci0rICAg IH0KLSAgIH0KLSAKLSAgIGZvciAoOzspCi1AQCAtODcwLDYgKzg3NCw5IEBAIEhSRVNVTFQgQ0Rl Y29kZXI6OkNvZGVSZWFsKElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICAgIGlm ICgha2VlcERlY29tcHJlc3NpbmcpCi0gICAgICAgYnJlYWs7Ci0gICB9Ci0rCi0rICBfc29saWRB bGxvd2VkID0gdHJ1ZTsKLSsKLSAgIFJJTk9LKFdyaXRlQnVmKCkpOwotICAgVUludDY0IHBhY2tT aXplID0gbV9JbkJpdFN0cmVhbS5CaXREZWNvZGVyLkdldFByb2Nlc3NlZFNpemUoKTsKLSAgIFJJ Tk9LKHByb2dyZXNzLT5TZXRSYXRpb0luZm8oJnBhY2tTaXplLCAmX3dyaXR0ZW5GaWxlU2l6ZSkp OwotQEAgLTg5MCw2ICs4OTcsMTAgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpDb2RlKElTZXF1 ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbQotICAgICBpZiAo IWluU2l6ZSkKLSAgICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotIAotKyAgICBpZiAoX2lzU29s aWQgJiYgIV9zb2xpZEFsbG93ZWQpCi0rICAgICAgcmV0dXJuIFNfRkFMU0U7Ci0rICAgIF9zb2xp ZEFsbG93ZWQgPSBmYWxzZTsKLSsKLSAgICAgaWYgKCFfdm1EYXRhKQotICAgICB7Ci0gICAgICAg X3ZtRGF0YSA9IChCeXRlICopOjpNaWRBbGxvYyhrVm1EYXRhU2l6ZU1heCArIGtWbUNvZGVTaXpl TWF4KTsKLUBAIC05MjgsNyArOTM5LDcgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpTZXREZWNv ZGVyUHJvcGVydGllczIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNpemUpCi0gewotICAgaWYg KHNpemUgPCAxKQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotLSAgbV9Jc1NvbGlkID0gKChk YXRhWzBdICYgMSkgIT0gMCk7Ci0rICBfaXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwot ICAgcmV0dXJuIFNfT0s7Ci0gfQotIAotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1Jh cjNEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oCi1pbmRleCAyZjcy ZDdkLi4zMmM4OTQzIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIu aAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotQEAgLTE5MSw3ICsxOTEs OCBAQCBjbGFzcyBDRGVjb2RlcjoKLSAgIENSZWNvcmRWZWN0b3I8Q1RlbXBGaWx0ZXIgKj4gIF90 ZW1wRmlsdGVyczsKLSAgIFVJbnQzMiBfbGFzdEZpbHRlcjsKLSAKLS0gIGJvb2wgbV9Jc1NvbGlk OwotKyAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgX2Vy cm9yTW9kZTsKLSAKLSAgIGJvb2wgX2x6TW9kZTsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21w cmVzcy9SYXI1RGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5jcHAK LWluZGV4IGRjODgzMGYuLmE4MjZkNWEgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9S YXI1RGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmNwcAot QEAgLTcyLDYgKzcyLDcgQEAgQ0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0gICAgIF93cml0dGVuRmls ZVNpemUoMCksCi0gICAgIF9kaWN0U2l6ZUxvZygwKSwKLSAgICAgX2lzU29saWQoZmFsc2UpLAot KyAgICBfc29saWRBbGxvd2VkKGZhbHNlKSwKLSAgICAgX3dhc0luaXQoZmFsc2UpLAotICAgICBf aW5wdXRCdWYoTlVMTCkKLSB7Ci1AQCAtODAxLDcgKzgwMiwxMCBAQCBIUkVTVUxUIENEZWNvZGVy OjpDb2RlUmVhbCgpCi0gICAqLwotIAotICAgaWYgKHJlcyA9PSBTX09LKQotKyAgewotKyAgICBf c29saWRBbGxvd2VkID0gdHJ1ZTsKLSAgICAgcmVzID0gcmVzMjsKLSsgIH0KLSAgICAgIAotICAg aWYgKHJlcyA9PSBTX09LICYmIF91bnBhY2tTaXplX0RlZmluZWQgJiYgX3dyaXR0ZW5GaWxlU2l6 ZSAhPSBfdW5wYWNrU2l6ZSkKLSAgICAgcmV0dXJuIFNfRkFMU0U7Ci1AQCAtODIxLDYgKzgyNSwx MCBAQCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OkNvZGUoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5T dHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtCi0gewotICAgdHJ5Ci0gICB7Ci0rICAgIGlmIChf aXNTb2xpZCAmJiAhX3NvbGlkQWxsb3dlZCkKLSsgICAgICByZXR1cm4gU19GQUxTRTsKLSsgICAg X3NvbGlkQWxsb3dlZCA9IGZhbHNlOwotKwotICAgICBpZiAoX2RpY3RTaXplTG9nID49IHNpemVv ZihzaXplX3QpICogOCkKLSAgICAgICByZXR1cm4gRV9OT1RJTVBMOwotIAotZGlmZiAtLWdpdCBh L0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXI1 RGVjb2Rlci5oCi1pbmRleCBiMGE0ZGQxLi4zZGI1MDE4IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyNURlY29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29k ZXIuaAotQEAgLTI3MSw2ICsyNzEsNyBAQCBjbGFzcyBDRGVjb2RlcjoKLSAgIEJ5dGUgX2RpY3RT aXplTG9nOwotICAgYm9vbCBfdGFibGVXYXNGaWxsZWQ7Ci0gICBib29sIF9pc1NvbGlkOwotKyAg Ym9vbCBfc29saWRBbGxvd2VkOwotICAgYm9vbCBfd2FzSW5pdDsKLSAKLSAgIFVJbnQzMiBfcmVw c1trTnVtUmVwc107CmRpZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYt OTI5Ni5wYXRjaCBiL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNi05Mjk2LnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmJiMzM3NzM3ZTUuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDEyICswLDAgQEAKLS0tLSBhL0NQUC83emlwL0FyY2hpdmUvN3ovN3pJbi5jcHAJ U3VuIE5vdiAyMCAwOToyOTo0MSAyMDE2Ci0rKysgYi9DUFAvN3ppcC9BcmNoaXZlLzd6Lzd6SW4u Y3BwCVN1biBOb3YgMjAgMDk6MzE6MjIgMjAxNgotQEAgLTEwOTcsNyArMTA5Nyw4IEBAIEhSRVNV TFQgQ0luQXJjaGl2ZTo6UmVhZEFuZERlY29kZVBhY2tlZFN0cmVhbXMoCi0gICAgICAgaWYgKENy Y0NhbGMoZGF0YSwgdW5wYWNrU2l6ZSkgIT0gZm9sZGVycy5Gb2xkZXJDUkNzLlZhbHNbaV0pCi0g ICAgICAgICBUaHJvd0luY29ycmVjdCgpOwotICAgfQotLSAgSGVhZGVyc1NpemUgKz0gZm9sZGVy cy5QYWNrUG9zaXRpb25zW2ZvbGRlcnMuTnVtUGFja1N0cmVhbXNdOwotKyAgaWYgKGZvbGRlcnMu UGFja1Bvc2l0aW9ucykKLSsgICAgICBIZWFkZXJzU2l6ZSArPSBmb2xkZXJzLlBhY2tQb3NpdGlv bnNbZm9sZGVycy5OdW1QYWNrU3RyZWFtc107Ci0gICByZXR1cm4gU19PSzsKLSB9Ci0gCmRpZmYg LS1naXQgYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2ggYi9zcmNw a2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDlhODIwYWY3MzA2Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcDd6 aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICsw LDAgQEAKLUZyb206ID0/dXRmLTg/cT9BbnRvaW5lX0JlYXVwcj1DMz1BOT89IDxhbmFyY2F0QGRl Ymlhbi5vcmc+Ci1EYXRlOiBTdW4sIDI4IEphbiAyMDE4IDIxOjE5OjUwICswMTAwCi1TdWJqZWN0 OiBiYWNrcG9ydCBvZiB0aGUgQ1ZFLTIwMTctMTc5NjkgZml4IGZyb20gN3ppcCAxOC4wMC1iZXRh Ci0KLS0tLQotIENQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwIHwgNyArKysrKyst Ci0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZm IC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9D b21wcmVzcy9TaHJpbmtEZWNvZGVyLmNwcAotaW5kZXggODBiN2U2Ny4uNGFjZGNlNSAxMDA2NDQK LS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwCi0rKysgYi9DUFAvN3pp cC9Db21wcmVzcy9TaHJpbmtEZWNvZGVyLmNwcAotQEAgLTEyMSw3ICsxMjEsMTIgQEAgSFJFU1VM VCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1 ZW50aWFsT3V0U3RyZWFtICoKLSAgICAgewotICAgICAgIF9zdGFja1tpKytdID0gX3N1ZmZpeGVz W2N1cl07Ci0gICAgICAgY3VyID0gX3BhcmVudHNbY3VyXTsKLS0gICAgfQotKyAgICAgIGlmIChp ID49IGtOdW1JdGVtcykKLSsgICAgICAgIGJyZWFrOwotKyAgICAgfQotKwotKyAgICBpZiAoaSA+ PSBrTnVtSXRlbXMpCi0rICAgICAgYnJlYWs7Ci0gICAgIAotICAgICBfc3RhY2tbaSsrXSA9IChC eXRlKWN1cjsKLSAgICAgbGFzdENoYXIyID0gKEJ5dGUpY3VyOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wN3ppcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcDd6aXAvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDY0MmUyNGFkYWY1Mi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv cDd6aXAvdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0jIFRlbXBsYXRl IGZpbGUgZm9yICdwN3ppcCcKLXBrZ25hbWU9cDd6aXAKLXZlcnNpb249MTYuMDIKLXJldmlzaW9u PTUKLXdya3NyYz0iJHtwa2duYW1lfV8ke3ZlcnNpb259IgotaG9zdG1ha2VkZXBlbmRzPSJ5YXNt IG5hc20iCi1zaG9ydF9kZXNjPSJDb21tYW5kLWxpbmUgdmVyc2lvbiBvZiB0aGUgN3ppcCBjb21w cmVzc2VkIGZpbGUgYXJjaGl2ZSIKLW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxp bnV4Lm9yZz4iCi1saWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwOi8v cDd6aXAuc291cmNlZm9yZ2UubmV0LyIKLWRpc3RmaWxlcz0iJHtTT1VSQ0VGT1JHRV9TSVRFfS8k e3BrZ25hbWV9LyR7cGtnbmFtZX1fJHt2ZXJzaW9ufV9zcmNfYWxsLnRhci5iejIiCi1jaGVja3N1 bT01ZWIyMGFjMGUyOTQ0ZjZjYjljMmQ1MWRkNmM0NTE4OTQxYzE4NTM0N2Q0MDg5ZWE4OTA4N2Zm ZGQ2ZTIzNDFmCi0KLUNYWEZMQUdTPSItV25vLW5hcnJvd2luZyIKLQotZG9fY29uZmlndXJlKCkg ewotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlpNjg2KikgY3AgbWFrZWZpbGUu bGludXhfeDg2X2FzbV9nY2NfNC5YIG1ha2VmaWxlLm1hY2hpbmU7OwotCQl4ODZfNjQqKSBjcCBt YWtlZmlsZS5saW51eF9hbWQ2NF9hc20gbWFrZWZpbGUubWFjaGluZTs7Ci0JCSopIGNwIG1ha2Vm aWxlLmxpbnV4X2FueV9jcHVfZ2NjXzQuWCBtYWtlZmlsZS5tYWNoaW5lOzsKLQllc2FjCi0Jc2Vk IC1lICJzLGcrKywke0NYWH0sIiAtaSBtYWtlZmlsZS5tYWNoaW5lCi0Jc2VkIC1lICJzLGdjYywk e0NDfSwiIC1pIG1ha2VmaWxlLm1hY2hpbmUKLX0KLWRvX2J1aWxkKCkgewotCW1ha2UgYWxsMyBP UFRGTEFHUz0iJENYWEZMQUdTIiAke21ha2Vqb2JzfQotfQotZG9faW5zdGFsbCgpIHsKLQltYWtl IGluc3RhbGwgREVTVF9ESVI9IiR7REVTVERJUn0iIERFU1RfSE9NRT0iL3VzciIgXAotCQlERVNU X01BTj0iL3Vzci9zaGFyZS9tYW4iIFwKLQkJREVTVF9TSEFSRV9ET0M9Ii91c3Ivc2hhcmUvZG9j LyR7cGtnbmFtZX0iCi0JZmluZCAke0RFU1RESVJ9L3Vzci9zaGFyZS9kb2MvJHBrZ25hbWUgLXR5 cGUgZCAtZXhlYyBjaG1vZCA3NTUge30gXDsKLQlta2RpciAtcCAke0RFU1RESVJ9L3Vzci9zaGFy ZS9saWNlbnNlcy9wN3ppcC8KLQltdiAke0RFU1RESVJ9L3Vzci9zaGFyZS9kb2MvcDd6aXAvRE9D L2NvcHlpbmcudHh0IFwKLQkgICAke0RFU1RESVJ9L3Vzci9zaGFyZS9saWNlbnNlcy9wN3ppcC9M SUNFTlNFCi19Ci0KLXA3emlwLXVucmFyX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIFJB UiBzdXBwb3J0IgotCWxpY2Vuc2U9ImN1c3RvbTpmcmVld2FyZSIKLQlkZXBlbmRzPSIke3NvdXJj ZXBrZ30tJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlyZXBvc2l0b3J5PW5vbmZyZWUKLQlwa2df aW5zdGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9wN3ppcC9Db2RlY3MvUmFyLnNvCi0JCXZsaWNl bnNlIERPQy91blJhckxpY2Vuc2UudHh0IExJQ0VOU0UKLQl9Ci19CmRpZmYgLS1naXQgYS9zcmNw a2dzL3A3emlwL3VwZGF0ZSBiL3NyY3BrZ3MvcDd6aXAvdXBkYXRlCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA4NGVkNDZkNzRhMWEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3 emlwL3VwZGF0ZQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXBhdHRlcm49J3A3emlwX1xL Wy5cZF0rJwo= --===============2800820583326168452==--