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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to 7.9-branch snapshot 7.8.90.20150202. Date: Sat, 27 Jun 2026 23:56:56 GMT Message-ID: <178260461697.1.4383456624314954153.rpms-gdb-072837144cd6@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 072837144cd6fe153f540c555471dbbedc4e603f ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMDcyODM3MTQ0Y2Q2ZmUxNTNmNTQwYzU1NTQ3MWRiYmVkYzRl NjAzZgogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNS0wMi0wMlQyMzowOTo0MiswMTow MAogICAgICAgICAgICBTdGF0cyAgOiArMTA1NC8tMTAzMyBpbiAxNCBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMDcy ODM3MTQ0Y2Q2ZmUxNTNmNTQwYzU1NTQ3MWRiYmVkYzRlNjAzZj9icmFuY2g9Z2RiLTE3LjItcmVi YXNlLWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gNy45LWJyYW5j aCBzbmFwc2hvdCA3LjguOTAuMjAxNTAyMDIuCgotIFRlbXBvcmFyaWx5IGRpc2FibGUgZGctZXh0 cmFjdC1yZXN1bHRzLnB5IHRvIGZpeCBnZGIuc3VtIHNvcnRpbmcuCgotLS0KZGlmZiAtLWdpdCBh Ly5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGQ5OGQ4NTAuLjUzMmI4Y2IgMTAwNjQ0Ci0t LSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGli c3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy44LjUwLjIwMTUwMTA4LnRh ci54egorL2dkYi03LjguOTAuMjAxNTAyMDIudGFyLnh6CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNS1C RUEtdGVzdHN1aXRlLnBhdGNoIGIvZ2RiLTYuNS1CRUEtdGVzdHN1aXRlLnBhdGNoCmluZGV4IDdj NTc3OGMuLmIzMzhiZjcgMTAwNjQ0Ci0tLSBhL2dkYi02LjUtQkVBLXRlc3RzdWl0ZS5wYXRjaAor KysgYi9nZGItNi41LUJFQS10ZXN0c3VpdGUucGF0Y2gKQEAgLTQ3NCw3ICs0NzQsNyBAQCBJbmRl eDogZ2RiLTcuNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZGNyYXNoLnNoCiArICAg IGxvY2FsIEZBSUxVUkVTPTAKICsgICAgCiArICAgIG11c3ROb3RIYXZlICc/PycgfHwgKChGQUlM VVJFUysrKSkKLSsgICAgbXVzdEhhdmVDb3JyZWN0QW1vdW50IDEyIHRocmVhZGNyYXNoLmM6IHx8 ICgoRkFJTFVSRVMrKykpCisrICAgIG11c3RIYXZlQ29ycmVjdEFtb3VudCAxMSB0aHJlYWRjcmFz aC5jOiB8fCAoKEZBSUxVUkVTKyspKQogKyAgICAKICsgICAgbXVzdEhhdmVTZXZlblRocmVhZHMg fHwgKChGQUlMVVJFUysrKSkKICsgICAgbXVzdEhhdmVTZXF1ZW5jZSBzbGVlcCAibWFrZVN5c2Nh bGwgKGlnbm9yZWQ9IiB8fCAoKEZBSUxVUkVTKyspKQoKZGlmZiAtLWdpdCBhL2dkYi02LjYtc2No ZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0Y2ggYi9nZGItNi42LXNjaGVk dWxlcl9sb2NraW5nLXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoCmluZGV4IDhjNDE2MmEuLjAy M2E3ZmYgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRj aHBvaW50czIucGF0Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdh dGNocG9pbnRzMi5wYXRjaApAQCAtMjEsMTAgKzIxLDEwIEBACiAKIAlQb3J0IHRvIEdEQi02Ljhw cmUuCiAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYworSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9pbmZydW4uYwkyMDE0LTEyLTI4IDIxOjMzOjQxLjMwMTU0Nzg4 MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMDEg MTc6MDA6MDguMjEyOTIwNjkwICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dk Yi9pbmZydW4uYwkyMDE1LTAxLTI1IDA4OjM2OjE2LjY1MTcxNjE1OSArMDEwMAorKysrIGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUgMDg6MzY6MjYuNDkxNzU4NTcx ICswMTAwCiBAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgdm9pZCBmb2xsb3dfaW5mZXJpb3JfcmVz ZXRfYnJlYWtwCiAgc3RhdGljIHZvaWQgc2V0X3NjaGVkbG9ja19mdW5jIChjaGFyICphcmdzLCBp bnQgZnJvbV90dHksCiAgCQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjKTsKQEAgLTEyMCw3 ICsxMjAsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mcnVuLmMKICAKICAg IC8qIFdhaXQgZm9yIGl0IHRvIHN0b3AgKGlmIG5vdCBzdGFuZGFsb25lKQogICAgICAgYW5kIGlu IGFueSBjYXNlIGRlY29kZSB3aHkgaXQgc3RvcHBlZCwgYW5kIGFjdCBhY2NvcmRpbmdseS4gICov Ci1AQCAtNTY3NCwxNCArNTY5MCwxNiBAQCBzd2l0Y2hfYmFja190b19zdGVwcGVkX3RocmVhZCAo c3RydWN0IGV4CitAQCAtNTY4NCwxNCArNTcwMCwxNiBAQCBzd2l0Y2hfYmFja190b19zdGVwcGVk X3RocmVhZCAoc3RydWN0IGV4CiAgCiAgLyogSXMgdGhyZWFkIFRQIGluIHRoZSBtaWRkbGUgb2Yg c2luZ2xlLXN0ZXBwaW5nPyAgKi8KICAKQEAgLTE0MiwxMSArMTQyLDExIEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYwogIH0KICAKICAvKiBJbmZlcmlvciBoYXMgc3Rl cHBlZCBpbnRvIGEgc3Vicm91dGluZSBjYWxsIHdpdGggc291cmNlIGNvZGUgdGhhdAotSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQx MjI4Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMTItMjggMjE6MzM6NDEuMzAzNTQ3ODgyICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMJMjAxNC0xMi0yOCAy MTozMzo0NS44Mjc1NTE2ODcgKzAxMDAKLUBAIC0yNTE5LDcgKzI1MTksMTEgQEAgc3RhdGljIGlu dAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0y NSAwODozNjoxNi42NTM3MTYxNjggKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9s aW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjM2OjI2LjQ5Mjc1ODU3NiArMDEwMAorQEAgLTI2NDgs NyArMjY0OCwxMSBAQCBzdGF0aWMgaW50CiAgc2VsZWN0X3NpbmdsZXN0ZXBfbHdwX2NhbGxiYWNr IChzdHJ1Y3QgbHdwX2luZm8gKmxwLCB2b2lkICpkYXRhKQogIHsKICAgIGlmIChscC0+bGFzdF9y ZXN1bWVfa2luZCA9PSByZXN1bWVfc3RlcApAQCAtMTU5LDEwICsxNTksMTAgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5jCiAgICAgIHJldHVybiAxOwogICAgZWxz ZQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1u YXQuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE0LTEy LTI4IDIxOjMzOjQxLjMwNDU0Nzg4MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2xpbnV4LW5hdC5oCTIwMTQtMTItMjggMjE6MzM6NDUuODI3NTUxNjg3ICswMTAwCistLS0gZ2Ri LTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE1LTAxLTI1IDA4OjM2OjE2 LjY1MzcxNjE2OCArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5o CTIwMTUtMDEtMjUgMDg6MzY6NDQuOTQ4ODM4MTI2ICswMTAwCiBAQCAtMTgsNiArMTgsNyBAQAog ICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KICAKQEAgLTE3MSwyMSArMTcxLDIxIEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuaAogIAogICNpbmNsdWRlIDxzaWduYWwuaD4K ICAKLUBAIC01OSw4ICs2MCw4IEBAIHN0cnVjdCBsd3BfaW5mbwotICAgLyogSWYgbm9uLXplcm8s IGEgcGVuZGluZyB3YWl0IHN0YXR1cy4gICovCi0gICBpbnQgc3RhdHVzOworQEAgLTg4LDggKzg5 LDggQEAgc3RydWN0IGx3cF9pbmZvCisgICAgICBydW5uaW5nIGFuZCBub3Qgc3RlcHBpbmcsIHRo aXMgaXMgMC4gICovCisgICBDT1JFX0FERFIgc3RvcF9wYzsKICAKIC0gIC8qIE5vbi16ZXJvIGlm IHdlIHdlcmUgc3RlcHBpbmcgdGhpcyBMV1AuICAqLwogLSAgaW50IHN0ZXA7CiArICAvKiBUaGUg a2luZCBvZiBzdGVwcGluZyBvZiB0aGlzIExXUC4gICovCiArICBlbnVtIHJlc3VtZV9zdGVwIHN0 ZXA7CiAgCi0gICAvKiBTVE9QUEVEX0JZX1dBVENIUE9JTlQgaXMgbm9uLXplcm8gaWYgdGhpcyBM V1Agc3RvcHBlZCB3aXRoIGEgZGF0YQotICAgICAgd2F0Y2hwb2ludCB0cmFwLiAgKi8KLUluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uaAorICAgLyogVGhlIHJlYXNvbiB0aGUg TFdQIGxhc3Qgc3RvcHBlZCwgaWYgd2UgbmVlZCB0byB0cmFjayBpdAorICAgICAgKGJyZWFrcG9p bnQsIHdhdGNocG9pbnQsIGV0Yy4pICAqLworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2Ri L2luZnJ1bi5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9p bmZydW4uaAkyMDE0LTEyLTI4IDIxOjMzOjQ1LjgyNzU1MTY4NyArMDEwMAotKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5oCTIwMTQtMTItMjggMjE6MzQ6MTMuNTE2NTc0OTgxICsw MTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmZydW4uaAkyMDE1LTAxLTI1 IDA4OjM2OjE2LjY1NDcxNjE3MiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2lu ZnJ1bi5oCTIwMTUtMDEtMjUgMDg6MzY6MjYuNDkzNzU4NTgwICswMTAwCiBAQCAtOTIsNyArOTIs MTQgQEAgZXh0ZXJuIHZvaWQgcHJvY2VlZCAoQ09SRV9BRERSLCBlbnVtIGdkYgogIAogIC8qIFRo ZSBgcmVzdW1lJyByb3V0aW5lIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBzcGVjaWFsIGNpcmN1 bXN0YW5jZXMuCkBAIC0yMDIsMTAgKzIwMiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvaW5mcnVuLmgKICAKICAvKiBSZXR1cm4gYSBwdGlkIHJlcHJlc2VudGluZyB0aGUgc2V0 IG9mIHRocmVhZHMgdGhhdCB3ZSB3aWxsIHByb2NlZWQsCiAgICAgaW4gdGhlIHBlcnNwZWN0aXZl IG9mIHRoZSB1c2VyL2Zyb250ZW5kLiAgKi8KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnbmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAtb3Ro ZXItdGhyZWFkLmV4cAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3RzdWl0ZS9n ZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUv Z2RiLnRocmVhZHMvc2lnbmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4 cAkyMDE0LTEyLTI4IDIxOjMzOjQxLjMwNDU0Nzg4MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zl ci1icC1vdGhlci10aHJlYWQuZXhwCTIwMTQtMTItMjggMjE6MzM6NDUuODI3NTUxNjg3ICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMv c2lnbmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAkyMDE1LTAxLTI1 IDA4OjM2OjE2LjY1NDcxNjE3MiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10 aHJlYWQuZXhwCTIwMTUtMDEtMjUgMDg6MzY6MjYuNDkzNzU4NTgwICswMTAwCiBAQCAtOTcsNyAr OTcsNyBAQCBnZGJfdGVzdCAic2V0IGRlYnVnIGluZnJ1biAxIgogIAogIGdkYl90ZXN0IFwKCmRp ZmYgLS1naXQgYS9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gg Yi9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKaW5kZXggYmQ1 ZDA5Yy4uZmQ2NjA3MyAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRldGFj aC1zdG9wcGVkLnBhdGNoCisrKyBiL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3Rv cHBlZC5wYXRjaApAQCAtMSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9saW51eC1uYXQu YwkyMDE1LTAxLTA1IDIyOjUyOjAxLjExNTk3ODAyNiArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDEtMDUgMjI6NTI6MjMuMTQ3MDc0NzEwICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE1LTAxLTI1 IDA4OjQyOjQ5LjM4MTQwODg5OSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xp bnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6NDM6MTYuMzc4NTI1MzIyICswMTAwCiBAQCAtMTc0LDYg KzE3NCw5IEBAIGJsb2NrZWQuICAqLwogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyAqbGludXhf b3BzOwogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyBsaW51eF9vcHNfc2F2ZWQ7CkBAIC0xMiw3 ICsxMiw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogIC8q IFRoZSBtZXRob2QgdG8gY2FsbCwgaWYgYW55LCB3aGVuIGEgbmV3IHRocmVhZCBpcyBhdHRhY2hl ZC4gICovCiAgc3RhdGljIHZvaWQgKCpsaW51eF9uYXRfbmV3X3RocmVhZCkgKHN0cnVjdCBsd3Bf aW5mbyAqKTsKICAKLUBAIC05MTUsNiArOTE4LDcgQEAgbGludXhfbmF0X3Bvc3RfYXR0YWNoX3dh aXQgKHB0aWRfdCBwdGlkLAorQEAgLTkyNCw2ICs5MjcsNyBAQCBsaW51eF9uYXRfcG9zdF9hdHRh Y2hfd2FpdCAocHRpZF90IHB0aWQsCiAgICAgICAgaWYgKGRlYnVnX2xpbnV4X25hdCkKICAJZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAiTE5QQVc6IEF0dGFjaGluZyB0 byBhIHN0b3BwZWQgcHJvY2Vzc1xuIik7CkBAIC0yMCw3ICsyMCw3IEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogIAogICAgICAgIC8qIFRoZSBwcm9jZXNzIGlz IGRlZmluaXRlbHkgc3RvcHBlZC4gIEl0IGlzIGluIGEgam9iIGNvbnRyb2wKICAJIHN0b3AsIHVu bGVzcyB0aGUga2VybmVsIHByZWRhdGVzIHRoZSBUQVNLX1NUT1BQRUQgLwotQEAgLTEzMzcsNiAr MTM0MSw5IEBAIGdldF9wZW5kaW5nX3N0YXR1cyAoc3RydWN0IGx3cF9pbmZvICpscCwKK0BAIC0x NDI0LDYgKzE0MjgsOSBAQCBnZXRfcGVuZGluZ19zdGF0dXMgKHN0cnVjdCBsd3BfaW5mbyAqbHAs CiAgCQkJICAgIGdkYl9zaWduYWxfdG9fc3RyaW5nIChzaWdubykpOwogICAgICB9CiAgCkBAIC0z MCw3ICszMCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwog ICAgcmV0dXJuIDA7CiAgfQogIAotQEAgLTE0NTAsNiArMTQ1Nyw4IEBAIGxpbnV4X25hdF9kZXRh Y2ggKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKK0BAIC0xNTM3LDYgKzE1NDQsOCBAQCBsaW51eF9u YXRfZGV0YWNoIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzCiAgICAgIH0KICAgIGVsc2UKICAgICAg bGludXhfb3BzLT50b19kZXRhY2ggKG9wcywgYXJncywgZnJvbV90dHkpOwpAQCAtMzgsOCArMzgs OCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMKICsgIHBpZF93 YXNfc3RvcHBlZCA9IDA7CiAgfQogIAotIC8qIFJlc3VtZSBMUC4gICovCi1AQCAtMTYzMSw2ICsx NjQwLDE0IEBAIGxpbnV4X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKKyAvKiBS ZXN1bWUgZXhlY3V0aW9uIG9mIHRoZSBpbmZlcmlvciBwcm9jZXNzLiAgSWYgU1RFUCBpcyBub256 ZXJvLAorQEAgLTE3NDEsNiArMTc1MCwxNCBAQCBsaW51eF9uYXRfcmVzdW1lIChzdHJ1Y3QgdGFy Z2V0X29wcyAqb3BzCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC01NCw3ICs1NCw3IEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogICAgaWYgKHJlc3Vt ZV9tYW55KQogICAgICBpdGVyYXRlX292ZXJfbHdwcyAocHRpZCwgbGludXhfbmF0X3Jlc3VtZV9j YWxsYmFjaywgbHApOwogIAotQEAgLTM2OTYsNiArMzcxMyw4IEBAIGxpbnV4X25hdF9tb3Vybl9p bmZlcmlvciAoc3RydWN0IHRhcmdldF8KK0BAIC0zNzIzLDYgKzM3NDAsOCBAQCBsaW51eF9uYXRf bW91cm5faW5mZXJpb3IgKHN0cnVjdCB0YXJnZXRfCiAgCiAgICAvKiBMZXQgdGhlIGFyY2gtc3Bl Y2lmaWMgbmF0aXZlIGNvZGUga25vdyB0aGlzIHByb2Nlc3MgaXMgZ29uZS4gICovCiAgICBsaW51 eF9uYXRfZm9yZ2V0X3Byb2Nlc3MgKHBpZCk7CkBAIC02MywxMCArNjMsMTAgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIC8qIENvbnZlcnQgYSBu YXRpdmUvaG9zdCBzaWdpbmZvIG9iamVjdCwgaW50by9mcm9tIHRoZSBzaWdpbmZvIGluIHRoZQot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRh Y2gtc3RvcHBlZC5leHAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi90ZXN0c3VpdGUv Z2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQu ZXhwCTIwMTUtMDEtMDUgMjI6NTI6MDEuMTE1OTc4MDI2ICswMTAwCi0rKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE1 LTAxLTA1IDIyOjUyOjIzLjE0ODA3NDcxNCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUu b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE1LTAx LTI1IDA4OjQyOjQ5LjM4MjQwODkwMyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2Ri L3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNS0wMS0yNSAwODo0 MzoxNi4zNzk1MjUzMjcgKzAxMDAKIEBAIC02MSw3ICs2MSw2NSBAQCBwcm9jIGNvcmVmdW5jIHsg dGhyZWFkdHlwZSB9IHsKICAgICAgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGly CiAgICAgIGdkYl9sb2FkICR7YmluZmlsZX0KQEAgLTEzNCwxMCArMTM0LDEwIEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3Bw ZWQuZXhwCiAgICAgICAgIAogICAgICBzZXQgdGVzdCAiJHRocmVhZHR5cGU6IGF0dGFjaDIgdG8g c3RvcHBlZCwgYWZ0ZXIgc2V0dGluZyBmaWxlIgogICAgICBnZGJfdGVzdF9tdWx0aXBsZSAiYXR0 YWNoICR0ZXN0cGlkIiAiJHRlc3QiIHsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9p bmZydW4uYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTAxLTA1 IDIyOjQyOjQ4Ljc3MzUwMTQyOSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2lu ZnJ1bi5jCTIwMTUtMDEtMDUgMjI6NTM6NDcuMjc0NDQzOTAzICswMTAwCistLS0gZ2RiLTcuOC45 MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTAxLTI1IDA4OjQyOjQ5LjM4NTQwODkx NiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUg MDg6NDM6MTYuMzgxNTI1MzM1ICswMTAwCiBAQCAtNjAwLDYgKzYwMCwxMSBAQCBob2xkaW5nIHRo ZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0IGRlCiAgCQkJCWNoaWxkX3BpZCk7CiAgCSAgICB9 CgpkaWZmIC0tZ2l0IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaCBiL2dkYi1h dHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKaW5kZXggZTZkOTEwMi4uMTgxOThjNSAxMDA2 NDQKLS0tIGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAorKysgYi9nZGItYXR0 YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCkBAIC0zNywxMCArMzcsMTAgQEAgZ2RiL2dkYnNl cnZlci8KIAkobGludXhfY3JlYXRlX2luZmVyaW9yLCBsaW51eF90cmFjZWZvcmtfY2hpbGQpOiBD YWxsIGl0IGluc3RlYWQgb2YKIAlkaXJlY3QgcHRyYWNlLgogCi1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNS0wMS0wMSAyMTozODoxNC42OTEy MDkwOTQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQvbGludXgtcHRyYWNl LmMJMjAxNS0wMS0wMSAyMTozOTozNC42NzAxNTc1MDYgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIw MTUwMTI1Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTAxLTI1IDA4OjM2OjU1Ljcx MDg4NDUxMSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL25hdC9saW51eC1wdHJh Y2UuYwkyMDE1LTAxLTI1IDA4OjM4OjQzLjE1NzM0NzYyNyArMDEwMAogQEAgLTI1LDYgKzI1LDEw IEBACiAgCiAgI2luY2x1ZGUgPHN0ZGludC5oPgpAQCAtNjAsOCArNjAsOCBAQCBJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiArICBsaW51eF9wdHJhY2Vf Y3JlYXRlX3dhcm5pbmdzIChidWZmZXIpOwogIH0KICAKLSAjaWYgZGVmaW5lZCBfX2kzODZfXyB8 fCBkZWZpbmVkIF9feDg2XzY0X18KLUBAIC01NjgsNiArNTc0LDIyIEBAIGxpbnV4X3B0cmFjZV9p bml0X3dhcm5pbmdzICh2b2lkKQorIC8qIFNlZSBsaW51eC1wdHJhY2UuaC4gICovCitAQCAtNTk1 LDYgKzYwMSwyMiBAQCBsaW51eF9wdHJhY2VfaW5pdF93YXJuaW5ncyAodm9pZCkKICAgIGxpbnV4 X3B0cmFjZV90ZXN0X3JldF90b19ueCAoKTsKICB9CiAgCkBAIC04NCwyMyArODQsMjMgQEAgSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL25hdC9saW51eC1wdHJhY2UuYwogIC8qIFNldCBh ZGRpdGlvbmFsIHB0cmFjZSBmbGFncyB0byB1c2UuICBTb21lIHN1Y2ggZmxhZ3MgbWF5IGJlIGNo ZWNrZWQKICAgICBieSB0aGUgaW1wbGVtZW50YXRpb24gYWJvdmUuICBUaGlzIGZ1bmN0aW9uIG11 c3QgYmUgY2FsbGVkIGJlZm9yZQogICAgIGFueSBvdGhlciBmdW5jdGlvbiBpbiB0aGlzIGZpbGU7 IG90aGVyd2lzZSB0aGUgZmxhZ3MgbWF5IG5vdCB0YWtlCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0wMSAyMTozODoyMS4yODAyMDQ4 NDQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJ MjAxNS0wMS0wMSAyMTozOTowMC41NDIxNzk1MTkgKzAxMDAKLUBAIC05MCw2ICs5MCw3IEBAIHN0 cnVjdCBidWZmZXI7CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9uYXQvbGludXgt cHRyYWNlLmgJMjAxNS0wMS0yNSAwODozNzowMi44MDA5MTUwNzEgKzAxMDAKKysrKyBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0yNSAwODozODoxNi41 NjUyMzMwMDkgKzAxMDAKK0BAIC05OCw2ICs5OCw3IEBAIGV4dGVybiB2b2lkIGxpbnV4X3B0cmFj ZV9hdHRhY2hfZmFpbF9yZWEKKyBleHRlcm4gY2hhciAqbGludXhfcHRyYWNlX2F0dGFjaF9mYWls X3JlYXNvbl9zdHJpbmcgKHB0aWRfdCBwdGlkLCBpbnQgZXJyKTsKICAKLSBleHRlcm4gdm9pZCBs aW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29uIChwaWRfdCBwaWQsIHN0cnVjdCBidWZmZXIg KmJ1ZmZlcik7CiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQp OwogK2V4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKHN0cnVjdCBidWZm ZXIgKmJ1ZmZlcik7CiAgZXh0ZXJuIHZvaWQgbGludXhfZW5hYmxlX2V2ZW50X3JlcG9ydGluZyAo cGlkX3QgcGlkLCBpbnQgYXR0YWNoZWQpOwogIGV4dGVybiB2b2lkIGxpbnV4X2Rpc2FibGVfZXZl bnRfcmVwb3J0aW5nIChwaWRfdCBwaWQpOwogIGV4dGVybiBpbnQgbGludXhfc3VwcG9ydHNfdHJh Y2Vmb3JrICh2b2lkKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWd1cmUu YWMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE1LTAx LTAxIDIxOjM4OjE0LjY5MjIwOTA5NCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MTIwNDg0MyArMDEwMAotQEAgLTIx MTYsNiArMjExNiwxMCBAQCBjYXNlICRob3N0X29zIGluCistLS0gZ2RiLTcuOC45MC4yMDE1MDEy NS5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxNS0wMS0yNSAwODozNjo1NS43MTI4ODQ1MjAgKzAx MDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1cmUuYWMJMjAxNS0wMS0yNSAw ODozNzowMi44MDE5MTUwNzUgKzAxMDAKK0BAIC0yMTE3LDYgKzIxMTcsMTAgQEAgY2FzZSAkaG9z dF9vcyBpbgogIGVzYWMKICBBQ19ERUZJTkVfVU5RVU9URUQoR0RCSU5JVCwiJGdkYmluaXQiLFtU aGUgLmdkYmluaXQgZmlsZW5hbWUuXSkKICAKQEAgLTExMSwxMCArMTExLDEwIEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlvbmFs IGZlYXR1cmVzIHRoYXQgY2FuIGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgt c3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMKK0luZGV4OiBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMDEtMDEg MjE6Mzg6MTQuNjkzMjA5MDkzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ri c2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MTIwNDg0MyArMDEwMAor LS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwky MDE1LTAxLTI1IDA4OjM2OjU1LjcxMjg4NDUyMCArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNS0wMS0yNSAwODozNzowMi44MDE5MTUw NzUgKzAxMDAKIEBAIC00NjEsNiArNDYxLDEwIEBAIGlmICR3YW50X2lwYSA7IHRoZW4KICAgICBm aQogIGZpCkBAIC0xMjYsMTEgKzEyNiwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwogIEFDX1NVQlNUKEdEQlNFUlZFUl9ERVBGSUxFUykK ICBBQ19TVUJTVChHREJTRVJWRVJfTElCUykKICBBQ19TVUJTVChzcnZfeG1sYnVpbHRpbikKLUlu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKK0luZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cu YwkyMDE1LTAxLTAxIDIxOjM4OjE0LjY5NTIwOTA5MSArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MjIw NDg0MyArMDEwMAotQEAgLTUzNyw2ICs1MzcsMjkgQEAgYWRkX2x3cCAocHRpZF90IHB0aWQpCist LS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAx NS0wMS0yNSAwODozNjo1NS43MTQ4ODQ1MjkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNS0wMS0yNSAwODozNzowMi44MDM5MTUwODQg KzAxMDAKK0BAIC01OTEsNiArNTkxLDI5IEBAIGFkZF9sd3AgKHB0aWRfdCBwdGlkKQogICAgcmV0 dXJuIGx3cDsKICB9CiAgCkBAIC0xNjAsNyArMTYwLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogIC8qIFN0YXJ0IGFuIGluZmVyaW9yIHBy b2Nlc3MgYW5kIHJldHVybnMgaXRzIHBpZC4KICAgICBBTExBUkdTIGlzIGEgdmVjdG9yIG9mIHBy b2dyYW0tbmFtZSBhbmQgYXJncy4gKi8KICAKLUBAIC01NzgsNyArNjAxLDcgQEAgbGludXhfY3Jl YXRlX2luZmVyaW9yIChjaGFyICpwcm9ncmFtLCBjaAorQEAgLTYzMiw3ICs2NTUsNyBAQCBsaW51 eF9jcmVhdGVfaW5mZXJpb3IgKGNoYXIgKnByb2dyYW0sIGNoCiAgICBpZiAocGlkID09IDApCiAg ICAgIHsKICAgICAgICBjbG9zZV9tb3N0X2ZkcyAoKTsKQEAgLTE2OSwxMSArMTY5LDExIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMKICAKICAj aWZuZGVmIF9fQU5EUk9JRF9fIC8qIEJpb25pYyBkb2Vzbid0IHVzZSBTSUdSVE1JTiB0aGUgd2F5 IGdsaWJjIGRvZXMuICAqLwogICAgICAgIHNpZ25hbCAoX19TSUdSVE1JTiArIDEsIFNJR19ERkwp OwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZi1wdHJhY2UuYworSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZi1wdHJhY2UuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTUtMDEtMDEgMjE6Mzg6MTQu Njk1MjA5MDkxICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mLXB0cmFjZS5j CTIwMTUtMDEtMDEgMjE6Mzg6MjEuMjgyMjA0ODQzICswMTAwCi1AQCAtNjYsNyArNjYsMTUgQEAg c3RhdGljIHZvaWQKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2luZi1wdHJhY2Uu YwkyMDE1LTAxLTI1IDA4OjM2OjU1LjcxNTg4NDUzMyArMDEwMAorKysrIGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2luZi1wdHJhY2UuYwkyMDE1LTAxLTI1IDA4OjM3OjAyLjgwMzkxNTA4NCArMDEw MAorQEAgLTY3LDcgKzY3LDE1IEBAIHN0YXRpYyB2b2lkCiAgaW5mX3B0cmFjZV9tZSAodm9pZCkK ICB7CiAgICAvKiAiVHJhY2UgbWUsIERyLiBNZW1vcnkhIiAgKi8KQEAgLTE4OSwxMSArMTg5LDEx IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmYtcHRyYWNlLmMKICB9CiAgCiAg LyogU3RhcnQgYSBuZXcgaW5mZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlz IHRoZSBmaWxlIHRvCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMK K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0wMSAy MTozODoxNC42OTcyMDkwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51 eC1uYXQuYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MzIwNDg0MiArMDEwMAotQEAgLTEwOTksNiAr MTA5OSw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKKy0tLSBn ZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6MzY6 NTUuNzE3ODg0NTQxICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0 LmMJMjAxNS0wMS0yNSAwODozNzo1Mi4wNTQxMjczNjIgKzAxMDAKK0BAIC0xMTA5LDYgKzExMDks NyBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0CiAgI2lmZGVmIEhB VkVfUEVSU09OQUxJVFkKICAgIGludCBwZXJzb25hbGl0eV9vcmlnID0gMCwgcGVyc29uYWxpdHlf c2V0ID0gMDsKICAjZW5kaWYgLyogSEFWRV9QRVJTT05BTElUWSAqLwpAQCAtMjAxLDcgKzIwMSw3 IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogIAogICAgLyog VGhlIGZvcmtfY2hpbGQgbWVjaGFuaXNtIGlzIHN5bmNocm9ub3VzIGFuZCBjYWxscyB0YXJnZXRf d2FpdCwgc28KICAgICAgIHdlIGhhdmUgdG8gbWFzayB0aGUgYXN5bmMgbW9kZS4gICovCi1AQCAt MTEyMyw3ICsxMTI0LDEwIEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJn ZXQKK0BAIC0xMTMzLDcgKzExMzQsMTAgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3Ry dWN0IHRhcmdldAogICAgLyogTWFrZSBzdXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFscyBkdXJpbmcg c3RhcnR1cC4gICovCiAgICBsaW51eF9uYXRfcGFzc19zaWduYWxzIChvcHMsIDAsIE5VTEwpOwog IApAQCAtMjEzLDcgKzIxMyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51 eC1uYXQuYwogIAogICNpZmRlZiBIQVZFX1BFUlNPTkFMSVRZCiAgICBpZiAocGVyc29uYWxpdHlf c2V0KQotQEAgLTExMzUsNiArMTEzOSwyNCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChz dHJ1Y3QgdGFyZ2V0CitAQCAtMTE0NSw2ICsxMTQ5LDI0IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5m ZXJpb3IgKHN0cnVjdCB0YXJnZXQKICAJCSBzYWZlX3N0cmVycm9yIChlcnJubykpOwogICAgICB9 CiAgI2VuZGlmIC8qIEhBVkVfUEVSU09OQUxJVFkgKi8KQEAgLTIzNywxMSArMjM3LDExIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogKyAgICB9CiAgfQogIAot IHN0YXRpYyB2b2lkCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnLmluCisg LyogQ2FsbGJhY2sgZm9yIGxpbnV4X3Byb2NfYXR0YWNoX3RnaWRfdGhyZWFkcy4gIEF0dGFjaCB0 byBQVElEIGlmIG5vdAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZpZy5pbgog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29uZmlnLmluCTIw MTUtMDEtMDEgMjE6Mzg6MTQuNjk3MjA5MDkwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvY29uZmlnLmluCTIwMTUtMDEtMDEgMjE6Mzg6MjEuMjg0MjA0ODQyICswMTAwCistLS0g Z2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9jb25maWcuaW4JMjAxNS0wMS0yNSAwODozNjo1 NS43MTg4ODQ1NDYgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWcuaW4J MjAxNS0wMS0yNSAwODozNzowMi44MDU5MTUwOTIgKzAxMDAKIEBAIC0yMTMsNiArMjEzLDkgQEAK ICAvKiBEZWZpbmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8KICAjdW5kZWYg SEFWRV9MSUJSUE0KQEAgLTI2MiwxMSArMjYyLDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGxv Y2FsZScgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0VUTE9DQUxFCiAgCi1JbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9jb25maWd1cmUJMjAxNS0wMS0wMSAyMTozODoxNC43MDEyMDkwODcgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWd1cmUJMjAxNS0wMS0wMSAyMTozODoyMS4yODYy MDQ4NDAgKzAxMDAKLUBAIC0xMzI2OSw2ICsxMzI2OSw2NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9jb25maWd1cmUJMjAxNS0w MS0yNSAwODozNjo1NS43MjI4ODQ1NjMgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dk Yi9jb25maWd1cmUJMjAxNS0wMS0yNSAwODozNzowMi44MDk5MTUxMTAgKzAxMDAKK0BAIC0xMzI3 MCw2ICsxMzI3MCw2NCBAQCBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAgX0FDRU9GCiAgCiAg CkBAIC0zMzEsMTAgKzMzMSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29u ZmlndXJlCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RC X0FDX1dJVEhfRElSLAogICMgZXhjZXB0IHRoYXQgdGhlIGFyZ3VtZW50IHRvIC0td2l0aC1zeXNy b290IGlzIG9wdGlvbmFsLgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnNlcnZl ci9jb25maWcuaW4KK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29u ZmlnLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJz ZXJ2ZXIvY29uZmlnLmluCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNzAyMjA5MDg3ICswMTAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE1LTAxLTAxIDIx OjM4OjM5LjM2NTE5MzE3OSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIv Z2Ric2VydmVyL2NvbmZpZy5pbgkyMDE1LTAxLTI1IDA4OjM2OjU1LjcyNDg4NDU3MiArMDEwMAor KysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0wMS0y NSAwODozNzowMi44MDk5MTUxMTAgKzAxMDAKIEBAIC03NSw2ICs3NSw5IEBACiAgLyogRGVmaW5l IHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtY2hlY2snIGxpYnJhcnkgKC1sbWNoZWNrKS4gKi8KICAj dW5kZWYgSEFWRV9MSUJNQ0hFQ0sKQEAgLTM1NSwxMCArMzU1LDEwIEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIDxzZ3R0eS5oPiBoZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9TR1RU WV9ICiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3Vy ZQorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25m aWd1cmUJMjAxNS0wMS0wMSAyMTozODoxNC43MDQyMDkwODYgKzAxMDAKLSsrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTUtMDEtMDEgMjE6Mzg6MjEuMjg4 MjA0ODM5ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9nZGJzZXJ2ZXIv Y29uZmlndXJlCTIwMTUtMDEtMjUgMDg6MzY6NTUuNzI2ODg0NTgwICswMTAwCisrKysgZ2RiLTcu OC45MC4yMDE1MDEyNS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTAxLTI1IDA4OjM3OjAy LjgxMTkxNTExOCArMDEwMAogQEAgLTYxOTksNiArNjE5OSw2NCBAQCBpZiAkd2FudF9pcGEgOyB0 aGVuCiAgICAgZmkKICBmaQoKZGlmZiAtLWdpdCBhL2dkYi1jb21waWxlLXdhcm5fdW51c2VkX3Jl c3VsdC5wYXRjaCBiL2dkYi1jb21waWxlLXdhcm5fdW51c2VkX3Jlc3VsdC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDMyNDAwNC4uMDAwMDAwMAotLS0gYS9nZGItY29tcGls ZS13YXJuX3VudXNlZF9yZXN1bHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBA Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29tcGlsZS9jb21waWxlLmMtb3JpZwkyMDE0 LTEyLTI4IDAyOjQ4OjQzLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2NvbXBpbGUvY29tcGlsZS5jCTIwMTUtMDEtMDUgMjM6MDM6MzMuMzgzMDE2MDM5ICswMTAw Ci1AQCAtMTcyLDcgKzE3Miw3IEBAIGRvX3JtZGlyICh2b2lkICphcmcpCi0gICAKLSAgIGdkYl9h c3NlcnQgKHN0cm5jbXAgKGRpciwgVE1QX1BSRUZJWCwgc3RybGVuIChUTVBfUFJFRklYKSkgPT0g MCk7Ci0gICB6YXAgPSBjb25jYXQgKCJybSAtcmYgIiwgZGlyLCAoY2hhciAqKSBOVUxMKTsKLS0g IHN5c3RlbSAoemFwKTsKLSsgIGlmIChzeXN0ZW0gKHphcCkpIHt9Ci0gfQotIAotIC8qIFJldHVy biB0aGUgbmFtZSBvZiB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byB1c2UgZm9yIC5vIGZpbGVz LCBhbmQKCmRpZmYgLS1naXQgYS9nZGItbm8tZGctZXh0cmFjdC1yZXN1bHRzLXB5LnBhdGNoIGIv Z2RiLW5vLWRnLWV4dHJhY3QtcmVzdWx0cy1weS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi40MGUxZmVhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLW5vLWRnLWV4dHJh Y3QtcmVzdWx0cy1weS5wYXRjaApAQCAtMCwwICsxLDU4OSBAQAorZGlmZiAtZHVwIC1ydU5wIGdk Yi03LjguOTAuMjAxNTAyMDItb3JpZy9nZGIvdGVzdHN1aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5w eSBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90ZXN0c3VpdGUvZGctZXh0cmFjdC1yZXN1bHRzLnB5 CistLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi1vcmlnL2dkYi90ZXN0c3VpdGUvZGctZXh0cmFjdC1y ZXN1bHRzLnB5CTIwMTUtMDItMDIgMDI6NTg6MjkuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvdGVzdHN1aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5weQkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorQEAgLTEsNTg1ICswLDAgQEAKKy0jIS91c3Iv YmluL3B5dGhvbgorLSMKKy0jIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorLSMKKy0jIFRoaXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0jIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91 ciBvcHRpb24pCistIyBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0KKy1pbXBvcnQgc3lzCistaW1wb3J0 IGdldG9wdAorLWltcG9ydCByZQorLWltcG9ydCBpbworLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRh dGV0aW1lCistZnJvbSBvcGVyYXRvciBpbXBvcnQgYXR0cmdldHRlcgorLQorLSMgVHJ1ZSBpZiB1 bnJlY29nbmlzZWQgbGluZXMgc2hvdWxkIGNhdXNlIGEgZmF0YWwgZXJyb3IuICBNaWdodCB3YW50 IHRvIHR1cm4KKy0jIHRoaXMgb24gYnkgZGVmYXVsdCBsYXRlci4KKy1zdHJpY3QgPSBGYWxzZQor LQorLSMgVHJ1ZSBpZiB0aGUgb3JkZXIgb2YgLmxvZyBzZWdtZW50cyBzaG91bGQgbWF0Y2ggdGhl IC5zdW0gZmlsZSwgZmFsc2UgaWYKKy0jIHRoZXkgc2hvdWxkIGtlZXAgdGhlIG9yaWdpbmFsIG9y ZGVyLgorLXNvcnRfbG9ncyA9IFRydWUKKy0KKy0jIEEgdmVyc2lvbiBvZiBvcGVuKCkgdGhhdCBp cyBzYWZlIGFnYWluc3Qgd2hhdGV2ZXIgYmluYXJ5IG91dHB1dAorLSMgbWlnaHQgYmUgYWRkZWQg dG8gdGhlIGxvZy4KKy1kZWYgc2FmZV9vcGVuIChmaWxlbmFtZSk6CistICAgIGlmIHN5cy52ZXJz aW9uX2luZm8gPj0gKDMsIDApOgorLSAgICAgICAgcmV0dXJuIG9wZW4gKGZpbGVuYW1lLCAncics IGVycm9ycyA9ICdzdXJyb2dhdGVlc2NhcGUnKQorLSAgICByZXR1cm4gb3BlbiAoZmlsZW5hbWUs ICdyJykKKy0KKy0jIEZvcmNlIHN0ZG91dCB0byBoYW5kbGUgZXNjYXBlIHNlcXVlbmNlcyBmcm9t IGEgc2FmZV9vcGVuIGZpbGUuCistaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6CistICAg IHN5cy5zdGRvdXQgPSBpby5UZXh0SU9XcmFwcGVyIChzeXMuc3Rkb3V0LmJ1ZmZlciwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9ICdzdXJyb2dhdGVlc2NhcGUn KQorLQorLWNsYXNzIE5hbWVkOgorLSAgICBkZWYgX19pbml0X18gKHNlbGYsIG5hbWUpOgorLSAg ICAgICAgc2VsZi5uYW1lID0gbmFtZQorLQorLWNsYXNzIFRvb2xSdW4gKE5hbWVkKToKKy0gICAg ZGVmIF9faW5pdF9fIChzZWxmLCBuYW1lKToKKy0gICAgICAgIE5hbWVkLl9faW5pdF9fIChzZWxm LCBuYW1lKQorLSAgICAgICAgIyBUaGUgdmFyaWF0aW9ucyBydW4gZm9yIHRoaXMgdG9vbCwgbWFw cGVkIGJ5IC0tdGFyZ2V0X2JvYXJkIG5hbWUuCistICAgICAgICBzZWxmLnZhcmlhdGlvbnMgPSBk aWN0KCkKKy0KKy0gICAgIyBSZXR1cm4gdGhlIFZhcmlhdGlvblJ1biBmb3IgdmFyaWF0aW9uIE5B TUUuCistICAgIGRlZiBnZXRfdmFyaWF0aW9uIChzZWxmLCBuYW1lKToKKy0gICAgICAgIGlmIG5h bWUgbm90IGluIHNlbGYudmFyaWF0aW9uczoKKy0gICAgICAgICAgICBzZWxmLnZhcmlhdGlvbnNb bmFtZV0gPSBWYXJpYXRpb25SdW4gKG5hbWUpCistICAgICAgICByZXR1cm4gc2VsZi52YXJpYXRp b25zW25hbWVdCistCistY2xhc3MgVmFyaWF0aW9uUnVuIChOYW1lZCk6CistICAgIGRlZiBfX2lu aXRfXyAoc2VsZiwgbmFtZSk6CistICAgICAgICBOYW1lZC5fX2luaXRfXyAoc2VsZiwgbmFtZSkK Ky0gICAgICAgICMgQSBzZWdtZW50IG9mIHRleHQgYmVmb3JlIHRoZSBoYXJuZXNzIHJ1bnMgc3Rh cnQsIGRlc2NyaWJpbmcgd2hpY2gKKy0gICAgICAgICMgYmFzZWJvYXJkIGZpbGVzIHdlcmUgbG9h ZGVkIGZvciB0aGUgdGFyZ2V0LgorLSAgICAgICAgc2VsZi5oZWFkZXIgPSBOb25lCistICAgICAg ICAjIFRoZSBoYXJuZXNzZXMgcnVuIGZvciB0aGlzIHZhcmlhdGlvbiwgbWFwcGVkIGJ5IGZpbGVu YW1lLgorLSAgICAgICAgc2VsZi5oYXJuZXNzZXMgPSBkaWN0KCkKKy0gICAgICAgICMgQSBsaXN0 IGdpdmluZyB0aGUgbnVtYmVyIG9mIHRpbWVzIGVhY2ggdHlwZSBvZiByZXN1bHQgaGFzCistICAg ICAgICAjIGJlZW4gc2Vlbi4KKy0gICAgICAgIHNlbGYuY291bnRzID0gW10KKy0KKy0gICAgIyBS ZXR1cm4gdGhlIEhhcm5lc3NSdW4gZm9yIGhhcm5lc3MgTkFNRS4KKy0gICAgZGVmIGdldF9oYXJu ZXNzIChzZWxmLCBuYW1lKToKKy0gICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuaGFybmVzc2Vz OgorLSAgICAgICAgICAgIHNlbGYuaGFybmVzc2VzW25hbWVdID0gSGFybmVzc1J1biAobmFtZSkK Ky0gICAgICAgIHJldHVybiBzZWxmLmhhcm5lc3Nlc1tuYW1lXQorLQorLWNsYXNzIEhhcm5lc3NS dW4gKE5hbWVkKToKKy0gICAgZGVmIF9faW5pdF9fIChzZWxmLCBuYW1lKToKKy0gICAgICAgIE5h bWVkLl9faW5pdF9fIChzZWxmLCBuYW1lKQorLSAgICAgICAgIyBTZWdtZW50cyBvZiB0ZXh0IHRo YXQgbWFrZSB1cCB0aGUgaGFybmVzcyBydW4sIG1hcHBlZCBieSBhIHRlc3QtYmFzZWQKKy0gICAg ICAgICMga2V5IHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JkZXIgdGhlbS4KKy0gICAgICAgIHNlbGYu c2VnbWVudHMgPSBkaWN0KCkKKy0gICAgICAgICMgU2VnbWVudHMgb2YgdGV4dCB0aGF0IG1ha2Ug dXAgdGhlIGhhcm5lc3MgcnVuIGJ1dCB3aGljaCBoYXZlCistICAgICAgICAjIG5vIHJlY29nbml6 ZWQgdGVzdCByZXN1bHRzLiAgVGhlc2UgYXJlIHR5cGljYWxseSBoYXJuZXNzZXMgdGhhdAorLSAg ICAgICAgIyBhcmUgY29tcGxldGVseSBza2lwcGVkIGZvciB0aGUgdGFyZ2V0LgorLSAgICAgICAg c2VsZi5lbXB0eSA9IFtdCistICAgICAgICAjIEEgbGlzdCBvZiByZXN1bHRzLiAgRWFjaCBlbnRy eSBpcyBhIHBhaXIgaW4gd2hpY2ggdGhlIGZpcnN0IGVsZW1lbnQKKy0gICAgICAgICMgaXMgYSB1 bmlxdWUgc29ydGluZyBrZXkgYW5kIGluIHdoaWNoIHRoZSBzZWNvbmQgaXMgdGhlIGZ1bGwKKy0g ICAgICAgICMgUEFTUy9GQUlMIGxpbmUuCistICAgICAgICBzZWxmLnJlc3VsdHMgPSBbXQorLQor LSAgICAjIEFkZCBhIHNlZ21lbnQgb2YgdGV4dCB0byB0aGUgaGFybmVzcyBydW4uICBJZiB0aGUg c2VnbWVudCBpbmNsdWRlcworLSAgICAjIHRlc3QgcmVzdWx0cywgS0VZIGlzIGFuIGV4YW1wbGUg b2Ygb25lIG9mIHRoZW0sIGFuZCBjYW4gYmUgdXNlZCB0bworLSAgICAjIGNvbWJpbmUgdGhlIGlu ZGl2aWR1YWwgc2VnbWVudHMgaW4gb3JkZXIuICBJZiB0aGUgc2VnbWVudCBoYXMgbm8KKy0gICAg IyB0ZXN0IHJlc3VsdHMgKGUuZy4gYmVjYXVzZSB0aGUgaGFybmVzcyBkb2Vzbid0IGRvIGFueXRo aW5nIGZvciB0aGUKKy0gICAgIyBjdXJyZW50IGNvbmZpZ3VyYXRpb24pIHRoZW4gS0VZIGlzIE5v bmUgaW5zdGVhZC4gIEluIHRoYXQgY2FzZQorLSAgICAjIGp1c3QgY29sbGVjdCB0aGUgc2VnbWVu dHMgaW4gdGhlIG9yZGVyIHRoYXQgd2Ugc2VlIHRoZW0uCistICAgIGRlZiBhZGRfc2VnbWVudCAo c2VsZiwga2V5LCBzZWdtZW50KToKKy0gICAgICAgIGlmIGtleToKKy0gICAgICAgICAgICBhc3Nl cnQga2V5IG5vdCBpbiBzZWxmLnNlZ21lbnRzCistICAgICAgICAgICAgc2VsZi5zZWdtZW50c1tr ZXldID0gc2VnbWVudAorLSAgICAgICAgZWxzZToKKy0gICAgICAgICAgICBzZWxmLmVtcHR5LmFw cGVuZCAoc2VnbWVudCkKKy0KKy1jbGFzcyBTZWdtZW50OgorLSAgICBkZWYgX19pbml0X18gKHNl bGYsIGZpbGVuYW1lLCBzdGFydCk6CistICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUK Ky0gICAgICAgIHNlbGYuc3RhcnQgPSBzdGFydAorLSAgICAgICAgc2VsZi5saW5lcyA9IDAKKy0K Ky1jbGFzcyBQcm9nOgorLSAgICBkZWYgX19pbml0X18gKHNlbGYpOgorLSAgICAgICAgIyBUaGUg dmFyaWF0aW9ucyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKy0gICAgICAgIHNlbGYu dmFyaWF0aW9ucyA9IFtdCistICAgICAgICAjIFRoZSB2YXJpYXRpb25zIHNlZW4gaW4gdGhlIGlu cHV0IGZpbGVzLgorLSAgICAgICAgc2VsZi5rbm93bl92YXJpYXRpb25zID0gc2V0KCkKKy0gICAg ICAgICMgVGhlIHRvb2xzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgorLSAgICAgICAg c2VsZi50b29scyA9IFtdCistICAgICAgICAjIFdoZXRoZXIgdG8gY3JlYXRlIC5zdW0gcmF0aGVy IHRoYW4gLmxvZyBvdXRwdXQuCistICAgICAgICBzZWxmLmRvX3N1bSA9IFRydWUKKy0gICAgICAg ICMgUmVnZXhwcyB1c2VkIHdoaWxlIHBhcnNpbmcuCistICAgICAgICBzZWxmLnRlc3RfcnVuX3Jl ID0gcmUuY29tcGlsZSAocideVGVzdCBSdW4gQnkgKFxTKykgb24gKC4qKSQnKQorLSAgICAgICAg c2VsZi50b29sX3JlID0gcmUuY29tcGlsZSAocideXHRcdD09PSAoLiopIHRlc3RzID09PSQnKQor LSAgICAgICAgc2VsZi5yZXN1bHRfcmUgPSByZS5jb21waWxlIChyJ14oUEFTU3xYUEFTU3xGQUlM fFhGQUlMfFVOUkVTT0xWRUQnCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHInfFdBUk5JTkd8RVJST1J8VU5TVVBQT1JURUR8VU5URVNURUQnCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHInfEtGQUlMKTpccyooLispJykKKy0gICAgICAgIHNlbGYu Y29tcGxldGVkX3JlID0gcmUuY29tcGlsZSAocicuKiBjb21wbGV0ZWQgYXQgKC4qKScpCistICAg ICAgICAjIFBpZWNlcyBvZiB0ZXh0IHRvIHdyaXRlIGF0IHRoZSBoZWFkIG9mIHRoZSBvdXRwdXQu CistICAgICAgICAjIHN0YXJ0X2xpbmUgaXMgYSBwYWlyIGluIHdoaWNoIHRoZSBmaXJzdCBlbGVt ZW50IGlzIGEgZGF0ZXRpbWUKKy0gICAgICAgICMgYW5kIGluIHdoaWNoIHRoZSBzZWNvbmQgaXMg dGhlIGFzc29jaWF0ZWQgJ1Rlc3QgUnVuIEJ5JyBsaW5lLgorLSAgICAgICAgc2VsZi5zdGFydF9s aW5lID0gTm9uZQorLSAgICAgICAgc2VsZi5uYXRpdmVfbGluZSA9ICcnCistICAgICAgICBzZWxm LnRhcmdldF9saW5lID0gJycKKy0gICAgICAgIHNlbGYuaG9zdF9saW5lID0gJycKKy0gICAgICAg IHNlbGYuYWNhdHNfcHJlbWFibGUgPSAnJworLSAgICAgICAgIyBQaWVjZXMgb2YgdGV4dCB0byB3 cml0ZSBhdCB0aGUgZW5kIG9mIHRoZSBvdXRwdXQuCistICAgICAgICAjIGVuZF9saW5lIGlzIGxp a2Ugc3RhcnRfbGluZSBidXQgZm9yIHRoZSAncnVudGVzdCBjb21wbGV0ZWQnIGxpbmUuCistICAg ICAgICBzZWxmLmFjYXRzX2ZhaWx1cmVzID0gW10KKy0gICAgICAgIHNlbGYudmVyc2lvbl9vdXRw dXQgPSAnJworLSAgICAgICAgc2VsZi5lbmRfbGluZSA9IE5vbmUKKy0gICAgICAgICMgS25vd24g c3VtbWFyeSB0eXBlcy4KKy0gICAgICAgIHNlbGYuY291bnRfbmFtZXMgPSBbCistICAgICAgICAg ICAgJyMgb2YgZXhwZWN0ZWQgcGFzc2VzXHRcdCcsCistICAgICAgICAgICAgJyMgb2YgdW5leHBl Y3RlZCBmYWlsdXJlc1x0JywKKy0gICAgICAgICAgICAnIyBvZiB1bmV4cGVjdGVkIHN1Y2Nlc3Nl c1x0JywKKy0gICAgICAgICAgICAnIyBvZiBleHBlY3RlZCBmYWlsdXJlc1x0XHQnLAorLSAgICAg ICAgICAgICcjIG9mIHVua25vd24gc3VjY2Vzc2VzXHRcdCcsCistICAgICAgICAgICAgJyMgb2Yg a25vd24gZmFpbHVyZXNcdFx0JywKKy0gICAgICAgICAgICAnIyBvZiB1bnRlc3RlZCB0ZXN0Y2Fz ZXNcdFx0JywKKy0gICAgICAgICAgICAnIyBvZiB1bnJlc29sdmVkIHRlc3RjYXNlc1x0JywKKy0g ICAgICAgICAgICAnIyBvZiB1bnN1cHBvcnRlZCB0ZXN0c1x0XHQnCistICAgICAgICBdCistICAg ICAgICBzZWxmLnJ1bnMgPSBkaWN0KCkKKy0KKy0gICAgZGVmIHVzYWdlIChzZWxmKToKKy0gICAg ICAgIG5hbWUgPSBzeXMuYXJndlswXQorLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSAoJ1VzYWdl OiAnICsgbmFtZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnJycgWy10IHRvb2xdIFst bCB2YXJpYW50LWxpc3RdIFstTF0gbG9nLW9yLXN1bS1maWxlIC4uLgorLQorLSAgICB0b29sICAg ICAgICAgICBUaGUgdG9vbCAoZS5nLiBnKyssIGxpYmZmaSkgZm9yIHdoaWNoIHRvIGNyZWF0ZSBh CistICAgICAgICAgICAgICAgICAgIG5ldyB0ZXN0IHN1bW1hcnkgZmlsZS4gIElmIG5vdCBzcGVj aWZpZWQgdGhlbiBvdXRwdXQKKy0gICAgICAgICAgICAgICAgICAgaXMgY3JlYXRlZCBmb3IgYWxs IHRvb2xzLgorLSAgICB2YXJpYW50LWxpc3QgICBPbmUgb3IgbW9yZSB0ZXN0IHZhcmlhbnQgbmFt ZXMuICBJZiB0aGUgbGlzdCBpcworLSAgICAgICAgICAgICAgICAgICBub3Qgc3BlY2lmaWVkIHRo ZW4gb25lIGlzIGNvbnN0cnVjdGVkIGZyb20gYWxsCistICAgICAgICAgICAgICAgICAgIHZhcmlh bnRzIGluIHRoZSBmaWxlcyBmb3IgPHRvb2w+LgorLSAgICBzdW0tZmlsZSAgICAgICBBIHRlc3Qg c3VtbWFyeSBmaWxlIHdpdGggdGhlIGZvcm1hdCBvZiB0aG9zZQorLSAgICAgICAgICAgICAgICAg ICBjcmVhdGVkIGJ5IHJ1bnRlc3QgZnJvbSBEZWphR251LgorLSAgICBJZiAtTCBpcyB1c2VkLCBt ZXJnZSAqLmxvZyBmaWxlcyBpbnN0ZWFkIG9mICouc3VtLiAgSW4gdGhpcworLSAgICBtb2RlIHRo ZSBleGFjdCBvcmRlciBvZiBsaW5lcyBtYXkgbm90IGJlIHByZXNlcnZlZCwganVzdCBkaWZmZXJl bnQKKy0gICAgUnVubmluZyAqLmV4cCBjaHVua3Mgc2hvdWxkIGJlIGluIGNvcnJlY3Qgb3JkZXIu CistJycnKQorLSAgICAgICAgc3lzLmV4aXQgKDEpCistCistICAgIGRlZiBmYXRhbCAoc2VsZiwg d2hhdCwgc3RyaW5nKToKKy0gICAgICAgIGlmIG5vdCB3aGF0OgorLSAgICAgICAgICAgIHdoYXQg PSBzeXMuYXJndlswXQorLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSAod2hhdCArICc6ICcgKyBz dHJpbmcgKyAnXG4nKQorLSAgICAgICAgc3lzLmV4aXQgKDEpCistCistICAgICMgUGFyc2UgdGhl IGNvbW1hbmQtbGluZSBhcmd1bWVudHMuCistICAgIGRlZiBwYXJzZV9jbWRsaW5lIChzZWxmKToK Ky0gICAgICAgIHRyeToKKy0gICAgICAgICAgICAob3B0aW9ucywgc2VsZi5maWxlcykgPSBnZXRv cHQuZ2V0b3B0IChzeXMuYXJndlsxOl0sICdsOnQ6TCcpCistICAgICAgICAgICAgaWYgbGVuIChz ZWxmLmZpbGVzKSA9PSAwOgorLSAgICAgICAgICAgICAgICBzZWxmLnVzYWdlKCkKKy0gICAgICAg ICAgICBmb3IgKG9wdGlvbiwgdmFsdWUpIGluIG9wdGlvbnM6CistICAgICAgICAgICAgICAgIGlm IG9wdGlvbiA9PSAnLWwnOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi52YXJpYXRpb25zLmFw cGVuZCAodmFsdWUpCistICAgICAgICAgICAgICAgIGVsaWYgb3B0aW9uID09ICctdCc6CistICAg ICAgICAgICAgICAgICAgICBzZWxmLnRvb2xzLmFwcGVuZCAodmFsdWUpCistICAgICAgICAgICAg ICAgIGVsc2U6CistICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX3N1bSA9IEZhbHNlCistICAg ICAgICBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yIGFzIGU6CistICAgICAgICAgICAgc2VsZi5m YXRhbCAoTm9uZSwgZS5tc2cpCistCistICAgICMgVHJ5IHRvIHBhcnNlIHRpbWUgc3RyaW5nIFRJ TUUsIHJldHVybmluZyBhbiBhcmJpdHJhcnkgdGltZSBvbiBmYWlsdXJlLgorLSAgICAjIEdldHRp bmcgdGhpcyByaWdodCBpcyBqdXN0IGEgbmljZS10by1oYXZlIHNvIGZhaWx1cmVzIHNob3VsZCBi ZSBzaWxlbnQuCistICAgIGRlZiBwYXJzZV90aW1lIChzZWxmLCB0aW1lKToKKy0gICAgICAgIHRy eToKKy0gICAgICAgICAgICByZXR1cm4gZGF0ZXRpbWUuc3RycHRpbWUgKHRpbWUsICclYycpCist ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKy0gICAgICAgICAgICByZXR1cm4gZGF0ZXRpbWUu bm93KCkKKy0KKy0gICAgIyBQYXJzZSBhbiBpbnRlZ2VyIGFuZCBhYm9ydCBvbiBmYWlsdXJlLgor LSAgICBkZWYgcGFyc2VfaW50IChzZWxmLCBmaWxlbmFtZSwgdmFsdWUpOgorLSAgICAgICAgdHJ5 OgorLSAgICAgICAgICAgIHJldHVybiBpbnQgKHZhbHVlKQorLSAgICAgICAgZXhjZXB0IFZhbHVl RXJyb3I6CistICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBhbiBp bnRlZ2VyLCBnb3Q6ICcgKyB2YWx1ZSkKKy0KKy0gICAgIyBSZXR1cm4gYSBsaXN0IHRoYXQgcmVw cmVzZW50cyBubyB0ZXN0IHJlc3VsdHMuCistICAgIGRlZiB6ZXJvX2NvdW50cyAoc2VsZik6Cist ICAgICAgICByZXR1cm4gWzAgZm9yIHggaW4gc2VsZi5jb3VudF9uYW1lc10KKy0KKy0gICAgIyBS ZXR1cm4gdGhlIFRvb2xSdW4gZm9yIHRvb2wgTkFNRS4KKy0gICAgZGVmIGdldF90b29sIChzZWxm LCBuYW1lKToKKy0gICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYucnVuczoKKy0gICAgICAgICAg ICBzZWxmLnJ1bnNbbmFtZV0gPSBUb29sUnVuIChuYW1lKQorLSAgICAgICAgcmV0dXJuIHNlbGYu cnVuc1tuYW1lXQorLQorLSAgICAjIEFkZCB0aGUgcmVzdWx0IGNvdW50cyBpbiBsaXN0IEZST01D IHRvIFRPQy4KKy0gICAgZGVmIGFjY3VtdWxhdGVfY291bnRzIChzZWxmLCB0b2MsIGZyb21jKToK Ky0gICAgICAgIGZvciBpIGluIHJhbmdlIChsZW4gKHNlbGYuY291bnRfbmFtZXMpKToKKy0gICAg ICAgICAgICB0b2NbaV0gKz0gZnJvbWNbaV0KKy0KKy0gICAgIyBQYXJzZSB0aGUgbGlzdCBvZiB2 YXJpYXRpb25zIGFmdGVyICdTY2hlZHVsZSBvZiB2YXJpYXRpb25zOicuCistICAgICMgUmV0dXJu IHRoZSBudW1iZXIgc2Vlbi4KKy0gICAgZGVmIHBhcnNlX3ZhcmlhdGlvbnMgKHNlbGYsIGZpbGVu YW1lLCBmaWxlKToKKy0gICAgICAgIG51bV92YXJpYXRpb25zID0gMAorLSAgICAgICAgd2hpbGUg VHJ1ZToKKy0gICAgICAgICAgICBsaW5lID0gZmlsZS5yZWFkbGluZSgpCistICAgICAgICAgICAg aWYgbGluZSA9PSAnJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdj b3VsZCBub3QgcGFyc2UgdmFyaWF0aW9uIGxpc3QnKQorLSAgICAgICAgICAgIGlmIGxpbmUgPT0g J1xuJzoKKy0gICAgICAgICAgICAgICAgYnJlYWsKKy0gICAgICAgICAgICBzZWxmLmtub3duX3Zh cmlhdGlvbnMuYWRkIChsaW5lLnN0cmlwKCkpCistICAgICAgICAgICAgbnVtX3ZhcmlhdGlvbnMg Kz0gMQorLSAgICAgICAgcmV0dXJuIG51bV92YXJpYXRpb25zCistCistICAgICMgUGFyc2UgZnJv bSB0aGUgZmlyc3QgbGluZSBhZnRlciAnUnVubmluZyB0YXJnZXQgLi4uJyB0byB0aGUgZW5kCist ICAgICMgb2YgdGhlIHJ1bidzIHN1bW1hcnkuCistICAgIGRlZiBwYXJzZV9ydW4gKHNlbGYsIGZp bGVuYW1lLCBmaWxlLCB0b29sLCB2YXJpYXRpb24sIG51bV92YXJpYXRpb25zKToKKy0gICAgICAg IGhlYWRlciA9IE5vbmUKKy0gICAgICAgIGhhcm5lc3MgPSBOb25lCistICAgICAgICBzZWdtZW50 ID0gTm9uZQorLSAgICAgICAgZmluYWxfdXNpbmcgPSAwCistCistICAgICAgICAjIElmIHRoaXMg aXMgdGhlIGZpcnN0IHJ1biBmb3IgdGhpcyB2YXJpYXRpb24sIGFkZCBhbnkgdGV4dCBiZWZvcmUK Ky0gICAgICAgICMgdGhlIGZpcnN0IGhhcm5lc3MgdG8gdGhlIGhlYWRlci4KKy0gICAgICAgIGlm IG5vdCB2YXJpYXRpb24uaGVhZGVyOgorLSAgICAgICAgICAgIHNlZ21lbnQgPSBTZWdtZW50IChm aWxlbmFtZSwgZmlsZS50ZWxsKCkpCistICAgICAgICAgICAgdmFyaWF0aW9uLmhlYWRlciA9IHNl Z21lbnQKKy0KKy0gICAgICAgICMgUGFyc2UgdXAgdW50aWwgdGhlIGZpcnN0IGxpbmUgb2YgdGhl IHN1bW1hcnkuCistICAgICAgICBpZiBudW1fdmFyaWF0aW9ucyA9PSAxOgorLSAgICAgICAgICAg IGVuZCA9ICdcdFx0PT09ICcgKyB0b29sLm5hbWUgKyAnIFN1bW1hcnkgPT09XG4nCistICAgICAg ICBlbHNlOgorLSAgICAgICAgICAgIGVuZCA9ICgnXHRcdD09PSAnICsgdG9vbC5uYW1lICsgJyBT dW1tYXJ5IGZvciAnCistICAgICAgICAgICAgICAgICAgICsgdmFyaWF0aW9uLm5hbWUgKyAnID09 PVxuJykKKy0gICAgICAgIHdoaWxlIFRydWU6CistICAgICAgICAgICAgbGluZSA9IGZpbGUucmVh ZGxpbmUoKQorLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJyc6CistICAgICAgICAgICAgICAgIHNl bGYuZmF0YWwgKGZpbGVuYW1lLCAnbm8gcmVjb2duaXNlZCBzdW1tYXJ5IGxpbmUnKQorLSAgICAg ICAgICAgIGlmIGxpbmUgPT0gZW5kOgorLSAgICAgICAgICAgICAgICBicmVhaworLQorLSAgICAg ICAgICAgICMgTG9vayBmb3IgdGhlIHN0YXJ0IG9mIGEgbmV3IGhhcm5lc3MuCistICAgICAgICAg ICAgaWYgbGluZS5zdGFydHN3aXRoICgnUnVubmluZyAnKSBhbmQgbGluZS5lbmRzd2l0aCAoJyAu Li5cbicpOgorLSAgICAgICAgICAgICAgICAjIENsb3NlIG9mZiB0aGUgY3VycmVudCBoYXJuZXNz IHNlZ21lbnQsIGlmIGFueS4KKy0gICAgICAgICAgICAgICAgaWYgaGFybmVzczoKKy0gICAgICAg ICAgICAgICAgICAgIHNlZ21lbnQubGluZXMgLT0gZmluYWxfdXNpbmcKKy0gICAgICAgICAgICAg ICAgICAgIGhhcm5lc3MuYWRkX3NlZ21lbnQgKGZpcnN0X2tleSwgc2VnbWVudCkKKy0gICAgICAg ICAgICAgICAgbmFtZSA9IGxpbmVbbGVuICgnUnVubmluZyAnKTotbGVuKCcgLi4uXG4nKV0KKy0g ICAgICAgICAgICAgICAgaGFybmVzcyA9IHZhcmlhdGlvbi5nZXRfaGFybmVzcyAobmFtZSkKKy0g ICAgICAgICAgICAgICAgc2VnbWVudCA9IFNlZ21lbnQgKGZpbGVuYW1lLCBmaWxlLnRlbGwoKSkK Ky0gICAgICAgICAgICAgICAgZmlyc3Rfa2V5ID0gTm9uZQorLSAgICAgICAgICAgICAgICBmaW5h bF91c2luZyA9IDAKKy0gICAgICAgICAgICAgICAgY29udGludWUKKy0KKy0gICAgICAgICAgICAj IFJlY29yZCB0ZXN0IHJlc3VsdHMuICBBc3NvY2lhdGUgdGhlIGZpcnN0IHRlc3QgcmVzdWx0IHdp dGgKKy0gICAgICAgICAgICAjIHRoZSBoYXJuZXNzIHNlZ21lbnQsIHNvIHRoYXQgaWYgYSBydW4g Zm9yIGEgcGFydGljdWxhciBoYXJuZXNzCistICAgICAgICAgICAgIyBoYXMgYmVlbiBzcGxpdCB1 cCwgd2UgY2FuIHJlYXNzZW1ibGUgdGhlIGluZGl2aWR1YWwgc2VnbWVudHMKKy0gICAgICAgICAg ICAjIGluIGEgc2Vuc2libGUgb3JkZXIuCistICAgICAgICAgICAgIworLSAgICAgICAgICAgICMg ZGVqYWdudSBzb21ldGltZXMgaXNzdWVzIHdhcm5pbmdzIGFib3V0IHRoZSB0ZXN0aW5nIGVudmly b25tZW50CistICAgICAgICAgICAgIyBiZWZvcmUgcnVubmluZyBhbnkgdGVzdHMuICBUcmVhdCB0 aGVtIGFzIHBhcnQgb2YgdGhlIGhlYWRlcgorLSAgICAgICAgICAgICMgcmF0aGVyIHRoYW4gYXMg YSB0ZXN0IHJlc3VsdC4KKy0gICAgICAgICAgICBtYXRjaCA9IHNlbGYucmVzdWx0X3JlLm1hdGNo IChsaW5lKQorLSAgICAgICAgICAgIGlmIG1hdGNoIGFuZCAoaGFybmVzcyBvciBub3QgbGluZS5z dGFydHN3aXRoICgnV0FSTklORzonKSk6CistICAgICAgICAgICAgICAgIGlmIG5vdCBoYXJuZXNz OgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdzYXcgdGVzdCBy ZXN1bHQgYmVmb3JlIGhhcm5lc3MgbmFtZScpCistICAgICAgICAgICAgICAgIG5hbWUgPSBtYXRj aC5ncm91cCAoMikKKy0gICAgICAgICAgICAgICAgIyBVZ2x5IGhhY2sgdG8gZ2V0IHRoZSByaWdo dCBvcmRlciBmb3IgZ2ZvcnRyYW4uCistICAgICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0 aCAoJ2dmb3J0cmFuLmRnL2c3Ny8nKToKKy0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnaCcg KyBuYW1lCistICAgICAgICAgICAgICAgIGtleSA9IChuYW1lLCBsZW4gKGhhcm5lc3MucmVzdWx0 cykpCistICAgICAgICAgICAgICAgIGhhcm5lc3MucmVzdWx0cy5hcHBlbmQgKChrZXksIGxpbmUp KQorLSAgICAgICAgICAgICAgICBpZiBub3QgZmlyc3Rfa2V5IGFuZCBzb3J0X2xvZ3M6CistICAg ICAgICAgICAgICAgICAgICBmaXJzdF9rZXkgPSBrZXkKKy0KKy0gICAgICAgICAgICAjICdVc2lu ZyAuLi4nIGxpbmVzIGFyZSBvbmx5IGludGVyZXN0aW5nIGluIGEgaGVhZGVyLiAgU3BsaXR0aW5n CistICAgICAgICAgICAgIyB0aGUgdGVzdCB1cCBpbnRvIHBhcmFsbGVsIHJ1bnMgbGVhZHMgdG8g bW9yZSAnVXNpbmcgLi4uJyBsaW5lcworLSAgICAgICAgICAgICMgdGhhbiB0aGVyZSB3b3VsZCBi ZSBpbiBhIHNpbmdsZSBsb2cuCistICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoICgnVXNp bmcgJyk6CistICAgICAgICAgICAgICAgIGZpbmFsX3VzaW5nICs9IDEKKy0gICAgICAgICAgICBl bHNlOgorLSAgICAgICAgICAgICAgICBmaW5hbF91c2luZyA9IDAKKy0KKy0gICAgICAgICAgICAj IEFkZCBvdGhlciB0ZXh0IHRvIHRoZSBjdXJyZW50IHNlZ21lbnQsIGlmIGFueS4KKy0gICAgICAg ICAgICBpZiBzZWdtZW50OgorLSAgICAgICAgICAgICAgICBzZWdtZW50LmxpbmVzICs9IDEKKy0K Ky0gICAgICAgICMgQ2xvc2Ugb2ZmIHRoZSBmaW5hbCBoYXJuZXNzIHNlZ21lbnQsIGlmIGFueS4K Ky0gICAgICAgIGlmIGhhcm5lc3M6CistICAgICAgICAgICAgc2VnbWVudC5saW5lcyAtPSBmaW5h bF91c2luZworLSAgICAgICAgICAgIGhhcm5lc3MuYWRkX3NlZ21lbnQgKGZpcnN0X2tleSwgc2Vn bWVudCkKKy0KKy0gICAgICAgICMgUGFyc2UgdGhlIHJlc3Qgb2YgdGhlIHN1bW1hcnkgKHRoZSAn IyBvZiAnIGxpbmVzKS4KKy0gICAgICAgIGlmIGxlbiAodmFyaWF0aW9uLmNvdW50cykgPT0gMDoK Ky0gICAgICAgICAgICB2YXJpYXRpb24uY291bnRzID0gc2VsZi56ZXJvX2NvdW50cygpCistICAg ICAgICB3aGlsZSBUcnVlOgorLSAgICAgICAgICAgIGJlZm9yZSA9IGZpbGUudGVsbCgpCistICAg ICAgICAgICAgbGluZSA9IGZpbGUucmVhZGxpbmUoKQorLSAgICAgICAgICAgIGlmIGxpbmUgPT0g Jyc6CistICAgICAgICAgICAgICAgIGJyZWFrCistICAgICAgICAgICAgaWYgbGluZSA9PSAnXG4n OgorLSAgICAgICAgICAgICAgICBjb250aW51ZQorLSAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0 YXJ0c3dpdGggKCcjICcpOgorLSAgICAgICAgICAgICAgICBmaWxlLnNlZWsgKGJlZm9yZSkKKy0g ICAgICAgICAgICAgICAgYnJlYWsKKy0gICAgICAgICAgICBmb3VuZCA9IEZhbHNlCistICAgICAg ICAgICAgZm9yIGkgaW4gcmFuZ2UgKGxlbiAoc2VsZi5jb3VudF9uYW1lcykpOgorLSAgICAgICAg ICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKHNlbGYuY291bnRfbmFtZXNbaV0pOgorLSAgICAg ICAgICAgICAgICAgICAgY291bnQgPSBsaW5lW2xlbiAoc2VsZi5jb3VudF9uYW1lc1tpXSk6LTFd LnN0cmlwKCkKKy0gICAgICAgICAgICAgICAgICAgIHZhcmlhdGlvbi5jb3VudHNbaV0gKz0gc2Vs Zi5wYXJzZV9pbnQgKGZpbGVuYW1lLCBjb3VudCkKKy0gICAgICAgICAgICAgICAgICAgIGZvdW5k ID0gVHJ1ZQorLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKKy0gICAgICAgICAgICBpZiBub3Qg Zm91bmQ6CistICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKGZpbGVuYW1lLCAndW5rbm93biB0 ZXN0IHJlc3VsdDogJyArIGxpbmVbOi0xXSkKKy0KKy0gICAgIyBQYXJzZSBhbiBhY2F0cyBydW4s IHdoaWNoIHVzZXMgYSBkaWZmZXJlbnQgZm9ybWF0IGZyb20gZGVqYWdudS4KKy0gICAgIyBXZSBo YXZlIGp1c3Qgc2tpcHBlZCBvdmVyICc9PT0gYWNhdHMgY29uZmlndXJhdGlvbiA9PT0nLgorLSAg ICBkZWYgcGFyc2VfYWNhdHNfcnVuIChzZWxmLCBmaWxlbmFtZSwgZmlsZSk6CistICAgICAgICAj IFBhcnNlIHRoZSBwcmVhbWJsZSwgd2hpY2ggZGVzY3JpYmVzIHRoZSBjb25maWd1cmF0aW9uIGFu ZCBsb2dzCistICAgICAgICAjIHRoZSBjcmVhdGlvbiBvZiBzdXBwb3J0IGZpbGVzLgorLSAgICAg ICAgcmVjb3JkID0gKHNlbGYuYWNhdHNfcHJlbWFibGUgPT0gJycpCistICAgICAgICBpZiByZWNv cmQ6CistICAgICAgICAgICAgc2VsZi5hY2F0c19wcmVtYWJsZSA9ICdcdFx0PT09IGFjYXRzIGNv bmZpZ3VyYXRpb24gPT09XG4nCistICAgICAgICB3aGlsZSBUcnVlOgorLSAgICAgICAgICAgIGxp bmUgPSBmaWxlLnJlYWRsaW5lKCkKKy0gICAgICAgICAgICBpZiBsaW5lID09ICcnOgorLSAgICAg ICAgICAgICAgICBzZWxmLmZhdGFsIChmaWxlbmFtZSwgJ2NvdWxkIG5vdCBwYXJzZSBhY2F0cyBw cmVhbWJsZScpCistICAgICAgICAgICAgaWYgbGluZSA9PSAnXHRcdD09PSBhY2F0cyB0ZXN0cyA9 PT1cbic6CistICAgICAgICAgICAgICAgIGJyZWFrCistICAgICAgICAgICAgaWYgcmVjb3JkOgor LSAgICAgICAgICAgICAgICBzZWxmLmFjYXRzX3ByZW1hYmxlICs9IGxpbmUKKy0KKy0gICAgICAg ICMgUGFyc2UgdGhlIHRlc3QgcmVzdWx0cyB0aGVtc2VsdmVzLCB1c2luZyBhIGR1bW15IHZhcmlh dGlvbiBuYW1lLgorLSAgICAgICAgdG9vbCA9IHNlbGYuZ2V0X3Rvb2wgKCdhY2F0cycpCistICAg ICAgICB2YXJpYXRpb24gPSB0b29sLmdldF92YXJpYXRpb24gKCdub25lJykKKy0gICAgICAgIHNl bGYucGFyc2VfcnVuIChmaWxlbmFtZSwgZmlsZSwgdG9vbCwgdmFyaWF0aW9uLCAxKQorLQorLSAg ICAgICAgIyBQYXJzZSB0aGUgZmFpbHVyZSBsaXN0LgorLSAgICAgICAgd2hpbGUgVHJ1ZToKKy0g ICAgICAgICAgICBiZWZvcmUgPSBmaWxlLnRlbGwoKQorLSAgICAgICAgICAgIGxpbmUgPSBmaWxl LnJlYWRsaW5lKCkKKy0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCcqKiogRkFJTFVS RVM6ICcpOgorLSAgICAgICAgICAgICAgICBzZWxmLmFjYXRzX2ZhaWx1cmVzLmFwcGVuZCAobGlu ZVtsZW4gKCcqKiogRkFJTFVSRVM6ICcpOi0xXSkKKy0gICAgICAgICAgICAgICAgY29udGludWUK Ky0gICAgICAgICAgICBmaWxlLnNlZWsgKGJlZm9yZSkKKy0gICAgICAgICAgICBicmVhaworLQor LSAgICAjIFBhcnNlIHRoZSBmaW5hbCBzdW1tYXJ5IGF0IHRoZSBlbmQgb2YgYSBsb2cgaW4gb3Jk ZXIgdG8gY2FwdHVyZQorLSAgICAjIHRoZSB2ZXJzaW9uIG91dHB1dCB0aGF0IGZvbGxvd3MgaXQu CistICAgIGRlZiBwYXJzZV9maW5hbF9zdW1tYXJ5IChzZWxmLCBmaWxlbmFtZSwgZmlsZSk6Cist ICAgICAgICByZWNvcmQgPSAoc2VsZi52ZXJzaW9uX291dHB1dCA9PSAnJykKKy0gICAgICAgIHdo aWxlIFRydWU6CistICAgICAgICAgICAgbGluZSA9IGZpbGUucmVhZGxpbmUoKQorLSAgICAgICAg ICAgIGlmIGxpbmUgPT0gJyc6CistICAgICAgICAgICAgICAgIGJyZWFrCistICAgICAgICAgICAg aWYgbGluZS5zdGFydHN3aXRoICgnIyBvZiAnKToKKy0gICAgICAgICAgICAgICAgY29udGludWUK Ky0gICAgICAgICAgICBpZiByZWNvcmQ6CistICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbl9v dXRwdXQgKz0gbGluZQorLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJ1xuJzoKKy0gICAgICAgICAg ICAgICAgYnJlYWsKKy0KKy0gICAgIyBQYXJzZSBhIC5sb2cgb3IgLnN1bSBmaWxlLgorLSAgICBk ZWYgcGFyc2VfZmlsZSAoc2VsZiwgZmlsZW5hbWUsIGZpbGUpOgorLSAgICAgICAgdG9vbCA9IE5v bmUKKy0gICAgICAgIHRhcmdldCA9IE5vbmUKKy0gICAgICAgIG51bV92YXJpYXRpb25zID0gMQor LSAgICAgICAgd2hpbGUgVHJ1ZToKKy0gICAgICAgICAgICBsaW5lID0gZmlsZS5yZWFkbGluZSgp CistICAgICAgICAgICAgaWYgbGluZSA9PSAnJzoKKy0gICAgICAgICAgICAgICAgcmV0dXJuCist CistICAgICAgICAgICAgIyBQYXJzZSB0aGUgbGlzdCBvZiB2YXJpYXRpb25zLCB3aGljaCBjb21l cyBiZWZvcmUgdGhlIHRlc3QKKy0gICAgICAgICAgICAjIHJ1bnMgdGhlbXNlbHZlcy4KKy0gICAg ICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCdTY2hlZHVsZSBvZiB2YXJpYXRpb25zOicpOgor LSAgICAgICAgICAgICAgICBudW1fdmFyaWF0aW9ucyA9IHNlbGYucGFyc2VfdmFyaWF0aW9ucyAo ZmlsZW5hbWUsIGZpbGUpCistICAgICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAgICAg ICAgIyBQYXJzZSBhIHRlc3RzdWl0ZSBydW4gZm9yIG9uZSB0b29sL3ZhcmlhdGlvbiBjb21iaW5h dGlvbi4KKy0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCdSdW5uaW5nIHRhcmdldCAn KToKKy0gICAgICAgICAgICAgICAgbmFtZSA9IGxpbmVbbGVuICgnUnVubmluZyB0YXJnZXQgJyk6 LTFdCistICAgICAgICAgICAgICAgIGlmIG5vdCB0b29sOgorLSAgICAgICAgICAgICAgICAgICAg c2VsZi5mYXRhbCAoZmlsZW5hbWUsICdjb3VsZCBub3QgcGFyc2UgdG9vbCBuYW1lJykKKy0gICAg ICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5rbm93bl92YXJpYXRpb25zOgorLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICd1bmtub3duIHRhcmdldDogJyAr IG5hbWUpCistICAgICAgICAgICAgICAgIHNlbGYucGFyc2VfcnVuIChmaWxlbmFtZSwgZmlsZSwg dG9vbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2wuZ2V0X3ZhcmlhdGlv biAobmFtZSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fdmFyaWF0aW9u cykKKy0gICAgICAgICAgICAgICAgIyBJZiB0aGVyZSBpcyBvbmx5IG9uZSB2YXJpYXRpb24gdGhl biB0aGVyZSBpcyBubyBzZXBhcmF0ZQorLSAgICAgICAgICAgICAgICAjIHN1bW1hcnkgZm9yIGl0 LiAgUmVjb3JkIGFueSBmb2xsb3dpbmcgdmVyc2lvbiBvdXRwdXQuCistICAgICAgICAgICAgICAg IGlmIG51bV92YXJpYXRpb25zID09IDE6CistICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcnNl X2ZpbmFsX3N1bW1hcnkgKGZpbGVuYW1lLCBmaWxlKQorLSAgICAgICAgICAgICAgICBjb250aW51 ZQorLQorLSAgICAgICAgICAgICMgUGFyc2UgdGhlIHN0YXJ0IGxpbmUuICBJbiB0aGUgY2FzZSB3 aGVyZSBzZXZlcmFsIGZpbGVzIGFyZSBiZWluZworLSAgICAgICAgICAgICMgcGFyc2VkLCBwaWNr IHRoZSBvbmUgd2l0aCB0aGUgZWFybGllc3QgdGltZS4KKy0gICAgICAgICAgICBtYXRjaCA9IHNl bGYudGVzdF9ydW5fcmUubWF0Y2ggKGxpbmUpCistICAgICAgICAgICAgaWYgbWF0Y2g6CistICAg ICAgICAgICAgICAgIHRpbWUgPSBzZWxmLnBhcnNlX3RpbWUgKG1hdGNoLmdyb3VwICgyKSkKKy0g ICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuc3RhcnRfbGluZSBvciBzZWxmLnN0YXJ0X2xpbmVb MF0gPiB0aW1lOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGFydF9saW5lID0gKHRpbWUs IGxpbmUpCistICAgICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAgICAgICAgIyBQYXJz ZSB0aGUgZm9ybSB1c2VkIGZvciBuYXRpdmUgdGVzdGluZy4KKy0gICAgICAgICAgICBpZiBsaW5l LnN0YXJ0c3dpdGggKCdOYXRpdmUgY29uZmlndXJhdGlvbiBpcyAnKToKKy0gICAgICAgICAgICAg ICAgc2VsZi5uYXRpdmVfbGluZSA9IGxpbmUKKy0gICAgICAgICAgICAgICAgY29udGludWUKKy0K Ky0gICAgICAgICAgICAjIFBhcnNlIHRoZSB0YXJnZXQgdHJpcGxldC4KKy0gICAgICAgICAgICBp ZiBsaW5lLnN0YXJ0c3dpdGggKCdUYXJnZXQgaXMgJyk6CistICAgICAgICAgICAgICAgIHNlbGYu dGFyZ2V0X2xpbmUgPSBsaW5lCistICAgICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAg ICAgICAgIyBQYXJzZSB0aGUgaG9zdCB0cmlwbGV0LgorLSAgICAgICAgICAgIGlmIGxpbmUuc3Rh cnRzd2l0aCAoJ0hvc3QgICBpcyAnKToKKy0gICAgICAgICAgICAgICAgc2VsZi5ob3N0X2xpbmUg PSBsaW5lCistICAgICAgICAgICAgICAgIGNvbnRpbnVlCistCistICAgICAgICAgICAgIyBQYXJz ZSB0aGUgYWNhdHMgcHJlbWFibGUuCistICAgICAgICAgICAgaWYgbGluZSA9PSAnXHRcdD09PSBh Y2F0cyBjb25maWd1cmF0aW9uID09PVxuJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9h Y2F0c19ydW4gKGZpbGVuYW1lLCBmaWxlKQorLSAgICAgICAgICAgICAgICBjb250aW51ZQorLQor LSAgICAgICAgICAgICMgUGFyc2UgdGhlIHRvb2wgbmFtZS4KKy0gICAgICAgICAgICBtYXRjaCA9 IHNlbGYudG9vbF9yZS5tYXRjaCAobGluZSkKKy0gICAgICAgICAgICBpZiBtYXRjaDoKKy0gICAg ICAgICAgICAgICAgdG9vbCA9IHNlbGYuZ2V0X3Rvb2wgKG1hdGNoLmdyb3VwICgxKSkKKy0gICAg ICAgICAgICAgICAgY29udGludWUKKy0KKy0gICAgICAgICAgICAjIFNraXAgb3ZlciB0aGUgZmlu YWwgc3VtbWFyeSAod2hpY2ggd2UgaW5zdGVhZCBjcmVhdGUgZnJvbQorLSAgICAgICAgICAgICMg aW5kaXZpZHVhbCBydW5zKSBhbmQgcGFyc2UgdGhlIHZlcnNpb24gb3V0cHV0LgorLSAgICAgICAg ICAgIGlmIHRvb2wgYW5kIGxpbmUgPT0gJ1x0XHQ9PT0gJyArIHRvb2wubmFtZSArICcgU3VtbWFy eSA9PT1cbic6CistICAgICAgICAgICAgICAgIGlmIGZpbGUucmVhZGxpbmUoKSAhPSAnXG4nOgor LSAgICAgICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBibGFu ayBsaW5lIGFmdGVyIHN1bW1hcnknKQorLSAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX2ZpbmFs X3N1bW1hcnkgKGZpbGVuYW1lLCBmaWxlKQorLSAgICAgICAgICAgICAgICBjb250aW51ZQorLQor LSAgICAgICAgICAgICMgUGFyc2UgdGhlIGNvbXBsZXRpb24gbGluZS4gIEluIHRoZSBjYXNlIHdo ZXJlIHNldmVyYWwgZmlsZXMKKy0gICAgICAgICAgICAjIGFyZSBiZWluZyBwYXJzZWQsIHBpY2sg dGhlIG9uZSB3aXRoIHRoZSBsYXRlc3QgdGltZS4KKy0gICAgICAgICAgICBtYXRjaCA9IHNlbGYu Y29tcGxldGVkX3JlLm1hdGNoIChsaW5lKQorLSAgICAgICAgICAgIGlmIG1hdGNoOgorLSAgICAg ICAgICAgICAgICB0aW1lID0gc2VsZi5wYXJzZV90aW1lIChtYXRjaC5ncm91cCAoMSkpCistICAg ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmVuZF9saW5lIG9yIHNlbGYuZW5kX2xpbmVbMF0gPCB0 aW1lOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5lbmRfbGluZSA9ICh0aW1lLCBsaW5lKQor LSAgICAgICAgICAgICAgICBjb250aW51ZQorLQorLSAgICAgICAgICAgICMgU2FuaXR5IGNoZWNr IHRvIG1ha2Ugc3VyZSB0aGF0IGltcG9ydGFudCB0ZXh0IGRvZXNuJ3QgZ2V0CistICAgICAgICAg ICAgIyBkcm9wcGVkIGFjY2lkZW50YWxseS4KKy0gICAgICAgICAgICBpZiBzdHJpY3QgYW5kIGxp bmUuc3RyaXAoKSAhPSAnJzoKKy0gICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUs ICd1bnJlY29nbmlzZWQgbGluZTogJyArIGxpbmVbOi0xXSkKKy0KKy0gICAgIyBPdXRwdXQgYSBz ZWdtZW50IG9mIHRleHQuCistICAgIGRlZiBvdXRwdXRfc2VnbWVudCAoc2VsZiwgc2VnbWVudCk6 CistICAgICAgICB3aXRoIHNhZmVfb3BlbiAoc2VnbWVudC5maWxlbmFtZSkgYXMgZmlsZToKKy0g ICAgICAgICAgICBmaWxlLnNlZWsgKHNlZ21lbnQuc3RhcnQpCistICAgICAgICAgICAgZm9yIGkg aW4gcmFuZ2UgKHNlZ21lbnQubGluZXMpOgorLSAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0Lndy aXRlIChmaWxlLnJlYWRsaW5lKCkpCistCistICAgICMgT3V0cHV0IGEgc3VtbWFyeSBnaXZpbmcg dGhlIG51bWJlciBvZiB0aW1lcyBlYWNoIHR5cGUgb2YgcmVzdWx0IGhhcworLSAgICAjIGJlZW4g c2Vlbi4KKy0gICAgZGVmIG91dHB1dF9zdW1tYXJ5IChzZWxmLCB0b29sLCBjb3VudHMpOgorLSAg ICAgICAgZm9yIGkgaW4gcmFuZ2UgKGxlbiAoc2VsZi5jb3VudF9uYW1lcykpOgorLSAgICAgICAg ICAgIG5hbWUgPSBzZWxmLmNvdW50X25hbWVzW2ldCistICAgICAgICAgICAgIyBkZWphZ251IG9u bHkgcHJpbnRzIHJlc3VsdCB0eXBlcyB0aGF0IHdlcmUgc2VlbiBhdCBsZWFzdCBvbmNlLAorLSAg ICAgICAgICAgICMgYnV0IGFjYXRzIGFsd2F5cyBwcmludHMgYSBudW1iZXIgb2YgdW5leHBlY3Rl ZCBmYWlsdXJlcy4KKy0gICAgICAgICAgICBpZiAoY291bnRzW2ldID4gMAorLSAgICAgICAgICAg ICAgICBvciAodG9vbC5uYW1lID09ICdhY2F0cycKKy0gICAgICAgICAgICAgICAgICAgIGFuZCBu YW1lLnN0YXJ0c3dpdGggKCcjIG9mIHVuZXhwZWN0ZWQgZmFpbHVyZXMnKSkpOgorLSAgICAgICAg ICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgnJXMlZFxuJyAlIChuYW1lLCBjb3VudHNbaV0pKQor LQorLSAgICAjIE91dHB1dCB1bmlmaWVkIC5sb2cgb3IgLnN1bSBpbmZvcm1hdGlvbiBmb3IgYSBw YXJ0aWN1bGFyIHZhcmlhdGlvbiwKKy0gICAgIyB3aXRoIGEgc3VtbWFyeSBhdCB0aGUgZW5kLgor LSAgICBkZWYgb3V0cHV0X3ZhcmlhdGlvbiAoc2VsZiwgdG9vbCwgdmFyaWF0aW9uKToKKy0gICAg ICAgIHNlbGYub3V0cHV0X3NlZ21lbnQgKHZhcmlhdGlvbi5oZWFkZXIpCistICAgICAgICBmb3Ig aGFybmVzcyBpbiBzb3J0ZWQgKHZhcmlhdGlvbi5oYXJuZXNzZXMudmFsdWVzKCksCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IGF0dHJnZXR0ZXIgKCduYW1lJykpOgorLSAg ICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCdSdW5uaW5nICcgKyBoYXJuZXNzLm5hbWUgKyAn IC4uLlxuJykKKy0gICAgICAgICAgICBpZiBzZWxmLmRvX3N1bToKKy0gICAgICAgICAgICAgICAg aGFybmVzcy5yZXN1bHRzLnNvcnQoKQorLSAgICAgICAgICAgICAgICBmb3IgKGtleSwgbGluZSkg aW4gaGFybmVzcy5yZXN1bHRzOgorLSAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0 ZSAobGluZSkKKy0gICAgICAgICAgICBlbHNlOgorLSAgICAgICAgICAgICAgICAjIFJlYXJyYW5n ZSB0aGUgbG9nIHNlZ21lbnRzIGludG8gdGVzdCBvcmRlciAoYnV0IHdpdGhvdXQKKy0gICAgICAg ICAgICAgICAgIyByZWFycmFuZ2luZyB0ZXh0IHdpdGhpbiB0aG9zZSBzZWdtZW50cykuCistICAg ICAgICAgICAgICAgIGZvciBrZXkgaW4gc29ydGVkIChoYXJuZXNzLnNlZ21lbnRzLmtleXMoKSk6 CistICAgICAgICAgICAgICAgICAgICBzZWxmLm91dHB1dF9zZWdtZW50IChoYXJuZXNzLnNlZ21l bnRzW2tleV0pCistICAgICAgICAgICAgICAgIGZvciBzZWdtZW50IGluIGhhcm5lc3MuZW1wdHk6 CistICAgICAgICAgICAgICAgICAgICBzZWxmLm91dHB1dF9zZWdtZW50IChzZWdtZW50KQorLSAg ICAgICAgaWYgbGVuIChzZWxmLnZhcmlhdGlvbnMpID4gMToKKy0gICAgICAgICAgICBzeXMuc3Rk b3V0LndyaXRlICgnXHRcdD09PSAnICsgdG9vbC5uYW1lICsgJyBTdW1tYXJ5IGZvciAnCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB2YXJpYXRpb24ubmFtZSArICcgPT09XG5cbicp CistICAgICAgICAgICAgc2VsZi5vdXRwdXRfc3VtbWFyeSAodG9vbCwgdmFyaWF0aW9uLmNvdW50 cykKKy0KKy0gICAgIyBPdXRwdXQgdW5pZmllZCAubG9nIG9yIC5zdW0gaW5mb3JtYXRpb24gZm9y IGEgcGFydGljdWxhciB0b29sLAorLSAgICAjIHdpdGggYSBzdW1tYXJ5IGF0IHRoZSBlbmQuCist ICAgIGRlZiBvdXRwdXRfdG9vbCAoc2VsZiwgdG9vbCk6CistICAgICAgICBjb3VudHMgPSBzZWxm Lnplcm9fY291bnRzKCkKKy0gICAgICAgIGlmIHRvb2wubmFtZSA9PSAnYWNhdHMnOgorLSAgICAg ICAgICAgICMgYWNhdHMgZG9lc24ndCB1c2UgdmFyaWF0aW9ucywgc28ganVzdCBvdXRwdXQgZXZl cnl0aGluZy4KKy0gICAgICAgICAgICAjIEl0IGFsc28gaGFzIGEgZGlmZmVyZW50IGFwcHJvYWNo IHRvIHdoaXRlc3BhY2UuCistICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoJ1x0XHQ9PT0g JyArIHRvb2wubmFtZSArICcgdGVzdHMgPT09XG4nKQorLSAgICAgICAgICAgIGZvciB2YXJpYXRp b24gaW4gdG9vbC52YXJpYXRpb25zLnZhbHVlcygpOgorLSAgICAgICAgICAgICAgICBzZWxmLm91 dHB1dF92YXJpYXRpb24gKHRvb2wsIHZhcmlhdGlvbikKKy0gICAgICAgICAgICAgICAgc2VsZi5h Y2N1bXVsYXRlX2NvdW50cyAoY291bnRzLCB2YXJpYXRpb24uY291bnRzKQorLSAgICAgICAgICAg IHN5cy5zdGRvdXQud3JpdGUgKCdcdFx0PT09ICcgKyB0b29sLm5hbWUgKyAnIFN1bW1hcnkgPT09 XG4nKQorLSAgICAgICAgZWxzZToKKy0gICAgICAgICAgICAjIE91dHB1dCB0aGUgcmVzdWx0cyBp biB0aGUgdXN1YWwgZGVqYWdudSBydW50ZXN0IGZvcm1hdC4KKy0gICAgICAgICAgICBzeXMuc3Rk b3V0LndyaXRlICgnXG5cdFx0PT09ICcgKyB0b29sLm5hbWUgKyAnIHRlc3RzID09PVxuXG4nCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NjaGVkdWxlIG9mIHZhcmlhdGlvbnM6XG4n KQorLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWF0aW9uczoKKy0gICAgICAgICAg ICAgICAgaWYgbmFtZSBpbiB0b29sLnZhcmlhdGlvbnM6CistICAgICAgICAgICAgICAgICAgICBz eXMuc3Rkb3V0LndyaXRlICgnICAgICcgKyBuYW1lICsgJ1xuJykKKy0gICAgICAgICAgICBzeXMu c3Rkb3V0LndyaXRlICgnXG4nKQorLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWF0 aW9uczoKKy0gICAgICAgICAgICAgICAgaWYgbmFtZSBpbiB0b29sLnZhcmlhdGlvbnM6CistICAg ICAgICAgICAgICAgICAgICB2YXJpYXRpb24gPSB0b29sLnZhcmlhdGlvbnNbbmFtZV0KKy0gICAg ICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCdSdW5uaW5nIHRhcmdldCAnCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHZhcmlhdGlvbi5uYW1lICsgJ1xu JykKKy0gICAgICAgICAgICAgICAgICAgIHNlbGYub3V0cHV0X3ZhcmlhdGlvbiAodG9vbCwgdmFy aWF0aW9uKQorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5hY2N1bXVsYXRlX2NvdW50cyAoY291 bnRzLCB2YXJpYXRpb24uY291bnRzKQorLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCdc blx0XHQ9PT0gJyArIHRvb2wubmFtZSArICcgU3VtbWFyeSA9PT1cblxuJykKKy0gICAgICAgIHNl bGYub3V0cHV0X3N1bW1hcnkgKHRvb2wsIGNvdW50cykKKy0KKy0gICAgZGVmIG1haW4gKHNlbGYp OgorLSAgICAgICAgc2VsZi5wYXJzZV9jbWRsaW5lKCkKKy0gICAgICAgIHRyeToKKy0gICAgICAg ICAgICAjIFBhcnNlIHRoZSBpbnB1dCBmaWxlcy4KKy0gICAgICAgICAgICBmb3IgZmlsZW5hbWUg aW4gc2VsZi5maWxlczoKKy0gICAgICAgICAgICAgICAgd2l0aCBzYWZlX29wZW4gKGZpbGVuYW1l KSBhcyBmaWxlOgorLSAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9maWxlIChmaWxlbmFt ZSwgZmlsZSkKKy0KKy0gICAgICAgICAgICAjIERlY2lkZSB3aGF0IHRvIG91dHB1dC4KKy0gICAg ICAgICAgICBpZiBsZW4gKHNlbGYudmFyaWF0aW9ucykgPT0gMDoKKy0gICAgICAgICAgICAgICAg c2VsZi52YXJpYXRpb25zID0gc29ydGVkIChzZWxmLmtub3duX3ZhcmlhdGlvbnMpCistICAgICAg ICAgICAgZWxzZToKKy0gICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi52YXJpYXRpb25z OgorLSAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5rbm93bl92YXJpYXRp b25zOgorLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKE5vbmUsICdubyByZXN1 bHRzIGZvciAnICsgbmFtZSkKKy0gICAgICAgICAgICBpZiBsZW4gKHNlbGYudG9vbHMpID09IDA6 CistICAgICAgICAgICAgICAgIHNlbGYudG9vbHMgPSBzb3J0ZWQgKHNlbGYucnVucy5rZXlzKCkp CistCistICAgICAgICAgICAgIyBPdXRwdXQgdGhlIGhlYWRlci4KKy0gICAgICAgICAgICBpZiBz ZWxmLnN0YXJ0X2xpbmU6CistICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYu c3RhcnRfbGluZVsxXSkKKy0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlIChzZWxmLm5hdGl2 ZV9saW5lKQorLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYudGFyZ2V0X2xpbmUp CistICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoc2VsZi5ob3N0X2xpbmUpCistICAgICAg ICAgICAgc3lzLnN0ZG91dC53cml0ZSAoc2VsZi5hY2F0c19wcmVtYWJsZSkKKy0KKy0gICAgICAg ICAgICAjIE91dHB1dCB0aGUgbWFpbiBib2R5LgorLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNl bGYudG9vbHM6CistICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYucnVuczoKKy0g ICAgICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKE5vbmUsICdubyByZXN1bHRzIGZvciAnICsg bmFtZSkKKy0gICAgICAgICAgICAgICAgc2VsZi5vdXRwdXRfdG9vbCAoc2VsZi5ydW5zW25hbWVd KQorLQorLSAgICAgICAgICAgICMgT3V0cHV0IHRoZSBmb290ZXIuCistICAgICAgICAgICAgaWYg bGVuIChzZWxmLmFjYXRzX2ZhaWx1cmVzKSA+IDA6CistICAgICAgICAgICAgICAgIHN5cy5zdGRv dXQud3JpdGUgKCcqKiogRkFJTFVSRVM6ICcKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKyAnICcuam9pbiAoc2VsZi5hY2F0c19mYWlsdXJlcykgKyAnXG4nKQorLSAgICAgICAg ICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYudmVyc2lvbl9vdXRwdXQpCistICAgICAgICAgICAg aWYgc2VsZi5lbmRfbGluZToKKy0gICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoc2Vs Zi5lbmRfbGluZVsxXSkKKy0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGU6CistICAgICAgICAg ICAgc2VsZi5mYXRhbCAoZS5maWxlbmFtZSwgZS5zdHJlcnJvcikKKy0KKy1Qcm9nKCkubWFpbigp CgpkaWZmIC0tZ2l0IGEvZ2RiLXB5LWZyYW1lLXJpcC10ZXN0LWZpeC5wYXRjaCBiL2dkYi1weS1m cmFtZS1yaXAtdGVzdC1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3 YTkzMGMuLjAwMDAwMDAKLS0tIGEvZ2RiLXB5LWZyYW1lLXJpcC10ZXN0LWZpeC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDE1LTAxL21zZzAwMTEwLmh0bWwKLVN1YmplY3Q6IFt0ZXN0c3VpdGUgcGF0Y2hd IEZpeCBuZXcgRkFJTDogcHktZnJhbWUuZXhwOiB0ZXN0IEZyYW1lLnJlYWRfcmVnaXN0ZXIocmlw KQotCi0KLS0tLzA0dzZldkc4WGxMbDNmdAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0KLWZvciB4 ODZfNjQgLW0zMiBydW4gb25lIGdldHM6Ci0KLStGQUlMOiBnZGIucHl0aG9uL3B5LWZyYW1lLmV4 cDogdGVzdCBGcmFtZS5yZWFkX3JlZ2lzdGVyKHJpcCkKLQotSSBkbyBub3QgaGF2ZSB4MzIgT1Mg aGVyZSBidXQgdGhlICVyaXAgdGVzdCBzaG91bGQgUEFTUyB0aGVyZSBJIHRoaW5rLgotCi1PSyBm b3IgY2hlY2staW4/Ci0KLVRoZSBjb2RlIGlzIHRoZXJlIHNpbmNlOgotCWNvbW1pdCA1ZjNiOTlj ZmVkMzgwM2YwYjA5OTE1MmY1NGFhYzdjYjkwYTJiOTI2Ci0JQXV0aG9yOiBTYXNoYSBTbXVuZGFr IDxhc211bmRha0Bnb29nbGUuY29tPgotCURhdGU6ICAgV2VkIFNlcCAzIDE2OjM0OjQ3IDIwMTQg LTA3MDAKLQkgICAgQWRkIHN1cHBvcnQgZm9yIHJlYWRpbmcgZnJhbWUgcmVnaXN0ZXJzIHRvIFB5 dGhvbiBBUEkuCi0KLQotSmFuCi0KLS0tLzA0dzZldkc4WGxMbDNmdAotQ29udGVudC1UeXBlOiB0 ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7 IGZpbGVuYW1lPTEKLQotZ2RiL3Rlc3RzdWl0ZS8KLTIwMTUtMDEtMDcgIEphbiBLcmF0b2Nodmls ICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZ2RiLnB5dGhvbi9weS1mcmFtZS5l eHAgKHRlc3QgRnJhbWUucmVhZF9yZWdpc3RlcihyaXApKTogVXNlCi0JaXNfYW1kNjRfcmVnc190 YXJnZXQuCi0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAotaW5kZXggYmYyZTFj ZS4uOTg0YWNmYyAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZS5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKLUBAIC0x MDYsNyArMTA2LDcgQEAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoJ3Jlc3VsdCA9ICVzJyAlIChm MC5yZWFkX3JlZ2lzdGVyKCdwYycpID09IGYwLnBjKCkpKSIgXAotICAgInRlc3QgRnJhbWUucmVh ZF9yZWdpc3RlcihwYykiCi0gCi0gIyBPbiB4ODYtNjQsIFBDIGlzIGluICRyaXAgcmVnaXN0ZXIu Ci0taWYge1tpc3RhcmdldCB4ODZfNjQtKl19IHsKLStpZiB7W2lzX2FtZDY0X3JlZ3NfdGFyZ2V0 XX0gewotICAgICBnZGJfdGVzdCAicHl0aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUgKGYwLnJl YWRfcmVnaXN0ZXIoJ3BjJykgPT0gZjAucmVhZF9yZWdpc3RlcigncmlwJykpKSIgXAotIAkiID0g VHJ1ZSIgXAotIAkidGVzdCBGcmFtZS5yZWFkX3JlZ2lzdGVyKHJpcCkiCi0KLS0tLzA0dzZldkc4 WGxMbDNmdC0tCi0KCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBh dGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAppbmRleCAyOGU2YWJjLi5m MDhmOTc4IDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisr KyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMCArNDYzLDEw IEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3Mt bWFpbi5wYXRjaAogCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwor SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2FkYS1sYW5nLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0 NDo0MS41MDgzMTg3MTcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtbGFu Zy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY0MzI2NzUyICswMTAwCistLS0gZ2RiLTcuOC45MC4y MDE1MDEyNS5vcmlnL2dkYi9hZGEtbGFuZy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODEwNDY2ODE2 ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYWRhLWxhbmcuYwkyMDE1LTAxLTI1 IDA4OjM5OjE0LjY1MDQ4MzM2OCArMDEwMAogQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHN0cnVj dCB0eXBlICpkZXNjX2JvdW5kc190eXBlIChzdAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRl c2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKik7CkBAIC02OTgsNyArNjk4LDcgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmMKICAgIGdkYl9ieXRlICpidWYgPSBhbGxv Y2EgKGxlbik7CiAgICBDT1JFX0FERFIgYWRkcjsKICAKLUBAIC02NDA1LDcgKzY0MDgsNyBAQCB2 YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAoc3RyCitAQCAtNjQzNiw3ICs2NDM5 LDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgogIAkJCQkgICAg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT1JFX0FERFIgYWRkcmVzcykKICB7CkBAIC03MDcsNyArNzA3LDcgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmMKICAgIHN0cnVjdCB0eXBlICp0YWdf dHlwZTsKICAKICAgIGlmIChmaW5kX3N0cnVjdF9maWVsZCAoIl90YWciLCB0eXBlLCAwLCAmdGFn X3R5cGUsICZ0YWdfYnl0ZV9vZmZzZXQsCi1AQCAtNjg3MCw3ICs2ODczLDcgQEAgYWRhX2luX3Zh cmlhbnQgKExPTkdFU1QgdmFsLCBzdHJ1Y3QgdHlwZQorQEAgLTY5MDEsNyArNjkwNCw3IEBAIGFk YV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwgc3RydWN0IHR5cGUKICAgICBvbmx5IGluIHRoYXQg aXQgY2FuIGhhbmRsZSBwYWNrZWQgdmFsdWVzIG9mIGFyYml0cmFyeSB0eXBlLiAgKi8KICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTcxNiw3ICs3MTYsNyBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCB0eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBAIC02ODgy LDcgKzY4ODUsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUKK0BA IC02OTEzLDcgKzY5MTYsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFs dWUKICAKICAgIGlmIChUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBmaWVsZG5vKSAhPSAw KQogICAgICB7CkBAIC03MjUsNyArNzI1LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2FkYS1sYW5nLmMKICAgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUg KGFyZ190eXBlLCBmaWVsZG5vKTsKICAKICAgICAgICByZXR1cm4gYWRhX3ZhbHVlX3ByaW1pdGl2 ZV9wYWNrZWRfdmFsIChhcmcxLCB2YWx1ZV9jb250ZW50cyAoYXJnMSksCi1AQCAtNjkwOSw5ICs2 OTEyLDkgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNjk0 MCw5ICs2OTQzLDkgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCiAg ICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIGludApA QCAtNzM3LDcgKzczNyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtbGFu Zy5jCiAgCQkgICBpbnQgKmluZGV4X3ApCiAgewogICAgaW50IGk7Ci1AQCAtNjkyOSw4ICs2OTMy LDggQEAgZmluZF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cgorQEAgLTY5NjAs OCArNjk2Myw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHIKICAK ICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAgIHsK QEAgLTc0OCw3ICs3NDgsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxh bmcuYwogICAgICAgIGNvbnN0IGNoYXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAo dHlwZSwgaSk7CiAgCiAgICAgICAgaWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTcwMDAs NyArNzAwMyw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAt NzAzMSw3ICs3MDM0LDcgQEAgbnVtX3Zpc2libGVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkK ICAgICBTZWFyY2hlcyByZWN1cnNpdmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAn X3BhcmVudCcpLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc1Nyw3ICs3NTcs NyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC03 MDMzLDcgKzcwMzYsNyBAQCBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3Ry CitAQCAtNzA2NCw3ICs3MDY3LDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5h bWUsIHN0cgogICAgICAgICAgICBpbnQgajsKICAgICAgICAgICAgc3RydWN0IHR5cGUgKmZpZWxk X3R5cGUgPSBhZGFfY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLAogIAkJCQkJ CQkJCWkpKTsKQEAgLTc2Niw3ICs3NjYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvYWRhLWxhbmcuYwogIAogICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgVFlQRV9ORklFTERT IChmaWVsZF90eXBlKTsgaiArPSAxKQogICAgICAgICAgICAgIHsKLUBAIC03MDUxLDggKzcwNTQs OCBAQCBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3RyCitAQCAtNzA4Miw4 ICs3MDg1LDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgogICAg cmV0dXJuIE5VTEw7CiAgfQogIApAQCAtNzc3LDcgKzc3Nyw3IEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9hZGEtbGFuZy5jCiAgCiAgCiAgLyogUmV0dXJuIGZpZWxkICNJTkRFWCBp biBBUkcsIHdoZXJlIHRoZSBpbmRleCBpcyB0aGF0IHJldHVybmVkIGJ5Ci1AQCAtNzA2MSw3ICs3 MDY0LDcgQEAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maQorQEAgLTcw OTIsNyArNzA5NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkK ICAgKiBJZiBmb3VuZCwgcmV0dXJuIHZhbHVlLCBlbHNlIHJldHVybiBOVUxMLiAgKi8KICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc4Niw3ICs3ODYsNyBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogIAkJCXN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAg IHJldHVybiBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkXzEgKCZpbmRleCwgYXJnLCBvZmZzZXQsIHR5 cGUpOwotQEAgLTcwNzMsNyArNzA3Niw3IEBAIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGQgKGludCBp bmRleCwgc3RydWMKK0BAIC03MTA0LDcgKzcxMDcsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxk IChpbnQgaW5kZXgsIHN0cnVjCiAgICogKklOREVYX1AuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKgpAQCAtNzk1LDcgKzc5NSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9hZGEtbGFuZy5jCiAgCQkJICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsKLUBA IC03MTYzLDcgKzcxNjYsOCBAQCBhZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICph cmcsCitAQCAtNzE5NCw3ICs3MTk3LDggQEAgYWRhX3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2 YWx1ZSAqYXJnLAogICAgICB2ID0gYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKG5hbWUsIGFyZywg MCwgdCk7CiAgICBlbHNlCiAgICAgIHsKQEAgLTgwNSw3ICs4MDUsNyBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90 eXBlOwogICAgICAgIENPUkVfQUREUiBhZGRyZXNzOwogIAotQEAgLTc0ODAsOCArNzQ4NCw4IEBA IGFkYV9jb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKnZhbDApCitAQCAtNzUxMSw4ICs3NTE1LDgg QEAgYWRhX2NvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkKICAvKiBSZXR1cm4gT0ZGIHJv dW5kZWQgdXB3YXJkIGlmIG5lY2Vzc2FyeSB0byBhIG11bHRpcGxlIG9mCiAgICAgQUxJR05NRU5U IChhIHBvd2VyIG9mIDIpLiAgKi8KICAKQEAgLTgxNiw3ICs4MTYsNyBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogIHsKICAgIHJldHVybiAob2ZmICsgYWxpZ25t ZW50IC0gMSkgJiB+KGFsaWdubWVudCAtIDEpOwogIH0KLUBAIC03ODYzLDEwICs3ODY3LDkgQEAg YWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorQEAgLTc4OTQsMTAgKzc4 OTgsOSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCiAgICBzdHJ1 Y3QgdmFsdWUgKm1hcmsgPSB2YWx1ZV9tYXJrICgpOwogICAgc3RydWN0IHZhbHVlICpkdmFsOwog ICAgc3RydWN0IHR5cGUgKnJ0eXBlOwpAQCAtODI5LDcgKzgyOSw3IEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9hZGEtbGFuZy5jCiAgICBpbnQgZjsKICAKICAgIC8qIENvbXB1dGUg dGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdGhpcyByZWNvcmQgdHlwZSB0aGF0IGFyZSBnb2luZwot QEAgLTc5NDQsNyArNzk0Nyw3IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8x IChzdHIKK0BAIC03OTc1LDcgKzc5NzgsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3Jk X3R5cGVfMSAoc3RyCiAgCSAgICAgdGhhdCBmb2xsb3cgdGhpcyBvbmUuICAqLwogIAkgIGlmIChh ZGFfaXNfYWxpZ25lcl90eXBlIChmaWVsZF90eXBlKSkKICAJICAgIHsKQEAgLTgzOCw3ICs4Mzgs NyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwogIAogIAkgICAg ICBmaWVsZF92YWxhZGRyID0gY29uZF9vZmZzZXRfaG9zdCAoZmllbGRfdmFsYWRkciwgZmllbGRf b2Zmc2V0KTsKICAJICAgICAgZmllbGRfYWRkcmVzcyA9IGNvbmRfb2Zmc2V0X3RhcmdldCAoZmll bGRfYWRkcmVzcywgZmllbGRfb2Zmc2V0KTsKLUBAIC04MDgwLDExICs4MDgzLDExIEBAIGFkYV90 ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC04MTExLDExICs4MTE0LDEx IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKICAgIGlmIChUWVBF X0xFTkdUSCAodHlwZSkgPD0gMCkKICAgICAgewogICAgICAgIGlmIChUWVBFX05BTUUgKHJ0eXBl KSkKQEAgLTg1NCw3ICs4NTQsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRh LWxhbmcuYwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKLUBAIC04NTA4LDcgKzg1MTEsOCBAQCB0 b19maXhlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsCitAQCAtODUzOSw3ICs4NTQy LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLAogIAkgdHlwZSB3 YXMgYSByZWd1bGFyIChub24tcGFja2VkKSBhcnJheSB0eXBlLiAgQXMgYSByZXN1bHQsIHRoZQog IAkgYml0c2l6ZSBvZiB0aGUgYXJyYXkgZWxlbWVudHMgbmVlZHMgdG8gYmUgc2V0IGFnYWluLCBh bmQgdGhlIGFycmF5CiAgCSBsZW5ndGggbmVlZHMgdG8gYmUgcmVjb21wdXRlZCBiYXNlZCBvbiB0 aGF0IGJpdHNpemUuICAqLwpAQCAtODY0LDEwICs4NjQsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBpbnQgZWx0X2JpdHNpemUgPSBUWVBFX0ZJ RUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKICAKICAgICAgICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHJl c3VsdCwgMCkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKLUluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9hZGEtbGFuZy5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvYWRhLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvYWRhLWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUwOTMxODcyMiArMDEwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjQz MjY3NTIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2FkYS1sYW5nLmgJ MjAxNS0wMS0yNSAwODozOToxMC44MTI0NjY4MjUgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUw MTI1L2dkYi9hZGEtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjUwNDgzMzY4ICswMTAwCiBA QCAtMTc5LDcgKzE3OSw3IEBAIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlw ZQogIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IHN5bWJvbCAqbmV3X3N5bWJvbCwKICAJCQkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSk7CkBAIC04OTUsMTAgKzg5NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv YWRhLWxhbmcuaAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphZGFfY29l cmNlX3RvX3NpbXBsZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKLUluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUw MTI1L2dkYi9hZGEtdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQx MjI4Lm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUwOTMxODcy MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE1 LTAxLTA2IDIyOjQ0OjQzLjE2NTMyNjc1NyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUu b3JpZy9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODEyNDY2ODI1ICsw MTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMDEt MjUgMDg6Mzk6MTQuNjUxNDgzMzcyICswMTAwCiBAQCAtODgzLDggKzg4Myw4IEBAIGFkYV9wcmlu dF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnMKICAJICAgIGNvbnN0IGNoYXIgKm5hbWUg PSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKICAKQEAgLTkyMCwxMCArOTIwLDEwIEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAgICAgICAg Y2FzZSBUWVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FkYS12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvYWRhLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTEwMzE4NzI3ICswMTAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLXZhbHByaW50LmMJMjAxNS0wMS0wNiAy Mjo0NDo0My4xNjUzMjY3NTcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2Ri L2FkYS12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE0NDY2ODM0ICswMTAwCisrKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYWRhLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOTox NC42NTE0ODMzNzIgKzAxMDAKIEBAIC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmls ZXMuaCIKICAKQEAgLTEwNzcsMTAgKzEwNzcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYW5ub3RhdGUuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL2Fubm90YXRlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2Fubm90YXRlLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTAzMTg3MjcgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hbm5vdGF0ZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY1 MzI2NzU3ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9hbm5vdGF0ZS5j CTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE0NDY2ODM0ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvYW5ub3RhdGUuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY1MjQ4MzM3NiArMDEwMAog QEAgLTU0MiwyMSArNTQyLDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKICB9CiAgDApA QCAtMTEwNywxMCArMTEwNywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW5u b3RhdGUuYwogIH0KICAKICB2b2lkCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW5u b3RhdGUuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2Fubm90YXRlLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Fubm90YXRlLmgJMjAxNS0w MS0wNiAyMjo0NDo0MS41MTAzMTg3MjcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9hbm5vdGF0ZS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY1MzI2NzU3ICswMTAwCistLS0gZ2Ri LTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAu ODE1NDY2ODM4ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYW5ub3RhdGUuaAky MDE1LTAxLTI1IDA4OjM5OjE0LjY1MjQ4MzM3NiArMDEwMAogQEAgLTkyLDggKzkyLDggQEAgZXh0 ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfc291cmNlX2VuZCAodgogIGV4dGVybiB2b2lkIGFubm90 YXRlX2ZyYW1lX3doZXJlICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9lbmQg KHZvaWQpOwpAQCAtMTEyMiwxMCArMTEyMiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdF9yZXBfZW5kICh2b2lk KTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90 YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9hcm0tbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9hcm0t bGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L2FybS1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxMTMxODczMiArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQzLjE2NjMyNjc2MiArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvYXJt LWxpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE1NDY2ODM4ICswMTAwCisrKysgZ2Ri LTcuOC45MC4yMDE1MDEyNS9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQu NjUyNDgzMzc2ICswMTAwCiBAQCAtMTE4Niw3ICsxMTg2LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9o d19icmVha3BvaW50IChzdHJ1Y3QgdAogICAgIEFERFI/ICAqLwogIHN0YXRpYyBpbnQKQEAgLTEx MzUsMTAgKzExMzUsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS1saW51 eC1uYXQuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBhcm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFy bV9saW51eF9nZXRfaHdicF9jYXAgKCk7CiAgICBDT1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxp Z25lZF9hZGRyOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LWdkYi5jCitJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTEy MzE4NzM3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXgtZ2RiLmMJMjAxNS0w MS0wNiAyMjo0NDo0My4xNjYzMjY3NjIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9y aWcvZ2RiL2F4LWdkYi5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODE3NDY2ODQ2ICswMTAwCisrKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYXgtZ2RiLmMJMjAxNS0wMS0yNSAwODozOToxNC42NTM0 ODMzODEgKzAxMDAKIEBAIC04MiwxMiArODIsMTIgQEAgc3RhdGljIHZvaWQgZ2VuX3RyYWNlZF9w b3AgKHN0cnVjdCBnZGJhcgogIHN0YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0IGFn ZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAoc3Ry dWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CkBAIC0xMjM4LDEwICsxMjM4LDEwIEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCBy c2x0OwogICAgaW50IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXgtZ2VuZXJhbC5jCitJbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9heC1nZW5lcmFsLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTIzMTg3Mzcg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC1nZW5lcmFsLmMJMjAxNS0wMS0w NiAyMjo0NDo0My4xNjczMjY3NjcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcv Z2RiL2F4LWdlbmVyYWwuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjgxODQ2Njg1MSArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2F4LWdlbmVyYWwuYwkyMDE1LTAxLTI1IDA4OjM5OjE0 LjY1MzQ4MzM4MSArMDEwMAogQEAgLTE5Myw3ICsxOTMsNyBAQCBheF96ZXJvX2V4dCAoc3RydWN0 IGFnZW50X2V4cHIgKngsIGludCBuCiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1 Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpAQCAtMTI1MSwxMCArMTI1MSwx MCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAg LyogTiBtdXN0IGZpdCBpbiBhIGJ5dGUuICAqLwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXguaAorSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2F4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2F4LmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTIzMTg3MzcgKzAxMDAKLSsrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9heC5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY3MzI2NzY3ICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9heC5oCTIwMTUtMDEtMjUgMDg6Mzk6 MTAuODE4NDY2ODUxICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYXguaAkyMDE1 LTAxLTI1IDA4OjM5OjE0LjY1NDQ4MzM4NSArMDEwMAogQEAgLTIwNyw3ICsyMDcsNyBAQCBleHRl cm4gdm9pZCBheF9leHQgKHN0cnVjdCBhZ2VudF9leHByICpFCiAgZXh0ZXJuIHZvaWQgYXhfemVy b19leHQgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CiAgCkBAIC0xMjY0LDEwICsx MjY0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC5oCiAgCiAgLyogQXBw ZW5kIGEgZ290byBvcCB0byBFWFBSLiAgT1AgaXMgdGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3Bf Z290byBvcgogICAgIGFvcF9pZl9nb3RvKS4gIFdlIGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0 YXJnZXQgb2Zmc2V0IHlldCwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3Bv aW50LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9icmVha3BvaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjUxNjMxODc1NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2JyZWFrcG9pbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorLS0t IGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMDEtMjUgMDg6 Mzk6MTAuODI0NDY2ODc3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYnJlYWtw b2ludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjU3NDgzMzk4ICswMTAwCiBAQCAtMjE5MSw5ICsy MTkxLDkgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRpb24gKgogIAl7CiAg CSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLApAQCAtMTI4MCw3ICsxMjgwLDcgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAgICAgICAg cmV0dXJuIDA7CiAgICAgIH0KLUBAIC02OTQzLDcgKzY5NDMsNyBAQCBicmVha3BvaW50X2FkZHJl c3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCitAQCAtNjk3Niw3ICs2OTc2LDcgQEAgYnJlYWtwb2lu dF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBpbnQKICBicmVha3Bv aW50X2FkZHJlc3NfbWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBD T1JFX0FERFIgYWRkcjEsCkBAIC0xMjg5LDcgKzEyODksNyBAQCBJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvYnJlYWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRyMikKICB7CiAgICBy ZXR1cm4gKChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoICgp KQotQEAgLTExNjY3LDcgKzExNjY3LDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChz dHJ1Y3QgdmFsdQorQEAgLTExNzAwLDcgKzExNzAwLDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRj aHBvaW50IChzdHJ1Y3QgdmFsdQogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkgIT0gVFlQ RV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVfYWRkcmVz cyAodik7CkBAIC0xMjk4LDEwICsxMjk4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9icmVha3BvaW50LmMKICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJICBsZW4gPSAodGFy Z2V0X2V4YWN0X3dhdGNocG9pbnRzCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnJl YWtwb2ludC5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYnJlYWtwb2ludC5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9icmVha3BvaW50LmgJ MjAxNS0wMS0wNiAyMjo0NDo0MS41MTczMTg3NjEgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9icmVha3BvaW50LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzAzMjY3ODEgKzAxMDAK Ky0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTAxLTI1 IDA4OjM5OjEwLjgyNjQ2Njg4NSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2Jy ZWFrcG9pbnQuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY1ODQ4MzQwMiArMDEwMAogQEAgLTIzNiw3 ICsyMzYsNyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KICAKICAgIC8qIElmIHRoaXMgaXMgYSBy YW5nZWQgYnJlYWtwb2ludCwgdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZQpAQCAtMTMyMCwx MCArMTMyMCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnJlYWtwb2ludC5o CiAgCiAgICAvKiBUeXBlIG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJn ZXRfaHdfYnBfdHlwZSB3YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYy1sYW5nLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jLWxhbmcuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYy1sYW5nLmMJMjAx NS0wMS0wNiAyMjo0NDo0MS41MTgzMTg3NjYgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9jLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorLS0tIGdk Yi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wMS0yNSAwODozOToxMC44 MjY0NjY4ODUgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jLWxhbmcuYwkyMDE1 LTAxLTI1IDA4OjM5OjE0LjY1ODQ4MzQwMiArMDEwMAogQEAgLTE4Nyw3ICsxODcsNyBAQCBjX3By aW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgdm9pZApAQCAtMTM1MSwx MCArMTM1MSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy1sYW5nLmMKICAK ICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBl KSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2MtbGFuZy5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIv Yy1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Mt bGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTE4MzE4NzY2ICswMTAwCi0rKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvYy1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzEzMjY3ODYgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMDEtMjUg MDg6Mzk6MTAuODI3NDY2ODkwICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYy1s YW5nLmgJMjAxNS0wMS0yNSAwODozOToxNC42NTk0ODM0MDYgKzAxMDAKIEBAIC03NCw3ICs3NCw3 IEBAIGV4dGVybiB2b2lkIGNfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUKICAJCQkgICAgIHN0 cnVjdCB1aV9maWxlICopOwogIApAQCAtMTM5MCwxMCArMTM5MCwxMCBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYy1sYW5nLmgKICAJCQkJCXN0cnVjdCB1aV9maWxlICosIGludCwK ICAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKiwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLXZhbHByaW50 LmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jLXZhbHByaW50LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTAx LTA2IDIyOjQ0OjQxLjUxODMxODc2NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2MtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MTMyNjc4NiArMDEwMAorLS0tIGdk Yi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6 MTAuODI3NDY2ODkwICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYy12YWxwcmlu dC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjU5NDgzNDA2ICswMTAwCiBAQCAtMTMyLDcgKzEzMiw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKICAKICB2b2lkCkBA IC0xNDM1LDEwICsxNDM1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLXZh bHByaW50LmMKICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsK ICAKICAgIG9wdHMuZGVyZWZfcmVmID0gMTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9jcC1hYmkuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NwLWFiaS5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTAx LTA2IDIyOjQ0OjQxLjUxODMxODc2NiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2NwLWFiaS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjgyNzQ2 Njg5MCArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NwLWFiaS5jCTIwMTUtMDEt MjUgMDg6Mzk6MTQuNjU5NDgzNDA2ICswMTAwCiBAQCAtNjQsMTMgKzY0LDEzIEBAIGlzX29wZXJh dG9yX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICByZXR1cm4gKCpjdXJyZW50X2NwX2FiaS5p c19vcGVyYXRvcl9uYW1lKSAobmFtZSk7CiAgfQpAQCAtMTQ3NCwxMCArMTQ3NCwxMCBAQCBJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY3AtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAq cmV0ID0gTlVMTDsKICAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Ci1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY3AtYWJpLmgKK0luZGV4OiBnZGItNy44LjkwLjIwMTUw MTI1L2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvY3AtYWJpLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTkzMTg3NzAgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC1hYmkuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MTMy Njc4NiArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvY3AtYWJpLmgJMjAx NS0wMS0yNSAwODozOToxMC44Mjg0NjY4OTQgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9jcC1hYmkuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY1OTQ4MzQwNiArMDEwMAogQEAgLTEw OCw3ICsxMDgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCiAg CQkJCQkgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJCSAgICAgaW50IGosCkBAIC0xNTMy LDEwICsxNTMyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC1hYmkuaAog ICAgdm9pZCAoKnByaW50X21ldGhvZF9wdHIpIChjb25zdCBnZGJfYnl0ZSAqY29udGVudHMsCiAg CQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLAogIAkJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt KTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC12YWxwcmludC5jCitJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUxOTMxODc3MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NwLXZhbHBy aW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKKy0tLSBnZGItNy44Ljkw LjIwMTUwMTI1Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxMC44Mjk0 NjY4OTggKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jcC12YWxwcmludC5jCTIw MTUtMDEtMjUgMDg6Mzk6MTQuNjYwNDgzNDExICswMTAwCiBAQCAtODAsNyArODAsNyBAQCBzdGF0 aWMgdm9pZCBjcF9wcmludF9zdGF0aWNfZmllbGQgKHN0cnVjCiAgCQkJCSAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIApAQCAtMTYwOSwxMCArMTYwOSwxMCBAQCBJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY3AtdmFscHJpbnQuYwogICAgICAgIGludCBza2lw OwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVja190eXBlZGVmIChUWVBFX0JB U0VDTEFTUyAodHlwZSwgaSkpOwogICAgICAgIGNvbnN0IGNoYXIgKmJhc2VuYW1lID0gVFlQRV9O QU1FIChiYXNlY2xhc3MpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2QtbGFuZy5o CitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6 NDEuNTE5MzE4NzcwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZC1sYW5nLmgJ MjAxNS0wMS0wNiAyMjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUw MTI1Lm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODI5NDY2ODk4ICswMTAw CisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZC1sYW5nLmgJMjAxNS0wMS0yNSAwODozOTox NC42NjA0ODM0MTEgKzAxMDAKIEBAIC03MSw3ICs3MSw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qg YnVpbHRpbl9kX3R5cGUgKmJ1aWwKICAvKiBEZWZpbmVkIGluIGQtdmFscHJpbnQuYyAgKi8KICAK QEAgLTE2MjIsMTAgKzE2MjIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Qt bGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2QtdmFscHJp bnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2QtdmFscHJpbnQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTUt MDEtMDYgMjI6NDQ6NDEuNTE5MzE4NzcwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZC12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcyMzI2NzkxICswMTAwCistLS0g Z2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODoz OToxMC44Mjk0NjY4OTggKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9kLXZhbHBy aW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42NjA0ODM0MTEgKzAxMDAKIEBAIC0yOSw3ICsyOSw3 IEBACiAgCiAgc3RhdGljIGludApAQCAtMTY0OCwxMCArMTY0OCwxMCBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvZC12YWxwcmludC5jCiAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIGludCByZXQ7Ci1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZG91Ymxlc3QuYworSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2RvdWJsZXN0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjAzMTg3NzUgKzAxMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kb3VibGVzdC5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDMuMTcyMzI2NzkxICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9kb3Vi bGVzdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODMwNDY2OTAzICswMTAwCisrKysgZ2RiLTcuOC45 MC4yMDE1MDEyNS9nZGIvZG91Ymxlc3QuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY2MTQ4MzQxNSAr MDEwMAogQEAgLTc2NSw3ICs3NjUsNyBAQCBmbG9hdGZvcm1hdF9mcm9tX2RvdWJsZXN0IChjb25z dCBzdHJ1Y3QKICAgICBidXQgbm90IHBhc3NlZCBvbiBieSBHREIuICBUaGlzIHNob3VsZCBiZSBm aXhlZC4gICovCiAgCkBAIC0xNjcyLDEwICsxNjcyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9kb3VibGVzdC5jCiAgICByZXR1cm4gZm9ybWF0OwogIH0KICAKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuYworSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2R3YXJmMmxvYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyMjMxODc4NSArMDEw MAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDMuMTczMzI2Nzk2ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9k d2FyZjJsb2MuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjgzMzQ2NjkxNiArMDEwMAorKysrIGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMjUgMDg6NDA6MDAuNTgwNjgx MzM2ICswMTAwCiBAQCAtMTU1NywxOSArMTU1NywxOSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQg aW50IGRhdHVtLAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdk YmFyY2guICAqLwogIApAQCAtMTc4NiwxMCArMTc4NiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvZHdhcmYybG9jLmMKICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVj ZSA9IE5VTEw7CiAtICBMT05HRVNUIGJ5dGVfb2Zmc2V0OwogKyAgTE9OR0VTVCBieXRlX29mZnNl dCwgYml0X29mZnNldDsKKyAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyOwogIAogICAgdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSk7Ci0gICBpZiAoVFlQRV9DT0RF ICh0eXBlKSAhPSBUWVBFX0NPREVfUFRSKQotQEAgLTIwMjUsNyArMjAyNiw3IEBAIGluZGlyZWN0 X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMDI2LDcgKzIwMjcsNyBAQCBp bmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICBmb3IgKGkgPSAwOyBp IDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAgIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3OTgsNyArMTc5 OCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuYwogIAogICAg ICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIzMDMsNyArMjMwNCw3IEBAIGR3YXJm Ml9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKK0BAIC0yMzA5LDcgKzIzMTAsNyBA QCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CiAgCSAgICBzdHJ1Y3Qg dmFsdWUgKnZhbHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKICAJICAgIGdkYl9ieXRl ICpjb250ZW50czsKICAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7CkBAIC0xODA3LDEw ICsxODA3LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuYwog IAogIAkgICAgaWYgKGJ5dGVfb2Zmc2V0ICsgVFlQRV9MRU5HVEggKHR5cGUpID4gbikKICAJICAg ICAgaW52YWxpZF9zeW50aGV0aWNfcG9pbnRlciAoKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9kd2Fy ZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyNjMxODgwNSArMDEwMAotKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3NzMy NjgxNSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvZHdhcmYycmVhZC5j CTIwMTUtMDEtMjUgMDg6Mzk6MTAuODQwNDY2OTQ2ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjY3NDgzNDQxICswMTAw CiBAQCAtMTg4MywxMiArMTg4MywxMiBAQCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2Nv bXBsYWludCAoCiAgfQogIApAQCAtMTgzOSwxMCArMTgzOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgCiAgCSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKICAJICAgICAgaWYgKGF0dHIpCi1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZXZhbC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvZXZhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9ldmFsLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjgzMTg4MTQgKzAxMDAKLSsrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9ldmFsLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzgzMjY4MjAgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2V2YWwuYwkyMDE1LTAxLTI1IDA4 OjM5OjEwLjg0MjQ2Njk1NCArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2V2YWwu YwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY2ODQ4MzQ0NSArMDEwMAogQEAgLTMxNCw3ICszMTQsOCBA QCBldmFsdWF0ZV9zdHJ1Y3RfdHVwbGUgKHN0cnVjdCB2YWx1ZSAqc3RyCiAgICB3aGlsZSAoLS1u YXJncyA+PSAwKQogICAgICB7CkBAIC0xOTA1LDEwICsxOTA1LDEwIEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9ldmFsLmMKICAJc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0 czsKICAKICAJZ2V0X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIv Zi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Yt bGFuZy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTI5MzE4ODE5ICswMTAwCi0rKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZi1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzgzMjY4MjAgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTUtMDEtMjUg MDg6Mzk6MTAuODQzNDY2OTU5ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZi1s YW5nLmMJMjAxNS0wMS0yNSAwODozOToxNC42Njg0ODM0NDUgKzAxMDAKIEBAIC0xMDMsNyArMTAz LDcgQEAgZl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcwogIAogIHN0YXRp YyB2b2lkCkBAIC0xOTE4LDEwICsxOTE4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9mLWxhbmcuYwogIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGZfZ2V0X2VuY29kaW5n ICh0eXBlKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxhbmcuaAorSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyOTMx ODgxOSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtbGFuZy5oCTIwMTUtMDEt MDYgMjI6NDQ6NDMuMTc4MzI2ODIwICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmln L2dkYi9mLWxhbmcuaAkyMDE1LTAxLTI1IDA4OjM5OjEwLjg0MzQ2Njk1OSArMDEwMAorKysrIGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL2YtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjY4NDgz NDQ1ICswMTAwCiBAQCAtMzAsNyArMzAsNyBAQCBleHRlcm4gdm9pZCBmX2Vycm9yIChjaGFyICop OwkvKiBEZWZpbmVkCiAgZXh0ZXJuIHZvaWQgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqLCBj b25zdCBjaGFyICosIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgIGludCwgY29uc3Qgc3Ry dWN0IHR5cGVfcHJpbnRfb3B0aW9ucyAqKTsKQEAgLTE5MzEsMTAgKzE5MzEsMTAgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICos IGludCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFs cHJpbnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2YtdmFscHJpbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi12YWxwcmludC5jCTIw MTUtMDEtMDYgMjI6NDQ6NDEuNTI5MzE4ODE5ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDU6MDcuNzQ2NDQ2MDI4ICswMTAwCist LS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNS0wMS0yNSAw ODozOToxMC44NDM0NjY5NTkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9mLXZh bHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42Njg0ODM0NDUgKzAxMDAKIEBAIC0zOCw3ICsz OCw3IEBAIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQKICBzdGF0aWMg dm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CiAgc3RhdGljIHZvaWQgZjc3 X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwpAQCAtMTk5 NCwxMCArMTk5NCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi12YWxwcmlu dC5jCiAgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAgICBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1JbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvZmluZHZhci5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvZmluZHZhci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9maW5kdmFyLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjkzMTg4MTkgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9maW5kdmFyLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzkz MjY4MjUgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2ZpbmR2YXIuYwky MDE1LTAxLTI1IDA4OjM5OjEwLjg0NDQ2Njk2MyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2ZpbmR2YXIuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY2OTQ4MzQ0OSArMDEwMAogQEAg LTYyNiw3ICs2MjYsNyBAQCBzdHJ1Y3QgdmFsdWUgKgogIGRlZmF1bHRfdmFsdWVfZnJvbV9yZWdp c3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlZ251bSwgc3RydWN0IGZyYW1lX2lkIGZyYW1l X2lkKQpAQCAtMjAzMCwxMCArMjAzMCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZmluZHZhci5jCiAgCiAgICAgICAgLyogSWYgdGhlIHJlZ2lzdGVyIGxlbmd0aCBpcyBsYXJn ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGJ5dGVzCiAgICAgICAgICAgcmVtYWluaW5nIHRvIGNvcHks IHRoZW4gb25seSBjb3B5IHRoZSBhcHByb3ByaWF0ZSBieXRlcy4gICovCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvZnJhbWUuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2Ri L2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Zy YW1lLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzAzMTg4MjQgKzAxMDAKLSsrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9mcmFtZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgwMzI2ODMwICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9mcmFtZS5jCTIwMTUtMDEtMjUgMDg6 Mzk6MTAuODQ1NDY2OTY3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZnJhbWUu YwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY2OTQ4MzQ0OSArMDEwMAogQEAgLTEyNjksNyArMTI2OSw3 IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGYKICAKICBpbnQKQEAg LTIwNTIsMTAgKzIwNTIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1l LmMKICAKICAgIC8qIENvcHkgdGhlIGRhdGEuICAqLwogICAgd2hpbGUgKGxlbiA+IDApCi1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZnJhbWUuaAorSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2ZyYW1lLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL2ZyYW1lLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzAzMTg4MjQgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mcmFtZS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgwMzI2 ODMwICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9mcmFtZS5oCTIwMTUt MDEtMjUgMDg6Mzk6MTAuODQ1NDY2OTY3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvZnJhbWUuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY3MDQ4MzQ1NCArMDEwMAogQEAgLTU4Myw3 ICs1ODMsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVfcmVnaXN0ZXIgKHN0cnVjdCBmCiAgICAg Y29udGVudHMgYXJlIG9wdGltaXplZCBvdXQgb3IgdW5hdmFpbGFibGUsIHNldCAqT1BUSU1JWkVE UCwKICAgICAqVU5BVkFJTEFCTEVQIGFjY29yZGluZ2x5LiAgKi8KQEAgLTIwNjUsMTEgKzIwNjUs MTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmgKICAJCQkJICAgICBn ZGJfYnl0ZSAqbXlhZGRyLAogIAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWls YWJsZXApOwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmMKK0lu ZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJ0eXBlcy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDEuNTMyMzE4ODM0ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMu YwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MTMyNjgzNSArMDEwMAotQEAgLTI0NzcsNyArMjQ3Nyw3 IEBAIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKKy0tLSBnZGItNy44 LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0yNSAwODozOToxMC44NDg0 NjY5ODAgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJ0eXBlcy5jCTIwMTUt MDEtMjUgMDg6Mzk6MTQuNjcxNDgzNDU4ICswMTAwCitAQCAtMjQ3OCw3ICsyNDc4LDcgQEAgYWxs b2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKnR5cAogICAgIGxlYXN0IGFzIGxvbmcg YXMgT0JKRklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjA3OCw3ICsyMDc4LDcgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmMKICAJICAgY29uc3QgY2hh ciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5 cGU7Ci1AQCAtMjcxNyw4ICsyNzE3LDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlw ZSAqYmFzZSwgcworQEAgLTI3MTgsOCArMjcxOCw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3Ry dWN0IHR5cGUgKmJhc2UsIHMKICAKICBzdGF0aWMgaW50CiAgaXNfdW5pcXVlX2FuY2VzdG9yX3dv cmtlciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB0eXBlICpkY2xhc3MsCkBAIC0yMDg5LDcg KzIwODksNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYwogIAkJ CSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAgICBpbnQgaSwg Y291bnQgPSAwOwotQEAgLTI3MjksNyArMjcyOSw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3Jr ZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yNzMwLDcgKzI3MzAsNyBAQCBpc191bmlxdWVfYW5jZXN0 b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VD TEFTU0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7CiAgICAgICAgc3RydWN0 IHR5cGUgKml0ZXI7CkBAIC0yMDk4LDcgKzIwOTgsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvZ2RidHlwZXMuYwogIAogICAgICAgIGl0ZXIgPSBjaGVja190eXBlZGVmIChUWVBF X0JBU0VDTEFTUyAoZGNsYXNzLCBpKSk7CiAgCi1AQCAtMjc3MCw3ICsyNzcwLDcgQEAgaXNfdW5p cXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTI3NzEsNyArMjc3MSw3IEBA IGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKICBpbnQKICBpc191bmlx dWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CkBA IC0yMTA3LDcgKzIxMDcsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlw ZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKGJhc2UsIHZhbHVl X3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJCSAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRp bmcgKHZhbCksCi1AQCAtMzkxNSw3ICszOTE1LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3Ry dWN0IHR5cGUgKnR5cGUsCitAQCAtMzkxNiw3ICszOTE2LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIHB1dHNfZmls dGVyZWQgKCJcbiIpOwpAQCAtMjExNiw3ICsyMTE2LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2dkYnR5cGVzLmMKICAgIGlmIChUWVBFX09CSkZJTEVfT1dORUQgKHR5cGUpKQog ICAgICB7CiAgICAgICAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAib2JqZmlsZSAiKTsKLUBA IC00MDM5LDggKzQwMzksOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwKK0BAIC00MDQwLDggKzQwNDAsOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKICAJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfRU5VTVZBTCAodHlwZSwg aWR4KSkpOwogICAgICAgIGVsc2UKICAJcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzICsgMiwKQEAg LTIxMjcsNyArMjEyNyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBl cy5jCiAgCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlkeCkpOwogICAgICAgIGdkYl9w cmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaWR4KSwgZ2RiX3N0ZG91 dCk7CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVzJyAoIiwKLUBAIC00Mzk3LDcg KzQzOTcsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTQzOTgs NyArNDM5OCw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgc3Ry dWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCkBAIC0yMTM2 LDEwICsyMTM2LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5j CiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnR5cGVz LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVz LmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzMzMTg4MzggKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgxMzI2ODM1ICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDEtMjUg MDg6Mzk6MTAuODQ5NDY2OTg0ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ri dHlwZXMuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY3MTQ4MzQ1OCArMDEwMAogQEAgLTU5OCw3ICs1 OTgsNyBAQCBzdHJ1Y3QgbWFpbl90eXBlCiAgCSAgIGdkYmFyY2hfYml0c19iaWdfZW5kaWFuPTAg dGFyZ2V0cywgaXQgaXMgdGhlIGJpdCBvZmZzZXQgdG8KICAJICAgdGhlIExTQi4gICovCkBAIC0y MTczLDEwICsyMTczLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBl cy5oCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdkYmFy Y2ggKiwgaW50LCBpbnQsIGNoYXIgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2NoYXJh Y3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKICBleHRlcm4g c3RydWN0IHR5cGUgKmFyY2hfYm9vbGVhbl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGlu dCwgY2hhciAqKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nbnUtdjItYWJpLmMK K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nbnUtdjItYWJpLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQxLjUzMzMxODgzOCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2du dS12Mi1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MTMyNjgzNSArMDEwMAorLS0tIGdkYi03 LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAu ODQ5NDY2OTg0ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ251LXYyLWFiaS5j CTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjcyNDgzNDYyICswMTAwCiBAQCAtODIsNyArODIsNyBAQCBn bnV2Ml9pc19vcGVyYXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lCiAgICAgVFlQRSBpcyB0aGUg dHlwZSBpbiB3aGljaCBGIGlzIGxvY2F0ZWQuICAqLwogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpA QCAtMjIyOCwxMCArMjIyOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ251 LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRy LAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2dudS12My1hYmkuYworSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL2dudS12My1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM0MzE4ODQzICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ251LXYzLWFiaS5jCTIwMTUtMDEtMDYg MjI6NDQ6NDMuMTgxMzI2ODM1ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dk Yi9nbnUtdjMtYWJpLmMJMjAxNS0wMS0yNSAwODozOToxMC44NTA0NjY5ODkgKzAxMDAKKysrKyBn ZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0wMS0yNSAwODozOToxNC42 NzI0ODM0NjIgKzAxMDAKIEBAIC0xMDgsNyArMTA4LDcgQEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBl IChzdHJ1Y3QgZ2RiYXJjaCAqYQogIHsKICAgIHN0cnVjdCB0eXBlICp0OwpAQCAtMjMwNiwxMCAr MjMwNiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ251LXYzLWFiaS5jCiAg ICAgICAgc3RydWN0IHR5cGUgKmJhc2V0eXBlOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFf VklSVFVBTCAoZG9tYWluLCBpKSkKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nby1s YW5nLmgKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nby1sYW5nLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE1LTAxLTA2 IDIyOjQ0OjQxLjUzNDMxODg0MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dv LWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MjMyNjg0MCArMDEwMAorLS0tIGdkYi03Ljgu OTAuMjAxNTAxMjUub3JpZy9nZGIvZ28tbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODUwNDY2 OTg5ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ28tbGFuZy5oCTIwMTUtMDEt MjUgMDg6Mzk6MTQuNjcyNDgzNDYyICswMTAwCiBAQCAtODUsNyArODUsNyBAQCBleHRlcm4gdm9p ZCBnb19wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqCiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmlu dC5jLiAgKi8KICAKQEAgLTIzMTksMTAgKzIzMTksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2dvLWxhbmcuaAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9nby12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ28t dmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv Z28tdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNDMxODg0MyArMDEwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x ODIzMjY4NDAgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2dvLXZhbHBy aW50LmMJMjAxNS0wMS0yNSAwODozOToxMC44NTE0NjY5OTMgKzAxMDAKKysrKyBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9nby12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjcyNDgzNDYy ICswMTAwCiBAQCAtMzcsNyArMzcsNyBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMzQ1LDEwICsy MzQ1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nby12YWxwcmludC5jCiAg CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAg IENIRUNLX1RZUEVERUYgKHR5cGUpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2lu Zi10dHJhY2UuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZi10dHJhY2UuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaW5mLXR0cmFjZS5j CTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM1MzE4ODQ4ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvaW5mLXR0cmFjZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQwICswMTAw CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmYtdHRyYWNlLmMJMjAxNS0wMS0y NSAwODozOToxMC44NTE0NjY5OTMgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9p bmYtdHRyYWNlLmMJMjAxNS0wMS0yNSAwODozOToxNC42NzM0ODM0NjcgKzAxMDAKIEBAIC0zNjYs NyArMzY2LDcgQEAgaW5mX3R0cmFjZV9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdAogIAog IHN0YXRpYyBpbnQKQEAgLTIzNTgsMTAgKzIzNTgsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2luZi10dHJhY2UuYwogIHsKICAgIHJldHVybiAxOwogIH0KLUluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9qdi1sYW5nLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9qdi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2p2LWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNTMxODg0OCArMDEwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MjMy Njg0MCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvanYtbGFuZy5jCTIw MTUtMDEtMjUgMDg6Mzk6MTAuODUyNDY2OTk3ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvanYtbGFuZy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjczNDgzNDY3ICswMTAwCiBAQCAt NDM2LDcgKzQzNiw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QK ICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7IGkgPCBuZmllbGRzOyBpKysp CiAgICAgIHsKQEAgLTIzODAsMTAgKzIzODAsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2p2LWxhbmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0 X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi1sYW5n LmgKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9qdi1sYW5nLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTAxLTA2IDIy OjQ0OjQxLjUzNTMxODg0OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LWxh bmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MjMyNjg0MCArMDEwMAorLS0tIGdkYi03LjguOTAu MjAxNTAxMjUub3JpZy9nZGIvanYtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODUyNDY2OTk3 ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvanYtbGFuZy5oCTIwMTUtMDEtMjUg MDg6Mzk6MTQuNjczNDgzNDY3ICswMTAwCiBAQCAtNDMsOCArNDMsOCBAQCBzdHJ1Y3QgYnVpbHRp bl9qYXZhX3R5cGUKICAKICBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5famF2YV90eXBlICpi dWlsdGluX2phdmFfdHlwZSAoc3RydWN0IGdkYmFyY2ggKik7CkBAIC0yMzk1LDEwICsyMzk1LDEw IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi1sYW5nLmgKICAJCQkgICAgY29u c3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICopOwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LXZhbHByaW50LmMK K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9qdi12YWxwcmludC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9qdi12YWxwcmludC5jCTIwMTUtMDEt MDYgMjI6NDQ6NDEuNTM1MzE4ODQ4ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv anYtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MjMyNjg0MCArMDEwMAorLS0tIGdk Yi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTAxLTI1IDA4OjM5 OjEwLjg1MjQ2Njk5NyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2p2LXZhbHBy aW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42NzQ0ODM0NzEgKzAxMDAKIEBAIC0yNjUsNyArMjY1 LDcgQEAgamF2YV92YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cgogIAogIHN0YXRp YyB2b2lkCkBAIC0yNDE3LDEwICsyNDE3LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9qdi12YWxwcmludC5jCiAgCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGFu Z3VhZ2UuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xhbmd1YWdlLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0w MS0wNiAyMjo0NDo0MS41MzYzMTg4NTMgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9sYW5ndWFnZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgzMzI2ODQ0ICswMTAwCistLS0gZ2Ri LTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAu ODUzNDY3MDAyICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGFuZ3VhZ2UuYwky MDE1LTAxLTI1IDA4OjM5OjE0LjY3NDQ4MzQ3MSArMDEwMAogQEAgLTcyMCw3ICs3MjAsNyBAQCB1 bmtfbGFuZ19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqCiAgCiAgc3RhdGljIHZvaWQK QEAgLTI0MzksMTAgKzI0MzksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xh bmd1YWdlLmMKICAJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ CSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9s YW5ndWFnZS5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGFuZ3VhZ2UuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGFuZ3VhZ2UuaAkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjUzNjMxODg1MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2xhbmd1YWdlLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODMzMjY4NDQgKzAxMDAKKy0tLSBn ZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0wMS0yNSAwODozOTox MC44NTM0NjcwMDIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9sYW5ndWFnZS5o CTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjc0NDgzNDcxICswMTAwCiBAQCAtMTg5LDcgKzE4OSw3IEBA IHN0cnVjdCBsYW5ndWFnZV9kZWZuCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSk7CiAg CkBAIC0yNDYxLDEwICsyNDYxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9s YW5ndWFnZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ CQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL20y LWxhbmcuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL20yLWxhbmcuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMDEt MDYgMjI6NDQ6NDEuNTM2MzE4ODUzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv bTItbGFuZy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgzMzI2ODQ0ICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNS5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNS0wMS0yNSAwODozOToxMC44NTM0 NjcwMDIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9tMi1sYW5nLmMJMjAxNS0w MS0yNSAwODozOToxNC42NzQ0ODM0NzEgKzAxMDAKIEBAIC0xMDQsMTAgKzEwNCwxMCBAQCBtMl9w cmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9pZApAQCAt MjQ5OSwxMCArMjQ5OSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItbGFu Zy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJl cGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvbTItbGFuZy5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvbTItbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9tMi1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzYzMTg4NTMgKzAxMDAKLSsrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9tMi1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODMzMjY4 NDQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE1 LTAxLTI1IDA4OjM5OjEwLjg1NDQ2NzAwNiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL20yLWxhbmcuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY3NTQ4MzQ3NSArMDEwMAogQEAgLTM0 LDcgKzM0LDcgQEAgZXh0ZXJuIHZvaWQgbTJfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cAogIGV4 dGVybiBpbnQgbTJfaXNfbG9uZ19zZXQgKHN0cnVjdCB0eXBlICp0eXBlKTsKICBleHRlcm4gaW50 IG0yX2lzX3VuYm91bmRlZF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUpOwpAQCAtMjUxMiwxMCAr MjUxMiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItbGFuZy5oCiAgCQkJ ICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJ CQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvbTItdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4ICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wMS0w NiAyMjo0NDo0My4xODMzMjY4NDQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcv Z2RiL20yLXR5cGVwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODU0NDY3MDA2ICswMTAwCisr KysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wMS0yNSAwODoz OToxNC42NzU0ODM0NzUgKzAxMDAKIEBAIC0yMzAsOSArMjMwLDEyIEBAIHN0YXRpYyB2b2lkIG0y X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5E RVhfVFlQRSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CkBAIC0yNTMyLDEwICsy NTMyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMi10eXBlcHJpbnQuYwog ICAgICB9CiAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJdIE9GICIpOwogICAgbTJfcHJp bnRfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksICIiLCBzdHJlYW0sIHNob3csIGxldmVs LCBmbGFncyk7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdmFscHJpbnQuYwor SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL20yLXZhbHByaW50LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNS0wMS0w NiAyMjo0NDo0MS41MzczMTg4NTggKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9t Mi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgzMzI2ODQ0ICswMTAwCistLS0gZ2Ri LTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9tMi12YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6 MTAuODU0NDY3MDA2ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbTItdmFscHJp bnQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY3NTQ4MzQ3NSArMDEwMAogQEAgLTM1LDcgKzM1LDcg QEAgc3RhdGljIGludCBwcmludF91bnBhY2tlZF9wb2ludGVyIChzdHJ1YwogIAkJCQkgICBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICBzdGF0aWMgdm9pZApAQCAtMjYwMSwxMCArMjYwMSwxMCBA QCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdmFscHJpbnQuYwogIAogIAkJICAv KiBMb29rIGZvciBhIE5VTEwgY2hhci4gICovCiAgCQkgIGZvciAodGVtcF9sZW4gPSAwOwotSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21lbXJhbmdlLmMKK0luZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9tZW1yYW5nZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4ICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWVtcmFuZ2UuYwkyMDE1LTAxLTA2IDIy OjQ0OjQzLjE4NDMyNjg0OSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIv bWVtcmFuZ2UuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1NDQ2NzAwNiArMDEwMAorKysrIGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL21lbXJhbmdlLmMJMjAxNS0wMS0yNSAwODozOToxNC42NzU0ODM0 NzUgKzAxMDAKIEBAIC0yMSw4ICsyMSw4IEBACiAgI2luY2x1ZGUgIm1lbXJhbmdlLmgiCiAgCkBA IC0yNjE2LDEwICsyNjE2LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1y YW5nZS5jCiAgewogICAgVUxPTkdFU1QgaCwgbDsKICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9tZW1yYW5nZS5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbWVtcmFu Z2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbWVtcmFu Z2UuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNzMxODg1OCArMDEwMAotKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL21lbXJhbmdlLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0wMS0y NSAwODozOToxMC44NTU0NjcwMTAgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9t ZW1yYW5nZS5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjc1NDgzNDc1ICswMTAwCiBAQCAtMzAsNyAr MzAsNyBAQCBzdHJ1Y3QgbWVtX3JhbmdlCiAgICBDT1JFX0FERFIgc3RhcnQ7CiAgCkBAIC0yNjQw LDEwICsyNjQwLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1yYW5nZS5o CiAgCiAgLyogUmV0dXJucyB0cnVlIGlmIEFERFIgaXMgaW4gUkFOR0UuICAqLwogIAotSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21pcHMtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDEuNTM3MzE4ODU4ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWlwcy1saW51 eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NDMyNjg0OSArMDEwMAorLS0tIGdkYi03Ljgu OTAuMjAxNTAxMjUub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjM5OjEw Ljg1NTQ2NzAxMCArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL21pcHMtbGludXgt bmF0LmMJMjAxNS0wMS0yNSAwODozOToxNC42NzY0ODM0ODAgKzAxMDAKIEBAIC01ODYsNyArNTg2 LDcgQEAgbWlwc19saW51eF9zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0CiAgCiAgc3RhdGlj IGludApAQCAtMjY1MywxMCArMjY1MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvbWlwcy1saW51eC1uYXQuYwogIHsKICAgIHN0cnVjdCBwdF93YXRjaF9yZWdzIGR1bW15X3Jl Z3M7CiAgICBpbnQgaTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9vcGVuY2wtbGFu Zy5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvb3BlbmNsLWxhbmcuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjUzODMxODg2MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL29wZW5jbC1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKKy0t LSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNS0wMS0yNSAw ODozOToxMC44NTY0NjcwMTUgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9vcGVu Y2wtbGFuZy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjc2NDgzNDgwICswMTAwCiBAQCAtNzgsMTEg Kzc4LDExIEBAIGJ1aWx0aW5fb3BlbmNsX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAKICBz dGF0aWMgc3RydWN0IHR5cGUgKgpAQCAtMjczMywxMCArMjczMywxMCBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgICAgIGlmICghdmFsdWVfYml0 c19zeW50aGV0aWNfcG9pbnRlciAoYy0+dmFsLAogIAkJCQkJIGMtPmluZGljZXNbaV0gKiBlbHNp emUgKyBjb21wX29mZnNldCwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wLWxhbmcu YworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3AtbGFuZy5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9wLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUzODMxODg2MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3AtbGFuZy5j CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTg0MzI2ODQ5ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi9wLWxhbmcuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1NjQ2NzAxNSArMDEw MAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3AtbGFuZy5jCTIwMTUtMDEtMjUgMDg6Mzk6 MTQuNjc2NDgzNDgwICswMTAwCiBAQCAtOTUsOCArOTUsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2 b2lkKQogICAgIGFyZSBub3QgbXVsdGlwbGUgb2YgVEFSR0VUX0NIQVJfQklUIHRoZW4gdGhlIHJl c3VsdHMgYXJlIHdyb25nCiAgICAgYnV0IHRoaXMgZG9lcyBub3QgaGFwcGVuIGZvciBGcmVlIFBh c2NhbCBub3IgZm9yIEdQQy4gICovCkBAIC0yNzg0LDEwICsyNzg0LDEwIEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9wLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGlu Z3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRf Y29tbWEgPSAxOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3AtbGFuZy5oCitJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM4 MzE4ODYzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcC1sYW5nLmgJMjAxNS0w MS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9y aWcvZ2RiL3AtbGFuZy5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODU2NDY3MDE1ICswMTAwCisrKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcC1sYW5nLmgJMjAxNS0wMS0yNSAwODozOToxNC42NzY0 ODM0ODAgKzAxMDAKIEBAIC0zNiw3ICszNiw3IEBAIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludF90 eXBlIChzdHJ1Y3QgdHkKICBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZWRlZiAoc3RydWN0 IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAogIAkJCQkgIHN0cnVjdCB1aV9maWxlICopOwpAQCAt MjgyMiwxMCArMjgyMiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcC1sYW5n LmgKICAJCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKICAJCQkJCSAgICAg IGludCwKICAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3AtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvcC12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM5MzE4ODY4ICswMTAwCi0r KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcC12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDMuMTg1MzI2ODU0ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9wLXZh bHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxMC44NTc0NjcwMTkgKzAxMDAKKysrKyBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi9wLXZhbHByaW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42Nzc0ODM0 ODQgKzAxMDAKIEBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192 YWxfcHJpbnRfZGUKICAKICB2b2lkCkBAIC0yODg3LDEwICsyODg3LDEwIEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9wLXZhbHByaW50LmMKICAgICAgICB2b2xhdGlsZSBzdHJ1Y3Qg Z2RiX2V4Y2VwdGlvbiBleDsKICAgICAgICBpbnQgc2tpcCA9IDA7CiAgCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvcHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvcHBjLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzkzMTg4 NjggKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtbGludXgtbmF0LmMJMjAx NS0wMS0wNiAyMjo0NDo0My4xODUzMjY4NTQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1 Lm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1ODQ2NzAyMyAr MDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAx LTI1IDA4OjM5OjE0LjY3NzQ4MzQ4NCArMDEwMAogQEAgLTE1MDEsNyArMTUwMSw3IEBAIHBwY19s aW51eF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdAogIAogIHN0YXRpYyBpbnQKQEAgLTI5 MDAsMTAgKzI5MDAsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3BwYy1saW51 eC1uYXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAqLwogICAg aWYgKGxlbiA8PSAwKQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ByaW50Y21kLmMK K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9wcmludGNtZC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTQwMzE4ODcyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHJpbnRj bWQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NTMyNjg1NCArMDEwMAorLS0tIGdkYi03LjguOTAu MjAxNTAxMjUub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg1ODQ2NzAy MyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3ByaW50Y21kLmMJMjAxNS0wMS0y NSAwODozOToxNC42Nzg0ODM0ODggKzAxMDAKIEBAIC0yODUsNyArMjg1LDcgQEAgcHJpbnRfZm9y bWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50CiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSkKICB7CkBAIC0yOTIyLDEwICsyOTIyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9wcmludGNtZC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgCiAgICAvKiBTdHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdv IHRocm91Z2ggdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3Byb2Nmcy5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIv cHJvY2ZzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3By b2Nmcy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQxMzE4ODc3ICswMTAwCi0rKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvcHJvY2ZzLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODYzMjY4NTkgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTUtMDEtMjUg MDg6Mzk6MTAuODYwNDY3MDMyICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcHJv Y2ZzLmMJMjAxNS0wMS0yNSAwODozOToxNC42Nzk0ODM0OTMgKzAxMDAKIEBAIC00ODU5LDcgKzQ4 NTksNyBAQCBwcm9jZnNfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfCiAgCiAgc3Rh dGljIGludApAQCAtMjkzNSwxMCArMjkzNSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvcHJvY2ZzLmMKICB7CiAgICAvKiBUaGUgbWFuIHBhZ2UgZm9yIHByb2MoNCkgb24gU29s YXJpcyAyLjYgYW5kIHVwIHNheXMgdGhhdCB0aGUKICAgICAgIHN5c3RlbSBjYW4gc3VwcG9ydCAi dGhvdXNhbmRzIiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywgYnV0IGdpdmVzCi1JbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJ MjAxNS0wMS0wNiAyMjo0NDo0MS41NDEzMTg4NzcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NjMy Njg1OSArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvcHl0aG9uL3B5LXBy ZXR0eXByaW50LmMJMjAxNS0wMS0yNSAwODozOToxMC44NjA0NjcwMzIgKzAxMDAKKysrKyBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTAxLTI1IDA4 OjM5OjE0LjY3OTQ4MzQ5MyArMDEwMAogQEAgLTY4Niw3ICs2ODYsNyBAQCBwcmludF9jaGlsZHJl biAoUHlPYmplY3QgKnByaW50ZXIsIGNvbnN0CiAgZW51bSBleHRfbGFuZ19yYwogIGdkYnB5X2Fw cGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9k ZWZuICpleHRsYW5nLApAQCAtMjk0OCwxMCArMjk0OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKICAJCQkJc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJ CQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvcmVnY2FjaGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvcmVnY2FjaGUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0MjMxODg4MiArMDEwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x ODczMjY4NjQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3JlZ2NhY2hl LmMJMjAxNS0wMS0yNSAwODozOToxMC44NjE0NjcwMzYgKzAxMDAKKysrKyBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi9yZWdjYWNoZS5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjgwNDgzNDk3ICswMTAw CiBAQCAtOTQxLDcgKzk0MSw3IEBAIHR5cGVkZWYgdm9pZCAocmVnY2FjaGVfd3JpdGVfZnR5cGUp IChzdHIKICAKICBzdGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0dXMKQEAgLTI5OTcsMTAgKzI5OTcs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBz dHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi9yZWdjYWNoZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9yZWdjYWNoZS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQyMzE4ODgyICswMTAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVnY2FjaGUuaAkyMDE1LTAxLTA2IDIyOjQ0 OjQzLjE4NzMyNjg2NCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvcmVn Y2FjaGUuaAkyMDE1LTAxLTI1IDA4OjM5OjEwLjg2MTQ2NzAzNiArMDEwMAorKysrIGdkYi03Ljgu OTAuMjAxNTAxMjUvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0wMS0yNSAwODozOToxNC42ODA0ODM0OTcg KzAxMDAKIEBAIC05Miw5ICs5Miw5IEBAIGV4dGVybiB2b2lkIHJlZ2NhY2hlX3Jhd193cml0ZV91 bnNpZ25lZAogIAogIGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1cwpAQCAtMzAyOCwxMCArMzAy OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVnY2FjaGUuaAogIAogIC8q IFNwZWNpYWwgcm91dGluZXMgdG8gcmVhZC93cml0ZSB0aGUgUEMuICAqLwogIAotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvcmVtb3RlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL3JlbW90ZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQ0MzE4ODkyICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvcmVtb3RlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODgzMjY4 NjkgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTUt MDEtMjUgMDg6Mzk6MTAuODY0NDY3MDQ5ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvcmVtb3RlLmMJMjAxNS0wMS0yNSAwODozOToxNC42ODI0ODM1MDUgKzAxMDAKIEBAIC04Mzcx LDcgKzgzNzEsNyBAQCBpbnQgcmVtb3RlX2h3X2JyZWFrcG9pbnRfbGltaXQgPSAtMTsKICAKICBz dGF0aWMgaW50CkBAIC0zMDQxLDEwICszMDQxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9yZW1vdGUuYwogIHsKICAgIGlmIChyZW1vdGVfaHdfd2F0Y2hwb2ludF9sZW5ndGhf bGltaXQgPT0gMCkKICAgICAgcmV0dXJuIDA7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvc3B1LW11bHRpYXJjaC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvc3B1LW11 bHRpYXJjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9z cHUtbXVsdGlhcmNoLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDUzMTg4OTcgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wMS0wNiAyMjo0NDo0 My4xODgzMjY4NjkgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3NwdS1t dWx0aWFyY2guYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg2NTQ2NzA1MyArMDEwMAorKysrIGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4 MzQ4MzUxMCArMDEwMAogQEAgLTExNyw3ICsxMTcsNyBAQCBzcHVfdGhyZWFkX2FyY2hpdGVjdHVy ZSAoc3RydWN0IHRhcmdldF9vCiAgLyogT3ZlcnJpZGUgdGhlIHRvX3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCByb3V0aW5lLiAgKi8KICBzdGF0aWMgaW50CkBAIC0zMDU0LDEwICszMDU0LDEw IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcHUtbXVsdGlhcmNoLmMKICB7CiAg ICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGggPSBmaW5kX3RhcmdldF9iZW5lYXRoIChz ZWxmKTsKICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zdGFjay5jCitJbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvc3RhY2suYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvc3RhY2suYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0NjMxODkw MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N0YWNrLmMJMjAxNS0wMS0wNiAy Mjo0NDo0My4xODkzMjY4NzQgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2Ri L3N0YWNrLmMJMjAxNS0wMS0yNSAwODozOToxMC44NjY0NjcwNTggKzAxMDAKKysrKyBnZGItNy44 LjkwLjIwMTUwMTI1L2dkYi9zdGFjay5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjgzNDgzNTEwICsw MTAwCiBAQCAtMTc1LDcgKzE3NSw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVf aW5mbyAqZnIKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNzIGFyZ3Vt ZW50KS4gICovCiAgCkBAIC0zMDk2LDEwICszMDk2LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9zdGFjay5jCiAgCiAgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQog IAlzdGFydCA9IGdkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUp KTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1taXNjLmMKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9zeW1taXNjLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL3N5bW1pc2MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0NjMxODkw MiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bW1pc2MuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQzLjE4OTMyNjg3NCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9n ZGIvc3ltbWlzYy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODY2NDY3MDU4ICswMTAwCisrKysgZ2Ri LTcuOC45MC4yMDE1MDEyNS9nZGIvc3ltbWlzYy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjg0NDgz NTE0ICswMTAwCiBAQCAtNTM0LDExICs1MzQsMTEgQEAgcHJpbnRfc3ltYm9sICh2b2lkICphcmdz KQogIAogIAljYXNlIExPQ19DT05TVF9CWVRFUzoKQEAgLTMxMTUsMTAgKzMxMTUsMTAgQEAgSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bW1pc2MuYwogIAkgICAgZm9yIChpID0gMDsg aSA8IFRZUEVfTEVOR1RIICh0eXBlKTsgaSsrKQogIAkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChv dXRmaWxlLCAiICUwMngiLAogIAkJCQkodW5zaWduZWQpIFNZTUJPTF9WQUxVRV9CWVRFUyAoc3lt Ym9sKVtpXSk7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMKK0luZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdGFyZ2V0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDcz MTg5MDYgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQuYwkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE5MDMyNjg3OCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3Jp Zy9nZGIvdGFyZ2V0LmMJMjAxNS0wMS0yNSAwODozOToxMC44Njc0NjcwNjIgKzAxMDAKKysrKyBn ZGItNy44LjkwLjIwMTUwMTI1L2dkYi90YXJnZXQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NDQ4 MzUxNCArMDEwMAogQEAgLTU0LDcgKzU0LDcgQEAgc3RhdGljIGludCBkZWZhdWx0X3dhdGNocG9p bnRfYWRkcl93aXRoaQogIAkJCQkJCSBDT1JFX0FERFIsIENPUkVfQUREUiwgaW50KTsKICAKQEAg LTMxMzcsMTAgKzMxMzcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rhcmdl dC5jCiAgewogICAgcmV0dXJuIChsZW4gPD0gZ2RiYXJjaF9wdHJfYml0ICh0YXJnZXRfZ2RiYXJj aCAoKSkgLyBUQVJHRVRfQ0hBUl9CSVQpOwogIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90YXJnZXQuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3RhcmdldC5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90YXJnZXQuaAkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjU0NzMxODkwNiArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3RhcmdldC5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTkwMzI2ODc4ICswMTAwCistLS0gZ2Ri LTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTAxLTI1IDA4OjM5OjEwLjg2 ODQ2NzA2NiArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3RhcmdldC5oCTIwMTUt MDEtMjUgMDg6Mzk6MTQuNjg1NDgzNTE4ICswMTAwCiBAQCAtNDg5LDcgKzQ4OSw3IEBAIHN0cnVj dCB0YXJnZXRfb3BzCiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHBy b3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAq LwpAQCAtMzE1MCwxMCArMzE1MCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGFyZ2V0LmgKICAgICAgICBUQVJHRVRfREVGQVVMVF9GVU5DIChkZWZhdWx0X3JlZ2lvbl9va19m b3JfaHdfd2F0Y2hwb2ludCk7CiAgCiAgICAgIGludCAoKnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50 X2NvbmRpdGlvbikgKHN0cnVjdCB0YXJnZXRfb3BzICosCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdHJhY2Vwb2ludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdHJh Y2Vwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90 cmFjZXBvaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDkzMTg5MTYgKzAxMDAKLSsrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90cmFjZXBvaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTEz MjY4ODMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3RyYWNlcG9pbnQu YwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg3MDQ2NzA3NSArMDEwMAorKysrIGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL3RyYWNlcG9pbnQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NjQ4MzUyMyArMDEw MAogQEAgLTkyOCwxMyArOTI4LDEzIEBAIGFkZF9yZWdpc3RlciAoc3RydWN0IGNvbGxlY3Rpb25f bGlzdCAqY28KICBzdGF0aWMgdm9pZAogIGFkZF9tZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25f bGlzdCAqbWVtcmFuZ2VzLCAKQEAgLTMyNDcsMTAgKzMyNDcsMTAgQEAgSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3RyYWNlcG9pbnQuYwogIAl9CiAgICAgICAgaWYgKEJMT0NLX0ZVTkNU SU9OIChibG9jaykpCiAgCWJyZWFrOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3R5 cGVwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdHlwZXByaW50LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIw MTUtMDEtMDYgMjI6NDQ6NDEuNTUwMzE4OTIxICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTEzMjY4ODMgKzAxMDAKKy0t LSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDEtMjUgMDg6 Mzk6MTAuODcxNDY3MDc5ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdHlwZXBy aW50LmMJMjAxNS0wMS0yNSAwODozOToxNC42ODY0ODM1MjMgKzAxMDAKIEBAIC00MDIsNyArNDAy LDcgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKICAgIHN0cnVjdCB0eXBlICpy ZWFsX3R5cGUgPSBOVUxMOwogICAgc3RydWN0IHR5cGUgKnR5cGU7CkBAIC0zMjYwLDEwICszMjYw LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90eXBlcHJpbnQuYwogICAgaW50 IHVzaW5nX2VuYyA9IDA7CiAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogICAg c3RydWN0IHR5cGVfcHJpbnRfb3B0aW9ucyBmbGFncyA9IGRlZmF1bHRfcHR5cGVfZmxhZ3M7Ci1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYworSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjUvZ2RiL3ZhbGFyaXRoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NTAzMTg5MjEg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYg MjI6NDU6NTQuMDExNjcwNTEyICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dk Yi92YWxhcml0aC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODcyNDY3MDg0ICswMTAwCisrKysgZ2Ri LTcuOC45MC4yMDE1MDEyNS9nZGIvdmFsYXJpdGguYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NjQ4 MzUyMyArMDEwMAogQEAgLTE4OCwxMiArMTg4LDEzIEBAIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0 IHZhbHVlICphcnJheSwgTE8KICAgICB0byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMuICAq LwogIApAQCAtMzMyMywxMCArMzMyMywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdmFsYXJpdGguYwogIAogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsb3BzLmMKK0luZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi92YWxvcHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NTUzMTg5NDUgKzAxMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxvcHMuYwkyMDE1LTAxLTA2IDIyOjQ0OjQz LjE5MjMyNjg4OCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvdmFsb3Bz LmMJMjAxNS0wMS0yNSAwODozOToxMC44Nzc0NjcxMDUgKzAxMDAKKysrKyBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi92YWxvcHMuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4NzQ4MzUyNyArMDEwMAog QEAgLTQ3LDExICs0NywxMSBAQCBzdGF0aWMgaW50IHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQg dmFyCiAgCQkgICAgc3RydWN0IGZpZWxkIHQxW10sIHN0cnVjdCB2YWx1ZSAqdDJbXSk7CiAgCkBA IC0zNjQ1LDEwICszNjQ1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxv cHMuYwogICAgaW50IHVzaW5nX2VuYyA9IDA7CiAgICBzdHJ1Y3QgdmFsdWUgKm5ld192YWw7CiAg Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFscHJpbnQuYworSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NTczMTg5 NTUgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5jCTIwMTUtMDEt MDYgMjI6NDQ6NDMuMTkzMzI2ODkzICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmln L2dkYi92YWxwcmludC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODc5NDY3MTE0ICswMTAwCisrKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdmFscHJpbnQuYwkyMDE1LTAxLTI1IDA4OjM5OjE0LjY4 ODQ4MzUzMSArMDEwMAogQEAgLTI5OCw3ICsyOTgsNyBAQCB2YWxfcHJpbnRfc2NhbGFyX3R5cGVf cCAoc3RydWN0IHR5cGUgKnR5CiAgaW50CiAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVj dCB1aV9maWxlICpzdHJlYW0sCkBAIC0zNzQxLDEwICszNzQxLDEwIEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5jCiAgCQkgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBp bnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJt aW5hdG9yLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK LUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5oCitJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNS9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU1NzMxODk1 NSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0w NiAyMjo0NDo0My4xOTMzMjY4OTMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcv Z2RiL3ZhbHByaW50LmgJMjAxNS0wMS0yNSAwODozOToxMC44ODA0NjcxMTggKzAxMDAKKysrKyBn ZGItNy44LjkwLjIwMTUwMTI1L2dkYi92YWxwcmludC5oCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjg4 NDgzNTMxICswMTAwCiBAQCAtMTE1LDExICsxMTUsMTEgQEAgZXh0ZXJuIHZvaWQgbWF5YmVfcHJp bnRfYXJyYXlfaW5kZXggKHN0cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICopOwpAQCAtMzc5NSwxMCArMzc5NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdmFscHJpbnQuaAogIAkJCSAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5n LCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkJICAgICAgaW50IHF1b3RlX2NoYXIsIGludCBjX3N0 eWxlX3Rlcm1pbmF0b3IsCiAgCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMKK0lu ZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTYy MzE4OTc5ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsdWUuYwkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE5NDMyNjg5OCArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3Jp Zy9nZGIvdmFsdWUuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg4NTQ2NzE0MCArMDEwMAorKysrIGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0yNSAwODozOToxNC42ODk0ODM1 MzYgKzAxMDAKIEBAIC02NiwxMCArNjYsMTAgQEAgc3RydWN0IGludGVybmFsX2Z1bmN0aW9uCiAg c3RydWN0IHJhbmdlCiAgewpAQCAtNDEyOSwxMCArNDEyOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdmFsdWUuYwogIAogICAgLyogTm9ybWFsaXplIEJJVFBPUy4gICovCiAg ICBhZGRyICs9IGJpdHBvcyAvIDg7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFs dWUuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3ZhbHVlLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNS0wMS0wNiAyMjo0 NDo0MS41NjMzMTg5ODQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWx1ZS5o CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk1MzI2OTAzICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi92YWx1ZS5oCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODg3NDY3MTQ4ICswMTAw CisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdmFsdWUuaAkyMDE1LTAxLTI1IDA4OjM5OjE0 LjY5MDQ4MzU0MCArMDEwMAogQEAgLTEzMSw4ICsxMzEsOCBAQCBleHRlcm4gdm9pZCBzZXRfdmFs dWVfcGFyZW50IChzdHJ1Y3QgdmFsCiAgICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJl LiAgTm90ZSBhbHNvIHRoZSBtZW1iZXIKICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwpA QCAtNDM3MywxMCArNDM3MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFs dWUuaAogIAogIC8qIFVzZXIgZnVuY3Rpb24gaGFuZGxlci4gICovCiAgCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvczM5MC1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjUvZ2RiL3MzOTAtbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NjQz MTg5ODkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zMzkwLWxpbnV4LW5hdC5j CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk1MzI2OTAzICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1 MDEyNS5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODg3NDY3 MTQ4ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvczM5MC1saW51eC1uYXQuYwky MDE1LTAxLTI1IDA4OjM5OjE0LjY5MDQ4MzU0MCArMDEwMAogQEAgLTU0NCw3ICs1NDQsNyBAQCBz MzkwX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0IHRhcmdlCiAgCiAgc3RhdGljIGludApA QCAtNDM4NiwxMCArNDM4NiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvczM5 MC1saW51eC1uYXQuYwogIHsKICAgIHJldHVybiAxOwogIH0KLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9leHRlbnNpb24tcHJpdi5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9n ZGIvZXh0ZW5zaW9uLXByaXYuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvZXh0ZW5zaW9uLXByaXYuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NDMxODk4OSAr MDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0w MS0wNiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9y aWcvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0wMS0yNSAwODozOToxMC44ODc0NjcxNDggKzAx MDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMDEt MjUgMDg6Mzk6MTQuNjkwNDgzNTQwICswMTAwCiBAQCAtMTc1LDcgKzE3NSw3IEBAIHN0cnVjdCBl eHRlbnNpb25fbGFuZ3VhZ2Vfb3BzCiAgICBlbnVtIGV4dF9sYW5nX3JjICgqYXBwbHlfdmFsX3By ZXR0eV9wcmludGVyKQogICAgICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZu ICosCkBAIC00Mzk5LDEwICs0Mzk5LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9leHRlbnNpb24tcHJpdi5oCiAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKICAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZu ICpsYW5ndWFnZSk7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL3B5dGhv bi1pbnRlcm5hbC5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvcHl0aG9uL3B5dGhv bi1pbnRlcm5hbC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41NjQzMTg5ODkg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vcHl0aG9uLWludGVybmFs LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIw MTUwMTI1Lm9yaWcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTAxLTI1IDA4OjM5 OjEwLjg4ODQ2NzE1MyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3B5dGhvbi9w eXRob24taW50ZXJuYWwuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY5MTQ4MzU0NCArMDEwMAogQEAg LTMxMyw3ICszMTMsNyBAQCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9hZF9lbmFibGVkIChjb25z CiAgZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2RicHlfYXBwbHlfdmFsX3ByZXR0eV9wcmludGVy CiAgICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCkBAIC00NDEyLDEw ICs0NDEyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgKICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQt ZGVsZWdhdGVzLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi90YXJnZXQtZGVsZWdh dGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rhcmdl dC1kZWxlZ2F0ZXMuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NTMxODk5NCArMDEwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQzLjE5NjMyNjkwNyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvdGFy Z2V0LWRlbGVnYXRlcy5jCTIwMTUtMDEtMjUgMDg6Mzk6MTAuODg5NDY3MTU3ICswMTAwCisrKysg Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUtMDEtMjUgMDg6 Mzk6MTQuNjkxNDgzNTQ0ICswMTAwCiBAQCAtNjM0LDE0ICs2MzQsMTQgQEAgZGVidWdfd2F0Y2hw b2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydQogIH0KICAKQEAgLTQ0NDIsMTAgKzQ0NDIsMTAg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogICAg ZnB1dHNfdW5maWx0ZXJlZCAoIikgPSAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9kZWJ1Z19w cmludF9pbnQgKHJlc3VsdCk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9n KTsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCitJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQu YwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NTMxODk5NCArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTYzMjY5 MDcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgt bmF0LmMJMjAxNS0wMS0yNSAwODozOToxMC44ODk0NjcxNTcgKzAxMDAKKysrKyBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzk6MTQuNjky NDgzNTQ5ICswMTAwCiBAQCAtMTM4OSw3ICsxMzg5LDcgQEAgYWFyY2g2NF9saW51eF9yZW1vdmVf d2F0Y2hwb2ludCAoc3RydWN0CiAgCiAgc3RhdGljIGludApAQCAtNDQ1NSwxMCArNDQ1NSwxMCBA QCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsK ICAgIENPUkVfQUREUiBhbGlnbmVkX2FkZHI7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvbmF0L3g4Ni1kcmVncy5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0 L3g4Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9uYXQveDg2LWRyZWdzLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NjYzMTg5OTkgKzAxMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0wMS0wNiAyMjo0 NDo0My4xOTczMjY5MTIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL25h dC94ODYtZHJlZ3MuYwkyMDE1LTAxLTI1IDA4OjM5OjEwLjg5MDQ2NzE2MSArMDEwMAorKysrIGdk Yi03LjguOTAuMjAxNTAxMjUvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTAxLTI1IDA4OjM5OjE0 LjY5MjQ4MzU0OSArMDEwMAogQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWduZWRf d2F0Y2hwb2ludCAoc3RydWN0IHg4CiAgCiAgc3RhdGljIGludApAQCAtNDQ3NywxMCArNDQ3Nywx MCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgewog ICAgaW50IG5yZWdzOwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbXBpbGUv Y29tcGlsZS1jLXN1cHBvcnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbXBp bGUvY29tcGlsZS1jLXN1cHBvcnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDEuNTY2MzE4OTk5ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29tcGlsZS9j b21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk3MzI2OTEyICswMTAwCist LS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0 LmMJMjAxNS0wMS0yNSAwODozOToxMC44OTA0NjcxNjEgKzAxMDAKKysrKyBnZGItNy44LjkwLjIw MTUwMTI1L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMJMjAxNS0wMS0yNSAwODozOTox NC42OTI0ODM1NDkgKzAxMDAKIEBAIC0yNzcsMTEgKzI3NywxMSBAQCBnZW5lcmF0ZV9yZWdpc3Rl cl9zdHJ1Y3QgKHN0cnVjdCB1aV9maWxlCiAgCiAgCSAgICAgIGRlZmF1bHQ6CkBAIC00NDk1LDEw ICs0NDk1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21waWxlL2NvbXBp bGUtYy1zdXBwb3J0LmMKICAJICAgICAgfQogIAkgICAgZnB1dHNfdW5maWx0ZXJlZCAoIjtcbiIs IHN0cmVhbSk7CiAgCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L3g4Ni1kcmVn cy5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0L3g4Ni1kcmVncy5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJ MjAxNS0wMS0wNiAyMjo0NDo0MS41NjYzMTg5OTkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTczMjY5MTIgKzAx MDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE1 LTAxLTI1IDA4OjM5OjEwLjg5MDQ2NzE2MSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL25hdC94ODYtZHJlZ3MuaAkyMDE1LTAxLTI1IDA4OjM5OjE0LjY5MjQ4MzU0OSArMDEwMAog QEAgLTExMiw3ICsxMTIsNyBAQCBleHRlcm4gaW50IHg4Nl9kcl9yZW1vdmVfd2F0Y2hwb2ludCAo c3RyCiAgLyogUmV0dXJuIG5vbi16ZXJvIGlmIHdlIGNhbiB3YXRjaCBhIG1lbW9yeSByZWdpb24g dGhhdCBzdGFydHMgYXQKICAgICBhZGRyZXNzIEFERFIgYW5kIHdob3NlIGxlbmd0aCBpcyBMRU4g Ynl0ZXMuICAqLwpAQCAtNDUwOCwxMCArNDUwOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbmF0L3g4Ni1kcmVncy5oCiAgCiAgLyogSWYgdGhlIGluZmVyaW9yIGhhcyBzb21l IGJyZWFrL3dhdGNocG9pbnQgdGhhdCB0cmlnZ2VyZWQsIHNldCB0aGUKICAgICBhZGRyZXNzIGFz c29jaWF0ZWQgd2l0aCB0aGF0IGJyZWFrL3dhdGNocG9pbnQgYW5kIHJldHVybiB0cnVlLgotSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3g4Ni1uYXQuYworSW5kZXg6IGdkYi03LjguOTAu MjAxNTAxMjUvZ2RiL3g4Ni1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIveDg2LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTY2MzE4OTk5ICswMTAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIveDg2LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6 NDMuMTk3MzI2OTEyICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi94ODYt bmF0LmMJMjAxNS0wMS0yNSAwODozOToxMC44OTA0NjcxNjEgKzAxMDAKKysrKyBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi94ODYtbmF0LmMJMjAxNS0wMS0yNSAwODozOToxNC42OTM0ODM1NTMgKzAx MDAKIEBAIC0xNzgsNyArMTc4LDcgQEAgeDg2X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFy Z2V0X29wcwogIAogIHN0YXRpYyBpbnQKCmRpZmYgLS1naXQgYS9nZGItc2xvdy1nc3RhY2stcGVy Zm9ybWFuY2UucGF0Y2ggYi9nZGItc2xvdy1nc3RhY2stcGVyZm9ybWFuY2UucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4OTVlN2YuLjAwMDAwMDAKLS0tIGEvZ2RiLXNsb3ct Z3N0YWNrLXBlcmZvcm1hbmNlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQ5ICswLDAgQEAK LURhdGU6IFRodSwgMiBPY3QgMjAxNCAxNzo1Njo1MyArMDIwMAotRnJvbTogSmFuIEtyYXRvY2h2 aWwgPGphbiBkb3Qga3JhdG9jaHZpbCBhdCByZWRoYXQgZG90IGNvbT4KLVRvOiBEb3VnIEV2YW5z IDxkamUgYXQgZ29vZ2xlIGRvdCBjb20+Ci1DYzogZ2RiLXBhdGNoZXMgYXQgc291cmNld2FyZSBk b3Qgb3JnCi1TdWJqZWN0OiBbcGF0Y2h2Ml0gRml4IDEwMHggc2xvd2Rvd24gcmVncmVzc2lvbiBv biBEV1ogZmlsZXMKLU1lc3NhZ2UtSUQ6IDwyMDE0MTAwMjE1NTY1My5HQTkwMDFAaG9zdDIuamFu a3JhdG9jaHZpbC5uZXQ+Ci0KLS0tY05keG5Ia1g1UXFzeUEwZQotQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQot T24gVGh1LCAwMiBPY3QgMjAxNCAwMTo1MTozOCArMDIwMCwgRG91ZyBFdmFucyB3cm90ZToKLT4g SSB0ZXN0ZWQgdGhpcyBwYXRjaCB3aXRoIC0tdGFyZ2V0X2JvYXJkPWR3YXJmNC1nZGItaW5kZXgK LT4gYW5kIGdvdCBhIGZhaWx1cmUgaW4gbS1zdGF0aWMuZXhwOgotCi1UaGF0IGlzIHBhcnRpY3Vs YXJseSB3aXRoIC1mZGVidWctdHlwZXMtc2VjdGlvbi4KLQotCi0+IFR5cGUgdW5pdHMgcmVhZCB0 aGUgbGluZSB0YWJsZSBpbiBhIHNlcGFyYXRlIHBhdGgsCi0KLU9LLCB0aGVyZWZvcmUgSSBkcm9w cGVkIHRoYXQgc2VwYXJhdGUgc3RydWN0IGR3YXJmMl9saW5laW5mbwotYW5kIHJldXNlZCBzdHJ1 Y3QgbGluZV9oZWFkZXIgaW5zdGVhZC4KLQotCi0+IE9UT0gsIEkgZG8gd2FudCB0byBhdm9pZCBh bnkgY29uZnVzaW9uIHRoYXQgdGhpcyBwYXRjaCBtYXkgaW5hZHZlcnRlbnRseQotPiBpbnRyb2R1 Y2UuIEZvciBleGFtcGxlLCBJSVVDIHdpdGggeW91ciBwYXRjaCBhcyBpcywKLT4gaWYgd2UgcmVh ZCBhIHBhcnRpYWxfdW5pdCBmaXJzdCwgYmVmb3JlIGEgY29tcGlsZV91bml0Ci0+IHRoYXQgaGFz IHRoZSBzYW1lIHN0bXRfbGlzdCB2YWx1ZSwgd2UnbGwgZG8gbW9yZSBwcm9jZXNzaW5nIGluCi0+ IGR3YXJmX2RlY29kZV9saW5lcyB0aGFuIHdlIHJlYWxseSBuZWVkIHRvIHNpbmNlIHdlIG9ubHkg bmVlZCBhIGZpbGUKLT4gbnVtYmVyIHRvIHN5bXRhYiBtYXBwaW5nLiBBbmQgaWYgd2UgbGF0ZXIg cmVhZCBpbiBhIGNvbXBpbGVfdW5pdAotPiB3aXRoIHRoZSBzYW1lIHN0bXRfdmFsdWUgd2UnbGwg Y2FsbCBkd2FyZl9kZWNvZGVfbGluZXMgYWdhaW4sCi0+IGFuZCB0aGlzIHRpbWUgd2UgbmVlZCB0 aGUgcGMvbGluZSBtYXBwaW5nIGl0IGNvbXB1dGVzLgotPiBXaGVyZWFzIGlmIHdlIHByb2Nlc3Mg dGhlc2UgaW4gdGhlIG9wcG9zaXRlIG9yZGVyIHdlJ2xsIG9ubHkgY2FsbAotPiBkd2FyZl9kZWNv ZGVfbGluZXMgb25jZS4gSSdtIHN1cmUgdGhpcyB3aWxsIGJlIGNvbmZ1c2luZyBhdCBmaXJzdAot PiB0byBzb21lIGxhdGVyIGRldmVsb3BlciBnb2luZyB0aHJvdWdoIHRoaXMgY29kZS4KLT4gW0kg Y291bGQgYmUgbWlzc2luZyBzb21ldGhpbmcgb2YgY291cnNlLCBhbmQgSSdtIGhhcHB5IGZvciBh bnkgY29ycmVjdGlvbnMuXQotCi1JbXBsZW1lbnRlZCAob21pdHRpbmcgc29tZSBzdG9yeSB3aHkg SSBkaWQgbm90IGluY2x1ZGUgaXQgYmVmb3JlKS4KLQotCi0+IFRoZSBjb2RlIHRoYXQgcHJvY2Vz c2VzIHN0bXRfbGlzdCBmb3IgdHlwZV91bml0cyBpcyBpbiBzZXR1cF90eXBlX3VuaXRfZ3JvdXBz LgotPiBOb3RlIHRoYXQgdGhpcyBjb2RlIGdvZXMgdG8gdGhlIHRyb3VibGUgb2YgcmUtaW5pdGlh bGl6aW5nIHRoZSBidWlsZHN5bQotPiBtYWNoaW5lcnkgKHNlZSB0aGUgY2FsbHMgdG8gcmVzdGFy dF9zeW10YWIgaW4gZHdhcmYycmVhZC5jKSB3aGVuIHdlIHByb2Nlc3MKLT4gdGhlIHNlY29uZCBh bmQgc3Vic2VxdWVudCB0eXBlIHVuaXRzIHRoYXQgc2hhcmUgYSBzdG10X2xpc3QgdmFsdWUuCi0+ IFRoaXMgaXMgc29tZXRoaW5nIHRoYXQgdXNlZCB0byBiZSBkb25lIGJlZm9yZSB5b3VyIHBhdGNo IGFuZCB3aWxsIG5vCi0+IGxvbmdlciBiZSBkb25lIHdpdGggeW91ciBwYXRjaCAoc2luY2UgaWYg d2UgZ2V0IGEgY2FjaGUgaGl0IHdlIGV4aXQpLgotPiBJdCBtYXkgYmUgdGhhdCB0aGUgdHlwZV91 bml0IHN1cHBvcnQgaXMgZG9pbmcgdGhpcyB1bm5lY2Vzc2FyaWx5LAotPiB3aGljaCB3b3VsZCBi ZSBncmVhdCBiZWNhdXNlIHdlIGNhbiB0aGVuIHNpbXBsaWZ5IGl0LgotCi1JIGhvcGUgdGhpcyBw YXRjaCBzaG91bGQgbm8gbG9uZ2VyIGJyZWFrIC1mZGVidWctdHlwZXMtc2VjdGlvbi4KLUlmIGl0 IGFkZGl0aW9uYWxseSBlbmFibGVzIHNvbWUgZnV0dXJlIG9wdGltaXphdGlvbiBmb3IgLWZkZWJ1 Zy10eXBlcy1zZWN0aW9uCi10aGUgYmV0dGVyLgotCi0KLT4gID4gKyAgLyogT2Zmc2V0IG9mIGxp bmUgbnVtYmVyIGluZm9ybWF0aW9uIGluIC5kZWJ1Z19saW5lIHNlY3Rpb24uICAqLwotPiAgPiAr ICBzZWN0X29mZnNldCBvZmZzZXQ7Ci0+ICA+ICsgIHVuc2lnbmVkIG9mZnNldF9pbl9kd3ogOiAx OwotPiAKLT4gSVdCTiB0byBkb2N1bWVudCB3aHkgb2Zmc2V0X2luX2R3eiBpcyBoZXJlLgotPiBJ dCdzIG5vdCBvYnZpb3VzIHdoeSBpdCdzIG5lZWRlZC4KLSsKLU9uIFRodSwgMDIgT2N0IDIwMTQg MDE6NTc6MDMgKzAyMDAsIERvdWcgRXZhbnMgd3JvdGU6Ci0+IEFoLCBJIGd1ZXNzIHRoZSBvZmZz ZXRfaW5fZHd6IGZsYWcgd2lsbCBlbnN1cmUgZHdhcmZfZGVjb2RlX2xpbmVzIGdldHMgY2FsbGVk Ci0+IHR3aWNlIHJlZ2FyZGxlc3Mgb2Ygb3JkZXIuICBCdXQgaXMgdGhhdCB0aGUgb25seSByZWFz b24gZm9yIHRoZSBmbGFnPwotCi1JIGhhdmUgYWRkZWQgdGhlcmUgbm93OgotKyAgLyogT0ZGU0VU IGlzIGZvciBzdHJ1Y3QgZHd6X2ZpbGUgYXNzb2NpYXRlZCB3aXRoIGR3YXJmMl9wZXJfb2JqZmls ZS4gICovCi0KLUlmIG9uZSByZW1vdmVzIGl0IHJlZ3Jlc3Npb25zIHJlYWxseSBoYXBwZW4uICBX aGF0IGhhcHBlbnMgaXMgdGhhdCB0aGlzCi1saW5lX2hlYWRlcl9oYXNoIChmb3JtZXIgbGluZWlu Zm9faGFzaCkgaXMgaW4gc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSB3aGljaAotaXMgY29tbW9u IGZvciBib3RoIG9iamZpbGUgYW5kIGl0cyBvYmpmaWxlLmR3eiAodGhhdCBvbmUgaXMgbm9ybWFs bHkgaW4KLS91c3IvbGliL2RlYnVnLy5kd3ovIC0gY29tbW9uIGZvciBtdWx0aXBsZSBvYmpmaWxl cykuICBBbmQgdGhlcmUgYXJlIHR3bwotZGlmZmVyZW50IERJRXMgYXQgb2Zmc2V0IDB4YiAtIG9u ZSBpbiBvYmpmaWxlIGFuZCBvbmUgaW4gb2JqZmlsZS5kd3ogLSB3aGljaAotd291bGQgbWF0Y2gg c2luZ2xlIGxpbmVfaGVhZGVyIGlmIG9mZnNldF9pbl9kd3ogd2FzIG5vdCB0aGVyZS4KLQotQWxz byBleGlzdGluZyBkd2FyZjJyZWFkLmMgY29kZSB1c3VhbGx5IHRyYW5zZmVycyAiZHd6IGZsYWci IHRvZ2V0aGVyIHdpdGggRElFCi1vZmZzZXQsIHN1Y2ggYXM6Ci0JZHdhcmYyX2ZpbmRfY29udGFp bmluZ19jb21wX3VuaXQgKHNlY3Rfb2Zmc2V0IG9mZnNldCwKLQkJCQkJICB1bnNpZ25lZCBpbnQg b2Zmc2V0X2luX2R3eiwKLQkJCQkJICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKLVRoaXMgcmVt aW5kcyBtZSAtIHdoeSBkb2Vzbid0IHNpbWlsYXIgYW1iaWd1aXR5IGhhcHBlbiBhbHNvIGZvciBk d3BfZmlsZT8KLUkgYW0gdW5mb3J0dW5hdGVseSBub3QgbXVjaCBhd2FyZSBvZiB0aGUgZHdwIGlt cGxlbWVudGF0aW9uIGRldGFpbHMuCi0KLQotPiAgPiAtICAgICAgc3RydWN0IGxpbmVfaGVhZGVy ICpsaW5lX2hlYWRlcgotPiAgPiAtCT0gZHdhcmZfZGVjb2RlX2xpbmVfaGVhZGVyIChsaW5lX29m ZnNldCwgY3UpOwotPiAgPiArICAgICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5saW5laW5mb19oYXNo ID0KLT4gCi0+IEFzIG11Y2ggYXMgSSBwcmVmZXIgIj0iIGdvaW5nIGhlcmUsIGNvbnZlbnRpb24g c2F5cyB0byBwdXQgaXQgb24gdGhlCi0+IG5leHQgbGluZS4KLQotSSBoYXZlIGNoYW5nZWQgaXQg YnV0IHRoaXMgd2FzIGp1c3QgYmxpbmQgY29weSBmcm9tIGV4aXN0aW5nIGxpbmUgMjE4MTguCi0K LQotPiAgPiArCWh0YWJfY3JlYXRlX2FsbG9jX2V4ICgxMjcsIGR3YXJmMl9saW5laW5mb19oYXNo LCBkd2FyZjJfbGluZWluZm9fZXEsCi0+IAotPiBJIGRvbid0IGhhdmUgYW55IGRhdGEsIGJ1dCAx Mjcgc2VlbXMgaGlnaC4KLQotSSBoYXZlIG5vdCBjaGFuZ2VkIGl0IGJ1dCB0aGlzIHdhcyBqdXN0 IGJsaW5kIGNvcHkgZnJvbSBleGlzdGluZyBsaW5lIDIxODE4LgotCi0KLT4gSSB3b3VsZG4ndCBj aGFuZ2UgaXQsIEkganVzdCB3YW50ZWQgdG8gYXNrIGlmIHlvdSBoYXZlIGFueSBkYXRhCi0+IGd1 aWRpbmcgdGhpcyBjaG9pY2UuCi0KLVR1bmluZyBzb21lIGNvbnN0YW50cyByZWFsbHkgbWFrZXMg bm8gc2Vuc2Ugd2hlbiBHREIgaGFzIG1pc3NpbmcgKyBpbnNhbmVseQotY29tcGxpY2F0ZWQgZGF0 YSBzdHJ1Y3R1cmVzIGFuZCBpbiBjb25zZXF1ZW5jZSBHREIgaXMgdXNpbmcgaW5hcHByb3ByaWF0 ZSBkYXRhCi1zdHJ1Y3R1cmVzIHdpdGggYmFkIGFsZ29yaXRobWljIGNvbXBsZXhpdHkuICBPbmUg bmVlZHMgdG8gc3dpdGNoIEdEQiB0byBDKysKLWFuZCBpdHMgU1RMIGJlZm9yZSBvbmUgY2FuIHN0 YXJ0IHRhbGtpbmcgYWJvdXQgZGF0YSBzdHJ1Y3R1cmVzIHBlcmZvcm1hbmNlLgotCi0KLU5vIHJl Z3Jlc3Npb25zIG9uIHt4ODZfNjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmEyMC1saW51eC1nbnUg aW4gRFdaIG1vZGUgYW5kCi1pbiAtZmRlYnVnLXR5cGVzLXNlY3Rpb24gbW9kZS4KLQotCi1UaGFu a3MsCi1KYW4KLQotLS1jTmR4bkhrWDVRcXN5QTBlCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47 IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9 InBhcnRpYWx1bml0NS5wYXRjaCIKLQotZ2RiLwotMjAxNC0xMC0wMiAgSmFuIEtyYXRvY2h2aWwg IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JRml4IDEwMHggc2xvd2Rvd24gcmVncmVz c2lvbiBvbiBEV1ogZmlsZXMuCi0JKiBkd2FyZjJyZWFkLmMgKHN0cnVjdCBkd2FyZjJfcGVyX29i amZpbGUpOiBBZGQgbGluZV9oZWFkZXJfaGFzaC4KLQkoc3RydWN0IGxpbmVfaGVhZGVyKTogQWRk IG9mZnNldCBhbmQgb2Zmc2V0X2luX2R3ei4KLQkoZHdhcmZfZGVjb2RlX2xpbmVzKTogQWRkIHBh cmFtZXRlciBkZWNvZGVfbWFwcGluZyB0byB0aGUgZGVjbGFyYXRpb24uCi0JKGZyZWVfbGluZV9o ZWFkZXJfdm9pZHApOiBOZXcgZGVjbGFyYXRpb24uCi0JKGxpbmVfaGVhZGVyX2hhc2gsIGxpbmVf aGVhZGVyX2VxKTogTmV3IGZ1bmN0aW9ucy4KLQkoZHdhcmYyX2J1aWxkX2luY2x1ZGVfcHN5bXRh YnMpOiBVcGRhdGUgZHdhcmZfZGVjb2RlX2xpbmVzIGNhbGxlci4KLQkoaGFuZGxlX0RXX0FUX3N0 bXRfbGlzdCk6IFVzZSBkd2FyZjJfcGVyX29iamZpbGUtPmxpbmVfaGVhZGVyX2hhc2guCi0JKGZy ZWVfbGluZV9oZWFkZXJfdm9pZHApOiBOZXcgZnVuY3Rpb24uCi0JKGR3YXJmX2RlY29kZV9saW5l X2hlYWRlcik6IEluaXRpYWxpemUgb2Zmc2V0IGFuZCBvZmZzZXRfaW5fZHd6LgotCShkd2FyZl9k ZWNvZGVfbGluZXMpOiBOZXcgcGFyYW1ldGVyIGRlY29kZV9tYXBwaW5nLCB1c2UgaXQuCi0KLUlu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA1IDIy OjQ1OjMyLjgyMzI0MDQ1MyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJm MnJlYWQuYwkyMDE1LTAxLTA1IDIyOjQ5OjM1LjI3MDMzMjY0NyArMDEwMAotQEAgLTMwOSw2ICsz MDksOSBAQCBzdHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlCi0gCi0gICAvKiBUaGUgQ1VzIHdlIHJl Y2VudGx5IHJlYWQuICAqLwotICAgVkVDIChkd2FyZjJfcGVyX2N1X3B0cikgKmp1c3RfcmVhZF9j dXM7Ci0rCi0rICAvKiBUYWJsZSBjb250YWluaW5nIGxpbmVfaGVhZGVyIGluZGV4ZWQgYnkgb2Zm c2V0IGFuZCBvZmZzZXRfaW5fZHd6LiAgKi8KLSsgIGh0YWJfdCBsaW5lX2hlYWRlcl9oYXNoOwot IH07Ci0gCi0gc3RhdGljIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmR3YXJmMl9wZXJfb2Jq ZmlsZTsKLUBAIC0xMDI1LDYgKzEwMjgsMTIgQEAgdHlwZWRlZiB2b2lkIChkaWVfcmVhZGVyX2Z1 bmNfZnR5cGUpIChjbwotICAgIHdoaWNoIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRp b24uICAqLwotIHN0cnVjdCBsaW5lX2hlYWRlcgotIHsKLSsgIC8qIE9mZnNldCBvZiBsaW5lIG51 bWJlciBpbmZvcm1hdGlvbiBpbiAuZGVidWdfbGluZSBzZWN0aW9uLiAgKi8KLSsgIHNlY3Rfb2Zm c2V0IG9mZnNldDsKLSsKLSsgIC8qIE9GRlNFVCBpcyBmb3Igc3RydWN0IGR3el9maWxlIGFzc29j aWF0ZWQgd2l0aCBkd2FyZjJfcGVyX29iamZpbGUuICAqLwotKyAgdW5zaWduZWQgb2Zmc2V0X2lu X2R3eiA6IDE7Ci0rCi0gICB1bnNpZ25lZCBpbnQgdG90YWxfbGVuZ3RoOwotICAgdW5zaWduZWQg c2hvcnQgdmVyc2lvbjsKLSAgIHVuc2lnbmVkIGludCBoZWFkZXJfbGVuZ3RoOwotQEAgLTE1MTMs NyArMTUyMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgbGluZV9oZWFkZXIgKmR3YXJmX2RlY29kZV8KLSAK LSBzdGF0aWMgdm9pZCBkd2FyZl9kZWNvZGVfbGluZXMgKHN0cnVjdCBsaW5lX2hlYWRlciAqLCBj b25zdCBjaGFyICosCi0gCQkJCXN0cnVjdCBkd2FyZjJfY3UgKiwgc3RydWN0IHBhcnRpYWxfc3lt dGFiICosCi0tCQkJCUNPUkVfQUREUik7Ci0rCQkJCUNPUkVfQUREUiwgaW50IGRlY29kZV9tYXBw aW5nKTsKLSAKLSBzdGF0aWMgdm9pZCBkd2FyZjJfc3RhcnRfc3ViZmlsZSAoY29uc3QgY2hhciAq LCBjb25zdCBjaGFyICopOwotIAotQEAgLTIwNTcsNiArMjA2Niw4IEBAIGdldF9zZWN0aW9uX2Zp bGVfbmFtZSAoY29uc3Qgc3RydWN0IGR3YXIKLSAvKiBSZXR1cm4gdGhlIGlkIG9mIFNFQ1RJT04u Ci0gICAgUmV0dXJucyAwIGlmIFNFQ1RJT04gZG9lc24ndCBleGlzdC4gICovCi0gCi0rc3RhdGlj IHZvaWQgZnJlZV9saW5lX2hlYWRlcl92b2lkcCAodm9pZCAqYXJnKTsKLSsKLSBzdGF0aWMgaW50 Ci0gZ2V0X3NlY3Rpb25faWQgKGNvbnN0IHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICpzZWN0 aW9uKQotIHsKLUBAIC0yNDYxLDYgKzI0NzIsMjkgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAodm9p ZCkKLSAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+ZHd6X2ZpbGUgPSByZXN1bHQ7Ci0gICByZXR1cm4g cmVzdWx0OwotIH0KLSsKLSsvKiBIYXNoIGZ1bmN0aW9uIGZvciBsaW5lX2hlYWRlcl9oYXNoLiAg Ki8KLSsKLStzdGF0aWMgaGFzaHZhbF90Ci0rbGluZV9oZWFkZXJfaGFzaCAoY29uc3Qgdm9pZCAq aXRlbSkKLSt7Ci0rICBjb25zdCBzdHJ1Y3QgbGluZV9oZWFkZXIgKm9mcyA9IGl0ZW07Ci0rCi0r ICByZXR1cm4gb2ZzLT5vZmZzZXQuc2VjdF9vZmYgXiBvZnMtPm9mZnNldF9pbl9kd3o7Ci0rfQot KwotKy8qIEVxdWFsaXR5IGZ1bmN0aW9uIGZvciBsaW5lX2hlYWRlcl9oYXNoLiAgKi8KLSsKLStz dGF0aWMgaW50Ci0rbGluZV9oZWFkZXJfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2 b2lkICppdGVtX3JocykKLSt7Ci0rICBjb25zdCBzdHJ1Y3QgbGluZV9oZWFkZXIgKm9mc19saHMg PSBpdGVtX2xoczsKLSsgIGNvbnN0IHN0cnVjdCBsaW5lX2hlYWRlciAqb2ZzX3JocyA9IGl0ZW1f cmhzOwotKwotKyAgcmV0dXJuIChvZnNfbGhzLT5vZmZzZXQuc2VjdF9vZmYgPT0gb2ZzX3Jocy0+ b2Zmc2V0LnNlY3Rfb2ZmCi0rCSAgJiYgb2ZzX2xocy0+b2Zmc2V0X2luX2R3eiA9PSBvZnNfcmhz LT5vZmZzZXRfaW5fZHd6KTsKLSt9Ci0rCi0gDAotIC8qIERXQVJGIHF1aWNrX3N5bWJvbHNfZnVu Y3Rpb25zIHN1cHBvcnQuICAqLwotIAotQEAgLTQ0NTQsNyArNDQ4OCw3IEBAIGR3YXJmMl9idWls ZF9pbmNsdWRlX3BzeW10YWJzIChzdHJ1Y3QgZHcKLSAgICAgcmV0dXJuOyAgLyogTm8gbGluZXRh YmxlLCBzbyBubyBpbmNsdWRlcy4gICovCi0gCi0gICAvKiBOT1RFOiBwc3QtPmRpcm5hbWUgaXMg RFdfQVRfY29tcF9kaXIgKGlmIHByZXNlbnQpLiAgKi8KLS0gIGR3YXJmX2RlY29kZV9saW5lcyAo bGgsIHBzdC0+ZGlybmFtZSwgY3UsIHBzdCwgcHN0LT50ZXh0bG93KTsKLSsgIGR3YXJmX2RlY29k ZV9saW5lcyAobGgsIHBzdC0+ZGlybmFtZSwgY3UsIHBzdCwgcHN0LT50ZXh0bG93LCAxKTsKLSAK LSAgIGZyZWVfbGluZV9oZWFkZXIgKGxoKTsKLSB9Ci1AQCAtOTAwMiwyNCArOTAzNiw2NCBAQCBz dGF0aWMgdm9pZAotIGhhbmRsZV9EV19BVF9zdG10X2xpc3QgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLSAJCQljb25zdCBjaGFyICpjb21wX2RpciwgQ09SRV9B RERSIGxvd3BjKSAvKiBBUkk6IGVkaXRDYXNlIGZ1bmN0aW9uICovCi0gewotKyAgc3RydWN0IG9i amZpbGUgKm9iamZpbGUgPSBkd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGU7Ci0gICBzdHJ1Y3Qg YXR0cmlidXRlICphdHRyOwotKyAgdW5zaWduZWQgaW50IGxpbmVfb2Zmc2V0OwotKyAgc3RydWN0 IGxpbmVfaGVhZGVyICpsaW5lX2hlYWRlciwgbGluZV9oZWFkZXJfbG9jYWw7Ci0rICB1bnNpZ25l ZCB1OwotKyAgdm9pZCAqKnNsb3Q7Ci0rICBpbnQgZGVjb2RlX21hcHBpbmc7Ci0gCi0gICBnZGJf YXNzZXJ0ICghIGN1LT5wZXJfY3UtPmlzX2RlYnVnX3R5cGVzKTsKLSAKLSAgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9zdG10X2xpc3QsIGN1KTsKLS0gIGlmIChhdHRyKQotKyAgaWYg KGF0dHIgPT0gTlVMTCkKLSsgICAgcmV0dXJuOwotKwotKyAgbGluZV9vZmZzZXQgPSBEV19VTlNO RCAoYXR0cik7Ci0rCi0rICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5saW5lX2hlYWRlcl9oYXNo ID09IE5VTEwpCi0gICAgIHsKLS0gICAgICB1bnNpZ25lZCBpbnQgbGluZV9vZmZzZXQgPSBEV19V TlNORCAoYXR0cik7Ci0tICAgICAgc3RydWN0IGxpbmVfaGVhZGVyICpsaW5lX2hlYWRlcgotLQk9 IGR3YXJmX2RlY29kZV9saW5lX2hlYWRlciAobGluZV9vZmZzZXQsIGN1KTsKLS0KLS0gICAgICBp ZiAobGluZV9oZWFkZXIpCi0tCXsKLS0JICBjdS0+bGluZV9oZWFkZXIgPSBsaW5lX2hlYWRlcjsK LS0JICBtYWtlX2NsZWFudXAgKGZyZWVfY3VfbGluZV9oZWFkZXIsIGN1KTsKLS0JICBkd2FyZl9k ZWNvZGVfbGluZXMgKGxpbmVfaGVhZGVyLCBjb21wX2RpciwgY3UsIE5VTEwsIGxvd3BjKTsKLS0J fQotKyAgICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+bGluZV9oZWFkZXJfaGFzaAotKwk9IGh0YWJf Y3JlYXRlX2FsbG9jX2V4ICgxMjcsIGxpbmVfaGVhZGVyX2hhc2gsIGxpbmVfaGVhZGVyX2VxLAot KwkJCQlmcmVlX2xpbmVfaGVhZGVyX3ZvaWRwLAotKwkJCQkmb2JqZmlsZS0+b2JqZmlsZV9vYnN0 YWNrLAotKwkJCQloYXNodGFiX29ic3RhY2tfYWxsb2NhdGUsCi0rCQkJCWR1bW15X29ic3RhY2tf ZGVhbGxvY2F0ZSk7Ci0rICAgIH0KLSsKLSsgIGxpbmVfaGVhZGVyX2xvY2FsLm9mZnNldC5zZWN0 X29mZiA9IGxpbmVfb2Zmc2V0OwotKyAgbGluZV9oZWFkZXJfbG9jYWwub2Zmc2V0X2luX2R3eiA9 IGN1LT5wZXJfY3UtPmlzX2R3ejsKLSsgIHNsb3QgPSBodGFiX2ZpbmRfc2xvdCAoZHdhcmYyX3Bl cl9vYmpmaWxlLT5saW5lX2hlYWRlcl9oYXNoLAotKwkJCSAmbGluZV9oZWFkZXJfbG9jYWwsIE5P X0lOU0VSVCk7Ci0rCi0rICAvKiBGb3IgRFdfVEFHX2NvbXBpbGVfdW5pdCB3ZSBuZWVkIGluZm8g bGlrZSBzeW10YWI6OmxpbmV0YWJsZSB3aGljaAotKyAgICAgaXMgbm90IHByZXNlbnQgaW4gKlNM T1QuICAqLwotKyAgaWYgKGRpZS0+dGFnID09IERXX1RBR19wYXJ0aWFsX3VuaXQgJiYgc2xvdCAh PSBOVUxMKQotKyAgICB7Ci0rICAgICAgZ2RiX2Fzc2VydCAoKnNsb3QgIT0gTlVMTCk7Ci0rICAg ICAgY3UtPmxpbmVfaGVhZGVyID0gKnNsb3Q7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0r ICBsaW5lX2hlYWRlciA9IGR3YXJmX2RlY29kZV9saW5lX2hlYWRlciAobGluZV9vZmZzZXQsIGN1 KTsKLSsgIGlmIChsaW5lX2hlYWRlciA9PSBOVUxMKQotKyAgICByZXR1cm47Ci0rICBjdS0+bGlu ZV9oZWFkZXIgPSBsaW5lX2hlYWRlcjsKLSsKLSsgIHNsb3QgPSBodGFiX2ZpbmRfc2xvdCAoZHdh cmYyX3Blcl9vYmpmaWxlLT5saW5lX2hlYWRlcl9oYXNoLAotKwkJCSAmbGluZV9oZWFkZXJfbG9j YWwsIElOU0VSVCk7Ci0rICBnZGJfYXNzZXJ0IChzbG90ICE9IE5VTEwpOwotKyAgaWYgKCpzbG90 ID09IE5VTEwpCi0rICAgICpzbG90ID0gbGluZV9oZWFkZXI7Ci0rICBlbHNlCi0rICAgIHsKLSsg ICAgICBnZGJfYXNzZXJ0IChkaWUtPnRhZyAhPSBEV19UQUdfcGFydGlhbF91bml0KTsKLSsgICAg ICBtYWtlX2NsZWFudXAgKGZyZWVfY3VfbGluZV9oZWFkZXIsIGN1KTsKLSAgICAgfQotKyAgZGVj b2RlX21hcHBpbmcgPSAoZGllLT50YWcgIT0gRFdfVEFHX3BhcnRpYWxfdW5pdCk7Ci0rICBkd2Fy Zl9kZWNvZGVfbGluZXMgKGxpbmVfaGVhZGVyLCBjb21wX2RpciwgY3UsIE5VTEwsIGxvd3BjLAot KwkJICAgICAgZGVjb2RlX21hcHBpbmcpOwotIH0KLSAKLSAvKiBQcm9jZXNzIERXX1RBR19jb21w aWxlX3VuaXQgb3IgRFdfVEFHX3BhcnRpYWxfdW5pdC4gICovCi1AQCAtMTY5MTcsNiArMTY5OTEs MTYgQEAgZnJlZV9saW5lX2hlYWRlciAoc3RydWN0IGxpbmVfaGVhZGVyICpsaAotICAgeGZyZWUg KGxoKTsKLSB9Ci0gCi0rLyogU3R1YiBmb3IgZnJlZV9saW5lX2hlYWRlciB0byBtYXRjaCB2b2lk ICogY2FsbGJhY2sgdHlwZXMuICAqLwotKwotK3N0YXRpYyB2b2lkCi0rZnJlZV9saW5lX2hlYWRl cl92b2lkcCAodm9pZCAqYXJnKQotK3sKLSsgIHN0cnVjdCBsaW5lX2hlYWRlciAqbGggPSBhcmc7 Ci0rCi0rICBmcmVlX2xpbmVfaGVhZGVyIChsaCk7Ci0rfQotKwotIC8qIEFkZCBhbiBlbnRyeSB0 byBMSCdzIGluY2x1ZGUgZGlyZWN0b3J5IHRhYmxlLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotQEAg LTE3MDQ3LDYgKzE3MTMxLDkgQEAgZHdhcmZfZGVjb2RlX2xpbmVfaGVhZGVyICh1bnNpZ25lZCBp bnQgbwotICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoKG1ha2VfY2xlYW51cF9mdHlwZSAqKSBm cmVlX2xpbmVfaGVhZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgbGgp OwotIAotKyAgbGgtPm9mZnNldC5zZWN0X29mZiA9IG9mZnNldDsKLSsgIGxoLT5vZmZzZXRfaW5f ZHd6ID0gY3UtPnBlcl9jdS0+aXNfZHd6OwotKwotICAgbGluZV9wdHIgPSBzZWN0aW9uLT5idWZm ZXIgKyBvZmZzZXQ7Ci0gCi0gICAvKiBSZWFkIGluIHRoZSBoZWFkZXIuICAqLwotQEAgLTE3Njc0 LDE3ICsxNzc2MSwyMiBAQCBkd2FyZl9kZWNvZGVfbGluZXNfMSAoc3RydWN0IGxpbmVfaGVhZGVy Ci0gICAgRS5nLiBleHBhbmRfbGluZV9zYWwgcmVxdWlyZXMgdGhpcyB3aGVuIGZpbmRpbmcgcHN5 bXRhYnMgdG8gZXhwYW5kLgotICAgIEEgZ29vZCB0ZXN0Y2FzZSBmb3IgdGhpcyBpcyBtYi1pbmxp bmUuZXhwLgotIAotLSAgIExPV1BDIGlzIHRoZSBsb3dlc3QgYWRkcmVzcyBpbiBDVSAob3IgMCBp ZiBub3Qga25vd24pLiAgKi8KLSsgICBMT1dQQyBpcyB0aGUgbG93ZXN0IGFkZHJlc3MgaW4gQ1Ug KG9yIDAgaWYgbm90IGtub3duKS4KLSsKLSsgICBCb29sZWFuIERFQ09ERV9NQVBQSU5HIHNwZWNp ZmllcyB3ZSBuZWVkIHRvIGZ1bGx5IGRlY29kZSAuZGVidWdfbGluZQotKyAgIGZvciBpdHMgUEM8 LT5saW5lcyBtYXBwaW5nIGluZm9ybWF0aW9uLiAgT3RoZXJ3aXNlIG9ubHkgZmlsZW5hbWVzCi0r ICAgdGFibGVzIGlzIHJlYWQgaW4uICAqLwotIAotIHN0YXRpYyB2b2lkCi0gZHdhcmZfZGVjb2Rl X2xpbmVzIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCBjb25zdCBjaGFyICpjb21wX2RpciwKLSAJ CSAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QsCi0t CQkgICAgQ09SRV9BRERSIGxvd3BjKQotKwkJICAgIENPUkVfQUREUiBsb3dwYywgaW50IGRlY29k ZV9tYXBwaW5nKQotIHsKLSAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7 Ci0gICBjb25zdCBpbnQgZGVjb2RlX2Zvcl9wc3RfcCA9IChwc3QgIT0gTlVMTCk7Ci0gCi0tICBk d2FyZl9kZWNvZGVfbGluZXNfMSAobGgsIGN1LCBkZWNvZGVfZm9yX3BzdF9wLCBsb3dwYyk7Ci0r ICBpZiAoZGVjb2RlX21hcHBpbmcpCi0rICAgIGR3YXJmX2RlY29kZV9saW5lc18xIChsaCwgY3Us IGRlY29kZV9mb3JfcHN0X3AsIGxvd3BjKTsKLSAKLSAgIGlmIChkZWNvZGVfZm9yX3BzdF9wKQot ICAgICB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXRla2hleC1yZWdyZXNzaW9uLXJldmVydC5wYXRjaCBi L2dkYi10ZWtoZXgtcmVncmVzc2lvbi1yZXZlcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDY4Mzc3NWYuLjAwMDAwMDAKLS0tIGEvZ2RiLXRla2hleC1yZWdyZXNzaW9uLXJl dmVydC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1MSArMCwwIEBACi0tUiBmb3IgODU4ODAy NTBlNTkxYTUxNjI0ZDI0ZGI2NTNhYWFjZTBjNWNlNTk0MwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9y Zy9naXQvZ2l0d2ViLmNnaT9wPWJpbnV0aWxzLWdkYi5naXQ7YT1jb21taXRkaWZmO2g9ODU4ODAy NTBlNTkxYTUxNjI0ZDI0ZGI2NTNhYWFjZTBjNWNlNTk0MztocD1mY2UxMGE4NDk0ZWZhOGZhZWMK LQotW2J1aWxkYm90XSBHREIgcmVncmVzc2lvbiBvbiA4NTg4MDI1MGU1OTFhNTE2MjRkMjRkYjY1 M2FhYWNlMGM1Y2U1OTQzCi1odHRwczovL3NvdXJjZXdhcmUub3JnL21sL2JpbnV0aWxzLzIwMTUt MDEvbXNnMDAwNDQuaHRtbAotCi1kaWZmIC0tZ2l0IGEvYmZkL2NvZmYtaTg2MC5jIGIvYmZkL2Nv ZmYtaTg2MC5jCi1pbmRleCA4NTczYThkLi4yMTIyYzBkIDEwMDY0NAotLS0tIGEvYmZkL2NvZmYt aTg2MC5jCi0rKysgYi9iZmQvY29mZi1pODYwLmMKLUBAIC00NjcsMTAgKzQ2Nyw3IEBAIHN0YXRp YyByZWxvY19ob3d0b190eXBlIGhvd3RvX3RhYmxlW10gPQotICAgIEZJWE1FOiBUaGlzIG1hY3Jv IHJlZmVycyB0byBzeW1ib2xzIGFuZCBhc2VjdDsgdGhlc2UgYXJlIGZyb20gdGhlCi0gICAgY2Fs bGluZyBmdW5jdGlvbiwgbm90IHRoZSBtYWNybyBhcmd1bWVudHMuICAqLwotIAotLS8qIFBSIDE3 NTEyOiBmaWxlOiAwYTM4ZmI3YwotLSAgIFNldCBhbiBhZGRlbmQgdmFsdWUsIGV2ZW4gaWYgaXQg aXMgbm90IGdvaW5nIHRvIGJlIHVzZWQuICBBIHRvb2wKLS0gICBsaWtlIGNvZmZkdW1wIG1pZ2h0 IGJlIHVzZWQgdG8gcHJpbnQgb3V0IHRoZSBjb250ZW50cyBvZiB0aGUgcmVsb2MuICAqLwotLSNk ZWZpbmUgQ0FMQ19BRERFTkQoYWJmZCwgcHRyLCByZWxvYywgY2FjaGVfcHRyKSAoY2FjaGVfcHRy KS0+YWRkZW5kID0gMAotKyNkZWZpbmUgQ0FMQ19BRERFTkQoYWJmZCwgcHRyLCByZWxvYywgY2Fj aGVfcHRyKQotIAotIC8qIFdlIHVzZSB0aGUgc3BlY2lhbCBDT0ZGIGJhY2tlbmQgbGlua2VyLiAg Ki8KLSAjZGVmaW5lIGNvZmZfcmVsb2NhdGVfc2VjdGlvbiBfYmZkX2NvZmZfZ2VuZXJpY19yZWxv Y2F0ZV9zZWN0aW9uCi1kaWZmIC0tZ2l0IGEvYmZkL3Rla2hleC5jIGIvYmZkL3Rla2hleC5jCi1p bmRleCA5NDQ0MTE3Li45NjliODEyIDEwMDY0NAotLS0tIGEvYmZkL3Rla2hleC5jCi0rKysgYi9i ZmQvdGVraGV4LmMKLUBAIC0yNjcsNyArMjY3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgdGVraGV4X2Rh dGFfc3RydWN0Ci0gI2RlZmluZSBlbmRhKHgpICh4LT52bWEgKyB4LT5zaXplKQotIAotIHN0YXRp YyBiZmRfYm9vbGVhbgotLWdldHZhbHVlIChjaGFyICoqc3JjcCwgYmZkX3ZtYSAqdmFsdWVwLCBj aGFyICogZW5kcCkKLStnZXR2YWx1ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCkKLSB7 Ci0gICBjaGFyICpzcmMgPSAqc3JjcDsKLSAgIGJmZF92bWEgdmFsdWUgPSAwOwotQEAgLTI3OSw3 ICsyNzksNyBAQCBnZXR2YWx1ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCwgY2hhciAq IGVuZHApCi0gICBsZW4gPSBoZXhfdmFsdWUgKCpzcmMrKyk7Ci0gICBpZiAobGVuID09IDApCi0g ICAgIGxlbiA9IDE2OwotLSAgd2hpbGUgKGxlbi0tICYmIHNyYyA8IGVuZHApCi0rICB3aGlsZSAo bGVuLS0pCi0gICAgIHsKLSAgICAgICBpZiAoIUlTSEVYICgqc3JjKSkKLSAJcmV0dXJuIEZBTFNF OwotQEAgLTI4OCwxMSArMjg4LDExIEBAIGdldHZhbHVlIChjaGFyICoqc3JjcCwgYmZkX3ZtYSAq dmFsdWVwLCBjaGFyICogZW5kcCkKLSAKLSAgICpzcmNwID0gc3JjOwotICAgKnZhbHVlcCA9IHZh bHVlOwotLSAgcmV0dXJuIGxlbiA9PSAwOwotKyAgcmV0dXJuIFRSVUU7Ci0gfQotIAotIHN0YXRp YyBiZmRfYm9vbGVhbgotLWdldHN5bSAoY2hhciAqZHN0cCwgY2hhciAqKnNyY3AsIHVuc2lnbmVk IGludCAqbGVucCwgY2hhciAqIGVuZHApCi0rZ2V0c3ltIChjaGFyICpkc3RwLCBjaGFyICoqc3Jj cCwgdW5zaWduZWQgaW50ICpsZW5wKQotIHsKLSAgIGNoYXIgKnNyYyA9ICpzcmNwOwotICAgdW5z aWduZWQgaW50IGk7Ci1AQCAtMzA0LDcgKzMwNCw3IEBAIGdldHN5bSAoY2hhciAqZHN0cCwgY2hh ciAqKnNyY3AsIHVuc2lnbmVkIGludCAqbGVucCwgY2hhciAqIGVuZHApCi0gICBsZW4gPSBoZXhf dmFsdWUgKCpzcmMrKyk7Ci0gICBpZiAobGVuID09IDApCi0gICAgIGxlbiA9IDE2OwotLSAgZm9y IChpID0gMDsgaSA8IGxlbiAmJiBzcmMgPCBlbmRwOyBpKyspCi0rICBmb3IgKGkgPSAwOyBpIDwg bGVuOyBpKyspCi0gICAgIGRzdHBbaV0gPSBzcmNbaV07Ci0gICBkc3RwW2ldID0gMDsKLSAgICpz cmNwID0gc3JjICsgaTsKLUBAIC0zNTQsNyArMzU0LDcgQEAgaW5zZXJ0X2J5dGUgKGJmZCAqYWJm ZCwgaW50IHZhbHVlLCBiZmRfdm1hIGFkZHIpCi0gICBob3cgYmlnIHRoZSBkYXRhIGlzLiAgKi8K LSAKLSBzdGF0aWMgYmZkX2Jvb2xlYW4KLS1maXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlw ZSwgY2hhciAqc3JjLCBjaGFyICogc3JjX2VuZCkKLStmaXJzdF9waGFzZSAoYmZkICphYmZkLCBp bnQgdHlwZSwgY2hhciAqc3JjKQotIHsKLSAgIGFzZWN0aW9uICpzZWN0aW9uLCAqYWx0X3NlY3Rp b247Ci0gICB1bnNpZ25lZCBpbnQgbGVuOwotQEAgLTM2OCwyMSArMzY4LDIxIEBAIGZpcnN0X3Bo YXNlIChiZmQgKmFiZmQsIGludCB0eXBlLCBjaGFyICpzcmMsIGNoYXIgKiBzcmNfZW5kKQotICAg ICAgIHsKLSAJYmZkX3ZtYSBhZGRyOwotIAotLQlpZiAoIWdldHZhbHVlICgmc3JjLCAmYWRkciwg c3JjX2VuZCkpCi0rCWlmICghZ2V0dmFsdWUgKCZzcmMsICZhZGRyKSkKLSAJICByZXR1cm4gRkFM U0U7Ci0gCi0tCXdoaWxlICgqc3JjICYmIHNyYyA8IHNyY19lbmQgLSAxKQotKwl3aGlsZSAoKnNy YykKLSAJICB7Ci0gCSAgICBpbnNlcnRfYnl0ZSAoYWJmZCwgSEVYIChzcmMpLCBhZGRyKTsKLSAJ ICAgIHNyYyArPSAyOwotIAkgICAgYWRkcisrOwotIAkgIH0KLS0JcmV0dXJuIFRSVUU7Ci0gICAg ICAgfQotIAotKyAgICAgIHJldHVybiBUUlVFOwotICAgICBjYXNlICczJzoKLSAgICAgICAvKiBT eW1ib2wgcmVjb3JkLCByZWFkIHRoZSBzZWdtZW50LiAgKi8KLS0gICAgICBpZiAoIWdldHN5bSAo c3ltLCAmc3JjLCAmbGVuLCBzcmNfZW5kKSkKLSsgICAgICBpZiAoIWdldHN5bSAoc3ltLCAmc3Jj LCAmbGVuKSkKLSAJcmV0dXJuIEZBTFNFOwotICAgICAgIHNlY3Rpb24gPSBiZmRfZ2V0X3NlY3Rp b25fYnlfbmFtZSAoYWJmZCwgc3ltKTsKLSAgICAgICBpZiAoc2VjdGlvbiA9PSBOVUxMKQotQEAg LTQwMyw5ICs0MDMsOSBAQCBmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlwZSwgY2hhciAq c3JjLCBjaGFyICogc3JjX2VuZCkKLSAJICAgIHsKLSAJICAgIGNhc2UgJzEnOgkJLyogU2VjdGlv biByYW5nZS4gICovCi0gCSAgICAgIHNyYysrOwotLQkgICAgICBpZiAoIWdldHZhbHVlICgmc3Jj LCAmc2VjdGlvbi0+dm1hLCBzcmNfZW5kKSkKLSsJICAgICAgaWYgKCFnZXR2YWx1ZSAoJnNyYywg JnNlY3Rpb24tPnZtYSkpCi0gCQlyZXR1cm4gRkFMU0U7Ci0tCSAgICAgIGlmICghZ2V0dmFsdWUg KCZzcmMsICZ2YWwsIHNyY19lbmQpKQotKwkgICAgICBpZiAoIWdldHZhbHVlICgmc3JjLCAmdmFs KSkKLSAJCXJldHVybiBGQUxTRTsKLSAJICAgICAgc2VjdGlvbi0+c2l6ZSA9IHZhbCAtIHNlY3Rp b24tPnZtYTsKLSAJICAgICAgc2VjdGlvbi0+ZmxhZ3MgPSBTRUNfSEFTX0NPTlRFTlRTIHwgU0VD X0xPQUQgfCBTRUNfQUxMT0M7Ci1AQCAtNDMyLDcgKzQzMiw3IEBAIGZpcnN0X3BoYXNlIChiZmQg KmFiZmQsIGludCB0eXBlLCBjaGFyICpzcmMsIGNoYXIgKiBzcmNfZW5kKQotIAkJYWJmZC0+Zmxh Z3MgfD0gSEFTX1NZTVM7Ci0gCQluZXdfc3ltYm9sLT5wcmV2ID0gYWJmZC0+dGRhdGEudGVraGV4 X2RhdGEtPnN5bWJvbHM7Ci0gCQlhYmZkLT50ZGF0YS50ZWtoZXhfZGF0YS0+c3ltYm9scyA9IG5l d19zeW1ib2w7Ci0tCQlpZiAoIWdldHN5bSAoc3ltLCAmc3JjLCAmbGVuLCBzcmNfZW5kKSkKLSsJ CWlmICghZ2V0c3ltIChzeW0sICZzcmMsICZsZW4pKQotIAkJICByZXR1cm4gRkFMU0U7Ci0gCQlu ZXdfc3ltYm9sLT5zeW1ib2wubmFtZSA9IChjb25zdCBjaGFyICopCi0gICAgICAgICAgICAgICAg ICAgICBiZmRfYWxsb2MgKGFiZmQsIChiZmRfc2l6ZV90eXBlKSBsZW4gKyAxKTsKLUBAIC00ODAs NyArNDgwLDcgQEAgZmlyc3RfcGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNoYXIgKnNyYywg Y2hhciAqIHNyY19lbmQpCi0gCQkJbmV3X3N5bWJvbC0+c3ltYm9sLnNlY3Rpb24gPSBhbHRfc2Vj dGlvbjsKLSAJCSAgICAgIH0KLSAJCSAgfQotLQkJaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnZhbCwg c3JjX2VuZCkpCi0rCQlpZiAoIWdldHZhbHVlICgmc3JjLCAmdmFsKSkKLSAJCSAgcmV0dXJuIEZB TFNFOwotIAkJbmV3X3N5bWJvbC0+c3ltYm9sLnZhbHVlID0gdmFsIC0gc2VjdGlvbi0+dm1hOwot IAkJYnJlYWs7Ci1AQCAtNDk4LDcgKzQ5OCw3IEBAIGZpcnN0X3BoYXNlIChiZmQgKmFiZmQsIGlu dCB0eXBlLCBjaGFyICpzcmMsIGNoYXIgKiBzcmNfZW5kKQotICAgIHJlY29yZC4gICovCi0gCi0g c3RhdGljIGJmZF9ib29sZWFuCi0tcGFzc19vdmVyIChiZmQgKmFiZmQsIGJmZF9ib29sZWFuICgq ZnVuYykgKGJmZCAqLCBpbnQsIGNoYXIgKiwgY2hhciAqKSkKLStwYXNzX292ZXIgKGJmZCAqYWJm ZCwgYmZkX2Jvb2xlYW4gKCpmdW5jKSAoYmZkICosIGludCwgY2hhciAqKSkKLSB7Ci0gICB1bnNp Z25lZCBpbnQgY2hhcnNfb25fbGluZTsKLSAgIGJmZF9ib29sZWFuIGlzX2VvZiA9IEZBTFNFOwot QEAgLTUzOSw3ICs1MzksOCBAQCBwYXNzX292ZXIgKGJmZCAqYWJmZCwgYmZkX2Jvb2xlYW4gKCpm dW5jKSAoYmZkICosIGludCwgY2hhciAqLCBjaGFyICopKQotIAotICAgICAgIC8qIFB1dCBhIG51 bGwgYXQgdGhlIGVuZC4gICovCi0gICAgICAgc3JjW2NoYXJzX29uX2xpbmVdID0gMDsKLS0gICAg ICBpZiAoIWZ1bmMgKGFiZmQsIHR5cGUsIHNyYywgc3JjICsgY2hhcnNfb25fbGluZSkpCi0rCi0r ICAgICAgaWYgKCFmdW5jIChhYmZkLCB0eXBlLCBzcmMpKQotIAlyZXR1cm4gRkFMU0U7Ci0gICAg IH0KLSAKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC5w YXRjaAppbmRleCAxNzMwOGY1Li45Yjg2YmRlIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLnBh dGNoCisrKyBiL2dkYi12bGEtaW50ZWwucGF0Y2gKQEAgLTYsMTAgKzYsMTAgQEAgR0lUIHNuYXBz aG90OgogY29tbWl0IDUxMWJmZjUyMDM3MmZmYzEwZmEyZmY1NjljMTc2YmRmMWU2ZTQ3NWQKIAog Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNi9nZGIvYy12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo1MToxNy42 NjMyNDA5MDcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLXZhbHByaW50LmMJ MjAxNS0wMS0wNiAyMzowMzowNy40MjQ2ODQ3NTMgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUw MTI2Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1LjgzMjc1ODMxNCAr MDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTAxLTI2 IDA3OjQ3OjQyLjM5NDgyOTg2MSArMDEwMAogQEAgLTUzNyw3ICs1MzcsMTYgQEAgY192YWx1ZV9w cmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdAogIAl7CiAgCSAgLyogbm9ybWFsIGNhc2Ug Ki8KQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12 YWxwcmludC5jCiAgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsKICAJfQogICAg ICB9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYybG9jLmgKK0luZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJsb2MuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZHdhcmYybG9jLmgJMjAxNS0wMS0wNiAyMjo1MToxNy42 NjMyNDA5MDcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuaAky MDE1LTAxLTA2IDIzOjAzOjA3LjQyNDY4NDc1MyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAx MjYub3JpZy9nZGIvZHdhcmYybG9jLmgJMjAxNS0wMS0yNiAwNzo0NzoyNS44MzI3NTgzMTQgKzAx MDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJsb2MuaAkyMDE1LTAxLTI2IDA3 OjQ3OjQyLjM5NTgyOTg2NSArMDEwMAogQEAgLTExMSw2ICsxMTEsMTEgQEAgaW50IGR3YXJmMl9l dmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydQogIAkJCSAgICAgIENPUkVfQUREUiBhZGRyZXNz LAogIAkJCSAgICAgIENPUkVfQUREUiAqdmFsdWUpOwpAQCAtNDQsMTQgKzQ0LDE0IEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuaAogIC8qIEEgaGVscGVyIGZvciB0 aGUgY29tcGlsZXIgaW50ZXJmYWNlIHRoYXQgY29tcGlsZXMgYSBzaW5nbGUgZHluYW1pYwogICAg IHByb3BlcnR5IHRvIEMgY29kZS4KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9k d2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQu YwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA2IDIzOjA0OjA5LjY5MTk4Njg4MSArMDEw MAotQEAgLTE4NDQsNiArMTg0NCwxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2R3b19maWxlX2NsZWFu dXAgKHZvaWQKLSBzdGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKLSAKKy0t LSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTI2IDA3 OjQ3OjI1Ljg0NTc1ODM3MSArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJm MnJlYWQuYwkyMDE1LTAxLTI2IDA3OjQ4OjA1LjgzMzkzMTExNiArMDEwMAorQEAgLTE4NTUsNiAr MTg1NSwxMiBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKICBzdGF0 aWMgdm9pZCBjaGVja19wcm9kdWNlciAoc3RydWN0IGR3YXJmMl9jdSAqY3UpOworIAorIHN0YXRp YyB2b2lkIGZyZWVfbGluZV9oZWFkZXJfdm9pZHAgKHZvaWQgKmFyZyk7CiArCiArc3RhdGljIGlu dAogK2F0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBz dHJ1Y3QgZGllX2luZm8gKmRpZSwKQEAgLTYxLDcgKzYxLDcgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogIAwKICAvKiBWYXJpb3VzIGNvbXBsYWludHMgYWJv dXQgc3ltYm9sIHJlYWRpbmcgdGhhdCBkb24ndCBhYm9ydCB0aGUgcHJvY2Vzcy4gICovCiAgCi1A QCAtMTQyNDEsMjkgKzE0MjQ3LDkyIEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGll X2luZm8gKmQKK0BAIC0xNDM1NCwyOSArMTQzNjAsOTIgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2Jq ZmlsZV9hcmNoIChvYmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwg KmluZGV4X3R5cGUsICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAt MTYxLDcgKzE2MSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFk LmMKICAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFn ZV9kZWZuLCBnZGJhcmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNo YXJfdHlwZSwgcmFuZ2VfdHlwZSk7CiAgCi1AQCAtMTQ1ODAsMTMgKzE0NjQ5LDE1IEBAIHJlYWRf YmFzZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3QKK0BAIC0xNDY5MywxMyArMTQ3NjIs MTUgQEAgcmVhZF9iYXNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdAogICAgcmV0dXJu IHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CiAgfQogIApAQCAtMTc4LDcgKzE3OCw3IEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKICB7CiAgICBzdHJ1 Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbjsKICAgIHN0cnVjdCBvYnN0YWNrICpvYnN0 YWNrID0gJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2s7Ci1AQCAtMTQ1OTksOCArMTQ2NzAs MjUgQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaQorQEAgLTE0NzEy LDggKzE0NzgzLDI1IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkK ICAgICAgICBiYXRvbiA9IG9ic3RhY2tfYWxsb2MgKG9ic3RhY2ssIHNpemVvZiAoKmJhdG9uKSk7 CiAgICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CiAgICAgICAgYmF0b24tPmxv Y2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKQEAgLTIwNiw3ICsyMDYsNyBAQCBJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgcHJvcC0+ZGF0YS5iYXRv biA9IGJhdG9uOwogICAgICAgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7CiAgICAgICAgZ2Ri X2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDYzMCw4ICsxNDcxOCwy OCBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCitAQCAtMTQ3NDMs OCArMTQ4MzEsMjggQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaQog IAkgIGJhdG9uID0gb2JzdGFja19hbGxvYyAob2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKICAJ ICBiYXRvbi0+cmVmZXJlbmNlZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9j dSk7CiAgCSAgYmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKQEAgLTIzNyw3ICsy MzcsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAgCSAg cHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwogIAkgIHByb3AtPmtpbmQgPSBQUk9QX0xPQ0VYUFI7 CiAgCSAgZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDY2Niw3 ICsxNDc3NCw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKK0BA IC0xNDc3OSw3ICsxNDg4Nyw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGUsICpvcmlnX2Jhc2VfdHlwZTsKICAgIHN0 cnVjdCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTI0 Niw3ICsyNDYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5j CiAgICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7CiAgICBpbnQgaGlnaF9ib3VuZF9pc19jb3Vu dCA9IDA7CiAgICBjb25zdCBjaGFyICpuYW1lOwotQEAgLTE0Njg2LDcgKzE0Nzk0LDkgQEAgcmVh ZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQorQEAgLTE0Nzk5LDcgKzE0OTA3 LDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogIAogICAgbG93 LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJPUF9DT05TVDsKQEAgLTI1Niw3 ICsyNTYsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAg CiAgICAvKiBTZXQgTE9XX0RFRkFVTFRfSVNfVkFMSUQgaWYgY3VycmVudCBsYW5ndWFnZSBhbmQg RFdBUkYgdmVyc2lvbiBhbGxvdwogICAgICAgb21pdHRpbmcgRFdfQVRfbG93ZXJfYm91bmQuICAq LwotQEAgLTE0NzE5LDE5ICsxNDgyOSwyNiBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllCitAQCAtMTQ4MzIsMTkgKzE0OTQyLDI2IEBAIHJlYWRfc3VicmFuZ2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtMjg2 LDcgKzI4Niw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMK ICAJewogIAkgIC8qIElmIGJvdW5kcyBhcmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0 aW9uIGhlcmUuICAqLwogIAkgIGlmIChsb3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2lu ZCA9PSBQUk9QX0NPTlNUKQotQEAgLTE0Nzk1LDcgKzE0OTEyLDcgQEAgcmVhZF9zdWJyYW5nZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQorQEAgLTE0OTA4LDcgKzE1MDI1LDcgQEAgcmVhZF9z dWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogICAgICAgICYmICFUWVBFX1VOU0lH TkVEIChiYXNlX3R5cGUpICYmIChoaWdoLmRhdGEuY29uc3RfdmFsICYgbmVnYXRpdmVfbWFzaykp CiAgICAgIGhpZ2guZGF0YS5jb25zdF92YWwgfD0gbmVnYXRpdmVfbWFzazsKICAKQEAgLTI5NSw3 ICsyOTUsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiAg CiAgICBpZiAoaGlnaF9ib3VuZF9pc19jb3VudCkKICAgICAgVFlQRV9SQU5HRV9EQVRBIChyYW5n ZV90eXBlKS0+ZmxhZ191cHBlcl9ib3VuZF9pc19jb3VudCA9IDE7Ci1AQCAtMjE4NjAsNyArMjE5 NzcsNDQgQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQorQEAgLTIx OTk0LDcgKzIyMTExLDQ0IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnUKICAKICAgIC8qIFJlYWQgRFdfQVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAq LwogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsK QEAgLTM0MSwxMCArMzQxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2Fy ZjJyZWFkLmMKICAgICAgewogICAgICAgIFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkKICAgICAg ICAgID0gb2JzdGFja19hbGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc2l6ZW9mIChw cm9wKSk7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYworSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2YtdHlwZXByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0wMS0wNiAy Mjo1MToxNy42NjMyNDA5MDcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLXR5 cGVwcmludC5jCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI4Njg0NzcyICswMTAwCistLS0gZ2RiLTcu OC45MC4yMDE1MDEyNi5vcmlnL2dkYi9mLXR5cGVwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUu ODQ2NzU4Mzc1ICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZi10eXBlcHJpbnQu YwkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwMjgyOTg5NSArMDEwMAogQEAgLTMwLDYgKzMwLDcgQEAK ICAjaW5jbHVkZSAiZ2RiY29yZS5oIgogICNpbmNsdWRlICJ0YXJnZXQuaCIKQEAgLTQyOSwxMCAr NDI5LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLXR5cGVwcmludC5jCiAg ICAgICAgaWYgKGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCA9PSAxKQogIAlmcHJpbnRmX2ZpbHRl cmVkIChzdHJlYW0sICIpIik7CiAgICAgICAgZWxzZQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2YtdmFs cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi12 YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQwOTA3ICswMTAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI4Njg0 NzcyICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJ MjAxNS0wMS0yNiAwNzo0NzoyNS44NDc3NTgzNzkgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUw MTI2L2dkYi9mLXZhbHByaW50LmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDM4Mjk5MDAgKzAxMDAK IEBAIC0zNiw4ICszNiw2IEBACiAgCiAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZl92YWxwcmlu dCAodm9pZCk7CkBAIC02MTksMTAgKzYxOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZi12YWxwcmludC5jCiAgICAgICAgICAgIGlmIChpbmRleCAhPSBUWVBFX05GSUVMRFMg KHR5cGUpIC0gMSkKICAgICAgICAgICAgICBmcHV0c19maWx0ZXJlZCAoIiwgIiwgc3RyZWFtKTsK ICAgICAgICAgIH0KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCitJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTAxLTA2IDIyOjUx OjE3LjY2MzI0MDkwNyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVz LmMJMjAxNS0wMS0wNiAyMzowMzowNy40Mjk2ODQ3NzcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIw MTUwMTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTA3NTgzOTIg KzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMjYg MDc6NDc6NDIuNDA0ODI5OTA0ICswMTAwCiBAQCAtODE1LDcgKzgxNSw4IEBAIGFsbG9jYXRlX3N0 dWJfbWV0aG9kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3Jh bmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5 cGUsCkBAIC05NDYsMTAgKzk0NiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv Z2RidHlwZXMuYwogICAgcmV0dXJuIG5ld190eXBlOwogIH0KICAMCi1JbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2Ri L2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L2dkYnR5cGVzLmgJMjAxNS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAxMDAKLSsrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0 Nzc3ICswMTAwCistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIw MTUtMDEtMjYgMDc6NDc6MjUuODUyNzU4NDAxICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEy Ni9nZGIvZ2RidHlwZXMuaAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNTgyOTkwOCArMDEwMAogQEAg LTY2MCw2ICs2NjAsMTAgQEAgc3RydWN0IG1haW5fdHlwZQogIAogICAgICAgIHN0cnVjdCBkeW5h bWljX3Byb3AgaGlnaDsKQEAgLTEwMzgsMTAgKzEwMzgsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmgKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWlj X3Byb3AgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3Ry dWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAorSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxsb2MtYXNzb2Mu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1hbGxvYy1hc3NvYy5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40Mjk2ODQ3NzcgKzAx MDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LWFsbG9jLWFzc29jLmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNTgyOTkwOCArMDEwMAogQEAg LTAsMCArMSw2NSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0xMTA4LDEwICsxMTA4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAogK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJ2bGEyLWRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwcmlu dCBsIiAiID0gXFwuRkFMU0VcXC4iICJwcmludCB2bGEyIGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0 ICJwcmludCB2bGEyIiAiID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHJpbnQgZGVhbGxvY2F0ZWQgdmxh MiIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLWRhdGF0eXBlcy5leHAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5leHAJMjAxNS0w MS0wNiAyMzowMzowNy40Mjk2ODQ3NzcgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5leHAJMjAxNS0wMS0yNiAwNzo0 Nzo0Mi40MDU4Mjk5MDggKzAxMDAKIEBAIC0wLDAgKzEsODIgQEAKICsjIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTE5NSwxMCArMTE5NSwxMCBA QCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1kYXRhdHlwZXMuZXhwCiArICAicHJpbnQgbG9naWNhbHZsYSg1LDUsNSkgKDJuZCkiCiArZ2Ri X3Rlc3QgInByaW50IGNoYXJhY3RlcnZsYSg1LDUsNSkiICIgPSAnWCciIFwKICsgICJwcmludCBj aGFyYWN0ZXJ2bGEoNSw1LDUpICgybmQpIgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAorSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtZGF0YXR5cGVzLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQyOTY4NDc3NyArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5 cGVzLmY5MAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNTgyOTkwOCArMDEwMAogQEAgLTAsMCArMSw1 MSBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr IQpAQCAtMTI1MSwxMCArMTI1MSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZjkwCiArICAhIGR1bW15IHN0YXRl bWVudCBmb3IgYnAKICsgIGwgPSAuRkFMU0UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAh IHZsYXMtbW9kaWZpZWQKICtlbmQgcHJvZ3JhbSB2bGFfcHJpbWl0aXZlcwotSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKK0lu ZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1 bmMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1mdW5jLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAor KysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVu Yy5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDY4Mjk5MTMgKzAxMDAKIEBAIC0wLDAgKzEsNjEg QEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMTMxNywxMCArMTMxNywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAogKyAgInByaW50IHZsYTMgKGFmdGVyIGZ1 bmMyKSIKICtnZGJfdGVzdCAicHR5cGUgdmxhMyIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxc XCkgXFxcKDEwXFxcKSIgXAogKyAgInB0eXBlIHZsYTMgKGFmdGVyIGZ1bmMyKSIKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkw CitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1mdW5jLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtZnVuYy5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAx MDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LWZ1bmMuZjkwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA2ODI5OTEzICswMTAwCiBAQCAtMCwwICsx LDcxIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICshCkBAIC0xMzkzLDEwICsxMzkzLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCiArCiArICByZXQgPSAuVFJVRS4g ICAgICAgICAgICAgICAgISBmdW5jMi1yZXR1cm5lZAogK2VuZCBwcm9ncmFtIHZsYV9mdW5jCi1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1o aXN0b3J5LmV4cAorSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtaGlzdG9yeS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCTIwMTUtMDEtMDYgMjM6MDM6 MDcuNDMwNjg0NzgyICswMTAwCisrKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNjgyOTkx MyArMDEwMAogQEAgLTAsMCArMSw2MiBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNDYwLDEwICsxNDYwLDEwIEBAIEluZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhw CiArIyBUcnkgdG8gYWNjZXNzIGhpc3RvcnkgdmFsdWVzIGZvciB2bGEgdmFsdWVzLgogK2dkYl90 ZXN0ICJwcmludCBcJDkiICIgPSAxMzExIiAicHJpbnQgXCQ5IgogK2dkYl90ZXN0ICJwcmludCBc JDEwIiAiID0gMTAwMSIgInByaW50IFwkMTAiCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhwCitJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1wdHlwZS1zdWIuZXhwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMwNjg0NzgyICswMTAwCisr KysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlw ZS1zdWIuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA2ODI5OTEzICswMTAwCiBAQCAtMCwwICsx LDg3IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKQEAgLTE1NTIsMTAgKzE1NTIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAogKyAgInB0eXBlIGFycmF5 MSgxMDApIChhcmJpdHJhcnkgbGVuZ3RoKSIKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkyKDQsMTAw KSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkiIFwKICsgICJwdHlwZSBhcnJheTIoNCwx MDApIChhcmJpdHJhcnkgbGVuZ3RoKSIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAorSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5l eHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIw MTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE1LTAxLTI2 IDA3OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAogQEAgLTAsMCArMSw5NiBAQAogKyMgQ29weXJpZ2h0 IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNjUzLDEwICsxNjUz LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXB0eXBlLmV4cAogK2dkYl90ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKICsg ICJubyBzdWNoIHZlY3RvciBlbGVtZW50IGJlY2F1c2Ugbm90IGFsbG9jYXRlZCIgXAogKyAgInB0 eXBlIHZsYTIoNSwgNDUsIDIwKSBub3QgYWxsb2NhdGVkIgotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAorSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4 cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc2l6ZW9mLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9m LmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAogQEAgLTAsMCArMSw0NiBA QAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0xNzA0LDEwICsxNzA0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKICtnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAicHZsYS1hc3NvY2lhdGVkIl0KICtnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAicHZsYS1hc3NvY2lhdGVkIgogK2dkYl90ZXN0ICJwcmludCBzaXplb2YocHZsYSkiICIg PSA0MDAwIiAicHJpbnQgc2l6ZW9mIGFzc29jaWF0ZWQgcHZsYSIKLUluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKK0luZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlk ZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmlkZS5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAK KysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0 cmlkZS5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBAIC0wLDAgKzEs NDQgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KwpAQCAtMTc1MywxMCArMTc1MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInNpbmdsZS1lbGVtZW50IgogK2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxc KDVcXFwpIiAicHJpbnQgc2luZ2xlLWVsZW1lbnQiCiArZ2RiX3Rlc3QgInByaW50IHB2bGEoMSki ICIgPSA1IiAicHJpbnQgb25lIHNpbmdsZS1lbGVtZW50IgotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAorSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5 MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaWRlLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRl LmY5MAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNzgyOTkxNyArMDEwMAogQEAgLTAsMCArMSwzMCBA QAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpA QCAtMTc4OCwxMCArMTc4OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCiArCiArICBwdmxhID0+IG51bGwoKSAg ICAgICAgISBzaW5nbGUtZWxlbWVudAogK2VuZCBwcm9ncmFtIHZsYV9zdHJpZGUKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Mu ZXhwCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zdHJpbmdzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2 ODQ3ODIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAw CiBAQCAtMCwwICsxLDEwNCBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC0xODk3LDEwICsxODk3LDEwIEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCiArICAi d2hhdGlzIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKICtnZGJfdGVzdCAicHR5cGUgdmFy X2NoYXJfcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCiArICAi cHR5cGUgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgotSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKK0luZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3Mu ZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1zdHJpbmdzLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAor KysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3Ry aW5ncy5mOTAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBAIC0wLDAgKzEs NDAgQEAKICshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KyEKQEAgLTE5NDIsMTAgKzE5NDIsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKICsgIHZhcl9jaGFyX3AgPT4g bnVsbCgpCiArICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJf Y2hhcl9wLW5vdC1hc3NvY2lhdGVkCiArZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAK K0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN1Yi5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN1Yi5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAK KysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1 Yi5mOTAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBAIC0wLDAgKzEsODIg QEAKICshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEK QEAgLTIwMjksMTAgKzIwMjksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3ViLmY5MAogKwogKyAgY2FsbCBiYXIoc3ViX2FycjMs IHN1Yl9hcnIxKQogK2VuZCBwcm9ncmFtIHZsYV9zdWIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhw CitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAJMjAx NS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhwCTIw MTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCiBAQCAtMCwwICsxLDM1IEBACiArIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIwNjks MTAgKzIwNjksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAKICtnZGJfdGVzdCAicCBhcnJh eTEoMTAwKSIgIiA9IDEwMCIgInByaW50IGFyYml0YXJ5IGFycmF5MSgxMDApIgogK2dkYl90ZXN0 ICJwIGFycmF5Mig0LDEwKSIgIiA9IDEiICJwcmludCBhcmJpdGFyeSBhcnJheTIoNCwxMCkiCiAr Z2RiX3Rlc3QgInAgYXJyYXkyKDQsMTAwKSIgIiA9IDEiICJwcmludCBhcmJpdGFyeSBhcnJheTIo NCwxMDApIgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12 YWx1ZS1zdWItZmluaXNoLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAor KysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFs dWUtc3ViLWZpbmlzaC5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKIEBA IC0wLDAgKzEsNDkgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKwpAQCAtMjEyMywxMCArMjEyMywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWItZmluaXNoLmV4cAog K2dkYl90ZXN0ICJwIHN1Yl9hcnIyKDEsIDEsIDEpIiAiID0gMzAiICJzdWJfYXJyMigxLCAxLCAx KSBhZnRlciBmaW5pc2giCiArZ2RiX3Rlc3QgInAgc3ViX2FycjIoMiwgMSwgMSkiICIgPSAyMCIg InN1Yl9hcnIyKDIsIDEsIDEpIGFmdGVyIGZpbmlzaCIKICsKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKK0luZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVl LXN1Yi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcg KzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXZhbHVlLXN1Yi5leHAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDg4Mjk5MjIgKzAxMDAKIEBA IC0wLDAgKzEsOTAgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKwpAQCAtMjIxOCwxMCArMjIxOCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCiArICAic2V0 IGFycmF5KDIsMiwyKSB0byAyMCBpbiBzdWJyb3V0aW5lIChwYXNzZWQgdmxhKSIKICtnZGJfdGVz dCAicHJpbnQgYXJyYXkyIiAiID0gXFwoICpcXCggKlxcKCAqMzAsICoyMCwgKjMsXFsoKTMsIC5c XSpcXCkiIFwKICsgICJwcmludCBhcnJheTIgaW4gZm9vIGFmdGVyIGl0IHdhcyBtb2ZpZmllZCBp biBkZWJ1Z2dlciAocGFzc2VkIHZsYSkiCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKK0luZGV4OiBnZGItNy44LjkwLjIw MTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUu ZXhwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMxNjg0Nzg3ICswMTAwCisrKysgZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAJMjAxNS0wMS0y NiAwNzo0Nzo0Mi40MDg4Mjk5MjIgKzAxMDAKIEBAIC0wLDAgKzEsMTQ4IEBACiArIyBDb3B5cmln aHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIzNzEsMTAgKzIz NzEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtdmFsdWUuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtZGVh c3NvY2lhdGVkIgogK2dkYl90ZXN0ICJwcmludCBcJG15cHZhcigxLDMsOCkiICIgPSAxMDAxIiBc CiArICAicHJpbnQgXCRteXB2YXIoMSwzLDgpIGFmdGVyIGRlYWxsb2NhdGVkIgotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCitJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAorKysrIGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCTIwMTUtMDEtMjYg MDc6NDc6NDIuNDA4ODI5OTIyICswMTAwCiBAQCAtMCwwICsxLDU2IEBACiArISBDb3B5cmlnaHQg MjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yNDMyLDEwICsyNDMy LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLmY5MAogKyAgYWxsb2NhdGUgKHZsYTMgKDIsMikpICAgICAgICAgICAgICAgISB2bGEy LWRlYWxsb2NhdGVkCiArICB2bGEzKDosOikgPSAxMwogK2VuZCBwcm9ncmFtIHZsYQotSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4u ZXhwCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12 bGEtZm9ydHJhbi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4 NyArMDEwMAorKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt dmxhLWZvcnRyYW4uZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA4ODI5OTIyICswMTAwCiBAQCAt MCwwICsxLDE4MiBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0yNjE5LDEwICsyNjE5LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAogKwogK21pX2dkYl9l eGl0CiArcmV0dXJuIDAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLm1pL3ZsYS5mOTAKK0luZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUv Z2RiLm1pL3ZsYS5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL3ZsYS5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcgKzAxMDAKKysr KyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAJMjAxNS0w MS0yNiAwNzo0Nzo0Mi40MDk4Mjk5MjYgKzAxMDAKIEBAIC0wLDAgKzEsNDIgQEAKICshIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTI2NjYsMTAg KzI2NjYsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvdmxhLmY5MAogKyAgcHZsYTIgPT4gbnVsbCgpCiArICBsID0gYXNzb2NpYXRlZChwdmxhMikg ICAgICAgISBwdmxhMi1zZXQtdG8tbnVsbAogK2VuZCBwcm9ncmFtIHZsYQotSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3R5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy Ni9nZGIvdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQwOTA3ICswMTAwCi0r KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMzowMzow Ny40MzE2ODQ3ODcgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL3R5cGVw cmludC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUuODU2NzU4NDE4ICswMTAwCisrKysgZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvdHlwZXByaW50LmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDk4Mjk5MjYg KzAxMDAKIEBAIC00NTYsNiArNDU2LDEzIEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNo b3cpCiAgCiAgICB0eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKQEAgLTI2ODQsMTAgKzI2ODQsMTAg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3R5cGVwcmludC5jCiAgICBnZXRfdXNl cl9wcmludF9vcHRpb25zICgmb3B0cyk7CiAgICBpZiAob3B0cy5vYmplY3RwcmludCkKICAgICAg ewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQw OTA3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYwkyMDE1LTAx LTA2IDIzOjAzOjA3LjQzMjY4NDc5MiArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3Jp Zy9nZGIvdmFsYXJpdGguYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg1Nzc1ODQyMiArMDEwMAorKysr IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40 MDk4Mjk5MjYgKzAxMDAKIEBAIC0xOTMsMTIgKzE5MywzMSBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9y dmFsdWUgKHN0cnVjdCB2YWx1ZSAqCiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUg PSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CkBAIC0yNzIy LDEwICsyNzIyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxhcml0aC5j CiAgCiAgICBpZiAoVkFMVUVfTFZBTCAoYXJyYXkpID09IGx2YWxfbWVtb3J5ICYmIHZhbHVlX2xh enkgKGFycmF5KSkKICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKGVsdF90eXBlKTsKLUlu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyAr MDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmMJMjAxNS0wMS0wNiAy MzowMzowNy40MzI2ODQ3OTIgKzAxMDAKKy0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2Ri L3ZhbHByaW50LmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTg3NTg0MjcgKzAxMDAKKysrKyBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi92YWxwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDEwODI5 OTMwICswMTAwCiBAQCAtMzAzLDYgKzMwMywxOCBAQCB2YWxwcmludF9jaGVja192YWxpZGl0eSAo c3RydWN0IHVpX2ZpbGUKICB7CiAgICBDSEVDS19UWVBFREVGICh0eXBlKTsKQEAgLTI4MDAsMTAg KzI4MDAsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmMKICAg IHJldHVybiAxOwogIH0KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmlu dC5oCitJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdmFscHJpbnQuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTAxLTA2 IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Zh bHByaW50LmgJMjAxNS0wMS0wNiAyMzowMzowNy40MzI2ODQ3OTIgKzAxMDAKKy0tLSBnZGItNy44 LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTk3 NTg0MzEgKzAxMDAKKysrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi92YWxwcmludC5oCTIwMTUt MDEtMjYgMDc6NDc6NDIuNDEwODI5OTMwICswMTAwCiBAQCAtMjE3LDQgKzIxNyw4IEBAIGV4dGVy biB2b2lkIG91dHB1dF9jb21tYW5kX2NvbnN0IChjb25zdAogIAogIGV4dGVybiBpbnQgdmFsX3By aW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKTsKQEAgLTI4MTMsMTAgKzI4MTMs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmgKICtleHRlcm4g dm9pZCB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwog KwogICNlbmRpZgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMKK0luZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYzMjQw OTA3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsdWUuYwkyMDE1LTAxLTA2 IDIzOjAzOjA3LjQzMzY4NDc5NyArMDEwMAorLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3JpZy9n ZGIvdmFsdWUuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg2MDc1ODQzNSArMDEwMAorKysrIGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MTE4Mjk5MzUg KzAxMDAKIEBAIC00MCw2ICs0MCw3IEBACiAgI2luY2x1ZGUgInRyYWNlcG9pbnQuaCIKICAjaW5j bHVkZSAiY3AtYWJpLmgiCkBAIC0yOTE5LDExICsyOTE5LDExIEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi92YWx1ZS5jCiAgCiAgICAgICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSkK ICAJcmVhZF92YWx1ZV9tZW1vcnkgKHZhbCwgMCwgdmFsdWVfc3RhY2sgKHZhbCksCi1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNy44LjkwLjIw MTUwMTI2L2dkYi9kd2FyZjJsb2MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNC0xMi0yOCAwMjo0ODo0My4wMDAwMDAwMDAgKzAx MDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAxLTA2IDIz OjA1OjU1LjI5NjQ5OTI4NyArMDEwMAotQEAgLTIzMjYsNiArMjM0NiwxMSBAQCBkd2FyZjJfZXZh bHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CistLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5v cmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg2Mjc1ODQ0NCArMDEwMAor KysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMjYgMDc6NDc6 NDIuNDEyODI5OTM5ICswMTAwCitAQCAtMjI5Myw2ICsyMjkzLDExIEBAIGR3YXJmMl9ldmFsdWF0 ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKICAJICAgIGludCBpbl9zdGFja19tZW1vcnkgPSBk d2FyZl9leHByX2ZldGNoX2luX3N0YWNrX21lbW9yeSAoY3R4LCAwKTsKICAKICAJICAgIGRvX2Ns ZWFudXBzICh2YWx1ZV9jaGFpbik7CkBAIC0yOTM1LDcgKzI5MzUsNyBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvZHdhcmYybG9jLmMKICAJICAgIHJldHZhbCA9IHZhbHVlX2F0X2xh enkgKHR5cGUsIGFkZHJlc3MgKyBieXRlX29mZnNldCk7CiAgCSAgICBpZiAoaW5fc3RhY2tfbWVt b3J5KQogIAkgICAgICBzZXRfdmFsdWVfc3RhY2sgKHJldHZhbCwgMSk7Ci1AQCAtMjU0Niw2ICsy NTQ2LDE5IEBAIGR3YXJmMl9jb21waWxlX3Byb3BlcnR5X3RvX2MgKHN0cnVjdCB1aV8KK0BAIC0y NTUyLDYgKzI1NTcsMTkgQEAgZHdhcmYyX2NvbXBpbGVfcHJvcGVydHlfdG9fYyAoc3RydWN0IHVp XwogIAkJCSAgICAgZGF0YSwgZGF0YSArIHNpemUsIHBlcl9jdSk7CiAgfQogIAoKZGlmZiAtLWdp dCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggYTE1OTJjNS4uZDRhZjkyYiAxMDA2NDQKLS0t IGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTIyLDExICsyMiwxMSBAQCBOYW1lOiAlez9z Y2xfcHJlZml4fWdkYgogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5zdGFsbGVk IGludG8gZ2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTIxMjEzCiAlZ2xvYmFs IHRhcm5hbWUgZ2RiLSV7dmVyc2lvbn0KLVZlcnNpb246IDcuOC41MC4yMDE1MDEwOAorVmVyc2lv bjogNy44LjkwLjIwMTUwMjAyCiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVh ZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90 IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGli bGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMSV7P2Rpc3R9CitSZWxlYXNlOiAyJXs/ZGlz dH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2 MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIEJT RCBhbmQgUHVibGljIERvbWFpbiBhbmQgR0ZETAogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2Vy cwpAQCAtNTIwLDE5ICs1MjAsMTQgQEAgUGF0Y2g5MjU6IGdkYi1mb3J0cmFuLWZyYW1lLXN0cmlu Zy5wYXRjaAogIyBGaXggUHl0aG9uIEdJTCB3aXRoIGdkYi5leGVjdXRlKCJjb250aW51ZSIpIChQ aGlsIE11bGRvb24sIEJaIDExMTY5NTcpLgogUGF0Y2g5Mjc6IGdkYi1weXRob24tZ2lsLnBhdGNo CiAKLSMgRml4ICdTbG93IGdzdGFjayBwZXJmb3JtYW5jZScgKFJIIEJaIDExMDM4OTQsIEphbiBL cmF0b2NodmlsKS4KLVBhdGNoOTczOiBnZGItc2xvdy1nc3RhY2stcGVyZm9ybWFuY2UucGF0Y2gK LQotIyBGaXggJ2NvbXBpbGUnIGNvbXBpbGF0aW9uIHdhcm5pbmcvZXJyb3IuCi1QYXRjaDk3Nzog Z2RiLWNvbXBpbGUtd2Fybl91bnVzZWRfcmVzdWx0LnBhdGNoCi0KICMgRml4IGppdC1yZWFkZXIu aCBmb3IgbXVsdGktbGliLgogUGF0Y2g5Nzg6IGdkYi1qaXQtcmVhZGVyLW11bHRpbGliLnBhdGNo CiAKICMgRml4IGdkYi03LjlwcmUgcmVncmVzc2lvbnMgLyBuZXcgRkFJTHMuCiBQYXRjaDk3OTog Z2RiLTYuOC1iejQ1NzE4Ny1sYXJnZWZpbGUtdGVzdC1yZWdyZXNzaW9uLWZpeC5wYXRjaAotUGF0 Y2g5ODA6IGdkYi1weS1mcmFtZS1yaXAtdGVzdC1maXgucGF0Y2gKLVBhdGNoOTgxOiBnZGItdGVr aGV4LXJlZ3Jlc3Npb24tcmV2ZXJ0LnBhdGNoCisKKyMgVGVtcG9yYXJpbHkgZGlzYWJsZSBkZy1l eHRyYWN0LXJlc3VsdHMucHkgdG8gZml4IGdkYi5zdW0gc29ydGluZy4KK1BhdGNoOTgyOiBnZGIt bm8tZGctZXh0cmFjdC1yZXN1bHRzLXB5LnBhdGNoCiAKICVpZiAwJXshP3JoZWw6MX0gfHwgMCV7 P3JoZWx9ID4gNgogIyBSTF9TVEFURV9GRURPUkFfR0RCIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3I6 CkBAIC04MTUsMTIgKzgxMCw5IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAl cGF0Y2g5MTggLXAxCiAlcGF0Y2g5MjUgLXAxCiAlcGF0Y2g5MjcgLXAxCi0lcGF0Y2g5NzMgLXAx Ci0lcGF0Y2g5NzcgLXAxCiAlcGF0Y2g5NzggLXAxCiAlcGF0Y2g5NzkgLXAxCi0lcGF0Y2g5ODAg LXAxCi0lcGF0Y2g5ODEgLXAxCislcGF0Y2g5ODIgLXAxCiAKICVwYXRjaDg0OCAtcDEKICVpZiAw JXshP2VsNjoxfQpAQCAtMTMyMSw2ICsxMzEzLDEwIEBAIHRoZW4KIGZpCiAKICVjaGFuZ2Vsb2cK KyogTW9uIEZlYiAgMiAyMDE1IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQu Y29tPiAtIDcuOC45MC4yMDE1MDIwMi0yLmZjMjIKKy0gUmViYXNlIHRvIDcuOS1icmFuY2ggc25h cHNob3QgNy44LjkwLjIwMTUwMjAyLgorLSBUZW1wb3JhcmlseSBkaXNhYmxlIGRnLWV4dHJhY3Qt cmVzdWx0cy5weSB0byBmaXggZ2RiLnN1bSBzb3J0aW5nLgorCiAqIFRodSBKYW4gIDggMjAxNSBK YW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjguNTAuMjAxNTAx MDgtMS5mYzIyCiAtIFJlYmFzZSB0byBwcmUtNy45IHNuYXBzaG90IDcuOC41MC4yMDE1MDEwOC4K IC0gRml4IGppdC1yZWFkZXIuaCBmb3IgbXVsdGktbGliLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMg Yi9zb3VyY2VzCmluZGV4IGVkOTYzODYuLjg0OGJkZTMgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysr IGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDQ5ODEzMDdhYTk2MTliYmVjNWI3MzI2MWU0ZTQx YzhkICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLTZiNDNmMTA3OWU5 YTY0MDFjNzI3N2Q2YmQ3NzdiZDdmICBnZGItNy44LjUwLjIwMTUwMTA4LnRhci54egorMzgyMWQw NTVhNjM5NjQ0ZDA5YmQ5NzM0ZTU5YjA1MWMgIGdkYi03LjguOTAuMjAxNTAyMDIudGFyLnh6Cg==