From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Resolves: #2237664 Fix mouse position in Emojier category list Date: Sun, 31 May 2026 02:09:06 GMT Message-ID: <178019334686.1.10652453202797987971.rpms-ibus-990903b4ad15@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 990903b4ad15a7089c2b45047f00853bb7310553 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiA5OTA5MDNiNGFkMTVhNzA4OWMyYjQ1MDQ3ZjAwODUzYmI3MzEwNTUzCiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDI1LTExLTI3VDA5OjQzOjQ5KzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsyMDUyLy01NCBpbiAzIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6 Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9pYnVzL2MvOTkwOTAzYjRhZDE1YTcwODljMmI0 NTA0N2YwMDg1M2JiNzMxMDU1Mz9icmFuY2g9YXV0b3Rvb2wKCiAgICAgICAgICAgIExvZzoKICAg ICAgICAgICAgUmVzb2x2ZXM6ICMyMjM3NjY0IEZpeCBtb3VzZSBwb3NpdGlvbiBpbiBFbW9qaWVy IGNhdGVnb3J5IGxpc3QKCi0gUmVzb2x2ZXM6ICMyMzI2NDU1IEZyZWUgSUJ1c0lucHV0Q29udGV4 dCBpbiBpbnB1dF9tZXRob2RfYWN0aXZhdGUoKQotIFJlc29sdmVzOiAjMjM0NjAzMyBGaXggU0VH ViB3aXRoIGFsbG9jYXRpb24gZmFpbCBpbiBfWGkxOG5DaGFuZ2VJQygpCi0gUmVzb2x2ZXM6ICMy MzkyMzU4IFJlZmVyIFFUX0lNX01PRFVMRVMgdG8gY2hlY2sgV2F5bGFuZAotIGRvbid0IGJ1aWxk IGluIHBhcmFsbGVsIGluIHVpL2d0azMKLSBGaXggR0NDIGAtV3VudXNlZC1idXQtc2V0LXZhcmlh YmxlYCBmbGFnCi0gJy0tZW5hYmxlLXdheWxhbmQtaW0nIG9wdGlvbiB3aXRob3V0IGRhZW1vbgot IEZpeCBtZW1vcnkgbGVha3Mgd2l0aCBmYWlsIHNhZmUKLSBGaXggbWVtb3J5IGxlYWtzICMyCi0g U2V0IE1lc3NhZ2VEaWFsb2cgYXQgaW5wdXQgY3Vyc29yCi0gTW92ZSBncm91cCBuYW1lIGRldGVj dGlvbiB0byBpYnVzX2dldF9ncm91cF9uYW1lKCkKCi0tLQpkaWZmIC0tZ2l0IGEvaWJ1cy0xMzg1 MzQ5LXNlZ3YtYnVzLXByb3h5LnBhdGNoIGIvaWJ1cy0xMzg1MzQ5LXNlZ3YtYnVzLXByb3h5LnBh dGNoCmluZGV4IDYxMmI2NTQuLjJkOTE5YjIgMTAwNjQ0Ci0tLSBhL2lidXMtMTM4NTM0OS1zZWd2 LWJ1cy1wcm94eS5wYXRjaAorKysgYi9pYnVzLTEzODUzNDktc2Vndi1idXMtcHJveHkucGF0Y2gK QEAgLTEsNCArMSw0IEBACi1Gcm9tIDEyODZjZTkyYTVjY2Y2OGI1ZGNmMWI0YTdjMDg4NGNlMjlk NWM1MWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIDY1NjM5MGRmNDZiYTk2M2FmZTUx NDIwZWNiOTM5OWI2ZGRlOWEyYmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBmdWpp d2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CiBEYXRlOiBGcmksIDEyIEp1bCAyMDI0 IDIzOjMwOjI1ICswOTAwCiBTdWJqZWN0OiBbUEFUQ0hdIEZpeCBTRUdWIGluIGJ1c19wYW5lbF9w cm94eV9mb2N1c19pbigpCkBAIC0yMSw5ICsyMSw2IEBAIFdJUDogQWRkIGEgR0Vycm9yIHRvIGdl dCB0aGUgZXJyb3IgbWVzc2FnZSB0byBjaGVjayB3aHkgdGhlIFNFR1YgaGFwcGVuZWQuCiByaGJ6 IzE2NjM1MjggU0VHViBpbiBnX211dGV4X2NsZWFyKCkgaW4gYnVzX2RidXNfaW1wbF9kZXN0cm95 KCkKIElmIHRoZSBtdXRleCBpcyBub3QgdW5sb2NrZWQsIGdfbXV0ZXhfY2xlYXIoKSBjYXVzZXMg YXNzZXJ0LgogCi1yaGJ6IzE3Njc2OTEgU0VHViBpbiBjbGllbnQveDExL21haW4uYzpfc2lnaGFu ZGxlcigpLgotRG8gbm90IGNhbGwgYXRleGl0IGZ1bmN0aW9ucyBpbiBfc2lnaGFuZGxlcigpLgot CiByaGJ6IzIxOTU4OTUgU0VHViBpbiBjbGllbnQveDExL21haW4uYzpfeGltX3NldF9jdXJzb3Jf bG9jYXRpb24oKQogY2hlY2sgaWYgSUJ1c0lucHV0Q29udGV4dCB3YXMgZGlzY29ubmVjdGVkLgog CkBAIC00OCw3ICs0NSw2IEBAIENvbm5lY3QgImhhbmRsZS1kZXN0cm95IiBzaWduYWwgYWZ0ZXIg Z19saXN0X3ByZXBlbmQoKS4KIEJVRz1yaGJ6IzEzNTAyOTEKIEJVRz1yaGJ6IzE2MDE1NzcKIEJV Rz1yaGJ6IzE2NjM1MjgKLUJVRz1yaGJ6IzE3Njc2OTEKIEJVRz1yaGJ6IzE3OTU0OTkKIEJVRz1y aGJ6IzE3NzEyMzgKIEJVRz1yaGJ6IzE3Njc5NzYKQEAgLTU3LDIxICs1MywyMSBAQCBCVUc9cmhi eiMyMTUxMzQ0CiBCVUc9cmhieiMyMTk1ODk1CiBCVUc9cmhieiMyMjM5NjMzCiAtLS0KLSBidXMv ZGJ1c2ltcGwuYyAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrLS0tCi0gYnVz L2VuZ2luZXByb3h5LmMgICAgICB8IDQ0ICsrKysrKysrKysrKysrKysrKystLS0tLS0KLSBidXMv cGFuZWxwcm94eS5jICAgICAgIHwgIDkgKysrKystCi0gY2xpZW50L3gxMS9tYWluLmMgICAgICB8 IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCi0gcG9ydGFsL3BvcnRhbC5jICAg ICAgICB8IDI1ICsrKysrKysrKysrKy0tLQotIHNyYy9pYnVzYnVzLmMgICAgICAgICAgfCAgNiAr KysrCi0gdWkvZ3RrMy9leHRlbnNpb24udmFsYSB8ICA0ICsrKwotIHVpL2d0azMvc3dpdGNoZXIu dmFsYSAgfCA3MyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KLSA4 IGZpbGVzIGNoYW5nZWQsIDIwOCBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkKKyBidXMv ZGJ1c2ltcGwuYyAgICAgICAgIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLQorIGJ1cy9lbmdpbmVwcm94eS5jICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tCisgYnVzL3BhbmVscHJveHkuYyAgICAgICB8ICA5ICsrKysrKyst CisgY2xpZW50L3gxMS9tYWluLmMgICAgICB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQorIHBvcnRhbC9wb3J0YWwuYyAgICAgICAgfCAyNSArKysrKysrKysr KysrKysrLS0tLS0KKyBzcmMvaWJ1c2J1cy5jICAgICAgICAgIHwgIDYgKysrKysrCisgdWkvZ3Rr My9leHRlbnNpb24udmFsYSB8ICA0ICsrKysKKyB1aS9ndGszL3N3aXRjaGVyLnZhbGEgIHwgNDgg KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KKyA4IGZpbGVzIGNoYW5n ZWQsIDE4OCBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2J1 cy9kYnVzaW1wbC5jIGIvYnVzL2RidXNpbXBsLmMKLWluZGV4IDExMGQ4NjRhLi4zOTFkNTc2YSAx MDA2NDQKK2luZGV4IDcwNzkyYmU4Li45YzUzNWJmMiAxMDA2NDQKIC0tLSBhL2J1cy9kYnVzaW1w bC5jCiArKysgYi9idXMvZGJ1c2ltcGwuYwotQEAgLTYyMSw2ICs2MjEsNyBAQCBzdGF0aWMgdm9p ZAorQEAgLTYzNCw2ICs2MzQsNyBAQCBzdGF0aWMgdm9pZAogIGJ1c19kYnVzX2ltcGxfZGVzdHJv eSAoQnVzREJ1c0ltcGwgKmRidXMpCiAgewogICAgICBHTGlzdCAqcDsKQEAgLTc5LDcgKzc1LDcg QEAgaW5kZXggMTEwZDg2NGEuLjM5MWQ1NzZhIDEwMDY0NAogIAogICAgICBmb3IgKHAgPSBkYnVz LT5vYmplY3RzOyBwICE9IE5VTEw7IHAgPSBwLT5uZXh0KSB7CiAgICAgICAgICBJQnVzU2Vydmlj ZSAqb2JqZWN0ID0gKElCdXNTZXJ2aWNlICopIHAtPmRhdGE7Ci1AQCAtNjQ0LDYgKzY0NSwxMCBA QCBidXNfZGJ1c19pbXBsX2Rlc3Ryb3kgKEJ1c0RCdXNJbXBsICpkYnVzKQorQEAgLTY1Nyw2ICs2 NTgsMTAgQEAgYnVzX2RidXNfaW1wbF9kZXN0cm95IChCdXNEQnVzSW1wbCAqZGJ1cykKICAKICAg ICAgZm9yIChwID0gZGJ1cy0+Y29ubmVjdGlvbnM7IHAgIT0gTlVMTDsgcCA9IHAtPm5leHQpIHsK ICAgICAgICAgIEJ1c0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24gPSBCVVNfQ09OTkVDVElPTiAocC0+ ZGF0YSk7CkBAIC05MCw3ICs4Niw3IEBAIGluZGV4IDExMGQ4NjRhLi4zOTFkNTc2YSAxMDA2NDQK ICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyAoY29ubmVjdGlv biwKICAgICAgICAgICAgICAgICAgYnVzX2RidXNfaW1wbF9jb25uZWN0aW9uX2Rlc3Ryb3lfY2Is IGRidXMpOwogICAgICAgICAgaWJ1c19vYmplY3RfZGVzdHJveSAoSUJVU19PQkpFQ1QgKGNvbm5l Y3Rpb24pKTsKLUBAIC02NTgsMTIgKzY2MywzOSBAQCBidXNfZGJ1c19pbXBsX2Rlc3Ryb3kgKEJ1 c0RCdXNJbXBsICpkYnVzKQorQEAgLTY3NSwxMiArNjgwLDM5IEBAIGJ1c19kYnVzX2ltcGxfZGVz dHJveSAoQnVzREJ1c0ltcGwgKmRidXMpCiAgICAgIGRidXMtPnVuaXF1ZV9uYW1lcyA9IE5VTEw7 CiAgICAgIGRidXMtPm5hbWVzID0gTlVMTDsKICAKQEAgLTEzMiw3ICsxMjgsNyBAQCBpbmRleCAx MTBkODY0YS4uMzkxZDU3NmEgMTAwNjQ0CiAgCiAgICAgIC8qIEZJWE1FIGRlc3RydWN0IF9sb2Nr IGFuZCBfcXVldWUgbWVtYmVycy4gKi8KICAgICAgSUJVU19PQkpFQ1RfQ0xBU1MoYnVzX2RidXNf aW1wbF9wYXJlbnRfY2xhc3MpLT5kZXN0cm95ICgoSUJ1c09iamVjdCAqKWRidXMpOwotQEAgLTE1 MzksMTMgKzE1NzEsMjAgQEAgYnVzX2RidXNfaW1wbF9jb25uZWN0aW9uX2ZpbHRlcl9jYiAoR0RC dXNDb25uZWN0aW9uICpkYnVzX2Nvbm5lY3Rpb24sCitAQCAtMTU1NiwxMyArMTU4OCwyMCBAQCBi dXNfZGJ1c19pbXBsX2Nvbm5lY3Rpb25fZmlsdGVyX2NiIChHREJ1c0Nvbm5lY3Rpb24gKmRidXNf Y29ubmVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVh biAgICAgICAgIGluY29taW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdwb2ludGVyICAgICAgICAgdXNlcl9kYXRhKQogIHsKQEAgLTE1NiwxMCArMTUyLDEwIEBAIGlu ZGV4IDExMGQ4NjRhLi4zOTFkNTc2YSAxMDA2NDQKICAgICAgaWYgKGluY29taW5nKSB7CiAgICAg ICAgICAvKiBpcyBpbmNvbWluZyBtZXNzYWdlICovCiBkaWZmIC0tZ2l0IGEvYnVzL2VuZ2luZXBy b3h5LmMgYi9idXMvZW5naW5lcHJveHkuYwotaW5kZXggYjNlMTYwNjYuLmJhNDc5YjU5IDEwMDY0 NAoraW5kZXggMzc3MzZiNjkuLjdmMzQ2MDRjIDEwMDY0NAogLS0tIGEvYnVzL2VuZ2luZXByb3h5 LmMKICsrKyBiL2J1cy9lbmdpbmVwcm94eS5jCi1AQCAtNjkzLDEwICs2OTMsMTIgQEAgYnVzX2Vu Z2luZV9wcm94eV9nX3NpZ25hbCAoR0RCdXNQcm94eSAgKnByb3h5LAorQEAgLTc3NSwxMCArNzc1 LDEyIEBAIGJ1c19lbmdpbmVfcHJveHlfZ19zaWduYWwgKEdEQnVzUHJveHkgICpwcm94eSwKICAg ICAgZ19yZXR1cm5faWZfcmVhY2hlZCAoKTsKICB9CiAgCkBAIC0xNzMsNyArMTY5LDcgQEAgaW5k ZXggYjNlMTYwNjYuLmJhNDc5YjU5IDEwMDY0NAogIHsKICAgICAgR0RCdXNQcm94eUZsYWdzIGZs YWdzOwogICAgICBCdXNFbmdpbmVQcm94eSAqZW5naW5lOwotQEAgLTcwNiwxMiArNzA4LDIwIEBA IGJ1c19lbmdpbmVfcHJveHlfbmV3X2ludGVybmFsIChjb25zdCBnY2hhciAgICAgKnBhdGgsCitA QCAtNzg4LDEyICs3OTAsMjAgQEAgYnVzX2VuZ2luZV9wcm94eV9uZXdfaW50ZXJuYWwgKGNvbnN0 IGdjaGFyICAgICAqcGF0aCwKICAgICAgZ19hc3NlcnQgKHBhdGgpOwogICAgICBnX2Fzc2VydCAo SUJVU19JU19FTkdJTkVfREVTQyAoZGVzYykpOwogICAgICBnX2Fzc2VydCAoR19JU19EQlVTX0NP Tk5FQ1RJT04gKGNvbm5lY3Rpb24pKTsKQEAgLTE5NSw3ICsxOTEsNyBAQCBpbmRleCBiM2UxNjA2 Ni4uYmE0NzliNTkgMTAwNjQ0CiAgICAgICAgICAgICAgImRlc2MiLCAgICAgICAgICAgICAgZGVz YywKICAgICAgICAgICAgICAiZy1jb25uZWN0aW9uIiwgICAgICBjb25uZWN0aW9uLAogICAgICAg ICAgICAgICJnLWludGVyZmFjZS1uYW1lIiwgIElCVVNfSU5URVJGQUNFX0VOR0lORSwKLUBAIC03 MTksNiArNzI5LDEyIEBAIGJ1c19lbmdpbmVfcHJveHlfbmV3X2ludGVybmFsIChjb25zdCBnY2hh ciAgICAgKnBhdGgsCitAQCAtODAxLDYgKzgxMSwxMiBAQCBidXNfZW5naW5lX3Byb3h5X25ld19p bnRlcm5hbCAoY29uc3QgZ2NoYXIgICAgICpwYXRoLAogICAgICAgICAgICAgICJnLWRlZmF1bHQt dGltZW91dCIsIGdfZ2RidXNfdGltZW91dCwKICAgICAgICAgICAgICAiZy1mbGFncyIsICAgICAg ICAgICBmbGFncywKICAgICAgICAgICAgICBOVUxMKTsKQEAgLTIwOCw3ICsyMDQsNyBAQCBpbmRl eCBiM2UxNjA2Ni4uYmE0NzliNTkgMTAwNjQ0CiAgICAgIGNvbnN0IGdjaGFyICpsYXlvdXQgPSBp YnVzX2VuZ2luZV9kZXNjX2dldF9sYXlvdXQgKGRlc2MpOwogICAgICBpZiAobGF5b3V0ICE9IE5V TEwgJiYgbGF5b3V0WzBdICE9ICdcMCcpIHsKICAgICAgICAgIGVuZ2luZS0+a2V5bWFwID0gaWJ1 c19rZXltYXBfZ2V0IChsYXlvdXQpOwotQEAgLTc1Niw2ICs3NzIsNyBAQCBidXNfZW5naW5lX3By b3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2NoYXIgICAgICpwYXRoLAorQEAgLTgzOCw2ICs4NTQs NyBAQCBidXNfZW5naW5lX3Byb3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2NoYXIgICAgICpwYXRo LAogIAogICAgICByZXR1cm4gZW5naW5lOwogIH0KQEAgLTIxNiw3ICsyMTIsNyBAQCBpbmRleCBi M2UxNjA2Ni4uYmE0NzliNTkgMTAwNjQ0CiAgCiAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICBHVGFz ayAgICAgICAgICAgKnRhc2s7Ci1AQCAtODE4LDIzICs4MzUsMzAgQEAgY3JlYXRlX2VuZ2luZV9y ZWFkeV9jYiAoQnVzRmFjdG9yeVByb3h5ICAgICpmYWN0b3J5LAorQEAgLTkwMCwyMyArOTE3LDMw IEBAIGNyZWF0ZV9lbmdpbmVfcmVhZHlfY2IgKEJ1c0ZhY3RvcnlQcm94eSAgICAqZmFjdG9yeSwK ICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAgICAgKnJlcywKICAgICAg ICAgICAgICAgICAgICAgICAgICBFbmdpbmVQcm94eU5ld0RhdGEgKmRhdGEpCiAgewpAQCAtMjU2 LDEwICsyNTIsMTAgQEAgaW5kZXggYjNlMTYwNjYuLmJhNDc5YjU5IDEwMDY0NAogICAgICAvKiBG SVhNRTogc2V0IGRlc3Ryb3kgY2FsbGJhY2sgPyAqLwogICAgICBnX3Rhc2tfcmV0dXJuX3BvaW50 ZXIgKGRhdGEtPnRhc2ssIGVuZ2luZSwgTlVMTCk7CiBkaWZmIC0tZ2l0IGEvYnVzL3BhbmVscHJv eHkuYyBiL2J1cy9wYW5lbHByb3h5LmMKLWluZGV4IGU2MDAxZWJmLi4wMDgyOGZiYyAxMDA2NDQK K2luZGV4IDRjMmM4ODg1Li5hN2JlYzE5MyAxMDA2NDQKIC0tLSBhL2J1cy9wYW5lbHByb3h5LmMK ICsrKyBiL2J1cy9wYW5lbHByb3h5LmMKLUBAIC0xMjIsNiArMTIyLDggQEAgYnVzX3BhbmVsX3By b3h5X25ldyAoQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKK0BAIC0xMjQsNiArMTI0LDggQEAg YnVzX3BhbmVsX3Byb3h5X25ldyAoQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKICAgICAgY29u c3QgZ2NoYXIgKnBhdGggPSBOVUxMOwogICAgICBHT2JqZWN0ICpvYmo7CiAgICAgIEJ1c1BhbmVs UHJveHkgKnBhbmVsOwpAQCAtMjY4LDcgKzI2NCw3IEBAIGluZGV4IGU2MDAxZWJmLi4wMDgyOGZi YyAxMDA2NDQKICAKICAgICAgZ19hc3NlcnQgKEJVU19JU19DT05ORUNUSU9OIChjb25uZWN0aW9u KSk7CiAgCi1AQCAtMTM4LDcgKzE0MCw3IEBAIGJ1c19wYW5lbF9wcm94eV9uZXcgKEJ1c0Nvbm5l Y3Rpb24gKmNvbm5lY3Rpb24sCitAQCAtMTQwLDcgKzE0Miw3IEBAIGJ1c19wYW5lbF9wcm94eV9u ZXcgKEJ1c0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb24sCiAgCiAgICAgIG9iaiA9IGdfaW5pdGFibGVf bmV3IChCVVNfVFlQRV9QQU5FTF9QUk9YWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsCkBAIC0yNzcsNyArMjczLDcgQEAgaW5kZXggZTYwMDFlYmYuLjAwODI4ZmJjIDEwMDY0NAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgImctb2JqZWN0LXBhdGgiLCAgICAgcGF0aCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJnLWludGVyZmFjZS1uYW1lIiwgIElCVVNfSU5URVJG QUNFX1BBTkVMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgImctY29ubmVjdGlvbiIsICAg ICAgYnVzX2Nvbm5lY3Rpb25fZ2V0X2RidXNfY29ubmVjdGlvbiAoY29ubmVjdGlvbiksCi1AQCAt MTQ2LDYgKzE0OCwxMSBAQCBidXNfcGFuZWxfcHJveHlfbmV3IChCdXNDb25uZWN0aW9uICpjb25u ZWN0aW9uLAorQEAgLTE0OCw2ICsxNTAsMTEgQEAgYnVzX3BhbmVsX3Byb3h5X25ldyAoQnVzQ29u bmVjdGlvbiAqY29ubmVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnLWZsYWdz IiwgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19ET19OT1RfQVVUT19TVEFSVCB8IEdfREJV U19QUk9YWV9GTEFHU19ET19OT1RfTE9BRF9QUk9QRVJUSUVTLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCk7CiAgCkBAIC0yOTAsNyArMjg2LDcgQEAgaW5kZXggZTYwMDFlYmYuLjAw ODI4ZmJjIDEwMDY0NAogICAgICBwYW5lbC0+cGFuZWxfdHlwZSA9IHBhbmVsX3R5cGU7CiAgICAg IHJldHVybiBwYW5lbDsKIGRpZmYgLS1naXQgYS9jbGllbnQveDExL21haW4uYyBiL2NsaWVudC94 MTEvbWFpbi5jCi1pbmRleCBiN2ViNTk2MS4uMzA3NWQ1ZDAgMTAwNjQ0CitpbmRleCA1ZmFkZDQz ZC4uMjZkNGE3ZjEgMTAwNjQ0CiAtLS0gYS9jbGllbnQveDExL21haW4uYwogKysrIGIvY2xpZW50 L3gxMS9tYWluLmMKIEBAIC00NSw2ICs0NSw3IEBACkBAIC00MzYsMjAgKzQzMiw2IEBAIGluZGV4 IGI3ZWI1OTYxLi4zMDc1ZDVkMCAxMDA2NDQKICAKICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3Jl c2V0ICh4MTFpYy0+Y29udGV4dCk7CiAgCi1AQCAtMTMwOSw3ICsxMzQ4LDEyIEBAIF9hdGV4aXRf Y2IgKCkKLSBzdGF0aWMgdm9pZAotIF9zaWdoYW5kbGVyIChpbnQgc2lnKQotIHsKLS0gICAgZXhp dChFWElUX0ZBSUxVUkUpOwotKyAgICAvKiByaGJ6IzE3Njc2OTEgX3NpZ2hhbmRsZXIoKSBpcyBj YWxsZWQgd2l0aCBTSUdURVJNCi0rICAgICAqIGFuZCBleGl0KCkgY2F1c2VzIFNFR1YgZHVyaW5n IGNhbGxpbmcgYXRleGl0IGZ1bmN0aW9ucy4KLSsgICAgICogX2F0ZXhpdF9jYigpIG1pZ2h0IGJl IGJyb2tlbi4gX2V4aXQoKSBkb2VzIG5vdCBjYWxsCi0rICAgICAqIGF0ZXhpdCBmdW5jdGlvbnMu Ci0rICAgICAqLwotKyAgICBfZXhpdChFWElUX0ZBSUxVUkUpOwotIH0KLSAKLSBzdGF0aWMgdm9p ZAogZGlmZiAtLWdpdCBhL3BvcnRhbC9wb3J0YWwuYyBiL3BvcnRhbC9wb3J0YWwuYwogaW5kZXgg NWNkMzg3NzkuLjUxMTBiYWFkIDEwMDY0NAogLS0tIGEvcG9ydGFsL3BvcnRhbC5jCkBAIC01MTAs MTAgKzQ5MiwxMCBAQCBpbmRleCA1Y2QzODc3OS4uNTExMGJhYWQgMTAwNjQ0CiAgICAgICAgICAg ICAgICAgIGdfb2JqZWN0X3VucmVmIChwb3J0YWxfY29udGV4dCk7CiAgICAgICAgICAgICAgfQog ZGlmZiAtLWdpdCBhL3NyYy9pYnVzYnVzLmMgYi9zcmMvaWJ1c2J1cy5jCi1pbmRleCAwZTZkNjdm MS4uZmNjNzQyYjYgMTAwNjQ0CitpbmRleCA1NDBkMWRhMy4uZGVmZGI3M2IgMTAwNjQ0CiAtLS0g YS9zcmMvaWJ1c2J1cy5jCiArKysgYi9zcmMvaWJ1c2J1cy5jCi1AQCAtNzQyLDYgKzc0MiwxMiBA QCBpYnVzX2J1c19kZXN0cm95IChJQnVzT2JqZWN0ICpvYmplY3QpCitAQCAtNzUwLDYgKzc1MCwx MiBAQCBpYnVzX2J1c19kZXN0cm95IChJQnVzT2JqZWN0ICpvYmplY3QpCiAgICAgIF9idXMgPSBO VUxMOwogIAogICAgICBpZiAoYnVzLT5wcml2LT5tb25pdG9yKSB7CkBAIC01MjcsNyArNTA5LDcg QEAgaW5kZXggMGU2ZDY3ZjEuLmZjYzc0MmI2IDEwMDY0NAogICAgICAgICAgYnVzLT5wcml2LT5t b25pdG9yID0gTlVMTDsKICAgICAgfQogZGlmZiAtLWdpdCBhL3VpL2d0azMvZXh0ZW5zaW9uLnZh bGEgYi91aS9ndGszL2V4dGVuc2lvbi52YWxhCi1pbmRleCBhNmYyZThlNi4uYjdhMDQwODEgMTAw NjQ0CitpbmRleCA1Y2QxYTZhZC4uM2FjZDc2ZWEgMTAwNjQ0CiAtLS0gYS91aS9ndGszL2V4dGVu c2lvbi52YWxhCiArKysgYi91aS9ndGszL2V4dGVuc2lvbi52YWxhCiBAQCAtNzMsNiArNzMsMTAg QEAgY2xhc3MgRXh0ZW5zaW9uR3RrIDogR3RrLkFwcGxpY2F0aW9uIHsKQEAgLTU0Miw3ICs1MjQs NyBAQCBpbmRleCBhNmYyZThlNi4uYjdhMDQwODEgMTAwNjQ0CiAgICAgICAgICBtX3BhbmVsLmxv YWRfc2V0dGluZ3MoKTsKICAgICAgfQogZGlmZiAtLWdpdCBhL3VpL2d0azMvc3dpdGNoZXIudmFs YSBiL3VpL2d0azMvc3dpdGNoZXIudmFsYQotaW5kZXggMjZiZGVkOTkuLjIxZWRlN2JlIDEwMDY0 NAoraW5kZXggZDRhNWZhMTEuLjc4OGVlYTA2IDEwMDY0NAogLS0tIGEvdWkvZ3RrMy9zd2l0Y2hl ci52YWxhCiArKysgYi91aS9ndGszL3N3aXRjaGVyLnZhbGEKIEBAIC0yNTEsMjcgKzI1MSwzNyBA QCBjbGFzcyBTd2l0Y2hlciA6IEd0ay5XaW5kb3cgewpAQCAtNTY2LDYgKzU0OCw3IEBAIGluZGV4 IDI2YmRlZDk5Li4yMWVkZTdiZSAxMDA2NDQKIC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvdXQgbV9tb3VzZV9pbml0X3gsCiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3V0IG1fbW91c2VfaW5pdF95KTsKIC0gICAgICAgIG1fbW91c2VfbW92ZWQgPSBm YWxzZTsKKy0KICsgICAgICAgIH0gZWxzZSB7CiArICAgICAgICAgICAgc3RhdHVzID0gc2VhdC5n cmFiKGdldF93aW5kb3coKSwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2RrLlNl YXRDYXBhYmlsaXRpZXMuUE9JTlRFUiwKQEAgLTU3Nyw2ICs1NjAsOSBAQCBpbmRleCAyNmJkZWQ5 OS4uMjFlZGU3YmUgMTAwNjQ0CiArICAgICAgICAgICAgICAgIHdhcm5pbmcoIkdyYWIgcG9pbnRl ciBmYWlsZWQhIHN0YXR1cyA9ICVkIiwgc3RhdHVzKTsKICsgICAgICAgIH0KICAKKy0gICAgICAg IG1fbG9vcCA9IG5ldyBHTGliLk1haW5Mb29wKCk7CistICAgICAgICBtX2xvb3AucnVuKCk7Cist ICAgICAgICBtX2xvb3AgPSBudWxsOwogKyAgICAgICAgLyogRml4IFJIQlogIzE3NzEyMzggYXNz ZXJ0KG1fbG9vcCA9PSBudWxsKQogKyAgICAgICAgICogR3JhYmJpbmcga2V5Ym9hcmQgY2FuIGJl IGZhaWxlZCB3aGVuIHRoZSBzZWNvbmQgU3VwZXItZSBpcyB0eXBlZAogKyAgICAgICAgICogYmVm b3JlIFN3aXRjaGVyIGRpYWxvZyBpcyBmb2N1c2VkLiBBbmQgbV9sb29wIGNvdWxkIG5vdCBiZSBy ZWxlYXNlZApAQCAtNTkwLDEwICs1NzYsNyBAQCBpbmRleCAyNmJkZWQ5OS4uMjFlZGU3YmUgMTAw NjQ0CiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBtX21vdXNl X2luaXRfeCwKICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0IG1f bW91c2VfaW5pdF95KTsKICsgICAgICAgICAgICBtX21vdXNlX21vdmVkID0gZmFsc2U7Ci0gCi0t ICAgICAgICBtX2xvb3AgPSBuZXcgR0xpYi5NYWluTG9vcCgpOwotLSAgICAgICAgbV9sb29wLnJ1 bigpOwotLSAgICAgICAgbV9sb29wID0gbnVsbDsKKysKICsgICAgICAgICAgICBtX2xvb3AgPSBu ZXcgR0xpYi5NYWluTG9vcCgpOwogKyAgICAgICAgICAgIG1fbG9vcC5ydW4oKTsKICsgICAgICAg ICAgICBtX2xvb3AgPSBudWxsOwpAQCAtNjAyLDUgKzU4NSw1IEBAIGluZGV4IDI2YmRlZDk5Li4y MWVkZTdiZSAxMDA2NDQKICAgICAgICAgIHNlYXQudW5ncmFiKCk7CiAgCiAtLSAKLTIuNDUuMAor Mi41MS4wCiAKCmRpZmYgLS1naXQgYS9pYnVzLUhFQUQucGF0Y2ggYi9pYnVzLUhFQUQucGF0Y2gK aW5kZXggZTY5ZGUyOS4uZDBmNTFlNSAxMDA2NDQKLS0tIGEvaWJ1cy1IRUFELnBhdGNoCisrKyBi L2lidXMtSEVBRC5wYXRjaApAQCAtMCwwICsxLDIwMDEgQEAKK0Zyb20gNTYzYjQzM2Q3MjEyMDFl NzZiNGU4YWM2ZWE1OTNlODczZmQ3MmExMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IEFybm91dCBFbmdlbGVuIDxhcm5vdXRAYnp6dC5uZXQ+CitEYXRlOiBNb24sIDMgTm92IDIwMjUg MDk6NDk6NDYgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gdWkvZ3RrMzogZG9uJ3QgYnVpbGQgaW4g cGFyYWxsZWwKKworQXMgdGhhdCBsZWQgdG8gbm9uZGV0ZXJtaW5pc3RpYyBnZW5lcmF0ZWQgbWV0 aG9kIG5hbWVzLiBUaGlzCitvbmx5IHNlZW1zIHRvIGhhdmUgYSBzbWFsbCBlZmZlY3Qgb24gcGVy Zm9ybWFuY2UgKH4xMHMgb24gYQord2hvbGUgZnJlc2ggYnVpbGQpLgorCitXaGlsZSBJIGFwcHJl Y2lhdGUgdGhlIGlidXMgcHJvamVjdCBkb2Vzbid0IGNvbnNpZGVyIHN1Y2gKK25vbmRldGVybWlu aXNtcyBhcyBwYXJ0aWN1bGFybHkgcHJvYmxlbWF0aWMgKCMyMjcyKSwgaGF2aW5nCitiaXR3aXNl IHJlcHJvZHVjaWJsZSBidWlsZHMgaXMgaW5jcmVhc2luZ2x5IGRlc2lyYWJsZSBpbiBMaW51eAor ZGlzdHJpYnV0aW9ucywgc28gaG9wZWZ1bGx5IHlvdSBjb3VsZCBjb25zaWRlciBhcHBseWluZyB0 aGlzCitjaGFuZ2Ugbm9uZXRoZWxlc3MuCisKK0JVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9p YnVzL3B1bGwvMjgyMQorLS0tCisgdWkvZ3RrMy9NYWtlZmlsZS5hbSB8IDIgKysKKyAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS91aS9ndGszL01ha2VmaWxl LmFtIGIvdWkvZ3RrMy9NYWtlZmlsZS5hbQoraW5kZXggZDk5ZDhlODIuLjRkZjZjNWViIDEwMDY0 NAorLS0tIGEvdWkvZ3RrMy9NYWtlZmlsZS5hbQorKysrIGIvdWkvZ3RrMy9NYWtlZmlsZS5hbQor QEAgLTMxNyw2ICszMTcsOCBAQCBwYW5lbGJpbmRpbmcubzogJChzcmNkaXIpL3BhbmVsYmluZGlu Zy5jCisgCSQoQU1fVl9DQ19ubykkKENPTVBJTEUpIC1jIC1vICRAICQ8CisgCSQoTlVMTCkKKyAK KysuTk9UUEFSQUxMRUw6CisrCisgTUFJTlRBSU5FUkNMRUFORklMRVMgKz0gZXh0ZW5zaW9uLmMg cGFuZWxiaW5kaW5nLmMKKyAKKyBtYW5fc2V2ZW5fREFUQSA9IGlidXMtZW1vamkuNworLS0gCisy LjUxLjAKKworRnJvbSAwMjAzMmJjNWYwZmM4OWM3ZDE4Nzc0NzU4YWUwNTJkZDM2MDY0MDhiIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgorRGF0ZTogTW9uLCA2IE9jdCAyMDI1IDIwOjQwOjE3ICswOTAwCitTdWJqZWN0 OiBbUEFUQ0ggMS80XSBzcmM6IEZpeCBHQ0MgYC1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVgIGZs YWcKKworQWRkIGBHX0dOVUNfVU5VU0VEYCBmbGFnIGZvciB0aGUgR0NDIHdhcm5pbmdzLgorCitC VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI4MDUKKy0tLQorIHNyYy9pYnVz Y29tcG9uZW50LmMgICAgfCA0ICsrLS0KKyBzcmMvaWJ1c21lc3NhZ2UuYyAgICAgIHwgMiArLQor IHNyYy9pYnVzc2VyaWFsaXphYmxlLmMgfCA0ICsrLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDUgaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9u ZW50LmMgYi9zcmMvaWJ1c2NvbXBvbmVudC5jCitpbmRleCA4MGFjZTMzMi4uYzQ1M2EyZjUgMTAw NjQ0CistLS0gYS9zcmMvaWJ1c2NvbXBvbmVudC5jCisrKysgYi9zcmMvaWJ1c2NvbXBvbmVudC5j CitAQCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGJ1cyAtIFRo ZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxzaGF3 bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgVGFrYW8gRnVqaXdh cmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDIwLTIw MjUgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMjAgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorQEAgLTcyOSw3 ICs3MjksNyBAQCBpYnVzX2NvbXBvbmVudF9uZXdfdmFyYXJncyAoY29uc3QgZ2NoYXIgKmZpcnN0 X3Byb3BlcnR5X25hbWUsIC4uLikKKyB7CisgICAgIHZhX2xpc3QgdmFyX2FyZ3M7CisgICAgIElC dXNDb21wb25lbnQgKmNvbXBvbmVudDsKKy0gICAgSUJ1c0NvbXBvbmVudFByaXZhdGUgKnByaXY7 CisrICAgIEdfR05VQ19VTlVTRUQgSUJ1c0NvbXBvbmVudFByaXZhdGUgKnByaXY7CisgCisgICAg IGdfYXNzZXJ0IChmaXJzdF9wcm9wZXJ0eV9uYW1lKTsKKyAKK2RpZmYgLS1naXQgYS9zcmMvaWJ1 c21lc3NhZ2UuYyBiL3NyYy9pYnVzbWVzc2FnZS5jCitpbmRleCA4OWUzMTc3MS4uMTJmYmI0OGUg MTAwNjQ0CistLS0gYS9zcmMvaWJ1c21lc3NhZ2UuYworKysrIGIvc3JjL2lidXNtZXNzYWdlLmMK K0BAIC00NTksNyArNDU5LDcgQEAgaWJ1c19tZXNzYWdlX25ldyAoZ3VpbnQgZG9tYWluLAorICAg ICBHVmFsdWUgKnZhbHVlcywgKnZhbHVlc190bXA7CisgICAgIGd1aW50IG5fcHJvcGVydGllcyA9 IDQsIGk7CisgICAgIElCdXNNZXNzYWdlICptc2c7CistICAgIElCdXNNZXNzYWdlUHJpdmF0ZSAq cHJpdjsKKysgICAgR19HTlVDX1VOVVNFRCBJQnVzTWVzc2FnZVByaXZhdGUgKnByaXY7CisgCisg ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChkb21haW4gPiAwICYmIGRvbWFpbiA8PSBHX01BWFVJ TlQ4LCBOVUxMKTsKKyAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGNvZGUgPD0gR19NQVhVSU5U OCwgTlVMTCk7CitkaWZmIC0tZ2l0IGEvc3JjL2lidXNzZXJpYWxpemFibGUuYyBiL3NyYy9pYnVz c2VyaWFsaXphYmxlLmMKK2luZGV4IDIzMTAyMGI3Li41MDE4NDFiMyAxMDA2NDQKKy0tLSBhL3Ny Yy9pYnVzc2VyaWFsaXphYmxlLmMKKysrKyBiL3NyYy9pYnVzc2VyaWFsaXphYmxlLmMKK0BAIC0y LDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1 dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1 YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBUYWthbyBGdWppd2Fy YSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAy NSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5cmln aHQgKEMpIDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCitAQCAtMjY5LDcg KzI2OSw3IEBAIEdWYXJpYW50ICoKKyBpYnVzX3NlcmlhbGl6YWJsZV9zZXJpYWxpemVfb2JqZWN0 IChJQnVzU2VyaWFsaXphYmxlICpvYmplY3QpCisgeworICAgICBnX3JldHVybl92YWxfaWZfZmFp bCAoSUJVU19JU19TRVJJQUxJWkFCTEUgKG9iamVjdCksIEZBTFNFKTsKKy0gICAgZ2Jvb2xlYW4g cmV0dmFsOworKyAgICBHX0dOVUNfVU5VU0VEIGdib29sZWFuIHJldHZhbDsKKyAKKyAgICAgR1Zh cmlhbnRCdWlsZGVyIGJ1aWxkZXI7CisgICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQgKCZidWls ZGVyLCBHX1ZBUklBTlRfVFlQRV9UVVBMRSk7CistLSAKKzIuNTEuMQorCitGcm9tIGM5ZDVkMGY1 MjFkZTlmMDJhODc2YzMxOWMwMjk3ODIzNWE3NDUzY2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBNb24s IDYgT2N0IDIwMjUgMjA6NDA6MjUgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzRdIHVpL2d0azMv YXBwbGljYXRpb246IC0tZW5hYmxlLXdheWxhbmQtaW0gb3B0aW9uIHdpdGhvdXQgZGFlbW9uCisK K1dpc2ggdG8gcnVuIGlidXMtZGFlbW9uIGFmdGVyIHJ1biBpYnVzLXVpLWd0azMgZm9yIHRoZSBk ZWJ1ZyBwdXJwb3NlLgorCitCVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI4 MDUKKy0tLQorIHVpL2d0azMvYXBwbGljYXRpb24udmFsYSB8IDMzICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCA5IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvdWkvZ3RrMy9hcHBsaWNhdGlvbi52YWxhIGIvdWkv Z3RrMy9hcHBsaWNhdGlvbi52YWxhCitpbmRleCA4MmNjNTM5Ny4uNjVhYjQzY2YgMTAwNjQ0Cist LS0gYS91aS9ndGszL2FwcGxpY2F0aW9uLnZhbGEKKysrKyBiL3VpL2d0azMvYXBwbGljYXRpb24u dmFsYQorQEAgLTM3LDYgKzM3LDcgQEAgY2xhc3MgQXBwbGljYXRpb24geworICAgICBwcml2YXRl IHN0YXRpYyBib29sIG1fdmVyYm9zZTsKKyAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBtX2VuYWJs ZV93YXlsYW5kX2ltOworICNpZiBVU0VfR0RLX1dBWUxBTkQKKysgICAgcHJpdmF0ZSBzdGF0aWMg dWxvbmcgbV9idXNfY29ubmVjdGVkX2lkOworICAgICBwcml2YXRlIHN0YXRpYyB1bG9uZyBtX3Jl YWxpemVfc3VyZmFjZV9pZDsKKyAgICAgcHJpdmF0ZSBzdGF0aWMgdWxvbmcgbV9pYnVzX2ZvY3Vz X2luX2lkOworICAgICBwcml2YXRlIHN0YXRpYyB1bG9uZyBtX2lidXNfZm9jdXNfb3V0X2lkOwor QEAgLTI4NSw3ICsyODYsNyBAQCBjbGFzcyBBcHBsaWNhdGlvbiB7CisgICAgICAgICBidXMgPSBu ZXcgSUJ1cy5CdXMoKTsKKyAgICAgICAgIEdMaWIuTWFpbkxvb3A/IGxvb3AgPSBudWxsOworICAg ICAgICAgaWYgKCFidXMuaXNfY29ubmVjdGVkKCkgJiYgbV9leGVjX2RhZW1vbikgeworLSAgICAg ICAgICAgIHVsb25nIGhhbmRsZXJfaWQgPSBidXMuY29ubmVjdGVkLmNvbm5lY3QoKGJ1cykgPT4g eworKyAgICAgICAgICAgIG1fYnVzX2Nvbm5lY3RlZF9pZCA9IGJ1cy5jb25uZWN0ZWQuY29ubmVj dCgoYnVzKSA9PiB7CisgICAgICAgICAgICAgICAgIGlmIChsb29wICE9IG51bGwpCisgICAgICAg ICAgICAgICAgICAgICBsb29wLnF1aXQoKTsKKyAgICAgICAgICAgICB9KTsKK0BAIC0yOTUsMTcg KzI5NiwzMSBAQCBjbGFzcyBBcHBsaWNhdGlvbiB7CisgICAgICAgICAgICAgICAgICAgICBsb29w LnJ1bigpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAg IGJ1cy5kaXNjb25uZWN0KGhhbmRsZXJfaWQpOworKyAgICAgICAgICAgIGJ1cy5kaXNjb25uZWN0 KG1fYnVzX2Nvbm5lY3RlZF9pZCk7CisrICAgICAgICAgICAgbV9idXNfY29ubmVjdGVkX2lkID0g MDsKKyAgICAgICAgIH0KKyAgICAgICAgIGlmICghYnVzLmlzX2Nvbm5lY3RlZCgpKSB7CistICAg ICAgICAgICAgbV9sb2cucHJpbnRmKCJGYWlsZWQgdG8gY29ubmVjdCB0byBpYnVzLWRhZW1vblxu Iik7CistICAgICAgICAgICAgbV9sb2cuZmx1c2goKTsKKy0gICAgICAgICAgICBhc3NlcnRfbm90 X3JlYWNoZWQoKTsKKysgICAgICAgICAgICBpZiAobV9leGVjX2RhZW1vbikgeworKyAgICAgICAg ICAgICAgICBtX2xvZy5wcmludGYoIkZhaWxlZCB0byBjb25uZWN0IHRvIGlidXMtZGFlbW9uXG4i KTsKKysgICAgICAgICAgICAgICAgbV9sb2cuZmx1c2goKTsKKysgICAgICAgICAgICAgICAgYXNz ZXJ0X25vdF9yZWFjaGVkKCk7CisrICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAg ICAgbV9idXNfY29ubmVjdGVkX2lkID0gYnVzLmNvbm5lY3RlZC5jb25uZWN0KChidXMpID0+IHsK KysgICAgICAgICAgICAgICAgICAgIG1fd2F5bGFuZF9pbSA9IG5ldyBJQnVzLldheWxhbmRJTSgi YnVzIiwgYnVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ3bF9kaXNwbGF5Iiwgd2xfZGlzcGxheSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9nIiwgbV9sb2csCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlcmJvc2Ui LCBtX3ZlcmJvc2UpOworKyAgICAgICAgICAgICAgICAgICAgYnVzLmRpc2Nvbm5lY3QobV9idXNf Y29ubmVjdGVkX2lkKTsKKysgICAgICAgICAgICAgICAgICAgIG1fYnVzX2Nvbm5lY3RlZF9pZCA9 IDA7CisrICAgICAgICAgICAgICAgIH0pOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysg ICAgICAgIGlmIChidXMuaXNfY29ubmVjdGVkKCkpIHsKKysgICAgICAgICAgICBtX3dheWxhbmRf aW0gPSBuZXcgSUJ1cy5XYXlsYW5kSU0oImJ1cyIsIGJ1cywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndsX2Rpc3BsYXkiLCB3bF9kaXNwbGF5LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9nIiwgbV9sb2cs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJib3Nl IiwgbV92ZXJib3NlKTsKKyAgICAgICAgIH0KKy0gICAgICAgIG1fd2F5bGFuZF9pbSA9IG5ldyBJ QnVzLldheWxhbmRJTSgiYnVzIiwgYnVzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ3bF9kaXNwbGF5Iiwgd2xfZGlzcGxheSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAibG9nIiwgbV9sb2csCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlcmJvc2UiLCBtX3ZlcmJvc2UpOworICAgICB9 CisgCisgICAgIHByaXZhdGUgdm9pZCBzZXRfd2F5bGFuZF9zdXJmYWNlKHZvaWQgKnN1cmZhY2Up IHsKKy0tIAorMi41MS4xCisKK0Zyb20gMWE5ZWExNmIxMmQ0ZTkwZTRjYWY3NGM0NTY5YTU5NjY2 MGRhNmU5YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8u ZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMjYgTm92IDIwMjUgMTQ6NTU6MjggKzA5 MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzRdIHV0aWwvSU1ka2l0OiBGaXggbWVtb3J5IGxlYWtzIHdp dGggZmFpbCBzYWZlCisKKy0gV2hlbiBtYWxsb2MoKSBpcyBmYWlsZWQsIHRoZSBwb2ludGVyIHNo b3VsZCBub3QgYmUgZGVhbGxvY2F0ZWQKKyAgYW5kIGFsc28gb3RoZXIgYWxsb2NhdGVkIG1lbW9y eSBwb2ludGVycyBzaG91bGQgYmUgZnJlZWQgaW4gRnJhbWVNZ3IuYy4KKy0gVGhlIGBYSU1fU1RS RlVOQ2AgbWFjcm8gaW1wbGVtZW50ZWQgaW4gWGltUHJvdG8uaC4KKy0gR0NDIGAtV2FuYWx5emVy LW1hbGxvYy1sZWFrYCBmbGFnIGRvZXMgbm90IGhhdmUgdG8gd2FybiB0aGUgcmVhbGxvY2F0aW9u CisgIHNpbmNlIHRoZSBgYWRkcmVzc2AgcG9pbnRlciBpcyBub3QgY2hhbmdlZCBhbmQgYGFkZHJl c3MtPmltdmFsdWVfbWFza2AKKyAgc2hvdWxkIHdvcmsgaW4gaTE4bk1ldGhvZC5jCistIFNlZW1z IEdDQyBkb2VzIG5vdCB1bmRlcnN0YW5kIGBpZiAoIXAtPnZhbHVlKWAgYW5kIHJlcGxhY2UgaXQg d2l0aCBhCisgIHdyYXBwZXIgdmFyaWFibGUgaW4gaTE4bk1ldGhvZC5jCistIEZpeCBleGl0KCkg ZnJvbSB3aXRoaW4gc2lnbmFsIGhhbmRsZXIgYnkgQ1dFLTQ3OSBhbmQKKyAgYC1XYW5hbHl6ZXIt dW5zYWZlLWNhbGwtd2l0aGluLXNpZ25hbC1oYW5kbGVyYCBpbiBjbGllbnQveDExL21haW4uYwor CitCVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI4MDUKKy0tLQorIGNsaWVu dC94MTEvbWFpbi5jICAgICAgICB8ICAgNyArLQorIHV0aWwvSU1ka2l0L0ZyYW1lTWdyLmMgICB8 IDMxNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KKyB1dGlsL0lNZGtp dC9YaW1Qcm90by5oICAgfCAgIDcgKy0KKyB1dGlsL0lNZGtpdC9pMThuTWV0aG9kLmMgfCAxMDQg KysrKysrKy0tLS0tLQorIDQgZmlsZXMgY2hhbmdlZCwgMzUyIGluc2VydGlvbnMoKyksIDgyIGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2xpZW50L3gxMS9tYWluLmMgYi9jbGllbnQveDEx L21haW4uYworaW5kZXggYWI5Njc5ZGQuLjVmYWRkNDNkIDEwMDY0NAorLS0tIGEvY2xpZW50L3gx MS9tYWluLmMKKysrKyBiL2NsaWVudC94MTEvbWFpbi5jCitAQCAtMTMwOSw3ICsxMzA5LDEyIEBA IF9hdGV4aXRfY2IgKCkKKyBzdGF0aWMgdm9pZAorIF9zaWdoYW5kbGVyIChpbnQgc2lnKQorIHsK Ky0gICAgZXhpdChFWElUX0ZBSUxVUkUpOworKyAgICAvKiByaGJ6IzE3Njc2OTEgX3NpZ2hhbmRs ZXIoKSBpcyBjYWxsZWQgd2l0aCBTSUdURVJNCisrICAgICAqIGFuZCBleGl0KCkgY2F1c2VzIFNF R1YgZHVyaW5nIGNhbGxpbmcgYXRleGl0IGZ1bmN0aW9ucy4KKysgICAgICogX2F0ZXhpdF9jYigp IG1pZ2h0IGJlIGJyb2tlbi4gX2V4aXQoKSBkb2VzIG5vdCBjYWxsCisrICAgICAqIGF0ZXhpdCBm dW5jdGlvbnMuCisrICAgICAqLworKyAgICBfZXhpdCAoRVhJVF9GQUlMVVJFKTsKKyB9CisgCisg c3RhdGljIHZvaWQKK2RpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9GcmFtZU1nci5jIGIvdXRpbC9J TWRraXQvRnJhbWVNZ3IuYworaW5kZXggODBkMDE5YTAuLjk3NmRiOTRlIDEwMDY0NAorLS0tIGEv dXRpbC9JTWRraXQvRnJhbWVNZ3IuYworKysrIGIvdXRpbC9JTWRraXQvRnJhbWVNZ3IuYworQEAg LTIzLDYgKzIzLDcgQEAgU09GVFdBUkUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt aXlhbW90b0BqcmQuZGVjLmNvbQorIAorICAgICBUaGlzIHZlcnNpb24gdGlkaWVkIGFuZCBkZWJ1 Z2dlZCBieSBTdGV2ZSBVbmRlcndvb2QgTWF5IDE5OTkKKysgICAgVGhpcyB2ZXJzaW9uIHRpZGll ZCBhbmQgZGVidWdnZWQgYnkgVGFrYW8gRnVqaXdhcmEgTm92IDIwMjUKKyAKKyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisgCitAQCAtMzAsNiArMzEsNyBAQCBTT0ZUV0FSRS4KKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+Cisg I2luY2x1ZGUgPHN0ZGxpYi5oPgorICNpbmNsdWRlICJGcmFtZU1nci5oIgorKyNpbmNsdWRlICJY aW1Qcm90by5oIgorIAorIC8qIENvbnZlbmllbnQgbWFjcm8gKi8KKyAKK0BAIC0yMTgsNyArMjIw LDExIEBAIEZyYW1lTWdyIEZyYW1lTWdySW5pdCAoWGltRnJhbWUgZnJhbWUsIGNoYXIqIGFyZWEs IEJvb2wgYnl0ZV9zd2FwKQorIHsKKyAgICAgRnJhbWVNZ3IgZm07CisgCistICAgIGZtID0gKEZy YW1lTWdyKSBYbWFsbG9jIChzaXplb2YgKEZyYW1lTWdyUmVjKSk7CisrICAgIGlmICgoZm0gPSAo RnJhbWVNZ3IpIFhtYWxsb2MgKHNpemVvZiAoRnJhbWVNZ3JSZWMpKSkgPT0gTlVMTCkgeworKyAg ICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IG1hbGxvYyBmYWls ZWQgaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAgX19GSUxFX18sIFhJTV9TVFJGVU5D KTsKKysgICAgICAgIHJldHVybiBOVUxMOworKyAgICB9CisgCisgICAgIGZtLT5mcmFtZSA9IGZy YW1lOworICAgICBmbS0+ZmkgPSBGcmFtZUluc3RJbml0IChmcmFtZSk7CitAQCAtMjU5LDcgKzI2 NSw4IEBAIHZvaWQgRnJhbWVNZ3JGcmVlIChGcmFtZU1nciBmbSkKKyAgICAgfQorICAgICAvKmVu ZHdoaWxlKi8KKyAKKy0gICAgRnJhbWVJbnN0RnJlZSAoZm0tPmZpKTsKKysgICAgaWYgKGZtLT5m aSkKKysgICAgICAgIEZyYW1lSW5zdEZyZWUgKGZtLT5maSk7CisgICAgIFhmcmVlIChmbSk7Cisg fQorIAorQEAgLTg2OCw3ICs4NzUsMTEgQEAgc3RhdGljIEZyYW1lSW5zdCBGcmFtZUluc3RJbml0 IChYaW1GcmFtZSBmcmFtZSkKKyB7CisgICAgIEZyYW1lSW5zdCBmaTsKKyAKKy0gICAgZmkgPSAo RnJhbWVJbnN0KSBYbWFsbG9jIChzaXplb2YgKEZyYW1lSW5zdFJlYykpOworKyAgICBpZiAoKGZp ID0gKEZyYW1lSW5zdCkgWG1hbGxvYyAoc2l6ZW9mIChGcmFtZUluc3RSZWMpKSkgPT0gTlVMTCkg eworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IG1hbGxv YyBmYWlsZWQgaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAgX19GSUxFX18sIFhJTV9T VFJGVU5DKTsKKysgICAgICAgIHJldHVybiBOVUxMOworKyAgICB9CisgCisgICAgIGZpLT50ZW1w bGF0ZSA9IGZyYW1lOworICAgICBmaS0+Y3VyX25vID0gMDsKK0BAIC04ODQsNyArODk1LDcgQEAg c3RhdGljIHZvaWQgRnJhbWVJbnN0RnJlZSAoRnJhbWVJbnN0IGZpKQorIAorICAgICBDaGFpbkl0 ZXJJbml0ICgmY2ksICZmaS0+Y20pOworIAorLSAgICB3aGlsZSAoQ2hhaW5JdGVyR2V0TmV4dCAo JmNpLCAmZnJhbWVfbm8sICZkKSkKKysgICAgd2hpbGUgKENoYWluSXRlckdldE5leHQgKCZjaSwg JmZyYW1lX25vLCAmZCkgJiYgZmktPnRlbXBsYXRlKQorICAgICB7CisgICAgICAgICByZWdpc3Rl ciBYaW1GcmFtZVR5cGUgdHlwZTsKKyAgICAgICAgIHR5cGUgPSBmaS0+dGVtcGxhdGVbZnJhbWVf bm9dLnR5cGU7CitAQCAtOTEyLDYgKzkyMywxMSBAQCBzdGF0aWMgWGltRnJhbWVUeXBlIEZyYW1l SW5zdEdldE5leHRUeXBlKEZyYW1lSW5zdCBmaSwgWGltRnJhbWVUeXBlSW5mbyBpbmZvKQorIHsK KyAgICAgWGltRnJhbWVUeXBlIHJldF90eXBlOworIAorKyAgICBpZiAoIWZpKSB7CisrICAgICAg ICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzogZmkgIT0gTlVMTCBpbiAl czolcy5cbiIsCisrICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgWElNX1NUUkZVTkMpOworKyAg ICAgICAgcmV0dXJuIC0xOworKyAgICB9CisgICAgIHJldF90eXBlID0gZmktPnRlbXBsYXRlW2Zp LT5jdXJfbm9dLnR5cGU7CisgCisgICAgIHN3aXRjaCAocmV0X3R5cGUpCitAQCAtOTQ0LDcgKzk2 MCwxMyBAQCBzdGF0aWMgWGltRnJhbWVUeXBlIEZyYW1lSW5zdEdldE5leHRUeXBlKEZyYW1lSW5z dCBmaSwgWGltRnJhbWVUeXBlSW5mbyBpbmZvKQorICAgICAgICAgICAgICAgICBpZiAoKGQgPSBD aGFpbk1nckdldEV4dHJhRGF0YSAoJmZpLT5jbSwgaXRlcl9pZHgpKSA9PSBOVUxMKQorICAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBkci5pdGVyID0gSXRlckluaXQgKCZm aS0+dGVtcGxhdGVbaXRlcl9pZHggKyAxXSwgTk9fVkFMVUUpOworKyAgICAgICAgICAgICAgICAg ICAgaWYgKCFkci5pdGVyKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAg ICAgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNldERhdGEgKCZmaS0+Y20sIGl0ZXJfaWR4 LCBkcik7CisrICAgICAgICAgICAgICAgICAgICBpZiAoIWQpIHsKKysgICAgICAgICAgICAgICAg ICAgICAgICBJdGVyRnJlZSAoZHIuaXRlcik7CisrICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIC0xOworKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAgICAgICBpbmZvLT5jb3VudGVyLml0 ZXIgPSBkLT5pdGVyOworQEAgLTk4MCw2ICsxMDAyLDcgQEAgc3RhdGljIFhpbUZyYW1lVHlwZSBG cmFtZUluc3RHZXROZXh0VHlwZShGcmFtZUluc3QgZmksIFhpbUZyYW1lVHlwZUluZm8gaW5mbykK KyAgICAgICAgICAgICByZWdpc3RlciBpbnQgdW5pdDsKKyAgICAgICAgICAgICByZWdpc3RlciBp bnQgbnVtYmVyOworICAgICAgICAgICAgIHJlZ2lzdGVyIGludCBzaXplOworKyAgICAgICAgICAg IHJlZ2lzdGVyIGludCBzOworICAgICAgICAgICAgIHJlZ2lzdGVyIGludCBpOworIAorICAgICAg ICAgICAgIHVuaXQgPSBfVU5JVCAoKGxvbmcpIGZpLT50ZW1wbGF0ZVtmaS0+Y3VyX25vXS5kYXRh KTsKK0BAIC05OTEsMTEgKzEwMTQsMjEgQEAgc3RhdGljIFhpbUZyYW1lVHlwZSBGcmFtZUluc3RH ZXROZXh0VHlwZShGcmFtZUluc3QgZmksIFhpbUZyYW1lVHlwZUluZm8gaW5mbykKKyAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgIGkgPSBfRnJhbWVJbnN0RGVjcmVtZW50IChmaS0+dGVt cGxhdGUsIGkpOworICAgICAgICAgICAgICAgICBhc3NlcnQgKGkgPj0gMCk7CistICAgICAgICAg ICAgICAgIHNpemUgKz0gX0ZyYW1lSW5zdEdldEl0ZW1TaXplIChmaSwgaSk7CisrICAgICAgICAg ICAgICAgIHMgPSBfRnJhbWVJbnN0R2V0SXRlbVNpemUgKGZpLCBpKTsKKysgICAgICAgICAgICAg ICAgaWYgKHMgPT0gTk9fVkFMVUUpIHsKKysgICAgICAgICAgICAgICAgICAgIHNpemUgPSBOT19W QUxVRTsKKysgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IDA7CisrICAgICAgICAgICAgICAg ICAgICBicmVhazsKKysgICAgICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAgICAg ICAgIHNpemUgKz0gczsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBudW1i ZXItLTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgLyplbmR3aGlsZSovCistICAgICAg ICAgICAgaW5mby0+bnVtID0gKHVuaXQgLSAoc2l6ZSV1bml0KSkldW5pdDsKKysgICAgICAgICAg ICBpZiAoc2l6ZSA9PSBOT19WQUxVRSkKKysgICAgICAgICAgICAgICAgaW5mby0+bnVtID0gTk9f VkFMVUU7CisrICAgICAgICAgICAgZWxzZQorKyAgICAgICAgICAgICAgICBpbmZvLT5udW0gPSAo dW5pdCAtIChzaXplJXVuaXQpKSV1bml0OworICAgICAgICAgfQorICAgICAgICAgLyplbmRpZiov CisgICAgICAgICBmaS0+Y3VyX25vID0gX0ZyYW1lSW5zdEluY3JlbWVudCAoZmktPnRlbXBsYXRl LCBmaS0+Y3VyX25vKTsKK0BAIC0xMDExLDcgKzEwNDQsMTMgQEAgc3RhdGljIFhpbUZyYW1lVHlw ZSBGcmFtZUluc3RHZXROZXh0VHlwZShGcmFtZUluc3QgZmksIFhpbUZyYW1lVHlwZUluZm8gaW5m bykKKyAgICAgICAgICAgICBpZiAoKGQgPSBDaGFpbk1nckdldEV4dHJhRGF0YSAoJmZpLT5jbSwg ZmktPmN1cl9ubykpID09IE5VTEwpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBk ci5pdGVyID0gSXRlckluaXQgKCZmaS0+dGVtcGxhdGVbZmktPmN1cl9ubyArIDFdLCBOT19WQUxV RSk7CisrICAgICAgICAgICAgICAgIGlmICghZHIuaXRlcikKKysgICAgICAgICAgICAgICAgICAg IHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgZCA9IENoYWluTWdyU2V0RGF0YSAoJmZpLT5j bSwgZmktPmN1cl9ubywgZHIpOworKyAgICAgICAgICAgICAgICBpZiAoIWQpIHsKKysgICAgICAg ICAgICAgICAgICAgIEl0ZXJGcmVlIChkci5pdGVyKTsKKysgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtMTsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAvKmVuZGlmKi8KKyAgICAgICAgICAgICBzdWJfdHlwZSA9IEl0ZXJHZXROZXh0VHlwZSAoZC0+ aXRlciwgaW5mbyk7CitAQCAtMTAzNyw3ICsxMDc2LDEzIEBAIHN0YXRpYyBYaW1GcmFtZVR5cGUg RnJhbWVJbnN0R2V0TmV4dFR5cGUoRnJhbWVJbnN0IGZpLCBYaW1GcmFtZVR5cGVJbmZvIGluZm8p CisgICAgICAgICAgICAgaWYgKChkID0gQ2hhaW5NZ3JHZXRFeHRyYURhdGEgKCZmaS0+Y20sIGZp LT5jdXJfbm8pKSA9PSBOVUxMKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZHIu ZmkgPSBGcmFtZUluc3RJbml0IChmaS0+dGVtcGxhdGVbZmktPmN1cl9ubyArIDFdLmRhdGEpOwor KyAgICAgICAgICAgICAgICBpZiAoIWRyLmZpKQorKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC0xOworICAgICAgICAgICAgICAgICBkID0gQ2hhaW5NZ3JTZXREYXRhICgmZmktPmNtLCBmaS0+ Y3VyX25vLCBkcik7CisrICAgICAgICAgICAgICAgIGlmICghZCkgeworKyAgICAgICAgICAgICAg ICAgICAgRnJhbWVJbnN0RnJlZSAoZHIuZmkpOworKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC0xOworKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIC8q ZW5kaWYqLworICAgICAgICAgICAgIHN1Yl90eXBlID0gRnJhbWVJbnN0R2V0TmV4dFR5cGUgKGQt PmZpLCBpbmZvKTsKK0BAIC0xMDY0LDYgKzExMDksMTEgQEAgc3RhdGljIFhpbUZyYW1lVHlwZSBG cmFtZUluc3RQZWVrTmV4dFR5cGUgKEZyYW1lSW5zdCBmaSwgWGltRnJhbWVUeXBlSW5mbyBpbmZv KQorIHsKKyAgICAgWGltRnJhbWVUeXBlIHJldF90eXBlOworIAorKyAgICBpZiAoIWZpKSB7Cisr ICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzogZmkgIT0gTlVM TCBpbiAlczolcy5cbiIsCisrICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgWElNX1NUUkZVTkMp OworKyAgICAgICAgcmV0dXJuIC0xOworKyAgICB9CisgICAgIHJldF90eXBlID0gZmktPnRlbXBs YXRlW2ZpLT5jdXJfbm9dLnR5cGU7CisgCisgICAgIHN3aXRjaCAocmV0X3R5cGUpCitAQCAtMTA5 Niw3ICsxMTQ2LDEzIEBAIHN0YXRpYyBYaW1GcmFtZVR5cGUgRnJhbWVJbnN0UGVla05leHRUeXBl IChGcmFtZUluc3QgZmksIFhpbUZyYW1lVHlwZUluZm8gaW5mbykKKyAgICAgICAgICAgICAgICAg aWYgKChkID0gQ2hhaW5NZ3JHZXRFeHRyYURhdGEgKCZmaS0+Y20sIGl0ZXJfaWR4KSkgPT0gTlVM TCkKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgZHIuaXRlciA9IEl0 ZXJJbml0ICgmZmktPnRlbXBsYXRlW2l0ZXJfaWR4ICsgMV0sIE5PX1ZBTFVFKTsKKysgICAgICAg ICAgICAgICAgICAgIGlmICghZHIuaXRlcikKKysgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLTE7CisgICAgICAgICAgICAgICAgICAgICBkID0gQ2hhaW5NZ3JTZXREYXRhICgmZmktPmNt LCBpdGVyX2lkeCwgZHIpOworKyAgICAgICAgICAgICAgICAgICAgaWYgKCFkKSB7CisrICAgICAg ICAgICAgICAgICAgICAgICAgSXRlckZyZWUgKGRyLml0ZXIpOworKyAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAtMTsKKysgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAvKmVuZGlmKi8KKyAgICAgICAgICAgICAgICAgaW5mby0+ Y291bnRlci5pdGVyID0gZC0+aXRlcjsKK0BAIC0xMTMwLDYgKzExODYsNyBAQCBzdGF0aWMgWGlt RnJhbWVUeXBlIEZyYW1lSW5zdFBlZWtOZXh0VHlwZSAoRnJhbWVJbnN0IGZpLCBYaW1GcmFtZVR5 cGVJbmZvIGluZm8pCisgICAgICAgICAgICAgcmVnaXN0ZXIgaW50IHVuaXQ7CisgICAgICAgICAg ICAgcmVnaXN0ZXIgaW50IG51bWJlcjsKKyAgICAgICAgICAgICByZWdpc3RlciBpbnQgc2l6ZTsK KysgICAgICAgICAgICByZWdpc3RlciBpbnQgczsKKyAgICAgICAgICAgICByZWdpc3RlciBpbnQg aTsKKyAKKyAgICAgICAgICAgICB1bml0ID0gX1VOSVQgKChsb25nKSBmaS0+dGVtcGxhdGVbZmkt PmN1cl9ub10uZGF0YSk7CitAQCAtMTE0MSwxMSArMTE5OCwyMSBAQCBzdGF0aWMgWGltRnJhbWVU eXBlIEZyYW1lSW5zdFBlZWtOZXh0VHlwZSAoRnJhbWVJbnN0IGZpLCBYaW1GcmFtZVR5cGVJbmZv IGluZm8pCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBpID0gX0ZyYW1lSW5zdERl Y3JlbWVudCAoZmktPnRlbXBsYXRlLCBpKTsKKyAgICAgICAgICAgICAgICAgYXNzZXJ0IChpID49 IDApOworLSAgICAgICAgICAgICAgICBzaXplICs9IF9GcmFtZUluc3RHZXRJdGVtU2l6ZSAoZmks IGkpOworKyAgICAgICAgICAgICAgICBzID0gX0ZyYW1lSW5zdEdldEl0ZW1TaXplIChmaSwgaSk7 CisrICAgICAgICAgICAgICAgIGlmIChzID09IE5PX1ZBTFVFKSB7CisrICAgICAgICAgICAgICAg ICAgICBzaXplID0gTk9fVkFMVUU7CisrICAgICAgICAgICAgICAgICAgICBudW1iZXIgPSAwOwor KyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisr ICAgICAgICAgICAgICAgICAgICBzaXplICs9IHM7CisrICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgbnVtYmVyLS07CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIC8qZW5k d2hpbGUqLworLSAgICAgICAgICAgIGluZm8tPm51bSA9ICh1bml0IC0gKHNpemUldW5pdCkpJXVu aXQ7CisrICAgICAgICAgICAgaWYgKHNpemUgPT0gTk9fVkFMVUUpCisrICAgICAgICAgICAgICAg IGluZm8tPm51bSA9IE5PX1ZBTFVFOworKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAg ICAgaW5mby0+bnVtID0gKHVuaXQgLSAoc2l6ZSV1bml0KSkldW5pdDsKKyAgICAgICAgIH0KKyAg ICAgICAgIC8qZW5kaWYqLworICAgICAgICAgYnJlYWs7CitAQCAtMTE1OSw3ICsxMjI2LDEzIEBA IHN0YXRpYyBYaW1GcmFtZVR5cGUgRnJhbWVJbnN0UGVla05leHRUeXBlIChGcmFtZUluc3QgZmks IFhpbUZyYW1lVHlwZUluZm8gaW5mbykKKyAgICAgICAgICAgICBpZiAoKGQgPSBDaGFpbk1nckdl dEV4dHJhRGF0YSAoJmZpLT5jbSwgZmktPmN1cl9ubykpID09IE5VTEwpCisgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICBkci5pdGVyID0gSXRlckluaXQgKCZmaS0+dGVtcGxhdGVbZmkt PmN1cl9ubyArIDFdLCBOT19WQUxVRSk7CisrICAgICAgICAgICAgICAgIGlmICghZHIuaXRlcikK KysgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICAgZCA9IENo YWluTWdyU2V0RGF0YSAoJmZpLT5jbSwgZmktPmN1cl9ubywgZHIpOworKyAgICAgICAgICAgICAg ICBpZiAoIWQpIHsKKysgICAgICAgICAgICAgICAgICAgIEl0ZXJGcmVlIChkci5pdGVyKTsKKysg ICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKysgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAvKmVuZGlmKi8KKyAgICAgICAgICAgICBzdWJfdHlwZSA9 IEl0ZXJQZWVrTmV4dFR5cGUgKGQtPml0ZXIsIGluZm8pOworQEAgLTExODAsNyArMTI1MywxMyBA QCBzdGF0aWMgWGltRnJhbWVUeXBlIEZyYW1lSW5zdFBlZWtOZXh0VHlwZSAoRnJhbWVJbnN0IGZp LCBYaW1GcmFtZVR5cGVJbmZvIGluZm8pCisgICAgICAgICAgICAgaWYgKChkID0gQ2hhaW5NZ3JH ZXRFeHRyYURhdGEgKCZmaS0+Y20sIGZpLT5jdXJfbm8pKSA9PSBOVUxMKQorICAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAgZHIuZmkgPSBGcmFtZUluc3RJbml0IChmaS0+dGVtcGxhdGVb ZmktPmN1cl9ubyArIDFdLmRhdGEpOworKyAgICAgICAgICAgICAgICBpZiAoIWRyLmZpKQorKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgICBkID0gQ2hhaW5N Z3JTZXREYXRhICgmZmktPmNtLCBmaS0+Y3VyX25vLCBkcik7CisrICAgICAgICAgICAgICAgIGlm ICghZCkgeworKyAgICAgICAgICAgICAgICAgICAgRnJhbWVJbnN0RnJlZSAoZHIuZmkpOworKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworKyAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgfQorICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAgIHN1Yl90eXBlID0g RnJhbWVJbnN0UGVla05leHRUeXBlIChkLT5maSwgaW5mbyk7CitAQCAtMTIwMiw2ICsxMjgxLDEx IEBAIHN0YXRpYyBCb29sIEZyYW1lSW5zdElzSXRlckxvb3BFbmQgKEZyYW1lSW5zdCBmaSkKKyB7 CisgICAgIEJvb2wgcmV0ID0gRmFsc2U7CisgCisrICAgIGlmICghZmkpIHsKKysgICAgICAgIGZw cmludGYgKHN0ZGVyciwgIihYSU0tSU1ka2l0KSBXQVJOSU5HOiBmaSAhPSBOVUxMIGluICVzOiVz LlxuIiwKKysgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBYSU1fU1RSRlVOQyk7CisrICAgICAg ICByZXR1cm4gVHJ1ZTsKKysgICAgfQorICAgICBpZiAoZmktPnRlbXBsYXRlW2ZpLT5jdXJfbm9d LnR5cGUgPT0gSVRFUikKKyAgICAgeworICAgICAgICAgRXh0cmFEYXRhIGQgPSBDaGFpbk1nckdl dEV4dHJhRGF0YSAoJmZpLT5jbSwgZmktPmN1cl9ubyk7CitAQCAtMTMxMyw2ICsxMzk3LDExIEBA IHN0YXRpYyBGbVN0YXR1cyBGcmFtZUluc3RTZXRTaXplIChGcmFtZUluc3QgZmksIGludCBudW0p CisgICAgIFhpbUZyYW1lVHlwZSB0eXBlOworICAgICByZWdpc3RlciBpbnQgaTsKKyAKKysgICAg aWYgKCFmaSkgeworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5J Tkc6IGZpICE9IE5VTEwgaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAgX19GSUxFX18s IFhJTV9TVFJGVU5DKTsKKysgICAgICAgIHJldHVybiBGbU5vTW9yZURhdGE7CisrICAgIH0KKyAg ICAgaSA9IDA7CisgICAgIHdoaWxlICgodHlwZSA9IGZpLT50ZW1wbGF0ZVtpXS50eXBlKSAhPSBF T0wpCisgICAgIHsKK0BAIC0xMzIzLDYgKzE0MTIsOCBAQCBzdGF0aWMgRm1TdGF0dXMgRnJhbWVJ bnN0U2V0U2l6ZSAoRnJhbWVJbnN0IGZpLCBpbnQgbnVtKQorICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgZHIubnVtID0gLTE7CisgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNl dERhdGEgKCZmaS0+Y20sIGksIGRyKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkKQorKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIEZtTm9Nb3JlRGF0YTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAgICAgaWYgKGQtPm51bSA9PSBOT19WQUxVRSkK K0BAIC0xMzM2LDcgKzE0MjcsMTMgQEAgc3RhdGljIEZtU3RhdHVzIEZyYW1lSW5zdFNldFNpemUg KEZyYW1lSW5zdCBmaSwgaW50IG51bSkKKyAgICAgICAgICAgICBpZiAoKGQgPSBDaGFpbk1nckdl dEV4dHJhRGF0YSAoJmZpLT5jbSwgaSkpID09IE5VTEwpCisgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICBkci5pdGVyID0gSXRlckluaXQgKCZmaS0+dGVtcGxhdGVbaSArIDFdLCBOT19W QUxVRSk7CisrICAgICAgICAgICAgICAgIGlmICghZHIuaXRlcikKKysgICAgICAgICAgICAgICAg ICAgIHJldHVybiBGbU5vTW9yZURhdGE7CisgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNl dERhdGEgKCZmaS0+Y20sIGksIGRyKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkKSB7CisrICAg ICAgICAgICAgICAgICAgICBJdGVyRnJlZSAoZHIuaXRlcik7CisrICAgICAgICAgICAgICAgICAg ICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg fQorICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAgIGlmIChJdGVyU2V0U2l6ZSAo ZC0+aXRlciwgbnVtKSA9PSBGbVN1Y2Nlc3MpCitAQCAtMTM0OCw3ICsxNDQ1LDEzIEBAIHN0YXRp YyBGbVN0YXR1cyBGcmFtZUluc3RTZXRTaXplIChGcmFtZUluc3QgZmksIGludCBudW0pCisgICAg ICAgICAgICAgaWYgKChkID0gQ2hhaW5NZ3JHZXRFeHRyYURhdGEoJmZpLT5jbSwgaSkpID09IE5V TEwpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBkci5maSA9IEZyYW1lSW5zdElu aXQoZmktPnRlbXBsYXRlW2kgKyAxXS5kYXRhKTsKKy0gICAgICAgICAgICAgICAgZCA9IENoYWlu TWdyU2V0RGF0YSgmZmktPmNtLCBpLCBkcik7CisrICAgICAgICAgICAgICAgIGlmICghZHIuZmkp CisrICAgICAgICAgICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAg ICAgICBkID0gQ2hhaW5NZ3JTZXREYXRhICgmZmktPmNtLCBpLCBkcik7CisrICAgICAgICAgICAg ICAgIGlmICghZCkgeworKyAgICAgICAgICAgICAgICAgICAgRnJhbWVJbnN0RnJlZSAoZHIuZmkp OworKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZtTm9Nb3JlRGF0YTsKKysgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAvKmVuZGlmKi8KKyAgICAgICAg ICAgICBpZiAoRnJhbWVJbnN0U2V0U2l6ZShkLT5maSwgbnVtKSA9PSBGbVN1Y2Nlc3MpCitAQCAt MTM3NCw2ICsxNDc3LDExIEBAIHN0YXRpYyBpbnQgRnJhbWVJbnN0R2V0U2l6ZSAoRnJhbWVJbnN0 IGZpKQorICAgICBFeHRyYURhdGFSZWMgZHI7CisgICAgIGludCByZXRfc2l6ZTsKKyAKKysgICAg aWYgKCFmaSkgeworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5J Tkc6IGZpICE9IE5VTEwgaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAgX19GSUxFX18s IFhJTV9TVFJGVU5DKTsKKysgICAgICAgIHJldHVybiBOT19WQUxJRF9GSUVMRDsKKysgICAgfQor ICAgICBpID0gZmktPmN1cl9ubzsKKyAgICAgd2hpbGUgKCh0eXBlID0gZmktPnRlbXBsYXRlW2ld LnR5cGUpICE9IEVPTCkKKyAgICAgeworQEAgLTEzODksNyArMTQ5NywxMyBAQCBzdGF0aWMgaW50 IEZyYW1lSW5zdEdldFNpemUgKEZyYW1lSW5zdCBmaSkKKyAgICAgICAgICAgICBpZiAoKGQgPSBD aGFpbk1nckdldEV4dHJhRGF0YSAoJmZpLT5jbSwgaSkpID09IE5VTEwpCisgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICBkci5pdGVyID0gSXRlckluaXQgKCZmaS0+dGVtcGxhdGVbaSAr IDFdLCBOT19WQUxVRSk7CisrICAgICAgICAgICAgICAgIGlmICghZHIuaXRlcikKKysgICAgICAg ICAgICAgICAgICAgIHJldHVybiBOT19WQUxJRF9GSUVMRDsKKyAgICAgICAgICAgICAgICAgZCA9 IENoYWluTWdyU2V0RGF0YSAoJmZpLT5jbSwgaSwgZHIpOworKyAgICAgICAgICAgICAgICBpZiAo IWQpIHsKKysgICAgICAgICAgICAgICAgICAgIEl0ZXJGcmVlIChkci5pdGVyKTsKKysgICAgICAg ICAgICAgICAgICAgIHJldHVybiBOT19WQUxJRF9GSUVMRDsKKysgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAvKmVuZGlmKi8KKyAgICAgICAgICAgICByZXRf c2l6ZSA9IEl0ZXJHZXRTaXplKGQtPml0ZXIpOworQEAgLTE0MDIsNyArMTUxNiwxMyBAQCBzdGF0 aWMgaW50IEZyYW1lSW5zdEdldFNpemUgKEZyYW1lSW5zdCBmaSkKKyAgICAgICAgICAgICBpZiAo KGQgPSBDaGFpbk1nckdldEV4dHJhRGF0YSAoJmZpLT5jbSwgaSkpID09IE5VTEwpCisgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICBkci5maSA9IEZyYW1lSW5zdEluaXQgKGZpLT50ZW1w bGF0ZVtpICsgMV0uZGF0YSk7CisrICAgICAgICAgICAgICAgIGlmICghZHIuZmkpCisrICAgICAg ICAgICAgICAgICAgICByZXR1cm4gTk9fVkFMSURfRklFTEQ7CisgICAgICAgICAgICAgICAgIGQg PSBDaGFpbk1nclNldERhdGEgKCZmaS0+Y20sIGksIGRyKTsKKysgICAgICAgICAgICAgICAgaWYg KCFkKSB7CisrICAgICAgICAgICAgICAgICAgICBGcmFtZUluc3RGcmVlIChkci5maSk7CisrICAg ICAgICAgICAgICAgICAgICByZXR1cm4gTk9fVkFMSURfRklFTEQ7CisrICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAgICAg cmV0X3NpemUgPSBGcmFtZUluc3RHZXRTaXplIChkLT5maSk7CitAQCAtMTQyOCw2ICsxNTQ4LDEx IEBAIHN0YXRpYyBGbVN0YXR1cyBGcmFtZUluc3RTZXRJdGVyQ291bnQgKEZyYW1lSW5zdCBmaSwg aW50IG51bSkKKyAgICAgcmVnaXN0ZXIgaW50IGk7CisgICAgIFhpbUZyYW1lVHlwZSB0eXBlOwor IAorKyAgICBpZiAoIWZpKSB7CisrICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlNZGtp dCkgV0FSTklORzogZmkgIT0gTlVMTCBpbiAlczolcy5cbiIsCisrICAgICAgICAgICAgICAgICBf X0ZJTEVfXywgWElNX1NUUkZVTkMpOworKyAgICAgICAgcmV0dXJuIEZtTm9Nb3JlRGF0YTsKKysg ICAgfQorICAgICBpID0gMDsKKyAgICAgd2hpbGUgKCh0eXBlID0gZmktPnRlbXBsYXRlW2ldLnR5 cGUpICE9IEVPTCkKKyAgICAgeworQEAgLTE0MzcsNyArMTU2MiwxMiBAQCBzdGF0aWMgRm1TdGF0 dXMgRnJhbWVJbnN0U2V0SXRlckNvdW50IChGcmFtZUluc3QgZmksIGludCBudW0pCisgICAgICAg ICAgICAgaWYgKChkID0gQ2hhaW5NZ3JHZXRFeHRyYURhdGEgKCZmaS0+Y20sIGkpKSA9PSBOVUxM KQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZHIuaXRlciA9IEl0ZXJJbml0ICgm ZmktPnRlbXBsYXRlW2kgKyAxXSwgbnVtKTsKKy0gICAgICAgICAgICAgICAgKHZvaWQpQ2hhaW5N Z3JTZXREYXRhICgmZmktPmNtLCBpLCBkcik7CisrICAgICAgICAgICAgICAgIGlmICghZHIuaXRl cikKKysgICAgICAgICAgICAgICAgICAgIHJldHVybiBGbU5vTW9yZURhdGE7CisrICAgICAgICAg ICAgICAgIGlmICghQ2hhaW5NZ3JTZXREYXRhICgmZmktPmNtLCBpLCBkcikpIHsKKysgICAgICAg ICAgICAgICAgICAgIEl0ZXJGcmVlIChkci5pdGVyKTsKKysgICAgICAgICAgICAgICAgICAgIHJl dHVybiBGbU5vTW9yZURhdGE7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg cmV0dXJuIEZtU3VjY2VzczsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgLyplbmRpZiov CitAQCAtMTQ1MCw3ICsxNTgwLDEzIEBAIHN0YXRpYyBGbVN0YXR1cyBGcmFtZUluc3RTZXRJdGVy Q291bnQgKEZyYW1lSW5zdCBmaSwgaW50IG51bSkKKyAgICAgICAgICAgICBpZiAoKGQgPSBDaGFp bk1nckdldEV4dHJhRGF0YSAoJmZpLT5jbSwgaSkpID09IE5VTEwpCisgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICBkci5maSA9IEZyYW1lSW5zdEluaXQgKGZpLT50ZW1wbGF0ZVtpICsg MV0uZGF0YSk7CisrICAgICAgICAgICAgICAgIGlmICghZHIuZmkpCisrICAgICAgICAgICAgICAg ICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworICAgICAgICAgICAgICAgICBkID0gQ2hhaW5NZ3JT ZXREYXRhICgmZmktPmNtLCBpLCBkcik7CisrICAgICAgICAgICAgICAgIGlmICghZCkgeworKyAg ICAgICAgICAgICAgICAgICAgRnJhbWVJbnN0RnJlZSAoZHIuZmkpOworKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEZtTm9Nb3JlRGF0YTsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAvKmVuZGlmKi8KKyAgICAgICAgICAgICBpZiAoRnJhbWVJbnN0 U2V0SXRlckNvdW50IChkLT5maSwgbnVtKSA9PSBGbVN1Y2Nlc3MpCitAQCAtMTQ3MiwxNCArMTYw OCwyNiBAQCBzdGF0aWMgRm1TdGF0dXMgRnJhbWVJbnN0U2V0SXRlckNvdW50IChGcmFtZUluc3Qg ZmksIGludCBudW0pCisgc3RhdGljIGludCBGcmFtZUluc3RHZXRUb3RhbFNpemUgKEZyYW1lSW5z dCBmaSkKKyB7CisgICAgIHJlZ2lzdGVyIGludCBzaXplOworKyAgICByZWdpc3RlciBpbnQgczsK KyAgICAgcmVnaXN0ZXIgaW50IGk7CisgCisgICAgIHNpemUgPSAwOworICAgICBpID0gMDsKKyAK KysgICAgaWYgKCFmaSkgeworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQp IFdBUk5JTkc6IGZpICE9IE5VTEwgaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAgX19G SUxFX18sIFhJTV9TVFJGVU5DKTsKKysgICAgICAgIHJldHVybiAwOworKyAgICB9CisgICAgIHdo aWxlIChmaS0+dGVtcGxhdGVbaV0udHlwZSAhPSBFT0wpCisgICAgIHsKKy0gICAgICAgIHNpemUg Kz0gX0ZyYW1lSW5zdEdldEl0ZW1TaXplIChmaSwgaSk7CisrICAgICAgICBzID0gX0ZyYW1lSW5z dEdldEl0ZW1TaXplIChmaSwgaSk7CisrICAgICAgICBpZiAocyA9PSBOT19WQUxVRSkgeworKyAg ICAgICAgICAgIHNpemUgPSBOT19WQUxVRTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAg IH0gZWxzZSB7CisrICAgICAgICAgICAgc2l6ZSArPSBzOworKyAgICAgICAgfQorICAgICAgICAg YXNzZXJ0IChpID49IDApOworICAgICAgICAgaSA9IF9GcmFtZUluc3RJbmNyZW1lbnQgKGZpLT50 ZW1wbGF0ZSwgaSk7CisgICAgIH0KK0BAIC0xNTI2LDggKzE2NzQsOCBAQCBzdGF0aWMgSXRlciBJ dGVySW5pdCAoWGltRnJhbWUgZnJhbWUsIGludCBjb3VudCkKKyAKKyAgICAgaXQgPSAoSXRlcikg WG1hbGxvYyAoc2l6ZW9mIChJdGVyUmVjKSk7CisgICAgIGlmICghaXQpIHsKKy0gICAgICAgIGZw cmludGYgKHN0ZGVyciwgIihYSU0tSU1ka2l0KSBXQVJOSU5HOiBtYWxsb2MgZmFpbGVkIGluICVz OiVkLlxuIiwKKy0gICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisrICAgICAg ICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBp biAlczolcy5cbiIsCisrICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgWElNX1NUUkZVTkMpOwor ICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgIH0KKyAgICAgaXQtPnRlbXBsYXRlID0gZnJhbWU7 CitAQCAtMTYwMCw3ICsxNzQ4LDcgQEAgc3RhdGljIHZvaWQgSXRlckZyZWUgKEl0ZXIgaXQpCisg ICAgICAgICAgICAgRXh0cmFEYXRhUmVjIGRyOworICAgICAKKyAgICAgICAgICAgICBDaGFpbkl0 ZXJJbml0ICgmY2ksICZpdC0+Y20pOworLSAgICAgICAgICAgIHdoaWxlIChDaGFpbkl0ZXJHZXRO ZXh0ICgmY2ksICZjb3VudCwgJmRyKSkKKysgICAgICAgICAgICB3aGlsZSAoQ2hhaW5JdGVyR2V0 TmV4dCAoJmNpLCAmY291bnQsICZkcikgJiYgZHIuZmkpCisgICAgICAgICAgICAgICAgIEZyYW1l SW5zdEZyZWUgKGRyLmZpKTsKKyAgICAgICAgICAgICAvKmVuZHdoaWxlKi8KKyAgICAgICAgICAg ICBDaGFpbkl0ZXJGcmVlICgmY2kpOworQEAgLTE2MzgsOCArMTc4NiwxMiBAQCBzdGF0aWMgQm9v bCBJdGVySXNMb29wRW5kIChJdGVyIGl0LCBCb29sICpteXNlbGYpCisgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgIGlmIChG cmFtZUluc3RJc0VuZCAoZC0+ZmkpKQorLSAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgIGlmICghZC0+ZmkpIHsKKysgICAgICAgICAgICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwg IihYSU0tSU1ka2l0KSBXQVJOSU5HOiBkLT5maSAhPSBOVUxMICIgXAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgX19GSUxFX18sIFhJTV9TVFJGVU5DKTsKKysgICAgICAgICAgICAgICAgICAg IHJldCA9IFRydWU7CisrICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoRnJhbWVJbnN0SXNFbmQg KGQtPmZpKSkgeworICAgICAgICAgICAgICAgICAgICAgaXQtPmN1cl9ubysrOworICAgICAgICAg ICAgICAgICAgICAgaWYgKCFpdC0+YWxsb3dfZXhwYW5zaW9uICAmJiAgaXQtPmN1cl9ubyA9PSBp dC0+bWF4X2NvdW50KQorICAgICAgICAgICAgICAgICAgICAgeworQEAgLTE2NzcsOSArMTgyOSw5 IEBAIHN0YXRpYyBYaW1GcmFtZVR5cGUgSXRlckdldE5leHRUeXBlIChJdGVyIGl0LCBYaW1GcmFt ZVR5cGVJbmZvIGluZm8pCisgICAgIFhpbUZyYW1lVHlwZSB0eXBlOworIAorICAgICBpZiAoIWl0 IHx8ICFpdC0+dGVtcGxhdGUpIHsKKy0gICAgICAgIGZwcmludGYgKHN0ZGVyciwgIihYSU0tSU1k a2l0KSBXQVJOSU5HOiBtYWxsb2MgZmFpbGVkIGluICVzOiVkLlxuIiwKKy0gICAgICAgICAgICAg ICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CistCXJldHVybiAoWGltRnJhbWVUeXBlKSBOVUxMOwor KyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IG1hbGxvYyBm YWlsZWQgaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAgX19GSUxFX18sIFhJTV9TVFJG VU5DKTsKKysJcmV0dXJuIChYaW1GcmFtZVR5cGUpTlVMTDsKKyAgICAgfQorIAorICAgICB0eXBl ID0gaXQtPnRlbXBsYXRlLT50eXBlOworQEAgLTE3MzIsNyArMTg4NCwxMyBAQCBzdGF0aWMgWGlt RnJhbWVUeXBlIEl0ZXJHZXROZXh0VHlwZSAoSXRlciBpdCwgWGltRnJhbWVUeXBlSW5mbyBpbmZv KQorICAgICAgICAgICAgIGlmICgoZCA9IENoYWluTWdyR2V0RXh0cmFEYXRhICgmaXQtPmNtLCBp dC0+Y3VyX25vKSkgPT0gTlVMTCkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGRy Lml0ZXIgPSBJdGVySW5pdCAoaXQtPnRlbXBsYXRlICsgMSwgTk9fVkFMVUUpOworKyAgICAgICAg ICAgICAgICBpZiAoIWRyLml0ZXIpCisrCSAgICAgICAgICAgIHJldHVybiAoWGltRnJhbWVUeXBl KU5VTEw7CisgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNldERhdGEgKCZpdC0+Y20sIGl0 LT5jdXJfbm8sIGRyKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkKSB7CisrICAgICAgICAgICAg ICAgICAgICBJdGVyRnJlZSAoZHIuaXRlcik7CisrCSAgICAgICAgICAgIHJldHVybiAoWGltRnJh bWVUeXBlKU5VTEw7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgLyplbmRpZiovCisgCitAQCAtMTc1NSw3ICsxOTEzLDEzIEBAIHN0YXRpYyBYaW1GcmFt ZVR5cGUgSXRlckdldE5leHRUeXBlIChJdGVyIGl0LCBYaW1GcmFtZVR5cGVJbmZvIGluZm8pCisg ICAgICAgICAgICAgaWYgKChkID0gQ2hhaW5NZ3JHZXRFeHRyYURhdGEgKCZpdC0+Y20sIGl0LT5j dXJfbm8pKSA9PSBOVUxMKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZHIuZmkg PSBGcmFtZUluc3RJbml0IChpdC0+dGVtcGxhdGVbMV0uZGF0YSk7CisrICAgICAgICAgICAgICAg IGlmICghZHIuZmkpCisrCSAgICAgICAgICAgIHJldHVybiAoWGltRnJhbWVUeXBlKU5VTEw7Cisg ICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNldERhdGEgKCZpdC0+Y20sIGl0LT5jdXJfbm8s IGRyKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkKSB7CisrICAgICAgICAgICAgICAgICAgICBG cmFtZUluc3RGcmVlIChkci5maSk7CisrCSAgICAgICAgICAgIHJldHVybiAoWGltRnJhbWVUeXBl KU5VTEw7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAg LyplbmRpZiovCisgCitAQCAtMTc4MSw5ICsxOTQ1LDkgQEAgc3RhdGljIFhpbUZyYW1lVHlwZSBJ dGVyUGVla05leHRUeXBlIChJdGVyIGl0LCBYaW1GcmFtZVR5cGVJbmZvIGluZm8pCisgICAgIFhp bUZyYW1lVHlwZSB0eXBlOworIAorICAgICBpZiAoIWl0LT50ZW1wbGF0ZSkgeworLSAgICAgICAg ZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IGRlcmVmZXJlbmNlIHBvaW50 ZXIgJXM6JWQuXG4iLAorLSAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKy0g ICAgICAgIHJldHVybiAoWGltRnJhbWVUeXBlKSBOVUxMOworKyAgICAgICAgZnByaW50ZiAoc3Rk ZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IGRlcmVmZXJlbmNlIHBvaW50ZXIgJXM6JXMuXG4i LAorKyAgICAgICAgICAgICAgICAgX19GSUxFX18sIFhJTV9TVFJGVU5DKTsKKysgICAgICAgIHJl dHVybiAoWGltRnJhbWVUeXBlKU5VTEw7CisgICAgIH0KKyAKKyAgICAgdHlwZSA9IGl0LT50ZW1w bGF0ZS0+dHlwZTsKK0BAIC0xODIzLDcgKzE5ODcsMTMgQEAgc3RhdGljIFhpbUZyYW1lVHlwZSBJ dGVyUGVla05leHRUeXBlIChJdGVyIGl0LCBYaW1GcmFtZVR5cGVJbmZvIGluZm8pCisgICAgICAg ICAgICAgaWYgKChkID0gQ2hhaW5NZ3JHZXRFeHRyYURhdGEgKCZpdC0+Y20sIGl0LT5jdXJfbm8p KSA9PSBOVUxMKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZHIuaXRlciA9IEl0 ZXJJbml0IChpdC0+dGVtcGxhdGUgKyAxLCBOT19WQUxVRSk7CisrICAgICAgICAgICAgICAgIGlm ICghZHIuaXRlcikKKysgICAgICAgICAgICAgICAgICAgIHJldHVybiAoWGltRnJhbWVUeXBlKU5V TEw7CisgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNldERhdGEgKCZpdC0+Y20sIGl0LT5j dXJfbm8sIGRyKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkKSB7CisrICAgICAgICAgICAgICAg ICAgICBJdGVyRnJlZSAoZHIuaXRlcik7CisrICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFhp bUZyYW1lVHlwZSlOVUxMOworKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAg ICAgICAgICAgIC8qZW5kaWYqLworIAorQEAgLTE4NDMsNyArMjAxMywxMyBAQCBzdGF0aWMgWGlt RnJhbWVUeXBlIEl0ZXJQZWVrTmV4dFR5cGUgKEl0ZXIgaXQsIFhpbUZyYW1lVHlwZUluZm8gaW5m bykKKyAgICAgICAgICAgICBpZiAoKGQgPSBDaGFpbk1nckdldEV4dHJhRGF0YSAoJml0LT5jbSwg aXQtPmN1cl9ubykpID09IE5VTEwpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBk ci5maSA9IEZyYW1lSW5zdEluaXQgKGl0LT50ZW1wbGF0ZVsxXS5kYXRhKTsKKysgICAgICAgICAg ICAgICAgaWYgKCFkci5maSkKKysgICAgICAgICAgICAgICAgICAgIHJldHVybiAoWGltRnJhbWVU eXBlKU5VTEw7CisgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNldERhdGEgKCZpdC0+Y20s IGl0LT5jdXJfbm8sIGRyKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkKSB7CisrICAgICAgICAg ICAgICAgICAgICBGcmFtZUluc3RGcmVlIChkci5maSk7CisrICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gKFhpbUZyYW1lVHlwZSlOVUxMOworKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgfQorICAgICAgICAgICAgIC8qZW5kaWYqLworIAorQEAgLTE4ODUsOSArMjA2MSw4IEBAIHN0 YXRpYyBGbVN0YXR1cyBJdGVyU2V0U2l6ZSAoSXRlciBpdCwgaW50IG51bSkKKyAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgZHIubnVtID0gTk9fVkFMVUU7CisgICAgICAg ICAgICAgICAgICAgICBkID0gQ2hhaW5NZ3JTZXREYXRhICgmaXQtPmNtLCBpLCBkcik7CistICAg ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgaWYgKCFkKSB7CistICAgICAgICAgICAg ICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAgICAgICAgICAgaWYgKCFk KQorKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGbU5vTW9yZURhdGE7CisgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAgICAgICAg IGlmIChkLT5udW0gPT0gTk9fVkFMVUUpCitAQCAtMTkwMyw3ICsyMDc4LDggQEAgc3RhdGljIEZt U3RhdHVzIEl0ZXJTZXRTaXplIChJdGVyIGl0LCBpbnQgbnVtKQorICAgICAgICAgICAgICAgICBF eHRyYURhdGFSZWMgZHI7CisgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBkci5u dW0gPSBudW07CistICAgICAgICAgICAgICAgIENoYWluTWdyU2V0RGF0YSAoJml0LT5jbSwgaXQt Pm1heF9jb3VudCwgZHIpOworKyAgICAgICAgICAgICAgICBpZiAoIUNoYWluTWdyU2V0RGF0YSAo Jml0LT5jbSwgaXQtPm1heF9jb3VudCwgZHIpKQorKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IEZtTm9Nb3JlRGF0YTsKKyAgICAgICAgICAgICAgICAgaXQtPm1heF9jb3VudCsrOworICAgICAK KyAgICAgICAgICAgICAgICAgcmV0dXJuIEZtU3VjY2VzczsKK0BAIC0xOTIyLDcgKzIwOTgsMTMg QEAgc3RhdGljIEZtU3RhdHVzIEl0ZXJTZXRTaXplIChJdGVyIGl0LCBpbnQgbnVtKQorICAgICAg ICAgICAgICAgICBpZiAoKGQgPSBDaGFpbk1nckdldEV4dHJhRGF0YSAoJml0LT5jbSwgaSkpID09 IE5VTEwpCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGRyLml0ZXIg PSBJdGVySW5pdCAoaXQtPnRlbXBsYXRlICsgMSwgTk9fVkFMVUUpOworKyAgICAgICAgICAgICAg ICAgICAgaWYgKCFkci5pdGVyKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGbU5v TW9yZURhdGE7CisgICAgICAgICAgICAgICAgICAgICBkID0gQ2hhaW5NZ3JTZXREYXRhICgmaXQt PmNtLCBpLCBkcik7CisrICAgICAgICAgICAgICAgICAgICBpZiAoIWQpIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICBJdGVyRnJlZSAoZHIuaXRlcik7CisrICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIEZtTm9Nb3JlRGF0YTsKKysgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAvKmVuZGlmKi8KKyAgICAgICAgICAgICAgICAg aWYgKEl0ZXJTZXRTaXplIChkLT5pdGVyLCBudW0pID09IEZtU3VjY2VzcykKK0BAIC0xOTM1LDcg KzIxMTcsMTIgQEAgc3RhdGljIEZtU3RhdHVzIEl0ZXJTZXRTaXplIChJdGVyIGl0LCBpbnQgbnVt KQorICAgICAgICAgICAgICAgICBFeHRyYURhdGFSZWMgZHI7CisgCisgICAgICAgICAgICAgICAg IGRyLml0ZXIgPSBJdGVySW5pdCAoaXQtPnRlbXBsYXRlICsgMSwgTk9fVkFMVUUpOworLSAgICAg ICAgICAgICAgICBDaGFpbk1nclNldERhdGEgKCZpdC0+Y20sIGl0LT5tYXhfY291bnQsIGRyKTsK KysgICAgICAgICAgICAgICAgaWYgKCFkci5pdGVyKQorKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIEZtTm9Nb3JlRGF0YTsKKysgICAgICAgICAgICAgICAgaWYgKCFDaGFpbk1nclNldERhdGEg KCZpdC0+Y20sIGl0LT5tYXhfY291bnQsIGRyKSkgeworKyAgICAgICAgICAgICAgICAgICAgSXRl ckZyZWUgKGRyLml0ZXIpOworKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZtTm9Nb3JlRGF0 YTsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBpdC0+bWF4X2NvdW50Kys7 CisgCisgICAgICAgICAgICAgICAgIGlmIChJdGVyU2V0U2l6ZShkci5pdGVyLCBudW0pID09IEZt U3VjY2VzcykKK0BAIC0xOTU2LDcgKzIxNDMsMTMgQEAgc3RhdGljIEZtU3RhdHVzIEl0ZXJTZXRT aXplIChJdGVyIGl0LCBpbnQgbnVtKQorICAgICAgICAgICAgICAgICBpZiAoKGQgPSBDaGFpbk1n ckdldEV4dHJhRGF0YSAoJml0LT5jbSwgaSkpID09IE5VTEwpCisgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgIGRyLmZpID0gRnJhbWVJbnN0SW5pdCAoaXQtPnRlbXBsYXRl WzFdLmRhdGEpOworKyAgICAgICAgICAgICAgICAgICAgaWYgKCFkci5maSkKKysgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworICAgICAgICAgICAgICAgICAgICAg ZCA9IENoYWluTWdyU2V0RGF0YSAoJml0LT5jbSwgaSwgZHIpOworKyAgICAgICAgICAgICAgICAg ICAgaWYgKCFkKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWVJbnN0RnJlZSAoZHIu ZmkpOworKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGbU5vTW9yZURhdGE7CisrICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg LyplbmRpZiovCisgICAgICAgICAgICAgICAgIGlmIChGcmFtZUluc3RTZXRTaXplIChkLT5maSwg bnVtKSA9PSBGbVN1Y2Nlc3MpCitAQCAtMTk2OSw3ICsyMTYyLDEyIEBAIHN0YXRpYyBGbVN0YXR1 cyBJdGVyU2V0U2l6ZSAoSXRlciBpdCwgaW50IG51bSkKKyAgICAgICAgICAgICAgICAgRXh0cmFE YXRhUmVjIGRyOworIAorICAgICAgICAgICAgICAgICBkci5maSA9IEZyYW1lSW5zdEluaXQgKGl0 LT50ZW1wbGF0ZVsxXS5kYXRhKTsKKy0gICAgICAgICAgICAgICAgQ2hhaW5NZ3JTZXREYXRhICgm aXQtPmNtLCBpdC0+bWF4X2NvdW50LCBkcik7CisrICAgICAgICAgICAgICAgIGlmICghZHIuZmkp CisrICAgICAgICAgICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAg ICAgICBpZiAoIUNoYWluTWdyU2V0RGF0YSAoJml0LT5jbSwgaXQtPm1heF9jb3VudCwgZHIpKSB7 CisrICAgICAgICAgICAgICAgICAgICBGcmFtZUluc3RGcmVlIChkci5maSk7CisrICAgICAgICAg ICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgICAgIGl0LT5tYXhfY291bnQrKzsKKyAKKyAgICAgICAgICAgICAgICAgaWYgKEZy YW1lSW5zdFNldFNpemUgKGRyLmZpLCBudW0pID09IEZtU3VjY2VzcykKK0BAIC0yMDEzLDcgKzIy MTEsMTMgQEAgc3RhdGljIGludCBJdGVyR2V0U2l6ZSAoSXRlciBpdCkKKyAgICAgICAgICAgICBp ZiAoKGQgPSBDaGFpbk1nckdldEV4dHJhRGF0YSAoJml0LT5jbSwgaSkpID09IE5VTEwpCisgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICBkci5pdGVyID0gSXRlckluaXQgKGl0LT50ZW1w bGF0ZSArIDEsIE5PX1ZBTFVFKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkci5pdGVyKQorKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIE5PX1ZBTElEX0ZJRUxEOworICAgICAgICAgICAgICAg ICBkID0gQ2hhaW5NZ3JTZXREYXRhICgmaXQtPmNtLCBpLCBkcik7CisrICAgICAgICAgICAgICAg IGlmICghZCkgeworKyAgICAgICAgICAgICAgICAgICAgSXRlckZyZWUgKGRyLml0ZXIpOworKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIE5PX1ZBTElEX0ZJRUxEOworKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAg IHJldF9zaXplID0gSXRlckdldFNpemUgKGQtPml0ZXIpOworQEAgLTIwMzIsNyArMjIzNiwxMyBA QCBzdGF0aWMgaW50IEl0ZXJHZXRTaXplIChJdGVyIGl0KQorICAgICAgICAgICAgIGlmICgoZCA9 IENoYWluTWdyR2V0RXh0cmFEYXRhICgmaXQtPmNtLCBpKSkgPT0gTlVMTCkKKyAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgIGRyLmZpID0gRnJhbWVJbnN0SW5pdCAoaXQtPnRlbXBsYXRl WzFdLmRhdGEpOworKyAgICAgICAgICAgICAgICBpZiAoIWRyLmZpKQorKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIE5PX1ZBTElEX0ZJRUxEOworICAgICAgICAgICAgICAgICBkID0gQ2hhaW5N Z3JTZXREYXRhICgmaXQtPmNtLCBpLCBkcik7CisrICAgICAgICAgICAgICAgIGlmICghZCkgewor KyAgICAgICAgICAgICAgICAgICAgRnJhbWVJbnN0RnJlZSAoZHIuZmkpOworKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIE5PX1ZBTElEX0ZJRUxEOworKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgfQorICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAgIHJldF9zaXpl ID0gRnJhbWVJbnN0R2V0U2l6ZSAoZC0+ZmkpOworQEAgLTIwNzcsNyArMjI4NywxMiBAQCBzdGF0 aWMgRm1TdGF0dXMgSXRlclNldEl0ZXJDb3VudCAoSXRlciBpdCwgaW50IG51bSkKKyAgICAgICAg ICAgICBpZiAoKGQgPSBDaGFpbk1nckdldEV4dHJhRGF0YSgmaXQtPmNtLCBpKSkgPT0gTlVMTCkK KyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGRyLml0ZXIgPSBJdGVySW5pdChpdC0+ dGVtcGxhdGUgKyAxLCBudW0pOworLSAgICAgICAgICAgICAgICAodm9pZClDaGFpbk1nclNldERh dGEoJml0LT5jbSwgaSwgZHIpOworKyAgICAgICAgICAgICAgICBpZiAoIWRyLml0ZXIpCisrICAg ICAgICAgICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAgICAgICBp ZiAoIUNoYWluTWdyU2V0RGF0YSgmaXQtPmNtLCBpLCBkcikpIHsKKysgICAgICAgICAgICAgICAg ICAgIEl0ZXJGcmVlIChkci5pdGVyKTsKKysgICAgICAgICAgICAgICAgICAgIHJldHVybiBGbU5v TW9yZURhdGE7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgcmV0dXJuIEZt U3VjY2VzczsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgLyplbmRpZiovCitAQCAtMjA5 MSw3ICsyMzA2LDEyIEBAIHN0YXRpYyBGbVN0YXR1cyBJdGVyU2V0SXRlckNvdW50IChJdGVyIGl0 LCBpbnQgbnVtKQorICAgICAgICAgICAgIEV4dHJhRGF0YVJlYyBkcjsKKyAKKyAgICAgICAgICAg ICBkci5pdGVyID0gSXRlckluaXQgKGl0LT50ZW1wbGF0ZSArIDEsIG51bSk7CistICAgICAgICAg ICAgQ2hhaW5NZ3JTZXREYXRhICgmaXQtPmNtLCBpdC0+bWF4X2NvdW50LCBkcik7CisrICAgICAg ICAgICAgaWYgKCFkci5pdGVyKQorKyAgICAgICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRh OworKyAgICAgICAgICAgIGlmICghQ2hhaW5NZ3JTZXREYXRhICgmaXQtPmNtLCBpdC0+bWF4X2Nv dW50LCBkcikpIHsKKysgICAgICAgICAgICAgICAgSXRlckZyZWUgKGRyLml0ZXIpOworKyAgICAg ICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICBpdC0+bWF4X2NvdW50Kys7CisgCisgICAgICAgICAgICAgcmV0dXJuIEZtU3VjY2VzczsK K0BAIC0yMTA4LDcgKzIzMjgsMTMgQEAgc3RhdGljIEZtU3RhdHVzIEl0ZXJTZXRJdGVyQ291bnQg KEl0ZXIgaXQsIGludCBudW0pCisgICAgICAgICAgICAgaWYgKChkID0gQ2hhaW5NZ3JHZXRFeHRy YURhdGEgKCZpdC0+Y20sIGkpKSA9PSBOVUxMKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgZHIuZmkgPSBGcmFtZUluc3RJbml0IChpdC0+dGVtcGxhdGVbMV0uZGF0YSk7CisrICAg ICAgICAgICAgICAgIGlmICghZHIuZmkpCisrICAgICAgICAgICAgICAgICAgICByZXR1cm4gRm1O b01vcmVEYXRhOworICAgICAgICAgICAgICAgICBkID0gQ2hhaW5NZ3JTZXREYXRhICgmaXQtPmNt LCBpLCBkcik7CisrICAgICAgICAgICAgICAgIGlmICghZCkgeworKyAgICAgICAgICAgICAgICAg ICAgRnJhbWVJbnN0RnJlZSAoZHIuZmkpOworKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZt Tm9Nb3JlRGF0YTsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAvKmVuZGlmKi8KKyAgICAgICAgICAgICBpZiAoRnJhbWVJbnN0U2V0SXRlckNvdW50IChk LT5maSwgbnVtKSA9PSBGbVN1Y2Nlc3MpCitAQCAtMjEyMSw3ICsyMzQ3LDEyIEBAIHN0YXRpYyBG bVN0YXR1cyBJdGVyU2V0SXRlckNvdW50IChJdGVyIGl0LCBpbnQgbnVtKQorICAgICAgICAgICAg IEV4dHJhRGF0YVJlYyBkcjsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgICBkci5maSA9IEZy YW1lSW5zdEluaXQgKGl0LT50ZW1wbGF0ZVsxXS5kYXRhKTsKKy0gICAgICAgICAgICBDaGFpbk1n clNldERhdGEgKCZpdC0+Y20sIGl0LT5tYXhfY291bnQsIGRyKTsKKysgICAgICAgICAgICBpZiAo IWRyLmZpKQorKyAgICAgICAgICAgICAgICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAg ICAgIGlmICghQ2hhaW5NZ3JTZXREYXRhICgmaXQtPmNtLCBpdC0+bWF4X2NvdW50LCBkcikpIHsK KysgICAgICAgICAgICAgICAgRnJhbWVJbnN0RnJlZSAoZHIuZmkpOworKyAgICAgICAgICAgICAg ICByZXR1cm4gRm1Ob01vcmVEYXRhOworKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBpdC0+ bWF4X2NvdW50Kys7CisgCisgICAgICAgICAgICAgaWYgKEZyYW1lSW5zdFNldEl0ZXJDb3VudCAo ZHIuZmksIG51bSkgPT0gRm1TdWNjZXNzKQorQEAgLTIyMTUsNyArMjQ0NiwxMyBAQCBzdGF0aWMg aW50IEl0ZXJHZXRUb3RhbFNpemUgKEl0ZXIgaXQpCisgICAgICAgICAgICAgaWYgKChkID0gQ2hh aW5NZ3JHZXRFeHRyYURhdGEgKCZpdC0+Y20sIGkpKSA9PSBOVUxMKQorICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgZHIuZmkgPSBGcmFtZUluc3RJbml0IChpdC0+dGVtcGxhdGVbMV0u ZGF0YSk7CisrICAgICAgICAgICAgICAgIGlmICghZHIuZmkpCisrICAgICAgICAgICAgICAgICAg ICByZXR1cm4gTk9fVkFMVUU7CisgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1nclNldERhdGEg KCZpdC0+Y20sIGksIGRyKTsKKysgICAgICAgICAgICAgICAgaWYgKCFkKSB7CisrICAgICAgICAg ICAgICAgICAgICBGcmFtZUluc3RGcmVlIChkci5maSk7CisrICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gTk9fVkFMVUU7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAgICAgaWYgKChudW0gPSBGcmFtZUluc3RHZXRU b3RhbFNpemUgKGQtPmZpKSkgPT0gTk9fVkFMVUUpCitAQCAtMjI3OCw4ICsyNTE1LDggQEAgc3Rh dGljIEV4dHJhRGF0YSBDaGFpbk1nclNldERhdGEgKENoYWluTWdyIGNtLAorIHsKKyAgICAgQ2hh aW4gY3VyID0gKENoYWluKSBYbWFsbG9jIChzaXplb2YgKENoYWluUmVjKSk7CisgICAgIGlmICgh Y3VyKSB7CistICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzog bWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIsCistICAgICAgICAgICAgICAgICBfX0ZJTEVfXywg X19MSU5FX18pOworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5J Tkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JXMuXG4iLAorKyAgICAgICAgICAgICAgICAgX19GSUxF X18sIFhJTV9TVFJGVU5DKTsKKyAgICAgICAgIHJldHVybiBOVUxMOworICAgICB9CisgCitAQCAt MjQ0NSw2ICsyNjgyLDcgQEAgc3RhdGljIGludCBfRnJhbWVJbnN0R2V0SXRlbVNpemUgKEZyYW1l SW5zdCBmaSwgaW50IGN1cl9ubykKKyAgICAgICAgICAgICByZWdpc3RlciBpbnQgdW5pdDsKKyAg ICAgICAgICAgICByZWdpc3RlciBpbnQgbnVtYmVyOworICAgICAgICAgICAgIHJlZ2lzdGVyIGlu dCBzaXplOworKyAgICAgICAgICAgIHJlZ2lzdGVyIGludCBzOworICAgICAgICAgICAgIHJlZ2lz dGVyIGludCBpOworIAorICAgICAgICAgICAgIHVuaXQgPSBfVU5JVCAoKGxvbmcpIGZpLT50ZW1w bGF0ZVtjdXJfbm9dLmRhdGEpOworQEAgLTI0NTYsMTEgKzI2OTQsMTkgQEAgc3RhdGljIGludCBf RnJhbWVJbnN0R2V0SXRlbVNpemUgKEZyYW1lSW5zdCBmaSwgaW50IGN1cl9ubykKKyAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgIGFzc2VydCAoaSA+PSAwKTsKKyAgICAgICAgICAgICAg ICAgaSA9IF9GcmFtZUluc3REZWNyZW1lbnQgKGZpLT50ZW1wbGF0ZSwgaSk7CistICAgICAgICAg ICAgICAgIHNpemUgKz0gX0ZyYW1lSW5zdEdldEl0ZW1TaXplIChmaSwgaSk7CisrICAgICAgICAg ICAgICAgIHMgPSBfRnJhbWVJbnN0R2V0SXRlbVNpemUgKGZpLCBpKTsKKysgICAgICAgICAgICAg ICAgaWYgKHMgPT0gTk9fVkFMVUUpIHsKKysgICAgICAgICAgICAgICAgICAgIHNpemUgPSBOT19W QUxVRTsKKysgICAgICAgICAgICAgICAgICAgIG51bWJlciA9IDA7CisrICAgICAgICAgICAgICAg ICAgICBicmVhazsKKysgICAgICAgICAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICAgICAg ICAgIHNpemUgKz0gczsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBudW1i ZXItLTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgLyplbmR3aGlsZSovCistICAgICAg ICAgICAgc2l6ZSA9ICh1bml0IC0gKHNpemUldW5pdCkpJXVuaXQ7CisrICAgICAgICAgICAgaWYg KHNpemUgIT0gTk9fVkFMVUUpCisrICAgICAgICAgICAgICAgIHNpemUgPSAodW5pdCAtIChzaXpl JXVuaXQpKSV1bml0OworICAgICAgICAgICAgIHJldHVybiBzaXplOworICAgICAgICAgfQorIAor ZGlmZiAtLWdpdCBhL3V0aWwvSU1ka2l0L1hpbVByb3RvLmggYi91dGlsL0lNZGtpdC9YaW1Qcm90 by5oCitpbmRleCBlM2VkMTY4Yy4uYTI1MjEzZjUgMTAwNjQ0CistLS0gYS91dGlsL0lNZGtpdC9Y aW1Qcm90by5oCisrKysgYi91dGlsL0lNZGtpdC9YaW1Qcm90by5oCitAQCAtMSw0ICsxLDQgQEAK Ky0vKiAkWENvbnNvcnRpdW06IFhpbVByb3RvLmgsdiAxLjIgOTQvMDEvMjAgMTg6MDI6MjQgcndz IEV4cCAkICovCisrLyogJFhDb25zb3J0aXVtOiBYaW1Qcm90by5oLHYgMS4zIDI1LzA5LzI0IDAw OjAwOjAwIHJ3cyBFeHAgJCAqLworIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAKKyAgICAgICAgICAgIENvcHlyaWdo dCAxOTkyLCAxOTkzLCAxOTk0IGJ5IEZVSklUU1UgTElNSVRFRAorQEAgLTIyNiw1ICsyMjYsMTAg QEAgdHlwZWRlZiBDQVJEMTYJWElDSUQ7CQkvKiBJbnB1dCBDb250ZXh0IElEICovCisgCX0JCQkJ CQkJCVwKKyAgICAgfQorIAorKyNpZiAoZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID4g MTMwMCkpCisrI2RlZmluZSBYSU1fU1RSRlVOQyAgICAgKChjb25zdCBjaGFyKikgKF9fRlVOQ1RJ T05fXykpCisrI2Vsc2UKKysjZGVmaW5lIFhJTV9TVFJGVU5DICAgICAoKGNvbnN0IGNoYXIqKSAo X19mdW5jX18pKQorICNlbmRpZgorIAorKyNlbmRpZgorZGlmZiAtLWdpdCBhL3V0aWwvSU1ka2l0 L2kxOG5NZXRob2QuYyBiL3V0aWwvSU1ka2l0L2kxOG5NZXRob2QuYworaW5kZXggN2YzNDNkODcu LmY3YTUzZjQwIDEwMDY0NAorLS0tIGEvdXRpbC9JTWRraXQvaTE4bk1ldGhvZC5jCisrKysgYi91 dGlsL0lNZGtpdC9pMThuTWV0aG9kLmMKK0BAIC0yLDcgKzIsOCBAQAorICAKKyAgICAgICAgICBD b3B5cmlnaHQgMTk5NCwgMTk5NSBieSBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuCisgICAgICAgICAg Q29weXJpZ2h0IDE5OTMsIDE5OTQgYnkgSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKy0gICAgICAg ICBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyNSBSZWQgSGF0LCBJbmMuCisrICAgICAgICAgQ29weXJp Z2h0IChDKSAyMDA4LTIwMjUgUmVkIEhhdCwgSW5jLgorKyAgICAgICAgIENvcHlyaWdodCAoQykg MjAxOC0yMDI1IFRha2FvIEZ1aml3YXJhCisgIAorIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBt b2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUKKyBhbmQgaXRzIGRvY3Vt ZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdpdGhvdXQgZmVlLAor QEAgLTM3LDYgKzM4LDggQEAgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFO Q0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAjZW5kaWYKKyAjaW5jbHVkZSA8WDExL1hwcm90by5oPgor ICN1bmRlZiBORUVEX0VWRU5UUworKyNpbmNsdWRlIDxhc3NlcnQuaD4KKysKKyAjaW5jbHVkZSAi RnJhbWVNZ3IuaCIKKyAjaW5jbHVkZSAiSU1ka2l0LmgiCisgI2luY2x1ZGUgIlhpMThuLmgiCitA QCAtMTk0LDE3ICsxOTcsMTggQEAgc3RhdGljIGNoYXIgKlBhcnNlQXJncyAoWGkxOG4gaTE4bl9j b3JlLCBpbnQgbW9kZSwgWElNQXJnICphcmdzKQorICAgICAgICAgICAgICAgICBpZiAoYWRkcmVz cy0+aW12YWx1ZV9tYXNrICYgSTE4Tl9JTV9MT0NBTEUpCisgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gSU1Mb2NhbGU7CisgICAgICAgICAgICAgICAgIC8qZW5kaWYqLworLSAgICAgICAgICAg ICAgICAvKiBhZGRyZXNzLT5pbV9sb2NhbGUgd2lsbCBiZSByZWxlYXNlZCBsYXRlciBhbmQgZG9u J3QgbmVlZAorLSAgICAgICAgICAgICAgICAgKiAtV2FuYWx5emVyLW1hbGxvYy1sZWFrIGZsYWcg aW4gZ2NjIDExLjAuMS4KKysgICAgICAgICAgICAgICAgLyogeGkxOG5fc2V0dXAoKSBpbml0aWFs aXplIHRoZSBgYWRkcmVzc2Agc3RydWN0dXJlIHdpdGggMCBhbmQKKysgICAgICAgICAgICAgICAg ICogdGhlIHBvaW50ZXIgb2YgdGhlIGBhZGRyZXNzYCBpcyBub3QgY2hhbmdlZCBhbmQKKysgICAg ICAgICAgICAgICAgICogYGFkZHJlc3MtPmltdmFsdWVfbWFza2Agc2hvdWxkIGF2b2lkIHRoZSBy ZWFsbG9jYXRpb24gc28KKysgICAgICAgICAgICAgICAgICogdGhlIGAtV2FuYWx5emVyLW1hbGxv Yy1sZWFrYCBmbGFnIGluIEdDQyAxMS4wLjEgc2hvdWxkIG5vdAorKyAgICAgICAgICAgICAgICAg KiB3YXJuIGFib3V0IGxlYWtzIG9mIENXRS00MDEuCisgICAgICAgICAgICAgICAgICAqLworLSNw cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl ZCAiLVdhbmFseXplci1tYWxsb2MtbGVhayIKKy0gICAgICAgICAgICAgICAgYWRkcmVzcy0+aW1f bG9jYWxlID0gKGNoYXIgKikgbWFsbG9jIChzdHJsZW4gKHAtPnZhbHVlKSArIDEpOworKyAgICAg ICAgICAgICAgICBhc3NlcnQgKCFhZGRyZXNzLT5pbV9sb2NhbGUpOworKyAgICAgICAgICAgICAg ICBhZGRyZXNzLT5pbV9sb2NhbGUgPSAoY2hhciAqKW1hbGxvYyAoc3RybGVuIChwLT52YWx1ZSkg KyAxKTsKKyAgICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzLT5pbV9sb2NhbGUpCisgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gSU1Mb2NhbGU7CisgICAgICAgICAgICAgICAgIC8qZW5kaWYq LworICAgICAgICAgICAgICAgICBzdHJjcHkgKGFkZHJlc3MtPmltX2xvY2FsZSwgcC0+dmFsdWUp OworLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgICAgIGFkZHJlc3Mt PmltdmFsdWVfbWFzayB8PSBJMThOX0lNX0xPQ0FMRTsKKyAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgZWxzZSBpZiAoc3RyY21wIChwLT5uYW1lLCBJTVNlcnZlclRyYW5zcG9ydCkgPT0gMCkK K0BAIC0yMTIsMTQgKzIxNiwxMiBAQCBzdGF0aWMgY2hhciAqUGFyc2VBcmdzIChYaTE4biBpMThu X2NvcmUsIGludCBtb2RlLCBYSU1BcmcgKmFyZ3MpCisgICAgICAgICAgICAgICAgIGlmIChhZGRy ZXNzLT5pbXZhbHVlX21hc2sgJiBJMThOX0lNX0FERFJFU1MpCisgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gSU1TZXJ2ZXJUcmFuc3BvcnQ7CisgICAgICAgICAgICAgICAgIC8qZW5kaWYqLwor LSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdu b3JlZCAiLVdhbmFseXplci1tYWxsb2MtbGVhayIKKy0gICAgICAgICAgICAgICAgYWRkcmVzcy0+ aW1fYWRkciA9IChjaGFyICopIG1hbGxvYyAoc3RybGVuIChwLT52YWx1ZSkgKyAxKTsKKysgICAg ICAgICAgICAgICAgYXNzZXJ0ICghYWRkcmVzcy0+aW1fYWRkcik7CisrICAgICAgICAgICAgICAg IGFkZHJlc3MtPmltX2FkZHIgPSAoY2hhciAqKW1hbGxvYyAoc3RybGVuIChwLT52YWx1ZSkgKyAx KTsKKyAgICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzLT5pbV9hZGRyKQorICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIElNU2VydmVyVHJhbnNwb3J0OworICAgICAgICAgICAgICAgICAvKmVu ZGlmKi8KKyAgICAgICAgICAgICAgICAgc3RyY3B5KGFkZHJlc3MtPmltX2FkZHIsIHAtPnZhbHVl KTsKKy0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgICBhZGRyZXNz LT5pbXZhbHVlX21hc2sgfD0gSTE4Tl9JTV9BRERSRVNTOworICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICBlbHNlIGlmIChzdHJjbXAgKHAtPm5hbWUsIElNU2VydmVyTmFtZSkgPT0gMCkKK0BA IC0yMjcsMTQgKzIyOSwxMiBAQCBzdGF0aWMgY2hhciAqUGFyc2VBcmdzIChYaTE4biBpMThuX2Nv cmUsIGludCBtb2RlLCBYSU1BcmcgKmFyZ3MpCisgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNz LT5pbXZhbHVlX21hc2sgJiBJMThOX0lNX05BTUUpCisgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gSU1TZXJ2ZXJOYW1lOworICAgICAgICAgICAgICAgICAvKmVuZGlmKi8KKy0jcHJhZ21hIEdD QyBkaWFnbm9zdGljIHB1c2gKKy0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XYW5h bHl6ZXItbWFsbG9jLWxlYWsiCistICAgICAgICAgICAgICAgIGFkZHJlc3MtPmltX25hbWUgPSAo Y2hhciAqKSBtYWxsb2MgKHN0cmxlbiAocC0+dmFsdWUpICsgMSk7CisrICAgICAgICAgICAgICAg IGFzc2VydCAoIWFkZHJlc3MtPmltX25hbWUpOworKyAgICAgICAgICAgICAgICBhZGRyZXNzLT5p bV9uYW1lID0gKGNoYXIgKiltYWxsb2MgKHN0cmxlbiAocC0+dmFsdWUpICsgMSk7CisgICAgICAg ICAgICAgICAgIGlmICghYWRkcmVzcy0+aW1fbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgIHJl dHVybiBJTVNlcnZlck5hbWU7CisgICAgICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAg ICAgICAgICBzdHJjcHkgKGFkZHJlc3MtPmltX25hbWUsIHAtPnZhbHVlKTsKKy0jcHJhZ21hIEdD QyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgICBhZGRyZXNzLT5pbXZhbHVlX21hc2sg fD0gSTE4Tl9JTV9OQU1FOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIGlmIChz dHJjbXAgKHAtPm5hbWUsIElNU2VydmVyV2luZG93KSA9PSAwKQorQEAgLTI0Miw3ICsyNDIsNyBA QCBzdGF0aWMgY2hhciAqUGFyc2VBcmdzIChYaTE4biBpMThuX2NvcmUsIGludCBtb2RlLCBYSU1B cmcgKmFyZ3MpCisgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzLT5pbXZhbHVlX21hc2sgJiBJ MThOX0lNU0VSVkVSX1dJTikKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTVNlcnZlcldp bmRvdzsKKyAgICAgICAgICAgICAgICAgLyplbmRpZiovCistICAgICAgICAgICAgICAgIGFkZHJl c3MtPmltX3dpbmRvdyA9IChXaW5kb3cpIHAtPnZhbHVlOworKyAgICAgICAgICAgICAgICBhZGRy ZXNzLT5pbV93aW5kb3cgPSAoV2luZG93KXAtPnZhbHVlOworICAgICAgICAgICAgICAgICBhZGRy ZXNzLT5pbXZhbHVlX21hc2sgfD0gSTE4Tl9JTVNFUlZFUl9XSU47CisgICAgICAgICAgICAgfQor ICAgICAgICAgICAgIGVsc2UgaWYgKHN0cmNtcCAocC0+bmFtZSwgSU1JbnB1dFN0eWxlcykgPT0g MCkKK0BAIC0yNTIsMTkgKzI1MiwyMSBAQCBzdGF0aWMgY2hhciAqUGFyc2VBcmdzIChYaTE4biBp MThuX2NvcmUsIGludCBtb2RlLCBYSU1BcmcgKmFyZ3MpCisgICAgICAgICAgICAgICAgIC8qZW5k aWYqLworICAgICAgICAgICAgICAgICBhZGRyZXNzLT5pbnB1dF9zdHlsZXMuY291bnRfc3R5bGVz ID0KKyAgICAgICAgICAgICAgICAgICAgICgoWElNU3R5bGVzKilwLT52YWx1ZSktPmNvdW50X3N0 eWxlczsKKy0gICAgICAgICAgICAgICAgYWRkcmVzcy0+aW5wdXRfc3R5bGVzLnN1cHBvcnRlZF9z dHlsZXMgPQorLSAgICAgICAgICAgICAgICAgICAgKFhJTVN0eWxlICopIG1hbGxvYyAoc2l6ZW9m IChYSU1TdHlsZSkqYWRkcmVzcy0+aW5wdXRfc3R5bGVzLmNvdW50X3N0eWxlcyk7CistICAgICAg ICAgICAgICAgIGlmIChhZGRyZXNzLT5pbnB1dF9zdHlsZXMuc3VwcG9ydGVkX3N0eWxlcyA9PSAo WElNU3R5bGUgKikgTlVMTCkKKysgICAgICAgICAgICAgICAgYXNzZXJ0ICghYWRkcmVzcy0+aW5w dXRfc3R5bGVzLnN1cHBvcnRlZF9zdHlsZXMpOworKyAgICAgICAgICAgICAgICBhZGRyZXNzLT5p bnB1dF9zdHlsZXMuc3VwcG9ydGVkX3N0eWxlcyA9IChYSU1TdHlsZSAqKW1hbGxvYyAoCisrICAg ICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYSU1TdHlsZSkgKiBhZGRyZXNzLT5pbnB1dF9z dHlsZXMuY291bnRfc3R5bGVzKTsKKysgICAgICAgICAgICAgICAgaWYgKGFkZHJlc3MtPmlucHV0 X3N0eWxlcy5zdXBwb3J0ZWRfc3R5bGVzID09IChYSU1TdHlsZSAqKU5VTEwpCisgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gSU1JbnB1dFN0eWxlczsKKyAgICAgICAgICAgICAgICAgLyplbmRp ZiovCisgICAgICAgICAgICAgICAgIG1lbW1vdmUgKGFkZHJlc3MtPmlucHV0X3N0eWxlcy5zdXBw b3J0ZWRfc3R5bGVzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAoKFhJTVN0eWxlcyAqKSBw LT52YWx1ZSktPnN1cHBvcnRlZF9zdHlsZXMsCistICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVvZiAoWElNU3R5bGUpKmFkZHJlc3MtPmlucHV0X3N0eWxlcy5jb3VudF9zdHlsZXMpOworKyAg ICAgICAgICAgICAgICAgICAgICAgICAoKFhJTVN0eWxlcyAqKXAtPnZhbHVlKS0+c3VwcG9ydGVk X3N0eWxlcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYSU1TdHlsZSkgKgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MtPmlucHV0X3N0eWxlcy5j b3VudF9zdHlsZXMpOworICAgICAgICAgICAgICAgICBhZGRyZXNzLT5pbXZhbHVlX21hc2sgfD0g STE4Tl9JTlBVVF9TVFlMRVM7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGVsc2UgaWYg KHN0cmNtcCAocC0+bmFtZSwgSU1Qcm90b2NvbEhhbmRsZXIpID09IDApCisgICAgICAgICAgICAg eworLSAgICAgICAgICAgICAgICBhZGRyZXNzLT5pbXByb3RvID0gKElNUHJvdG9IYW5kbGVyKSBw LT52YWx1ZTsKKysgICAgICAgICAgICAgICAgYWRkcmVzcy0+aW1wcm90byA9IChJTVByb3RvSGFu ZGxlcilwLT52YWx1ZTsKKyAgICAgICAgICAgICAgICAgYWRkcmVzcy0+aW12YWx1ZV9tYXNrIHw9 IEkxOE5fSU1fSEFORExFUjsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSBpZiAo c3RyY21wIChwLT5uYW1lLCBJTU9uS2V5c0xpc3QpID09IDApCitAQCAtMjczLDE1ICsyNzUsMTYg QEAgc3RhdGljIGNoYXIgKlBhcnNlQXJncyAoWGkxOG4gaTE4bl9jb3JlLCBpbnQgbW9kZSwgWElN QXJnICphcmdzKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElNT25LZXlzTGlzdDsKKyAg ICAgICAgICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAgICAgICAgIGFkZHJlc3MtPm9uX2tl eXMuY291bnRfa2V5cyA9CistICAgICAgICAgICAgICAgICAgICAoKFhJTVRyaWdnZXJLZXlzICop IHAtPnZhbHVlKS0+Y291bnRfa2V5czsKKy0gICAgICAgICAgICAgICAgYWRkcmVzcy0+b25fa2V5 cy5rZXlsaXN0ID0KKy0gICAgICAgICAgICAgICAgICAgIChYSU1UcmlnZ2VyS2V5ICopIG1hbGxv YyAoc2l6ZW9mIChYSU1UcmlnZ2VyS2V5KSphZGRyZXNzLT5vbl9rZXlzLmNvdW50X2tleXMpOwor LSAgICAgICAgICAgICAgICBpZiAoYWRkcmVzcy0+b25fa2V5cy5rZXlsaXN0ID09IChYSU1Ucmln Z2VyS2V5ICopIE5VTEwpCisrICAgICAgICAgICAgICAgICAgICAoKFhJTVRyaWdnZXJLZXlzICop cC0+dmFsdWUpLT5jb3VudF9rZXlzOworKyAgICAgICAgICAgICAgICBhc3NlcnQgKCFhZGRyZXNz LT5vbl9rZXlzLmtleWxpc3QpOworKyAgICAgICAgICAgICAgICBhZGRyZXNzLT5vbl9rZXlzLmtl eWxpc3QgPSAoWElNVHJpZ2dlcktleSAqKW1hbGxvYyAoCisrICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mIChYSU1UcmlnZ2VyS2V5KSAqIGFkZHJlc3MtPm9uX2tleXMuY291bnRfa2V5cyk7 CisrICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzLT5vbl9rZXlzLmtleWxpc3QgPT0gKFhJTVRy aWdnZXJLZXkgKilOVUxMKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElNT25LZXlzTGlz dDsKKyAgICAgICAgICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAgICAgICAgIG1lbW1vdmUg KGFkZHJlc3MtPm9uX2tleXMua2V5bGlzdCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgKChY SU1UcmlnZ2VyS2V5cyAqKSBwLT52YWx1ZSktPmtleWxpc3QsCistICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVvZiAoWElNVHJpZ2dlcktleSkqYWRkcmVzcy0+b25fa2V5cy5jb3VudF9rZXlz KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgKChYSU1UcmlnZ2VyS2V5cyAqKXAtPnZhbHVl KS0+a2V5bGlzdCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYSU1UcmlnZ2Vy S2V5KSAqIGFkZHJlc3MtPm9uX2tleXMuY291bnRfa2V5cyk7CisgICAgICAgICAgICAgICAgIGFk ZHJlc3MtPmltdmFsdWVfbWFzayB8PSBJMThOX09OX0tFWVM7CisgICAgICAgICAgICAgfQorICAg ICAgICAgICAgIGVsc2UgaWYgKHN0cmNtcCAocC0+bmFtZSwgSU1PZmZLZXlzTGlzdCkgPT0gMCkK K0BAIC0yOTAsMTUgKzI5MywxNiBAQCBzdGF0aWMgY2hhciAqUGFyc2VBcmdzIChYaTE4biBpMThu X2NvcmUsIGludCBtb2RlLCBYSU1BcmcgKmFyZ3MpCisgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gSU1PZmZLZXlzTGlzdDsKKyAgICAgICAgICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAg ICAgICAgIGFkZHJlc3MtPm9mZl9rZXlzLmNvdW50X2tleXMgPQorLSAgICAgICAgICAgICAgICAg ICAgKChYSU1UcmlnZ2VyS2V5cyAqKSBwLT52YWx1ZSktPmNvdW50X2tleXM7CistICAgICAgICAg ICAgICAgIGFkZHJlc3MtPm9mZl9rZXlzLmtleWxpc3QgPQorLSAgICAgICAgICAgICAgICAgICAg KFhJTVRyaWdnZXJLZXkgKikgbWFsbG9jIChzaXplb2YgKFhJTVRyaWdnZXJLZXkpKmFkZHJlc3Mt Pm9mZl9rZXlzLmNvdW50X2tleXMpOworLSAgICAgICAgICAgICAgICBpZiAoYWRkcmVzcy0+b2Zm X2tleXMua2V5bGlzdCA9PSAoWElNVHJpZ2dlcktleSAqKSBOVUxMKQorKyAgICAgICAgICAgICAg ICAgICAgKChYSU1UcmlnZ2VyS2V5cyAqKXAtPnZhbHVlKS0+Y291bnRfa2V5czsKKysgICAgICAg ICAgICAgICAgYXNzZXJ0ICghYWRkcmVzcy0+b2ZmX2tleXMua2V5bGlzdCk7CisrICAgICAgICAg ICAgICAgIGFkZHJlc3MtPm9mZl9rZXlzLmtleWxpc3QgPSAoWElNVHJpZ2dlcktleSAqKW1hbGxv YyAoCisrICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYSU1UcmlnZ2VyS2V5KSAqIGFk ZHJlc3MtPm9mZl9rZXlzLmNvdW50X2tleXMpOworKyAgICAgICAgICAgICAgICBpZiAoYWRkcmVz cy0+b2ZmX2tleXMua2V5bGlzdCA9PSAoWElNVHJpZ2dlcktleSAqKU5VTEwpCisgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gSU1PZmZLZXlzTGlzdDsKKyAgICAgICAgICAgICAgICAgLyplbmRp ZiovCisgICAgICAgICAgICAgICAgIG1lbW1vdmUgKGFkZHJlc3MtPm9mZl9rZXlzLmtleWxpc3Qs CistICAgICAgICAgICAgICAgICAgICAgICAgICgoWElNVHJpZ2dlcktleXMgKikgcC0+dmFsdWUp LT5rZXlsaXN0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKFhJTVRyaWdnZXJL ZXkpKmFkZHJlc3MtPm9mZl9rZXlzLmNvdW50X2tleXMpOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAoKFhJTVRyaWdnZXJLZXlzICopcC0+dmFsdWUpLT5rZXlsaXN0LAorKyAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplb2YgKFhJTVRyaWdnZXJLZXkpICogYWRkcmVzcy0+b2ZmX2tleXMu Y291bnRfa2V5cyk7CisgICAgICAgICAgICAgICAgIGFkZHJlc3MtPmltdmFsdWVfbWFzayB8PSBJ MThOX09GRl9LRVlTOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIGlmIChzdHJj bXAgKHAtPm5hbWUsIElNRW5jb2RpbmdMaXN0KSA9PSAwKQorQEAgLTMwOCwxNyArMzEyLDE5IEBA IHN0YXRpYyBjaGFyICpQYXJzZUFyZ3MgKFhpMThuIGkxOG5fY29yZSwgaW50IG1vZGUsIFhJTUFy ZyAqYXJncykKKyAgICAgICAgICAgICAgICAgLyplbmRpZiovCisgICAgICAgICAgICAgICAgIGFk ZHJlc3MtPmVuY29kaW5nX2xpc3QuY291bnRfZW5jb2RpbmdzID0KKyAgICAgICAgICAgICAgICAg ICAgICgoWElNRW5jb2RpbmdzICopIHAtPnZhbHVlKS0+Y291bnRfZW5jb2RpbmdzOworKyAgICAg ICAgICAgICAgICBhc3NlcnQgKCFhZGRyZXNzLT5lbmNvZGluZ19saXN0LnN1cHBvcnRlZF9lbmNv ZGluZ3MpOworICAgICAgICAgICAgICAgICBhZGRyZXNzLT5lbmNvZGluZ19saXN0LnN1cHBvcnRl ZF9lbmNvZGluZ3MgPQorLSAgICAgICAgICAgICAgICAgICAgKFhJTUVuY29kaW5nICopIG1hbGxv YyAoc2l6ZW9mIChYSU1FbmNvZGluZykqYWRkcmVzcy0+ZW5jb2RpbmdfbGlzdC5jb3VudF9lbmNv ZGluZ3MpOworKyAgICAgICAgICAgICAgICAgICAgICAgIChYSU1FbmNvZGluZyAqKW1hbGxvYyAo c2l6ZW9mIChYSU1FbmNvZGluZykgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YWRkcmVzcy0+ZW5jb2RpbmdfbGlzdC5jb3VudF9lbmNvZGluZ3MpOworICAgICAgICAgICAgICAg ICBpZiAoYWRkcmVzcy0+ZW5jb2RpbmdfbGlzdC5zdXBwb3J0ZWRfZW5jb2RpbmdzCistICAgICAg ICAgICAgICAgICAgICA9PSAoWElNRW5jb2RpbmcgKikgTlVMTCkKKy0gICAgICAgICAgICAgICAg eworKyAgICAgICAgICAgICAgICAgICAgPT0gKFhJTUVuY29kaW5nICopTlVMTCkgeworICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIElNRW5jb2RpbmdMaXN0OworICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAgICAgICBtZW1tb3ZlIChh ZGRyZXNzLT5lbmNvZGluZ19saXN0LnN1cHBvcnRlZF9lbmNvZGluZ3MsCistICAgICAgICAgICAg ICAgICAgICAgICAgICgoWElNRW5jb2RpbmdzICopIHAtPnZhbHVlKS0+c3VwcG9ydGVkX2VuY29k aW5ncywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYSU1FbmNvZGluZykqYWRk cmVzcy0+ZW5jb2RpbmdfbGlzdC5jb3VudF9lbmNvZGluZ3MpOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAoKFhJTUVuY29kaW5ncyAqKXAtPnZhbHVlKS0+c3VwcG9ydGVkX2VuY29kaW5ncywK KysgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChYSU1FbmNvZGluZykgKgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MtPmVuY29kaW5nX2xpc3QuY291bnRf ZW5jb2RpbmdzKTsKKyAgICAgICAgICAgICAgICAgYWRkcmVzcy0+aW12YWx1ZV9tYXNrIHw9IEkx OE5fRU5DT0RJTkdTOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIGlmIChzdHJj bXAgKHAtPm5hbWUsIElNRmlsdGVyRXZlbnRNYXNrKSA9PSAwKQorQEAgLTM1NCwzMCArMzYwLDM4 IEBAIHN0YXRpYyBjaGFyICpQYXJzZUFyZ3MgKFhpMThuIGkxOG5fY29yZSwgaW50IG1vZGUsIFhJ TUFyZyAqYXJncykKKyAgICAgeworICAgICAgICAgZm9yIChwID0gYXJnczsgIHAtPm5hbWUgIT0g TlVMTDsgIHArKykKKyAgICAgICAgIHsKKysgICAgICAgICAgICByZWdpc3RlciBjaGFyICpfcCA9 IE5VTEw7CisgICAgICAgICAgICAgaWYgKHN0cmNtcCAocC0+bmFtZSwgSU1Mb2NhbGUpID09IDAp CisgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICBwLT52YWx1ZSA9IChjaGFyICopIG1h bGxvYyAoc3RybGVuIChhZGRyZXNzLT5pbV9sb2NhbGUpICsgMSk7CistICAgICAgICAgICAgICAg IGlmICghcC0+dmFsdWUpCisrICAgICAgICAgICAgICAgIF9wID0gKGNoYXIgKiltYWxsb2MgKHN0 cmxlbiAoYWRkcmVzcy0+aW1fbG9jYWxlKSArIDEpOworKyAgICAgICAgICAgICAgICAvKiBXb3Jr YXJvdW5kIHRvIGF2b2lkIHRoZSB3YXJuaW5nIG9mIHRoZSBsZWFrIG9mICcqcC52YWx1ZScKKysg ICAgICAgICAgICAgICAgICogQ1dFLTQwMSBhbmQgLVdhbmFseXplci1tYWxsb2MtbGVhay4gU2Vl bXMgR0NDIGRvZXMgbm90CisrICAgICAgICAgICAgICAgICAqIHVuZGVyc3RhbmQgdGhlIGBpZiAo IXAtPnZhbHVlKWAgc2VudGVuY2UuCisrICAgICAgICAgICAgICAgICAqLworKyAgICAgICAgICAg ICAgICBpZiAoIV9wKQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElNTG9jYWxlOworICAg ICAgICAgICAgICAgICAvKmVuZGlmKi8KKysgICAgICAgICAgICAgICAgcC0+dmFsdWUgPSBfcDsK KyAgICAgICAgICAgICAgICAgc3RyY3B5IChwLT52YWx1ZSwgYWRkcmVzcy0+aW1fbG9jYWxlKTsK KyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZSBpZiAoc3RyY21wIChwLT5uYW1lLCBJ TVNlcnZlclRyYW5zcG9ydCkgPT0gMCkKKyAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAg IHAtPnZhbHVlID0gKGNoYXIgKikgbWFsbG9jIChzdHJsZW4gKGFkZHJlc3MtPmltX2FkZHIpICsg MSk7CistICAgICAgICAgICAgICAgIGlmICghcC0+dmFsdWUpCisrICAgICAgICAgICAgICAgIF9w ID0gKGNoYXIgKiltYWxsb2MgKHN0cmxlbiAoYWRkcmVzcy0+aW1fYWRkcikgKyAxKTsKKysgICAg ICAgICAgICAgICAgaWYgKCFfcCkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTVNlcnZl clRyYW5zcG9ydDsKKyAgICAgICAgICAgICAgICAgLyplbmRpZiovCisrICAgICAgICAgICAgICAg IHAtPnZhbHVlID0gX3A7CisgICAgICAgICAgICAgICAgIHN0cmNweSAocC0+dmFsdWUsIGFkZHJl c3MtPmltX2FkZHIpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIGlmIChzdHJj bXAgKHAtPm5hbWUsIElNU2VydmVyTmFtZSkgPT0gMCkKKyAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgIGlmIChhZGRyZXNzLT5pbXZhbHVlX21hc2sgJiBJMThOX0lNX05BTUUpCisgICAg ICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgICAgIHAtPnZhbHVlID0gKGNoYXIgKikg bWFsbG9jIChzdHJsZW4gKGFkZHJlc3MtPmltX25hbWUpICsgMSk7CistICAgICAgICAgICAgICAg ICAgICBpZiAoIXAtPnZhbHVlKQorKyAgICAgICAgICAgICAgICAgICAgX3AgPSAoY2hhciAqKW1h bGxvYyAoc3RybGVuIChhZGRyZXNzLT5pbV9uYW1lKSArIDEpOworKyAgICAgICAgICAgICAgICAg ICAgaWYgKCFfcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU1TZXJ2ZXJOYW1l OworICAgICAgICAgICAgICAgICAgICAgLyplbmRpZiovCisrICAgICAgICAgICAgICAgICAgICBw LT52YWx1ZSA9IF9wOworICAgICAgICAgICAgICAgICAgICAgc3RyY3B5IChwLT52YWx1ZSwgYWRk cmVzcy0+aW1fbmFtZSk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgZWxz ZQorLS0gCisyLjUxLjEKKworRnJvbSA1OWJkYWY2MTY5ZjM0YTMzNTNkNmJmNTk3ZmVmMGU4NGUy Y2E3M2M4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxNCBPY3QgMjAyNSAwOTowMDoyNCArMDkw MAorU3ViamVjdDogW1BBVENIIDQvNF0gRml4IG1lbW9yeSBsZWFrcyAjMgorCistIEZpeCBsZWFr cyBvZiBHT3B0aW9uQ29udGV4dCBpbiBidXMvbWFpbi5jCistIEZpeCBsZWFrcyBvZiBJQnVzRW5n aW5lRGVzYyB3aGVuIElNRSBpcyBzd2l0Y2hlZCBpbgorICBjbGllbnQvd2F5bGFuZC9pYnVzd2F5 bGFuZGltLmMKKy0gRml4IGxlYWtzIG9mIElCdXNUZXh0Q2xhc3M6Y29weSgpLCB3aGljaCBpcyB1 c2VkIGluCisgIEVtb2ppZXI6Z2V0X29uZV9kaW1lbnNpb25fbG9va3VwX3RhYmxlKCksIGluIHNy Yy9pYnVzdGV4dC5jCistIEZpeCBsZWFrIG9mIElCdXNFeHRlbnNpb25FdmVudCB3aXRoIGNvbW1p dC10ZXh0IHNpZ25hbCBhbmQgY2xpY2tpbmcgY2xvc2UKKyAgYnV0dG9uIHNpbmNlIGl0J3Mgbm90 IGZsb2F0aW5nIGluIHVpL2d0azMvcGFuZWxiaW5kaW5nLnZhbGEKKworRml4ZXM6IGh0dHBzOi8v Z2l0aHViLmNvbS9pYnVzL2lidXMvY29tbWl0L2E4MDA5NTcKK0JVRz1odHRwczovL2dpdGh1Yi5j b20vaWJ1cy9pYnVzL3B1bGwvMjgwNQorLS0tCisgYnVzL21haW4uYyAgICAgICAgICAgICAgICAg ICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIGNsaWVudC93YXls YW5kL2lidXN3YXlsYW5kaW0uYyB8ICAxICsKKyBzcmMvaWJ1c3RleHQuYyAgICAgICAgICAgICAg ICAgfCAxMSArKysrKysrKy0tLQorIHVpL2d0azMvcGFuZWxiaW5kaW5nLnZhbGEgICAgICB8ICA2 ICsrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9idXMvbWFpbi5jIGIvYnVzL21haW4uYworaW5kZXggZTBkYjE1 YjMuLmZmOTk0MWVjIDEwMDY0NAorLS0tIGEvYnVzL21haW4uYworKysrIGIvYnVzL21haW4uYwor QEAgLTE4Miw2ICsxODIsMTQgQEAgX29uX3NpZ3VzcjEgKHZvaWQpCisgfQorICNlbmRpZgorIAor K3N0YXRpYyBpbmxpbmUgdm9pZAorK2V4aXRfYW5kX2ZyZWVfY29udGV4dCAoaW50ICAgICAgICAg ICAgIHN0YXR1cywKKysgICAgICAgICAgICAgICAgICAgICAgIEdPcHRpb25Db250ZXh0ICpjb250 ZXh0KQorK3sKKysgICAgZ19vcHRpb25fY29udGV4dF9mcmVlIChjb250ZXh0KTsKKysgICAgZXhp dCAoc3RhdHVzKTsKKyt9CisrCisgZ2ludAorIG1haW4gKGdpbnQgYXJnYywgZ2NoYXIgKiphcmd2 KQorIHsKK0BAIC0yMDMsMTEgKzIxMSwxMSBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICoqYXJn dikKKyAgICAgaWYgKCFnX29wdGlvbl9jb250ZXh0X3BhcnNlIChjb250ZXh0LCAmYXJnYywgJmFy Z3YsICZlcnJvcikpIHsKKyAgICAgICAgIGdfcHJpbnRlcnIgKCJPcHRpb24gcGFyc2luZyBmYWls ZWQ6ICVzXG4iLCBlcnJvci0+bWVzc2FnZSk7CisgCWdfZXJyb3JfZnJlZSAoZXJyb3IpOworLSAg ICAgICAgZXhpdCAoLTEpOworKyAgICAgICAgZXhpdF9hbmRfZnJlZV9jb250ZXh0IChFWElUX0ZB SUxVUkUsIGNvbnRleHQpOworICAgICB9CisgICAgIGlmIChnX2dkYnVzX3RpbWVvdXQgPCAtMSkg eworICAgICAgICAgZ19wcmludGVyciAoIkJhZCB0aW1lb3V0IChtdXN0IGJlID49IC0xKTogJWRc biIsIGdfZ2RidXNfdGltZW91dCk7CistICAgICAgICBleGl0ICgtMSk7CisrICAgICAgICBleGl0 X2FuZF9mcmVlX2NvbnRleHQgKEVYSVRfRkFJTFVSRSwgY29udGV4dCk7CisgICAgIH0KKyAKKyAg ICAgaWYgKGdfbWVtcHJvKSB7CitAQCAtMjIwLDcgKzIyOCw3IEBAIG1haW4gKGdpbnQgYXJnYywg Z2NoYXIgKiphcmd2KQorIAorICAgICAgICAgaWYgKHB3ZCA9PSBOVUxMIHx8IGdfc3RyY21wMCAo cHdkLT5wd19uYW1lLCB1c2VybmFtZSkgIT0gMCkgeworICAgICAgICAgICAgIGdfcHJpbnRlcnIg KCJQbGVhc2UgcnVuIGlidXMtZGFlbW9uIHdpdGggbG9naW4gdXNlciEgRG8gbm90IHJ1biBpYnVz LWRhZW1vbiB3aXRoIHN1ZG8gb3Igc3UuXG4iKTsKKy0gICAgICAgICAgICBleGl0ICgtMSk7Cisr ICAgICAgICAgICAgZXhpdF9hbmRfZnJlZV9jb250ZXh0IChFWElUX0ZBSUxVUkUsIGNvbnRleHQp OworICAgICAgICAgfQorICAgICB9CisgCitAQCAtMjQ1LDcgKzI1Myw3IEBAIG1haW4gKGdpbnQg YXJnYywgZ2NoYXIgKiphcmd2KQorICAgICBpZiAoZGFlbW9uaXplKSB7CisgICAgICAgICBpZiAo ZGFlbW9uICgxLCAwKSAhPSAwKSB7CisgICAgICAgICAgICAgZ19wcmludGVyciAoIkNhbm5vdCBk YWVtb25pemUgaWJ1cy5cbiIpOworLSAgICAgICAgICAgIGV4aXQgKC0xKTsKKysgICAgICAgICAg ICBleGl0X2FuZF9mcmVlX2NvbnRleHQgKEVYSVRfRkFJTFVSRSwgY29udGV4dCk7CisgICAgICAg ICB9CisgICAgIH0KKyAKK0BAIC0yNjcsNyArMjc1LDcgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hh ciAqKmFyZ3YpCisgICAgICAgICBpZiAoaWJ1c19idXNfaXNfY29ubmVjdGVkIChidXMpKSB7Cisg ICAgICAgICAgICAgaWYgKCFyZXBsYWNlKSB7CisgICAgICAgICAgICAgICAgIGdfcHJpbnRlcnIg KCJjdXJyZW50IHNlc3Npb24gYWxyZWFkeSBoYXMgYW4gaWJ1cy1kYWVtb24uXG4iKTsKKy0gICAg ICAgICAgICAgICAgZXhpdCAoLTEpOworKyAgICAgICAgICAgICAgICBleGl0X2FuZF9mcmVlX2Nv bnRleHQgKEVYSVRfRkFJTFVSRSwgY29udGV4dCk7CisgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIGlidXNfYnVzX2V4aXQgKGJ1cywgRkFMU0UpOworICAgICAgICAgICAgIHdoaWxlIChpYnVz X2J1c19pc19jb25uZWN0ZWQgKGJ1cykpIHsKK0BAIC0zMDEsMTEgKzMwOSwxMSBAQCBtYWluIChn aW50IGFyZ2MsIGdjaGFyICoqYXJndikKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgaWYg KGNvbXBvbmVudCA9PSBOVUxMIHx8ICFidXNfY29tcG9uZW50X3N0YXJ0IChjb21wb25lbnQsIGdf dmVyYm9zZSkpIHsKKyAgICAgICAgICAgICAgICAgZ19wcmludGVyciAoIkNhbiBub3QgZXhlY3V0 ZSBkZWZhdWx0IGNvbmZpZyBwcm9ncmFtXG4iKTsKKy0gICAgICAgICAgICAgICAgZXhpdCAoLTEp OworKyAgICAgICAgICAgICAgICBleGl0X2FuZF9mcmVlX2NvbnRleHQgKEVYSVRfRkFJTFVSRSwg Y29udGV4dCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfSBlbHNlIGlmIChnX3N0cmNtcDAg KGNvbmZpZywgImRpc2FibGUiKSAhPSAwICYmIGdfc3RyY21wMCAoY29uZmlnLCAiIikgIT0gMCkg eworICAgICAgICAgICAgIGlmICghZXhlY3V0ZV9jbWRsaW5lIChjb25maWcpKQorLSAgICAgICAg ICAgICAgICBleGl0ICgtMSk7CisrICAgICAgICAgICAgICAgIGV4aXRfYW5kX2ZyZWVfY29udGV4 dCAoRVhJVF9GQUlMVVJFLCBjb250ZXh0KTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIC8qIGV4 ZWN1dGUgcGFuZWwgY29tcG9uZW50ICovCitAQCAtMzE4LDExICszMjYsMTEgQEAgbWFpbiAoZ2lu dCBhcmdjLCBnY2hhciAqKmFyZ3YpCisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGlmIChj b21wb25lbnQgPT0gTlVMTCB8fCAhYnVzX2NvbXBvbmVudF9zdGFydCAoY29tcG9uZW50LCBnX3Zl cmJvc2UpKSB7CisgICAgICAgICAgICAgICAgIGdfcHJpbnRlcnIgKCJDYW4gbm90IGV4ZWN1dGUg ZGVmYXVsdCBwYW5lbCBwcm9ncmFtXG4iKTsKKy0gICAgICAgICAgICAgICAgZXhpdCAoLTEpOwor KyAgICAgICAgICAgICAgICBleGl0X2FuZF9mcmVlX2NvbnRleHQgKEVYSVRfRkFJTFVSRSwgY29u dGV4dCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfSBlbHNlIGlmIChnX3N0cmNtcDAgKHBh bmVsLCAiZGlzYWJsZSIpICE9IDAgJiYgZ19zdHJjbXAwIChwYW5lbCwgIiIpICE9IDApIHsKKyAg ICAgICAgICAgICBpZiAoIWV4ZWN1dGVfY21kbGluZSAocGFuZWwpKQorLSAgICAgICAgICAgICAg ICBleGl0ICgtMSk7CisrICAgICAgICAgICAgICAgIGV4aXRfYW5kX2ZyZWVfY29udGV4dCAoRVhJ VF9GQUlMVVJFLCBjb250ZXh0KTsKKyAgICAgICAgIH0KKyAgICAgfQorIAorQEAgLTMzNywyNSAr MzQ1LDI1IEBAIG1haW4gKGdpbnQgYXJnYywgZ2NoYXIgKiphcmd2KQorICAgICAgICAgaWYgKGNv bXBvbmVudCAhPSBOVUxMICYmCisgICAgICAgICAgICAgIWJ1c19jb21wb25lbnRfc3RhcnQgKGNv bXBvbmVudCwgZ192ZXJib3NlKSkgeworICAgICAgICAgICAgIGdfcHJpbnRlcnIgKCJDYW4gbm90 IGV4ZWN1dGUgZGVmYXVsdCBwYW5lbCBwcm9ncmFtXG4iKTsKKy0gICAgICAgICAgICBleGl0ICgt MSk7CisrICAgICAgICAgICAgZXhpdF9hbmRfZnJlZV9jb250ZXh0IChFWElUX0ZBSUxVUkUsIGNv bnRleHQpOworICAgICAgICAgfQorICAgICB9IGVsc2UgaWYgKGdfc3RyY21wMCAoZW1vamlfZXh0 ZW5zaW9uLCAiZGlzYWJsZSIpICE9IDAgJiYKKyAgICAgICAgICAgICAgICBnX3N0cmNtcDAgKGVt b2ppX2V4dGVuc2lvbiwgIiIpICE9IDApIHsKKyAgICAgICAgIGlmICghZXhlY3V0ZV9jbWRsaW5l IChlbW9qaV9leHRlbnNpb24pKQorLSAgICAgICAgICAgIGV4aXQgKC0xKTsKKysgICAgICAgICAg ICBleGl0X2FuZF9mcmVlX2NvbnRleHQgKEVYSVRfRkFJTFVSRSwgY29udGV4dCk7CisgICAgIH0K KyAjZW5kaWYKKyAKKyAgICAgLyogZXhlY3V0ZSBpYnVzIHhpbSBzZXJ2ZXIgKi8KKyAgICAgaWYg KHhpbSkgeworICAgICAgICAgaWYgKCFleGVjdXRlX2NtZGxpbmUgKExJQkVYRUNESVIgIi9pYnVz LXgxMSAtLWtpbGwtZGFlbW9uIikpCistICAgICAgICAgICAgZXhpdCAoLTEpOworKyAgICAgICAg ICAgIGV4aXRfYW5kX2ZyZWVfY29udGV4dCAoRVhJVF9GQUlMVVJFLCBjb250ZXh0KTsKKyAgICAg fQorIAorICAgICBpZiAoIWRhZW1vbml6ZSkgeworICAgICAgICAgaWYgKGdldHBwaWQgKCkgPT0g MSkgeworICAgICAgICAgICAgIGdfd2FybmluZyAoIlRoZSBwYXJlbnQgcHJvY2VzcyBkaWVkLiIp OworLSAgICAgICAgICAgIGV4aXQgKDApOworKyAgICAgICAgICAgIGV4aXRfYW5kX2ZyZWVfY29u dGV4dCAoRVhJVF9TVUNDRVNTLCBjb250ZXh0KTsKKyAgICAgICAgIH0KKyAjaWZkZWYgSEFWRV9T WVNfUFJDVExfSAorICNpZmRlZiBHX09TX1VOSVgKK0BAIC0zOTYsNSArNDA0LDYgQEAgbWFpbiAo Z2ludCBhcmdjLCBnY2hhciAqKmFyZ3YpCisgI2VuZGlmCisgICAgIH0KKyAgICAgYnVzX3NlcnZl cl9ydW4gKCk7CisrICAgIGdfb3B0aW9uX2NvbnRleHRfZnJlZSAoY29udGV4dCk7CisgICAgIHJl dHVybiAwOworIH0KK2RpZmYgLS1naXQgYS9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMg Yi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMKK2luZGV4IGUwNTgwNDRmLi42MDI1Nzc3 OSAxMDA2NDQKKy0tLSBhL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYworKysrIGIvY2xp ZW50L3dheWxhbmQvaWJ1c3dheWxhbmRpbS5jCitAQCAtOTI0LDYgKzkyNCw3IEBAIF9idXNfZ2xv YmFsX2VuZ2luZV9jaGFuZ2VkX2NiIChJQnVzQnVzICAgICAgICpidXMsCisgICAgIGtleW1hcCA9 IGNyZWF0ZV91c2VyX3hrYl9rZXltYXAgKHByaXYtPnhrYl9jb250ZXh0LCBkZXNjKTsKKyAgICAg aWYgKGtleW1hcCAmJiAhaWJ1c193YXlsYW5kX2ltX3VwZGF0ZV94a2Jfc3RhdGUgKHdsaW0sIGtl eW1hcCkpCisgICAgICAgICB4a2Jfa2V5bWFwX3VucmVmIChrZXltYXApOworKyAgICBnX29iamVj dF91bnJlZiAoZGVzYyk7CisgfQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9pYnVzdGV4dC5jIGIv c3JjL2lidXN0ZXh0LmMKK2luZGV4IDczZDNkMTBjLi4wNTc2ZjZjOCAxMDA2NDQKKy0tLSBhL3Ny Yy9pYnVzdGV4dC5jCisrKysgYi9zcmMvaWJ1c3RleHQuYworQEAgLTIsNyArMiw3IEBACisgLyog dmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBJQnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHly aWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgor LSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2Fy YTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDI1IFRha2FvIEZ1aml3YXJh IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIx IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKK0BAIC0xMDksNyArMTA5LDcgQEAgaWJ1c190 ZXh0X2Rlc2VyaWFsaXplIChJQnVzVGV4dCAqdGV4dCwKKyAgICAgcmV0dmFsID0gSUJVU19TRVJJ QUxJWkFCTEVfQ0xBU1MgKGlidXNfdGV4dF9wYXJlbnRfY2xhc3MpLT5kZXNlcmlhbGl6ZSAoCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzU2VyaWFsaXphYmxlICopdGV4dCwgdmFy aWFudCk7CisgCistICAgIGlmICh0ZXh0LT5pc19zdGF0aWMgPT0gRkFMU0UpCisrICAgIGlmICgh dGV4dC0+aXNfc3RhdGljKQorICAgICAgICAgZ19mcmVlICh0ZXh0LT50ZXh0KTsKKyAgICAgZ192 YXJpYW50X2dldF9jaGlsZCAodmFyaWFudCwgcmV0dmFsKyssICJzIiwgJnRleHQtPnRleHQpOwor ICAgICB0ZXh0LT5pc19zdGF0aWMgPSBGQUxTRTsKK0BAIC0xMzksMTAgKzEzOSwxNSBAQCBpYnVz X3RleHRfY29weSAoSUJ1c1RleHQgICAgICAgKmRlc3QsCisgICAgIGdfcmV0dXJuX3ZhbF9pZl9m YWlsIChJQlVTX0lTX1RFWFQgKGRlc3QpLCBGQUxTRSk7CisgICAgIGdfcmV0dXJuX3ZhbF9pZl9m YWlsIChJQlVTX0lTX1RFWFQgKHNyYyksIEZBTFNFKTsKKyAKKysgICAgaWYgKCFkZXN0LT5pc19z dGF0aWMpCisrICAgICAgICBnX2ZyZWUgKGRlc3QtPnRleHQpOworICAgICBkZXN0LT50ZXh0ID0g Z19zdHJkdXAgKHNyYy0+dGV4dCk7CisgICAgIGRlc3QtPmlzX3N0YXRpYyA9IEZBTFNFOworKyAg ICBpZiAoZGVzdC0+YXR0cnMpCisrICAgICAgICBnX2NsZWFyX29iamVjdCAoJmRlc3QtPmF0dHJz KTsKKyAgICAgaWYgKHNyYy0+YXR0cnMpIHsKKy0gICAgICAgIGRlc3QtPmF0dHJzID0gKElCdXNB dHRyTGlzdCAqKWlidXNfc2VyaWFsaXphYmxlX2NvcHkgKChJQnVzU2VyaWFsaXphYmxlICopc3Jj LT5hdHRycyk7CisrICAgICAgICBkZXN0LT5hdHRycyA9IChJQnVzQXR0ckxpc3QgKilpYnVzX3Nl cmlhbGl6YWJsZV9jb3B5ICgKKysgICAgICAgICAgICAgICAgKElCdXNTZXJpYWxpemFibGUgKilz cmMtPmF0dHJzKTsKKyAgICAgICAgIGdfb2JqZWN0X3JlZl9zaW5rIChkZXN0LT5hdHRycyk7Cisg ICAgIH0KKyAKK2RpZmYgLS1naXQgYS91aS9ndGszL3BhbmVsYmluZGluZy52YWxhIGIvdWkvZ3Rr My9wYW5lbGJpbmRpbmcudmFsYQoraW5kZXggNDljOTE1NzUuLjUwN2IzZGFjIDEwMDY0NAorLS0t IGEvdWkvZ3RrMy9wYW5lbGJpbmRpbmcudmFsYQorKysrIGIvdWkvZ3RrMy9wYW5lbGJpbmRpbmcu dmFsYQorQEAgLTkxMCw2ICs5MTAsOSBAQCBjbGFzcyBQYW5lbEJpbmRpbmcgOiBJQnVzLlBhbmVs U2VydmljZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgImlzLWVuYWJsZWQiLCBmYWxzZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAiaXMtZXh0ZW5zaW9uIiwgdHJ1ZSk7CisgICAgICAg ICAgICAgICAgIHBhbmVsX2V4dGVuc2lvbihjbG9zZV9ldmVudCk7CisrICAgICAgICAgICAgICAg IC8vIFZhbGEgY2FsbHMgZXZlbnQucmVmX3NpbmsoKSBhbmQgcGFuZWxfZXh0ZW5zaW9uKCkgZG9l cyBub3QKKysgICAgICAgICAgICAgICAgLy8gdW5yZWYgdGhlIGV2ZW50IGFuZCBuZWVkIHRvIGNh bGwgZXZlbnQudW5yZWYoKSBoZXJlLgorKyAgICAgICAgICAgICAgICBjbG9zZV9ldmVudC51bnJl ZigpOworICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgIG1fZW1vamllci5zZW5kX21lc3Nh Z2UuY29ubmVjdCgobSkgPT4geworICAgICAgICAgICAgICAgICBzZW5kX21lc3NhZ2UobSk7CitA QCAtMTE3NSw2ICsxMTc4LDkgQEAgY2xhc3MgUGFuZWxCaW5kaW5nIDogSUJ1cy5QYW5lbFNlcnZp Y2UgeworICAgICAgICAgICAgICAgICAgICAgImlzLWVuYWJsZWQiLCBmYWxzZSwKKyAgICAgICAg ICAgICAgICAgICAgICJpcy1leHRlbnNpb24iLCB0cnVlKTsKKyAgICAgICAgICAgICBwYW5lbF9l eHRlbnNpb24oZXZlbnQpOworKyAgICAgICAgICAgIC8vIFZhbGEgY2FsbHMgZXZlbnQucmVmX3Np bmsoKSBhbmQgcGFuZWxfZXh0ZW5zaW9uKCkgZG9lcyBub3QgdW5yZWYKKysgICAgICAgICAgICAv LyB0aGUgZXZlbnQgYW5kIG5lZWQgdG8gY2FsbCBldmVudC51bnJlZigpIGhlcmUuCisrICAgICAg ICAgICAgZXZlbnQudW5yZWYoKTsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9Cisg ICAgICAgICBpZiAobV9lbW9qaWVyID09IG51bGwpCistLSAKKzIuNTEuMQorCitGcm9tIDI5NjE5 MmJkNjk0NDhlNWQ3ODJhMzMxNjJkZTI1NTM0ZGIwYTc5ZTcgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBG cmksIDE3IE9jdCAyMDI1IDEzOjE0OjMyICswOTAwCitTdWJqZWN0OiBbUEFUQ0ggMS81XSB1aS9n dGszOiBGaXggbW91c2UgcG9zaXRpb24gaW4gRW1vamllciBjYXRlZ29yeSBsaXN0CisKK0JVRz1y aGJ6IzIyMzc2NjQKKy0tLQorIHVpL2d0azMvZW1vamllci52YWxhIHwgMTcgKysrKysrKysrKyst LS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL3VpL2d0azMvZW1vamllci52YWxhIGIvdWkvZ3RrMy9lbW9qaWVyLnZh bGEKK2luZGV4IGZmYThjZGFhLi43MTQyMjI2NiAxMDA2NDQKKy0tLSBhL3VpL2d0azMvZW1vamll ci52YWxhCisrKysgYi91aS9ndGszL2Vtb2ppZXIudmFsYQorQEAgLTI5LDYgKzI5LDggQEAgcHVi bGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgICAg ICAgICAgICAgdmFsaWduIDogR3RrLkFsaWduLkZJTEwKKyAgICAgICAgICAgICApOworICAgICAg ICAgICAgIHRoaXMubW90aW9uX25vdGlmeV9ldmVudC5jb25uZWN0KChlKSA9PiB7CisrICAgICAg ICAgICAgICAgIGlmICghbV9lbnRlcl9ub3RpZnlfZW5hYmxlKQorKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICBHZGsuRXZlbnRNb3Rpb24gcGUgPSBl OworICAgICAgICAgICAgICAgICBpZiAobV9tb3VzZV94ID09IHBlLnhfcm9vdCAmJiBtX21vdXNl X3kgPT0gcGUueV9yb290KQorICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworQEAg LTM3LDYgKzM5LDcgQEAgcHVibGljIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9u V2luZG93IHsKKyAgICAgICAgICAgICAgICAgdmFyIHJvdyA9IHRoaXMuZ2V0X3Jvd19hdF95KChp bnQpZS55KTsKKyAgICAgICAgICAgICAgICAgaWYgKHJvdyAhPSBudWxsKQorICAgICAgICAgICAg ICAgICAgICAgdGhpcy5zZWxlY3Rfcm93KHJvdyk7CisrICAgICAgICAgICAgICAgIG1fY2F0ZWdv cnlfYWN0aXZlX2luZGV4ID0gcm93LmdldF9pbmRleCgpOworICAgICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgdGhpcy5lbnRlcl9ub3Rp ZnlfZXZlbnQuY29ubmVjdCgoZSkgPT4geworQEAgLTI3OSw2ICsyODIsMTIgQEAgcHVibGljIGNs YXNzIElCdXNFbW9qaWVyIDogR3RrLkFwcGxpY2F0aW9uV2luZG93IHsKKyAgICAgcHJpdmF0ZSBj b25zdCB1bmljaGFyW10gRU1PSklfVkFSSUFOVF9MSVNUID0geworICAgICAgICAgICAgIDB4MWYz ZmIsIDB4MWYzZmMsIDB4MWYzZmQsIDB4MWYzZmUsIDB4MWYzZmYsIDB4MjAwZCB9OworIAorKyAg ICAvLyBBY2Nlc3MgYm90aCBjbGFzcyBtZXRob2RzIGFuZCBpbnN0YW5jZXMuCisrICAgIHByb3Rl Y3RlZCBzdGF0aWMgaW50IG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4ID0gLTE7CisrICAgIHByb3Rl Y3RlZCBzdGF0aWMgYm9vbCBtX2VudGVyX25vdGlmeV9lbmFibGUgPSB0cnVlOworKyAgICBwcm90 ZWN0ZWQgc3RhdGljIGRvdWJsZSBtX21vdXNlX3g7CisrICAgIHByb3RlY3RlZCBzdGF0aWMgZG91 YmxlIG1fbW91c2VfeTsKKysKKyAgICAgLy8gU2V0IHRoZSBhY3R1YWwgZGVmYXVsdCB2YWx1ZXMg aW4gdGhlIGNvbnN0cnVjdG9yCisgICAgIC8vIGJlY2F1c2UgdGhlc2UgZmllbGRzIGFyZSB1c2Vk IGZvciBjbGFzc19pbml0KCkgYW5kIHN0YXRpYyBmdW5jdGlvbnMsCisgICAgIC8vIGUuZy4gc2V0 X2Vtb2ppX2ZvbnQoKSwgY2FuIGJlIGNhbGxlZCBiZWZvcmUgY2xhc3NfaW5pdCgpIGlzIGNhbGxl ZC4KK0BAIC0zNDgsMTQgKzM1NywxMCBAQCBwdWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsu QXBwbGljYXRpb25XaW5kb3cgeworICAgICAgKiBVbmljb2RlIGNhdGVnb3J5IGxpc3QuCisgICAg ICAqLworICAgICBwcml2YXRlIGJvb2wgbV9jYW5kaWRhdGVfcGFuZWxfbW9kZTsKKy0gICAgcHJp dmF0ZSBpbnQgbV9jYXRlZ29yeV9hY3RpdmVfaW5kZXggPSAtMTsKKyAgICAgcHJpdmF0ZSBJQnVz Lkxvb2t1cFRhYmxlIG1fbG9va3VwX3RhYmxlOworICAgICBwcml2YXRlIEd0ay5MYWJlbFtdIG1f Y2FuZGlkYXRlczsKKy0gICAgcHJpdmF0ZSBib29sIG1fZW50ZXJfbm90aWZ5X2VuYWJsZSA9IHRy dWU7CisgICAgIHByaXZhdGUgdWludCBtX2VudHJ5X25vdGlmeV9zaG93X2lkOworICAgICBwcml2 YXRlIHVpbnQgbV9lbnRyeV9ub3RpZnlfZGlzYWJsZV9pZDsKKy0gICAgcHJvdGVjdGVkIHN0YXRp YyBkb3VibGUgbV9tb3VzZV94OworLSAgICBwcm90ZWN0ZWQgc3RhdGljIGRvdWJsZSBtX21vdXNl X3k7CisgICAgIHByaXZhdGUgR3RrLlByb2dyZXNzQmFyIG1fdW5pY29kZV9wcm9ncmVzc19iYXI7 CisgICAgIHByaXZhdGUgdWludCBtX3VuaWNvZGVfcHJvZ3Jlc3NfaWQ7CisgICAgIHByaXZhdGUg R3RrLkxhYmVsIG1fdW5pY29kZV9wZXJjZW50X2xhYmVsOworQEAgLTk4OCw3ICs5OTMsNyBAQCBw dWJsaWMgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuQXBwbGljYXRpb25XaW5kb3cgeworICAgICAg ICAgICAgIEVQYWRkZWRMYWJlbEJveCB3aWRnZXQgPQorICAgICAgICAgICAgICAgICAgICAgbmV3 IEVQYWRkZWRMYWJlbEJveChfKGNhdGVnb3J5KSwgR3RrLkFsaWduLkNFTlRFUik7CisgICAgICAg ICAgICAgcm93LmFkZCh3aWRnZXQpOworLSAgICAgICAgICAgIG1fbGlzdF9ib3guYWRkKHJvdyk7 CisrICAgICAgICAgICAgbV9saXN0X2JveC5pbnNlcnQocm93LCAtMSk7CisgICAgICAgICAgICAg aWYgKGkgPT0gbV9jYXRlZ29yeV9hY3RpdmVfaW5kZXgpCisgICAgICAgICAgICAgICAgIG1fbGlz dF9ib3guc2VsZWN0X3Jvdyhyb3cpOworICAgICAgICAgfQorQEAgLTExMTMsNyArMTExOCw3IEBA IHB1YmxpYyBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYXZlbERpcmVjdGlvbi5OT05F LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0aW9uKTsKKyAg ICAgICAgICAgICByb3cuYWRkKHdpZGdldCk7CistICAgICAgICAgICAgbV9saXN0X2JveC5hZGQo cm93KTsKKysgICAgICAgICAgICBtX2xpc3RfYm94Lmluc2VydChyb3csIC0xKTsKKyAgICAgICAg ICAgICBpZiAobisrID09IG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4KSB7CisgICAgICAgICAgICAg ICAgIG1fbGlzdF9ib3guc2VsZWN0X3Jvdyhyb3cpOworICAgICAgICAgICAgIH0KKy0tIAorMi41 MS4xCisKK0Zyb20gYjAwZDk0NjRlMWE1NDYzMDA5OGZlN2I1YmJkZjM3MmE1ZjliODMyYiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KK0RhdGU6IEZyaSwgMTcgT2N0IDIwMjUgMTM6MTQ6MzQgKzA5MDAKK1N1YmplY3Q6 IFtQQVRDSCAyLzVdIHVpL2d0azM6IFNldCBNZXNzYWdlRGlhbG9nIGF0IGlucHV0IGN1cnNvcgor CistLS0KKyB1aS9ndGszL2NhbmRpZGF0ZXBhbmVsLnZhbGEgfCA0ICsrKysKKyB1aS9ndGszL21l c3NhZ2UudmFsYSAgICAgICAgfCA2ICsrKysrKworIHVpL2d0azMvcGFuZWwudmFsYSAgICAgICAg ICB8IDQgKysrKworIDMgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0t Z2l0IGEvdWkvZ3RrMy9jYW5kaWRhdGVwYW5lbC52YWxhIGIvdWkvZ3RrMy9jYW5kaWRhdGVwYW5l bC52YWxhCitpbmRleCAzY2MyYzA4Ni4uNzRkZTZmNzQgMTAwNjQ0CistLS0gYS91aS9ndGszL2Nh bmRpZGF0ZXBhbmVsLnZhbGEKKysrKyBiL3VpL2d0azMvY2FuZGlkYXRlcGFuZWwudmFsYQorQEAg LTE2MSw2ICsxNjEsMTAgQEAgcHVibGljIGNsYXNzIENhbmRpZGF0ZVBhbmVsIDogR3RrLkJveHsK KyAgICAgICAgIH0KKyAgICAgfQorIAorKyAgICBwdWJsaWMgR2RrLlJlY3RhbmdsZT8gZ2V0X2N1 cnNvcl9yZWN0KCkgeworKyAgICAgICAgcmV0dXJuIG1fY3Vyc29yX2xvY2F0aW9uOworKyAgICB9 CisrCisgICAgIHB1YmxpYyB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24oaW50IHgsIGludCB5LCBp bnQgd2lkdGgsIGludCBoZWlnaHQpIHsKKyAgICAgICAgIEdkay5SZWN0YW5nbGUgbG9jYXRpb24g PSBHZGsuUmVjdGFuZ2xlKCl7CisgICAgICAgICAgICAgeCA9IHgsIHkgPSB5LCB3aWR0aCA9IHdp ZHRoLCBoZWlnaHQgPSBoZWlnaHQgfTsKK2RpZmYgLS1naXQgYS91aS9ndGszL21lc3NhZ2UudmFs YSBiL3VpL2d0azMvbWVzc2FnZS52YWxhCitpbmRleCAwYzdkZDQ3OC4uYjYzNjY1NTcgMTAwNjQ0 CistLS0gYS91aS9ndGszL21lc3NhZ2UudmFsYQorKysrIGIvdWkvZ3RrMy9tZXNzYWdlLnZhbGEK K0BAIC05MSw2ICs5MSwxMiBAQCBwdWJsaWMgY2xhc3MgTWVzc2FnZURpYWxvZyA6IEd0ay5Cb3h7 CisgICAgICAgICBjcmVhdGVfdWkobWVzc2FnZSk7CisgICAgIH0KKyAKKysgICAgcHVibGljIHZv aWQgc2V0X2N1cnNvcl9yZWN0KEdkay5SZWN0YW5nbGUgbG9jYXRpb24pIHsKKysgICAgICAgIGlm IChtX2N1cnNvcl9sb2NhdGlvbiA9PSBsb2NhdGlvbikKKysgICAgICAgICAgICByZXR1cm47Cisr ICAgICAgICBtX2N1cnNvcl9sb2NhdGlvbiA9IGxvY2F0aW9uOworKyAgICB9CisrCisgICAgIHB1 YmxpYyB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24oaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQpIHsKKyAgICAgICAgIEdkay5SZWN0YW5nbGUgbG9jYXRpb24gPSBHZGsuUmVjdGFu Z2xlKCl7CisgICAgICAgICAgICAgeCA9IHgsIHkgPSB5LCB3aWR0aCA9IHdpZHRoLCBoZWlnaHQg PSBoZWlnaHQgfTsKK2RpZmYgLS1naXQgYS91aS9ndGszL3BhbmVsLnZhbGEgYi91aS9ndGszL3Bh bmVsLnZhbGEKK2luZGV4IGZjYjMwMjIwLi45MDE5NDUyOSAxMDA2NDQKKy0tLSBhL3VpL2d0azMv cGFuZWwudmFsYQorKysrIGIvdWkvZ3RrMy9wYW5lbC52YWxhCitAQCAtOTMwLDYgKzkzMCwxMCBA QCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKKyAgICAgICAgICAgICAgICAgICAg ICh3LCBzKSA9PiB0aGlzLnJlYWxpemVfc3VyZmFjZShzKSk7CisgI2VuZGlmCisgICAgICAgICAg ICAgbV9wb3B1cF9kaWFsb2dzLmluc2VydChzZXJpYWwsIHBvcHVwKTsKKysgICAgICAgICAgICBp ZiAobV9jYW5kaWRhdGVfcGFuZWxfYWN0aXZlICE9IG51bGwpIHsKKysgICAgICAgICAgICAgICAg cG9wdXAuc2V0X2N1cnNvcl9yZWN0KAorKyAgICAgICAgICAgICAgICAgICAgICAgIG1fY2FuZGlk YXRlX3BhbmVsX2FjdGl2ZS5nZXRfY3Vyc29yX3JlY3QoKSk7CisrICAgICAgICAgICAgfQorICAg ICAgICAgICAgIHBvcHVwLnNob3coKTsKKyAgICAgICAgIH0KKyAgICAgfQorLS0gCisyLjUxLjEK KworRnJvbSAwMzE0Y2Y1YmY1YmIzYTQ2ZmY5NmNmYjRmOTNhYzkzN2MxMjliN2ZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgorRGF0ZTogRnJpLCAxNyBPY3QgMjAyNSAyMzozODowMCArMDkwMAorU3ViamVjdDogW1BB VENIIDMvNV0gY2xpZW50L3dheWxhbmQ6IEZyZWUgSUJ1c0lucHV0Q29udGV4dCBpbiBpbnB1dF9t ZXRob2RfYWN0aXZhdGUoKQorCitDYWxsIGlucHV0X21ldGhvZF9kZWFjdGl2YXRlKCkgd2hlbiBp bnB1dF9tZXRob2RfYWN0aXZhdGUoKSBpcworY2FsbGVkIHR3aWNlIGFuZCB6d3BfaW5wdXRfbWV0 aG9kX2NvbnRleHRfdjEgaXMgbnVsbCBidXQKK0lCdXNJbnB1dENvbnRleHQgaXMgbm90IG51bGwu CitUaGlzIGVuaGFuY2VzIG5vdCB0byBjYXVzZSBhIFNFR1YgaW4gX2NvbnRleHRfaGlkZV9wcmVl ZGl0X3RleHRfY2IoKQorCitCVUc9cmhieiMyMzI2NDU1CistLS0KKyBjbGllbnQvd2F5bGFuZC9p YnVzd2F5bGFuZGltLmMgfCAxMCArKystLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NsaWVudC93YXlsYW5kL2li dXN3YXlsYW5kaW0uYyBiL2NsaWVudC93YXlsYW5kL2lidXN3YXlsYW5kaW0uYworaW5kZXggZTA1 ODA0NGYuLjYzMWJlYTkzIDEwMDY0NAorLS0tIGEvY2xpZW50L3dheWxhbmQvaWJ1c3dheWxhbmRp bS5jCisrKysgYi9jbGllbnQvd2F5bGFuZC9pYnVzd2F5bGFuZGltLmMKK0BAIC0xNzk2LDcgKzE3 OTYsNyBAQCBpbnB1dF9tZXRob2RfYWN0aXZhdGUgKHZvaWQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKmRhdGEsCisgCisgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKElCVVNfSVNfV0FZTEFO RF9JTSAod2xpbSkpOworICAgICBwcml2ID0gaWJ1c193YXlsYW5kX2ltX2dldF9pbnN0YW5jZV9w cml2YXRlICh3bGltKTsKKy0gICAgaWYgKHByaXYtPmNvbnRleHQpCisrICAgIGlmIChwcml2LT5j b250ZXh0IHx8IHByaXYtPmlidXNjb250ZXh0KQorICAgICAgICAgaW5wdXRfbWV0aG9kX2RlYWN0 aXZhdGUgKGRhdGEsIGlucHV0X21ldGhvZCwgY29udGV4dCk7CisgCisgICAgIHByaXYtPmNvbnRl eHQgPSBjb250ZXh0OworQEAgLTE4MjgsMTAgKzE4MjgsNyBAQCBpbnB1dF9tZXRob2RfYWN0aXZh dGUgKHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmRhdGEsCisgICAgICAgICBn X2Fzc2VydF9ub3RfcmVhY2hlZCAoKTsKKyAgICAgfQorIAorLSAgICBpZiAocHJpdi0+aWJ1c2Nv bnRleHQpIHsKKy0gICAgICAgIGdfb2JqZWN0X3VucmVmIChwcml2LT5pYnVzY29udGV4dCk7Cist ICAgICAgICBwcml2LT5pYnVzY29udGV4dCA9IE5VTEw7CistICAgIH0KKysgICAgZ19hc3NlcnQg KCFwcml2LT5pYnVzY29udGV4dCk7CisgCisgICAgIHByaXYtPmNhbmNlbGxhYmxlID0gZ19jYW5j ZWxsYWJsZV9uZXcgKCk7CisgICAgIGlidXNfYnVzX2NyZWF0ZV9pbnB1dF9jb250ZXh0X2FzeW5j IChwcml2LT5pYnVzYnVzLAorQEAgLTE4ODQsOCArMTg4MSw3IEBAIGlucHV0X21ldGhvZF9kZWFj dGl2YXRlICh2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpkYXRhLAorICAgICAg ICAgICAgICAgICBwcml2LT5pYnVzY29udGV4dCwKKyAgICAgICAgICAgICAgICAgR19DQUxMQkFD SyAoX2NvbnRleHRfaGlkZV9wcmVlZGl0X3RleHRfY2IpLAorICAgICAgICAgICAgICAgICB3bGlt KTsKKy0gICAgICAgIGdfb2JqZWN0X3VucmVmIChwcml2LT5pYnVzY29udGV4dCk7CistICAgICAg ICBwcml2LT5pYnVzY29udGV4dCA9IE5VTEw7CisrICAgICAgICBnX2NsZWFyX29iamVjdCAoJnBy aXYtPmlidXNjb250ZXh0KTsKKyAgICAgICAgIGdfc2lnbmFsX2VtaXQgKHdsaW0sCisgICAgICAg ICAgICAgICAgICAgICAgICB3YXlsYW5kX2ltX3NpZ25hbHNbSUJVU19GT0NVU19PVVRdLAorICAg ICAgICAgICAgICAgICAgICAgICAgMCwKKy0tIAorMi41MS4xCisKK0Zyb20gZjZjNTJjZTBiYWYw YWQxMTcwNWEwZjlhZjE2MDA3NmE5NzEwNGJmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IFdlZCwgMjYg Tm92IDIwMjUgMTU6MTY6MDMgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSCA0LzVdIHV0aWwvSU1ka2l0 OiBGaXggU0VHViB3aXRoIGFsbG9jYXRpb24gZmFpbCBpbiBfWGkxOG5DaGFuZ2VJQygpCisKK1do ZW4gbWFsbG9jKCkgaXMgZmFpbGVkLCBpdCBzaG91bGQgYnJlYWsgdGhlIGZvciBsb29wIHRvIHNl dAorYXR0cmliX251bSB2YWx1ZSBjb3JyZWN0bHkgdG8gZnJlZSBhdHRyaWJfbGlzdCBhcnJheS4K KworQlVHPXJoYnojMjM0NjAzMworLS0tCisgdXRpbC9JTWRraXQvaTE4bkljLmMgfCA1ICsrKyst CisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZm IC0tZ2l0IGEvdXRpbC9JTWRraXQvaTE4bkljLmMgYi91dGlsL0lNZGtpdC9pMThuSWMuYworaW5k ZXggMTRhM2RjNTEuLmU4MmZmYmNmIDEwMDY0NAorLS0tIGEvdXRpbC9JTWRraXQvaTE4bkljLmMK KysrKyBiL3V0aWwvSU1ka2l0L2kxOG5JYy5jCitAQCAtMiw2ICsyLDggQEAKKyAgCisgICAgICAg ICAgQ29weXJpZ2h0IDE5OTQsIDE5OTUgYnkgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLgorICAgICAg ICAgIENvcHlyaWdodCAxOTkzLCAxOTk0IGJ5IEhld2xldHQtUGFja2FyZCBDb21wYW55CisrICAg ICAgICAgQ29weXJpZ2h0IChDKSAyMDA4LTIwMjUgUmVkIEhhdCwgSW5jLgorKyAgICAgICAgIENv cHlyaWdodCAoQykgMjAxNy0yMDI1IFRha2FvIEZ1aml3YXJhCisgIAorIFBlcm1pc3Npb24gdG8g dXNlLCBjb3B5LCBtb2RpZnksIGRpc3RyaWJ1dGUsIGFuZCBzZWxsIHRoaXMgc29mdHdhcmUKKyBh bmQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGlzIGhlcmVieSBncmFudGVkIHdp dGhvdXQgZmVlLAorQEAgLTcxNCwxMCArNzE2LDExIEBAIHZvaWQgX1hpMThuQ2hhbmdlSUMgKFhJ TVMgaW1zLAorICAgICAgICAgRnJhbWVNZ3JTZXRTaXplIChmbSwgdmFsdWVfbGVuZ3RoKTsKKyAg ICAgICAgIGF0dHJpYl9saXN0W2F0dHJpYl9udW1dLnZhbHVlX2xlbmd0aCA9IHZhbHVlX2xlbmd0 aDsKKyAgICAgICAgIEZyYW1lTWdyR2V0VG9rZW4gKGZtLCB2YWx1ZSk7CistICAgICAgICBhdHRy aWJfbGlzdFthdHRyaWJfbnVtXS52YWx1ZSA9ICh2b2lkICopIG1hbGxvYyAodmFsdWVfbGVuZ3Ro ICsgMSk7CisrICAgICAgICBhdHRyaWJfbGlzdFthdHRyaWJfbnVtXS52YWx1ZSA9ICh2b2lkICop bWFsbG9jICh2YWx1ZV9sZW5ndGggKyAxKTsKKyAgICAgICAgIGlmICghYXR0cmliX2xpc3RbYXR0 cmliX251bV0udmFsdWUpIHsKKyAgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlN ZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIsCisgICAgICAgICAgICAg ICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKysgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgbWVtbW92ZSAoYXR0cmliX2xpc3RbYXR0cmliX251 bV0udmFsdWUsIHZhbHVlLCB2YWx1ZV9sZW5ndGgpOworICAgICAgICAgICAgICgoY2hhciAqKWF0 dHJpYl9saXN0W2F0dHJpYl9udW1dLnZhbHVlKVt2YWx1ZV9sZW5ndGhdID0gJ1wwJzsKKy0tIAor Mi41MS4xCisKK0Zyb20gY2EwMTkzZjViMWMxN2Y1YzhhNDU2ZTA5NDIxZDJhODY4OGM1ZDY2NyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KK0RhdGU6IFRodSwgMjMgT2N0IDIwMjUgMjI6NDU6MTEgKzA5MDAKK1N1Ympl Y3Q6IFtQQVRDSCA1LzVdIHVpL2d0azM6IFJlZmVyIFFUX0lNX01PRFVMRVMgdG8gY2hlY2sgV2F5 bGFuZCBjb25maWd1cmF0aW9uCisKK1FUX0lNX01PRFVMRVMgYW5kIFFUX0lNX01PRFVMRSBpcyBh dmFpbGFibGUuIFRoZSB3YXJuaW5nIG1lc3NhZ2UKK2lzIG5vdCBjaGFuZ2VkIGF0IHRoZSBtb21l bnQuCitpYnVzLXNldHVwIGFsc28gcnVucyBgaWJ1cyBzdGFydGAgaW5zdGVhZCBpYnVzLWRhZW1v bi4KKworQlVHPXJoYnojMjM5MjM1OAorLS0tCisgc2V0dXAvbWFpbi5weSAgICAgIHwgMTkgKysr KysrKysrKysrKystLS0tLQorIHVpL2d0azMvcGFuZWwudmFsYSB8ICA2ICsrKysrLQorIDIgZmls ZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBhL3NldHVwL21haW4ucHkgYi9zZXR1cC9tYWluLnB5CitpbmRleCBkMGUwNTY2Ni4uMzFiNDQw MzcgMTAwNjQ0CistLS0gYS9zZXR1cC9tYWluLnB5CisrKysgYi9zZXR1cC9tYWluLnB5CitAQCAt NCw4ICs0LDggQEAKKyAjIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgIworICMgQ29weXJpZ2h0IChj KSAyMDA3LTIwMTYgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistIyBDb3B5 cmlnaHQgKGMpIDIwMTAtMjAyMCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWls LmNvbT4KKy0jIENvcHlyaWdodCAoYykgMjAwNy0yMDIwIFJlZCBIYXQsIEluYy4KKysjIENvcHly aWdodCAoYykgMjAxMC0yMDI1IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgorKyMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMjUgUmVkIEhhdCwgSW5jLgorICMKKyAjIFRo aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKyAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKK0BAIC02MDIsMTMgKzYwMiwyMiBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgorICAg ICAgICAgR0xpYi50aW1lb3V0X2FkZF9zZWNvbmRzKHRpbWVvdXQsIGxhbWJkYSAqYXJnczogbWFp bl9sb29wLnF1aXQoKSkKKyAgICAgICAgIHNlbGYuX19idXMuY29ubmVjdCgiY29ubmVjdGVkIiwg bGFtYmRhICphcmdzOiBtYWluX2xvb3AucXVpdCgpKQorIAorLSAgICAgICAgb3Muc3Bhd25scChv cy5QX05PV0FJVCwgImlidXMtZGFlbW9uIiwgImlidXMtZGFlbW9uIiwgIi0teGltIiwgIi0tZGFl bW9uaXplIikKKysgICAgICAgIG9zLnNwYXdubHAob3MuUF9OT1dBSVQsICJpYnVzIiwgImlidXMi LCAic3RhcnQiLCAiLS14aW0iLCAiLS1kYWVtb25pemUiKQorIAorICAgICAgICAgbWFpbl9sb29w LnJ1bigpCisgCisgICAgICAgICBpZiBzZWxmLl9fYnVzLmlzX2Nvbm5lY3RlZCgpOgorLSAgICAg ICAgICAgIG1lc3NhZ2UgPSBfKCJJQnVzIGhhcyBiZWVuIHN0YXJ0ZWQhICIKKy0gICAgICAgICAg ICAgICAgIklmIHlvdSBjYW5ub3QgdXNlIElCdXMsIGFkZCB0aGUgZm9sbG93aW5nIGxpbmVzIHRv IHlvdXIgJEhPTUUvLmJhc2hyYzsgdGhlbiByZWxvZyBpbnRvIHlvdXIgZGVza3RvcC5cbiIKKysg ICAgICAgICAgICBtZXNzYWdlID0gXygiSUJ1cyBoYXMgYmVlbiBzdGFydGVkLiAiCisrICAgICAg ICAgICAgICAgICJJZiB5b3UgY2Fubm90IHVzZSBJQnVzLCBhZGQgdGhlIGZvbGxvd2luZyBsaW5l cyB0byB5b3VyICIKKysgICAgICAgICAgICAgICAgIiRIT01FLy5iYXNocmM7IHRoZW4gcmVsb2cg aW50byB5b3VyIGRlc2t0b3AuXG4iCisrICAgICAgICAgICAgICAgICJcbiIKKysgICAgICAgICAg ICAgICAgIiAgIyBGb3IgV2F5bGFuZCBzZXNzaW9ucyAoJFhER19TRVNTSU9OX1RZUEUgaXMgXCJ3 YXlsYW5kXCIpXG4iCisrICAgICAgICAgICAgICAgICIgIGV4cG9ydCBHVEtfSU1fTU9EVUxFPXdh eWxhbmRcbiIKKysgICAgICAgICAgICAgICAgIiAgZXhwb3J0IFhNT0RJRklFUlM9QGltPWlidXNc biIKKysgICAgICAgICAgICAgICAgIiAgZXhwb3J0IFFUX0lNX01PRFVMRVM9d2F5bGFuZDtpYnVz XG4iCisrICAgICAgICAgICAgICAgICIgIGV4cG9ydCBRVF9JTV9NT0RVTEU9aWJ1c1xuIgorKyAg ICAgICAgICAgICAgICAiXG4iCisrICAgICAgICAgICAgICAgICIgICMgRm9yIFgxMSBzZXNzaW9u cyAoJFhER19TRVNTSU9OX1RZUEUgaXMgXCJ4MTFcIilcbiIKKyAgICAgICAgICAgICAgICAgIiAg ZXhwb3J0IEdUS19JTV9NT0RVTEU9aWJ1c1xuIgorICAgICAgICAgICAgICAgICAiICBleHBvcnQg WE1PRElGSUVSUz1AaW09aWJ1c1xuIgorICAgICAgICAgICAgICAgICAiICBleHBvcnQgUVRfSU1f TU9EVUxFPWlidXMiCitkaWZmIC0tZ2l0IGEvdWkvZ3RrMy9wYW5lbC52YWxhIGIvdWkvZ3RrMy9w YW5lbC52YWxhCitpbmRleCA5MDE5NDUyOS4uY2ZhNmU1MGQgMTAwNjQ0CistLS0gYS91aS9ndGsz L3BhbmVsLnZhbGEKKysrKyBiL3VpL2d0azMvcGFuZWwudmFsYQorQEAgLTEwMjcsNyArMTAyNywx MSBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAiV2F5bGFuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgImlidXMgc3RhcnQi KTsKKyAgICAgICAgIH0gZWxzZSBpZiAobV9pc193YXlsYW5kICYmIG1faXNfd2F5bGFuZF9pbSAm JiAhaXNfZ25vbWUoKSkgeworLSAgICAgICAgICAgIGlmIChFbnZpcm9ubWVudC5nZXRfdmFyaWFi bGUoIlFUX0lNX01PRFVMRSIpID09ICJpYnVzIikgeworKyAgICAgICAgICAgIHZhciBxdF9pbV9t b2R1bGUgPSBFbnZpcm9ubWVudC5nZXRfdmFyaWFibGUoIlFUX0lNX01PRFVMRSIpOworKyAgICAg ICAgICAgIHZhciBxdF9pbV9tb2R1bGVzID0gRW52aXJvbm1lbnQuZ2V0X3ZhcmlhYmxlKCJRVF9J TV9NT0RVTEVTIik7CisrICAgICAgICAgICAgaWYgKChxdF9pbV9tb2R1bGUgIT0gbnVsbCAmJiBx dF9pbV9tb2R1bGUgIT0gIndheWxhbmQiKSAmJgorKyAgICAgICAgICAgICAgICAocXRfaW1fbW9k dWxlcyA9PSBudWxsIHx8CisrICAgICAgICAgICAgICAgICAhcXRfaW1fbW9kdWxlcy5oYXNfcHJl Zml4KCJ3YXlsYW5kIikpKSB7CisgICAgICAgICAgICAgICAgIHZhciBmb3JtYXQgPQorICAgICAg ICAgICAgICAgICAgICAgICAgIF8oIlBsZWFzZSB1bnNldCBRVF9JTV9NT0RVTEUgYW5kIEdUS19J TV9NT0RVTEUgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW52aXJvbm1lbnQgdmFy aWFibGVzIGFuZCAnaWJ1cy1kYWVtb24gLS1wYW5lbCAiICsKKy0tIAorMi41MS4xCisKK0Zyb20g NjllYjRjNmRlMWRjN2Y2MTM3NzgwMTM5NTEwYjVhMTU5OGRjNzE4MyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEpvYW4gVG9ycmVzIExvcGV6IDxqb2FudG9sb0ByZWRoYXQuY29tPgor RGF0ZTogV2VkLCAyNiBOb3YgMjAyNSAxNjowMjoxOCArMDkwMAorU3ViamVjdDogW1BBVENIXSBz cmM6IE1vdmUgZ3JvdXAgbmFtZSBkZXRlY3Rpb24gdG8gaWJ1c19nZXRfZ3JvdXBfbmFtZSgpCisK K1Jlc29sdmVzOiBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2NvbW1pdC9jMTU4ODAwCitC VUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9wdWxsLzI4MDYKKy0tLQorIGJ1cy9tYWlu LmMgICAgICB8IDQ3ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgc3JjL2lidXNzaGFyZS5jIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLQorIHNyYy9pYnVzc2hhcmUuaCB8IDE4ICsrKysrKysrKysrKysrKy0tLQorIDMgZmlsZXMg Y2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9idXMvbWFpbi5jIGIvYnVzL21haW4uYworaW5kZXggZTBkYjE1YjMuLjg2OTViMDY1IDEwMDY0 NAorLS0tIGEvYnVzL21haW4uYworKysrIGIvYnVzL21haW4uYworQEAgLTM5LDcgKzM5LDYgQEAK KyAKKyAjaWZkZWYgR19PU19VTklYCisgI2luY2x1ZGUgPGdsaWItdW5peC5oPgorLSNpbmNsdWRl IDxncnAuaD4KKyAjZW5kaWYKKyAKKyAjaW5jbHVkZSAiZ2xvYmFsLmgiCitAQCAtMTk1LDExICsx OTQsNyBAQCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICoqYXJndikKKyB7CisgICAgIGludCBpOwor ICAgICBjb25zdCBnY2hhciAqdXNlcm5hbWUgPSBpYnVzX2dldF91c2VyX25hbWUgKCk7CistICAg IGNvbnN0IGdjaGFyICpncm91cG5hbWUgPSBOVUxMOworLSNpZmRlZiBIQVZFX0dFVEdSR0lEX1IK Ky0gICAgY2hhciBidWZmZXJbNDA5Nl07CistICAgIHN0cnVjdCBncm91cCBnYnVmOworLSNlbmRp ZgorKyAgICBjb25zdCBnY2hhciAqZ3JvdXBuYW1lID0gaWJ1c19nZXRfZ3JvdXBfbmFtZSAoKTsK KyAKKyAgICAgc2V0bG9jYWxlIChMQ19BTEwsICIiKTsKKyAKK0BAIC0yMjcsMjggKzIyMiwxMiBA QCBtYWluIChnaW50IGFyZ2MsIGdjaGFyICoqYXJndikKKyAgICAgICAgIHN0cnVjdCBwYXNzd2Qg KnB3ZCA9IGdldHB3dWlkIChnZXR1aWQgKCkpOworIAorICAgICAgICAgaWYgKHB3ZCA9PSBOVUxM IHx8IGdfc3RyY21wMCAocHdkLT5wd19uYW1lLCB1c2VybmFtZSkgIT0gMCkgeworLSAgICAgICAg ICAgIGdfcHJpbnRlcnIgKCJQbGVhc2UgcnVuIGlidXMtZGFlbW9uIHdpdGggbG9naW4gdXNlciEg RG8gbm90IHJ1biBpYnVzLWRhZW1vbiB3aXRoIHN1ZG8gb3Igc3UuXG4iKTsKKysgICAgICAgICAg ICBnX3ByaW50ZXJyICgiUGxlYXNlIHJ1biBpYnVzLWRhZW1vbiB3aXRoIGxvZ2luIHVzZXIhIERv IG5vdCBydW4gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICJpYnVzLWRhZW1vbiB3aXRoIHN1 ZG8gb3Igc3UuXG4iKTsKKyAgICAgICAgICAgICBleGl0X2FuZF9mcmVlX2NvbnRleHQgKEVYSVRf RkFJTFVSRSwgY29udGV4dCk7CisgICAgICAgICB9CisgICAgIH0KKyAKKy0gICAgLyogZ2V0IGdy b3VwIG5hbWUgKi8KKy0gICAgeworLSAgICAgICAgc3RydWN0IGdyb3VwICpncnAgPSBOVUxMOwor LSNpZmRlZiBIQVZFX0dFVEdSR0lEX1IKKy0gICAgICAgIC8qIE1ULVNhZmUgbG9jYWxlICovCist ICAgICAgICBnZXRncmdpZF9yIChnZXRnaWQgKCksICZnYnVmLCBidWZmZXIsIHNpemVvZihidWZm ZXIpLCAmZ3JwKTsKKy0jZWxzZQorLSAgICAgICAgLyogTVQtVW5zYWZlIHJhY2U6Z3JnaWQgbG9j YWxlICovCistICAgICAgICBncnAgPSBnZXRncmdpZCAoZ2V0Z2lkICgpKTsKKy0jZW5kaWYKKy0K Ky0gICAgICAgIGlmIChncnAgJiYgZ3JwLT5ncl9uYW1lICYmIGdycC0+Z3JfbmFtZVswXSkKKy0g ICAgICAgICAgICBncm91cG5hbWUgPSBncnAtPmdyX25hbWU7CistICAgICAgICBlbHNlCistICAg ICAgICAgICAgZ193YXJuaW5nICgiQ291bGRuJ3QgZ2V0IGdyb3VwIG5hbWUiKTsKKy0gICAgfQor LQorICAgICAvKiBkYWVtb25pemUgcHJvY2VzcyAqLworICAgICBpZiAoZGFlbW9uaXplKSB7Cisg ICAgICAgICBpZiAoZGFlbW9uICgxLCAwKSAhPSAwKSB7CitAQCAtMjU3LDcgKzIzNiw5IEBAIG1h aW4gKGdpbnQgYXJnYywgZ2NoYXIgKiphcmd2KQorICAgICAgICAgfQorICAgICB9CisgCistICAg IC8qIGNyZWF0ZSBhIG5ldyBwcm9jZXNzIGdyb3VwLiB0aGlzIGlzIGltcG9ydGFudCB0byBraWxs IGFsbCBvZiBpdHMgY2hpbGRyZW4gYnkgU0lHVEVSTSBhdCBhIHRpbWUgaW4gYnVzX2lidXNfaW1w bF9kZXN0cm95LiAqLworKyAgICAvKiBjcmVhdGUgYSBuZXcgcHJvY2VzcyBncm91cC4gdGhpcyBp cyBpbXBvcnRhbnQgdG8ga2lsbCBhbGwgb2YgaXRzCisrICAgICAqIGNoaWxkcmVuIGJ5IFNJR1RF Uk0gYXQgYSB0aW1lIGluIGJ1c19pYnVzX2ltcGxfZGVzdHJveS4KKysgICAgICovCisgICAgIHNl dHBnaWQgKDAsIDApOworIAorICAgICBpYnVzX2luaXQgKCk7CitAQCAtMjg2LDEzICsyNjcsMTMg QEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqKmFyZ3YpCisgICAgIH0KKyAKKyAgICAgYnVzX3Nl cnZlcl9pbml0ICgpOworLSAgICBmb3IgKGkgPSAwOyBpIDwgR19OX0VMRU1FTlRTKHBhbmVsX2V4 dGVuc2lvbl9kaXNhYmxlX3VzZXJzKTsgaSsrKSB7CisrICAgIGZvciAoaSA9IDA7IGkgPCBHX05f RUxFTUVOVFMgKHBhbmVsX2V4dGVuc2lvbl9kaXNhYmxlX3VzZXJzKTsgaSsrKSB7CisgICAgICAg ICBpZiAoIWdfc3RyY21wMCAodXNlcm5hbWUsIHBhbmVsX2V4dGVuc2lvbl9kaXNhYmxlX3VzZXJz W2ldKSAhPSAwKSB7CisgICAgICAgICAgICAgZW1vamlfZXh0ZW5zaW9uID0gImRpc2FibGUiOwor ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorICAgICB9CistICAgIGZvciAoaSA9IDA7 IGkgPCBHX05fRUxFTUVOVFMocGFuZWxfZXh0ZW5zaW9uX2Rpc2FibGVfZ3JvdXBzKTsgaSsrKSB7 CisrICAgIGZvciAoaSA9IDA7IGkgPCBHX05fRUxFTUVOVFMgKHBhbmVsX2V4dGVuc2lvbl9kaXNh YmxlX2dyb3Vwcyk7IGkrKykgeworICAgICAgICAgaWYgKGdfc3RyY21wMCAoZ3JvdXBuYW1lLCBw YW5lbF9leHRlbnNpb25fZGlzYWJsZV9ncm91cHNbaV0pID09IDApIHsKKyAgICAgICAgICAgICBl bW9qaV9leHRlbnNpb24gPSAiZGlzYWJsZSI7CisgICAgICAgICAgICAgYnJlYWs7CitAQCAtMzA3 LDExICsyODgsMTMgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqKmFyZ3YpCisgICAgICAgICAg ICAgaWYgKGNvbXBvbmVudCkgeworICAgICAgICAgICAgICAgICBidXNfY29tcG9uZW50X3NldF9y ZXN0YXJ0IChjb21wb25lbnQsIHJlc3RhcnQpOworICAgICAgICAgICAgIH0KKy0gICAgICAgICAg ICBpZiAoY29tcG9uZW50ID09IE5VTEwgfHwgIWJ1c19jb21wb25lbnRfc3RhcnQgKGNvbXBvbmVu dCwgZ192ZXJib3NlKSkgeworKyAgICAgICAgICAgIGlmIChjb21wb25lbnQgPT0gTlVMTCB8fAor KyAgICAgICAgICAgICAgICAhYnVzX2NvbXBvbmVudF9zdGFydCAoY29tcG9uZW50LCBnX3ZlcmJv c2UpKSB7CisgICAgICAgICAgICAgICAgIGdfcHJpbnRlcnIgKCJDYW4gbm90IGV4ZWN1dGUgZGVm YXVsdCBjb25maWcgcHJvZ3JhbVxuIik7CisgICAgICAgICAgICAgICAgIGV4aXRfYW5kX2ZyZWVf Y29udGV4dCAoRVhJVF9GQUlMVVJFLCBjb250ZXh0KTsKKyAgICAgICAgICAgICB9CistICAgICAg ICB9IGVsc2UgaWYgKGdfc3RyY21wMCAoY29uZmlnLCAiZGlzYWJsZSIpICE9IDAgJiYgZ19zdHJj bXAwIChjb25maWcsICIiKSAhPSAwKSB7CisrICAgICAgICB9IGVsc2UgaWYgKGdfc3RyY21wMCAo Y29uZmlnLCAiZGlzYWJsZSIpICE9IDAgJiYKKysgICAgICAgICAgICAgICAgICAgZ19zdHJjbXAw IChjb25maWcsICIiKSAhPSAwKSB7CisgICAgICAgICAgICAgaWYgKCFleGVjdXRlX2NtZGxpbmUg KGNvbmZpZykpCisgICAgICAgICAgICAgICAgIGV4aXRfYW5kX2ZyZWVfY29udGV4dCAoRVhJVF9G QUlMVVJFLCBjb250ZXh0KTsKKyAgICAgICAgIH0KK0BAIC0zMjQsMTEgKzMwNywxMyBAQCBtYWlu IChnaW50IGFyZ2MsIGdjaGFyICoqYXJndikKKyAgICAgICAgICAgICBpZiAoY29tcG9uZW50KSB7 CisgICAgICAgICAgICAgICAgIGJ1c19jb21wb25lbnRfc2V0X3Jlc3RhcnQgKGNvbXBvbmVudCwg cmVzdGFydCk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIGlmIChjb21wb25lbnQgPT0g TlVMTCB8fCAhYnVzX2NvbXBvbmVudF9zdGFydCAoY29tcG9uZW50LCBnX3ZlcmJvc2UpKSB7Cisr ICAgICAgICAgICAgaWYgKGNvbXBvbmVudCA9PSBOVUxMIHx8CisrICAgICAgICAgICAgICAgICFi dXNfY29tcG9uZW50X3N0YXJ0IChjb21wb25lbnQsIGdfdmVyYm9zZSkpIHsKKyAgICAgICAgICAg ICAgICAgZ19wcmludGVyciAoIkNhbiBub3QgZXhlY3V0ZSBkZWZhdWx0IHBhbmVsIHByb2dyYW1c biIpOworICAgICAgICAgICAgICAgICBleGl0X2FuZF9mcmVlX2NvbnRleHQgKEVYSVRfRkFJTFVS RSwgY29udGV4dCk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgfSBlbHNlIGlmIChnX3N0cmNt cDAgKHBhbmVsLCAiZGlzYWJsZSIpICE9IDAgJiYgZ19zdHJjbXAwIChwYW5lbCwgIiIpICE9IDAp IHsKKysgICAgICAgIH0gZWxzZSBpZiAoZ19zdHJjbXAwIChwYW5lbCwgImRpc2FibGUiKSAhPSAw ICYmCisrICAgICAgICAgICAgICAgICAgIGdfc3RyY21wMCAocGFuZWwsICIiKSAhPSAwKSB7Cisg ICAgICAgICAgICAgaWYgKCFleGVjdXRlX2NtZGxpbmUgKHBhbmVsKSkKKyAgICAgICAgICAgICAg ICAgZXhpdF9hbmRfZnJlZV9jb250ZXh0IChFWElUX0ZBSUxVUkUsIGNvbnRleHQpOworICAgICAg ICAgfQorZGlmZiAtLWdpdCBhL3NyYy9pYnVzc2hhcmUuYyBiL3NyYy9pYnVzc2hhcmUuYworaW5k ZXggNTdlM2VmMTQuLjlkNjZhNjBjIDEwMDY0NAorLS0tIGEvc3JjL2lidXNzaGFyZS5jCisrKysg Yi9zcmMvaWJ1c3NoYXJlLmMKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6 ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx MCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMp IDIwMTUtMjAyNCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysg KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyNSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOCBSZWQgSGF0LCBJbmMuCisg ICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCitAQCAtMzcsNiArMzcsMTAgQEAKKyAjaW5jbHVkZSA8c3RyaW5nLmg+Cisg I2luY2x1ZGUgPGlidXMuaD4KKyAKKysjaWZkZWYgR19PU19VTklYCisrI2luY2x1ZGUgPGdycC5o PgorKyNlbmRpZgorKworIHN0YXRpYyBnY2hhciAqX2Rpc3BsYXkgPSBOVUxMOworIAorIGNvbnN0 IGdjaGFyICoKK0BAIC04Miw2ICs4NiwzNCBAQCBpYnVzX2dldF91c2VyX25hbWUgKHZvaWQpCisg ICAgIHJldHVybiBnX2dldF91c2VyX25hbWUgKCk7CisgfQorIAorK2NvbnN0IGdjaGFyICoKKytp YnVzX2dldF9ncm91cF9uYW1lICh2b2lkKQorK3sKKysgICAgc3RhdGljIGdjaGFyICpncm91cG5h bWUgPSBOVUxMOworKyAgICBzdHJ1Y3QgZ3JvdXAgKmdycCA9IE5VTEw7CisrI2lmZGVmIEhBVkVf R0VUR1JHSURfUgorKyAgICBjaGFyIGJ1ZmZlcls0MDk2XTsKKysgICAgc3RydWN0IGdyb3VwIGdi dWY7CisrI2VuZGlmCisrCisrICAgIGlmIChncm91cG5hbWUpCisrICAgICAgICByZXR1cm4gZ3Jv dXBuYW1lOworKworKyNpZmRlZiBIQVZFX0dFVEdSR0lEX1IKKysgICAgLyogTVQtU2FmZSBsb2Nh bGUgKi8KKysgICAgZ2V0Z3JnaWRfciAoZ2V0Z2lkICgpLCAmZ2J1ZiwgYnVmZmVyLCBzaXplb2Yo YnVmZmVyKSwgJmdycCk7CisrI2Vsc2UKKysgICAgLyogTVQtVW5zYWZlIHJhY2U6Z3JnaWQgbG9j YWxlICovCisrICAgIGdycCA9IGdldGdyZ2lkIChnZXRnaWQgKCkpOworKyNlbmRpZgorKworKyAg ICBnX3JldHVybl92YWxfaWZfZmFpbCAoZ3JwICYmIGdycC0+Z3JfbmFtZSAmJiBncnAtPmdyX25h bWVbMF0sIE5VTEwpOworKworKyAgICAvKiBidWZmZXIgd2lsbCBiZSBlcmFzZWQgb3V0IG9mIHRo aXMgZnVuY3Rpb24uICovCisrICAgIGdyb3VwbmFtZSA9IGdfc3RyZHVwIChncnAtPmdyX25hbWUp OworKyAgICByZXR1cm4gZ3JvdXBuYW1lOworK30KKysKKyBnbG9uZworIGlidXNfZ2V0X2RhZW1v bl91aWQgKHZvaWQpCisgeworZGlmZiAtLWdpdCBhL3NyYy9pYnVzc2hhcmUuaCBiL3NyYy9pYnVz c2hhcmUuaAoraW5kZXggNjM3OWM1MWQuLjdlOTI3NGU0IDEwMDY0NAorLS0tIGEvc3JjL2lidXNz aGFyZS5oCisrKysgYi9zcmMvaWJ1c3NoYXJlLmgKK0BAIC0yMDUsNyArMjA1LDcgQEAgR19CRUdJ Tl9ERUNMUworICAqCisgICogT2J0YWlucyB0aGUgbWFjaGluZSBVVUlEIG9mIHRoZSBtYWNoaW5l IHRoaXMgcHJvY2VzcyBpcyBydW5uaW5nIG9uLgorICAqCistICogUmV0dXJuczogQSBuZXdseSBh bGxvY2F0ZWQgc3RyaW5nIHRoYXQgc2hvd3MgdGhlIFVVSUQgb2YgdGhlIG1hY2hpbmUuCisrICog UmV0dXJuczogQSBjb25zdCBzdHJpbmcgdGhhdCBzaG93cyB0aGUgVVVJRCBvZiB0aGUgbWFjaGlu ZS4KKyAgKi8KKyBjb25zdCBnY2hhciAgICAgKmlidXNfZ2V0X2xvY2FsX21hY2hpbmVfaWQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOworQEAgLTI1OSwx MCArMjU5LDIyIEBAIHZvaWQgICAgICAgICAgICAgaWJ1c193cml0ZV9hZGRyZXNzICAgICAoY29u c3QgZ2NoYXIgICAgKmFkZHJlc3MpOworICAqICAgIDxsaXN0aXRlbT48cGFyYT5FbnZpcm9ubWVu dCB2YXJpYWJsZSBMTkFNRTwvcGFyYT48L2xpc3RpdGVtPgorICAqIDwvb3JkZXJlZGxpc3Q+Cisg ICoKKy0gKiBSZXR1cm5zOiBBIG5ld2x5IGFsbG9jYXRlZCBzdHJpbmcgdGhhdCBzdG9yZXMgY3Vy cmVudCB1c2VyIG5hbWUuCisrICogUmV0dXJuczogQSBjb25zdCBzdHJpbmcgdGhhdCBzdG9yZXMg Y3VycmVudCB1c2VyIG5hbWUuCisgICovCisgY29uc3QgZ2NoYXIgICAgICppYnVzX2dldF91c2Vy X25hbWUgICAgICh2b2lkKTsKKyAKKysvKioKKysgKiBpYnVzX2dldF9ncm91cF9uYW1lOgorKyAq CisrICogR2V0IHRoZSBjdXJyZW50IHVzZXIgZ3JvdXAgbmFtZS4KKysgKgorKyAqIFJldHVybnM6 IEEgY29uc3Qgc3RyaW5nIHRoYXQgc3RvcmVzIGN1cnJlbnQgdXNlciBncm91cCBuYW1lLgorKyAq CisrICogU2luY2U6IDEuNS4zNAorKyAqIFN0YWJpbGl0eTogVW5zdGFibGUKKysgKi8KKytjb25z dCBnY2hhciAgICAgKmlidXNfZ2V0X2dyb3VwX25hbWUgICAgKHZvaWQpOworKworIC8qKgorICAq IGlidXNfZ2V0X2RhZW1vbl91aWQ6CisgICoKK0BAIC0yODAsNyArMjkyLDcgQEAgZ2xvbmcgICAg ICAgICAgICBpYnVzX2dldF9kYWVtb25fdWlkICAgICh2b2lkKSBHX0dOVUNfREVQUkVDQVRFRDsK KyAgKgorICAqIEdldCB0aGUgcGF0aCBvZiBzb2NrZXQgZmlsZS4KKyAgKgorLSAqIFJldHVybnM6 IEEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyB0aGF0IHN0b3JlcyB0aGUgcGF0aCBvZiBzb2NrZXQg ZmlsZS4KKysgKiBSZXR1cm5zOiBBIGNvbnN0IHN0cmluZyB0aGF0IHN0b3JlcyB0aGUgcGF0aCBv ZiBzb2NrZXQgZmlsZS4KKyAgKi8KKyBjb25zdCBnY2hhciAgICAgKmlidXNfZ2V0X3NvY2tldF9w YXRoICAgKHZvaWQpOworIAorLS0gCisyLjUxLjEKKwoKZGlmZiAtLWdpdCBhL2lidXMuc3BlYyBi L2lidXMuc3BlYwppbmRleCAwOThlMmQwLi5mNzhhMzA0IDEwMDY0NAotLS0gYS9pYnVzLnNwZWMK KysrIGIvaWJ1cy5zcGVjCkBAIC02Myw3ICs2Myw3IEBACiBOYW1lOiAgICAgICAgICAgaWJ1cwog VmVyc2lvbjogICAgICAgIDEuNS4zNH5hbHBoYTEKICMgaHR0cHM6Ly9naXRodWIuY29tL2ZlZG9y YS1pbmZyYS9ycG1hdXRvc3BlYy9pc3N1ZXMvMTAxCi1SZWxlYXNlOiAgICAgICAgMSV7P2Rpc3R9 CitSZWxlYXNlOiAgICAgICAgMiV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgSW50ZWxsaWdlbnQg SW5wdXQgQnVzIGZvciBMaW51eCBPUwogTGljZW5zZTogICAgICAgIExHUEwtMi4xLW9yLWxhdGVy CiBVUkw6ICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2lidXMvJW5hbWUvd2lraQpAQCAt NzIsNiArNzIsNyBAQCBTb3VyY2UxOiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2lidXMvJW5h bWUvcmVsZWFzZXMvZG93bmxvYWQvJXtzb3VyY2VfdmVyc2lvbgogU291cmNlMjogICAgICAgICV7 bmFtZX0teGlucHV0CiBTb3VyY2UzOiAgICAgICAgJXtuYW1lfS5jb25mLjUKICMgUGF0Y2gwOiAg ICAgICAgICUle25hbWV9LUhFQUQucGF0Y2gKK1BhdGNoMDogICAgICAgICAle25hbWV9LUhFQUQu cGF0Y2gKICMgVW5kZXIgdGVzdGluZyAjMTM0OTE0OCAjMTM4NTM0OSAjMTM1MDI5MSAjMTQwNjY5 OSAjMTQzMjI1MiAjMTYwMTU3NwogUGF0Y2gxOiAgICAgICAgICV7bmFtZX0tMTM4NTM0OS1zZWd2 LWJ1cy1wcm94eS5wYXRjaAogCkBAIC02MzgsNiArNjM5LDE5IEBAIGRjb25mIHVwZGF0ZSB8fCA6 CiAle19kYXRhZGlyfS9pbnN0YWxsZWQtdGVzdHMvaWJ1cwogCiAlY2hhbmdlbG9nCisqIFdlZCBO b3YgMjYgMjAyNSBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjUuMzR+ YWxwaGExLTIKKy0gUmVzb2x2ZXM6ICMyMjM3NjY0IEZpeCBtb3VzZSBwb3NpdGlvbiBpbiBFbW9q aWVyIGNhdGVnb3J5IGxpc3QKKy0gUmVzb2x2ZXM6ICMyMzI2NDU1IEZyZWUgSUJ1c0lucHV0Q29u dGV4dCBpbiBpbnB1dF9tZXRob2RfYWN0aXZhdGUoKQorLSBSZXNvbHZlczogIzIzNDYwMzMgRml4 IFNFR1Ygd2l0aCBhbGxvY2F0aW9uIGZhaWwgaW4gX1hpMThuQ2hhbmdlSUMoKQorLSBSZXNvbHZl czogIzIzOTIzNTggUmVmZXIgUVRfSU1fTU9EVUxFUyB0byBjaGVjayBXYXlsYW5kCistIGRvbid0 IGJ1aWxkIGluIHBhcmFsbGVsIGluIHVpL2d0azMKKy0gRml4IEdDQyBgLVd1bnVzZWQtYnV0LXNl dC12YXJpYWJsZWAgZmxhZworLSAnLS1lbmFibGUtd2F5bGFuZC1pbScgb3B0aW9uIHdpdGhvdXQg ZGFlbW9uCistIEZpeCBtZW1vcnkgbGVha3Mgd2l0aCBmYWlsIHNhZmUKKy0gRml4IG1lbW9yeSBs ZWFrcyAjMgorLSBTZXQgTWVzc2FnZURpYWxvZyBhdCBpbnB1dCBjdXJzb3IKKy0gTW92ZSBncm91 cCBuYW1lIGRldGVjdGlvbiB0byBpYnVzX2dldF9ncm91cF9uYW1lKCkKKwogKiBTYXQgTm92IDIy IDIwMjUgVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJlZGhhdC5jb20+IC0gMS41LjM0fmFscGhh MS0xCiAtIEJ1bXAgdG8gMS41LjM0LWFscGhhMQogLSBEZWxldGUgZ25vbWUtdGhlbWVzLWV4dHJh IGZyb20gRmVkb3JhIENJCg==