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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 693 invoked from network); 15 Jan 2021 12:07:45 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Jan 2021 12:07:45 -0000 Content-Type: multipart/mixed; boundary="===============8845889006747796483==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_p7zip=3A_update_to_17=2E03?= To: ml@inbox.vuxu.org From: biopsin Reply-to: ml@inbox.vuxu.org Message-ID: Date: Fri, 15 Jan 2021 13:07:43 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============8845889006747796483== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IGJpb3BzaW4gYWdhaW5zdCBtYXN0ZXIgb24g dGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL2Jpb3BzaW4v dm9pZC1wYWNrYWdlcyBwYXRjaC0yCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8yNzk1MwoKcDd6aXA6IHVwZGF0ZSB0byAxNy4wMwpTd2l0Y2ggZGlzdGZp bGVzIHRvIGZvcmsgQCBodHRwczovL2dpdGh1Yi5jb20vamluZmVpaGFuNTcvcDd6aXANCkJlY29t ZSBtYWludGFpbmVyDQpDaGFuZ2UgYnVpbGQgb3B0aW9uIHRvICJhbGwyIiBzaW5jZSAiYWxsMyIg aW5jbHVkZXMgIjd6ciIgd2hpY2ggaXMgYSBsaWdodCB2ZXJzaW9uIG9mIGluY2x1ZGVkICI3emEi DQoNCnJlbW92ZSBwYXRjaGVzDQphZGQgY2hhbmdlbG9nDQoNCnRlc3RlZCBpbnN0YWxsIDogeDg2 XzY0Ly1tdXNsCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvMjc5NTMucGF0Y2ggaXMgYXR0YWNoZWQ= --===============8845889006747796483== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-patch-2-27953.patch" RnJvbSBlYWVjMmJhNzMxZWQ5MWEwNGJlZmI4NWY5MGYwMmYwMDI3NTgwM2QwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBiaW9wc2luIDw2MDAyOTk4OStiaW9wc2luQHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAxNSBKYW4gMjAyMSAxMjo0Mjo0NyArMDEwMApTdWJq ZWN0OiBbUEFUQ0hdIHA3emlwOiB1cGRhdGUgdG8gMTcuMDMKClN3aXRjaCBkaXN0ZmlsZXMgdG8g Zm9yayBAIGh0dHBzOi8vZ2l0aHViLmNvbS9qaW5mZWloYW41Ny9wN3ppcApCZWNvbWUgbWFpbnRh aW5lcgpDaGFuZ2UgYnVpbGQgb3B0aW9uIHRvICJhbGwyIiBzaW5jZSBhbGwzIGluY2x1ZGVzIDd6 ciB3aGljaCBpcyBhIGxpZ2h0IHZlcnNpb24gb2YgN3phCgpyZW1vdmUgcGF0Y2hlcwoKYWRkIGNo YW5nZWxvZwotLS0KIHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2LnBhdGNo ICB8IDIyMSAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgt MTAxMTUucGF0Y2ggfCAzMTEgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3A3emlwL3BhdGNo ZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaCAgICAgfCAgMTIgLQogc3JjcGtncy9wN3ppcC9wYXRjaGVz L0NWRS0yMDE3LTE3OTY5LnBhdGNoICAgIHwgIDI2IC0tCiBzcmNwa2dzL3A3emlwL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCA1NzcgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9w N3ppcC9wYXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2LnBhdGNo IGIvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5MzVlYzM2NTdiLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZFLTIwMTgtNTk5Ni5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDIyMSArMCwwIEBACi1Gcm9tOiBSb2JlcnQgTHViZXJkYSA8cm9iZXJ0QGRlYmlhbi5vcmc+ Ci1EYXRlOiBTdW4sIDI4IEphbiAyMDE4IDIzOjQ3OjQwICswMTAwCi1TdWJqZWN0OiBDVkUtMjAx OC01OTk2Ci0KLUhvcGVmdWxseSBmaXggTWVtb3J5IENvcnJ1cHRpb25zIHZpYSBSQVIgUFBNZCAo Q1ZFLTIwMTgtNTk5NikgYnkKLWFwcGx5aW5nIGEgZmV3IGNoYW5nZXMgZnJvbSA3WmlwIDE4LjAw LWJldGEuCi0KLUJ1Zy1EZWJpYW46IGh0dHBzOi8vYnVncy5kZWJpYW4ub3JnLyM4ODgzMTQKLS0t LQotIENQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcCB8IDEzICsrKysrKysrKy0tLS0K LSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oICAgfCAgMSArCi0gQ1BQLzd6aXAvQ29t cHJlc3MvUmFyMkRlY29kZXIuY3BwIHwgMTAgKysrKysrKysrLQotIENQUC83emlwL0NvbXByZXNz L1JhcjJEZWNvZGVyLmggICB8ICAxICsKLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5j cHAgfCAyMyArKysrKysrKysrKysrKysrKysrKy0tLQotIENQUC83emlwL0NvbXByZXNzL1JhcjNE ZWNvZGVyLmggICB8ICAyICsrCi0gNiBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNlcnRpb25zKCspLCA4 IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29k ZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3BwCi1pbmRleCAxYWFlZGNj Li42ODAzMGM3IDEwMDY0NAotLS0tIENQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAot KysrIENQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotQEAgLTI5LDcgKzI5LDcgQEAg cHVibGljOgotIH07Ci0gKi8KLSAKLS1DRGVjb2Rlcjo6Q0RlY29kZXIoKTogbV9Jc1NvbGlkKGZh bHNlKSB7IH0KLStDRGVjb2Rlcjo6Q0RlY29kZXIoKTogbV9Jc1NvbGlkKGZhbHNlKSwgX2Vycm9y TW9kZShmYWxzZSkgeyB9Ci0gCi0gdm9pZCBDRGVjb2Rlcjo6SW5pdFN0cnVjdHVyZXMoKQotIHsK LUBAIC00MDYsOSArNDA2LDE0IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50 aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gICBJbml0RGF0 YSgpOwotICAgaWYgKCFtX0lzU29saWQpCi0gICB7Ci0rICAgIF9lcnJvck1vZGUgPSBmYWxzZTsK LSAgICAgSW5pdFN0cnVjdHVyZXMoKTsKLSAgICAgSW5pdEh1ZmYoKTsKLSAgIH0KLSsKLSsgIGlm IChfZXJyb3JNb2RlKQotKyAgICByZXR1cm4gU19GQUxTRTsKLSsKLSAgIGlmIChtX1VucGFja1Np emUgPiAwKQotICAgewotICAgICBHZXRGbGFnc0J1ZigpOwotQEAgLTQ3Nyw5ICs0ODIsOSBAQCBT VERNRVRIT0RJTVAgQ0RlY29kZXI6OkNvZGUoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0s IElTZXF1ZW50aWFsT3V0U3RyZWFtCi0gICAgIGNvbnN0IFVJbnQ2NCAqaW5TaXplLCBjb25zdCBV SW50NjQgKm91dFNpemUsIElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gewotICAg dHJ5IHsgcmV0dXJuIENvZGVSZWFsKGluU3RyZWFtLCBvdXRTdHJlYW0sIGluU2l6ZSwgb3V0U2l6 ZSwgcHJvZ3Jlc3MpOyB9Ci0tICBjYXRjaChjb25zdCBDSW5CdWZmZXJFeGNlcHRpb24gJmUpIHsg cmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaChjb25zdCBDTHpPdXRXaW5kb3dFeGNlcHRp b24gJmUpIHsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaCguLi4pIHsgcmV0dXJuIFNf RkFMU0U7IH0KLSsgIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgeyBfZXJyb3JN b2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0rICBjYXRjaChjb25zdCBDTHpPdXRX aW5kb3dFeGNlcHRpb24gJmUpIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJldHVybiBlLkVycm9yQ29k ZTsgfQotKyAgY2F0Y2goLi4uKSB7IF9lcnJvck1vZGUgPSB0cnVlOyByZXR1cm4gU19GQUxTRTsg fQotIH0KLSAKLSBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVzMihj b25zdCBCeXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21w cmVzcy9SYXIxRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotaW5k ZXggNjMwZjA4OS4uMDFiNjA2YiAxMDA2NDQKLS0tLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVj b2Rlci5oCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotQEAgLTM5LDYgKzM5 LDcgQEAgcHVibGljOgotIAotICAgSW50NjQgbV9VbnBhY2tTaXplOwotICAgYm9vbCBtX0lzU29s aWQ7Ci0rICBib29sIF9lcnJvck1vZGU7Ci0gCi0gICBVSW50MzIgUmVhZEJpdHMoaW50IG51bUJp dHMpOwotICAgSFJFU1VMVCBDb3B5QmxvY2soVUludDMyIGRpc3RhbmNlLCBVSW50MzIgbGVuKTsK LWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAgYi9DUFAvN3pp cC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAKLWluZGV4IGIzZjJiNGIuLjA1ODBjOGQgMTAwNjQ0 Ci0tLS0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi0rKysgQ1BQLzd6aXAvQ29t cHJlc3MvUmFyMkRlY29kZXIuY3BwCi1AQCAtODAsNyArODAsOCBAQCBzdGF0aWMgY29uc3QgVUlu dDMyIGtIaXN0b3J5U2l6ZSA9IDEgPDwgMjA7Ci0gc3RhdGljIGNvbnN0IFVJbnQzMiBrV2luZG93 UmVzZXJ2U2l6ZSA9ICgxIDw8IDIyKSArIDI1NjsKLSAKLSBDRGVjb2Rlcjo6Q0RlY29kZXIoKToK LS0gIG1fSXNTb2xpZChmYWxzZSkKLSsgIG1fSXNTb2xpZChmYWxzZSksCi0rICBtX1RhYmxlc09L KGZhbHNlKQotIHsKLSB9Ci0gCi1AQCAtMTAwLDYgKzEwMSw4IEBAIFVJbnQzMiBDRGVjb2Rlcjo6 UmVhZEJpdHModW5zaWduZWQgbnVtQml0cykgeyByZXR1cm4gbV9JbkJpdFN0cmVhbS5SZWFkQml0 cyhudW1CCi0gCi0gYm9vbCBDRGVjb2Rlcjo6UmVhZFRhYmxlcyh2b2lkKQotIHsKLSsgIG1fVGFi bGVzT0sgPSBmYWxzZTsKLSsKLSAgIEJ5dGUgbGV2ZWxMZXZlbHNba0xldmVsVGFibGVTaXplXTsK LSAgIEJ5dGUgbmV3TGV2ZWxzW2tNYXhUYWJsZVNpemVdOwotICAgbV9BdWRpb01vZGUgPSAoUmVh ZEJpdHMoMSkgPT0gMSk7Ci1AQCAtMTcwLDYgKzE3Myw4IEBAIGJvb2wgQ0RlY29kZXI6OlJlYWRU YWJsZXModm9pZCkKLSAgIH0KLSAgIAotICAgbWVtY3B5KG1fTGFzdExldmVscywgbmV3TGV2ZWxz LCBrTWF4VGFibGVTaXplKTsKLSsgIG1fVGFibGVzT0sgPSB0cnVlOwotKwotICAgcmV0dXJuIHRy dWU7Ci0gfQotIAotQEAgLTM0NCw2ICszNDksOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVh bChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgot ICAgICAgIHJldHVybiBTX0ZBTFNFOwotICAgfQotIAotKyAgaWYgKCFtX1RhYmxlc09LKQotKyAg ICByZXR1cm4gU19GQUxTRTsKLSsKLSAgIFVJbnQ2NCBzdGFydFBvcyA9IG1fT3V0V2luZG93U3Ry ZWFtLkdldFByb2Nlc3NlZFNpemUoKTsKLSAgIHdoaWxlIChwb3MgPCB1blBhY2tTaXplKQotICAg ewotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmggYi9DUFAvN3pp cC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi1pbmRleCAzYTA1MzVjLi4wZTkwMDVmIDEwMDY0NAot LS0tIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLSsrKyBDUFAvN3ppcC9Db21wcmVz cy9SYXIyRGVjb2Rlci5oCi1AQCAtMTM5LDYgKzEzOSw3IEBAIGNsYXNzIENEZWNvZGVyIDoKLSAK LSAgIFVJbnQ2NCBtX1BhY2tTaXplOwotICAgYm9vbCBtX0lzU29saWQ7Ci0rICBib29sIG1fVGFi bGVzT0s7Ci0gCi0gICB2b2lkIEluaXRTdHJ1Y3R1cmVzKCk7Ci0gICBVSW50MzIgUmVhZEJpdHMo dW5zaWduZWQgbnVtQml0cyk7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0Rl Y29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi1pbmRleCAzYmYy NTEzLi42Y2I4YTZhIDEwMDY0NAotLS0tIENQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNw cAotKysrIENQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcAotQEAgLTkyLDcgKzkyLDgg QEAgQ0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0gICBfd3JpdHRlbkZpbGVTaXplKDApLAotICAgX3Zt RGF0YSgwKSwKLSAgIF92bUNvZGUoMCksCi0tICBtX0lzU29saWQoZmFsc2UpCi0rICBtX0lzU29s aWQoZmFsc2UpLAotKyAgX2Vycm9yTW9kZShmYWxzZSkKLSB7Ci0gICBQcG1kN19Db25zdHJ1Y3Qo Jl9wcG1kKTsKLSB9Ci1AQCAtNTQ1LDYgKzU0Niw5IEBAIEhSRVNVTFQgQ0RlY29kZXI6OlJlYWRU YWJsZXMoYm9vbCAma2VlcERlY29tcHJlc3NpbmcpCi0gICAgIHJldHVybiBJbml0UFBNKCk7Ci0g ICB9Ci0gCi0rICBUYWJsZXNSZWFkID0gZmFsc2U7Ci0rICBUYWJsZXNPSyA9IGZhbHNlOwotKwot ICAgX2x6TW9kZSA9IHRydWU7Ci0gICBQcmV2QWxpZ25CaXRzID0gMDsKLSAgIFByZXZBbGlnbkNv dW50ID0gMDsKLUBAIC02MDYsNiArNjEwLDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6UmVhZFRhYmxl cyhib29sICZrZWVwRGVjb21wcmVzc2luZykKLSAgICAgICB9Ci0gICAgIH0KLSAgIH0KLSsgIGlm IChJbnB1dEVvZkVycm9yKCkpCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKwotICAgVGFibGVzUmVh ZCA9IHRydWU7Ci0gCi0gICAvLyBvcmlnaW5hbCBjb2RlIGhhcyBjaGVjayBoZXJlOgotQEAgLTYy Myw2ICs2MzAsOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpSZWFkVGFibGVzKGJvb2wgJmtlZXBEZWNv bXByZXNzaW5nKQotICAgUklGKG1fTGVuRGVjb2Rlci5CdWlsZCgmbmV3TGV2ZWxzW2tNYWluVGFi bGVTaXplICsga0Rpc3RUYWJsZVNpemUgKyBrQWxpZ25UYWJsZVNpemVdKSk7Ci0gCi0gICBtZW1j cHkobV9MYXN0TGV2ZWxzLCBuZXdMZXZlbHMsIGtUYWJsZXNTaXplc1N1bSk7Ci0rCi0rICBUYWJs ZXNPSyA9IHRydWU7Ci0rCi0gICByZXR1cm4gU19PSzsKLSB9Ci0gCi1AQCAtODI0LDcgKzgzNCwx MiBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJlc3NQcm9ncmVzc0luZm8gKnBy b2dyZXNzKQotICAgICBQcG1Fc2NDaGFyID0gMjsKLSAgICAgUHBtRXJyb3IgPSB0cnVlOwotICAg ICBJbml0RmlsdGVycygpOwotKyAgICBfZXJyb3JNb2RlID0gZmFsc2U7Ci0gICB9Ci0rCi0rICBp ZiAoX2Vycm9yTW9kZSkKLSsgICAgcmV0dXJuIFNfRkFMU0U7Ci0rCi0gICBpZiAoIW1fSXNTb2xp ZCB8fCAhVGFibGVzUmVhZCkKLSAgIHsKLSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLUBA IC04MzgsNiArODUzLDggQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJv Z3Jlc3NJbmZvICpwcm9ncmVzcykKLSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLSAgICAg aWYgKF9sek1vZGUpCi0gICAgIHsKLSsgICAgICBpZiAoIVRhYmxlc09LKQotKyAgICAgICAgcmV0 dXJuIFNfRkFMU0U7Ci0gICAgICAgUklOT0soRGVjb2RlTFooa2VlcERlY29tcHJlc3NpbmcpKQot ICAgICB9Ci0gICAgIGVsc2UKLUBAIC05MDEsOCArOTE4LDggQEAgU1RETUVUSE9ESU1QIENEZWNv ZGVyOjpDb2RlKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0 cmVhbQotICAgICBfdW5wYWNrU2l6ZSA9IG91dFNpemUgPyAqb3V0U2l6ZSA6IChVSW50NjQpKElu dDY0KS0xOwotICAgICByZXR1cm4gQ29kZVJlYWwocHJvZ3Jlc3MpOwotICAgfQotLSAgY2F0Y2go Y29uc3QgQ0luQnVmZmVyRXhjZXB0aW9uICZlKSAgeyByZXR1cm4gZS5FcnJvckNvZGU7IH0KLS0g IGNhdGNoKC4uLikgeyByZXR1cm4gU19GQUxTRTsgfQotKyAgY2F0Y2goY29uc3QgQ0luQnVmZmVy RXhjZXB0aW9uICZlKSAgeyBfZXJyb3JNb2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9 Ci0rICBjYXRjaCguLi4pIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJldHVybiBTX0ZBTFNFOyB9Ci0g ICAvLyBDTmV3RXhjZXB0aW9uIGlzIHBvc3NpYmxlIGhlcmUuIEJ1dCBwcm9iYWJseSBDTmV3RXhj ZXB0aW9uIGlzIGNhdXNlZAotICAgLy8gYnkgZXJyb3IgaW4gZGF0YSBzdHJlYW0uCi0gfQotZGlm ZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21w cmVzcy9SYXIzRGVjb2Rlci5oCi1pbmRleCBjMTMwY2VjLi4yZjcyZDdkIDEwMDY0NAotLS0tIENQ UC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmgKLSsrKyBDUFAvN3ppcC9Db21wcmVzcy9SYXIz RGVjb2Rlci5oCi1AQCAtMTkyLDYgKzE5Miw3IEBAIGNsYXNzIENEZWNvZGVyOgotICAgVUludDMy IF9sYXN0RmlsdGVyOwotIAotICAgYm9vbCBtX0lzU29saWQ7Ci0rICBib29sIF9lcnJvck1vZGU7 Ci0gCi0gICBib29sIF9sek1vZGU7Ci0gICBib29sIF91bnN1cHBvcnRlZEZpbHRlcjsKLUBAIC0y MDAsNiArMjAxLDcgQEAgY2xhc3MgQ0RlY29kZXI6Ci0gICBVSW50MzIgUHJldkFsaWduQ291bnQ7 Ci0gCi0gICBib29sIFRhYmxlc1JlYWQ7Ci0rICBib29sIFRhYmxlc09LOwotIAotICAgQ1BwbWQ3 IF9wcG1kOwotICAgaW50IFBwbUVzY0NoYXI7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwL3Bh dGNoZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAt Q1ZFLTIwMTgtMTAxMTUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5NDFh YjQ2OWZhLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIw MTgtMTAxMTUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMTEgKzAsMCBAQAotRnJvbTogUm9i ZXJ0IEx1YmVyZGEgPHJvYmVydEBkZWJpYW4ub3JnPgotRGF0ZTogVHVlLCAyOSBNYXkgMjAxOCAy Mzo1OTowOSArMDIwMAotU3ViamVjdDogRml4IENWRS0yMDE4LTEwMTE1Ci0KLUFwcGx5ICJwYXRj aCIgdGFrZW4gZnJvbSBodHRwczovL2xhbmRhdmUuaW8vZmlsZXMvcGF0Y2hfN3ppcF9DVkUtMjAx OC0xMDExNS50eHQKLQotCi1CdWdzLURlYmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvODk3 Njc0Ci0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAgfCAxNiArKysrKysr KysrKy0tLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaCAgIHwgIDMgKystCi0g Q1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwIHwgMTcgKysrKysrKysrKysrKy0tLS0K LSBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oICAgfCAgMyArKy0KLSBDUFAvN3ppcC9D b21wcmVzcy9SYXIzRGVjb2Rlci5jcHAgfCAxOSArKysrKysrKysrKysrKystLS0tCi0gQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaCAgIHwgIDMgKystCi0gQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyNURlY29kZXIuY3BwIHwgIDggKysrKysrKysKLSBDUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVj b2Rlci5oICAgfCAgMSArCi0gOCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxNiBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVy LmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotaW5kZXggNjgwMzBjNy4u OGM4OTBjOCAxMDA2NDQKLS0tLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLSsr KyBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLUBAIC0yOSw3ICsyOSw3IEBAIHB1 YmxpYzoKLSB9OwotICovCi0gCi0tQ0RlY29kZXI6OkNEZWNvZGVyKCk6IG1fSXNTb2xpZChmYWxz ZSksIF9lcnJvck1vZGUoZmFsc2UpIHsgfQotK0NEZWNvZGVyOjpDRGVjb2RlcigpOiBfaXNTb2xp ZChmYWxzZSksIF9zb2xpZEFsbG93ZWQoZmFsc2UpLCBfZXJyb3JNb2RlKGZhbHNlKSB7IH0KLSAK LSB2b2lkIENEZWNvZGVyOjpJbml0U3RydWN0dXJlcygpCi0gewotQEAgLTM0NSw3ICszNDUsNyBA QCB2b2lkIENEZWNvZGVyOjpHZXRGbGFnc0J1ZigpCi0gCi0gdm9pZCBDRGVjb2Rlcjo6SW5pdERh dGEoKQotIHsKLS0gIGlmICghbV9Jc1NvbGlkKQotKyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAg ICAgQXZyUGxjQiA9IEF2ckxuMSA9IEF2ckxuMiA9IEF2ckxuMyA9IE51bUh1ZiA9IEJ1ZjYwID0g MDsKLSAgICAgQXZyUGxjID0gMHgzNTAwOwotQEAgLTM5MSw2ICszOTEsMTEgQEAgSFJFU1VMVCBD RGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50 aWFsT3V0U3RyZWFtICoKLSAgIGlmIChpblNpemUgPT0gTlVMTCB8fCBvdXRTaXplID09IE5VTEwp Ci0gICAgIHJldHVybiBFX0lOVkFMSURBUkc7Ci0gCi0rICBpZiAoX2lzU29saWQgJiYgIV9zb2xp ZEFsbG93ZWQpCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKwotKyAgX3NvbGlkQWxsb3dlZCA9IGZh bHNlOwotKwotICAgaWYgKCFtX091dFdpbmRvd1N0cmVhbS5DcmVhdGUoa0hpc3RvcnlTaXplKSkK LSAgICAgcmV0dXJuIEVfT1VUT0ZNRU1PUlk7Ci0gICBpZiAoIW1fSW5CaXRTdHJlYW0uQ3JlYXRl KDEgPDwgMjApKQotQEAgLTM5OCwxMyArNDAzLDEzIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVS ZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAq Ci0gCi0gICBtX1VucGFja1NpemUgPSAoSW50NjQpKm91dFNpemU7Ci0gICBtX091dFdpbmRvd1N0 cmVhbS5TZXRTdHJlYW0ob3V0U3RyZWFtKTsKLS0gIG1fT3V0V2luZG93U3RyZWFtLkluaXQobV9J c1NvbGlkKTsKLSsgIG1fT3V0V2luZG93U3RyZWFtLkluaXQoX2lzU29saWQpOwotICAgbV9JbkJp dFN0cmVhbS5TZXRTdHJlYW0oaW5TdHJlYW0pOwotICAgbV9JbkJpdFN0cmVhbS5Jbml0KCk7Ci0g Ci0gICAvLyBDQ29kZXJSZWxlYXNlciBjb2RlclJlbGVhc2VyKHRoaXMpOwotICAgSW5pdERhdGEo KTsKLS0gIGlmICghbV9Jc1NvbGlkKQotKyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgX2Vy cm9yTW9kZSA9IGZhbHNlOwotICAgICBJbml0U3RydWN0dXJlcygpOwotQEAgLTQ3NSw2ICs0ODAs NyBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0 cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgfQotICAgaWYgKG1fVW5wYWNrU2l6ZSA8 IDApCi0gICAgIHJldHVybiBTX0ZBTFNFOwotKyAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0gICBy ZXR1cm4gbV9PdXRXaW5kb3dTdHJlYW0uRmx1c2goKTsKLSB9Ci0gCi1AQCAtNDkxLDcgKzQ5Nyw3 IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5 dGUgKmRhdGEsIFVJbnQzMiBzaXplKQotIHsKLSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0dXJu IEVfSU5WQUxJREFSRzsKLS0gIG1fSXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotKyAg X2lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAK LWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oIGIvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyMURlY29kZXIuaAotaW5kZXggMDFiNjA2Yi4uOGFiYjNhMyAxMDA2NDQKLS0t LSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyMURlY29kZXIuaAotQEAgLTM4LDcgKzM4LDggQEAgcHVibGljOgotICAgVUludDMyIExhc3RM ZW5ndGg7Ci0gCi0gICBJbnQ2NCBtX1VucGFja1NpemU7Ci0tICBib29sIG1fSXNTb2xpZDsKLSsg IGJvb2wgX2lzU29saWQ7Ci0rICBib29sIF9zb2xpZEFsbG93ZWQ7Ci0gICBib29sIF9lcnJvck1v ZGU7Ci0gCi0gICBVSW50MzIgUmVhZEJpdHMoaW50IG51bUJpdHMpOwotZGlmZiAtLWdpdCBhL0NQ UC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJE ZWNvZGVyLmNwcAotaW5kZXggMDU4MGM4ZC4uYmU4ZDg0MiAxMDA2NDQKLS0tLSBDUFAvN3ppcC9D b21wcmVzcy9SYXIyRGVjb2Rlci5jcHAKLSsrKyBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rl ci5jcHAKLUBAIC04MCw3ICs4MCw4IEBAIHN0YXRpYyBjb25zdCBVSW50MzIga0hpc3RvcnlTaXpl ID0gMSA8PCAyMDsKLSBzdGF0aWMgY29uc3QgVUludDMyIGtXaW5kb3dSZXNlcnZTaXplID0gKDEg PDwgMjIpICsgMjU2OwotIAotIENEZWNvZGVyOjpDRGVjb2RlcigpOgotLSAgbV9Jc1NvbGlkKGZh bHNlKSwKLSsgIF9pc1NvbGlkKGZhbHNlKSwKLSsgIF9zb2xpZEFsbG93ZWQoZmFsc2UpLAotICAg bV9UYWJsZXNPSyhmYWxzZSkKLSB7Ci0gfQotQEAgLTMyMCw2ICszMjEsMTAgQEAgSFJFU1VMVCBD RGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50 aWFsT3V0U3RyZWFtICoKLSAgIGlmIChpblNpemUgPT0gTlVMTCB8fCBvdXRTaXplID09IE5VTEwp Ci0gICAgIHJldHVybiBFX0lOVkFMSURBUkc7Ci0gCi0rICBpZiAoX2lzU29saWQgJiYgIV9zb2xp ZEFsbG93ZWQpCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKyAgX3NvbGlkQWxsb3dlZCA9IGZhbHNl OwotKwotICAgaWYgKCFtX091dFdpbmRvd1N0cmVhbS5DcmVhdGUoa0hpc3RvcnlTaXplKSkKLSAg ICAgcmV0dXJuIEVfT1VUT0ZNRU1PUlk7Ci0gICBpZiAoIW1fSW5CaXRTdHJlYW0uQ3JlYXRlKDEg PDwgMjApKQotQEAgLTMzMCwxMiArMzM1LDEyIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFs KElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0g ICBVSW50NjQgcG9zID0gMCwgdW5QYWNrU2l6ZSA9ICpvdXRTaXplOwotICAgCi0gICBtX091dFdp bmRvd1N0cmVhbS5TZXRTdHJlYW0ob3V0U3RyZWFtKTsKLS0gIG1fT3V0V2luZG93U3RyZWFtLklu aXQobV9Jc1NvbGlkKTsKLSsgIG1fT3V0V2luZG93U3RyZWFtLkluaXQoX2lzU29saWQpOwotICAg bV9JbkJpdFN0cmVhbS5TZXRTdHJlYW0oaW5TdHJlYW0pOwotICAgbV9JbkJpdFN0cmVhbS5Jbml0 KCk7Ci0gCi0gICAvLyBDQ29kZXJSZWxlYXNlciBjb2RlclJlbGVhc2VyKHRoaXMpOwotLSAgaWYg KCFtX0lzU29saWQpCi0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBJbml0U3RydWN0dXJl cygpOwotICAgICBpZiAodW5QYWNrU2l6ZSA9PSAwKQotQEAgLTM0Myw2ICszNDgsNyBAQCBIUkVT VUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNl cXVlbnRpYWxPdXRTdHJlYW0gKgotICAgICAgIGlmIChtX0luQml0U3RyZWFtLkdldFByb2Nlc3Nl ZFNpemUoKSArIDIgPD0gbV9QYWNrU2l6ZSkgLy8gdGVzdCBpdDogcHJvYmFibHkgaW5jb3JyZWN0 OwotICAgICAgICAgaWYgKCFSZWFkVGFibGVzKCkpCi0gICAgICAgICAgIHJldHVybiBTX0ZBTFNF OwotKyAgICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAgICAgIHJldHVybiBTX09LOwotICAg ICB9Ci0gICAgIGlmICghUmVhZFRhYmxlcygpKQotQEAgLTM4Niw2ICszOTIsOSBAQCBIUkVTVUxU IENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVl bnRpYWxPdXRTdHJlYW0gKgotIAotICAgaWYgKCFSZWFkTGFzdFRhYmxlcygpKQotICAgICByZXR1 cm4gU19GQUxTRTsKLSsKLSsgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotKwotICAgcmV0dXJuIG1f T3V0V2luZG93U3RyZWFtLkZsdXNoKCk7Ci0gfQotIAotQEAgLTQwMiw3ICs0MTEsNyBAQCBTVERN RVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVzMihjb25zdCBCeXRlICpkYXRh LCBVSW50MzIgc2l6ZSkKLSB7Ci0gICBpZiAoc2l6ZSA8IDEpCi0gICAgIHJldHVybiBFX0lOVkFM SURBUkc7Ci0tICBtX0lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSsgIF9pc1NvbGlk ID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0gICByZXR1cm4gU19PSzsKLSB9Ci0gCi1kaWZmIC0t Z2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaCBiL0NQUC83emlwL0NvbXByZXNz L1JhcjJEZWNvZGVyLmgKLWluZGV4IDBlOTAwNWYuLjM3MGJjZTIgMTAwNjQ0Ci0tLS0gQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAotKysrIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNv ZGVyLmgKLUBAIC0xMzgsNyArMTM4LDggQEAgY2xhc3MgQ0RlY29kZXIgOgotICAgQnl0ZSBtX0xh c3RMZXZlbHNba01heFRhYmxlU2l6ZV07Ci0gCi0gICBVSW50NjQgbV9QYWNrU2l6ZTsKLS0gIGJv b2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsK LSAgIGJvb2wgbV9UYWJsZXNPSzsKLSAKLSAgIHZvaWQgSW5pdFN0cnVjdHVyZXMoKTsKLWRpZmYg LS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21w cmVzcy9SYXIzRGVjb2Rlci5jcHAKLWluZGV4IDZjYjhhNmEuLjdiODU4MzMgMTAwNjQ0Ci0tLS0g Q1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyM0RlY29kZXIuY3BwCi1AQCAtOTIsNyArOTIsOCBAQCBDRGVjb2Rlcjo6Q0RlY29kZXIoKToK LSAgIF93cml0dGVuRmlsZVNpemUoMCksCi0gICBfdm1EYXRhKDApLAotICAgX3ZtQ29kZSgwKSwK LS0gIG1fSXNTb2xpZChmYWxzZSksCi0rICBfaXNTb2xpZChmYWxzZSksCi0rICBfc29saWRBbGxv d2VkKGZhbHNlKSwKLSAgIF9lcnJvck1vZGUoZmFsc2UpCi0gewotICAgUHBtZDdfQ29uc3RydWN0 KCZfcHBtZCk7Ci1AQCAtODIxLDcgKzgyMiw3IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFs KElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gewotICAgX3dyaXR0ZW5GaWxlU2l6 ZSA9IDA7Ci0gICBfdW5zdXBwb3J0ZWRGaWx0ZXIgPSBmYWxzZTsKLS0gIGlmICghbV9Jc1NvbGlk KQotKyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgX2x6U2l6ZSA9IDA7Ci0gICAgIF93aW5Q b3MgPSAwOwotQEAgLTg0MCwxMiArODQxLDE1IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFs KElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICBpZiAoX2Vycm9yTW9kZSkKLSAg ICAgcmV0dXJuIFNfRkFMU0U7Ci0gCi0tICBpZiAoIW1fSXNTb2xpZCB8fCAhVGFibGVzUmVhZCkK LSsgIGlmICghX2lzU29saWQgfHwgIVRhYmxlc1JlYWQpCi0gICB7Ci0gICAgIGJvb2wga2VlcERl Y29tcHJlc3Npbmc7Ci0gICAgIFJJTk9LKFJlYWRUYWJsZXMoa2VlcERlY29tcHJlc3NpbmcpKTsK LSAgICAgaWYgKCFrZWVwRGVjb21wcmVzc2luZykKLSsgICAgewotKyAgICAgIF9zb2xpZEFsbG93 ZWQgPSB0cnVlOwotICAgICAgIHJldHVybiBTX09LOwotKyAgICB9Ci0gICB9Ci0gCi0gICBmb3Ig KDs7KQotQEAgLTg3MCw2ICs4NzQsOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29t cHJlc3NQcm9ncmVzc0luZm8gKnByb2dyZXNzKQotICAgICBpZiAoIWtlZXBEZWNvbXByZXNzaW5n KQotICAgICAgIGJyZWFrOwotICAgfQotKwotKyAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0rCi0g ICBSSU5PSyhXcml0ZUJ1ZigpKTsKLSAgIFVJbnQ2NCBwYWNrU2l6ZSA9IG1fSW5CaXRTdHJlYW0u Qml0RGVjb2Rlci5HZXRQcm9jZXNzZWRTaXplKCk7Ci0gICBSSU5PSyhwcm9ncmVzcy0+U2V0UmF0 aW9JbmZvKCZwYWNrU2l6ZSwgJl93cml0dGVuRmlsZVNpemUpKTsKLUBAIC04OTAsNiArODk3LDEw IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29kZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0 cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSAgICAgaWYgKCFpblNpemUpCi0gICAgICAgcmV0 dXJuIEVfSU5WQUxJREFSRzsKLSAKLSsgICAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2Vk KQotKyAgICAgIHJldHVybiBTX0ZBTFNFOwotKyAgICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0r Ci0gICAgIGlmICghX3ZtRGF0YSkKLSAgICAgewotICAgICAgIF92bURhdGEgPSAoQnl0ZSAqKTo6 TWlkQWxsb2Moa1ZtRGF0YVNpemVNYXggKyBrVm1Db2RlU2l6ZU1heCk7Ci1AQCAtOTI4LDcgKzkz OSw3IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0 IEJ5dGUgKmRhdGEsIFVJbnQzMiBzaXplKQotIHsKLSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0 dXJuIEVfSU5WQUxJREFSRzsKLS0gIG1fSXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwot KyAgX2lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0K LSAKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oIGIvQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotaW5kZXggMmY3MmQ3ZC4uMzJjODk0MyAxMDA2NDQK LS0tLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oCi0rKysgQ1BQLzd6aXAvQ29tcHJl c3MvUmFyM0RlY29kZXIuaAotQEAgLTE5MSw3ICsxOTEsOCBAQCBjbGFzcyBDRGVjb2RlcjoKLSAg IENSZWNvcmRWZWN0b3I8Q1RlbXBGaWx0ZXIgKj4gIF90ZW1wRmlsdGVyczsKLSAgIFVJbnQzMiBf bGFzdEZpbHRlcjsKLSAKLS0gIGJvb2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBfaXNTb2xpZDsKLSsg IGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgX2Vycm9yTW9kZTsKLSAKLSAgIGJvb2wgX2x6 TW9kZTsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5jcHAgYi9D UFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5jcHAKLWluZGV4IGRjODgzMGYuLmE4MjZkNWEg MTAwNjQ0Ci0tLS0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwCi0rKysgQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwCi1AQCAtNzIsNiArNzIsNyBAQCBDRGVjb2Rlcjo6 Q0RlY29kZXIoKToKLSAgICAgX3dyaXR0ZW5GaWxlU2l6ZSgwKSwKLSAgICAgX2RpY3RTaXplTG9n KDApLAotICAgICBfaXNTb2xpZChmYWxzZSksCi0rICAgIF9zb2xpZEFsbG93ZWQoZmFsc2UpLAot ICAgICBfd2FzSW5pdChmYWxzZSksCi0gICAgIF9pbnB1dEJ1ZihOVUxMKQotIHsKLUBAIC04MDEs NyArODAyLDEwIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKCkKLSAgICovCi0gCi0gICBp ZiAocmVzID09IFNfT0spCi0rICB7Ci0rICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAgICBy ZXMgPSByZXMyOwotKyAgfQotICAgICAgCi0gICBpZiAocmVzID09IFNfT0sgJiYgX3VucGFja1Np emVfRGVmaW5lZCAmJiBfd3JpdHRlbkZpbGVTaXplICE9IF91bnBhY2tTaXplKQotICAgICByZXR1 cm4gU19GQUxTRTsKLUBAIC04MjEsNiArODI1LDEwIEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6 Q29kZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0K LSB7Ci0gICB0cnkKLSAgIHsKLSsgICAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQot KyAgICAgIHJldHVybiBTX0ZBTFNFOwotKyAgICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0g ICAgIGlmIChfZGljdFNpemVMb2cgPj0gc2l6ZW9mKHNpemVfdCkgKiA4KQotICAgICAgIHJldHVy biBFX05PVElNUEw7Ci0gCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29k ZXIuaCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmgKLWluZGV4IGIwYTRkZDEuLjNk YjUwMTggMTAwNjQ0Ci0tLS0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuaAotKysrIENQ UC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmgKLUBAIC0yNzEsNiArMjcxLDcgQEAgY2xhc3Mg Q0RlY29kZXI6Ci0gICBCeXRlIF9kaWN0U2l6ZUxvZzsKLSAgIGJvb2wgX3RhYmxlV2FzRmlsbGVk OwotICAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgX3dh c0luaXQ7Ci0gCi0gICBVSW50MzIgX3JlcHNba051bVJlcHNdOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE2LTkyOTYucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNo ZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcw OTI5ZDE2MzMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAx Ni05Mjk2LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotLS0tIENQUC83emlw L0FyY2hpdmUvN3ovN3pJbi5jcHAub3JpZwlTdW4gTm92IDIwIDA5OjI5OjQxIDIwMTYKLSsrKyBD UFAvN3ppcC9BcmNoaXZlLzd6Lzd6SW4uY3BwCVN1biBOb3YgMjAgMDk6MzE6MjIgMjAxNgotQEAg LTEwOTcsNyArMTA5Nyw4IEBAIEhSRVNVTFQgQ0luQXJjaGl2ZTo6UmVhZEFuZERlY29kZVBhY2tl ZFN0cmVhbXMoCi0gICAgICAgaWYgKENyY0NhbGMoZGF0YSwgdW5wYWNrU2l6ZSkgIT0gZm9sZGVy cy5Gb2xkZXJDUkNzLlZhbHNbaV0pCi0gICAgICAgICBUaHJvd0luY29ycmVjdCgpOwotICAgfQot LSAgSGVhZGVyc1NpemUgKz0gZm9sZGVycy5QYWNrUG9zaXRpb25zW2ZvbGRlcnMuTnVtUGFja1N0 cmVhbXNdOwotKyAgaWYgKGZvbGRlcnMuUGFja1Bvc2l0aW9ucykKLSsgICAgICBIZWFkZXJzU2l6 ZSArPSBmb2xkZXJzLlBhY2tQb3NpdGlvbnNbZm9sZGVycy5OdW1QYWNrU3RyZWFtc107Ci0gICBy ZXR1cm4gU19PSzsKLSB9Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZF LTIwMTctMTc5NjkucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5Njku cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1NDg3MzA0YzQ1Li4wMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1Gcm9tOiA9P3V0Zi04P3E/QW50b2luZV9CZWF1 cHI9QzM9QTk/PSA8YW5hcmNhdEBkZWJpYW4ub3JnPgotRGF0ZTogU3VuLCAyOCBKYW4gMjAxOCAy MToxOTo1MCArMDEwMAotU3ViamVjdDogYmFja3BvcnQgb2YgdGhlIENWRS0yMDE3LTE3OTY5IGZp eCBmcm9tIDd6aXAgMTguMDAtYmV0YQotCi0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9TaHJpbmtE ZWNvZGVyLmNwcCB8IDcgKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1Nocmlua0Rl Y29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAKLWluZGV4IDgw YjdlNjcuLjRhY2RjZTUgMTAwNjQ0Ci0tLS0gQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rl ci5jcHAKLSsrKyBDUFAvN3ppcC9Db21wcmVzcy9TaHJpbmtEZWNvZGVyLmNwcAotQEAgLTEyMSw3 ICsxMjEsMTIgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVh bSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgICAgewotICAgICAgIF9zdGFj a1tpKytdID0gX3N1ZmZpeGVzW2N1cl07Ci0gICAgICAgY3VyID0gX3BhcmVudHNbY3VyXTsKLS0g ICAgfQotKyAgICAgIGlmIChpID49IGtOdW1JdGVtcykKLSsgICAgICAgIGJyZWFrOwotKyAgICAg fQotKwotKyAgICBpZiAoaSA+PSBrTnVtSXRlbXMpCi0rICAgICAgYnJlYWs7Ci0gICAgIAotICAg ICBfc3RhY2tbaSsrXSA9IChCeXRlKWN1cjsKLSAgICAgbGFzdENoYXIyID0gKEJ5dGUpY3VyOwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcDd6aXAvdGVtcGxh dGUKaW5kZXggNTRlOTAxZjUxMDIuLjA4OTRlNGE4YmMzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3A3 emlwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcDd6aXAvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTUg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3A3emlwJwogcGtnbmFtZT1wN3ppcAotdmVyc2lvbj0x Ni4wMgotcmV2aXNpb249NQotd3Jrc3JjPSIke3BrZ25hbWV9XyR7dmVyc2lvbn0iCit2ZXJzaW9u PTE3LjAzCityZXZpc2lvbj0xCiBob3N0bWFrZWRlcGVuZHM9Inlhc20gbmFzbSIKIHNob3J0X2Rl c2M9IkNvbW1hbmQtbGluZSB2ZXJzaW9uIG9mIHRoZSA3emlwIGNvbXByZXNzZWQgZmlsZSBhcmNo aXZlIgotbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKK21haW50 YWluZXI9ImJpb3BzaW4gPGJpb3BzaW5AdGVrbmlrLmlvPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly9wN3ppcC5zb3VyY2Vmb3JnZS5uZXQvIgotZGlzdGZp bGVzPSIke1NPVVJDRUZPUkdFX1NJVEV9LyR7cGtnbmFtZX0vJHtwa2duYW1lfV8ke3ZlcnNpb259 X3NyY19hbGwudGFyLmJ6MiIKLWNoZWNrc3VtPTVlYjIwYWMwZTI5NDRmNmNiOWMyZDUxZGQ2YzQ1 MTg5NDFjMTg1MzQ3ZDQwODllYTg5MDg3ZmZkZDZlMjM0MWYKK2NoYW5nZWxvZz0iaHR0cHM6Ly9n aXRodWIuY29tL2ppbmZlaWhhbjU3L3A3emlwL2Jsb2IvbWFzdGVyL0NoYW5nZUxvZyIKK2Rpc3Rm aWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2ppbmZlaWhhbjU3L3A3emlwL2FyY2hpdmUvdiR7dmVy c2lvbn0udGFyLmd6IgorY2hlY2tzdW09YmI0YjliMjE1ODRjMGUwNzZlMGI0YjI3MDVhZjBkYmU3 YWMxOWQzNzhhYTdmMDlhNzlkYTMzYTViMzI5MzE4NwogCiBkb19jb25maWd1cmUoKSB7CiAJY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCkBAIC0yMSw3ICsyMSw3IEBAIGRvX2NvbmZpZ3Vy ZSgpIHsKIAlzZWQgLWUgInMsZ2NjLCR7Q0N9LCIgLWkgbWFrZWZpbGUubWFjaGluZQogfQogZG9f YnVpbGQoKSB7Ci0JbWFrZSBhbGwzIE9QVEZMQUdTPSIkQ1hYRkxBR1MiICR7bWFrZWpvYnN9CisJ bWFrZSBhbGwyIE9QVEZMQUdTPSIkQ1hYRkxBR1MiICR7bWFrZWpvYnN9CiB9CiBkb19pbnN0YWxs KCkgewogCW1ha2UgaW5zdGFsbCBERVNUX0RJUj0iJHtERVNURElSfSIgREVTVF9IT01FPSIvdXNy IiBcCg== --===============8845889006747796483==--