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] fix-dup-patch: - Upgrade to the FSF GDB gdb-7.0 snapshot: 6.8.91.20090925 Date: Thu, 23 Jul 2026 18:29:16 GMT Message-ID: <178483135663.1.12382892965646152643.rpms-gdb-4d3aa5611718@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 4d3aa56117188a28cdcbb527b0d253bb353b6f4c ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogNGQzYWE1NjExNzE4OGEyOGNkY2JiNTI3YjBkMjUzYmIzNTNiNmY0Ywog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVj dC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDktMjVUMDY6NDk6MjErMDA6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzM5MC8tMTE1NCBpbiA2IGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy80ZDNhYTU2MTE3 MTg4YTI4Y2RjYmI1MjdiMGQyNTNiYjM1M2I2ZjRjP2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIC0gVXBncmFkZSB0byB0aGUgRlNGIEdEQiBnZGItNy4w IHNuYXBzaG90OiA2LjguOTEuMjAwOTA5MjUKLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmEx MiBjb21taXQ6CiAgICA0MzM4ZWE4NWM3OTgwMDdjMzI1OTQwMzJmNjAyZGI5ZmQyMzBlYmE5Ci0g W3B5dGhvbl0gRG9uJ3QgZGlyZWN0bHkgcmVmZXJlbmNlIHNlbGYuZnJhbWUgKFRvbSBUcm9tZXkp LgotIFtleHByXSBVcGRhdGVzIGZyb20gYnJhbmNoIChLZWl0aCBTZWl0eikuCgotLS0KZGlmZiAt LWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IDRjZjdkMDUuLjY1MGVjNGEgMTAw NjQ0Ci0tLSBhLy5jdnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMSwyICsxLDIgQEAKIGxp YnN0ZGMrKy12My1weXRob24tcjE1MTc5OC50YXIueHoKLWdkYi02LjguOTEuMjAwOTA5MjEudGFy LmJ6MgorZ2RiLTYuOC45MS4yMDA5MDkyNS50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1y ZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2ggYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRj aAppbmRleCBiY2JmYWU4Li44MjNjMzhmIDEwMDY0NAotLS0gYS9nZGItNi4zLXJlYWRuZXZlci0y MDA1MDkwNy5wYXRjaAorKysgYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaApAQCAt NjUsNyArNjUsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvZHdhcmYycmVhZC5j CiAtLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0x MyAxMDoxNDoxNS4wMDAwMDAwMDAgKzAyMDAKICsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9k d2FyZjJyZWFkLmMJMjAwOS0wOC0xMyAxMDoxNDoyOS4wMDAwMDAwMDAgKzAyMDAKIEBAIC01Myw2 ICs1Myw3IEBACi0gI2luY2x1ZGUgInR5cGVwcmludC5oIgorICNpbmNsdWRlICJqdi1sYW5nLmgi CiAgI2luY2x1ZGUgInZlYy5oIgogICNpbmNsdWRlICJibG9jay5oIgogKyNpbmNsdWRlICJ0b3Au aCIKCmRpZmYgLS1naXQgYS9nZGItNi44LjUwLjIwMDkwOTIxLXVwc3RyZWFtLnBhdGNoIGIvZ2Ri LTYuOC41MC4yMDA5MDkyMS11cHN0cmVhbS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMTc3ODU1Mi4uMDAwMDAwMAotLS0gYS9nZGItNi44LjUwLjIwMDkwOTIxLXVwc3RyZWFt LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTY1ICswLDAgQEAKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL0NoYW5nZUxvZyx2Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEu MTA4NzQuMi4xMQotcmV0cmlldmluZyByZXZpc2lvbiAxLjEwODc0LjIuMTIKLWRpZmYgLXUgLXIx LjEwODc0LjIuMTEgLXIxLjEwODc0LjIuMTIKLS0tLSBzcmMvZ2RiL0NoYW5nZUxvZwkyMDA5LzA5 LzE5IDE2OjM2OjA4CTEuMTA4NzQuMi4xMQotKysrIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMDkvMDkv MjEgMDY6NTc6MDIJMS4xMDg3NC4yLjEyCi1AQCAtMSwzICsxLDQ3IEBACi0rMjAwOS0wOS0yMSAg SHVpIFpodSAgPHRlYXdhdGVyQGdtYWlsLmNvbT4KLSsJICAgIE1pY2hhZWwgU255ZGVyICA8bXNu eWRlckB2bXdhcmUuY29tPgotKwotKwkqIGFtZDY0LWxpbnV4LXRkZXAuYyAoYW1kNjRfYWxsX2J1 dF9pcF9yZWdpc3RlcnNfcmVjb3JkKTogTmV3Ci0rCWZ1bmN0aW9uLgotKwkoYW1kNjRfbGludXhf c3lzY2FsbF9yZWNvcmQpOiBDYWxsCi0rCWFtZDY0X2FsbF9idXRfaXBfcmVnaXN0ZXJzX3JlY29y ZCBpZiBzeXNjYWxsIGlzCi0rCXN5c19ydF9zaWdyZXR1cm4uCi0rCShBTUQ2NF9MSU5VWF9yZWR6 b25lLCBBTUQ2NF9MSU5VWF94c3RhdGUsCi0rCUFNRDY0X0xJTlVYX2ZyYW1lX3NpemUpOiBOZXcg bWFjcm9zLgotKwkoYW1kNjRfbGludXhfcmVjb3JkX3NpZ25hbCk6IE5ldyBmdW5jdGlvbi4KLSsJ KGFtZDY0X2xpbnV4X2luaXRfYWJpKTogQ2FsbCBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9z aWduYWwuCi0rCi0rMjAwOS0wOS0yMSAgSHVpIFpodSAgPHRlYXdhdGVyQGdtYWlsLmNvbT4KLSsJ ICAgIE1pY2hhZWwgU255ZGVyICA8bXNueWRlckB2bXdhcmUuY29tPgotKwotKwkqIGkzODYtbGlu dXgtdGRlcC5jIChpMzg2X2FsbF9idXRfaXBfcmVnaXN0ZXJzX3JlY29yZCk6IE5ldwotKwlmdW5j dGlvbi4KLSsJKGkzODZfbGludXhfaW50eDgwX3N5c2VudGVyX3JlY29yZCk6IENhbGwKLSsJaTM4 Nl9hbGxfYnV0X2lwX3JlZ2lzdGVyc19yZWNvcmQgaWYgc3lzY2FsbCBpcyBzeXNfc2lncmV0dXJu Ci0rCW9yIHN5c19ydF9zaWdyZXR1cm4uCi0rCShJMzg2X0xJTlVYX3hzdGF0ZSwgSTM4Nl9MSU5V WF9mcmFtZV9zaXplKTogTmV3IG1hY3Jvcy4KLSsJKGkzODZfbGludXhfcmVjb3JkX3NpZ25hbCk6 IE5ldyBmdW5jdGlvbi4KLSsJKGkzODZfbGludXhfaW5pdF9hYmkpOiBDYWxsIHNldF9nZGJhcmNo X3Byb2Nlc3NfcmVjb3JkX3NpZ25hbC4KLSsKLSsyMDA5LTA5LTIxICBIdWkgWmh1ICA8dGVhd2F0 ZXJAZ21haWwuY29tPgotKwkgICAgTWljaGFlbCBTbnlkZXIgIDxtc255ZGVyQHZtd2FyZS5jb20+ Ci0rCi0rCSogcmVjb3JkLmMgKHJlY29yZF9lbmRfZW50cnkpOiBOZXcgc3RydWN0LgotKwkocmVj b3JkX3R5cGUpOiBBZGQgZW5kLgotKwkocmVjb3JkX2FyY2hfbGlzdF9hZGRfZW5kKTogU2V0IHJl Yy0+dS5lbmQuc2lndmFsIHRvCi0rCVRBUkdFVF9TSUdOQUxfMC4KLSsJKHJlY29yZF9tZXNzYWdl X2FyZ3MpOiBOZXcgc3RydWN0LgotKwkocmVjb3JkX21lc3NhZ2UpOiBDYWxsIGdkYmFyY2hfcHJv Y2Vzc19yZWNvcmRfc2lnbmFsLgotKwkoZG9fcmVjb3JkX21lc3NhZ2UpOiBBZGQgYXJndW1lbnQg InNpZ25hbCIuCi0rCShyZWNvcmRfcmVzdW1lKTogRGl0dG8uCi0rCShyZWNvcmRfd2FpdCk6IERp dHRvLiAgQ2hlY2sgcmVjb3JkX2xpc3QtPnUuZW5kLnNpZ3ZhbAotKwlpbiByZXBsYXkgbW9kZS4K LSsKLSsyMDA5LTA5LTIxICBIdWkgWmh1ICA8dGVhd2F0ZXJAZ21haWwuY29tPgotKwkgICAgTWlj aGFlbCBTbnlkZXIgIDxtc255ZGVyQHZtd2FyZS5jb20+Ci0rCi0rCSogZ2RiYXJjaC5zaCAocHJv Y2Vzc19yZWNvcmRfc2lnbmFsKTogTmV3IGludGVyZmFjZS4KLSsKLSAyMDA5LTA5LTE5ICBNYXhp bSBHcmlnb3JpZXYgIDxtYXhpbTI0MDVAZ21haWwuY29tPgotIAotIAkqIHh0ZW5zYS10ZGVwLmMg KGNhbGwwX2FuYWx5emVfcHJvbG9ndWUpOiBSZXBsYWNlIElOVF9NQVggYnkgVU5JVF9NQVguCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9nZGJhcmNoLnNoLHYKLXJldHJp ZXZpbmcgcmV2aXNpb24gMS40OTYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS40OTYuMi4xCi1kaWZm IC11IC1yMS40OTYgLXIxLjQ5Ni4yLjEKLS0tLSBzcmMvZ2RiL2dkYmFyY2guc2gJMjAwOS8wOS8x NSAwMzozMDowNQkxLjQ5NgotKysrIHNyYy9nZGIvZ2RiYXJjaC5zaAkyMDA5LzA5LzIxIDA2OjU3 OjAyCTEuNDk2LjIuMQotQEAgLTcwOSw2ICs3MDksMTAgQEAKLSAjIFJldHVybiAtMSBpZiBzb21l dGhpbmcgZ29lcyB3cm9uZywgMCBvdGhlcndpc2UuCi0gTTppbnQ6cHJvY2Vzc19yZWNvcmQ6c3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERSIGFkZHI6cmVnY2FjaGUsIGFkZHIKLSAK LSsjIFNhdmUgcHJvY2VzcyBzdGF0ZSBhZnRlciBhIHNpZ25hbC4KLSsjIFJldHVybiAtMSBpZiBz b21ldGhpbmcgZ29lcyB3cm9uZywgMCBvdGhlcndpc2UuCi0rTTppbnQ6cHJvY2Vzc19yZWNvcmRf c2lnbmFsOnN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWdu YWw6cmVnY2FjaGUsIHNpZ25hbAotKwotICMgU2lnbmFsIHRyYW5zbGF0aW9uOiB0cmFuc2xhdGUg aW5mZXJpb3IncyBzaWduYWwgKGhvc3QncykgbnVtYmVyIGludG8KLSAjIEdEQidzIHJlcHJlc2Vu dGF0aW9uLgotIG06ZW51bSB0YXJnZXRfc2lnbmFsOnRhcmdldF9zaWduYWxfZnJvbV9ob3N0Omlu dCBzaWdubzpzaWdubzo6ZGVmYXVsdF90YXJnZXRfc2lnbmFsX2Zyb21faG9zdDo6MAotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZ2RiYXJjaC5jLHYKLXJldHJpZXZpbmcg cmV2aXNpb24gMS40NTMKLXJldHJpZXZpbmcgcmV2aXNpb24gMS40NTMuMi4xCi1kaWZmIC11IC1y MS40NTMgLXIxLjQ1My4yLjEKLS0tLSBzcmMvZ2RiL2dkYmFyY2guYwkyMDA5LzA5LzE1IDAzOjMw OjA1CTEuNDUzCi0rKysgc3JjL2dkYi9nZGJhcmNoLmMJMjAwOS8wOS8yMSAwNjo1NzowMgkxLjQ1 My4yLjEKLUBAIC0yNDAsNiArMjQwLDcgQEAKLSAgIGdkYmFyY2hfc3RhdGljX3RyYW5zZm9ybV9u YW1lX2Z0eXBlICpzdGF0aWNfdHJhbnNmb3JtX25hbWU7Ci0gICBpbnQgc29mdW5fYWRkcmVzc19t YXliZV9taXNzaW5nOwotICAgZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9mdHlwZSAqcHJvY2Vzc19y ZWNvcmQ7Ci0rICBnZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbF9mdHlwZSAqcHJvY2Vzc19y ZWNvcmRfc2lnbmFsOwotICAgZ2RiYXJjaF90YXJnZXRfc2lnbmFsX2Zyb21faG9zdF9mdHlwZSAq dGFyZ2V0X3NpZ25hbF9mcm9tX2hvc3Q7Ci0gICBnZGJhcmNoX3RhcmdldF9zaWduYWxfdG9faG9z dF9mdHlwZSAqdGFyZ2V0X3NpZ25hbF90b19ob3N0OwotICAgZ2RiYXJjaF9nZXRfc2lnaW5mb190 eXBlX2Z0eXBlICpnZXRfc2lnaW5mb190eXBlOwotQEAgLTM3OCw2ICszNzksNyBAQAotICAgMCwg IC8qIHN0YXRpY190cmFuc2Zvcm1fbmFtZSAqLwotICAgMCwgIC8qIHNvZnVuX2FkZHJlc3NfbWF5 YmVfbWlzc2luZyAqLwotICAgMCwgIC8qIHByb2Nlc3NfcmVjb3JkICovCi0rICAwLCAgLyogcHJv Y2Vzc19yZWNvcmRfc2lnbmFsICovCi0gICBkZWZhdWx0X3RhcmdldF9zaWduYWxfZnJvbV9ob3N0 LCAgLyogdGFyZ2V0X3NpZ25hbF9mcm9tX2hvc3QgKi8KLSAgIGRlZmF1bHRfdGFyZ2V0X3NpZ25h bF90b19ob3N0LCAgLyogdGFyZ2V0X3NpZ25hbF90b19ob3N0ICovCi0gICAwLCAgLyogZ2V0X3Np Z2luZm9fdHlwZSAqLwotQEAgLTYzNSw2ICs2MzcsNyBAQAotICAgLyogU2tpcCB2ZXJpZnkgb2Yg c3RhdGljX3RyYW5zZm9ybV9uYW1lLCBoYXMgcHJlZGljYXRlICovCi0gICAvKiBTa2lwIHZlcmlm eSBvZiBzb2Z1bl9hZGRyZXNzX21heWJlX21pc3NpbmcsIGludmFsaWRfcCA9PSAwICovCi0gICAv KiBTa2lwIHZlcmlmeSBvZiBwcm9jZXNzX3JlY29yZCwgaGFzIHByZWRpY2F0ZSAqLwotKyAgLyog U2tpcCB2ZXJpZnkgb2YgcHJvY2Vzc19yZWNvcmRfc2lnbmFsLCBoYXMgcHJlZGljYXRlICovCi0g ICAvKiBTa2lwIHZlcmlmeSBvZiB0YXJnZXRfc2lnbmFsX2Zyb21faG9zdCwgaW52YWxpZF9wID09 IDAgKi8KLSAgIC8qIFNraXAgdmVyaWZ5IG9mIHRhcmdldF9zaWduYWxfdG9faG9zdCwgaW52YWxp ZF9wID09IDAgKi8KLSAgIC8qIFNraXAgdmVyaWZ5IG9mIGdldF9zaWdpbmZvX3R5cGUsIGhhcyBw cmVkaWNhdGUgKi8KLUBAIC05NzEsNiArOTc0LDEyIEBACi0gICAgICAgICAgICAgICAgICAgICAg ICJnZGJhcmNoX2R1bXA6IHByb2Nlc3NfcmVjb3JkID0gPCVzPlxuIiwKLSAgICAgICAgICAgICAg ICAgICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoZ2RiYXJjaC0+cHJvY2Vzc19yZWNvcmQp KTsKLSAgIGZwcmludGZfdW5maWx0ZXJlZCAoZmlsZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ImdkYmFyY2hfZHVtcDogZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9zaWduYWxfcCgpID0gJWRcbiIs Ci0rICAgICAgICAgICAgICAgICAgICAgIGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsX3Ag KGdkYmFyY2gpKTsKLSsgIGZwcmludGZfdW5maWx0ZXJlZCAoZmlsZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgImdkYmFyY2hfZHVtcDogcHJvY2Vzc19yZWNvcmRfc2lnbmFsID0gPCVzPlxuIiwK LSsgICAgICAgICAgICAgICAgICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoZ2RiYXJjaC0+ cHJvY2Vzc19yZWNvcmRfc2lnbmFsKSk7Ci0rICBmcHJpbnRmX3VuZmlsdGVyZWQgKGZpbGUsCi0g ICAgICAgICAgICAgICAgICAgICAgICJnZGJhcmNoX2R1bXA6IHBzX3JlZ251bSA9ICVzXG4iLAot ICAgICAgICAgICAgICAgICAgICAgICBwbG9uZ2VzdCAoZ2RiYXJjaC0+cHNfcmVnbnVtKSk7Ci0g ICBmcHJpbnRmX3VuZmlsdGVyZWQgKGZpbGUsCi1AQCAtMzMwNyw2ICszMzE2LDMwIEBACi0gICBn ZGJhcmNoLT5wcm9jZXNzX3JlY29yZCA9IHByb2Nlc3NfcmVjb3JkOwotIH0KLSAKLStpbnQKLStn ZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbF9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkK LSt7Ci0rICBnZGJfYXNzZXJ0IChnZGJhcmNoICE9IE5VTEwpOwotKyAgcmV0dXJuIGdkYmFyY2gt PnByb2Nlc3NfcmVjb3JkX3NpZ25hbCAhPSBOVUxMOwotK30KLSsKLStpbnQKLStnZGJhcmNoX3By b2Nlc3NfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdj YWNoZSAqcmVnY2FjaGUsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWduYWwpCi0rewotKyAgZ2RiX2Fz c2VydCAoZ2RiYXJjaCAhPSBOVUxMKTsKLSsgIGdkYl9hc3NlcnQgKGdkYmFyY2gtPnByb2Nlc3Nf cmVjb3JkX3NpZ25hbCAhPSBOVUxMKTsKLSsgIGlmIChnZGJhcmNoX2RlYnVnID49IDIpCi0rICAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgImdkYmFyY2hfcHJvY2Vzc19yZWNvcmRf c2lnbmFsIGNhbGxlZFxuIik7Ci0rICByZXR1cm4gZ2RiYXJjaC0+cHJvY2Vzc19yZWNvcmRfc2ln bmFsIChnZGJhcmNoLCByZWdjYWNoZSwgc2lnbmFsKTsKLSt9Ci0rCi0rdm9pZAotK3NldF9nZGJh cmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGJhcmNoX3Byb2Nlc3NfcmVjb3JkX3Np Z25hbF9mdHlwZSBwcm9jZXNzX3JlY29yZF9zaWduYWwpCi0rewotKyAgZ2RiYXJjaC0+cHJvY2Vz c19yZWNvcmRfc2lnbmFsID0gcHJvY2Vzc19yZWNvcmRfc2lnbmFsOwotK30KLSsKLSBlbnVtIHRh cmdldF9zaWduYWwKLSBnZGJhcmNoX3RhcmdldF9zaWduYWxfZnJvbV9ob3N0IChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwgaW50IHNpZ25vKQotIHsKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJDUyBmaWxlOiAvY3Zz L3NyYy9zcmMvZ2RiL2dkYmFyY2guaCx2Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuNDAzCi1yZXRy aWV2aW5nIHJldmlzaW9uIDEuNDAzLjIuMQotZGlmZiAtdSAtcjEuNDAzIC1yMS40MDMuMi4xCi0t LS0gc3JjL2dkYi9nZGJhcmNoLmgJMjAwOS8wOS8xNSAwMzozMDowNQkxLjQwMwotKysrIHNyYy9n ZGIvZ2RiYXJjaC5oCTIwMDkvMDkvMjEgMDY6NTc6MDIJMS40MDMuMi4xCi1AQCAtODIyLDYgKzgy MiwxNSBAQAotIGV4dGVybiBpbnQgZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQUREUiBhZGRyKTsK LSBleHRlcm4gdm9pZCBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfZnR5cGUgKnByb2Nlc3NfcmVjb3JkKTsK LSAKLSsvKiBTYXZlIHByb2Nlc3Mgc3RhdGUgYWZ0ZXIgYSBzaWduYWwuCi0rICAgUmV0dXJuIC0x IGlmIHNvbWV0aGluZyBnb2VzIHdyb25nLCAwIG90aGVyd2lzZS4gKi8KLSsKLStleHRlcm4gaW50 IGdkYmFyY2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo KTsKLSsKLSt0eXBlZGVmIGludCAoZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9zaWduYWxfZnR5cGUp IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgZW51 bSB0YXJnZXRfc2lnbmFsIHNpZ25hbCk7Ci0rZXh0ZXJuIGludCBnZGJhcmNoX3Byb2Nlc3NfcmVj b3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWduYWwpOwotK2V4dGVybiB2b2lkIHNldF9nZGJh cmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGdkYmFy Y2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsX2Z0eXBlICpwcm9jZXNzX3JlY29yZF9zaWduYWwpOwot KwotIC8qIFNpZ25hbCB0cmFuc2xhdGlvbjogdHJhbnNsYXRlIGluZmVyaW9yJ3Mgc2lnbmFsICho b3N0J3MpIG51bWJlciBpbnRvCi0gICAgR0RCJ3MgcmVwcmVzZW50YXRpb24uICovCi0gCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9yZWNvcmQuYyx2Ci1yZXRyaWV2aW5n IHJldmlzaW9uIDEuMTcKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xNy4yLjEKLWRpZmYgLXUgLXIx LjE3IC1yMS4xNy4yLjEKLS0tLSBzcmMvZ2RiL3JlY29yZC5jCTIwMDkvMDkvMDggMDA6NTA6NDIJ MS4xNwotKysrIHNyYy9nZGIvcmVjb3JkLmMJMjAwOS8wOS8yMSAwNjo1NzowMwkxLjE3LjIuMQot QEAgLTU5LDYgKzU5LDExIEBACi0gICBnZGJfYnl0ZSAqdmFsOwotIH07Ci0gCi0rc3RydWN0IHJl Y29yZF9lbmRfZW50cnkKLSt7Ci0rICBlbnVtIHRhcmdldF9zaWduYWwgc2lndmFsOwotK307Ci0r Ci0gZW51bSByZWNvcmRfdHlwZQotIHsKLSAgIHJlY29yZF9lbmQgPSAwLAotQEAgLTc3LDYgKzgy LDggQEAKLSAgICAgc3RydWN0IHJlY29yZF9yZWdfZW50cnkgcmVnOwotICAgICAvKiBtZW0gKi8K LSAgICAgc3RydWN0IHJlY29yZF9tZW1fZW50cnkgbWVtOwotKyAgICAvKiBlbmQgKi8KLSsgICAg c3RydWN0IHJlY29yZF9lbmRfZW50cnkgZW5kOwotICAgfSB1OwotIH07Ci0gCi1AQCAtMzE0LDYg KzMyMSw3IEBACi0gICByZWMtPnByZXYgPSBOVUxMOwotICAgcmVjLT5uZXh0ID0gTlVMTDsKLSAg IHJlYy0+dHlwZSA9IHJlY29yZF9lbmQ7Ci0rICByZWMtPnUuZW5kLnNpZ3ZhbCA9IFRBUkdFVF9T SUdOQUxfMDsKLSAKLSAgIHJlY29yZF9hcmNoX2xpc3RfYWRkIChyZWMpOwotIAotQEAgLTM2MCwx MSArMzY4LDE3IEBACi0gICByZWNvcmRfbGlzdF9yZWxlYXNlIChyZWNvcmRfYXJjaF9saXN0X3Rh aWwpOwotIH0KLSAKLStzdHJ1Y3QgcmVjb3JkX21lc3NhZ2VfYXJncyB7Ci0rICBzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlOwotKyAgZW51bSB0YXJnZXRfc2lnbmFsIHNpZ25hbDsKLSt9OwotKwot IHN0YXRpYyBpbnQKLSByZWNvcmRfbWVzc2FnZSAodm9pZCAqYXJncykKLSB7Ci0gICBpbnQgcmV0 OwotLSAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSA9IGFyZ3M7Ci0rICBzdHJ1Y3QgcmVjb3Jk X21lc3NhZ2VfYXJncyAqbXlhcmdzID0gYXJnczsKLSsgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo ID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKG15YXJncy0+cmVnY2FjaGUpOwotICAgc3RydWN0IGNsZWFu dXAgKm9sZF9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cCAocmVjb3JkX21lc3NhZ2VfY2xlYW51cHMs IDApOwotIAotICAgcmVjb3JkX2FyY2hfbGlzdF9oZWFkID0gTlVMTDsKLUBAIC0zNzMsOSArMzg3 LDQ0IEBACi0gICAvKiBDaGVjayByZWNvcmRfaW5zbl9udW0uICAqLwotICAgcmVjb3JkX2NoZWNr X2luc25fbnVtICgxKTsKLSAKLS0gIHJldCA9IGdkYmFyY2hfcHJvY2Vzc19yZWNvcmQgKGdldF9y ZWdjYWNoZV9hcmNoIChyZWdjYWNoZSksCi0tCQkJCXJlZ2NhY2hlLAotLQkJCQlyZWdjYWNoZV9y ZWFkX3BjIChyZWdjYWNoZSkpOwotKyAgLyogSWYgZ2RiIHNlbmRzIGEgc2lnbmFsIHZhbHVlIHRv IHRhcmdldF9yZXN1bWUsCi0rICAgICBzYXZlIGl0IGluIHRoZSAnZW5kJyBmaWVsZCBvZiB0aGUg cHJldmlvdXMgaW5zdHJ1Y3Rpb24uCi0rCi0rICAgICBNYXliZSBwcm9jZXNzIHJlY29yZCBzaG91 bGQgcmVjb3JkIHdoYXQgcmVhbGx5IGhhcHBlbmVkLAotKyAgICAgcmF0aGVyIHRoYW4gd2hhdCBn ZGIgcHJldGVuZHMgaGFzIGhhcHBlbmVkLgotKwotKyAgICAgU28gaWYgTGludXggZGVsaXZlcmVk IHRoZSBzaWduYWwgdG8gdGhlIGNoaWxkIHByb2Nlc3MgZHVyaW5nCi0rICAgICB0aGUgcmVjb3Jk IG1vZGUsIHdlIHdpbGwgcmVjb3JkIGl0IGFuZCBkZWxpdmVyIGl0IGFnYWluIGluCi0rICAgICB0 aGUgcmVwbGF5IG1vZGUuCi0rCi0rICAgICBJZiB1c2VyIHNheXMgImlnbm9yZSB0aGlzIHNpZ25h bCIgZHVyaW5nIHRoZSByZWNvcmQgbW9kZSwgdGhlbgotKyAgICAgaXQgd2lsbCBiZSBpZ25vcmVk IGFnYWluIGR1cmluZyB0aGUgcmVwbGF5IG1vZGUgKG5vIG1hdHRlciBpZgotKyAgICAgdGhlIHVz ZXIgc2F5cyBzb21ldGhpbmcgZGlmZmVyZW50LCBsaWtlICJkZWxpdmVyIHRoaXMgc2lnbmFsIgot KyAgICAgZHVyaW5nIHRoZSByZXBsYXkgbW9kZSkuCi0rCi0rICAgICBVc2VyIHNob3VsZCB1bmRl cnN0YW5kIHRoYXQgbm90aGluZyBoZSBkb2VzIGR1cmluZyB0aGUgcmVwbGF5Ci0rICAgICBtb2Rl IHdpbGwgY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgY2hpbGQuICBJZiBoZSB0cmllcywKLSsg ICAgIHRoZW4gdGhhdCBpcyBhIHVzZXIgZXJyb3IuCi0rCi0rICAgICBCdXQgd2Ugc2hvdWxkIHN0 aWxsIGRlbGl2ZXIgdGhlIHNpZ25hbCB0byBnZGIgZHVyaW5nIHRoZSByZXBsYXksCi0rICAgICBp ZiB3ZSBkZWxpdmVyZWQgaXQgZHVyaW5nIHRoZSByZWNvcmRpbmcuICBUaGVyZWZvcmUgd2Ugc2hv dWxkCi0rICAgICByZWNvcmQgdGhlIHNpZ25hbCBkdXJpbmcgcmVjb3JkX3dhaXQsIG5vdCByZWNv cmRfcmVzdW1lLiAgKi8KLSsgIGlmIChyZWNvcmRfbGlzdCAhPSAmcmVjb3JkX2ZpcnN0KSAgICAv KiBGSVhNRSBiZXR0ZXIgd2F5IHRvIGNoZWNrICovCi0rICAgIHsKLSsgICAgICBnZGJfYXNzZXJ0 IChyZWNvcmRfbGlzdC0+dHlwZSA9PSByZWNvcmRfZW5kKTsKLSsgICAgICByZWNvcmRfbGlzdC0+ dS5lbmQuc2lndmFsID0gbXlhcmdzLT5zaWduYWw7Ci0rICAgIH0KLSsKLSsgIGlmIChteWFyZ3Mt PnNpZ25hbCA9PSBUQVJHRVRfU0lHTkFMXzAKLSsgICAgICB8fCAhZ2RiYXJjaF9wcm9jZXNzX3Jl Y29yZF9zaWduYWxfcCAoZ2RiYXJjaCkpCi0rICAgIHJldCA9IGdkYmFyY2hfcHJvY2Vzc19yZWNv cmQgKGdkYmFyY2gsCi0rCQkJCSAgbXlhcmdzLT5yZWdjYWNoZSwKLSsJCQkJICByZWdjYWNoZV9y ZWFkX3BjIChteWFyZ3MtPnJlZ2NhY2hlKSk7Ci0rICBlbHNlCi0rICAgIHJldCA9IGdkYmFyY2hf cHJvY2Vzc19yZWNvcmRfc2lnbmFsIChnZGJhcmNoLAotKwkJCQkJIG15YXJncy0+cmVnY2FjaGUs Ci0rCQkJCQkgbXlhcmdzLT5zaWduYWwpOwotKwotICAgaWYgKHJldCA+IDApCi0gICAgIGVycm9y IChfKCJQcm9jZXNzIHJlY29yZDogaW5mZXJpb3IgcHJvZ3JhbSBzdG9wcGVkLiIpKTsKLSAgIGlm IChyZXQgPCAwKQotQEAgLTM5Niw5ICs0NDUsMTQgQEAKLSB9Ci0gCi0gc3RhdGljIGludAotLWRv X3JlY29yZF9tZXNzYWdlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQotK2RvX3JlY29yZF9t ZXNzYWdlIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAotKwkJICAgZW51bSB0YXJnZXRfc2ln bmFsIHNpZ25hbCkKLSB7Ci0tICByZXR1cm4gY2F0Y2hfZXJyb3JzIChyZWNvcmRfbWVzc2FnZSwg cmVnY2FjaGUsIE5VTEwsIFJFVFVSTl9NQVNLX0FMTCk7Ci0rICBzdHJ1Y3QgcmVjb3JkX21lc3Nh Z2VfYXJncyBhcmdzOwotKwotKyAgYXJncy5yZWdjYWNoZSA9IHJlZ2NhY2hlOwotKyAgYXJncy5z aWduYWwgPSBzaWduYWw7Ci0rICByZXR1cm4gY2F0Y2hfZXJyb3JzIChyZWNvcmRfbWVzc2FnZSwg JmFyZ3MsIE5VTEwsIFJFVFVSTl9NQVNLX0FMTCk7Ci0gfQotIAotIC8qIFNldCB0byAxIGlmIHJl Y29yZF9zdG9yZV9yZWdpc3RlcnMgYW5kIHJlY29yZF94ZmVyX3BhcnRpYWwKLUBAIC01MjAsMTMg KzU3NCwxMyBAQAotIAotIHN0YXRpYyB2b2lkCi0gcmVjb3JkX3Jlc3VtZSAoc3RydWN0IHRhcmdl dF9vcHMgKm9wcywgcHRpZF90IHB0aWQsIGludCBzdGVwLAotLSAgICAgICAgICAgICAgIGVudW0g dGFyZ2V0X3NpZ25hbCBzaWdnbmFsKQotKyAgICAgICAgICAgICAgIGVudW0gdGFyZ2V0X3NpZ25h bCBzaWduYWwpCi0gewotICAgcmVjb3JkX3Jlc3VtZV9zdGVwID0gc3RlcDsKLSAKLSAgIGlmICgh UkVDT1JEX0lTX1JFUExBWSkKLSAgICAgewotLSAgICAgIGlmIChkb19yZWNvcmRfbWVzc2FnZSAo Z2V0X2N1cnJlbnRfcmVnY2FjaGUgKCkpKQotKyAgICAgIGlmIChkb19yZWNvcmRfbWVzc2FnZSAo Z2V0X2N1cnJlbnRfcmVnY2FjaGUgKCksIHNpZ25hbCkpCi0gICAgICAgICB7Ci0gICAgICAgICAg IHJlY29yZF9yZXN1bWVfZXJyb3IgPSAwOwotICAgICAgICAgfQotQEAgLTUzNiw3ICs1OTAsNyBA QAotICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci0gICAgICAgcmVjb3JkX2JlbmVhdGhf dG9fcmVzdW1lIChyZWNvcmRfYmVuZWF0aF90b19yZXN1bWVfb3BzLCBwdGlkLCAxLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnZ25hbCk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaWduYWwpOwotICAgICB9Ci0gfQotIAotQEAgLTYxMSwxNSArNjY1LDE2 IEBACi0gCSAgICAgIHJldCA9IHJlY29yZF9iZW5lYXRoX3RvX3dhaXQgKHJlY29yZF9iZW5lYXRo X3RvX3dhaXRfb3BzLAotIAkJCQkJICAgIHB0aWQsIHN0YXR1cywgb3B0aW9ucyk7Ci0gCi0rCSAg ICAgIC8qIElzIHRoaXMgYSBTSUdUUkFQPyAgKi8KLSAJICAgICAgaWYgKHN0YXR1cy0+a2luZCA9 PSBUQVJHRVRfV0FJVEtJTkRfU1RPUFBFRAotIAkJICAmJiBzdGF0dXMtPnZhbHVlLnNpZyA9PSBU QVJHRVRfU0lHTkFMX1RSQVApCi0gCQl7Ci0tCQkgIC8qIENoZWNrIGlmIHRoZXJlIGlzIGEgYnJl YWtwb2ludC4gICovCi0rCQkgIC8qIFllcyAtLSBjaGVjayBpZiB0aGVyZSBpcyBhIGJyZWFrcG9p bnQuICAqLwotIAkJICByZWdpc3RlcnNfY2hhbmdlZCAoKTsKLSAJCSAgdG1wX3BjID0gcmVnY2Fj aGVfcmVhZF9wYyAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCkpOwotIAkJICBpZiAoYnJlYWtwb2lu dF9pbnNlcnRlZF9oZXJlX3AgKHRtcF9wYykpCi0gCQkgICAgewotLQkJICAgICAgLyogVGhlcmUg aXMgYSBicmVha3BvaW50LiAgKi8KLSsJCSAgICAgIC8qIFRoZXJlIGlzIGEgYnJlYWtwb2ludC4g IEdEQiB3aWxsIHdhbnQgdG8gc3RvcC4gICovCi0gCQkgICAgICBDT1JFX0FERFIgZGVjcl9wY19h ZnRlcl9icmVhayA9Ci0gCQkJZ2RiYXJjaF9kZWNyX3BjX2FmdGVyX2JyZWFrCi0gCQkJKGdldF9y ZWdjYWNoZV9hcmNoIChnZXRfY3VycmVudF9yZWdjYWNoZSAoKSkpOwotQEAgLTYzMSw4ICs2ODYs MTIgQEAKLSAJCSAgICB9Ci0gCQkgIGVsc2UKLSAJCSAgICB7Ci0tCQkgICAgICAvKiBUaGVyZSBp cyBub3QgYSBicmVha3BvaW50LiAgKi8KLS0JCSAgICAgIGlmICghZG9fcmVjb3JkX21lc3NhZ2Ug KGdldF9jdXJyZW50X3JlZ2NhY2hlICgpKSkKLSsJCSAgICAgIC8qIFRoZXJlIGlzIG5vdCBhIGJy ZWFrcG9pbnQsIGFuZCBnZGIgaXMgbm90Ci0rCQkgICAgICAgICBzdGVwcGluZywgdGhlcmVmb3Jl IGdkYiB3aWxsIG5vdCBzdG9wLgotKwkJCSBUaGVyZWZvcmUgd2Ugd2lsbCBub3QgcmV0dXJuIHRv IGdkYi4KLSsJCSAgICAgICAgIFJlY29yZCB0aGUgaW5zbiBhbmQgcmVzdW1lLiAgKi8KLSsJCSAg ICAgIGlmICghZG9fcmVjb3JkX21lc3NhZ2UgKGdldF9jdXJyZW50X3JlZ2NhY2hlICgpLAotKwkJ CQkJICAgICAgVEFSR0VUX1NJR05BTF8wKSkKLSAJCQl7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICBicmVhazsKLSAJCQl9Ci1AQCAtODI3LDYgKzg4NiwxMCBAQAotIAkJCQkJICAgZ2RiYXJj aF9kZWNyX3BjX2FmdGVyX2JyZWFrIChnZGJhcmNoKSk7Ci0gCQkgICAgICBjb250aW51ZV9mbGFn ID0gMDsKLSAJCSAgICB9Ci0rCQkgIC8qIENoZWNrIHRhcmdldCBzaWduYWwgKi8KLSsJCSAgaWYg KHJlY29yZF9saXN0LT51LmVuZC5zaWd2YWwgIT0gVEFSR0VUX1NJR05BTF8wKQotKwkJICAgIC8q IEZJWE1FOiBiZXR0ZXIgd2F5IHRvIGNoZWNrICovCi0rCQkgICAgY29udGludWVfZmxhZyA9IDA7 Ci0gCQl9Ci0gCSAgICB9Ci0gCi1AQCAtODUxLDYgKzkxNCw5IEBACi0gcmVwbGF5X291dDoKLSAg ICAgICBpZiAocmVjb3JkX2dldF9zaWcpCi0gCXN0YXR1cy0+dmFsdWUuc2lnID0gVEFSR0VUX1NJ R05BTF9JTlQ7Ci0rICAgICAgZWxzZSBpZiAocmVjb3JkX2xpc3QtPnUuZW5kLnNpZ3ZhbCAhPSBU QVJHRVRfU0lHTkFMXzApCi0rCS8qIEZJWE1FOiBiZXR0ZXIgd2F5IHRvIGNoZWNrICovCi0rCXN0 YXR1cy0+dmFsdWUuc2lnID0gcmVjb3JkX2xpc3QtPnUuZW5kLnNpZ3ZhbDsKLSAgICAgICBlbHNl Ci0gCXN0YXR1cy0+dmFsdWUuc2lnID0gVEFSR0VUX1NJR05BTF9UUkFQOwotIAotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvaTM4Ni1saW51eC10ZGVwLmMsdgotcmV0cmll dmluZyByZXZpc2lvbiAxLjY4Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuNjguMi4xCi1kaWZmIC11 IC1yMS42OCAtcjEuNjguMi4xCi0tLS0gc3JjL2dkYi9pMzg2LWxpbnV4LXRkZXAuYwkyMDA5LzA5 LzE1IDAzOjMwOjA2CTEuNjgKLSsrKyBzcmMvZ2RiL2kzODYtbGludXgtdGRlcC5jCTIwMDkvMDkv MjEgMDY6NTc6MDMJMS42OC4yLjEKLUBAIC0zNTgsNyArMzU4LDMyIEBACi0gICByZWdjYWNoZV9j b29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05V TSwgLTEpOwotIH0KLSAKLS1zdGF0aWMgc3RydWN0IGxpbnV4X3JlY29yZF90ZGVwIGkzODZfbGlu dXhfcmVjb3JkX3RkZXA7Ci0rLyogUmVjb3JkIGFsbCByZWdpc3RlcnMgYnV0IElQIHJlZ2lzdGVy IGZvciBwcm9jZXNzLXJlY29yZC4gICovCi0rCi0rc3RhdGljIGludAotK2kzODZfYWxsX2J1dF9p cF9yZWdpc3RlcnNfcmVjb3JkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQotK3sKLSsgIGlm IChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBJMzg2X0VBWF9SRUdOVU0pKQot KyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNo ZSwgSTM4Nl9FQ1hfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNo X2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEkzODZfRURYX1JFR05VTSkpCi0rICAgIHJldHVybiAt MTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBJMzg2X0VCWF9S RUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfcmVn IChyZWdjYWNoZSwgSTM4Nl9FU1BfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYgKHJl Y29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEkzODZfRUJQX1JFR05VTSkpCi0rICAg IHJldHVybiAtMTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBJ Mzg2X0VTSV9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfcmVnIChyZWdjYWNoZSwgSTM4Nl9FRElfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwot KyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEkzODZfRUZMQUdTX1JF R05VTSkpCi0rICAgIHJldHVybiAtMTsKLSsKLSsgIHJldHVybiAwOwotK30KLSAKLSAvKiBpMzg2 X2Nhbm9uaWNhbGl6ZV9zeXNjYWxsIG1hcHMgZnJvbSB0aGUgbmF0aXZlIGkzODYgTGludXggc2V0 Ci0gICAgb2Ygc3lzY2FsbCBpZHMgaW50byBhIGNhbm9uaWNhbCBzZXQgb2Ygc3lzY2FsbCBpZHMg dXNlZCBieQotQEAgLTM4Myw2ICs0MDgsOCBAQAotIAotICAgIFJldHVybiAtMSBpZiBzb21ldGhp bmcgd3JvbmcuICAqLwotIAotK3N0YXRpYyBzdHJ1Y3QgbGludXhfcmVjb3JkX3RkZXAgaTM4Nl9s aW51eF9yZWNvcmRfdGRlcDsKLSsKLSBzdGF0aWMgaW50Ci0gaTM4Nl9saW51eF9pbnR4ODBfc3lz ZW50ZXJfcmVjb3JkIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQotIHsKLUBAIC00MDIsNiAr NDI5LDE0IEBACi0gICAgICAgcmV0dXJuIC0xOwotICAgICB9Ci0gCi0rICBpZiAoc3lzY2FsbF9n ZGIgPT0gZ2RiX3N5c19zaWdyZXR1cm4KLSsgICAgICB8fCBzeXNjYWxsX2dkYiA9PSBnZGJfc3lz X3J0X3NpZ3JldHVybikKLSsgICB7Ci0rICAgICBpZiAoaTM4Nl9hbGxfYnV0X2lwX3JlZ2lzdGVy c19yZWNvcmQgKHJlZ2NhY2hlKSkKLSsgICAgICAgcmV0dXJuIC0xOwotKyAgICAgcmV0dXJuIDA7 Ci0rICAgfQotKwotICAgcmV0ID0gcmVjb3JkX2xpbnV4X3N5c3RlbV9jYWxsIChzeXNjYWxsX2dk YiwgcmVnY2FjaGUsCi0gCQkJCSAgJmkzODZfbGludXhfcmVjb3JkX3RkZXApOwotICAgaWYgKHJl dCkKLUBAIC00MTMsNiArNDQ4LDQwIEBACi0gCi0gICByZXR1cm4gMDsKLSB9Ci0rCi0rI2RlZmlu ZSBJMzg2X0xJTlVYX3hzdGF0ZQkyNzAKLSsjZGVmaW5lIEkzODZfTElOVVhfZnJhbWVfc2l6ZQk3 MzIKLSsKLStpbnQKLStpMzg2X2xpbnV4X3JlY29yZF9zaWduYWwgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWdu YWwpCi0rewotKyAgVUxPTkdFU1QgZXNwOwotKwotKyAgaWYgKGkzODZfYWxsX2J1dF9pcF9yZWdp c3RlcnNfcmVjb3JkIChyZWdjYWNoZSkpCi0rICAgIHJldHVybiAtMTsKLSsKLSsgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBJMzg2X0VJUF9SRUdOVU0pKQotKyAgICBy ZXR1cm4gLTE7Ci0rCi0rICAvKiBSZWNvcmQgdGhlIGNoYW5nZSBpbiB0aGUgc3RhY2suICAqLwot KyAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBJMzg2X0VTUF9SRUdOVU0s ICZlc3ApOwotKyAgLyogVGhpcyBpcyBmb3IgeHN0YXRlLgotKyAgICAgc3AgLT0gc2l6ZW9mIChz dHJ1Y3QgX2Zwc3RhdGUpOyAgKi8KLSsgIGVzcCAtPSBJMzg2X0xJTlVYX3hzdGF0ZTsKLSsgIC8q IFRoaXMgaXMgZm9yIGZyYW1lX3NpemUuCi0rICAgICBzcCAtPSBzaXplb2YgKHN0cnVjdCBydF9z aWdmcmFtZSk7ICAqLwotKyAgZXNwIC09IEkzODZfTElOVVhfZnJhbWVfc2l6ZTsKLSsgIGlmIChy ZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKGVzcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEkzODZfTElOVVhfeHN0YXRlICsgSTM4Nl9MSU5VWF9mcmFtZV9zaXplKSkKLSsgICAg cmV0dXJuIC0xOwotKwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX2VuZCAoKSkKLSsgICAg cmV0dXJuIC0xOwotKwotKyAgcmV0dXJuIDA7Ci0rfQotIAwKLSAKLSBzdGF0aWMgTE9OR0VTVAot QEAgLTUyOSw2ICs1OTgsNyBAQAotICAgdGRlcC0+c2NfbnVtX3JlZ3MgPSBBUlJBWV9TSVpFIChp Mzg2X2xpbnV4X3NjX3JlZ19vZmZzZXQpOwotIAotICAgc2V0X2dkYmFyY2hfcHJvY2Vzc19yZWNv cmQgKGdkYmFyY2gsIGkzODZfcHJvY2Vzc19yZWNvcmQpOwotKyAgc2V0X2dkYmFyY2hfcHJvY2Vz c19yZWNvcmRfc2lnbmFsIChnZGJhcmNoLCBpMzg2X2xpbnV4X3JlY29yZF9zaWduYWwpOwotIAot ICAgLyogSW5pdGlhbGl6ZSB0aGUgaTM4Nl9saW51eF9yZWNvcmRfdGRlcC4gICovCi0gICAvKiBU aGVzZSB2YWx1ZXMgYXJlIHRoZSBzaXplIG9mIHRoZSB0eXBlIHRoYXQgd2lsbCBiZSB1c2VkIGlu IGEgc3lzdGVtCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9hbWQ2NC1s aW51eC10ZGVwLmMsdgotcmV0cmlldmluZyByZXZpc2lvbiAxLjI5Ci1yZXRyaWV2aW5nIHJldmlz aW9uIDEuMjkuMi4xCi1kaWZmIC11IC1yMS4yOSAtcjEuMjkuMi4xCi0tLS0gc3JjL2dkYi9hbWQ2 NC1saW51eC10ZGVwLmMJMjAwOS8wOS8xNSAwMzozMDowNAkxLjI5Ci0rKysgc3JjL2dkYi9hbWQ2 NC1saW51eC10ZGVwLmMJMjAwOS8wOS8yMSAwNjo1NzowMwkxLjI5LjIuMQotQEAgLTI4OSwxNiAr Mjg5LDQ4IEBACi0gICByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduZWQgKHJlZ2NhY2hlLCBB TUQ2NF9MSU5VWF9PUklHX1JBWF9SRUdOVU0sIC0xKTsKLSB9Ci0gCi0tLyogUGFyc2UgdGhlIGFy Z3VtZW50cyBvZiBjdXJyZW50IHN5c3RlbSBjYWxsIGluc3RydWN0aW9uIGFuZCByZWNvcmQKLS0g ICB0aGUgdmFsdWVzIG9mIHRoZSByZWdpc3RlcnMgYW5kIG1lbW9yeSB0aGF0IHdpbGwgYmUgY2hh bmdlZCBpbnRvCi0tICAgInJlY29yZF9hcmNoX2xpc3QiLiAgVGhpcyBpbnN0cnVjdGlvbiBpcyAi c3lzY2FsbCIuCi0tCi0tICAgUmV0dXJuIC0xIGlmIHNvbWV0aGluZyB3cm9uZy4gICovCi0rLyog UmVjb3JkIGFsbCByZWdpc3RlcnMgYnV0IElQIHJlZ2lzdGVyIGZvciBwcm9jZXNzLXJlY29yZC4g ICovCi0gCi0tc3RhdGljIHN0cnVjdCBsaW51eF9yZWNvcmRfdGRlcCBhbWQ2NF9saW51eF9yZWNv cmRfdGRlcDsKLStzdGF0aWMgaW50Ci0rYW1kNjRfYWxsX2J1dF9pcF9yZWdpc3RlcnNfcmVjb3Jk IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlKQotK3sKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SQVhfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwot KyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFNRDY0X1JDWF9SRUdO VU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfcmVnIChy ZWdjYWNoZSwgQU1ENjRfUkRYX1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsKLSsgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SQlhfUkVHTlVNKSkKLSsgICAg cmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFN RDY0X1JTUF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUkJQX1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsK LSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SU0lfUkVH TlVNKSkKLSsgICAgcmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAo cmVnY2FjaGUsIEFNRDY0X1JESV9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVj b3JkX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUjhfUkVHTlVNKSkKLSsgICAg cmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFN RDY0X1I5X1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsKLSsgIGlmIChyZWNvcmRfYXJjaF9saXN0 X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SMTBfUkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwot KyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFNRDY0X1IxMV9SRUdO VU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlzdF9hZGRfcmVnIChy ZWdjYWNoZSwgQU1ENjRfUjEyX1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsKLSsgIGlmIChyZWNv cmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9SMTNfUkVHTlVNKSkKLSsgICAg cmV0dXJuIC0xOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFN RDY0X1IxNF9SRUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rICBpZiAocmVjb3JkX2FyY2hfbGlz dF9hZGRfcmVnIChyZWdjYWNoZSwgQU1ENjRfUjE1X1JFR05VTSkpCi0rICAgIHJldHVybiAtMTsK LSsgIGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBBTUQ2NF9FRkxBR1Nf UkVHTlVNKSkKLSsgICAgcmV0dXJuIC0xOwotIAotLSNkZWZpbmUgUkVDT1JEX0FSQ0hfR0VUX0ZT CTB4MTAwMwotLSNkZWZpbmUgUkVDT1JEX0FSQ0hfR0VUX0dTCTB4MTAwNAotKyAgcmV0dXJuIDA7 Ci0rfQotIAotIC8qIGFtZDY0X2Nhbm9uaWNhbGl6ZV9zeXNjYWxsIG1hcHMgZnJvbSB0aGUgbmF0 aXZlIGFtZDY0IExpbnV4IHNldCAKLSAgICBvZiBzeXNjYWxsIGlkcyBpbnRvIGEgY2Fub25pY2Fs IHNldCBvZiBzeXNjYWxsIGlkcyB1c2VkIGJ5IAotQEAgLTExMTEsNiArMTE0MywxNyBAQAotICAg fQotIH0KLSAKLSsvKiBQYXJzZSB0aGUgYXJndW1lbnRzIG9mIGN1cnJlbnQgc3lzdGVtIGNhbGwg aW5zdHJ1Y3Rpb24gYW5kIHJlY29yZAotKyAgIHRoZSB2YWx1ZXMgb2YgdGhlIHJlZ2lzdGVycyBh bmQgbWVtb3J5IHRoYXQgd2lsbCBiZSBjaGFuZ2VkIGludG8KLSsgICAicmVjb3JkX2FyY2hfbGlz dCIuICBUaGlzIGluc3RydWN0aW9uIGlzICJzeXNjYWxsIi4KLSsKLSsgICBSZXR1cm4gLTEgaWYg c29tZXRoaW5nIHdyb25nLiAgKi8KLSsKLStzdGF0aWMgc3RydWN0IGxpbnV4X3JlY29yZF90ZGVw IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwOwotKwotKyNkZWZpbmUgUkVDT1JEX0FSQ0hfR0VUX0ZT CTB4MTAwMwotKyNkZWZpbmUgUkVDT1JEX0FSQ0hfR0VUX0dTCTB4MTAwNAotKwotIHN0YXRpYyBp bnQKLSBhbWQ2NF9saW51eF9zeXNjYWxsX3JlY29yZCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNo ZSkKLSB7Ci1AQCAtMTEyMCwyNyArMTE2MywzOSBAQAotIAotICAgcmVnY2FjaGVfcmF3X3JlYWRf dW5zaWduZWQgKHJlZ2NhY2hlLCBBTUQ2NF9SQVhfUkVHTlVNLCAmc3lzY2FsbF9uYXRpdmUpOwot IAotLSAgc3lzY2FsbF9nZGIgPSBhbWQ2NF9jYW5vbmljYWxpemVfc3lzY2FsbCAoc3lzY2FsbF9u YXRpdmUpOwotLQotLSAgaWYgKHN5c2NhbGxfbmF0aXZlID09IGFtZDY0X3N5c19hcmNoX3ByY3Rs KSAKLSsgIHN3aXRjaCAoc3lzY2FsbF9uYXRpdmUpCi0gICAgIHsKLS0gICAgICBVTE9OR0VTVCBh cmczOwotLQotLSAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgYW1k NjRfbGludXhfcmVjb3JkX3RkZXAuYXJnMywKLS0JCQkJICAmYXJnMyk7Ci0tICAgICAgaWYgKGFy ZzMgPT0gUkVDT1JEX0FSQ0hfR0VUX0ZTIHx8IGFyZzMgPT0gUkVDT1JEX0FSQ0hfR0VUX0dTKQot LSAgICAgIHsKLS0JQ09SRV9BRERSIGFkZHI7Ci0tCi0tCXJlZ2NhY2hlX3Jhd19yZWFkX3Vuc2ln bmVkIChyZWdjYWNoZSwgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuYXJnMiwKLS0JCQkJICAgICZh ZGRyKTsKLS0JaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoYWRkciwgCi0tCQkJCSAgICAg IGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfdWxvbmcpKQotLQkgIHJldHVybiAtMTsKLS0g ICAgICB9Ci0tICAgICAgZ290byByZWNvcmRfcmVnczsKLSsgICAgY2FzZSBhbWQ2NF9zeXNfcnRf c2lncmV0dXJuOgotKyAgICAgIGlmIChhbWQ2NF9hbGxfYnV0X2lwX3JlZ2lzdGVyc19yZWNvcmQg KHJlZ2NhY2hlKSkKLSsgICAgICAgIHJldHVybiAtMTsKLSsgICAgICByZXR1cm4gMDsKLSsgICAg ICBicmVhazsKLSsKLSsgICAgY2FzZSBhbWQ2NF9zeXNfYXJjaF9wcmN0bDoKLSsgICAgICBpZiAo c3lzY2FsbF9uYXRpdmUgPT0gYW1kNjRfc3lzX2FyY2hfcHJjdGwpCi0rICAgICAgICB7Ci0rICAg ICAgICAgIFVMT05HRVNUIGFyZzM7Ci0rCi0rICAgICAgICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3Vu c2lnbmVkIChyZWdjYWNoZSwgYW1kNjRfbGludXhfcmVjb3JkX3RkZXAuYXJnMywKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmczKTsKLSsgICAgICAgICAgaWYgKGFy ZzMgPT0gUkVDT1JEX0FSQ0hfR0VUX0ZTIHx8IGFyZzMgPT0gUkVDT1JEX0FSQ0hfR0VUX0dTKQot KyAgICAgICAgICAgIHsKLSsJICAgICAgQ09SRV9BRERSIGFkZHI7Ci0rCi0rCSAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhbWQ2NF9saW51eF9yZWNvcmRfdGRlcC5hcmcyLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRyKTsKLSsJICAgICAgaWYg KHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAoYWRkciwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFtZDY0X2xpbnV4X3JlY29yZF90ZGVwLnNpemVfdWxvbmcp KQotKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAg ICBnb3RvIHJlY29yZF9yZWdzOwotKyAgICAgICAgfQotKyAgICAgIGJyZWFrOwotICAgICB9Ci0g Ci0rICBzeXNjYWxsX2dkYiA9IGFtZDY0X2Nhbm9uaWNhbGl6ZV9zeXNjYWxsIChzeXNjYWxsX25h dGl2ZSk7Ci0rCi0gICBpZiAoc3lzY2FsbF9nZGIgPCAwKQotICAgICB7Ci0gICAgICAgcHJpbnRm X3VuZmlsdGVyZWQgKF8oIlByb2Nlc3MgcmVjb3JkIGFuZCByZXBsYXkgdGFyZ2V0IGRvZXNuJ3Qg IgotQEAgLTExNjMsNiArMTIxOCw0NCBAQAotICAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3Jl ZyAocmVnY2FjaGUsIEFNRDY0X1IxMV9SRUdOVU0pKQotICAgICByZXR1cm4gLTE7Ci0gCi0rICBy ZXR1cm4gMDsKLSt9Ci0rCi0rI2RlZmluZSBBTUQ2NF9MSU5VWF9yZWR6b25lICAgIDEyOAotKyNk ZWZpbmUgQU1ENjRfTElOVVhfeHN0YXRlICAgICA1MTIKLSsjZGVmaW5lIEFNRDY0X0xJTlVYX2Zy YW1lX3NpemUgNTYwCi0rCi0raW50Ci0rYW1kNjRfbGludXhfcmVjb3JkX3NpZ25hbCAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHRhcmdl dF9zaWduYWwgc2lnbmFsKQotK3sKLSsgIFVMT05HRVNUIHJzcDsKLSsKLSsgIGlmIChhbWQ2NF9h bGxfYnV0X2lwX3JlZ2lzdGVyc19yZWNvcmQgKHJlZ2NhY2hlKSkKLSsgICAgcmV0dXJuIC0xOwot KwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIEFNRDY0X1JJUF9S RUdOVU0pKQotKyAgICByZXR1cm4gLTE7Ci0rCi0rICAvKiBSZWNvcmQgdGhlIGNoYW5nZSBpbiB0 aGUgc3RhY2suICAqLwotKyAgcmVnY2FjaGVfcmF3X3JlYWRfdW5zaWduZWQgKHJlZ2NhY2hlLCBB TUQ2NF9SU1BfUkVHTlVNLCAmcnNwKTsKLSsgIC8qIHJlZHpvbmUKLSsgICAgIHNwIC09IDEyODsg Ki8KLSsgIHJzcCAtPSBBTUQ2NF9MSU5VWF9yZWR6b25lOwotKyAgLyogVGhpcyBpcyBmb3IgeHN0 YXRlLgotKyAgICAgc3AgLT0gc2l6ZW9mIChzdHJ1Y3QgX2Zwc3RhdGUpOyAgKi8KLSsgIHJzcCAt PSBBTUQ2NF9MSU5VWF94c3RhdGU7Ci0rICAvKiBUaGlzIGlzIGZvciBmcmFtZV9zaXplLgotKyAg ICAgc3AgLT0gc2l6ZW9mIChzdHJ1Y3QgcnRfc2lnZnJhbWUpOyAgKi8KLSsgIHJzcCAtPSBBTUQ2 NF9MSU5VWF9mcmFtZV9zaXplOwotKyAgaWYgKHJlY29yZF9hcmNoX2xpc3RfYWRkX21lbSAocnNw LCBBTUQ2NF9MSU5VWF9yZWR6b25lCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsgQU1ENjRfTElOVVhfeHN0YXRlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsgQU1ENjRfTElOVVhfZnJhbWVfc2l6ZSkpCi0rICAgIHJldHVybiAtMTsKLSsKLSsg IGlmIChyZWNvcmRfYXJjaF9saXN0X2FkZF9lbmQgKCkpCi0rICAgIHJldHVybiAtMTsKLSAKLSAg IHJldHVybiAwOwotIH0KLUBAIC0xMjE4LDYgKzEzMTEsNyBAQAotICAgc2V0X2dkYmFyY2hfZ2V0 X3NpZ2luZm9fdHlwZSAoZ2RiYXJjaCwgbGludXhfZ2V0X3NpZ2luZm9fdHlwZSk7Ci0gCi0gICBz ZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZCAoZ2RiYXJjaCwgaTM4Nl9wcm9jZXNzX3JlY29yZCk7 Ci0rICBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9zaWduYWwgKGdkYmFyY2gsIGFtZDY0X2xp bnV4X3JlY29yZF9zaWduYWwpOwotIAotICAgLyogSW5pdGlhbGl6ZSB0aGUgYW1kNjRfbGludXhf cmVjb3JkX3RkZXAuICAqLwotICAgLyogVGhlc2UgdmFsdWVzIGFyZSB0aGUgc2l6ZSBvZiB0aGUg dHlwZSB0aGF0IHdpbGwgYmUgdXNlZCBpbiBhIHN5c3RlbQotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6 IC9jdnMvc3JjL3NyYy9nZGIvQ2hhbmdlTG9nLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDg3 NC4yLjEyCi1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA4NzQuMi4xMwotZGlmZiAtdSAtcjEuMTA4 NzQuMi4xMiAtcjEuMTA4NzQuMi4xMwotLS0tIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMDkvMDkvMjEg MDY6NTc6MDIJMS4xMDg3NC4yLjEyCi0rKysgc3JjL2dkYi9DaGFuZ2VMb2cJMjAwOS8wOS8yMSAx MDoxOTo1OQkxLjEwODc0LjIuMTMKLUBAIC0xLDMgKzEsOCBAQAotKzIwMDktMDktMjEgIFBoaWwg TXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+Ci0rCi0rCSogcHl0aG9uL3B5LXZhbHVlLmMg KHZhbHB5X2dldGl0ZW0pOiBUZXN0IHZhbHVlIGJlZm9yZSBhbGxvd2luZwotKwlzdWJzY3JpcHQg b3BlcmF0aW9uLgotKwotIDIwMDktMDktMjEgIEh1aSBaaHUgIDx0ZWF3YXRlckBnbWFpbC5jb20+ Ci0gCSAgICBNaWNoYWVsIFNueWRlciAgPG1zbnlkZXJAdm13YXJlLmNvbT4KLSAKLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLVJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3B5dGhvbi9weS12YWx1ZS5jLHYKLXJldHJp ZXZpbmcgcmV2aXNpb24gMS4xCi1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4yLjEKLWRpZmYgLXUg LXIxLjEgLXIxLjEuMi4xCi0tLS0gc3JjL2dkYi9weXRob24vcHktdmFsdWUuYwkyMDA5LzA5LzA5 IDE3OjQ1OjQwCTEuMQotKysrIHNyYy9nZGIvcHl0aG9uL3B5LXZhbHVlLmMJMjAwOS8wOS8yMSAx MDoyMDowMAkxLjEuMi4xCi1AQCAtMzI0LDcgKzMyNCwxOCBAQAotIAkgICAgIHR5cGUuICAqLwot IAkgIHN0cnVjdCB2YWx1ZSAqaWR4ID0gY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAoa2V5KTsK LSAJICBpZiAoaWR4ICE9IE5VTEwpCi0tCSAgICByZXNfdmFsID0gdmFsdWVfc3Vic2NyaXB0ICh0 bXAsIHZhbHVlX2FzX2xvbmcgKGlkeCkpOwotKwkgICAgewotKwkgICAgICAvKiBDaGVjayB0aGUg dmFsdWUncyB0eXBlIGlzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCB2aWEKLSsJCSBh IHN1YnNjcmlwdC4gICovCi0rCSAgICAgIHN0cnVjdCB0eXBlICp0eXBlOwotKwkgICAgICB0bXAg PSBjb2VyY2VfcmVmICh0bXApOwotKwkgICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAodG1wKSk7Ci0rCSAgICAgIGlmIChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9B UlJBWQotKwkJICAmJiBUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9QVFIpCi0rCQkgIGVy cm9yKCBfKCJDYW5ub3Qgc3Vic2NyaXB0IHJlcXVlc3RlZCB0eXBlIikpOwotKwkgICAgICBlbHNl Ci0rCQlyZXNfdmFsID0gdmFsdWVfc3Vic2NyaXB0ICh0bXAsIHZhbHVlX2FzX2xvbmcgKGlkeCkp OwotKwkgICAgfQotIAl9Ci0gICAgIH0KLSAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJDUyBmaWxlOiAvY3ZzL3Ny Yy9zcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2csdgotcmV0cmlldmluZyByZXZpc2lvbiAxLjE5 NjAKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xOTYwLjIuMQotZGlmZiAtdSAtcjEuMTk2MCAtcjEu MTk2MC4yLjEKLS0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAwOS8wOS8xNSAxODo1 MToyNQkxLjE5NjAKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAwOS8wOS8yMSAx MDoyMDowMAkxLjE5NjAuMi4xCi1AQCAtMSwzICsxLDEwIEBACi0rMjAwOS0wOS0yMSAgUGhpbCBN dWxkb29uICA8cG11bGRvb25AcmVkaGF0LmNvbT4KLSsKLSsJKiBnZGIucHl0aG9uL3B5LXZhbHVl LmV4cCAodGVzdF9zdWJzY3JpcHRfcmVncmVzc2lvbik6IE5ldwotKwlmdW5jdGlvbi4gIFRlc3Qg Zm9yIGludmFsaWQgc3Vic2NyaXB0cy4KLSsJKiBnZGIucHl0aG9uL3B5LXZhbHVlLmMgKG1haW4p OiBBZGQgdGVzdCBhcnJheSwgYW5kIHBvaW50ZXIgdG8gaXQuCi0rCShwdHJfcmVmKTogTmV3IGZ1 bmN0aW9uLgotKwotIDIwMDktMDktMTUgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4K LSAKLSAJKiBsaWIvbWktc3VwcG9ydC5leHAgKG1pX2NyZWF0ZV92YXJvYmopOiBVcGRhdGUuCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS12YWx1ZS5jLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xCi1yZXRyaWV2aW5nIHJldmlz aW9uIDEuMS4yLjEKLWRpZmYgLXUgLXIxLjEgLXIxLjEuMi4xCi0tLS0gc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jCTIwMDkvMDkvMDkgMTc6NDU6NDIJMS4xCi0rKysgc3Jj L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jCTIwMDkvMDkvMjEgMTA6MjA6MDAJ MS4xLjIuMQotQEAgLTM3LDYgKzM3LDEzIEBACi0gCi0gZW51bSBlIGV2YWx1ZSA9IFRXTzsKLSAK LSsjaWZkZWYgX19jcGx1c3BsdXMKLSt2b2lkIHB0cl9yZWYoaW50KiYgcnB0cl9pbnQpCi0rewot KyAgcmV0dXJuOyAvKiBicmVhayB0byBpbnNwZWN0IHBvaW50ZXIgYnkgcmVmZXJlbmNlLiAqLwot K30KLSsjZW5kaWYKLSsKLSBpbnQKLSBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQotIHsK LUBAIC00NiwxMCArNTMsMTggQEAKLSAgIFBUUiB4ID0gJnM7Ci0gICBjaGFyIHN0WzE3XSA9ICJk aXZpZGUgZXQgaW1wZXJhIjsKLSAgIGNoYXIgbnVsbHN0WzE3XSA9ICJkaXZpZGVcMGV0XDBpbXBl cmEiOwotKyAgaW50IGFbM10gPSB7MSwyLDN9OwotKyAgaW50ICpwID0gYTsKLSsgIGludCBpID0g MjsKLSsgIGludCAqcHRyX2kgPSAmaTsKLSAKLSAgIHMuYSA9IDM7Ci0gICBzLmIgPSA1OwotICAg dS5hID0gNzsKLSAKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSsgIHB0cl9yZWYocHRyX2kpOwotKyNl bmRpZgotKwotICAgcmV0dXJuIDA7ICAgICAgLyogYnJlYWsgdG8gaW5zcGVjdCBzdHJ1Y3QgYW5k IHVuaW9uICovCi0gfQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4x Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4yLjEKLWRpZmYgLXUgLXIxLjEgLXIxLjEuMi4xCi0t LS0gc3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAJMjAwOS8wOS8wOSAx Nzo0NTo0MgkxLjEKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4 cAkyMDA5LzA5LzIxIDEwOjIwOjAwCTEuMS4yLjEKLUBAIC0yOTIsNiArMjkyLDc1IEBACi0gICAg ICJwcmludCB2YWx1ZSdzIHR5cGUiCi0gfQotIAotKyMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZh bGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAotKyMgdGhlIHR5cGUg b2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQotKyMg c3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotKwotK3Byb2MgdGVzdF9zdWJzY3JpcHRf cmVncmVzc2lvbiB7bGFuZ30gewotKwotKyBnbG9iYWwgc3JjZGlyIHN1YmRpciBzcmNmaWxlIGJp bmZpbGUgdGVzdGZpbGUgaGV4Ci0rIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJk aXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlICJkZWJ1ZyAkbGFuZyJdICE9 ICIiIH0gewotKyAgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgJHtzcmNmaWxlfSBpbiAk bGFuZyBtb2RlIgotKyAgICAgcmV0dXJuIC0xCi0rIH0KLSsKLSsgIyBTdGFydCB3aXRoIGEgZnJl c2ggZ2RiLgotKyBnZGJfZXhpdAotKyBnZGJfc3RhcnQKLSsgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIg JHNyY2Rpci8kc3ViZGlyCi0rIGdkYl9sb2FkICR7YmluZmlsZX0KLSsKLSsgaWYgIVtydW50b19t YWluIF0gdGhlbiB7Ci0rICAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50Igot KyAgICAgcmV0dXJuCi0rIH0KLSsKLSsgaWYgeyRsYW5nID09ICJjKysifSB7Ci0rICAgICBnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiYnJlYWsgdG8gaW5zcGVjdCBwb2ludGVy IGJ5IHJlZmVyZW5jZSJdCi0rICAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJlYWsg dG8gaW5zcGVjdCBwb2ludGVyIGJ5IHJlZmVyZW5jZSIKLSsKLSsgICAgIGdkYl9weV90ZXN0X3Np bGVudF9jbWQgInByaW50IHJwdHJfaW50IiBcCi0rCSAiT2J0YWluIGFkZHJlc3MiIDEKLSsgICAg IGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBycHRyID0gZ2RiLmhpc3RvcnkoMCkiIFwK LSsJICJPYnRhaW5zIHZhbHVlIGZyb20gR0RCIiAxCi0rICAgICBnZGJfdGVzdCAicHl0aG9uIHBy aW50IHJwdHJcWzBcXSIgIjIiICJDaGVjayBwb2ludGVyIHBhc3NlZCBhcyByZWZlcmVuY2UiCi0r IH0KLSsKLSsgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrIHRvIGlu c3BlY3Qgc3RydWN0IGFuZCB1bmlvbiJdCi0rIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJi cmVhayB0byBpbnNwZWN0IHN0cnVjdCBhbmQgdW5pb24iCi0rCi0rIGdkYl9weV90ZXN0X3NpbGVu dF9jbWQgInB5dGhvbiBpbnR2ID0gZ2RiLlZhbHVlKDEpIiBcCi0rICAgICAiQ3JlYXRlIGEgdmFs dWUgZm9yIHN1YnNjcmlwdCB0ZXN0IiAxCi0rIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhv biBzdHJpbmd2ID0gZ2RiLlZhbHVlKFwiZm9vXCIpIiBcCi0rICAgICAiQ3JlYXRlIGEgdmFsdWUg Zm9yIHN1YnNjcmlwdCB0ZXN0IiAxCi0rCi0rICMgVHJ5IHRvIGFjY2VzcyBhbiBpbnQgd2l0aCBh IHN1YnNjcmlwdC4gIFRoaXMgc2hvdWxkIGZhaWwuCi0rIGdkYl90ZXN0ICJweXRob24gcHJpbnQg aW50diIgIjEiICJCYXNlbGluZSBwcmludCBvZiBhIFB5dGhvbiB2YWx1ZSIKLSsgZ2RiX3Rlc3Qg InB5dGhvbiBwcmludCBpbnR2XFswXF0iICJSdW50aW1lRXJyb3I6IENhbm5vdCBzdWJzY3JpcHQg cmVxdWVzdGVkIHR5cGUuKiIgXAotKyAgICAgIkF0dGVtcHQgdG8gYWNjZXNzIGFuIGludGVnZXIg d2l0aCBhIHN1YnNjcmlwdCIKLSsKLSsgIyBUcnkgdG8gYWNjZXNzIGEgc3RyaW5nIHdpdGggYSBz dWJzY3JpcHQuICBUaGlzIHNob3VsZCBwYXNzLgotKyBnZGJfdGVzdCAicHl0aG9uIHByaW50IHN0 cmluZ3YiICJmb28uIiAiQmFzZWxpbmUgcHJpbnQgb2YgYSBQeXRob24gdmFsdWUiCi0rIGdkYl90 ZXN0ICJweXRob24gcHJpbnQgc3RyaW5ndlxbMFxdIiAiZi4iICJBdHRlbXB0IHRvIGFjY2VzcyBh IHN0cmluZyB3aXRoIGEgc3Vic2NyaXB0IgotKwotKyAjIFRyeSB0byBhY2Nlc3MgYW4gaW50IGFy cmF5IHZpYSBhIHBvaW50ZXIgd2l0aCBhIHN1YnNjcmlwdC4gIFRoaXMgc2hvdWxkIHBhc3MuCi0r IGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInByaW50IHAiICJCdWlsZCBwb2ludGVyIHRvIGFycmF5 IiAxCi0rIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBwb2ludGVyID0gZ2RiLmhpc3Rv cnkoMCkiICIiIDEKLSsgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVyXFswXF0iICIxIiAi QWNjZXNzIGFycmF5IHZpYSBwb2ludGVyIHdpdGggaW50IHN1YnNjcmlwdCIKLSsgZ2RiX3Rlc3Qg InB5dGhvbiBwcmludCBwb2ludGVyXFtpbnR2XF0iICIyIiAiQWNjZXNzIGFycmF5IHZpYSBwb2lu dGVyIHdpdGggdmFsdWUgc3Vic2NyaXB0IgotKwotKyAjIFRyeSB0byBhY2Nlc3MgYSBzaW5nbGUg ZGltZW5zaW9uIGFycmF5IHdpdGggYSBzdWJzY3JpcHQgdG8gdGhlCi0rICMgcmVzdWx0LiAgVGhp cyBzaG91bGQgZmFpbC4KLSsgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVyXFtpbnR2XF1c WzBcXSIgIlJ1bnRpbWVFcnJvcjogQ2Fubm90IHN1YnNjcmlwdCByZXF1ZXN0ZWQgdHlwZS4qIiBc Ci0rICAgICAiQXR0ZW1wdCB0byBhY2Nlc3MgYW4gaW50ZWdlciB3aXRoIGEgc3Vic2NyaXB0Igot KwotKyAjIExhc3RseSwgdGVzdCBzdWJzY3JpcHQgYWNjZXNzIHRvIGFuIGFycmF5IHdpdGggbXVs dGlwbGUKLSsgIyBkaW1lbnNpb25zLiAgVGhpcyBzaG91bGQgcGFzcy4KLSsgZ2RiX3B5X3Rlc3Rf c2lsZW50X2NtZCAicHJpbnQge1wiZnUgXCIsXCJmb29cIixcImJhclwifSIgIkJ1aWxkIGFycmF5 IiAxCi0rIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBtYXJyYXkgPSBnZGIuaGlzdG9y eSgwKSIgIiIgMQotKyBnZGJfdGVzdCAicHl0aG9uIHByaW50IG1hcnJheVxbMVxdXFsyXF0iICJv LiIgIlRlc3QgbXVsdGlwbGUgc3Vic2NyaXB0IgotK30KLSsKLSAjIFN0YXJ0IHdpdGggYSBmcmVz aCBnZGIuCi0gCi0gZ2RiX2V4aXQKLUBAIC0zMjIsMyArMzkxLDggQEAKLSAKLSB0ZXN0X3ZhbHVl X2luX2luZmVyaW9yCi0gdGVzdF92YWx1ZV9hZnRlcl9kZWF0aAotKwotKyMgVGhlIGZvbGxvd2lu ZyB0ZXN0IHJlY29tcGlsZXMgdGhlIGJpbmFyeSB0byB0ZXN0IGVpdGhlciBDIG9yIEMrKwotKyMg dmFsdWVzLiAKLSt0ZXN0X3N1YnNjcmlwdF9yZWdyZXNzaW9uICJjKysiCi0rdGVzdF9zdWJzY3Jp cHRfcmVncmVzc2lvbiAiYyIKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLVJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2Ri L0NoYW5nZUxvZyx2Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuMTA4NzQuMi4xMwotcmV0cmlldmlu ZyByZXZpc2lvbiAxLjEwODc0LjIuMTQKLWRpZmYgLXUgLXIxLjEwODc0LjIuMTMgLXIxLjEwODc0 LjIuMTQKLS0tLSBzcmMvZ2RiL0NoYW5nZUxvZwkyMDA5LzA5LzIxIDEwOjE5OjU5CTEuMTA4NzQu Mi4xMwotKysrIHNyYy9nZGIvQ2hhbmdlTG9nCTIwMDkvMDkvMjEgMTA6MjU6MjkJMS4xMDg3NC4y LjE0Ci1AQCAtMSw1ICsxLDEyIEBACi0gMjAwOS0wOS0yMSAgUGhpbCBNdWxkb29uICA8cG11bGRv b25AcmVkaGF0LmNvbT4KLSAKLSsJUFIgcHl0aG9uLzEwNjMzCi0rCi0rCSogYy1sYW5nLmMgKGNf cHJpbnRzdHIpOiBEbyBub3QgbG9vcCBwYXN0ICBvcHRpb25zLT5wcmludF9tYXggd2hlbgotKwlp dGVyYXRpbmcgd2l0aCB3Y2hhcl9pdGVyYXRlLgotKwotKzIwMDktMDktMjEgIFBoaWwgTXVsZG9v biAgPHBtdWxkb29uQHJlZGhhdC5jb20+Ci0rCi0gCSogcHl0aG9uL3B5LXZhbHVlLmMgKHZhbHB5 X2dldGl0ZW0pOiBUZXN0IHZhbHVlIGJlZm9yZSBhbGxvd2luZwotIAlzdWJzY3JpcHQgb3BlcmF0 aW9uLgotIAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvYy1sYW5nLmMs dgotcmV0cmlldmluZyByZXZpc2lvbiAxLjc1Ci1yZXRyaWV2aW5nIHJldmlzaW9uIDEuNzUuNC4x Ci1kaWZmIC11IC1yMS43NSAtcjEuNzUuNC4xCi0tLS0gc3JjL2dkYi9jLWxhbmcuYwkyMDA5LzA3 LzEwIDEwOjM1OjE2CTEuNzUKLSsrKyBzcmMvZ2RiL2MtbGFuZy5jCTIwMDkvMDkvMjEgMTA6MjU6 MjkJMS43NS40LjEKLUBAIC00NTksNyArNDU5LDcgQEAKLSAJIHNpbmdsZSBjaGFyYWN0ZXIgaW4g aXNvbGF0aW9uLiAgVGhpcyBtYWtlcyB0aGUgY29kZSBzaW1wbGVyCi0gCSBhbmQgcHJvYmFibHkg ZG9lcyB0aGUgc2Vuc2libGUgdGhpbmcgaW4gdGhlIG1ham9yaXR5IG9mCi0gCSBjYXNlcy4gICov Ci0tICAgICAgd2hpbGUgKG51bV9jaGFycyA9PSAxKQotKyAgICAgIHdoaWxlIChudW1fY2hhcnMg PT0gMSAmJiB0aGluZ3NfcHJpbnRlZCA8IG9wdGlvbnMtPnByaW50X21heCkKLSAJewotIAkgIC8q IENvdW50IHRoZSBudW1iZXIgb2YgcmVwZXRpdGlvbnMuICAqLwotIAkgIHVuc2lnbmVkIGludCBy ZXBzID0gMDsKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLVJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2csdgotcmV0cmlldmluZyByZXZpc2lvbiAxLjE5NjAuMi4xCi1yZXRyaWV2aW5n IHJldmlzaW9uIDEuMTk2MC4yLjIKLWRpZmYgLXUgLXIxLjE5NjAuMi4xIC1yMS4xOTYwLjIuMgot LS0tIHNyYy9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwkyMDA5LzA5LzIxIDEwOjIwOjAwCTEuMTk2 MC4yLjEKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAwOS8wOS8yMSAxMDoyNToy OQkxLjE5NjAuMi4yCi1AQCAtMSw1ICsxLDEzIEBACi0gMjAwOS0wOS0yMSAgUGhpbCBNdWxkb29u ICA8cG11bGRvb25AcmVkaGF0LmNvbT4KLSAKLSsJUFIgcHl0aG9uLzEwNjMzCi0rCi0rCSogZ2Ri LnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAgKGdkYl9weV90ZXN0X3NpbGVudF9jbWQpOiBOZXcK LSsJRnVuY3Rpb24uCi0rCShydW5fbGFuZ190ZXN0cyk6IEFkZCBwcmludCBlbGVtZW50cyB0ZXN0 LgotKwotKzIwMDktMDktMjEgIFBoaWwgTXVsZG9vbiAgPHBtdWxkb29uQHJlZGhhdC5jb20+Ci0r Ci0gCSogZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgKHRlc3Rfc3Vic2NyaXB0X3JlZ3Jlc3Npb24p OiBOZXcKLSAJZnVuY3Rpb24uICBUZXN0IGZvciBpbnZhbGlkIHN1YnNjcmlwdHMuCi0gCSogZ2Ri LnB5dGhvbi9weS12YWx1ZS5jIChtYWluKTogQWRkIHRlc3QgYXJyYXksIGFuZCBwb2ludGVyIHRv IGl0LgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS4xCi1y ZXRyaWV2aW5nIHJldmlzaW9uIDEuMS4yLjEKLWRpZmYgLXUgLXIxLjEgLXIxLjEuMi4xCi0tLS0g c3JjL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAJMjAwOS8wOS8w OSAxNzo0NTo0MgkxLjEKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0 eXByaW50LmV4cAkyMDA5LzA5LzIxIDEwOjI1OjMwCTEuMS4yLjEKLUBAIC0zNSw2ICszNSwxNyBA QAotICAgICAtcmUgIiRnZGJfcHJvbXB0ICQiCXt9Ci0gfQotIAotKyMgUnVuIGEgY29tbWFuZCBp biBHREIsIGFuZCByZXBvcnQgYSBmYWlsdXJlIGlmIGEgUHl0aG9uIGV4Y2VwdGlvbiBpcyB0aHJv d24uCi0rIyBJZiByZXBvcnRfcGFzcyBpcyB0cnVlLCByZXBvcnQgYSBwYXNzIGlmIG5vIGV4Y2Vw dGlvbiBpcyB0aHJvd24uCi0rcHJvYyBnZGJfcHlfdGVzdF9zaWxlbnRfY21kIHtjbWQgbmFtZSBy ZXBvcnRfcGFzc30gewotKyAgZ2xvYmFsIGdkYl9wcm9tcHQKLSsKLSsgIGdkYl90ZXN0X211bHRp cGxlICRjbWQgJG5hbWUgewotKyAgICAgIC1yZSAiVHJhY2ViYWNrLiokZ2RiX3Byb21wdCAkIiAg eyBmYWlsICRuYW1lIH0KLSsgICAgICAtcmUgIiRnZGJfcHJvbXB0ICQiCSAgICAgIHsgaWYgJHJl cG9ydF9wYXNzIHsgcGFzcyAkbmFtZSB9IH0KLSsgIH0KLSt9Ci0rCi0gcHJvYyBydW5fbGFuZ190 ZXN0cyB7bGFuZ30gewotICAgICBnbG9iYWwgc3JjZGlyIHN1YmRpciBzcmNmaWxlIGJpbmZpbGUg dGVzdGZpbGUgaGV4Ci0gICAgIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9 LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlICJkZWJ1ZyAkbGFuZyJdICE9ICIi IH0gewotQEAgLTc5LDYgKzkwLDExIEBACi0gCWdkYl90ZXN0ICJwcmludCBkZXJpdmVkIiBcCi0g CSAgICAiID0gXHsuKjxWYmFzZTE+ID0gcHAgY2xhc3MgbmFtZTogVmJhc2UxLio8VmJhc2UyPiA9 IFx7Lio8VmlydHVhbFRlc3Q+ID0gcHAgdmFsdWUgdmFyaWFibGUgaXM6IDEsLiptZW1iZXJzIG9m IFZiYXNlMjouKl92cHRyLlZiYXNlMiA9ICRoZXguKjxWYmFzZTM+ID0gXHsuKm1lbWJlcnMgb2Yg VmJhc2UzLiptZW1iZXJzIG9mIERlcml2ZWQ6Lip2YWx1ZSA9IDIuKiIKLSAJZ2RiX3Rlc3QgInBy aW50IG5zICIgIlwiZW1iZWRkZWRcXFxcMDAwbnVsbFxcXFwwMDBzdHJpbmdcIiIKLSsJZ2RiX3B5 X3Rlc3Rfc2lsZW50X2NtZCAic2V0IHByaW50IGVsZW1lbnRzIDMiICIiIDEKLSsJZ2RiX3Rlc3Qg InByaW50IG5zIiAiZW1iXC5cLlwuLiIKLSsJZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAic2V0IHBy aW50IGVsZW1lbnRzIDEwIiAiIiAxCi0rCWdkYl90ZXN0ICJwcmludCBucyIgImVtYmVkZGVkXFxc XDAwMG5cLlwuXC4uIgotKwlnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJzZXQgcHJpbnQgZWxlbWVu dHMgMjAwIiAiIiAxCi0gICAgIH0KLSAKLSAgICAgZ2RiX3Rlc3QgInByaW50IHgiICIgPSAkaGV4 IFwidGhpcyBpcyB4XCIiCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNo ZXIucGF0Y2gKaW5kZXggNjIzNWI5Zi4uMTQwNmFiOCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5w YXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8vc291cmNl d2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJjZXdhcmUub3JnL2dk Yi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90OgotY29tbWl0IDBk NWMzOGRkODkwNTBjMGVlMWNmMDQ5NjU2ZjE3N2MxNzBkNjc1ZDQKK2NvbW1pdCA0MzM4ZWE4NWM3 OTgwMDdjMzI1OTQwMzJmNjAyZGI5ZmQyMzBlYmE5CiAKIGJyYW5jaCBgYXJjaGVyJyAtIHRoZSBt ZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXktY2FsbC1mcmFtZS1jZmEKQEAgLTM1NTcs MTkgKzM1NTcsMjYgQEAgaW5kZXggZDJkOGYyZS4uYWYwYmEyOCAxMDA2NDQKICAgICAgICBpZiAo c3ltICE9IE5VTEwpCiAgCXJldHVybiBzeW07CiBkaWZmIC0tZ2l0IGEvZ2RiL2NwLXN1cHBvcnQu YyBiL2dkYi9jcC1zdXBwb3J0LmMKLWluZGV4IGYxMmQ3ODUuLmNhMTAwMDcgMTAwNjQ0CitpbmRl eCBmMTJkNzg1Li4yM2IzNGMxIDEwMDY0NAogLS0tIGEvZ2RiL2NwLXN1cHBvcnQuYwogKysrIGIv Z2RiL2NwLXN1cHBvcnQuYwotQEAgLTcwLDYgKzcwLDIxIEBAIHN0cnVjdCBjbWRfbGlzdF9lbGVt ZW50ICptYWludF9jcGx1c19jbWRfbGlzdCA9IE5VTEw7CitAQCAtMzIsNiArMzIsOSBAQAorICNp bmNsdWRlICJibG9jay5oIgorICNpbmNsdWRlICJjb21wbGFpbnRzLmgiCisgI2luY2x1ZGUgImdk YnR5cGVzLmgiCisrI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKysjaW5jbHVkZSAiZXhwcmVzc2lv bi5oIgorKyNpbmNsdWRlICJ2YWx1ZS5oIgorIAorICNpbmNsdWRlICJzYWZlLWN0eXBlLmgiCisg CitAQCAtNzAsNiArNzMsMTggQEAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKm1haW50X2NwbHVz X2NtZF9saXN0ID0gTlVMTDsKICBzdGF0aWMgdm9pZCBtYWludF9jcGx1c19jb21tYW5kIChjaGFy ICphcmcsIGludCBmcm9tX3R0eSk7CiAgc3RhdGljIHZvaWQgZmlyc3RfY29tcG9uZW50X2NvbW1h bmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KTsKICAKLSsvKiBPcGVyYXRvciB2YWxpZGF0aW9u LiBUaGlzIGlzIHVzZWQgYnkgY3BfdmFsaWRhdGVfb3BlYXJ0b3IsCi0rICAgd2hpY2ggaXMgaW4g dHVybiB1c2VkIGJ5IGJvdGggdGhlIGV4cHJlc3Npb24gcGFyc2VyIChjbGV4KQotKyAgIGFuZCBk ZWNvZGVfbGluZSAoZGVjb2RlX2NvbXBvdW5kLCBhY3R1YWxseSkuCi0rCisrLyogT3BlcmF0b3Ig dmFsaWRhdGlvbi4KICsgICBOT1RFOiBNdWx0aS1ieXRlIG9wZXJhdG9ycyAodXN1YWxseSB0aGUg YXNzaWdubWVudCB2YXJpZXR5IG9wZXJhdG9yKQotKyAgIG11c3QgYXBwZWFyIGJlZm9yZSB0aGUg c2luZ2xlIGJ5dGUgdmVyc2lvbiwgaS5lLiwgIis9IiBiZWZvcmUgIisiLiAqLworKyAgIG11c3Qg YXBwZWFyIGJlZm9yZSB0aGUgc2luZ2xlIGJ5dGUgdmVyc2lvbiwgaS5lLiwgIis9IiBiZWZvcmUg IisiLiAgKi8KICtzdGF0aWMgY29uc3QgY2hhciAqb3BlcmF0b3JfdG9rZW5zW10gPQogKyAgewog KyAgICAiKysiLCAiKz0iLCAiKyIsICItPioiLCAiLT4iLCAiLS0iLCAiLT0iLCAiLSIsICIqPSIs ICIqIiwgIi89IiwgIi8iLApAQCAtMzYwNCw3ICszNjExLDcgQEAgaW5kZXggZjEyZDc4NS4uY2Ex MDAwNyAxMDA2NDQKICAJICAgICE9IE5VTEwpKQogICAgICAgIHBzeW10YWJfdG9fc3ltdGFiIChw cyk7CiAgICB9Ci1AQCAtOTA5LDYgKzkyNSw3MiBAQCBmaXJzdF9jb21wb25lbnRfY29tbWFuZCAo Y2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCitAQCAtOTA5LDYgKzkyNSwxMDcgQEAgZmlyc3RfY29t cG9uZW50X2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogIAogIGV4dGVybiBpbml0 aWFsaXplX2ZpbGVfZnR5cGUgX2luaXRpYWxpemVfY3Bfc3VwcG9ydDsgLyogLVdtaXNzaW5nLXBy b3RvdHlwZXMgKi8KICAKQEAgLTM2MTcsMTggKzM2MjQsMjMgQEAgaW5kZXggZjEyZDc4NS4uY2Ex MDAwNyAxMDA2NDQKICsgIHdoaWxlICgwKQogKwogKy8qIFJldHVybnMgdGhlIGxlbmd0aCBvZiB0 aGUgb3BlcmF0b3IgbmFtZSBvciAwIGlmIElOUFVUIGRvZXMgbm90Ci0rICAgcG9pbnQgdG8gYSB2 YWxpZCBDKysgb3BlcmF0b3IuIElOUFVUIHNob3VsZCBzdGFydCB3aXRoICJvcGVyYXRvciIuICov CisrICAgcG9pbnQgdG8gYSB2YWxpZCBDKysgb3BlcmF0b3IuICBJTlBVVCBzaG91bGQgc3RhcnQg d2l0aCAib3BlcmF0b3IiLiAgKi8KICtpbnQKICtjcF92YWxpZGF0ZV9vcGVyYXRvciAoY29uc3Qg Y2hhciAqaW5wdXQpCiArewogKyAgaW50IGk7Ci0rICBjb25zdCBjaGFyICpwID0gaW5wdXQ7Ci0r ICBpbnQgdmFsaWQgPSAwOworKyAgY2hhciAqY29weTsKKysgIGNvbnN0IGNoYXIgKnA7CisrICBz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwcjsKKysgIHN0cnVjdCB2YWx1ZSAqdmFsOworKyAgc3RydWN0 IGdkYl9leGNlcHRpb24gZXhjZXB0OworKyAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKKysK KysgIHAgPSBpbnB1dDsKICsKLSsgIC8qIE1vc3QgY2FsbGVycyBhcHBlYXIgdG8gZG8gdGhpcyBh bHJlYWR5LCBidXQgc2luY2UgdGhpcyBpcyBub3QKLSsgICAgIHJlYWxseSB0aW1lLWNyaXRpY2Fs IGNvZGUsIGl0IGlzIGRvdWJsZS1jaGVja2VkIGhlcmUuICovCiArICBpZiAoc3RybmNtcCAocCwg Im9wZXJhdG9yIiwgOCkgPT0gMCkKICsgICAgeworKyAgICAgIGludCB2YWxpZCA9IDA7CiArICAg ICAgcCArPSA4OwogKwogKyAgICAgIFNLSVBfU1BBQ0UgKHApOwpAQCAtMzYzNyw3ICszNjQ5LDcg QEAgaW5kZXggZjEyZDc4NS4uY2ExMDAwNyAxMDA2NDQKICsJewogKwkgIGludCBsZW5ndGggPSBz dHJsZW4gKG9wZXJhdG9yX3Rva2Vuc1tpXSk7CiArCSAgLyogQnkgdXNpbmcgc3RybmNtcCBoZXJl LCB3ZSBNVVNUIGhhdmUgb3BlcmF0b3JfdG9rZW5zIG9yZGVyZWQhCi0rCSAgICAgU2VlIGFkZGl0 aW9uYWwgbm90ZXMgd2hlcmUgb3BlcmF0b3JfdG9rZW5zIGlzIGRlZmluZWQgYWJvdmUuICovCisr CSAgICAgU2VlIGFkZGl0aW9uYWwgbm90ZXMgd2hlcmUgb3BlcmF0b3JfdG9rZW5zIGlzIGRlZmlu ZWQgYWJvdmUuICAqLwogKwkgIGlmIChzdHJuY21wIChwLCBvcGVyYXRvcl90b2tlbnNbaV0sIGxl bmd0aCkgPT0gMCkKICsJICAgIHsKICsJICAgICAgY29uc3QgY2hhciAqb3AgPSBwOwpAQCAtMzY0 OCw4ICszNjYwLDggQEAgaW5kZXggZjEyZDc4NS4uY2ExMDAwNyAxMDA2NDQKICsJCSAgfHwgc3Ry bmNtcCAob3AsICJkZWxldGUiLCA2KSA9PSAwKQogKwkJewogKwotKwkJICAvKiBTcGVjaWFsIGNh c2U6IG5ld1tdIGFuZCBkZWxldGVbXS4gV2UgbXVzdCBiZSBjYXJlZnVsCi0rCQkgICAgIHRvIHN3 YWxsb3cgd2hpdGVzcGFjZSBiZWZvcmUvaW4gIltdIi4qLworKwkJICAvKiBTcGVjaWFsIGNhc2U6 IG5ld1tdIGFuZCBkZWxldGVbXS4gIFdlIG11c3QgYmUgY2FyZWZ1bAorKwkJICAgICB0byBzd2Fs bG93IHdoaXRlc3BhY2UgYmVmb3JlL2luICJbXSIuICAqLwogKwkJICBTS0lQX1NQQUNFIChwKTsK ICsKICsJCSAgaWYgKCpwID09ICdbJykKQEAgLTM2NjMsMTUgKzM2NzUsNDUgQEAgaW5kZXggZjEy ZDc4NS4uY2ExMDAwNyAxMDA2NDQKICsJCSAgICB9CiArCQl9CiArCi0rCSAgICAgIGJyZWFrOwor KwkgICAgICBpZiAodmFsaWQpCisrCQlyZXR1cm4gKHAgLSBpbnB1dCk7CiArCSAgICB9CiArCX0K ICsKLSsgICAgICBpZiAoIXZhbGlkKQotKwlwID0gaW5wdXQ7CisrICAgICAgLyogQ2hlY2sgaW5w dXQgZm9yIGEgY29udmVyc2lvbiBvcGVyYXRvci4gICovCisrCisrICAgICAgLyogU2tpcCBwYXN0 IGJhc2UgdHlwZW5hbWUgKi8KKysgICAgICB3aGlsZSAoKnAgIT0gJyonICYmICpwICE9ICcmJyAm JiAqcCAhPSAwICYmICpwICE9ICcgJykKKysJKytwOworKyAgICAgIFNLSVBfU1BBQ0UgKHApOwor KworKyAgICAgIC8qIEFkZCBtb2RpZmllcnMgJyonLycmJyAqLworKyAgICAgIHdoaWxlICgqcCA9 PSAnKicgfHwgKnAgPT0gJyYnKQorKwl7CisrCSAgKytwOworKwkgIFNLSVBfU1BBQ0UgKHApOwor Kwl9CisrCisrICAgICAgLyogQ2hlY2sgZm9yIHZhbGlkIHR5cGUuICBbUmVtZW1iZXI6IGlucHV0 IHN0YXJ0cyB3aXRoIAorKwkgIm9wZXJhdG9yIi5dICAqLworKyAgICAgIGNvcHkgPSBzYXZlc3Ry aW5nIChpbnB1dCArIDgsIHAgLSBpbnB1dCAtIDgpOworKyAgICAgIGV4cHIgPSBOVUxMOworKyAg ICAgIHZhbCA9IE5VTEw7CisrICAgICAgVFJZX0NBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FM TCkKKysJeworKwkgIGV4cHIgPSBwYXJzZV9leHByZXNzaW9uIChjb3B5KTsKKysJICB2YWwgPSBl dmFsdWF0ZV90eXBlIChleHByKTsKKysJfQorKworKyAgICAgIHhmcmVlIChjb3B5KTsKKysgICAg ICBpZiAoZXhwcikKKysJeGZyZWUgKGV4cHIpOworKworKyAgICAgIGlmICh2YWwgIT0gTlVMTCAm JiB2YWx1ZV90eXBlICh2YWwpICE9IE5VTEwpCisrCXJldHVybiAocCAtIGlucHV0KTsKICsgICAg fQogKwotKyAgcmV0dXJuIChwIC0gaW5wdXQpOworKyAgcmV0dXJuIDA7CiArfQogKwogIHZvaWQK QEAgLTQ5MjEsNyArNDk2Myw3IEBAIGluZGV4IDBiZmNmY2EuLjAxMDE4ZDYgMTAwNjQ0CiAgCiAg I2VuZGlmIC8qIGR3YXJmMmxvYy5oICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBi L2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CitpbmRleCA0 Y2NlMzZiLi5jMmY1ZjIzIDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwogKysrIGIvZ2Ri L2R3YXJmMnJlYWQuYwogQEAgLTQ4LDYgKzQ4LDEyIEBACkBAIC00OTMwLDggKzQ5NzIsOCBAQCBp bmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogICNpbmNsdWRlICJhZGRybWFwLmgiCiArI2lu Y2x1ZGUgImYtbGFuZy5oIgogKyNpbmNsdWRlICJjLWxhbmcuaCIKLSsjaW5jbHVkZSAianYtbGFu Zy5oIgogKyNpbmNsdWRlICJ0eXBlcHJpbnQuaCIKKysjaW5jbHVkZSAianYtbGFuZy5oIgogKyNp bmNsdWRlICJ2ZWMuaCIKICsjaW5jbHVkZSAiYmxvY2suaCIKICAKQEAgLTUwMjMsMjAgKzUwNjUs MTggQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICBzdGF0aWMgdm9pZCBkd2FyZjJf cmVhZF9hYmJyZXZzIChiZmQgKmFiZmQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKICAKICBzdGF0 aWMgdm9pZCBkd2FyZjJfZnJlZV9hYmJyZXZfdGFibGUgKHZvaWQgKik7Ci1AQCAtOTQ1LDggKzk3 OCwxMyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnRhZ190eXBlX3RvX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworQEAgLTk0NSw2ICs5NzgsMTEgQEAgc3RhdGlj IHN0cnVjdCB0eXBlICp0YWdfdHlwZV90b190eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0 IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKnJlYWRfdHlwZV9kaWUgKHN0 cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAorK3N0YXRpYyBjaGFyICpw aHlzbmFtZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICop OworKwogK3N0YXRpYyB2b2lkIHBoeXNuYW1lX3ByZWZpeF8xIChzdHJ1Y3QgdWlfZmlsZSAqLCBz dHJ1Y3QgZGllX2luZm8gKiwKICsJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqKTsKICsKICBz dGF0aWMgY2hhciAqZGV0ZXJtaW5lX3ByZWZpeCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKik7CiAgCi0rc3RhdGljIGNoYXIgKnBoeXNuYW1lX3ByZWZpeCAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7Ci0rCiAgc3RhdGljIGNoYXIgKnR5 cGVuYW1lX2NvbmNhdCAoc3RydWN0IG9ic3RhY2sgKiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpwcmVmaXgsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKnN1ZmZpeCwKIEBAIC05NjQsNyArMTAwMiw4IEBAIHN0YXRpYyBpbnQg ZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCwgQ09SRV9BRERSICosIENPUkVfQUREUiAqLAog IAkJCSAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICosIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqKTsK ICAKQEAgLTUwNzYsMTYgKzUxMTYsMTggQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQK ICBzdGF0aWMgY29uc3QgY2hhciAqbmFtZXNwYWNlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LAogIAkJCQkgICBpbnQgKmlzX2Fub255bW91cywgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKLUBA IC0xMDM0LDYgKzEwODEsOSBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9p bmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CitAQCAtMTAzMiw3ICsxMDc5LDEwIEBAIHN0YXRp YyBnZGJfYnl0ZSAqcmVhZF9mdWxsX2RpZSAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3Mg KnJlYWRlciwKICAKLSBzdGF0aWMgY2hhciAqZHdhcmYyX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRp ZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7Cisgc3RhdGljIHZvaWQgcHJvY2Vzc19kaWUg KHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAorLXN0YXRpYyBjaGFy ICpkd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9j dSAqKTsKKytzdGF0aWMgY2hhciAqZHdhcmYyX3BoeXNuYW1lIChzdHJ1Y3QgZGllX2luZm8gKiwg c3RydWN0IGR3YXJmMl9jdSAqKTsKKysKICtzdGF0aWMgY2hhciAqZm9ydHJhbl9tb2R1bGVfbGlu a2FnZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICsJCQkJCSAgc3RydWN0IGR3YXJmMl9j dSAqY3UpOwotKworIAogIHN0YXRpYyBjaGFyICpkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNo YXIgKiwgc3RydWN0IGR3YXJmMl9jdSAqLAogIAkJCQkgICAgICAgc3RydWN0IG9ic3RhY2sgKik7 Ci0gCiBAQCAtMTA3Niw3ICsxMTI2LDcgQEAgc3RhdGljIGludCBpc19yZWZfYXR0ciAoc3RydWN0 IGF0dHJpYnV0ZSAqKTsKICAKICBzdGF0aWMgdW5zaWduZWQgaW50IGR3YXJmMl9nZXRfcmVmX2Rp ZV9vZmZzZXQgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CkBAIC01NTM2LDcgKzU1NzgsNyBAQCBpbmRl eCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogICAgICBjYXNlIERXX1RBR19jbGFzc190eXBlOgog ICAgICBjYXNlIERXX1RBR19pbnRlcmZhY2VfdHlwZToKICAgICAgY2FzZSBEV19UQUdfc3RydWN0 dXJlX3R5cGU6Ci1AQCAtMjUzMiwyMiArMjgxOSw2IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3Ry dWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjUz MiwzNCArMjgxOSwxNyBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9p bmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGJyZWFrOwogICAgICB9CiAg CkBAIC01NTU5LDggKzU2MDEsMTIgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAg IGlmIChidWlsdF9hY3R1YWxfbmFtZSkKICAgICAgeGZyZWUgKGFjdHVhbF9uYW1lKTsKICB9Ci1A QCAtMjU1Nyw5ICsyODI4LDkgQEAgYWRkX3BhcnRpYWxfc3ltYm9sIChzdHJ1Y3QgcGFydGlhbF9k aWVfaW5mbyAqcGRpLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICBuYW1lIGxpc3RlZCBpbiB0 aGUgZGllLiAgKi8KKyAKKy0vKiBEZXRlcm1pbmUgd2hldGhlciBhIGRpZSBvZiB0eXBlIFRBRyBs aXZpbmcgaW4gYSBDKysgY2xhc3Mgb3IKKy0gICBuYW1lc3BhY2UgbmVlZHMgdG8gaGF2ZSB0aGUg bmFtZSBvZiB0aGUgc2NvcGUgcHJlcGVuZGVkIHRvIHRoZQorLSAgIG5hbWUgbGlzdGVkIGluIHRo ZSBkaWUuICAqLworKy8qIERldGVybWluZSB3aGV0aGVyIERJRSBuZWVkcyB0byBoYXZlIHRoZSBu YW1lIG9mIHRoZSBzY29wZSBwcmVwZW5kZWQKKysgICB0byB0aGUgbmFtZSBsaXN0ZWQgaW4gdGhl IGRpZS4gICovCiAgCiAgc3RhdGljIGludAogLXBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdh cmZfdGFnIHRhZykKQEAgLTU1NzEsNyArNTYxNyw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcg MTAwNjQ0CiAgICAgIHsKICAgICAgY2FzZSBEV19UQUdfbmFtZXNwYWNlOgogICAgICBjYXNlIERX X1RBR190eXBlZGVmOgotQEAgLTI1NjksNyArMjg0MCwyMyBAQCBwZGlfbmVlZHNfbmFtZXNwYWNl IChlbnVtIGR3YXJmX3RhZyB0YWcpCitAQCAtMjU2OSw3ICsyODM5LDIzIEBAIHBkaV9uZWVkc19u YW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykKICAgICAgY2FzZSBEV19UQUdfdW5pb25fdHlw ZToKICAgICAgY2FzZSBEV19UQUdfZW51bWVyYXRpb25fdHlwZToKICAgICAgY2FzZSBEV19UQUdf ZW51bWVyYXRvcjoKQEAgLTU1OTUsNyArNTY0MSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcg MTAwNjQ0CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0KLUBAIC0yNjAy LDEyICsyODg5LDEyIEBAIHN0YXRpYyB2b2lkCitAQCAtMjYwMiwxMiArMjg4OCwxMiBAQCBzdGF0 aWMgdm9pZAogIGFkZF9wYXJ0aWFsX21vZHVsZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBk aSwgQ09SRV9BRERSICpsb3dwYywKICAJCSAgICBDT1JFX0FERFIgKmhpZ2hwYywgaW50IG5lZWRf cGMsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKQEAgLTU2MTIsNyArNTY1OCw3IEBAIGluZGV4 IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgfQogIAogIC8qIFJlYWQgYSBwYXJ0aWFsIGRpZSBj b3JyZXNwb25kaW5nIHRvIGEgc3VicHJvZ3JhbSBhbmQgY3JlYXRlIGEgcGFydGlhbAotQEAgLTI2 OTgsMjcgKzI5ODUsNiBAQCBndWVzc19zdHJ1Y3R1cmVfbmFtZSAoc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKnN0cnVjdF9wZGksCitAQCAtMjY5OCwyNyArMjk4NCw2IEBAIGd1ZXNzX3N0cnVjdHVy ZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKICAKICAgICAgICBp ZiAocmVhbF9wZGktPmRpZV9wYXJlbnQgIT0gTlVMTCkKICAJcmV0dXJuOwpAQCAtNTY0MCw3ICs1 Njg2LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgfQogIH0KICAKLUBA IC0zMjk1LDYgKzM1NjEsMTQgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zMjk1LDYgKzM1NjAsMTQgQEAgcHJvY2Vzc19kaWUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgY2FzZSBE V19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb246CiAgICAgIGNhc2UgRFdfVEFHX2ltcG9ydGVkX21v ZHVsZToKICAgICAgICBwcm9jZXNzaW5nX2hhc19uYW1lc3BhY2VfaW5mbyA9IDE7CkBAIC01NjU1 LDcgKzU3MDEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogICAgICAgIGlmIChk aWUtPmNoaWxkICE9IE5VTEwgJiYgKGRpZS0+dGFnID09IERXX1RBR19pbXBvcnRlZF9kZWNsYXJh dGlvbgogIAkJCQkgfHwgY3UtPmxhbmd1YWdlICE9IGxhbmd1YWdlX2ZvcnRyYW4pKQogIAljb21w bGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIlRhZyAnJXMnIGhhcyB1bmV4cGVjdGVkIGNo aWxkcmVuIiksCi1AQCAtMzMxMCw0MSArMzU4NCw2OCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTMzMTAsNDEgKzM1ODMsNjgg QEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAvKiBSZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIERJRSwgYmFzZWQgb24g aXRzIERXX0FUX25hbWUuCiAgICAgSWYgc2NvcGUgcXVhbGlmaWVycyBhcmUgYXBwcm9wcmlhdGUg dGhleSB3aWxsIGJlIGFkZGVkLiAgVGhlIHJlc3VsdAogICAgIHdpbGwgYmUgYWxsb2NhdGVkIG9u IHRoZSBvYmpmaWxlX29ic3RhY2ssIG9yIE5VTEwgaWYgdGhlIERJRSBkb2VzCkBAIC01NzQ1LDcg KzU3OTEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIC8qIFJlYWQgdGhlIGlt cG9ydCBzdGF0ZW1lbnQgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBkaWUgYW5kIHJlY29yZCBpdC4g ICovCiAgCiAgc3RhdGljIHZvaWQKLUBAIC0zMzU0LDkgKzM2NTUsMTUgQEAgcmVhZF9pbXBvcnRf c3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtMzM1NCw5ICszNjU0LDE1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGRpZV9pbmZvICppbXBv cnRlZF9kaWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lOwogICAgY29uc3QgY2hhciAq aW1wb3J0ZWRfbmFtZV9wcmVmaXg7CkBAIC01NzYzLDcgKzU4MDksNyBAQCBpbmRleCA0Y2NlMzZi Li5kMzk0ODg3IDEwMDY0NAogICAgaW1wb3J0X2F0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9pbXBvcnQsIGN1KTsKICAgIGlmIChpbXBvcnRfYXR0ciA9PSBOVUxMKQogICAgICB7Ci1AQCAt MzQwNCwxNyArMzcxMSwyNyBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNDA0LDE3ICszNzEwLDI3IEBAIHJl YWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtNTc5Nyw3ICs1ODQzLDcgQEAg aW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgICBjYW5vbmljYWxfbmFtZSA9IGFs bG9jYSAoc3RybGVuIChpbXBvcnRlZF9uYW1lX3ByZWZpeCkgKyAyICsgc3RybGVuIChpbXBvcnRl ZF9uYW1lKSArIDEpOwogICAgICAgIHN0cmNweSAoY2Fub25pY2FsX25hbWUsIGltcG9ydGVkX25h bWVfcHJlZml4KTsKICAgICAgICBzdHJjYXQgKGNhbm9uaWNhbF9uYW1lLCAiOjoiKTsKLUBAIC0z NDI1LDggKzM3NDIsMTQgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzQyNSw4ICszNzQxLDE0IEBAIHJlYWRf aW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQogICAgICAgIGNhbm9uaWNhbF9uYW1lID0gYWxsb2NhIChzdHJsZW4gKGltcG9ydGVkX25h bWUpICsgMSk7CiAgICAgICAgc3RyY3B5IChjYW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRfbmFtZSk7 CiAgICAgIH0KQEAgLTU4MTQsNyArNTg2MCw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAw NjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMzY5NSw2ICs0MDE4LDE0IEBAIGluaGVyaXRf YWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQorQEAgLTM2OTUsNiArNDAxNywxNCBAQCBpbmhlcml0X2Fic3RyYWN0X2RpZXMgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBhdHRyaWJ1dGUg KmF0dHI7CiAgCiAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYWJzdHJhY3Rfb3Jp Z2luLCBjdSk7CkBAIC01ODI5LDcgKzU4NzUsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEw MDY0NAogICAgaWYgKCFhdHRyKQogICAgICByZXR1cm47CiAgCi1AQCAtMzc5Myw2ICs0MTI0LDcg QEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtMzc5Myw2ICs0MTIzLDcgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBjaGFyICpuYW1lOwogICAgQ09S RV9BRERSIGJhc2VhZGRyOwogICAgc3RydWN0IGJsb2NrICpibG9jazsKQEAgLTU4MzcsNyArNTg4 Myw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICBpbnQgaW5saW5lZF9mdW5j ID0gKGRpZS0+dGFnID09IERXX1RBR19pbmxpbmVkX3N1YnJvdXRpbmUpOwogIAogICAgaWYgKGlu bGluZWRfZnVuYykKLUBAIC0zODExLDEzICs0MTQzLDIzIEBAIHJlYWRfZnVuY19zY29wZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM4MTEsMTMgKzQx NDIsMjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9u X29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTU4NjQsNyArNTkxMCw3 IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICBsb3dwYyArPSBiYXNlYWRkcjsK ICAgIGhpZ2hwYyArPSBiYXNlYWRkcjsKICAKLUBAIC0zODQ0LDE0ICs0MTg2LDE5IEBAIHJlYWRf ZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTM4NDQsMTQgKzQxODUsMTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBjdS0+bGlzdF9pbl9zY29wZSA9ICZs b2NhbF9zeW1ib2xzOwogIApAQCAtNTg5MSw3ICs1OTM3LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5 NDg4NyAxMDA2NDQKICAgICAgfQogIAogICAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChkaWUsIGN1 KTsKLUBAIC0zODY3LDYgKzQyMTQsMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg2Nyw2ICs0MjEzLDEzIEBAIHJl YWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogIAkJCWRldGVybWluZV9wcmVmaXggKGRpZSwgY3UpLAogIAkJCXByb2Nlc3NpbmdfaGFzX25h bWVzcGFjZV9pbmZvKTsKICAKQEAgLTU5MDUsNyArNTk1MSw3IEBAIGluZGV4IDRjY2UzNmIuLmQz OTQ4ODcgMTAwNjQ0CiAgICAvKiBJZiB3ZSBoYXZlIGFkZHJlc3MgcmFuZ2VzLCByZWNvcmQgdGhl bS4gICovCiAgICBkd2FyZjJfcmVjb3JkX2Jsb2NrX3JhbmdlcyAoZGllLCBibG9jaywgYmFzZWFk ZHIsIGN1KTsKICAgIAotQEAgLTM5MDMsNyArNDI1Nyw3IEBAIHJlYWRfbGV4aWNhbF9ibG9ja19z Y29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM5 MDMsNyArNDI1Niw3IEBAIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgYXMgbXVsdGlwbGUgbGV4aWNhbCBi bG9ja3M/ICBIYW5kbGluZyBjaGlsZHJlbiBpbiBhIHNhbmUgd2F5IHdvdWxkCiAgICAgICBiZSBu YXN0eS4gIE1pZ2h0IGJlIGVhc2llciB0byBwcm9wZXJseSBleHRlbmQgZ2VuZXJpYyBibG9ja3Mg dG8gCiAgICAgICBkZXNjcmliZSByYW5nZXMuICAqLwpAQCAtNTkxNCw3ICs1OTYwLDcgQEAgaW5k ZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgcmV0dXJuOwogICAgbG93cGMgKz0gYmFz ZWFkZHI7CiAgICBoaWdocGMgKz0gYmFzZWFkZHI7Ci1AQCAtMzkyMCw3ICs0Mjc0LDcgQEAgcmVh ZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMzkyMCw3ICs0MjczLDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3Bl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIH0KICAg IG5ldyA9IHBvcF9jb250ZXh0ICgpOwogIApAQCAtNTkyMyw3ICs1OTY5LDcgQEAgaW5kZXggNGNj ZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVjdCBibG9jayAqYmxvY2sK ICAgICAgICAgID0gZmluaXNoX2Jsb2NrICgwLCAmbG9jYWxfc3ltYm9scywgbmV3LT5vbGRfYmxv Y2tzLCBuZXctPnN0YXJ0X2FkZHIsCi1AQCAtNDA3NSw3ICs0NDI5LDggQEAgZHdhcmYyX3Jhbmdl c19yZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3JldHVybiwKK0BAIC00MDc1 LDcgKzQ0MjgsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNldCwgQ09SRV9B RERSICpsb3dfcmV0dXJuLAogICAgIGRpc2NvbnRpbnVvdXMsIGkuZS4gZGVyaXZlZCBmcm9tIERX X0FUX3JhbmdlcyBpbmZvcm1hdGlvbi4gICovCiAgc3RhdGljIGludAogIGR3YXJmMl9nZXRfcGNf Ym91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKQEAgLTU5MzMs NyArNTk3OSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgewogICAgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cjsKICAgIENPUkVfQUREUiBsb3cgPSAwOwotQEAgLTQxMDMsNyArNDQ1 OCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9B RERSICpsb3dwYywKK0BAIC00MTAzLDcgKzQ0NTcsNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAo c3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCiAgCXsKICAJICAvKiBWYWx1 ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGluIHRoZQogIAkg ICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCkBAIC01OTQyLDcgKzU5ODgsNyBAQCBpbmRl eCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAkgICAgcmV0dXJuIDA7CiAgCSAgLyogRm91bmQg ZGlzY29udGludW91cyByYW5nZSBvZiBhZGRyZXNzZXMuICAqLwogIAkgIHJldCA9IC0xOwotQEAg LTQxNDIsNyArNDQ5Nyw3IEBAIGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVj dCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNDIsNyArNDQ5Niw3IEBAIGR3YXJmMl9nZXRfc3VicHJv Z3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09SRV9BRERSIGxvdywg aGlnaDsKICAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNoaWxkOwogIApAQCAtNTk1 MSw3ICs1OTk3LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgewogICAg ICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwogICAgICAgICpoaWdocGMgPSBtYXggKCpo aWdocGMsIGhpZ2gpOwotQEAgLTQxNzksNyArNDUzNCw3IEBAIGdldF9zY29wZV9wY19ib3VuZHMg KHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQxNzksNyArNDUzMyw3IEBAIGdldF9zY29wZV9w Y19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAogICAgQ09SRV9BRERSIGJlc3RfaGlnaCA9 IChDT1JFX0FERFIpIDA7CiAgICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1cnJlbnRfaGlnaDsK ICAKQEAgLTU5NjAsNyArNjAwNiwyNSBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAog ICAgICB7CiAgICAgICAgYmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKICAgICAgICBiZXN0X2hpZ2gg PSBjdXJyZW50X2hpZ2g7Ci1AQCAtNDY2MSw3ICs1MDE2LDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJf Zm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorQEAgLTQ0 NzQsNyArNDgyOCw3IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAs IHN0cnVjdCBkaWVfaW5mbyAqZGllLAorIAlyZXR1cm47CisgCisgICAgICAgLyogR2V0IHBoeXNp Y2FsIG5hbWUuICAqLworLSAgICAgIHBoeXNuYW1lID0gZHdhcmYyX2xpbmthZ2VfbmFtZSAoZGll LCBjdSk7CisrICAgICAgcGh5c25hbWUgPSBkd2FyZjJfcGh5c25hbWUgKGRpZSwgY3UpOworIAor ICAgICAgIC8qIFRoZSBuYW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25nIHdpdGggdGhpcyBv YmpmaWxlLCBzbyB3ZSBkb24ndAorIAkgbmVlZCB0byBkdXBsaWNhdGUgaXQgZm9yIHRoZSB0eXBl LiAgKi8KK0BAIC00NjE3LDcgKzQ5NzEsNyBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0 IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCisgICAgIHJldHVybjsKKyAK KyAgIC8qIEdldCB0aGUgbWFuZ2xlZCBuYW1lLiAgKi8KKy0gIHBoeXNuYW1lID0gZHdhcmYyX2xp bmthZ2VfbmFtZSAoZGllLCBjdSk7CisrICBwaHlzbmFtZSA9IGR3YXJmMl9waHlzbmFtZSAoZGll LCBjdSk7CisgCisgICAvKiBMb29rIHVwIG1lbWJlciBmdW5jdGlvbiBuYW1lIGluIGZpZWxkbGlz dC4gICovCisgICBmb3IgKGkgPSAwOyBpIDwgZmlwLT5uZm5maWVsZHM7IGkrKykKK0BAIC00NjYx LDcgKzUwMTUsNyBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZp cCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICAvKiBUaGUgbmFtZSBpcyBhbHJlYWR5IGFsbG9j YXRlZCBhbG9uZyB3aXRoIHRoaXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKICAgICAgIG5lZWQgdG8g ZHVwbGljYXRlIGl0IGZvciB0aGUgdHlwZS4gICovCiAgICBmbnAtPnBoeXNuYW1lID0gcGh5c25h bWUgPyBwaHlzbmFtZSA6ICIiOwpAQCAtNTk2OSw3ICs2MDMzLDcgQEAgaW5kZXggNGNjZTM2Yi4u ZDM5NDg4NyAxMDA2NDQKICAgIHRoaXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwog ICAgaWYgKHRoaXNfdHlwZSAmJiBUWVBFX0NPREUgKHRoaXNfdHlwZSkgPT0gVFlQRV9DT0RFX0ZV TkMpCiAgICAgIHsKLUBAIC00NzIxLDE4ICs1MDc2LDE4IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2Zu IChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NzIx LDE4ICs1MDc1LDE4IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAq ZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAgICAgewogICAgICAgIC8qIFN1cHBvcnQgdGhl IC5kZWJ1Z19sb2Mgb2Zmc2V0cyAqLwogICAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0 dHIpKQpAQCAtNTk5NSw3ICs2MDU5LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQK ICAgICB9CiAgfQogIAotQEAgLTQ4NDUsNyArNTIwMCw3IEBAIHF1aXJrX2djY19tZW1iZXJfZnVu Y3Rpb25fcG9pbnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQorQEAgLTQ4NDUsNyArNTE5OSw3IEBAIHF1aXJrX2djY19tZW1iZXJfZnVuY3Rpb25fcG9pbnRl ciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICByZXR1 cm4gTlVMTDsKICAKICAgIGRvbWFpbl90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoVFlQRV9GSUVM RF9UWVBFIChwZm5fdHlwZSwgMCkpOwpAQCAtNjAwNCw3ICs2MDY4LDcgQEAgaW5kZXggNGNjZTM2 Yi4uZDM5NDg4NyAxMDA2NDQKICAgIHNtYXNoX3RvX21ldGhvZF90eXBlICh0eXBlLCBkb21haW5f dHlwZSwgVFlQRV9UQVJHRVRfVFlQRSAocGZuX3R5cGUpLAogIAkJCVRZUEVfRklFTERTIChwZm5f dHlwZSksIFRZUEVfTkZJRUxEUyAocGZuX3R5cGUpLAogIAkJCVRZUEVfVkFSQVJHUyAocGZuX3R5 cGUpKTsKLUBAIC00ODk4LDcgKzUyNTMsNyBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDg5OCw3ICs1MjUyLDcg QEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogICAgICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwog ICAgICB9CiAgCkBAIC02MDEzLDcgKzYwNzcsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEw MDY0NAogICAgSU5JVF9DUExVU19TUEVDSUZJQyAodHlwZSk7CiAgCiAgICBuYW1lID0gZHdhcmYy X25hbWUgKGRpZSwgY3UpOwotQEAgLTQ5MDcsMTQgKzUyNjIsMTggQEAgcmVhZF9zdHJ1Y3R1cmVf dHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ5 MDcsMTQgKzUyNjEsMTggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFu Z3VhZ2VfY3BsdXMKICAJICB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YSkKICAJewpA QCAtNjAzNSw3ICs2MDk5LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAJfQog ICAgICB9CiAgCi1AQCAtNTEyNCw3ICs1NDgzLDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTEyNCw3ICs1 NDgyLDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0eXBl LCBjdSk7CiAgICAgIH0KICAKQEAgLTYwNDQsNyArNjEwOCw3IEBAIGluZGV4IDRjY2UzNmIuLmQz OTQ4ODcgMTAwNjQ0CiAgCiAgICBUWVBFX0NPREUgKHR5cGUpID0gVFlQRV9DT0RFX0VOVU07CiAg ICBuYW1lID0gZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7Ci1AQCAtNTE1Miw1MSArNTUxMSw2 IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorQEAgLTUxNTIsNTEgKzU1MTAsNiBAQCByZWFkX2VudW1lcmF0aW9uX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVy biBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogIH0KICAKQEAgLTYwOTYsNyArNjE2MCw3 IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgLyogR2l2ZW4gYSBwb2ludGVyIHRv IGEgZGllIHdoaWNoIGJlZ2lucyBhbiBlbnVtZXJhdGlvbiwgcHJvY2VzcyBhbGwKICAgICB0aGUg ZGllcyB0aGF0IGRlZmluZSB0aGUgbWVtYmVycyBvZiB0aGUgZW51bWVyYXRpb24sIGFuZCBjcmVh dGUgdGhlCiAgICAgc3ltYm9sIGZvciB0aGUgZW51bWVyYXRpb24gdHlwZS4KLUBAIC01Mjc0LDYg KzU1ODgsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyNzQsNiArNTU4NywyOSBAQCBwcm9jZXNz X2VudW1lcmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICBuZXdfc3ltYm9sIChkaWUsIHRoaXNfdHlwZSwgY3UpOwogIH0KICAKQEAgLTYx MjYsNyArNjE5MCw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgLyogRXh0cmFj dCBhbGwgaW5mb3JtYXRpb24gZnJvbSBhIERXX1RBR19hcnJheV90eXBlIERJRSBhbmQgcHV0IGl0 IGluCiAgICAgdGhlIERJRSdzIHR5cGUgZmllbGQuICBGb3Igbm93LCB0aGlzIG9ubHkgaGFuZGxl cyBvbmUgZGltZW5zaW9uYWwKICAgICBhcnJheXMuICAqLwotQEAgLTUyODcsNyArNTYyNCw3IEBA IHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTUyODcsNyArNTYyMyw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmVsZW1lbnRf dHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlOwogICAgc3RydWN0IHR5cGUgKipyYW5nZV90 eXBlcyA9IE5VTEw7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtNjEzNSw3ICs2MTk5 LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgIHN0cnVjdCBjbGVhbnVwICpi YWNrX3RvOwogICAgY2hhciAqbmFtZTsKICAKLUBAIC01MzM0LDE2ICs1NjcxLDExIEBAIHJlYWRf YXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTUzMzQsMTYgKzU2NzAsMTEgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwogIAog ICAgaWYgKHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3IpCkBA IC02MTU3LDcgKzYyMjEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAogICAg LyogVW5kZXJzdGFuZCBEd2FyZjIgc3VwcG9ydCBmb3IgdmVjdG9yIHR5cGVzIChsaWtlIHRoZXkg b2NjdXIgb24KICAgICAgIHRoZSBQb3dlclBDIHcvIEFsdGlWZWMpLiAgR2NjIGp1c3QgYWRkcyBh bm90aGVyIGF0dHJpYnV0ZSB0byB0aGUKLUBAIC01NDEwLDEyICs1NzQyLDE0IEBAIHJlYWRfc2V0 X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01 NDEwLDEyICs1NzQxLDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgc2V0X3R5 cGUsIGN1KTsKICB9CiAgCkBAIC02MTc0LDcgKzYyMzgsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0 ODg3IDEwMDY0NAogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIHN0cnVjdCBzeW1ib2wg KnN5bTsKICAgIENPUkVfQUREUiBiYXNlID0gKENPUkVfQUREUikgMDsKLUBAIC01NDI1LDI1ICs1 NzU5LDU1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtNTQyNSwyNSArNTc1OCw1NSBAQCByZWFkX2NvbW1vbl9ibG9j ayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICB7CiAg ICAgICAgLyogU3VwcG9ydCB0aGUgLmRlYnVnX2xvYyBvZmZzZXRzICovCiAgICAgICAgaWYgKGF0 dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCkBAIC02MjM3LDcgKzYzMDEsNyBAQCBpbmRleCA0Y2Nl MzZiLi5kMzk0ODg3IDEwMDY0NAogIAkgIGF0dHIgPSBkd2FyZjJfYXR0ciAoY2hpbGRfZGllLCBE V19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiwgY3UpOwogIAkgIGlmIChhdHRyKQogIAkgICAgewot QEAgLTU0NjEsOCArNTgyNSwyNSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU0NjEsOCArNTgyNCwyNSBAQCByZWFk X2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogIAkgICAgICBTWU1CT0xfVkFMVUVfQUREUkVTUyAoc3ltKSA9IGJhc2UgKyBieXRlX29mZnNl dDsKICAJICAgICAgYWRkX3N5bWJvbF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAg CSAgICB9CkBAIC02MjYzLDcgKzYzMjcsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0 NAogICAgICB9CiAgfQogIAotQEAgLTU1MzAsNyArNTkxMSw3IEBAIHJlYWRfbmFtZXNwYWNlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTUzMCw3ICs1 OTEwLDcgQEAgcmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKICAgICAgICBpZiAoaXNfYW5vbnltb3VzKQogIAl7CiAgCSAgY29uc3QgY2hh ciAqcHJldmlvdXNfcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSk7CkBAIC02Mjcy LDcgKzYzMzYsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAl9CiAgICAgIH0K ICAKLUBAIC01NTQ2LDIwICs1OTI3LDE1NSBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU1NDYsMjAgKzU5MjYsMTU1IEBA IHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgICAgIH0KICB9CiAgCkBAIC02MzEyLDE4ICs2Mzc2LDE4IEBAIGluZGV4IDRjY2UzNmIu LmQzOTQ4ODcgMTAwNjQ0CiArCiArICBpZiAoZGllX2lzX2RlY2xhcmF0aW9uIChkaWUsIGN1KSkK ICsgICAgcmV0dXJuIE5VTEw7Ci0rCisgCistICAvKiBGSVhNRTogU3VwcG9ydCB0aGUgc2VwYXJh dGUgRm9ydHJhbiBtb2R1bGUgbmFtZXNwYWNlcy4gICovCiArICBtb2R1bGVfbmFtZSA9IGR3YXJm Ml9uYW1lIChkaWUsIGN1KTsKICsgIGlmICghbW9kdWxlX25hbWUpCiArICAgIGNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywgXygiRFdfVEFHX21vZHVsZSBoYXMgbm8gbmFtZSwgb2Zmc2V0 IDB4JXgiKSwKICsgICAgICAgICAgICAgICBkaWUtPm9mZnNldCk7CiArICB0eXBlID0gaW5pdF90 eXBlIChUWVBFX0NPREVfTU9EVUxFLCAwLCAwLCBtb2R1bGVfbmFtZSwgb2JqZmlsZSk7Ci0rCi0r ICAvKiBDcmVhdGUgYSBjb250ZXh0IGZvciByZWFkaW5nIHRoZSBtb2R1bGUgdmFyaWFibGVzLiAg Ki8KICAKLS0gIC8qIEZJWE1FOiBTdXBwb3J0IHRoZSBzZXBhcmF0ZSBGb3J0cmFuIG1vZHVsZSBu YW1lc3BhY2VzLiAgKi8KKysgIC8qIENyZWF0ZSBhIGNvbnRleHQgZm9yIHJlYWRpbmcgdGhlIG1v ZHVsZSB2YXJpYWJsZXMuICAqLworKwogKyAgbmV3ID0gcHVzaF9jb250ZXh0ICgwLCAwKTsKLSAK KysKICsgIHNhdmVfZmlsZV9zeW1ib2xzID0gZmlsZV9zeW1ib2xzOwogKyAgZmlsZV9zeW1ib2xz ID0gTlVMTDsKICsgIHNhdmVfZ2xvYmFsX3N5bWJvbHMgPSBnbG9iYWxfc3ltYm9sczsKQEAgLTY0 MzEsNyArNjQ5NSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgfQogIAogIC8q IFJldHVybiB0aGUgbmFtZSBvZiB0aGUgbmFtZXNwYWNlIHJlcHJlc2VudGVkIGJ5IERJRS4gIFNl dAotQEAgLTU3MjQsMjkgKzYyNDAsMTEzIEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTcyNCwyOSArNjIzOSwx MTMgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVf YXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRl eF90eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTY1NTks NyArNjYyMyw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICBjaGFyX3R5cGUg PSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7 CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5 cGUpOwogIAotQEAgLTU4NDEsNyArNjQ0MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCitAQCAt NTg0MSw3ICs2NDQwLDYgQEAgc3RhdGljIHN0cnVjdCB0eXBlICoKICByZWFkX3R5cGVkZWYgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOwpAQCAtNjU2Nyw3ICs2NjMxLDcgQEAgaW5k ZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBOVUxMOwog ICAgc3RydWN0IHR5cGUgKnRoaXNfdHlwZTsKICAKLUBAIC01OTQ5LDggKzY1NDgsNyBAQCByZWFk X3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKK0BAIC01OTQ5LDggKzY1NDcsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5 cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHI7CkBAIC02NTc3LDcgKzY2NDEsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAog ICAgY2hhciAqbmFtZTsKICAgIAogICAgYmFzZV90eXBlID0gZGllX3R5cGUgKGRpZSwgY3UpOwot QEAgLTU5NjMsNDIgKzY1NjEsODkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTk2Myw0MiArNjU2MCw4OSBAQCBy ZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKICAJCSAgICAgMCwgTlVMTCwgY3UtPm9iamZpbGUpOwogICAgICB9CiAgCkBAIC02Njk2 LDcgKzY3NjAsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAogICAgbmFtZSA9 IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICAgIGlmIChuYW1lKQotQEAgLTY0NjksNiArNzExNCw3 IEBAIGxvYWRfcGFydGlhbF9kaWVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICpidWZmZXIsIGdkYl9i eXRlICppbmZvX3B0ciwKK0BAIC02NDY5LDYgKzcxMTMsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAo YmZkICphYmZkLCBnZGJfYnl0ZSAqYnVmZmVyLCBnZGJfYnl0ZSAqaW5mb19wdHIsCiAgCSAgJiYg YWJicmV2LT50YWcgIT0gRFdfVEFHX2xleGljYWxfYmxvY2sKICAJICAmJiBhYmJyZXYtPnRhZyAh PSBEV19UQUdfdmFyaWFibGUKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbmFtZXNwYWNl CkBAIC02NzA0LDcgKzY3NjgsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAkg ICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19tZW1iZXIpCiAgCXsKICAJICAvKiBPdGhlcndpc2Ug d2Ugc2tpcCB0byB0aGUgbmV4dCBzaWJsaW5nLCBpZiBhbnkuICAqLwotQEAgLTY2ODksOSArNzMz NSw2IEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2Rp ZSwKK0BAIC02Njg5LDkgKzczMzQsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlh bF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgCSAgaWYgKHBhcnRfZGllLT5kaXJuYW1lID09IE5VTEwp CiAgCSAgICBwYXJ0X2RpZS0+ZGlybmFtZSA9IERXX1NUUklORyAoJmF0dHIpOwogIAkgIGJyZWFr OwpAQCAtNjcxNCw3ICs2Nzc4LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAJ Y2FzZSBEV19BVF9sb3dfcGM6CiAgCSAgaGFzX2xvd19wY19hdHRyID0gMTsKICAJICBwYXJ0X2Rp ZS0+bG93cGMgPSBEV19BRERSICgmYXR0cik7Ci1AQCAtNjkyMyw3ICs3NTY2LDggQEAgZml4dXBf cGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKK0BAIC02OTIz LDcgKzc1NjUsOCBAQCBmaXh1cF9wYXJ0aWFsX2RpZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8g KnBhcnRfZGllLAogICAgLyogSWYgd2UgZm91bmQgYSByZWZlcmVuY2UgYXR0cmlidXRlIGFuZCB0 aGUgRElFIGhhcyBubyBuYW1lLCB0cnkKICAgICAgIHRvIGZpbmQgYSBuYW1lIGluIHRoZSByZWZl cnJlZCB0byBESUUuICAqLwogIApAQCAtNjcyNCw3ICs2Nzg4LDcgQEAgaW5kZXggNGNjZTM2Yi4u ZDM5NDg4NyAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpz cGVjX2RpZTsKICAKLUBAIC04MjY1LDEwICs4OTA5LDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24g KHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKK0BAIC04MjY1LDEw ICs4OTA4LDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIs IHN0cnVjdCBzeW1ib2wgKnN5bSwKICAgICAgIChpLmUuIHdoZW4gdGhlIHZhbHVlIG9mIGEgcmVn aXN0ZXIgb3IgbWVtb3J5IGxvY2F0aW9uIGlzCiAgICAgICByZWZlcmVuY2VkLCBvciBhIHRocmVh ZC1sb2NhbCBibG9jaywgZXRjLikuICBUaGVuIGFnYWluLCBpdCBtaWdodAogICAgICAgbm90IGJl IHdvcnRod2hpbGUuICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBpc24ndCB1bmxlc3MgcGVyZm9ybWFu Y2UKQEAgLTY3MzksNyArNjgwMyw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAg fQogIAogIC8qIEdpdmVuIGEgcG9pbnRlciB0byBhIERXQVJGIGluZm9ybWF0aW9uIGVudHJ5LCBm aWd1cmUgb3V0IGlmIHdlIG5lZWQKLUBAIC04MjkwLDIxICs4OTM2LDMwIEBAIG5ld19zeW1ib2wg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtODI5MCwyMSArODkzNSwzMCBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAogICAg YmFzZWFkZHIgPSBBTk9GRlNFVCAob2JqZmlsZS0+c2VjdGlvbl9vZmZzZXRzLCBTRUNUX09GRl9U RVhUIChvYmpmaWxlKSk7CiAgCkBAIC02NzY2LDcgKzY4MzAsNyBAQCBpbmRleCA0Y2NlMzZiLi5k Mzk0ODg3IDEwMDY0NAogKwogKyAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQg dGhlIG5hbWUncyBkZW1hbmdsZWQgZm9ybSAoaWYgYW55KS4gICovCiArCi0rICAgICAgbGlua2Fn ZW5hbWUgPSBkd2FyZjJfbGlua2FnZV9uYW1lIChkaWUsIGN1KTsKKysgICAgICBsaW5rYWdlbmFt ZSA9IGR3YXJmMl9waHlzbmFtZSAoZGllLCBjdSk7CiArICAgICAgU1lNQk9MX1NFVF9OQU1FUyAo c3ltLCBsaW5rYWdlbmFtZSwgc3RybGVuIChsaW5rYWdlbmFtZSksIG9iamZpbGUpOwogKyAgICAg IGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbikKICsJewpAQCAtNjc3Nyw3ICs2 ODQxLDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAKICAgICAgICAvKiBEZWZh dWx0IGFzc3VtcHRpb25zLgogICAgICAgICAgIFVzZSB0aGUgcGFzc2VkIHR5cGUgb3IgZGVjb2Rl IGl0IGZyb20gdGhlIGRpZS4gICovCi1AQCAtODQwMiw5ICs5MDU3LDI4IEBAIG5ld19zeW1ib2wg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtODQwMiw5ICs5MDU2LDI4IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAgaWYg KGF0dHIpCiAgCSAgICB7CiAgCSAgICAgIHZhcl9kZWNvZGVfbG9jYXRpb24gKGF0dHIsIHN5bSwg Y3UpOwpAQCAtNjgwNyw3ICs2ODcxLDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQK ICAJICAgICAgZWxzZQogIAkJYWRkX3N5bWJvbF90b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Nj b3BlKTsKICAJICAgIH0KLUBAIC04NTM0LDcgKzkyMDgsNyBAQCBuZXdfc3ltYm9sIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTg1MzQsNyArOTIwNyw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAgYWRkX3N5bWJvbF90 b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKICAJICBicmVhazsKICAJY2FzZSBEV19U QUdfZW51bWVyYXRvcjoKQEAgLTY4MTYsNyArNjg4MCw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4 ODcgMTAwNjQ0CiAgCSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2NvbnN0X3ZhbHVl LCBjdSk7CiAgCSAgaWYgKGF0dHIpCiAgCSAgICB7Ci1AQCAtODU1OCw2ICs5MjMyLDE2IEBAIG5l d19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtODU1OCw2ICs5MjMxLDE2IEBAIG5ld19zeW1ib2wgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgCSAgU1lNQk9MX0NMQVNTIChzeW0pID0gTE9DX1RZUEVERUY7CiAgCSAgYWRkX3N5bWJvbF90 b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgYnJlYWs7CkBAIC02ODMzLDcgKzY4 OTcsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAlkZWZhdWx0OgogIAkgIC8q IE5vdCBhIHRhZyB3ZSByZWNvZ25pemUuICBIb3BlZnVsbHkgd2UgYXJlbid0IHByb2Nlc3NpbmcK ICAJICAgICB0cmFzaCBkYXRhLCBidXQgc2luY2Ugd2UgbXVzdCBzcGVjaWZpY2FsbHkgaWdub3Jl IHRoaW5ncwotQEAgLTg1NzEsOCArOTI1NSw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODU3 MSw4ICs5MjU0LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICAvKiBGb3IgdGhlIGJlbmVm aXQgb2Ygb2xkIHZlcnNpb25zIG9mIEdDQywgY2hlY2sgZm9yIGFub255bW91cwogIAkgbmFtZXNw YWNlcyBiYXNlZCBvbiB0aGUgZGVtYW5nbGVkIG5hbWUuICAqLwogICAgICAgIGlmICghcHJvY2Vz c2luZ19oYXNfbmFtZXNwYWNlX2luZm8KQEAgLTY4NDMsNyArNjkwNyw3IEBAIGluZGV4IDRjY2Uz NmIuLmQzOTQ4ODcgMTAwNjQ0CiAgCWNwX3NjYW5fZm9yX2Fub255bW91c19uYW1lc3BhY2VzIChz eW0pOwogICAgICB9CiAgICByZXR1cm4gKHN5bSk7Ci1AQCAtODgyMywxMiArOTUwNiwxOCBAQCBy ZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtODgyMywxMiArOTUwNSwxOCBAQCByZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIGNhc2UgRFdfVEFHX25hbWVzcGFjZToK ICAgICAgICB0aGlzX3R5cGUgPSByZWFkX25hbWVzcGFjZV90eXBlIChkaWUsIGN1KTsKICAgICAg ICBicmVhazsKQEAgLTY4NjIsNyArNjkyNiw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAw NjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC04OTEwLDEwICs5NTk5LDk3IEBA IGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKK0BAIC04OTEwLDEwICs5NTk4LDEwMCBAQCBkZXRlcm1pbmVfcHJlZml4IChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAgICAgU28gaXQgZG9lcyBu b3QgbmVlZCBhIHByZWZpeC4gICovCiAgCSAgcmV0dXJuICIiOwogICAgICAgIGRlZmF1bHQ6CkBA IC02ODcxLDEwICs2OTM1LDEwIEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgICAg ICAgfQogIH0KICAKLSsvKiBEZXRlcm1pbmVzIHRoZSBwcmVmaXggZm9yIGEgc3ltYm9sJ3MgcGh5 c25hbWUuIFVubGlrZSBkZXRlcm1pbmVfcHJlZml4LAorKy8qIERldGVybWluZXMgdGhlIHByZWZp eCBmb3IgYSBzeW1ib2wncyBwaHlzbmFtZS4gIFVubGlrZSBkZXRlcm1pbmVfcHJlZml4LAogKyAg IHRoaXMgbWV0aG9kIGRvZXMgbm90IHNpbXBseSBsb29rIGF0IHRoZSBESUUncyBpbW1lZGlhdGUg cGFyZW50LgogKyAgIEl0IHdpbGwgY29tcHV0ZSB0aGUgc3ltYm9sJ3MgcGh5c25hbWUgYnkgc2Nh bm5pbmcgdGhyb3VnaCBhbGwgcGFyZW50Ci0rICAgRElFcyB1bnRpbCBpdCBnZXRzIHRvIHRoZSBj b21waWxhdGlvbiB1bml0J3MgRElFLiAqLworKyAgIERJRXMgdW50aWwgaXQgZ2V0cyB0byB0aGUg Y29tcGlsYXRpb24gdW5pdCdzIERJRS4gICovCiArCiArc3RhdGljIGNoYXIgKgogK3BoeXNuYW1l X3ByZWZpeCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQpAQCAt Njg4Myw2ICs2OTQ3LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICsgIHN0cnVj dCB1aV9maWxlICpidWY7CiArICBzdHJ1Y3QgZGllX2luZm8gKmQsICpzcGVjX2RpZTsKICsgIHN0 cnVjdCBkd2FyZjJfY3UgKnNwZWNfY3U7CisrICBjaGFyICpuYW1lOwogKwogKyAgLyogQ29uc3Ry dWN0IGEgc3RhY2sgY29udGFpbmluZyBhbGwgb2YgdGhlIERJRSdzIHBhcmVudHMuICBDYXV0aW9u CiArICAgICBtdXN0IGJlIG9ic2VydmVkIGZvciBkZWFsaW5nIHdpdGggRFdfQVRfc3BlY2lmaWNh dGlvbi4gKi8KQEAgLTY5MDQsNyArNjk2OSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAw NjQ0CiArICAgICAgZCA9IGQtPnBhcmVudDsKICsgICAgfQogKwotKyAgLyogTm93IHBvcCBhbGwg dGhlIGVsZW1lbnRzLCBwcmludGluZyB0aGVpciBuYW1lcyBhcyB3ZSBnbyAqLworKyAgLyogTm93 IHBvcCBhbGwgdGhlIGVsZW1lbnRzLCBwcmludGluZyB0aGVpciBuYW1lcyBhcyB3ZSBnby4gICov CiArICBidWYgPSBtZW1fZmlsZW9wZW4gKCk7CiArICB3aGlsZSAoIVZFQ19lbXB0eSAoZGllX2lu Zm9fcCwgZGllX2xpc3QpKQogKyAgICB7CkBAIC02OTIwLDcgKzY5ODUsOSBAQCBpbmRleCA0Y2Nl MzZiLi5kMzk0ODg3IDEwMDY0NAogKwl9CiArICAgIH0KICsKLSsgIHJldHVybiB1aV9maWxlX29i c2F2ZXN0cmluZyAoYnVmLCAmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgJmxlbmd0aCk7 CisrICBuYW1lID0gdWlfZmlsZV9vYnNhdmVzdHJpbmcgKGJ1ZiwgJmN1LT5vYmpmaWxlLT5vYmpm aWxlX29ic3RhY2ssICZsZW5ndGgpOworKyAgdWlfZmlsZV9kZWxldGUgKGJ1Zik7CisrICByZXR1 cm4gbmFtZTsKICt9CiArCiArc3RhdGljIHZvaWQKQEAgLTY5NjEsOCArNzAyOCwxNiBAQCBpbmRl eCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIC8qIFJldHVybiBhIG5ld2x5LWFsbG9jYXRlZCBz dHJpbmcgZm9ybWVkIGJ5IGNvbmNhdGVuYXRpbmcgUFJFRklYIGFuZAogICAgIFNVRkZJWCB3aXRo IGFwcHJvcHJpYXRlIHNlcGFyYXRvci4gIElmIFBSRUZJWCBvciBTVUZGSVggaXMgTlVMTCBvciBl bXB0eSwgdGhlbgogICAgIHNpbXBseSBjb3B5IHRoZSBTVUZGSVggb3IgUFJFRklYLCByZXNwZWN0 aXZlbHkuICBJZiBPQlMgaXMgbm9uLW51bGwsCi1AQCAtODk2OSwxMSArOTc0NSwxMDUgQEAgc3Rh dGljIGNoYXIgKgotIGR3YXJmMl9saW5rYWdlX25hbWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC04OTYzLDE3ICs5NzQxLDExMSBAQCBzaWJsaW5nX2Rp ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUpCisgICByZXR1cm4gZGllLT5zaWJsaW5nOworIH0KKyAK Ky0vKiBHZXQgbGlua2FnZSBuYW1lIG9mIGEgZGllLCByZXR1cm4gTlVMTCBpZiBub3QgZm91bmQu ICAqLworKy8qIENvbnN0cnVjdCBhIHBoeXNuYW1lIGZvciB0aGUgZ2l2ZW4gRElFIGluIENVLiAq LworIAorIHN0YXRpYyBjaGFyICoKKy1kd2FyZjJfbGlua2FnZV9uYW1lIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisrZHdhcmYyX3BoeXNuYW1lIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0IGF0dHJp YnV0ZSAqYXR0cjsKICsgIGNoYXIgKm5hbWU7CkBAIC03MDE1LDExICs3MDkwLDcgQEAgaW5kZXgg NGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICsJCWZwdXRzX3VuZmlsdGVyZWQgKCIgY29uc3QiLCBi dWYpOwogKwkgICAgfQogKwl9Ci0gCi0tICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRf TUlQU19saW5rYWdlX25hbWUsIGN1KTsKLS0gIGlmIChhdHRyICYmIERXX1NUUklORyAoYXR0cikp Ci0tICAgIHJldHVybiBEV19TVFJJTkcgKGF0dHIpOwotLSAgcmV0dXJuIGR3YXJmMl9uYW1lIChk aWUsIGN1KTsKKysKICsgICAgICBuYW1lID0gdWlfZmlsZV9vYnNhdmVzdHJpbmcgKGJ1ZiwgJmN1 LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCiArCQkJCSAgICZsZW5ndGgpOwogKyAgICAgIHVp X2ZpbGVfZGVsZXRlIChidWYpOwpAQCAtNzA1Niw3ICs3MTI3LDExIEBAIGluZGV4IDRjY2UzNmIu LmQzOTQ4ODcgMTAwNjQ0CiArICAgICAgaWYgKG1vZHVsZV9uYW1lKQogKwl7CiArCSAgY2hhciAq cmV0dmFsOwotKworIAorLSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlu a2FnZV9uYW1lLCBjdSk7CistICBpZiAoYXR0ciAmJiBEV19TVFJJTkcgKGF0dHIpKQorLSAgICBy ZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKKy0gIHJldHVybiBkd2FyZjJfbmFtZSAoZGllLCBjdSk7 CiArCSAgLyogYF9fbW9kdWxlbmFtZV9NT0RfdmFyaWFibGVuYW1lMCcuICAqLwogKwkgIHJldHZh bCA9IG9ic3RhY2tfYWxsb2MgKCZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLAogKwkJCQkg IDIgKyBzdHJsZW4gKG1vZHVsZV9uYW1lKSArIDUgKyBzdHJsZW4gKG5hbWUpCkBAIC03MDcxLDcg KzcxNDYsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIH0KICAKICAvKiBHZXQg bmFtZSBvZiBhIGRpZSwgcmV0dXJuIE5VTEwgaWYgbm90IGZvdW5kLiAgKi8KLUBAIC0xMDIwMCwx MSArMTEwNzAsMTEgQEAgZHdhcmYyX2dldF9yZWZfZGllX29mZnNldCAoc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cikKK0BAIC0xMDIwMCwxMSArMTEwNzIsMTEgQEAgZHdhcmYyX2dldF9yZWZfZGllX29m ZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKICAgIHJldHVybiAwOwogIH0KICAKQEAgLTcw ODYsNyArNzE2MSw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgewogICAgaWYg KGF0dHItPmZvcm0gPT0gRFdfRk9STV9zZGF0YSkKICAgICAgcmV0dXJuIERXX1NORCAoYXR0cik7 Ci1AQCAtMTEwMDksOCArMTE4NzksNiBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGlu ZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMDA5LDggKzExODgxLDYg QEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQg aW50IG9mZnNldCwKICB7CiAgICBnZGJfYnl0ZSAqbWFjX3B0ciwgKm1hY19lbmQ7CiAgICBzdHJ1 Y3QgbWFjcm9fc291cmNlX2ZpbGUgKmN1cnJlbnRfZmlsZSA9IDA7CkBAIC03MDk1LDcgKzcxNzAs NyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAogICAgaWYgKGR3YXJmMl9wZXJf b2JqZmlsZS0+bWFjaW5mby5idWZmZXIgPT0gTlVMTCkKICAgICAgewotQEAgLTExMDE4LDI5ICsx MTg4NiwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1 bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMDE4LDI5ICsxMTg4OCwxOSBAQCBkd2FyZl9kZWNv ZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAog ICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtNzEzMCw3ICs3MjA1LDcgQEAgaW5kZXggNGNj ZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgICAgIH0KICAKICAgICAgICBtYWNpbmZvX3R5cGUg PSByZWFkXzFfYnl0ZSAoYWJmZCwgbWFjX3B0cik7Ci1AQCAtMTEwNTEsOTIgKzExOTA5LDcgQEAg ZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50 IG9mZnNldCwKK0BAIC0xMTA1MSw5MiArMTE5MTEsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChz dHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAgICAv KiBBIHplcm8gbWFjaW5mbyB0eXBlIGluZGljYXRlcyB0aGUgZW5kIG9mIHRoZSBtYWNybwogICAg ICAgICAgICAgICBpbmZvcm1hdGlvbi4gICovCiAgICAgICAgICBjYXNlIDA6CkBAIC03MjI0LDcg KzcyOTksNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIAogICAgICAgICAgY2Fz ZSBEV19NQUNJTkZPX2RlZmluZToKICAgICAgICAgIGNhc2UgRFdfTUFDSU5GT191bmRlZjoKLUBA IC0xMTE1MSwzMSArMTE5MjQsMTkgQEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVf aGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKK0BAIC0xMTE1MSwzMSArMTE5MjYsMTkg QEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQg aW50IG9mZnNldCwKICAgICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CiAgCiAgICAg ICAgICAgICAgaWYgKCEgY3VycmVudF9maWxlKQpAQCAtNzI2Nyw3ICs3MzQyLDcgQEAgaW5kZXgg NGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsK ICAKLUBAIC0xMTE4OSwyMiArMTE5NTAsOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3Qg bGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMTg5LDIyICsxMTk1 Miw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2ln bmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgICAgZmlsZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4 IChhYmZkLCBtYWNfcHRyLCAmYnl0ZXNfcmVhZCk7CiAgICAgICAgICAgICAgbWFjX3B0ciArPSBi eXRlc19yZWFkOwogIApAQCAtNzI5Myw3ICs3MzY4LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4 NyAxMDA2NDQKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAKLUBAIC0xMTI1OCw3 ICsxMjAwNiw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgs IHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTEyNTgsNyArMTIwMDgsNyBAQCBkd2FyZl9kZWNv ZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAog ICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQpAQCAtNzMwMiw3ICs3 Mzc3LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2NDQKICB9CiAgCiAgLyogQ2hlY2sg aWYgdGhlIGF0dHJpYnV0ZSdzIGZvcm0gaXMgYSBEV19GT1JNX2Jsb2NrKgotQEAgLTExMzE4LDYg KzEyMDY2LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cikKK0BAIC0xMTMxOCw2ICsxMjA2OCwzNCBAQCBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHIpCiAgICAgIH0KICB9CiAgCkBAIC03MzM3LDcgKzc0MTIsNyBAQCBp bmRleCA0Y2NlMzZiLi5kMzk0ODg3IDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgZHdhcmYyX3N5bWJv bF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpz eW0sCiAgCQkJICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLUBAIC0xMTM0NywzNSArMTIxMjMs MjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRy LCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTEzNDcsMzUgKzEyMTI1LDI1IEBAIGR3YXJmMl9z eW1ib2xfbWFya19jb21wdXRlZCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJv bCAqc3ltLAogICAgICAgIFNZTUJPTF9DT01QVVRFRF9PUFMgKHN5bSkgPSAmZHdhcmYyX2xvY2xp c3RfZnVuY3M7CiAgICAgICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIChzeW0pID0gYmF0b247CiAg ICAgIH0KQEAgLTczODgsNyArNzQ2Myw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0 CiAgICAgIH0KICB9CiAgCi1AQCAtMTE2NjMsNiArMTI0MjksMzEgQEAgb2Zmc2V0X2FuZF90eXBl X2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMTE2 NjMsNiArMTI0MzEsMzEgQEAgb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xo cywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgICByZXR1cm4gb2ZzX2xocy0+b2Zmc2V0ID09IG9m c19yaHMtPm9mZnNldDsKICB9CiAgCkBAIC03NDIwLDcgKzc0OTUsNyBAQCBpbmRleCA0Y2NlMzZi Li5kMzk0ODg3IDEwMDY0NAogIC8qIFNldCB0aGUgdHlwZSBhc3NvY2lhdGVkIHdpdGggRElFIHRv IFRZUEUuICBTYXZlIGl0IGluIENVJ3MgaGFzaAogICAgIHRhYmxlIGlmIG5lY2Vzc2FyeS4gIEZv ciBjb252ZW5pZW5jZSwgcmV0dXJuIFRZUEUuICAqLwogIAotQEAgLTExNjcxLDYgKzEyNDYyLDgg QEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTExNjcxLDYgKzEyNDY0LDggQEAgc2V0X2RpZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogIHsKICAgIHN0cnVjdCBkd2FyZjJfb2Zmc2V0X2FuZF90eXBlICoqc2xvdCwg b2ZzOwogIApAQCAtNzQyOSw3ICs3NTA0LDcgQEAgaW5kZXggNGNjZTM2Yi4uZDM5NDg4NyAxMDA2 NDQKICAgIGlmIChjdS0+dHlwZV9oYXNoID09IE5VTEwpCiAgICAgIHsKICAgICAgICBnZGJfYXNz ZXJ0IChjdS0+cGVyX2N1ICE9IE5VTEwpOwotQEAgLTExODEzLDIzICsxMjYwNiwxMyBAQCBzaG93 X2R3YXJmMl9jbWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0xMTgxMywyMyArMTI2 MDgsMTMgQEAgc2hvd19kd2FyZjJfY21kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCiAgICBj bWRfc2hvd19saXN0IChzaG93X2R3YXJmMl9jbWRsaXN0LCBmcm9tX3R0eSwgIiIpOwogIH0KICAK QEAgLTc0NTcsNyArNzUzMiw3IEBAIGluZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAgfQog IAogIC8qIG11bm1hcCBkZWJ1ZyBzZWN0aW9ucyBmb3IgT0JKRklMRSwgaWYgbmVjZXNzYXJ5LiAg Ki8KLUBAIC0xMTgzOCwxNSArMTI2MjEsMTUgQEAgc3RhdGljIHZvaWQKK0BAIC0xMTgzOCwxNSAr MTI2MjMsMTUgQEAgc3RhdGljIHZvaWQKICBkd2FyZjJfcGVyX29iamZpbGVfZnJlZSAoc3RydWN0 IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmQpCiAgewogICAgc3RydWN0IGR3YXJmMl9wZXJfb2Jq ZmlsZSAqZGF0YSA9IGQ7CkBAIC03NDgyLDcgKzc1NTcsNyBAQCBpbmRleCA0Y2NlMzZiLi5kMzk0 ODg3IDEwMDY0NAogIH0KICAKICB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsK LUBAIC0xMTg1NCw2ICsxMjYzNyw3IEBAIHZvaWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZv aWQpOworQEAgLTExODU0LDYgKzEyNjM5LDcgQEAgdm9pZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVh ZCAodm9pZCk7CiAgdm9pZAogIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKQogIHsKQEAg LTc1MjMsNyArNzU5OCw3IEBAIGluZGV4IDZlNzlkNGEuLjE5OGJhZTMgMTAwNjQ0CiAgICBkZWZh dWx0X3N5bWZpbGVfb2Zmc2V0cywJLyogc3ltX29mZnNldHM6ICBUcmFuc2xhdGUgZXh0LiB0byBp bnQuIHJlbG9jYXRpb24gKi8KICAgIGVsZl9zeW1maWxlX3NlZ21lbnRzLAkJLyogc3ltX3NlZ21l bnRzOiBHZXQgc2VnbWVudCBpbmZvcm1hdGlvbiBmcm9tCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwu YyBiL2dkYi9ldmFsLmMKLWluZGV4IDdlNDFkMzkuLjM3ZmZlMjMgMTAwNjQ0CitpbmRleCAyOTI2 NDY1Li40YzZkZTc4IDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwog QEAgLTM5LDggKzM5LDEyIEBACkBAIC03NjY0LDcgKzc3MzksNyBAQCBpbmRleCA3ZTQxZDM5Li4z N2ZmZTIzIDEwMDY0NAogIAl9CiAgICAgICAgZWxzZSBpZiAob3AgPT0gT1BfVkFSX1ZBTFVFKQog IAl7Ci1AQCAtMTU0Miw3ICsxNTk0LDEwIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3Ry dWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE1NDksNyArMTYwMSwxMCBAQCBldmFsdWF0ZV9z dWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAKICAgICAgICAvKiBG aXJzdCBkZXRlcm1pbmUgdGhlIHR5cGUgY29kZSB3ZSBhcmUgZGVhbGluZyB3aXRoLiAgKi8KICAg ICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUp OwpAQCAtNzY3NSw3ICs3NzUwLDcgQEAgaW5kZXggN2U0MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAg ICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAKICAgICAgICBpZiAoY29kZSA9PSBUWVBF X0NPREVfUFRSKQotQEAgLTE3MDksNiArMTc2NCwzNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xNzE2LDYgKzE3NzEsMzcgQEAgZXZh bHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgZXJy b3IgKF8oIm5vbi1wb2ludGVyLXRvLW1lbWJlciB2YWx1ZSB1c2VkIGluIHBvaW50ZXItdG8tbWVt YmVyIGNvbnN0cnVjdCIpKTsKICAJfQogIApAQCAtNzcxMyw3ICs3Nzg4LDcgQEAgaW5kZXggN2U0 MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAgICAgY2FzZSBCSU5PUF9DT05DQVQ6CiAgICAgICAgYXJn MSA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKICAg ICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3Np ZGUpOwotQEAgLTE5ODAsMTMgKzIwNjYsMTkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChz dHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTk4NywxMyArMjA3MywxOSBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgICB7CiAg CWludCBzdWJzY3JpcHRfYXJyYXlbTUFYX0ZPUlRSQU5fRElNU107CiAgCWludCBhcnJheV9zaXpl X2FycmF5W01BWF9GT1JUUkFOX0RJTVNdOwpAQCAtNzczMyw3ICs3ODA4LDcgQEAgaW5kZXggN2U0 MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAJdG1wX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcxKSk7CiAgCW5kaW1lbnNpb25zID0gY2FsY19mNzdfYXJyYXlfZGltcyAodHlwZSk7 CiAgCi1AQCAtMjAxNiw2ICsyMTA4LDkgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1 Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjAyMyw2ICsyMTE1LDkgQEAgZXZhbHVhdGVfc3Vi ZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICB1cHBlciA9IGY3 N19nZXRfdXBwZXJib3VuZCAodG1wX3R5cGUpOwogIAkgICAgbG93ZXIgPSBmNzdfZ2V0X2xvd2Vy Ym91bmQgKHRtcF90eXBlKTsKICAKQEAgLTc3NDMsNyArNzgxOCw3IEBAIGluZGV4IDdlNDFkMzku LjM3ZmZlMjMgMTAwNjQ0CiAgCSAgICBhcnJheV9zaXplX2FycmF5W25hcmdzIC0gaSAtIDFdID0g dXBwZXIgLSBsb3dlciArIDE7CiAgCiAgCSAgICAvKiBaZXJvLW5vcm1hbGl6ZSBzdWJzY3JpcHRz IHNvIHRoYXQgb2Zmc2V0dGluZyB3aWxsIHdvcmsuICovCi1AQCAtMjAzNCwxMyArMjEyOSwyNSBA QCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BA IC0yMDQxLDEzICsyMTM2LDI1IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5 cGUgKmV4cGVjdF90eXBlLAogIAkgICAgICB0bXBfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVf VEFSR0VUX1RZUEUgKHRtcF90eXBlKSk7CiAgCSAgfQogIApAQCAtNzc3Myw3ICs3ODQ4LDcgQEAg aW5kZXggN2U0MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAKICAJLyogTGV0IHVzIG5vdyBwbGF5IGEg ZGlydHkgdHJpY2s6IHdlIHdpbGwgdGFrZSBhcmcxIAogIAkgICB3aGljaCBpcyBhIHZhbHVlIG5v ZGUgcG9pbnRpbmcgdG8gdGhlIHRvcG1vc3QgbGV2ZWwKLUBAIC0yMDUwLDcgKzIxNTcsNyBAQCBl dmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0y MDU3LDcgKzIxNjQsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpl eHBlY3RfdHlwZSwKICAJICAgcmV0dXJucyB0aGUgY29ycmVjdCB0eXBlIHZhbHVlICovCiAgCiAg CWRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKGFyZzEsIHRtcF90eXBlKTsKQEAgLTc3ODIsNyAr Nzg1Nyw3IEBAIGluZGV4IDdlNDFkMzkuLjM3ZmZlMjMgMTAwNjQ0CiAgICAgICAgfQogIAogICAg ICBjYXNlIEJJTk9QX0xPR0lDQUxfQU5EOgotQEAgLTI1OTEsNyArMjY5OCw3IEBAIGV2YWx1YXRl X3N1YmV4cF9mb3JfYWRkcmVzcyAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCitA QCAtMjU5OCw3ICsyNzA1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2Zvcl9hZGRyZXNzIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcywKICAgICAgICAoKnBvcykgKz0gNSArIEJZVEVTX1RP X0VYUF9FTEVNICh0ZW0gKyAxKTsKICAgICAgICB4ID0gdmFsdWVfYWdncmVnYXRlX2VsdCAoZXhw LT5lbHRzW3BjICsgMV0udHlwZSwKICAJCQkgICAgICAgJmV4cC0+ZWx0c1twYyArIDNdLnN0cmlu ZywKQEAgLTc3OTEsNyArNzg2Niw3IEBAIGluZGV4IDdlNDFkMzkuLjM3ZmZlMjMgMTAwNjQ0CiAg ICAgICAgaWYgKHggPT0gTlVMTCkKICAJZXJyb3IgKF8oIlRoZXJlIGlzIG5vIGZpZWxkIG5hbWVk ICVzIiksICZleHAtPmVsdHNbcGMgKyAzXS5zdHJpbmcpOwogICAgICAgIHJldHVybiB4OwotQEAg LTI2MzYsNyArMjc0Myw3IEBAIGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLAorQEAgLTI2NDMsNyArMjc1MCw3IEBAIGV2YWx1YXRlX3N1YmV4cF93 aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIHsKICAgIGVudW0gZXhwX29w Y29kZSBvcDsKICAgIGludCBwYzsKQEAgLTc4MDAsNyArNzg3NSw3IEBAIGluZGV4IDdlNDFkMzku LjM3ZmZlMjMgMTAwNjQ0CiAgICBzdHJ1Y3Qgc3ltYm9sICp2YXI7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZTsKICAKLUBAIC0yNjQ3LDEyICsyNzU0LDE3IEBAIGV2YWx1YXRlX3N1YmV4cF93aXRoX2Nv ZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTI2NTQsMTIgKzI3NjEsMTcgQEAg ZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAg ICAgIHsKICAgICAgY2FzZSBPUF9WQVJfVkFMVUU6CiAgICAgICAgdmFyID0gZXhwLT5lbHRzW3Bj ICsgMl0uc3ltYm9sOwpAQCAtNzgxOSw3ICs3ODk0LDcgQEAgaW5kZXggN2U0MWQzOS4uMzdmZmUy MyAxMDA2NDQKICAJICByZXR1cm4gdmFsdWVfY2FzdCAobG9va3VwX3BvaW50ZXJfdHlwZSAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSkpLAogIAkJCSAgICAgdmFsKTsKICAJfQotQEAgLTI3MDQsOSAr MjgxNiwxMyBAQCBldmFsdWF0ZV9zdWJleHBfZm9yX3NpemVvZiAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgaW50ICpwb3MpCitAQCAtMjcxMSw5ICsyODIzLDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9m b3Jfc2l6ZW9mIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgKnBvcykKICAKICAgICAgY2Fz ZSBPUF9WQVJfVkFMVUU6CiAgICAgICAgKCpwb3MpICs9IDQ7CkBAIC05Nzg3LDcgKzk4NjIsNyBA QCBpbmRleCA3OWQzM2ZlLi5kM2I0ZmExIDEwMDY0NAogICAgIG9uY2UgZm9yIGVhY2gga25vd24g dGhyZWFkLiAgKi8KICB0eXBlZGVmIGludCAoKnRocmVhZF9jYWxsYmFja19mdW5jKSAoc3RydWN0 IHRocmVhZF9pbmZvICosIHZvaWQgKik7CiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9n ZGIvZ2RidHlwZXMuYwotaW5kZXggMmY3N2RjYS4uODE0NjE3NSAxMDA2NDQKK2luZGV4IDJmNzdk Y2EuLjkwYWJmMmMgMTAwNjQ0CiAtLS0gYS9nZGIvZ2RidHlwZXMuYwogKysrIGIvZ2RiL2dkYnR5 cGVzLmMKIEBAIC0zOCw2ICszOCw5IEBACkBAIC0xMDE1OCw3ICsxMDIzMywxNyBAQCBpbmRleCAy Zjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogICAgcmV0dXJuIHR5cGU7CiAgfQogIAotQEAgLTI4MjAs MzMgKzI5ODMsNDIgQEAgdHlwZV9wYWlyX2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qg dm9pZCAqaXRlbV9yaHMpCitAQCAtMjAwNCw3ICsyMTY3LDggQEAgcmFua19vbmVfdHlwZSAoc3Ry dWN0IHR5cGUgKnBhcm0sIHN0cnVjdCB0eXBlICphcmcpCisgICAgICAgc3dpdGNoIChUWVBFX0NP REUgKGFyZykpCisgCXsKKyAJY2FzZSBUWVBFX0NPREVfUFRSOgorLQkgIGlmIChUWVBFX0NPREUg KFRZUEVfVEFSR0VUX1RZUEUgKHBhcm0pKSA9PSBUWVBFX0NPREVfVk9JRCkKKysJICBpZiAoVFlQ RV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFIChwYXJtKSkgPT0gVFlQRV9DT0RFX1ZPSUQKKysJICAg ICAgJiYgVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFIChhcmcpKSAhPSBUWVBFX0NPREVfVk9J RCkKKyAJICAgIHJldHVybiBWT0lEX1BUUl9DT05WRVJTSU9OX0JBRE5FU1M7CisgCSAgZWxzZQor IAkgICAgcmV0dXJuIHJhbmtfb25lX3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHBhcm0pLCAKK0BA IC0yODIwLDMzICsyOTg0LDQyIEBAIHR5cGVfcGFpcl9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMs IGNvbnN0IHZvaWQgKml0ZW1fcmhzKQogIH0KICAKICAvKiBBbGxvY2F0ZSB0aGUgaGFzaCB0YWJs ZSB1c2VkIGJ5IGNvcHlfdHlwZV9yZWN1cnNpdmUgdG8gd2FsawpAQCAtMTAyMTYsNyArMTAzMDEs NyBAQCBpbmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogICAgICByZXR1cm4gdHlwZTsKICAK ICAgIC8qIFRoaXMgdHlwZSBzaG91bGRuJ3QgYmUgcG9pbnRpbmcgdG8gYW55IHR5cGVzIGluIG90 aGVyIG9iamZpbGVzOwotQEAgLTI4NjEsOCArMzAzMywxMCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZl IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0yODYxLDggKzMwMzQsMTAgQEAgY29weV90 eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBuZXdfdHlwZSA9IGFs bG9jX3R5cGVfYXJjaCAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogIAogICAgLyogV2UgbXVzdCBh ZGQgdGhlIG5ldyB0eXBlIHRvIHRoZSBoYXNoIHRhYmxlIGltbWVkaWF0ZWx5LCBpbiBjYXNlCkBA IC0xMDIyOSw3ICsxMDMxNCw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgICBz dG9yZWQtPm9sZCA9IHR5cGU7CiAgICBzdG9yZWQtPm5ldyA9IG5ld190eXBlOwogICAgKnNsb3Qg PSBzdG9yZWQ7Ci1AQCAtMjg3Myw2ICszMDQ3LDE5IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTI4NzMsNiArMzA0OCwxOSBAQCBjb3B5X3R5cGVf cmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIFRZUEVfT0JKRklMRV9PV05F RCAobmV3X3R5cGUpID0gMDsKICAgIFRZUEVfT1dORVIgKG5ld190eXBlKS5nZGJhcmNoID0gZ2V0 X3R5cGVfYXJjaCAodHlwZSk7CiAgCkBAIC0xMDI0OSw3ICsxMDMzNCw3IEBAIGluZGV4IDJmNzdk Y2EuLjgxNDYxNzUgMTAwNjQ0CiAgICBpZiAoVFlQRV9OQU1FICh0eXBlKSkKICAgICAgVFlQRV9O QU1FIChuZXdfdHlwZSkgPSB4c3RyZHVwIChUWVBFX05BTUUgKHR5cGUpKTsKICAgIGlmIChUWVBF X1RBR19OQU1FICh0eXBlKSkKLUBAIC0yODgxLDEyICszMDY4LDQ1IEBAIGNvcHlfdHlwZV9yZWN1 cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTI4ODEsMTIgKzMwNjksNDUgQEAg Y29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBUWVBFX0lO U1RBTkNFX0ZMQUdTIChuZXdfdHlwZSkgPSBUWVBFX0lOU1RBTkNFX0ZMQUdTICh0eXBlKTsKICAg IFRZUEVfTEVOR1RIIChuZXdfdHlwZSkgPSBUWVBFX0xFTkdUSCAodHlwZSk7CiAgCkBAIC0xMDI5 NSw3ICsxMDM4MCw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgICAgICAgVFlQ RV9GSUVMRFMgKG5ld190eXBlKSA9IFhDQUxMT0MgKG5maWVsZHMsIHN0cnVjdCBmaWVsZCk7CiAg ICAgICAgZm9yIChpID0gMDsgaSA8IG5maWVsZHM7IGkrKykKICAJewotQEAgLTI4OTUsOCArMzEx NSw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAg LTI4OTUsOCArMzExNiw4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAogIAkgIFRZUEVfRklFTERfQklUU0laRSAobmV3X3R5cGUsIGkpID0gVFlQRV9GSUVM RF9CSVRTSVpFICh0eXBlLCBpKTsKICAJICBpZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSkK ICAJICAgIFRZUEVfRklFTERfVFlQRSAobmV3X3R5cGUsIGkpCkBAIC0xMDMwNiw3ICsxMDM5MSw3 IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgCSAgaWYgKFRZUEVfRklFTERfTkFN RSAodHlwZSwgaSkpCiAgCSAgICBUWVBFX0ZJRUxEX05BTUUgKG5ld190eXBlLCBpKSA9IAogIAkg ICAgICB4c3RyZHVwIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpKTsKLUBAIC0yOTE1LDYgKzMx MzUsMTYgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitA QCAtMjkxNSw2ICszMTM2LDE2IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLAogIAkJCQkgIHhzdHJkdXAgKFRZUEVfRklFTERfU1RBVElDX1BIWVNOQU1FICh0 eXBlLAogIAkJCQkJCQkJICAgICAgIGkpKSk7CiAgCSAgICAgIGJyZWFrOwpAQCAtMTAzMjMsNyAr MTA0MDgsNyBAQCBpbmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogIAkgICAgZGVmYXVsdDoK ICAJICAgICAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKICAJCQkgICAgICBf KCJVbmV4cGVjdGVkIHR5cGUgZmllbGQgbG9jYXRpb24ga2luZDogJWQiKSwKLUBAIC0yOTIzLDE3 ICszMTUzLDMwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAorQEAgLTI5MjMsMTcgKzMxNTQsMzAgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsCiAgCX0KICAgICAgfQogIApAQCAtMTAzNjAsNyArMTA0NDUsNyBAQCBp bmRleCAyZjc3ZGNhLi44MTQ2MTc1IDEwMDY0NAogICAgLyogTWF5YmUgY29weSB0aGUgdHlwZV9z cGVjaWZpYyBiaXRzLgogIAogICAgICAgTk9URSBkcm93LzIwMDUtMTItMDk6IFdlIGRvIG5vdCBj b3B5IHRoZSBDKystc3BlY2lmaWMgYml0cyBsaWtlCi1AQCAtMjk1MSw2ICszMTk0LDE3IEBAIGNv cHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTI5NTEsNiAr MzE5NSwxNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwK ICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgCkBAIC0xMDM3OCw3ICsxMDQ2Myw3IEBAIGluZGV4 IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgLyogTWFrZSBhIGNvcHkgb2YgdGhlIGdpdmVuIFRZ UEUsIGV4Y2VwdCB0aGF0IHRoZSBwb2ludGVyICYgcmVmZXJlbmNlCiAgICAgdHlwZXMgYXJlIG5v dCBwcmVzZXJ2ZWQuCiAgICAgCi1AQCAtMjk3Myw2ICszMjI3LDIxNyBAQCBjb3B5X3R5cGUgKGNv bnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTI5NzMsNiArMzIyOCwyMTcgQEAgY29weV90eXBl IChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgCkBA IC0xMDU5Niw3ICsxMDY4MSw3IEBAIGluZGV4IDJmNzdkY2EuLjgxNDYxNzUgMTAwNjQ0CiAgCiAg LyogSGVscGVyIGZ1bmN0aW9ucyB0byBpbml0aWFsaXplIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyB0 eXBlcy4gICovCiAgCi1AQCAtMzQ2Myw2ICszOTI4LDExIEBAIHZvaWQKK0BAIC0zNDYzLDYgKzM5 MjksMTEgQEAgdm9pZAogIF9pbml0aWFsaXplX2dkYnR5cGVzICh2b2lkKQogIHsKICAgIGdkYnR5 cGVzX2RhdGEgPSBnZGJhcmNoX2RhdGFfcmVnaXN0ZXJfcG9zdF9pbml0IChnZGJ0eXBlc19wb3N0 X2luaXQpOwpAQCAtMTE1MzgsNyArMTE2MjMsNyBAQCBpbmRleCBjNjUwZTA3Li42NjBmZGY2IDEw MDY0NAogIAkJCQkJCSBjb25zdCBkb21haW5fZW51bSk7CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2xp bmVzcGVjLmMgYi9nZGIvbGluZXNwZWMuYwotaW5kZXggM2U5NDNhMS4uM2I4OTU2YyAxMDA2NDQK K2luZGV4IDNlOTQzYTEuLmI5NmQ0MjUgMTAwNjQ0CiAtLS0gYS9nZGIvbGluZXNwZWMuYwogKysr IGIvZ2RiL2xpbmVzcGVjLmMKIEBAIC0zMCw2ICszMCw3IEBACkBAIC0xMTU4NCwzNiArMTE2Njks MzMgQEAgaW5kZXggM2U5NDNhMS4uM2I4OTU2YyAxMDA2NDQKICAgIC8qIEtlZXAgYW55IHRlbXBs YXRlIHBhcmFtZXRlcnMgKi8KICAgIGlmICgqcCA9PSAnPCcpCiAgICAgIHAgPSBmaW5kX3RlbXBs YXRlX25hbWVfZW5kIChwKTsKLUBAIC0xMjU3LDcgKzEyNzgsMTAgQEAgZGVjb2RlX2NvbXBvdW5k IChjaGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBjaGFyICoqKmNhbm9uaWNhbCwKK0BA IC0xMjU3LDYgKzEyNzgsOSBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBm dW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAogICAgICAgIC8qIE1vdmUgcG9pbnRlciBh aGVhZCB0byBuZXh0IGRvdWJsZS1jb2xvbi4gICovCiAgICAgICAgd2hpbGUgKCpwICYmIChwWzBd ICE9ICcgJykgJiYgKHBbMF0gIT0gJ1x0JykgJiYgKHBbMF0gIT0gJ1wnJykpCiAgCXsKLS0JICBp ZiAocFswXSA9PSAnPCcpCi0rCSAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09 IGxhbmd1YWdlX2NwbHVzCi0rCSAgICAgICYmIHN0cm5jbXAgKHAsICJvcGVyYXRvciIsIDgpID09 IDApCisrCSAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdlX2Nw bHVzKQogKwkgICAgcCArPSBjcF92YWxpZGF0ZV9vcGVyYXRvciAocCk7Ci0rCSAgZWxzZSBpZiAo cFswXSA9PSAnPCcpCisrCisgCSAgaWYgKHBbMF0gPT0gJzwnKQogIAkgICAgewogIAkgICAgICB0 ZW1wX2VuZCA9IGZpbmRfdGVtcGxhdGVfbmFtZV9lbmQgKHApOwotIAkgICAgICBpZiAoIXRlbXBf ZW5kKQotQEAgLTEzMzQsNiArMTM1OCwxNiBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdw dHIsIGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLAorQEAgLTEzMzQsNiArMTM1 OCwxNSBAQCBkZWNvZGVfY29tcG91bmQgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXJzdGxpbmUs IGNoYXIgKioqY2Fub25pY2FsLAogIAkgIHdoaWxlICgqcCAmJiAqcCAhPSAnICcgJiYgKnAgIT0g J1x0JyAmJiAqcCAhPSAnLCcgJiYgKnAgIT0gJzonKQogIAkgICAgcCsrOwogIAkgIC8qIEF0IHRo aXMgcG9pbnQgcC0+IiIuICBTdHJpbmcgZW5kZWQuICAqLwotKwkgIC8qIE5vcGUuIEMrKyBvcGVy YXRvcnMgY291bGQgaGF2ZSBzcGFjZXMgaW4gdGhlbQorKwkgIC8qIE5vcGUsIEMrKyBvcGVyYXRv cnMgY291bGQgaGF2ZSBzcGFjZXMgaW4gdGhlbQogKwkgICAgICgiZm9vOjpvcGVyYXRvciA8IiBv ciAiZm9vOjpvcGVyYXRvciBkZWxldGUgW10iKS4KLSsJICAgICBJIGFwb2xvZ2l6ZSwgdGhpcyBp cyBhIGJpdCBoYWNreS4uLiAqLworKwkgICAgIEkgYXBvbG9naXplLCB0aGlzIGlzIGEgYml0IGhh Y2t5Li4uICAqLwogKwkgIGlmIChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5n dWFnZV9jcGx1cwotKwkgICAgICAmJiAqcCA9PSAnICcgJiYgcCAtIDggLSAqYXJncHRyICsgMSA+ IDAKLSsJICAgICAgJiYgc3RybmNtcCAocCAtIDgsICJvcGVyYXRvciIsIDgpID09IDApCisrCSAg ICAgICYmICpwID09ICcgJyAmJiBwIC0gOCAtICphcmdwdHIgKyAxID4gMCkKICsJICAgIHsKLSsJ ICAgICAgLyogVGhlIGFib3ZlIGxvb3AgaGFzIGFscmVhZHkgc3dhbGxvd2VkICJvcGVyYXRvciIg Ki8KKysJICAgICAgLyogVGhlIGFib3ZlIGxvb3AgaGFzIGFscmVhZHkgc3dhbGxvd2VkICJvcGVy YXRvciIuICAqLwogKwkgICAgICBwICs9IGNwX3ZhbGlkYXRlX29wZXJhdG9yIChwIC0gOCkgLSA4 OwogKwkgICAgfQogIAl9CiAgCiAgICAgICAgLyogQWxsb2NhdGUgb3VyIG93biBjb3B5IG9mIHRo ZSBzdWJzdHJpbmcgYmV0d2VlbiBhcmdwdHIgYW5kCi1AQCAtMTQwNyw2ICsxNDQxLDcgQEAgbG9v a3VwX3ByZWZpeF9zeW0gKGNoYXIgKiphcmdwdHIsIGNoYXIgKnApCitAQCAtMTQwNyw2ICsxNDQw LDcgQEAgbG9va3VwX3ByZWZpeF9zeW0gKGNoYXIgKiphcmdwdHIsIGNoYXIgKnApCiAgewogICAg Y2hhciAqcDE7CiAgICBjaGFyICpjb3B5OwpAQCAtMTE2MjEsNyArMTE3MDMsNyBAQCBpbmRleCAz ZTk0M2ExLi4zYjg5NTZjIDEwMDY0NAogIAogICAgLyogRXh0cmFjdCB0aGUgY2xhc3MgbmFtZS4g ICovCiAgICBwMSA9IHA7Ci1AQCAtMTQyNSw3ICsxNDYwLDI2IEBAIGxvb2t1cF9wcmVmaXhfc3lt IChjaGFyICoqYXJncHRyLCBjaGFyICpwKQorQEAgLTE0MjUsNyArMTQ1OSwyNiBAQCBsb29rdXBf cHJlZml4X3N5bSAoY2hhciAqKmFyZ3B0ciwgY2hhciAqcCkKICAgIC8qIEF0IHRoaXMgcG9pbnQg cDEtPiI6OmluQTo6ZnVuIiwgcC0+ImluQTo6ZnVuIiBjb3B5LT4iQUFBIiwKICAgICAgIGFyZ3B0 ci0+ImluQTo6ZnVuIiAqLwogIApAQCAtMTE2NDksNyArMTE3MzEsMzYgQEAgaW5kZXggM2U5NDNh MS4uM2I4OTU2YyAxMDA2NDQKICB9CiAgCiAgLyogVGhpcyBmaW5kcyB0aGUgbWV0aG9kIENPUFkg aW4gdGhlIGNsYXNzIHdob3NlIHR5cGUgaXMgVCBhbmQgd2hvc2UKLUBAIC0xNzgwLDcgKzE4MzQs NyBAQCBzeW1ib2xfZm91bmQgKGludCBmdW5maXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLCBj aGFyICpjb3B5LAorQEAgLTE0NzQsMjYgKzE1MjcsMTYgQEAgZmluZF9tZXRob2QgKGludCBmdW5m aXJzdGxpbmUsIGNoYXIgKioqY2Fub25pY2FsLCBjaGFyICpzYXZlZF9hcmcsCisgICAgIH0KKyAg IGVsc2UKKyAgICAgeworLSAgICAgIGNoYXIgKnRtcDsKKy0KKy0gICAgICBpZiAoaXNfb3BlcmF0 b3JfbmFtZSAoY29weSkpCistCXsKKy0JICB0bXAgPSAoY2hhciAqKSBhbGxvY2EgKHN0cmxlbiAo Y29weSArIDMpICsgOSk7CistCSAgc3RyY3B5ICh0bXAsICJvcGVyYXRvciAiKTsKKy0JICBzdHJj YXQgKHRtcCwgY29weSArIDMpOworLQl9CistICAgICAgZWxzZQorLQl0bXAgPSBjb3B5OworICAg ICAgIGlmIChub3RfZm91bmRfcHRyKQorICAgICAgICAgKm5vdF9mb3VuZF9wdHIgPSAxOworLSAg ICAgIGlmICh0bXBbMF0gPT0gJ34nKQorKyAgICAgIGlmIChjb3B5WzBdID09ICd+JykKKyAJY3Bs dXNwbHVzX2Vycm9yIChzYXZlZF9hcmcsCisgCQkJICJ0aGUgY2xhc3MgYCVzJyBkb2VzIG5vdCBo YXZlIGRlc3RydWN0b3IgZGVmaW5lZFxuIiwKKyAJCQkgU1lNQk9MX1BSSU5UX05BTUUgKHN5bV9j bGFzcykpOworICAgICAgIGVsc2UKKyAJY3BsdXNwbHVzX2Vycm9yIChzYXZlZF9hcmcsCisgCQkJ ICJ0aGUgY2xhc3MgJXMgZG9lcyBub3QgaGF2ZSBhbnkgbWV0aG9kIG5hbWVkICVzXG4iLAorLQkJ CSBTWU1CT0xfUFJJTlRfTkFNRSAoc3ltX2NsYXNzKSwgdG1wKTsKKysJCQkgU1lNQk9MX1BSSU5U X05BTUUgKHN5bV9jbGFzcyksIGNvcHkpOworICAgICB9CisgfQorIAorQEAgLTE3ODAsNyArMTgy Myw3IEBAIHN5bWJvbF9mb3VuZCAoaW50IGZ1bmZpcnN0bGluZSwgY2hhciAqKipjYW5vbmljYWws IGNoYXIgKmNvcHksCiAgCXsKICAJICBzdHJ1Y3QgYmxvY2t2ZWN0b3IgKmJ2ID0gQkxPQ0tWRUNU T1IgKFNZTUJPTF9TWU1UQUIgKHN5bSkpOwogIAkgIHN0cnVjdCBibG9jayAqYiA9IEJMT0NLVkVD VE9SX0JMT0NLIChidiwgU1RBVElDX0JMT0NLKTsKQEAgLTEyNTY1LDcgKzEyNjc2LDcgQEAgaW5k ZXggMDAwMDAwMC4uNTY1NDU0NgogKyAgICAgICAgcmV0dXJuIHJlc3VsdAogZGlmZiAtLWdpdCBh L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIv RnJhbWVXcmFwcGVyLnB5CiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMzlm ODI0NgoraW5kZXggMDAwMDAwMC4uYjc5MGE1NAogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3B5 dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQogQEAgLTAsMCArMSwxMTIgQEAKQEAgLTEyNjAx LDcgKzEyNzEyLDcgQEAgaW5kZXggMDAwMDAwMC4uMzlmODI0NgogKwogKyAgICAgICAgc3RyZWFt LndyaXRlIChzeW0ucHJpbnRfbmFtZSArICI9IikKICsgICAgICAgIHRyeToKLSsgICAgICAgICAg ICB2YWwgPSBzZWxmLmZyYW1lLnJlYWRfdmFyIChzeW0pCisrICAgICAgICAgICAgdmFsID0gc2Vs Zi5yZWFkX3ZhciAoc3ltKQogKyAgICAgICAgICAgIGlmIHZhbCAhPSBOb25lOgogKyAgICAgICAg ICAgICAgICB2YWwgPSBzdHIgKHZhbCkKICsgICAgICAgICMgRklYTUU6IHdvdWxkIGJlIG5pY2Ug dG8gaGF2ZSBhIG1vcmUgcHJlY2lzZSBleGNlcHRpb24gaGVyZS4KQEAgLTEyNjQ2LDIxICsxMjc1 NywyMSBAQCBpbmRleCAwMDAwMDAwLi4zOWY4MjQ2CiArICAgICMgRklYTUU6IHRoaXMgc2hvdWxk IHByb2JhYmx5IGp1c3QgYmUgYSBtZXRob2Qgb24gZ2RiLkZyYW1lLgogKyAgICAjIEJ1dCB0aGVu IHdlIG5lZWQgc3RyZWFtIHdyYXBwZXJzLgogKyAgICBkZWYgZGVzY3JpYmUgKHNlbGYsIHN0cmVh bSwgZnVsbCk6Ci0rICAgICAgICBpZiBzZWxmLmZyYW1lLnR5cGUgKCkgPT0gZ2RiLkRVTU1ZX0ZS QU1FOgorKyAgICAgICAgaWYgc2VsZi50eXBlICgpID09IGdkYi5EVU1NWV9GUkFNRToKICsgICAg ICAgICAgICBzdHJlYW0ud3JpdGUgKCIgPGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGdkYj5cbiIpCi0r ICAgICAgICBlbGlmIHNlbGYuZnJhbWUudHlwZSAoKSA9PSBnZGIuU0lHVFJBTVBfRlJBTUU6Cisr ICAgICAgICBlbGlmIHNlbGYudHlwZSAoKSA9PSBnZGIuU0lHVFJBTVBfRlJBTUU6CiArICAgICAg ICAgICAgc3RyZWFtLndyaXRlICgiIDxzaWduYWwgaGFuZGxlciBjYWxsZWQ+XG4iKQogKyAgICAg ICAgZWxzZToKLSsgICAgICAgICAgICBzYWwgPSBzZWxmLmZyYW1lLmZpbmRfc2FsICgpCi0rICAg ICAgICAgICAgcGMgPSBzZWxmLmZyYW1lLnBjICgpCi0rICAgICAgICAgICAgbmFtZSA9IHNlbGYu ZnJhbWUubmFtZSAoKQorKyAgICAgICAgICAgIHNhbCA9IHNlbGYuZmluZF9zYWwgKCkKKysgICAg ICAgICAgICBwYyA9IHNlbGYucGMgKCkKKysgICAgICAgICAgICBuYW1lID0gc2VsZi5uYW1lICgp CiArICAgICAgICAgICAgaWYgbm90IG5hbWU6CiArICAgICAgICAgICAgICAgIG5hbWUgPSAiPz8i CiArICAgICAgICAgICAgaWYgcGMgIT0gc2FsLnBjIG9yIG5vdCBzYWwuc3ltdGFiOgogKyAgICAg ICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIgMHglMDh4IGluIiAlIHBjKQogKyAgICAgICAgICAg IHN0cmVhbS53cml0ZSAoIiAiICsgbmFtZSArICIgKCIpCiArCi0rICAgICAgICAgICAgZnVuYyA9 IHNlbGYuZnJhbWUuZnVuY3Rpb24gKCkKKysgICAgICAgICAgICBmdW5jID0gc2VsZi5mdW5jdGlv biAoKQogKyAgICAgICAgICAgIHNlbGYucHJpbnRfZnJhbWVfYXJncyAoc3RyZWFtLCBmdW5jKQog KwogKyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAoIikiKQpAQCAtMTI2NjksNyArMTI3ODAsNyBA QCBpbmRleCAwMDAwMDAwLi4zOWY4MjQ2CiArICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZSAo IiBhdCAiICsgc2FsLnN5bXRhYi5maWxlbmFtZSkKICsgICAgICAgICAgICAgICAgc3RyZWFtLndy aXRlICgiOiIgKyBzdHIgKHNhbC5saW5lKSkKICsKLSsgICAgICAgICAgICBpZiBub3Qgc2VsZi5m cmFtZS5uYW1lICgpIG9yIChub3Qgc2FsLnN5bXRhYiBvciBub3Qgc2FsLnN5bXRhYi5maWxlbmFt ZSk6CisrICAgICAgICAgICAgaWYgbm90IHNlbGYubmFtZSAoKSBvciAobm90IHNhbC5zeW10YWIg b3Igbm90IHNhbC5zeW10YWIuZmlsZW5hbWUpOgogKyAgICAgICAgICAgICAgICBsaWIgPSBnZGIu c29saWJfYWRkcmVzcyAocGMpCiArICAgICAgICAgICAgICAgIGlmIGxpYjoKICsgICAgICAgICAg ICAgICAgICAgIHN0cmVhbS53cml0ZSAoIiBmcm9tICIgKyBsaWIpCkBAIC0xNzkwMyw3ICsxODAx NCw3IEBAIGluZGV4IDQ5YzA0MzcuLjg0YTQ3NmUgMTAwNjQ0CiArICByZXR1cm4gMTsKICt9CiBk aWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5j Ci1pbmRleCA3MTRhYTExLi45ZmExYzQ0IDEwMDY0NAoraW5kZXggNThiY2VlMy4uYjJlN2I3ZCAx MDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHktdmFsdWUuYwogKysrIGIvZ2RiL3B5dGhvbi9weS12 YWx1ZS5jCiBAQCAtMjUsNiArMjUsNyBAQApAQCAtMTc5MjUsNyArMTgwMzYsNyBAQCBpbmRleCA3 MTRhYTExLi45ZmExYzQ0IDEwMDY0NAogICNkZWZpbmUgYnVpbHRpbl90eXBlX3B5Ym9vbCBcCiAg ICBsYW5ndWFnZV9ib29sX3R5cGUgKHB5dGhvbl9sYW5ndWFnZSwgcHl0aG9uX2dkYmFyY2gpCiAg Ci1AQCAtOTAyLDcgKzkwNywzNCBAQCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVj dCAqb2JqKQorQEAgLTkxMyw3ICs5MTgsMzQgQEAgY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAo UHlPYmplY3QgKm9iaikKICAJewogIAkgIExPTkdFU1QgbCA9IFB5TG9uZ19Bc0xvbmdMb25nIChv YmopOwogIApAQCAtMTc5NjEsNyArMTgwNzIsNyBAQCBpbmRleCA3MTRhYTExLi45ZmExYzQ0IDEw MDY0NAogIAkgICAgdmFsdWUgPSB2YWx1ZV9mcm9tX2xvbmdlc3QgKGJ1aWx0aW5fdHlwZV9weWxv bmcsIGwpOwogIAl9CiAgICAgICAgZWxzZSBpZiAoUHlGbG9hdF9DaGVjayAob2JqKSkKLUBAIC05 NjEsNiArOTkzLDI1IEBAIGdkYnB5X2hpc3RvcnkgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAq YXJncykKK0BAIC05NzIsNiArMTAwNCwyNSBAQCBnZGJweV9oaXN0b3J5IChQeU9iamVjdCAqc2Vs ZiwgUHlPYmplY3QgKmFyZ3MpCiAgICByZXR1cm4gdmFsdWVfdG9fdmFsdWVfb2JqZWN0IChyZXNf dmFsKTsKICB9CiAgCkBAIC0xNzk4Nyw3ICsxODA5OCw3IEBAIGluZGV4IDcxNGFhMTEuLjlmYTFj NDQgMTAwNjQ0CiAgdm9pZAogIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQogIHsKLUBA IC05NzEsNiArMTAyMiw4IEBAIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQorQEAgLTk4 Miw2ICsxMDMzLDggQEAgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpCiAgICBQeU1vZHVs ZV9BZGRPYmplY3QgKGdkYl9tb2R1bGUsICJWYWx1ZSIsIChQeU9iamVjdCAqKSAmdmFsdWVfb2Jq ZWN0X3R5cGUpOwogIAogICAgdmFsdWVzX2luX3B5dGhvbiA9IE5VTEw7CkBAIC0xODc0OSw3ICsx ODg2MCw3IEBAIGluZGV4IDZjZmFhODUuLjY4YWFkYzAgMTAwNjQ0CiAgCiAgZXh0ZXJuIGluaXRp YWxpemVfZmlsZV9mdHlwZSBfaW5pdGlhbGl6ZV9zdnI0X3NvbGliOyAvKiAtV21pc3NpbmctcHJv dG90eXBlcyAqLwogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi5jIGIvZ2RiL3NvbGliLmMKLWluZGV4 IGM3ZmQwZmMuLjZmMzE4NTIgMTAwNjQ0CitpbmRleCBhMmFkMGM0Li4zNTc0ZTYyIDEwMDY0NAog LS0tIGEvZ2RiL3NvbGliLmMKICsrKyBiL2dkYi9zb2xpYi5jCiBAQCAtMTEyNywxMyArMTEyNywx MiBAQCBzaG93X2F1dG9fc29saWJfYWRkIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21f dHR5LApAQCAtMjE2OTUsMTAgKzIxODA2LDMwIEBAIGluZGV4IDQwOTVjY2YuLjAzYzA3ZDUgMTAw NjQ0CiArZ2RiX3Rlc3QgImJyZWFrICokZnVuYzJfbmFtZSIgXAogICAgICAiQnJlYWtwb2ludCAk ZGVjaW1hbCBhdCAweDIuLi4uOiBmaWxlIC4qIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLmNwL2NwbHVzZnVuY3MuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNzLmNj Ci1pbmRleCA3ZjAzM2Q2Li4xYTUwYTMyIDEwMDY0NAoraW5kZXggN2YwMzNkNi4uMTFkYmEwNiAx MDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVuY3MuY2MKICsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL2NwbHVzZnVuY3MuY2MKLUBAIC0xOTEsNiArMTkxLDEyIEBAIGNo YXIgKglkbV90eXBlX2NoYXJfc3RhciAoY2hhciAqIHApCQl7IHJldHVybiBwOyB9CitAQCAtNDYs NyArNDYsOSBAQCBwdWJsaWM6CisgICB2b2lkICBvcGVyYXRvciBbXSAgICAgKGZvbyYpOworICAg dm9pZCAgb3BlcmF0b3IgKCkgICAgIChmb28mKTsKKyAgIHZvaWQqIG9wZXJhdG9yIG5ldyAgICAo c2l6ZV90KSB0aHJvdyAoKTsKKysgIHZvaWQqIG9wZXJhdG9yIG5ld1tdICAoc2l6ZV90KSB0aHJv dyAoKTsKKyAgIHZvaWQgIG9wZXJhdG9yIGRlbGV0ZSAodm9pZCAqKTsKKysgIHZvaWQgIG9wZXJh dG9yIGRlbGV0ZVtdICh2b2lkICopOworICAgLyoqLyAgb3BlcmF0b3IgaW50ICAgICgpOworICAg LyoqLyAgb3BlcmF0b3IgY2hhciogICgpOworIAorQEAgLTExNSw3ICsxMTcsOSBAQCB2b2lkICBm b286Om9wZXJhdG9yIC0+KiAgICAoZm9vJiBhZm9vKSB7IGFmb28uaWZvbyA9IDA7IH0KKyB2b2lk ICBmb286Om9wZXJhdG9yIFtdICAgICAoZm9vJiBhZm9vKSB7IGFmb28uaWZvbyA9IDA7IH0KKyB2 b2lkICBmb286Om9wZXJhdG9yICgpICAgICAoZm9vJiBhZm9vKSB7IGFmb28uaWZvbyA9IDA7IH0K KyB2b2lkKiBmb286Om9wZXJhdG9yIG5ldyAgICAoc2l6ZV90IGl2YWwpIHRocm93ICgpIHsgaXZh bCA9IDA7IHJldHVybiAwOyB9Cisrdm9pZCogZm9vOjpvcGVyYXRvciBuZXdbXSAgICAoc2l6ZV90 IGl2YWwpIHRocm93ICgpIHsgaXZhbCA9IDA7IHJldHVybiAwOyB9Cisgdm9pZCAgZm9vOjpvcGVy YXRvciBkZWxldGUgKHZvaWQgKnB0cikgeyBwdHIgPSAwOyB9Cisrdm9pZCAgZm9vOjpvcGVyYXRv ciBkZWxldGVbXSAodm9pZCAqcHRyKSB7IHB0ciA9IDA7IH0KKyAvKiovICBmb286Om9wZXJhdG9y IGludCAgICAoKSB7IHJldHVybiAwOyB9CisgLyoqLyAgZm9vOjpvcGVyYXRvciBjaGFyKiAgKCkg eyByZXR1cm4gMDsgfQorIAorQEAgLTE5MSw2ICsxOTUsMTIgQEAgY2hhciAqCWRtX3R5cGVfY2hh cl9zdGFyIChjaGFyICogcCkJCXsgcmV0dXJuIHA7IH0KICBpbnQJZG1fdHlwZV9mb29fcmVmIChm b28gJiBmb28pCQl7IHJldHVybiBmb28uaWZvbzsgfQogIGludCAqCWRtX3R5cGVfaW50X3N0YXIg KGludCAqIHApCQl7IHJldHVybiBwOyB9CiAgbG9uZyAqCWRtX3R5cGVfbG9uZ19zdGFyIChsb25n ICogcCkJCXsgcmV0dXJuIHA7IH0KQEAgLTIxNzEyLDExICsyMTg0MywxNSBAQCBpbmRleCA3ZjAz M2Q2Li4xYTUwYTMyIDEwMDY0NAogK3R5cGVkZWYgaW50IG15aW50OwogK2ludAlkbV90eXBlX3R5 cGVkZWYgKG15aW50IGkpCQl7IHJldHVybiBpOyB9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvY3BsdXNmdW5jcy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNz LmV4cAotaW5kZXggNWUwODc2OC4uOGM4ZTAzOCAxMDA2NDQKK2luZGV4IDVlMDg3NjguLjEwZmZk ZjAgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcGx1c2Z1bmNzLmV4cAogKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvY3BsdXNmdW5jcy5leHAKLUBAIC02Niw5ICs2NiwyNSBA QCBzZXQgZG1fdHlwZV91bnNpZ25lZF9pbnQJInVuc2lnbmVkIgotIHNldCBkbV90eXBlX3ZvaWQJ CSIiCitAQCAtNjMsMTIgKzYzLDI4IEBAIHNldCBkbV90eXBlX2Zvb19yZWYgCQkiZm9vJiIKKyBz ZXQgZG1fdHlwZV9pbnRfc3RhcgkJImludCoiCisgc2V0IGRtX3R5cGVfbG9uZ19zdGFyCQkibG9u ZyoiCisgc2V0IGRtX3R5cGVfdW5zaWduZWRfaW50CSJ1bnNpZ25lZCIKKy1zZXQgZG1fdHlwZV92 b2lkCQkiIgorK3NldCBkbV90eXBlX3ZvaWQJCSJ2b2lkIgogIHNldCBkbV90eXBlX3ZvaWRfc3Rh cgkJInZvaWQqIgogIAogKyMgU29tZSBvdGhlciB2YWdhcmllcyBvZiBHREIncyB0eXBlIHByaW50 aW5nIG1hY2hpbmVyeS4gIFRoZSBpbnRlZ2VyIHR5cGVzCkBAIC0yMTc0MSw3ICsyMTg3Niw3IEBA IGluZGV4IDVlMDg3NjguLjhjOGUwMzggMTAwNjQ0CiAgICAgIGdsb2JhbCBkbV90eXBlX2NoYXJf c3RhcgogICAgICBnbG9iYWwgZG1fdHlwZV9jaGFyX3N0YXJfcXVvdGVkCiAgICAgIGdsb2JhbCBk bV90eXBlX2Zvb19yZWYKLUBAIC03Nyw2ICs5MywxMSBAQCBwcm9jIHByb2JlX2RlbWFuZ2xlciB7 IH0geworQEAgLTc3LDggKzkzLDEzIEBAIHByb2MgcHJvYmVfZGVtYW5nbGVyIHsgfSB7CiAgICAg IGdsb2JhbCBkbV90eXBlX3Vuc2lnbmVkX2ludAogICAgICBnbG9iYWwgZG1fdHlwZV92b2lkCiAg ICAgIGdsb2JhbCBkbV90eXBlX3ZvaWRfc3RhcgpAQCAtMjE3NTEsMTMgKzIxODg2LDE2IEBAIGlu ZGV4IDVlMDg3NjguLjhjOGUwMzggMTAwNjQ0CiArICAgIGdsb2JhbCBkbV90eXBlX3Vuc2lnbmVk X2xvbmcKICsgICAgZ2xvYmFsIGRtX3R5cGVfdHlwZWRlZgogIAotICAgICBzZW5kX2dkYiAicHJp bnQgJidmb286Om9wZXJhdG9yLChmb28mKSdcbiIKKy0gICAgc2VuZF9nZGIgInByaW50ICYnZm9v OjpvcGVyYXRvciwoZm9vJiknXG4iCisrICAgIHNlbmRfZ2RiICJwcmludCAmZm9vOjpvcGVyYXRv ciwoZm9vJilcbiIKICAgICAgZ2RiX2V4cGVjdCB7CisgCS1yZSAiLipmb286Om9wZXJhdG9yLCBc XCguKmZvby4qJi4qXFwpLipcclxuJGdkYl9wcm9tcHQgJCIgeworIAkgICAgIyB2MiBkZW1hbmds ZXIKIEBAIC05Nyw2ICsxMTgsMjYgQEAgcHJvYyBwcm9iZV9kZW1hbmdsZXIgeyB9IHsKICAJfQog ICAgICB9CiAgCi0rICAgIHNlbmRfZ2RiICJwcmludCAmJ2Zvbzo6b3BlcmF0b3IgY2hhciooKSdc biIKKysgICAgc2VuZF9nZGIgInByaW50ICZmb286Om9wZXJhdG9yIGNoYXIqKCRkbV90eXBlX3Zv aWQpXG4iCiArICAgIGdkYl9leHBlY3QgewogKwktcmUgIi4qZm9vOjpvcGVyYXRvciBjaGFyIFxc KlxcKHZvaWRcXCkuKlxyXG4kZ2RiX3Byb21wdCAkIiB7CiArCSAgICAjIHYyIGRlbWFuZ2xlciBv ciBHREIgdHlwZSBwcmludGVyCkBAIC0yMTg5NCw3ICsyMjAzMiw1MCBAQCBpbmRleCA1ZTA4NzY4 Li44YzhlMDM4IDEwMDY0NAogIH0KICAKICAjCi1AQCAtMzQ1LDggKzQ4Niw5IEBAIHByb2MgcHJp bnRfYWRkciB7IG5hbWUgfSB7CitAQCAtMjQxLDYgKzM4Miw3IEBAIHByb2MgaW5mb19mdW5jX3Jl Z2V4cCB7IG5hbWUgZGVtYW5nbGVkIH0geworICAgICBnbG9iYWwgZ2RiX3Byb21wdAorIAorICAg ICBzZW5kX2dkYiAiaW5mbyBmdW5jdGlvbiAkbmFtZVxuIgorKyAgICBzZXQgZGVtYW5nbGVkIFty ZWdzdWIge1xcXCh2b2lkXFxcKX0gJGRlbWFuZ2xlZCB7XChcKX1dCisgICAgIGdkYl9leHBlY3Qg eworIAktcmUgIi4qRmlsZSAuKjpcclxuKGNsYXNzIHwpJGRlbWFuZ2xlZFxyXG4uKiRnZGJfcHJv bXB0ICQiIHsKKyAJICAgIHBhc3MgImluZm8gZnVuY3Rpb24gZm9yIFwiJG5hbWVcIiIKK0BAIC0y NzcsMTYgKzQxOSwxNiBAQCBwcm9jIHByaW50X2FkZHJfMiB7IG5hbWUgZ29vZCB9IHsKKyAKKyAg ICAgc2V0IGdvb2RfcGF0dGVybiBbc3RyaW5nX3RvX3JlZ2V4cCAkZ29vZF0KKyAKKy0gICAgc2Vu ZF9nZGIgInByaW50ICYnJG5hbWUnXG4iCisrICAgIHNlbmRfZ2RiICJwcmludCAmJG5hbWVcbiIK KyAgICAgZ2RiX2V4cGVjdCB7CisgCS1yZSAiLiogPSAuKiAkaGV4IDwkZ29vZF9wYXR0ZXJuPlxy XG4kZ2RiX3Byb21wdCAkIiB7CistCSAgICBwYXNzICJwcmludCAmJyRuYW1lJyIKKysJICAgIHBh c3MgInByaW50ICYkbmFtZSIKKyAJfQorIAktcmUgIi4qJGdkYl9wcm9tcHQgJCIgeworLQkgICAg ZmFpbCAicHJpbnQgJickbmFtZSciCisrCSAgICBmYWlsICJwcmludCAmJG5hbWUiCisgCX0KKyAJ dGltZW91dCB7CistCSAgICBmYWlsICJwcmludCAmJyRuYW1lJyAodGltZW91dCkiCisrCSAgICBm YWlsICJwcmludCAmJG5hbWUgKHRpbWVvdXQpIgorIAl9CisgICAgIH0KKyB9CitAQCAtMzI3LDcg KzQ2OSwxMiBAQCBwcm9jIHByaW50X2FkZHJfMl9rZmFpbCB7IG5hbWUgZ29vZCBiYWQgYnVnaWQg fSB7CisgIworIAorIHByb2MgcHJpbnRfYWRkciB7IG5hbWUgfSB7CistICAgIHByaW50X2FkZHJf MiAiJG5hbWUiICIkbmFtZSIKKysgICAgc2V0IGV4cGVjdGVkIFtyZWdzdWIge1wodm9pZFwpfSAk bmFtZSB7KCl9XQorKyAgICBpZiB7W3N0cmluZyBmaXJzdCAiOjoiICRuYW1lXSA9PSAtMX0gewor KwkjIEMgZnVuY3Rpb24gLS0gbXVzdCBiZSBxdXRvZWQKKysJc2V0IG5hbWUgIickbmFtZSciCisr ICAgIH0KKysgICAgcHJpbnRfYWRkcl8yICIkbmFtZSIgJGV4cGVjdGVkCisgfQorIAorICMKK0BA IC0zNDUsOCArNDkyLDkgQEAgcHJvYyBwcmludF9hZGRyIHsgbmFtZSB9IHsKICAKICBwcm9jIHRl c3RfbG9va3VwX29wZXJhdG9yX2Z1bmN0aW9ucyB7fSB7CiAgICAgIGdsb2JhbCBkbV9vcGVyYXRv cl9jb21tYQpAQCAtMjE5MDUsNyArMjIwODYsNyBAQCBpbmRleCA1ZTA4NzY4Li44YzhlMDM4IDEw MDY0NAogICAgICBnbG9iYWwgZG1fdHlwZV9mb29fcmVmCiAgICAgIGdsb2JhbCBkbV90eXBlX3Zv aWQKICAgICAgZ2xvYmFsIGRtX3R5cGVfdm9pZF9zdGFyCi1AQCAtNDA0LDggKzU0Niw4IEBAIHBy b2MgdGVzdF9sb29rdXBfb3BlcmF0b3JfZnVuY3Rpb25zIHt9IHsKK0BAIC00MDQsOCArNTUyLDgg QEAgcHJvYyB0ZXN0X2xvb2t1cF9vcGVyYXRvcl9mdW5jdGlvbnMge30gewogIAogICAgICBpbmZv X2Z1bmMgIm9wZXJhdG9yIGludCgiCSJpbnQgZm9vOjpvcGVyYXRvciBpbnQoJGRtX3R5cGVfdm9p ZCk7IgogICAgICBpbmZvX2Z1bmMgIm9wZXJhdG9yKCkoIgkidm9pZCBmb286Om9wZXJhdG9yKCko JGRtX3R5cGVfZm9vX3JlZik7IgpAQCAtMjE5MTYsNyArMjIwOTcsNyBAQCBpbmRleCA1ZTA4NzY4 Li44YzhlMDM4IDEwMDY0NAogIAogIH0KICAKLUBAIC00MjAsNiArNTYyLDcgQEAgcHJvYyB0ZXN0 X3BhZGRyX29wZXJhdG9yX2Z1bmN0aW9ucyB7fSB7CitAQCAtNDIwLDYgKzU2OCw3IEBAIHByb2Mg dGVzdF9wYWRkcl9vcGVyYXRvcl9mdW5jdGlvbnMge30gewogICAgICBnbG9iYWwgZG1fdHlwZV91 bnNpZ25lZF9pbnQKICAgICAgZ2xvYmFsIGRtX3R5cGVfdm9pZAogICAgICBnbG9iYWwgZG1fdHlw ZV92b2lkX3N0YXIKQEAgLTIxOTI0LDcgKzIyMTA1LDIxIEBAIGluZGV4IDVlMDg3NjguLjhjOGUw MzggMTAwNjQ0CiAgCiAgICAgIHByaW50X2FkZHIgImZvbzo6b3BlcmF0b3IqKCRkbV90eXBlX2Zv b19yZWYpIgogICAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yJSgkZG1fdHlwZV9mb29fcmVm KSIKLUBAIC00NzAsNyArNjEzLDcgQEAgcHJvYyB0ZXN0X3BhZGRyX29wZXJhdG9yX2Z1bmN0aW9u cyB7fSB7CitAQCAtNDYwLDE3ICs2MDksMjAgQEAgcHJvYyB0ZXN0X3BhZGRyX29wZXJhdG9yX2Z1 bmN0aW9ucyB7fSB7CisgICAgIHByaW50X2FkZHIgImZvbzo6b3BlcmF0b3JcW1xdKCRkbV90eXBl X2Zvb19yZWYpIgorICAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yKCkoJGRtX3R5cGVfZm9v X3JlZikiCisgCistICAgIGdkYl90ZXN0ICJwcmludCAmJ2Zvbzo6b3BlcmF0b3IgbmV3JyIgXAor KyAgICBnZGJfdGVzdCAicHJpbnQgJmZvbzo6b3BlcmF0b3IgbmV3IiBcCisgCSIgPSAuKiAkaGV4 IDxmb286Om9wZXJhdG9yIG5ld1xcKC4qXFwpKHwgc3RhdGljKT4iCisrICAgIGdkYl90ZXN0ICJw cmludCAmZm9vOjpvcGVyYXRvciBuZXdcW1xdIiBcCisrCSIgPSAuKiAkaGV4IDxmb286Om9wZXJh dG9yIG5ld1xcXFtcXFxdXFwoLipcXCkofCBzdGF0aWMpPiIgICAgCisgICAgIGlmIHsgISRocF9h Q0NfY29tcGlsZXIgfSB7CisgCXByaW50X2FkZHIgImZvbzo6b3BlcmF0b3IgZGVsZXRlKCRkbV90 eXBlX3ZvaWRfc3RhcikiCisrCXByaW50X2FkZHIgImZvbzo6b3BlcmF0b3IgZGVsZXRlW10oJGRt X3R5cGVfdm9pZF9zdGFyKSIKKyAgICAgfSBlbHNlIHsKKyAJZ2RiX3Rlc3QgInByaW50ICYnZm9v OjpvcGVyYXRvciBkZWxldGUoJGRtX3R5cGVfdm9pZF9zdGFyKSBzdGF0aWMnIiBcCisgCSAgICAi ID0gLiooMHhcWzAtOWEtZlxdK3wpIDxmb286Om9wZXJhdG9yIGRlbGV0ZS4qPiIKICAgICAgfQog IAogICAgICBwcmludF9hZGRyICJmb286Om9wZXJhdG9yIGludCgkZG1fdHlwZV92b2lkKSIKQEAg LTIxOTMzLDcgKzIyMTI4LDcgQEAgaW5kZXggNWUwODc2OC4uOGM4ZTAzOCAxMDA2NDQKICB9CiAg CiAgIwotQEAgLTQ4MCwxNyArNjIzLDIxIEBAIHByb2MgdGVzdF9wYWRkcl9vcGVyYXRvcl9mdW5j dGlvbnMge30geworQEAgLTQ4MCwxNyArNjMyLDIxIEBAIHByb2MgdGVzdF9wYWRkcl9vcGVyYXRv cl9mdW5jdGlvbnMge30gewogIHByb2MgdGVzdF9wYWRkcl9vdmVybG9hZGVkX2Z1bmN0aW9ucyB7 fSB7CiAgICAgIGdsb2JhbCBkbV90eXBlX3Vuc2lnbmVkX2ludAogICAgICBnbG9iYWwgZG1fdHlw ZV92b2lkCkBAIC0yMTk1OSw3ICsyMjE1NCw3IEBAIGluZGV4IDVlMDg3NjguLjhjOGUwMzggMTAw NjQ0CiAgICAgIHByaW50X2FkZHIgIm92ZXJsb2FkMWFyZyhmbG9hdCkiCiAgICAgIHByaW50X2Fk ZHIgIm92ZXJsb2FkMWFyZyhkb3VibGUpIgogIAotQEAgLTUxMywxNyArNjYwLDMxIEBAIHByb2Mg dGVzdF9wYWRkcl9oYWlyeV9mdW5jdGlvbnMge30geworQEAgLTUxMywxNyArNjY5LDMxIEBAIHBy b2MgdGVzdF9wYWRkcl9oYWlyeV9mdW5jdGlvbnMge30gewogICAgICBnbG9iYWwgZG1fdHlwZV9j aGFyX3N0YXIKICAgICAgZ2xvYmFsIGRtX3R5cGVfaW50X3N0YXIKICAgICAgZ2xvYmFsIGRtX3R5 cGVfbG9uZ19zdGFyCkBAIC0yNTU5Miw3ICsyNTc4Nyw3IEBAIGluZGV4IGE2N2VhYTMuLjUzODBj MGYgMTAwNjQ0CiArCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC5ibG9j ayAoKSIgIjxnZGIuQmxvY2sgb2JqZWN0IGF0IDB4XFtcWzp4ZGlnaXQ6XF1cXSs+IiAidGVzdCBG cmFtZS5ibG9jayIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVu Y3Rpb24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0aW9uLmV4cAotaW5k ZXggN2ZlY2EyYi4uNGFlNTE5ZiAxMDA2NDQKK2luZGV4IDMwZmRlN2QuLjE0Y2Q5MGMgMTAwNjQ0 CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCiArKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCiBAQCAtMjAsMzYgKzIwLDE1 IEBAIGlmICR0cmFjZWxldmVsIHRoZW4gewoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNw ZWMKaW5kZXggOWEyZjNlZS4uYTgwOTAwYyAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2Ri LnNwZWMKQEAgLTEwLDcgKzEwLDcgQEAgTmFtZTogZ2RiJXs/X3dpdGhfZGVidWc6LWRlYnVnfQog IyBTZXQgdmVyc2lvbiB0byBjb250ZW50cyBvZiBnZGIvdmVyc2lvbi5pbi4KICMgTk9URTogdGhl IEZTRiBnZGIgdmVyc2lvbnMgYXJlIG51bWJlcmVkIE4uTSBmb3Igb2ZmaWNpYWwgcmVsZWFzZXMs IGxpa2UgNi4zIAogIyBhbmQsIHNpbmNlIEphbnVhcnkgMjAwNSwgWC5ZLlouZGF0ZSBmb3IgZGFp bHkgc25hcHNob3RzLCBsaWtlIDYuMy41MC4yMDA1MDExMiAjIChkYWlseSBzbmFwc2hvdCBmcm9t IG1haWxpbmUpLCBvciA2LjMuMC4yMDA0MDExMiAoaGVhZCBvZiB0aGUgcmVsZWFzZSBicmFuY2gp LgotVmVyc2lvbjogNi44LjkxLjIwMDkwOTIxCitWZXJzaW9uOiA2LjguOTEuMjAwOTA5MjUKIAog IyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwg c3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBz dGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCkBA IC0yMjAsNyArMjIwLDcgQEAgUGF0Y2gyMjk6IGdkYi02LjMtYnoxNDA1MzItcHBjLXVud2luZGlu Zy10ZXN0LnBhdGNoCiBQYXRjaDIzMTogZ2RiLTYuMy1iejIwMjY4OS1leGVjLWZyb20tcHRocmVh ZC10ZXN0LnBhdGNoCiAKICMgQmFja3BvcnRlZCBwb3N0IGdkYi02LjguNTAuMjAwOTA5OTEgc25h cHNob3QgZml4dXBzLgotUGF0Y2gyMzI6IGdkYi02LjguNTAuMjAwOTA5MjEtdXBzdHJlYW0ucGF0 Y2gKKyNQYXRjaDIzMjogZ2RiLTYuOC41MC4yMDA5MDkyMS11cHN0cmVhbS5wYXRjaAogCiAjIFRl c3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNzZW1ibHkgKEJaIDIz MDAwMCkuCiBQYXRjaDIzNDogZ2RiLTYuNi1iejIzMDAwMC1wb3dlcjYtZGlzYXNzZW1ibHktdGVz dC5wYXRjaApAQCAtNDUzLDcgKzQ1Myw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhw LmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKIAogJWlmIDAleyE/X3dpdGhfdXBzdHJlYW06 MX0KIAotJXBhdGNoMjMyIC1wMQorI3BhdGNoMjMyIC1wMQogJXBhdGNoMzQ5IC1wMQogJXBhdGNo MSAtcDEKICVwYXRjaDMgLXAxCkBAIC04NDcsNiArODQ3LDEyIEBAIGZpCiAlZW5kaWYKIAogJWNo YW5nZWxvZworKiBGcmkgU2VwIDI1IDIwMDkgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+IC0gNi44LjkxLjIwMDkwOTI1LTEKKy0gVXBncmFkZSB0byB0aGUgRlNGIEdE QiBnZGItNy4wIHNuYXBzaG90OiA2LjguOTEuMjAwOTA5MjUKKy0gYXJjaGVyLWphbmtyYXRvY2h2 aWwtZmVkb3JhMTIgY29tbWl0OiA0MzM4ZWE4NWM3OTgwMDdjMzI1OTQwMzJmNjAyZGI5ZmQyMzBl YmE5CisgIC0gW3B5dGhvbl0gRG9uJ3QgZGlyZWN0bHkgcmVmZXJlbmNlIHNlbGYuZnJhbWUgKFRv bSBUcm9tZXkpLgorICAtIFtleHByXSBVcGRhdGVzIGZyb20gYnJhbmNoIChLZWl0aCBTZWl0eiku CisKICogTW9uIFNlcCAyMSAyMDA5IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPiAtIDYuOC45MS4yMDA5MDkyMS0xCiAtIFVwZ3JhZGUgdG8gdGhlIEZTRiBHREIgZ2Ri LTcuMCBzbmFwc2hvdDogNi44LjkxLjIwMDkwOTIxCiAtIGFyY2hlci1qYW5rcmF0b2NodmlsLWZl ZG9yYTEyIGNvbW1pdDogMGQ1YzM4ZGQ4OTA1MGMwZWUxY2YwNDk2NTZmMTc3YzE3MGQ2NzVkNAoK ZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDdkMWY0YjMuLmNjYjNiZmQgMTAw NjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDFlM2EyNjA0 MGRjZGQzNTc5ZDc1OTY3MDg1ZWI5MmI5ICBsaWJzdGRjKystdjMtcHl0aG9uLXIxNTE3OTgudGFy Lnh6Ci02N2I1MGE3OGQwMzIwMGM2NzE0Y2FmZDg1YjgwNDRlOCAgZ2RiLTYuOC45MS4yMDA5MDky MS50YXIuYnoyCitiNmZmOWFhNGM3OGNhNDE5MzEwNTJjODY1OGJkYWJmZCAgZ2RiLTYuOC45MS4y MDA5MDkyNS50YXIuYnoyCg==