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 24801 invoked from network); 30 Apr 2021 07:56:42 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 30 Apr 2021 07:56:42 -0000 Content-Type: multipart/mixed; boundary="===============4232863972756811262==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_mozc=3A_update_to_2=2E26=2E4346=2E100=2E_=28new_package_for_fcitx5-mozc=29?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Fri, 30 Apr 2021 09:56:41 +0200 List-Id: Message-ID: <20210430075641.56DEG-yqu2Ao1Oi-GbsQqOJbhUWhp9m3TMBcpmzyef0@z> GitHub notification mails are now in MIME to allow UTF8. --===============4232863972756811262== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBmY2l0eDUtbW96YwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvMzA0OTIKCltXSVBdIG1vemM6IHVwZGF0ZSB0byAyLjI2LjQzNDYuMTAw LiAobmV3IHBhY2thZ2UgZm9yIGZjaXR4NS1tb3pjKQo8IS0tIE1hcmsgaXRlbXMgd2l0aCBbeF0g d2hlcmUgYXBwbGljYWJsZSAtLT4NCg0KIyMjIyBHZW5lcmFsDQotIFsgXSBUaGlzIGlzIGEgbmV3 IHBhY2thZ2UgYW5kIGl0IGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFu dWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKQ0KDQojIyMjIEhhdmUgdGhlIHJlc3VsdHMgb2Yg dGhlIHByb3Bvc2VkIGNoYW5nZXMgYmVlbiB0ZXN0ZWQ/DQotIFsgXSBJIHVzZSB0aGUgcGFja2Fn ZXMgYWZmZWN0ZWQgYnkgdGhlIHByb3Bvc2VkIGNoYW5nZXMgb24gYSByZWd1bGFyIGJhc2lzIGFu ZCBjb25maXJtIHRoaXMgUFIgd29ya3MgZm9yIG1lDQotIFsgXSBJIGdlbmVyYWxseSBkb24ndCB1 c2UgdGhlIGFmZmVjdGVkIHBhY2thZ2VzIGJ1dCBicmllZmx5IHRlc3RlZCB0aGlzIFBSDQoNCjwh LS0NCklmIEdpdEh1YiBDSSBjYW5ub3QgYmUgdXNlZCB0byB2YWxpZGF0ZSB0aGUgYnVpbGQgcmVz dWx0IChmb3IgZXhhbXBsZSwgaWYgdGhlDQpidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBzZXZlcmFs IGhvdXJzKSwgbWFrZSBzdXJlIHRvDQpbc2tpcCBDSV0oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9DT05UUklCVVRJTkcubWQjY29udGludW91 cy1pbnRlZ3JhdGlvbikuDQpXaGVuIHNraXBwaW5nIENJLCB1bmNvbW1lbnQgYW5kIGZpbGwgb3V0 IHRoZSBmb2xsb3dpbmcgc2VjdGlvbi4NCk5vdGU6IGZvciBidWlsZHMgdGhhdCBhcmUgbGlrZWx5 IHRvIGNvbXBsZXRlIGluIGxlc3MgdGhhbiAyIGhvdXJzLCBpdCBpcyBub3QNCmFjY2VwdGFibGUg dG8gc2tpcCBDSS4NCi0tPg0KPCEtLSANCiMjIyMgRG9lcyBpdCBidWlsZCBhbmQgcnVuIHN1Y2Nl c3NmdWxseT8gDQooUGxlYXNlIGNob29zZSBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwg aWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuIE1vcmUgYXJlIGJldHRlci4p DQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVy ZSwgKEFSQ0gtTElCQykNCi0gWyBdIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciB0aGVzZSBh cmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0KICAtIFsgXSBh YXJjaDY0LW11c2wNCiAgLSBbIF0gYXJtdjdsDQogIC0gWyBdIGFybXY2bC1tdXNsDQotLT4NCgoK QSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9wdWxsLzMwNDkyLnBhdGNoIGlzIGF0dGFjaGVk --===============4232863972756811262== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-fcitx5-mozc-30492.patch" RnJvbSBhN2I1NmVjNDQzMzJiN2U0MmYyYTZkMzI4Zjc4OTYzYjQ3N2U5YzFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU3Vu LCAyNSBBcHIgMjAyMSAyMjo1MzoxNCArMDcwMApTdWJqZWN0OiBbUEFUQ0hdIG1vemM6IHVwZGF0 ZSB0byAyLjI2LjQzNTMuMTAwLgoKLS0tCiBzcmNwa2dzL2ZjaXR4NS1tb3pjICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9tb3pjL3BhdGNoZXMvYWJzZWlsLnBhdGNo ICAgICAgICAgICAgIHwgIDkzICsrKysrCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9jcm9zcy5wYXRj aCAgICAgICAgICAgICAgfCAgMTAgKy0KIHNyY3BrZ3MvbW96Yy9wYXRjaGVzL2N4eC1zdGRsaWIu cGF0Y2ggICAgICAgICB8ICAyOSArKwogLi4uL2RlZmF1bHRfaGlyYWdhbmFfZnJvbV9lbnZpcm9u bWVudC5wYXRjaCAgIHwgIDIwIC0tCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9mY2l0eC5wYXRjaCAg ICAgICAgICAgICAgfCAgMTMgKwogc3JjcGtncy9tb3pjL3BhdGNoZXMvbm8tcGFyYWxsZWwucGF0 Y2ggICAgICAgIHwgICA2ICstCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9wcm90b2J1Zi0zNzAucGF0 Y2ggICAgICAgfCAzMjcgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL21vemMvcGF0Y2hlcy9y ZWl3YS1lcmEucGF0Y2ggICAgICAgICAgfCAgMTMgKwogc3JjcGtncy9tb3pjL3BhdGNoZXMvdW5z aWduZWQtaW50LnBhdGNoICAgICAgIHwgMjEwICsrKysrKysrKysrCiBzcmNwa2dzL21vemMvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMDkgKysrKy0tCiBzcmNwa2dzL21vemMv dXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogMTIgZmlsZXMgY2hhbmdl ZCwgNDQyIGluc2VydGlvbnMoKyksIDM5MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEyMDAw MCBzcmNwa2dzL2ZjaXR4NS1tb3pjCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pjL3Bh dGNoZXMvYWJzZWlsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pjL3BhdGNo ZXMvY3h4LXN0ZGxpYi5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbW96Yy9wYXRj aGVzL2RlZmF1bHRfaGlyYWdhbmFfZnJvbV9lbnZpcm9ubWVudC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96Yy9wYXRjaGVzL2ZjaXR4LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9tb3pjL3BhdGNoZXMvcHJvdG9idWYtMzcwLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tb3pjL3BhdGNoZXMvcmVpd2EtZXJhLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9tb3pjL3BhdGNoZXMvdW5zaWduZWQtaW50LnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9tb3pjL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmNpdHg1 LW1vemMgYi9zcmNwa2dzL2ZjaXR4NS1tb3pjCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAw MDAwMDAwMDAwMC4uNjg3NGNhNDI2YjVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mY2l0 eDUtbW96YwpAQCAtMCwwICsxIEBACittb3pjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvYWJzZWlsLnBhdGNoIGIvc3JjcGtncy9t b3pjL3BhdGNoZXMvYWJzZWlsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uODg4NzYyZDU1NTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pjL3Bh dGNoZXMvYWJzZWlsLnBhdGNoCkBAIC0wLDAgKzEsOTMgQEAKKworUG9ydGVkIGZyb20gZ3JwYydz IHBhdGNoZXMKKworQW4gYWxsLWluLW9uZSBwYXRjaCB0aGF0IGZpeGVzIHNldmVyYWwgaXNzdWVz OgorCisxKSBVbnNjYWxlZEN5Y2xlQ2xvY2sgbm90IGZ1bGx5IGltcGxlbWVudGVkIGZvciBwcGMq LW11c2wgKGRpc2FibGVkIG9uIG11c2wpCisyKSBwb3dlcnBjIHN0YWNrdHJhY2UgaW1wbGVtZW50 YXRpb24gb25seSB3b3JrcyBvbiBnbGliYyAoZGlzYWJsZWQgb24gbXVzbCkKKzMpIHBvd2VycGMg c3RhY2t0cmFjZSBpbXBsZW1lbnRhdGlvbiBoYXMgcHBjNjQgYXNzdW1wdGlvbnMgKGZpeGVkKQor NCkgZXhhbWluZV9zdGFjay5jcHAgbWFrZXMgZ2xpYmMgYXNzdW1wdGlvbnMgb24gcG93ZXJwYyAo Zml4ZWQpCisKKy0tLSBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9p bnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suY2MKKysrKyBtb3pjL3NyYy90aGlyZF9wYXJ0eS9h YnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suY2MKK0BAIC0y MCw3ICsyMCw3IEBACisgI2luY2x1ZGUgPGludHJpbi5oPgorICNlbmRpZgorIAorLSNpZiBkZWZp bmVkKF9fcG93ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pCisrI2lmIChkZWZpbmVkKF9fcG93 ZXJwY19fKSB8fCBkZWZpbmVkKF9fcHBjX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAjaWZk ZWYgX19HTElCQ19fCisgI2luY2x1ZGUgPHN5cy9wbGF0Zm9ybS9wcGMuaD4KKyAjZWxpZiBkZWZp bmVkKF9fRnJlZUJTRF9fKQorQEAgLTU5LDcgKzU5LDcgQEAKKyAgIHJldHVybiBiYXNlX2ludGVy bmFsOjpOb21pbmFsQ1BVRnJlcXVlbmN5KCk7CisgfQorIAorLSNlbGlmIGRlZmluZWQoX19wb3dl cnBjX18pIHx8IGRlZmluZWQoX19wcGNfXykKKysjZWxpZiAoZGVmaW5lZChfX3Bvd2VycGNfXykg fHwgZGVmaW5lZChfX3BwY19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgCisgaW50NjRfdCBV bnNjYWxlZEN5Y2xlQ2xvY2s6Ok5vdygpIHsKKyAjaWZkZWYgX19HTElCQ19fCistLS0gbW96Yy9z cmMvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2Jhc2UvaW50ZXJuYWwvdW5zY2FsZWRjeWNs ZWNsb2NrLmgKKysrKyBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9p bnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAorQEAgLTQ2LDcgKzQ2LDcgQEAKKyAKKyAvLyBU aGUgZm9sbG93aW5nIHBsYXRmb3JtcyBoYXZlIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgaGFyZHdh cmUgY291bnRlci4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCistICBkZWZpbmVkKF9fcG93ZXJwY19fKSB8 fCBkZWZpbmVkKF9fcHBjX18pIHx8IFwKKysgICgoZGVmaW5lZChfX3Bvd2VycGNfXykgfHwgZGVm aW5lZChfX3BwY19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBcCisgICBkZWZpbmVkKF9N X0lYODYpIHx8IGRlZmluZWQoX01fWDY0KQorICNkZWZpbmUgQUJTTF9IQVZFX1VOU0NBTEVEX0NZ Q0xFQ0xPQ0tfSU1QTEVNRU5UQVRJT04gMQorICNlbHNlCistLS0gbW96Yy9zcmMvdGhpcmRfcGFy dHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9leGFtaW5lX3N0YWNrLmNjCisr KysgbW96Yy9zcmMvdGhpcmRfcGFydHkvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5h bC9leGFtaW5lX3N0YWNrLmNjCitAQCAtMjcsNiArMjcsMTAgQEAKKyAjaW5jbHVkZSA8Y3NpZ25h bD4KKyAjaW5jbHVkZSA8Y3N0ZGlvPgorIAorKyNpZiBkZWZpbmVkKF9fcG93ZXJwY19fKQorKyNp bmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisgI2luY2x1ZGUgImFic2wvYmFzZS9h dHRyaWJ1dGVzLmgiCisgI2luY2x1ZGUgImFic2wvYmFzZS9pbnRlcm5hbC9yYXdfbG9nZ2luZy5o IgorICNpbmNsdWRlICJhYnNsL2Jhc2UvbWFjcm9zLmgiCitAQCAtNTUsOCArNTksMTAgQEAKKyAg ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRleHQtPnVjX21jb250ZXh0LnBj KTsKKyAjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIHJldHVybiByZWludGVycHJl dF9jYXN0PHZvaWQqPihjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMyXSk7CistI2VsaWYg ZGVmaW5lZChfX3Bvd2VycGNfXykKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwY19fKSAmJiBkZWZp bmVkKF9fR0xJQkNfXykKKyAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvbnRl eHQtPnVjX21jb250ZXh0LnJlZ3MtPm5pcCk7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGNfXykK KysgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KCgoc3RydWN0IHB0X3JlZ3MgKilj b250ZXh0LT51Y19yZWdzKS0+bmlwKTsKKyAjZWxpZiBkZWZpbmVkKF9fcmlzY3YpCisgICAgIHJl dHVybiByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LT51Y19tY29udGV4dC5fX2dyZWdz W1JFR19QQ10pOworICNlbGlmIGRlZmluZWQoX19zMzkwX18pICYmICFkZWZpbmVkKF9fczM5MHhf XykKKy0tLSBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2lu dGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgKKysrKyBtb3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNl aWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgKK0BAIC02 NCw3ICs2NCw3IEBACisgI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKQorICNkZWZpbmUgQUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAorICAgImFic2wvZGVi dWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfeDg2LWlubC5pbmMiCistI2VsaWYgZGVmaW5lZChf X3BwY19fKSB8fCBkZWZpbmVkKF9fUFBDX18pCisrI2VsaWYgKGRlZmluZWQoX19wcGNfXykgfHwg ZGVmaW5lZChfX1BQQ19fKSkgJiYgZGVmaW5lZChfX0dMSUJDX18pCisgI2RlZmluZSBBQlNMX1NU QUNLVFJBQ0VfSU5MX0hFQURFUiBcCisgICAiYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0 cmFjZV9wb3dlcnBjLWlubC5pbmMiCisgI2VsaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKy0tLSBt b3pjL3NyYy90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0 YWNrdHJhY2VfcG93ZXJwYy1pbmwuaW5jCisrKysgbW96Yy9zcmMvdGhpcmRfcGFydHkvYWJzZWls LWNwcC9hYnNsL2RlYnVnZ2luZy9pbnRlcm5hbC9zdGFja3RyYWNlX3Bvd2VycGMtaW5sLmluYwor QEAgLTEzMCw4ICsxMzAsMTMgQEAKKyAgICAgICAgIFN0YWNrdHJhY2VQb3dlclBDR2V0TFIobmV3 X3NwKSA9PSBrZXJuZWxfc2lndHJhbXBfcnQ2NF9hZGRyZXNzKSB7CisgICAgICAgY29uc3QgdWNv bnRleHRfdCogc2lnbmFsX2NvbnRleHQgPQorICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNv bnN0IHVjb250ZXh0X3QqPih1Yyk7CisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAg ICB2b2lkICoqY29uc3Qgc3BfYmVmb3JlX3NpZ25hbCA9CisgICAgICAgICAgIHJlaW50ZXJwcmV0 X2Nhc3Q8dm9pZCoqPihzaWduYWxfY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9SMV0p OworKyNlbHNlCisrICAgICAgdm9pZCAqKmNvbnN0IHNwX2JlZm9yZV9zaWduYWwgPQorKyAgICAg ICAgICByZWludGVycHJldF9jYXN0PHZvaWQqKj4oc2lnbmFsX2NvbnRleHQtPnVjX21jb250ZXh0 LnVjX3JlZ3MtPmdyZWdzW1BUX1IxXSk7CisrI2VuZGlmCisgICAgICAgLy8gQ2hlY2sgdGhhdCBh bGxlZ2VkIHNwIGJlZm9yZSBzaWduYWwgaXMgbm9ubnVsbCBhbmQgaXMgcmVhc29uYWJseQorICAg ICAgIC8vIGFsaWduZWQuCisgICAgICAgaWYgKHNwX2JlZm9yZV9zaWduYWwgIT0gbnVsbHB0ciAm JgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvY3Jvc3MucGF0Y2ggYi9zcmNwa2dz L21vemMvcGF0Y2hlcy9jcm9zcy5wYXRjaAppbmRleCAxN2Q0N2E5MDBlYjkuLmQ3M2M1ZjgyYjQz MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvY3Jvc3MucGF0Y2gKKysrIGIvc3Jj cGtncy9tb3pjL3BhdGNoZXMvY3Jvc3MucGF0Y2gKQEAgLTEsNyArMSw5IEBACi0tLS0gbW96Yy9z cmMvZ3lwL2NvbW1vbi5neXBpCitJbmRleDogbW96Yy9zcmMvZ3lwL2NvbW1vbi5neXBpCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gbW96Yy9zcmMvZ3lwL2NvbW1vbi5neXBpLm9yaWcKICsrKyBtb3pjL3NyYy9n eXAvY29tbW9uLmd5cGkKLUBAIC00NDQsMTIgKzQ0NCwxMiBAQAotICAgICB9XSwKK0BAIC00MDks MTIgKzQwOSwxMiBAQAorICAgJ2NvbmRpdGlvbnMnOiBbCiAgICAgIFsndGFyZ2V0X3BsYXRmb3Jt PT0iTGludXgiJywgewogICAgICAgICdtYWtlX2dsb2JhbF9zZXR0aW5ncyc6IFsKIC0gICAgICAg IFsnQVInLCAnPCEod2hpY2ggYXIpJ10sCkBAIC0xOSw3ICsyMSw3IEBACiAgICAgICAgXSwKICAg ICAgfV0sCiAgICAgIFsndGFyZ2V0X3BsYXRmb3JtPT0iQW5kcm9pZCInLCB7Ci1AQCAtNDk0LDEy ICs0OTQsMTIgQEAKK0BAIC00NTksMTIgKzQ1OSwxMiBAQAogICAgICAgICAgWydMRCcsICc8KG5k a19iaW5fZGlyKS88KHRvb2xjaGFpbl9wcmVmaXgpLWxkJ10sCiAgICAgICAgICBbJ05NJywgJzwo bmRrX2Jpbl9kaXIpLzwodG9vbGNoYWluX3ByZWZpeCktbm0nXSwKICAgICAgICAgIFsnUkVBREVM RicsICc8KG5ka19iaW5fZGlyKS88KHRvb2xjaGFpbl9wcmVmaXgpLXJlYWRlbGYnXSwKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2N4eC1zdGRsaWIucGF0Y2ggYi9zcmNwa2dzL21v emMvcGF0Y2hlcy9jeHgtc3RkbGliLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMGJjY2FmOGRkYzRmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pj L3BhdGNoZXMvY3h4LXN0ZGxpYi5wYXRjaApAQCAtMCwwICsxLDI5IEBACitJbmRleDogbW96Yy9z cmMvZ3lwL2NvbW1vbi5neXBpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbW96Yy9zcmMvZ3lwL2NvbW1vbi5n eXBpCisrKysgbW96Yy9zcmMvZ3lwL2NvbW1vbi5neXBpCitAQCAtMTA1LDcgKzEwNSw3IEBACisg ICAgIF0sCisgICAgICMgTGlicmFyaWVzIGZvciBHTlUvTGludXggZW52aXJvbm1lbnQuCisgICAg ICdsaW51eF9sZGZsYWdzJzogWworLSAgICAgICctbGMrKycsCisrICAgICAgJy1sc3RkYysrJywK KyAgICAgICAnLXB0aHJlYWQnLAorICAgICBdLAorIAorQEAgLTIwNSw3ICsyMDUsNiBAQAorICAg ICAgICAgICAgICAgJy1XdHlwZS1saW1pdHMnLAorICAgICAgICAgICAgIF0sCisgICAgICAgICAg ICAgJ2NmbGFnc19jYyc6IFsKKy0gICAgICAgICAgICAgICctc3RkbGliPWxpYmMrKycsCisgICAg ICAgICAgICAgICAnLVduby1jb3ZlcmVkLXN3aXRjaC1kZWZhdWx0JywKKyAgICAgICAgICAgICAg ICctV25vLXVubmFtZWQtdHlwZS10ZW1wbGF0ZS1hcmdzJywKKyAgICAgICAgICAgICAgICctV25v LWMrKzExLW5hcnJvd2luZycsCitAQCAtMjI1LDcgKzIyNCw2IEBACisgICAgICAgICAgICAgICAn LVd0eXBlLWxpbWl0cycsCisgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAnY2ZsYWdzX2Nj JzogWworLSAgICAgICAgICAgICAgJy1zdGRsaWI9bGliYysrJywKKyAgICAgICAgICAgICAgICct V25vLWNvdmVyZWQtc3dpdGNoLWRlZmF1bHQnLAorICAgICAgICAgICAgICAgJy1Xbm8tdW5uYW1l ZC10eXBlLXRlbXBsYXRlLWFyZ3MnLAorICAgICAgICAgICAgICAgJy1Xbm8tYysrMTEtbmFycm93 aW5nJywKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2RlZmF1bHRfaGlyYWdhbmFf ZnJvbV9lbnZpcm9ubWVudC5wYXRjaCBiL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2RlZmF1bHRfaGly YWdhbmFfZnJvbV9lbnZpcm9ubWVudC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggZDczMzYzNWFjNWExLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tb3pjL3BhdGNoZXMv ZGVmYXVsdF9oaXJhZ2FuYV9mcm9tX2Vudmlyb25tZW50LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMjAgKzAsMCBAQAotLS0tIG1vemMvc3JjL3VuaXgvaWJ1cy9wcm9wZXJ0eV9oYW5kbGVyLmNj Ci0rKysgbW96Yy9zcmMvdW5peC9pYnVzL3Byb3BlcnR5X2hhbmRsZXIuY2MKLUBAIC00MCw2ICs0 MCw4IEBACi0gI2luY2x1ZGUgInVuaXgvaWJ1cy9tb3pjX2VuZ2luZV9wcm9wZXJ0eS5oIgotICNp bmNsdWRlICJ1bml4L2lidXMvcGF0aF91dGlsLmgiCi0gCi0rI2luY2x1ZGUgPGNzdGRsaWI+Ci0r Ci0gLy8gT24gR25vbWUgU2hlbGwgd2l0aCBJQnVzIDEuNSwgbmV3IHByb3BlcnR5IG5hbWVkICJz eW1ib2wiIGlzIHVzZWQgdG8KLSAvLyByZXByZXNlbnQgdGhlIG1vZGUgaW5kaWNhdG9yIG9uIHRo ZSBzeXN0ZW0gcGFuZWwuIE5vdGUgdGhhdCAic3ltYm9sIiBkb2VzCi0gLy8gbm90IGV4aXN0IGlu IElCdXMgMS40LnguCi1AQCAtODAsNyArODIsNyBAQCBib29sIEdldERpc2FibGVkKElCdXNFbmdp bmUgKmVuZ2luZSkgewotIC8vIE9uIElCdXMgMS40LngsIElCdXMgZXhwZWN0cyB0aGF0IGFuIElN RSBzaG91bGQgYWx3YXlzIGJlIHR1cm5lZCBvbiBhbmQKLSAvLyBJTUUgb24vb2ZmIGtleXMgYXJl IGhhbmRsZWQgYnkgSUJ1cyBpdHNlbGYgcmF0aGVyIHRoYW4gZWFjaCBJTUUuCi0gI2lmIElCVVNf Q0hFQ0tfVkVSU0lPTigxLCA1LCAwKQotLWNvbnN0IGJvb2wga0FjdGl2YXRlZE9uTGF1bmNoID0g ZmFsc2U7Ci0rY29uc3QgYm9vbCBrQWN0aXZhdGVkT25MYXVuY2ggPSAhITo6c3RkOjpnZXRlbnYo IklCVVNfTU9aQ19ERUZBVUxUX0hJUkFHQU5BIik7Ci0gI2Vsc2UKLSBjb25zdCBib29sIGtBY3Rp dmF0ZWRPbkxhdW5jaCA9IHRydWU7Ci0gI2VuZGlmICAvLyBJQnVzPj0xLjUuMApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tb3pjL3BhdGNoZXMvZmNpdHgucGF0Y2ggYi9zcmNwa2dzL21vemMvcGF0Y2hl cy9mY2l0eC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFl ZDZkMDE1MTZmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL2ZjaXR4 LnBhdGNoCkBAIC0wLDAgKzEsMTMgQEAKK0luZGV4OiBtb3pjL3NyYy91bml4L2ZjaXR4L2ZjaXR4 Lmd5cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIG1vemMvc3JjL3VuaXgvZmNpdHgvZmNpdHguZ3lwLm9yaWcK KysrKyBtb3pjL3NyYy91bml4L2ZjaXR4L2ZjaXR4Lmd5cAorQEAgLTk2LDcgKzk2LDcgQEAKKyAg ICAgICAgICc8QChmY2l0eF9kZXBfaW5jbHVkZV9kaXJzKScsCisgICAgICAgXSwKKyAgICAgICAn ZGVmaW5lcyc6IFsKKy0gICAgICAgICdMT0NBTEVESVI9IjwhQChmY2l0eDQtY29uZmlnIC0tcHJl Zml4KS9zaGFyZS9sb2NhbGUvIicsCisrICAgICAgICAnTE9DQUxFRElSPSIvdXNyL3NoYXJlL2xv Y2FsZS8iJywKKyAgICAgICBdLAorICAgICB9LAorICAgXSwKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bW96Yy9wYXRjaGVzL25vLXBhcmFsbGVsLnBhdGNoIGIvc3JjcGtncy9tb3pjL3BhdGNoZXMvbm8t cGFyYWxsZWwucGF0Y2gKaW5kZXggMTRiMjMzNjdmMDllLi41OTUyY2JjNmEwNDAgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL25vLXBhcmFsbGVsLnBhdGNoCisrKyBiL3NyY3BrZ3Mv bW96Yy9wYXRjaGVzL25vLXBhcmFsbGVsLnBhdGNoCkBAIC0xLDYgKzEsOCBAQAotLS0tIG1vemMv c3JjL2J1aWxkX21vemMucHkKK0luZGV4OiBtb3pjL3NyYy9idWlsZF9tb3pjLnB5Cis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gbW96Yy9zcmMvYnVpbGRfbW96Yy5weS5vcmlnCiArKysgbW96Yy9zcmMvYnVpbGRf bW96Yy5weQotQEAgLTcyOCw2ICs3MjgsNyBAQCBkZWYgR3lwTWFpbihvcHRpb25zLCB1bnVzZWRf YXJncyk6CitAQCAtNDk2LDYgKzQ5Niw3IEBAIGRlZiBHeXBNYWluKG9wdGlvbnMsIHVudXNlZF9h cmdzKToKICAgIGd5cF9vcHRpb25zLmV4dGVuZChbJy0tZ2VuZXJhdG9yLW91dHB1dD0uJ10pCiAg ICBzaG9ydF9iYXNlbmFtZSA9IEdldEJ1aWxkU2hvcnRCYXNlTmFtZSh0YXJnZXRfcGxhdGZvcm0p CiAgICBneXBfb3B0aW9ucy5leHRlbmQoWyctRycsICdvdXRwdXRfZGlyPSVzJyAlIHNob3J0X2Jh c2VuYW1lXSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Byb3RvYnVmLTM3MC5w YXRjaCBiL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Byb3RvYnVmLTM3MC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNTlkNGUwYmI5OTVkLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9tb3pjL3BhdGNoZXMvcHJvdG9idWYtMzcwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MzI3ICswLDAgQEAKLS0tLSBtb3pjL3NyYy9kaWN0aW9uYXJ5L3VzZXJfZGljdGlvbmFyeS5jYwot KysrIG1vemMvc3JjL2RpY3Rpb25hcnkvdXNlcl9kaWN0aW9uYXJ5LmNjCi1AQCAtMjg5LDcgKzI4 OSw3IEBAIGNsYXNzIFVzZXJEaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFyeVJlbG9hZGVyIDogcHVi bGljIFRocmVhZCB7Ci0gICAgIH0KLSAKLSAgICAgYXV0b19yZWdpc3Rlcl9tb2RlXyA9IGZhbHNl OwotLSAgICBkaWNfLT5Mb2FkKCooc3RvcmFnZS5nZXQoKSkpOwotKyAgICBkaWNfLT5Mb2FkKCoo c3RvcmFnZS0+c3RvcmFnZSgpKSk7Ci0gICB9Ci0gCi0gIHByaXZhdGU6Ci0tLS0gbW96Yy9zcmMv ZGljdGlvbmFyeS91c2VyX2RpY3Rpb25hcnlfc2Vzc2lvbi5jYwotKysrIG1vemMvc3JjL2RpY3Rp b25hcnkvdXNlcl9kaWN0aW9uYXJ5X3Nlc3Npb24uY2MKLUBAIC0xNDQsNyArMTQ0LDcgQEAgY2xh c3MgVW5kb1JlbmFtZURpY3Rpb25hcnlDb21tYW5kIDogcHVibGljIFVzZXJEaWN0aW9uYXJ5U2Vz c2lvbjo6VW5kb0NvbW1hbmQgewotICAgdmlydHVhbCBib29sIFJ1blVuZG8obW96Yzo6VXNlckRp Y3Rpb25hcnlTdG9yYWdlICpzdG9yYWdlKSB7Ci0gICAgIFVzZXJEaWN0aW9uYXJ5ICpkaWN0aW9u YXJ5ID0KLSAgICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0TXV0YWJsZVVzZXJEaWN0aW9u YXJ5QnlJZCgKLS0gICAgICAgICAgICBzdG9yYWdlLCBkaWN0aW9uYXJ5X2lkXyk7Ci0rICAgICAg ICAgICAgc3RvcmFnZS0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X2lkXyk7Ci0gICAgIGlmIChkaWN0 aW9uYXJ5ID09IE5VTEwpIHsKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLUBAIC0xNjks NyArMTY5LDcgQEAgY2xhc3MgVW5kb0FkZEVudHJ5Q29tbWFuZCA6IHB1YmxpYyBVc2VyRGljdGlv bmFyeVNlc3Npb246OlVuZG9Db21tYW5kIHsKLSAgIHZpcnR1YWwgYm9vbCBSdW5VbmRvKG1vemM6 OlVzZXJEaWN0aW9uYXJ5U3RvcmFnZSAqc3RvcmFnZSkgewotICAgICBVc2VyRGljdGlvbmFyeSAq ZGljdGlvbmFyeSA9Ci0gICAgICAgICBVc2VyRGljdGlvbmFyeVV0aWw6OkdldE11dGFibGVVc2Vy RGljdGlvbmFyeUJ5SWQoCi0tICAgICAgICAgICAgc3RvcmFnZSwgZGljdGlvbmFyeV9pZF8pOwot KyAgICAgICAgICAgIHN0b3JhZ2UtPnN0b3JhZ2UoKSwgZGljdGlvbmFyeV9pZF8pOwotICAgICBp ZiAoZGljdGlvbmFyeSA9PSBOVUxMIHx8IGRpY3Rpb25hcnktPmVudHJpZXNfc2l6ZSgpID09IDAp IHsKLSAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLUBAIC0xOTUsNyArMTk1LDcgQEAgY2xh c3MgVW5kb0VkaXRFbnRyeUNvbW1hbmQgOiBwdWJsaWMgVXNlckRpY3Rpb25hcnlTZXNzaW9uOjpV bmRvQ29tbWFuZCB7Ci0gICB2aXJ0dWFsIGJvb2wgUnVuVW5kbyhtb3pjOjpVc2VyRGljdGlvbmFy eVN0b3JhZ2UgKnN0b3JhZ2UpIHsKLSAgICAgVXNlckRpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPQot ICAgICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpHZXRNdXRhYmxlVXNlckRpY3Rpb25hcnlCeUlk KAotLSAgICAgICAgICAgIHN0b3JhZ2UsIGRpY3Rpb25hcnlfaWRfKTsKLSsgICAgICAgICAgICBz dG9yYWdlLT5zdG9yYWdlKCksIGRpY3Rpb25hcnlfaWRfKTsKLSAgICAgaWYgKGRpY3Rpb25hcnkg PT0gTlVMTCB8fAotICAgICAgICAgaW5kZXhfIDwgMCB8fCBkaWN0aW9uYXJ5LT5lbnRyaWVzX3Np emUoKSA8PSBpbmRleF8pIHsKLSAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtMjQwLDcgKzI0MCw3 IEBAIGNsYXNzIFVuZG9EZWxldGVFbnRyeUNvbW1hbmQgOiBwdWJsaWMgVXNlckRpY3Rpb25hcnlT ZXNzaW9uOjpVbmRvQ29tbWFuZCB7Ci0gICB2aXJ0dWFsIGJvb2wgUnVuVW5kbyhtb3pjOjpVc2Vy RGljdGlvbmFyeVN0b3JhZ2UgKnN0b3JhZ2UpIHsKLSAgICAgVXNlckRpY3Rpb25hcnkgKmRpY3Rp b25hcnkgPQotICAgICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpHZXRNdXRhYmxlVXNlckRpY3Rp b25hcnlCeUlkKAotLSAgICAgICAgICAgIHN0b3JhZ2UsIGRpY3Rpb25hcnlfaWRfKTsKLSsgICAg ICAgICAgICBzdG9yYWdlLT5zdG9yYWdlKCksIGRpY3Rpb25hcnlfaWRfKTsKLSAgICAgaWYgKGRp Y3Rpb25hcnkgPT0gTlVMTCkgewotICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotQEAgLTMw Niw3ICszMDYsNyBAQCBjbGFzcyBVbmRvSW1wb3J0RnJvbVN0cmluZ0NvbW1hbmQgOiBwdWJsaWMg VXNlckRpY3Rpb25hcnlTZXNzaW9uOjpVbmRvQ29tbWFuZCB7Ci0gICB2aXJ0dWFsIGJvb2wgUnVu VW5kbyhtb3pjOjpVc2VyRGljdGlvbmFyeVN0b3JhZ2UgKnN0b3JhZ2UpIHsKLSAgICAgVXNlckRp Y3Rpb25hcnkgKmRpY3Rpb25hcnkgPQotICAgICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpHZXRN dXRhYmxlVXNlckRpY3Rpb25hcnlCeUlkKAotLSAgICAgICAgICAgIHN0b3JhZ2UsIGRpY3Rpb25h cnlfaWRfKTsKLSsgICAgICAgICAgICBzdG9yYWdlLT5zdG9yYWdlKCksIGRpY3Rpb25hcnlfaWRf KTsKLSAgICAgaWYgKGRpY3Rpb25hcnkgPT0gTlVMTCkgewotICAgICAgIHJldHVybiBmYWxzZTsK LSAgICAgfQotQEAgLTM0NSw3ICszNDUsNyBAQCBVc2VyRGljdGlvbmFyeVNlc3Npb246On5Vc2Vy RGljdGlvbmFyeVNlc3Npb24oKSB7Ci0gCi0gLy8gVE9ETyhoaWRlaGlrbykgbW92ZSB0aGlzIHRv IGhlYWRlci4KLSBjb25zdCBVc2VyRGljdGlvbmFyeVN0b3JhZ2UgJlVzZXJEaWN0aW9uYXJ5U2Vz c2lvbjo6c3RvcmFnZSgpIGNvbnN0IHsKLS0gIHJldHVybiAqc3RvcmFnZV87Ci0rICByZXR1cm4g KnN0b3JhZ2VfLT5zdG9yYWdlKCk7Ci0gfQotIG1vemM6OlVzZXJEaWN0aW9uYXJ5U3RvcmFnZSAq VXNlckRpY3Rpb25hcnlTZXNzaW9uOjptdXRhYmxlX3N0b3JhZ2UoKSB7Ci0gICByZXR1cm4gc3Rv cmFnZV8uZ2V0KCk7Ci1AQCAtNDY0LDcgKzQ2NCw3IEBAIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0 YXR1czo6U3RhdHVzIFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6Q3JlYXRlRGljdGlvbmFyeSgKLSAg ICAgY29uc3Qgc3RyaW5nICZkaWN0aW9uYXJ5X25hbWUsIHVpbnQ2NCAqbmV3X2RpY3Rpb25hcnlf aWQpIHsKLSAgIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6U3RhdHVzIHN0YXR1cyA9Ci0g ICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVEaWN0aW9uYXJ5KAotLSAgICAgICAgICBz dG9yYWdlXy5nZXQoKSwgZGljdGlvbmFyeV9uYW1lLCBuZXdfZGljdGlvbmFyeV9pZCk7Ci0rICAg ICAgICAgIHN0b3JhZ2VfLT5zdG9yYWdlKCksIGRpY3Rpb25hcnlfbmFtZSwgbmV3X2RpY3Rpb25h cnlfaWQpOwotICAgaWYgKHN0YXR1cyA9PSBVc2VyRGljdGlvbmFyeUNvbW1hbmRTdGF0dXM6OlVT RVJfRElDVElPTkFSWV9DT01NQU5EX1NVQ0NFU1MpIHsKLSAgICAgQWRkVW5kb0NvbW1hbmQobmV3 IFVuZG9DcmVhdGVEaWN0aW9uYXJ5Q29tbWFuZCk7Ci0gICB9Ci1AQCAtNDg4LDcgKzQ4OCw3IEBA IFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6RGVsZXRlRGljdGlvbmFyeUludGVybmFsKAotICAgaW50 IG9yaWdpbmFsX2luZGV4OwotICAgVXNlckRpY3Rpb25hcnkgKmRlbGV0ZWRfZGljdGlvbmFyeTsK LSAgIGlmICghVXNlckRpY3Rpb25hcnlVdGlsOjpEZWxldGVEaWN0aW9uYXJ5KAotLSAgICAgICAg ICBzdG9yYWdlXy5nZXQoKSwgZGljdGlvbmFyeV9pZCwKLSsgICAgICAgICAgc3RvcmFnZV8tPnN0 b3JhZ2UoKSwgZGljdGlvbmFyeV9pZCwKLSAgICAgICAgICAgJm9yaWdpbmFsX2luZGV4LCAmZGVs ZXRlZF9kaWN0aW9uYXJ5KSkgewotICAgICAvLyBGYWlsZWQgdG8gZGVsZXRlIHRoZSBkaWN0aW9u YXJ5LgotICAgICByZXR1cm4gVXNlckRpY3Rpb25hcnlDb21tYW5kU3RhdHVzOjpVTktOT1dOX0RJ Q1RJT05BUllfSUQ7Ci1AQCAtNTEwLDcgKzUxMCw3IEBAIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0 YXR1czo6U3RhdHVzIFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6UmVuYW1lRGljdGlvbmFyeSgKLSAg ICAgdWludDY0IGRpY3Rpb25hcnlfaWQsIGNvbnN0IHN0cmluZyAmZGljdGlvbmFyeV9uYW1lKSB7 Ci0gICBzdHJpbmcgb3JpZ2luYWxfbmFtZTsKLSAgIGNvbnN0IFVzZXJEaWN0aW9uYXJ5ICpkaWN0 aW9uYXJ5ID0KLS0gICAgICBVc2VyRGljdGlvbmFyeVV0aWw6OkdldFVzZXJEaWN0aW9uYXJ5QnlJ ZCgqc3RvcmFnZV8sIGRpY3Rpb25hcnlfaWQpOwotKyAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6 R2V0VXNlckRpY3Rpb25hcnlCeUlkKCpzdG9yYWdlXy0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X2lk KTsKLSAgIGlmIChkaWN0aW9uYXJ5ICE9IE5VTEwpIHsKLSAgICAgLy8gTm90ZSB0aGF0IGlmIGRp Y3Rpb25hcnkgaXMgbnVsbCwgaXQgbWVhbnMgdGhlIGRpY3Rpb25hcnlfaWQgaXMgaW52YWxpZAot ICAgICAvLyBzbyBmb2xsb3dpbmcgUmVuYW1lRGljdGlvbmFyeSB3aWxsIGZhaWwsIGFuZCBlcnJv ciBoYW5kbGluZyBpcyBkb25lCi1AQCAtNTQ3LDcgKzU0Nyw3IEBAIFVzZXJEaWN0aW9uYXJ5Q29t bWFuZFN0YXR1czo6U3RhdHVzIFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6QWRkRW50cnkoCi0gICAg IHVpbnQ2NCBkaWN0aW9uYXJ5X2lkLCBjb25zdCBVc2VyRGljdGlvbmFyeTo6RW50cnkgJmVudHJ5 KSB7Ci0gICBVc2VyRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9Ci0gICAgICAgVXNlckRpY3Rpb25h cnlVdGlsOjpHZXRNdXRhYmxlVXNlckRpY3Rpb25hcnlCeUlkKAotLSAgICAgICAgICBzdG9yYWdl Xy5nZXQoKSwgZGljdGlvbmFyeV9pZCk7Ci0rICAgICAgICAgIHN0b3JhZ2VfLT5zdG9yYWdlKCks IGRpY3Rpb25hcnlfaWQpOwotICAgaWYgKGRpY3Rpb25hcnkgPT0gTlVMTCkgewotICAgICByZXR1 cm4gVXNlckRpY3Rpb25hcnlDb21tYW5kU3RhdHVzOjpVTktOT1dOX0RJQ1RJT05BUllfSUQ7Ci0g ICB9Ci1AQCAtNTc1LDcgKzU3NSw3IEBAIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6U3Rh dHVzIFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6RWRpdEVudHJ5KAotICAgICB1aW50NjQgZGljdGlv bmFyeV9pZCwgaW50IGluZGV4LCBjb25zdCBVc2VyRGljdGlvbmFyeTo6RW50cnkgJmVudHJ5KSB7 Ci0gICBVc2VyRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9Ci0gICAgICAgVXNlckRpY3Rpb25hcnlV dGlsOjpHZXRNdXRhYmxlVXNlckRpY3Rpb25hcnlCeUlkKAotLSAgICAgICAgICBzdG9yYWdlXy5n ZXQoKSwgZGljdGlvbmFyeV9pZCk7Ci0rICAgICAgICAgIHN0b3JhZ2VfLT5zdG9yYWdlKCksIGRp Y3Rpb25hcnlfaWQpOwotICAgaWYgKGRpY3Rpb25hcnkgPT0gTlVMTCkgewotICAgICByZXR1cm4g VXNlckRpY3Rpb25hcnlDb21tYW5kU3RhdHVzOjpVTktOT1dOX0RJQ1RJT05BUllfSUQ7Ci0gICB9 Ci1AQCAtNjA0LDcgKzYwNCw3IEBAIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6U3RhdHVz IFVzZXJEaWN0aW9uYXJ5U2Vzc2lvbjo6RGVsZXRlRW50cnkoCi0gICAgIHVpbnQ2NCBkaWN0aW9u YXJ5X2lkLCBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+ICZpbmRleF9saXN0KSB7Ci0gICBVc2VyRGlj dGlvbmFyeSAqZGljdGlvbmFyeSA9Ci0gICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpHZXRNdXRh YmxlVXNlckRpY3Rpb25hcnlCeUlkKAotLSAgICAgICAgICBzdG9yYWdlXy5nZXQoKSwgZGljdGlv bmFyeV9pZCk7Ci0rICAgICAgICAgIHN0b3JhZ2VfLT5zdG9yYWdlKCksIGRpY3Rpb25hcnlfaWQp OwotICAgaWYgKGRpY3Rpb25hcnkgPT0gTlVMTCkgewotICAgICByZXR1cm4gVXNlckRpY3Rpb25h cnlDb21tYW5kU3RhdHVzOjpVTktOT1dOX0RJQ1RJT05BUllfSUQ7Ci0gICB9Ci1AQCAtNjQ0LDcg KzY0NCw3IEBAIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6U3RhdHVzIFVzZXJEaWN0aW9u YXJ5U2Vzc2lvbjo6SW1wb3J0RnJvbVN0cmluZygKLSAgICAgdWludDY0IGRpY3Rpb25hcnlfaWQs IGNvbnN0IHN0cmluZyAmZGF0YSkgewotICAgVXNlckRpY3Rpb25hcnkgKmRpY3Rpb25hcnkgPQot ICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0TXV0YWJsZVVzZXJEaWN0aW9uYXJ5QnlJZCgK LS0gICAgICAgICAgc3RvcmFnZV8uZ2V0KCksIGRpY3Rpb25hcnlfaWQpOwotKyAgICAgICAgICBz dG9yYWdlXy0+c3RvcmFnZSgpLCBkaWN0aW9uYXJ5X2lkKTsKLSAgIGlmIChkaWN0aW9uYXJ5ID09 IE5VTEwpIHsKLSAgICAgcmV0dXJuIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6VU5LTk9X Tl9ESUNUSU9OQVJZX0lEOwotICAgfQotQEAgLTY5OSw3ICs2OTksNyBAQCBVc2VyRGljdGlvbmFy eVNlc3Npb246OkltcG9ydFRvTmV3RGljdGlvbmFyeUZyb21TdHJpbmcoCi0gICAgIHVpbnQ2NCAq bmV3X2RpY3Rpb25hcnlfaWQpIHsKLSAgIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6U3Rh dHVzIHN0YXR1cyA9Ci0gICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVEaWN0aW9uYXJ5 KAotLSAgICAgICAgICBzdG9yYWdlXy5nZXQoKSwgZGljdGlvbmFyeV9uYW1lLCBuZXdfZGljdGlv bmFyeV9pZCk7Ci0rICAgICAgICAgIHN0b3JhZ2VfLT5zdG9yYWdlKCksIGRpY3Rpb25hcnlfbmFt ZSwgbmV3X2RpY3Rpb25hcnlfaWQpOwotICAgaWYgKHN0YXR1cyAhPSBVc2VyRGljdGlvbmFyeUNv bW1hbmRTdGF0dXM6OlVTRVJfRElDVElPTkFSWV9DT01NQU5EX1NVQ0NFU1MpIHsKLSAgICAgcmV0 dXJuIHN0YXR1czsKLSAgIH0KLUBAIC03MDksNyArNzA5LDcgQEAgVXNlckRpY3Rpb25hcnlTZXNz aW9uOjpJbXBvcnRUb05ld0RpY3Rpb25hcnlGcm9tU3RyaW5nKAotIAotICAgVXNlckRpY3Rpb25h cnkgKmRpY3Rpb25hcnkgPQotICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6R2V0TXV0YWJsZVVz ZXJEaWN0aW9uYXJ5QnlJZCgKLS0gICAgICAgICAgc3RvcmFnZV8uZ2V0KCksICpuZXdfZGljdGlv bmFyeV9pZCk7Ci0rICAgICAgICAgIHN0b3JhZ2VfLT5zdG9yYWdlKCksICpuZXdfZGljdGlvbmFy eV9pZCk7Ci0gICBpZiAoZGljdGlvbmFyeSA9PSBOVUxMKSB7Ci0gICAgIC8vIFRoZSBkaWN0aW9u YXJ5IHNob3VsZCBiZSBhbHdheXMgZm91bmQuCi0gICAgIHJldHVybiBVc2VyRGljdGlvbmFyeUNv bW1hbmRTdGF0dXM6OlVOS05PV05fRVJST1I7Ci1AQCAtNzI4LDcgKzcyOCw3IEBAIGJvb2wgVXNl ckRpY3Rpb25hcnlTZXNzaW9uOjpFbnN1cmVOb25FbXB0eVN0b3JhZ2UoKSB7Ci0gICB1aW50NjQg bmV3X2RpY3Rpb25hcnlfaWQ7Ci0gICBVc2VyRGljdGlvbmFyeUNvbW1hbmRTdGF0dXM6OlN0YXR1 cyBzdGF0dXMgPQotICAgICAgIFVzZXJEaWN0aW9uYXJ5VXRpbDo6Q3JlYXRlRGljdGlvbmFyeSgK LS0gICAgICAgICAgc3RvcmFnZV8uZ2V0KCksIGRlZmF1bHRfZGljdGlvbmFyeV9uYW1lXywgJm5l d19kaWN0aW9uYXJ5X2lkKTsKLSsgICAgICAgICAgc3RvcmFnZV8tPnN0b3JhZ2UoKSwgZGVmYXVs dF9kaWN0aW9uYXJ5X25hbWVfLCAmbmV3X2RpY3Rpb25hcnlfaWQpOwotICAgQ0hFQ0tfRVEoCi0g ICAgICAgc3RhdHVzLCBVc2VyRGljdGlvbmFyeUNvbW1hbmRTdGF0dXM6OlVTRVJfRElDVElPTkFS WV9DT01NQU5EX1NVQ0NFU1MpOwotICAgcmV0dXJuIHRydWU7Ci0tLS0gbW96Yy9zcmMvZGljdGlv bmFyeS91c2VyX2RpY3Rpb25hcnlfc3RvcmFnZS5jYwotKysrIG1vemMvc3JjL2RpY3Rpb25hcnkv dXNlcl9kaWN0aW9uYXJ5X3N0b3JhZ2UuY2MKLUBAIC0xMDksNyArMTA5LDcgQEAgYm9vbCBVc2Vy RGljdGlvbmFyeVN0b3JhZ2U6OkxvYWRJbnRlcm5hbCgpIHsKLSAgIG1vemM6OnByb3RvYnVmOjpp bzo6SXN0cmVhbUlucHV0U3RyZWFtIHplcm9fY29weV9pbnB1dCgmaWZzKTsKLSAgIG1vemM6OnBy b3RvYnVmOjppbzo6Q29kZWRJbnB1dFN0cmVhbSBkZWNvZGVyKCZ6ZXJvX2NvcHlfaW5wdXQpOwot ICAgZGVjb2Rlci5TZXRUb3RhbEJ5dGVzTGltaXQoa0RlZmF1bHRUb3RhbEJ5dGVzTGltaXQsIC0x KTsKLS0gIGlmICghUGFyc2VGcm9tQ29kZWRTdHJlYW0oJmRlY29kZXIpKSB7Ci0rICBpZiAoIXN0 b3JhZ2VfLlBhcnNlRnJvbUNvZGVkU3RyZWFtKCZkZWNvZGVyKSkgewotICAgICBMT0coRVJST1Ip IDw8ICJGYWlsZWQgdG8gcGFyc2UiOwotICAgICBpZiAoIWRlY29kZXIuQ29uc3VtZWRFbnRpcmVN ZXNzYWdlKCkgfHwgIWlmcy5lb2YoKSkgewotICAgICAgIExPRyhFUlJPUikgPDwgIlBhcnNlRnJv bVN0cmVhbSBmYWlsZWQ6IGZpbGUgc2VlbXMgYnJva2VuIjsKLUBAIC0xNDEsNyArMTQxLDcgQEAg Ym9vbCBVc2VyRGljdGlvbmFyeVN0b3JhZ2U6OkxvYWQoKSB7Ci0gICAgIGNvbnN0IFVzZXJEaWN0 aW9uYXJ5ICZkaWN0ID0gZGljdGlvbmFyaWVzKGkpOwotICAgICBpZiAoZGljdC5pZCgpID09IDAp IHsKLSAgICAgICBtdXRhYmxlX2RpY3Rpb25hcmllcyhpKS0+c2V0X2lkKAotLSAgICAgICAgICBV c2VyRGljdGlvbmFyeVV0aWw6OkNyZWF0ZU5ld0RpY3Rpb25hcnlJZCgqdGhpcykpOwotKyAgICAg ICAgICBVc2VyRGljdGlvbmFyeVV0aWw6OkNyZWF0ZU5ld0RpY3Rpb25hcnlJZChzdG9yYWdlXykp OwotICAgICB9Ci0gICB9Ci0gCi1AQCAtMTcxLDcgKzE3MSw3IEBAIGJvb2wgVXNlckRpY3Rpb25h cnlTdG9yYWdlOjpTYXZlKCkgewotICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotIAotLSAg ICBpZiAoIVNlcmlhbGl6ZVRvT3N0cmVhbSgmb2ZzKSkgewotKyAgICBpZiAoIXN0b3JhZ2VfLlNl cmlhbGl6ZVRvT3N0cmVhbSgmb2ZzKSkgewotICAgICAgIExPRyhFUlJPUikgPDwgIlNlcmlhbGl6 ZVRvU3RyaW5nIGZhaWxlZCI7Ci0gICAgICAgbGFzdF9lcnJvcl90eXBlXyA9IFNZTkNfRkFJTFVS RTsKLSAgICAgICByZXR1cm4gZmFsc2U7Ci1AQCAtMjQxLDcgKzI0MSw3IEBAIGJvb2wgVXNlckRp Y3Rpb25hcnlTdG9yYWdlOjpFeHBvcnREaWN0aW9uYXJ5KAotIGJvb2wgVXNlckRpY3Rpb25hcnlT dG9yYWdlOjpDcmVhdGVEaWN0aW9uYXJ5KAotICAgICBjb25zdCBzdHJpbmcgJmRpY19uYW1lLCB1 aW50NjQgKm5ld19kaWNfaWQpIHsKLSAgIFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1czo6U3Rh dHVzIHN0YXR1cyA9Ci0tICAgICAgVXNlckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVEaWN0aW9uYXJ5 KHRoaXMsIGRpY19uYW1lLCBuZXdfZGljX2lkKTsKLSsgICAgICBVc2VyRGljdGlvbmFyeVV0aWw6 OkNyZWF0ZURpY3Rpb25hcnkoJnN0b3JhZ2VfLCBkaWNfbmFtZSwgbmV3X2RpY19pZCk7Ci0gICAv LyBVcGRhdGUgbGFzdF9lcnJvcl90eXBlXwotICAgc3dpdGNoIChzdGF0dXMpIHsKLSAgICAgY2Fz ZSBVc2VyRGljdGlvbmFyeUNvbW1hbmRTdGF0dXM6OkRJQ1RJT05BUllfTkFNRV9FTVBUWToKLUBA IC0yNzMsNyArMjczLDcgQEAgYm9vbCBVc2VyRGljdGlvbmFyeVN0b3JhZ2U6OkNyZWF0ZURpY3Rp b25hcnkoCi0gfQotIAotIGJvb2wgVXNlckRpY3Rpb25hcnlTdG9yYWdlOjpEZWxldGVEaWN0aW9u YXJ5KHVpbnQ2NCBkaWNfaWQpIHsKLS0gIGlmICghVXNlckRpY3Rpb25hcnlVdGlsOjpEZWxldGVE aWN0aW9uYXJ5KHRoaXMsIGRpY19pZCwgTlVMTCwgTlVMTCkpIHsKLSsgIGlmICghVXNlckRpY3Rp b25hcnlVdGlsOjpEZWxldGVEaWN0aW9uYXJ5KCZzdG9yYWdlXywgZGljX2lkLCBOVUxMLCBOVUxM KSkgewotICAgICAvLyBGYWlsZWQgdG8gZGVsZXRlIGRpY3Rpb25hcnkuCi0gICAgIGxhc3RfZXJy b3JfdHlwZV8gPSBJTlZBTElEX0RJQ1RJT05BUllfSUQ7Ci0gICAgIHJldHVybiBmYWxzZTsKLUBA IC0zMTgsNyArMzE4LDcgQEAgYm9vbCBVc2VyRGljdGlvbmFyeVN0b3JhZ2U6OlJlbmFtZURpY3Rp b25hcnkodWludDY0IGRpY19pZCwKLSB9Ci0gCi0gaW50IFVzZXJEaWN0aW9uYXJ5U3RvcmFnZTo6 R2V0VXNlckRpY3Rpb25hcnlJbmRleCh1aW50NjQgZGljX2lkKSBjb25zdCB7Ci0tICByZXR1cm4g VXNlckRpY3Rpb25hcnlVdGlsOjpHZXRVc2VyRGljdGlvbmFyeUluZGV4QnlJZCgqdGhpcywgZGlj X2lkKTsKLSsgIHJldHVybiBVc2VyRGljdGlvbmFyeVV0aWw6OkdldFVzZXJEaWN0aW9uYXJ5SW5k ZXhCeUlkKHN0b3JhZ2VfLCBkaWNfaWQpOwotIH0KLSAKLSBib29sIFVzZXJEaWN0aW9uYXJ5U3Rv cmFnZTo6R2V0VXNlckRpY3Rpb25hcnlJZChjb25zdCBzdHJpbmcgJmRpY19uYW1lLAotQEAgLTMz NSw3ICszMzUsNyBAQCBib29sIFVzZXJEaWN0aW9uYXJ5U3RvcmFnZTo6R2V0VXNlckRpY3Rpb25h cnlJZChjb25zdCBzdHJpbmcgJmRpY19uYW1lLAotIAotIHVzZXJfZGljdGlvbmFyeTo6VXNlckRp Y3Rpb25hcnkgKlVzZXJEaWN0aW9uYXJ5U3RvcmFnZTo6R2V0VXNlckRpY3Rpb25hcnkoCi0gICAg IHVpbnQ2NCBkaWNfaWQpIHsKLS0gIHJldHVybiBVc2VyRGljdGlvbmFyeVV0aWw6OkdldE11dGFi bGVVc2VyRGljdGlvbmFyeUJ5SWQodGhpcywgZGljX2lkKTsKLSsgIHJldHVybiBVc2VyRGljdGlv bmFyeVV0aWw6OkdldE11dGFibGVVc2VyRGljdGlvbmFyeUJ5SWQoJnN0b3JhZ2VfLCBkaWNfaWQp OwotIH0KLSAKLSBVc2VyRGljdGlvbmFyeVN0b3JhZ2U6OlVzZXJEaWN0aW9uYXJ5U3RvcmFnZUVy cm9yVHlwZQotQEAgLTM2MSwxNCArMzYxLDE0IEBAIGJvb2wgVXNlckRpY3Rpb25hcnlTdG9yYWdl OjpBZGRUb0F1dG9SZWdpc3RlcmVkRGljdGlvbmFyeSgKLSAKLSAgIFVzZXJEaWN0aW9uYXJ5ICpk aWMgPSBOVUxMOwotICAgaWYgKGF1dG9faW5kZXggPT0gLTEpIHsKLS0gICAgaWYgKFVzZXJEaWN0 aW9uYXJ5VXRpbDo6SXNTdG9yYWdlRnVsbCgqdGhpcykpIHsKLSsgICAgaWYgKFVzZXJEaWN0aW9u YXJ5VXRpbDo6SXNTdG9yYWdlRnVsbChzdG9yYWdlXykpIHsKLSAgICAgICBsYXN0X2Vycm9yX3R5 cGVfID0gVE9PX01BTllfRElDVElPTkFSSUVTOwotICAgICAgIExPRyhFUlJPUikgPDwgInRvbyBt YW55IGRpY3Rpb25hcmllcyI7Ci0gICAgICAgVW5Mb2NrKCk7Ci0gICAgICAgcmV0dXJuIGZhbHNl OwotICAgICB9Ci0gICAgIGRpYyA9IGFkZF9kaWN0aW9uYXJpZXMoKTsKLS0gICAgZGljLT5zZXRf aWQoVXNlckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVOZXdEaWN0aW9uYXJ5SWQoKnRoaXMpKTsKLSsg ICAgZGljLT5zZXRfaWQoVXNlckRpY3Rpb25hcnlVdGlsOjpDcmVhdGVOZXdEaWN0aW9uYXJ5SWQo c3RvcmFnZV8pKTsKLSAgICAgZGljLT5zZXRfbmFtZShrQXV0b1JlZ2lzdGVyZWREaWN0aW9uYXJ5 TmFtZSk7Ci0gICB9IGVsc2UgewotICAgICBkaWMgPSBtdXRhYmxlX2RpY3Rpb25hcmllcyhhdXRv X2luZGV4KTsKLUBAIC00MTAsNyArNDEwLDcgQEAgYm9vbCBVc2VyRGljdGlvbmFyeVN0b3JhZ2U6 OkFkZFRvQXV0b1JlZ2lzdGVyZWREaWN0aW9uYXJ5KAotIH0KLSAKLSBib29sIFVzZXJEaWN0aW9u YXJ5U3RvcmFnZTo6Q29udmVydFN5bmNEaWN0aW9uYXJpZXNUb05vcm1hbERpY3Rpb25hcmllcygp IHsKLS0gIGlmIChDb3VudFN5bmNhYmxlRGljdGlvbmFyaWVzKCp0aGlzKSA9PSAwKSB7Ci0rICBp ZiAoQ291bnRTeW5jYWJsZURpY3Rpb25hcmllcyhzdG9yYWdlXykgPT0gMCkgewotICAgICByZXR1 cm4gZmFsc2U7Ci0gICB9Ci0gCi1AQCAtNDQ1LDcgKzQ0NSw3IEBAIGJvb2wgVXNlckRpY3Rpb25h cnlTdG9yYWdlOjpDb252ZXJ0U3luY0RpY3Rpb25hcmllc1RvTm9ybWFsRGljdGlvbmFyaWVzKCkg ewotICAgICAgICAgICBrRGljdGlvbmFyeU5hbWVDb252ZXJ0ZWRGcm9tU3luY2FibGVEaWN0aW9u YXJ5OwotICAgICAgIGludCBpbmRleCA9IDA7Ci0gICAgICAgd2hpbGUgKFVzZXJEaWN0aW9uYXJ5 VXRpbDo6VmFsaWRhdGVEaWN0aW9uYXJ5TmFtZSgKLS0gICAgICAgICAgICAgICAgICp0aGlzLCBu ZXdfZGljdGlvbmFyeV9uYW1lKQotKyAgICAgICAgICAgICAgICAgc3RvcmFnZV8sIG5ld19kaWN0 aW9uYXJ5X25hbWUpCi0gICAgICAgICAgICAgICE9IFVzZXJEaWN0aW9uYXJ5Q29tbWFuZFN0YXR1 czo6VVNFUl9ESUNUSU9OQVJZX0NPTU1BTkRfU1VDQ0VTUykgewotICAgICAgICAgKytpbmRleDsK LSAgICAgICAgIG5ld19kaWN0aW9uYXJ5X25hbWUgPSBVdGlsOjpTdHJpbmdQcmludGYoCi1AQCAt NDU2LDcgKzQ1Niw3IEBAIGJvb2wgVXNlckRpY3Rpb25hcnlTdG9yYWdlOjpDb252ZXJ0U3luY0Rp Y3Rpb25hcmllc1RvTm9ybWFsRGljdGlvbmFyaWVzKCkgewotICAgICBkaWMtPnNldF9zeW5jYWJs ZShmYWxzZSk7Ci0gICB9Ci0gCi0tICBEQ0hFQ0tfRVEoMCwgQ291bnRTeW5jYWJsZURpY3Rpb25h cmllcygqdGhpcykpOwotKyAgRENIRUNLX0VRKDAsIENvdW50U3luY2FibGVEaWN0aW9uYXJpZXMo c3RvcmFnZV8pKTsKLSAKLSAgIHJldHVybiB0cnVlOwotIH0KLS0tLSBtb3pjL3NyYy9kaWN0aW9u YXJ5L3VzZXJfZGljdGlvbmFyeV9zdG9yYWdlLmgKLSsrKyBtb3pjL3NyYy9kaWN0aW9uYXJ5L3Vz ZXJfZGljdGlvbmFyeV9zdG9yYWdlLmgKLUBAIC03NCw4ICs3NCwyMCBAQCBjbGFzcyBQcm9jZXNz TXV0ZXg7Ci0gCi0gLy8gSW5oZXJpdCBmcm9tIFByb3RvY29sQnVmZmVyCi0gLy8gVE9ETyhoaWRl aGlrbyk6IEdldCByaWQgb2YgdGhpcyBpbXBsZW1lbnRhdGlvbi4KLS1jbGFzcyBVc2VyRGljdGlv bmFyeVN0b3JhZ2UgOiBwdWJsaWMgdXNlcl9kaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFyeVN0b3Jh Z2UgewotK2NsYXNzIFVzZXJEaWN0aW9uYXJ5U3RvcmFnZSB7Ci0rIHByaXZhdGU6Ci0rICB1c2Vy X2RpY3Rpb25hcnk6OlVzZXJEaWN0aW9uYXJ5U3RvcmFnZSBzdG9yYWdlXzsKLSAgcHVibGljOgot KyAgc3RhdGljIGNvbnN0IHVzZXJfZGljdGlvbmFyeTo6VXNlckRpY3Rpb25hcnlTdG9yYWdlJiBk ZWZhdWx0X2luc3RhbmNlKCkgeyByZXR1cm4gdXNlcl9kaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFy eVN0b3JhZ2U6OmRlZmF1bHRfaW5zdGFuY2UoKTsgfQotKyAgdXNlcl9kaWN0aW9uYXJ5OjpVc2Vy RGljdGlvbmFyeVN0b3JhZ2UgKnN0b3JhZ2UoKSB7IHJldHVybiAmc3RvcmFnZV87IH0KLSsgIGlu dCBkaWN0aW9uYXJpZXNfc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLmRpY3Rpb25hcmll c19zaXplKCk7IH0KLSsgIHZvaWQgY2xlYXJfZGljdGlvbmFyaWVzKCkgeyBzdG9yYWdlXy5jbGVh cl9kaWN0aW9uYXJpZXMoKTsgfQotKyAgdXNlcl9kaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFyeSog bXV0YWJsZV9kaWN0aW9uYXJpZXMoaW50IGluZGV4KSB7IHJldHVybiBzdG9yYWdlXy5tdXRhYmxl X2RpY3Rpb25hcmllcyhpbmRleCk7IH0KLSsgIDo6Z29vZ2xlOjpwcm90b2J1Zjo6UmVwZWF0ZWRQ dHJGaWVsZDx1c2VyX2RpY3Rpb25hcnk6OlVzZXJEaWN0aW9uYXJ5ID4qIG11dGFibGVfZGljdGlv bmFyaWVzKCkgeyByZXR1cm4gc3RvcmFnZV8ubXV0YWJsZV9kaWN0aW9uYXJpZXMoKTsgfQotKyAg Y29uc3QgOjpnb29nbGU6OnByb3RvYnVmOjpSZXBlYXRlZFB0ckZpZWxkPHVzZXJfZGljdGlvbmFy eTo6VXNlckRpY3Rpb25hcnkgPiYgZGljdGlvbmFyaWVzKCkgY29uc3QgeyByZXR1cm4gc3RvcmFn ZV8uZGljdGlvbmFyaWVzKCk7IH0KLSsgIGNvbnN0IHVzZXJfZGljdGlvbmFyeTo6VXNlckRpY3Rp b25hcnkmIGRpY3Rpb25hcmllcyhpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN0b3JhZ2VfLmRp Y3Rpb25hcmllcyhpbmRleCk7IH0KLSsgIHVzZXJfZGljdGlvbmFyeTo6VXNlckRpY3Rpb25hcnkq IGFkZF9kaWN0aW9uYXJpZXMoKSB7IHJldHVybiBzdG9yYWdlXy5hZGRfZGljdGlvbmFyaWVzKCk7 IH0KLSsKLSAgIHR5cGVkZWYgdXNlcl9kaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFyeSBVc2VyRGlj dGlvbmFyeTsKLSAgIHR5cGVkZWYgdXNlcl9kaWN0aW9uYXJ5OjpVc2VyRGljdGlvbmFyeTo6RW50 cnkgVXNlckRpY3Rpb25hcnlFbnRyeTsKLSAKLS0tLSBtb3pjL3NyYy9wcmVkaWN0aW9uL3VzZXJf aGlzdG9yeV9wcmVkaWN0b3IuY2MKLSsrKyBtb3pjL3NyYy9wcmVkaWN0aW9uL3VzZXJfaGlzdG9y eV9wcmVkaWN0b3IuY2MKLUBAIC0yOTEsNyArMjkxLDcgQEAgYm9vbCBVc2VySGlzdG9yeVN0b3Jh Z2U6OkxvYWQoKSB7Ci0gICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLSAKLS0gIGlmICghUGFyc2VG cm9tU3RyaW5nKGlucHV0KSkgewotKyAgaWYgKCF1c2VySGlzdG9yeV8uUGFyc2VGcm9tU3RyaW5n KGlucHV0KSkgewotICAgICBMT0coRVJST1IpIDw8ICJQYXJzZUZyb21TdHJpbmcgZmFpbGVkLiBt ZXNzYWdlIGxvb2tzIGJyb2tlbiI7Ci0gICAgIHJldHVybiBmYWxzZTsKLSAgIH0KLUBAIC0zMDcs NyArMzA3LDcgQEAgYm9vbCBVc2VySGlzdG9yeVN0b3JhZ2U6OlNhdmUoKSBjb25zdCB7Ci0gICB9 Ci0gCi0gICBzdHJpbmcgb3V0cHV0OwotLSAgaWYgKCFBcHBlbmRUb1N0cmluZygmb3V0cHV0KSkg ewotKyAgaWYgKCF1c2VySGlzdG9yeV8uQXBwZW5kVG9TdHJpbmcoJm91dHB1dCkpIHsKLSAgICAg TE9HKEVSUk9SKSA8PCAiQXBwZW5kVG9TdHJpbmcgZmFpbGVkIjsKLSAgICAgcmV0dXJuIGZhbHNl OwotICAgfQotLS0tIG1vemMvc3JjL3ByZWRpY3Rpb24vdXNlcl9oaXN0b3J5X3ByZWRpY3Rvci5o Ci0rKysgbW96Yy9zcmMvcHJlZGljdGlvbi91c2VyX2hpc3RvcnlfcHJlZGljdG9yLmgKLUBAIC02 MSw4ICs2MSwxMyBAQCBjbGFzcyBTZWdtZW50czsKLSBjbGFzcyBVc2VySGlzdG9yeVByZWRpY3Rv clN5bmNlcjsKLSAKLSAvLyBBZGRlZCBzZXJpYWxpemF0aW9uIG1ldGhvZCBmb3IgVXNlckhpc3Rv cnkuCi0tY2xhc3MgVXNlckhpc3RvcnlTdG9yYWdlIDogcHVibGljIG1vemM6OnVzZXJfaGlzdG9y eV9wcmVkaWN0b3I6OlVzZXJIaXN0b3J5IHsKLStjbGFzcyBVc2VySGlzdG9yeVN0b3JhZ2Ugewot KyBwcml2YXRlOgotKyAgdXNlcl9oaXN0b3J5X3ByZWRpY3Rvcjo6VXNlckhpc3RvcnkgdXNlckhp c3RvcnlfOwotICBwdWJsaWM6Ci0rICBpbnQgZW50cmllc19zaXplKCkgY29uc3QgeyByZXR1cm4g dXNlckhpc3RvcnlfLmVudHJpZXNfc2l6ZSgpOyB9Ci0rICBjb25zdCB1c2VyX2hpc3RvcnlfcHJl ZGljdG9yOjpVc2VySGlzdG9yeV9FbnRyeSYgZW50cmllcyhpbnQgaW5kZXgpIGNvbnN0IHsgcmV0 dXJuIHVzZXJIaXN0b3J5Xy5lbnRyaWVzKGluZGV4KTsgfQotKyAgdXNlcl9oaXN0b3J5X3ByZWRp Y3Rvcjo6VXNlckhpc3RvcnlfRW50cnkqIGFkZF9lbnRyaWVzKCkgeyByZXR1cm4gdXNlckhpc3Rv cnlfLmFkZF9lbnRyaWVzKCk7IH0KLSAgIGV4cGxpY2l0IFVzZXJIaXN0b3J5U3RvcmFnZShjb25z dCBzdHJpbmcgJmZpbGVuYW1lKTsKLSAgIH5Vc2VySGlzdG9yeVN0b3JhZ2UoKTsKLSAKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3JlaXdhLWVyYS5wYXRjaCBiL3NyY3BrZ3MvbW96 Yy9wYXRjaGVzL3JlaXdhLWVyYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLmFiMTc4YTA5YTBiNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96Yy9w YXRjaGVzL3JlaXdhLWVyYS5wYXRjaApAQCAtMCwwICsxLDEzIEBACitJbmRleDogbW96Yy9zcmMv ZGF0YS9kaWN0aW9uYXJ5X29zcy9kaWN0aW9uYXJ5MDgudHh0Cis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gbW96 Yy9zcmMvZGF0YS9kaWN0aW9uYXJ5X29zcy9kaWN0aW9uYXJ5MDgudHh0Lm9yaWcKKysrKyBtb3pj L3NyYy9kYXRhL2RpY3Rpb25hcnlfb3NzL2RpY3Rpb25hcnkwOC50eHQKK0BAIC02MjY2LDYgKzYy NjYsOCBAQAorIOOCjOOBhOOCjOOBhOOBqAkxMgkxMgk3Mjg4CeOCjOOBhOOCjOOBhOOBqAorIOOC jOOBhOOCjeOBhgkxODQ3CTE4NDcJNzE1MQnnjrLnk48KKyDjgozjgYTjgo8JMTg0NwkxODQ3CTgy NTMJ5L6L6KmxCisr44KM44GE44KPCTE4OTUJMTg5NQkxNjkwCeS7pOWSjAorK+OCjOOBhOOCjwkx ODk4CTE4OTgJNDAwMAnku6TlkowKKyDjgozjgYTjgpPjgZPjg7zjgagJMTg0NwkxODQ3CTU1NjQJ 44Os44Kk44Oz44Kz44O844OICisg44KM44GE44KT44GY44KD44O8CTE4NDcJMTg0Nwk3NTU5CeOD rOOCpOODs+OCuOODo+ODvAorIOOCjOOBhOOCk+OBmgkxOTE3CTE5MTcJMzQ5Nwnjg6zjgqTjg7Pj groKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Vuc2lnbmVkLWludC5wYXRjaCBi L3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Vuc2lnbmVkLWludC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgyM2RiOWYyMTk5MwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvbW96Yy9wYXRjaGVzL3Vuc2lnbmVkLWludC5wYXRjaApAQCAtMCwwICsxLDIxMCBA QAorSW5kZXg6IG1vemMvc3JjL2d1aS93b3JkX3JlZ2lzdGVyX2RpYWxvZy93b3JkX3JlZ2lzdGVy X2RpYWxvZy5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG1vemMvc3JjL2d1aS93b3JkX3JlZ2lzdGVyX2Rp YWxvZy93b3JkX3JlZ2lzdGVyX2RpYWxvZy5jYworKysrIG1vemMvc3JjL2d1aS93b3JkX3JlZ2lz dGVyX2RpYWxvZy93b3JkX3JlZ2lzdGVyX2RpYWxvZy5jYworQEAgLTk0LDcgKzk0LDcgQEAgUVN0 cmluZyBHZXRFbnYoY29uc3QgY2hhciAqZW52bmFtZSkgeworICAgICAgIHJldHVybiBRU3RyaW5n Ojpmcm9tVXRmMTYocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1c2hvcnQgKj4oYnVmZmVyLmdldCgp KSk7CisgICAgIH0gZWxzZSB7CisgICAgICAgLy8gVGhpcyBpcyBhIGZhbGxiYWNrIGp1c3QgaW4g Y2FzZS4KKy0gICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbVVjczQocmVpbnRlcnByZXRfY2FzdDxj b25zdCB1aW50ICo+KGJ1ZmZlci5nZXQoKSkpOworKyAgICAgIHJldHVybiBRU3RyaW5nOjpmcm9t VWNzNChyZWludGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkICo+KGJ1ZmZlci5nZXQoKSkpOwor ICAgICB9CisgICB9CisgICByZXR1cm4gUUxhdGluMVN0cmluZygiIik7CitJbmRleDogbW96Yy9z cmMvdW5peC9mY2l0eC9zdXJyb3VuZGluZ190ZXh0X3V0aWwuY2MKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBt b3pjL3NyYy91bml4L2ZjaXR4L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5jYworKysrIG1vemMvc3Jj L3VuaXgvZmNpdHgvc3Vycm91bmRpbmdfdGV4dF91dGlsLmNjCitAQCAtNDEsMTAgKzQxLDEwIEBA CisgbmFtZXNwYWNlIG1vemMgeworIG5hbWVzcGFjZSBmY2l0eCB7CisgCistYm9vbCBTdXJyb3Vu ZGluZ1RleHRVdGlsOjpHZXRTYWZlRGVsdGEodWludCBmcm9tLCB1aW50IHRvLCBpbnQzMiAqZGVs dGEpIHsKKytib29sIFN1cnJvdW5kaW5nVGV4dFV0aWw6OkdldFNhZmVEZWx0YSh1bnNpZ25lZCBm cm9tLCB1bnNpZ25lZCB0bywgaW50MzIgKmRlbHRhKSB7CisgICBEQ0hFQ0soZGVsdGEpOworIAor LSAgc3RhdGljX2Fzc2VydChzaXplb2YoaW50NjQpID49IHNpemVvZih1aW50KSwKKysgIHN0YXRp Y19hc3NlcnQoc2l6ZW9mKGludDY0KSA+PSBzaXplb2YodW5zaWduZWQpLAorICAgICAgICAgICAg ICAgICAiaW50NjQgbXVzdCBiZSBzdWZmaWNpZW50IHRvIHN0b3JlIGEgZ3VpbnQgdmFsdWUuIik7 CisgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihpbnQ2NCkgPT0gc2l6ZW9mKGxsYWJzKDApKSwKKyAg ICAgICAgICAgICAgICAgInxsbGFicygwKXwgbXVzdCByZXR1cm5zIGEgNjQtYml0IGludGVnZXIu Iik7CitAQCAtMTEzLDggKzExMyw4IEBAIGJvb2wgU2VhcmNoQW5jaG9yUG9zRm9yd2FyZCgKKyAg ICAgY29uc3Qgc3RkOjpzdHJpbmcgJnN1cnJvdW5kaW5nX3RleHQsCisgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nICZzZWxlY3RlZF90ZXh0LAorICAgICBzaXplX3Qgc2VsZWN0ZWRfY2hhcnNfbGVuLAor LSAgICB1aW50IGN1cnNvcl9wb3MsCistICAgIHVpbnQgKmFuY2hvcl9wb3MpIHsKKysgICAgdW5z aWduZWQgY3Vyc29yX3BvcywKKysgICAgdW5zaWduZWQgKmFuY2hvcl9wb3MpIHsKKyAKKyAgIENv bnN0Q2hhcjMySXRlcmF0b3IgaXRlcihzdXJyb3VuZGluZ190ZXh0KTsKKyAgIC8vIE1vdmUgfGl0 ZXJ8IHRvIGN1cnNvciBwb3MuCitAQCAtMTM3LDE1ICsxMzcsMTUgQEAgYm9vbCBTZWFyY2hBbmNo b3JQb3NCYWNrd2FyZCgKKyAgICAgY29uc3Qgc3RkOjpzdHJpbmcgJnN1cnJvdW5kaW5nX3RleHQs CisgICAgIGNvbnN0IHN0ZDo6c3RyaW5nICZzZWxlY3RlZF90ZXh0LAorICAgICBzaXplX3Qgc2Vs ZWN0ZWRfY2hhcnNfbGVuLAorLSAgICB1aW50IGN1cnNvcl9wb3MsCistICAgIHVpbnQgKmFuY2hv cl9wb3MpIHsKKysgICAgdW5zaWduZWQgY3Vyc29yX3BvcywKKysgICAgdW5zaWduZWQgKmFuY2hv cl9wb3MpIHsKKyAgIGlmIChjdXJzb3JfcG9zIDwgc2VsZWN0ZWRfY2hhcnNfbGVuKSB7CisgICAg IHJldHVybiBmYWxzZTsKKyAgIH0KKyAKKyAgIENvbnN0Q2hhcjMySXRlcmF0b3IgaXRlcihzdXJy b3VuZGluZ190ZXh0KTsKKyAgIC8vIFNraXAgfGl0ZXJ8IHRvIChwb3RlbnRpYWwpIGFuY2hvciBw b3MuCistICBjb25zdCB1aW50IHNraXBfY291bnQgPSBjdXJzb3JfcG9zIC0gc2VsZWN0ZWRfY2hh cnNfbGVuOworKyAgY29uc3QgdW5zaWduZWQgc2tpcF9jb3VudCA9IGN1cnNvcl9wb3MgLSBzZWxl Y3RlZF9jaGFyc19sZW47CisgICBEQ0hFQ0tfTEUoc2tpcF9jb3VudCwgY3Vyc29yX3Bvcyk7Cisg ICBpZiAoIVNraXAoJml0ZXIsIHNraXBfY291bnQpKSB7CisgICAgIHJldHVybiBmYWxzZTsKK0BA IC0xNjQsOCArMTY0LDggQEAgYm9vbCBTZWFyY2hBbmNob3JQb3NCYWNrd2FyZCgKKyBib29sIFN1 cnJvdW5kaW5nVGV4dFV0aWw6OkdldEFuY2hvclBvc0Zyb21TZWxlY3Rpb24oCisgICAgIGNvbnN0 IHN0ZDo6c3RyaW5nICZzdXJyb3VuZGluZ190ZXh0LAorICAgICBjb25zdCBzdGQ6OnN0cmluZyAm c2VsZWN0ZWRfdGV4dCwKKy0gICAgdWludCBjdXJzb3JfcG9zLAorLSAgICB1aW50ICphbmNob3Jf cG9zKSB7CisrICAgIHVuc2lnbmVkIGN1cnNvcl9wb3MsCisrICAgIHVuc2lnbmVkICphbmNob3Jf cG9zKSB7CisgICBEQ0hFQ0soYW5jaG9yX3Bvcyk7CisgCisgICBpZiAoc3Vycm91bmRpbmdfdGV4 dC5lbXB0eSgpKSB7CitAQCAtMTk2LDggKzE5Niw4IEBAIGJvb2wgR2V0U3Vycm91bmRpbmdUZXh0 KEZjaXR4SW5zdGFuY2UqIGkKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgfQorIAorLSAg ICB1aW50IGN1cnNvcl9wb3MgPSAwOworLSAgICB1aW50IGFuY2hvcl9wb3MgPSAwOworKyAgICB1 bnNpZ25lZCBjdXJzb3JfcG9zID0gMDsKKysgICAgdW5zaWduZWQgYW5jaG9yX3BvcyA9IDA7Cisg ICAgIGNoYXIqIHN0ciA9IE5VTEw7CisgCisgICAgIGlmICghRmNpdHhJbnN0YW5jZUdldFN1cnJv dW5kaW5nVGV4dChpbnN0YW5jZSwgaWMsICZzdHIsICZjdXJzb3JfcG9zLCAmYW5jaG9yX3Bvcykp IHsKK0BAIC0yMTEsNyArMjExLDcgQEAgYm9vbCBHZXRTdXJyb3VuZGluZ1RleHQoRmNpdHhJbnN0 YW5jZSogaQorICAgICAgICAgY29uc3QgY2hhciogcHJpbWFyeSA9IE5VTEw7CisgCisgICAgICAg ICBpZiAoKHByaW1hcnkgPSBGY2l0eENsaXBib2FyZEdldFByaW1hcnlTZWxlY3Rpb24oaW5zdGFu Y2UsIE5VTEwpKSAhPSBOVUxMKSB7CistICAgICAgICAgICAgdWludCBuZXdfYW5jaG9yX3BvcyA9 IDA7CisrICAgICAgICAgICAgdW5zaWduZWQgbmV3X2FuY2hvcl9wb3MgPSAwOworICAgICAgICAg ICAgIGNvbnN0IHN0ZDo6c3RyaW5nIHByaW1hcnlfdGV4dChwcmltYXJ5KTsKKyAgICAgICAgICAg ICBpZiAoU3Vycm91bmRpbmdUZXh0VXRpbDo6R2V0QW5jaG9yUG9zRnJvbVNlbGVjdGlvbigKKyAg ICAgICAgICAgICAgICAgc3Vycm91bmRpbmdfdGV4dCwgcHJpbWFyeV90ZXh0LAorSW5kZXg6IG1v emMvc3JjL3VuaXgvZmNpdHgvc3Vycm91bmRpbmdfdGV4dF91dGlsLmgKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBtb3pjL3NyYy91bml4L2ZjaXR4L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5oCisrKysgbW96Yy9z cmMvdW5peC9mY2l0eC9zdXJyb3VuZGluZ190ZXh0X3V0aWwuaAorQEAgLTU1LDcgKzU1LDcgQEAg Y2xhc3MgU3Vycm91bmRpbmdUZXh0VXRpbCB7CisgICAvLyBSZXR1cm5zIHRydWUgd2hlbiBuZWl0 aGVyIHxhYnMoZGVsdGEpfCBub3IgfC1kZWx0YXwgZG9lcyBub3QgY2F1c2UKKyAgIC8vIGludGVn ZXIgb3ZlcmZsb3csIHRoYXQgaXMsIHxkZWx0YXwgaXMgaW4gYSBzYWZlIHJhbmdlLgorICAgLy8g UmV0dXJucyBmYWxzZSBvdGhlcndpc2UuCistICBzdGF0aWMgYm9vbCBHZXRTYWZlRGVsdGEodWlu dCBmcm9tLCB1aW50IHRvLCBpbnQzMiAqZGVsdGEpOworKyAgc3RhdGljIGJvb2wgR2V0U2FmZURl bHRhKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvLCBpbnQzMiAqZGVsdGEpOworIAorICAgLy8g UmV0dXJucyB0cnVlIGlmCisgICAvLyAxLiB8c3Vycm91bmRpbmdfdGV4dHwgY29udGFpbnMgfHNl bGVjdGVkX3RleHR8CitAQCAtNzEsOCArNzEsOCBAQCBjbGFzcyBTdXJyb3VuZGluZ1RleHRVdGls IHsKKyAgIHN0YXRpYyBib29sIEdldEFuY2hvclBvc0Zyb21TZWxlY3Rpb24oCisgICAgICAgY29u c3Qgc3RkOjpzdHJpbmcgJnN1cnJvdW5kaW5nX3RleHQsCisgICAgICAgY29uc3Qgc3RkOjpzdHJp bmcgJnNlbGVjdGVkX3RleHQsCistICAgICAgdWludCBjdXJzb3JfcG9zLAorLSAgICAgIHVpbnQg KmFuY2hvcl9wb3MpOworKyAgICAgIHVuc2lnbmVkIGN1cnNvcl9wb3MsCisrICAgICAgdW5zaWdu ZWQgKmFuY2hvcl9wb3MpOworIAorICBwcml2YXRlOgorICAgRElTQUxMT1dfSU1QTElDSVRfQ09O U1RSVUNUT1JTKFN1cnJvdW5kaW5nVGV4dFV0aWwpOworSW5kZXg6IG1vemMvc3JjL3VuaXgvZmNp dHg1L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5jYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIG1vemMvc3JjL3Vu aXgvZmNpdHg1L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5jYworKysrIG1vemMvc3JjL3VuaXgvZmNp dHg1L3N1cnJvdW5kaW5nX3RleHRfdXRpbC5jYworQEAgLTQzLDEwICs0MywxMCBAQCBuYW1lc3Bh Y2UgZmNpdHggeworIAorIHVzaW5nIG5hbWVzcGFjZSBtb3pjOworIAorLWJvb2wgU3Vycm91bmRp bmdUZXh0VXRpbDo6R2V0U2FmZURlbHRhKHVpbnQgZnJvbSwgdWludCB0bywgaW50MzIgKmRlbHRh KSB7CisrYm9vbCBTdXJyb3VuZGluZ1RleHRVdGlsOjpHZXRTYWZlRGVsdGEodW5zaWduZWQgZnJv bSwgdW5zaWduZWQgdG8sIGludDMyICpkZWx0YSkgeworICAgRENIRUNLKGRlbHRhKTsKKyAKKy0g IHN0YXRpY19hc3NlcnQoc2l6ZW9mKGludDY0KSA+PSBzaXplb2YodWludCksCisrICBzdGF0aWNf YXNzZXJ0KHNpemVvZihpbnQ2NCkgPj0gc2l6ZW9mKHVuc2lnbmVkKSwKKyAgICAgICAgICAgICAg ICAgImludDY0IG11c3QgYmUgc3VmZmljaWVudCB0byBzdG9yZSBhIGd1aW50IHZhbHVlLiIpOwor ICAgc3RhdGljX2Fzc2VydChzaXplb2YoaW50NjQpID09IHNpemVvZihsbGFicygwKSksCisgICAg ICAgICAgICAgICAgICJ8bGxhYnMoMCl8IG11c3QgcmV0dXJucyBhIDY0LWJpdCBpbnRlZ2VyLiIp OworQEAgLTExMCw4ICsxMTAsOCBAQCBib29sIFN0YXJ0c1dpdGgoQ29uc3RDaGFyMzJJdGVyYXRv ciAqaXRlCisgLy8gT3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuCisgYm9vbCBTZWFyY2hBbmNob3JQ b3NGb3J3YXJkKGNvbnN0IHN0ZDo6c3RyaW5nICZzdXJyb3VuZGluZ190ZXh0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmc2VsZWN0ZWRfdGV4dCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNlbGVjdGVkX2NoYXJzX2xlbiwgdWlu dCBjdXJzb3JfcG9zLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50ICphbmNob3Jf cG9zKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzZWxlY3RlZF9jaGFy c19sZW4sIHVuc2lnbmVkIGN1cnNvcl9wb3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkICphbmNob3JfcG9zKSB7CisgICBDb25zdENoYXIzMkl0ZXJhdG9yIGl0ZXIoc3Vy cm91bmRpbmdfdGV4dCk7CisgICAvLyBNb3ZlIHxpdGVyfCB0byBjdXJzb3IgcG9zLgorICAgaWYg KCFTa2lwKCZpdGVyLCBjdXJzb3JfcG9zKSkgeworQEAgLTEzMSwxNSArMTMxLDE1IEBAIGJvb2wg U2VhcmNoQW5jaG9yUG9zRm9yd2FyZChjb25zdCBzdGQ6OnMKKyAvLyBPdGhlcndpc2UgcmV0dXJu cyBmYWxzZS4KKyBib29sIFNlYXJjaEFuY2hvclBvc0JhY2t3YXJkKGNvbnN0IHN0ZDo6c3RyaW5n ICZzdXJyb3VuZGluZ190ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RkOjpzdHJpbmcgJnNlbGVjdGVkX3RleHQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaXplX3Qgc2VsZWN0ZWRfY2hhcnNfbGVuLCB1aW50IGN1cnNvcl9wb3MsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50ICphbmNob3JfcG9zKSB7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplX3Qgc2VsZWN0ZWRfY2hhcnNfbGVuLCB1bnNpZ25lZCBjdXJzb3Jf cG9zLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKmFuY2hvcl9wb3Mp IHsKKyAgIGlmIChjdXJzb3JfcG9zIDwgc2VsZWN0ZWRfY2hhcnNfbGVuKSB7CisgICAgIHJldHVy biBmYWxzZTsKKyAgIH0KKyAKKyAgIENvbnN0Q2hhcjMySXRlcmF0b3IgaXRlcihzdXJyb3VuZGlu Z190ZXh0KTsKKyAgIC8vIFNraXAgfGl0ZXJ8IHRvIChwb3RlbnRpYWwpIGFuY2hvciBwb3MuCist ICBjb25zdCB1aW50IHNraXBfY291bnQgPSBjdXJzb3JfcG9zIC0gc2VsZWN0ZWRfY2hhcnNfbGVu OworKyAgY29uc3QgdW5zaWduZWQgc2tpcF9jb3VudCA9IGN1cnNvcl9wb3MgLSBzZWxlY3RlZF9j aGFyc19sZW47CisgICBEQ0hFQ0tfTEUoc2tpcF9jb3VudCwgY3Vyc29yX3Bvcyk7CisgICBpZiAo IVNraXAoJml0ZXIsIHNraXBfY291bnQpKSB7CisgICAgIHJldHVybiBmYWxzZTsKK0BAIC0xNTcs NyArMTU3LDcgQEAgYm9vbCBTZWFyY2hBbmNob3JQb3NCYWNrd2FyZChjb25zdCBzdGQ6OgorIAor IGJvb2wgU3Vycm91bmRpbmdUZXh0VXRpbDo6R2V0QW5jaG9yUG9zRnJvbVNlbGVjdGlvbigKKyAg ICAgY29uc3Qgc3RkOjpzdHJpbmcgJnN1cnJvdW5kaW5nX3RleHQsIGNvbnN0IHN0ZDo6c3RyaW5n ICZzZWxlY3RlZF90ZXh0LAorLSAgICB1aW50IGN1cnNvcl9wb3MsIHVpbnQgKmFuY2hvcl9wb3Mp IHsKKysgICAgdW5zaWduZWQgY3Vyc29yX3BvcywgdW5zaWduZWQgKmFuY2hvcl9wb3MpIHsKKyAg IERDSEVDSyhhbmNob3JfcG9zKTsKKyAKKyAgIGlmIChzdXJyb3VuZGluZ190ZXh0LmVtcHR5KCkp IHsKK0BAIC0xODcsMTMgKzE4NywxMyBAQCBib29sIEdldFN1cnJvdW5kaW5nVGV4dChJbnB1dENv bnRleHQgKmljCisgICB9CisgCisgICBjb25zdCBhdXRvIHN1cnJvdW5kaW5nX3RleHQgPSBpYy0+ c3Vycm91bmRpbmdUZXh0KCkudGV4dCgpOworLSAgdWludCBjdXJzb3JfcG9zID0gaWMtPnN1cnJv dW5kaW5nVGV4dCgpLmN1cnNvcigpOworLSAgdWludCBhbmNob3JfcG9zID0gaWMtPnN1cnJvdW5k aW5nVGV4dCgpLmFuY2hvcigpOworKyAgdW5zaWduZWQgY3Vyc29yX3BvcyA9IGljLT5zdXJyb3Vu ZGluZ1RleHQoKS5jdXJzb3IoKTsKKysgIHVuc2lnbmVkIGFuY2hvcl9wb3MgPSBpYy0+c3Vycm91 bmRpbmdUZXh0KCkuYW5jaG9yKCk7CisgCisgICBpZiAoY3Vyc29yX3BvcyA9PSBhbmNob3JfcG9z ICYmIGNsaXBib2FyZCkgeworICAgICBzdGQ6OnN0cmluZyBwcmltYXJ5ID0gY2xpcGJvYXJkLT5j YWxsPElDbGlwYm9hcmQ6OnByaW1hcnk+KGljKTsKKyAgICAgaWYgKCFwcmltYXJ5LmVtcHR5KCkp IHsKKy0gICAgICB1aW50IG5ld19hbmNob3JfcG9zID0gMDsKKysgICAgICB1bnNpZ25lZCBuZXdf YW5jaG9yX3BvcyA9IDA7CisgICAgICAgaWYgKFN1cnJvdW5kaW5nVGV4dFV0aWw6OkdldEFuY2hv clBvc0Zyb21TZWxlY3Rpb24oCisgICAgICAgICAgICAgICBzdXJyb3VuZGluZ190ZXh0LCBwcmlt YXJ5LCBjdXJzb3JfcG9zLCAmbmV3X2FuY2hvcl9wb3MpKSB7CisgICAgICAgICBhbmNob3JfcG9z ID0gbmV3X2FuY2hvcl9wb3M7CitJbmRleDogbW96Yy9zcmMvdW5peC9mY2l0eDUvc3Vycm91bmRp bmdfdGV4dF91dGlsLmgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBtb3pjL3NyYy91bml4L2ZjaXR4NS9zdXJy b3VuZGluZ190ZXh0X3V0aWwuaAorKysrIG1vemMvc3JjL3VuaXgvZmNpdHg1L3N1cnJvdW5kaW5n X3RleHRfdXRpbC5oCitAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBTdXJyb3VuZGluZ1RleHRVdGls IHsKKyAgIC8vIFJldHVybnMgdHJ1ZSB3aGVuIG5laXRoZXIgfGFicyhkZWx0YSl8IG5vciB8LWRl bHRhfCBkb2VzIG5vdCBjYXVzZQorICAgLy8gaW50ZWdlciBvdmVyZmxvdywgdGhhdCBpcywgfGRl bHRhfCBpcyBpbiBhIHNhZmUgcmFuZ2UuCisgICAvLyBSZXR1cm5zIGZhbHNlIG90aGVyd2lzZS4K Ky0gIHN0YXRpYyBib29sIEdldFNhZmVEZWx0YSh1aW50IGZyb20sIHVpbnQgdG8sIGludDMyICpk ZWx0YSk7CisrICBzdGF0aWMgYm9vbCBHZXRTYWZlRGVsdGEodW5zaWduZWQgZnJvbSwgdW5zaWdu ZWQgdG8sIGludDMyICpkZWx0YSk7CisgCisgICAvLyBSZXR1cm5zIHRydWUgaWYKKyAgIC8vIDEu IHxzdXJyb3VuZGluZ190ZXh0fCBjb250YWlucyB8c2VsZWN0ZWRfdGV4dHwKK0BAIC03MSw3ICs3 MSw3IEBAIGNsYXNzIFN1cnJvdW5kaW5nVGV4dFV0aWwgeworICAgLy8gT3RoZXJ3aXNlIHJldHVy bnMgZmFsc2UuCisgICBzdGF0aWMgYm9vbCBHZXRBbmNob3JQb3NGcm9tU2VsZWN0aW9uKGNvbnN0 IHN0ZDo6c3RyaW5nICZzdXJyb3VuZGluZ190ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyAmc2VsZWN0ZWRfdGV4dCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBjdXJzb3JfcG9zLCB1aW50 ICphbmNob3JfcG9zKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgY3Vyc29yX3BvcywgdW5zaWduZWQgKmFuY2hvcl9wb3MpOworIAorICBwcml2YXRl OgorICAgRElTQUxMT1dfSU1QTElDSVRfQ09OU1RSVUNUT1JTKFN1cnJvdW5kaW5nVGV4dFV0aWwp OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3RlbXBsYXRlIGIvc3JjcGtncy9tb3pjL3RlbXBs YXRlCmluZGV4IDcxZDMyZWI1YjljZC4uMWE3OGQ0MDdmNDcxIDEwMDY0NAotLS0gYS9zcmNwa2dz L21vemMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tb3pjL3RlbXBsYXRlCkBAIC0xLDMzICsxLDM2 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtb3pjJwogcGtnbmFtZT1tb3pjCi12ZXJzaW9uPTIu MjMuMjgxNS4xMDIKLXJldmlzaW9uPTEwCisjIHNyYy9kYXRhL3ZlcnNpb24vbW96Y192ZXJzaW9u X3RlbXBsYXRlLmJ6bAordmVyc2lvbj0yLjI2LjQzNTMuMTAwCityZXZpc2lvbj0xCiBjcmVhdGVf d3Jrc3JjPXllcwogYnVpbGRfd3Jrc3JjPW1vemMvc3JjCi1ob3N0bWFrZWRlcGVuZHM9ImdldHRl eHQgbmluamEgcGtnLWNvbmZpZyBwcm90b2J1ZiBwcm90b2J1Zi1kZXZlbCBweXRob24gd2hpY2gi Citob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgbmluamEgcGtnLWNvbmZpZyBwcm90b2J1ZiBwcm90 b2J1Zi1kZXZlbAorIHB5dGhvbjMtc2l4IHdoaWNoIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyIK IG1ha2VkZXBlbmRzPSJndGsrLWRldmVsIGlidXMtZGV2ZWwgbGliemlubmlhLWRldmVsIHByb3Rv YnVmLWRldmVsIHF0NS1kZXZlbAotIGZjaXR4LWRldmVsIgorIGZjaXR4LWRldmVsIGxpYmZjaXR4 NS1kZXZlbCIKIGRlcGVuZHM9InRlZ2FraS16aW5uaWEtamFwYW5lc2U+PTAuMyIKIHNob3J0X2Rl c2M9IkphcGFuZXNlIElNRSAoT3BlbiBTb3VyY2UgdmVyc2lvbiBvZiBHb29nbGUgSmFwYW5lc2Ug SW5wdXQpIgogbWFpbnRhaW5lcj0iTWF0dGhpYXMgdm9uIEZhYmVyIDxtdmZAZ214LmV1PiIKIGxp Y2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xl L21vemMiCiBkaXN0ZmlsZXM9IgotIGh0dHBzOi8vZ2l0bGFiLmNvbS9mY2l0eC9tb3pjL3JlcG9z aXRvcnkvZGFkOTQ1ODRlYTUwMTIxMTBhZDFkMjA0ZTQzMzk2NDI0M2ExNjM5ZC9hcmNoaXZlLnRh ci5iejI+JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5iejIKLSBodHRwczovL2dpdGh1Yi5jb20v Ym5vb3JkaHVpcy9neXAvYXJjaGl2ZS9jNmY0NzE2ODc0MDdiZjI4ZGRmYzYzZjFhOGY0N2FlYjdi ZjU0ZWRjLnRhci5negorIGh0dHBzOi8vZ2l0aHViLmNvbS9mY2l0eC9tb3pjL2FyY2hpdmUvZDM4 NGMzYjNlN2VlZDFhYTU0YTZhZjMzNjM3ODE2MDRmZTUzOGQ2NS50YXIuZ3oKKyBodHRwczovL2dp dGh1Yi5jb20vYWJzZWlsL2Fic2VpbC1jcHAvYXJjaGl2ZS8wZjNiYjQ2NmI4NjhiNTIzY2YxZGM5 YjJhYWFlZDY1Yzc3YjI4ODYyLnRhci5negorICR7REVCSUFOX1NJVEV9L21haW4vZy9neXAvZ3lw XzAuMSsyMDIwMDUxM2dpdGNhYTYwMDIub3JpZy50YXIuZ3oKICBodHRwczovL2dpdGh1Yi5jb20v aGlyb3l1a2kta29tYXRzdS9qYXBhbmVzZS11c2FnZS1kaWN0aW9uYXJ5L2FyY2hpdmUvZTViMzQy NTU3NTczNGMzMjNlMWQ5NDcwMDlkZDc0NzA5NDM3YjY4NC50YXIuZ3oKICIKLWNoZWNrc3VtPSIK LSBlMzg0NTdlNjNhN2ZhOGQ2MmQ4N2I0ZjhiM2U4OWZlNWY2OTM5ZDkyZTNjNGZkMjg3YTkzMzU4 Mzc1NjkzODkyCi0gODgyZjA3NGNiYjNhNGYyYmJhNTUwZmI2MTVlNjM5NDljMGZiZjM5ZWViMTcx OGEwMzMwYjRhNTQ1YWI5NzYxNgotIDBiNmVmZWUwZWViYWMyYzFhOGVlZWEzMzMyNzhhYTQwZmNl Zjc4NDZiYmE5YTM3OTk2MmM2ZTU2N2U3ZTNkYzEKLSIKK2NoZWNrc3VtPSI2OWNiMjZlMWY5YzAz ZTIwNzE1MzU2ZWY1NjhiNTgzZjJiYWY5OTZkZjVmZDg1MzZhY2EyZWQ4ZTdiZDk0NDRmCisgM2Q3 NGNkYzk4YjQyZmQ0MjU3ZDkxZjY1MjU3NTIwNmRlMTk1ZTJjODI0ZmNkOGQ2ZTZkMjI3Zjg1Y2Ix NDNlZgorIDhkNTMxYmM3ZDMzMDI0NjFkNzZhMzIzNjc0NTNjZWM2MGVkMDhiNDU1ZjI3YTUzZDhm MzEzZDgxNzYxNzEzYTgKKyAwYjZlZmVlMGVlYmFjMmMxYThlZWVhMzMzMjc4YWE0MGZjZWY3ODQ2 YmJhOWEzNzk5NjJjNmU1NjdlN2UzZGMxIgogCiBDWFhGTEFHUz0iLURfR05VX1NPVVJDRSIKK3Bh dGNoX2FyZ3M9LU5wMAorbGliMzJkaXNhYmxlZD15ZXMKIAogaWYgWyAiJENST1NTX0JVSUxEIiBd OyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzKz0iIHF0NS1kZXZlbCIKLQlzdWJwYWNrYWdlcz0iaWJ1 cy1tb3pjIGZjaXR4LW1vemMiCisJc3VicGFja2FnZXM9ImlidXMtbW96YyBmY2l0eC1tb3pjIGZj aXR4NS1tb3pjIgogZmkKIAogaWYgWyAiJFhCUFNfVEFSR0VUX0VORElBTiIgPSAiYmUiIF07IHRo ZW4KQEAgLTM1LDQ1ICszOCw0MyBAQCBpZiBbICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJiZSIg XTsgdGhlbgogZmkKIAogcG9zdF9leHRyYWN0KCkgewotCWxuIC1zIG1vemMtKiBtb3pjCi0Jcm0g LXJmIG1vemMvc3JjL3VuaXgvZmNpdHg1CisJbXYgbW96Yy0qIG1vemMKIAogCSMgc3ltbGluayAi c3VibW9kdWxlcyIgaW50byBwbGFjZQotCWZvciBfc3JjX2Rlc3QgaW4gZ3lwIGphcGFuZXNlLXVz YWdlLWRpY3Rpb25hcnk6amFwYW5lc2VfdXNhZ2VfZGljdGlvbmFyeTsgZG8KKwlmb3IgX3NyY19k ZXN0IGluIGd5cCBcCisJCWFic2VpbC1jcHAgXAorCQlqYXBhbmVzZS11c2FnZS1kaWN0aW9uYXJ5 OmphcGFuZXNlX3VzYWdlX2RpY3Rpb25hcnkKKwlkbwogCQlfc3JjPSR7X3NyY19kZXN0JToqfQog CQlfZHN0PW1vemMvc3JjL3RoaXJkX3BhcnR5LyR7X3NyY19kZXN0Iyo6fQogCQlybWRpciAkX2Rz dAogCQlsbiAtc3IgJF9zcmMtKiAkX2RzdAogCWRvbmUKK30KIAotCWlmIFsgIiRDUk9TU19CVUlM RCIgXTsgdGhlbgotCQkjIGZpbmQgZmNpdHg0LWNvbmZpZwotCQlzZWQgLWkgLWUgInM7ZmNpdHg0 LWNvbmZpZzske1hCUFNfQ1JPU1NfQkFTRX0vdXNyL2Jpbi9mY2l0eDQtY29uZmlnOyIgbW96Yy9z cmMvdW5peC9mY2l0eC9mY2l0eC5neXAKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFS R0VUX0xJQkMiID0gbXVzbCBdOyB0aGVuCisJCXZzZWQgLWkgLWUgJ3N8UFRIUkVBRF9NVVRFWF9S RUNVUlNJVkVfTlB8UFRIUkVBRF9NVVRFWF9SRUNVUlNJVkV8ZycgYmFzZS9tdXRleC5jYwogCWZp CiB9CiAKIGRvX2NvbmZpZ3VyZSgpIHsKLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4K LQkJKi1tdXNsKSBzZWQgLWkgLWUgJ3N8UFRIUkVBRF9NVVRFWF9SRUNVUlNJVkVfTlB8UFRIUkVB RF9NVVRFWF9SRUNVUlNJVkV8ZycgYmFzZS9tdXRleC5jYyA7OwotCWVzYWMKIAlHWVBfREVGSU5F Uz0iCiAJIGRvY3VtZW50X2Rpcj0vdXNyL3NoYXJlL2xpY2Vuc2VzLyR7cGtnbmFtZX0KIAkgdXNl X2xpYnByb3RvYnVmPTEKIAkgdXNlX2xpYnppbm5pYT0xCi0JIiBweXRob24yIGJ1aWxkX21vemMu cHkgZ3lwIC0tdGFyZ2V0X3BsYXRmb3JtPUxpbnV4CisJIiBweXRob24zIGJ1aWxkX21vemMucHkg Z3lwIC0tdGFyZ2V0X3BsYXRmb3JtPUxpbnV4CiB9CiAKIGRvX2J1aWxkKCkgewotCWxvY2FsIHRh cmdldHMKLQl0YXJnZXRzPSIKLQkgc2VydmVyL3NlcnZlci5neXA6bW96Y19zZXJ2ZXIKLQkgZ3Vp L2d1aS5neXA6bW96Y190b29sCi0JIHVuaXgvZW1hY3MvZW1hY3MuZ3lwOm1vemNfZW1hY3NfaGVs cGVyCi0JIHVuaXgvaWJ1cy9pYnVzLmd5cDppYnVzX21vemMKLQkgcmVuZGVyZXIvcmVuZGVyZXIu Z3lwOm1vemNfcmVuZGVyZXIKLQkgdW5peC9mY2l0eC9mY2l0eC5neXA6ZmNpdHgtbW96YwotCSIK LQlweXRob24yIGJ1aWxkX21vemMucHkgYnVpbGQgLWMgUmVsZWFzZSAkdGFyZ2V0cworCXB5dGhv bjMgYnVpbGRfbW96Yy5weSBidWlsZCAtYyBSZWxlYXNlIFwKKwkJc2VydmVyL3NlcnZlci5neXA6 bW96Y19zZXJ2ZXIgXAorCQlndWkvZ3VpLmd5cDptb3pjX3Rvb2wgXAorCQl1bml4L2VtYWNzL2Vt YWNzLmd5cDptb3pjX2VtYWNzX2hlbHBlciBcCisJCXVuaXgvaWJ1cy9pYnVzLmd5cDppYnVzX21v emMgXAorCQlyZW5kZXJlci9yZW5kZXJlci5neXA6bW96Y19yZW5kZXJlciBcCisJCXVuaXgvZmNp dHgvZmNpdHguZ3lwOmZjaXR4LW1vemMgXAorCQl1bml4L2ZjaXR4NS9mY2l0eDUuZ3lwOmZjaXR4 NS1tb3pjCiAKIAlzZWQgLWkgJ3N8L3Vzci9saWJleGVjL3wvdXNyL2xpYi9pYnVzLW1vemMvfGcn IG91dF9saW51eC9SZWxlYXNlL2dlbi91bml4L2lidXMvbW96Yy54bWwKIH0KQEAgLTgyLDE1ICs4 MywxNiBAQCBkb19pbnN0YWxsKCkgewogCXZpbnN0YWxsIG91dF9saW51eC9SZWxlYXNlL21vemNf c2VydmVyIDc1NSB1c3IvbGliL21vemMKIAl2aW5zdGFsbCBvdXRfbGludXgvUmVsZWFzZS9tb3pj X3Rvb2wgNzU1IHVzci9saWIvbW96YwogCi0JaGVhZCAtbiAyOSBzZXJ2ZXIvbW96Y19zZXJ2ZXIu Y2MgPiBMSUNFTlNFCi0JZm9yIGkgaW4gTElDRU5TRSBkYXRhL2luc3RhbGxlci8qLmh0bWw7IGRv Ci0JCXZsaWNlbnNlICIkaSIKLQlkb25lCisJaGVhZCAtbiAyOSB1bml4L2ZjaXR4NS9mY2l0eF9r ZXlfdHJhbnNsYXRvci5jYyA+bW96Yy5MSUNFTlNFCisJdmxpY2Vuc2UgbW96Yy5MSUNFTlNFCisJ dmxpY2Vuc2UgZGF0YS9pbnN0YWxsZXIvY3JlZGl0c19lbi5odG1sCisJdmxpY2Vuc2UgdGhpcmRf cGFydHkvamFwYW5lc2VfdXNhZ2VfZGljdGlvbmFyeS9MSUNFTlNFIGRpY3QuTElDRU5TRQogfQog CiBpYnVzLW1vemNfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjPSJNb3pjIGVuZ2luZSBmb3IgSUJ1 cyAtIENsaWVudCBvZiB0aGUgTW96YyBpbnB1dCBtZXRob2QiCiAJZGVwZW5kcz0iJHtzb3VyY2Vw a2d9LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gaWJ1cz49MS41LjE0IgorCWxpYjMyZGlzYWJsZWQ9 eWVzCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZpbnN0YWxsIG91dF9saW51eC9SZWxlYXNlL2lidXNf bW96YyA3NTUgdXNyL2xpYi9pYnVzLW1vemMgaWJ1cy1lbmdpbmUtbW96YwogCQl2aW5zdGFsbCBv dXRfbGludXgvUmVsZWFzZS9nZW4vdW5peC9pYnVzL21vemMueG1sIDY0NCB1c3Ivc2hhcmUvaWJ1 cy9jb21wb25lbnQKQEAgLTEwNSw2ICsxMDcsNyBAQCBpYnVzLW1vemNfcGFja2FnZSgpIHsKIGVt YWNzLW1vemNfcGFja2FnZSgpIHsKIAlwa2dkZXNjPSJNb3pjIGZvciBFbWFjcyIKIAlkZXBlbmRz PSIke3NvdXJjZXBrZ30tJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSBlbWFjcyIKKwlsaWIzMmRpc2Fi bGVkPXllcwogCXBrZ19pbnN0YWxsKCkgewogCQl2YmluIG91dF9saW51eC9SZWxlYXNlL21vemNf ZW1hY3NfaGVscGVyCiAJCXZpbnN0YWxsIHVuaXgvZW1hY3MvbW96Yy5lbCA2NDQgdXNyL3NoYXJl L2VtYWNzL3NpdGUtbGlzcC9lbWFjcy1tb3pjCkBAIC0xMTUsMTAgKzExOCw0MCBAQCBmY2l0eC1t b3pjX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYz0iTW96YyBlbmdpbmUgZm9yIGZjaXR4IC0gQ2xp ZW50IG9mIHRoZSBNb3pjIGlucHV0IG1ldGhvZCIKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30tJHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSBmY2l0eD49NC4yLjkiCiAJaG9tZXBhZ2U9Imh0dHBzOi8vZmNp dHgtaW0ub3JnLyIKLQlsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgorCWxpYjMyZGlzYWJsZWQ9 eWVzCiAJcGtnX2luc3RhbGwoKSB7CisJCWxvY2FsIF9maWxlIF9sYW5nCiAJCXZpbnN0YWxsIG91 dF9saW51eC9SZWxlYXNlL2ZjaXR4LW1vemMuc28gNjQ0IHVzci9saWIvZmNpdHgKIAkJdmluc3Rh bGwgdW5peC9mY2l0eC9mY2l0eC1tb3pjLmNvbmYgNjQ0IHVzci9zaGFyZS9mY2l0eC9hZGRvbgog CQl2aW5zdGFsbCB1bml4L2ZjaXR4L21vemMuY29uZiA2NDQgdXNyL3NoYXJlL2ZjaXR4L2lucHV0 bWV0aG9kCisJCXZpbnN0YWxsIGRhdGEvaW1hZ2VzL3VuaXgvaW1lX3Byb2R1Y3RfaWNvbl9vcGVu c291cmNlLTMyLnBuZyBcCisJCQk2NDQgdXNyL3NoYXJlL2ZjaXR4L2ljb24gbW96Yy5wbmcKKwkJ Zm9yIF9maWxlIGluIG91dF9saW51eC9SZWxlYXNlL2dlbi91bml4L2ZjaXR4L3BvLyoubW8KKwkJ ZG8KKwkJCV9sYW5nPSR7X2ZpbGUjIyovfQorCQkJX2xhbmc9JHtfbGFuZyUubW99CisJCQl2aW5z dGFsbCAiJF9maWxlIiA2NDQgdXNyL3NoYXJlL2xvY2FsZS8kX2xhbmcgZmNpdHgtbW96Yy5tbwor CQlkb25lCisJfQorfQorCitmY2l0eDUtbW96Y19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2M9Ik1v emMgZW5naW5lIGZvciBmY2l0eCB2NSIKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30tJHt2ZXJzaW9u fV8ke3JldmlzaW9ufSBmY2l0eDUiCisJaG9tZXBhZ2U9Imh0dHBzOi8vZmNpdHgtaW0ub3JnLyIK KwlsaWIzMmRpc2FibGVkPXllcworCXBrZ19pbnN0YWxsKCkgeworCQlsb2NhbCBfZmlsZSBfbGFu ZworCQl2aW5zdGFsbCBvdXRfbGludXgvUmVsZWFzZS9mY2l0eDUtbW96Yy5zbyA2NDQgdXNyL2xp Yi9mY2l0eDUKKwkJdmluc3RhbGwgdW5peC9mY2l0eDUvbW96Yy1hZGRvbi5jb25mIDY0NCBcCisJ CQl1c3Ivc2hhcmUvZmNpdHg1L2FkZG9uIG1vemMuY29uZgorCQl2aW5zdGFsbCB1bml4L2ZjaXR4 NS9tb3pjLmNvbmYgNjQ0IHVzci9zaGFyZS9mY2l0eDUvaW5wdXRtZXRob2QKKwkJZm9yIF9maWxl IGluIHVuaXgvZmNpdHg1L3BvLyoucG8KKwkJZG8KKwkJCV9sYW5nPSR7X2ZpbGUjIyovfQorCQkJ X2xhbmc9JHtfbGFuZyUucG99CisJCQl2bWtkaXIgdXNyL3NoYXJlL2xvY2FsZS8kX2xhbmcKKwkJ CW1zZ2ZtdCAiJF9maWxlIiAtbyAkUEtHREVTVERJUi91c3Ivc2hhcmUvbG9jYWxlLyRfbGFuZy9m Y2l0eDUtbW96Yy5tbworCQlkb25lCiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pjL3Vw ZGF0ZSBiL3NyY3BrZ3MvbW96Yy91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi41YTdkZjQ2NGJhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vemMv dXBkYXRlCkBAIC0wLDAgKzEsMiBAQAorIyBHb29nbGUgbmV2ZXIgdGFncyBhbnkgcmVsZWFzZXMu CitpZ25vcmU9IioiCg== --===============4232863972756811262==--