From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to pre-7.9 snapshot 7.8.50.20150108. Date: Sat, 27 Jun 2026 23:56:56 GMT Message-ID: <178260461641.1.5646482076771348763.rpms-gdb-2f7f533ae735@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 2f7f533ae735c37ad823486c21ab39dde62aa772 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogMmY3ZjUzM2FlNzM1YzM3YWQ4MjM0ODZjMjFhYjM5ZGRlNjJh YTc3MgogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNS0wMS0wOFQyMTo1MzoxNyswMTow MAogICAgICAgICAgICBTdGF0cyAgOiArMjIzMy8tMzkxOCBpbiAzOSBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMmY3 ZjUzM2FlNzM1YzM3YWQ4MjM0ODZjMjFhYjM5ZGRlNjJhYTc3Mj9icmFuY2g9Z2RiLTE3LjItcmVi YXNlLWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gcHJlLTcuOSBz bmFwc2hvdCA3LjguNTAuMjAxNTAxMDguCgotIEZpeCBqaXQtcmVhZGVyLmggZm9yIG11bHRpLWxp Yi4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNmFmNDhk NS4uZDk4ZDg1MCAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0x LDIgKzEsMiBAQAogL2dkYi1saWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotL2dk Yi03LjguMS4yMDE0MTIyOC50YXIueHoKKy9nZGItNy44LjUwLjIwMTUwMTA4LnRhci54egoKZGlm ZiAtLWdpdCBhL2dkYi02LjMtYnoyMzE4MzItb2JzdGFjay0yZ2IucGF0Y2ggYi9nZGItNi4zLWJ6 MjMxODMyLW9ic3RhY2stMmdiLnBhdGNoCmluZGV4IDQ0OTcxYWUuLjFhMTlkMzQgMTAwNjQ0Ci0t LSBhL2dkYi02LjMtYnoyMzE4MzItb2JzdGFjay0yZ2IucGF0Y2gKKysrIGIvZ2RiLTYuMy1iejIz MTgzMi1vYnN0YWNrLTJnYi5wYXRjaApAQCAtMSwyOSArMSwxMCBAQAogaHR0cHM6Ly9idWd6aWxs YS5yZWRoYXQuY29tL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMzE4MzIKIAogCi1JbmRleDog Z2RiLTcuNS41MC4yMDEzMDExOC9nZGIvc3ltbWlzYy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9pbmNsdWRlL29ic3RhY2suaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAx MTgub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTMtMDEtMTggMjM6NTQ6NTcuNDc4OTc0Mjg5ICswMTAw Ci0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvc3ltbWlzYy5jCTIwMTMtMDEtMTggMjM6NTU6 NDEuNjUwOTMwMjU0ICswMTAwCi1AQCAtMTQ4LDEwICsxNDgsMTAgQEAgcHJpbnRfb2JqZmlsZV9z dGF0aXN0aWNzICh2b2lkKQotICAgICBpZiAoT0JKU1RBVCAob2JqZmlsZSwgc3pfc3RydGFiKSA+ IDApCi0gICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCIgIFNwYWNlIHVzZWQgYnkgYS5vdXQgc3Ry aW5nIHRhYmxlczogJWRcbiIpLAotIAkJICAgICAgIE9CSlNUQVQgKG9iamZpbGUsIHN6X3N0cnRh YikpOwotLSAgICBwcmludGZfZmlsdGVyZWQgKF8oIiAgVG90YWwgbWVtb3J5IHVzZWQgZm9yIG9i amZpbGUgb2JzdGFjazogJWRcbiIpLAotLQkJICAgICBvYnN0YWNrX21lbW9yeV91c2VkICgmb2Jq ZmlsZS0+b2JqZmlsZV9vYnN0YWNrKSk7Ci0tICAgIHByaW50Zl9maWx0ZXJlZCAoXygiICBUb3Rh bCBtZW1vcnkgdXNlZCBmb3IgQkZEIG9ic3RhY2s6ICVkXG4iKSwKLS0JCSAgICAgb2JzdGFja19t ZW1vcnlfdXNlZCAoJm9iamZpbGUtPnBlcl9iZmQtPnN0b3JhZ2Vfb2JzdGFjaykpOwotKyAgICBw cmludGZfZmlsdGVyZWQgKF8oIiAgVG90YWwgbWVtb3J5IHVzZWQgZm9yIG9iamZpbGUgb2JzdGFj azogJWxkXG4iKSwKLSsJCSAgICAgKGxvbmcpIG9ic3RhY2tfbWVtb3J5X3VzZWQgKCZvYmpmaWxl LT5vYmpmaWxlX29ic3RhY2spKTsKLSsgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCIgIFRvdGFsIG1l bW9yeSB1c2VkIGZvciBCRkQgb2JzdGFjazogJWxkXG4iKSwKLSsJCSAgICAgKGxvbmcpIG9ic3Rh Y2tfbWVtb3J5X3VzZWQgKCZvYmpmaWxlLT5wZXJfYmZkLT5zdG9yYWdlX29ic3RhY2spKTsKLSAg ICAgcHJpbnRmX2ZpbHRlcmVkIChfKCIgIFRvdGFsIG1lbW9yeSB1c2VkIGZvciBwc3ltYm9sIGNh Y2hlOiAlZFxuIiksCi0gCQkgICAgIGJjYWNoZV9tZW1vcnlfdXNlZCAocHN5bWJvbF9iY2FjaGVf Z2V0X2JjYWNoZQotIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqZmlsZS0+cHN5bWJv bF9jYWNoZSkpKTsKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2luY2x1ZGUvb2JzdGFjay5o Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2luY2x1ZGUvb2JzdGFj ay5oCTIwMTMtMDEtMTggMjM6NTQ6NTcuNDc4OTc0Mjg5ICswMTAwCi0rKysgZ2RiLTcuNS41MC4y MDEzMDExOC9pbmNsdWRlL29ic3RhY2suaAkyMDEzLTAxLTE4IDIzOjU1OjEwLjI1Njk5OTE4OCAr MDEwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9pbmNsdWRlL29ic3RhY2suaAkyMDE1 LTAxLTAxIDE3OjAyOjUzLjI1NDgyMDQ0NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv aW5jbHVkZS9vYnN0YWNrLmgJMjAxNS0wMS0wMSAxNzowMjo1My44ODA4MjAwODQgKzAxMDAKIEBA IC0xODgsMzEgKzE4OCwzMSBAQCBzdHJ1Y3Qgb2JzdGFjawkJLyogY29udHJvbCBjdXJyZW50IG9i amVjCiAgCiAgLyogRGVjbGFyZSB0aGUgZXh0ZXJuYWwgZnVuY3Rpb25zIHdlIHVzZTsgdGhleSBh cmUgaW4gb2JzdGFjay5jLiAgKi8KQEAgLTEyOSwxMCArMTEwLDEwIEBAIEluZGV4OiBnZGItNy41 LjUwLjIwMTMwMTE4L2luY2x1ZGUvb2JzdGFjay5oCiAgICAgaWYgKF9fby0+Y2h1bmtfbGltaXQg LSBfX28tPm5leHRfZnJlZSA8IF9fbGVuKQkJCVwKICAgICAgIF9vYnN0YWNrX25ld2NodW5rIChf X28sIF9fbGVuKTsJCQkJCVwKICAgICBvYnN0YWNrX2JsYW5rX2Zhc3QgKF9fbywgX19sZW4pOwkJ CQkJXAotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvbGliaWJlcnR5L29ic3RhY2suYworSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvbGliaWJlcnR5L29ic3RhY2suYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9saWJpYmVydHkvb2JzdGFjay5jCTIwMTMtMDEt MTggMjM6NTQ6NTcuNDc4OTc0Mjg5ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9saWJp YmVydHkvb2JzdGFjay5jCTIwMTMtMDEtMTggMjM6NTU6MTAuMjU2OTk5MTg4ICswMTAwCistLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2xpYmliZXJ0eS9vYnN0YWNrLmMJMjAxNS0wMS0wMSAx NzowMjo1My4yNTQ4MjA0NDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2xpYmliZXJ0 eS9vYnN0YWNrLmMJMjAxNS0wMS0wMSAxNzowMjo1My44ODA4MjAwODQgKzAxMDAKIEBAIC00NCw5 ICs0NCwxMSBAQAogICNpZiAhZGVmaW5lZCAoX0xJQkMpICYmIGRlZmluZWQgKF9fR05VX0xJQlJB UllfXykgJiYgX19HTlVfTElCUkFSWV9fID4gMQogICNpbmNsdWRlIDxnbnUtdmVyc2lvbnMuaD4K CmRpZmYgLS1naXQgYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaCBiL2dkYi02LjMt cmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCmluZGV4IDdmZjFkYzcuLjFlOWFkZGYgMTAwNjQ0Ci0t LSBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCisrKyBiL2dkYi02LjMtcmVhZG5l dmVyLTIwMDUwOTA3LnBhdGNoCkBAIC0xMSwxMSArMTEsMTEgQEAKIAogICAgICAgICAqIGdkYi50 ZXhpbmZvIChGaWxlIE9wdGlvbnMpOiBEb2N1bWVudCAtLXJlYWRuZXZlci4KIAotSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2RvYy9nZGIudGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTQtMDEtMjcgMjI6NDI6NTMuMTUw NTczNjAzICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTQtMDEtMjcgMjI6NDI6NTYuNjk0NTc2MzE5ICswMTAwCi1AQCAtMTAzMSw2ICsxMDMxLDEy IEBAIFJlYWQgZWFjaCBzeW1ib2wgZmlsZSdzIGVudGlyZSBzeW1ib2wgdGEKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTAxLTAxIDE3OjAxOjA4 LjMwODg4MTI5MiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDE1LTAxLTAxIDE3OjAxOjEwLjMwMjg4MDEyNiArMDEwMAorQEAgLTEwMzIsNiArMTAz MiwxMiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhlIGRl ZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQu CiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25z IGZhc3Rlci4KICAKQEAgLTI4LDExICsyOCwxMSBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1vZGUgT3B0aW9u cwotSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21haW4uYworSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvbWFpbi5jCTIwMTQtMDEtMjcgMjI6NDI6NTMuMTUzNTczNjA2ICswMTAwCi0r KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWFpbi5jCTIwMTQtMDEtMjcgMjI6NDI6NTYuNjk1 NTc2MzE5ICswMTAwCi1AQCAtNDczLDYgKzQ3Myw3IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRh dGEpCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tYWluLmMJMjAxNS0wMS0wMSAx NzowMTowOC4zMTI4ODEyOTAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tYWlu LmMJMjAxNS0wMS0wMSAxNzowMToxMC4zMDM4ODAxMjUgKzAxMDAKK0BAIC01OTAsNiArNTkwLDcg QEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7InhkYiIsIG5vX2FyZ3VtZW50 LCAmeGRiX2NvbW1hbmRzLCAxfSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3VtZW50LCAmZGJ4X2Nv bW1hbmRzLCAxfSwKICAgICAgICB7InJlYWRub3ciLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3lt Ym9sX2ZpbGVzLCAxfSwKQEAgLTQwLDcgKzQwLDcgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL21haW4uYwogICAgICAgIHsiciIsIG5vX2FyZ3VtZW50LCAmcmVhZG5vd19zeW1ib2xf ZmlsZXMsIDF9LAogICAgICAgIHsicXVpZXQiLCBub19hcmd1bWVudCwgJnF1aWV0LCAxfSwKICAg ICAgICB7InEiLCBub19hcmd1bWVudCwgJnF1aWV0LCAxfSwKLUBAIC0xMTY0LDYgKzExNjUsNyBA QCBTZWxlY3Rpb24gb2YgZGVidWdnZWUgYW5kIGl0cyBmaWxlczpcblxuCitAQCAtMTI0NSw2ICsx MjQ2LDcgQEAgU2VsZWN0aW9uIG9mIGRlYnVnZ2VlIGFuZCBpdHMgZmlsZXM6XG5cbgogICAgLS1z ZT1GSUxFICAgICAgICAgIFVzZSBGSUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZp bGUuXG5cCiAgICAtLXN5bWJvbHM9U1lNRklMRSAgUmVhZCBzeW1ib2xzIGZyb20gU1lNRklMRS5c blwKICAgIC0tcmVhZG5vdyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJz dCBhY2Nlc3MuXG5cCkBAIC00OCwxMSArNDgsMTEgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL21haW4uYwogICAgLS13cml0ZSAgICAgICAgICAgIFNldCB3cml0aW5nIGludG8gZXhl Y3V0YWJsZSBhbmQgY29yZSBmaWxlcy5cblxuXAogICIpLCBzdHJlYW0pOwogICAgZnB1dHNfdW5m aWx0ZXJlZCAoXygiXAotSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3N5bWZpbGUuYwor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvc3ltZmlsZS5jCTIwMTQtMDEtMjcgMjI6NDI6 NTMuMTU0NTczNjA3ICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3ltZmlsZS5j CTIwMTQtMDEtMjcgMjI6NDI6NTYuNjk2NTc2MzIwICswMTAwCi1AQCAtODIsNiArODIsNyBAQCBz dGF0aWMgdm9pZCBjbGVhcl9zeW10YWJfdXNlcnNfY2xlYW51cCAoCistLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9zeW1maWxlLmMJMjAxNS0wMS0wMSAxNzowMTowOC4zMTM4ODEyODkg KzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1maWxlLmMJMjAxNS0wMS0wMSAx NzowMToxMC4zMDQ4ODAxMjUgKzAxMDAKK0BAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyB2b2lkIGNs ZWFyX3N5bXRhYl91c2Vyc19jbGVhbnVwICgKICAKICAvKiBHbG9iYWwgdmFyaWFibGVzIG93bmVk IGJ5IHRoaXMgZmlsZS4gICovCiAgaW50IHJlYWRub3dfc3ltYm9sX2ZpbGVzOwkvKiBSZWFkIGZ1 bGwgc3ltYm9scyBpbW1lZGlhdGVseS4gICovCkBAIC02MCwxOSArNjAsMTkgQEAgSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3N5bWZpbGUuYwogIAogIC8qIEZ1bmN0aW9ucyB0aGlzIGZp bGUgZGVmaW5lcy4gICovCiAgCi1JbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYy cmVhZC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYycmVhZC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAx NC0wMS0yNyAyMjo0Mjo1Ni43MDA1NzYzMjMgKzAxMDAKLSsrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9kd2FyZjJyZWFkLmMJMjAxNC0wMS0yNyAyMjo0NDoyMS45MTU2NDE1NjAgKzAxMDAKLUBA IC03MCw2ICs3MCw3IEBACistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kd2FyZjJy ZWFkLmMJMjAxNS0wMS0wMSAxNzowMTowOC4zMTk4ODEyODUgKzAxMDAKKysrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wMS0wMSAxNzowMToyNi44ODg4NzA1MTEg KzAxMDAKK0BAIC02OSw2ICs2OSw3IEBACiAgI2luY2x1ZGUgInNvdXJjZS5oIgogICNpbmNsdWRl ICJmaWxlc3R1ZmYuaCIKICAjaW5jbHVkZSAiYnVpbGQtaWQuaCIKICsjaW5jbHVkZSAidG9wLmgi CiAgCiAgI2luY2x1ZGUgPGZjbnRsLmg+Ci0gI2luY2x1ZGUgPHN0cmluZy5oPgotQEAgLTE5NzUs NyArMTk3Niw4IEBAIGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKKyAj aW5jbHVkZSA8c3lzL3R5cGVzLmg+CitAQCAtMTk4OSw3ICsxOTkwLDggQEAgZHdhcmYyX2hhc19p bmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHZvaWQgKikgbmFtZXMpOwogICAgICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+b2JqZmlsZSA9 IG9iamZpbGU7CiAgICAgIH0KQEAgLTgyLDExICs4MiwxMSBAQCBJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvZHdhcmYycmVhZC5jCiAgCSAgJiYgZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZv LnMuYXNlY3Rpb24gIT0gTlVMTAogIAkgICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5p c192aXJ0dWFsCiAgCSAgJiYgZHdhcmYyX3Blcl9vYmpmaWxlLT5hYmJyZXYucy5hc2VjdGlvbiAh PSBOVUxMKTsKLUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90b3AuaAorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3RvcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi45MC4y MDE0MDEyNy5vcmlnL2dkYi90b3AuaAkyMDE0LTAxLTI3IDIyOjQyOjUzLjE1OTU3MzYxMCArMDEw MAotKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3RvcC5oCTIwMTQtMDEtMjcgMjI6NDI6NTYu NzAxNTc2MzI0ICswMTAwCi1AQCAtNTksNiArNTksNyBAQCBleHRlcm4gdm9pZCBzZXRfcHJvbXB0 IChjb25zdCBjaGFyICpzKTsKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3RvcC5o CTIwMTUtMDEtMDEgMTc6MDE6MDguMzIwODgxMjg0ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdG9wLmgJMjAxNS0wMS0wMSAxNzowMToxMC4zMTA4ODAxMjEgKzAxMDAKK0BAIC02 Nyw2ICs2Nyw3IEBAIGV4dGVybiB2b2lkIHNldF9wcm9tcHQgKGNvbnN0IGNoYXIgKnMpOwogIAog IC8qIEZyb20gcmFuZG9tIHBsYWNlcy4gICovCiAgZXh0ZXJuIGludCByZWFkbm93X3N5bWJvbF9m aWxlczsKCmRpZmYgLS1naXQgYS9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoIGIvZ2Ri LTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5wYXRjaAppbmRleCA4NDE5NWI4Li4xYmQxMWVmIDEwMDY0 NAotLS0gYS9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCisrKyBiL2dkYi02LjMtdGVz dC1waWUtMjAwNTAxMDcucGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTcuNy41MC4y MDE0MDYwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43 LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAxNC0wNi0xMyAy MDowNTozMy4wNTg1MDY4MTcgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0 c3VpdGUvY29uZmlndXJlLmFjCTIwMTQtMDYtMTMgMjA6MDU6NTkuOTkxNTMyNTk1ICswMjAwCi1A QCAtOTcsNiArOTcsNiBAQCBBQ19PVVRQVVQoW01ha2VmaWxlIFwKKy0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAxNS0wMS0wMSAxNzowMDoy Ni4xMjM5MDg5NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Y29uZmlndXJlLmFjCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTY4ODk3NzczICswMTAwCitAQCAtMTA2 LDYgKzEwNiw2IEBAIEFDX09VVFBVVChbTWFrZWZpbGUgXAogICAgZ2RiLmhwL2dkYi5hQ0MvTWFr ZWZpbGUgZ2RiLmhwL2dkYi5jb21wYXQvTWFrZWZpbGUgXAogICAgZ2RiLmhwL2dkYi5kZWZlY3Rz L01ha2VmaWxlIGdkYi5ndWlsZS9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgXAogICAg Z2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBc CkBAIC0xMCwyMCArMTAsMjAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3Rz dWl0ZS9jb25maWd1cmUuYWMKICsgIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZp bGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUg XAogICAgZ2RiLnBlcmYvTWFrZWZpbGUgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9N YWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgXAogICAgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2Ri LnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGVdKQotSW5kZXg6IGdkYi03LjcuNTAuMjAx NDA2MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0 MDYwOS5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMTQtMDYtMTMgMjA6MDU6MjkuOTU2 NTAzODk5ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2NvbmZp Z3VyZQkyMDE0LTA2LTEzIDIwOjA2OjI0LjQ5MjU1NTcwOSArMDIwMAotQEAgLTM0NDgsNyArMzQ0 OCw3IEBAIGRvbmUKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9j b25maWd1cmUJMjAxNS0wMS0wMSAxNzowMDoyNi4xMjQ5MDg5NDcgKzAxMDAKKysrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMTUtMDEtMDEgMTc6MDA6NTku NDY3ODg3MDg4ICswMTAwCitAQCAtMzQ1OCw3ICszNDU4LDcgQEAgaWYgdGVzdCAiJHtidWlsZH0i ID0gIiR7aG9zdH0iIC1hICIke2hvcworIGZpCiAgCiAgCi0gCi0tYWNfY29uZmlnX2ZpbGVzPSIk YWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZp bGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuYnRyYWNlL01ha2VmaWxl IGdkYi5jZWxsL01ha2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdk Yi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmRsYW5nL01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxl IGdkYi5nZGIvTWFrZWZpbGUgZ2RiLmdvL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2Ri LmphdmEvTWFrZWZpbGUgZ2RiLmhwL01ha2VmaWxlIGdkYi5ocC9nZGIub2JqZGJnL01ha2VmaWxl IGdkYi5ocC9nZGIuYmFzZS1ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmFDQy9NYWtlZmlsZSBnZGIu aHAvZ2RiLmNvbXBhdC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmRlZmVjdHMvTWFrZWZpbGUgZ2RiLmd1 aWxlL01ha2VmaWxlIGdkYi5saW5lc3BlYy9NYWtlZmlsZSBnZGIubWkvTWFrZWZpbGUgZ2RiLm1v ZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5v cGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5w ZXJmL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2Ri LnN0YWJzL01ha2VmaWxlIGdkYi50aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBn ZGIueG1sL01ha2VmaWxlIgotK2FjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtl ZmlsZSBnZGIuYWRhL01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZpbGUg Z2RiLmJhc2UvTWFrZWZpbGUgZ2RiLmJ0cmFjZS9NYWtlZmlsZSBnZGIuY2VsbC9NYWtlZmlsZSBn ZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdk Yi5kbGFuZy9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIuZ2RiL01ha2VmaWxlIGdk Yi5nby9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxlIGdkYi5o cC9NYWtlZmlsZSBnZGIuaHAvZ2RiLm9iamRiZy9NYWtlZmlsZSBnZGIuaHAvZ2RiLmJhc2UtaHAv TWFrZWZpbGUgZ2RiLmhwL2dkYi5hQ0MvTWFrZWZpbGUgZ2RiLmhwL2dkYi5jb21wYXQvTWFrZWZp bGUgZ2RiLmhwL2dkYi5kZWZlY3RzL01ha2VmaWxlIGdkYi5ndWlsZS9NYWtlZmlsZSBnZGIubGlu ZXNwZWMvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5t dWx0aS9NYWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5v cHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIGdkYi5wZXJm L01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnN0 YWJzL01ha2VmaWxlIGdkYi50aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIu eG1sL01ha2VmaWxlIgorLWFjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmls ZSBnZGIuYWRhL01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZpbGUgZ2Ri LmJhc2UvTWFrZWZpbGUgZ2RiLmJ0cmFjZS9NYWtlZmlsZSBnZGIuY2VsbC9NYWtlZmlsZSBnZGIu Y29tcGlsZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIu ZHdhcmYyL01ha2VmaWxlIGdkYi5kbGFuZy9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBn ZGIuZ2RiL01ha2VmaWxlIGdkYi5nby9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5q YXZhL01ha2VmaWxlIGdkYi5ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLm9iamRiZy9NYWtlZmlsZSBn ZGIuaHAvZ2RiLmJhc2UtaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5hQ0MvTWFrZWZpbGUgZ2RiLmhw L2dkYi5jb21wYXQvTWFrZWZpbGUgZ2RiLmhwL2dkYi5kZWZlY3RzL01ha2VmaWxlIGdkYi5ndWls ZS9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1 bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3Bl bmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGVy Zi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi5z dGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2Ri LnhtbC9NYWtlZmlsZSIKKythY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZp bGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdk Yi5iYXNlL01ha2VmaWxlIGdkYi5idHJhY2UvTWFrZWZpbGUgZ2RiLmNlbGwvTWFrZWZpbGUgZ2Ri LmNvbXBpbGUvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2Ri LmR3YXJmMi9NYWtlZmlsZSBnZGIuZGxhbmcvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUg Z2RiLmdkYi9NYWtlZmlsZSBnZGIuZ28vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIu amF2YS9NYWtlZmlsZSBnZGIuaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5vYmpkYmcvTWFrZWZpbGUg Z2RiLmhwL2dkYi5iYXNlLWhwL01ha2VmaWxlIGdkYi5ocC9nZGIuYUNDL01ha2VmaWxlIGdkYi5o cC9nZGIuY29tcGF0L01ha2VmaWxlIGdkYi5ocC9nZGIuZGVmZWN0cy9NYWtlZmlsZSBnZGIuZ3Vp bGUvTWFrZWZpbGUgZ2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9k dWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9w ZW5jbC9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBp ZS9NYWtlZmlsZSBnZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZl cnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIu dHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKICAKICBjYXQgPmNvbmZjYWNoZSA8PFxf QUNFT0YKICAjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVz dWx0cyBvZiBjb25maWd1cmUKLUBAIC00MTc5LDYgKzQxNzksNyBAQCBkbworQEAgLTQxOTAsNiAr NDE5MCw3IEBAIGRvCiAgICAgICJnZGIub3BlbmNsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIGdkYi5vcGVuY2wvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIub3B0L01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZpbGUiIDs7CiAg ICAgICJnZGIucGFzY2FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdk Yi5wYXNjYWwvTWFrZWZpbGUiIDs7CkBAIC0zMSwxMCArMzEsMTAgQEAgSW5kZXg6IGdkYi03Ljcu NTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKICAgICAgImdkYi5wZXJmL01ha2Vm aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5wZXJmL01ha2VmaWxlIiA7Owog ICAgICAiZ2RiLnB5dGhvbi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBn ZGIucHl0aG9uL01ha2VmaWxlIiA7OwogICAgICAiZ2RiLnJldmVyc2UvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnJldmVyc2UvTWFrZWZpbGUiIDs7Ci1JbmRleDog Z2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5j CTIwMTQtMDYtMTMgMjA6MDU6MzMuMDYwNTA2ODE5ICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxNS0wMS0wMSAxNzowMDo0My4x Njk4OTc3NzMgKzAxMDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlzIHByb2dyYW0gaXMgaW50 ZW5kZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KICsgICBhdHRhY2hl ZCB0byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AK QEAgLTU2LDEwICs1NiwxMCBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYXR0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdk Yi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYworSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIu YwkyMDE0LTA2LTEzIDIwOjA1OjMzLjA2MDUwNjgxOSArMDIwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwkyMDE1LTAxLTAxIDE3OjAwOjQz LjE3MDg5Nzc3MiArMDEwMAogQEAgLTAsMCArMSwyNCBAQAogKy8qIFRoaXMgcHJvZ3JhbSBpcyBp bnRlbmRlZCB0byBiZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBhbmQgdGhlbgogKyAgIGF0dGFj aGVkIHRvIGJ5IGdkYi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBpbiBhIGxvb3AuICBUaGUgbG9v cApAQCAtODUsMTAgKzg1LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKICsgICAgfQogKyAgcmV0dXJuICgwKTsKICt9Ci1JbmRl eDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYworSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5j CTIwMTQtMDYtMTMgMjA6MDU6MzMuMDYxNTA2ODIwICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDE1LTAxLTAxIDE3OjAwOjQzLjE3 MDg5Nzc3MiArMDEwMAogQEAgLTAsMCArMSwxNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjM2LDEwICsyMzYsMTAgQEAgSW5k ZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKICsg ICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rl c3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwkyMDE0LTA2LTEzIDIwOjA1OjMzLjA2MTUw NjgyMCArMDIwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGll L2JyZWFrMS5jCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTcwODk3NzcyICswMTAwCiBAQCAtMCwwICsx LDQ0IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTI4NSwxMCArMjg1LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwogK3ZvaWQgbWFya2VyMyAoYSwgYikgY2hhciAq YSwgKmI7IHt9CS8qIHNldCBicmVha3BvaW50IDE4IGhlcmUgKi8KICt2b2lkIG1hcmtlcjQgKGQp IGxvbmcgZDsge30JCS8qIHNldCBicmVha3BvaW50IDEzIGhlcmUgKi8KICsjZW5kaWYKLUluZGV4 OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtl ci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUv Y29yZW1ha2VyLmMJMjAxNC0wNi0xMyAyMDowNTozMy4wNjE1MDY4MjAgKzAyMDAKKysrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwkyMDE1LTAx LTAxIDE3OjAwOjQzLjE3MDg5Nzc3MiArMDEwMAogQEAgLTAsMCArMSwxNDIgQEAKICsvKiBDb3B5 cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OQogKyAgIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtNDMyLDEwICs0MzIsMTAgQEAgSW5kZXg6IGdkYi03Ljcu NTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCiArICByZXR1cm4g MDsKICt9CiArCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvYXR0YWNoLmV4cAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2F0dGFjaC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCTIwMTQtMDYtMTMgMjA6MDU6MzMuMDYxNTA2ODIwICsw MjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNo LmV4cAkyMDE1LTAxLTAxIDE3OjAwOjQzLjE3MTg5Nzc3MSArMDEwMAogQEAgLTAsMCArMSw0MTcg QEAKICsjICAgQ29weXJpZ2h0IDE5OTcsIDE5OTksIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC04NTQsMTAgKzg1NCwxMCBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0 MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogK2RvX2NhbGxfYXR0YWNoX3Rl c3RzCiArCiArcmV0dXJuIDAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9icmVhay5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAJMjAxNC0wNi0xMyAyMDowNTozMy4wNjI1MDY4 MjEgKzAyMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9i cmVhay5leHAJMjAxNS0wMS0wMSAxNzowMDo0My4xNzI4OTc3NzEgKzAxMDAKIEBAIC0wLDAgKzEs OTYyIEBACiArIyAgIENvcHlyaWdodCAxOTg4LCAxOTkwLCAxOTkxLCAxOTkyLCAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAogKyMgICAyMDAwLCAyMDAyLCAyMDAzLCAyMDA0CkBA IC0xODIxLDEwICsxODIxLDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9icmVhay5leHAKICsgICAgc2VuZF9nZGIgInNldCBhcmdzIG1haW5cbiIK ICsgICAgZ2RiX2V4cGVjdCAtcmUgIi4qJGdkYl9wcm9tcHQgJCIge30KICt9Ci1JbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29y ZWZpbGUuZXhwCTIwMTQtMDYtMTMgMjA6MDU6MzMuMDYzNTA2ODIyICswMjAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCTIwMTUtMDEt MDEgMTc6MDA6NDMuMTcyODk3NzcxICswMTAwCiBAQCAtMCwwICsxLDIzMyBAQAogKyMgQ29weXJp Z2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAK ICsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjA1OSwxMCArMjA1OSwxMCBA QCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZp bGUuZXhwCiArZ2RiX3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhhLWZIJ1xdKiBpbiAuKiBc XCguKlxcKS4qIiAidXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgogKwogK2dkYl90ZXN0ICJj b3JlIiAiTm8gY29yZSBmaWxlIG5vdy4iCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIv dGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4KK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuNTAu MjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCTIwMTQtMDYtMTMgMjA6 MDU6MzMuMDYzNTA2ODIyICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4JMjAxNS0wMS0wMSAxNzowMDo0My4xNzI4OTc3NzEgKzAx MDAKIEBAIC0wLDAgKzEsMTkgQEAKICtWUEFUSCA9IEBzcmNkaXJACiArc3JjZGlyID0gQHNyY2Rp ckAKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVybW9zdC5wYXRj aCBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCmluZGV4IDlmYjIz ZWQuLmEyYzRiOGYgMTAwNjQ0Ci0tLSBhL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJt b3N0LnBhdGNoCisrKyBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNo CkBAIC0yMywxMSArMjMsMTEgQEAgaW5zdGVhZC4KIAogCVBvcnQgdG8gR0RCLTYuNy4KIAotSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYworSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYW1kNjQtbGludXgtdGRlcC5jCTIwMTQtMDIt MDQgMjM6NDA6MDYuMjYzNDgzNDY5ICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv YW1kNjQtbGludXgtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDc6MTguNDM4MDA5MjkwICswMTAwCi1A QCAtMjg5LDYgKzI4OSw4MCBAQCBhbWQ2NF9saW51eF9yZWdpc3Rlcl9yZWdncm91cF9wIChzdHJ1 Y3QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwky MDE1LTAxLTAxIDE3OjAxOjUxLjUwNjg1NjI0MSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwkyMDE1LTAxLTAxIDE3OjAxOjU0Ljc2OTg1NDM0OSAr MDEwMAorQEAgLTI5MCw2ICsyOTAsODAgQEAgYW1kNjRfbGludXhfcmVnaXN0ZXJfcmVnZ3JvdXBf cCAoc3RydWN0CiAgCiAgLyogU2V0IHRoZSBwcm9ncmFtIGNvdW50ZXIgZm9yIHByb2Nlc3MgUFRJ RCB0byBQQy4gICovCiAgCkBAIC0xMDgsNyArMTA4LDcgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwogIHN0YXRpYyB2b2lkCiAgYW1kNjRfbGludXhf d3JpdGVfcGMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIENPUkVfQUREUiBwYykKICB7Ci1A QCAtMTYwNyw2ICsxNjgxLDggQEAgYW1kNjRfbGludXhfaW5pdF9hYmlfY29tbW9uKHN0cnVjdCBn ZGJhcgorQEAgLTE2NTcsNiArMTczMSw4IEBAIGFtZDY0X2xpbnV4X2luaXRfYWJpX2NvbW1vbihz dHJ1Y3QgZ2RiYXIKICAKICAgIHRkZXAtPnhzYXZlX3hjcjBfb2Zmc2V0ID0gSTM4Nl9MSU5VWF9Y U0FWRV9YQ1IwX09GRlNFVDsKICAKQEAgLTExNywxMSArMTE3LDExIEBAIEluZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9hbWQ2NC1saW51eC10ZGVwLmMKICAgIC8qIEFkZCB0aGUgJW9yaWdf cmF4IHJlZ2lzdGVyIHVzZWQgZm9yIHN5c2NhbGwgcmVzdGFydGluZy4gICovCiAgICBzZXRfZ2Ri YXJjaF93cml0ZV9wYyAoZ2RiYXJjaCwgYW1kNjRfbGludXhfd3JpdGVfcGMpOwogIAotSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FtZDY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDA6MDYuMjY1NDgzNDcx ICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDIt MDQgMjM6NDU6NDAuODQ2ODkxNjUzICswMTAwCi1AQCAtMjM1OSw2ICsyMzU5LDcgQEAgYW1kNjRf ZnJhbWVfdW53aW5kX3N0b3BfcmVhc29uIChzdHJ1Y3QgZgorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMDEtMDEgMTc6MDE6NTEuNTA3ODU2MjQwICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMDEtMDEg MTc6MDE6NTQuNzcwODU0MzQ5ICswMTAwCitAQCAtMjQ5Miw2ICsyNDkyLDcgQEAgYW1kNjRfZnJh bWVfdW53aW5kX3N0b3BfcmVhc29uIChzdHJ1Y3QgZgogIHsKICAgIHN0cnVjdCBhbWQ2NF9mcmFt ZV9jYWNoZSAqY2FjaGUgPQogICAgICBhbWQ2NF9mcmFtZV9jYWNoZSAodGhpc19mcmFtZSwgdGhp c19jYWNoZSk7CkBAIC0xMjksNyArMTI5LDcgQEAgSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2FtZDY0LXRkZXAuYwogIAogICAgaWYgKCFjYWNoZS0+YmFzZV9wKQogICAgICByZXR1cm4g VU5XSU5EX1VOQVZBSUxBQkxFOwotQEAgLTIzNjcsNiArMjM2OCwxMCBAQCBhbWQ2NF9mcmFtZV91 bndpbmRfc3RvcF9yZWFzb24gKHN0cnVjdCBmCitAQCAtMjUwMCw2ICsyNTAxLDEwIEBAIGFtZDY0 X2ZyYW1lX3Vud2luZF9zdG9wX3JlYXNvbiAoc3RydWN0IGYKICAgIGlmIChjYWNoZS0+YmFzZSA9 PSAwKQogICAgICByZXR1cm4gVU5XSU5EX09VVEVSTU9TVDsKICAKQEAgLTE0MCw3ICsxNDAsNyBA QCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYW1kNjQtdGRlcC5jCiAgICByZXR1cm4g VU5XSU5EX05PX1JFQVNPTjsKICB9CiAgCi1AQCAtMjQ5OCw2ICsyNTAzLDcgQEAgYW1kNjRfc2ln dHJhbXBfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYQorQEAgLTI2MzEsNiArMjYzNiw3IEBAIGFt ZDY0X3NpZ3RyYW1wX2ZyYW1lX3RoaXNfaWQgKHN0cnVjdCBmcmEKICB7CiAgICBzdHJ1Y3QgYW1k NjRfZnJhbWVfY2FjaGUgKmNhY2hlID0KICAgICAgYW1kNjRfc2lndHJhbXBfZnJhbWVfY2FjaGUg KHRoaXNfZnJhbWUsIHRoaXNfY2FjaGUpOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIEluZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9hbWQ2NC10ZGVwLmMKICAKICAgIGlmICghY2FjaGUtPmJhc2Vf cCkKICAgICAgKCp0aGlzX2lkKSA9IGZyYW1lX2lkX2J1aWxkX3VuYXZhaWxhYmxlX3N0YWNrIChn ZXRfZnJhbWVfcGMgKHRoaXNfZnJhbWUpKTsKLUBAIC0yNTA2LDYgKzI1MTIsMTEgQEAgYW1kNjRf c2lndHJhbXBfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYQorQEAgLTI2MzksNiArMjY0NSwxMSBA QCBhbWQ2NF9zaWd0cmFtcF9mcmFtZV90aGlzX2lkIChzdHJ1Y3QgZnJhCiAgICAgICAgLyogVGhp cyBtYXJrcyB0aGUgb3V0ZXJtb3N0IGZyYW1lLiAgKi8KICAgICAgICByZXR1cm47CiAgICAgIH0K QEAgLTE2MCwxMSArMTYwLDExIEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hbWQ2 NC10ZGVwLmMKICAgIGVsc2UKICAgICAgKCp0aGlzX2lkKSA9IGZyYW1lX2lkX2J1aWxkIChjYWNo ZS0+YmFzZSArIDE2LCBnZXRfZnJhbWVfcGMgKHRoaXNfZnJhbWUpKTsKICB9Ci1JbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4Ni10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9pMzg2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvaTM4Ni10ZGVwLmMJMjAxNC0wMi0wNCAyMzo0MDowNi4yNjc0ODM0NzMgKzAxMDAK LSsrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pMzg2LXRkZXAuYwkyMDE0LTAyLTA0IDIzOjQz OjMzLjA0ODczNDk3NCArMDEwMAotQEAgLTc4MzAsNiArNzgzMCw5IEBAIGkzODZfZ2RiYXJjaF9p bml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2kzODYtdGRlcC5jCTIwMTUtMDEtMDEgMTc6MDE6NTEuNTA5ODU2MjM5ICswMTAwCisrKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMJMjAxNS0wMS0wMSAxNzowMTo1NC43 NzI4NTQzNDggKzAxMDAKK0BAIC04Mjg2LDYgKzgyODYsOSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAo c3RydWN0IGdkYmFyY2hfaW5mbyBpCiAgCiAgICB0ZGVwLT54c2F2ZV94Y3IwX29mZnNldCA9IC0x OwogIApAQCAtMTc0LDE3NSArMTc0LDI0IEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9pMzg2LXRkZXAuYwogICAgdGRlcC0+cmVjb3JkX3JlZ21hcCA9IGkzODZfcmVjb3JkX3JlZ21h cDsKICAKICAgIHNldF9nZGJhcmNoX2xvbmdfbG9uZ19hbGlnbl9iaXQgKGdkYmFyY2gsIDMyKTsK LUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pMzg2LXRkZXAuaAorSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2kzODYtdGRlcC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9pMzg2LXRkZXAuaAkyMDE0LTAyLTA0IDIzOjQwOjA2LjI2ODQ4 MzQ3NSArMDEwMAotKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2kzODYtdGRlcC5oCTIwMTQt MDItMDQgMjM6NDM6MzMuMDQ4NzM0OTc0ICswMTAwCi1AQCAtMTkyLDYgKzE5Miw5IEBAIHN0cnVj dCBnZGJhcmNoX3RkZXAKLSAgIGludCAoKmkzODZfc3lzZW50ZXJfcmVjb3JkKSAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSk7Ci0gICAvKiBQYXJzZSBzeXNjYWxsIGFyZ3MuICAqLwotICAgaW50 ICgqaTM4Nl9zeXNjYWxsX3JlY29yZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUpOworLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaTM4Ni10ZGVwLmgJMjAxNS0wMS0wMSAxNzow MTo1NC43NzI4NTQzNDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pMzg2LXRk ZXAuaAkyMDE1LTAxLTAxIDE3OjAyOjE1LjgyNjg0MjE0MyArMDEwMAorQEAgLTI0MCw2ICsyNDAs OSBAQCBzdHJ1Y3QgZ2RiYXJjaF90ZGVwCisgCisgICAvKiBSZWdzZXRzLiAqLworICAgY29uc3Qg c3RydWN0IHJlZ3NldCAqZnByZWdzZXQ7CiArCiArICAvKiBEZXRlY3QgT1MgZGVwZW5kZW50IG91 dGVybW9zdCBmcmFtZXM7IHN1Y2ggYXMgYGNsb25lJy4gICovCiArICBpbnQgKCpvdXRlcm1vc3Rf ZnJhbWVfcCkgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lKTsKICB9OwogIAogIC8qIEZs b2F0aW5nLXBvaW50IHJlZ2lzdGVycy4gICovCi1JbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvaWE2NC10ZGVwLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2lhNjQtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDA6MDYuMjcwNDgzNDc3ICswMTAwCi0rKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaWE2NC10ZGVwLmMJMjAxNC0wMi0wNCAyMzo0MzozMy4w NDk3MzQ5NzUgKzAxMDAKLUBAIC0yMTc2LDYgKzIxNzYsMTM4IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZnJhbWVfdW53aW5kIGlhNjRfZnIKLSAgIGRlZmF1bHRfZnJhbWVfc25pZmZlcgotIH07Ci0g Ci0rLyogRGV0ZWN0IHRoZSBvdXRlcm1vc3QgZnJhbWU7IGR1cmluZyB1bndpbmQgb2YKLSsgICAJ IzYgIDB4MjAwMDAwMDAwMDM0NzEwMCBpbiBfX2Nsb25lMiAoKSBmcm9tIC9saWIvbGliYy5zby42 LjEKLSsgICBhdm9pZCB0aGUgYWRkaXRpb25hbCBib2d1cyBmcmFtZQotKyAgIAkjNyAgMHgwMDAw MDAwMDAwMDAwMDAwIGluID8/ICgpICAqLwotKwotK3N0YXRpYyBjaGFyIGxpbnV4X2Nsb25lMl9j b2RlW10gPQotK3sKLSsvKiBsaWJjL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lhNjQvY2xvbmUy LlMgKi8KLSsgIDB4MDksIDB4MDAsIDB4MjAsIDB4MTIsIDB4OTAsIDB4MTEsIDB4MDAsIDB4NDAs Ci0rICAweDI4LCAweDIwLCAweDIzLCAweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDAwLAotKy8q ICAgICAgICAgc3Q0IFtyOV09cjggKi8KLSsvKiAgICAgICAgIHN0NCBbcjEwXT1yOCAqLwotKy8q ICAgICAgICAgOzsgKi8KLSsvKiAjZW5kaWYgKi8KLSsgIDB4MDIsIDB4NTAsIDB4MjEsIDB4NDAs IDB4MTgsIDB4MTQsIDB4OTAsIDB4MDIsCi0rICAweDkwLCAweDAwLCAweDQyLCAweDAwLCAweDAw LCAweDAwLCAweDA0LCAweDAwLAotKy8qIDE6ICAgICAgbGQ4IG91dDE9W2luMF0sOCAgICAgICAg fCogUmV0cmlldmUgY29kZSBwb2ludGVyLiAgICAgICAqfCAqLwotKy8qICAgICAgICAgbW92IG91 dDA9aW40ICAgICAgICAgICAgfCogUGFzcyBwcm9wZXIgYXJndW1lbnQgdG8gZm4gKnwgKi8KLSsv KiAgICAgICAgIDs7ICovCi0rICAweDExLCAweDA4LCAweDAwLCAweDQwLCAweDE4LCAweDEwLCAw eDYwLCAweDUwLAotKyAgMHgwNSwgMHg4MCwgMHgwMywgMHgwMCwgMHg2OCwgMHgwMCwgMHg4MCwg MHgxMiwKLSsvKiAgICAgICAgIGxkOCBncD1baW4wXSAgICAgICAgICAgIHwqIExvYWQgZnVuY3Rp b24gZ3AuICAgICAgICAgICAgKnwgKi8KLSsvKiAgICAgICAgIG1vdiBiNj1vdXQxICovCi0rLyog ICAgICAgICBici5jYWxsLmRwdGsubWFueSBycD1iNiB8KiBDYWxsIGZuKGFyZykgaW4gdGhlIGNo aWxkICAgICp8ICovCi0rLyogICAgICAgICA7OyAqLwotKyAgMHgxMCwgMHg0OCwgMHgwMSwgMHgx MCwgMHgwMCwgMHgyMSwgMHgxMCwgMHgwMCwKLSsgIDB4YTAsIDB4MDAsIDB4NDIsIDB4MDAsIDB4 OTgsIDB4ZGYsIDB4ZjcsIDB4NWIsCi0rLyogICAgICAgICBtb3Ygb3V0MD1yOCAgICAgICAgICAg ICB8KiBBcmd1bWVudCB0byBfZXhpdCAgICAgICAgICAgICp8ICovCi0rLyogICAgICAgICBtb3Yg Z3A9bG9jMCAqLwotKy8qICAgICAgICAgLmdsb2JsIEhJRERFTl9KVU1QVEFSR0VUKF9leGl0KSAq LwotKy8qICAgICAgICAgYnIuY2FsbC5kcG50Lm1hbnkgcnA9SElEREVOX0pVTVBUQVJHRVQoX2V4 aXQpICovCi0rLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8KiBjYWxsIF9leGl0 IHdpdGggcmVzdWx0IGZyb20gZm4uICAgICAgKnwgKi8KLSsgIDB4MTEsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsCi0rICAweDAwLCAweDAyLCAweDAwLCAweDgwLCAw eDAwLCAweDAwLCAweDg0LCAweDAwCi0rLyogICAgICAgICByZXQgICAgICAgICAgICAgICAgICAg ICB8KiBOb3QgcmVhY2hlZC4gICAgICAgICAqfCAqLwotK307Ci0rCi0rI2RlZmluZSBMSU5VWF9D TE9ORV9QUkVfU0xPVFMgMwkvKiBOdW1iZXIgb2Ygc2xvdHMgYmVmb3JlIFBDLiAgKi8KLSsjZGVm aW5lIExJTlVYX0NMT05FX0xFTiAoc2l6ZW9mIGxpbnV4X2Nsb25lMl9jb2RlKQotKwotK3N0YXRp YyBpbnQKLStpYTY0X2xpbnV4X2Nsb25lMl9ydW5uaW5nIChzdHJ1Y3QgZnJhbWVfaW5mbyAqdGhp c19mcmFtZSkKLSt7Ci0rICBDT1JFX0FERFIgcGMgPSBnZXRfZnJhbWVfcGMgKHRoaXNfZnJhbWUp OwotKyAgY2hhciBidWZbTElOVVhfQ0xPTkVfTEVOXTsKLSsgIHN0cnVjdCBtaW5pbWFsX3N5bWJv bCAqbWluc3ltOwotKyAgbG9uZyBsb25nIGluc3RyOwotKwotKyAgaWYgKCFzYWZlX2ZyYW1lX3Vu d2luZF9tZW1vcnkgKHRoaXNfZnJhbWUsIHBjIC0gTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTYs Ci0rCQkJCSBidWYsIExJTlVYX0NMT05FX0xFTikpCi0rICAgIHJldHVybiAwOwotKwotKyAgaWYg KG1lbWNtcCAoYnVmLCBsaW51eF9jbG9uZTJfY29kZSwgTElOVVhfQ0xPTkVfUFJFX1NMT1RTICog MTYpICE9IDApCi0rICAgIHJldHVybiAwOwotKwotKyAgLyogQWRqdXN0IHRoZSBleHBlY3RlZCAi X2V4aXQiIGFkZHJlc3MuICAqLwotKyAgbWluc3ltID0gbG9va3VwX21pbmltYWxfc3ltYm9sX3Rl eHQgKCJfZXhpdCIsIE5VTEwpOwotKyAgaWYgKG1pbnN5bSA9PSBOVUxMKQotKyAgICByZXR1cm4g MDsKLSsKLSsgIGluc3RyID0gc2xvdE5fY29udGVudHMgKCZsaW51eF9jbG9uZTJfY29kZVtMSU5V WF9DTE9ORV9QUkVfU0xPVFMgKiAxNl0sIDIpOwotKyAgaW5zdHIgJj0gfigoKDFMIDw8IDIwKSAt IDEpIDw8IDEzKTsKLSsgIC8qIEFkZHJlc3MgaXMgcmVsYXRpdmUgdG8gdGhlIGp1bXAgaW5zdHJ1 Y3Rpb24gc2xvdCwgbm90IHRoZSBuZXh0IG9uZS4gICovCi0rICBpbnN0ciB8PSAoKChTWU1CT0xf VkFMVUVfQUREUkVTUyAobWluc3ltKSAtIChwYyAmIH4weGZMKSkgPj4gNCkKLSsJICAgICYgKCgx TCA8PCAyMCkgLSAxKSkgPDwgMTM7Ci0rICByZXBsYWNlX3Nsb3ROX2NvbnRlbnRzICgmbGludXhf Y2xvbmUyX2NvZGVbTElOVVhfQ0xPTkVfUFJFX1NMT1RTICogMTZdLCBpbnN0ciwKLSsJCQkgIDIp OwotKwotKyAgaWYgKG1lbWNtcCAoJmJ1ZltMSU5VWF9DTE9ORV9QUkVfU0xPVFMgKiAxNl0sCi0r ICAgICAgICAgICAgICAmbGludXhfY2xvbmUyX2NvZGVbTElOVVhfQ0xPTkVfUFJFX1NMT1RTICog MTZdLAotKwkgICAgICBMSU5VWF9DTE9ORV9MRU4gLSAoTElOVVhfQ0xPTkVfUFJFX1NMT1RTICog MTYpKSAhPSAwKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiAxOwotK30KLSsKLStzdGF0 aWMgaW50Ci0raWE2NF9vdXRlcm1vc3RfZnJhbWUgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2Zy YW1lKQotK3sKLSsgIENPUkVfQUREUiBwYyA9IGdldF9mcmFtZV9wYyAodGhpc19mcmFtZSk7Ci0r ICBjaGFyICpuYW1lOwotKwotKyAgZmluZF9wY19wYXJ0aWFsX2Z1bmN0aW9uIChwYywgJm5hbWUs IE5VTEwsIE5VTEwpOwotKwotKyAgLyogSWYgd2UgaGF2ZSBOQU1FLCB3ZSBjYW4gb3B0aW1pemUg dGhlIHNlYXJjaC4KLSsgICAgIGBjbG9uZScgTkFNRSBzdGlsbCBuZWVkcyB0byBoYXZlIHRoZSBj b2RlIGNoZWNrZWQgYXMgaXRzIG5hbWUgbWF5IGJlCi0rICAgICBwcmVzZW50IGluIHRoZSB1c2Vy IGNvZGUuCi0rICAgICBgX19jbG9uZScgTkFNRSBzaG91bGQgbm90IGJlIHByZXNlbnQgaW4gdGhl IHVzZXIgY29kZSBidXQgaW4gdGhlIGluaXRpYWwKLSsgICAgIHBhcnRzIG9mIHRoZSBgX19jbG9u ZScgaW1wbGVtZW50YXRpb24gdGhlIHVud2luZCBzdGlsbCBtYWtlcyBzZW5zZS4KLSsgICAgIE1v cmUgZGV0YWlsZWQgdW53aW5kaW5nIGRlY2lzaW9uIHdvdWxkIGJlIHRvbyBtdWNoIHNlbnNpdGl2 ZSB0byBwb3NzaWJsZQotKyAgICAgc3VidGxlIGNoYW5nZXMgaW4gc3BlY2lmaWMgZ2xpYmMgcmV2 aXNpb25zLiAgKi8KLSsgIGlmIChuYW1lID09IE5VTEwgfHwgc3RyY21wIChuYW1lLCAiY2xvbmUy IikgPT0gMAotKyAgICAgIHx8IHN0cmNtcCAoIl9fY2xvbmUyIiwgbmFtZSkgPT0gMCkKLSsgICAg cmV0dXJuIChpYTY0X2xpbnV4X2Nsb25lMl9ydW5uaW5nICh0aGlzX2ZyYW1lKSAhPSAwKTsKLSsK LSsgIHJldHVybiAwOwotK30KLSsKLStzdGF0aWMgdm9pZAotK2lhNjRfY2xvbmUyX2ZyYW1lX3Ro aXNfaWQgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2ZyYW1lLCB2b2lkICoqdGhpc19jYWNoZSwK LSsJCQkgICBzdHJ1Y3QgZnJhbWVfaWQgKnRoaXNfaWQpCi0rewotKyAgLyogTGVhdmUgdGhlIGRl ZmF1bHQgb3V0ZXJtb3N0IGZyYW1lIGF0ICpUSElTX0lELiAgKi8KLSt9Ci0rCi0rc3RhdGljIHN0 cnVjdCB2YWx1ZSAqCi0raWE2NF9jbG9uZTJfZnJhbWVfcHJldl9yZWdpc3RlciAoc3RydWN0IGZy YW1lX2luZm8gKnRoaXNfZnJhbWUsCi0rCQkJCSB2b2lkICoqdGhpc19jYWNoZSwgaW50IHJlZ251 bSkKLSt7Ci0rICByZXR1cm4gZnJhbWVfdW53aW5kX2dvdF9yZWdpc3RlciAodGhpc19mcmFtZSwg cmVnbnVtLCByZWdudW0pOwotK30KLSsKLStzdGF0aWMgaW50Ci0raWE2NF9jbG9uZTJfZnJhbWVf c25pZmZlciAoY29uc3Qgc3RydWN0IGZyYW1lX3Vud2luZCAqc2VsZiwKLSsJCQkgICBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqdGhpc19mcmFtZSwKLSsJCQkgICB2b2lkICoqdGhpc19wcm9sb2d1ZV9jYWNo ZSkKLSt7Ci0rICBpZiAoaWE2NF9vdXRlcm1vc3RfZnJhbWUgKHRoaXNfZnJhbWUpKQotKyAgICBy ZXR1cm4gMTsKLSsKLSsgIHJldHVybiAwOwotK30KLSsKLStzdGF0aWMgY29uc3Qgc3RydWN0IGZy YW1lX3Vud2luZCBpYTY0X2Nsb25lMl9mcmFtZV91bndpbmQgPQotK3sKLSsgIE5PUk1BTF9GUkFN RSwKLSsgICZpYTY0X2Nsb25lMl9mcmFtZV90aGlzX2lkLAotKyAgJmlhNjRfY2xvbmUyX2ZyYW1l X3ByZXZfcmVnaXN0ZXIsCi0rICBOVUxMLAotKyAgJmlhNjRfY2xvbmUyX2ZyYW1lX3NuaWZmZXIK LSt9OwotKwotIC8qIFNpZ25hbCB0cmFtcG9saW5lcy4gICovCi0gCi0gc3RhdGljIHZvaWQKLUBA IC00MDIzLDYgKzQxNTUsNyBAQCBpYTY0X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5m byBpCi0gICBzZXRfZ2RiYXJjaF9kdW1teV9pZCAoZ2RiYXJjaCwgaWE2NF9kdW1teV9pZCk7Ci0g Ci0gICBzZXRfZ2RiYXJjaF91bndpbmRfcGMgKGdkYmFyY2gsIGlhNjRfdW53aW5kX3BjKTsKLSsg IGZyYW1lX3Vud2luZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFyY2gsICZpYTY0X2Nsb25lMl9mcmFt ZV91bndpbmQpOwotICNpZmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKLSAgIGZyYW1lX3Vud2lu ZF9hcHBlbmRfdW53aW5kZXIgKGdkYmFyY2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmaWE2NF9saWJ1bndpbmRfc2lndHJhbXBfZnJhbWVfdW53aW5kKTsKLUluZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5j CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2J0 LWNsb25lLXN0b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmMJMjAxNC0wMi0wNCAyMzo0MzozMy4wNTA3MzQ5 NzYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvYnQtY2xvbmUtc3RvcC5jCTIwMTUtMDEtMDEgMTc6MDE6NTQuNzczODU0MzQ3ICswMTAwCiBA QCAtMCwwICsxLDM5IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KICsKQEAgLTM4MywxMCArMjMyLDEwIEBAIEluZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5jCiArCWZvciAo OzspCiArCQlwYXVzZSgpOwogK30KLUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0 c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5leHAKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xv bmUtc3RvcC5leHAJMjAxNC0wMi0wNCAyMzo0MzozMy4wNTA3MzQ5NzYgKzAxMDAKKysrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3RvcC5l eHAJMjAxNS0wMS0wMSAxNzowMTo1NC43NzQ4NTQzNDYgKzAxMDAKIEBAIC0wLDAgKzEsNjEgQEAK ICsjIENvcHlyaWdodCAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwoKZGlm ZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2ggYi9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCmluZGV4IDExMzg2NTguLmM5OGU2 ODYgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gK KysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaApAQCAtNTgsMjQg KzU4LDEwIEBAIEh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAxL21z ZzAwNTE3Lmh0bWwKIAkqIGV4ZWMuYyAoZXhlY19maWxlX2F0dGFjaCk6IFByaW50IGEgbW9yZSB1 c2VmdWwgZXJyb3IgbWVzc2FnZSBpZiB0aGUKIAl1c2VyIGRpZCAiZ2RiIGNvcmUiLgogCi1JbmRl eDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZXhjZXB0aW9ucy5oCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYw OS5vcmlnL2dkYi9leGNlcHRpb25zLmgJMjAxNC0wNi0xMyAyMDoyNjo0Ni45ODg4MDQ1NTMgKzAy MDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9leGNlcHRpb25zLmgJMjAxNC0wNi0xMyAy MDoyNzowMS45MzA4MjAwNTcgKzAyMDAKLUBAIC0xMDAsNiArMTAwLDkgQEAgZW51bSBlcnJvcnMg ewotICAgLyogUmVxdWVzdGVkIGZlYXR1cmUsIG1ldGhvZCwgbWVjaGFuaXNtLCBldGMuIGlzIG5v dCBzdXBwb3J0ZWQuICAqLwotICAgTk9UX1NVUFBPUlRFRF9FUlJPUiwKLSAKLSsgIC8qIEF0dGVt cHQgdG8gbG9hZCBhIGNvcmUgZmlsZSBhcyBleGVjdXRhYmxlLiAgKi8KLSsgIElTX0NPUkVfRVJS T1IsCi0rCi0gICAvKiBBZGQgbW9yZSBlcnJvcnMgaGVyZS4gICovCi0gICBOUl9FUlJPUlMKLSB9 OwotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2V4ZWMuYwotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvZXhlYy5jCTIwMTQtMDYtMTMgMjA6MjY6NDQu ODMxODAyMzE1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZXhlYy5jCTIwMTQt MDYtMTMgMjA6Mjc6MTcuMjgyODM2NDU0ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi9leGVjLmMJMjAxNS0wMS0wMyAyMzoxODozOC4wOTc0Mjc5MDggKzAxMDAKKysrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9leGVjLmMJMjAxNS0wMS0wMyAyMzoxOTowMi40NDg1NTYz OTEgKzAxMDAKIEBAIC0zNSw2ICszNSw3IEBACiAgI2luY2x1ZGUgInByb2dzcGFjZS5oIgogICNp bmNsdWRlICJnZGJfYmZkLmgiCkBAIC04NCw3ICs3MCw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIw MTQwNjA5L2dkYi9leGVjLmMKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4KICAjaW5jbHVkZSAicmVh ZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0yMzEsMTIgKzIzMiwyNyBAQCBleGVjX2ZpbGVfYXR0YWNo IChjaGFyICpmaWxlbmFtZSwgaW50IGZyCitAQCAtMjIyLDEyICsyMjMsMjcgQEAgZXhlY19maWxl X2F0dGFjaCAoY29uc3QgY2hhciAqZmlsZW5hbWUsCiAgCiAgICAgICAgaWYgKCFiZmRfY2hlY2tf Zm9ybWF0X21hdGNoZXMgKGV4ZWNfYmZkLCBiZmRfb2JqZWN0LCAmbWF0Y2hpbmcpKQogIAl7CkBA IC0xMTUsMTEgKzEwMSwxMSBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZXhlYy5j CiAgCX0KICAKICAgICAgICBpZiAoYnVpbGRfc2VjdGlvbl90YWJsZSAoZXhlY19iZmQsICZzZWN0 aW9ucywgJnNlY3Rpb25zX2VuZCkpCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvbWFp bi5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWFpbi5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9tYWluLmMJMjAxNC0wNi0xMyAyMDoyNjo0 NC44MzE4MDIzMTUgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9tYWluLmMJMjAx NC0wNi0xMyAyMDoyNjo0Ni45OTA4MDQ1NTUgKzAyMDAKLUBAIC0zNDEsNiArMzQxLDM2IEBAIHR5 cGVkZWYgc3RydWN0IGNtZGFyZyB7CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9t YWluLmMJMjAxNS0wMS0wMyAyMzoxODozOC4wOTg0Mjc5MTMgKzAxMDAKKysrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9tYWluLmMJMjAxNS0wMS0wMyAyMzoyMjoxMC4xNTc1NDY3OTIgKzAxMDAK K0BAIC00MjYsNiArNDI2LDM2IEBAIHR5cGVkZWYgc3RydWN0IGNtZGFyZyB7CiAgLyogRGVmaW5l IHR5cGUgVkVDIChjbWRhcmdfcykuICAqLwogIERFRl9WRUNfTyAoY21kYXJnX3MpOwogIApAQCAt MTI4LDcgKzExNCw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9tYWluLmMKICsg ICBjb3JlX2ZpbGVfY29tbWFuZCBmYWlsZWQgdG8gZmluZCBhIG1hdGNoaW5nIGV4ZWN1dGFibGUu ICAqLwogKwogK3N0YXRpYyB2b2lkCi0rZXhlY19vcl9jb3JlX2ZpbGVfYXR0YWNoIChjaGFyICpm aWxlbmFtZSwgaW50IGZyb21fdHR5KQorK2V4ZWNfb3JfY29yZV9maWxlX2F0dGFjaCAoY29uc3Qg Y2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0eSkKICt7CiArICB2b2xhdGlsZSBzdHJ1Y3QgZ2Ri X2V4Y2VwdGlvbiBlOwogKwpAQCAtMTQyLDcgKzEyOCw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIw MTQwNjA5L2dkYi9tYWluLmMKICsgICAgewogKyAgICAgIGlmIChlLmVycm9yID09IElTX0NPUkVf RVJST1IpCiArCXsKLSsJICBjb3JlX2ZpbGVfY29tbWFuZCAoZmlsZW5hbWUsIGZyb21fdHR5KTsK KysJICBjb3JlX2ZpbGVfY29tbWFuZCAoKGNoYXIgKikgZmlsZW5hbWUsIGZyb21fdHR5KTsKICsK ICsJICAvKiBJZmYgdGhlIGNvcmUgZmlsZSBmb3VuZCBpdHMgZXhlY3V0YWJsZSBzdXBwcmVzcyB0 aGUgZXJyb3IgbWVzc2FnZQogKwkgICAgIGZyb20gZXhlY19maWxlX2F0dGFjaC4gICovCkBAIC0x NTYsNyArMTQyLDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL21haW4uYwogIHN0 YXRpYyBpbnQKICBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIHsKLUBAIC04NTQsNiArODg0 LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MTAsNiArOTQwLDggQEAgY2Fw dHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsK ICAJICBleGVjYXJnID0gYXJndltvcHRpbmRdOwpAQCAtMTY1LDExICsxNTEsMTEgQEAgSW5kZXg6 IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL21haW4uYwogIAkgIG9wdGluZCsrOwogIAl9CiAgCi1A QCAtMTAxNywxMSArMTA0OSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTEw NjksMTEgKzExMDEsMjYgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICAmJiBz eW1hcmcgIT0gTlVMTAogICAgICAgICYmIHN0cmNtcCAoZXhlY2FyZywgc3ltYXJnKSA9PSAwKQog ICAgICB7Ci0rICAgICAgY2F0Y2hfY29tbWFuZF9lcnJvcnNfZnR5cGUgKmZ1bmM7CisrICAgICAg Y2F0Y2hfY29tbWFuZF9lcnJvcnNfY29uc3RfZnR5cGUgKmZ1bmM7CiArCiArICAgICAgLyogQ2Fs bCBleGVjX29yX2NvcmVfZmlsZV9hdHRhY2ggb25seSBpZiB0aGUgZmlsZSB3YXMgc3BlY2lmaWVk IGFzCiArCSBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCAoYW5kIG5vdCBhbiBhIGNvbW1hbmQgbGlu ZSBvcHRpb24pLiAgKi8KQEAgLTE4NCwxMyArMTcwLDI4IEBAIEluZGV4OiBnZGItNy43LjUwLjIw MTQwNjA5L2dkYi9tYWluLmMKICAgICAgICAvKiBUaGUgZXhlYyBmaWxlIGFuZCB0aGUgc3ltYm9s LWZpbGUgYXJlIHRoZSBzYW1lLiAgSWYgd2UgY2FuJ3QKICAgICAgICAgICBvcGVuIGl0LCBiZXR0 ZXIgb25seSBwcmludCBvbmUgZXJyb3IgbWVzc2FnZS4KIC0gICAgICAgICBjYXRjaF9jb21tYW5k X2Vycm9ycyByZXR1cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3MhICAqLwotLSAgICAgIGlmIChjYXRj aF9jb21tYW5kX2Vycm9ycyAoZXhlY19maWxlX2F0dGFjaCwgZXhlY2FyZywKLS0JCQkJIWJhdGNo X2ZsYWcsIFJFVFVSTl9NQVNLX0FMTCkpCistICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3Jz X2NvbnN0IChleGVjX2ZpbGVfYXR0YWNoLCBleGVjYXJnLAorLQkJCQkgICAgICAhYmF0Y2hfZmxh ZywgUkVUVVJOX01BU0tfQUxMKSkKICsgICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9ycyByZXR1 cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3MhCiArCSBEbyBub3QgbG9hZCBFWEVDQVJHIGFzIGEgc3lt Ym9sIGZpbGUgaWYgaXQgaGFzIGJlZW4gYWxyZWFkeSBwcm9jZXNzZWQKICsJIGFzIGEgY29yZSBm aWxlLiAgKi8KLSsgICAgICBpZiAoY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGZ1bmMsIGV4ZWNhcmcs ICFiYXRjaF9mbGFnLCBSRVRVUk5fTUFTS19BTEwpCisrICAgICAgaWYgKGNhdGNoX2NvbW1hbmRf ZXJyb3JzX2NvbnN0IChmdW5jLCBleGVjYXJnLCAhYmF0Y2hfZmxhZywKKysJCQkJICAgICAgUkVU VVJOX01BU0tfQUxMKQogKwkgICYmIGNvcmVfYmZkID09IE5VTEwpCiAgCWNhdGNoX2NvbW1hbmRf ZXJyb3JzX2NvbnN0IChzeW1ib2xfZmlsZV9hZGRfbWFpbiwgc3ltYXJnLAogIAkJCQkgICAgIWJh dGNoX2ZsYWcsIFJFVFVSTl9NQVNLX0FMTCk7CiAgICAgIH0KK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9jb21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29tbW9uL2NvbW1vbi1leGNlcHRpb25zLmgJMjAx NS0wMS0wMyAyMzoxODozOC4wOTc0Mjc5MDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9jb21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAkyMDE1LTAxLTAzIDIzOjE5OjAyLjQ0OTU1 NjM5NiArMDEwMAorQEAgLTk5LDYgKzk5LDkgQEAgZW51bSBlcnJvcnMgeworICAgLyogUmVxdWVz dGVkIGZlYXR1cmUsIG1ldGhvZCwgbWVjaGFuaXNtLCBldGMuIGlzIG5vdCBzdXBwb3J0ZWQuICAq LworICAgTk9UX1NVUFBPUlRFRF9FUlJPUiwKKyAKKysgIC8qIEF0dGVtcHQgdG8gbG9hZCBhIGNv cmUgZmlsZSBhcyBleGVjdXRhYmxlLiAgKi8KKysgIElTX0NPUkVfRVJST1IsCisrCisgICAvKiBB ZGQgbW9yZSBlcnJvcnMgaGVyZS4gICovCisgICBOUl9FUlJPUlMKKyB9OwoKZGlmZiAtLWdpdCBh L2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS1ycG0ucGF0Y2gKaW5kZXggNzQ2ODc3Zi4uOGRjNGJjYyAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0u cGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZXZl bnQtdG9wLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9ldmVudC10b3AuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAx NC0wNi0xMyAyMDoxMDoxOS42MzI3ODc2NDIgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi9ldmVudC10b3AuYwkyMDE0LTA2LTEzIDIwOjExOjQ5LjYwNTg3ODU1NyArMDIwMAotQEAg LTM4LDYgKzM4LDcgQEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2V2ZW50LXRv cC5jCTIwMTUtMDEtMDEgMTc6MTI6MjQuODgxNDg5MDg3ICswMTAwCisrKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvZXZlbnQtdG9wLmMJMjAxNS0wMS0wMSAxNzoxMjoyOC44MjE0ODY4MDMgKzAx MDAKK0BAIC0zNyw2ICszNyw3IEBACiAgI2luY2x1ZGUgImdkYmNtZC5oIgkJLyogZm9yIGRvbnRf cmVwZWF0KCkgKi8KICAjaW5jbHVkZSAiYW5ub3RhdGUuaCIKICAjaW5jbHVkZSAibWFpbnQuaCIK QEAgLTEwLDcgKzEwLDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2V2ZW50LXRv cC5jCiAgCiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRs aW5lL3JlYWRsaW5lLmgiCi1AQCAtMTc2LDYgKzE3Nyw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hh cl93cmFwcGVyIChnZGJfY2xpZW4KK0BAIC0xODAsNiArMTgxLDggQEAgcmxfY2FsbGJhY2tfcmVh ZF9jaGFyX3dyYXBwZXIgKGdkYl9jbGllbgogIHZvaWQKICBjbGlfY29tbWFuZF9sb29wICh2b2lk ICpkYXRhKQogIHsKQEAgLTE5LDcgKzE5LDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkv Z2RiL2V2ZW50LXRvcC5jCiAgICBkaXNwbGF5X2dkYl9wcm9tcHQgKDApOwogIAogICAgLyogTm93 IGl0J3MgdGltZSB0byBzdGFydCB0aGUgZXZlbnQgbG9vcC4gICovCi1AQCAtMjQzLDYgKzI0Niw4 IEBAIGRpc3BsYXlfZ2RiX3Byb21wdCAoY2hhciAqbmV3X3Byb21wdCkKK0BAIC0yOTgsNiArMzAx LDggQEAgZGlzcGxheV9nZGJfcHJvbXB0IChjb25zdCBjaGFyICpuZXdfcHJvbQogICAgLyogUmVz ZXQgdGhlIG5lc3RpbmcgZGVwdGggdXNlZCB3aGVuIHRyYWNlLWNvbW1hbmRzIGlzIHNldC4gICov CiAgICByZXNldF9jb21tYW5kX25lc3RfZGVwdGggKCk7CiAgCkBAIC0yOCwxMSArMjgsMTEgQEAg SW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2V2ZW50LXRvcC5jCiAgICBvbGRfY2hhaW4g PSBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVudF9jb250ZW50cywgJmFjdHVhbF9nZGJfcHJvbXB0 KTsKICAKICAgIC8qIERvIG5vdCBjYWxsIHRoZSBweXRob24gaG9vayBvbiBhbiBleHBsaWNpdCBw cm9tcHQgY2hhbmdlIGFzCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvc3ltZmlsZS5o CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNC0wNi0xMyAyMDox MDoxOS42MzM3ODc2NDMgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9zeW1maWxl LmgJMjAxNC0wNi0xMyAyMDoxMDozMS4wNjY3OTkxNTggKzAyMDAKLUBAIC01NzMsNiArNTczLDgg QEAgdm9pZCBtYXBfc3ltYm9sX2ZpbGVuYW1lcyAoc3ltYm9sX2ZpbGVuYQorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTUtMDEtMDEgMTc6MTI6MjQuODgxNDg5 MDg3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmlsZS5oCTIwMTUtMDEt MDEgMTc6MTI6MjguODIyNDg2ODAyICswMTAwCitAQCAtNTc3LDYgKzU3Nyw4IEBAIHZvaWQgbWFw X3N5bWJvbF9maWxlbmFtZXMgKHN5bWJvbF9maWxlbmEKICAvKiBidWlsZC1pZCBzdXBwb3J0LiAg Ki8KICBleHRlcm4gc3RydWN0IGVsZl9idWlsZF9pZCAqYnVpbGRfaWRfYWRkcl9nZXQgKENPUkVf QUREUiBhZGRyKTsKICBleHRlcm4gdm9pZCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25zdCBjaGFy ICpiaW5hcnksIGNvbnN0IGNoYXIgKmRlYnVnKTsKQEAgLTQxLDExICs0MSwxMSBAQCBJbmRleDog Z2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvc3ltZmlsZS5oCiAgCiAgLyogRnJvbSBkd2FyZjJyZWFk LmMgKi8KICAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cAkyMDE0LTA2LTEzIDIwOjEwOjE5LjYzNDc4NzY0NCArMDIwMAotKysrIGdk Yi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE0LTA2LTEzIDIw OjEwOjMxLjA2Nzc5OTE1OSArMDIwMAotQEAgLTE0OTIsNyArMTQ5Miw3IEBAIHByb2MgZGVmYXVs dF9nZGJfc3RhcnQgeyB9IHsKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cAkyMDE1LTAxLTAxIDE3OjEyOjI0Ljg4MzQ4OTA4NSArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE1LTAxLTAx IDE3OjEyOjI4LjgyMzQ4NjgwMSArMDEwMAorQEAgLTE1MjIsNyArMTUyMiw3IEBAIHByb2MgZGVm YXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lk dGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtNTQsMTEgKzU0LDExIEBAIEluZGV4OiBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICAgICAgc2VuZF9nZGIgInNl dCBidWlsZC1pZC12ZXJib3NlIDBcbiIKICAgICAgZ2RiX2V4cGVjdCAxMCB7CiAgCS1yZSAiJGdk Yl9wcm9tcHQgJCIgewotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9s aWIvbWktc3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYw OS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTQtMDYtMTMgMjA6MTA6 MTkuNjM1Nzg3NjQ1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRl L2xpYi9taS1zdXBwb3J0LmV4cAkyMDE0LTA2LTEzIDIwOjEwOjMxLjA2ODc5OTE2MCArMDIwMAot QEAgLTIxMiw3ICsyMTIsNyBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9y dC5leHAJMjAxNS0wMS0wMSAxNzoxMjoyNC44ODQ0ODkwODUgKzAxMDAKKysrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTUtMDEtMDEgMTc6 MTI6MjguODIzNDg2ODAxICswMTAwCitAQCAtMjE0LDcgKzIxNCw3IEBAIHByb2MgZGVmYXVsdF9t aV9nZGJfc3RhcnQgeyBhcmdzIH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3 aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC02NywyMiArNjcsMjIgQEAgSW5kZXg6IGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAgICAgc2Vu ZF9nZGIgIjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgogICAgICBnZGJfZXhwZWN0 IDEwIHsKICAJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4xOTBcXFxe ZG9uZVxyXG4kbWlfZ2RiX3Byb21wdCQiIHsKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dk Yi90dWkvdHVpLWludGVycC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdHVpL3R1 aS1pbnRlcnAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIv dHVpL3R1aS1pbnRlcnAuYwkyMDE0LTA2LTEzIDIwOjEwOjMxLjA2ODc5OTE2MCArMDIwMAotKysr IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3R1aS90dWktaW50ZXJwLmMJMjAxNC0wNi0xMyAyMDox MDo0Ny44MDY4MTY1NDIgKzAyMDAKLUBAIC0zMiw2ICszMiw3IEBACi0gI2luY2x1ZGUgImV4Y2Vw dGlvbnMuaCIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3R1aS90dWktaW50ZXJw LmMJMjAxNS0wMS0wMSAxNzoxMjoyOC44MjQ0ODY4MDEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90dWkvdHVpLWludGVycC5jCTIwMTUtMDEtMDEgMTc6MTI6NDMuMjQwNDc4NDQ0 ICswMTAwCitAQCAtMzEsNiArMzEsNyBAQAorICNpbmNsdWRlICJ0dWkvdHVpLWlvLmgiCiAgI2lu Y2x1ZGUgImluZnJ1bi5oIgogICNpbmNsdWRlICJvYnNlcnZlci5oIgogKyNpbmNsdWRlICJzeW1m aWxlLmgiCiAgCiAgc3RhdGljIHN0cnVjdCB1aV9vdXQgKnR1aV91aV9vdXQgKHN0cnVjdCBpbnRl cnAgKnNlbGYpOwogIAotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2FjbG9jYWwubTQK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hY2xvY2FsLm00CiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9hY2xvY2FsLm00CTIwMTQtMDYtMTMgMjA6 MTA6MTkuNjM2Nzg3NjQ2ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYWNsb2Nh bC5tNAkyMDE0LTA2LTEzIDIwOjEwOjMxLjA2OTc5OTE2MSArMDIwMAorLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvYWNsb2NhbC5tNAkyMDE1LTAxLTAxIDE3OjEyOjI0Ljg4NTQ4OTA4 NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FjbG9jYWwubTQJMjAxNS0wMS0w MSAxNzoxMjoyOC44MjQ0ODY4MDEgKzAxMDAKIEBAIC0xMSw2ICsxMSwyMjEgQEAKICAjIGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEK ICAjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KQEAgLTMwNSwxMCArMzA1LDEwIEBAIEluZGV4OiBnZGIt Ny43LjUwLjIwMTQwNjA5L2dkYi9hY2xvY2FsLm00CiAgIyBBTV9BVVhfRElSX0VYUEFORCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIAog ICMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcuaW4KK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWcuaW4KID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE0LTA2LTEzIDIwOjEwOjE5LjYz Nzc4NzY0NyArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZy5pbgkyMDE0 LTA2LTEzIDIwOjEwOjMxLjA2OTc5OTE2MSArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvY29uZmlnLmluCTIwMTUtMDEtMDEgMTc6MTI6MjQuODg1NDg5MDg0ICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnLmluCTIwMTUtMDEtMDEgMTc6MTI6Mjgu ODI0NDg2ODAxICswMTAwCiBAQCAtMzMsNiArMzMsOSBAQAogIC8qIERlZmluZSB0byBCRkQncyBk ZWZhdWx0IHRhcmdldCB2ZWN0b3IuICovCiAgI3VuZGVmIERFRkFVTFRfQkZEX1ZFQwpAQCAtMzE5 LDcgKzMxOSw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcuaW4KICAv KiBEZWZpbmUgdG8gMSBpZiB0cmFuc2xhdGlvbiBvZiBwcm9ncmFtIG1lc3NhZ2VzIHRvIHRoZSB1 c2VyJ3MgbmF0aXZlCiAgICAgbGFuZ3VhZ2UgaXMgcmVxdWVzdGVkLiAqLwogICN1bmRlZiBFTkFC TEVfTkxTCi1AQCAtMjEwLDYgKzIxMyw5IEBACitAQCAtMjA3LDYgKzIxMCw5IEBACiAgLyogRGVm aW5lIGlmIFB5dGhvbiAyLjcgaXMgYmVpbmcgdXNlZC4gKi8KICAjdW5kZWYgSEFWRV9MSUJQWVRI T04yXzcKICAKQEAgLTMyOSwxMSArMzI5LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5 L2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnVud2lu ZC1pYTY0Lmg+IGhlYWRlciBmaWxlLiAqLwogICN1bmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gK ICAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWd1cmUKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjUw LjIwMTQwNjA5Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE0LTA2LTEzIDIwOjEwOjE5LjY0Mjc4NzY1 MiArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZ3VyZQkyMDE0LTA2LTEz IDIwOjEwOjMxLjA3Mzc5OTE2NSArMDIwMAotQEAgLTY5Miw2ICs2OTIsMTEgQEAgUEtHVkVSU0lP TgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29uZmlndXJlCTIwMTUtMDEtMDEg MTc6MTI6MjQuODkxNDg5MDgxICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29u ZmlndXJlCTIwMTUtMDEtMDEgMTc6MTI6MjguODI4NDg2Nzk4ICswMTAwCitAQCAtNjk4LDYgKzY5 OCwxMSBAQCBQS0dWRVJTSU9OCiAgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCiAgVEFSR0VUX09C UwogIHN1YmRpcnMKQEAgLTM0NSw3ICszNDUsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYw OS9nZGIvY29uZmlndXJlCiAgR0RCX0RBVEFESVIKICBERUJVR0RJUgogIE1BS0VJTkZPX0VYVFJB X0ZMQUdTCi1AQCAtNzk1LDYgKzgwMCw3IEBAIHdpdGhfZ2RiX2RhdGFkaXIKK0BAIC04MDEsNiAr ODA2LDcgQEAgd2l0aF9nZGJfZGF0YWRpcgogIHdpdGhfcmVsb2NhdGVkX3NvdXJjZXMKICB3aXRo X2F1dG9fbG9hZF9kaXIKICB3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgKQEAgLTM1Myw3ICszNTMs NyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3Rh cmdldHMKICBlbmFibGVfNjRfYml0X2JmZAogIGVuYWJsZV9nZGJjbGkKLUBAIC04NDYsNiArODUy LDExIEBAIENQUEZMQUdTCitAQCAtODUyLDYgKzg1OCwxMSBAQCBDUFBGTEFHUwogIENQUAogIE1B S0VJTkZPCiAgTUFLRUlORk9GTEFHUwpAQCAtMzY1LDcgKzM2NSw3IEBAIEluZGV4OiBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi9jb25maWd1cmUKICBZQUNDCiAgWUZMQUdTCiAgWE1LTUYnCi1AQCAt MTUxNiw2ICsxNTI3LDggQEAgT3B0aW9uYWwgUGFja2FnZXM6CitAQCAtMTUyMiw2ICsxNTMzLDgg QEAgT3B0aW9uYWwgUGFja2FnZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbLS13aXRo LWF1dG8tbG9hZC1kaXJdCiAgICAtLXdpdGhvdXQtYXV0by1sb2FkLXNhZmUtcGF0aAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG8gbm90IHJlc3RyaWN0IGF1dG8tbG9hZGVkIGZpbGVzIGxv Y2F0aW9ucwpAQCAtMzc0LDcgKzM3NCw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dk Yi9jb25maWd1cmUKICAgIC0td2l0aC1saWJ1bndpbmQtaWE2NCAgIHVzZSBsaWJ1bndpbmQgZnJh bWUgdW53aW5kaW5nIGZvciBpYTY0IHRhcmdldHMKICAgIC0td2l0aC1jdXJzZXMgICAgICAgICAg IHVzZSB0aGUgY3Vyc2VzIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgdGVybWNhcAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlicmFyeQotQEAgLTE1NjUsNiArMTU3OCwxMyBAQCBTb21lIGlu Zmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKK0BAIC0xNTcxLDYgKzE1ODQsMTMgQEAg U29tZSBpbmZsdWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CiAgICBNQUtFSU5GTyAgICBQ YXJlbnQgY29uZmlndXJlIGRldGVjdHMgaWYgaXQgaXMgb2Ygc3VmZmljaWVudCB2ZXJzaW9uLgog ICAgTUFLRUlORk9GTEFHUwogICAgICAgICAgICAgICAgUGFyYW1ldGVycyBmb3IgTUFLRUlORk8u CkBAIC0zODgsNyArMzg4LDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZp Z3VyZQogICAgWUFDQyAgICAgICAgVGhlIGBZZXQgQW5vdGhlciBDIENvbXBpbGVyJyBpbXBsZW1l bnRhdGlvbiB0byB1c2UuIERlZmF1bHRzIHRvCiAgICAgICAgICAgICAgICB0aGUgZmlyc3QgcHJv Z3JhbSBmb3VuZCBvdXQgb2Y6IGBiaXNvbiAteScsIGBieWFjYycsIGB5YWNjJy4KICAgIFlGTEFH UyAgICAgIFRoZSBsaXN0IG9mIGFyZ3VtZW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIGJ5IGRlZmF1 bHQgdG8gJFlBQ0MuCi1AQCAtNTE2MCw2ICs1MTgwLDQ5MSBAQCBfQUNFT0YKK0BAIC01MjY3LDYg KzUyODcsNDkxIEBAIF9BQ0VPRgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoIiA+JjUKICAkYXNfZWNobyAi JHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY2OyB9CiAgCkBAIC04ODAsMTEgKzg4MCwxMSBA QCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29uZmlndXJlCiAgCiAgCiAgc3ViZGly cz0iJHN1YmRpcnMgdGVzdHN1aXRlIgotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2Nv bmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZ3VyZS5hYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvY29uZmlndXJlLmFj CTIwMTQtMDYtMTMgMjA6MTA6MTkuNjQzNzg3NjUzICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0 MDYwOS9nZGIvY29uZmlndXJlLmFjCTIwMTQtMDYtMTMgMjA6MTA6MzEuMDc0Nzk5MTY2ICswMjAw Ci1AQCAtMTY1LDYgKzE2NSwxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURfU0FGRV9QQVRI LCBlc2NhcAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29uZmlndXJlLmFjCTIw MTUtMDEtMDEgMTc6MTI6MjQuODkzNDg5MDc5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvY29uZmlndXJlLmFjCTIwMTUtMDEtMDEgMTc6MTI6MjguODI5NDg2Nzk4ICswMTAwCitA QCAtMTcyLDYgKzE3MiwxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURfU0FGRV9QQVRILCBl c2NhcAogIAkgICAgICBbRGlyZWN0b3JpZXMgc2FmZSB0byBob2xkIGF1dG8tbG9hZGVkIGZpbGVz Ll0pCiAgQUNfTVNHX1JFU1VMVChbJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aF0pCiAgCkBAIC0x MDg0LDExICsxMDg0LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWd1 cmUuYWMKICBBQ19DT05GSUdfU1VCRElSUyh0ZXN0c3VpdGUpCiAgCiAgIyBDaGVjayB3aGV0aGVy IHRvIHN1cHBvcnQgYWx0ZXJuYXRpdmUgdGFyZ2V0IGNvbmZpZ3VyYXRpb25zCi1JbmRleDogZ2Ri LTcuNy41MC4yMDE0MDYwOS9nZGIvY29yZWxvdy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmln L2dkYi9jb3JlbG93LmMJMjAxNC0wNi0xMyAyMDoxMDoxOS42NDQ3ODc2NTQgKzAyMDAKLSsrKyBn ZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb3JlbG93LmMJMjAxNC0wNi0xMyAyMDoxMDozMS4wNzQ3 OTkxNjYgKzAyMDAKLUBAIC0zMTYsNyArMzE2LDcgQEAgYnVpbGRfaWRfbG9jYXRlX2V4ZWMgKGlu dCBmcm9tX3R0eSkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvcmVsb3cuYwky MDE1LTAxLTAxIDE3OjEyOjI0Ljg5NDQ4OTA3OSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2NvcmVsb3cuYwkyMDE1LTAxLTAxIDE3OjEyOjI4LjgyOTQ4Njc5OCArMDEwMAorQEAg LTMxMCw3ICszMTAsNyBAQCBidWlsZF9pZF9sb2NhdGVfZXhlYyAoaW50IGZyb21fdHR5KQogICAg ICAgICAgc3ltZmlsZV9vYmpmaWxlLT5mbGFncyB8PSBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVE OwogICAgICB9CiAgICBlbHNlCkBAIC0xMDk3LDExICsxMDk3LDExIEBAIEluZGV4OiBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi9jb3JlbG93LmMKICAKICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsK ICAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljcu NTAuMjAxNDA2MDkub3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE0LTA2LTEzIDIwOjEwOjE5LjY0NDc4 NzY1NCArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMJMjAxNC0w Ni0xMyAyMDoxMDozMS4wNzU3OTkxNjcgKzAyMDAKLUBAIC0zMiw2ICszMiw3IEBACistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTUtMDEtMDEgMTc6MTI6MjQu ODk0NDg5MDc5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwky MDE1LTAxLTAxIDE3OjEyOjI4LjgzMDQ4Njc5NyArMDEwMAorQEAgLTMxLDYgKzMxLDcgQEAKICAj aW5jbHVkZSAiZ2RiY21kLmgiCiAgI2luY2x1ZGUgIm9ic2VydmVyLmgiCiAgI2luY2x1ZGUgPHN5 cy9zdGF0Lmg+CkBAIC0xMTA5LDcgKzExMDksNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYw OS9nZGIvYnVpbGQtaWQuYwogIAogICNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9OT05FIDAKICAj ZGVmaW5lIEJVSUxEX0lEX1ZFUkJPU0VfRklMRU5BTUVTIDEKLUBAIC02NjYsOCArNjY3LDM2MCBA QCBidWlsZF9pZF90b19maWxlbmFtZSAoY29uc3Qgc3RydWN0IGVsZl9iCitAQCAtNjY0LDggKzY2 NSwzNjAgQEAgYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBlbGZfYgogICAgcmV0 dXJuIHJlc3VsdDsKICB9CiAgCkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBJbmRleDogZ2RiLTcuNy41 MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogICAgIGF2b2lkYW5jZS4gICovCiAgCiAgc3RydWN0 IG1pc3NpbmdfZmlsZXBhaXIKLUBAIC03MjEsMTEgKzEwNzQsMTcgQEAgbWlzc2luZ19maWxlcGFp cl9jaGFuZ2UgKHZvaWQpCitAQCAtNzE5LDExICsxMDcyLDE3IEBAIG1pc3NpbmdfZmlsZXBhaXJf Y2hhbmdlICh2b2lkKQogICAgICAgIC8qIEFsbCB0aGVpciBtZW1vcnkgY2FtZSBqdXN0IGZyb20g bWlzc2luZ19maWxlcGFpcl9PQlNUQUNLLiAgKi8KICAgICAgICBtaXNzaW5nX2ZpbGVwYWlyX2hh c2ggPSBOVUxMOwogICAgICB9CkBAIC0xNDg5LDcgKzE0ODksNyBAQCBJbmRleDogZ2RiLTcuNy41 MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogICAgbWlzc2luZ19maWxlcGFpcl9jaGFuZ2UgKCk7 CiAgfQogIAotQEAgLTc5MiwxNCArMTE1MSwzNCBAQCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25z dCBjaGFyICpiaW5hcnksCitAQCAtNzkwLDE0ICsxMTQ5LDM0IEBAIGRlYnVnX3ByaW50X21pc3Np bmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwKICAKICAgICpzbG90ID0gbWlzc2luZ19maWxlcGFpcjsK ICAKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCBlYjRmMWQzLi43MWRlNGQwIDEwMDY0NAotLS0gYS9n ZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUu cGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29y ZWxvdy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29yZWxvdy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9jb3JlbG93LmMJMjAxNC0wNi0x MyAyMDowOTozNy4zNjk3NDUyMjEgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9j b3JlbG93LmMJMjAxNC0wNi0xMyAyMDowOTo0Mi40MDc3NTAyNjUgKzAyMDAKLUBAIC00OSw2ICs0 OSwxMCBAQAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29yZWxvdy5jCTIwMTUt MDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvY29yZWxvdy5jCTIwMTUtMDEtMDMgMjM6MTI6MDguNjkxMzQ5NDU0ICswMTAwCitAQCAtNDUs NiArNDUsMTAgQEAKICAjaW5jbHVkZSAiZ2RiX2JmZC5oIgogICNpbmNsdWRlICJjb21wbGV0ZXIu aCIKICAjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCkBAIC0xMyw3ICsxMyw3IEBAIEluZGV4OiBnZGIt Ny43LjUwLjIwMTQwNjA5L2dkYi9jb3JlbG93LmMKICAKICAjaWZuZGVmIE9fTEFSR0VGSUxFCiAg I2RlZmluZSBPX0xBUkdFRklMRSAwCi1AQCAtMjcyLDYgKzI3Niw1MyBAQCBhZGRfdG9fdGhyZWFk X2xpc3QgKGJmZCAqYWJmZCwgYXNlY3Rpb24KK0BAIC0yNjYsNiArMjcwLDUzIEBAIGFkZF90b190 aHJlYWRfbGlzdCAoYmZkICphYmZkLCBhc2VjdGlvbgogICAgICBpbmZlcmlvcl9wdGlkID0gcHRp ZDsJCQkvKiBZZXMsIG1ha2UgaXQgY3VycmVudC4gICovCiAgfQogIApAQCAtNjcsNyArNjcsNyBA QCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29yZWxvdy5jCiAgLyogVGhpcyByb3V0 aW5lIG9wZW5zIGFuZCBzZXRzIHVwIHRoZSBjb3JlIGZpbGUgYmZkLiAgKi8KICAKICBzdGF0aWMg dm9pZAotQEAgLTQxMCw2ICs0NjEsMTQgQEAgY29yZV9vcGVuIChjaGFyICpmaWxlbmFtZSwgaW50 IGZyb21fdHR5KQorQEAgLTQwNSw2ICs0NTYsMTQgQEAgY29yZV9vcGVuIChjb25zdCBjaGFyICph cmcsIGludCBmcm9tX3R0eQogIAlzd2l0Y2hfdG9fdGhyZWFkICh0aHJlYWQtPnB0aWQpOwogICAg ICB9CiAgCkBAIC04Miw3ICs4Miw3IEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9j b3JlbG93LmMKICAgIHBvc3RfY3JlYXRlX2luZmVyaW9yICgmY29yZV9vcHMsIGZyb21fdHR5KTsK ICAKICAgIC8qIE5vdyBnbyB0aHJvdWdoIHRoZSB0YXJnZXQgc3RhY2sgbG9va2luZyBmb3IgdGhy ZWFkcyBzaW5jZSB0aGVyZQotQEAgLTEwMjksNCArMTA4OCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3Jl bG93ICh2b2lkKQorQEAgLTEwMzUsNCArMTA5NCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2 b2lkKQogICAgaW5pdF9jb3JlX29wcyAoKTsKICAKICAgIGFkZF90YXJnZXRfd2l0aF9jb21wbGV0 ZXIgKCZjb3JlX29wcywgZmlsZW5hbWVfY29tcGxldGVyKTsKQEAgLTk0LDExICs5NCwxMSBAQCBJ bmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29yZWxvdy5jCiArCQkJICAgTlVMTCwgTlVM TCwgTlVMTCwKICsJCQkgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICB9Ci1JbmRleDogZ2RiLTcu Ny41MC4yMDE0MDYwOS9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0 MDYwOS5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNC0wNi0xMyAyMDowOTozNy4zODA3NDUy MzIgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAx NC0wNi0xMyAyMDowOTo0Mi40MTc3NTAyNzUgKzAyMDAKLUBAIC0xNzU0Nyw2ICsxNzU0NywyNyBA QCBpbmZvcm1hdGlvbiBmaWxlcy4KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Rv Yy9nZGIudGV4aW5mbwkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTAxLTAzIDIzOjEyOjA4 LjcwMTM0OTUwOSArMDEwMAorQEAgLTE3OTMwLDYgKzE3OTMwLDI3IEBAIGluZm9ybWF0aW9uIGZp bGVzLgogIAogIEBlbmQgdGFibGUKICAKQEAgLTEyNiwxOSArMTI2LDE5IEBAIEluZGV4OiBnZGIt Ny43LjUwLjIwMTQwNjA5L2dkYi9kb2MvZ2RiLnRleGluZm8KICBAY2luZGV4IEBjb2Rley5nbnVf ZGVidWdsaW5rfSBzZWN0aW9ucwogIEBjaW5kZXggZGVidWcgbGluayBzZWN0aW9ucwogIEEgZGVi dWcgbGluayBpcyBhIHNwZWNpYWwgc2VjdGlvbiBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWVk Ci1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvc29saWItc3ZyNC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny41MC4yMDE0MDYwOS5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxNC0wNi0xMyAyMDowOTozNy4z ODI3NDUyMzQgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9zb2xpYi1zdnI0LmMJ MjAxNC0wNi0xMyAyMDowOTo0Mi40MTg3NTAyNzYgKzAyMDAKLUBAIC00OCw2ICs0OCw3IEBACi0g I2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L3NvbGliLXN2cjQuYwkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTAxLTAzIDIzOjEyOjA4Ljcw MjM0OTUxNCArMDEwMAorQEAgLTQ1LDYgKzQ1LDcgQEAKKyAjaW5jbHVkZSAiYXV4di5oIgogICNp bmNsdWRlICJnZGJfYmZkLmgiCiAgI2luY2x1ZGUgInByb2JlLmgiCiArI2luY2x1ZGUgImJ1aWxk LWlkLmgiCiAgCiAgc3RhdGljIHN0cnVjdCBsaW5rX21hcF9vZmZzZXRzICpzdnI0X2ZldGNoX2xp bmtfbWFwX29mZnNldHMgKHZvaWQpOwogIHN0YXRpYyBpbnQgc3ZyNF9oYXZlX2xpbmtfbWFwX29m ZnNldHMgKHZvaWQpOwotQEAgLTEzNjksOSArMTM3MCw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAo Q09SRV9BRERSIGxtLCBDT1JFX0FECitAQCAtMTM2Niw5ICsxMzY3LDUyIEBAIHN2cjRfcmVhZF9z b19saXN0IChDT1JFX0FERFIgbG0sIENPUkVfQUQKICAJICBjb250aW51ZTsKICAJfQogIApAQCAt MTk0LDExICsxOTQsMTEgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3NvbGliLXN2 cjQuYwogICAgICAgIHhmcmVlIChidWZmZXIpOwogIAogICAgICAgIC8qIElmIHRoaXMgZW50cnkg aGFzIG5vIG5hbWUsIG9yIGl0cyBuYW1lIG1hdGNoZXMgdGhlIG5hbWUKLUluZGV4OiBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5Lm9yaWcvZ2Ri L2VsZnJlYWQuYwkyMDE0LTA2LTEzIDIwOjA5OjM3LjM4Mzc0NTIzNSArMDIwMAotKysrIGdkYi03 LjcuNTAuMjAxNDA2MDkvZ2RiL2VsZnJlYWQuYwkyMDE0LTA2LTEzIDIwOjA5OjQyLjQxODc1MDI3 NiArMDIwMAotQEAgLTEzMzUsOSArMTMzNSwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9lbGZyZWFk LmMJMjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9lbGZyZWFkLmMJMjAxNS0wMS0wMyAyMzoxMjowOC43MDMzNDk1MTkgKzAxMDAK K0BAIC0xMzM5LDkgKzEzMzksMTAgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUg Km9iamZpbAogIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwK ICAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxM KQogICAgICB7CkBAIC0yMTEsNyArMjExLDcgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkv Z2RiL2VsZnJlYWQuYwogIAogICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKICAJZGVidWdm aWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1A QCAtMTM1MSw2ICsxMzUyLDEyIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWwKK0BAIC0xMzU1LDYgKzEzNTYsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9i amZpbGUgKm9iamZpbAogIAkgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJmZCwgZGVidWdm aWxlLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKICAJICBkb19jbGVhbnVwcyAoY2xlYW51cCk7 CiAgCX0KQEAgLTIyNCwxMSArMjI0LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dk Yi9lbGZyZWFkLmMKICAgICAgfQogIH0KICAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dk Yi9zeW1maWxlLmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1maWxlLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE0 LTA2LTEzIDIwOjA5OjQyLjQxOTc1MDI3NyArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkv Z2RiL3N5bWZpbGUuaAkyMDE0LTA2LTEzIDIwOjEwOjA0LjQ3ODc3MjUxMCArMDIwMAotQEAgLTU3 MCw2ICs1NzAsMTAgQEAgdm9pZCBleHBhbmRfc3ltdGFic19tYXRjaGluZyAoZXhwYW5kX3N5bQor LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTUtMDEtMDMgMjM6 MTE6NTQuMDE4MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmls ZS5oCTIwMTUtMDEtMDMgMjM6MTI6MDguNzAzMzQ5NTE5ICswMTAwCitAQCAtNTc0LDYgKzU3NCwx MCBAQCB2b2lkIGV4cGFuZF9zeW10YWJzX21hdGNoaW5nIChleHBhbmRfc3ltCiAgdm9pZCBtYXBf c3ltYm9sX2ZpbGVuYW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEs CiAgCQkJICAgaW50IG5lZWRfZnVsbG5hbWUpOwogIApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5k ZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYycmVh ZC5jICovCiAgCiAgLyogTmFtZXMgZm9yIGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAgVGhl IGZpZWxkIE5PUk1BTCBpcyB0aGUgbm9ybWFsCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9n ZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYw OS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNC0wNi0xMyAyMDowOTozNy4zODQ3 NDUyMzYgKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAJMjAxNC0wNi0xMyAyMDowOTo0Mi40MjA3NTAyNzggKzAyMDAKLUBAIC0xNDkyLDYgKzE0 OTIsMTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTUtMDEtMDMgMjM6MTE6NTQu MDE4MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCTIwMTUtMDEtMDMgMjM6MTI6MDguNzA0MzQ5NTI1ICswMTAwCitAQCAtMTUyMiw2 ICsxNTIyLDE2IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5pbmcg IkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtMjYwLDExICsy NjAsMTEgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAogICAgICByZXR1cm4gMAogIH0KICAKLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dk Yi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE0 LTA2LTEzIDIwOjA5OjM3LjM4NTc0NTIzNyArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkv Z2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNC0wNi0xMyAyMDowOTo0Mi40MjE3 NTAyNzkgKzAyMDAKLUBAIC0yMTIsNiArMjEyLDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3Rh cnQgeyBhcmdzIH0geworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdGVzdHN1aXRl L2xpYi9taS1zdXBwb3J0LmV4cAkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJ MjAxNS0wMS0wMyAyMzoxMjowOC43MDUzNDk1MzAgKzAxMDAKK0BAIC0yMTQsNiArMjE0LDE2IEBA IHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0gewogIAkgICAgd2FybmluZyAiQ291 bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yODEsMTEgKzI4MSwx MSBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBw b3J0LmV4cAogICAgICAjIElmIGFsbG93aW5nIHRoZSBpbmZlcmlvciB0byBoYXZlIGl0cyBvd24g UFRZIHRoZW4gYXNzaWduIHRoZSBpbmZlcmlvcgogICAgICAjIGl0cyBvd24gdGVybWluYWwgZGV2 aWNlIGhlcmUuCiAgICAgIGlmIHsgJHNlcGFyYXRlX2luZmVyaW9yX3B0eSB9IHsKLUluZGV4OiBn ZGItNy43LjUwLjIwMTQwNjA5L2dkYi9vYmpmaWxlcy5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvb2JqZmlsZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDku b3JpZy9nZGIvb2JqZmlsZXMuaAkyMDE0LTA2LTEzIDIwOjA5OjM3LjM4NTc0NTIzNyArMDIwMAot KysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL29iamZpbGVzLmgJMjAxNC0wNi0xMyAyMDowOTo0 Mi40MjE3NTAyNzkgKzAyMDAKLUBAIC00NjQsNiArNDY0LDEwIEBAIHN0cnVjdCBvYmpmaWxlCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9vYmpmaWxlcy5oCTIwMTUtMDEtMDMgMjM6 MTE6NTQuMDE4MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvb2JqZmls ZXMuaAkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwNTM0OTUzMCArMDEwMAorQEAgLTQ1OSw2ICs0NTks MTAgQEAgc3RydWN0IG9iamZpbGUKICAKICAjZGVmaW5lIE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8 IDYpCiAgCkBAIC0yOTYsMTAgKzI5NiwxMCBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9n ZGIvb2JqZmlsZXMuaAogIC8qIERlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zIGRlZmluZWQgaW4g b2JqZmlsZXMuYyAqLwogIAogIGV4dGVybiBzdHJ1Y3Qgb2JqZmlsZSAqYWxsb2NhdGVfb2JqZmls ZSAoYmZkICosIGNvbnN0IGNoYXIgKm5hbWUsIGludCk7Ci1JbmRleDogZ2RiLTcuNy41MC4yMDE0 MDYwOS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAorSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy43LjUwLjIwMTQwNjA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j b3JlZmlsZS5leHAJMjAxNC0wNi0xMyAyMDowOTozNy4zODU3NDUyMzcgKzAyMDAKLSsrKyBnZGIt Ny43LjUwLjIwMTQwNjA5L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTQt MDYtMTMgMjA6MDk6NDIuNDIxNzUwMjc5ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTUtMDEtMDMgMjM6MTE6 NTQuMDE4MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwNTM0OTUzMCArMDEw MAogQEAgLTI5MywzICsyOTMsMzMgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgImNvcmUtZmlsZSAkY29y ZWZpbGUiCiAgCXBhc3MgJHRlc3QKICAgICAgfQpAQCAtMzM0LDExICszMzQsMTEgQEAgSW5kZXg6 IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAK ICsgICAgZ2RiX3Rlc3QgImluZm8gZmlsZXMiICJMb2NhbCBleGVjIGZpbGU6XHJcblxbIFx0XF0q YFtzdHJpbmdfdG9fcmVnZXhwICRkZWJ1Z2Rpci8kYnVpbGRpZF0nLCBmaWxlIHR5cGUgLioiCiAr ICAgIHBhc3MgJHdob2xldGVzdAogK30KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9i dWlsZC1pZC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE0 LTA2LTEzIDIwOjA5OjM3LjM4Njc0NTIzOCArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkv Z2RiL2J1aWxkLWlkLmMJMjAxNC0wNi0xMyAyMDowOTo0Mi40MjI3NTAyODAgKzAyMDAKLUBAIC0y NywxMSArMjcsNjUgQEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2J1aWxkLWlk LmMJMjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9idWlsZC1pZC5jCTIwMTUtMDEtMDMgMjM6MTI6NDAuNzkyNTIzMDg1ICswMTAw CitAQCAtMjYsMTEgKzI2LDY0IEBACiAgI2luY2x1ZGUgInN5bWZpbGUuaCIKICAjaW5jbHVkZSAi b2JqZmlsZXMuaCIKICAjaW5jbHVkZSAiZmlsZW5hbWVzLmgiCkBAIC0zNTksMTEgKzM1OSwxMSBA QCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogKyAgZnByaW50Zl9m aWx0ZXJlZCAoZmlsZSwgXygiVmVyYm9zaXR5IGxldmVsIG9mIHRoZSBidWlsZC1pZCBsb2NhdG9y IGlzICVzLlxuIiksCiArCQkgICAgdmFsdWUpOwogK30KLSsKKyAKKy0vKiBTZWUgYnVpbGQtaWQu aC4gICovCiArLyogTG9jYXRlIE5UX0dOVV9CVUlMRF9JRCBhbmQgcmV0dXJuIGl0cyBtYXRjaGlu ZyBkZWJ1ZyBmaWxlbmFtZS4KICsgICBGSVhNRTogTk9URSBkZWNvZGluZyBzaG91bGQgYmUgdW5p ZmllZCB3aXRoIHRoZSBCRkQgY29yZSBub3RlcyBkZWNvZGluZy4gICovCi0gCi0tLyogTG9jYXRl IE5UX0dOVV9CVUlMRF9JRCBmcm9tIEFCRkQgYW5kIHJldHVybiBpdHMgY29udGVudC4gICovCisr CiArc3RhdGljIHN0cnVjdCBlbGZfYnVpbGRfaWQgKgogK2J1aWxkX2lkX2J1Zl9nZXQgKGJmZCAq dGVtcGwsIGdkYl9ieXRlICpidWYsIGJmZF9zaXplX3R5cGUgc2l6ZSkKICt7CkBAIC0zODksMjQg KzM4OSwyMyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogKwkg IHJldHZhbCA9IHhtYWxsb2MgKHNpemVvZiAqcmV0dmFsIC0gMSArIHNpemUpOwogKwkgIHJldHZh bC0+c2l6ZSA9IHNpemU7CiArCSAgbWVtY3B5IChyZXR2YWwtPmRhdGEsIGRhdGEsIHNpemUpOwot KworIAogKwkgIHJldHVybiByZXR2YWw7CiArCX0KICsgICAgICBwID0gZGVzY2RhdGEgKyBCRkRf QUxJR04gKGRlc2NzeiwgNCk7CiArICAgIH0KICsgIHJldHVybiBOVUxMOwogK30KLSAKLSsvKiBT ZXBhcmF0ZSBkZWJ1Z2luZm8gZmlsZXMgaGF2ZSBjb3JydXB0ZWQgUEhEUiBidXQgU0hEUiBpcyBj b3JyZWN0IHRoZXJlLgotKyAgIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQgZnJvbSBBQkZEIGFuZCBy ZXR1cm4gaXRzIGNvbnRlbnQuICAqLworKworKy8qIFNlZSBidWlsZC1pZC5oLiAgKi8KICsgCi0g c3RhdGljIGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKgorIGNvbnN0IHN0cnVjdCBlbGZfYnVp bGRfaWQgKgogLWJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCkKICtidWlsZF9pZF9iZmRfc2hk cl9nZXQgKGJmZCAqYWJmZCkKICB7CiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKGFiZmQsIGJm ZF9vYmplY3QpCiAgICAgICAgfHwgYmZkX2dldF9mbGF2b3VyIChhYmZkKSAhPSBiZmRfdGFyZ2V0 X2VsZl9mbGF2b3VyCi1AQCAtNDUsNiArOTksMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAq YWJmZCkKK0BAIC00NCw2ICs5NywzNDggQEAgYnVpbGRfaWRfYmZkX2dldCAoYmZkICphYmZkKQog ICAgcmV0dXJuIGVsZl90ZGF0YSAoYWJmZCktPmJ1aWxkX2lkOwogIH0KICAKQEAgLTc1NSw3ICs3 NTQsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogIC8qIFNl ZSBidWlsZC1pZC5oLiAgKi8KICAKICBpbnQKLUBAIC01Myw3ICs0NDksNyBAQCBidWlsZF9pZF92 ZXJpZnkgKGJmZCAqYWJmZCwgc2l6ZV90IGNoZWNrCitAQCAtNTIsNyArNDQ3LDcgQEAgYnVpbGRf aWRfdmVyaWZ5IChiZmQgKmFiZmQsIHNpemVfdCBjaGVjawogICAgY29uc3Qgc3RydWN0IGVsZl9i dWlsZF9pZCAqZm91bmQ7CiAgICBpbnQgcmV0dmFsID0gMDsKICAKQEAgLTc2NCw3ICs3NjMsNyBA QCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwogIAogICAgaWYgKGZv dW5kID09IE5VTEwpCiAgICAgIHdhcm5pbmcgKF8oIkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1p ZCwgZmlsZSBza2lwcGVkIiksCi1AQCAtNjgsMjAgKzQ2NCw1NiBAQCBidWlsZF9pZF92ZXJpZnkg KGJmZCAqYWJmZCwgc2l6ZV90IGNoZWNrCitAQCAtNjcsMjAgKzQ2Miw1NiBAQCBidWlsZF9pZF92 ZXJpZnkgKGJmZCAqYWJmZCwgc2l6ZV90IGNoZWNrCiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAK QEAgLTgyNSw3ICs4MjQsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQt aWQuYwogIAogICAgLyogS2VlcCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdf RklMRV9ESVJFQ1RPUlkgYmVpbmcgIiIgd2lsbAogICAgICAgY2F1c2UgIi8uYnVpbGQtaWQvLi4u IiBsb29rdXBzLiAgKi8KLUBAIC05NCw4ICs1MjYsMTEgQEAgYnVpbGRfaWRfdG9fZGVidWdfYmZk IChzaXplX3QgYnVpbGRfaWRfbAorQEAgLTkzLDggKzUyNCwxMSBAQCBidWlsZF9pZF90b19kZWJ1 Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sCiAgICAgICAgc2l6ZV90IGRlYnVnZGlyX2xlbiA9IHN0 cmxlbiAoZGVidWdkaXIpOwogICAgICAgIGNvbnN0IGdkYl9ieXRlICpkYXRhID0gYnVpbGRfaWQ7 CiAgICAgICAgc2l6ZV90IHNpemUgPSBidWlsZF9pZF9sZW47CkBAIC04MzgsNyArODM3LDcgQEAg SW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMKICAKICAgICAgICBtZW1j cHkgKGxpbmssIGRlYnVnZGlyLCBkZWJ1Z2Rpcl9sZW4pOwogICAgICAgIHMgPSAmbGlua1tkZWJ1 Z2Rpcl9sZW5dOwotQEAgLTEwOSw0NCArNTQ0LDI4MiBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQg KHNpemVfdCBidWlsZF9pZF9sCitAQCAtMTA4LDQ0ICs1NDIsMjgyIEBAIGJ1aWxkX2lkX3RvX2Rl YnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2wKICAJKnMrKyA9ICcvJzsKICAgICAgICB3aGlsZSAo c2l6ZS0tID4gMCkKICAJcyArPSBzcHJpbnRmIChzLCAiJTAyeCIsICh1bnNpZ25lZCkgKmRhdGEr Kyk7CkBAIC05MDksNyArOTA4LDkgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1 aWxkLWlkLmMKICsJICB4ZnJlZSAoZmlsZW5hbWUpOwogKwkgIGZpbGVuYW1lID0gTlVMTDsKICsJ fQotKworIAorLSAgICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOworLSAgICAgIGFiZmQgPSBOVUxM OwogKyAgICAgIGlmIChmaWxlbmFtZSAhPSBOVUxMKQogKwl7CiArCSAgLyogTElOS19BTEwgaXMg bm90IHVzZWQgYmVsb3cgaW4gdGhpcyBub24tTlVMTCBGSUxFTkFNRSBjYXNlLiAgKi8KQEAgLTkz NSw5ICs5MzYsNyBAQCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVpbGQtaWQuYwog KwkgIC8qIFVzZSB3aGl0ZXNwYWNlIGluc3RlYWQgb2YgRElSTkFNRV9TRVBBUkFUT1IgdG8gYmUg Y29tcGF0aWJsZSB3aXRoCiArCSAgICAgaXRzIHBvc3NpYmxlIHVzZSBhcyBhbiBhcmd1bWVudCBm b3IgaW5zdGFsbGF0aW9uIGNvbW1hbmQuICAqLwogKwkgIGxpbmtfYWxsW2xlbl9vcmlnXSA9ICcg JzsKLSAKLS0gICAgICBnZGJfYmZkX3VucmVmIChhYmZkKTsKLS0gICAgICBhYmZkID0gTlVMTDsK KysKICsJICBzdHJjcHkgKCZsaW5rX2FsbFtsZW5fb3JpZyArIDFdLCBsaW5rMF9yZXNvbHZlZCk7 CiArCSAgeGZyZWUgKGxpbmswX3Jlc29sdmVkKTsKICsJfQpAQCAtMTEzOCw3ICsxMTM3LDcgQEAg SW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMKICAgICAgICAvKiBQcmV2 ZW50IGxvb3Bpbmcgb24gYSBzdHJpcHBlZCAuZGVidWcgZmlsZS4gICovCiAgICAgICAgaWYgKGFi ZmQgIT0gTlVMTAogIAkgICYmIGZpbGVuYW1lX2NtcCAoYmZkX2dldF9maWxlbmFtZSAoYWJmZCks Ci1AQCAtMTY2LDMgKzgzOSwyMSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRp ZCAoc3RyCitAQCAtMTY1LDMgKzgzNywyMSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlf YnVpbGRpZCAoc3RyCiAgICAgIH0KICAgIHJldHVybiBOVUxMOwogIH0KQEAgLTExNjAsMTEgKzEx NTksMjQgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmMKICsKICsg IG9ic2VydmVyX2F0dGFjaF9leGVjdXRhYmxlX2NoYW5nZWQgKGRlYnVnX3ByaW50X2V4ZWN1dGFi bGVfY2hhbmdlZCk7CiArfQotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlk LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWlsZC1pZC5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9idWlsZC1pZC5oCTIwMTQtMDYtMTMg MjA6MDk6MzcuMzg2NzQ1MjM4ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvYnVp bGQtaWQuaAkyMDE0LTA2LTEzIDIwOjA5OjQyLjQyMjc1MDI4MCArMDIwMAotQEAgLTMyLDEzICsz MiwxOCBAQCBleHRlcm4gaW50IGJ1aWxkX2lkX3ZlcmlmeSAoYmZkICphYmZkLAorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE1LTAxLTAzIDIzOjExOjU0LjAx ODI3MDA5MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1aWxkLWlkLmgJMjAx NS0wMS0wMyAyMzoxMjowOC43MDYzNDk1MzYgKzAxMDAKK0BAIC0yMCw5ICsyMCwxMCBAQAorICNp Zm5kZWYgQlVJTERfSURfSAorICNkZWZpbmUgQlVJTERfSURfSAorIAorLS8qIExvY2F0ZSBOVF9H TlVfQlVJTERfSUQgZnJvbSBBQkZEIGFuZCByZXR1cm4gaXRzIGNvbnRlbnQuICAqLworKy8qIFNl cGFyYXRlIGRlYnVnaW5mbyBmaWxlcyBoYXZlIGNvcnJ1cHRlZCBQSERSIGJ1dCBTSERSIGlzIGNv cnJlY3QgdGhlcmUuCisrICAgTG9jYXRlIE5UX0dOVV9CVUlMRF9JRCBmcm9tIEFCRkQgYW5kIHJl dHVybiBpdHMgY29udGVudC4gICovCisgCistZXh0ZXJuIGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRf aWQgKmJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCk7CisrZXh0ZXJuIGNvbnN0IHN0cnVjdCBl bGZfYnVpbGRfaWQgKmJ1aWxkX2lkX2JmZF9zaGRyX2dldCAoYmZkICphYmZkKTsKKyAKKyAvKiBS ZXR1cm4gdHJ1ZSBpZiBBQkZEIGhhcyBOVF9HTlVfQlVJTERfSUQgbWF0Y2hpbmcgdGhlIENIRUNL IHZhbHVlLgorICAgIE90aGVyd2lzZSwgaXNzdWUgYSB3YXJuaW5nIGFuZCByZXR1cm4gZmFsc2Uu ICAqLworQEAgLTM2LDEzICszNywxOCBAQCBleHRlcm4gaW50IGJ1aWxkX2lkX3ZlcmlmeSAoYmZk ICphYmZkLAogICAgIHRoZSBjYWxsZXIuICAqLwogIAogIGV4dGVybiBiZmQgKmJ1aWxkX2lkX3Rv X2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2xlbiwKQEAgLTExODUsMTEgKzExOTcsMTEgQEAg SW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2J1aWxkLWlkLmgKICsJCQkJCSAgICAgICBj aGFyICoqYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuKTsKICAKICAjZW5kaWYgLyogQlVJTERfSURf SCAqLwotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDYtMTMgMjA6MDk6 MzcuMzg5NzQ1MjQxICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZHdhcmYycmVh ZC5jCTIwMTQtMDYtMTMgMjA6MDk6NDIuNDI1NzUwMjgzICswMjAwCi1AQCAtMjQ0Niw3ICsyNDQ2 LDcgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAodm9pZCkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTAzIDIz OjEyOjA4LjcxMTM0OTU2MyArMDEwMAorQEAgLTI0NDMsNyArMjQ0Myw3IEBAIGR3YXJmMl9nZXRf ZHd6X2ZpbGUgKHZvaWQpCiAgICAgIH0KICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCkBAIC0x MTk4LDMgKzEyMTAsMjUgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2R3YXJmMnJl YWQuYwogIAogICAgaWYgKGR3el9iZmQgPT0gTlVMTCkKICAgICAgZXJyb3IgKF8oImNvdWxkIG5v dCBmaW5kICcuZ251X2RlYnVnYWx0bGluaycgZmlsZSBmb3IgJXMiKSwKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9weXRob24vcHktb2JqZmlsZS5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTUtMDEtMDMg MjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0 aG9uL3B5LW9iamZpbGUuYwkyMDE1LTAxLTAzIDIzOjEyOjA4LjcxMjM0OTU2OCArMDEwMAorQEAg LTExOCw3ICsxMTgsNyBAQCBvYmpmcHlfZ2V0X2J1aWxkX2lkIChQeU9iamVjdCAqc2VsZiwgdm9p CisgCisgICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAgICB7CistICAg ICAgYnVpbGRfaWQgPSBidWlsZF9pZF9iZmRfZ2V0IChvYmpmaWxlLT5vYmZkKTsKKysgICAgICBi dWlsZF9pZCA9IGJ1aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqZmlsZS0+b2JmZCk7CisgICAgIH0K KyAgIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OIChleGNlcHQpOworIAorQEAgLTQ2Nyw3ICs0Njcs NyBAQCBvYmpmcHlfbG9va3VwX29iamZpbGVfYnlfYnVpbGRfaWQgKGNvbnN0CisgICAgICAgLyog RG9uJ3QgcmV0dXJuIHNlcGFyYXRlIGRlYnVnIGZpbGVzLiAgKi8KKyAgICAgICBpZiAob2JqZmls ZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayAhPSBOVUxMKQorIAljb250aW51ZTsK Ky0gICAgICBvYmZkX2J1aWxkX2lkID0gYnVpbGRfaWRfYmZkX2dldCAob2JqZmlsZS0+b2JmZCk7 CisrICAgICAgb2JmZF9idWlsZF9pZCA9IGJ1aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqZmlsZS0+ b2JmZCk7CisgICAgICAgaWYgKG9iZmRfYnVpbGRfaWQgPT0gTlVMTCkKKyAJY29udGludWU7Cisg ICAgICAgaWYgKG9iamZweV9idWlsZF9pZF9tYXRjaGVzIChvYmZkX2J1aWxkX2lkLCBidWlsZF9p ZCkpCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZvLnBhdGNo IGIvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZvLnBhdGNoCmluZGV4IGQ2ZDk0MTYu LjhkZjI5MjQgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5w YXRjaAorKysgYi9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0Y2gKQEAgLTMs MjMgKzMsMTAgQEAKIAlQb3J0IHRvIEdEQi02LjhwcmUuCiAJUmVtb3ZlIHRoZSBgWycgY2hhcmFj dGVyIGZyb20gdGhlIEdEQi02LjggZGVmYXVsdCBtZXNzYWdlLgogCi1JbmRleDogZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvbGludXgtbmF0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMDItMDQgMjM6NDc6MzkuMjc1MDM0NDkx ICswMTAwCi0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbGludXgtbmF0LmMJMjAxNC0wMi0w NCAyMzo0ODoxMS45NDMwNzQxMzIgKzAxMDAKLUBAIC00MjYsNyArNDI2LDcgQEAgaG9sZGluZyB0 aGUgY2hpbGQgc3RvcHBlZC4gIFRyeSBcInNldCBkZQotIAkgICAgICByZW1vdmVfYnJlYWtwb2lu dHNfcGlkIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLSAJICAgIH0KLSAKLS0JICBp ZiAoaW5mb192ZXJib3NlIHx8IGRlYnVnX2xpbnV4X25hdCkKLSsJICBpZiAoMSAvKiBGZWRvcmEg QnVnIDIzNTE5NyAqLyB8fCBpbmZvX3ZlcmJvc2UgfHwgZGVidWdfbGludXhfbmF0KQotIAkgICAg ewotIAkgICAgICB0YXJnZXRfdGVybWluYWxfb3VycyAoKTsKLSAJICAgICAgZnByaW50Zl9maWx0 ZXJlZCAoZ2RiX3N0ZGxvZywKLUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmMJMjAxNC0wMi0wNCAy Mzo0NzozOS4yNzUwMzQ0OTEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guYwkyMDE1LTAxLTA2IDE5OjMxOjQwLjcwMzk4ODUz NCArMDEwMAogQEAgLTAsMCArMSw1NyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBH REIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03OCwxMCArNjUsMTAgQEAgSW5kZXg6IGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCiArICAg IH0KICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNoLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAJMjAx NC0wMi0wNCAyMzo0NzozOS4yNzYwMzQ0OTMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guZXhwCTIwMTUtMDEtMDYgMTk6MzE6 NDAuNzA0OTg4NTM4ICswMTAwCiBAQCAtMCwwICsxLDM2IEBACiArIyBDb3B5cmlnaHQgMjAwNyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTExOSwzICsxMDYsMTYgQEAgSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFj aC5leHAKICtnZGJfdGVzdCAiIiBcCiArICAgICAgICAgIkRldGFjaGluZyBhZnRlciBmb3JrIGZy b20gY2hpbGQgcHJvY2Vzcy4qXFxcW0luZmVyaW9yIC4qIGV4aXRlZCBub3JtYWxseVxcXF0iIFwK ICsgICAgICAgICAiSW5mbyBtZXNzYWdlIGNhdWdodCIKK0luZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9pbmZydW4uYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvaW5mcnVuLmMJMjAxNS0wMS0wNiAxOTozMTo0MC4yNjI5ODY2NDQgKzAxMDAKKysrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYwkyMDE1LTAxLTA2IDE5OjQzOjU0Ljg2NTIx OTA5NiArMDEwMAorQEAgLTQ1Niw3ICs0NTYsNyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVk LiAgVHJ5IFwic2V0IGRlCisgCSAgICAgIHJlbW92ZV9icmVha3BvaW50c19waWQgKHB0aWRfZ2V0 X3BpZCAoaW5mZXJpb3JfcHRpZCkpOworIAkgICAgfQorIAorLQkgIGlmIChpbmZvX3ZlcmJvc2Ug fHwgZGVidWdfaW5mcnVuKQorKwkgIGlmICgxIC8qIEZlZG9yYSBCdWcgMjM1MTk3ICovIHx8IGlu Zm9fdmVyYm9zZSB8fCBkZWJ1Z19pbmZydW4pCisgCSAgICB7CisgCSAgICAgIHRhcmdldF90ZXJt aW5hbF9vdXJzX2Zvcl9vdXRwdXQgKCk7CisgCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKGdkYl9z dGRsb2csCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdh dGNocG9pbnRzMi5wYXRjaCBiL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRj aHBvaW50czIucGF0Y2gKaW5kZXggOGNlODEwNy4uOGM0MTYyYSAxMDA2NDQKLS0tIGEvZ2RiLTYu Ni1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRzMi5wYXRjaAorKysgYi9nZGIt Ni42LXNjaGVkdWxlcl9sb2NraW5nLXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoCkBAIC0yMSwx MSArMjEsMTEgQEAKIAogCVBvcnQgdG8gR0RCLTYuOHByZS4KIAotSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5m cnVuLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2luZnJ1 bi5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvaW5mcnVuLmMJMjAxNC0wNi0xMyAyMTozNjo0My42MzcyOTQ3ODIgKzAyMDAK LUBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyBpbnQgZm9sbG93X2ZvcmsgKHZvaWQpOworLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaW5mcnVuLmMJMjAxNC0xMi0yOCAyMTozMzo0MS4z MDE1NDc4ODAgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYwkyMDE1 LTAxLTAxIDE3OjAwOjA4LjIxMjkyMDY5MCArMDEwMAorQEAgLTg2LDcgKzg2LDcgQEAgc3RhdGlj IHZvaWQgZm9sbG93X2luZmVyaW9yX3Jlc2V0X2JyZWFrcAogIHN0YXRpYyB2b2lkIHNldF9zY2hl ZGxvY2tfZnVuYyAoY2hhciAqYXJncywgaW50IGZyb21fdHR5LAogIAkJCQlzdHJ1Y3QgY21kX2xp c3RfZWxlbWVudCAqYyk7CiAgCkBAIC0zNCwxNyArMzQsMTYgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2luZnJ1bi5jCiAgCiAgc3RhdGljIHZvaWQgeGRiX2hhbmRsZV9jb21tYW5k IChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpOwogIAotQEAgLTE3NDIsNyArMTc0Miw4IEBAIHVz ZXJfdmlzaWJsZV9yZXN1bWVfcHRpZCAoaW50IHN0ZXApCitAQCAtMTk5OCw3ICsxOTk4LDcgQEAg dXNlcl92aXNpYmxlX3Jlc3VtZV9wdGlkIChpbnQgc3RlcCkKKyAgICAgICByZXN1bWVfcHRpZCA9 IGluZmVyaW9yX3B0aWQ7CiAgICAgIH0KICAgIGVsc2UgaWYgKChzY2hlZHVsZXJfbW9kZSA9PSBz Y2hlZGxvY2tfb24pCi0gCSAgIHx8IChzY2hlZHVsZXJfbW9kZSA9PSBzY2hlZGxvY2tfc3RlcAot LQkgICAgICAgJiYgKHN0ZXAgfHwgc2luZ2xlc3RlcF9icmVha3BvaW50c19pbnNlcnRlZF9wKSkp Ci0rCSAgICAgICAmJiAoc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSCi0rCQkgICB8fCBzaW5nbGVz dGVwX2JyZWFrcG9pbnRzX2luc2VydGVkX3ApKSkKKy0JICAgfHwgKHNjaGVkdWxlcl9tb2RlID09 IHNjaGVkbG9ja19zdGVwICYmIHN0ZXApKQorKwkgICB8fCAoc2NoZWR1bGVyX21vZGUgPT0gc2No ZWRsb2NrX3N0ZXAgJiYgc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSKSkKICAgICAgewogICAgICAg IC8qIFVzZXItc2V0dGFibGUgJ3NjaGVkdWxlcicgbW9kZSByZXF1aXJlcyBzb2xvIHRocmVhZCBy ZXN1bWUuICAqLwogICAgICAgIHJlc3VtZV9wdGlkID0gaW5mZXJpb3JfcHRpZDsKLUBAIC0xNzYw LDcgKzE3NjEsNyBAQCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQorQEAgLTIw MjIsNyArMjAyMiw3IEBAIHVzZXJfdmlzaWJsZV9yZXN1bWVfcHRpZCAoaW50IHN0ZXApCiAgICAg U1RFUCBub256ZXJvIGlmIHdlIHNob3VsZCBzdGVwICh6ZXJvIHRvIGNvbnRpbnVlIGluc3RlYWQp LgogICAgIFNJRyBpcyB0aGUgc2lnbmFsIHRvIGdpdmUgdGhlIGluZmVyaW9yICh6ZXJvIGZvciBu b25lKS4gICovCiAgdm9pZApAQCAtNTMsNyArNTIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvaW5mcnVuLmMKICB7CiAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NsZWFudXBzID0g bWFrZV9jbGVhbnVwIChyZXN1bWVfY2xlYW51cHMsIDApOwogICAgc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSA9IGdldF9jdXJyZW50X3JlZ2NhY2hlICgpOwotQEAgLTE4MDAsOSArMTgwMSwxMyBA QCByZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQorQEAgLTIwNjQsOSArMjA2 NCwxMyBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQogIAogICAgaWYg KGRlYnVnX2luZnJ1bikKICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLApAQCAt NjksNyArNjgsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5mcnVuLmMKICAJ CQl0cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkLAogIAkJCXRhcmdldF9waWRfdG9fc3RyIChpbmZl cmlvcl9wdGlkKSwKICAJCQlwYWRkcmVzcyAoZ2RiYXJjaCwgcGMpKTsKLUBAIC0yMTg4LDYgKzIx OTMsNyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCitAQCAtMjU0 Myw2ICsyNTQ3LDcgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gZ2RiX3NpZ25hbAog ICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKICAgIENPUkVfQUREUiBwYzsKICAgIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICphc3BhY2U7CkBAIC03Nyw3ICs3Niw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9pbmZydW4uYwogIAogICAgLyogSWYgd2UncmUgc3RvcHBlZCBhdCBhIGZv cmsvdmZvcmssIGZvbGxvdyB0aGUgYnJhbmNoIHNldCBieSB0aGUKICAgICAgICJzZXQgZm9sbG93 LWZvcmstbW9kZSIgY29tbWFuZDsgb3RoZXJ3aXNlLCB3ZSdsbCBqdXN0IHByb2NlZWQKLUBAIC0y MjMwLDEzICsyMjM2LDE5IEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWdu YWwKK0BAIC0yNTg2LDEzICsyNTkxLDE5IEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVt IGdkYl9zaWduYWwKICAJICAgTm90ZSwgd2UgZG9uJ3QgZG8gdGhpcyBpbiByZXZlcnNlLCBiZWNh dXNlIHdlIHdvbid0CiAgCSAgIGFjdHVhbGx5IGJlIGV4ZWN1dGluZyB0aGUgYnJlYWtwb2ludCBp bnNuIGFueXdheS4KICAJICAgV2UnbGwgYmUgKHVuLSlleGVjdXRpbmcgdGhlIHByZXZpb3VzIGlu c3RydWN0aW9uLiAgKi8KQEAgLTk3LDcgKzk2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2luZnJ1bi5jCiAgICAgIH0KICAgIGVsc2UKICAgICAgewotQEAgLTIyODgsNiArMjMw MCw3IEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKK0BAIC0yNjQ3 LDYgKzI2NTgsNyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCiAg CSAgdHAtPnByZXZfcGMgPSByZWdjYWNoZV9yZWFkX3BjIChnZXRfY3VycmVudF9yZWdjYWNoZSAo KSk7CiAgCSAgc3dpdGNoX3RvX3RocmVhZCAoc3RlcF9vdmVyLT5wdGlkKTsKICAJICB0cCA9IHN0 ZXBfb3ZlcjsKQEAgLTEwNSw5ICsxMDQsOSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvaW5mcnVuLmMKICAJfQogICAgICB9CiAgCi1AQCAtMjM3NSw5ICsyMzg4LDEzIEBAIHByb2Nl ZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKLSAgIC8qIFJlc2V0IHRvIG5vcm1h bCBzdGF0ZS4gICovCi0gICBpbml0X2luZndhaXRfc3RhdGUgKCk7CitAQCAtMjY5OSw5ICsyNzEx LDEzIEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKKyAgICAgIGNv cnJlY3RseSB3aGVuIHRoZSBpbmZlcmlvciBpcyBzdG9wcGVkLiAgKi8KKyAgIHRwLT5wcmV2X3Bj ID0gcmVnY2FjaGVfcmVhZF9wYyAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCkpOwogIAogKyAgaWYg KHRwLT5jb250cm9sLnRyYXBfZXhwZWN0ZWQgfHwgc3RlcCkKICsgICAgcmVzdW1lX3N0ZXAgPSBS RVNVTUVfU1RFUF9VU0VSOwpAQCAtMTIxLDcgKzEyMCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9pbmZydW4uYwogIAogICAgLyogV2FpdCBmb3IgaXQgdG8gc3RvcCAoaWYgbm90 IHN0YW5kYWxvbmUpCiAgICAgICBhbmQgaW4gYW55IGNhc2UgZGVjb2RlIHdoeSBpdCBzdG9wcGVk LCBhbmQgYWN0IGFjY29yZGluZ2x5LiAgKi8KLUBAIC01MzU5LDEzICs1Mzc2LDE2IEBAIHN3aXRj aF9iYWNrX3RvX3N0ZXBwZWRfdGhyZWFkIChzdHJ1Y3QgZXgKK0BAIC01Njc0LDE0ICs1NjkwLDE2 IEBAIHN3aXRjaF9iYWNrX3RvX3N0ZXBwZWRfdGhyZWFkIChzdHJ1Y3QgZXgKICAKICAvKiBJcyB0 aHJlYWQgVFAgaW4gdGhlIG1pZGRsZSBvZiBzaW5nbGUtc3RlcHBpbmc/ICAqLwogIApAQCAtMTMz LDYgKzEzMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9pbmZydW4uYwogKyAg aWYgICAgICgodHAtPmNvbnRyb2wuc3RlcF9yYW5nZV9lbmQKICAJICAgJiYgdHAtPmNvbnRyb2wu c3RlcF9yZXN1bWVfYnJlYWtwb2ludCA9PSBOVUxMKQogLQkgIHx8IHRwLT5jb250cm9sLnRyYXBf ZXhwZWN0ZWQKKy0JICB8fCB0cC0+c3RlcHBlZF9icmVha3BvaW50CiAtCSAgfHwgYnBzdGF0X3No b3VsZF9zdGVwICgpKTsKICsJICB8fCB0cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkKQogKyAgICBy ZXR1cm4gUkVTVU1FX1NURVBfVVNFUjsKQEAgLTE0MiwxMSArMTQyLDExIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9pbmZydW4uYwogIH0KICAKICAvKiBJbmZlcmlvciBoYXMgc3Rl cHBlZCBpbnRvIGEgc3Vicm91dGluZSBjYWxsIHdpdGggc291cmNlIGNvZGUgdGhhdAotSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQw NjEzLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbGludXgtbmF0LmMJMjAxNC0wNi0xMyAy MTozMToxOS40NDk5NDk4MTQgKzAyMDAKLUBAIC0yNzA5LDcgKzI3MDksMTEgQEAgc3RhdGljIGlu dAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNC0xMi0y OCAyMTozMzo0MS4zMDM1NDc4ODIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9s aW51eC1uYXQuYwkyMDE0LTEyLTI4IDIxOjMzOjQ1LjgyNzU1MTY4NyArMDEwMAorQEAgLTI1MTks NyArMjUxOSwxMSBAQCBzdGF0aWMgaW50CiAgc2VsZWN0X3NpbmdsZXN0ZXBfbHdwX2NhbGxiYWNr IChzdHJ1Y3QgbHdwX2luZm8gKmxwLCB2b2lkICpkYXRhKQogIHsKICAgIGlmIChscC0+bGFzdF9y ZXN1bWVfa2luZCA9PSByZXN1bWVfc3RlcApAQCAtMTU5LDEwICsxNTksMTAgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xpbnV4LW5hdC5jCiAgICAgIHJldHVybiAxOwogICAgZWxz ZQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1u YXQuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE0LTA2 LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2xpbnV4LW5hdC5oCTIwMTQtMDYtMTMgMjE6MzE6MTkuNDQ5OTQ5ODE0ICswMjAwCistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDE0LTEyLTI4IDIxOjMzOjQx LjMwNDU0Nzg4MiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xpbnV4LW5hdC5o CTIwMTQtMTItMjggMjE6MzM6NDUuODI3NTUxNjg3ICswMTAwCiBAQCAtMTgsNiArMTgsNyBAQAog ICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LiAgKi8KICAKQEAgLTE4MiwxMSArMTgyLDExIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1uYXQuaAogIAogICAgLyogU1RPUFBFRF9CWV9XQVRD SFBPSU5UIGlzIG5vbi16ZXJvIGlmIHRoaXMgTFdQIHN0b3BwZWQgd2l0aCBhIGRhdGEKICAgICAg IHdhdGNocG9pbnQgdHJhcC4gICovCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5m cnVuLmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvaW5mcnVuLmgJMjAxNC0wNi0xMyAw Mzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9pbmZy dW4uaAkyMDE0LTA2LTEzIDIxOjMxOjE5LjQ0OTk0OTgxNCArMDIwMAotQEAgLTg5LDcgKzg5LDE0 IEBAIGV4dGVybiB2b2lkIHByb2NlZWQgKENPUkVfQUREUiwgZW51bSBnZGIKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2luZnJ1bi5oCTIwMTQtMTItMjggMjE6MzM6NDUuODI3NTUx Njg3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mcnVuLmgJMjAxNC0xMi0y OCAyMTozNDoxMy41MTY1NzQ5ODEgKzAxMDAKK0BAIC05Miw3ICs5MiwxNCBAQCBleHRlcm4gdm9p ZCBwcm9jZWVkIChDT1JFX0FERFIsIGVudW0gZ2RiCiAgCiAgLyogVGhlIGByZXN1bWUnIHJvdXRp bmUgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGluIHNwZWNpYWwgY2lyY3Vtc3RhbmNlcy4KICAgICBO b3JtYWxseSwgdXNlIGBwcm9jZWVkJywgd2hpY2ggaGFuZGxlcyBhIGxvdCBvZiBib29ra2VlcGlu Zy4gICovCkBAIC0yMDAsMTIgKzIwMCwxMiBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvaW5mcnVuLmgKICsgIH07CiArZXh0ZXJuIHZvaWQgcmVzdW1lIChlbnVtIHJlc3VtZV9zdGVw LCBlbnVtIGdkYl9zaWduYWwpOwogIAotIGV4dGVybiBwdGlkX3QgdXNlcl92aXNpYmxlX3Jlc3Vt ZV9wdGlkIChpbnQgc3RlcCk7Ci0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhl ci10aHJlYWQuZXhwCi1pbmRleCAyYTMwNjA0Li5lZTFmZDExIDEwMDY0NAotLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10 aHJlYWQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ25hbC13aGlsZS1z dGVwcGluZy1vdmVyLWJwLW90aGVyLXRocmVhZC5leHAKKyAvKiBSZXR1cm4gYSBwdGlkIHJlcHJl c2VudGluZyB0aGUgc2V0IG9mIHRocmVhZHMgdGhhdCB3ZSB3aWxsIHByb2NlZWQsCisgICAgaW4g dGhlIHBlcnNwZWN0aXZlIG9mIHRoZSB1c2VyL2Zyb250ZW5kLiAgKi8KK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnbmFsLXdoaWxlLXN0ZXBw aW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3NpZ25hbC13aGlsZS1zdGVw cGluZy1vdmVyLWJwLW90aGVyLXRocmVhZC5leHAJMjAxNC0xMi0yOCAyMTozMzo0MS4zMDQ1NDc4 ODIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVh ZHMvc2lnbmFsLXdoaWxlLXN0ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAkyMDE0LTEy LTI4IDIxOjMzOjQ1LjgyNzU1MTY4NyArMDEwMAogQEAgLTk3LDcgKzk3LDcgQEAgZ2RiX3Rlc3Qg InNldCBkZWJ1ZyBpbmZydW4gMSIKICAKICBnZGJfdGVzdCBcCgpkaWZmIC0tZ2l0IGEvZ2RiLTYu OC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoIGIvZ2RiLTYuOC1hdHRhY2gt c2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoCmluZGV4IDc1OWRlYzguLmJkNWQwOWMgMTAw NjQ0Ci0tLSBhL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaAor KysgYi9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKQEAgLTEs OCArMSw4IEBACi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbGludXgtbmF0LmMKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNC0wNi0xMyAyMzow MzozNC4zNjQxNzc2MTQgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1u YXQuYwkyMDE0LTA2LTEzIDIzOjA1OjA3Ljc0OTI3OTEyMiArMDIwMAotQEAgLTE3OCw2ICsxNzgs OSBAQCBibG9ja2VkLiAgKi8KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2xpbnV4 LW5hdC5jCTIwMTUtMDEtMDUgMjI6NTI6MDEuMTE1OTc4MDI2ICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0wNSAyMjo1MjoyMy4xNDcwNzQ3MTAg KzAxMDAKK0BAIC0xNzQsNiArMTc0LDkgQEAgYmxvY2tlZC4gICovCiAgc3RhdGljIHN0cnVjdCB0 YXJnZXRfb3BzICpsaW51eF9vcHM7CiAgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzIGxpbnV4X29w c19zYXZlZDsKICAKQEAgLTEyLDIzICsxMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9saW51eC1uYXQuYwogIC8qIFRoZSBtZXRob2QgdG8gY2FsbCwgaWYgYW55LCB3aGVuIGEg bmV3IHRocmVhZCBpcyBhdHRhY2hlZC4gICovCiAgc3RhdGljIHZvaWQgKCpsaW51eF9uYXRfbmV3 X3RocmVhZCkgKHN0cnVjdCBsd3BfaW5mbyAqKTsKICAKLUBAIC02ODMsNyArNjg2LDE0IEBAIGhv bGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKLSAJICBwYXJlbnRfaW5mLT53 YWl0aW5nX2Zvcl92Zm9ya19kb25lID0gMDsKLSAJfQotICAgICAgIGVsc2UgaWYgKGRldGFjaF9m b3JrKQotLQl0YXJnZXRfZGV0YWNoIChOVUxMLCAwKTsKLSsJewotKwkgIC8qIFdlIHNob3VsZCBj aGVjayBQSURfV0FTX1NUT1BQRUQgYW5kIGRldGFjaCBpdCBzdG9wcGVkIGFjY29yZGluZ2x5Lgot KwkgICAgIEluIHRoaXMgcG9pbnQgb2YgY29kZSBpdCBjYW5ub3QgYmUgMSBhcyB3ZSB3b3VsZCBu b3QgZ2V0IEZPUksKLSsJICAgICBleGVjdXRlZCB3aXRob3V0IENPTlRJTlVFIGZpcnN0IHdoaWNo IHJlc2V0cyBQSURfV0FTX1NUT1BQRUQuCi0rCSAgICAgV2Ugd291bGQgaGF2ZSB0byBmaXJzdCBU QVJHRVRfU1RPUCBhbmQgV0FJVFBJRCBpdCBhcyB3aXRoIHJ1bm5pbmcKLSsJICAgICBpbmZlcmlv ciBQVFJBQ0VfREVUQUNILCBTSUdTVE9QIHdpbGwgaWdub3JlIHRoZSBzaWduYWwuICAqLwotKwkg IHRhcmdldF9kZXRhY2ggKE5VTEwsIDApOwotKwl9Ci0gCi0gICAgICAgLyogTm90ZSB0aGF0IHRo ZSBkZXRhY2ggYWJvdmUgbWFrZXMgUEFSRU5UX0lORiBkYW5nbGluZy4gICovCi0gCi1AQCAtMTEw Nyw2ICsxMTE3LDcgQEAgbGludXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQgKHB0aWRfdCBwdGlkLAor QEAgLTkxNSw2ICs5MTgsNyBAQCBsaW51eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZF90IHB0 aWQsCiAgICAgICAgaWYgKGRlYnVnX2xpbnV4X25hdCkKICAJZnByaW50Zl91bmZpbHRlcmVkIChn ZGJfc3RkbG9nLAogIAkJCSAgICAiTE5QQVc6IEF0dGFjaGluZyB0byBhIHN0b3BwZWQgcHJvY2Vz c1xuIik7CkBAIC0zNiw3ICsyMCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9s aW51eC1uYXQuYwogIAogICAgICAgIC8qIFRoZSBwcm9jZXNzIGlzIGRlZmluaXRlbHkgc3RvcHBl ZC4gIEl0IGlzIGluIGEgam9iIGNvbnRyb2wKICAJIHN0b3AsIHVubGVzcyB0aGUga2VybmVsIHBy ZWRhdGVzIHRoZSBUQVNLX1NUT1BQRUQgLwotQEAgLTE1MjksNiArMTU0MCw5IEBAIGdldF9wZW5k aW5nX3N0YXR1cyAoc3RydWN0IGx3cF9pbmZvICpscCwKK0BAIC0xMzM3LDYgKzEzNDEsOSBAQCBn ZXRfcGVuZGluZ19zdGF0dXMgKHN0cnVjdCBsd3BfaW5mbyAqbHAsCiAgCQkJICAgIGdkYl9zaWdu YWxfdG9fc3RyaW5nIChzaWdubykpOwogICAgICB9CiAgCkBAIC00Niw3ICszMCw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1uYXQuYwogICAgcmV0dXJuIDA7CiAgfQog IAotQEAgLTE2NDIsNiArMTY1Niw4IEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0cnVjdCB0YXJnZXRf b3BzICpvcHMKK0BAIC0xNDUwLDYgKzE0NTcsOCBAQCBsaW51eF9uYXRfZGV0YWNoIChzdHJ1Y3Qg dGFyZ2V0X29wcyAqb3BzCiAgICAgIH0KICAgIGVsc2UKICAgICAgbGludXhfb3BzLT50b19kZXRh Y2ggKG9wcywgYXJncywgZnJvbV90dHkpOwpAQCAtNTUsNyArMzksNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvbGludXgtbmF0LmMKICB9CiAgCiAgLyogUmVzdW1lIExQLiAgKi8K LUBAIC0xODI0LDYgKzE4NDAsMTQgQEAgbGludXhfbmF0X3Jlc3VtZSAoc3RydWN0IHRhcmdldF9v cHMgKm9wcworQEAgLTE2MzEsNiArMTY0MCwxNCBAQCBsaW51eF9uYXRfcmVzdW1lIChzdHJ1Y3Qg dGFyZ2V0X29wcyAqb3BzCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC03MCw3ICs1NCw3 IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9saW51eC1uYXQuYwogICAgaWYgKHJl c3VtZV9tYW55KQogICAgICBpdGVyYXRlX292ZXJfbHdwcyAocHRpZCwgbGludXhfbmF0X3Jlc3Vt ZV9jYWxsYmFjaywgbHApOwogIAotQEAgLTM4NzAsNiArMzg5NCw4IEBAIGxpbnV4X25hdF9tb3Vy bl9pbmZlcmlvciAoc3RydWN0IHRhcmdldF8KK0BAIC0zNjk2LDYgKzM3MTMsOCBAQCBsaW51eF9u YXRfbW91cm5faW5mZXJpb3IgKHN0cnVjdCB0YXJnZXRfCiAgCiAgICAvKiBMZXQgdGhlIGFyY2gt c3BlY2lmaWMgbmF0aXZlIGNvZGUga25vdyB0aGlzIHByb2Nlc3MgaXMgZ29uZS4gICovCiAgICBs aW51eF9uYXRfZm9yZ2V0X3Byb2Nlc3MgKHBpZCk7CkBAIC03OSwxMCArNjMsMTAgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIC8qIENvbnZlcnQg YSBuYXRpdmUvaG9zdCBzaWdpbmZvIG9iamVjdCwgaW50by9mcm9tIHRoZSBzaWdpbmZvIGluIHRo ZQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9h dHRhY2gtc3RvcHBlZC5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny45MC4yMDE0MDYxMy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3Bw ZWQuZXhwCTIwMTQtMDYtMTMgMjM6MDM6MzQuMzY1MTc3NjE1ICswMjAwCi0rKysgZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAky MDE0LTA2LTEzIDIzOjAzOjM3LjE2MjE4MDY2MCArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE1 LTAxLTA1IDIyOjUyOjAxLjExNTk3ODAyNiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNS0wMS0wNSAy Mjo1MjoyMy4xNDgwNzQ3MTQgKzAxMDAKIEBAIC02MSw3ICs2MSw2NSBAQCBwcm9jIGNvcmVmdW5j IHsgdGhyZWFkdHlwZSB9IHsKICAgICAgZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3Vi ZGlyCiAgICAgIGdkYl9sb2FkICR7YmluZmlsZX0KQEAgLTE1MCwzICsxMzQsMTkgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3Rv cHBlZC5leHAKICAgICAgICAgCiAgICAgIHNldCB0ZXN0ICIkdGhyZWFkdHlwZTogYXR0YWNoMiB0 byBzdG9wcGVkLCBhZnRlciBzZXR0aW5nIGZpbGUiCiAgICAgIGdkYl90ZXN0X211bHRpcGxlICJh dHRhY2ggJHRlc3RwaWQiICIkdGVzdCIgeworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2luZnJ1bi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9p bmZydW4uYwkyMDE1LTAxLTA1IDIyOjQyOjQ4Ljc3MzUwMTQyOSArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMDUgMjI6NTM6NDcuMjc0NDQzOTAzICsw MTAwCitAQCAtNjAwLDYgKzYwMCwxMSBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVkLiAgVHJ5 IFwic2V0IGRlCisgCQkJCWNoaWxkX3BpZCk7CisgCSAgICB9CisgCisrCSAgLyogV2Ugc2hvdWxk IGNoZWNrIFBJRF9XQVNfU1RPUFBFRCBhbmQgZGV0YWNoIGl0IHN0b3BwZWQgYWNjb3JkaW5nbHku CisrCSAgICAgSW4gdGhpcyBwb2ludCBvZiBjb2RlIGl0IGNhbm5vdCBiZSAxIGFzIHdlIHdvdWxk IG5vdCBnZXQgRk9SSworKwkgICAgIGV4ZWN1dGVkIHdpdGhvdXQgQ09OVElOVUUgZmlyc3Qgd2hp Y2ggcmVzZXRzIFBJRF9XQVNfU1RPUFBFRC4KKysJICAgICBXZSB3b3VsZCBoYXZlIHRvIGZpcnN0 IFRBUkdFVF9TVE9QIGFuZCBXQUlUUElEIGl0IGFzIHdpdGggcnVubmluZworKwkgICAgIGluZmVy aW9yIFBUUkFDRV9ERVRBQ0gsIFNJR1NUT1Agd2lsbCBpZ25vcmUgdGhlIHNpZ25hbC4gICovCisg CSAgdGFyZ2V0X2RldGFjaCAoTlVMTCwgMCk7CisgCX0KKyAKCmRpZmYgLS1naXQgYS9nZGItNi44 LWJ6NDU3MTg3LWxhcmdlZmlsZS10ZXN0LXJlZ3Jlc3Npb24tZml4LnBhdGNoIGIvZ2RiLTYuOC1i ejQ1NzE4Ny1sYXJnZWZpbGUtdGVzdC1yZWdyZXNzaW9uLWZpeC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTEzNzNhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLTYu OC1iejQ1NzE4Ny1sYXJnZWZpbGUtdGVzdC1yZWdyZXNzaW9uLWZpeC5wYXRjaApAQCAtMCwwICsx LDQ5IEBACitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0wMS9tc2cw MDE5OC5odG1sCitTdWJqZWN0OiBbUEFUQ0hdIFtQUiBjb3JlZmlsZXMvMTc4MDhdIGkzODY6IEZp eCBpbnRlcm5hbCBlcnJvciB3aGVuIHByc3RhdHVzIGluIGNvcmUgZmlsZSBpcyB0b28gYmlnCisK K0FzIHJlcG9ydGVkIGluIFBSIDE3ODA4LCBhIHRlc3QgY2FzZSB3aXRoIGEgZm9yZ2VkIChpbnZh bGlkKSBjb3JlIGZpbGUKK2NhbiBjcmFzaCBHREIgd2l0aCBhbiBhc3NlcnRpb24gZmFpbHVyZS4g IEluIHRoYXQgcGFydGljdWxhciBjYXNlIHRoZQorcHJzdGF0dXMgb2YgYW4gaTM4NiBjb3JlIGZp bGUgbG9va3MgbGlrZSB0aGF0IGZyb20gYW4gQU1ENjQgY29yZSBmaWxlLAoraS5lLiwgaXQgaXMg bGFyZ2VyIHRoYW4gR0RCIHdvdWxkIGV4cGVjdC4KKworVGhlIHBhdGNoIHJlcGxhY2VzIHRoZSBh c3NlcnRpb24gYnkgYSB3YXJuaW5nIGFuZCBza2lwcyB0aGUgaW52YWxpZAorY29yZSBmaWxlIHJl Z2lzdGVyIHNlY3Rpb24uICBJbiB0aGlzIHdheSBpdCBpcyBndWFyYW50ZWVkIHRoYXQgbm8KK2Jv Z3VzIHJlZ2lzdGVyIHZhbHVlcyBhcmUgcmVhZCBmcm9tIHRoZSBiYWRseSBmb3JtYXR0ZWQgc2Vj dGlvbi4KKworTm90ZSB0aGF0IHRoaXMgYmVoYXZpb3IgZGV2aWF0ZXMgZnJvbSB0aGUgZGVmYXVs dCBwb2xpY3k6IEluIGdlbmVyYWwsIGlmCitzb21lIGZ1dHVyZSBrZXJuZWwgYWRkcyBuZXcgcmVn aXN0ZXJzIHRvIGEgcmVnaXN0ZXIgc2V0LCB0aGVuIGEgR0RCCit1bmF3YXJlIG9mIHRoaXMgZXh0 ZW5zaW9uIHdvdWxkIHJlYWQgdGhlIGtub3duIHN1YnNldCBhbmQganVzdCBpZ25vcmUKK3RoZSB1 bmtub3duIGJ5dGVzLgorCitnZGIvQ2hhbmdlTG9nOgorCisJUFIgY29yZWZpbGVzLzE3ODA4CisJ KiBpMzg2LXRkZXAuYyAoaTM4Nl9zdXBwbHlfZ3JlZ3NldCk6IEluc3RlYWQgb2YgeWllbGRpbmcg YW4KKwlpbnRlcm5hbCBlcnJvciBvbiB1bmV4cGVjdGVkIGlucHV0IGJ1ZmZlciBzaXplLCBpZ25v cmUgdGhlIGRhdGEKKwlhbmQgZW1pdCBhIHdhcm5pbmcuCisKKy0tLQorIGdkYi9pMzg2LXRkZXAu YyB8ICAgIDcgKysrKysrLQorIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2dkYi9pMzg2LXRkZXAuYyBiL2dkYi9pMzg2LXRkZXAu YworaW5kZXggN2QxNzRjNC4uZDAyYWFmMiAxMDA2NDQKKy0tLSBhL2dkYi9pMzg2LXRkZXAuYwor KysrIGIvZ2RiL2kzODYtdGRlcC5jCitAQCAtMzcyNyw3ICszNzI3LDEyIEBAIGkzODZfc3VwcGx5 X2dyZWdzZXQgKGNvbnN0IHN0cnVjdCByZWdzZXQgKnJlZ3NldCwgc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwKKyAgIGNvbnN0IGdkYl9ieXRlICpyZWdzID0gZ3JlZ3M7CisgICBpbnQgaTsKKyAK Ky0gIGdkYl9hc3NlcnQgKGxlbiA9PSB0ZGVwLT5zaXplb2ZfZ3JlZ3NldCk7CisrICBpZiAobGVu ICE9IHRkZXAtPnNpemVvZl9ncmVnc2V0KQorKyAgICB7CisrICAgICAgLyogQnVmZmVyIGhhcyB1 bmtub3duIHNpemU6IGFzc3VtZSB3cm9uZyBmb3JtYXQuICAqLworKyAgICAgIHdhcm5pbmcgKF8o IkJhZCBzaXplIG9mIGdlbmVyYWwgcmVnaXN0ZXIgc2VjdGlvbiIpKTsKKysgICAgICByZXR1cm47 CisrICAgIH0KKyAKKyAgIGZvciAoaSA9IDA7IGkgPCB0ZGVwLT5ncmVnc2V0X251bV9yZWdzOyBp KyspCisgICAgIHsKKy0tIAorMS43LjkuNQorCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRj aCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggZDZjOGUzOC4uYzZiMmNjYSAxMDA2NDQKLS0tIGEv Z2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDIzICsyLDI0IEBA IGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291 cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNo b3Q6Ci1jb21taXQgYjg4MjMwZWRmNGUyZGE5NDhkNjMzYzI4M2JhMDg5M2JmMjJiZDdhZQorY29t bWl0IGVmNWU1ZTRkNWJmZWRlY2Y1NGVmN2YxMzgwZWFmODk2NjJiNjE3ZDAKIAogdHJvbWV5L3B5 dGhvbgogCiAKLUluZGV4OiBnZGItNy44L1JFQURNRS5hcmNoZXIKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44 L1JFQURNRS5hcmNoZXIJMjAxNC0wNy0yOSAxOToyOTowNC44NjE5ODI3NzkgKzAyMDAKK2RpZmYg LS1naXQgYS9SRUFETUUuYXJjaGVyIGIvUkVBRE1FLmFyY2hlcgorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAuLjE3M2I4ZWEKKy0tLSAvZGV2L251bGwKKysrKyBiL1JFQURNRS5h cmNoZXIKIEBAIC0wLDAgKzEsMiBAQAogK1RoaXMgYnJhbmNoIG9yaWdpbmFsbHkgaGVsZCB0aGUg UHl0aG9uIGNvZGUgZm9yIGdkYi4gIEl0IHN0aWxsIGV4aXN0cwogK2JlY2F1c2UgYSBzbWFsbCBh bW91bnQgb2YgY29kZSBoZXJlIGhhcyBub3QgeWV0IGJlZW4gbWVyZ2VkIHVwc3RyZWFtLgotSW5k ZXg6IGdkYi03LjgvZ2RiL01ha2VmaWxlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmln L2dkYi9NYWtlZmlsZS5pbgkyMDE0LTA3LTI5IDE5OjI5OjAyLjY2NTk3OTY1NSArMDIwMAotKysr IGdkYi03LjgvZ2RiL01ha2VmaWxlLmluCTIwMTQtMDctMjkgMTk6Mjk6MDQuODYyOTgyNzgxICsw MjAwCi1AQCAtMTQ3Niw2ICsxNDc2LDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4g Y29uZmlnLnN0YXQKK2RpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUu aW4KK2luZGV4IGJlNjliNmYuLmE0NDgzZTQgMTAwNjQ0CistLS0gYS9nZGIvTWFrZWZpbGUuaW4K KysrKyBiL2dkYi9NYWtlZmlsZS5pbgorQEAgLTE1MTUsNiArMTUxNSwxMiBAQCBzdGFtcC1oOiAk KHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05GSUdfTElOS1M9IFwKICAJ ICAkKFNIRUxMKSBjb25maWcuc3RhdHVzCiAgCkBAIC0zMSwzNSArMzIsMzQgQEAgSW5kZXg6IGdk Yi03LjgvZ2RiL01ha2VmaWxlLmluCiAgY29uZmlnLnN0YXR1czogJChzcmNkaXIpL2NvbmZpZ3Vy ZSBjb25maWd1cmUudGd0IGNvbmZpZ3VyZS5ob3N0IC4uL2JmZC9kZXZlbG9wbWVudC5zaAogIAkk KFNIRUxMKSBjb25maWcuc3RhdHVzIC0tcmVjaGVjawogIAotSW5kZXg6IGdkYi03LjgvZ2RiL2Rh dGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dk Yi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE0LTA3LTI5IDE5OjI5OjAyLjY2NTk3OTY1 NSArMDIwMAotKysrIGdkYi03LjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTQt MDctMjkgMTk6Mjk6MzMuMDUzMDIyNDg2ICswMjAwCi1AQCAtNjUsNiArNjUsOCBAQCBQWVRIT05f RklMRV9MSVNUID0gXAorZGlmZiAtLWdpdCBhL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5p biBiL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgoraW5kZXggMDBjNzBiYi4uZjkzZmZk ZCAxMDA2NDQKKy0tLSBhL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorKysrIGIvZ2Ri L2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCitAQCAtNjQsNyArNjQsMTAgQEAgUFlUSE9OX0ZJ TEVfTElTVCA9IFwKKyAJZ2RiL3ByaW50aW5nLnB5IFwKICAJZ2RiL3Byb21wdC5weSBcCiAgCWdk Yi94bWV0aG9kLnB5IFwKKysJZ2RiL3R5cGVzLnB5IFwKICAJZ2RiL2NvbW1hbmQvX19pbml0X18u cHkgXAogKwlnZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5IFwKICsJZ2RiL2NvbW1hbmQvcGFo b2xlLnB5IFwKICAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAogIAlnZGIvY29tbWFuZC9mcmFt ZV9maWx0ZXJzLnB5IFwKICAJZ2RiL2NvbW1hbmQvdHlwZV9wcmludGVycy5weSBcCi1AQCAtNzQs NyArNzYsMTAgQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKK0BAIC03NCw2ICs3Nyw4IEBAIFBZVEhP Tl9GSUxFX0xJU1QgPSBcCiAgCWdkYi9mdW5jdGlvbi9fX2luaXRfXy5weSBcCisgCWdkYi9mdW5j dGlvbi9jYWxsZXJfaXMucHkgXAogIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwKLSAJZ2RiL3By aW50ZXIvX19pbml0X18ucHkgXAotLQlnZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHkKLSsJ Z2RiL3ByaW50ZXIvYm91bmRfcmVnaXN0ZXJzLnB5IFwKICsJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9p cy5weSBcCiArCWdkYi9mdW5jdGlvbi9pbl9zY29wZS5weSBcCi0rCWdkYi90eXBlcy5weQorIAln ZGIvcHJpbnRlci9fX2luaXRfXy5weSBcCisgCWdkYi9wcmludGVyL2JvdW5kX3JlZ2lzdGVycy5w eQogIAotIEBIQVZFX1BZVEhPTl9UUlVFQFBZVEhPTl9GSUxFUyA9ICQoUFlUSE9OX0ZJTEVfTElT VCkKLSBASEFWRV9QWVRIT05fRkFMU0VAUFlUSE9OX0ZJTEVTID0KLUluZGV4OiBnZGItNy44L2dk Yi9kb2MvZ2RiLnRleGluZm8KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2RiL2RvYy9n ZGIudGV4aW5mbwkyMDE0LTA3LTI5IDE5OjI5OjAyLjY3NTk3OTY2OSArMDIwMAotKysrIGdkYi03 LjgvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE0LTA3LTI5IDE5OjI5OjA0Ljg3MTk4Mjc5NCArMDIw MAorZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZv CitpbmRleCBlMDg2YzMzLi41ZGZlYjFkIDEwMDY0NAorLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5m bworKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwogQEAgLTEyMjUsNiArMTIyNSwxNiBAQCBmb3Ig cmVtb3RlIGRlYnVnZ2luZy4KICBSdW4gdXNpbmcgQHZhcntkZXZpY2V9IGZvciB5b3VyIHByb2dy YW0ncyBzdGFuZGFyZCBpbnB1dCBhbmQgb3V0cHV0LgogIEBjIEZJWE1FOiBraW5nZG9uIHRoaW5r cyB0aGVyZSBpcyBtb3JlIHRvIC10dHkuICBJbnZlc3RpZ2F0ZS4KQEAgLTc3LDEwICs3NywxMCBA QCBJbmRleDogZ2RiLTcuOC9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGMgcmVzb2x2ZSB0aGUgc2l0 dWF0aW9uIG9mIHRoZXNlIGV2ZW50dWFsbHkKICBAaXRlbSAtdHVpCiAgQGNpbmRleCBAY29kZXst LXR1aX0KLUluZGV4OiBnZGItNy44L2dkYi9kb2MvcHl0aG9uLnRleGkKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44Lm9yaWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA3LTI5IDE5OjI5OjAyLjY3 Nzk3OTY3MiArMDIwMAotKysrIGdkYi03LjgvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA3LTI5 IDE5OjI5OjA0Ljg3Mjk4Mjc5NSArMDIwMAorZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRl eGkgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCitpbmRleCAyMzRjZTVjLi5lOTQwMTI1IDEwMDY0NAor LS0tIGEvZ2RiL2RvYy9weXRob24udGV4aQorKysrIGIvZ2RiL2RvYy9weXRob24udGV4aQogQEAg LTg4LDggKzg4LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CiAgCiAg QHNtYWxsZXhhbXBsZQpAQCAtOTAsMTAgKzkwLDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9kb2Mv cHl0aG9uLnRleGkKICA+cHJpbnQgMjMKICA+ZW5kCiAgMjMKLUluZGV4OiBnZGItNy44L2dkYi9n ZGItZ2RiLmdkYi5pbgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvZ2RiLWdkYi5n ZGIuaW4JMjAxNC0wNy0yOSAxOToyOTowMi42Nzc5Nzk2NzIgKzAyMDAKLSsrKyBnZGItNy44L2dk Yi9nZGItZ2RiLmdkYi5pbgkyMDE0LTA3LTI5IDE5OjI5OjA0Ljg3Mjk4Mjc5NSArMDIwMAorZGlm ZiAtLWdpdCBhL2dkYi9nZGItZ2RiLmdkYi5pbiBiL2dkYi9nZGItZ2RiLmdkYi5pbgoraW5kZXgg MDVhMzhiMi4uOTgwMWZkZiAxMDA2NDQKKy0tLSBhL2dkYi9nZGItZ2RiLmdkYi5pbgorKysrIGIv Z2RiL2dkYi1nZGIuZ2RiLmluCiBAQCAtMSw1ICsxLDE1IEBACiAgZWNobyBTZXR0aW5nIHVwIHRo ZSBlbnZpcm9ubWVudCBmb3IgZGVidWdnaW5nIGdkYi5cbgogIApAQCAtMTEwLDExICsxMTAsMTEg QEAgSW5kZXg6IGdkYi03LjgvZ2RiL2dkYi1nZGIuZ2RiLmluCiAgaWYgISRnZGJfaW5pdF9kb25l CiAgICBzZXQgdmFyaWFibGUgJGdkYl9pbml0X2RvbmUgPSAxCiAgCi1JbmRleDogZ2RiLTcuOC9n ZGIvbWFpbi5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9tYWluLmMJMjAxNC0w Ny0yOSAxOToyOTowMi42Nzg5Nzk2NzMgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9tYWluLmMJMjAx NC0wNy0yOSAxOToyOTowNC44NzI5ODI3OTUgKzAyMDAKLUBAIC0zNyw2ICszNyw3IEBACitkaWZm IC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKK2luZGV4IGFjY2Q5MjcuLmVkMjExZjYg MTAwNjQ0CistLS0gYS9nZGIvbWFpbi5jCisrKysgYi9nZGIvbWFpbi5jCitAQCAtMzMsNiArMzMs NyBAQAogIAogICNpbmNsdWRlICJpbnRlcnBzLmgiCiAgI2luY2x1ZGUgIm1haW4uaCIKQEAgLTEy Miw3ICsxMjIsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCiAgI2luY2x1ZGUgInNvdXJj ZS5oIgogICNpbmNsdWRlICJjbGkvY2xpLWNtZHMuaCIKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIK LUBAIC00MTcsNiArNDE4LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC00NDQs NiArNDQ1LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIGNoYXIgKmNkYXJnID0g TlVMTDsKICAgIGNoYXIgKnR0eWFyZyA9IE5VTEw7CiAgCkBAIC0xMzEsNyArMTMxLDcgQEAgSW5k ZXg6IGdkYi03LjgvZ2RiL21haW4uYwogICAgLyogVGhlc2UgYXJlIHN0YXRpYyBzbyB0aGF0IHdl IGNhbiB0YWtlIHRoZWlyIGFkZHJlc3MgaW4gYW4KICAgICAgIGluaXRpYWxpemVyLiAgKi8KICAg IHN0YXRpYyBpbnQgcHJpbnRfaGVscDsKLUBAIC02MjQsMTAgKzYyNywxNCBAQCBjYXB0dXJlZF9t YWluICh2b2lkICpkYXRhKQorQEAgLTY0OSwxMCArNjUyLDE0IEBAIGNhcHR1cmVkX21haW4gKHZv aWQgKmRhdGEpCiAgICAgICAgeyJhcmdzIiwgbm9fYXJndW1lbnQsICZzZXRfYXJncywgMX0sCiAg ICAgICAgeyJsIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdsJ30sCiAgICAgICAgeyJyZXR1cm4t Y2hpbGQtcmVzdWx0Iiwgbm9fYXJndW1lbnQsICZyZXR1cm5fY2hpbGRfcmVzdWx0LCAxfSwKQEAg LTE0Nyw3ICsxNDcsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5jCiAgICAgICAgewogIAlp bnQgb3B0aW9uX2luZGV4OwogIAotQEAgLTY0NSw2ICs2NTIsOSBAQCBjYXB0dXJlZF9tYWluICh2 b2lkICpkYXRhKQorQEAgLTY3MCw2ICs2NzcsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRh KQogIAkgIGNhc2UgMDoKICAJICAgIC8qIExvbmcgb3B0aW9uIHRoYXQganVzdCBzZXRzIGEgZmxh Zy4gICovCiAgCSAgICBicmVhazsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBJbmRleDogZ2RiLTcuOC9n ZGIvbWFpbi5jCiAgCSAgY2FzZSBPUFRfU0U6CiAgCSAgICBzeW1hcmcgPSBvcHRhcmc7CiAgCSAg ICBleGVjYXJnID0gb3B0YXJnOwotQEAgLTg0OSw3ICs4NTksMzEgQEAgY2FwdHVyZWRfbWFpbiAo dm9pZCAqZGF0YSkKK0BAIC04NTEsNyArODYxLDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRh dGEpCiAgCiAgICAvKiBOb3cgdGhhdCBnZGJfaW5pdCBoYXMgY3JlYXRlZCB0aGUgaW5pdGlhbCBp bmZlcmlvciwgd2UncmUgaW4KICAgICAgIHBvc2l0aW9uIHRvIHNldCBhcmdzIGZvciB0aGF0IGlu ZmVyaW9yLiAgKi8KQEAgLTE5MCw3ICsxOTAsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvbWFpbi5j CiAgICAgIHsKICAgICAgICAvKiBUaGUgcmVtYWluaW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5k LWxpbmUgb3B0aW9ucyBmb3IgdGhlCiAgCSBpbmZlcmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhl IHN5bS9leGVjIGZpbGUsIGFuZCB0aGUgcmVzdAotQEAgLTExMzUsNyArMTE2OSw4IEBAIGNhcHR1 cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtMTEyOSw3ICsxMTYzLDggQEAgY2FwdHVyZWRfbWFp biAodm9pZCAqZGF0YSkKICAKICAgIC8qIFJlYWQgaW4gdGhlIG9sZCBoaXN0b3J5IGFmdGVyIGFs bCB0aGUgY29tbWFuZCBmaWxlcyBoYXZlIGJlZW4KICAgICAgIHJlYWQuICAqLwpAQCAtMjAwLDcg KzIwMCw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9tYWluLmMKICAKICAgIGlmIChiYXRjaF9mbGFn KQogICAgICB7Ci1AQCAtMTE0NiwxMyArMTE4MSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQorQEAgLTExNDAsMTMgKzExNzUsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK ICAgIC8qIFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51cHMg KHByZV9zdGF0X2NoYWluKTsKICAKQEAgLTIzMiw3ICsyMzIsNyBAQCBJbmRleDogZ2RiLTcuOC9n ZGIvbWFpbi5jCiAgICAgIH0KICAgIC8qIE5vIGV4aXQgLS0gZXhpdCBpcyB0aHJvdWdoIHF1aXRf Y29tbWFuZC4gICovCiAgfQotQEAgLTExODYsNiArMTIzMywxMiBAQCBwcmludF9nZGJfaGVscCAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKK0BAIC0xMTgwLDYgKzEyMjcsMTIgQEAgcHJpbnRfZ2Ri X2hlbHAgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJc CiAgVGhpcyBpcyB0aGUgR05VIGRlYnVnZ2VyLiAgVXNhZ2U6XG5cblwKICAgICAgZ2RiIFtvcHRp b25zXSBbZXhlY3V0YWJsZS1maWxlIFtjb3JlLWZpbGUgb3IgcHJvY2Vzcy1pZF1dXG5cCkBAIC0y NDUsNyArMjQ1LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL21haW4uYwogICAgICBnZGIgW29wdGlv bnNdIC0tYXJncyBleGVjdXRhYmxlLWZpbGUgW2luZmVyaW9yLWFyZ3VtZW50cyAuLi5dXG5cblwK ICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKLUBAIC0xMjMxLDYgKzEy ODQsMTMgQEAgT3V0cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9sOlxuXG5cCitAQCAtMTIy NSw2ICsxMjc4LDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxuXAog ICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAgLS1kYnggICAgICAgICAgICAgIERCWCBjb21w YXRpYmlsaXR5IG1vZGUuXG5cCiAgICAtLXhkYiAgICAgICAgICAgICAgWERCIGNvbXBhdGliaWxp dHkgbW9kZS5cblwKQEAgLTI1OSwxMCArMjU5LDExIEBAIEluZGV4OiBnZGItNy44L2dkYi9tYWlu LmMKICAgIC1xLCAtLXF1aWV0LCAtLXNpbGVudFxuXAogICAgICAgICAgICAgICAgICAgICAgIERv IG5vdCBwcmludCB2ZXJzaW9uIG51bWJlciBvbiBzdGFydHVwLlxuXG5cCiAgIiksIHN0cmVhbSk7 Ci1JbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3Jz LnB5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVf ZXJyb3JzLnB5CTIwMTQtMDctMjkgMTk6Mjk6MDQuODcyOTgyNzk1ICswMjAwCitkaWZmIC0tZ2l0 IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvaWdub3JlX2Vycm9ycy5weSBiL2dkYi9weXRo b24vbGliL2dkYi9jb21tYW5kL2lnbm9yZV9lcnJvcnMucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwLi42ZmE0OGZmCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5CiBAQCAtMCwwICsxLDM3IEBACiArIyBJ Z25vcmUgZXJyb3JzIGluIHVzZXIgY29tbWFuZHMuCiArCkBAIC0zMDEsMTAgKzMwMiwxMSBAQCBJ bmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5 CiArICAgICAgICAgICAgcGFzcwogKwogK0lnbm9yZUVycm9yc0NvbW1hbmQgKCkKLUluZGV4OiBn ZGItNy44L2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL3BhaG9sZS5weQotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcGFob2xlLnB5CTIwMTQtMDctMjkgMTk6 Mjk6MDQuODczOTgyNzk3ICswMjAwCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2Nv bW1hbmQvcGFob2xlLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcGFob2xlLnB5Citu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uNjM2Zjk5ZAorLS0tIC9kZXYvbnVs bAorKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvcGFob2xlLnB5CiBAQCAtMCwwICsx LDgxIEBACiArIyBwYWhvbGUgY29tbWFuZCBmb3IgZ2RiCiArCkBAIC0zODcsNzMgKzM4OSwxMSBA QCBJbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9wYWhvbGUucHkKICsg ICAgICAgIHNlbGYucGFob2xlICh0eXBlLCAwLCAnJykKICsKICtQYWhvbGUoKQotSW5kZXg6IGdk Yi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weQotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weQkyMDE0LTA3 LTI5IDE5OjI5OjA0Ljg3Mzk4Mjc5NyArMDIwMAotQEAgLTAsMCArMSw1OCBAQAotKyMgQ2FsbGVy LWlzIGZ1bmN0aW9ucy4KLSsKLSsjIENvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0raW1w b3J0IGdkYgotK2ltcG9ydCByZQotKwotK2NsYXNzIENhbGxlcklzIChnZGIuRnVuY3Rpb24pOgot KyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiB0aGUgY2FsbGluZyBmdW5jdGlvbidzIG5hbWUgaXMgZXF1 YWwgdG8gYSBzdHJpbmcuCi0rVGhpcyBmdW5jdGlvbiB0YWtlcyBvbmUgb3IgdHdvIGFyZ3VtZW50 cy4KLStUaGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlIG5hbWUgb2YgYSBmdW5jdGlvbjsgaWYgdGhl IGNhbGxpbmcgZnVuY3Rpb24ncwotK25hbWUgaXMgZXF1YWwgdG8gdGhpcyBhcmd1bWVudCwgdGhp cyBmdW5jdGlvbiByZXR1cm5zIFRydWUuCi0rVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0 ZWxscyB0aGlzIGZ1bmN0aW9uIGhvdyBtYW55IHN0YWNrIGZyYW1lcwotK3RvIHRyYXZlcnNlIHRv IGZpbmQgdGhlIGNhbGxpbmcgZnVuY3Rpb24uICBUaGUgZGVmYXVsdCBpcyAxLiIiIgotKwotKyAg ICBkZWYgX19pbml0X18gKHNlbGYpOgotKyAgICAgICAgc3VwZXIgKENhbGxlcklzLCBzZWxmKS5f X2luaXRfXyAoImNhbGxlcl9pcyIpCi0rCi0rICAgIGRlZiBpbnZva2UgKHNlbGYsIG5hbWUsIG5m cmFtZXMgPSAxKToKLSsgICAgICAgIGZyYW1lID0gZ2RiLnNlbGVjdGVkX2ZyYW1lICgpCi0rICAg ICAgICB3aGlsZSBuZnJhbWVzID4gMDoKLSsgICAgICAgICAgICBmcmFtZSA9IGZyYW1lLm9sZGVy ICgpCi0rICAgICAgICAgICAgbmZyYW1lcyA9IG5mcmFtZXMgLSAxCi0rICAgICAgICByZXR1cm4g ZnJhbWUubmFtZSAoKSA9PSBuYW1lLnN0cmluZyAoKQotKwotK2NsYXNzIENhbGxlck1hdGNoZXMg KGdkYi5GdW5jdGlvbik6Ci0rICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBjYWxsaW5nIGZ1bmN0 aW9uJ3MgbmFtZSBtYXRjaGVzIGEgc3RyaW5nLgotK1RoaXMgZnVuY3Rpb24gdGFrZXMgb25lIG9y IHR3byBhcmd1bWVudHMuCi0rVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgcmVndWxhciBleHByZXNz aW9uOyBpZiB0aGUgY2FsbGluZyBmdW5jdGlvbidzCi0rbmFtZSBpcyBtYXRjaGVkIGJ5IHRoaXMg YXJndW1lbnQsIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBUcnVlLgotK1RoZSBvcHRpb25hbCBzZWNv bmQgYXJndW1lbnQgdGVsbHMgdGhpcyBmdW5jdGlvbiBob3cgbWFueSBzdGFjayBmcmFtZXMKLSt0 byB0cmF2ZXJzZSB0byBmaW5kIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLiAgVGhlIGRlZmF1bHQgaXMg MS4iIiIKLSsKLSsgICAgZGVmIF9faW5pdF9fIChzZWxmKToKLSsgICAgICAgIHN1cGVyIChDYWxs ZXJNYXRjaGVzLCBzZWxmKS5fX2luaXRfXyAoImNhbGxlcl9tYXRjaGVzIikKLSsKLSsgICAgZGVm IGludm9rZSAoc2VsZiwgbmFtZSwgbmZyYW1lcyA9IDEpOgotKyAgICAgICAgZnJhbWUgPSBnZGIu c2VsZWN0ZWRfZnJhbWUgKCkKLSsgICAgICAgIHdoaWxlIG5mcmFtZXMgPiAwOgotKyAgICAgICAg ICAgIGZyYW1lID0gZnJhbWUub2xkZXIgKCkKLSsgICAgICAgICAgICBuZnJhbWVzID0gbmZyYW1l cyAtIDEKLSsgICAgICAgIHJldHVybiByZS5tYXRjaCAobmFtZS5zdHJpbmcgKCksIGZyYW1lLm5h bWUgKCkpIGlzIG5vdCBOb25lCi0rCi0rQ2FsbGVySXMoKQotK0NhbGxlck1hdGNoZXMoKQotSW5k ZXg6IGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2luX3Njb3BlLnB5Ci09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuOC9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vaW5fc2NvcGUucHkJMjAx NC0wNy0yOSAxOToyOTowNC44NzM5ODI3OTcgKzAyMDAKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9u L2xpYi9nZGIvZnVuY3Rpb24vaW5fc2NvcGUucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rp b24vaW5fc2NvcGUucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5kZWJi M2JiCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vaW5f c2NvcGUucHkKIEBAIC0wLDAgKzEsNDcgQEAKICsjIEluLXNjb3BlIGZ1bmN0aW9uLgogKwpAQCAt NTAyLDExICs0NDIsMTEgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0 aW9uL2luX3Njb3BlLnB5CiArCXJldHVybiB3YW50ZWQgPT0gZm91bmQKICsKICtJblNjb3BlICgp Ci1JbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5jCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC5vcmlnL2dkYi9weXRob24vcHl0aG9uLmMJMjAxNC0wNy0yOSAxOToyOTowMi42Nzk5Nzk2 NzQgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLmMJMjAxNC0wNy0yOSAxOToy OTowNC44NzM5ODI3OTcgKzAyMDAKLUBAIC05NSw2ICs5NSw4IEBAIGNvbnN0IHN0cnVjdCBleHRl bnNpb25fbGFuZ3VhZ2VfZGVmbiBleHQKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5j IGIvZ2RiL3B5dGhvbi9weXRob24uYworaW5kZXggYjFkODI4My4uOGViOGFmZSAxMDA2NDQKKy0t LSBhL2dkYi9weXRob24vcHl0aG9uLmMKKysrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKK0BAIC05 Myw2ICs5Myw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNp b25fbGFuZ3VhZ2VfcHl0aG9uID0KICAjaW5jbHVkZSAibGluZXNwZWMuaCIKICAjaW5jbHVkZSAi c291cmNlLmgiCiAgI2luY2x1ZGUgInZlcnNpb24uaCIKQEAgLTUxNSw3ICs0NTUsNyBAQCBJbmRl eDogZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgI2luY2x1ZGUgInRhcmdldC5oIgogICNp bmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAiaW50ZXJwcy5oIgotQEAgLTEyMjIsNiAr MTIyNCw1NiBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkKK0BAIC0xMjIwLDYgKzEyMjIsNTYg QEAgZ2RicHlfcHJpbnRfc3RhY2sgKHZvaWQpCiAgCiAgLyogUmV0dXJuIHRoZSBjdXJyZW50IFBy b2dzcGFjZS4KICAgICBUaGVyZSBhbHdheXMgaXMgb25lLiAgKi8KQEAgLTU3Miw3ICs1MTIsNyBA QCBJbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgCiAgc3RhdGljIFB5T2JqZWN0 ICoKICBnZGJweV9nZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5T2JqZWN0ICp1bnVzZWQxLCBQeU9i amVjdCAqdW51c2VkMikKLUBAIC0xOTEwLDYgKzE5NjIsOCBAQCBzdGF0aWMgUHlNZXRob2REZWYg R2RiTWV0aG9kc1tdID0KK0BAIC0xOTEzLDYgKzE5NjUsOCBAQCBzdGF0aWMgUHlNZXRob2REZWYg R2RiTWV0aG9kc1tdID0KICBFdmFsdWF0ZSBjb21tYW5kLCBhIHN0cmluZywgYXMgYSBnZGIgQ0xJ IGNvbW1hbmQuICBPcHRpb25hbGx5IHJldHVybnNcblwKICBhIFB5dGhvbiBTdHJpbmcgY29udGFp bmluZyB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIGlmIHRvX3N0cmluZyBpc1xuXAogIHNldCB0 byBUcnVlLiIgfSwKQEAgLTU4MSwxMCArNTIxLDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9weXRo b24vcHl0aG9uLmMKICAgIHsgInBhcmFtZXRlciIsIGdkYnB5X3BhcmFtZXRlciwgTUVUSF9WQVJB UkdTLAogICAgICAiUmV0dXJuIGEgZ2RiIHBhcmFtZXRlcidzIHZhbHVlIiB9LAogIAotSW5kZXg6 IGdkYi03LjgvZ2RiL3B5dGhvbi9weXRob24uaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3Jp Zy9nZGIvcHl0aG9uL3B5dGhvbi5oCTIwMTQtMDctMjkgMTk6Mjk6MDIuNjc5OTc5Njc0ICswMjAw Ci0rKysgZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5oCTIwMTQtMDctMjkgMTk6Mjk6MDQuODcz OTgyNzk3ICswMjAwCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uaCBiL2dkYi9weXRo b24vcHl0aG9uLmgKK2luZGV4IDllOTk5OTIuLmM3NzZlNTkgMTAwNjQ0CistLS0gYS9nZGIvcHl0 aG9uL3B5dGhvbi5oCisrKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5oCiBAQCAtMjUsNCArMjUsNiBA QAogIC8qIFRoaXMgaXMgYWxsIHRoYXQgcHl0aG9uIGV4cG9ydHMgdG8gZ2RiLiAgKi8KICBleHRl cm4gY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuIGV4dGVuc2lvbl9sYW5ndWFn ZV9weXRob247CkBAIC01OTIsMTAgKzUzMiwxMCBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHl0aG9u L3B5dGhvbi5oCiArZXh0ZXJuIHZvaWQgcnVuX3B5dGhvbl9zY3JpcHQgKGludCBhcmdjLCBjaGFy ICoqYXJndik7CiArCiAgI2VuZGlmIC8qIEdEQl9QWVRIT05fSCAqLwotSW5kZXg6IGdkYi03Ljgv Z2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 Ljgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCTIwMTQtMDctMjkgMTk6 Mjk6MDIuNjc5OTc5Njc0ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5nZGIv c2VsZnRlc3QuZXhwCTIwMTQtMDctMjkgMTk6Mjk6MDQuODc0OTgyNzk4ICswMjAwCitkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLmdkYi9zZWxmdGVzdC5leHAKK2luZGV4IDBiMTFlMTIuLmUzNWU4MjkgMTAwNjQ0CistLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5nZGIvc2VsZnRlc3QuZXhwCiBAQCAtOTIsNiArOTIsMTAgQEAgcHJvYyBkb19zdGVwc19h bmRfbmV4dHMge30gewogIAkJc2V0IGRlc2NyaXB0aW9uICJzdGVwIG92ZXIgY21kYXJnX3ZlYyBp bml0aWFsaXphdGlvbiIKICAJCXNldCBjb21tYW5kICJzdGVwIgpAQCAtNjA3LDIxICs1NDcsMjQg QEAgSW5kZXg6IGdkYi03LjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogIAkg ICAgLXJlICIuKnByZV9zdGF0X2NoYWluID0gbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAuKiRn ZGJfcHJvbXB0ICQiIHsKICAJCXNldCBkZXNjcmlwdGlvbiAibmV4dCBvdmVyIG1ha2VfY29tbWFu ZF9zdGF0c19jbGVhbnVwIGFuZCBldmVyeXRoaW5nIGl0IGNhbGxzIgogIAkJc2V0IGNvbW1hbmQg Im5leHQiCi1JbmRleDogZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUu ZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1mcmFtZS5leHAJMjAxNC0wNy0yOSAxOToyOTowMi42ODA5Nzk2NzYgKzAyMDAKLSsrKyBn ZGItNy44L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAJMjAxNC0wNy0yOSAx OToyOTowNC44NzQ5ODI3OTggKzAyMDAKLUBAIC05NCwzICs5NCw1IEBAIGdkYl90ZXN0ICJweXRo b24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJQotIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1 bHQgPSAlcycgJSBmMC5yZWFkX3ZhciAoJ2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5yZWFkX3Zh ciAtIHN1Y2Nlc3MiCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZy YW1lLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKK2luZGV4IGU0 N2YzNDAuLmE3ZTBhNTIgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt ZnJhbWUuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCitA QCAtOTUsNiArOTUsOCBAQCBnZGJfdGVzdCAicHl0aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUg ZjAucmVhZF92YXIgKCdhJykpIiAiID0gMSIgInRlc3QgRnJhbWUucgogIAogIGdkYl90ZXN0ICJw eXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1lICgpID09IGYx KSkiICIgPSBUcnVlIiAidGVzdCBnZGIuc2VsZWN0ZWRfZnJhbWUiCi0rCisgCiArZ2RiX3Rlc3Qg InB5dGhvbiBwcmludCAoJ3Jlc3VsdCA9ICVzJyAlIChmMC5ibG9jayAoKSkpIiAiPGdkYi5CbG9j ayBvYmplY3QgYXQgMHhcW1xbOnhkaWdpdDpcXVxdKz4iICJ0ZXN0IEZyYW1lLmJsb2NrIgotSW5k ZXg6IGdkYi03LjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUu ZXhwCTIwMTQtMDctMjkgMTk6Mjk6MDIuNjgwOTc5Njc2ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCTIwMTQtMDctMjkgMTk6Mjk6MDQuODc0 OTgyNzk4ICswMjAwCi1AQCAtMzg1LDYgKzM4NSwxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJf ZGVhdGgge30geworKworICMgQ2FuIHJlYWQgU1AgcmVnaXN0ZXIuCisgZ2RiX3Rlc3QgInB5dGhv biBwcmludCAoJ3Jlc3VsdCA9ICVzJyAlIChnZGIuc2VsZWN0ZWRfZnJhbWUgKCkucmVhZF9yZWdp c3RlciAoJ3NwJykgPT0gZ2RiLnBhcnNlX2FuZF9ldmFsICgnXCRzcCcpKSkiIFwKKyAgICIgPSBU cnVlIiBcCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKK2luZGV4IGYwODFmZjAu LjMxYjU5MTAgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUu ZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCitAQCAtMzg4 LDYgKzM4OCwxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30gewogICAgICAicHJp bnQgdmFsdWUncyB0eXBlIgogIH0KICAKQEAgLTYzNyw3ICs1ODAsNyBAQCBJbmRleDogZ2RiLTcu OC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCiAgIyBSZWdyZXNzaW9uIHRl c3QgZm9yIGludmFsaWQgc3Vic2NyaXB0IG9wZXJhdGlvbnMuICBUaGUgYnVnIHdhcyB0aGF0CiAg IyB0aGUgdHlwZSBvZiB0aGUgdmFsdWUgd2FzIG5vdCBiZWluZyBjaGVja2VkIGJlZm9yZSBhbGxv d2luZyBhCiAgIyBzdWJzY3JpcHQgb3BlcmF0aW9uIHRvIHByb2NlZWQuCi1AQCAtNTE0LDYgKzUy Myw3IEBAIHRlc3RfdmFsdWVfaW5faW5mZXJpb3IKK0BAIC01MTcsNiArNTI2LDcgQEAgdGVzdF92 YWx1ZV9pbl9pbmZlcmlvcgogIHRlc3RfaW5mZXJpb3JfZnVuY3Rpb25fY2FsbAogIHRlc3RfbGF6 eV9zdHJpbmdzCiAgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aAoKZGlmZiAtLWdpdCBhL2dkYi1hc3lu Yy1zdG9wcGVkLW9uLXBpZC1hcmctdGVzdHN1aXRlLnBhdGNoIGIvZ2RiLWFzeW5jLXN0b3BwZWQt b24tcGlkLWFyZy10ZXN0c3VpdGUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGQ1MTY2OTUuLjAwMDAwMDAKLS0tIGEvZ2RiLWFzeW5jLXN0b3BwZWQtb24tcGlkLWFyZy10ZXN0 c3VpdGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1odHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wOS9tc2cwMDM4MS5odG1sCi1TdWJqZWN0OiBb dGVzdHN1aXRlIHBhdGNoXSBydW5hd2F5IGF0dGFjaCBwcm9jZXNzZXMgIFtSZTogUmVncmVzc2lv bjogR0RCIHN0b3BwZWQgb24gcnVuIHdpdGggYXR0YWNoZWQgcHJvY2VzcyAoUFIgMTczNDcpXQot Ci0KLS0tUm5sUWpKMGQ5N0RhK1RWMQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotT24gVGh1LCAxMSBTZXAg MjAxNCAxNDozNTo1MyArMDIwMCwgUGVkcm8gQWx2ZXMgd3JvdGU6Ci0+IFRoYW5rcywgcHVzaGVk IHRvIGJvdGggbWFzdGVyIGFuZCA3LjguCi0KLUkgaGF2ZSBzdGFydGVkIHNlZWluZyBvY2Nhc2lv bmFsIHJ1bmF3YXkgJ2F0dGFjaCcgcHJvY2Vzc2VzIHRoZXNlIGRheXMuCi1JIGNhbm5vdCBiZSBj ZXJ0YWluIGl0IGlzIHJlYWxseSBjYXVzZWQgYnkgdGhpcyBwYXRjaCwgZm9yIGV4YW1wbGUKLWdy ZXAgJ0ZBSUwuKmNtZGxpbmUgYXR0YWNoIHJ1bicgZG9lcyBub3Qgc2hvdyBhbnl0aGluZyBpbiBt eSBsb2dzLgotCi1CdXQgYXMgSSByZW1lbWJlciB0aGlzICdhdHRhY2gnIHJ1bmF3YXkgcHJvY2Vz cyBhbHdheXMgaGFwcGVuZWQgaW4gR0RCIChidXQKLUkgZG8gbm90IHJlbWVtYmVyIGl0IGluIHRo ZSBwYXN0IG1vbnRocykgSSB0aGluayBpdCB3b3VsZCBiZSBtb3N0IHNhZmUgdG8ganVzdAotc29s dmUgaXQgZm9yZXZlciBieSBbYXR0YWNoZWRdLgotCi0KLUphbgotCi0tLVJubFFqSjBkOTdEYStU VjEKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1E aXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0xCi0KLWdkYi90ZXN0c3VpdGUvCi0yMDE0LTA5 LTEyICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIGdk Yi5iYXNlL2F0dGFjaC5jOiBJbmNsdWRlIHVuaXN0ZC5oLgotCShtYWluKTogQ2FsbCBhbGFybS4g IEFkZCBsYWJlbCBwb3N0bG9vcC4KLQkqIGdkYi5iYXNlL2F0dGFjaC5leHAgKGRvX2F0dGFjaF90 ZXN0cyk6IFVzZSBnZGJfZ2V0X2xpbmVfbnVtYmVyLAotCWdkYl9icmVha3BvaW50LCBnZGJfY29u dGludWVfdG9fYnJlYWtwb2ludC4KLQkodGVzdF9jb21tYW5kX2xpbmVfYXR0YWNoX3J1bik6IEtp bGwgJHt0ZXN0cGlkfSBpbiBvbmUgZXhpdCBwYXRoLgotCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2F0dGFjaC5jCTIwMTQtMTAtMzAgMjA6MjM6MDEuMzEx NTk1NzI1ICswMTAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNo LmMJMjAxNC0xMC0zMCAyMDoyMzozOC42NTM1NzQ5OTkgKzAxMDAKLUBAIC01LDYgKzUsNyBAQAot ICAgIGV4aXQgdW5sZXNzL3VudGlsIGdkYiBzZXRzIHRoZSB2YXJpYWJsZSB0byBub24temVyby4p Ci0gICAgKi8KLSAjaW5jbHVkZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8dW5pc3RkLmg+Ci0gCi0g aW50ICBzaG91bGRfZXhpdCA9IDA7Ci0gCi1AQCAtMTIsOSArMTMsMTEgQEAgaW50IG1haW4gKCkK LSB7Ci0gICBpbnQgIGxvY2FsX2kgPSAwOwotIAotKyAgYWxhcm0gKDYwKTsKLSsKLSAgIHdoaWxl ICghIHNob3VsZF9leGl0KQotICAgICB7Ci0gICAgICAgbG9jYWxfaSsrOwotICAgICB9Ci0tICBy ZXR1cm4gMDsKLSsgIHJldHVybiAwOyAvKiBwb3N0bG9vcCAqLwotIH0KLUluZGV4OiBnZGItNy44 LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guZXhwCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC4xLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdHRhY2guZXhwCTIwMTQtMTAtMzAg MjA6MjM6MDEuMzExNTk1NzI1ICswMTAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXR0YWNoLmV4cAkyMDE0LTEwLTMwIDIwOjIzOjU0LjE1MTU2Mjg2NyArMDEwMAotQEAg LTI1NiwxMSArMjU2LDggQEAgcHJvYyBkb19hdHRhY2hfdGVzdHMge30gewotIAotICAgICAjIFZl cmlmeSB0aGF0IHRoZSBtb2RpZmljYXRpb24gcmVhbGx5IGhhcHBlbmVkLgotIAotLSAgICBnZGJf dGVzdCAidGJyZWFrIDE5IiAiVGVtcG9yYXJ5IGJyZWFrcG9pbnQgLiphdC4qJHNyY2ZpbGUsIGxp bmUgMTkuKiIgXAotLQkiYWZ0ZXIgYXR0YWNoMiwgc2V0IHRicmVhayBwb3N0bG9vcCIKLS0KLS0g ICAgZ2RiX3Rlc3QgImNvbnRpbnVlIiAibWFpbi4qYXQuKiRzcmNmaWxlOjE5LioiIFwKLS0JImFm dGVyIGF0dGFjaDIsIHJlYWNoIHRicmVhayBwb3N0bG9vcCIKLSsgICAgZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgInBvc3Rsb29wIl0gdGVtcG9yYXJ5Ci0rICAgIGdkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJwb3N0bG9vcCIgIi4qIHBvc3Rsb29wIC4qIgotIAotICAgICAj IEFsbG93IHRoZSB0ZXN0IHByb2Nlc3MgdG8gZXhpdCwgdG8gY2xlYW51cCBhZnRlciBvdXJzZWx2 ZXMuCi0gCi1AQCAtNDE4LDYgKzQxNSw3IEBAIHByb2MgdGVzdF9jb21tYW5kX2xpbmVfYXR0YWNo X3J1biB7fSB7Ci0gCQkgICAgICItaWV4IFwic2V0IGhlaWdodCAwXCIgLWlleCBcInNldCB3aWR0 aCAwXCIgLS1waWQ9JHRlc3RwaWQgLWV4IFwic3RhcnRcIiJdCi0gCWlmIHsgJHJlcyAhPSAwfSB7 Ci0gCSAgICBmYWlsICR0ZXN0Ci0rCSAgICByZW1vdGVfZXhlYyBidWlsZCAia2lsbCAtOSAke3Rl c3RwaWR9IgotIAkgICAgcmV0dXJuICRyZXMKLSAJfQotIAlnZGJfdGVzdF9tdWx0aXBsZSAiIiAk dGVzdCB7CgpkaWZmIC0tZ2l0IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaCBi L2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKaW5kZXggNzVhN2E1Zi4uZTZkOTEw MiAxMDA2NDQKLS0tIGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAorKysgYi9n ZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCkBAIC0zNywxMSArMzcsMTEgQEAgZ2Ri L2dkYnNlcnZlci8KIAkobGludXhfY3JlYXRlX2luZmVyaW9yLCBsaW51eF90cmFjZWZvcmtfY2hp bGQpOiBDYWxsIGl0IGluc3RlYWQgb2YKIAlkaXJlY3QgcHRyYWNlLgogCi1JbmRleDogZ2RiLTcu OC4xL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9n ZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5jCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjcxMDk3NjQ0ICsw MTAwCi0rKysgZ2RiLTcuOC4xL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMJMjAxNC0xMC0zMCAx ODozMzozOS42NDEwOTI3NjMgKzAxMDAKLUBAIC0zMiw2ICszMiwxMCBAQAorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIwMTUtMDEtMDEgMjE6Mzg6 MTQuNjkxMjA5MDk0ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbmF0L2xpbnV4 LXB0cmFjZS5jCTIwMTUtMDEtMDEgMjE6Mzk6MzQuNjcwMTU3NTA2ICswMTAwCitAQCAtMjUsNiAr MjUsMTAgQEAKICAKICAjaW5jbHVkZSA8c3RkaW50Lmg+CiAgCkBAIC01Miw3ICs1Miw3IEBAIElu ZGV4OiBnZGItNy44LjEvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogIC8qIFN0b3JlcyB0aGUg Y3VycmVudGx5IHN1cHBvcnRlZCBwdHJhY2Ugb3B0aW9ucy4gIEEgdmFsdWUgb2YKICAgICAtMSBt ZWFucyB3ZSBkaWQgbm90IGNoZWNrIGZvciBmZWF0dXJlcyB5ZXQuICBBIHZhbHVlIG9mIDAgbWVh bnMKICAgICB0aGVyZSBhcmUgbm8gc3VwcG9ydGVkIGZlYXR1cmVzLiAgKi8KLUBAIC01Niw2ICs2 MCw4IEBAIGxpbnV4X3B0cmFjZV9hdHRhY2hfZmFpbF9yZWFzb24gKHBpZF90IHAKK0BAIC01Myw2 ICs1Nyw4IEBAIGxpbnV4X3B0cmFjZV9hdHRhY2hfZmFpbF9yZWFzb24gKHBpZF90IHAKICAgICAg YnVmZmVyX3htbF9wcmludGYgKGJ1ZmZlciwgXygicHJvY2VzcyAlZCBpcyBhIHpvbWJpZSAiCiAg CQkJCSAiLSB0aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJtaW5hdGVkIiksCiAgCQkgICAgICAg KGludCkgcGlkKTsKQEAgLTYxLDExICs2MSwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9jb21t b24vbGludXgtcHRyYWNlLmMKICB9CiAgCiAgI2lmIGRlZmluZWQgX19pMzg2X18gfHwgZGVmaW5l ZCBfX3g4Nl82NF9fCi1AQCAtNTUxLDMgKzU1NywxOSBAQCBsaW51eF9wdHJhY2VfaW5pdF93YXJu aW5ncyAodm9pZCkKLSAKK0BAIC01NjgsNiArNTc0LDIyIEBAIGxpbnV4X3B0cmFjZV9pbml0X3dh cm5pbmdzICh2b2lkKQogICAgbGludXhfcHRyYWNlX3Rlc3RfcmV0X3RvX254ICgpOwogIH0KLSsK KyAKICsvKiBQcmludCBhbGwgcG9zc2libGUgcmVhc29ucyB3ZSBjb3VsZCBmYWlsIHRvIGNyZWF0 ZSBhIHRyYWNlZCBwcm9jZXNzLiAgKi8KICsKICt2b2lkCkBAIC04MSwyMyArODAsMjcgQEAgSW5k ZXg6IGdkYi03LjguMS9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5jCiArCQkJICIoZ2RiKSBzaGVs bCBzdWRvIHNldHNlYm9vbCBkZW55X3B0cmFjZT0wIikpOwogKyNlbmRpZiAvKiBIQVZFX0xJQlNF TElOVVggKi8KICt9Ci1JbmRleDogZ2RiLTcuOC4xL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgK KysKKyAvKiBTZXQgYWRkaXRpb25hbCBwdHJhY2UgZmxhZ3MgdG8gdXNlLiAgU29tZSBzdWNoIGZs YWdzIG1heSBiZSBjaGVja2VkCisgICAgYnkgdGhlIGltcGxlbWVudGF0aW9uIGFib3ZlLiAgVGhp cyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBiZWZvcmUKKyAgICBhbnkgb3RoZXIgZnVuY3Rpb24g aW4gdGhpcyBmaWxlOyBvdGhlcndpc2UgdGhlIGZsYWdzIG1heSBub3QgdGFrZQorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL25hdC9saW51eC1wdHJhY2UuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguMS5vcmlnL2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxNC0xMC0zMCAxODoz MzozNy4yNzEwOTc2NDQgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2NvbW1vbi9saW51eC1wdHJh Y2UuaAkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0MjA5Mjc2MSArMDEwMAotQEAgLTg1LDYgKzg1LDcg QEAgc3RydWN0IGJ1ZmZlcjsKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL25hdC9s aW51eC1wdHJhY2UuaAkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MDIwNDg0NCArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE1LTAxLTAxIDIxOjM5 OjAwLjU0MjE3OTUxOSArMDEwMAorQEAgLTkwLDYgKzkwLDcgQEAgc3RydWN0IGJ1ZmZlcjsKICAK ICBleHRlcm4gdm9pZCBsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29uIChwaWRfdCBwaWQs IHN0cnVjdCBidWZmZXIgKmJ1ZmZlcik7CiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2luaXRf d2FybmluZ3MgKHZvaWQpOwogK2V4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9jcmVhdGVfd2Fybmlu Z3MgKHN0cnVjdCBidWZmZXIgKmJ1ZmZlcik7Ci0gZXh0ZXJuIHZvaWQgbGludXhfZW5hYmxlX2V2 ZW50X3JlcG9ydGluZyAocGlkX3QgcGlkKTsKKyBleHRlcm4gdm9pZCBsaW51eF9lbmFibGVfZXZl bnRfcmVwb3J0aW5nIChwaWRfdCBwaWQsIGludCBhdHRhY2hlZCk7CiAgZXh0ZXJuIHZvaWQgbGlu dXhfZGlzYWJsZV9ldmVudF9yZXBvcnRpbmcgKHBpZF90IHBpZCk7CiAgZXh0ZXJuIGludCBsaW51 eF9zdXBwb3J0c190cmFjZWZvcmsgKHZvaWQpOwotSW5kZXg6IGdkYi03LjguMS9nZGIvY29uZmln dXJlLmFjCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlndXJlLmFjCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE0LTEwLTMwIDE4 OjMzOjM3LjI3MjA5NzY0MiArMDEwMAotKysrIGdkYi03LjguMS9nZGIvY29uZmlndXJlLmFjCTIw MTQtMTAtMzAgMTg6MzM6MzkuNjQzMDkyNzU5ICswMTAwCi1AQCAtMjE2MSw2ICsyMTYxLDEwIEBA IGNhc2UgJGhvc3Rfb3MgaW4KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZp Z3VyZS5hYwkyMDE1LTAxLTAxIDIxOjM4OjE0LjY5MjIwOTA5NCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4MTIwNDg0 MyArMDEwMAorQEAgLTIxMTYsNiArMjExNiwxMCBAQCBjYXNlICRob3N0X29zIGluCiAgZXNhYwog IEFDX0RFRklORV9VTlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAuZ2RiaW5pdCBmaWxl bmFtZS5dKQogIApAQCAtMTA4LDExICsxMTEsMTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvY29u ZmlndXJlLmFjCiAgZG5sIEhhbmRsZSBvcHRpb25hbCBmZWF0dXJlcyB0aGF0IGNhbiBiZSBlbmFi bGVkLgogIAogICMgU3VwcG9ydCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9B Q19XSVRIX0RJUiwKLUluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJ MjAxNC0xMC0zMCAxODozMzozNy4yNzMwOTc2NDAgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2dk YnNlcnZlci9jb25maWd1cmUuYWMJMjAxNC0xMC0zMCAxODozMzozOS42NDMwOTI3NTkgKzAxMDAK LUBAIC00NTQsNiArNDU0LDEwIEBAIGlmICR3YW50X2lwYSA7IHRoZW4KKy0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNS0wMS0wMSAyMToz ODoxNC42OTMyMDkwOTMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJzZXJ2 ZXIvY29uZmlndXJlLmFjCTIwMTUtMDEtMDEgMjE6Mzg6MjEuMjgxMjA0ODQzICswMTAwCitAQCAt NDYxLDYgKzQ2MSwxMCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQogIApAQCAt MTIzLDExICsxMjYsMTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3Vy ZS5hYwogIEFDX1NVQlNUKEdEQlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJTVChHREJTRVJWRVJf TElCUykKICBBQ19TVUJTVChzcnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGItNy44LjEvZ2RiL2dk YnNlcnZlci9saW51eC1sb3cuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnNl cnZlci9saW51eC1sb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9nZGJz ZXJ2ZXIvbGludXgtbG93LmMJMjAxNC0xMC0zMCAxODozMzozNy4yNzUwOTc2MzYgKzAxMDAKLSsr KyBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE0LTEwLTMwIDE4OjMzOjM5 LjY0NDA5Mjc1NyArMDEwMAotQEAgLTU0MSw2ICs1NDEsMjkgQEAgYWRkX2x3cCAocHRpZF90IHB0 aWQpCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93 LmMJMjAxNS0wMS0wMSAyMTozODoxNC42OTUyMDkwOTEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxNS0wMS0wMSAyMTozODoyMS4yODIy MDQ4NDMgKzAxMDAKK0BAIC01MzcsNiArNTM3LDI5IEBAIGFkZF9sd3AgKHB0aWRfdCBwdGlkKQog ICAgcmV0dXJuIGx3cDsKICB9CiAgCkBAIC0xNTcsNyArMTYwLDcgQEAgSW5kZXg6IGdkYi03Ljgu MS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAgLyogU3RhcnQgYW4gaW5mZXJpb3IgcHJvY2Vz cyBhbmQgcmV0dXJucyBpdHMgcGlkLgogICAgIEFMTEFSR1MgaXMgYSB2ZWN0b3Igb2YgcHJvZ3Jh bS1uYW1lIGFuZCBhcmdzLiAqLwogIAotQEAgLTU4Miw3ICs2MDUsNyBAQCBsaW51eF9jcmVhdGVf aW5mZXJpb3IgKGNoYXIgKnByb2dyYW0sIGNoCitAQCAtNTc4LDcgKzYwMSw3IEBAIGxpbnV4X2Ny ZWF0ZV9pbmZlcmlvciAoY2hhciAqcHJvZ3JhbSwgY2gKICAgIGlmIChwaWQgPT0gMCkKICAgICAg ewogICAgICAgIGNsb3NlX21vc3RfZmRzICgpOwpAQCAtMTY2LDExICsxNjksMTEgQEAgSW5kZXg6 IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAgCiAgI2lmbmRlZiBfX0FORFJP SURfXyAvKiBCaW9uaWMgZG9lc24ndCB1c2UgU0lHUlRNSU4gdGhlIHdheSBnbGliYyBkb2VzLiAg Ki8KICAgICAgICBzaWduYWwgKF9fU0lHUlRNSU4gKyAxLCBTSUdfREZMKTsKLUluZGV4OiBnZGIt Ny44LjEvZ2RiL2luZi1wdHJhY2UuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2lu Zi1wdHJhY2UuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9pbmYtcHRyYWNl LmMJMjAxNC0xMC0zMCAxODozMzozNy4yNzYwOTc2MzQgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2Ri L2luZi1wdHJhY2UuYwkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0NTA5Mjc1NSArMDEwMAotQEAgLTEw NSw3ICsxMDUsMTUgQEAgc3RhdGljIHZvaWQKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2luZi1wdHJhY2UuYwkyMDE1LTAxLTAxIDIxOjM4OjE0LjY5NTIwOTA5MSArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZi1wdHJhY2UuYwkyMDE1LTAxLTAxIDIxOjM4OjIx LjI4MjIwNDg0MyArMDEwMAorQEAgLTY2LDcgKzY2LDE1IEBAIHN0YXRpYyB2b2lkCiAgaW5mX3B0 cmFjZV9tZSAodm9pZCkKICB7CiAgICAvKiAiVHJhY2UgbWUsIERyLiBNZW1vcnkhIiAgKi8KQEAg LTE4NiwxMSArMTg5LDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2luZi1wdHJhY2UuYwogIH0K ICAKICAvKiBTdGFydCBhIG5ldyBpbmZlcmlvciBVbml4IGNoaWxkIHByb2Nlc3MuICBFWEVDX0ZJ TEUgaXMgdGhlIGZpbGUgdG8KLUluZGV4OiBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjEub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNC0xMC0zMCAxODozMzozNy4yNzcwOTc2 MzEgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMTAtMzAgMTg6MzM6 MzkuNjQ2MDkyNzUzICswMTAwCi1AQCAtMTI5MSw2ICsxMjkxLDcgQEAgbGludXhfbmF0X2NyZWF0 ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvbGludXgtbmF0LmMJMjAxNS0wMS0wMSAyMTozODoxNC42OTcyMDkwOTAgKzAxMDAKKysrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9saW51eC1uYXQuYwkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4 MzIwNDg0MiArMDEwMAorQEAgLTEwOTksNiArMTA5OSw3IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5m ZXJpb3IgKHN0cnVjdCB0YXJnZXQKICAjaWZkZWYgSEFWRV9QRVJTT05BTElUWQogICAgaW50IHBl cnNvbmFsaXR5X29yaWcgPSAwLCBwZXJzb25hbGl0eV9zZXQgPSAwOwogICNlbmRpZiAvKiBIQVZF X1BFUlNPTkFMSVRZICovCkBAIC0xOTgsNyArMjAxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIv bGludXgtbmF0LmMKICAKICAgIC8qIFRoZSBmb3JrX2NoaWxkIG1lY2hhbmlzbSBpcyBzeW5jaHJv bm91cyBhbmQgY2FsbHMgdGFyZ2V0X3dhaXQsIHNvCiAgICAgICB3ZSBoYXZlIHRvIG1hc2sgdGhl IGFzeW5jIG1vZGUuICAqLwotQEAgLTEzMTUsNyArMTMxNiwxMCBAQCBsaW51eF9uYXRfY3JlYXRl X2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0CitAQCAtMTEyMyw3ICsxMTI0LDEwIEBAIGxpbnV4X25h dF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKICAgIC8qIE1ha2Ugc3VyZSB3ZSByZXBv cnQgYWxsIHNpZ25hbHMgZHVyaW5nIHN0YXJ0dXAuICAqLwogICAgbGludXhfbmF0X3Bhc3Nfc2ln bmFscyAob3BzLCAwLCBOVUxMKTsKICAKQEAgLTIxMCw3ICsyMTMsNyBAQCBJbmRleDogZ2RiLTcu OC4xL2dkYi9saW51eC1uYXQuYwogIAogICNpZmRlZiBIQVZFX1BFUlNPTkFMSVRZCiAgICBpZiAo cGVyc29uYWxpdHlfc2V0KQotQEAgLTEzMjcsNiArMTMzMSwyNCBAQCBsaW51eF9uYXRfY3JlYXRl X2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0CitAQCAtMTEzNSw2ICsxMTM5LDI0IEBAIGxpbnV4X25h dF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKICAJCSBzYWZlX3N0cmVycm9yIChlcnJu bykpOwogICAgICB9CiAgI2VuZGlmIC8qIEhBVkVfUEVSU09OQUxJVFkgKi8KQEAgLTIzNSwxMSAr MjM4LDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIHN0YXRp YyB2b2lkCi1JbmRleDogZ2RiLTcuOC4xL2dkYi9jb25maWcuaW4KK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9jb25maWcuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9n ZGIvY29uZmlnLmluCTIwMTQtMTAtMzAgMTg6MzM6MzcuMjc4MDk3NjMwICswMTAwCi0rKysgZ2Ri LTcuOC4xL2dkYi9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozNDozNi4xNjU5NzYzNjYgKzAxMDAK LUBAIC0yMTYsNiArMjE2LDkgQEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Nv bmZpZy5pbgkyMDE1LTAxLTAxIDIxOjM4OjE0LjY5NzIwOTA5MCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2NvbmZpZy5pbgkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4NDIwNDg0MiAr MDEwMAorQEAgLTIxMyw2ICsyMTMsOSBAQAogIC8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBp cyBiZWluZyB1c2VkLiAqLwogICN1bmRlZiBIQVZFX0xJQlJQTQogIApAQCAtMjQ5LDcgKzI1Miw3 IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhB VkVfTElCVU5XSU5EX0lBNjRfSAogIAotQEAgLTM1MSw2ICszNTQsOSBAQAorQEAgLTM0Miw2ICsz NDUsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2NtX25ld19zbW9iJyBm dW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TQ01fTkVXX1NNT0IKICAKQEAgLTI1OSwxMSArMjYy LDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRM T0NBTEUKICAKLUluZGV4OiBnZGItNy44LjEvZ2RiL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmln L2dkYi9jb25maWd1cmUJMjAxNC0xMC0zMCAxODozMzozNy4yODEwOTc2MjMgKzAxMDAKLSsrKyBn ZGItNy44LjEvZ2RiL2NvbmZpZ3VyZQkyMDE0LTEwLTMwIDE4OjMzOjM5LjY0OTA5Mjc0NyArMDEw MAotQEAgLTEzNDAwLDYgKzEzNDAwLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE1LTAxLTAxIDIxOjM4 OjE0LjcwMTIwOTA4NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZ3Vy ZQkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4NjIwNDg0MCArMDEwMAorQEAgLTEzMjY5LDYgKzEzMjY5 LDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICBfQUNFT0YKICAKICAKQEAgLTMyOCwx MSArMzMxLDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2NvbmZpZ3VyZQogIAogICMgU3VwcG9y dCBmb3IgLS13aXRoLXN5c3Jvb3QgaXMgYSBjb3B5IG9mIEdEQl9BQ19XSVRIX0RJUiwKICAjIGV4 Y2VwdCB0aGF0IHRoZSBhcmd1bWVudCB0byAtLXdpdGgtc3lzcm9vdCBpcyBvcHRpb25hbC4KLUlu ZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OC4xLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0xMC0zMCAxODozMzozNy4yODIw OTc2MjEgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0x MC0zMCAxODozMzozOS42NDkwOTI3NDcgKzAxMDAKLUBAIC04MSw2ICs4MSw5IEBACistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCTIwMTUtMDEtMDEg MjE6Mzg6MTQuNzAyMjA5MDg3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ri c2VydmVyL2NvbmZpZy5pbgkyMDE1LTAxLTAxIDIxOjM4OjM5LjM2NTE5MzE3OSArMDEwMAorQEAg LTc1LDYgKzc1LDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1jaGVjaycg bGlicmFyeSAoLWxtY2hlY2spLiAqLwogICN1bmRlZiBIQVZFX0xJQk1DSEVDSwogIApAQCAtMzQy LDkgKzM0NSw5IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KICAv KiBEZWZpbmUgaWYgdGhlIHRhcmdldCBzdXBwb3J0cyBicmFuY2ggdHJhY2luZy4gKi8KICAjdW5k ZWYgSEFWRV9MSU5VWF9CVFJBQ0UKICAKLUBAIC0xNTQsNiArMTU3LDkgQEAKLSAvKiBEZWZpbmUg dG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJlYWRsaW5rJyBmdW5jdGlvbi4gKi8KLSAjdW5kZWYgSEFW RV9SRUFETElOSworQEAgLTE0Miw2ICsxNDUsOSBAQAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBo YXZlIHRoZSBgcHdyaXRlJyBmdW5jdGlvbi4gKi8KKyAjdW5kZWYgSEFWRV9QV1JJVEUKICAKICsv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNlbGludXgvc2VsaW51eC5oPiBoZWFkZXIg ZmlsZS4gKi8KICsjdW5kZWYgSEFWRV9TRUxJTlVYX1NFTElOVVhfSApAQCAtMzUyLDExICszNTUs MTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgogIC8qIERlZmlu ZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2d0dHkuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVm IEhBVkVfU0dUVFlfSAogIAotSW5kZXg6IGdkYi03LjguMS9nZGIvZ2Ric2VydmVyL2NvbmZpZ3Vy ZQorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE0 LTEwLTMwIDE4OjMzOjM3LjI4MzA5NzYxOSArMDEwMAotKysrIGdkYi03LjguMS9nZGIvZ2Ric2Vy dmVyL2NvbmZpZ3VyZQkyMDE0LTEwLTMwIDE4OjMzOjM5LjY1MDA5Mjc0NSArMDEwMAotQEAgLTYx NzAsNiArNjE3MCw2NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTUtMDEtMDEgMjE6Mzg6MTQuNzA0 MjA5MDg2ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2Ric2VydmVyL2NvbmZp Z3VyZQkyMDE1LTAxLTAxIDIxOjM4OjIxLjI4ODIwNDgzOSArMDEwMAorQEAgLTYxOTksNiArNjE5 OSw2NCBAQCBpZiAkd2FudF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQogIAoKZGlmZiAtLWdpdCBh L2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaCBiL2dkYi1iejU0MTg2Ni1yd2F0 Y2gtYmVmb3JlLXJ1bi5wYXRjaAppbmRleCA3YmZlNDExLi45NTgyOWY5IDEwMDY0NAotLS0gYS9n ZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKKysrIGIvZ2RiLWJ6NTQxODY2LXJ3 YXRjaC1iZWZvcmUtcnVuLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjcuNTAu MjAxNDA2MDkvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny41MC4yMDE0MDYwOS5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTQtMDYtMTMg MjA6MjU6MzcuMzU2NzMyMzM1ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29u ZmlnL2kzODYvbGludXg2NC5taAkyMDE0LTA2LTEzIDIwOjI2OjA3Ljk4NDc2NDA5OCArMDIwMAot QEAgLTUsNyArNSw3IEBAIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJ MjAxNS0wMS0wMSAxNzoxMjo1My45NjU0NzIyMjcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTUtMDEtMDEgMTc6MTI6NTUuMzY3NDcx NDE0ICswMTAwCitAQCAtNiw3ICs2LDcgQEAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3Jr LWNoaWxkLm8gXAogIAlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJlYWQtZGIubyBsaW51eC1mb3Jr Lm8gXAogIAlsaW51eC1wcm9jZnMubyBsaW51eC1wdHJhY2UubyBsaW51eC1idHJhY2UubyBcCiAg CWxpbnV4LXdhaXRwaWQubwpAQCAtMTEsMjIgKzExLDIyIEBAIEluZGV4OiBnZGItNy43LjUwLjIw MTQwNjA5L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiAgTkFUX0NERVBTID0gJChzcmNkaXIp L3Byb2Mtc2VydmljZS5saXN0CiAgCiAgIyBUaGUgZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVh ZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBpbiB0aGUKLUluZGV4OiBnZGItNy43LjUwLjIw MTQwNjA5L2dkYi9jb25maWcvaTM4Ni9saW51eC5taAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy41MC4y MDE0MDYwOS5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE0LTA2LTEzIDIwOjI1OjM3 LjM1NjczMjMzNSArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZy9pMzg2 L2xpbnV4Lm1oCTIwMTQtMDYtMTMgMjA6MjY6MDcuOTg0NzY0MDk4ICswMjAwCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE1LTAxLTAxIDE3 OjEyOjU1LjM2NzQ3MTQxNCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZp Zy9pMzg2L2xpbnV4Lm1oCTIwMTUtMDEtMDEgMTc6MTM6MDcuNTY4NDY0MzQyICswMTAwCiBAQCAt MSw2ICsxLDYgQEAKICAjIEhvc3Q6IEludGVsIDM4NiBydW5uaW5nIEdOVS9MaW51eC4KICAKIC1O QVRfRklMRT0gY29uZmlnL25tLWxpbnV4LmgKICtOQVRfRklMRT0gbm0tbGludXguaAogIE5BVERF UEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKLSAJaTM4Ni1uYXQubyBpMzg2LWxp bnV4LW5hdC5vIFwKKyAJeDg2LW5hdC5vIHg4Ni1kcmVncy5vIGkzODYtbGludXgtbmF0Lm8geDg2 LWxpbnV4LW5hdC5vIFwKICAJcHJvYy1zZXJ2aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAotSW5k ZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDE0LTA2 LTEzIDIwOjI2OjA3Ljk4NDc2NDA5OCArMDIwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2NvbmZpZy9pMzg2L25tLWxpbnV4LmgJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjg0NzE0MTQgKzAx MDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05VL0xpbnV4IGkz ODYuCiArCkBAIC01NiwxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2Ri L2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKICsjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJl X3dhdGNocG9pbnQodHlwZSwgY250LCBvdCkgMQogKwogKyNlbmRpZiAvKiBOTV9MSU5VWDY0X0gg Ki8KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0 LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0 LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9jb25maWcvaTM4Ni9ubS1saW51 eDY0LmgJMjAxNC0wNi0xMyAyMDoyNjowNy45ODQ3NjQwOTggKzAyMDAKKysrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgJMjAxNS0wMS0wMSAxNzoxMjo1 NS4zNjg0NzE0MTQgKzAxMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBm b3IgR05VL0xpbnV4IGFtZDY0LgogKwpAQCAtODksMTEgKzg5LDExIEBAIEluZGV4OiBnZGItNy43 LjUwLjIwMTQwNjA5L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKICsjZGVmaW5lIHRhcmdl dF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQodHlwZSwgY250LCBvdCkgMQogKwogKyNlbmRp ZiAvKiBOTV9MSU5VWDY0X0ggKi8KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi90YXJn ZXQuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi90YXJnZXQuaAkyMDE0LTA2LTEzIDIw OjI2OjA3Ljk4NTc2NDA5OSArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rhcmdl dC5oCTIwMTQtMDYtMTMgMjA6MjY6MzQuOTE1NzkyMDk1ICswMjAwCi1AQCAtMTcyOCw5ICsxNzI4 LDExIEBAIGV4dGVybiBjaGFyICp0YXJnZXRfdGhyZWFkX25hbWUgKHN0cnVjdAorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNS0wMS0wMSAxNzoxMjo1My45Njc0 NzIyMjYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQuaAkyMDE1LTAx LTAxIDE3OjEyOjU1LjM2ODQ3MTQxNCArMDEwMAorQEAgLTE3NTQsOSArMTc1NCwxMSBAQCBleHRl cm4gY2hhciAqdGFyZ2V0X3RocmVhZF9uYW1lIChzdHJ1Y3QKICAgICBicF9oYXJkd2FyZV9icmVh a3BvaW50LiAgQ05UIGlzIHRoZSBudW1iZXIgb2Ygc3VjaCB3YXRjaHBvaW50cyB1c2VkIHNvIGZh cgogICAgIChpbmNsdWRpbmcgdGhpcyBvbmU/KS4gIE9USEVSVFlQRSBpcyB3aG8ga25vd3Mgd2hh dC4uLiAgKi8KICAKQEAgLTEwNSwxMCArMTA1LDEwIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQw NjA5L2dkYi90YXJnZXQuaAogIAogIC8qIFJldHVybnMgdGhlIG51bWJlciBvZiBkZWJ1ZyByZWdp c3RlcnMgbmVlZGVkIHRvIHdhdGNoIHRoZSBnaXZlbgogICAgIG1lbW9yeSByZWdpb24sIG9yIHpl cm8gaWYgbm90IHN1cHBvcnRlZC4gICovCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1i ZWZvcmUtcnVuLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCTIwMTQtMDYtMTMgMjA6MjY6 MDcuOTg2NzY0MTAxICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNS0wMS0wMSAxNzoxMjo1 NS4zNjk0NzE0MTMgKzAxMDAKIEBAIC0wLDAgKzEsNDAgQEAKICsjIENvcHlyaWdodCAyMDA5LCAy MDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwoKZGlmZiAtLWdpdCBhL2dkYi1j b21waWxlLXdhcm5fdW51c2VkX3Jlc3VsdC5wYXRjaCBiL2dkYi1jb21waWxlLXdhcm5fdW51c2Vk X3Jlc3VsdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzI0MDA0 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLWNvbXBpbGUtd2Fybl91bnVzZWRfcmVzdWx0LnBhdGNo CkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21waWxlL2Nv bXBpbGUuYy1vcmlnCTIwMTQtMTItMjggMDI6NDg6NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvY29tcGlsZS9jb21waWxlLmMJMjAxNS0wMS0wNSAyMzowMzoz My4zODMwMTYwMzkgKzAxMDAKK0BAIC0xNzIsNyArMTcyLDcgQEAgZG9fcm1kaXIgKHZvaWQgKmFy ZykKKyAgIAorICAgZ2RiX2Fzc2VydCAoc3RybmNtcCAoZGlyLCBUTVBfUFJFRklYLCBzdHJsZW4g KFRNUF9QUkVGSVgpKSA9PSAwKTsKKyAgIHphcCA9IGNvbmNhdCAoInJtIC1yZiAiLCBkaXIsIChj aGFyICopIE5VTEwpOworLSAgc3lzdGVtICh6YXApOworKyAgaWYgKHN5c3RlbSAoemFwKSkge30K KyB9CisgCisgLyogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRv IHVzZSBmb3IgLm8gZmlsZXMsIGFuZAoKZGlmZiAtLWdpdCBhL2dkYi1kdHMtcmhlbDYtcHl0aG9u LWNvbXBhdC5wYXRjaCBiL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaAppbmRleCBh ODFlOTQyLi43NDllMmNmIDEwMDY0NAotLS0gYS9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQu cGF0Y2gKKysrIGIvZ2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoCkBAIC0xLDkgKzEs OSBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMDIwMDA0 CiAKLUluZGV4OiBnZGItNy44L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgky MDE0LTEwLTE5IDE4OjI1OjM0LjE4NzExMDI2MSArMDIwMAotKysrIGdkYi03LjgvZ2RiL2RhdGEt ZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTQtMTAtMTkgMTg6MjU6NTEuMDkyMTIxNzA2ICswMjAw CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmls ZS5pbgkyMDE1LTAxLTA1IDIyOjUxOjEwLjcwNzc1NjgxMCArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTUtMDEtMDUgMjI6NTE6 NDguNjA4OTIzMTM5ICswMTAwCiBAQCAtNjAsNiArNjAsOCBAQCBQWVRIT05fRklMRV9MSVNUID0g XAogIAlnZGIvZnJhbWVzLnB5IFwKICAJZ2RiL0ZyYW1lSXRlcmF0b3IucHkgXApAQCAtMTMsMTgg KzEzLDE4IEBAIEluZGV4OiBnZGItNy44L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgog IAlnZGIvdHlwZXMucHkgXAogIAlnZGIvcHJpbnRpbmcucHkgXAogIAlnZGIvcHJvbXB0LnB5IFwK LUBAIC03Myw2ICs3NSw3IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCitAQCAtNzQsNiArNzYsNyBA QCBQWVRIT05fRklMRV9MSVNUID0gXAogIAlnZGIvY29tbWFuZC9wcmV0dHlfcHJpbnRlcnMucHkg XAogIAlnZGIvY29tbWFuZC9wcm9tcHQucHkgXAogIAlnZGIvY29tbWFuZC9leHBsb3JlLnB5IFwK ICsJZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5 IFwKKyAJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBcCiAgCWdkYi9mdW5jdGlvbi9zdHJmbnMu cHkgXAotIAlnZGIvcHJpbnRlci9fX2luaXRfXy5weSBcCi1JbmRleDogZ2RiLTcuOC9nZGIvcHl0 aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC9nZGIv cHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTQtMTAtMTkgMTg6MjU6MzYuODA4MTEy MDMxICswMjAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJh bWVXcmFwcGVyLnB5CTIwMTUtMDEtMDUgMjI6NTE6MjQuNzA2ODE4MjQ1ICswMTAwCiBAQCAtMCww ICsxLDEyMiBAQAogKyMgV3JhcHBlciBBUEkgZm9yIGZyYW1lcy4KICsKQEAgLTE0OCwxMCArMTQ4 LDEwIEBAIEluZGV4OiBnZGItNy44L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkK ICsKICsgICAgZGVmIF9fZ2V0YXR0cl9fIChzZWxmLCBuYW1lKToKICsgICAgICAgIHJldHVybiBn ZXRhdHRyIChzZWxmLmZyYW1lLCBuYW1lKQotSW5kZXg6IGdkYi03LjgvZ2RiL3B5dGhvbi9saWIv Z2RiL2JhY2t0cmFjZS5weQorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9s aWIvZ2RiL2JhY2t0cmFjZS5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjgvZ2RiL3B5dGhvbi9saWIvZ2Ri L2JhY2t0cmFjZS5weQkyMDE0LTEwLTE5IDE4OjI1OjM2LjgwODExMjAzMSArMDIwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE1LTAx LTA1IDIyOjUxOjI0LjcwNjgxODI0NSArMDEwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgRmlsdGVy aW5nIGJhY2t0cmFjZS4KICsKQEAgLTE5NSwxMCArMTk1LDEwIEBAIEluZGV4OiBnZGItNy44L2dk Yi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKICsgICAgICAgIHJldHVybiBpdGVyCiArICAg IHJldHVybiBvbGRfZnJhbWVfZmlsdGVyIChpdGVyKQogKwotSW5kZXg6IGdkYi03LjgvZ2RiL3B5 dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy44L2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2JhY2t0cmFjZS5weQkyMDE0LTEwLTE5 IDE4OjI1OjM2LjgwODExMjAzMSArMDIwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3B5 dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CTIwMTUtMDEtMDUgMjI6NTE6MjQuNzA3 ODE4MjQ5ICswMTAwCiBAQCAtMCwwICsxLDEwNiBAQAogKyMgTmV3IGJhY2t0cmFjZSBjb21tYW5k LgogKwoKZGlmZiAtLWdpdCBhL2dkYi1lbmFibGUtY291bnQtY3Jhc2gucGF0Y2ggYi9nZGItZW5h YmxlLWNvdW50LWNyYXNoLnBhdGNoCmluZGV4IDk0NjFlZTkuLjRjZGQ1YmEgMTAwNjQ0Ci0tLSBh L2dkYi1lbmFibGUtY291bnQtY3Jhc2gucGF0Y2gKKysrIGIvZ2RiLWVuYWJsZS1jb3VudC1jcmFz aC5wYXRjaApAQCAtMzcsMjAgKzM3LDIwIEBAIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgogIGdk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRpcy1ici5leHAgfCA4ICsrKysrKysrCiAgMiBmaWxl cyBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogCi1kaWZmIC0tZ2l0 IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMKLWluZGV4IGNjZDA1ZDkuLjVh MGM1YWIgMTAwNjQ0Ci0tLS0gYS9nZGIvYnJlYWtwb2ludC5jCi0rKysgYi9nZGIvYnJlYWtwb2lu dC5jCi1AQCAtMTQzODksNyArMTQzODksNyBAQCBtYXBfYnJlYWtwb2ludF9udW1iZXJzIChjaGFy ICphcmdzLCB2b2lkICgqZnVuY3Rpb24pIChzdHJ1Y3QgYnJlYWtwb2ludCAqLAorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9pbnQuYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMDEtMDUgMjI6MjE6NDcu NjMxODAxNTU4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnJlYWtwb2ludC5j CTIwMTUtMDEtMDUgMjI6MjY6MTMuMTY1MDA1MDQ5ICswMTAwCitAQCAtMTQ4NDksNyArMTQ4NDks NyBAQCBtYXBfYnJlYWtwb2ludF9udW1iZXJzIChjaGFyICphcmdzLCB2b2lkCiAgICBpbnQgbWF0 Y2g7CiAgICBzdHJ1Y3QgZ2V0X251bWJlcl9vcl9yYW5nZV9zdGF0ZSBzdGF0ZTsKLQorIAogLSAg aWYgKGFyZ3MgPT0gMCkKICsgIGlmIChhcmdzID09IDAgfHwgKmFyZ3MgPT0gJ1wwJykKICAgICAg ZXJyb3Jfbm9fYXJnIChfKCJvbmUgb3IgbW9yZSBicmVha3BvaW50IG51bWJlcnMiKSk7Ci0KKyAK ICAgIGluaXRfbnVtYmVyX29yX3JhbmdlICgmc3RhdGUsIGFyZ3MpOwotQEAgLTE0NzEzLDcgKzE0 NzEzLDEyIEBAIGRvX21hcF9lbmFibGVfY291bnRfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9p bnQgKmJwdCwgdm9pZCAqY291bnRwdHIpCitAQCAtMTUxODYsNyArMTUxODYsMTIgQEAgZG9fbWFw X2VuYWJsZV9jb3VudF9icmVha3BvaW50IChzdHJ1Y3QgYgogIHN0YXRpYyB2b2lkCiAgZW5hYmxl X2NvdW50X2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICB7CkBAIC02MSwxNyAr NjEsMTcgQEAgaW5kZXggY2NkMDVkOS4uNWEwYzVhYiAxMDA2NDQKICsgICAgZXJyb3Jfbm9fYXJn IChfKCJoaXQgY291bnQiKSk7CiArCiArICBjb3VudCA9IGdldF9udW1iZXIgKCZhcmdzKTsKLQor IAogICAgbWFwX2JyZWFrcG9pbnRfbnVtYmVycyAoYXJncywgZG9fbWFwX2VuYWJsZV9jb3VudF9i cmVha3BvaW50LCAmY291bnQpOwogIH0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2VuYS1kaXMtYnIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9lbmEtZGlzLWJyLmV4 cAotaW5kZXggYjA4YjcwOS4uODJhZWY2NCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvZW5hLWRpcy1ici5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRp cy1ici5leHAKLUBAIC0xNzMsNiArMTczLDE0IEBAIHNldCBicCBbYnJlYWtfYXQgJGJwX2xvY2F0 aW9uNyAibGluZSAkYnBfbG9jYXRpb243Il0KLQotIHNldCBicDIgW2JyZWFrX2F0IG1hcmtlcjEg IiBsaW5lICgkYnBfbG9jYXRpb24xNXwkYnBfbG9jYXRpb24xNikiXQotCitJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VuYS1kaXMtYnIuZXhwCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvZW5hLWRpcy1ici5leHAJMjAxNS0wMS0wNSAyMjoyNjoxMy4xNjUwMDUwNDkgKzAxMDAKKysr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5hLWRpcy1ici5l eHAJMjAxNS0wMS0wNSAyMjoyNjo1MS4zNTcxNzgxNTAgKzAxMDAKK0BAIC0xNTEsNiArMTUxLDE0 IEBAIHNldCBicCBbYnJlYWtfYXQgJGJwX2xvY2F0aW9uNyAibGluZSAkYnAKKyAKKyBzZXQgYnAy IFticmVha19hdCBtYXJrZXIxICIgbGluZSAkYnBfbG9jYXRpb24xNSJdCisgCiArZ2RiX3Rlc3Qg ImVuYWJsZSBjb3VudCIgXAogKyAgICAiQXJndW1lbnQgcmVxdWlyZWQgXFwoaGl0IGNvdW50XFwp XFwuIiBcCiArICAgICJlbmFibGUgY291bnQgbWlzc2luZyBhcmd1bWVudHMiCkBAIC04MSw2ICs4 MSw1IEBAIGluZGV4IGIwOGI3MDkuLjgyYWVmNjQgMTAwNjQ0CiArICAgICJlbmFibGUgY291bnQg bWlzc2luZyBsYXN0IGFyZ3VtZW50IgogKwogIGdkYl90ZXN0X25vX291dHB1dCAiZW5hYmxlIGNv dW50IDIgJGJwIiAiZGlzYWJsZSBicmVhayB3aXRoIGNvdW50IgotCisgCiAgZ2RiX3Rlc3QgImNv bnRpbnVlIiBcCi0KCmRpZmYgLS1naXQgYS9nZGItaml0LXJlYWRlci1tdWx0aWxpYi5wYXRjaCBi L2dkYi1qaXQtcmVhZGVyLW11bHRpbGliLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjA0YWEzOTcKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItaml0LXJlYWRlci1tdWx0 aWxpYi5wYXRjaApAQCAtMCwwICsxLDQwIEBACitkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBi L2dkYi9jb25maWd1cmUKK2luZGV4IDdmZjc0YmEuLjAwYTViNWIgMTAwNzU1CistLS0gYS9nZGIv Y29uZmlndXJlCisrKysgYi9nZGIvY29uZmlndXJlCitAQCAtNzM4MiwxMCArNzM4MiwxMiBAQCBf QUNFT0YKKyAKKyAKKyAKKy1pZiB0ZXN0ICJ4JHthY19jdl9zaXplb2ZfdW5zaWduZWRfbG9uZ30i ID0gIng4IjsgdGhlbgorLSAgVEFSR0VUX1BUUj0idW5zaWduZWQgbG9uZyIKKy1lbGlmIHRlc3Qg Ingke2FjX2N2X3NpemVvZl91bnNpZ25lZF9sb25nX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKysjIFRy eSB0byBrZWVwIFRBUkdFVF9QVFIgdGhlIHNhbWUgYWNyb3NzIGFyY2hzIHNvIHRoYXQgaml0LXJl YWRlci5oIGZpbGUKKysjIGNvbnRlbnQgaXMgdGhlIHNhbWUgZm9yIG11bHRpbGliIGRpc3RyaWJ1 dGlvbnMuCisraWYgdGVzdCAieCR7YWNfY3Zfc2l6ZW9mX3Vuc2lnbmVkX2xvbmdfbG9uZ30iID0g Ing4IjsgdGhlbgorICAgVEFSR0VUX1BUUj0idW5zaWduZWQgbG9uZyBsb25nIgorK2VsaWYgdGVz dCAieCR7YWNfY3Zfc2l6ZW9mX3Vuc2lnbmVkX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKysgIFRBUkdF VF9QVFI9InVuc2lnbmVkIGxvbmciCisgZWxpZiB0ZXN0ICJ4JHthY19jdl9zaXplb2ZfdW5zaWdu ZWRfX19pbnQxMjh9IiA9ICJ4MTYiOyB0aGVuCisgICBUQVJHRVRfUFRSPSJ1bnNpZ25lZCBfX2lu dDEyOCIKKyBlbHNlCitkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1 cmUuYWMKK2luZGV4IGVjNzc2ZDcuLmMwMmFjZTkgMTAwNjQ0CistLS0gYS9nZGIvY29uZmlndXJl LmFjCisrKysgYi9nZGIvY29uZmlndXJlLmFjCitAQCAtNjQ4LDEwICs2NDgsMTIgQEAgQUNfQ0hF Q0tfU0laRU9GKHVuc2lnbmVkIGxvbmcgbG9uZykKKyBBQ19DSEVDS19TSVpFT0YodW5zaWduZWQg bG9uZykKKyBBQ19DSEVDS19TSVpFT0YodW5zaWduZWQgX19pbnQxMjgpCisgCistaWYgdGVzdCAi eCR7YWNfY3Zfc2l6ZW9mX3Vuc2lnbmVkX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKy0gIFRBUkdFVF9Q VFI9InVuc2lnbmVkIGxvbmciCistZWxpZiB0ZXN0ICJ4JHthY19jdl9zaXplb2ZfdW5zaWduZWRf bG9uZ19sb25nfSIgPSAieDgiOyB0aGVuCisrIyBUcnkgdG8ga2VlcCBUQVJHRVRfUFRSIHRoZSBz YW1lIGFjcm9zcyBhcmNocyBzbyB0aGF0IGppdC1yZWFkZXIuaCBmaWxlCisrIyBjb250ZW50IGlz IHRoZSBzYW1lIGZvciBtdWx0aWxpYiBkaXN0cmlidXRpb25zLgorK2lmIHRlc3QgIngke2FjX2N2 X3NpemVvZl91bnNpZ25lZF9sb25nX2xvbmd9IiA9ICJ4OCI7IHRoZW4KKyAgIFRBUkdFVF9QVFI9 InVuc2lnbmVkIGxvbmcgbG9uZyIKKytlbGlmIHRlc3QgIngke2FjX2N2X3NpemVvZl91bnNpZ25l ZF9sb25nfSIgPSAieDgiOyB0aGVuCisrICBUQVJHRVRfUFRSPSJ1bnNpZ25lZCBsb25nIgorIGVs aWYgdGVzdCAieCR7YWNfY3Zfc2l6ZW9mX3Vuc2lnbmVkX19faW50MTI4fSIgPSAieDE2IjsgdGhl bgorICAgVEFSR0VUX1BUUj0idW5zaWduZWQgX19pbnQxMjgiCisgZWxzZQoKZGlmZiAtLWdpdCBh L2dkYi1weS1mcmFtZS1yaXAtdGVzdC1maXgucGF0Y2ggYi9nZGItcHktZnJhbWUtcmlwLXRlc3Qt Zml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YTkzMGMKLS0t IC9kZXYvbnVsbAorKysgYi9nZGItcHktZnJhbWUtcmlwLXRlc3QtZml4LnBhdGNoCkBAIC0wLDAg KzEsNTMgQEAKK2h0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE1LTAxL21z ZzAwMTEwLmh0bWwKK1N1YmplY3Q6IFt0ZXN0c3VpdGUgcGF0Y2hdIEZpeCBuZXcgRkFJTDogcHkt ZnJhbWUuZXhwOiB0ZXN0IEZyYW1lLnJlYWRfcmVnaXN0ZXIocmlwKQorCisKKy0tLzA0dzZldkc4 WGxMbDNmdAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250 ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKKworSGksCisKK2ZvciB4ODZfNjQgLW0zMiBydW4gb25l IGdldHM6CisKKytGQUlMOiBnZGIucHl0aG9uL3B5LWZyYW1lLmV4cDogdGVzdCBGcmFtZS5yZWFk X3JlZ2lzdGVyKHJpcCkKKworSSBkbyBub3QgaGF2ZSB4MzIgT1MgaGVyZSBidXQgdGhlICVyaXAg dGVzdCBzaG91bGQgUEFTUyB0aGVyZSBJIHRoaW5rLgorCitPSyBmb3IgY2hlY2staW4/CisKK1Ro ZSBjb2RlIGlzIHRoZXJlIHNpbmNlOgorCWNvbW1pdCA1ZjNiOTljZmVkMzgwM2YwYjA5OTE1MmY1 NGFhYzdjYjkwYTJiOTI2CisJQXV0aG9yOiBTYXNoYSBTbXVuZGFrIDxhc211bmRha0Bnb29nbGUu Y29tPgorCURhdGU6ICAgV2VkIFNlcCAzIDE2OjM0OjQ3IDIwMTQgLTA3MDAKKwkgICAgQWRkIHN1 cHBvcnQgZm9yIHJlYWRpbmcgZnJhbWUgcmVnaXN0ZXJzIHRvIFB5dGhvbiBBUEkuCisKKworSmFu CisKKy0tLzA0dzZldkc4WGxMbDNmdAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0 PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2Ri L3Rlc3RzdWl0ZS8KKzIwMTUtMDEtMDcgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KKworCSogZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgKHRlc3QgRnJhbWUucmVh ZF9yZWdpc3RlcihyaXApKTogVXNlCisJaXNfYW1kNjRfcmVnc190YXJnZXQuCisKK2RpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAoraW5kZXggYmYyZTFjZS4uOTg0YWNmYyAxMDA2NDQK Ky0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKKysrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKK0BAIC0xMDYsNyArMTA2LDcgQEAgZ2Ri X3Rlc3QgInB5dGhvbiBwcmludCAoJ3Jlc3VsdCA9ICVzJyAlIChmMC5yZWFkX3JlZ2lzdGVyKCdw YycpID09IGYwLnBjKCkpKSIgXAorICAgInRlc3QgRnJhbWUucmVhZF9yZWdpc3RlcihwYykiCisg CisgIyBPbiB4ODYtNjQsIFBDIGlzIGluICRyaXAgcmVnaXN0ZXIuCistaWYge1tpc3RhcmdldCB4 ODZfNjQtKl19IHsKKytpZiB7W2lzX2FtZDY0X3JlZ3NfdGFyZ2V0XX0geworICAgICBnZGJfdGVz dCAicHl0aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUgKGYwLnJlYWRfcmVnaXN0ZXIoJ3BjJykg PT0gZjAucmVhZF9yZWdpc3RlcigncmlwJykpKSIgXAorIAkiID0gVHJ1ZSIgXAorIAkidGVzdCBG cmFtZS5yZWFkX3JlZ2lzdGVyKHJpcCkiCisKKy0tLzA0dzZldkc4WGxMbDNmdC0tCisKCmRpZmYg LS1naXQgYS9nZGItcHl0aG9uLWNvbXBsZXRlci0xb2YyLnBhdGNoIGIvZ2RiLXB5dGhvbi1jb21w bGV0ZXItMW9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA3ODgyMi4u MDAwMDAwMAotLS0gYS9nZGItcHl0aG9uLWNvbXBsZXRlci0xb2YyLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNzQ3ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDE0LTA3L21zZzAwMDAyLmh0bWwKLVN1YmplY3Q6IFJlOiBbUEFUQ0hdIFBSIHB5dGhvbi8x NjY5OTogR0RCIFB5dGhvbiBjb21tYW5kIGNvbXBsZXRpb24gd2l0aCBvdmVycmlkZW4gY29tcGxl dGUgdnMuIGNvbXBsZXRlciBjbGFzcwotaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3df YnVnLmNnaT9pZD0xMDc1MTk5Ci0KLU9uIFdlZG5lc2RheSwgTWF5IDIxIDIwMTQsIERvdWcgRXZh bnMgd3JvdGU6Ci0KLT4gU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29t PiB3cml0ZXM6Ci0+PiBbLi4uXQotPj4gVGhhbmtzLiAgV0RZVCBvZiB0aGUgZm9sbG93aW5nIHBh dGNoPwotPgotPiBIaS4KLT4KLT4gZndpdyBpdCdzIHRvbyBiYWQgdGhlIGFiaWxpdHkgdG8gcGx1 ZyBpbiBkaWZmZXJlbnQgY29tcGxldGVycyBpc24ndCBtb3JlLAotPiBJIGR1bm5vLCBwYXJhbWV0 ZXJpemVkIChjb3VsZG4ndCBwaWNrIGEgYmV0dGVyIHRlcm0sIGFwb2xvZ2llcyAtCi0+IEkgdGhv dWdodCBvZiAib2JqZWN0IG9yaWVudGVkIiBidXQgdGhhdCBjYXJyaWVzIGl0cyBvd24gYmFnZ2Fn ZSkuCi0+IFBlcmZvcm1pbmcgY29tcGxldGlvbiBvYnZpb3VzbHkgaW52b2x2ZXMgc3BlY2lmeWlu ZyBtb3JlIHRoYW4gYSBqdXN0Ci0+IHNpbmdsZSBmdW5jdGlvbiAod2l0bmVzcyB0aGUgY29tcGFy aXNvbiBvZiB0aGUgY29tcGxldGVyIHdpdGggc3BlY2lmaWMKLT4gZnVuY3Rpb25zKS4KLQotVGhh bmtzIGZvciB0aGUgcmVwbHksIGFuZCBzb3JyeSBmb3IgdGhlIGxvbmcgZGVsYXkgaW4gYW5zd2Vy aW5nLgotCi0+IFBsdXMgaXQncyBtb3JlIHRoYW4gc3BlY2lmeWluZyBicmtjaGFycy4KLT4gV2l0 bmVzcyBjb2RlIGxpa2UgdGhpczoKLT4KLT4gCQkgICAgICAvKiBNYW55IGNvbW1hbmRzIHdoaWNo IHdhbnQgdG8gY29tcGxldGUgb24KLT4gCQkJIGZpbGUgbmFtZXMgYWNjZXB0IHNldmVyYWwgZmls ZSBuYW1lcywgYXMKLT4gCQkJIGluICJydW4gZm9vIGJhciA+PmJheiIuICBTbyB3ZSBkb24ndCB3 YW50Ci0+IAkJCSB0byBjb21wbGV0ZSB0aGUgZW50aXJlIHRleHQgYWZ0ZXIgdGhlCi0+IAkJCSBj b21tYW5kLCBqdXN0IHRoZSBsYXN0IHdvcmQuICBUbyB0aGlzCi0+IAkJCSBlbmQsIHdlIG5lZWQg dG8gZmluZCB0aGUgYmVnaW5uaW5nIG9mIHRoZQotPiAJCQkgZmlsZSBuYW1lIGJ5IHN0YXJ0aW5n IGF0IGB3b3JkJyBhbmQgZ29pbmcKLT4gCQkJIGJhY2t3YXJkcy4gICovCi0+IAkJICAgICAgZm9y IChwID0gd29yZDsKLT4gCQkJICAgcCA+IHRtcF9jb21tYW5kCi0+IAkJCSAgICAgJiYgc3RyY2hy IChnZGJfY29tcGxldGVyX2ZpbGVfbmFtZV9icmVha19jaGFyYWN0ZXJzLCBwWy0xXSkgPT0gTlVM TDsKLT4gCQkJICAgcC0tKQotPiAJCQk7Ci0+Ci0+IElXQk4gaWYgYSAiY29tcGxldGVyIiBvYmpl Y3QgZGVzY3JpYmVkIGhvdyB0byBkbyBhbGwgdGhlc2UgdGhyZWUgdGhpbmdzLgotPiBUaGVuIHRo ZSBzcGVjaWFsIGNhc2UgY29kZSBmb3IgZmlsZW5hbWVfY29tcGxldGVyIChhbmQgbG9jYXRpb25f Y29tcGxldGVyKQotPiBpbiBjb21wbGV0ZXIuYyBjb3VsZCBkaXNhcHBlYXIuICBCdXQgbWF5YmUg dGhhdCdzIGEgcGF0Y2ggZm9yIGFub3RoZXIgZGF5LgotCi1XaGlsZSBJIGFncmVlIHdpdGggeW91 IHRoYXQgdGhlIGNvbXBsZXRpb24gbWVjaGFuaXNtIGNvdWxkIGJlIGJldHRlciAoSQotbXlzZWxm IGhhZCBhIGxvdCBvZiB0cm91YmxlIHdpdGggaXQpLCBJIHVuZm9ydHVuYXRlbHkgZG9uJ3QgaGF2 ZSBlbm91Z2gKLXRpbWUgdG8gdGFja2xlIHRoaXMgcHJvYmxlbSBub3cuICBTbyB5ZWFoLCBJIHRo aW5rIGl0IHdpbGwgYmUgYSBwYXRjaAotZm9yIGFub3RoZXIgZGF5Li4uCi0KLT4gUmVnYXJkaW5n IHRoZSBoYWNrIG9mIHVzaW5nIGEgc3RhdGljIGxvY2FsIHRvIHBhc3MgZGF0YSBmcm9tCi0+IGhh bmRsZV9icmtjaGFycyB0byBoYW5kbGVfY29tcGxldGlvbiwgSSBrbm93IGl0J3MgYSBoYWNreSBw cmFnbWF0aWMKLT4gY2hvaWNlLiAgVG8gZ2V0IHRoZSByZWZlcmVuY2UgY291bnRpbmcgcmlnaHQg dGhlIGNvZGUgYXNzdW1lcyB0aGF0Ci0+IGlmIHRoZSBoYW5kbGVfYnJrY2hhcnMgcGhhc2UgaXMg ZG9uZSB0aGVuIHRoZSBoYW5kbGVfY29tcGxldGlvbgotPiBwaGFzZSB3aWxsIGJlIGRvbmUgdG9v LCByaWdodD8KLQotWWVhaC4gIFRoaXMgaXMgdHJ1ZSBmb3IgdGhlIGN1cnJlbnQgY29kZSAod2Vs bCwgZXhjZXB0IG1heWJlIGZvciB0aGUKLWNhc2UgeW91IGRlc2NyaWJlIGJlbG93Li4uKS4KLQot PiBJIHdvbmRlciBpZiBhIFNJR0lOVCBjb3VsZCBzbmVhayBpbgotPiB0aGVyZSBiZXR3ZWVuIHRo ZSB0d28gcGFzc2VzIChlaXRoZXIgdG9kYXkgb3IgdG9tb3Jyb3cpLgotPiBNYXliZSB0aGUgY29k ZSBpbiBjbWRweV9jb21wbGV0ZXJfaGVscGVyIGZvciBoYW5kbGVfYnJrY2hhcnNfcCBjb3VsZAot PiBmaXJzdCBjaGVjayB3aGV0aGVyIHJlc3VsdG9iaiBpcyBhbHJlYWR5IG5vbi1OVUxMLCBhbmQg ZGVjcmVtZW50IGl0cwotPiByZWZlcmVuY2UgY291bnQgYmVmb3JlIHNldHRpbmcgaXQgdG8gTlVM TD8KLQotWWVzLCBkb25lIChJIHRoaW5rKS4gIFRoYW5rcyBmb3IgcmFpc2luZyB0aGlzIGlzc3Vl LgotCi0+IEFuZCBjbWRweV9jb21wbGV0ZXJfaGVscGVyCi0+IGNvdWxkIGJlIGRlZmluZWQgdG8g cmV0dXJuIGEgYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHJlc3VsdG9iaj8KLT4gRHVubm8sIGp1c3Qg dGhpbmtpbmcgb3V0IGxvdWQuCi0KLURvbmUsIEkgZ3Vlc3MuCi0KLT4gU29tZXRoaW5nIHB1enps ZXMgbWUgdGhvdWdoOiBJZiBpdCdzIG9rIHRvIGNhY2hlIHRoZSBjb21wbGV0aW9uIHJlc3VsdCBm cm9tIHRoZQotPiBoYW5kbGVfYnJrY2hhcnMgcGFzcyB0byB0aGUgaGFuZGxlX2NvbXBsZXRpb24g cGFzcywgd2h5IGhhdmUgdHdvIHBhc3Nlcz8KLT4gSXQgZmVlbHMgbGlrZSB0aGVyZSBtdXN0IGJl IGEgY2FzZSB3aGVyZSB0aGlzIGNhY2hpbmcgb2YgdGhlIHJlc3VsdAotPiBpbiBhIHN0YXRpYyBs b2NhbCBmcm9tIG9uZSBwYXNzIHRvIHRoZSBuZXh0IHdvbid0IHdvcmsuCi0KLUknbSBub3Qgc3Vy ZSBJIGZvbGxvdy4KLQotSXQncyBPSyB0byBjYWNoZSB0aGUgcmVzdWx0IGJlY2F1c2UgaGFuZGxl X2Jya2NoYXJzIGFuZAotaGFuZGxlX2NvbXBsZXRpb24gd29yayBvbiB0aGUgc2FtZSBzZXQgb2Yg ZGF0YS4gIEluIGZhY3QsIHdlIHdvdWxkbid0Ci1uZWVkIHRvIGhhdmUgdHdvIHBhc3NlcyBoZXJl OyBteSBwcmV2aW91cyBwYXRjaCBkaWRuJ3QgaGF2ZSB0d28gcGFzc2VzLAotYW5kIHdvcmtlZCBm aW5lLiAgSSBqdXN0IGltcGxlbWVudGVkIGl0IHRoaXMgd2F5IGJlY2F1c2UgVG9tIChjb3JyZWN0 bHkpCi1yYWlzZWQgdGhlIHBvaW50IHRoYXQgdGhlIGNvbXBsZXRpb24gaXRzZWxmIG1pZ2h0IGJl IHRpbWUtY29uc3VtaW5nLCBhbmQKLXRodXMgd2UgY291bGQgcmV1c2UgaXRzIHJlc3VsdCBpbiB0 aGUgdHdvIHBoYXNlcy4KLQotPiBBbm90aGVyIHF1ZXN0aW9uOgotPiBJIG5vdGljZWQgY29tcGxl dGVfY29tbWFuZCBkb2Vzbid0IGRvIHRoaXMgdHdvLXBoYXNlIGRhbmNlCi0+IG9mIGhhbmRsZV9i cmtjaGFycyBmb2xsb3dlZCBieSBoYW5kbGVfY29tcGxldGlvbnMuICBTaG91bGQgaXQ/Ci0+IEl0 IGp1c3QgZ29lcyBzdHJhaWdodCB0byBoYW5kbGVfY29tcGxldGlvbnMuCi0KLUkgZG9uJ3QgdGhp bmsgaXQgc2hvdWxkLCBiZWNhdXNlIGZvciBjb21wbGV0ZV9jb21tYW5kIChhbmQKLWNvbXBsZXRl X2ZpbGVuYW1lIGV0IGFsKSB0aGUgaGFuZGxlX2Jya2NoYXJzIGlzIGFscmVhZHkgZGVmaW5lZAot aW50ZXJuYWxseSBieSBHREIuICBTZWU6Ci0KLSAgICAuLi4KLSAgLyogQ2hvb3NlIHRoZSBkZWZh dWx0IHNldCBvZiB3b3JkIGJyZWFrIGNoYXJhY3RlcnMgdG8gYnJlYWsKLSAgICAgY29tcGxldGlv bnMuICBJZiB3ZSBsYXRlciBmaW5kIG91dCB0aGF0IHdlIGFyZSBkb2luZyBjb21wbGV0aW9ucwot ICAgICBvbiBjb21tYW5kIHN0cmluZ3MgKGFzIG9wcG9zZWQgdG8gc3RyaW5ncyBzdXBwbGllZCBi eSB0aGUKLSAgICAgaW5kaXZpZHVhbCBjb21tYW5kIGNvbXBsZXRlciBmdW5jdGlvbnMsIHdoaWNo IGNhbiBiZSBhbnkgc3RyaW5nKQotICAgICB0aGVuIHdlIHdpbGwgc3dpdGNoIHRvIHRoZSBzcGVj aWFsIHdvcmQgYnJlYWsgc2V0IGZvciBjb21tYW5kCi0gICAgIHN0cmluZ3MsIHdoaWNoIGxlYXZl cyBvdXQgdGhlICctJyBjaGFyYWN0ZXIgdXNlZCBpbiBzb21lCi0gICAgIGNvbW1hbmRzLiAgKi8K LSAgcmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVycyA9Ci0gICAgY3VycmVudF9sYW5n dWFnZS0+bGFfd29yZF9icmVha19jaGFyYWN0ZXJzKCk7Ci0gICAgLi4uCi0KLSAgICAvKiBJdCBp cyBhIG5vcm1hbCBjb21tYW5kOyB3aGF0IGNvbWVzIGFmdGVyIGl0IGlzCi0gICAgICAgY29tcGxl dGVkIGJ5IHRoZSBjb21tYW5kJ3MgY29tcGxldGVyIGZ1bmN0aW9uLiAgKi8KLSAgICBpZiAoYy0+ Y29tcGxldGVyID09IGZpbGVuYW1lX2NvbXBsZXRlcikKLSAgICAgIHsKLSAgICAgICAgLyogTWFu eSBjb21tYW5kcyB3aGljaCB3YW50IHRvIGNvbXBsZXRlIG9uCi0gICAgICAgICAgIGZpbGUgbmFt ZXMgYWNjZXB0IHNldmVyYWwgZmlsZSBuYW1lcywgYXMKLSAgICAgICAgICAgaW4gInJ1biBmb28g YmFyID4+YmF6Ii4gIFNvIHdlIGRvbid0IHdhbnQKLSAgICAgICAgICAgdG8gY29tcGxldGUgdGhl IGVudGlyZSB0ZXh0IGFmdGVyIHRoZQotICAgICAgICAgICBjb21tYW5kLCBqdXN0IHRoZSBsYXN0 IHdvcmQuICBUbyB0aGlzCi0gICAgICAgICAgIGVuZCwgd2UgbmVlZCB0byBmaW5kIHRoZSBiZWdp bm5pbmcgb2YgdGhlCi0gICAgICAgICAgIGZpbGUgbmFtZSBieSBzdGFydGluZyBhdCBgd29yZCcg YW5kIGdvaW5nCi0gICAgICAgICAgIGJhY2t3YXJkcy4gICovCi0gICAgICAgIGZvciAocCA9IHdv cmQ7Ci0gICAgICAgICAgICAgcCA+IHRtcF9jb21tYW5kCi0gICAgICAgICAgICAgICAmJiBzdHJj aHIgKGdkYl9jb21wbGV0ZXJfZmlsZV9uYW1lX2JyZWFrX2NoYXJhY3RlcnMsIHBbLTFdKSA9PSBO VUxMOwotICAgICAgICAgICAgIHAtLSkKLSAgICAgICAgICA7Ci0gICAgICAgIHJsX2NvbXBsZXRl cl93b3JkX2JyZWFrX2NoYXJhY3RlcnMgPQotICAgICAgICAgIGdkYl9jb21wbGV0ZXJfZmlsZV9u YW1lX2JyZWFrX2NoYXJhY3RlcnM7Ci0gICAgICB9Ci0gICAgZWxzZSBpZiAoYy0+Y29tcGxldGVy ID09IGxvY2F0aW9uX2NvbXBsZXRlcikKLSAgICAgIHsKLSAgICAgICAgLyogQ29tbWFuZHMgd2hp Y2ggY29tcGxldGUgb24gbG9jYXRpb25zIHdhbnQgdG8KLSAgICAgICAgICAgc2VlIHRoZSBlbnRp cmUgYXJndW1lbnQuICAqLwotICAgICAgICBmb3IgKHAgPSB3b3JkOwotICAgICAgICAgICAgIHAg PiB0bXBfY29tbWFuZAotICAgICAgICAgICAgICAgJiYgcFstMV0gIT0gJyAnICYmIHBbLTFdICE9 ICdcdCc7Ci0gICAgICAgICAgICAgcC0tKQotICAgICAgICAgIDsKLSAgICAgIH0KLSAgICBpZiAo cmVhc29uID09IGhhbmRsZV9icmtjaGFycwotICAgICAgICAmJiBjLT5jb21wbGV0ZXJfaGFuZGxl X2Jya2NoYXJzICE9IE5VTEwpCi0gICAgICAoKmMtPmNvbXBsZXRlcl9oYW5kbGVfYnJrY2hhcnMp IChjLCBwLCB3b3JkKTsKLSAgICBpZiAocmVhc29uICE9IGhhbmRsZV9icmtjaGFycyAmJiBjLT5j b21wbGV0ZXIgIT0gTlVMTCkKLSAgICAgIGxpc3QgPSAoKmMtPmNvbXBsZXRlcikgKGMsIHAsIHdv cmQpOwotCi0KLVRoZSBjb21wbGV0ZV9jb21tYW5kIGZ1bmN0aW9uIHdpbGwgb25seSBiZSBjYWxs ZWQgYnkgdGhlIGxhc3QgImlmIgotY2xhdXNlLCB3aGVuIHJlYXNvbiAhPSBoYW5kbGVfYnJrY2hh cnMuICBPdGhlcndpc2UsCi1jb21wbGV0ZV9saW5lX2ludGVybmFsIHdpbGwganVzdCBkZWFsIHdp dGggaGFuZGxlX2Jya2NoYXJzLiAgQW5kIGZvcgotY29tcGxldGVfY29tbWFuZCwgdGhlIHJpZ2h0 IHZhbHVlIGZvciBybF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzCi1pcyB3aGF0IGlz IGF0dHJpYnV0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZnVuY3Rpb24uCi0KLU15IHBhdGNo IGltcGxlbWVudHMgdGhpcyAidHdvLXBoYXNlIiBkYW5jZSBmb3IgUHl0aG9uIGJlY2F1c2UgaW4g dGhpcwotc3BlY2lmaWMgY2FzZSAoaS5lLiwgYSBjb21wbGV0aW9uIG1ldGhvZCBkZWZpbmVkIGlu IHRoZSBQeXRob24gc2NyaXB0KQotdGhlcmUgaXMgbm8gd2F5IHRvIGtub3cgdGhlIHZhbHVlIG9m IGhhbmRsZV9icmtjaGFycyBiZWZvcmUgd2UgYWN0dWFsbHkKLWRvIHRoZSBjb21wbGV0aW9uIGl0 c2VsZi4KLQotSW4gZmFjdCwgbXkgcGF0Y2ggY291bGQgcHJvYmFibHkgYmUgInNpbXBsaWZpZWQi IGFuZCBiZSBtYWRlIHRvIGNhbGwKLWNtZHB5X2NvbXBsZXRlciBkaXJlY3RseSAod2l0aG91dCBh bnkgY21kcHlfY29tcGxldGVyX2hhbmRsZV9icmtjaGFycyksCi1hc3N1bWluZyB0aGF0IHRoaXMg ZnVuY3Rpb24gdG9vayBjYXJlIG9mIGZpbGxpbmcgaGFuZGxlX2Jya2NoYXJzCi1jb3JyZWN0bHku ICBXaGF0IEkgbWVhbiBpczogd2hlbiBkZWFsaW5nIHdpdGggdGhlIGhhbmRsZV9icmtjaGFycyBj YXNlLAotdGhlIGNvbXBsZXRlciBjb21tYW5kIGNhbiBkbyBhbnl0aGluZyBpdCB3YW50cy4KLQot PiBbTWF5YmUgdGhhdCBleHBsYWlucyB0aGUgZGlmZmVyZW5jZSBmcm9tIHVzaW5nIFRBQi4gIER1 bm5vIG9mZiBoYW5kLl0KLT4gSXQgc2VlbXMgbGlrZSBjb21wbGV0ZV9jb21tYW5kIGlzIHRyeWlu ZyB0byBoYW5kLWNvZGUgaXRzIG93bgotPiBoYW5kbGVfYnJrY2hhcnMgaGFuZGxpbmc6Ci0+Ci0+ IHN0YXRpYyB2b2lkCi0+IGNvbXBsZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5 KQotPiB7Ci0+ICAgaW50IGFyZ3BvaW50OwotPiAgIGNoYXIgKnBvaW50LCAqYXJnX3ByZWZpeDsK LT4gICBWRUMgKGNoYXJfcHRyKSAqY29tcGxldGlvbnM7Ci0+Ci0+ICAgZG9udF9yZXBlYXQgKCk7 Ci0+Ci0+ICAgaWYgKGFyZyA9PSBOVUxMKQotPiAgICAgYXJnID0gIiI7Ci0+ICAgYXJncG9pbnQg PSBzdHJsZW4gKGFyZyk7Ci0+Ci0+ICAgLyogY29tcGxldGVfbGluZSBhc3N1bWVzIHRoYXQgaXRz IGZpcnN0IGFyZ3VtZW50IGlzIHNvbWV3aGVyZQotPiAgICAgIHdpdGhpbiwgYW5kIGV4Y2VwdCBm b3IgZmlsZW5hbWVzIGF0IHRoZSBiZWdpbm5pbmcgb2YsIHRoZSB3b3JkIHRvCi0+ICAgICAgYmUg Y29tcGxldGVkLiAgVGhlIGZvbGxvd2luZyBjcnVkZSBpbWl0YXRpb24gb2YgcmVhZGxpbmUncwot PiAgICAgIHdvcmQtYnJlYWtpbmcgdHJpZXMgdG8gYWNjb21vZGF0ZSB0aGlzLiAgKi8KLT4gICBw b2ludCA9IGFyZyArIGFyZ3BvaW50OwotPiAgIHdoaWxlIChwb2ludCA+IGFyZykKLT4gICAgIHsK LT4gICAgICAgaWYgKHN0cmNociAocmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVycywg cG9pbnRbLTFdKSAhPSAwKQotPiAgICAgICAgIGJyZWFrOwotPiAgICAgICBwb2ludC0tOwotPiAg ICAgfQotPgotPiAgIGFyZ19wcmVmaXggPSBhbGxvY2EgKHBvaW50IC0gYXJnICsgMSk7Ci0+ICAg bWVtY3B5IChhcmdfcHJlZml4LCBhcmcsIHBvaW50IC0gYXJnKTsKLT4gICBhcmdfcHJlZml4W3Bv aW50IC0gYXJnXSA9IDA7Ci0+Ci0+ICAgY29tcGxldGlvbnMgPSBjb21wbGV0ZV9saW5lIChwb2lu dCwgYXJnLCBhcmdwb2ludCk7Ci0+Ci0+ICAgLi4uCi0+IH0KLQotWWVzLCBpdCBzZWVtcyBzbywg YnV0IEkgZGlkIG5vdCBjaGVjayBmdXJ0aGVyLgotCi0+IFRBQiBhbmQgdGhlIGNvbXBsZXRlIGNv bW1hbmQgc2hvdWxkIHdvcmsgaWRlbnRpY2FsbHkgb2YgY291cnNlLAotPiBidXQgZm9yIHlvdXIg dGVzdGNhc2UsIG1heWJlIHlvdSBzaG91bGQgdGVzdCBib3RoIGp1c3QgdG8gdmVyaWZ5Ci0+IGJv dGggd29yayByZWFzb25hYmx5IHdlbGwgKGV2ZW4gaWYgbm90IGlkZW50aWNhbGx5KS4KLT4gR2l2 ZW4gdGhhdCBjb21wbGV0ZV9jb21tYW5kIGRvZXNuJ3QgZG8gdGhlIHR3byBwaGFzZSBkYW5jZSwK LT4gZG9lcyBpdCB3b3JrIHdpdGggeW91ciBwYXRjaD8KLT4gTWF5YmUgaXQgZG9lcywgYnV0IElX Qk4gdG8gY29uZmlybSB0aGF0LgotCi1UaGUgJ2NvbXBsZXRlJyBjb21tYW5kIGRvZXMgbm90IHdv cmsgYXMgaXQgc2hvdWxkIHdpdGggbXkgcGF0Y2g6Ci0KLSAgKGdkYikgY29tcGxldGUgY29tcGxl dGVmaWxlaW5pdCAvaG9tCi0gIGNvbXBsZXRlZmlsZWluaXQgL2hvbWUKLSAgKGdkYikgY29tcGxl dGUgY29tcGxldGVmaWxlbWV0aG9kIC9ob20KLSAgY29tcGxldGVmaWxlbWV0aG9kIC9ob21lCi0K LUJ1dCB0aGVuLCBpdCBhbHNvIGRvZXMgbm90IHdvcmsgd2l0aG91dCBteSBwYXRjaCBlaXRoZXI6 Ci0KLSAgKGdkYikgY29tcGxldGUgZmlsZSAvaG9tCi0gIGZpbGUgL2hvbWUKLQotU28gSSBhbSBu b3QgZXh0ZW5kaW5nIHRoZSB0ZXN0Y2FzZSBmb3Igbm93LCBiZWNhdXNlIHRoaXMgYnVnIG5lZWRz IHRvIGJlCi1maXhlZCBmaXJzdCAoYW5kIGl0IGlzIHVucmVsYXRlZCB0byB0aGUgcGF0Y2ggSSBh bSBwcm9wb3NpbmcpLgotCi1XRFlUIG9mIHRoaXMgdmVyc2lvbj8KLQotVGhhbmtzLAotCi0tLSAK LVNlcmdpbwotR1BHIGtleSBJRDogNjVGQzVFMzYKLVBsZWFzZSBzZW5kIGVuY3J5cHRlZCBlLW1h aWwgaWYgcG9zc2libGUKLWh0dHA6Ly9ibG9nLnNlcmdpb2RqLm5ldC8KLQotZ2RiLwotMjAxNC0w Ni0zMCAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLQotCVBS IHB5dGhvbi8xNjY5OQotCSogY2xpL2NsaS1kZWNvZGUuYyAoc2V0X2NtZF9jb21wbGV0ZXJfaGFu ZGxlX2Jya2NoYXJzKTogTmV3Ci0JZnVuY3Rpb24uCi0JKGFkZF9jbWQpOiBTZXQgImNvbXBsZXRl cl9oYW5kbGVfYnJrY2hhcnMiIHRvIE5VTEwuCi0JKiBjbGkvY2xpLWRlY29kZS5oIChzdHJ1Y3Qg Y21kX2xpc3RfZWxlbWVudCkKLQk8Y29tcGxldGVyX2hhbmRsZV9icmtjaGFycz46IE5ldyBmaWVs ZC4KLQkqIGNvbW1hbmQuaCAoY29tcGxldGVyX2Z0eXBlX3ZvaWQpOiBOZXcgdHlwZWRlZi4KLQko c2V0X2NtZF9jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzKTogTmV3IHByb3RvdHlwZS4KLQkqIGNv bXBsZXRlci5jIChzZXRfZ2RiX2NvbXBsZXRpb25fd29yZF9icmVha19jaGFyYWN0ZXJzKTogTmV3 Ci0JZnVuY3Rpb24uCi0JKGNvbXBsZXRlX2xpbmVfaW50ZXJuYWwpOiBDYWxsICJjb21wbGV0ZXJf aGFuZGxlX2Jya2NoYXJzIgotCWNhbGxiYWNrIGZyb20gY29tbWFuZC4KLQkqIGNvbXBsZXRlci5o OiBJbmNsdWRlICJjb21tYW5kLmgiLgotCShzZXRfZ2RiX2NvbXBsZXRpb25fd29yZF9icmVha19j aGFyYWN0ZXJzKTogTmV3IHByb3RvdHlwZS4KLQkqIHB5dGhvbi9weS1jbWQuYyAoY21kcHlfY29t cGxldGVyX2hlbHBlcik6IE5ldyBmdW5jdGlvbi4KLQkoY21kcHlfY29tcGxldGVyX2hhbmRsZV9i cmtjaGFycyk6IE5ldyBmdW5jdGlvbi4KLQkoY21kcHlfY29tcGxldGVyKTogQWRqdXN0IHRvIHVz ZSBjbWRweV9jb21wbGV0ZXJfaGVscGVyLgotCShjbWRweV9pbml0KTogU2V0IGNvbXBsZXRlcl9o YW5kbGVfYnJrY2hhcnMgdG8KLQljbWRweV9jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzLgotCi1n ZGIvdGVzdHN1aXRlLwotMjAxNC0wNi0zMCAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lv ZGpAcmVkaGF0LmNvbT4KLQotCVBSIHB5dGhvbi8xNjY5OQotCSogZ2RiLnB5dGhvbi9weS1jb21w bGV0aW9uLmV4cDogTmV3IGZpbGUuCi0JKiBnZGIucHl0aG9uL3B5LWNvbXBsZXRpb24ucHk6IExp a2V3aXNlLgotCi0KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjI3L2dkYi9jbGkvY2xpLWRlY29k ZS5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYyNy5vcmlnL2dkYi9jbGkvY2xp LWRlY29kZS5jCTIwMTQtMDctMDcgMjA6NTM6NTIuNjM1MTA2OTE0ICswMjAwCi0rKysgZ2RiLTcu Ny45MC4yMDE0MDYyNy9nZGIvY2xpL2NsaS1kZWNvZGUuYwkyMDE0LTA3LTA3IDIwOjUzOjU1LjQy OTExMDIwNyArMDIwMAotQEAgLTE2NCw2ICsxNjQsMTUgQEAgc2V0X2NtZF9jb21wbGV0ZXIgKHN0 cnVjdCBjbWRfbGlzdF9lbGVtZQotICAgY21kLT5jb21wbGV0ZXIgPSBjb21wbGV0ZXI7IC8qIE9r LiAgKi8KLSB9Ci0gCi0rLyogU2VlIGRlZmluaXRpb24gaW4gY29tbWFuZHMuaC4gICovCi0rCi0r dm9pZAotK3NldF9jbWRfY29tcGxldGVyX2hhbmRsZV9icmtjaGFycyAoc3RydWN0IGNtZF9saXN0 X2VsZW1lbnQgKmNtZCwKLSsJCQkgICAgICAgY29tcGxldGVyX2Z0eXBlX3ZvaWQgKmNvbXBsZXRl cl9oYW5kbGVfYnJrY2hhcnMpCi0rewotKyAgY21kLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJz ID0gY29tcGxldGVyX2hhbmRsZV9icmtjaGFyczsKLSt9Ci0rCi0gLyogQWRkIGVsZW1lbnQgbmFt ZWQgTkFNRS4KLSAgICBTcGFjZSBmb3IgTkFNRSBhbmQgRE9DIG11c3QgYmUgYWxsb2NhdGVkIGJ5 IHRoZSBjYWxsZXIuCi0gICAgQ0xBU1MgaXMgdGhlIHRvcCBsZXZlbCBjYXRlZ29yeSBpbnRvIHdo aWNoIGNvbW1hbmRzIGFyZSBicm9rZW4gZG93bgotQEAgLTIzOSw2ICsyNDgsNyBAQCBhZGRfY21k IChjb25zdCBjaGFyICpuYW1lLCBlbnVtIGNvbW1hbmRfCi0gICBjLT5wcmVmaXggPSBOVUxMOwot ICAgYy0+YWJicmV2X2ZsYWcgPSAwOwotICAgc2V0X2NtZF9jb21wbGV0ZXIgKGMsIG1ha2Vfc3lt Ym9sX2NvbXBsZXRpb25fbGlzdF9mbik7Ci0rICBjLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJz ID0gTlVMTDsKLSAgIGMtPmRlc3Ryb3llciA9IE5VTEw7Ci0gICBjLT50eXBlID0gbm90X3NldF9j bWQ7Ci0gICBjLT52YXIgPSBOVUxMOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL2Ns aS9jbGktZGVjb2RlLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjI3Lm9yaWcv Z2RiL2NsaS9jbGktZGVjb2RlLmgJMjAxNC0wNy0wNyAyMDo1Mzo1Mi42MzYxMDY5MTUgKzAyMDAK LSsrKyBnZGItNy43LjkwLjIwMTQwNjI3L2dkYi9jbGkvY2xpLWRlY29kZS5oCTIwMTQtMDctMDcg MjA6NTM6NTUuNDI5MTEwMjA3ICswMjAwCi1AQCAtMTc2LDYgKzE3NiwxNSBAQCBzdHJ1Y3QgY21k X2xpc3RfZWxlbWVudAotICAgICAgICAiYmF6L2ZvbyIsIHJldHVybiAiYmF6L2Zvb2JhciIuICAq LwotICAgICBjb21wbGV0ZXJfZnR5cGUgKmNvbXBsZXRlcjsKLSAKLSsgICAgLyogSGFuZGxlIHRo ZSB3b3JkIGJyZWFrIGNoYXJhY3RlcnMgZm9yIHRoaXMgY29tcGxldGVyLiAgVXN1YWxseQotKyAg ICAgICB0aGlzIGZ1bmN0aW9uIG5lZWQgbm90IGJlIGRlZmluZWQsIGJ1dCBmb3Igc29tZSB0eXBl cyBvZgotKyAgICAgICBjb21wbGV0ZXJzIChlLmcuLCBQeXRob24gY29tcGxldGVycyBkZWNsYXJl ZCBhcyBtZXRob2RzIGluc2lkZQotKyAgICAgICBhIGNsYXNzKSB0aGUgd29yZCBicmVhayBjaGFy cyBtYXkgbmVlZCB0byBiZSByZWRlZmluZWQKLSsgICAgICAgZGVwZW5kaW5nIG9uIHRoZSBjb21w bGV0ZXIgdHlwZSAoZS5nLiwgZm9yIGZpbGVuYW1lCi0rICAgICAgIGNvbXBsZXRlcnMpLiAgKi8K LSsKLSsgICAgY29tcGxldGVyX2Z0eXBlX3ZvaWQgKmNvbXBsZXRlcl9oYW5kbGVfYnJrY2hhcnM7 Ci0rCi0gICAgIC8qIERlc3RydWN0aW9uIHJvdXRpbmUgZm9yIHRoaXMgY29tbWFuZC4gIElmIG5v bi1OVUxMLCB0aGlzIGlzCi0gICAgICAgIGNhbGxlZCB3aGVuIHRoaXMgY29tbWFuZCBpbnN0YW5j ZSBpcyBkZXN0cm95ZWQuICBUaGlzIG1heSBiZQotICAgICAgICB1c2VkIHRvIGZpbmFsaXplIHRo ZSBDT05URVhUIGZpZWxkLCBpZiBuZWVkZWQuICAqLwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MjcvZ2RiL2NvbW1hbmQuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2Mjcub3Jp Zy9nZGIvY29tbWFuZC5oCTIwMTQtMDctMDcgMjA6NTM6NTIuNjM2MTA2OTE1ICswMjAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvY29tbWFuZC5oCTIwMTQtMDctMDcgMjA6NTM6NTUuNDMw MTEwMjA4ICswMjAwCi1AQCAtMTU4LDggKzE1OCwxNiBAQCBleHRlcm4gdm9pZCBzZXRfY21kX3Nm dW5jIChzdHJ1Y3QgY21kX2xpCi0gdHlwZWRlZiBWRUMgKGNoYXJfcHRyKSAqY29tcGxldGVyX2Z0 eXBlIChzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqLAotIAkJCQkJIGNvbnN0IGNoYXIgKiwgY29u c3QgY2hhciAqKTsKLSAKLSt0eXBlZGVmIHZvaWQgY29tcGxldGVyX2Z0eXBlX3ZvaWQgKHN0cnVj dCBjbWRfbGlzdF9lbGVtZW50ICosCi0rCQkJCSAgIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq KTsKLSsKLSBleHRlcm4gdm9pZCBzZXRfY21kX2NvbXBsZXRlciAoc3RydWN0IGNtZF9saXN0X2Vs ZW1lbnQgKiwgY29tcGxldGVyX2Z0eXBlICopOwotIAotKy8qIFNldCB0aGUgY29tcGxldGVyX2hh bmRsZV9icmtjaGFycyBjYWxsYmFjay4gICovCi0rCi0rZXh0ZXJuIHZvaWQgc2V0X2NtZF9jb21w bGV0ZXJfaGFuZGxlX2Jya2NoYXJzIChzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqLAotKwkJCQkJ ICAgICAgIGNvbXBsZXRlcl9mdHlwZV92b2lkICopOwotKwotIC8qIEhBQ0s6IGNhZ25leS8yMDAy LTAyLTIzOiBDb2RlLCBtb3N0bHkgaW4gdHJhY2Vwb2ludHMuYywgZ3J1YnMKLSAgICBhcm91bmQg aW4gY21kIG9iamVjdHMgdG8gdGVzdCB0aGUgdmFsdWUgb2YgdGhlIGNvbW1hbmRzIHNmdW5jKCku ICAqLwotIGV4dGVybiBpbnQgY21kX2NmdW5jX2VxIChzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAq Y21kLAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL2NvbXBsZXRlci5jCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYyNy5vcmlnL2dkYi9jb21wbGV0ZXIuYwkyMDE0LTA3 LTA3IDIwOjUzOjUyLjYzNzEwNjkxNiArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MjcvZ2Ri L2NvbXBsZXRlci5jCTIwMTQtMDctMDcgMjA6NTM6NTUuNDMwMTEwMjA4ICswMjAwCi1AQCAtNDUw LDYgKzQ1MCwyMSBAQCBleHByZXNzaW9uX2NvbXBsZXRlciAoc3RydWN0IGNtZF9saXN0X2VsCi0g ICByZXR1cm4gbG9jYXRpb25fY29tcGxldGVyIChpZ25vcmUsIHAsIHdvcmQpOwotIH0KLSAKLSsv KiBTZWUgZGVmaW5pdGlvbiBpbiBjb21wbGV0ZXIuaC4gICovCi0rCi0rdm9pZAotK3NldF9nZGJf Y29tcGxldGlvbl93b3JkX2JyZWFrX2NoYXJhY3RlcnMgKGNvbXBsZXRlcl9mdHlwZSAqZm4pCi0r ewotKyAgLyogU28gZmFyIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gZGlmZmVyZW50aWF0aW5n IGZpbGVuYW1lCi0rICAgICBjb21wbGV0ZXJzIGZyb20gZXZlcnl0aGluZyBlbHNlLiAgKi8KLSsg IGlmIChmbiA9PSBmaWxlbmFtZV9jb21wbGV0ZXIpCi0rICAgIHJsX2NvbXBsZXRlcl93b3JkX2Jy ZWFrX2NoYXJhY3RlcnMKLSsgICAgICA9IGdkYl9jb21wbGV0ZXJfZmlsZV9uYW1lX2JyZWFrX2No YXJhY3RlcnM7Ci0rICBlbHNlCi0rICAgIHJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3Rl cnMKLSsgICAgICA9IGdkYl9jb21wbGV0ZXJfY29tbWFuZF93b3JkX2JyZWFrX2NoYXJhY3RlcnM7 Ci0rfQotKwotIC8qIEhlcmUgYXJlIHNvbWUgdXNlZnVsIHRlc3QgY2FzZXMgZm9yIGNvbXBsZXRp b24uICBGSVhNRTogVGhlc2UKLSAgICBzaG91bGQgYmUgcHV0IGluIHRoZSB0ZXN0IHN1aXRlLiAg VGhleSBzaG91bGQgYmUgdGVzdGVkIHdpdGggYm90aAotICAgIE0tPyBhbmQgVEFCLgotQEAgLTY3 OCw2ICs2OTMsOSBAQCBjb21wbGV0ZV9saW5lX2ludGVybmFsIChjb25zdCBjaGFyICp0ZXh0Ci0g CQkJICAgcC0tKQotIAkJCTsKLSAJCSAgICB9Ci0rCQkgIGlmIChyZWFzb24gPT0gaGFuZGxlX2Jy a2NoYXJzCi0rCQkgICAgICAmJiBjLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzICE9IE5VTEwp Ci0rCQkgICAgKCpjLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzKSAoYywgcCwgd29yZCk7Ci0g CQkgIGlmIChyZWFzb24gIT0gaGFuZGxlX2Jya2NoYXJzICYmIGMtPmNvbXBsZXRlciAhPSBOVUxM KQotIAkJICAgIGxpc3QgPSAoKmMtPmNvbXBsZXRlcikgKGMsIHAsIHdvcmQpOwotIAkJfQotQEAg LTc1MSw2ICs3NjksOSBAQCBjb21wbGV0ZV9saW5lX2ludGVybmFsIChjb25zdCBjaGFyICp0ZXh0 Ci0gCQkgICAgICAgcC0tKQotIAkJICAgIDsKLSAJCX0KLSsJICAgICAgaWYgKHJlYXNvbiA9PSBo YW5kbGVfYnJrY2hhcnMKLSsJCSAgJiYgYy0+Y29tcGxldGVyX2hhbmRsZV9icmtjaGFycyAhPSBO VUxMKQotKwkJKCpjLT5jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzKSAoYywgcCwgd29yZCk7Ci0g CSAgICAgIGlmIChyZWFzb24gIT0gaGFuZGxlX2Jya2NoYXJzICYmIGMtPmNvbXBsZXRlciAhPSBO VUxMKQotIAkJbGlzdCA9ICgqYy0+Y29tcGxldGVyKSAoYywgcCwgd29yZCk7Ci0gCSAgICB9Ci1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvY29tcGxldGVyLmgKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjkwLjIwMTQwNjI3Lm9yaWcvZ2RiL2NvbXBsZXRlci5oCTIwMTQtMDctMDcgMjA6 NTM6NTIuNjM3MTA2OTE2ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvY29tcGxl dGVyLmgJMjAxNC0wNy0wNyAyMDo1NDoxMy4yOTcxMzE4MzEgKzAyMDAKLUBAIC0xOCw2ICsxOCw3 IEBACi0gI2RlZmluZSBDT01QTEVURVJfSCAxCi0gCi0gI2luY2x1ZGUgImdkYl92ZWNzLmgiCi0r I2luY2x1ZGUgImNvbW1hbmQuaCIKLSAKLSBleHRlcm4gVkVDIChjaGFyX3B0cikgKmNvbXBsZXRl X2xpbmUgKGNvbnN0IGNoYXIgKnRleHQsCi0gCQkJCSAgICAgIGNoYXIgKmxpbmVfYnVmZmVyLAot QEAgLTQ4LDYgKzQ5LDEzIEBAIGV4dGVybiBjaGFyICpnZXRfZ2RiX2NvbXBsZXRlcl9xdW90ZV9j aGEKLSAKLSBleHRlcm4gY2hhciAqZ2RiX2NvbXBsZXRpb25fd29yZF9icmVha19jaGFyYWN0ZXJz ICh2b2lkKTsKLSAKLSsvKiBTZXQgdGhlIHdvcmQgYnJlYWsgY2hhcmFjdGVycyBhcnJheSB0byB0 aGUgY29ycmVzcG9uZGluZyBzZXQgb2YKLSsgICBjaGFycywgYmFzZWQgb24gRk4uICBUaGlzIGZ1 bmN0aW9uIGlzIHVzZWZ1bCBmb3IgY2FzZXMgd2hlbiB0aGUKLSsgICBjb21wbGV0ZXIgZG9lc24n dCBrbm93IHRoZSB0eXBlIG9mIHRoZSBjb21wbGV0aW9uIHVudGlsIHNvbWUKLSsgICBjYWxjdWxh dGlvbiBpcyBkb25lIChlLmcuLCBmb3IgUHl0aG9uIGZ1bmN0aW9ucykuICAqLwotKwotK2V4dGVy biB2b2lkIHNldF9nZGJfY29tcGxldGlvbl93b3JkX2JyZWFrX2NoYXJhY3RlcnMgKGNvbXBsZXRl cl9mdHlwZSAqZm4pOwotKwotIC8qIEV4cG9ydGVkIHRvIGxpbmVzcGVjLmMgKi8KLSAKLSBleHRl cm4gY29uc3QgY2hhciAqc2tpcF9xdW90ZWRfY2hhcnMgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh ciAqLAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MjcvZ2RiL3B5dGhvbi9weS1jbWQuYwotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2Mjcub3JpZy9nZGIvcHl0aG9uL3B5LWNtZC5j CTIwMTQtMDctMDcgMjA6NTM6NTIuNjM3MTA2OTE2ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYyNy9nZGIvcHl0aG9uL3B5LWNtZC5jCTIwMTQtMDctMDcgMjA6NTM6NTUuNDMxMTEwMjA5ICsw MjAwCi1AQCAtMjA4LDQ1ICsyMDgsMTU1IEBAIGNtZHB5X2Z1bmN0aW9uIChzdHJ1Y3QgY21kX2xp c3RfZWxlbWVudAotICAgZG9fY2xlYW51cHMgKGNsZWFudXApOwotIH0KLSAKLSsvKiBIZWxwZXIg ZnVuY3Rpb24gZm9yIHRoZSBQeXRob24gY29tbWFuZCBjb21wbGV0ZXJzIChib3RoICJwdXJlIgot KyAgIGNvbXBsZXRlciBhbmQgYnJrY2hhciBoYW5kbGVyKS4gIFRoaXMgZnVuY3Rpb24gdGFrZXMg Q09NTUFORCwgVEVYVAotKyAgIGFuZCBXT1JEIGFuZCB0cmllcyB0byBjYWxsIHRoZSBQeXRob24g bWV0aG9kIGZvciBjb21wbGV0aW9uIHdpdGgKLSsgICB0aGVzZSBhcmd1bWVudHMuICBJdCBhbHNv IHRha2VzIEhBTkRMRV9CUktDSEFSU19QLCBhbiBhcmd1bWVudCB0bwotKyAgIGlkZW50aWZ5IHdo ZXRoZXIgaXQgaXMgYmVpbmcgY2FsbGVkIGZyb20gdGhlIGJya2NoYXIgaGFuZGxlciBvcgotKyAg IGZyb20gdGhlICJwdXJlIiBjb21wbGV0ZXIuICBJbiB0aGUgZmlyc3QgY2FzZSwgaXQgZWZmZWN0 aXZlbHkgY2FsbHMKLSsgICB0aGUgUHl0aG9uIG1ldGhvZCBmb3IgY29tcGxldGlvbiwgYW5kIHJl Y29yZHMgdGhlIFB5T2JqZWN0IGluIGEKLSsgICBzdGF0aWMgdmFyaWFibGUgKHVzZWQgYXMgYSAi Y2FjaGUiKS4gIEluIHRoZSBzZWNvbmQgY2FzZSwgaXQganVzdAotKyAgIHJldHVybnMgdGhhdCB2 YXJpYWJsZSwgd2l0aG91dCBhY3R1YWxseSBjYWxsaW5nIHRoZSBQeXRob24gbWV0aG9kCi0rICAg YWdhaW4uICBUaGlzIHNhdmVzIHVzIG9uZSBQeXRob24gbWV0aG9kIGNhbGwuCi0rCi0rICAgSXQg aXMgaW1wb3J0YW50IHRvIG1lbnRpb24gdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGJ1aWx0IG9uIHRo ZQotKyAgIGFzc3VtcHRpb24gdGhhdCB0aGUgY2FsbHMgdG8gY21kcHlfY29tcGxldGVyX2hhbmRs ZV9icmtjaGFycyBhbmQKLSsgICBjbWRweV9jb21wbGV0ZXIgd2lsbCBiZSBzdWJzZXF1ZW50IHdp dGggbm90aGluZyBpbnRlcnZlbmluZy4gIFRoaXMKLSsgICBpcyB0cnVlIGZvciBvdXIgY29tcGxl dGVyIG1lY2hhbmlzbS4KLSsKLSsgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIFB5T2JqZWN0 IHJlcHJlc2VudGluZyB0aGUgUHl0aG9uIG1ldGhvZAotKyAgIGNhbGwuICAqLwotKwotK3N0YXRp YyBQeU9iamVjdCAqCi0rY21kcHlfY29tcGxldGVyX2hlbHBlciAoc3RydWN0IGNtZF9saXN0X2Vs ZW1lbnQgKmNvbW1hbmQsCi0rCQkJY29uc3QgY2hhciAqdGV4dCwgY29uc3QgY2hhciAqd29yZCwK LSsJCQlpbnQgaGFuZGxlX2Jya2NoYXJzX3ApCi0rewotKyAgY21kcHlfb2JqZWN0ICpvYmogPSAo Y21kcHlfb2JqZWN0ICopIGdldF9jbWRfY29udGV4dCAoY29tbWFuZCk7Ci0rICBQeU9iamVjdCAq dGV4dG9iaiwgKndvcmRvYmo7Ci0rICAvKiBUaGlzIHN0YXRpYyB2YXJpYWJsZSB3aWxsIHNlcnZl ciBhcyBhICJjYWNoZSIgZm9yIHVzLCBpbiBvcmRlciB0bwotKyAgICAgc3RvcmUgdGhlIFB5T2Jq ZWN0IHRoYXQgcmVzdWx0cyBmcm9tIGNhbGxpbmcgdGhlIFB5dGhvbgotKyAgICAgZnVuY3Rpb24u ICAqLwotKyAgc3RhdGljIFB5T2JqZWN0ICpyZXN1bHRvYmogPSBOVUxMOwotKwotKyAgaWYgKGhh bmRsZV9icmtjaGFyc19wKQotKyAgICB7Ci0rICAgICAgLyogSWYgd2Ugd2VyZSBjYWxsZWQgdG8g aGFuZGxlIGJya2NoYXJzLCBpdCBtZWFucyB0aGlzIGlzIHRoZQotKwkgZmlyc3QgZnVuY3Rpb24g Y2FsbCBvZiB0d28gdGhhdCB3aWxsIGhhcHBlbiBpbiBhIHJvdy4KLSsJIFRoZXJlZm9yZSwgd2Ug bmVlZCB0byBjYWxsIHRoZSBjb21wbGV0ZXIgb3Vyc2VsdmVzLCBhbmQgY2FjaGUKLSsJIHRoZSBy ZXR1cm4gdmFsdWUgaW4gdGhlIHN0YXRpYyB2YXJpYWJsZSBSRVNVTFRPQkouICBUaGVuLCBpbgot KwkgdGhlIHNlY29uZCBjYWxsLCB3ZSBjYW4ganVzdCB1c2UgdGhlIHZhbHVlIG9mIFJFU1VMVE9C SiB0byBkbwotKwkgb3VyIGpvYi4gICovCi0rICAgICAgaWYgKHJlc3VsdG9iaiAhPSBOVUxMKQot KwlQeV9ERUNSRUYgKHJlc3VsdG9iaik7Ci0rCi0rICAgICAgcmVzdWx0b2JqID0gTlVMTDsKLSsg ICAgICBpZiAoIW9iaikKLSsJZXJyb3IgKF8oIkludmFsaWQgaW52b2NhdGlvbiBvZiBQeXRob24g Y29tbWFuZCBvYmplY3QuIikpOwotKyAgICAgIGlmICghUHlPYmplY3RfSGFzQXR0ciAoKFB5T2Jq ZWN0ICopIG9iaiwgY29tcGxldGVfY3N0KSkKLSsJewotKwkgIC8qIElmIHRoZXJlIGlzIG5vIGNv bXBsZXRlIG1ldGhvZCwgZG9uJ3QgZXJyb3IuICAqLwotKwkgIHJldHVybiBOVUxMOwotKwl9Ci0r Ci0rICAgICAgdGV4dG9iaiA9IFB5VW5pY29kZV9EZWNvZGUgKHRleHQsIHN0cmxlbiAodGV4dCks IGhvc3RfY2hhcnNldCAoKSwgTlVMTCk7Ci0rICAgICAgaWYgKCF0ZXh0b2JqKQotKwllcnJvciAo XygiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgdG8gUHl0aG9uIHN0cmluZy4iKSk7Ci0rICAg ICAgd29yZG9iaiA9IFB5VW5pY29kZV9EZWNvZGUgKHdvcmQsIHNpemVvZiAod29yZCksIGhvc3Rf Y2hhcnNldCAoKSwgTlVMTCk7Ci0rICAgICAgaWYgKCF3b3Jkb2JqKQotKwl7Ci0rCSAgUHlfREVD UkVGICh0ZXh0b2JqKTsKLSsJICBlcnJvciAoXygiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQg dG8gUHl0aG9uIHN0cmluZy4iKSk7Ci0rCX0KLSsKLSsgICAgICByZXN1bHRvYmogPSBQeU9iamVj dF9DYWxsTWV0aG9kT2JqQXJncyAoKFB5T2JqZWN0ICopIG9iaiwgY29tcGxldGVfY3N0LAotKwkJ CQkJICAgICAgdGV4dG9iaiwgd29yZG9iaiwgTlVMTCk7Ci0rICAgICAgUHlfREVDUkVGICh0ZXh0 b2JqKTsKLSsgICAgICBQeV9ERUNSRUYgKHdvcmRvYmopOwotKyAgICAgIGlmICghcmVzdWx0b2Jq KQotKwl7Ci0rCSAgLyogSnVzdCBzd2FsbG93IGVycm9ycyBoZXJlLiAgKi8KLSsJICBQeUVycl9D bGVhciAoKTsKLSsJfQotKwotKyAgICAgIFB5X1hJTkNSRUYgKHJlc3VsdG9iaik7Ci0rICAgIH0K LSsKLSsgIHJldHVybiByZXN1bHRvYmo7Ci0rfQotKwotKy8qIFB5dGhvbiBmdW5jdGlvbiBjYWxs ZWQgdG8gZGV0ZXJtaW5lIHRoZSBicmVhayBjaGFyYWN0ZXJzIG9mIGEKLSsgICBjZXJ0YWluIGNv bXBsZXRlci4gIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4ga25vd2luZyBpZiB0aGUKLSsgICBj b21wbGV0ZXIgcmVnaXN0ZXJlZCBieSB0aGUgdXNlciB3aWxsIHJldHVybiBvbmUgb2YgdGhlIGlu dGVnZXIKLSsgICBjb2RlcyAoc2VlIENPTVBMRVRFUl8qIHN5bWJvbHMpLiAgKi8KLSsKLStzdGF0 aWMgdm9pZAotK2NtZHB5X2NvbXBsZXRlcl9oYW5kbGVfYnJrY2hhcnMgKHN0cnVjdCBjbWRfbGlz dF9lbGVtZW50ICpjb21tYW5kLAotKwkJCQkgY29uc3QgY2hhciAqdGV4dCwgY29uc3QgY2hhciAq d29yZCkKLSt7Ci0rICBQeU9iamVjdCAqcmVzdWx0b2JqID0gTlVMTDsKLSsgIHN0cnVjdCBjbGVh bnVwICpjbGVhbnVwOwotKwotKyAgY2xlYW51cCA9IGVuc3VyZV9weXRob25fZW52IChnZXRfY3Vy cmVudF9hcmNoICgpLCBjdXJyZW50X2xhbmd1YWdlKTsKLSsKLSsgIC8qIENhbGxpbmcgb3VyIGhl bHBlciB0byBvYnRhaW4gdGhlIFB5T2JqZWN0IG9mIHRoZSBQeXRob24KLSsgICAgIGZ1bmN0aW9u LiAgKi8KLSsgIHJlc3VsdG9iaiA9IGNtZHB5X2NvbXBsZXRlcl9oZWxwZXIgKGNvbW1hbmQsIHRl eHQsIHdvcmQsIDEpOwotKwotKyAgLyogQ2hlY2sgaWYgdGhlcmUgd2FzIGFuIGVycm9yLiAgKi8K LSsgIGlmIChyZXN1bHRvYmogPT0gTlVMTCkKLSsgICAgZ290byBkb25lOwotKwotKyAgaWYgKFB5 SW50X0NoZWNrIChyZXN1bHRvYmopKQotKyAgICB7Ci0rICAgICAgLyogVXNlciBjb2RlIG1heSBh bHNvIHJldHVybiBvbmUgb2YgdGhlIGNvbXBsZXRpb24gY29uc3RhbnRzLAotKwkgdGh1cyByZXF1 ZXN0aW5nIHRoYXQgc29ydCBvZiBjb21wbGV0aW9uLiAgV2UgYXJlIG9ubHkKLSsJIGludGVyZXN0 ZWQgaW4gdGhpcyBraW5kIG9mIHJldHVybi4gICovCi0rICAgICAgbG9uZyB2YWx1ZTsKLSsKLSsg ICAgICBpZiAoIWdkYl9weV9pbnRfYXNfbG9uZyAocmVzdWx0b2JqLCAmdmFsdWUpKQotKwl7Ci0r CSAgLyogSWdub3JlLiAgKi8KLSsJICBQeUVycl9DbGVhciAoKTsKLSsJfQotKyAgICAgIGVsc2Ug aWYgKHZhbHVlID49IDAgJiYgdmFsdWUgPCAobG9uZykgTl9DT01QTEVURVJTKQotKwl7Ci0rCSAg LyogVGhpcyBpcyB0aGUgY29yZSBvZiB0aGlzIGZ1bmN0aW9uLiAgRGVwZW5kaW5nIG9uIHdoaWNo Ci0rCSAgICAgY29tcGxldGVyIHR5cGUgdGhlIFB5dGhvbiBmdW5jdGlvbiByZXR1cm5zLCB3ZSBo YXZlIHRvCi0rCSAgICAgYWRqdXN0IHRoZSBicmVhayBjaGFyYWN0ZXJzIGFjY29yZGluZ2x5LiAg Ki8KLSsJICBzZXRfZ2RiX2NvbXBsZXRpb25fd29yZF9icmVha19jaGFyYWN0ZXJzCi0rCSAgICAo Y29tcGxldGVyc1t2YWx1ZV0uY29tcGxldGVyKTsKLSsJfQotKyAgICB9Ci0rCi0rIGRvbmU6Ci0r Ci0rICAvKiBXZSBkbyBub3QgY2FsbCBQeV9YREVDUkVGIGhlcmUgYmVjYXVzZSBSRVNVTFRPQkog d2lsbCBiZSB1c2VkIGluCi0rICAgICB0aGUgc3Vic2VxdWVudCBjYWxsIHRvIGNtZHB5X2NvbXBs ZXRlciBmdW5jdGlvbi4gICovCi0rICBkb19jbGVhbnVwcyAoY2xlYW51cCk7Ci0rfQotKwotIC8q IENhbGxlZCBieSBnZGIgZm9yIGNvbW1hbmQgY29tcGxldGlvbi4gICovCi0gCi0gc3RhdGljIFZF QyAoY2hhcl9wdHIpICoKLSBjbWRweV9jb21wbGV0ZXIgKHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50 ICpjb21tYW5kLAotIAkJIGNvbnN0IGNoYXIgKnRleHQsIGNvbnN0IGNoYXIgKndvcmQpCi0gewot LSAgY21kcHlfb2JqZWN0ICpvYmogPSAoY21kcHlfb2JqZWN0ICopIGdldF9jbWRfY29udGV4dCAo Y29tbWFuZCk7Ci0tICBQeU9iamVjdCAqdGV4dG9iaiwgKndvcmRvYmosICpyZXN1bHRvYmogPSBO VUxMOwotKyAgUHlPYmplY3QgKnJlc3VsdG9iaiA9IE5VTEw7Ci0gICBWRUMgKGNoYXJfcHRyKSAq cmVzdWx0ID0gTlVMTDsKLSAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotIAotICAgY2xlYW51 cCA9IGVuc3VyZV9weXRob25fZW52IChnZXRfY3VycmVudF9hcmNoICgpLCBjdXJyZW50X2xhbmd1 YWdlKTsKLSAKLS0gIGlmICghIG9iaikKLS0gICAgZXJyb3IgKF8oIkludmFsaWQgaW52b2NhdGlv biBvZiBQeXRob24gY29tbWFuZCBvYmplY3QuIikpOwotLSAgaWYgKCEgUHlPYmplY3RfSGFzQXR0 ciAoKFB5T2JqZWN0ICopIG9iaiwgY29tcGxldGVfY3N0KSkKLS0gICAgewotLSAgICAgIC8qIElm IHRoZXJlIGlzIG5vIGNvbXBsZXRlIG1ldGhvZCwgZG9uJ3QgZXJyb3IgLS0gaW5zdGVhZCwganVz dAotLQkgc2F5IHRoYXQgdGhlcmUgYXJlIG5vIGNvbXBsZXRpb25zLiAgKi8KLS0gICAgICBnb3Rv IGRvbmU7Ci0tICAgIH0KLS0KLS0gIHRleHRvYmogPSBQeVVuaWNvZGVfRGVjb2RlICh0ZXh0LCBz dHJsZW4gKHRleHQpLCBob3N0X2NoYXJzZXQgKCksIE5VTEwpOwotLSAgaWYgKCEgdGV4dG9iaikK LS0gICAgZXJyb3IgKF8oIkNvdWxkIG5vdCBjb252ZXJ0IGFyZ3VtZW50IHRvIFB5dGhvbiBzdHJp bmcuIikpOwotLSAgd29yZG9iaiA9IFB5VW5pY29kZV9EZWNvZGUgKHdvcmQsIHN0cmxlbiAod29y ZCksIGhvc3RfY2hhcnNldCAoKSwgTlVMTCk7Ci0tICBpZiAoISB3b3Jkb2JqKQotLSAgICBlcnJv ciAoXygiQ291bGQgbm90IGNvbnZlcnQgYXJndW1lbnQgdG8gUHl0aG9uIHN0cmluZy4iKSk7Ci0t Ci0tICByZXN1bHRvYmogPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyAoKFB5T2JqZWN0ICop IG9iaiwgY29tcGxldGVfY3N0LAotLQkJCQkJICB0ZXh0b2JqLCB3b3Jkb2JqLCBOVUxMKTsKLS0g IFB5X0RFQ1JFRiAodGV4dG9iaik7Ci0tICBQeV9ERUNSRUYgKHdvcmRvYmopOwotLSAgaWYgKCEg cmVzdWx0b2JqKQotLSAgICB7Ci0tICAgICAgLyogSnVzdCBzd2FsbG93IGVycm9ycyBoZXJlLiAg Ki8KLS0gICAgICBQeUVycl9DbGVhciAoKTsKLS0gICAgICBnb3RvIGRvbmU7Ci0tICAgIH0KLSsg IC8qIENhbGxpbmcgb3VyIGhlbHBlciB0byBvYnRhaW4gdGhlIFB5T2JqZWN0IG9mIHRoZSBQeXRo b24KLSsgICAgIGZ1bmN0aW9uLiAgKi8KLSsgIHJlc3VsdG9iaiA9IGNtZHB5X2NvbXBsZXRlcl9o ZWxwZXIgKGNvbW1hbmQsIHRleHQsIHdvcmQsIDApOwotKwotKyAgLyogSWYgdGhlIHJlc3VsdCBv YmplY3Qgb2YgY2FsbGluZyB0aGUgUHl0aG9uIGZ1bmN0aW9uIGlzIE5VTEwsIGl0Ci0rICAgICBt ZWFucyB0aGF0IHRoZXJlIHdhcyBhbiBlcnJvci4gIEluIHRoaXMgY2FzZSwganVzdCBnaXZlIHVw IGFuZAotKyAgICAgcmV0dXJuIE5VTEwuICAqLwotKyAgaWYgKHJlc3VsdG9iaiA9PSBOVUxMKQot KyAgICBnb3RvIGRvbmU7Ci0gCi0gICByZXN1bHQgPSBOVUxMOwotICAgaWYgKFB5SW50X0NoZWNr IChyZXN1bHRvYmopKQotQEAgLTMwMiw3ICs0MTIsNiBAQCBjbWRweV9jb21wbGV0ZXIgKHN0cnVj dCBjbWRfbGlzdF9lbGVtZW50Ci0gCi0gIGRvbmU6Ci0gCi0tICBQeV9YREVDUkVGIChyZXN1bHRv YmopOwotICAgZG9fY2xlYW51cHMgKGNsZWFudXApOwotIAotICAgcmV0dXJuIHJlc3VsdDsKLUBA IC01NDgsNiArNjU3LDkgQEAgY21kcHlfaW5pdCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cgotICAgICAgIHNldF9jbWRfY29udGV4dCAoY21kLCBzZWxmKTsKLSAgICAgICBzZXRfY21kX2Nv bXBsZXRlciAoY21kLCAoKGNvbXBsZXRldHlwZSA9PSAtMSkgPyBjbWRweV9jb21wbGV0ZXIKLSAJ CQkgICAgICAgOiBjb21wbGV0ZXJzW2NvbXBsZXRldHlwZV0uY29tcGxldGVyKSk7Ci0rICAgICAg aWYgKGNvbXBsZXRldHlwZSA9PSAtMSkKLSsJc2V0X2NtZF9jb21wbGV0ZXJfaGFuZGxlX2Jya2No YXJzIChjbWQsCi0rCQkJCQkgICBjbWRweV9jb21wbGV0ZXJfaGFuZGxlX2Jya2NoYXJzKTsKLSAg ICAgfQotICAgaWYgKGV4Y2VwdC5yZWFzb24gPCAwKQotICAgICB7Ci1JbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYyNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktY29tcGxldGlvbi5leHAKLT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjI3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1j b21wbGV0aW9uLmV4cAkyMDE0LTA3LTA3IDIwOjUzOjU1LjQzMTExMDIwOSArMDIwMAotQEAgLTAs MCArMSw3MCBAQAotKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgot KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStzZXQgdGVzdGZp bGUgInB5LWNvbXBsZXRpb24iCi0rCi0rbG9hZF9saWIgZ2RiLXB5dGhvbi5leHAKLSsKLStnZGJf ZXhpdAotK2dkYl9zdGFydAotKwotKyMgU2tpcCBhbGwgdGVzdHMgaWYgUHl0aG9uIHNjcmlwdGlu ZyBpcyBub3QgZW5hYmxlZC4KLStpZiB7IFtza2lwX3B5dGhvbl90ZXN0c10gfSB7IGNvbnRpbnVl IH0KLSsKLStnZGJfdGVzdF9ub19vdXRwdXQgInNvdXJjZSAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7 dGVzdGZpbGV9LnB5IgotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeQotK3NldCB0 ZXN0ZGlyICIke29iamRpcn0vJHtzdWJkaXJ9L3B5LWNvbXBsZXRpb24tdGVzdGRpci8iCi0rc2V0 IHRlc3RkaXJfcmVnZXggW3N0cmluZ190b19yZWdleHAgJHRlc3RkaXJdCi0rc2V0IHRlc3RkaXJf Y29tcGxldGUgIiR7b2JqZGlyfS8ke3N1YmRpcn0vcHktY29tcGxldGlvbi10ZXN0IgotK2ZpbGUg bWtkaXIgJHRlc3RkaXIKLSsKLSsjIFRoaXMgb25lIHNob3VsZCBhbHdheXMgcGFzcy4KLStzZW5k X2dkYiAiY29tcGxldGVmaWxlaW5pdCAke3Rlc3RkaXJfY29tcGxldGV9XHQiCi0rZ2RiX3Rlc3Rf bXVsdGlwbGUgIiIgImNvbXBsZXRlZmlsZWluaXQgY29tcGxldGlvbiIgewotKyAgICAtcmUgIl5j b21wbGV0ZWZpbGVpbml0ICR7dGVzdGRpcl9yZWdleH0kIiB7Ci0rICAgICAgICBwYXNzICJjb21w bGV0ZWZpbGVpbml0IGNvbXBsZXRpb24iCi0rICAgIH0KLSt9Ci0rCi0rIyBKdXN0IGRpc2NhcmRp bmcgd2hhdGV2ZXIgd2UgdHlwZWQuCi0rc2VuZF9nZGIgIlxuIgotK2dkYl90ZXN0ICJwcmludCIg Ii4qIgotKwotKyMgVGhpcyBpcyB0aGUgcHJvYmxlbWF0aWMgb25lLgotK3NlbmRfZ2RiICJjb21w bGV0ZWZpbGVtZXRob2QgJHt0ZXN0ZGlyX2NvbXBsZXRlfVx0IgotK2dkYl90ZXN0X211bHRpcGxl ICIiICJjb21wbGV0ZWZpbGVtZXRob2QgY29tcGxldGlvbiIgewotKyAgICAtcmUgIl5jb21wbGV0 ZWZpbGVtZXRob2QgJHt0ZXN0ZGlyX3JlZ2V4fSAkIiB7Ci0rICAgICAgICBmYWlsICJjb21wbGV0 ZWZpbGVtZXRob2QgY29tcGxldGlvbiAoY29tcGxldGVkIGZpbGVuYW1lIGFzIHdyb25nIGNvbW1h bmQgYXJnKSIKLSsgICAgfQotKyAgICAtcmUgIl5jb21wbGV0ZWZpbGVtZXRob2QgJHt0ZXN0ZGly X3JlZ2V4fSQiIHsKLSsgICAgICAgIHBhc3MgImNvbXBsZXRlZmlsZW1ldGhvZCBjb21wbGV0aW9u IgotKyAgICB9Ci0rfQotKwotKyMgRGlzY2FyZGluZyBhZ2FpbgotK3NlbmRfZ2RiICJcbiIKLStn ZGJfdGVzdCAicHJpbnQiICIuKiIKLSsKLSsjIEFub3RoZXIgcHJvYmxlbWF0aWMKLStzZW5kX2dk YiAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQgJHtvYmpkaXJ9LyR7c3ViZGlyfS9weS1jb21wbGV0 aW9uLXRcdCIKLStnZGJfdGVzdF9tdWx0aXBsZSAiIiAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQg Y29tcGxldGlvbiIgewotKyAgICAtcmUgIl5jb21wbGV0ZWZpbGVjb21tYW5kY29uZCAke3Rlc3Rk aXJ9JCIgewotKwlmYWlsICJjb21wbGV0ZWZpbGVjb21tYW5kY29uZCBjb21wbGV0aW9uIChjb21w bGV0ZWQgZmlsZW5hbWUgaW5zdGVhZCBvZiBjb21tYW5kKSIKLSsgICAgfQotKyAgICAtcmUgIl5j b21wbGV0ZWZpbGVjb21tYW5kY29uZCAke29iamRpcn0vJHtzdWJkaXJ9L3B5LWNvbXBsZXRpb24t dCQiIHsKLSsJcGFzcyAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQgY29tcGxldGlvbiIKLSsgICAg fQotK30KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjI3L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1jb21wbGV0aW9uLnB5Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYyNy9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktY29tcGxldGlvbi5weQkyMDE0LTA3LTA3IDIwOjUzOjU1LjQz MTExMDIwOSArMDIwMAotQEAgLTAsMCArMSw1OCBAQAotKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KLSsKLSsjIFRoaXMgdGVzdGNhc2UgdGVzdHMgUFIgcHl0aG9uLzE2Njk5Ci0rCi0raW1w b3J0IGdkYgotKwotK2NsYXNzIENvbXBsZXRlRmlsZUluaXQoZ2RiLkNvbW1hbmQpOgotKwlkZWYg X19pbml0X18oc2VsZik6Ci0rCQlnZGIuQ29tbWFuZC5fX2luaXRfXyhzZWxmLCdjb21wbGV0ZWZp bGVpbml0JyxnZGIuQ09NTUFORF9VU0VSLGdkYi5DT01QTEVURV9GSUxFTkFNRSkKLSsKLSsJZGVm IGludm9rZShzZWxmLGFyZ3VtZW50LGZyb21fdHR5KToKLSsJCXJhaXNlIGdkYi5HZGJFcnJvcign bm90IGltcGxlbWVudGVkJykKLSsKLStjbGFzcyBDb21wbGV0ZUZpbGVNZXRob2QoZ2RiLkNvbW1h bmQpOgotKwlkZWYgX19pbml0X18oc2VsZik6Ci0rCQlnZGIuQ29tbWFuZC5fX2luaXRfXyhzZWxm LCdjb21wbGV0ZWZpbGVtZXRob2QnLGdkYi5DT01NQU5EX1VTRVIpCi0rCi0rCWRlZiBpbnZva2Uo c2VsZixhcmd1bWVudCxmcm9tX3R0eSk6Ci0rCQlyYWlzZSBnZGIuR2RiRXJyb3IoJ25vdCBpbXBs ZW1lbnRlZCcpCi0rCi0rCWRlZiBjb21wbGV0ZShzZWxmLHRleHQsd29yZCk6Ci0rCQlyZXR1cm4g Z2RiLkNPTVBMRVRFX0ZJTEVOQU1FCi0rCi0rY2xhc3MgQ29tcGxldGVGaWxlQ29tbWFuZENvbmQo Z2RiLkNvbW1hbmQpOgotKwlkZWYgX19pbml0X18oc2VsZik6Ci0rCQlnZGIuQ29tbWFuZC5fX2lu aXRfXyhzZWxmLCdjb21wbGV0ZWZpbGVjb21tYW5kY29uZCcsZ2RiLkNPTU1BTkRfVVNFUikKLSsK LSsJZGVmIGludm9rZShzZWxmLGFyZ3VtZW50LGZyb21fdHR5KToKLSsJCXJhaXNlIGdkYi5HZGJF cnJvcignbm90IGltcGxlbWVudGVkJykKLSsKLSsJZGVmIGNvbXBsZXRlKHNlbGYsdGV4dCx3b3Jk KToKLSsJCSMgVGhpcyBpcyBhIHRlc3QgbWFkZSB0byBrbm93IGlmIHRoZSBjb21tYW5kCi0rCQkj IGNvbXBsZXRpb24gc3RpbGwgd29ya3MgZmluZS4gIFdoZW4gdGhlIHVzZXIgYXNrcyB0bwotKwkJ IyBjb21wbGV0ZSBzb21ldGhpbmcgbGlrZSAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQKLSsJCSMg L3BhdGgvdG8vcHktY29tcGxldGlvbi10IiwgaXQgc2hvdWxkIG5vdCBjb21wbGV0ZSB0bwotKwkJ IyAiL3BhdGgvdG8vcHktY29tcGxldGlvbi10ZXN0LyIsIGJ1dCBpbnN0ZWFkIGp1c3QKLSsJCSMg d2FpdCBmb3IgaW5wdXQuCi0rCQlpZiAicHktY29tcGxldGlvbi10IiBpbiB0ZXh0OgotKwkJCXJl dHVybiBnZGIuQ09NUExFVEVfQ09NTUFORAotKwkJZWxzZToKLSsJCQlyZXR1cm4gZ2RiLkNPTVBM RVRFX0ZJTEVOQU1FCi0rCi0rQ29tcGxldGVGaWxlSW5pdCgpCi0rQ29tcGxldGVGaWxlTWV0aG9k KCkKLStDb21wbGV0ZUZpbGVDb21tYW5kQ29uZCgpCgpkaWZmIC0tZ2l0IGEvZ2RiLXB5dGhvbi1j b21wbGV0ZXItMm9mMi5wYXRjaCBiL2dkYi1weXRob24tY29tcGxldGVyLTJvZjIucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjM2M2MmYuLjAwMDAwMDAKLS0tIGEvZ2RiLXB5 dGhvbi1jb21wbGV0ZXItMm9mMi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAK LWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA3L21zZzAwMTU0Lmh0 bWwKLVN1YmplY3Q6IFJlOiBbUEFUQ0hdIFBSIHB5dGhvbi8xNjY5OTogR0RCIFB5dGhvbiBjb21t YW5kIGNvbXBsZXRpb24gd2l0aCBvdmVycmlkZW4gY29tcGxldGUgdnMuIGNvbXBsZXRlciBjbGFz cwotCi0KLS0tcFd5aUVnSlltNWY5djU1LwotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotT24gVHVlLCAwOCBK dWwgMjAxNCAxNzozMjoyMSArMDIwMCwgSmFuIEtyYXRvY2h2aWwgd3JvdGU6Ci0+IC0gICAgLXJl ICJeY29tcGxldGVmaWxlY29tbWFuZGNvbmQgJHtvYmpkaXJ9LyR7c3ViZGlyfS9weS1jb21wbGV0 aW9uLXQkIiB7Ci0+ICsgICAgLXJlICJeY29tcGxldGVmaWxlY29tbWFuZGNvbmQgJHtjb21wbGV0 aW9uX3JlZ2V4fSQiIHsKLQotVGhlcmUgd2FzIGEgcmFjeSBidWcgaGVyZSAtIGFuZCBldmVuIGlu IHRoZSBmb3JtZXIgdGVzdCAtIGhlcmUgc2hvdWxkIGJlOgotICArICAgIC1yZSAiXmNvbXBsZXRl ZmlsZWNvbW1hbmRjb25kICR7Y29tcGxldGlvbl9yZWdleH1cMDA3JCIgewotCi1VcGRhdGVkIGZp eCBhdHRhY2hlZC4KLQotCi1KYW4KLQotLS1wV3lpRWdKWW01Zjl2NTUvCi1Db250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGlu ZTsgZmlsZW5hbWU9InB5LWNvbXBsZXRpb24tcmFjZTIucGF0Y2giCi0KLS0tLSAuL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1jb21wbGV0aW9uLmV4cC1vcmlnCTIwMTQtMDctMDcgMjE6MzI6 MTcuODkxMDQ1MDU4ICswMjAwCi0rKysgLi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktY29t cGxldGlvbi5leHAJMjAxNC0wNy0wOCAyMDoxNDo1Ny4xODk3OTE5MjggKzAyMDAKLUBAIC0yNiw5 ICsyNiw5IEBAIGlmIHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsgY29udGludWUgfQotIGdkYl90 ZXN0X25vX291dHB1dCAic291cmNlICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHki Ci0gCi0gIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5Ci0tc2V0IHRlc3RkaXIgIiR7b2Jq ZGlyfS8ke3N1YmRpcn0vcHktY29tcGxldGlvbi10ZXN0ZGlyLyIKLStzZXQgdGVzdGRpciAiW3N0 YW5kYXJkX291dHB1dF9maWxlICJweS1jb21wbGV0aW9uLXRlc3RkaXIiXS8iCi0gc2V0IHRlc3Rk aXJfcmVnZXggW3N0cmluZ190b19yZWdleHAgJHRlc3RkaXJdCi0tc2V0IHRlc3RkaXJfY29tcGxl dGUgIiR7b2JqZGlyfS8ke3N1YmRpcn0vcHktY29tcGxldGlvbi10ZXN0IgotK3NldCB0ZXN0ZGly X2NvbXBsZXRlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAicHktY29tcGxldGlvbi10ZXN0Il0KLSBm aWxlIG1rZGlyICR0ZXN0ZGlyCi0gCi0gIyBUaGlzIG9uZSBzaG91bGQgYWx3YXlzIHBhc3MuCi1A QCAtNDAsOCArNDAsNyBAQCBnZGJfdGVzdF9tdWx0aXBsZSAiIiAiY29tcGxldGVmaWxlaW5pdCBj Ci0gfQotIAotICMgSnVzdCBkaXNjYXJkaW5nIHdoYXRldmVyIHdlIHR5cGVkLgotLXNlbmRfZ2Ri ICJcbiIKLS1nZGJfdGVzdCAicHJpbnQiICIuKiIKLStnZGJfdGVzdCAiICIgIi4qIiAiZGlzY2Fy ZCAjMSIKLSAKLSAjIFRoaXMgaXMgdGhlIHByb2JsZW1hdGljIG9uZS4KLSBzZW5kX2dkYiAiY29t cGxldGVmaWxlbWV0aG9kICR7dGVzdGRpcl9jb21wbGV0ZX1cdCIKLUBAIC01NSwxNiArNTQsMTYg QEAgZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgImNvbXBsZXRlZmlsZW1ldGhvZAotIH0KLSAKLSAjIERp c2NhcmRpbmcgYWdhaW4KLS1zZW5kX2dkYiAiXG4iCi0tZ2RiX3Rlc3QgInByaW50IiAiLioiCi0r Z2RiX3Rlc3QgIiAiICIuKiIgImRpc2NhcmQgIzIiCi0gCi0gIyBBbm90aGVyIHByb2JsZW1hdGlj Ci0tc2VuZF9nZGIgImNvbXBsZXRlZmlsZWNvbW1hbmRjb25kICR7b2JqZGlyfS8ke3N1YmRpcn0v cHktY29tcGxldGlvbi10XHQiCi0rc2V0IGNvbXBsZXRpb25fcmVnZXggIltzdHJpbmdfdG9fcmVn ZXhwIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAicHktY29tcGxldGlvbi10Il1dIgotK3NlbmRfZ2Ri ICJjb21wbGV0ZWZpbGVjb21tYW5kY29uZCBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgInB5LWNvbXBs ZXRpb24tdFx0Il0iCi0gZ2RiX3Rlc3RfbXVsdGlwbGUgIiIgImNvbXBsZXRlZmlsZWNvbW1hbmRj b25kIGNvbXBsZXRpb24iIHsKLSAgICAgLXJlICJeY29tcGxldGVmaWxlY29tbWFuZGNvbmQgJHt0 ZXN0ZGlyfSQiIHsKLSAJZmFpbCAiY29tcGxldGVmaWxlY29tbWFuZGNvbmQgY29tcGxldGlvbiAo Y29tcGxldGVkIGZpbGVuYW1lIGluc3RlYWQgb2YgY29tbWFuZCkiCi0gICAgIH0KLS0gICAgLXJl ICJeY29tcGxldGVmaWxlY29tbWFuZGNvbmQgJHtvYmpkaXJ9LyR7c3ViZGlyfS9weS1jb21wbGV0 aW9uLXQkIiB7Ci0rICAgIC1yZSAiXmNvbXBsZXRlZmlsZWNvbW1hbmRjb25kICR7Y29tcGxldGlv bl9yZWdleH1cMDA3JCIgewotIAlwYXNzICJjb21wbGV0ZWZpbGVjb21tYW5kY29uZCBjb21wbGV0 aW9uIgotICAgICB9Ci0gfQotCi0tLXBXeWlFZ0pZbTVmOXY1NS8tLQotCgpkaWZmIC0tZ2l0IGEv Z2RiLXJlYWRsaW5lLTYuMy41LnBhdGNoIGIvZ2RiLXJlYWRsaW5lLTYuMy41LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjZhYjNhLi4wMDAwMDAwCi0tLSBhL2dkYi1yZWFk bGluZS02LjMuNS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLWh0dHA6Ly9z b3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA2L21zZzAwNzM3Lmh0bWwKLVN1Ympl Y3Q6IFtwYXRjaF0gRml4IC0td2l0aC1zeXN0ZW0tcmVhZGxpbmUgd2l0aCByZWFkbGluZS02LjMg cGF0Y2ggNQotCi0KLS0tQlhWQVQ1a050cnpLdURGbAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmUKLQotSGksCi0K LUkgaGF2ZSBmaWxlZCBub3c6Ci0JLS13aXRoLXN5c3RlbS1yZWFkbGluZSB1c2VzIGJ1bmRsZWQg cmVhZGxpbmUgaW5jbHVkZSBmaWxlcwotCWh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEv c2hvd19idWcuY2dpP2lkPTE3MDc3Ci0KLVRvIHNlZSBhbnkgZWZmZWN0IG9mIHRoZSBwYXRjaCBi ZWxvdyB5b3UgaGF2ZSB0byBkbzoKLQlybSAtcmYgcmVhZGxpbmUKLU90aGVyd2lzZSByZWFkbGlu ZSBpbmNsdWRlIGZpbGVzIGdldCB1c2VkIHRoZSBidW5kbGVkIG9uZXMgZnJvbSBHREIgd2hpY2gg YXJlCi1jdXJyZW50bHkgNi4yIHdoaWxlIHN5c3RlbSByZWFkbGluZSBtYXkgYmUgNi4zIGFscmVh ZHkuCi0KLVlvdSBhbHNvIGhhdmUgdG8gdXNlIHN5c3RlbSByZWFkbGluZS02LjMgaW5jbHVkaW5n IGl0cyB1cHN0cmVhbSBwYXRjaDoKLQlbQnVnLXJlYWRsaW5lXSBSZWFkbGluZS02LjMgT2ZmaWNp YWwgUGF0Y2ggNQotCWh0dHA6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9idWctcmVhZGxp bmUvMjAxNC0wNC9tc2cwMDAxOC5odG1sCi0JTWVzc2FnZS1JRDogPDE0MDQxNTEyNTYxOC5BQTU3 NTk4LlNNQGNhbGViLmlucy5jd3J1LmVkdT4KLQotSW4gc2hvcnQgaXQgaGFwcGVucyBvbiBGZWRv cmEgUmF3aGlkZSBzaW5jZToKLQlyZWFkbGluZS02LjMtMS5mYzIxCi0JaHR0cHM6Ly9rb2ppLmZl ZG9yYXByb2plY3Qub3JnL2tvamkvYnVpbGRpbmZvP2J1aWxkSUQ9NTM4OTQxCi0KLVRoZSBlcnJv ciBpczoKLQlodHRwczovL2tvamlwa2dzLmZlZG9yYXByb2plY3Qub3JnLy93b3JrL3Rhc2tzLzk4 OTAvNzA1OTg5MC9idWlsZC5sb2cKLQkuLi8uLi9nZGIvdHVpL3R1aS1pby5jOjEzMjoxOiBlcnJv cjogJ0Z1bmN0aW9uJyBpcyBkZXByZWNhdGVkIFstV2Vycm9yPWRlcHJlY2F0ZWQtZGVjbGFyYXRp b25zXQotCSBzdGF0aWMgRnVuY3Rpb24gKnR1aV9vbGRfcmxfZ2V0Y19mdW5jdGlvbjsKLQkgXgot CS4uLy4uL2dkYi90dWkvdHVpLWlvLmM6MTMzOjE6IGVycm9yOiAnVkZ1bmN0aW9uJyBpcyBkZXBy ZWNhdGVkIFstV2Vycm9yPWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQotCSBzdGF0aWMgVkZ1bmN0 aW9uICp0dWlfb2xkX3JsX3JlZGlzcGxheV9mdW5jdGlvbjsKLQkgXgotCS4uLy4uL2dkYi90dWkv dHVpLWlvLmM6MTM0OjE6IGVycm9yOiAnVkZ1bmN0aW9uJyBpcyBkZXByZWNhdGVkIFstV2Vycm9y PWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zXQotCSBzdGF0aWMgVkZ1bmN0aW9uICp0dWlfb2xkX3Js X3ByZXBfdGVybWluYWw7Ci0JIF4KLQkuLi8uLi9nZGIvdHVpL3R1aS1pby5jOjEzNToxOiBlcnJv cjogJ1ZGdW5jdGlvbicgaXMgZGVwcmVjYXRlZCBbLVdlcnJvcj1kZXByZWNhdGVkLWRlY2xhcmF0 aW9uc10KLQkgc3RhdGljIFZGdW5jdGlvbiAqdHVpX29sZF9ybF9kZXByZXBfdGVybWluYWw7Ci0J IF4KLQotSXQgaXMgc2luY2UgYmFzaCBjaGFuZ2U6Ci1saWIvcmVhZGxpbmUvcmx0eXBlZGVmcy5o Ci0gICAgICAgLSByZW1vdmUgb2xkIEZ1bmN0aW9uL1ZGdW5jdGlvbi9DUEZ1bmN0aW9uL0NQUEZ1 bmN0aW9uIHR5cGVkZWZzIGFzCi0gICAgICAgICBzdWdnZXN0ZWQgYnkgVG9tIFRyb21leSA8dHJv bWV5QHJlZGhhdC5jb20+Ci0KLVRoZSBuZXcgdHlwZWRlZnMgdXNlZCBiZWxvdyBhcmUgcHJlc2Vu dCBpbiByZWFkbGluZS9ybHR5cGVkZWZzLmggc2luY2U6Ci0JZ2l0Oi8vZ2l0LnNhdmFubmFoLmdu dS5vcmcvYmFzaC5naXQKLQljb21taXQgMjhlZjZjMzE2ZjFhZmY5MTRiYjk1YWMwOTc4N2EzYzgz YzE4MTVmZAotCURhdGU6ICAgRnJpIEFwciA2IDE5OjE0OjMxIDIwMDEgKzAwMDAKLQotCi1KYW4K LQotLS1CWFZBVDVrTnRyekt1REZsCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9InR1aXJlYWRs aW5lLnBhdGNoIgotCi1nZGIvCi0yMDE0LTA2LTIwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlGaXggLS13aXRoLXN5c3RlbS1yZWFkbGluZSB3aXRoIHJl YWRsaW5lLTYuMyBwYXRjaCA1LgotCSogdHVpL3R1aS1pby5jICh0dWlfb2xkX3JsX2dldGNfZnVu Y3Rpb24sIHR1aV9vbGRfcmxfcmVkaXNwbGF5X2Z1bmN0aW9uKQotCSh0dWlfb2xkX3JsX3ByZXBf dGVybWluYWwsIHR1aV9vbGRfcmxfZGVwcmVwX3Rlcm1pbmFsKTogVXNlIHJsXypfdAotCXR5cGVz LgotCi1kaWZmIC0tZ2l0IGEvZ2RiL3R1aS90dWktaW8uYyBiL2dkYi90dWkvdHVpLWlvLmMKLWlu ZGV4IDc2MWQyMDMuLmRjY2NiMDggMTAwNjQ0Ci0tLS0gYS9nZGIvdHVpL3R1aS1pby5jCi0rKysg Yi9nZGIvdHVpL3R1aS1pby5jCi1AQCAtMTI5LDEwICsxMjksMTAgQEAgc3RhdGljIHN0cnVjdCB1 aV9maWxlICp0dWlfb2xkX3N0ZGVycjsKLSBzdHJ1Y3QgdWlfb3V0ICp0dWlfb2xkX3Vpb3V0Owot IAotIC8qIFJlYWRsaW5lIHByZXZpb3VzIGhvb2tzLiAgKi8KLS1zdGF0aWMgRnVuY3Rpb24gKnR1 aV9vbGRfcmxfZ2V0Y19mdW5jdGlvbjsKLS1zdGF0aWMgVkZ1bmN0aW9uICp0dWlfb2xkX3JsX3Jl ZGlzcGxheV9mdW5jdGlvbjsKLS1zdGF0aWMgVkZ1bmN0aW9uICp0dWlfb2xkX3JsX3ByZXBfdGVy bWluYWw7Ci0tc3RhdGljIFZGdW5jdGlvbiAqdHVpX29sZF9ybF9kZXByZXBfdGVybWluYWw7Ci0r c3RhdGljIHJsX2dldGNfZnVuY190ICp0dWlfb2xkX3JsX2dldGNfZnVuY3Rpb247Ci0rc3RhdGlj IHJsX3ZvaWRmdW5jX3QgKnR1aV9vbGRfcmxfcmVkaXNwbGF5X2Z1bmN0aW9uOwotK3N0YXRpYyBy bF92aW50ZnVuY190ICp0dWlfb2xkX3JsX3ByZXBfdGVybWluYWw7Ci0rc3RhdGljIHJsX3ZvaWRm dW5jX3QgKnR1aV9vbGRfcmxfZGVwcmVwX3Rlcm1pbmFsOwotIHN0YXRpYyBpbnQgdHVpX29sZF9y bF9lY2hvaW5nX3A7Ci0gCi0gLyogUmVhZGxpbmUgb3V0cHV0IHN0cmVhbS4KLQotLS1CWFZBVDVr TnRyekt1REZsLS0KLQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTE2MzMzOS1hZGQtYXV0by1sb2Fk LXNjcmlwdHMtZGlyZWN0b3J5LnBhdGNoIGIvZ2RiLXJoYnoxMTYzMzM5LWFkZC1hdXRvLWxvYWQt c2NyaXB0cy1kaXJlY3RvcnkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5 NDQwMTcuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxMTYzMzM5LWFkZC1hdXRvLWxvYWQtc2NyaXB0 cy1kaXJlY3RvcnkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzYgKzAsMCBAQAotRGF0ZTog VGh1LCAxMyBOb3YgMjAxNCAxNjoyNjozNyArMDEwMAotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGph biBkb3Qga3JhdG9jaHZpbCBhdCByZWRoYXQgZG90IGNvbT4KLVRvOiBnZGItcGF0Y2hlcyBhdCBz b3VyY2V3YXJlIGRvdCBvcmcKLUNjOiBKYWt1YiBGaWxhayA8amZpbGFrIGF0IHJlZGhhdCBkb3Qg Y29tPgotU3ViamVjdDogW3BhdGNoXSBBZGQgYWRkLWF1dG8tbG9hZC1zY3JpcHRzLWRpcmVjdG9y eQotCi0tLWpobzF5WkpkYWQ2MERKcisKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCi0KLUhpLAotCi10aGVyZSBp cyBhbHJlYWR5ICJhZGQtYXV0by1sb2FkLXNhZmUtcGF0aCIgd2hpY2ggd29ya3MKLWxpa2UgInNl dCBhdXRvLWxvYWQgc2FmZS1wYXRoIiBidXQgaW4gYXBwZW5kIG1vZGUuCi0KLVRoZXJlIHdhcyBt aXNzaW5nIGFuIGFwcGVuZCBlcXVpdmFsZW50IGZvciAic2V0IGF1dG8tbG9hZCBzY3JpcHRzLWRp cmVjdG9yeSIuCi0KLUFCUlQgaGFzIGRpcmVjdG9yeSAvdmFyL2NhY2hlL2FicnQtZGkvIGFzIGFu IGFsdGVybmF0aXZlIG9uZQotdG8gL3Vzci9saWIvZGVidWcvIC4gVGhlcmVmb3JlIEFCUlQgbmVl ZHMgdG8gdXNlIC1pZXggcGFyYW1ldGVycyB0byBhZGQgdGhpcwotL3Zhci9jYWNoZS9hYnJ0LWRp LyBkaXJlY3RvcnkgYXMgYSBmaXJzdC1jbGFzcyBkZWJ1Z2luZm8gZGlyZWN0b3J5LgotVXNpbmcg YWJzb2x1dGUgInNldCBhdXRvLWxvYWQgc2NyaXB0cy1kaXJlY3RvcnkiIHdvdWxkIGhhcmQtY29k ZSB0aGUgcGF0aAotcG9zc2libHkgb3ZlcnJpZGluZyBsb2NhbCBzeXN0ZW0gZGlyZWN0b3J5IGFk ZGl0aW9uczsgYmVzaWRlcyBpdCB3b3VsZCBub3QgYmUKLW5pY2UgYW55d2F5LgotCi1ObyByZWdy ZXNzaW9ucyBvbiB7eDg2XzY0LHg4Nl82NC1tMzIsaTY4Nn0tZmVkb3JhMjEtbGludXgtZ251OyBh bHRob3VnaCBJIGhhdmUKLXNlZW4gc29tZSBoZWF2eSByZWdyZXNzaW9ucyB0aGVyZSB0b2RheSB1 bnJlbGF0ZWQgdG8gdGhpcyBwYXRjaC4KLQotCi1UaGFua3MsCi1KYW4KLQotLS1qaG8xeVpKZGFk NjBESnIrCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKLUNvbnRl bnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9ImFkZGF1dG9sb2FkLnBhdGNoIgotCi1n ZGIvCi0yMDE0LTExLTEzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci0KLQlBZGQgYWRkLWF1dG8tbG9hZC1zY3JpcHRzLWRpcmVjdG9yeS4KLQkqIE5FV1MgKENo YW5nZXMgc2luY2UgR0RCIDcuOCk6IEFkZCBhZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5 LgotCSogYXV0by1sb2FkLmMgKGFkZF9hdXRvX2xvYWRfZGlyKTogTmV3IGZ1bmN0aW9uLgotCShf aW5pdGlhbGl6ZV9hdXRvX2xvYWQpOiBJbnN0YWxsIGl0LgotCi1nZGIvZG9jLwotMjAxNC0xMS0x MyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JQWRkIGFk ZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3RvcnkuCi0JKiBnZGIudGV4aW5mbyAoQXV0by1sb2Fk aW5nKTogQWRkIGFkZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3RvcnkgbGluay4KLQkob2JqZmls ZS1nZGJkb3RleHQgZmlsZSk6IEFkZCBhZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5Lgot Ci1JbmRleDogZ2RiLTcuNi4xL2dkYi9ORVdTCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi4xLm9y aWcvZ2RiL05FV1MKLSsrKyBnZGItNy42LjEvZ2RiL05FV1MKLUBAIC0xLDYgKzEsMTIgQEAKLSAJ CVdoYXQgaGFzIGNoYW5nZWQgaW4gR0RCPwotIAkgICAgIChPcmdhbml6ZWQgcmVsZWFzZSBieSBy ZWxlYXNlKQotIAotKyogTmV3IGNvbW1hbmRzOgotKwotK2FkZC1hdXRvLWxvYWQtc2NyaXB0cy1k aXJlY3RvcnkgZGlyZWN0b3J5Ci0rICBBZGQgZW50cmllcyB0byB0aGUgbGlzdCBvZiBkaXJlY3Rv cmllcyBmcm9tIHdoaWNoIHRvIGxvYWQgYXV0by1sb2FkZWQKLSsgIHNjcmlwdHMuCi0rCi0gKioq IENoYW5nZXMgaW4gR0RCIDcuOAotIAotICogTmV3IGNvbW1hbmQgbGluZSBvcHRpb25zCi1JbmRl eDogZ2RiLTcuNi4xL2dkYi9hdXRvLWxvYWQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuMS5v cmlnL2dkYi9hdXRvLWxvYWQuYwotKysrIGdkYi03LjYuMS9nZGIvYXV0by1sb2FkLmMKLUBAIC0y OTgsNiArMjk4LDIyIEBAIFVzZSAnc2V0IGF1dG8tbG9hZCBzYWZlLXBhdGggLycgZm9yIGRpc2EK LSAgIGF1dG9fbG9hZF9zYWZlX3BhdGhfdmVjX3VwZGF0ZSAoKTsKLSB9Ci0gCi0rLyogImFkZC1h dXRvLWxvYWQtc2NyaXB0cy1kaXJlY3RvcnkiIGNvbW1hbmQgZm9yIHRoZSBhdXRvX2xvYWRfZGly IGNvbmZpZ3VyYXRpb24KLSsgICB2YXJpYWJsZS4gICovCi0rCi0rc3RhdGljIHZvaWQKLSthZGRf YXV0b19sb2FkX2RpciAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotK3sKLSsgIGNoYXIgKnM7 Ci0rCi0rICBpZiAoYXJncyA9PSBOVUxMIHx8ICphcmdzID09IDApCi0rICAgIGVycm9yIChfKCJE aXJlY3RvcnkgYXJndW1lbnQgcmVxdWlyZWQuIikpOwotKwotKyAgcyA9IHhzdHJwcmludGYgKCIl cyVjJXMiLCBhdXRvX2xvYWRfZGlyLCBESVJOQU1FX1NFUEFSQVRPUiwgYXJncyk7Ci0rICB4ZnJl ZSAoYXV0b19sb2FkX2Rpcik7Ci0rICBhdXRvX2xvYWRfZGlyID0gczsKLSt9Ci0rCi0gLyogSW1w bGVtZW50YXRpb24gZm9yIGZpbGVuYW1lX2lzX2luX3BhdHRlcm4gb3ZlcndyaXRpbmcgdGhlIGNh bGxlcidzIEZJTEVOQU1FCi0gICAgYW5kIFBBVFRFUk4uICAqLwotIAotQEAgLTEyOTUsNiArMTMx MSwxNSBAQCBhY2Nlc3MgdGhlIGN1cnJlbnQgZnVsbCBsaXN0IHNldHRpbmcuIiksCi0gCQkgJmNt ZGxpc3QpOwotICAgc2V0X2NtZF9jb21wbGV0ZXIgKGNtZCwgZmlsZW5hbWVfY29tcGxldGVyKTsK LSAKLSsgIGNtZCA9IGFkZF9jbWQgKCJhZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5Iiwg Y2xhc3Nfc3VwcG9ydCwKLSsJCSBhZGRfYXV0b19sb2FkX2RpciwKLSsJCSBfKCJBZGQgZW50cmll cyB0byB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyBmcm9tIHdoaWNoIHRvIGxvYWQgIgotKwkJICAg ImF1dG8tbG9hZGVkIHNjcmlwdHMuXG5cCi0rU2VlIHRoZSBjb21tYW5kcyAnc2V0IGF1dG8tbG9h ZCBzY3JpcHRzLWRpcmVjdG9yeScgYW5kXG5cCi0rJ3Nob3cgYXV0by1sb2FkIHNjcmlwdHMtZGly ZWN0b3J5JyB0byBhY2Nlc3MgdGhlIGN1cnJlbnQgZnVsbCBsaXN0IHNldHRpbmcuIiksCi0rCQkg JmNtZGxpc3QpOwotKyAgc2V0X2NtZF9jb21wbGV0ZXIgKGNtZCwgZmlsZW5hbWVfY29tcGxldGVy KTsKLSsKLSAgIGFkZF9zZXRzaG93X2Jvb2xlYW5fY21kICgiYXV0by1sb2FkIiwgY2xhc3NfbWFp bnRlbmFuY2UsCi0gCQkJICAgJmRlYnVnX2F1dG9fbG9hZCwgXygiXAotIFNldCBhdXRvLWxvYWQg dmVyaWZpY2F0aW9ucyBkZWJ1Z2dpbmcuIiksIF8oIlwKLUluZGV4OiBnZGItNy42LjEvZ2RiL2Rv Yy9nZGIudGV4aW5mbwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuMS5vcmlnL2dkYi9kb2MvZ2Ri LnRleGluZm8KLSsrKyBnZGItNy42LjEvZ2RiL2RvYy9nZGIudGV4aW5mbwotQEAgLTIxOTI5LDYg KzIxOTI5LDggQEAgVGhlc2UgYXJlIEB2YWx1ZXtHREJOfSBjb250cm9sIGNvbW1hbmRzCi0gQHRh YiBDb250cm9sIGZvciBAdmFsdWV7R0RCTn0gYXV0by1sb2FkZWQgc2NyaXB0cyBsb2NhdGlvbi4K LSBAaXRlbSBAeHJlZntzaG93IGF1dG8tbG9hZCBzY3JpcHRzLWRpcmVjdG9yeX0uCi0gQHRhYiBT aG93IEB2YWx1ZXtHREJOfSBhdXRvLWxvYWRlZCBzY3JpcHRzIGxvY2F0aW9uLgotK0BpdGVtIEB4 cmVme2FkZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3Rvcnl9LgotK0B0YWIgQWRkIGRpcmVjdG9y eSBmb3IgYXV0by1sb2FkZWQgc2NyaXB0cyBsb2NhdGlvbiBsaXN0LgotIEBpdGVtIEB4cmVme3Nl dCBhdXRvLWxvYWQgbG9jYWwtZ2RiaW5pdH0uCi0gQHRhYiBDb250cm9sIGZvciBpbml0IGZpbGUg aW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgotIEBpdGVtIEB4cmVme3Nob3cgYXV0by1sb2FkIGxv Y2FsLWdkYmluaXR9LgotQEAgLTI3MjEzLDYgKzI3MjE1LDEyIEBAIHRvIHRoZSBAZW52e1BBVEh9 IGVudmlyb25tZW50IHZhcmlhYmxlLgotIEBraW5kZXggc2hvdyBhdXRvLWxvYWQgc2NyaXB0cy1k aXJlY3RvcnkKLSBAaXRlbSBzaG93IGF1dG8tbG9hZCBzY3JpcHRzLWRpcmVjdG9yeQotIFNob3cg QHZhbHVle0dEQk59IGF1dG8tbG9hZGVkIHNjcmlwdHMgbG9jYXRpb24uCi0rCi0rQGFuY2hvcnth ZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5fQotK0BraW5kZXggYWRkLWF1dG8tbG9hZC1z Y3JpcHRzLWRpcmVjdG9yeQotK0BpdGVtIGFkZC1hdXRvLWxvYWQtc2NyaXB0cy1kaXJlY3Rvcnkg QHJ7W31AdmFye2RpcmVjdG9yaWVzfUBye119Ci0rQWRkIGFuIGVudHJ5IChvciBsaXN0IG9mIGVu dHJpZXMpIHRvIHRoZSBsaXN0IG9mIGF1dG8tbG9hZGVkIHNjcmlwdHMgbG9jYXRpb25zLgotK011 bHRpcGxlIGVudHJpZXMgbWF5IGJlIGRlbGltaXRlZCBieSB0aGUgaG9zdCBwbGF0Zm9ybSBwYXRo IHNlcGFyYXRvciBpbiB1c2UuCi0gQGVuZCB0YWJsZQotIAotIEB2YWx1ZXtHREJOfSBkb2VzIG5v dCB0cmFjayB3aGljaCBmaWxlcyBpdCBoYXMgYWxyZWFkeSBhdXRvLWxvYWRlZCB0aGlzIHdheS4K CmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoIGIvZ2RiLXJo Yno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAppbmRleCAxOWM1NDdkLi4yOGU2YWJjIDEwMDY0 NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMSArNDYzLDExIEBAIENvbnRlbnQt VHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250 ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtbWFpbi5wYXRjaAog Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCTIwMTQtMDYt MjQgMTY6MDc6MjcuMjQ1OTg2ODc1ICswMjAwCi1AQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgc3Ry dWN0IHR5cGUgKmRlc2NfYm91bmRzX3R5cGUgKHN0CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi9hZGEtbGFuZy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTA4MzE4NzE3ICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQz LjE2NDMyNjc1MiArMDEwMAorQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpk ZXNjX2JvdW5kc190eXBlIChzdAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91bmRz IChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC00NzYsNyArNDc2LDcgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMgaW50IGZhdF9wbnRyX2JvdW5k c19iaXRzaXplIChzdHJ1Y3QgdHlwZSAqKTsKICAKLUBAIC04NiwxMyArODYsMTMgQEAgc3RhdGlj IHN0cnVjdCB0eXBlICpkZXNjX2RhdGFfdGFyZ2V0X3R5cAorQEAgLTgyLDEzICs4MiwxMyBAQCBz dGF0aWMgc3RydWN0IHR5cGUgKmRlc2NfZGF0YV90YXJnZXRfdHlwCiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqZGVzY19kYXRhIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC00OTIsNyArNDkyLDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMg aW50IGRlc2NfYm91bmRfYml0c2l6ZSAoc3RydWN0IHR5cGUgKiwgaW50LCBpbnQpOwogIAotQEAg LTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnN0YXRpY191bndyYXBfdHlwZSAo CitAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc3RhdGljX3Vud3JhcF90 eXBlICgKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICp1bndyYXBfdmFsdWUgKHN0cnVjdCB2YWx1 ZSAqKTsKICAKQEAgLTUwMSw3ICs1MDEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVjb2RlX2NvbnN0cmFpbmVk X3BhY2tlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAKLUBAIC0xODcsNyArMTg3LDgg QEAgc3RhdGljIGludCBhZGFfaXNfdW5jb25zdHJhaW5lZF9wYWNrZWRfYQorQEAgLTE4Myw3ICsx ODMsOCBAQCBzdGF0aWMgaW50IGFkYV9pc191bmNvbnN0cmFpbmVkX3BhY2tlZF9hCiAgc3RhdGlj IHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0X3BhY2tlZCAoc3RydWN0IHZhbHVlICosIGlu dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dmFsdWUgKiopOwogIApAQCAtNTExLDcgKzUxMSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqY29lcmNlX3Vuc3Bl Y192YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7Ci1AQCAtMjE1LDE0ICsyMTYs MTQgQEAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqdmFsdWVfdmFsX2F0ciAoc3RydQorQEAgLTIxMSwx NCArMjEyLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZhbF9hdHIgKHN0cnUKICBz dGF0aWMgc3RydWN0IHN5bWJvbCAqc3RhbmRhcmRfbG9va3VwIChjb25zdCBjaGFyICosIGNvbnN0 IHN0cnVjdCBibG9jayAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWFpbl9lbnVtKTsKICAKQEAgLTUzMCwxNiArNTMwLDE2IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYWRhX3Rv X2ZpeGVkX3ZhbHVlX2NyZWF0ZSAoc3RydWN0IHR5cGUgKiwgQ09SRV9BRERSLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2YWx1ZSAqKTsK LUBAIC0yMzgsNyArMjM5LDcgQEAgc3RhdGljIHZvaWQgYWRhX2xhbmd1YWdlX2FyY2hfaW5mbyAo c3RydQotIAotIHN0YXRpYyB2b2lkIGNoZWNrX3NpemUgKGNvbnN0IHN0cnVjdCB0eXBlICopOwor QEAgLTIzMiw3ICsyMzMsNyBAQCBzdGF0aWMgaW50IGFkYV9pc19kaXJlY3RfYXJyYXlfdHlwZSAo c3RyCisgc3RhdGljIHZvaWQgYWRhX2xhbmd1YWdlX2FyY2hfaW5mbyAoc3RydWN0IGdkYmFyY2gg KiwKKyAJCQkJICAgIHN0cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKik7CiAgCiAtc3RhdGljIHN0 cnVjdCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50LCBzdHJ1Y3QgdmFsdWUgKiwg aW50LAogK3N0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmllbGQgKExPTkdF U1QsIHN0cnVjdCB2YWx1ZSAqLCBMT05HRVNULAogIAkJCQkJICAgICBzdHJ1Y3QgdHlwZSAqKTsK ICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICphc3NpZ25fYWdncmVnYXRlIChzdHJ1Y3QgdmFsdWUg Kiwgc3RydWN0IHZhbHVlICosIAotQEAgLTY5NCw3ICs2OTUsNyBAQCBjb2VyY2VfdW5zcGVjX3Zh bF90b190eXBlIChzdHJ1Y3QgdmFsdWUKK0BAIC02OTUsNyArNjk2LDcgQEAgY29lcmNlX3Vuc3Bl Y192YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlCiAgfQogIAogIHN0YXRpYyBjb25zdCBnZGJfYnl0 ZSAqCkBAIC01NDgsNyArNTQ4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fk YS1sYW5nLmMKICB7CiAgICBpZiAodmFsYWRkciA9PSBOVUxMKQogICAgICByZXR1cm4gTlVMTDsK LUBAIC03MDMsNyArNzA0LDcgQEAgY29uZF9vZmZzZXRfaG9zdCAoY29uc3QgZ2RiX2J5dGUgKnZh bGFkZAorQEAgLTcwNCw3ICs3MDUsNyBAQCBjb25kX29mZnNldF9ob3N0IChjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkCiAgfQogIAogIHN0YXRpYyBDT1JFX0FERFIKQEAgLTU1Nyw3ICs1NTcsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIHsKICAgIGlmIChhZGRy ZXNzID09IDApCiAgICAgIHJldHVybiAwOwotQEAgLTE3MTEsNyArMTcxMiw3IEBAIGRlc2NfYm91 bmRzIChzdHJ1Y3QgdmFsdWUgKmFycikKK0BAIC0xNzEyLDcgKzE3MTMsNyBAQCBkZXNjX2JvdW5k cyAoc3RydWN0IHZhbHVlICphcnIpCiAgLyogSWYgVFlQRSBpcyB0aGUgdHlwZSBvZiBhbiBhcnJh eS1kZXNjcmlwdG9yIChmYXQgcG9pbnRlciksICB0aGUgYml0CiAgICAgcG9zaXRpb24gb2YgdGhl IGZpZWxkIGNvbnRhaW5pbmcgdGhlIGFkZHJlc3Mgb2YgdGhlIGJvdW5kcyBkYXRhLiAgKi8KICAK QEAgLTU2Niw3ICs1NjYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxh bmcuYwogIGZhdF9wbnRyX2JvdW5kc19iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAg IHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAxKTsKLUBA IC0xNzc3LDcgKzE3NzgsNyBAQCBkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqYXJyKQorQEAgLTE3 NzgsNyArMTc3OSw3IEBAIGRlc2NfZGF0YSAoc3RydWN0IHZhbHVlICphcnIpCiAgLyogSWYgVFlQ RSBpcyB0aGUgdHlwZSBvZiBhbiBhcnJheS1kZXNjcmlwdG9yIChmYXQgcG9pbnRlciksIHRoZSBi aXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBvZiB0 aGUgZGF0YS4gICovCiAgCkBAIC01NzUsNyArNTc1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2FkYS1sYW5nLmMKICBmYXRfcG50cl9kYXRhX2JpdHBvcyAoc3RydWN0IHR5cGUg KnR5cGUpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAo dHlwZSksIDApOwotQEAgLTE4MTIsNyArMTgxMyw3IEBAIGRlc2Nfb25lX2JvdW5kIChzdHJ1Y3Qg dmFsdWUgKmJvdW5kcywgaW4KK0BAIC0xODEzLDcgKzE4MTQsNyBAQCBkZXNjX29uZV9ib3VuZCAo c3RydWN0IHZhbHVlICpib3VuZHMsIGluCiAgICAgb2YgdGhlIEl0aCBsb3dlciBib3VuZCBzdG9y ZWQgaW4gaXQsIGlmIFdISUNIIGlzIDAsIGFuZCB0aGUgSXRoIHVwcGVyCiAgICAgYm91bmQsIGlm IFdISUNIIGlzIDEuICBUaGUgZmlyc3QgYm91bmQgaXMgST0xLiAgKi8KICAKQEAgLTU4NCw3ICs1 ODQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIGRlc2Nf Ym91bmRfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGksIGludCB3aGljaCkKICB7CiAg ICByZXR1cm4gVFlQRV9GSUVMRF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMiAqIGkg KyB3aGljaCAtIDIpOwotQEAgLTIwMDIsNyArMjAwMyw3IEBAIGFkYV90eXBlX29mX2FycmF5IChz dHJ1Y3QgdmFsdWUgKmFyciwgaW4KK0BAIC0yMDAzLDcgKzIwMDQsNyBAQCBhZGFfdHlwZV9vZl9h cnJheSAoc3RydWN0IHZhbHVlICphcnIsIGluCiAgCSAgICAgICAgIHplcm8sIGFuZCBkb2VzIG5v dCBuZWVkIHRvIGJlIHJlY29tcHV0ZWQuICAqLwogIAkgICAgICBpZiAobG8gPCBoaSkKICAJCXsK QEAgLTU5Myw4ICs1OTMsOCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxh bmcuYwogIAkJICAgICAgICAoaGkgLSBsbyArIDEpICogVFlQRV9GSUVMRF9CSVRTSVpFIChlbHRf dHlwZSwgMCk7CiAgCiAgCQkgIFRZUEVfTEVOR1RIIChhcnJheV90eXBlKSA9IChhcnJheV9iaXRz aXplICsgNykgLyA4OwotQEAgLTIxNTQsNyArMjE1NSw3IEBAIGRlY29kZV9wYWNrZWRfYXJyYXlf Yml0c2l6ZSAoc3RydWN0IHR5cGUKLSAgICBpbiBiaXRzLiAgKi8KK0BAIC0yMTYzLDcgKzIxNjQs NyBAQCBkZWNvZGVfcGFja2VkX2FycmF5X2JpdHNpemUgKHN0cnVjdCB0eXBlCisgICAgdGhlIGxl bmd0aCBpcyBhcmJpdHJhcnkuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAtY29uc3Ry YWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBsb25nICplbHRfYml0 cykKQEAgLTYwMiw3ICs2MDIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRh LWxhbmcuYwogIHsKICAgIHN0cnVjdCB0eXBlICpuZXdfZWx0X3R5cGU7CiAgICBzdHJ1Y3QgdHlw ZSAqbmV3X3R5cGU7Ci1AQCAtMjIwNiw3ICsyMjA3LDcgQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3Bh Y2tlZF9hcnJheV90eXBlIChzdAorQEAgLTIyMTcsNyArMjIxOCw3IEBAIGRlY29kZV9jb25zdHJh aW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3QKICAgIGNoYXIgKm5hbWU7CiAgICBjb25zdCBjaGFy ICp0YWlsOwogICAgc3RydWN0IHR5cGUgKnNoYWRvd190eXBlOwpAQCAtNjExLDcgKzYxMSw3IEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgCiAgICBpZiAoIXJh d19uYW1lKQogICAgICByYXdfbmFtZSA9IGFkYV90eXBlX25hbWUgKGRlc2NfYmFzZV90eXBlICh0 eXBlKSk7Ci1AQCAtMjI3Nyw3ICsyMjc4LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9h cnJheSAoc3RydWN0CitAQCAtMjI4OCw3ICsyMjg5LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3Bh Y2tlZF9hcnJheSAoc3RydWN0CiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAgSW4gb3JkZXIg dG8gaW50ZXJwcmV0IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1c3RpZmllZCkg cGFja2VkIGFycmF5IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZpcnN0IGxlZnQt anVzdGlmeSBpdC4gICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBVTE9OR0VTVCBtb2Q7CiAgCiAgICAgICAgbW9k ID0gYWRhX21vZHVsdXMgKHZhbHVlX3R5cGUgKGFycikpIC0gMTsKLUBAIC0yMzc4LDE1ICsyMzgw LDE2IEBAIGhhc19uZWdhdGl2ZXMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTIzODksMTUgKzIz OTEsMTYgQEAgaGFzX25lZ2F0aXZlcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgc3RydWN0IHZh bHVlICoKICBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2YWx1ZSAqb2Jq LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTY0NCw3ICs2NDQsNyBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnl0ZSBvZiBzb3VyY2UgdGhhdCBhcmUgdW51c2VkICovCiAgICAgIGFjY3Vt U2l6ZTsgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgbWVhbmluZ2Z1bCBiaXRzIGluIGFj Y3VtICovCiAgICB1bnNpZ25lZCBjaGFyICpieXRlczsgICAgICAgICAvKiBGaXJzdCBieXRlIGNv bnRhaW5pbmcgZGF0YSB0byB1bnBhY2sgKi8KLUBAIC0yNDIwLDcgKzI0MjMsNyBAQCBhZGFfdmFs dWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjQzMSw3ICsyNDM0LDcgQEAg YWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgogIAogICAgaWYgKG9iaiAh PSBOVUxMKQogICAgICB7CkBAIC02NTMsNyArNjUzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0 aW9uICh2LCBvYmopOwogICAgICAgIHNldF92YWx1ZV9iaXRwb3MgKHYsIGJpdF9vZmZzZXQgKyB2 YWx1ZV9iaXRwb3MgKG9iaikpOwotQEAgLTI1MzYsNyArMjUzOSw3IEBAIGFkYV92YWx1ZV9wcmlt aXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0yNTQ3LDcgKzI1NTAsNyBAQCBhZGFfdmFs dWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CiAgICAgbm90IG92ZXJsYXAuICAqLwog IHN0YXRpYyB2b2lkCiAgbW92ZV9iaXRzIChnZGJfYnl0ZSAqdGFyZ2V0LCBpbnQgdGFyZ19vZmZz ZXQsIGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsCkBAIC02NjIsNyArNjYyLDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICB1bnNpZ25lZCBpbnQgYWNj dW0sIG1hc2s7CiAgICBpbnQgYWNjdW1fYml0cywgY2h1bmtfc2l6ZTsKLUBAIC0yNjI2LDcgKzI2 MjksNyBAQCBhZGFfdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzCitAQCAtMjYz Nyw3ICsyNjQwLDcgQEAgYWRhX3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgcwog ICAgICB7CiAgICAgICAgaW50IGxlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQogIAkJICsgYml0 cyArIEhPU1RfQ0hBUl9CSVQgLSAxKSAvIEhPU1RfQ0hBUl9CSVQ7CkBAIC02NzEsNyArNjcxLDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBnZGJf Ynl0ZSAqYnVmZmVyID0gYWxsb2NhIChsZW4pOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsOwog ICAgICAgIENPUkVfQUREUiB0b19hZGRyID0gdmFsdWVfYWRkcmVzcyAodG92YWwpOwotQEAgLTI2 NzEsNyArMjY3NCw3IEBAIHZhbHVlX2Fzc2lnbl90b19jb21wb25lbnQgKHN0cnVjdCB2YWx1ZQor QEAgLTI2ODIsNyArMjY4NSw3IEBAIHZhbHVlX2Fzc2lnbl90b19jb21wb25lbnQgKHN0cnVjdCB2 YWx1ZQogICAgICAoTE9OR0VTVCkgICh2YWx1ZV9hZGRyZXNzIChjb21wb25lbnQpIC0gdmFsdWVf YWRkcmVzcyAoY29udGFpbmVyKSk7CiAgICBpbnQgYml0X29mZnNldF9pbl9jb250YWluZXIgPSAK ICAgICAgdmFsdWVfYml0cG9zIChjb21wb25lbnQpIC0gdmFsdWVfYml0cG9zIChjb250YWluZXIp OwpAQCAtNjgwLDcgKzY4MCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEt bGFuZy5jCiAgICAKICAgIHZhbCA9IHZhbHVlX2Nhc3QgKHZhbHVlX3R5cGUgKGNvbXBvbmVudCks IHZhbCk7CiAgCi1AQCAtNDE5Niw3ICs0MTk5LDcgQEAgZW5zdXJlX2x2YWwgKHN0cnVjdCB2YWx1 ZSAqdmFsKQorQEAgLTQyMTksNyArNDIyMiw3IEBAIGVuc3VyZV9sdmFsIChzdHJ1Y3QgdmFsdWUg KnZhbCkKICAgIGlmIChWQUxVRV9MVkFMICh2YWwpID09IG5vdF9sdmFsCiAgICAgICAgfHwgVkFM VUVfTFZBTCAodmFsKSA9PSBsdmFsX2ludGVybmFsdmFyKQogICAgICB7CkBAIC02ODksNyArNjg5 LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBj b25zdCBDT1JFX0FERFIgYWRkciA9CiAgICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1ZV9hbGxv Y2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAobGVuKSk7CiAgCi1AQCAtNDI3MCw3ICs0MjczLDcgQEAg c3RhdGljIENPUkVfQUREUgorQEAgLTQyOTMsNyArNDI5Niw3IEBAIHN0YXRpYyBDT1JFX0FERFIK ICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSkK ICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwpA QCAtNjk4LDcgKzY5OCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFu Zy5jCiAgICBnZGJfYnl0ZSAqYnVmID0gYWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERSIGFkZHI7 CiAgCi1AQCAtNjM3NCw3ICs2Mzc3LDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2Fk ZHJlc3MgKHN0cgorQEAgLTY0MDUsNyArNjQwOCw3IEBAIHZhbHVlX3RhZ19mcm9tX2NvbnRlbnRz X2FuZF9hZGRyZXNzIChzdHIKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MpCiAg ewpAQCAtNzA3LDcgKzcwNyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEt bGFuZy5jCiAgICBzdHJ1Y3QgdHlwZSAqdGFnX3R5cGU7CiAgCiAgICBpZiAoZmluZF9zdHJ1Y3Rf ZmllbGQgKCJfdGFnIiwgdHlwZSwgMCwgJnRhZ190eXBlLCAmdGFnX2J5dGVfb2Zmc2V0LAotQEAg LTY4MzksNyArNjg0Miw3IEBAIGFkYV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwgc3RydWN0IHR5 cGUKK0BAIC02ODcwLDcgKzY4NzMsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0 cnVjdCB0eXBlCiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFja2VkIHZhbHVlcyBv ZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03MTYs NyArNzE2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAgewogICAg c3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNjg1MSw3ICs2ODU0LDcgQEAgYWRhX3ZhbHVlX3ByaW1p dGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNjg4Miw3ICs2ODg1LDcgQEAgYWRhX3ZhbHVl X3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCiAgCiAgICBpZiAoVFlQRV9GSUVMRF9CSVRT SVpFIChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkKICAgICAgewpAQCAtNzI1LDcgKzcyNSw3IEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGJp dF9zaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAgCiAgICAg ICAgcmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29u dGVudHMgKGFyZzEpLAotQEAgLTY4NzgsOSArNjg4MSw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVf ZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTY5MDksOSArNjkxMiw5IEBAIGFkYV92YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBvdGhl cndpc2UuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3MzcsNyBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9wKQogIHsK ICAgIGludCBpOwotQEAgLTY4OTgsOCArNjkwMSw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChjb25z dCBjaGFyICpuYW1lLCBzdHIKK0BAIC02OTI5LDggKzY5MzIsOCBAQCBmaW5kX3N0cnVjdF9maWVs ZCAoY29uc3QgY2hhciAqbmFtZSwgc3RyCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklF TERTICh0eXBlKTsgaSArPSAxKQogICAgICB7CkBAIC03NDgsNyArNzQ4LDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBjaGFyICp0X2Zp ZWxkX25hbWUgPSBUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpOwogIAogICAgICAgIGlmICh0X2Zp ZWxkX25hbWUgPT0gTlVMTCkKLUBAIC02OTY5LDcgKzY5NzIsNyBAQCBudW1fdmlzaWJsZV9maWVs ZHMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTcwMDAsNyArNzAwMyw3IEBAIG51bV92aXNpYmxl X2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICAgU2VhcmNoZXMgcmVjdXJzaXZlbHkgdGhy b3VnaCB3cmFwcGVyIGZpZWxkcyAoZS5nLiwgJ19wYXJlbnQnKS4gICovCiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqCkBAIC03NTcsNyArNzU3LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUg KnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzAwMiw3ICs3MDA1LDcgQEAgYWRhX3NlYXJjaF9z dHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTcwMzMsNyArNzAzNiw3IEBAIGFkYV9z ZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgICAgICAgICAgaW50IGo7CiAg ICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5cGVkZWYgKFRZ UEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBAIC03NjYsNyArNzY2LDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICAgICAg Zm9yIChqID0gMDsgaiA8IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0gMSkKICAgICAg ICAgICAgICB7Ci1AQCAtNzAyMCw4ICs3MDIzLDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQg KGNoYXIgKm5hbWUsIHN0cgorQEAgLTcwNTEsOCArNzA1NCw4IEBAIGFkYV9zZWFyY2hfc3RydWN0 X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTc3Nyw3 ICs3NzcsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIAog IAogIC8qIFJldHVybiBmaWVsZCAjSU5ERVggaW4gQVJHLCB3aGVyZSB0aGUgaW5kZXggaXMgdGhh dCByZXR1cm5lZCBieQotQEAgLTcwMzAsNyArNzAzMyw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUg KmFkYV9pbmRleF9zdHJ1Y3RfZmkKK0BAIC03MDYxLDcgKzcwNjQsNyBAQCBzdGF0aWMgc3RydWN0 IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCiAgICogSWYgZm91bmQsIHJldHVybiB2YWx1ZSwg ZWxzZSByZXR1cm4gTlVMTC4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03ODYs NyArNzg2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAJ CQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2luZGV4X3N0cnVjdF9maWVs ZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03MDQyLDcgKzcwNDUsNyBAQCBh ZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitAQCAtNzA3Myw3ICs3MDc2 LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1YwogICAqICpJTkRF WF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc5NSw3ICs3OTUsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwogIAkJCSAgc3RydWN0IHR5 cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzEzMiw3ICs3MTM1LDggQEAgYWRhX3ZhbHVl X3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAgLTcxNjMsNyArNzE2Niw4IEBAIGFk YV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFyZywKICAgICAgdiA9IGFkYV9zZWFy Y2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7CkBAIC04 MDUsNyArODA1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMK ICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAgICAgICBDT1JFX0FERFIgYWRkcmVz czsKICAKLUBAIC03NDQ5LDggKzc0NTMsOCBAQCBhZGFfY29lcmNlX3JlZiAoc3RydWN0IHZhbHVl ICp2YWwwKQorQEAgLTc0ODAsOCArNzQ4NCw4IEBAIGFkYV9jb2VyY2VfcmVmIChzdHJ1Y3QgdmFs dWUgKnZhbDApCiAgLyogUmV0dXJuIE9GRiByb3VuZGVkIHVwd2FyZCBpZiBuZWNlc3NhcnkgdG8g YSBtdWx0aXBsZSBvZgogICAgIEFMSUdOTUVOVCAoYSBwb3dlciBvZiAyKS4gICovCiAgCkBAIC04 MTYsNyArODE2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMK ICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYgfihhbGlnbm1lbnQgLSAxKTsK ICB9Ci1AQCAtNzgzMiwxMCArNzgzNiw5IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRf dHlwZV8xIChzdHIKK0BAIC03ODYzLDEwICs3ODY3LDkgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVk X3JlY29yZF90eXBlXzEgKHN0cgogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAo KTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAgLTgy OSw3ICs4MjksNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuYwog ICAgaW50IGY7CiAgCiAgICAvKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHRoaXMg cmVjb3JkIHR5cGUgdGhhdCBhcmUgZ29pbmcKLUBAIC03OTEzLDcgKzc5MTYsNyBAQCBhZGFfdGVt cGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtNzk0NCw3ICs3OTQ3LDcgQEAg YWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogIAkgICAgIHRoYXQgZm9s bG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWduZXJfdHlwZSAoZmllbGRfdHlw ZSkpCiAgCSAgICB7CkBAIC04MzgsNyArODM4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRfdmFsYWRkciA9IGNvbmRfb2Zmc2V0 X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAgCSAgICAgIGZpZWxkX2FkZHJl c3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxkX29mZnNldCk7Ci1A QCAtODA0OSwxMSArODA1MiwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVf MSAoc3RyCitAQCAtODA4MCwxMSArODA4MywxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVj b3JkX3R5cGVfMSAoc3RyCiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDApCiAgICAgIHsK ICAgICAgICBpZiAoVFlQRV9OQU1FIChydHlwZSkpCkBAIC04NTQsNyArODU0LDcgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAgZWxzZQogICAg ICB7Ci1AQCAtODM5Myw3ICs4Mzk2LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUwLAorQEAgLTg1MDgsNyArODUxMSw4IEBAIHRvX2ZpeGVkX2FycmF5X3R5cGUgKHN0 cnVjdCB0eXBlICp0eXBlMCwKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBhY2tlZCkgYXJy YXkgdHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFycmF5IGVsZW1l bnRzIG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVuZ3RoIG5lZWRz IHRvIGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAgLTg2NCwxMSAr ODY0LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFuZy5jCiAgICAg ICAgaW50IGVsdF9iaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7CiAgCiAg ICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFIChyZXN1bHQsIDApID0gVFlQRV9GSUVMRF9CSVRTSVpF ICh0eXBlMCwgMCk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuaAor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxNC0wNi0xMyAwMzo1 OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtbGFu Zy5oCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjQ1OTg2ODc1ICswMjAwCi1AQCAtMTgxLDcgKzE4MSw3 IEBAIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUwOTMx ODcyMiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FkYS1sYW5nLmgJMjAxNS0w MS0wNiAyMjo0NDo0My4xNjQzMjY3NTIgKzAxMDAKK0BAIC0xNzksNyArMTc5LDcgQEAgZXh0ZXJu IHZvaWQgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlCiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50 X3R5cGVkZWYgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpuZXdfc3ltYm9sLAog IAkJCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKTsKICAKQEAgLTg3Nyw3ICs4NzcsNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuaAogIAkJCSAgIHN0cnVj dCB1aV9maWxlICosIGludCwKICAJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLUBAIC0xOTYsNyArMTk2LDcgQEAg ZXh0ZXJuIHZvaWQgYWRhX2VtaXRfY2hhciAoaW50LCBzdHJ1Y3QgdAorQEAgLTE5NCw3ICsxOTQs NyBAQCBleHRlcm4gdm9pZCBhZGFfZW1pdF9jaGFyIChpbnQsIHN0cnVjdCB0CiAgZXh0ZXJuIHZv aWQgYWRhX3ByaW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsK ICAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICosIHN0cnVjdCB0 eXBlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC04ODYsNyArODg2LDcgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRfYWN0dWFsIChz dHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNjcsNyArMjY3LDcgQEAgZXh0ZXJuIGludCBhZGFf aXNfY29uc3RyYWluZWRfcGFja2VkX2FycgorQEAgLTI2NSw3ICsyNjUsNyBAQCBleHRlcm4gaW50 IGFkYV9pc19jb25zdHJhaW5lZF9wYWNrZWRfYXJyCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq YWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCQkg ICAgIGNvbnN0IGdkYl9ieXRlICosCkBAIC04OTUsMTEgKzg5NSwxMSBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvYWRhLWxhbmcuaAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0 cnVjdCB0eXBlICphZGFfY29lcmNlX3RvX3NpbXBsZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAq KTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdHlwZXByaW50LmMKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hZGEtdHlwZXByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE0LTA2LTEz IDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fk YS10eXBlcHJpbnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI0NTk4Njg3NSArMDIwMAotQEAgLTg2 NSw4ICs4NjUsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25zCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0wMS0w NiAyMjo0NDo0MS41MDkzMTg3MjIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9h ZGEtdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjUzMjY3NTcgKzAxMDAKK0BAIC04 ODMsOCArODgzLDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucwog IAkgICAgY29uc3QgY2hhciAqbmFtZSA9IGFkYV90eXBlX25hbWUgKHR5cGUpOwogIAogIAkgICAg aWYgKCFhZGFfaXNfcmFuZ2VfdHlwZV9uYW1lIChuYW1lKSkKQEAgLTkxMCw3ICs5MTAsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXR5cGVwcmludC5jCiAgCSAgICBlbHNl CiAgCSAgICAgIHsKICAJCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgInJhbmdlICIpOwotQEAg LTg4Nyw3ICs4ODcsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBjb25z CitAQCAtOTA1LDcgKzkwNSw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAs IGNvbnMKICAJICB9CiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RFX0ZMVDoKQEAgLTky MCwxMSArOTIwLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdHlwZXBy aW50LmMKICAJYnJlYWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cg PCAwKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS12YWxwcmludC5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYWRhLXZhbHByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTQtMDYtMTMg MDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRh LXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNDY5ODY4NzYgKzAyMDAKLUBAIC0zNSwx MSArMzUsMTEgQEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FkYS12YWxwcmlu dC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTEwMzE4NzI3ICswMTAwCisrKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvYWRhLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjUzMjY3NTcg KzAxMDAKK0BAIC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKICBz dGF0aWMgaW50IHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5 dGUgKiwKQEAgLTkzOCw3ICs5MzgsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv YWRhLXZhbHByaW50LmMKICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKik7 CiAgDAogIAotQEAgLTEzMSw3ICsxMzEsNyBAQCB2YWxfcHJpbnRfcGFja2VkX2FycmF5X2VsZW1l bnRzIChzdHJ1Y3QKK0BAIC0xMjksNyArMTI5LDcgQEAgdmFsX3ByaW50X3BhY2tlZF9hcnJheV9l bGVtZW50cyAoc3RydWN0CiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAg dW5zaWduZWQgbGVuOwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUsICppbmRleF90eXBlOwpAQCAt OTQ3LDcgKzk0Nyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdmFscHJp bnQuYwogICAgdW5zaWduZWQgbG9uZyBiaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBl LCAwKTsKICAgIHN0cnVjdCB2YWx1ZSAqbWFyayA9IHZhbHVlX21hcmsgKCk7CiAgICBMT05HRVNU IGxvdyA9IDA7Ci1AQCAtMjgwLDcgKzI4MCw3IEBAIGFkYV9lbWl0X2NoYXIgKGludCBjLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKK0BAIC0yNzgsNyArMjc4LDcgQEAgYWRhX2VtaXRfY2hhciAoaW50IGMs IHN0cnVjdCB0eXBlICp0eXBlLAogICAgIG9mIGEgY2hhcmFjdGVyLiAgKi8KICAKICBzdGF0aWMg aW50CkBAIC05NTYsNyArOTU2LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fk YS12YWxwcmludC5jCiAgCSBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcikKICB7CiAgICBpZiAo dHlwZV9sZW4gPT0gMSkKLUBAIC00NDIsMTEgKzQ0MiwxMSBAQCBhZGFfcHJpbnRfc2NhbGFyIChz dHJ1Y3QgdHlwZSAqdHlwZSwgTE9OCitAQCAtNDQwLDExICs0NDAsMTEgQEAgYWRhX3ByaW50X3Nj YWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgogIAogIHN0YXRpYyB2b2lkCiAgcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqc3RyaW5nLApAQCAtOTcwLDcgKzk3MCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9hZGEtdmFscHJpbnQuYwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0g MDsKICAgIGludCBpbl9xdW90ZXMgPSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwotQEAgLTQ2 MSw5ICs0NjEsOSBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CitA QCAtNDU5LDkgKzQ1OSw5IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1 Y3QKICAgICAgewogICAgICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2UgYXJlIGV4 YW1pbmluZwogICAgICAgICAgIHRvIHNlZSB3aGV0aGVyIGl0IGlzIHJlcGVhdGVkLiAgKi8KQEAg LTk4Miw3ICs5ODIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXZhbHBy aW50LmMKICAKICAgICAgICBRVUlUOwogIAotQEAgLTQ5NCw3ICs0OTQsOCBAQCBwcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CitAQCAtNDkyLDcgKzQ5Miw4IEBAIHByaW50 c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKICAJICBhZGFfZW1pdF9jaGFyIChj aGFyX2F0IChzdHJpbmcsIGksIHR5cGVfbGVuLCBieXRlX29yZGVyKSwKICAJCQkgZWx0dHlwZSwg c3RyZWFtLCAnXCcnLCB0eXBlX2xlbik7CiAgCSAgZnB1dHNfZmlsdGVyZWQgKCInIiwgc3RyZWFt KTsKQEAgLTk5Miw3ICs5OTIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRh LXZhbHByaW50LmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0 aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUBAIC01 MjIsNyArNTIzLDcgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAor QEAgLTUyMCw3ICs1MjEsNyBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3Ry dWN0CiAgCiAgdm9pZAogIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3Ry dWN0IHR5cGUgKnR5cGUsCkBAIC0xMDAxLDcgKzEwMDEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvYWRhLXZhbHByaW50LmMKICAJICAgICAgY29uc3QgY2hhciAqZW5jb2Rpbmcs IGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTUzMiwxMiArNTMzLDEyIEBAIGFkYV9wcmludHN0ciAo c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3QKK0BAIC01MzAsMTIgKzUzMSwxMiBAQCBhZGFfcHJp bnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0CiAgCiAgc3RhdGljIGludAogIHByaW50 X3ZhcmlhbnRfcGFydCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVsZF9udW0sCkBAIC0xMDE2 LDcgKzEwMTYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWRhLXZhbHByaW50 LmMKICAJCSAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpCiAgewogICAg c3RydWN0IHR5cGUgKnZhcl90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZF9udW0p OwotQEAgLTU3MywxMSArNTc0LDExIEBAIHByaW50X3ZhcmlhbnRfcGFydCAoc3RydWN0IHR5cGUg KnR5cGUsIGkKK0BAIC01NzEsMTEgKzU3MiwxMSBAQCBwcmludF92YXJpYW50X3BhcnQgKHN0cnVj dCB0eXBlICp0eXBlLCBpCiAgCiAgc3RhdGljIGludAogIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTAzMCw3ICsxMDMw LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkg ICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQogIHsKICAgIGludCBpLCBs ZW47Ci1AQCAtNjQ0LDcgKzY0NSw3IEBAIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUg KnR5cGUsIGMKK0BAIC02NDIsNyArNjQzLDcgQEAgcHJpbnRfZmllbGRfdmFsdWVzIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgYwogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIHsKQEAgLTEwMzksNyArMTAz OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkg ICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGkpOwogIAkgICAg ICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogIAotQEAgLTY5MCw4ICs2OTEsOCBA QCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNjg4LDggKzY4 OSw4IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICB7CiAgICBl bnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVf YXJjaCAodHlwZSkpOwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKTsKQEAgLTEwNTAsNyArMTA1MCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgLyogV2Uga25vdyB0aGF0IEVMVFRZUEUgY2Fubm90 IHBvc3NpYmx5IGJlIG51bGwsIGJlY2F1c2Ugd2UgYXNzdW1lCiAgICAgICB0aGF0IHdlJ3JlIGNh bGxlZCBvbmx5IHdoZW4gVFlQRSBpcyBhIHN0cmluZy1saWtlIHR5cGUuCi1AQCAtNzEwLDcgKzcx MSw3IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC03MDgs NyArNzA5LDcgQEAgYWRhX3ZhbF9wcmludF9zdHJpbmcgKHN0cnVjdCB0eXBlICp0eXBlLAogICAg ICAgZWxlbWVudHMgdXAgdG8gaXQuICAqLwogICAgaWYgKG9wdGlvbnMtPnN0b3BfcHJpbnRfYXRf bnVsbCkKICAgICAgewpAQCAtMTA1OSw3ICsxMDU5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAgICAgLyogTG9vayBmb3IgYSBOVUxMIGNo YXIuICAqLwogICAgICAgIGZvciAodGVtcF9sZW4gPSAwOwotQEAgLTEwNjksNyArMTA3MCw3IEBA IGFkYV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KK0BAIC0xMDczLDcgKzEw NzQsNyBAQCBhZGFfdmFsX3ByaW50X3JlZiAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCiAgCiAgc3Rh dGljIHZvaWQKICBhZGFfdmFsX3ByaW50XzEgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKQEAgLTEwNjgsNyArMTA2OCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTE1MCw3ICsx MTUxLDcgQEAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29ucworQEAgLTEx NTQsNyArMTE1NSw3IEBAIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMK ICAKICB2b2lkCiAgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLApAQCAtMTA3NywxMSArMTA3NywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvYWRhLXZhbHByaW50LmMKICAJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hbm5vdGF0ZS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMu b3JpZy9nZGIvYW5ub3RhdGUuYwkyMDE0LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAot KysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Fubm90YXRlLmMJMjAxNC0wNi0yNCAxNjowNzoy Ny4yNDY5ODY4NzYgKzAyMDAKLUBAIC01MjQsMjEgKzUyNCwyMSBAQCBhbm5vdGF0ZV9mcmFtZV9l bmQgKHZvaWQpCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hbm5vdGF0ZS5jCTIw MTUtMDEtMDYgMjI6NDQ6NDEuNTEwMzE4NzI3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYW5ub3RhdGUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE2NTMyNjc1NyArMDEwMAorQEAg LTU0MiwyMSArNTQyLDIxIEBAIGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCkKICB9CiAgDAogIHZv aWQKQEAgLTExMDcsMTAgKzExMDcsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2Fubm90YXRlLmMKICB9CiAgCiAgdm9pZAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2Fubm90YXRlLmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hbm5vdGF0ZS5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIw MTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvYW5ub3RhdGUuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI0Njk4Njg3NiArMDIwMAorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYW5ub3RhdGUuaAkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUxMDMxODcyNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Fubm90YXRl LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNjUzMjY3NTcgKzAxMDAKIEBAIC05Miw4ICs5Miw4IEBA IGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3NvdXJjZV9lbmQgKHYKICBleHRlcm4gdm9pZCBh bm5vdGF0ZV9mcmFtZV93aGVyZSAodm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVf ZW5kICh2b2lkKTsKQEAgLTExMjIsMTEgKzExMjIsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2Fubm90YXRlLmgKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAo dm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZWx0ICh2b2lkKTsKICBleHRlcm4gdm9pZCBh bm5vdGF0ZV9hcnJheV9zZWN0aW9uX2VuZCAodm9pZCk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvYXJtLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv YXJtLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmln L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAK LSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNC0wNi0yNCAx NjowNzoyNy4yNDY5ODY4NzYgKzAyMDAKLUBAIC0xMTg3LDcgKzExODcsNyBAQCBhcm1fbGludXhf cmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5v cmlnL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MTEzMTg3MzIgKzAx MDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wMS0w NiAyMjo0NDo0My4xNjYzMjY3NjIgKzAxMDAKK0BAIC0xMTg2LDcgKzExODYsNyBAQCBhcm1fbGlu dXhfcmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0CiAgICAgQUREUj8gICovCiAgc3RhdGlj IGludAogIGFybV9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLApAQCAtMTEzNSwxMSArMTEzNSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvYXJtLWxpbnV4LW5hdC5jCiAgewogICAgY29uc3Qgc3RydWN0IGFybV9saW51 eF9od2JwX2NhcCAqY2FwID0gYXJtX2xpbnV4X2dldF9od2JwX2NhcCAoKTsKICAgIENPUkVfQURE UiBtYXhfd3BfbGVuZ3RoLCBhbGlnbmVkX2FkZHI7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvYXgtZ2RiLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC1nZGIuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvYXgtZ2RiLmMJMjAx NC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9heC1nZGIuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI0Nzk4Njg3NyArMDIwMAotQEAgLTgz LDEyICs4MywxMiBAQCBzdGF0aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0IGdkYmFyCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9heC1nZGIuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUxMjMxODczNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LWdkYi5j CTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTY2MzI2NzYyICswMTAwCitAQCAtODIsMTIgKzgyLDEyIEBA IHN0YXRpYyB2b2lkIGdlbl90cmFjZWRfcG9wIChzdHJ1Y3QgZ2RiYXIKICBzdGF0aWMgdm9pZCBn ZW5fc2lnbl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0 YXRpYyB2b2lkIGdlbl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICop OwogIHN0YXRpYyB2b2lkIGdlbl9mZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5 cGUgKik7CkBAIC0xMTU0LDcgKzExNTQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvYXgtZ2RiLmMKICBzdGF0aWMgdm9pZCBnZW5fc3ltX29mZnNldCAoc3RydWN0IGFnZW50X2V4 cHIgKiwgc3RydWN0IHN5bWJvbCAqKTsKICBzdGF0aWMgdm9pZCBnZW5fdmFyX3JlZiAoc3RydWN0 IGdkYmFyY2ggKiwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSBzdHJ1Y3QgYXhzX3ZhbHVl ICp2YWx1ZSwgc3RydWN0IHN5bWJvbCAqdmFyKTsKLUBAIC0xMzYsMTUgKzEzNiwxNiBAQCBzdGF0 aWMgdm9pZCBnZW5fZGVyZWYgKHN0cnVjdCBhZ2VudF9leHByCitAQCAtMTM1LDE1ICsxMzUsMTYg QEAgc3RhdGljIHZvaWQgZ2VuX2RlcmVmIChzdHJ1Y3QgYWdlbnRfZXhwcgogIHN0YXRpYyB2b2lk IGdlbl9hZGRyZXNzX29mIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgYXhzX3ZhbHVlICop OwogIHN0YXRpYyB2b2lkIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAs IHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJCQkgICAgICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1 ZSwKQEAgLTExNzQsNyArMTE3NCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9h eC1nZGIuYwogIAkJCQkgICAgIHN0cnVjdCB0eXBlICp0eXBlKTsKICBzdGF0aWMgdm9pZCBnZW5f c3RydWN0X3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4 LAogIAkJCSAgICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwKLUBAIC01MzksNyArNTQwLDcgQEAg Z2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsIHN0cnVjdAorQEAgLTUzOCw3ICs1Mzks NyBAQCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CiAgICAgcmlnaHQg c2hpZnQgaXQgYnkgLURJU1RBTkNFIGJpdHMgaWYgRElTVEFOQ0UgPCAwLiAgVGhpcyBnZW5lcmF0 ZXMKICAgICB1bnNpZ25lZCAobG9naWNhbCkgcmlnaHQgc2hpZnRzLiAgKi8KICBzdGF0aWMgdm9p ZApAQCAtMTE4Myw3ICsxMTgzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2F4 LWdkYi5jCiAgewogICAgaWYgKGRpc3RhbmNlID4gMCkKICAgICAgewotQEAgLTU5Myw3ICs1OTQs NyBAQCBnZW5fZnJhbWVfbG9jYWxzX2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTkyLDcg KzU5Myw3IEBAIGdlbl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gKICAgICBw cm9ncmFtbWluZyBpbiBNTCwgaXQgd291bGQgYmUgY2xlYXJlciB3aHkgdGhlc2UgYXJlIHRoZSBz YW1lCiAgICAgdGhpbmcuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0xMTkyLDcgKzExOTIsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJdCB3b3Vs ZCBzdWZmaWNlIHRvIHNpbXBseSBwdXNoIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMK ICAgICAgIG1ha2VzIGl0IGVhc2llciB0byByZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZz ZXRzIGluIHRoZQotQEAgLTEyNDksNyArMTI1MCw3IEBAIGdlbl9hZGRyZXNzX29mIChzdHJ1Y3Qg YWdlbnRfZXhwciAqYXgsIHMKK0BAIC0xMjQ4LDcgKzEyNDksNyBAQCBnZW5fYWRkcmVzc19vZiAo c3RydWN0IGFnZW50X2V4cHIgKmF4LCBzCiAgc3RhdGljIHZvaWQKICBnZW5fYml0ZmllbGRfcmVm IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkgIHN0 cnVjdCBheHNfdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTEyMDEsNyArMTIw MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9heC1nZGIuYwogIHsKICAgIC8q IE5vdGUgdGhhdCBvcHNbaV0gZmV0Y2hlcyA4IDw8IGkgYml0cy4gICovCiAgICBzdGF0aWMgZW51 bSBhZ2VudF9vcCBvcHNbXQotQEAgLTEyODQsMTMgKzEyODUsMTMgQEAgZ2VuX2JpdGZpZWxkX3Jl ZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cAorQEAgLTEyODMsMTMgKzEyODQsMTMgQEAgZ2VuX2Jp dGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cAogIAogICAgLyogVGhlIGZpcnN0IGFu ZCBvbmUtYWZ0ZXItbGFzdCBiaXRzIGluIHRoZSBmaWVsZCwgYnV0IHJvdW5kZWQgZG93bgogICAg ICAgYW5kIHVwIHRvIGJ5dGUgYm91bmRhcmllcy4gICovCkBAIC0xMjIwLDcgKzEyMjAsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXgtZ2RiLmMKICAKICAgIC8qIFRoZSBpbmRl eCBpbiBvcHMgb2YgdGhlIG9wY29kZSB3ZSdyZSBjb25zaWRlcmluZy4gICovCiAgICBpbnQgb3A7 Ci1AQCAtMTQwOSw3ICsxNDEwLDcgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Np b24gKmV4cAorQEAgLTE0MDgsNyArMTQwOSw3IEBAIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBl eHByZXNzaW9uICpleHAKICBzdGF0aWMgdm9pZAogIGdlbl9wcmltaXRpdmVfZmllbGQgKHN0cnVj dCBleHByZXNzaW9uICpleHAsCiAgCQkgICAgIHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0 IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjI5LDcgKzEyMjksNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJcyB0aGlzIGEgYml0ZmllbGQ/ICAq LwogICAgaWYgKFRZUEVfRklFTERfUEFDS0VEICh0eXBlLCBmaWVsZG5vKSkKLUBAIC0xNDM0LDcg KzE0MzUsNyBAQCBnZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqCitAQCAt MTQzMyw3ICsxNDM0LDcgQEAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Npb24g KgogIHN0YXRpYyBpbnQKICBnZW5fc3RydWN0X3JlZl9yZWN1cnNpdmUgKHN0cnVjdCBleHByZXNz aW9uICpleHAsIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJCQkgIHN0cnVjdCBheHNfdmFsdWUg KnZhbHVlLApAQCAtMTIzOCwxMSArMTIzOCwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvYXgtZ2RiLmMKICB7CiAgICBpbnQgaSwgcnNsdDsKICAgIGludCBuYmFzZXMgPSBUWVBF X05fQkFTRUNMQVNTRVMgKHR5cGUpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2F4 LWdlbmVyYWwuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LWdlbmVyYWwuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvYXgtZ2VuZXJhbC5j CTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjQ3OTg2ODc3ICswMjAw Ci1AQCAtMTk1LDcgKzE5NSw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqeCwg aW50IG4KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjUxMjMxODczNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2F4LWdlbmVyYWwuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE2NzMyNjc2NyArMDEwMAorQEAg LTE5Myw3ICsxOTMsNyBAQCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBu CiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVj b3JkIE4gYnl0ZXMuICAqLwogIHZvaWQKQEAgLTEyNTEsMTAgKzEyNTEsMTAgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2F4LWdlbmVyYWwuYwogIHsKICAgIC8qIE4gbXVzdCBmaXQg aW4gYSBieXRlLiAgKi8KICAgIGlmIChuIDwgMCB8fCBuID4gMjU1KQotSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2F4LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9heC5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9heC5oCTIwMTQt MDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvYXguaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI0Nzk4Njg3NyArMDIwMAorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvYXguaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxMjMxODczNyAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F4LmgJMjAxNS0wMS0wNiAyMjo0NDo0 My4xNjczMjY3NjcgKzAxMDAKIEBAIC0yMDcsNyArMjA3LDcgQEAgZXh0ZXJuIHZvaWQgYXhfZXh0 IChzdHJ1Y3QgYWdlbnRfZXhwciAqRQogIGV4dGVybiB2b2lkIGF4X3plcm9fZXh0IChzdHJ1Y3Qg YWdlbnRfZXhwciAqRVhQUiwgaW50IE4pOwogIApAQCAtMTI2NCwxMSArMTI2NCwyMyBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYXguaAogIAogIC8qIEFwcGVuZCBhIGdvdG8gb3Ag dG8gRVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwgb3AgKG11c3QgYmUgYW9wX2dvdG8gb3IKICAgICBh b3BfaWZfZ290bykuICBXZSBhc3N1bWUgd2UgZG9uJ3Qga25vdyB0aGUgdGFyZ2V0IG9mZnNldCB5 ZXQsCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYnJlYWtwb2ludC5jCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnJlYWtwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNC0wNi0yNCAxNjowNzoy Ny4wNzA5ODY2ODEgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9icmVha3BvaW50 LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNDk5ODY4NzkgKzAyMDAKLUBAIC02OTMwLDcgKzY5MzAs NyBAQCBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41 MTYzMTg3NTYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3BvaW50LmMJ MjAxNS0wMS0wNiAyMjo0NDo0My4xNzAzMjY3ODEgKzAxMDAKK0BAIC0yMTkxLDkgKzIxOTEsOSBA QCBzaG91bGRfYmVfaW5zZXJ0ZWQgKHN0cnVjdCBicF9sb2NhdGlvbiAqCisgCXsKKyAJICBmcHJp bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCisgCQkJICAgICAgImluZnJ1bjogc3RlcHBpbmcg cGFzdCBub24tc3RlcHBhYmxlIHdhdGNocG9pbnQuICIKKy0JCQkgICAgICAic2tpcHBpbmcgd2F0 Y2hwb2ludCBhdCAlczolZFxuIiwKKysJCQkgICAgICAic2tpcHBpbmcgd2F0Y2hwb2ludCBhdCAl czolc1xuIiwKKyAJCQkgICAgICBwYWRkcmVzcyAoYmwtPmdkYmFyY2gsIGJsLT5hZGRyZXNzKSwK Ky0JCQkgICAgICBibC0+bGVuZ3RoKTsKKysJCQkgICAgICBwbG9uZ2VzdCAoYmwtPmxlbmd0aCkp OworIAl9CisgICAgICAgcmV0dXJuIDA7CisgICAgIH0KK0BAIC02OTQzLDcgKzY5NDMsNyBAQCBi cmVha3BvaW50X2FkZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNzCiAgCiAgc3RhdGljIGludAog IGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZSAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFz cGFjZTEsIENPUkVfQUREUiBhZGRyMSwKQEAgLTEyNzcsNyArMTI4OSw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9icmVha3BvaW50LmMKICAJCQkJQ09SRV9BRERSIGFkZHIyKQog IHsKICAgIHJldHVybiAoKGdkYmFyY2hfaGFzX2dsb2JhbF9icmVha3BvaW50cyAodGFyZ2V0X2dk YmFyY2ggKCkpCi1AQCAtMTE1NDIsNyArMTE1NDIsNyBAQCBjYW5fdXNlX2hhcmR3YXJlX3dhdGNo cG9pbnQgKHN0cnVjdCB2YWx1CitAQCAtMTE2NjcsNyArMTE2NjcsNyBAQCBjYW5fdXNlX2hhcmR3 YXJlX3dhdGNocG9pbnQgKHN0cnVjdCB2YWx1CiAgCQkgICAgICAmJiBUWVBFX0NPREUgKHZ0eXBl KSAhPSBUWVBFX0NPREVfQVJSQVkpKQogIAkJewogIAkJICBDT1JFX0FERFIgdmFkZHIgPSB2YWx1 ZV9hZGRyZXNzICh2KTsKQEAgLTEyODYsMTEgKzEyOTgsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2JyZWFrcG9pbnQuYwogIAkJICBpbnQgbnVtX3JlZ3M7CiAgCiAgCQkgIGxl biA9ICh0YXJnZXRfZXhhY3Rfd2F0Y2hwb2ludHMKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9icmVha3BvaW50LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9icmVha3Bv aW50LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2JyZWFr cG9pbnQuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjAzNjk4NjY0MyArMDIwMAotKysrIGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2JyZWFrcG9pbnQuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1MDk4Njg4 MSArMDIwMAotQEAgLTI0NCw3ICsyNDQsNyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUxNzMxODc2MSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9p bnQuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorQEAgLTIzNiw3ICsyMzYs NyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KICAKICAgIC8qIElmIHRoaXMgaXMgYSByYW5nZWQg YnJlYWtwb2ludCwgdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZQogICAgICAgbGVuZ3RoIG9m IHRoZSByYW5nZSB0aGF0IHdpbGwgYmUgd2F0Y2hlZCBmb3IgZXhlY3V0aW9uLiAgKi8KQEAgLTEy OTksNyArMTMxMSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9icmVha3BvaW50 LmgKICAKICAgIC8qIElmIHRoZSBicmVha3BvaW50IGxpdmVzIGluIG1lbW9yeSBhbmQgcmVhZGlu ZyB0aGF0IG1lbW9yeSB3b3VsZAogICAgICAgZ2l2ZSBiYWNrIHRoZSBicmVha3BvaW50LCBpbnN0 ZWFkIG9mIHRoZSBvcmlnaW5hbCBjb250ZW50cywgdGhlbgotQEAgLTQxMyw3ICs0MTMsNyBAQCBz dHJ1Y3QgYnBfbG9jYXRpb24KK0BAIC00MTIsNyArNDEyLDcgQEAgc3RydWN0IGJwX2xvY2F0aW9u CiAgICAvKiBGb3IgaGFyZHdhcmUgd2F0Y2hwb2ludHMsIHRoZSBzaXplIG9mIHRoZSBtZW1vcnkg cmVnaW9uIGJlaW5nCiAgICAgICB3YXRjaGVkLiAgRm9yIGhhcmR3YXJlIHJhbmdlZCBicmVha3Bv aW50cywgdGhlIHNpemUgb2YgdGhlCiAgICAgICBicmVha3BvaW50IHJhbmdlLiAgKi8KQEAgLTEz MDgsMTEgKzEzMjAsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2JyZWFrcG9p bnQuaAogIAogICAgLyogVHlwZSBvZiBoYXJkd2FyZSB3YXRjaHBvaW50LiAgKi8KICAgIGVudW0g dGFyZ2V0X2h3X2JwX3R5cGUgd2F0Y2hwb2ludF90eXBlOwotSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2MtbGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy1sYW5n LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2MtbGFuZy5j CTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvYy1sYW5nLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTA5ODY4ODEgKzAyMDAKLUBA IC0xOTAsNyArMTkwLDcgQEAgY19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwg cworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wMS0wNiAy Mjo0NDo0MS41MTgzMTg3NjYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jLWxh bmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3MDMyNjc4MSArMDEwMAorQEAgLTE4Nyw3ICsxODcs NyBAQCBjX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgdm9pZAog IGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAK QEAgLTEzMjEsNyArMTMzMyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jLWxh bmcuYwogIAkgICAgY29uc3QgY2hhciAqdXNlcl9lbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2Vz LAogIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewot QEAgLTY3OSw3ICs2NzksNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5cGUgKmV4cGVj dF90CitAQCAtNjc2LDcgKzY3Niw3IEBAIGV2YWx1YXRlX3N1YmV4cF9jIChzdHJ1Y3QgdHlwZSAq ZXhwZWN0X3QKICAJICB9CiAgCWVsc2UKICAJICB7CkBAIC0xMzMwLDcgKzEzNDIsNyBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYy1sYW5nLmMKICAKICAJICAgIC8qIFdyaXRlIHRo ZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIuICAqLwogIAkgICAgZm9yIChpID0gMDsgaSA8IFRZUEVf TEVOR1RIICh0eXBlKTsgKytpKQotQEAgLTY4OCw3ICs2ODgsNyBAQCBldmFsdWF0ZV9zdWJleHBf YyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CitAQCAtNjg1LDcgKzY4NSw3IEBAIGV2YWx1YXRlX3N1 YmV4cF9jIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3QKICAJICAgIGlmIChzYXRpc2Z5X2V4cGVjdGVk KQogIAkgICAgICB7CiAgCQlMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKQEAgLTEzMzks MTAgKzEzNTEsMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2MtbGFuZy5jCiAg CiAgCQlpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFIChleHBlY3RfdHlw ZSksCiAgCQkJCQkgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9jLWxhbmcuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2MtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9j LWxhbmcuaAkyMDE0LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2MtbGFuZy5oCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjUwOTg2ODgxICsw MjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jLWxhbmcuaAkyMDE1LTAxLTA2 IDIyOjQ0OjQxLjUxODMxODc2NiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Mt bGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICswMTAwCiBAQCAtNzQsNyArNzQs NyBAQCBleHRlcm4gdm9pZCBjX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlCiAgCQkJICAgICBz dHJ1Y3QgdWlfZmlsZSAqKTsKICAKQEAgLTEzNzgsMTEgKzEzOTAsMTEgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL2MtbGFuZy5oCiAgCQkJCQlzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQs CiAgCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICosCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYy12YWxwcmlu dC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12YWxwcmludC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNC0w Ni0yNCAxNjowNzoyNi4yODU5ODU4MTAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9jLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTA5ODY4ODEgKzAyMDAKLUBAIC0x MzMsNyArMTMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZQor LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEtMDYg MjI6NDQ6NDEuNTE4MzE4NzY2ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYy12 YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICswMTAwCitAQCAtMTMyLDcg KzEzMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKICAKICB2 b2lkCiAgY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKQEAgLTEzOTEsNyArMTQwMyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9jLXZhbHByaW50LmMKICAJICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotQEAgLTE0NCw3ICsxNDQs NyBAQCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkCitAQCAtMTQzLDcg KzE0Myw3IEBAIGNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKICAgIHVu c2lnbmVkIGxlbjsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqdW5yZXNvbHZlZF9lbHR0eXBl OwogICAgc3RydWN0IHR5cGUgKnVucmVzb2x2ZWRfdHlwZSA9IHR5cGU7CkBAIC0xNDAwLDcgKzE0 MTIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYy12YWxwcmludC5jCiAgICBD T1JFX0FERFIgYWRkcjsKICAKICAgIENIRUNLX1RZUEVERUYgKHR5cGUpOwotQEAgLTM4MCw5ICsz ODAsOSBAQCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkCitAQCAtMzc5 LDkgKzM3OSw5IEBAIGNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2QKICAJ ICAvKiBQcmludCB2dGFibGUgZW50cnkgLSB3ZSBvbmx5IGdldCBoZXJlIGlmIE5PVCB1c2luZwog IAkgICAgIC1mdnRhYmxlX3RodW5rcy4gIChPdGhlcndpc2UsIGxvb2sgdW5kZXIKICAJICAgICBU WVBFX0NPREVfUFRSLikgICovCkBAIC0xNDEzLDcgKzE0MjUsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvYy12YWxwcmludC5jCiAgCSAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUg PSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsCiAgCQkJCQkJICAgICBWVEJMX0ZOQUREUl9PRkZTRVQp OwogIAkgIENPUkVfQUREUiBhZGRyCi1AQCAtNDYxLDcgKzQ2MSw4IEBAIGNfdmFsdWVfcHJpbnQg KHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QKK0BAIC00NjAsNyArNDYwLDggQEAgY192YWx1ZV9w cmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUsICpy ZWFsX3R5cGUsICp2YWxfdHlwZTsKQEAgLTE0MjMsMTEgKzE0MzUsMTEgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL2MtdmFscHJpbnQuYwogICAgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgb3B0cyA9ICpvcHRpb25zOwogIAogICAgb3B0cy5kZXJlZl9yZWYgPSAxOwotSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLWFiaS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvY3AtYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9y aWcvZ2RiL2NwLWFiaS5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtYWJpLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTA5 ODY4ODEgKzAyMDAKLUBAIC02OCwxMyArNjgsMTMgQEAgaXNfb3BlcmF0b3JfbmFtZSAoY29uc3Qg Y2hhciAqbmFtZSkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NwLWFiaS5jCTIw MTUtMDEtMDYgMjI6NDQ6NDEuNTE4MzE4NzY2ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvY3AtYWJpLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzEzMjY3ODYgKzAxMDAKK0BAIC02 NCwxMyArNjQsMTMgQEAgaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFtZSkKICAgIHJl dHVybiAoKmN1cnJlbnRfY3BfYWJpLmlzX29wZXJhdG9yX25hbWUpIChuYW1lKTsKICB9CiAgCkBA IC0xNDQ0LDcgKzE0NTYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtYWJp LmMKICAKICAgIGdkYl9hc3NlcnQgKGN1cnJlbnRfY3BfYWJpLmJhc2VjbGFzc19vZmZzZXQgIT0g TlVMTCk7CiAgCi1AQCAtOTgsNyArOTgsNyBAQCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgaW50CitAQCAtOTQsNyArOTQsNyBAQCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgaW50CiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxk IChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQlzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLApA QCAtMTQ1Myw3ICsxNDY1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLWFi aS5jCiAgewogICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2ZuX2ZpZWxkKSA9PSBOVUxM KQogICAgICByZXR1cm4gTlVMTDsKLUBAIC0xMDgsNyArMTA4LDcgQEAgdmFsdWVfdmlydHVhbF9m bl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQorQEAgLTEwNCw3ICsxMDQsNyBAQCB2YWx1ZV92aXJ0 dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCiAgCiAgc3RydWN0IHR5cGUgKgogIHZhbHVl X3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsCkBAIC0xNDYyLDEwICsxNDc0 LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jcC1hYmkuYwogIHsKICAgIHN0 cnVjdCB0eXBlICpyZXQgPSBOVUxMOwogICAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24g ZTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jcC1hYmkuaAorSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2NwLWFiaS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4y MDE0MDYxMy5vcmlnL2dkYi9jcC1hYmkuaAkyMDE0LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCAr MDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLWFiaS5oCTIwMTQtMDYtMjQgMTY6 MDc6MjcuMjUxOTg2ODgyICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9j cC1hYmkuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxOTMxODc3MCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2NwLWFiaS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTcxMzI2Nzg2ICsw MTAwCiBAQCAtMTA4LDcgKzEwOCw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZpcnR1 YWxfZm5fZmkKICAJCQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICpmLAogIAkJCQkJICAgICBpbnQg aiwKQEAgLTE1MjAsMTEgKzE1MzIsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2NwLWFiaS5oCiAgICB2b2lkICgqcHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpj b250ZW50cywKICAJCQkgICAgc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJICAgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0pOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLXZhbHByaW50 LmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcC12YWxwcmludC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTQt MDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvY3AtdmFscHJpbnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1MTk4Njg4MiArMDIwMAotQEAg LTgyLDcgKzgyLDcgQEAgc3RhdGljIHZvaWQgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1Ywor LS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDE1LTAxLTA2 IDIyOjQ0OjQxLjUxOTMxODc3MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Nw LXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKK0BAIC04MCw3 ICs4MCw3IEBAIHN0YXRpYyB2b2lkIGNwX3ByaW50X3N0YXRpY19maWVsZCAoc3RydWMKICAJCQkJ ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCiAgc3RhdGljIHZvaWQg Y3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCkBAIC0xNTMzLDcg KzE1NDUsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwog IAkJCSAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosCiAgCQkJICAgIGludCwgY29uc3Qg c3RydWN0IHZhbHVlICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICosCi1AQCAtMTU2LDcgKzE1Niw3IEBAIGNwX2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwZSAq dHlwZSkKK0BAIC0xNTQsNyArMTU0LDcgQEAgY3BfaXNfdnRibF9tZW1iZXIgKHN0cnVjdCB0eXBl ICp0eXBlKQogIAogIHZvaWQKICBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLApAQCAtMTU0Miw3ICsxNTU0LDcgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLXZhbHByaW50LmMKICAJCSAgICAgICBDT1JFX0FE RFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCSAgICAgICBpbnQgcmVjdXJz ZSwgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMzM5LDcgKzMzOSw3IEBAIGNwX3ByaW50X3Zh bHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC0zMzEsNyArMzMxLDcgQEAgY3BfcHJp bnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAkJfQogIAkgICAgICBlbHNlIGlm IChpID09IHZwdHJfZmllbGRubyAmJiB0eXBlID09IHZwdHJfYmFzZXR5cGUpCiAgCQl7CkBAIC0x NTUxLDcgKzE1NjMsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJp bnQuYwogIAkJICBzdHJ1Y3QgdHlwZSAqaV90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBp KTsKICAKICAJCSAgaWYgKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJlYW0sIGlfdHlwZSwg aV9vZmZzZXQsIHZhbCkpCi1AQCAtNDIyLDcgKzQyMiw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxk cyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC00MTQsNyArNDE0LDcgQEAgY3BfcHJpbnRfdmFsdWVf ZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAogIHZvaWQKICBjcF9wcmludF92YWx1ZV9maWVs ZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xNTYwLDggKzE1NzIsOCBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwogIAkJCSAgICBDT1JFX0FERFIg YWRkcmVzcywKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAg CQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQzOCw3ICs0MzgsOCBAQCBjcF9w cmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUKLSAJCQlUQVJHRVRfQ0hBUl9CSVQg KiBUWVBFX0xFTkdUSCAodHlwZSkpKQorQEAgLTQzMSw3ICs0MzEsOCBAQCBjcF9wcmludF92YWx1 ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUKKyAJCQkJICAgICBUQVJHRVRfQ0hBUl9CSVQgKiBU WVBFX0xFTkdUSCAodHlwZSkpKQogICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICp2YWx1ZTsK IC0gICAgICBpbnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7CkBAIC0xNTcwLDcgKzE1ODIsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQuYwogIAogICAgICAgIC8q IFVnaCwgd2UgaGF2ZSB0byBjb252ZXJ0IGJhY2sgdG8gYSB2YWx1ZSBoZXJlLiAgKi8KICAgICAg ICB2YWx1ZSA9IHZhbHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHR5cGUsIHZhbGFkZHIg KyBvZmZzZXQsCi1AQCAtNDYzLDcgKzQ2NCw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRp IChzdHJ1Y3QgdHlwZQorQEAgLTQ1Niw3ICs0NTcsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNf cnR0aSAoc3RydWN0IHR5cGUKICAKICBzdGF0aWMgdm9pZAogIGNwX3ByaW50X3ZhbHVlIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSwKQEAgLTE1NzksNyArMTU5MSw3 IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9jcC12YWxwcmludC5jCiAgCQlDT1JF X0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCWludCByZWN1cnNlLCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotQEAgLTQ3Myw3ICs0NzQsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjCitAQCAtNDY2LDcgKzQ2Nyw3IEBAIGNwX3ByaW50X3ZhbHVlIChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKICAgICAgPSAoc3RydWN0IHR5cGUgKiopIG9ic3RhY2tf bmV4dF9mcmVlICgmZG9udF9wcmludF92Yl9vYnN0YWNrKTsKICAgIHN0cnVjdCBvYnN0YWNrIHRt cF9vYnN0YWNrID0gZG9udF9wcmludF92Yl9vYnN0YWNrOwogICAgaW50IGksIG5fYmFzZWNsYXNz ZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOwpAQCAtMTU4OCw3ICsxNjAwLDcgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2NwLXZhbHByaW50LmMKICAgIHN0cnVjdCB0eXBl ICp0aGlzdHlwZTsKICAKICAgIGlmIChkb250X3ByaW50X3ZiID09IDApCi1AQCAtNDg3LDcgKzQ4 OCw3IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKK0BAIC00ODAs NyArNDgxLDcgQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YwogIAog ICAgZm9yIChpID0gMDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykKICAgICAgewpAQCAtMTU5Nywx MSArMTYwOSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvY3AtdmFscHJpbnQu YwogICAgICAgIGludCBza2lwOwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVj a190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwogICAgICAgIGNvbnN0IGNoYXIg KmJhc2VuYW1lID0gVFlQRV9OQU1FIChiYXNlY2xhc3MpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZC1sYW5n LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2QtbGFuZy5o CTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvZC1sYW5nLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTE5ODY4ODIgKzAyMDAKLUBA IC02OSw3ICs2OSw3IEBAIGV4dGVybiBjb25zdCBjaGFyICpkX3BhcnNlX3N5bWJvbCAoc3RydWMK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTE5MzE4NzcwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZC1sYW5n LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xNzIzMjY3OTEgKzAxMDAKK0BAIC03MSw3ICs3MSw3IEBA IGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kX3R5cGUgKmJ1aWwKICAvKiBEZWZpbmVkIGlu IGQtdmFscHJpbnQuYyAgKi8KICAKICBleHRlcm4gdm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTYxMCwxMCArMTYyMiwxMCBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZC1sYW5nLmgKICAJCQkgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4y MDE0MDYxMy5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9kLXZhbHByaW50LmMJMjAxNC0w Ni0yNCAxNjowNzoyNy4yNTE5ODY4ODIgKzAyMDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL2QtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUxOTMxODc3MCArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2QtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQzLjE3MjMyNjc5MSArMDEwMAogQEAgLTI5LDcgKzI5LDcgQEAKICAKICBzdGF0aWMgaW50CkBA IC0xNjIzLDcgKzE2MzUsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZC12YWxw cmludC5jCiAgCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkg ICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKm9wdGlvbnMpCi1AQCAtNzIsOSArNzIsOSBAQCBkeW5hbWljX2FycmF5X3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjCitAQCAtNzMsOSArNzMsOSBAQCBkeW5hbWljX2FycmF5 X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjCiAgCiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFs X3ByaW50IHJvdXRpbmUgZm9yIGxhbmd1YWdlIEQuICAqLwogIHZvaWQKQEAgLTE2MzYsMTEgKzE2 NDgsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2QtdmFscHJpbnQuYwogICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7 CiAgICBpbnQgcmV0OwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2RvdWJsZXN0LmMK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kb3VibGVzdC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9kb3VibGVzdC5jCTIwMTQtMDYtMTMgMDM6 NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZG91Ymxl c3QuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1MTk4Njg4MiArMDIwMAotQEAgLTc2Nyw3ICs3Njcs NyBAQCBmbG9hdGZvcm1hdF9mcm9tX2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKKy0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MjAz MTg3NzUgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kb3VibGVzdC5jCTIwMTUt MDEtMDYgMjI6NDQ6NDMuMTcyMzI2NzkxICswMTAwCitAQCAtNzY1LDcgKzc2NSw3IEBAIGZsb2F0 Zm9ybWF0X2Zyb21fZG91Ymxlc3QgKGNvbnN0IHN0cnVjdAogICAgIGJ1dCBub3QgcGFzc2VkIG9u IGJ5IEdEQi4gIFRoaXMgc2hvdWxkIGJlIGZpeGVkLiAgKi8KICAKICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGZsb2F0Zm9ybWF0ICoKQEAgLTE2NDksNyArMTY2MSw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9kb3VibGVzdC5jCiAgewogICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0 ICpmb3JtYXQ7CiAgCi1AQCAtNzk1LDggKzc5NSw4IEBAIGZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3Ro IChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTc5Myw4ICs3OTMsOCBAQCBmbG9hdGZvcm1hdF9mcm9tX2xl bmd0aCAoc3RydWN0IGdkYmFyY2gKICAgIGVsc2UKICAgICAgZm9ybWF0ID0gTlVMTDsKICAgIGlm IChmb3JtYXQgPT0gTlVMTCkKQEAgLTE2NjAsMTEgKzE2NzIsMTEgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2RvdWJsZXN0LmMKICAgIHJldHVybiBmb3JtYXQ7CiAgfQogIAotSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIw MTQwNjEzLm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTQtMDYtMjQgMTY6MDc6MjYuMzg3OTg1OTIz ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMJMjAxNC0wNi0y NCAxNjowNzoyNy4yNTI5ODY4ODMgKzAyMDAKLUBAIC0xNTcyLDE5ICsxNTcyLDE5IEBAIGluc2Vy dF9iaXRzICh1bnNpZ25lZCBpbnQgZGF0dW0sCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyMjMxODc4NSArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMu MTczMzI2Nzk2ICswMTAwCitAQCAtMTU1NywxOSArMTU1NywxOSBAQCBpbnNlcnRfYml0cyAodW5z aWduZWQgaW50IGRhdHVtLAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBm cm9tIGdkYmFyY2guICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0xNjkwLDcgKzE3MDIsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYybG9jLmMKICAKICAgIGRlc3RfYXZh aWwgPSA4IC0gZGVzdF9vZmZzZXRfYml0cyAlIDg7CiAgCi1AQCAtMTYyMiwxMyArMTYyMiwxMyBA QCBzdGF0aWMgdm9pZAorQEAgLTE2MDcsMTMgKzE2MDcsMTMgQEAgc3RhdGljIHZvaWQKICByZWFk X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogIHsKICAgIGludCBpOwpAQCAtMTcwNiw3 ICsxNzE4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMmxvYy5jCiAg ICBzaXplX3QgYnVmZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAg ICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKLUBAIC0xNjU1LDggKzE2NTUsOCBAQCByZWFkX3Bp ZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE2NDAsOCArMTY0MCw4IEBAIHJlYWRf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9w aWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBk d2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3MTcsNyArMTcyOSw3IEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGNvbnN0 IGdkYl9ieXRlICppbnRlcm1lZGlhdGVfYnVmZmVyOwogIAogICAgICAgIC8qIENvbXB1dGUgc2l6 ZSwgc291cmNlLCBhbmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0x ODA1LDEzICsxODA1LDEzIEBAIHN0YXRpYyB2b2lkCitAQCAtMTc5MCwxMyArMTc5MCwxMyBAQCBz dGF0aWMgdm9pZAogIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0 IHZhbHVlICpmcm9tKQogIHsKICAgIGludCBpOwpAQCAtMTczMyw3ICsxNzQ1LDcgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMmxvYy5jCiAgICBzaXplX3QgYnVmZmVyX3Np emUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBzdHJ1Y3QgY2xlYW51cCAq Y2xlYW51cDsKLUBAIC0xODM5LDggKzE4MzksOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVj dCB2YWx1ZSAqdG8sIHN0CitAQCAtMTgyNCw4ICsxODI0LDggQEAgd3JpdGVfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYm IG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhw cl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzQ0LDE4ICsxNzU2LDE4IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGludCBuZWVkX2Jp dHdpc2U7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9idWZmZXI7CiAgCi1AQCAtMTk3 MCw4ICsxOTcwLDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAot ICAgIGltcGxpY2l0IHBvaW50ZXIuICAqLworQEAgLTE5NTMsOCArMTk1Myw4IEBAIHdyaXRlX3Bp ZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKKyAgICBhIHN5bnRoZXRpYyBwb2ludGVy LiAgKi8KICAKICBzdGF0aWMgaW50Ci0tY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LAotLQkJCSBpbnQgYml0X2xlbmd0aCwK LStjaGVja19waWVjZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9O R0VTVCBiaXRfb2Zmc2V0LAotKwkJCSBMT05HRVNUIGJpdF9sZW5ndGgsCi0gCQkJIGVudW0gZHdh cmZfdmFsdWVfbG9jYXRpb24gY2hlY2tfZm9yKQorLWNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9p bnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGJpdF9vZmZzZXQsCistCQkJCWlu dCBiaXRfbGVuZ3RoKQorK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBiaXRfb2Zmc2V0LAorKwkJCQlMT05HRVNUIGJpdF9s ZW5ndGgpCiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKLUBAIC0xOTg3LDcgKzE5ODcs NyBAQCBjaGVja19waWVjZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZhCisgICAgID0gKHN0 cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHZhbHVlKTsKK0BA IC0xOTY3LDcgKzE5NjcsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0 IHN0CiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkr KykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNl c1tpXTsKQEAgLTE3NjQsMjkgKzE3NzYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvZHdhcmYybG9jLmMKICAKICAgICAgICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0y MDI1LDggKzIwMjUsOCBAQCBjaGVja19waWVjZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZh Ci0gfQotIAotIHN0YXRpYyBpbnQKLS1jaGVja19waWVjZWRfdmFsdWVfdmFsaWRpdHkgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LAotLQkJCSAgICAgaW50IGJpdF9s ZW5ndGgpCi0rY2hlY2tfcGllY2VkX3ZhbHVlX3ZhbGlkaXR5IChjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCi0rCQkJICAgICBMT05HRVNUIGJpdF9sZW5ndGgp Ci0gewotICAgcmV0dXJuIGNoZWNrX3BpZWNlZF92YWx1ZV9iaXRzICh2YWx1ZSwgYml0X29mZnNl dCwgYml0X2xlbmd0aCwKLSAJCQkJICBEV0FSRl9WQUxVRV9NRU1PUlkpOwotQEAgLTIwNDQsOCAr MjA0NCw4IEBAIGNoZWNrX3BpZWNlZF92YWx1ZV9pbnZhbGlkIChjb25zdCBzdHJ1Y3QKLSAgICBh IHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tY2hlY2tfcGllY2VkX3N5 bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgYml0X29mZnNl dCwKLS0JCQkJaW50IGJpdF9sZW5ndGgpCi0rY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVy IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCi0rCQkJCUxP TkdFU1QgYml0X2xlbmd0aCkKLSB7Ci0gICByZXR1cm4gY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMg KHZhbHVlLCBiaXRfb2Zmc2V0LCBiaXRfbGVuZ3RoLAotIAkJCQkgIERXQVJGX1ZBTFVFX0lNUExJ Q0lUX1BPSU5URVIpOwotQEAgLTIwNzAsOSArMjA3MCwxMCBAQCBpbmRpcmVjdF9waWVjZWRfdmFs dWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtMjAwOSw5ICsyMDA5LDEwIEBAIGluZGlyZWN0X3Bp ZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAg c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwogICAgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9u IGJhdG9uOwpAQCAtMTc5OSw3ICsxNzg5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2R3YXJmMmxvYy5jCiAgCiAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo dmFsdWUpKTsKICAgIGlmIChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9QVFIpCi1AQCAt MjA4Niw3ICsyMDg3LDcgQEAgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZh bAorQEAgLTIwMjUsNyArMjAyNiw3IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp2YWwKICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4g MDsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+ cGllY2VzW2ldOwpAQCAtMTgwOCw3ICsxNzk4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1A QCAtMjM1Nyw3ICsyMzU4LDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVj dCB0eQorQEAgLTIzMDMsNyArMjMwNCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxs IChzdHJ1Y3QgdHkKICAJICAgIHN0cnVjdCB2YWx1ZSAqdmFsdWUgPSBkd2FyZl9leHByX2ZldGNo IChjdHgsIDApOwogIAkgICAgZ2RiX2J5dGUgKmNvbnRlbnRzOwogIAkgICAgY29uc3QgZ2RiX2J5 dGUgKnZhbF9ieXRlczsKQEAgLTE4MTcsMTEgKzE4MDcsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgCSAgICBpZiAoYnl0ZV9vZmZzZXQgKyBUWVBF X0xFTkdUSCAodHlwZSkgPiBuKQogIAkgICAgICBpbnZhbGlkX3N5bnRoZXRpY19wb2ludGVyICgp OwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDYtMjQgMTY6MDc6Mjcu MjE5OTg2ODQ2ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZHdhcmYycmVhZC5j CTIwMTQtMDYtMjQgMTY6MDc6MjcuMjU1OTg2ODg2ICswMjAwCi1AQCAtMTg4OSwxMiArMTg4OSwx MiBAQCBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41 MjYzMTg4MDUgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMJ MjAxNS0wMS0wNiAyMjo0NDo0My4xNzczMjY4MTUgKzAxMDAKK0BAIC0xODgzLDEyICsxODgzLDEy IEBAIGR3YXJmMl9jb21wbGV4X2xvY2F0aW9uX2V4cHJfY29tcGxhaW50ICgKICB9CiAgCiAgc3Rh dGljIHZvaWQKQEAgLTE4MzgsNyArMTgyOCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9kd2FyZjJyZWFkLmMKICB9CiAgCiAgc3RhdGljIHZvaWQKLUBAIC0xMjMyNiw4ICsxMjMy Niw4IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAKK0BAIC0xMjM3 MCw4ICsxMjM3MCw4IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAK ICAJICAgICAgICAgb2JqZWN0LCBhbmQgdGhlbiBzdWJ0cmFjdCBvZmYgdGhlIG51bWJlciBvZiBi aXRzIG9mCiAgCSAgICAgICAgIHRoZSBmaWVsZCBpdHNlbGYuICBUaGUgcmVzdWx0IGlzIHRoZSBi aXQgb2Zmc2V0IG9mCiAgCSAgICAgICAgIHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgKi8KQEAgLTE4 NDksMTEgKzE4MzksMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2R3YXJmMnJl YWQuYwogIAogIAkgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zaXpl LCBjdSk7CiAgCSAgICAgIGlmIChhdHRyKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2V2YWwuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2V2YWwuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZXZhbC5jCTIwMTQtMDYtMTMgMDM6 NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZXZhbC5j CTIwMTQtMDYtMjQgMTY6MDc6MjcuMjU2OTg2ODg3ICswMjAwCi1AQCAtMjk3LDcgKzI5Nyw4IEBA IGV2YWx1YXRlX3N0cnVjdF90dXBsZSAoc3RydWN0IHZhbHVlICpzdHIKKy0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2V2YWwuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyODMxODgxNCAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2V2YWwuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQzLjE3ODMyNjgyMCArMDEwMAorQEAgLTMxNCw3ICszMTQsOCBAQCBldmFsdWF0ZV9zdHJ1Y3Rf dHVwbGUgKHN0cnVjdCB2YWx1ZSAqc3RyCiAgICB3aGlsZSAoLS1uYXJncyA+PSAwKQogICAgICB7 CiAgICAgICAgc3RydWN0IHZhbHVlICp2YWwgPSBOVUxMOwpAQCAtMTg2Myw3ICsxODUzLDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2V2YWwuYwogICAgICAgIGJmZF9ieXRlICph ZGRyOwogIAogICAgICAgIGZpZWxkbm8rKzsKLUBAIC0zNTksNyArMzYwLDcgQEAgaW5pdF9hcnJh eV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAorQEAgLTM3NSw3ICszNzYsNyBAQCBpbml0 X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCiAgCQkgICAgZW51bSBub3NpZGUg bm9zaWRlLCBMT05HRVNUIGxvd19ib3VuZCwgTE9OR0VTVCBoaWdoX2JvdW5kKQogIHsKICAgIExP TkdFU1QgaW5kZXg7CkBAIC0xOTA1LDcgKzE4OTUsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvZXZhbC5jCiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIGluZGV4 OwogIAogIAkgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93X2JvdW5k LCAmaGlnaF9ib3VuZCkgPCAwKQotQEAgLTE5MDMsNyArMTkwNCw4IEBAIGV2YWx1YXRlX3N1YmV4 cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKK0BAIC0xODg3LDcgKzE4ODgsOCBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCiAgICAgICAgewogICAgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcxKTsKICAgICAgICAgIHN0cnVjdCB0eXBl ICpyZWFsX3R5cGU7CkBAIC0xOTE1LDExICsxOTA1LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9ldmFsLmMKICAJc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKICAK ICAJZ2V0X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi1sYW5n LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2YtbGFuZy5j CTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvZi1sYW5nLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTY5ODY4ODcgKzAyMDAKLUBA IC0xMDQsNyArMTA0LDcgQEAgZl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwg cworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi1sYW5nLmMJMjAxNS0wMS0wNiAy Mjo0NDo0MS41MjkzMTg4MTkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxh bmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE3ODMyNjgyMCArMDEwMAorQEAgLTEwMyw3ICsxMDMs NyBAQCBmX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgc3RhdGlj IHZvaWQKICBmX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTE5MjgsMTAgKzE5MTgsMTAgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtbGFuZy5jCiAgCSAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2Vu Y29kaW5nID0gZl9nZXRfZW5jb2RpbmcgKHR5cGUpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2YtbGFuZy5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi1sYW5nLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2YtbGFuZy5oCTIw MTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvZi1sYW5nLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTY5ODY4ODcgKzAyMDAKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEu NTI5MzE4ODE5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi1sYW5nLmgJMjAx NS0wMS0wNiAyMjo0NDo0My4xNzgzMjY4MjAgKzAxMDAKIEBAIC0zMCw3ICszMCw3IEBAIGV4dGVy biB2b2lkIGZfZXJyb3IgKGNoYXIgKik7CS8qIERlZmluZWQKICBleHRlcm4gdm9pZCBmX3ByaW50 X3R5cGUgKHN0cnVjdCB0eXBlICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50 LAogIAkJCSAgaW50LCBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zICopOwpAQCAtMTk0 MSwxMSArMTkzMSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZi1sYW5nLmgK ICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwK ICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZi12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5v cmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNi4zNzE5ODU5MDUgKzAyMDAK LSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjow NzoyNy4yNTY5ODY4ODcgKzAyMDAKLUBAIC00MSw3ICs0MSw3IEBAIGV4dGVybiB2b2lkIF9pbml0 aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L2YtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUyOTMxODgxOSArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ1OjA3Ljc0 NjQ0NjAyOCArMDEwMAorQEAgLTM4LDcgKzM4LDcgQEAgZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVf Zl92YWxwcmludCAodm9pZAogIHN0YXRpYyB2b2lkIGluZm9fY29tbW9uX2NvbW1hbmQgKGNoYXIg KiwgaW50KTsKICBzdGF0aWMgdm9pZCBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0 ZSAoc3RydWN0IHR5cGUgKik7CiAgCkBAIC0xOTU0LDcgKzE5NDQsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZi12YWxwcmludC5jCiAgCiAgLyogQXJyYXkgd2hpY2ggaG9sZHMg b2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCiAgICAgZm9yIGEg Z2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXku ICAqLwotQEAgLTc2LDggKzc2LDggQEAgZjc3X2dldF91cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAq dHlwZSkKK0BAIC03Myw4ICs3Myw4IEBAIGY3N19nZXRfdXBwZXJib3VuZCAoc3RydWN0IHR5cGUg KnR5cGUpCiAgc3RhdGljIHZvaWQKICBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0 ZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewpAQCAtMTk2NSw3ICsxOTU1LDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtdmFscHJpbnQuYwogIAogICAgLyogUmVjdXJzaXZlbHkg Z28gYWxsIHRoZSB3YXkgZG93biBpbnRvIGEgcG9zc2libHkgbXVsdGktZGltZW5zaW9uYWwKICAg ICAgIEY3NyBhcnJheSBhbmQgZ2V0IHRoZSBib3VuZHMuICBGb3Igc2ltcGxlIGFycmF5cywgdGhp cyBpcyBwcmV0dHkKLUBAIC0xMDksNyArMTA5LDcgQEAgZjc3X2dldF9keW5hbWljX2xlbmd0aF9v Zl9hZ2dyZWdhdGUgKHN0cgorQEAgLTEwNiw3ICsxMDYsNyBAQCBmNzdfZ2V0X2R5bmFtaWNfbGVu Z3RoX29mX2FnZ3JlZ2F0ZSAoc3RyCiAgc3RhdGljIHZvaWQKICBmNzdfcHJpbnRfYXJyYXlfMSAo aW50IG5zcywgaW50IG5kaW1lbnNpb25zLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCSAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTk3NCw3ICsxOTY0LDcgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2YtdmFscHJpbnQuYwogIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTExOCw3ICsxMTgs NyBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpCitAQCAtMTE1LDcg KzExNSw3IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKICAgIHN0 cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChjaGVja190eXBlZGVmICh0 eXBlKSk7CiAgICBDT1JFX0FERFIgYWRkciA9IGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZzZXQ7CiAg ICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVyYm91bmQ7CkBAIC0xOTgzLDcgKzE5NzMsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZi12YWxwcmludC5jCiAgCiAgICBnZXRfZGlz Y3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91bmQpOwogIAot QEAgLTE3NSw3ICsxNzUsNyBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1l bnNpCitAQCAtMTc4LDcgKzE3OCw3IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQg bmRpbWVuc2kKICAKICBzdGF0aWMgdm9pZAogIGY3N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTk5Miw3ICsxOTgyLDcgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtdmFscHJpbnQuYwogIAkJIENPUkVfQUREUiBh ZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJIGludCByZWN1cnNlLAogIAkJIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTIxMiw4ICsyMTIsOSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCitAQCAtMjE1LDggKzIxNSw5IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKICAgICBmdW5jdGlvbjsgdGhleSBhcmUg aWRlbnRpY2FsLiAgKi8KICAKICB2b2lkCkBAIC0yMDA0LDExICsxOTk0LDExIEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXZhbHByaW50LmMKICAJICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQogIHsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9maW5k dmFyLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9maW5kdmFyLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE0LTA2LTEz IDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Zp bmR2YXIuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1Njk4Njg4NyArMDIwMAotQEAgLTYyOCw3ICs2 MjgsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv ZmluZHZhci5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTI5MzE4ODE5ICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvZmluZHZhci5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTc5MzI2ODI1 ICswMTAwCitAQCAtNjI2LDcgKzYyNiw3IEBAIHN0cnVjdCB2YWx1ZSAqCiAgZGVmYXVsdF92YWx1 ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKnR5 cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVnbnVtLCBzdHJ1Y3QgZnJh bWVfaWQgZnJhbWVfaWQpCiAgewpAQCAtMjAxNyw3ICsyMDA3LDcgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2ZpbmR2YXIuYwogICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGFsbG9j YXRlX3ZhbHVlICh0eXBlKTsKICAKICAgIFZBTFVFX0xWQUwgKHZhbHVlKSA9IGx2YWxfcmVnaXN0 ZXI7Ci1AQCAtNjYxLDEwICs2NjEsMTAgQEAgdm9pZAorQEAgLTY1OSwxMCArNjU5LDEwIEBAIHZv aWQKICByZWFkX2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwpAQCAtMjAzMSwyMCArMjAyMSwyMCBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvZmluZHZhci5jCiAgCiAgICBnZGJfYXNzZXJ0IChWQUxVRV9M VkFMICh2YWx1ZSkgPT0gbHZhbF9yZWdpc3Rlcik7CiAgCi1AQCAtNjc5LDcgKzY3OSw3IEBAIHJl YWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZQorQEAgLTY3Nyw3ICs2NzcsNyBA QCByZWFkX2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUKICAgIHdoaWxlIChsZW4g PiAwKQogICAgICB7CiAgICAgICAgc3RydWN0IHZhbHVlICpyZWd2YWwgPSBnZXRfZnJhbWVfcmVn aXN0ZXJfdmFsdWUgKGZyYW1lLCByZWdudW0pOwogLSAgICAgIGludCByZWdfbGVuID0gVFlQRV9M RU5HVEggKHZhbHVlX3R5cGUgKHJlZ3ZhbCkpIC0gcmVnX29mZnNldDsKICsgICAgICBMT05HRVNU IHJlZ19sZW4gPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAocmVndmFsKSkgLSByZWdfb2Zmc2V0 OwogIAotICAgICAgIGlmICh2YWx1ZV9vcHRpbWl6ZWRfb3V0IChyZWd2YWwpKQotIAl7Ci1JbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZnJhbWUuYworICAgICAgIC8qIElmIHRoZSByZWdp c3RlciBsZW5ndGggaXMgbGFyZ2VyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcworICAgICAgICAg IHJlbWFpbmluZyB0byBjb3B5LCB0aGVuIG9ubHkgY29weSB0aGUgYXBwcm9wcmlhdGUgYnl0ZXMu ICAqLworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNC0wNi0xMyAwMzo1 OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mcmFtZS5j CTIwMTQtMDYtMjQgMTY6MDc6MjcuMjU3OTg2ODg4ICswMjAwCi1AQCAtMTI3Miw3ICsxMjcyLDcg QEAgZGVwcmVjYXRlZF9mcmFtZV9yZWdpc3Rlcl9yZWFkIChzdHJ1Y3QgZgorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvZnJhbWUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzMDMxODgy NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmMJMjAxNS0wMS0wNiAy Mjo0NDo0My4xODAzMjY4MzAgKzAxMDAKK0BAIC0xMjY5LDcgKzEyNjksNyBAQCBkZXByZWNhdGVk X2ZyYW1lX3JlZ2lzdGVyX3JlYWQgKHN0cnVjdCBmCiAgCiAgaW50CiAgZ2V0X2ZyYW1lX3JlZ2lz dGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGludCByZWdudW0sCkBAIC0yMDUz LDcgKzIwNDMsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZnJhbWUuYwogIAkJ CSAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtMTMwMSw3ICsxMzAx LDcgQEAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaQorQEAgLTEyOTgs NyArMTI5OCw3IEBAIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2kKICAg ICAgfQogICAgaWYgKGxlbiA+IG1heHNpemUpCiAgICAgIGVycm9yIChfKCJCYWQgZGVidWcgaW5m b3JtYXRpb24gZGV0ZWN0ZWQ6ICIKQEAgLTIwNjIsMTAgKzIwNTIsMTAgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL2ZyYW1lLmMKICAKICAgIC8qIENvcHkgdGhlIGRhdGEuICAqLwog ICAgd2hpbGUgKGxlbiA+IDApCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZnJhbWUu aAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2ZyYW1lLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNC0wNi0xMyAwMzo1OToz Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mcmFtZS5oCTIw MTQtMDYtMjQgMTY6MDc6MjcuMjU3OTg2ODg4ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9mcmFtZS5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTMwMzE4ODI0ICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZnJhbWUuaAkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4 MDMyNjgzMCArMDEwMAogQEAgLTU4Myw3ICs1ODMsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVf cmVnaXN0ZXIgKHN0cnVjdCBmCiAgICAgY29udGVudHMgYXJlIG9wdGltaXplZCBvdXQgb3IgdW5h dmFpbGFibGUsIHNldCAqT1BUSU1JWkVEUCwKICAgICAqVU5BVkFJTEFCTEVQIGFjY29yZGluZ2x5 LiAgKi8KQEAgLTIwNzUsMTEgKzIwNjUsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2ZyYW1lLmgKICAJCQkJICAgICBnZGJfYnl0ZSAqbXlhZGRyLAogIAkJCQkgICAgIGludCAq b3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApOwogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2dkYnR5cGVzLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0 eXBlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9nZGJ0 eXBlcy5jCTIwMTQtMDYtMjQgMTY6MDc6MjYuNDEwOTg1OTQ5ICswMjAwCi0rKysgZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI1ODk4Njg5MCAr MDIwMAotQEAgLTI0NjMsNyArMjQ2Myw3IEBAIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnVj dCB0eXBlICp0eXAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJ MjAxNS0wMS0wNiAyMjo0NDo0MS41MzIzMTg4MzQgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgxMzI2ODM1ICswMTAwCitA QCAtMjQ3Nyw3ICsyNDc3LDcgQEAgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUg KnR5cAogICAgIGxlYXN0IGFzIGxvbmcgYXMgT0JKRklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUg KgpAQCAtMjA4OCw3ICsyMDc4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dk YnR5cGVzLmMKICAJICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUp CiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtMjY5NCw4ICsyNjk0LDggQEAgaXNfcHVi bGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgcworQEAgLTI3MTcsOCArMjcxNyw4IEBA IGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHMKICAKICBzdGF0aWMgaW50 CiAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB0 eXBlICpkY2xhc3MsCkBAIC0yMDk5LDcgKzIwODksNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvZ2RidHlwZXMuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFs dWUgKnZhbCkKICB7CiAgICBpbnQgaSwgY291bnQgPSAwOwotQEAgLTI3MDYsNyArMjcwNiw3IEBA IGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yNzI5LDcgKzI3 MjksNyBAQCBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqCiAgICBmb3Ig KGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytp KQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKml0ZXI7CkBAIC0yMTA4LDcgKzIwOTgsNyBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuYwogIAogICAgICAgIGl0 ZXIgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAoZGNsYXNzLCBpKSk7CiAgCi1AQCAt Mjc0Nyw3ICsyNzQ3LDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUg KgorQEAgLTI3NzAsNyArMjc3MCw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVj dCB0eXBlICoKICBpbnQKICBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBz dHJ1Y3QgdmFsdWUgKnZhbCkKICB7CkBAIC0yMTE3LDcgKzIxMDcsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1ZV9hbmNl c3Rvcl93b3JrZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJCSAgICB2 YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCi1AQCAtMzg5MSw3ICszODkxLDcgQEAg cmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMzkxNSw3ICszOTE1 LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAgYnJl YWs7CiAgICAgIH0KICAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOwpAQCAtMjEyNiw3ICsyMTE2LDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dkYnR5cGVzLmMKICAgIGlmIChUWVBF X09CSkZJTEVfT1dORUQgKHR5cGUpKQogICAgICB7CiAgICAgICAgcHJpbnRmaV9maWx0ZXJlZCAo c3BhY2VzLCAib2JqZmlsZSAiKTsKLUBAIC00MDE1LDggKzQwMTUsOCBAQCByZWN1cnNpdmVfZHVt cF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC00MDM5LDggKzQwMzksOCBAQCByZWN1cnNp dmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGlkeCwgcGxvbmdlc3QgKFRZ UEVfRklFTERfRU5VTVZBTCAodHlwZSwgaWR4KSkpOwogICAgICAgIGVsc2UKICAJcHJpbnRmaV9m aWx0ZXJlZCAoc3BhY2VzICsgMiwKQEAgLTIxMzcsNyArMjEyNyw3IEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9nZGJ0eXBlcy5jCiAgCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5 cGUsIGlkeCkpOwogICAgICAgIGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQ RSAodHlwZSwgaWR4KSwgZ2RiX3N0ZG91dCk7CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5h bWUgJyVzJyAoIiwKLUBAIC00MzU3LDcgKzQzNTcsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVj dCB0eXBlICp0eXBlKQorQEAgLTQzOTcsNyArNDM5Nyw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3Ry dWN0IHR5cGUgKnR5cGUpCiAgCiAgc3RydWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCkBAIC0yMTQ2LDExICsyMTM2LDExIEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9nZGJ0eXBlcy5jCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgCi1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIw MTQwNjEzLm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4wMjQ5ODY2MzAg KzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nZGJ0eXBlcy5oCTIwMTQtMDYtMjQg MTY6MDc6MjcuMjU4OTg2ODkwICswMjAwCi1AQCAtNjA4LDcgKzYwOCw3IEBAIHN0cnVjdCBtYWlu X3R5cGUKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0w MS0wNiAyMjo0NDo0MS41MzMzMTg4MzggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9nZGJ0eXBlcy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgxMzI2ODM1ICswMTAwCitAQCAtNTk4 LDcgKzU5OCw3IEBAIHN0cnVjdCBtYWluX3R5cGUKICAJICAgZ2RiYXJjaF9iaXRzX2JpZ19lbmRp YW49MCB0YXJnZXRzLCBpdCBpcyB0aGUgYml0IG9mZnNldCB0bwogIAkgICB0aGUgTFNCLiAgKi8K ICAKQEAgLTIxNTksNyArMjE0OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9n ZGJ0eXBlcy5oCiAgCiAgCS8qICogRW51bSB2YWx1ZS4gICovCiAgCUxPTkdFU1QgZW51bXZhbDsK LUBAIC04MTAsNyArODEwLDcgQEAgc3RydWN0IHR5cGUKK0BAIC04MDEsNyArODAxLDcgQEAgc3Ry dWN0IHR5cGUKICAgICAgIEhPU1RfQ0hBUl9CSVQuICBIb3dldmVyLCB0aGlzIHdvdWxkIHN0aWxs IGZhaWwgdG8gYWRkcmVzcwogICAgICAgbWFjaGluZXMgYmFzZWQgb24gYSB0ZXJuYXJ5IG9yIGRl Y2ltYWwgcmVwcmVzZW50YXRpb24uICAqLwogICAgCkBAIC0yMTY4LDcgKzIxNTgsNyBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuaAogIAogICAgLyogKiBDb3JlIHR5 cGUsIHNoYXJlZCBieSBhIGdyb3VwIG9mIHF1YWxpZmllZCB0eXBlcy4gICovCiAgCi1AQCAtMTY0 MCwxMSArMTY0MCwxMiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmdldF90YXJnZXRfdHlwZSAoc3Ry CitAQCAtMTY0MSwxMSArMTY0MSwxMiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmdldF90YXJnZXRf dHlwZSAoc3RyCiAgCiAgLyogKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9iamZpbGUt b3duZWQgdHlwZXMuICAqLwogIApAQCAtMjE4MywxMSArMjE3MywxMSBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvZ2RidHlwZXMuaAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9p bnRlZ2VyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwogIGV4dGVy biBzdHJ1Y3QgdHlwZSAqYXJjaF9jaGFyYWN0ZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50 LCBpbnQsIGNoYXIgKik7CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2Jvb2xlYW5fdHlwZSAo c3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsIGNoYXIgKik7Ci1JbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvZ251LXYyLWFiaS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv Z251LXYyLWFiaS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dk Yi9nbnUtdjItYWJpLmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjItYWJpLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4y NTg5ODY4OTAgKzAyMDAKLUBAIC04NSw3ICs4NSw3IEBAIGdudXYyX2lzX29wZXJhdG9yX25hbWUg KGNvbnN0IGNoYXIgKm5hbWUKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dudS12 Mi1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzMzMxODgzOCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2dudS12Mi1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MTMyNjgz NSArMDEwMAorQEAgLTgyLDcgKzgyLDcgQEAgZ251djJfaXNfb3BlcmF0b3JfbmFtZSAoY29uc3Qg Y2hhciAqbmFtZQogICAgIFRZUEUgaXMgdGhlIHR5cGUgaW4gd2hpY2ggRiBpcyBsb2NhdGVkLiAg Ki8KICBzdGF0aWMgc3RydWN0IHZhbHVlICoKICBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1 Y3QgdmFsdWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICogZiwgaW50IGosCkBAIC0yMTk2LDcg KzIxODYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYyLWFiaS5jCiAg ewogICAgc3RydWN0IHZhbHVlICphcmcxID0gKmFyZzFwOwogICAgc3RydWN0IHR5cGUgKnR5cGUx ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotQEAgLTE4Niw3ICsxODYsOCBA QCBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCitAQCAtMTgzLDcgKzE4 Myw4IEBAIGdudXYyX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmEKICAKICAKICBz dGF0aWMgc3RydWN0IHR5cGUgKgpAQCAtMjIwNiw3ICsyMTk2LDcgQEAgSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL2dudS12Mi1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICprbm93bl90 eXBlOwogICAgc3RydWN0IHR5cGUgKnJ0dGlfdHlwZTsKLUBAIC0zNDEsOSArMzQyLDkgQEAgdmJf bWF0Y2ggKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCitAQCAtMzM4LDkgKzMzOSw5IEBA IHZiX21hdGNoIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAogICAgIHRhcmdldCkuICBU aGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFzcyB2YWx1ZSByZWxhdGl2ZQog ICAgIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4gICovCiAgCkBAIC0yMjE4LDcg KzIyMDgsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYyLWFiaS5jCiAg CQkJQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIHN0 cnVjdCB0eXBlICpiYXNldHlwZSA9IFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpbmRleCk7Ci1AQCAt MzYxLDggKzM2Miw4IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAK K0BAIC0zNTgsOCArMzU5LDggQEAgZ251djJfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUg KnR5cAogIAkgIGlmICh2Yl9tYXRjaCAodHlwZSwgaSwgYmFzZXR5cGUpKQogIAkgICAgewogIAkg ICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKQEAgLTIyMjksNyArMjIxOSw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjItYWJpLmMKICAJICAgICAgQ09SRV9BRERS IGFkZHI7CiAgCiAgCSAgICAgIGZpZWxkX3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX0ZJRUxE X1RZUEUgKHR5cGUsIGkpKTsKLUBAIC0zODYsNyArMzg3LDcgQEAgZ251djJfYmFzZWNsYXNzX29m ZnNldCAoc3RydWN0IHR5cGUgKnR5cAorQEAgLTM4Myw3ICszODQsNyBAQCBnbnV2Ml9iYXNlY2xh c3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwCiAgCSAgLyogRG9uJ3QgZ28gdGhyb3VnaCBiYXNl Y2xhc3Nfb2Zmc2V0LCBhcyB0aGF0IHdyYXBzCiAgCSAgICAgZXhjZXB0aW9ucywgdGh1cywgaW5u ZXIgZXhjZXB0aW9ucyB3b3VsZCBiZSB3cmFwcGVkIG1vcmUKICAJICAgICB0aGFuIG9uY2UuICAq LwpAQCAtMjIzOCwxMSArMjIyOCwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv Z251LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxh ZGRyLAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dudS12My1hYmkuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2dudS12My1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAx NDA2MTMub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYzLWFiaS5jCTIwMTQtMDYt MjQgMTY6MDc6MjcuMjU5OTg2ODkxICswMjAwCi1AQCAtMTEyLDcgKzExMiw3IEBAIGJ1aWxkX2dk Yl92dGFibGVfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmEKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL2dudS12My1hYmkuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNDMxODg0MyArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dudS12My1hYmkuYwkyMDE1LTAxLTA2IDIy OjQ0OjQzLjE4MTMyNjgzNSArMDEwMAorQEAgLTEwOCw3ICsxMDgsNyBAQCBidWlsZF9nZGJfdnRh YmxlX3R5cGUgKHN0cnVjdCBnZGJhcmNoICphCiAgewogICAgc3RydWN0IHR5cGUgKnQ7CiAgICBz dHJ1Y3QgZmllbGQgKmZpZWxkX2xpc3QsICpmaWVsZDsKQEAgLTIyNTEsNyArMjI0MSw3IEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjMtYWJpLmMKICAKICAgIHN0cnVjdCB0 eXBlICp2b2lkX3B0cl90eXBlCiAgICAgID0gYnVpbHRpbl90eXBlIChhcmNoKS0+YnVpbHRpbl9k YXRhX3B0cjsKLUBAIC0xODgsNyArMTg4LDcgQEAgdnRhYmxlX3B0cmRpZmZfdHlwZSAoc3RydWN0 IGdkYmFyY2ggKmdkYgorQEAgLTE4NCw3ICsxODQsNyBAQCB2dGFibGVfcHRyZGlmZl90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgLyogUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQg b2YgdGhlIGltYWdpbmFyeSBgc3RydWN0CiAgICAgZ2RiX2dudV92M19hYmlfdnRhYmxlJyBvYmpl Y3QgdG8gdGhlIHZ0YWJsZSdzICJhZGRyZXNzIHBvaW50IgogICAgIChpLmUuLCB3aGVyZSBvYmpl Y3RzJyB2aXJ0dWFsIHRhYmxlIHBvaW50ZXJzIHBvaW50KS4gICovCkBAIC0yMjYwLDcgKzIyNTAs NyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYzLWFiaS5jCiAgdnRhYmxl X2FkZHJlc3NfcG9pbnRfb2Zmc2V0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICB7CiAgICBz dHJ1Y3QgdHlwZSAqdnRhYmxlX3R5cGUgPSBnZGJhcmNoX2RhdGEgKGdkYmFyY2gsIHZ0YWJsZV90 eXBlX2dkYmFyY2hfZGF0YSk7Ci1AQCAtMjc5LDcgKzI3OSw3IEBAIGdudXYzX2dldF92dGFibGUg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmMKK0BAIC0yNzUsNyArMjc1LDcgQEAgZ251djNfZ2V0X3Z0 YWJsZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAg Z251djNfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtMjI2OSw3ICsyMjU5LDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dudS12My1hYmkuYwogIHsKICAgIHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoOwogICAgc3RydWN0IHR5cGUgKnZhbHVlc190eXBlID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsdWUpKTsKLUBAIC00MDQsNyArNDA0LDcgQEAgZ251 djNfZ2V0X3ZpcnR1YWxfZm4gKHN0cnVjdCBnZGJhcmNoICpnZAorQEAgLTQwMCw3ICs0MDAsNyBA QCBnbnV2M19nZXRfdmlydHVhbF9mbiAoc3RydWN0IGdkYmFyY2ggKmdkCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqCiAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdmFsdWVf cCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLApA QCAtMjI3OCw3ICsyMjY4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dudS12 My1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKCp2YWx1ZV9wKSk7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKLUBA IC00MzQsMTYgKzQzNCwxNiBAQCBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUg Kip2CitAQCAtNDMwLDE2ICs0MzAsMTYgQEAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0 IHZhbHVlICoqdgogIAogICAgIC0xIGlzIHJldHVybmVkIG9uIGVycm9yLiAgKi8KICAKQEAgLTIy OTgsNyArMjI4OCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjMtYWJp LmMKICAKICAgIC8qIERldGVybWluZSBhcmNoaXRlY3R1cmUuICAqLwogICAgZ2RiYXJjaCA9IGdl dF90eXBlX2FyY2ggKHR5cGUpOwotQEAgLTQ2Nyw3ICs0NjcsNyBAQCBnbnV2M19iYXNlY2xhc3Nf b2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwCitAQCAtNDYzLDcgKzQ2Myw3IEBAIGdudXYzX2Jhc2Vj bGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKICAgIGN1cl9iYXNlX29mZnNldCA9IGN1cl9i YXNlX29mZnNldCArIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNldCAoZ2RiYXJjaCk7CiAgICBp ZiAoKC0gY3VyX2Jhc2Vfb2Zmc2V0KSAlIFRZUEVfTEVOR1RIIChwdHJfdHlwZSkgIT0gMCkKICAg ICAgZXJyb3IgKF8oIk1pc2FsaWduZWQgdmJhc2Ugb2Zmc2V0LiIpKTsKQEAgLTIzMDcsNyArMjI5 Nyw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nbnUtdjMtYWJpLmMKICAKICAg IHZ0YWJsZSA9IGdudXYzX2dldF92dGFibGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJlc3MgKyBlbWJl ZGRlZF9vZmZzZXQpOwogICAgZ2RiX2Fzc2VydCAodnRhYmxlICE9IE5VTEwpOwotQEAgLTUxMSw3 ICs1MTEsNyBAQCBnbnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCitAQCAt NTA3LDcgKzUwNyw3IEBAIGdudXYzX2ZpbmRfbWV0aG9kX2luIChzdHJ1Y3QgdHlwZSAqZG9tYWkK ICAgICAgIHdlJ3JlIG91dCBvZiBsdWNrLiAgKi8KICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05f QkFTRUNMQVNTRVMgKGRvbWFpbik7IGkrKykKICAgICAgewpAQCAtMjMxNiwxMCArMjMwNiwxMCBA QCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZ251LXYzLWFiaS5jCiAgICAgICAgc3Ry dWN0IHR5cGUgKmJhc2V0eXBlOwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAo ZG9tYWluLCBpKSkKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nby1sYW5nLmgKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nby1sYW5nLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE0LTA2LTEzIDAzOjU5OjM2 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2dvLWxhbmcuaAky MDE0LTA2LTI0IDE2OjA3OjI3LjI1OTk4Njg5MSArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvZ28tbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM0MzE4ODQzICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ28tbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6 NDMuMTgyMzI2ODQwICswMTAwCiBAQCAtODUsNyArODUsNyBAQCBleHRlcm4gdm9pZCBnb19wcmlu dF90eXBlIChzdHJ1Y3QgdHlwZSAqCiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8K ICAKQEAgLTIzMjksMTAgKzIzMTksMTAgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2dvLWxhbmcuaAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAg CQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9n by12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ28tdmFscHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZ28tdmFscHJp bnQuYwkyMDE0LTA2LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2dvLXZhbHByaW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTk5ODY4OTEg KzAyMDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAx NS0wMS0wNiAyMjo0NDo0MS41MzQzMTg4NDMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9nby12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQwICswMTAwCiBA QCAtMzcsNyArMzcsNyBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMzU1LDQ0ICsyMzQ1LDExIEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9nby12YWxwcmludC5jCiAgCSAgICAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIENIRUNLX1RZ UEVERUYgKHR5cGUpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2kzODYtbmF0LmMK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2kzODYtbmF0LmMJ MjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9pMzg2LW5hdC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjU5OTg2ODkxICswMjAwCi1A QCAtMjkwLDcgKzI5MCw3IEBAIHN0YXRpYyBpbnQgaTM4Nl9yZW1vdmVfYWxpZ25lZF93YXRjaHBv aW4KLSAgICB2YWxpZCB2YWx1ZSwgYm9tYnMgdGhyb3VnaCBpbnRlcm5hbF9lcnJvci4gICovCi0g c3RhdGljIGludCBpMzg2X2hhbmRsZV9ub25hbGlnbmVkX3dhdGNocG9pbnQgKHN0cnVjdCBpMzg2 X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCi0gCQkJCQkgICAgICBpMzg2X3dwX29wX3Qgd2hhdCwK LS0JCQkJCSAgICAgIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLAotKwkJCQkJICAgICAgQ09SRV9B RERSIGFkZHIsIExPTkdFU1QgbGVuLAotIAkJCQkJICAgICAgZW51bSB0YXJnZXRfaHdfYnBfdHlw ZSB0eXBlKTsKLSAKLSAvKiBJbXBsZW1lbnRhdGlvbi4gICovCi1AQCAtNTAxLDggKzUwMSw4IEBA IGkzODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IGkKLSAKLSBzdGF0aWMgaW50 Ci0gaTM4Nl9oYW5kbGVfbm9uYWxpZ25lZF93YXRjaHBvaW50IChzdHJ1Y3QgaTM4Nl9kZWJ1Z19y ZWdfc3RhdGUgKnN0YXRlLAotLQkJCQkgICBpMzg2X3dwX29wX3Qgd2hhdCwgQ09SRV9BRERSIGFk ZHIsIGludCBsZW4sCi0tCQkJCSAgIGVudW0gdGFyZ2V0X2h3X2JwX3R5cGUgdHlwZSkKLSsJCQkJ ICAgaTM4Nl93cF9vcF90IHdoYXQsIENPUkVfQUREUiBhZGRyLAotKwkJCQkgICBMT05HRVNUIGxl biwgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB0eXBlKQotIHsKLSAgIGludCByZXR2YWwgPSAwOwot ICAgaW50IG1heF93cF9sZW4gPSBUQVJHRVRfSEFTX0RSX0xFTl84ID8gOCA6IDQ7Ci1AQCAtNjY1 LDcgKzY2NSw3IEBAIGkzODZfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3AKLSAK LSBzdGF0aWMgaW50Ci0gaTM4Nl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLAotLQkJCSAgICAgICBDT1JFX0FERFIgYWRkciwgaW50IGxlbikKLSsJCQkg ICAgICAgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQotIHsKLSAgIHN0cnVjdCBpMzg2X2Rl YnVnX3JlZ19zdGF0ZSAqc3RhdGUKLSAgICAgPSBpMzg2X2RlYnVnX3JlZ19zdGF0ZSAocHRpZF9n ZXRfcGlkIChpbmZlcmlvcl9wdGlkKSk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv aW5mLXR0cmFjZS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaW5mLXR0cmFjZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9pbmYtdHRyYWNl LmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9pbmYtdHRyYWNlLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNTk5ODY4OTEgKzAy MDAKLUBAIC0zNjksNyArMzY5LDcgQEAgaW5mX3R0cmFjZV9jYW5fdXNlX2h3X2JyZWFrcG9pbnQg KHN0cnVjdAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaW5mLXR0cmFjZS5jCTIw MTUtMDEtMDYgMjI6NDQ6NDEuNTM1MzE4ODQ4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvaW5mLXR0cmFjZS5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQwICswMTAwCitA QCAtMzY2LDcgKzM2Niw3IEBAIGluZl90dHJhY2VfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1 Y3QKICAKICBzdGF0aWMgaW50CiAgaW5mX3R0cmFjZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9p bnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjQwMSwxMCArMjM1OCwxMCBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvaW5mLXR0cmFjZS5jCiAgewogICAgcmV0dXJuIDE7 CiAgfQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2p2LWxhbmcuYworSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljcu OTAuMjAxNDA2MTMub3JpZy9nZGIvanYtbGFuZy5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMDI1OTg2 NjMxICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvanYtbGFuZy5jCTIwMTQtMDYt MjQgMTY6MDc6MjcuMjYwOTg2ODkyICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9qdi1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzUzMTg4NDggKzAxMDAKKysrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi1sYW5nLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODIz MjY4NDAgKzAxMDAKIEBAIC00MzYsNyArNDM2LDcgQEAgamF2YV9saW5rX2NsYXNzX3R5cGUgKHN0 cnVjdCBnZGJhcmNoICpnZAogICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsg aSA8IG5maWVsZHM7IGkrKykKICAgICAgewpAQCAtMjQyMywxMCArMjM4MCwxMCBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvanYtbGFuZy5jCiAgCSAgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2Vu Y29kaW5nID0gamF2YV9nZXRfZW5jb2RpbmcgKHR5cGUpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL2p2LWxhbmcuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LWxh bmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvanYtbGFu Zy5oCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvanYtbGFuZy5oCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjYwOTg2ODkyICswMjAw CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9qdi1sYW5nLmgJMjAxNS0wMS0wNiAy Mjo0NDo0MS41MzUzMTg4NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9qdi1s YW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODIzMjY4NDAgKzAxMDAKIEBAIC00Myw4ICs0Myw4 IEBAIHN0cnVjdCBidWlsdGluX2phdmFfdHlwZQogIAogIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVp bHRpbl9qYXZhX3R5cGUgKmJ1aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKQEAg LTI0MzgsMTEgKzIzOTUsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2p2LWxh bmcuaAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvanYtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2p2LXZhbHBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2p2LXZh bHByaW50LmMJMjAxNC0wNi0xMyAwMzo1OTozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9qdi12YWxwcmludC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjYwOTg2 ODkyICswMjAwCi1AQCAtMjY3LDcgKzI2Nyw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2 YWx1ZSAqdmFsLCBzdHIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2p2LXZhbHBy aW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzUzMTg4NDggKzAxMDAKKysrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9qdi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTgyMzI2ODQw ICswMTAwCitAQCAtMjY1LDcgKzI2NSw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1 ZSAqdmFsLCBzdHIKICAKICBzdGF0aWMgdm9pZAogIGphdmFfcHJpbnRfdmFsdWVfZmllbGRzIChz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNDUxLDcgKzI0 MDgsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvanYtdmFscHJpbnQuYwogIAkJ CSBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkgaW50IHJl Y3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQ2MCw3ICs0NjAsNyBA QCBqYXZhX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5CitAQCAtNDUzLDcgKzQ1 Myw3IEBAIGphdmFfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHkKICAKICB2b2lk CiAgamF2YV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKQEAgLTI0NjAsMTEgKzI0MTcsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2p2LXZhbHByaW50LmMKICAJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAogIAkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9sYW5n dWFnZS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbGFuZ3VhZ2UuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE0LTA2 LTEzIDAzOjU5OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L2xhbmd1YWdlLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjA5ODY4OTIgKzAyMDAKLUBAIC03MjIs NyArNzIyLDcgQEAgdW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE1LTAxLTA2IDIyOjQ0 OjQxLjUzNjMxODg1MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2xhbmd1YWdl LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODMzMjY4NDQgKzAxMDAKK0BAIC03MjAsNyArNzIwLDcg QEAgdW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgogIAogIHN0YXRpYyB2 b2lkCiAgdW5rX2xhbmdfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0 eXBlICp0eXBlLApAQCAtMjQ3Myw3ICsyNDMwLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL2xhbmd1YWdlLmMKICAJCSAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2Vf ZWxsaXBzZXMsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKICB7Ci1AQCAtNzQxLDcgKzc0MSw3IEBAIHVua19sYW5nX3ByaW50X3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlLAorQEAgLTczOSw3ICs3MzksNyBAQCB1bmtfbGFuZ19wcmludF90eXBlIChzdHJ1 Y3QgdHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3ZhbF9wcmludCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjQ4MiwxMSArMjQz OSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbGFuZ3VhZ2UuYwogIAkJICAg IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgIGNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xhbmd1YWdlLmgKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9sYW5ndWFnZS5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9sYW5ndWFnZS5oCTIwMTQtMDYtMTMgMDM6NTk6MzYu MDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbGFuZ3VhZ2UuaAky MDE0LTA2LTI0IDE2OjA3OjI3LjI2MDk4Njg5MiArMDIwMAotQEAgLTE4Myw3ICsxODMsNyBAQCBz dHJ1Y3QgbGFuZ3VhZ2VfZGVmbgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbGFu Z3VhZ2UuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNjMxODg1MyArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2xhbmd1YWdlLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODMzMjY4NDQg KzAxMDAKK0BAIC0xODksNyArMTg5LDcgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm4KICAJCQkgIHN0 cnVjdCB1aV9maWxlICogc3RyZWFtKTsKICAKICAgICAgdm9pZCAoKmxhX3ByaW50c3RyKSAoc3Ry dWN0IHVpX2ZpbGUgKiBzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLApAQCAtMjQ5NSw3ICsy NDUyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xhbmd1YWdlLmgKICAJCQkg Y29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1AQCAtMjI1LDcgKzIyNSw3IEBAIHN0cnVj dCBsYW5ndWFnZV9kZWZuCitAQCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZu CiAgCiAgICAgIHZvaWQgKCpsYV92YWxfcHJpbnQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkg IGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKQEAgLTI1MDQsMTAgKzI0NjEsMTAgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2xhbmd1YWdlLmgKICAJCQkgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAg CQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbTItbGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbTItbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5v cmlnL2dkYi9tMi1sYW5nLmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsr KyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tMi1sYW5nLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4y NjE5ODY4OTMgKzAyMDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL20yLWxhbmcu YwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzNjMxODg1MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL20yLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MzMyNjg0NCArMDEwMAog QEAgLTEwNCwxMCArMTA0LDEwIEBAIG0yX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0 eXBlLAogIAogIHN0YXRpYyB2b2lkCkBAIC0yNTQyLDEwICsyNDk5LDEwIEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9tMi1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhp bmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVk X2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tMi1sYW5nLmgKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMi1sYW5nLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE0LTA2LTEzIDAzOjU5OjM3 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL20yLWxhbmcuaAky MDE0LTA2LTI0IDE2OjA3OjI3LjI2MTk4Njg5MyArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvbTItbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM2MzE4ODUzICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6 NDMuMTgzMzI2ODQ0ICswMTAwCiBAQCAtMzQsNyArMzQsNyBAQCBleHRlcm4gdm9pZCBtMl9wcmlu dF90eXBlZGVmIChzdHJ1Y3QgdHlwCiAgZXh0ZXJuIGludCBtMl9pc19sb25nX3NldCAoc3RydWN0 IHR5cGUgKnR5cGUpOwogIGV4dGVybiBpbnQgbTJfaXNfdW5ib3VuZGVkX2FycmF5IChzdHJ1Y3Qg dHlwZSAqdHlwZSk7CkBAIC0yNTU1LDExICsyNTEyLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi9tMi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbTItdHlwZXByaW50LmMK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMi10eXBlcHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNC0w Ni0xMyAwMzo1OTozNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9tMi10eXBlcHJpbnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2MTk4Njg5MyArMDIwMAotQEAg LTIzMyw5ICsyMzMsMTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBl LAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0w MS0wNiAyMjo0NDo0MS41MzczMTg4NTggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9tMi10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4MzMyNjg0NCArMDEwMAorQEAg LTIzMCw5ICsyMzAsMTIgQEAgc3RhdGljIHZvaWQgbTJfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBl LAogIAkgIG0yX3ByaW50X2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFICh0eXBlKSwgc3RyZWFtLCBz aG93LCAtMSwgMSk7CiAgCX0KICAgICAgICBlbHNlCkBAIC0yNTc1LDEwICsyNTMyLDEwIEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tMi10eXBlcHJpbnQuYwogICAgICB9CiAgICBm cHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICJdIE9GICIpOwogICAgbTJfcHJpbnRfdHlwZSAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSksICIiLCBzdHJlYW0sIHNob3csIGxldmVsLCBmbGFncyk7Ci1J bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbTItdmFscHJpbnQuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL20yLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43 LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNC0wNi0xMyAwMzo1OTozNy4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tMi12YWxwcmludC5j CTIwMTQtMDYtMjQgMTY6MDc6MjcuMjYxOTg2ODkzICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9tMi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4 ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTAx LTA2IDIyOjQ0OjQzLjE4MzMyNjg0NCArMDEwMAogQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGlu dCBwcmludF91bnBhY2tlZF9wb2ludGVyIChzdHJ1YwogIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtKTsKICBzdGF0aWMgdm9pZApAQCAtMjY0NCwxMCArMjYwMSwxMCBAQCBJbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvbTItdmFscHJpbnQuYwogIAogIAkJICAvKiBMb29rIGZvciBh IE5VTEwgY2hhci4gICovCiAgCQkgIGZvciAodGVtcF9sZW4gPSAwOwotSW5kZXg6IGdkYi03Ljcu OTAuMjAxNDA2MTMvZ2RiL21lbXJhbmdlLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9tZW1yYW5nZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dk Yi9tZW1yYW5nZS5jCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvbWVtcmFuZ2UuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2MTk4 Njg5MyArMDIwMAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbWVtcmFuZ2UuYwky MDE1LTAxLTA2IDIyOjQ0OjQxLjUzNzMxODg1OCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL21lbXJhbmdlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKIEBA IC0yMSw4ICsyMSw4IEBACiAgI2luY2x1ZGUgIm1lbXJhbmdlLmgiCiAgCkBAIC0yNjU5LDEwICsy NjE2LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tZW1yYW5nZS5jCiAgewog ICAgVUxPTkdFU1QgaCwgbDsKICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tZW1y YW5nZS5oCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWVtcmFuZ2UuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbWVtcmFuZ2UuaAkyMDE0LTA2 LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L21lbXJhbmdlLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjE5ODY4OTMgKzAyMDAKKy0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0wMS0wNiAyMjo0NDo0MS41 MzczMTg4NTggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tZW1yYW5nZS5oCTIw MTUtMDEtMDYgMjI6NDQ6NDMuMTg0MzI2ODQ5ICswMTAwCiBAQCAtMzAsNyArMzAsNyBAQCBzdHJ1 Y3QgbWVtX3JhbmdlCiAgICBDT1JFX0FERFIgc3RhcnQ7CiAgCkBAIC0yNjgxLDEzICsyNjM4LDEz IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9tZW1yYW5nZS5oCiArZXh0ZXJuIGlu dCBtZW1fcmFuZ2VzX292ZXJsYXAgKENPUkVfQUREUiBzdGFydDEsIExPTkdFU1QgbGVuMSwKICsJ CQkgICAgICAgQ09SRV9BRERSIHN0YXJ0MiwgTE9OR0VTVCBsZW4yKTsKICAKLSAvKiBTb3J0IHJh bmdlcyBieSBzdGFydCBhZGRyZXNzLCB0aGVuIGNvYWxlc2NlIGNvbnRpZ3VvdXMgb3IKLSAgICBv dmVybGFwcGluZyByYW5nZXMuICAqLwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL21p cHMtbGludXgtbmF0LmMKKyAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4gICov CisgCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWlwcy1saW51eC1uYXQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvbWlwcy1saW51eC1uYXQu YwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjI5ODY4OTQg KzAyMDAKLUBAIC01OTAsNyArNTkwLDcgQEAgbWlwc19saW51eF9zdG9wcGVkX2RhdGFfYWRkcmVz cyAoc3RydWN0CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9taXBzLWxpbnV4LW5h dC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM3MzE4ODU4ICswMTAwCisrKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NDMyNjg0 OSArMDEwMAorQEAgLTU4Niw3ICs1ODYsNyBAQCBtaXBzX2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRy ZXNzIChzdHJ1Y3QKICAKICBzdGF0aWMgaW50CiAgbWlwc19saW51eF9yZWdpb25fb2tfZm9yX2h3 X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjY5NiwxMSArMjY1Mywx MSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvbWlwcy1saW51eC1uYXQuYwogIHsK ICAgIHN0cnVjdCBwdF93YXRjaF9yZWdzIGR1bW15X3JlZ3M7CiAgICBpbnQgaTsKLUluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9vcGVuY2wtbGFuZy5jCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvb3BlbmNsLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAx NDA2MTMub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNC0w Ni0yNCAxNjowNzoyNy4yNjI5ODY4OTQgKzAyMDAKLUBAIC04MCwxMSArODAsMTEgQEAgYnVpbHRp bl9vcGVuY2xfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYgorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUzODMxODg2MyAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNS0wMS0w NiAyMjo0NDo0My4xODQzMjY4NDkgKzAxMDAKK0BAIC03OCwxMSArNzgsMTEgQEAgYnVpbHRpbl9v cGVuY2xfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYgogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAq CiAgbG9va3VwX29wZW5jbF92ZWN0b3JfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGVu dW0gdHlwZV9jb2RlIGNvZGUsCkBAIC0yNzE0LDcgKzI2NzEsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvb3BlbmNsLWxhbmcuYwogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBOVUxM OwogICAgc3RydWN0IHR5cGUgKip0eXBlcyA9IGJ1aWx0aW5fb3BlbmNsX3R5cGUgKGdkYmFyY2gp OwogIAotQEAgLTE3NCw5ICsxNzQsOSBAQCBsdmFsX2Z1bmNfcmVhZCAoc3RydWN0IHZhbHVlICp2 KQorQEAgLTE3Miw5ICsxNzIsOSBAQCBsdmFsX2Z1bmNfcmVhZCAoc3RydWN0IHZhbHVlICp2KQog ICAgc3RydWN0IGx2YWxfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVl X2NvbXB1dGVkX2Nsb3N1cmUgKHYpOwogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBl ZGVmICh2YWx1ZV90eXBlICh2KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0eXBlID0gVFlQRV9UQVJH RVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYy0+dmFsKSkpOwpAQCAtMjcyNyw3 ICsyNjg0LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL29wZW5jbC1sYW5nLmMK ICAgIExPTkdFU1QgbG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBAIC0yMDMs OSArMjAzLDkgQEAgbHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVjdAorQEAg LTIwMSw5ICsyMDEsOSBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0 CiAgICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFs dWVfY29tcHV0ZWRfY2xvc3VyZSAodik7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHZhbHVlX3R5cGUgKHYpKTsKICAgIHN0cnVjdCB0eXBlICplbHR5cGUgPSBUWVBFX1RB UkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSk7CkBAIC0yNzQw LDU2ICsyNjk3LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL29wZW5jbC1sYW5n LmMKICAgIExPTkdFU1QgbG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBAIC0y NDMsMTcgKzI0MywxOCBAQCBsdmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0 Ci0gLyogUmV0dXJuIG5vbnplcm8gaWYgYWxsIGJpdHMgaW4gViB3aXRoaW4gT0ZGU0VUIGFuZCBM RU5HVEggYXJlIHZhbGlkLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tbHZhbF9mdW5jX2NoZWNrX3Zh bGlkaXR5IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0r bHZhbF9mdW5jX2NoZWNrX3ZhbGlkaXR5IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsIExPTkdFU1Qg b2Zmc2V0LAotKwkJCSAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgc3RydWN0IGx2YWxfY2xvc3Vy ZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYp OwotKyAgc3RydWN0IHR5cGUgKnQgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwp KTsKLSAgIC8qIFNpemUgb2YgdGhlIHRhcmdldCB0eXBlIGluIGJpdHMuICAqLwotLSAgaW50IGVs c2l6ZSA9Ci0tICAgICAgVFlQRV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKGMtPnZhbCkpKSkgKiA4OwotLSAgaW50IHN0YXJ0cmVzdCA9IG9mZnNl dCAlIGVsc2l6ZTsKLS0gIGludCBzdGFydCA9IG9mZnNldCAvIGVsc2l6ZTsKLS0gIGludCBlbmRy ZXN0ID0gKG9mZnNldCArIGxlbmd0aCkgJSBlbHNpemU7Ci0tICBpbnQgZW5kID0gKG9mZnNldCAr IGxlbmd0aCkgLyBlbHNpemU7Ci0tICBpbnQgaTsKLSsgIExPTkdFU1QgZWxzaXplID0gVFlQRV9M RU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHQpKSAqIDg7Ci0rICBMT05HRVNUIHN0YXJ0cmVzdCA9 IG9mZnNldCAlIGVsc2l6ZTsKLSsgIExPTkdFU1Qgc3RhcnQgPSBvZmZzZXQgLyBlbHNpemU7Ci0r ICBMT05HRVNUIGVuZHJlc3QgPSAob2Zmc2V0ICsgbGVuZ3RoKSAlIGVsc2l6ZTsKLSsgIExPTkdF U1QgZW5kID0gKG9mZnNldCArIGxlbmd0aCkgLyBlbHNpemU7Ci0rICBMT05HRVNUIGk7Ci0gCi0g ICBpZiAoZW5kcmVzdCkKLSAgICAgZW5kKys7Ci1AQCAtMjYzLDggKzI2NCw4IEBAIGx2YWxfZnVu Y19jaGVja192YWxpZGl0eSAoY29uc3Qgc3RydWN0IHYKLSAKLSAgIGZvciAoaSA9IHN0YXJ0OyBp IDwgZW5kOyBpKyspCi0gICAgIHsKLS0gICAgICBpbnQgY29tcF9vZmZzZXQgPSAoaSA9PSBzdGFy dCkgPyBzdGFydHJlc3QgOiAwOwotLSAgICAgIGludCBjb21wX2xlbmd0aCA9IChpID09IGVuZCkg PyBlbmRyZXN0IDogZWxzaXplOwotKyAgICAgIExPTkdFU1QgY29tcF9vZmZzZXQgPSAoaSA9PSBz dGFydCkgPyBzdGFydHJlc3QgOiAwOwotKyAgICAgIExPTkdFU1QgY29tcF9sZW5ndGggPSAoaSA9 PSBlbmQpID8gZW5kcmVzdCA6IGVsc2l6ZTsKLSAKLSAgICAgICBpZiAoIXZhbHVlX2JpdHNfdmFs aWQgKGMtPnZhbCwgYy0+aW5kaWNlc1tpXSAqIGVsc2l6ZSArIGNvbXBfb2Zmc2V0LAotIAkJCSAg ICAgY29tcF9sZW5ndGgpKQotQEAgLTI4MSw4ICsyODIsOCBAQCBsdmFsX2Z1bmNfY2hlY2tfYW55 X3ZhbGlkIChjb25zdCBzdHJ1Y3QKLSB7Ci0gICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpjID0gKHN0 cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7Ci0gICAvKiBT aXplIG9mIHRoZSB0YXJnZXQgdHlwZSBpbiBiaXRzLiAgKi8KLS0gIGludCBlbHNpemUgPQotLSAg ICAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChjLT52YWwpKSkpICogODsKLSsgIExPTkdFU1QgZWxzaXplID0KLSsJICAgVFlQRV9MRU5H VEggKFRZUEVfVEFSR0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGMtPnZhbCkp KSkgKiA4OwotICAgaW50IGk7Ci0gCi0gICBmb3IgKGkgPSAwOyBpIDwgYy0+bjsgaSsrKQotQEAg LTI5NywxNyArMjk4LDE3IEBAIGx2YWxfZnVuY19jaGVja19hbnlfdmFsaWQgKGNvbnN0IHN0cnVj dAorQEAgLTI0MywxNyArMjQzLDE3IEBAIGx2YWxfZnVuY193cml0ZSAoc3RydWN0IHZhbHVlICp2 LCBzdHJ1Y3QKICAKICBzdGF0aWMgaW50CiAgbHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2lu dGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsCkBAIC0yNzk5LDE0ICsyNzA3LDEzIEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9vcGVuY2wtbGFuZy5jCiAgICBzdHJ1Y3QgbHZhbF9j bG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3Vy ZSAodik7CiAgICAvKiBTaXplIG9mIHRoZSB0YXJnZXQgdHlwZSBpbiBiaXRzLiAgKi8KIC0gIGlu dCBlbHNpemUgPQotLSAgICAgIFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFIChjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSkpICogODsKKysgIExPTkdFU1QgZWxzaXplID0K KyAgICAgICBUWVBFX0xFTkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFs dWVfdHlwZSAoYy0+dmFsKSkpKSAqIDg7CiAtICBpbnQgc3RhcnRyZXN0ID0gb2Zmc2V0ICUgZWxz aXplOwogLSAgaW50IHN0YXJ0ID0gb2Zmc2V0IC8gZWxzaXplOwogLSAgaW50IGVuZHJlc3QgPSAo b2Zmc2V0ICsgbGVuZ3RoKSAlIGVsc2l6ZTsKIC0gIGludCBlbmQgPSAob2Zmc2V0ICsgbGVuZ3Ro KSAvIGVsc2l6ZTsKIC0gIGludCBpOwotKyAgTE9OR0VTVCBlbHNpemUgPQotKwkgICBUWVBFX0xF TkdUSCAoVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYy0+dmFs KSkpKSAqIDg7CiArICBMT05HRVNUIHN0YXJ0cmVzdCA9IG9mZnNldCAlIGVsc2l6ZTsKICsgIExP TkdFU1Qgc3RhcnQgPSBvZmZzZXQgLyBlbHNpemU7CiArICBMT05HRVNUIGVuZHJlc3QgPSAob2Zm c2V0ICsgbGVuZ3RoKSAlIGVsc2l6ZTsKQEAgLTI4MTUsNyArMjcyMiw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9vcGVuY2wtbGFuZy5jCiAgCiAgICBpZiAoZW5kcmVzdCkKICAg ICAgZW5kKys7Ci1AQCAtMzE3LDggKzMxOCw4IEBAIGx2YWxfZnVuY19jaGVja19zeW50aGV0aWNf cG9pbnRlciAoY29uc3QKK0BAIC0yNjMsOCArMjYzLDggQEAgbHZhbF9mdW5jX2NoZWNrX3N5bnRo ZXRpY19wb2ludGVyIChjb25zdAogIAogICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykK ICAgICAgewpAQCAtMjgyNiwxMSArMjczMywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgICAgIGlmICghdmFsdWVfYml0c19zeW50aGV0aWNf cG9pbnRlciAoYy0+dmFsLAogIAkJCQkJIGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29m ZnNldCwKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wLWxhbmcuYworSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3AtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYxMy5vcmlnL2dkYi9wLWxhbmcuYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAw MCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3AtbGFuZy5jCTIwMTQtMDYtMjQg MTY6MDc6MjcuMjYyOTg2ODk0ICswMjAwCi1AQCAtOTYsOCArOTYsOCBAQCBwYXNjYWxfbWFpbl9u YW1lICh2b2lkKQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcC1sYW5nLmMJMjAx NS0wMS0wNiAyMjo0NDo0MS41MzgzMTg4NjMgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9wLWxhbmcuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NDMyNjg0OSArMDEwMAorQEAgLTk1 LDggKzk1LDggQEAgcGFzY2FsX21haW5fbmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxl IG9mIFRBUkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0 aGlzIGRvZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwogIGlu dApAQCAtMjg0MSw3ICsyNzQ4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3At bGFuZy5jCiAgCQkgICAgICAgc3RydWN0IHR5cGUgKipjaGFyX3R5cGUsCiAgCQkgICAgICAgY29u c3QgY2hhciAqKmFycmF5bmFtZSkKICB7Ci1AQCAtMjE3LDEyICsyMTcsMTIgQEAgcGFzY2FsX3By aW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eQorQEAgLTIxNiwxMiArMjE2LDEyIEBAIHBh c2NhbF9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHkKICAKICB2b2lkCiAgcGFzY2Fs X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAg LTI4NTYsNyArMjc2Myw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wLWxhbmcu YwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIGludCBpbl9xdW90ZXMg PSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwotQEAgLTI1MCw5ICsyNTAsOSBAQCBwYXNjYWxf cHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjQ5LDkgKzI0OSw5IEBAIHBh c2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAgICAgewogICAgICAgIC8q IFBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2UgYXJlIGV4YW1pbmluZwogICAgICAgICAgIHRv IHNlZSB3aGV0aGVyIGl0IGlzIHJlcGVhdGVkLiAgKi8KQEAgLTI4NjgsNyArMjc3NSw3IEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wLWxhbmcuYwogICAgICAgIHVuc2lnbmVkIGxv bmcgaW50IGN1cnJlbnRfY2hhcjsKICAKICAgICAgICBRVUlUOwotQEAgLTI4NCw3ICsyODQsNyBA QCBwYXNjYWxfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjgzLDcgKzI4 Myw3IEBAIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJICAgICAg aW5fcXVvdGVzID0gMDsKICAJICAgIH0KICAJICBwYXNjYWxfcHJpbnRjaGFyIChjdXJyZW50X2No YXIsIHR5cGUsIHN0cmVhbSk7CkBAIC0yODc3LDEwICsyNzg0LDEwIEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9wLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3Nf cHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29t bWEgPSAxOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3AtbGFuZy5oCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43 LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcC1sYW5nLmgJMjAxNC0wNi0y NCAxNjowNzoyNy4yNjI5ODY4OTQgKzAyMDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL3AtbGFuZy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTM4MzE4ODYzICswMTAwCisrKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvcC1sYW5nLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xODQzMjY4 NDkgKzAxMDAKIEBAIC0zNiw3ICszNiw3IEBAIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludF90eXBl IChzdHJ1Y3QgdHkKICBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5 cGUgKiwgc3RydWN0IHN5bWJvbCAqLAogIAkJCQkgIHN0cnVjdCB1aV9maWxlICopOwpAQCAtMjkx NSwxMSArMjgyMiwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcC1sYW5nLmgK ICAJCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKICAJCQkJCSAgICAgIGlu dCwKICAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3AtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9n ZGIvcC12YWxwcmludC5jCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcC12YWxwcmludC5jCTIwMTQtMDYtMjQgMTY6MDc6Mjcu MjYyOTg2ODk0ICswMjAwCi1AQCAtNTgsNyArNTgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdl bmVyaWNfdmFsX3ByaW50X2RlCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9wLXZh bHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41MzkzMTg4NjggKzAxMDAKKysrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9wLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODUzMjY4 NTQgKzAxMDAKK0BAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192 YWxfcHJpbnRfZGUKICAKICB2b2lkCiAgcGFzY2FsX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjkyOCw3ICsyODM1LDcgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5h bF92YWx1ZSwKICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp Ci1AQCAtNjksOCArNjksOCBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uCitAQCAtNjgsOCArNjgsOCBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uCiAgICB1bnNpZ25lZCBsZW47CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3Vu ZDsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlOwpAQCAtMjkzOSw3ICsyODQ2LDcgQEAgSW5kZXg6 IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3AtdmFscHJpbnQuYwogICAgc3RydWN0IHR5cGUgKmNo YXJfdHlwZTsKICAgIENPUkVfQUREUiBhZGRyOwogICAgaW50IHdhbnRfc3BhY2UgPSAwOwotQEAg LTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3N0YXRpY19m CitAQCAtNDY3LDcgKzQ2Nyw3IEBAIHN0YXRpYyB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfc3Rh dGljX2YKICAJCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwog IAogIHN0YXRpYyB2b2lkIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICos IGNvbnN0IGdkYl9ieXRlICosCkBAIC0yOTQ4LDcgKzI4NTUsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvcC12YWxwcmludC5jCiAgCQkJCSAgICAgICBDT1JFX0FERFIsIHN0cnVj dCB1aV9maWxlICosIGludCwKICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJ CQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKLUBAIC01MjcsNyAr NTI3LDcgQEAgcGFzY2FsX29iamVjdF9pc192dGJsX21lbWJlciAoc3RydWN0IHR5cAorQEAgLTUy Niw3ICs1MjYsNyBAQCBwYXNjYWxfb2JqZWN0X2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwCiAg CiAgdm9pZAogIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yOTU3LDcgKzI4NjQsNyBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcC12YWxwcmludC5jCiAgCQkJCSAgQ09SRV9BRERS IGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJCSAgaW50IHJlY3Vyc2UsCiAg CQkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNzAzLDcgKzcwMyw3IEBAIHBhc2Nh bF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QKK0BAIC02OTcsNyArNjk3LDcgQEAg cGFzY2FsX29iamVjdF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdAogIAogIHN0YXRpYyB2b2lk CiAgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLApAQCAtMjk2Niw3ICsyODczLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3AtdmFscHJpbnQuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJCSAgIGludCByZWN1cnNlLAogIAkJCSAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTcyNiwxMSArNzI2LDExIEBAIHBhc2NhbF9vYmplY3RfcHJp bnRfdmFsdWUgKHN0cnVjdCB0eXBlICoKK0BAIC03MjAsMTEgKzcyMCwxMSBAQCBwYXNjYWxfb2Jq ZWN0X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgbl9i YXNlY2xhc3NlczsgaSsrKQogICAgICB7CkBAIC0yOTgwLDExICsyODg3LDExIEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wLXZhbHByaW50LmMKICAgICAgICB2b2xhdGlsZSBzdHJ1 Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKICAgICAgICBpbnQgc2tpcCA9IDA7CiAgCi1JbmRleDogZ2Ri LTcuNy45MC4yMDE0MDYxMy9nZGIvcHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvcHBjLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4y MDE0MDYxMy5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wcGMtbGludXgtbmF0LmMJ MjAxNC0wNi0yNCAxNjowNzoyNy4yNjM5ODY4OTUgKzAyMDAKLUBAIC0xNDk4LDcgKzE0OTgsNyBA QCBwcGNfbGludXhfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1Y3QKKy0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjUz OTMxODg2OCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3BwYy1saW51eC1uYXQu YwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4NTMyNjg1NCArMDEwMAorQEAgLTE1MDEsNyArMTUwMSw3 IEBAIHBwY19saW51eF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdAogIAogIHN0YXRpYyBp bnQKICBwcGNfbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0 X29wcyAqc2VsZiwKQEAgLTI5OTMsMTEgKzI5MDAsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1 YW50aXRpZXMuICAqLwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcmludGNt ZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9wcmludGNt ZC5jCTIwMTQtMDYtMjQgMTY6MDc6MjYuNjQwOTg2MjA0ICswMjAwCi0rKysgZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvcHJpbnRjbWQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2Mzk4Njg5NSArMDIw MAotQEAgLTI4OCw3ICsyODgsNyBAQCBwcmludF9mb3JtYXR0ZWQgKHN0cnVjdCB2YWx1ZSAqdmFs LCBpbnQKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNS0w MS0wNiAyMjo0NDo0MS41NDAzMTg4NzIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9wcmludGNtZC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTg1MzI2ODU0ICswMTAwCitAQCAtMjg1 LDcgKzI4NSw3IEBAIHByaW50X2Zvcm1hdHRlZCAoc3RydWN0IHZhbHVlICp2YWwsIGludAogIAkJ IHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVj a190eXBlZGVmICh2YWx1ZV90eXBlICh2YWwpKTsKQEAgLTMwMDYsNyArMjkxMyw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9wcmludGNtZC5jCiAgCiAgICBpZiAoVkFMVUVfTFZB TCAodmFsKSA9PSBsdmFsX21lbW9yeSkKICAgICAgbmV4dF9hZGRyZXNzID0gdmFsdWVfYWRkcmVz cyAodmFsKSArIGxlbjsKLUBAIC0zNjYsNyArMzY2LDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRl ZCAoY29uc3Qgdm9pZCAqdmFsYQorQEAgLTM2Myw3ICszNjMsNyBAQCBwcmludF9zY2FsYXJfZm9y bWF0dGVkIChjb25zdCB2b2lkICp2YWxhCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gg PSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKICAgIExPTkdFU1QgdmFsX2xvbmcgPSAwOwpAQCAtMzAx NSwxMSArMjkyMiwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcHJpbnRjbWQu YwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdk YmFyY2gpOwogIAogICAgLyogU3RyaW5nIHByaW50aW5nIHNob3VsZCBnbyB0aHJvdWdoIHZhbF9w cmludF9zY2FsYXJfZm9ybWF0dGVkLiAgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9wcm9jZnMuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Byb2Nmcy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9wcm9jZnMuYwkyMDE0LTA2 LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3Byb2Nmcy5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjY0OTg2ODk2ICswMjAwCi1AQCAtNDkxNiw3 ICs0OTE2LDcgQEAgcHJvY2ZzX3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XworLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNS0wMS0wNiAyMjo0NDo0 MS41NDEzMTg4NzcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcm9jZnMuYwky MDE1LTAxLTA2IDIyOjQ0OjQzLjE4NjMyNjg1OSArMDEwMAorQEAgLTQ4NTksNyArNDg1OSw3IEBA IHByb2Nmc19yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KICAKICBzdGF0aWMgaW50 CiAgcHJvY2ZzX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMg KnNlbGYsCkBAIC0zMDI4LDExICsyOTM1LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9wcm9jZnMuYwogIHsKICAgIC8qIFRoZSBtYW4gcGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xh cmlzIDIuNiBhbmQgdXAgc2F5cyB0aGF0IHRoZQogICAgICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0 aG91c2FuZHMiIG9mIGhhcmR3YXJlIHdhdGNocG9pbnRzLCBidXQgZ2l2ZXMKLUluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwky MDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjY0OTg2 ODk2ICswMjAwCi1AQCAtNjg3LDcgKzY4Nyw3IEBAIHByaW50X2NoaWxkcmVuIChQeU9iamVjdCAq cHJpbnRlciwgY29uc3QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3B5dGhvbi9w eS1wcmV0dHlwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQxMzE4ODc3ICswMTAwCisrKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0wMS0w NiAyMjo0NDo0My4xODYzMjY4NTkgKzAxMDAKK0BAIC02ODYsNyArNjg2LDcgQEAgcHJpbnRfY2hp bGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAogIGVudW0gZXh0X2xhbmdfcmMKICBnZGJw eV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3Vh Z2VfZGVmbiAqZXh0bGFuZywKICAJCQkJc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLApAQCAtMzA0MSwxMSArMjk0OCwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKICAJCQkJc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCQlj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvcmVnY2FjaGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9n ZGIvcmVnY2FjaGUuYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3JlZ2NhY2hlLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjQ5 ODY4OTYgKzAyMDAKLUBAIC04OTksNyArODk5LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93 cml0ZV9mdHlwZSkgKHN0cgorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcmVnY2Fj aGUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0MjMxODg4MiArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODczMjY4NjQgKzAx MDAKK0BAIC05NDEsNyArOTQxLDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlw ZSkgKHN0cgogIAogIHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX3hmZXJf cGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTMwNTQsNyAr Mjk2MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5jCiAgCQkg ICAgZW51bSByZWdpc3Rlcl9zdGF0dXMgKCpyZWFkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNo ZSwKICAJCQkJCQkgIGludCByZWdudW0sCiAgCQkJCQkJICBnZGJfYnl0ZSAqYnVmKSwKLUBAIC05 NDMsNyArOTQzLDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZwor QEAgLTk4NSw3ICs5ODUsNyBAQCByZWdjYWNoZV94ZmVyX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAq cmVnCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMzA2Myw3ICsyOTcwLDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1 Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTk1NCw3 ICs5NTQsNyBAQCByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC05 OTYsNyArOTk2LDcgQEAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlCiAg CiAgdm9pZAogIHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCBpbnQgcmVnbnVtLApAQCAtMzA3Miw3ICsyOTc5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRl c2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTk2NSw3ICs5NjUsNyBAQCByZWdjYWNoZV9y YXdfd3JpdGVfcGFydCAoc3RydWN0IHJlZ2NhY2hlCitAQCAtMTAwNyw3ICsxMDA3LDcgQEAgcmVn Y2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZQogIAogIGVudW0gcmVnaXN0ZXJf c3RhdHVzCiAgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwgaW50IHJlZ251bSwKQEAgLTMwODEsNyArMjk4OCw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpk ZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAKLUBAIC05NzYsNyArOTc2LDcgQEAgcmVnY2FjaGVf Y29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhYworQEAgLTEwMTgsNyArMTAxOCw3IEBAIHJl Z2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWMKICAKICB2b2lkCiAgcmVnY2Fj aGVfY29va2VkX3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdu dW0sCkBAIC0zMDkwLDExICsyOTk3LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2Nh Y2hlLT5kZXNjcjsKICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5o CitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE0LTA2LTEzIDAz OjU5OjM3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3JlZ2Nh Y2hlLmgJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjU5ODY4OTcgKzAyMDAKLUBAIC04OSw5ICs4OSw5 IEBAIGV4dGVybiB2b2lkIHJlZ2NhY2hlX3Jhd193cml0ZV91bnNpZ25lZAorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU0MjMx ODg4MiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0w MS0wNiAyMjo0NDo0My4xODczMjY4NjQgKzAxMDAKK0BAIC05Miw5ICs5Miw5IEBAIGV4dGVybiB2 b2lkIHJlZ2NhY2hlX3Jhd193cml0ZV91bnNpZ25lZAogIAogIGV4dGVybiBlbnVtIHJlZ2lzdGVy X3N0YXR1cwogICAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwgaW50IHJlZ251bSwKQEAgLTMxMDYsNyArMzAxMyw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9yZWdjYWNoZS5oCiAgCiAgdm9pZCByZWdjYWNoZV9pbnZhbGlkYXRlIChz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKTsKICAKLUBAIC0xMjgsMTAgKzEy OCwxMSBAQCBleHRlcm4gdm9pZCByZWdjYWNoZV9jb29rZWRfd3JpdGVfdW5zaWduCitAQCAtMTMx LDEwICsxMzEsMTEgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbgog ICAgIHdyaXRlIHN0eWxlIG9wZXJhdGlvbnMuICAqLwogIAogIGVudW0gcmVnaXN0ZXJfc3RhdHVz IHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCkBA IC0zMTIxLDExICszMDI4LDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZWdj YWNoZS5oCiAgCiAgLyogU3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICov CiAgCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9yZW1vdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAu MjAxNDA2MTMub3JpZy9nZGIvcmVtb3RlLmMJMjAxNC0wNi0yNCAxNjowNzoyNi42NTg5ODYyMjQg KzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9yZW1vdGUuYwkyMDE0LTA2LTI0IDE2 OjA3OjI3LjI2Njk4Njg5OCArMDIwMAotQEAgLTgyNzIsNyArODI3Miw3IEBAIGludCByZW1vdGVf aHdfYnJlYWtwb2ludF9saW1pdCA9IC0xOworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvcmVtb3RlLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDQzMTg4OTIgKzAxMDAKKysrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9yZW1vdGUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE4ODMyNjg2 OSArMDEwMAorQEAgLTgzNzEsNyArODM3MSw3IEBAIGludCByZW1vdGVfaHdfYnJlYWtwb2ludF9s aW1pdCA9IC0xOwogIAogIHN0YXRpYyBpbnQKICByZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRj aHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTMxMzQsMjQgKzMwNDEsMjQgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90 ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9zcHUtbXVsdGlhcmNoLmMKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9zcHUtbXVsdGlhcmNoLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43 LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE0LTA2LTEzIDAzOjU5OjM3 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3NwdS1tdWx0aWFy Y2guYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2Njk4Njg5OCArMDIwMAotQEAgLTExOSw3ICsxMTks NyBAQCBzcHVfdGhyZWFkX2FyY2hpdGVjdHVyZSAoc3RydWN0IHRhcmdldF9vCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wMS0wNiAyMjo0NDo0 MS41NDUzMTg4OTcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcHUtbXVsdGlh cmNoLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xODgzMjY4NjkgKzAxMDAKK0BAIC0xMTcsNyArMTE3 LDcgQEAgc3B1X3RocmVhZF9hcmNoaXRlY3R1cmUgKHN0cnVjdCB0YXJnZXRfbwogIC8qIE92ZXJy aWRlIHRoZSB0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCiAgc3Rh dGljIGludAogIHNwdV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf b3BzICpzZWxmLAogLQkJCQkgQ09SRV9BRERSIGFkZHIsIGludCBsZW4pCiArCQkJCSBDT1JFX0FE RFIgYWRkciwgTE9OR0VTVCBsZW4pCiAgewotICAgc3RydWN0IHRhcmdldF9vcHMgKm9wc19iZW5l YXRoID0gZmluZF90YXJnZXRfYmVuZWF0aCAoJnNwdV9vcHMpOwotICAgd2hpbGUgKG9wc19iZW5l YXRoICYmICFvcHNfYmVuZWF0aC0+dG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KQotSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3N0YWNrLmMKKyAgIHN0cnVjdCB0YXJnZXRfb3Bz ICpvcHNfYmVuZWF0aCA9IGZpbmRfdGFyZ2V0X2JlbmVhdGggKHNlbGYpOworIAorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3N0YWNrLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43Ljkw LjIwMTQwNjEzLm9yaWcvZ2RiL3N0YWNrLmMJMjAxNC0wNi0xMyAwMzo1OTozNy4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9zdGFjay5jCTIwMTQtMDYtMjQgMTY6 MDc6MjcuMjY3OTg2OTAwICswMjAwCi1AQCAtMTc5LDcgKzE3OSw3IEBAIHByaW50X3N0YWNrX2Zy YW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL3N0YWNrLmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41NDYzMTg5MDIgKzAxMDAKKysrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9zdGFjay5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTg5MzI2ODc0 ICswMTAwCitAQCAtMTc1LDcgKzE3NSw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJh bWVfaW5mbyAqZnIKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNzIGFy Z3VtZW50KS4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMxNjAsNyArMzA2Nyw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9zdGFjay5jCiAgCQkJICAgaW50IGZpcnN0LCBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0 X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLUBAIC01MjUsNyArNTI1LDcgQEAgcHJpbnRfZnJhbWVfYXJn cyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTUyNCw3ICs1MjQsNyBAQCBwcmludF9mcmFt ZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCiAgICAvKiBPZmZzZXQgb2YgbmV4dCBzdGFj ayBhcmd1bWVudCBiZXlvbmQgdGhlIG9uZSB3ZSBoYXZlIHNlZW4gdGhhdCBpcwogICAgICAgYXQg dGhlIGhpZ2hlc3Qgb2Zmc2V0LCBvciAtMSBpZiB3ZSBoYXZlbid0IGNvbWUgdG8gYSBzdGFjawog ICAgICAgYXJndW1lbnQgeWV0LiAgKi8KQEAgLTMxNjksNyArMzA3Niw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9zdGFjay5jCiAgICAvKiBOdW1iZXIgb2YgaW50cyBvZiBhcmd1 bWVudHMgdGhhdCB3ZSBoYXZlIHByaW50ZWQgc28gZmFyLiAgKi8KICAgIGludCBhcmdzX3ByaW50 ZWQgPSAwOwogICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKLUBAIC01NTksOCArNTU5LDgg QEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTU1OCw4ICs1 NTgsOCBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCiAgCSAgICBj YXNlIExPQ19BUkc6CiAgCSAgICBjYXNlIExPQ19SRUZfQVJHOgogIAkgICAgICB7CkBAIC0zMTgw LDcgKzMwODcsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvc3RhY2suYwogIAog IAkJLyogQ29tcHV0ZSBhZGRyZXNzIG9mIG5leHQgYXJndW1lbnQgYnkgYWRkaW5nIHRoZSBzaXpl IG9mCiAgCQkgICB0aGlzIGFyZ3VtZW50IGFuZCByb3VuZGluZyB0byBhbiBpbnQgYm91bmRhcnku ICAqLwotQEAgLTY5NSw3ICs2OTUsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9s ICpmdW5jLCBzCitAQCAtNjk0LDcgKzY5NCw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBz eW1ib2wgKmZ1bmMsIHMKICAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmluZCB0aGVt LiAgKi8KICAgIGlmIChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMxODksMTEgKzMwOTYsMTEgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3N0YWNrLmMKICAKICAgICAgICBpZiAoaGln aGVzdF9vZmZzZXQgPT0gLTEpCiAgCXN0YXJ0ID0gZ2RiYXJjaF9mcmFtZV9hcmdzX3NraXAgKGdl dF9mcmFtZV9hcmNoIChmcmFtZSkpOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3N5 bW1pc2MuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bW1pc2MuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTQtMDYt MjQgMTY6MDc6MjYuNzQ3OTg2MzIyICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIv c3ltbWlzYy5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjY3OTg2OTAwICswMjAwCi1AQCAtNTMwLDEx ICs1MzAsMTEgQEAgcHJpbnRfc3ltYm9sICh2b2lkICphcmdzKQorLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTQ2MzE4OTAyICsw MTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltbWlzYy5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDMuMTg5MzI2ODc0ICswMTAwCitAQCAtNTM0LDExICs1MzQsMTEgQEAgcHJpbnRfc3ltYm9s ICh2b2lkICphcmdzKQogIAogIAljYXNlIExPQ19DT05TVF9CWVRFUzoKICAJICB7CkBAIC0zMjA4 LDI5ICszMTE1LDIwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9zeW1taXNjLmMK ICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7IGkrKykKICAJICAgICAg ZnByaW50Zl9maWx0ZXJlZCAob3V0ZmlsZSwgIiAlMDJ4IiwKICAJCQkJKHVuc2lnbmVkKSBTWU1C T0xfVkFMVUVfQllURVMgKHN5bWJvbClbaV0pOwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL3RhcmdldC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3RhcmdldC5jCTIwMTQt MDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdGFyZ2V0LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjg5ODY5MDEgKzAyMDAKLUBAIC01NSw3 ICs1NSw3IEBAIHN0YXRpYyBpbnQgZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGkKKy0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEu NTQ3MzE4OTA2ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmMJMjAx NS0wMS0wNiAyMjo0NDo0My4xOTAzMjY4NzggKzAxMDAKK0BAIC01NCw3ICs1NCw3IEBAIHN0YXRp YyBpbnQgZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGkKICAJCQkJCQkgQ09SRV9BRERSLCBD T1JFX0FERFIsIGludCk7CiAgCiAgc3RhdGljIGludCBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKiwKIC0JCQkJCQlDT1JFX0FERFIsIGludCk7 CiArCQkJCQkJQ09SRV9BRERSLCBMT05HRVNUKTsKICAKLSBzdGF0aWMgdm9pZCBkZWZhdWx0X3Jj bWQgKHN0cnVjdCB0YXJnZXRfb3BzICosIGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKik7Ci0gCi1A QCAtMTUzLDcgKzE1Myw3IEBAIHN0YXRpYyBpbnQgZGVidWdfdG9fd2F0Y2hwb2ludF9hZGRyX3dp dGgKLSAJCQkJCQkgIENPUkVfQUREUiwgQ09SRV9BRERSLCBpbnQpOworIHN0YXRpYyB2b2lkIGRl ZmF1bHRfcmNtZCAoc3RydWN0IHRhcmdldF9vcHMgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlf ZmlsZSAqKTsKICAKLSBzdGF0aWMgaW50IGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hw b2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCi0tCQkJCQkJIENPUkVfQUREUiwgaW50KTsK LSsJCQkJCQkgQ09SRV9BRERSLCBMT05HRVNUKTsKLSAKLSBzdGF0aWMgaW50IGRlYnVnX3RvX2Nh bl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCi0g CQkJCQkJICAgIENPUkVfQUREUiwgaW50LCBpbnQsCi1AQCAtMjk1MSw3ICsyOTUxLDcgQEAgdGFy Z2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9jIChjb25zdCBjaGFyCitAQCAtMjk3NSw3ICsyOTc1LDcg QEAgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9jIChjb25zdCBjaGFyCiAgCiAgc3RhdGljIGlu dAogIGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29w cyAqc2VsZiwKQEAgLTMyMzksMjAgKzMxMzcsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3RhcmdldC5jCiAgewogICAgcmV0dXJuIChsZW4gPD0gZ2RiYXJjaF9wdHJfYml0ICh0 YXJnZXRfZ2RiYXJjaCAoKSkgLyBUQVJHRVRfQ0hBUl9CSVQpOwogIH0KLUBAIC0zNjY0LDcgKzM2 NjQsNyBAQCBkZWJ1Z190b19jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0Ci0gCi0gc3Rh dGljIGludAotIGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRh cmdldF9vcHMgKnNlbGYsCi0tCQkJCSAgICAgIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQotKwkJ CQkgICAgICBDT1JFX0FERFIgYWRkciwgTE9OR0VTVCBsZW4pCi0gewotICAgQ09SRV9BRERSIHJl dHZhbDsKLSAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90YXJnZXQuaAorSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny45MC4yMDE0MDYxMy5vcmlnL2dkYi90YXJnZXQuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjA2MDk4 NjY3MCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RhcmdldC5oCTIwMTQtMDYt MjQgMTY6MDc6MjcuMjY4OTg2OTAxICswMjAwCi1AQCAtNDc1LDcgKzQ3NSw3IEBAIHN0cnVjdCB0 YXJnZXRfb3BzCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90YXJnZXQuaAkyMDE1 LTAxLTA2IDIyOjQ0OjQxLjU0NzMxODkwNiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL3RhcmdldC5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTkwMzI2ODc4ICswMTAwCitAQCAtNDg5 LDcgKzQ4OSw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgIC8qIERvY3VtZW50YXRpb24gb2Yg dGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAg dGFyZ2V0XyogbWFjcm8uICAqLwogICAgICBpbnQgKCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNo cG9pbnQpIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLApAQCAtMzI2MSwxMSArMzE1MCwxMSBAQCBJbmRl eDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGFyZ2V0LmgKICAgICAgICBUQVJHRVRfREVGQVVM VF9GVU5DIChkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk7CiAgCiAgICAgIGlu dCAoKnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbikgKHN0cnVjdCB0YXJnZXRfb3Bz ICosCi1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdHJhY2Vwb2ludC5jCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdHJhY2Vwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNC0wNi0xMyAwMzo1OToz Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90cmFjZXBvaW50 LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjk5ODY5MDIgKzAyMDAKLUBAIC05MzAsMTMgKzkzMCwx MyBAQCBhZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNS0wMS0wNiAyMjo0NDo0MS41 NDkzMTg5MTYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90cmFjZXBvaW50LmMJ MjAxNS0wMS0wNiAyMjo0NDo0My4xOTEzMjY4ODMgKzAxMDAKK0BAIC05MjgsMTMgKzkyOCwxMyBA QCBhZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCiAgc3RhdGljIHZvaWQK ICBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKm1lbXJhbmdlcywgCiAgCSAg ICAgIGludCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLApAQCAtMzI4MSw3ICszMTcwLDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RyYWNlcG9pbnQuYwogICAgICB9CiAgCiAg ICAvKiB0eXBlOiBtZW1yYW5nZV9hYnNvbHV0ZSA9PSBtZW1vcnksIG90aGVyIG4gPT0gYmFzZXJl ZyAqLwotQEAgLTk2Niw3ICs5NjYsNyBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rp b25fbGlzdCAqCitAQCAtOTY0LDcgKzk2NCw3IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29s bGVjdGlvbl9saXN0ICoKICAJCUNPUkVfQUREUiBzY29wZSwKICAJCWludCB0cmFjZV9zdHJpbmcp CiAgewpAQCAtMzI5MCw3ICszMTc5LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3RyYWNlcG9pbnQuYwogICAgdW5zaWduZWQgaW50IHJlZzsKICAgIGJmZF9zaWduZWRfdm1hIG9m ZnNldDsKICAgIGludCB0cmVhdF9hc19leHByID0gMDsKLUBAIC05OTAsOCArOTkwLDggQEAgY29s bGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgorQEAgLTk4OCw4ICs5ODgsOCBA QCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAgCSAgY2hhciB0bXBb NDBdOwogIAogIAkgIHNwcmludGZfdm1hICh0bXAsIG9mZnNldCk7CkBAIC0zMzAxLDcgKzMxOTAs NyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdHJhY2Vwb2ludC5jCiAgCQkJICAg dG1wIC8qIGFkZHJlc3MgKi8pOwogIAl9CiAgICAgICAgLyogQSBzdHJ1Y3QgbWF5IGJlIGEgQysr IGNsYXNzIHdpdGggc3RhdGljIGZpZWxkcywgZ28gdG8gZ2VuZXJhbAotQEAgLTEwMjMsOCArMTAy Myw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDIx LDggKzEwMjEsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCiAg ICAgICAgb2Zmc2V0ID0gZnJhbWVfb2Zmc2V0ICsgU1lNQk9MX1ZBTFVFIChzeW0pOwogICAgICAg IGlmIChpbmZvX3ZlcmJvc2UpCiAgCXsKQEAgLTMzMTIsNyArMzIwMSw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZzZXQp OwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIGZyYW1lIHB0ciByZWcgJWRcbiIsIHJlZyk7 CiAgCX0KLUBAIC0xMDM1LDggKzEwMzUsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxl Y3Rpb25fbGlzdCAqCitAQCAtMTAzMyw4ICsxMDMzLDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVj dCBjb2xsZWN0aW9uX2xpc3QgKgogICAgICAgIG9mZnNldCA9IDA7CiAgICAgICAgaWYgKGluZm9f dmVyYm9zZSkKICAJewpAQCAtMzMyMyw3ICszMjEyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3RyYWNlcG9pbnQuYwogIAkgIHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJp bnRmX2ZpbHRlcmVkICgiIGZyb20gcmVnICVkXG4iLCByZWcpOwogIAl9Ci1AQCAtMTA0Nyw4ICsx MDQ3LDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgorQEAgLTEw NDUsOCArMTA0NSw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoK ICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7CiAgICAg ICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzM1OCwxMSArMzI0NywxMSBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdHJhY2Vwb2ludC5jCiAgCX0KICAgICAgICBpZiAoQkxP Q0tfRlVOQ1RJT04gKGJsb2NrKSkKICAJYnJlYWs7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdHlwZXByaW50LmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90eXBlcHJp bnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdHlwZXBy aW50LmMJMjAxNC0wNi0yNCAxNjowNzoyNi4zMzk5ODU4NzAgKzAyMDAKLSsrKyBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi90eXBlcHJpbnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI2OTk4NjkwMiAr MDIwMAotQEAgLTQwNSw3ICs0MDUsNyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93 KQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0wMS0w NiAyMjo0NDo0MS41NTAzMTg5MjEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQzLjE5MTMyNjg4MyArMDEwMAorQEAgLTQwMiw3 ICs0MDIsNyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQogICAgc3RydWN0IHR5 cGUgKnJlYWxfdHlwZSA9IE5VTEw7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIGludCBmdWxs ID0gMDsKQEAgLTMzNzEsMTEgKzMyNjAsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL3R5cGVwcmludC5jCiAgICBpbnQgdXNpbmdfZW5jID0gMDsKICAgIHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zIG9wdHM7CiAgICBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zIGZsYWdzID0g ZGVmYXVsdF9wdHlwZV9mbGFnczsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxh cml0aC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE0LTA2 LTI0IDE2OjA3OjI2LjQxMTk4NTk1MCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3ZhbGFyaXRoLmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNjk5ODY5MDIgKzAyMDAKLUBAIC0xOTAs MTIgKzE5MCwxMyBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYgMjI6 NDQ6NDEuNTUwMzE4OTIxICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJp dGguYwkyMDE1LTAxLTA2IDIyOjQ1OjU0LjAxMTY3MDUxMiArMDEwMAorQEAgLTE4OCwxMiArMTg4 LDEzIEBAIHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJheSwgTE8KICAgICB0byBk b3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMuICAqLwogIAogIHN0cnVjdCB2YWx1ZSAqCkBAIC0z MzkyLDE4ICszMjgxLDE2IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxhcml0 aC5jCiAgICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBFX0lOREVY X1RZUEUgKGFycmF5X3R5cGUpKTsKICAgIHN0cnVjdCB2YWx1ZSAqdjsKICAKLUBAIC0yMDQsNyAr MjA1LDkgQEAgdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTIw Miw3ICsyMDMsNyBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCiAg ICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEIChhcnJheV90eXBlKSkKICAgICAgZXJyb3IgKF8oIm5v IHN1Y2ggdmVjdG9yIGVsZW1lbnQgYmVjYXVzZSBub3QgYWxsb2NhdGVkIikpOwogIAogLSAgZWx0 X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsgIGlmIChpbmRl eCA8IGxvd2VyYm91bmQpCi0rICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50Iikp OwogKyAgZWx0X29mZnMgPSBpbmRleCAtIGxvd2VyYm91bmQ7CiAgCiAgICBpZiAoZWx0X3N0cmlk ZSA+IDApCiAgICAgIGVsdF9vZmZzICo9IGVsdF9zdHJpZGU7Ci1AQCAtNjYyLDcgKzY2NSw3IEBA IHZhbHVlX2NvbmNhdCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QKK0BAIC02NjMsNyArNjY0 LDcgQEAgdmFsdWVfY29uY2F0IChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAogICAgc3RydWN0 IHZhbHVlICppbnZhbDE7CiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMjsKICAgIHN0cnVjdCB2YWx1 ZSAqb3V0dmFsID0gTlVMTDsKQEAgLTM0MTIsNyArMzI5OSw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi92YWxhcml0aC5jCiAgICBpbnQgY291bnQsIGlkeDsKICAgIGNoYXIgKnB0 cjsKICAgIGNoYXIgaW5jaGFyOwotQEAgLTE1MTUsNyArMTUxOCw3IEBAIHZhbHVlX2Jpbm9wIChz dHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorQEAgLTE1MTYsNyArMTUxNyw3IEBAIHZhbHVlX2Jp bm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAogIGludAogIHZhbHVlX2xvZ2ljYWxfbm90 IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgewpAQCAtMzQyMSw3ICszMzA4LDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbGFyaXRoLmMKICAgIGNvbnN0IGdkYl9ieXRlICpwOwog ICAgc3RydWN0IHR5cGUgKnR5cGUxOwogIAotQEAgLTE1NDYsMTEgKzE1NDksMTEgQEAgdmFsdWVf bG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNTQ3LDExICsxNTQ4LDExIEBA IHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgc3RhdGljIGludAogIHZh bHVlX3N0cmNtcCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCiAgewpA QCAtMzQzNiwxMSArMzMyMywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFs YXJpdGguYwogIAogICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi92YWxvcHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3Jp Zy9nZGIvdmFsb3BzLmMJMjAxNC0wNi0yNCAxNjowNzoyNi45NDY5ODY1NDMgKzAyMDAKLSsrKyBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3MDk4 NjkwMyArMDIwMAotQEAgLTUxLDExICs1MSwxMSBAQCBzdGF0aWMgaW50IHR5cGVjbXAgKGludCBz dGF0aWNwLCBpbnQgdmFyCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxvcHMu YwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU1NTMxODk0NSArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3ZhbG9wcy5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTkyMzI2ODg4ICswMTAwCitA QCAtNDcsMTEgKzQ3LDExIEBAIHN0YXRpYyBpbnQgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2 YXIKICAJCSAgICBzdHJ1Y3QgZmllbGQgdDFbXSwgc3RydWN0IHZhbHVlICp0MltdKTsKICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICosIHN0 cnVjdCB2YWx1ZSAqLCAKQEAgLTM0NTQsNyArMzM0MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIw MTQwNjEzL2dkYi92YWxvcHMuYwogIAogIHN0YXRpYyBpbnQgZmluZF9vbG9hZF9jaGFtcF9uYW1l c3BhY2UgKHN0cnVjdCB2YWx1ZSAqKiwgaW50LAogIAkJCQkgICAgICAgY29uc3QgY2hhciAqLCBj b25zdCBjaGFyICosCi1AQCAtODMsNyArODMsNyBAQCBvbG9hZF9jbGFzc2lmaWNhdGlvbiBjbGFz c2lmeV9vbG9hZF9tYXRjCitAQCAtNzksNyArNzksNyBAQCBvbG9hZF9jbGFzc2lmaWNhdGlvbiBj bGFzc2lmeV9vbG9hZF9tYXRjCiAgCQkJCQkgICBpbnQsIGludCk7CiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdHlwZSAqLApA QCAtMzQ2Myw3ICszMzUwLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9w cy5jCiAgCQkJCQkJICAgICBjb25zdCBjaGFyICosCiAgCQkJCQkJICAgICBzdHJ1Y3QgdHlwZSAq LAogIAkJCQkJCSAgICAgaW50LCBlbnVtIG5vc2lkZSk7Ci1AQCAtMTAwLDkgKzEwMCw5IEBAIHN0 YXRpYyBDT1JFX0FERFIgYWxsb2NhdGVfc3BhY2VfaW5faW5mZXIKK0BAIC05Niw5ICs5Niw5IEBA IHN0YXRpYyBDT1JFX0FERFIgYWxsb2NhdGVfc3BhY2VfaW5faW5mZXIKICBzdGF0aWMgc3RydWN0 IHZhbHVlICpjYXN0X2ludG9fY29tcGxleCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICop OwogIAogIHN0YXRpYyB2b2lkIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKiwgY29u c3QgY2hhciAqLApAQCAtMzQ3NSw3ICszMzYyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3ZhbG9wcy5jCiAgCiAgdm9pZCBfaW5pdGlhbGl6ZV92YWxvcHMgKHZvaWQpOwogIAot QEAgLTE4Nyw3ICsxODcsNyBAQCBmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yIChjb25zdCBjaGFy ICpuCitAQCAtMTgzLDcgKzE4Myw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0 IGNoYXIgKm4KICAgICBzcGFjZS4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTM0ODQsNyAr MzM3MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIHsKICAg IHN0cnVjdCBvYmpmaWxlICpvYmpmOwogICAgc3RydWN0IHZhbHVlICp2YWwgPSBmaW5kX2Z1bmN0 aW9uX2luX2luZmVyaW9yICgibWFsbG9jIiwgJm9iamYpOwotQEAgLTI2MCw3ICsyNjAsOCBAQCB2 YWx1ZV9jYXN0X3N0cnVjdHMgKHN0cnVjdCB0eXBlICp0eXBlLCBzCitAQCAtMjU2LDcgKzI1Niw4 IEBAIHZhbHVlX2Nhc3Rfc3RydWN0cyAoc3RydWN0IHR5cGUgKnR5cGUsIHMKICAgIGlmIChUWVBF X05BTUUgKHQyKSAhPSBOVUxMKQogICAgICB7CiAgICAgICAgLyogVHJ5IGRvd25jYXN0aW5nIHVz aW5nIHRoZSBydW4tdGltZSB0eXBlIG9mIHRoZSB2YWx1ZS4gICovCkBAIC0zNDk0LDcgKzMzODEs NyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMKICAgICAgICBzdHJ1 Y3QgdHlwZSAqcmVhbF90eXBlOwogIAogICAgICAgIHJlYWxfdHlwZSA9IHZhbHVlX3J0dGlfdHlw ZSAodjIsICZmdWxsLCAmdG9wLCAmdXNpbmdfZW5jKTsKLUBAIC00MDAsMTIgKzQwMSwxMiBAQCB2 YWx1ZV9jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhCitAQCAtMzk2LDEyICszOTcs MTIgQEAgdmFsdWVfY2FzdCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YQogICAgaWYgKGNv ZGUxID09IFRZUEVfQ09ERV9BUlJBWSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICplbGVt ZW50X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTM1MDksNyArMzM5Niw3IEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkgIExPTkdFU1QgbG93 X2JvdW5kLCBoaWdoX2JvdW5kLCBuZXdfbGVuZ3RoOwogIAogIAkgIGlmIChnZXRfZGlzY3JldGVf Ym91bmRzIChyYW5nZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotQEAgLTYz OSw3ICs2NDAsNyBAQCB2YWx1ZV9yZWludGVycHJldF9jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwCitA QCAtNjM1LDcgKzYzNiw3IEBAIHZhbHVlX3JlaW50ZXJwcmV0X2Nhc3QgKHN0cnVjdCB0eXBlICp0 eXAKICBzdGF0aWMgaW50CiAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNp cmVkX3R5cGUsCiAgCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM1MTgsNyAr MzQwNSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkJICAg ICAgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAg ICAgIHN0cnVjdCB0eXBlICpzZWFyY2hfdHlwZSwKLUBAIC02NTEsOCArNjUyLDggQEAgZHluYW1p Y19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgorQEAgLTY0Nyw4ICs2NDgsOCBAQCBk eW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyCiAgCiAgICBmb3IgKGkgPSAw OyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChzZWFyY2hfdHlwZSkgJiYgcmVzdWx0X2NvdW50IDwg MjsgKytpKQogICAgICB7CkBAIC0zNTI5LDcgKzM0MTYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdmFsb3BzLmMKICAKICAgICAgICBpZiAoY2xhc3NfdHlwZXNfc2FtZV9wIChk ZXNpcmVkX3R5cGUsIFRZUEVfQkFTRUNMQVNTIChzZWFyY2hfdHlwZSwgaSkpKQogIAl7Ci1AQCAt Njg2LDcgKzY4Nyw3IEBAIGR5bmFtaWNfY2FzdF9jaGVja18xIChzdHJ1Y3QgdHlwZSAqZGVzaXIK K0BAIC02ODIsNyArNjgzLDcgQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpk ZXNpcgogIHN0YXRpYyBpbnQKICBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRl c2lyZWRfdHlwZSwKICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzUzOCw3 ICszNDI1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgCQkg ICAgICBDT1JFX0FERFIgYWRkcmVzcywKICAJCSAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJ ICAgICAgc3RydWN0IHR5cGUgKnNlYXJjaF90eXBlLAotQEAgLTY5Niw3ICs2OTcsNyBAQCBkeW5h bWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCitAQCAtNjkyLDcgKzY5Myw3IEBA IGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3QgdHlwZSAqZGVzaXIKICAKICAgIGZvciAoaSA9 IDA7IGkgPCBUWVBFX05fQkFTRUNMQVNTRVMgKHNlYXJjaF90eXBlKSAmJiByZXN1bHRfY291bnQg PCAyOyArK2kpCiAgICAgIHsKQEAgLTM1NDcsNyArMzQzNCw3IEBAIEluZGV4OiBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAogICAgICAgIGlmICghIEJBU0VUWVBFX1ZJQV9QVUJM SUMgKHNlYXJjaF90eXBlLCBpKSkKICAJY29udGludWU7Ci1AQCAtNzI3LDcgKzcyOCw4IEBAIGR5 bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3QgdHlwZSAqZGVzaXIKK0BAIC03MjMsNyArNzI0LDgg QEAgZHluYW1pY19jYXN0X2NoZWNrXzIgKHN0cnVjdCB0eXBlICpkZXNpcgogIHN0cnVjdCB2YWx1 ZSAqCiAgdmFsdWVfZHluYW1pY19jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVl ICphcmcpCiAgewpAQCAtMzU1Nyw3ICszNDQ0LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3ZhbG9wcy5jCiAgICBzdHJ1Y3QgdHlwZSAqcmVzb2x2ZWRfdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHR5cGUpOwogICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJnKSk7CiAgICBzdHJ1Y3QgdHlwZSAqY2xhc3NfdHlwZSwgKnJ0dGlfdHlw ZTsKLUBAIC05NTgsNyArOTYwLDcgQEAgdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUs IENPUkVfQQorQEAgLTk1NCw3ICs5NTYsNyBAQCB2YWx1ZV9hdF9sYXp5IChzdHJ1Y3QgdHlwZSAq dHlwZSwgQ09SRV9BCiAgfQogIAogIHZvaWQKQEAgLTM1NjYsNyArMzQ1Myw3IEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkJICAgaW50IHN0YWNrLCBDT1JFX0FE RFIgbWVtYWRkciwKICAJCSAgIGdkYl9ieXRlICpidWZmZXIsIHNpemVfdCBsZW5ndGgpCiAgewot QEAgLTEwNTgsNyArMTA2MCw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwg c3RydWMKK0BAIC0xMDU0LDcgKzEwNTYsNyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAq dG92YWwsIHN0cnVjCiAgICAgICAgewogIAljb25zdCBnZGJfYnl0ZSAqZGVzdF9idWZmZXI7CiAg CUNPUkVfQUREUiBjaGFuZ2VkX2FkZHI7CkBAIC0zNTc1LDE2ICszNDYyLDE2IEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogICAgICAgICAgZ2RiX2J5dGUgYnVmZmVy W3NpemVvZiAoTE9OR0VTVCldOwogIAogIAlpZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQotQEAg LTExMzcsNyArMTEzOSw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3Ry dWMKLSAJICAgIGlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi0gCSAgICAgIHsKLSAJCXN0cnVj dCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh0b3ZhbCk7Ci0tCQlpbnQgb2Zmc2V0ID0g dmFsdWVfb2Zmc2V0IChwYXJlbnQpICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7Ci0rCQlMT05HRVNU IG9mZnNldCA9IHZhbHVlX29mZnNldCAocGFyZW50KSArIHZhbHVlX29mZnNldCAodG92YWwpOwot IAkJaW50IGNoYW5nZWRfbGVuOwotIAkJZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCld OwotIAkJaW50IG9wdGltLCB1bmF2YWlsOwotQEAgLTE2MDUsNyArMTYwNyw3IEBAIHZhbHVlX2Fy cmF5IChpbnQgbG93Ym91bmQsIGludCBoaWdoYm91bmQKK0BAIC0xMTIzLDcgKzExMjUsNyBAQCB2 YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCisgCWlmICh2YWx1ZV9iaXRz aXplICh0b3ZhbCkpCisgCSAgeworIAkgICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2YWx1ZV9w YXJlbnQgKHRvdmFsKTsKKy0JICAgIGludCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHBhcmVudCkg KyB2YWx1ZV9vZmZzZXQgKHRvdmFsKTsKKysJICAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zm c2V0IChwYXJlbnQpICsgdmFsdWVfb2Zmc2V0ICh0b3ZhbCk7CisgCSAgICBpbnQgY2hhbmdlZF9s ZW47CisgCSAgICBnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNUKV07CisgCSAgICBpbnQg b3B0aW0sIHVuYXZhaWw7CitAQCAtMTYwNCw3ICsxNjA2LDcgQEAgdmFsdWVfYXJyYXkgKGludCBs b3dib3VuZCwgaW50IGhpZ2hib3VuZAogIHsKICAgIGludCBuZWxlbTsKICAgIGludCBpZHg7CkBA IC0zNTkzLDcgKzM0ODAsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3Bz LmMKICAgIHN0cnVjdCB2YWx1ZSAqdmFsOwogICAgc3RydWN0IHR5cGUgKmFycmF5dHlwZTsKICAK LUBAIC0xNzgwLDcgKzE3ODIsNyBAQCB0eXBlY21wIChpbnQgc3RhdGljcCwgaW50IHZhcmFyZ3Ms IGludCBuCitAQCAtMTc3OSw3ICsxNzgxLDcgQEAgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2 YXJhcmdzLCBpbnQgbgogIAogIHN0YXRpYyB2b2lkCiAgdXBkYXRlX3NlYXJjaF9yZXN1bHQgKHN0 cnVjdCB2YWx1ZSAqKnJlc3VsdF9wdHIsIHN0cnVjdCB2YWx1ZSAqdiwKQEAgLTM2MDIsNyArMzQ4 OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkJICAgICAg Y29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaWYgKHYgIT0gTlVM TCkKLUBAIC0xODA0LDEwICsxODA2LDEwIEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3Qg dmFsdWUgKipyZXMKK0BAIC0xODAzLDEwICsxODA1LDEwIEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0 IChzdHJ1Y3QgdmFsdWUgKipyZXMKICAgICBsb29rdXAgaXMgYW1iaWd1b3VzLiAgKi8KICAKICBz dGF0aWMgdm9pZApAQCAtMzYxNSw3ICszNTAyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2 MTMvZ2RiL3ZhbG9wcy5jCiAgCQkJc3RydWN0IHR5cGUgKm91dGVybW9zdF90eXBlKQogIHsKICAg IGludCBpOwotQEAgLTE4NTYsNyArMTg1OCw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNv bnN0IGNoYXIgKm5hbWUKK0BAIC0xODUzLDcgKzE4NTUsNyBAQCBkb19zZWFyY2hfc3RydWN0X2Zp ZWxkIChjb25zdCBjaGFyICpuYW1lCiAgCQkgICA8dmFyaWFudCBmaWVsZD4uICAqLwogIAogIAkJ c3RydWN0IHZhbHVlICp2ID0gTlVMTDsKQEAgLTM2MjQsNyArMzUxMSw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAogIAkJLyogVGhpcyBpcyBwcmV0dHkgZ3Jv c3MuICBJbiBHKyssIHRoZSBvZmZzZXQgaW4gYW4KICAJCSAgIGFub255bW91cyB1bmlvbiBpcyBy ZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZQotQEAgLTE4OTUsNyArMTg5Nyw3IEBAIGRv X3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUKK0BAIC0xODkyLDcgKzE4OTQs NyBAQCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCiAgCQkJICAgICAm JiAoc3RyY21wX2l3IChuYW1lLCAKICAJCQkJCSAgICBUWVBFX0JBU0VDTEFTU19OQU1FICh0eXBl LCAKICAJCQkJCQkJCSBpKSkgPT0gMCkpOwpAQCAtMzYzMyw3ICszNTIwLDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJ QV9WSVJUVUFMICh0eXBlLCBpKSkKICAJewotQEAgLTE5NjgsMTEgKzE5NzAsMTEgQEAgZG9fc2Vh cmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQorQEAgLTE5NjUsMTEgKzE5NjcsMTEg QEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQogICAgIGZpZWxkcywg bG9vayBmb3IgYSBiYXNlY2xhc3MgbmFtZWQgTkFNRS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2 YWx1ZSAqCkBAIC0zNjQ3LDcgKzM1MzQsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdmFsb3BzLmMKICAKICAgIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKG5hbWUsIGFyZzEsIG9m ZnNldCwgdHlwZSwgbG9va2luZ19mb3JfYmFzZWNsYXNzLAogIAkJCSAgJnJlc3VsdCwgJmJvZmZz ZXQsIHR5cGUpOwotQEAgLTE5ODksNyArMTk5MSw3IEBAIHNlYXJjaF9zdHJ1Y3RfZmllbGQgKGNv bnN0IGNoYXIgKm5hbWUsIHMKK0BAIC0xOTg2LDcgKzE5ODgsNyBAQCBzZWFyY2hfc3RydWN0X2Zp ZWxkIChjb25zdCBjaGFyICpuYW1lLCBzCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAgc2Vh cmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqKmFyZzFw LApAQCAtMzY1Niw3ICszNTQzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3Zh bG9wcy5jCiAgCQkgICAgICBpbnQgKnN0YXRpY19tZW1mdW5jcCwgc3RydWN0IHR5cGUgKnR5cGUp CiAgewogICAgaW50IGk7Ci1AQCAtMjA1Myw4ICsyMDU1LDggQEAgc2VhcmNoX3N0cnVjdF9tZXRo b2QgKGNvbnN0IGNoYXIgKm5hbWUsCitAQCAtMjA1MCw4ICsyMDUyLDggQEAgc2VhcmNoX3N0cnVj dF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUsCiAgCiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNM QVNTRVMgKHR5cGUpIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKQEAgLTM2NjcsNyArMzU1NCw3 IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAogICAgICAgIGlm IChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCiAgCXsKLUBAIC0yMjg5LDEwICsyMjkx LDEwIEBAIHZhbHVlX3N0cnVjdF9lbHRfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKioKK0BAIC0yMjg2 LDEwICsyMjg4LDEwIEBAIHZhbHVlX3N0cnVjdF9lbHRfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKioK ICAKICBzdGF0aWMgdm9pZAogIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3As IGNvbnN0IGNoYXIgKm1ldGhvZCwKQEAgLTM2ODAsNyArMzU2Nyw3IEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIHsKICAgIGludCBpOwogICAgc3RydWN0IGZuX2Zp ZWxkICpmID0gTlVMTDsKLUBAIC0yMzQ5LDcgKzIzNTEsNyBAQCBmaW5kX21ldGhvZF9saXN0IChz dHJ1Y3QgdmFsdWUgKiphcmdwLCBjCitAQCAtMjM0Niw3ICsyMzQ4LDcgQEAgZmluZF9tZXRob2Rf bGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgYwogICAgICAgZXh0ZW5zaW9uIG1ldGhvZHMuICAq LwogICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAtIDE7IGkgPj0gMDsgaS0t KQogICAgICB7CkBAIC0zNjg5LDcgKzM1NzYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdmFsb3BzLmMKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHR5cGUs IGkpKQogIAl7Ci1AQCAtMjM5Miw3ICsyMzk0LDcgQEAgdmFsdWVfZmluZF9vbG9hZF9tZXRob2Rf bGlzdCAoc3RydWN0IHZhbAorQEAgLTIzODksNyArMjM5MSw3IEBAIHZhbHVlX2ZpbmRfb2xvYWRf bWV0aG9kX2xpc3QgKHN0cnVjdCB2YWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgb2Zmc2V0LCBzdHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCAqbnVtX2ZucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0cikgKip4bV93b3JrZXJfdmVjLApAQCAtMzY5OCw3ICsz NTg1LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5jCiAgewogICAg c3RydWN0IHR5cGUgKnQ7CiAgCi1AQCAtMjQ5Niw3ICsyNDk4LDcgQEAgZmluZF9vdmVybG9hZF9t YXRjaCAoc3RydWN0IHZhbHVlICoqYXJncworQEAgLTI1MDAsNyArMjUwMiw3IEBAIGZpbmRfb3Zl cmxvYWRfbWF0Y2ggKHN0cnVjdCB2YWx1ZSAqKmFyZ3MKICAgIC8qIE51bWJlciBvZiBvdmVybG9h ZGVkIGluc3RhbmNlcyBiZWluZyBjb25zaWRlcmVkLiAgKi8KICAgIGludCBudW1fZm5zID0gMDsK ICAgIHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IE5VTEw7CkBAIC0zNzA3LDcgKzM1OTQsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMKICAKICAgIHN0cnVjdCBjbGVh bnVwICphbGxfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7CiAg Ci1AQCAtMzMwNyw3ICszMzA5LDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlwZSAq dDEsIHN0cgorQEAgLTMzMTUsNyArMzMxNyw3IEBAIGNvbXBhcmVfcGFyYW1ldGVycyAoc3RydWN0 IHR5cGUgKnQxLCBzdHIKICAgICB0aGUgZm9ybSAiRE9NQUlOOjpOQU1FIi4gICovCiAgCiAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0zNzE2LDcgKzM2MDMsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdmFsb3BzLmMKICAJCQkJc3RydWN0IHR5cGUgKmN1cnR5cGUsIGNvbnN0 IGNoYXIgKm5hbWUsCiAgCQkJCXN0cnVjdCB0eXBlICppbnR5cGUsIAogIAkJCQlpbnQgd2FudF9h ZGRyZXNzLAotQEAgLTMzNDEsNyArMzM0Myw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVy ZW5jZSAoc3RydWN0IHQKK0BAIC0zMzQ5LDcgKzMzNTEsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zv cl9yZWZlcmVuY2UgKHN0cnVjdCB0CiAgCSAgaWYgKHdhbnRfYWRkcmVzcykKICAJICAgIHJldHVy biB2YWx1ZV9mcm9tX2xvbmdlc3QKICAJICAgICAgKGxvb2t1cF9tZW1iZXJwdHJfdHlwZSAoVFlQ RV9GSUVMRF9UWVBFICh0LCBpKSwgZG9tYWluKSwKQEAgLTM3MjUsNyArMzYxMiw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxvcHMuYwogIAkgIGVsc2UgaWYgKG5vc2lkZSAh PSBFVkFMX05PUk1BTCkKICAJICAgIHJldHVybiBhbGxvY2F0ZV92YWx1ZSAoVFlQRV9GSUVMRF9U WVBFICh0LCBpKSk7CiAgCSAgZWxzZQotQEAgLTM1MDksNyArMzUxMSw3IEBAIHZhbHVlX3N0cnVj dF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKK0BAIC0zNTE3LDcgKzM1MTksNyBAQCB2YWx1 ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0CiAgICBmb3IgKGkgPSBUWVBFX05f QkFTRUNMQVNTRVMgKHQpIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg dmFsdWUgKnY7CkBAIC0zNzM0LDcgKzM2MjEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdmFsb3BzLmMKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHQsIGkp KQogIAliYXNlX29mZnNldCA9IDA7Ci1AQCAtMzU5OSw3ICszNjAxLDcgQEAgdmFsdWVfbWF5YmVf bmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0CitAQCAtMzU5OCw3ICszNjAwLDcgQEAgdmFsdWVf bWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0CiAgCiAgc3RydWN0IHR5cGUgKgogIHZh bHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsIApAQCAt Mzc0Myw3ICszNjMwLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbG9wcy5j CiAgewogICAgc3RydWN0IHZhbHVlICp0YXJnZXQ7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJl YWxfdHlwZSwgKnRhcmdldF90eXBlOwotQEAgLTM2NDksMTIgKzM2NTEsMTIgQEAgdmFsdWVfcnR0 aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTM2NDgsMTIgKzM2NTAsMTIgQEAg dmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgogIHN0cnVjdCB2YWx1ZSAq CiAgdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1Y3Qg dHlwZSAqcnR5cGUsIApAQCAtMzc1OCwxMSArMzY0NSwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4y MDE0MDYxMy9nZGIvdmFsb3BzLmMKICAgIGludCB1c2luZ19lbmMgPSAwOwogICAgc3RydWN0IHZh bHVlICpuZXdfdmFsOwogIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50 LmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi92YWxwcmludC5jCTIwMTQtMDYtMjQg MTY6MDc6MjYuMjQ3OTg1NzY4ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFs cHJpbnQuYwkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3MDk4NjkwMyArMDIwMAotQEAgLTMwMiw3ICsz MDIsNyBAQCB2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5CistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEu NTU3MzE4OTU1ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFscHJpbnQuYwky MDE1LTAxLTA2IDIyOjQ0OjQzLjE5MzMyNjg5MyArMDEwMAorQEAgLTI5OCw3ICsyOTgsNyBAQCB2 YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5CiAgaW50CiAgdmFscHJpbnRf Y2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJIHN0cnVjdCB0eXBl ICp0eXBlLApAQCAtMzc3MSw3ICszNjU4LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL3ZhbHByaW50LmMKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCiAgewogICAgQ0hF Q0tfVFlQRURFRiAodHlwZSk7Ci1AQCAtMzk5LDcgKzM5OSw3IEBAIHZhbF9wcmludF9ub3RfYXNz b2NpYXRlZCAoc3RydWN0IHVpX2ZpbGUKK0BAIC0zOTYsNyArMzk2LDcgQEAgdmFsX3ByaW50X25v dF9hc3NvY2lhdGVkIChzdHJ1Y3QgdWlfZmlsZQogIAogIHZvaWQKICBnZW5lcmljX3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzc4MCw3 ICszNjY3LDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50LmMKICAJ CSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgY29uc3Qgc3Ry dWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zLAotQEAgLTc2MSw3ICs3NjEsNyBAQCBnZW5lcmljX3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitAQCAtNzU4LDcgKzc1OCw3IEBAIGdlbmVyaWNfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KICAgICBSRUNVUlNFLiAgKi8KICAKICB2b2lk CkBAIC0zNzg5LDcgKzM2NzYsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFs cHJpbnQuYwogIAkgICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHJlY3Vyc2UsCiAgCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC05OTksNyArOTk5LDcgQEAg dmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAoc3RydWN0IHR5cGUgKgorQEAgLTk5Niw3ICs5OTYs NyBAQCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqCiAgCiAgdm9pZAog IHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkIChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTM3OTgs NyArMzY4NSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxwcmludC5jCiAg CQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKICAJCQkgICAgaW50IHNpemUsCi1AQCAtMTU0MCw3 ICsxNTQwLDcgQEAgcHJpbnRfZGVjaW1hbF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0cgorQEAg LTE1MzgsNyArMTUzOCw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9maWxlICpz dHIKICAKICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM4MDcsNyArMzY5NCw3IEBAIEluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi92YWxwcmludC5jCiAgewogICAgY29uc3QgZ2RiX2J5dGUgKnA7 CiAgCi1AQCAtMTY1NywyMiArMTY1NywyMiBAQCBtYXliZV9wcmludF9hcnJheV9pbmRleCAoc3Ry dWN0IHR5cGUgKmluCitAQCAtMTY1NSwyMiArMTY1NSwyMiBAQCBtYXliZV9wcmludF9hcnJheV9p bmRleCAoc3RydWN0IHR5cGUgKmluCiAgCiAgdm9pZAogIHZhbF9wcmludF9hcnJheV9lbGVtZW50 cyAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0zODM2LDcgKzM3MjMsNyBAQCBJbmRleDogZ2RiLTcu Ny45MC4yMDE0MDYxMy9nZGIvdmFscHJpbnQuYwogICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hf Ym91bmQ7CiAgCiAgICBlbHR0eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7Ci1AQCAtMTc0 Myw3ICsxNzQzLDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdAor QEAgLTE3NDEsNyArMTc0MSw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5 cGUgKnQKICAJCSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlICsgMSwgdmFsLCBvcHRpb25z LAogIAkJICAgICBjdXJyZW50X2xhbmd1YWdlKTsKICAJICBhbm5vdGF0ZV9lbHRfcmVwIChyZXBz KTsKQEAgLTM4NDUsNyArMzczMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92 YWxwcmludC5jCiAgCSAgYW5ub3RhdGVfZWx0X3JlcF9lbmQgKCk7CiAgCiAgCSAgaSA9IHJlcDEg LSAxOwotQEAgLTI0MDAsNyArMjQwMCw3IEBAIHByaW50X2NvbnZlcnRlZF9jaGFyc190b19vYnN0 YWNrIChzdHJ1Y3QKK0BAIC0yMzk3LDcgKzIzOTcsNyBAQCBwcmludF9jb252ZXJ0ZWRfY2hhcnNf dG9fb2JzdGFjayAoc3RydWN0CiAgCiAgdm9pZAogIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM4NTQsMTAgKzM3NDEsMTAg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50LmMKICAJCSAgY29uc3Qg Y2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAgaW50IHF1b3RlX2NoYXIs IGludCBjX3N0eWxlX3Rlcm1pbmF0b3IsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHByaW50 LmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi92YWxwcmludC5oCTIwMTQtMDYtMjQg MTY6MDc6MjYuMjQ3OTg1NzY4ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFs cHJpbnQuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3MTk4NjkwNCArMDIwMAorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU1NzMx ODk1NSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHByaW50LmgJMjAxNS0w MS0wNiAyMjo0NDo0My4xOTMzMjY4OTMgKzAxMDAKIEBAIC0xMTUsMTEgKzExNSwxMSBAQCBleHRl cm4gdm9pZCBtYXliZV9wcmludF9hcnJheV9pbmRleCAoc3RyCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJCSAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CkBAIC0zOTA4LDExICszNzk1LDExIEBA IEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWxwcmludC5oCiAgCQkJICAgICAgY29u c3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgICAgICBpbnQgcXVv dGVfY2hhciwgaW50IGNfc3R5bGVfdGVybWluYXRvciwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNC0w Ni0yNCAxNjowNzoyNy4wMjY5ODY2MzIgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi92YWx1ZS5jCTIwMTQtMDYtMjQgMTY6MDc6MjcuMjcxOTg2OTA0ICswMjAwCi1AQCAtNjksMTAg KzY5LDEwIEBAIHN0cnVjdCBpbnRlcm5hbF9mdW5jdGlvbgorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2MjMxODk3OSArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0wNiAyMjo0NDo0My4x OTQzMjY4OTggKzAxMDAKK0BAIC02NiwxMCArNjYsMTAgQEAgc3RydWN0IGludGVybmFsX2Z1bmN0 aW9uCiAgc3RydWN0IHJhbmdlCiAgewogICAgLyogTG93ZXN0IG9mZnNldCBpbiB0aGUgcmFuZ2Uu ICAqLwpAQCAtMzkyNSw3ICszODEyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3ZhbHVlLmMKICB9OwogIAogIHR5cGVkZWYgc3RydWN0IHJhbmdlIHJhbmdlX3M7Ci1AQCAtODMs OCArODMsOCBAQCBERUZfVkVDX08ocmFuZ2Vfcyk7CitAQCAtODAsOCArODAsOCBAQCBERUZfVkVD X08ocmFuZ2Vfcyk7CiAgICAgW29mZnNldDIsIG9mZnNldDIrbGVuMikgb3ZlcmxhcC4gICovCiAg CiAgc3RhdGljIGludApAQCAtMzkzNiw3ICszODIzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAx NDA2MTMvZ2RiL3ZhbHVlLmMKICB7CiAgICBVTE9OR0VTVCBoLCBsOwogIAotQEAgLTEwOCw3ICsx MDgsNyBAQCByYW5nZV9sZXNzdGhhbiAoY29uc3QgcmFuZ2VfcyAqcjEsIGNvbnN0CitAQCAtMTA1 LDcgKzEwNSw3IEBAIHJhbmdlX2xlc3N0aGFuIChjb25zdCByYW5nZV9zICpyMSwgY29uc3QKICAg ICBPRkZTRVQrTEVOR1RIKS4gICovCiAgCiAgc3RhdGljIGludApAQCAtMzk0NSw3ICszODMyLDcg QEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICB7CiAgICByYW5nZV9z IHdoYXQ7CiAgICBpbnQgaTsKLUBAIC0yNTIsNyArMjUyLDcgQEAgc3RydWN0IHZhbHVlCitAQCAt MjQwLDcgKzI0MCw3IEBAIHN0cnVjdCB2YWx1ZQogICAgICAgbHZhbCA9PSBsdmFsX3JlZ2lzdGVy LCB0aGlzIGlzIGEgZnVydGhlciBvZmZzZXQgZnJvbQogICAgICAgbG9jYXRpb24uYWRkcmVzcyB3 aXRoaW4gdGhlIHJlZ2lzdGVycyBzdHJ1Y3R1cmUuICBOb3RlIGFsc28gdGhlCiAgICAgICBtZW1i ZXIgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KQEAgLTM5NTQsNyArMzg0MSw3IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5jCiAgCiAgICAvKiBPbmx5IHVzZWQgZm9y IGJpdGZpZWxkczsgbnVtYmVyIG9mIGJpdHMgY29udGFpbmVkIGluIHRoZW0uICAqLwogICAgaW50 IGJpdHNpemU7Ci1AQCAtMzIyLDggKzMyMiw4IEBAIHN0cnVjdCB2YWx1ZQorQEAgLTMxMCw4ICsz MTAsOCBAQCBzdHJ1Y3QgdmFsdWUKICAgICAgIGB0eXBlJywgYW5kIGBlbWJlZGRlZF9vZmZzZXQn IGlzIHplcm8sIHNvIGV2ZXJ5dGhpbmcgd29ya3MKICAgICAgIG5vcm1hbGx5LiAgKi8KICAgIHN0 cnVjdCB0eXBlICplbmNsb3NpbmdfdHlwZTsKQEAgLTM5NjUsNyArMzg1MiwxNiBAQCBJbmRleDog Z2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIAogICAgLyogVmFsdWVzIGFyZSBzdG9y ZWQgaW4gYSBjaGFpbiwgc28gdGhhdCB0aGV5IGNhbiBiZSBkZWxldGVkIGVhc2lseQogICAgICAg b3ZlciBjYWxscyB0byB0aGUgaW5mZXJpb3IuICBWYWx1ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwK LUBAIC0zNTEsNyArMzUxLDggQEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2 YWx1ZQorQEAgLTM0Miw3ICszNDIsNyBAQCBzdHJ1Y3QgdmFsdWUKKyB9OworIAorIGludAorLXZh bHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0 LCBpbnQgbGVuZ3RoKQorK3ZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLCBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCisgeworICAgZ2RiX2Fzc2Vy dCAoIXZhbHVlLT5sYXp5KTsKKyAKK0BAIC0zNTAsNyArMzUwLDggQEAgdmFsdWVfYml0c19hdmFp bGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZQogIH0KICAKICBpbnQKQEAgLTM5NzUsNyArMzg3MSwy NyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIHsKICAgIHJldHVy biB2YWx1ZV9iaXRzX2F2YWlsYWJsZSAodmFsdWUsCiAgCQkJICAgICAgIG9mZnNldCAqIFRBUkdF VF9DSEFSX0JJVCwKLUBAIC01NTgsNyArNTU5LDggQEAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxh YmxlIChzdHJ1Y3QgdmFsdQorQEAgLTM1OCw3ICszNTksOCBAQCB2YWx1ZV9ieXRlc19hdmFpbGFi bGUgKGNvbnN0IHN0cnVjdCB2YWx1CisgfQorIAorIGludAorLXZhbHVlX2JpdHNfYW55X29wdGlt aXplZF9vdXQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LCBpbnQg Yml0X2xlbmd0aCkKKyt2YWx1ZV9iaXRzX2FueV9vcHRpbWl6ZWRfb3V0IChjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQsCisrCQkJICAgICAgTE9OR0VTVCBiaXRf bGVuZ3RoKQorIHsKKyAgIGdkYl9hc3NlcnQgKCF2YWx1ZS0+bGF6eSk7CisgCitAQCAtNDIwLDcg KzQyMiw4IEBAIHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWwKKyAgICBP RkZTRVQgYml0cywgYW5kIGV4dGVuZGluZyBmb3IgdGhlIG5leHQgTEVOR1RIIGJpdHMuICAqLwor IAorIHN0YXRpYyB2b2lkCistaW5zZXJ0X2ludG9fYml0X3JhbmdlX3ZlY3RvciAoVkVDKHJhbmdl X3MpICoqdmVjdG9ycCwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKytpbnNlcnRfaW50b19iaXRf cmFuZ2VfdmVjdG9yIChWRUMocmFuZ2VfcykgKip2ZWN0b3JwLCBMT05HRVNUIG9mZnNldCwKKysJ CQkgICAgICBMT05HRVNUIGxlbmd0aCkKKyB7CisgICByYW5nZV9zIG5ld3I7CisgICBpbnQgaTsK K0BAIC01OTEsNyArNTk0LDggQEAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlIChzdHJ1Y3Qg dmFsdQogIH0KICAKICB2b2lkCkBAIC0zOTg1LDcgKzM5MDEsNyBAQCBJbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIHsKICAgIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJs ZSAodmFsdWUsCiAgCQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC01NzIs NyArNTc0LDcgQEAgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbAorQEAg LTYwNSw3ICs2MDksNyBAQCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFs CiAgCiAgc3RhdGljIGludAogIGZpbmRfZmlyc3RfcmFuZ2Vfb3ZlcmxhcCAoVkVDKHJhbmdlX3Mp ICpyYW5nZXMsIGludCBwb3MsCkBAIC0zOTk0LDIwICszOTEwLDMzIEBAIEluZGV4OiBnZGItNy43 LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5jCiAgewogICAgcmFuZ2VfcyAqcjsKICAgIGludCBpOwot QEAgLTc2Myw5ICs3NjUsOSBAQCB2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfYml0c19lcSAoY29u c3QKK0BAIC04MDEsOSArODA1LDkgQEAgZmluZF9maXJzdF9yYW5nZV9vdmVybGFwX2FuZF9tYXRj aCAoc3RydQorICAgIFJldHVybiB0cnVlIGlmIHRoZSBhdmFpbGFibGUgYml0cyBtYXRjaC4gICov CisgCisgc3RhdGljIGludAorLXZhbHVlX2NvbnRlbnRzX2JpdHNfZXEgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsMSwgaW50IG9mZnNldDEsCistCQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBp bnQgb2Zmc2V0MiwKKy0JCQlpbnQgbGVuZ3RoKQorK3ZhbHVlX2NvbnRlbnRzX2JpdHNfZXEgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VTVCBvZmZzZXQxLAorKwkJCWNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBvZmZzZXQyLAorKwkJCUxPTkdFU1QgbGVuZ3RoKQorIHsK KyAgIC8qIEVhY2ggYXJyYXkgZWxlbWVudCBjb3JyZXNwb25kcyB0byBhIHJhbmdlcyBzb3VyY2Ug KHVuYXZhaWxhYmxlLAorICAgICAgb3B0aW1pemVkIG91dCkuICAnMScgaXMgZm9yIFZBTDEsICcy JyBmb3IgVkFMMi4gICovCitAQCAtODYzLDkgKzg2Nyw5IEBAIHZhbHVlX2NvbnRlbnRzX2JpdHNf ZXEgKGNvbnN0IHN0cnVjdCB2YWwKICB9CiAgCiAgaW50Ci0tdmFsdWVfYXZhaWxhYmxlX2NvbnRl bnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIGludCBvZmZzZXQxLAotLQkJCSAgICAg Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0MiwKLS0JCQkgICAgIGludCBsZW5n dGgpCi0rdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bDEsIExPTkdFU1Qgb2Zmc2V0MSwKLSsJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwg TE9OR0VTVCBvZmZzZXQyLAotKwkJCSAgICAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgcmV0dXJu IHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19iaXRzX2VxICh2YWwxLCBvZmZzZXQxICogVEFSR0VU X0NIQVJfQklULAotIAkJCQkJICAgdmFsMiwgb2Zmc2V0MiAqIFRBUkdFVF9DSEFSX0JJVCwKLUBA IC05MzAsMTMgKzkzMiwxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFs dWUKKy12YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zm c2V0MSwKKy0JCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgaW50IG9mZnNldDIsCistCQkg ICBpbnQgbGVuZ3RoKQorK3ZhbHVlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bDEsIExPTkdFU1Qgb2Zmc2V0MSwKKysJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9O R0VTVCBvZmZzZXQyLAorKwkJICAgTE9OR0VTVCBsZW5ndGgpCisgeworICAgcmV0dXJuIHZhbHVl X2NvbnRlbnRzX2JpdHNfZXEgKHZhbDEsIG9mZnNldDEgKiBUQVJHRVRfQ0hBUl9CSVQsCisgCQkJ CSB2YWwyLCBvZmZzZXQyICogVEFSR0VUX0NIQVJfQklULAorQEAgLTEwMjksMTMgKzEwMzMsMTMg QEAgZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAoc3RydWN0IHZhbHVlCiAgICB2YWx1ZS0+dHlw ZSA9IHR5cGU7CiAgfQogIApAQCAtNDAyMyw3ICszOTUyLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICB7CiAgICB2YWx1ZS0+b2Zmc2V0ID0gb2Zmc2V0OwogIH0K LUBAIC0xMTA2LDggKzExMDgsOSBAQCB2YWx1ZV9jb250ZW50c19hbGwgKHN0cnVjdCB2YWx1ZSAq dmFsdWUpCitAQCAtMTI0Niw4ICsxMjUwLDkgQEAgdmFsdWVfcmFuZ2VzX2NvcHlfYWRqdXN0ZWQg KHN0cnVjdCB2YWx1ZQogICAgIERTVF9PRkZTRVQrTEVOR1RIKSByYW5nZSBhcmUgd2hvbGx5IGF2 YWlsYWJsZS4gICovCiAgCiAgdm9pZApAQCAtNDAzNSw3ICszOTY0LDcgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICB7CiAgICByYW5nZV9zICpyOwogICAgaW50IGk7 Ci1AQCAtMTE1OSw4ICsxMTYyLDggQEAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0cnVjdCB2 YWx1ZSAqZAorQEAgLTEyOTMsOCArMTI5OCw4IEBAIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChz dHJ1Y3QgdmFsdWUgKmQKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBh dmFpbGFibGUuICAqLwogIAogIHZvaWQKQEAgLTQwNDQsMTggKzM5NzMsMjggQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICt2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1 Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAogKwkJICAgICBzdHJ1Y3QgdmFsdWUg KnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LCBzc2l6ZV90IGxlbmd0aCkKICB7Ci0gICByZXF1aXJl X25vdF9vcHRpbWl6ZWRfb3V0IChzcmMpOworICAgaWYgKHNyYy0+bGF6eSkKKyAgICAgdmFsdWVf ZmV0Y2hfbGF6eSAoc3JjKTsKK0BAIC0xMzU4LDcgKzEzNjMsOCBAQCB2YWx1ZV9vcHRpbWl6ZWRf b3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlCisgICAgdGhlIGZvbGxvd2luZyBMRU5HVEggYnl0ZXMu ICAqLwogIAotQEAgLTEyNjUsNyArMTI2OCw3IEBAIHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9v dXQgKGNvbnN0IHN0cnUKLSB9Cisgdm9pZAorLW1hcmtfdmFsdWVfYnl0ZXNfb3B0aW1pemVkX291 dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKyttYXJrX3Zh bHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zm c2V0LAorKwkJCQlMT05HRVNUIGxlbmd0aCkKKyB7CisgICBtYXJrX3ZhbHVlX2JpdHNfb3B0aW1p emVkX291dCAodmFsdWUsCisgCQkJCSBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCitAQCAtMTM2 OCwxNCArMTM3NCwxNSBAQCBtYXJrX3ZhbHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVjdCB2 CisgLyogU2VlIHZhbHVlLmguICAqLwogIAotIGludAotLXZhbHVlX2JpdHNfdmFsaWQgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rdmFsdWVfYml0 c192YWxpZCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsIExPTkdF U1QgbGVuZ3RoKQorIHZvaWQKKy1tYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAoc3RydWN0 IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKKyttYXJrX3ZhbHVlX2JpdHNf b3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsCisrCQkJ ICAgICAgIExPTkdFU1QgbGVuZ3RoKQogIHsKLSAgIGlmICghdmFsdWUtPm9wdGltaXplZF9vdXQp Ci0gICAgIHJldHVybiAxOwotQEAgLTEyNzgsNyArMTI4MSw3IEBAIHZhbHVlX2JpdHNfdmFsaWQg KGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmEKKyAgIGluc2VydF9pbnRvX2JpdF9yYW5nZV92ZWN0b3Ig KCZ2YWx1ZS0+b3B0aW1pemVkX291dCwgb2Zmc2V0LCBsZW5ndGgpOworIH0KICAKICBpbnQKICB2 YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApA QCAtNDA2NCw3ICs0MDAzLDcgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVl LmMKICB7CiAgICBpZiAodmFsdWUtPmx2YWwgIT0gbHZhbF9jb21wdXRlZAogICAgICAgIHx8ICF2 YWx1ZS0+bG9jYXRpb24uY29tcHV0ZWQuZnVuY3MtPmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKQot QEAgLTEyODgsMjYgKzEyOTEsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29u c3Qgc3RydQorQEAgLTEzODUsMjYgKzEzOTIsMjYgQEAgdmFsdWVfYml0c19zeW50aGV0aWNfcG9p bnRlciAoY29uc3Qgc3RydQogIAkJCQkJCQkJICBsZW5ndGgpOwogIH0KICAKQEAgLTQwOTUsNyAr NDAzNCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5jCiAgewogICAg dmFsdWUtPnBvaW50ZWRfdG9fb2Zmc2V0ID0gdmFsOwogIH0KLUBAIC0yMTU0LDcgKzIxNTcsNyBA QCBnZXRfaW50ZXJuYWx2YXJfZnVuY3Rpb24gKHN0cnVjdCBpbnRlcm5hCitAQCAtMjI2Myw3ICsy MjcwLDcgQEAgZ2V0X2ludGVybmFsdmFyX2Z1bmN0aW9uIChzdHJ1Y3QgaW50ZXJuYQogIH0KICAK ICB2b2lkCkBAIC00MTA0LDcgKzQwNDMsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdmFsdWUuYwogIAkJCSAgIGludCBiaXRzaXplLCBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbCkKICB7 CiAgICBnZGJfYnl0ZSAqYWRkcjsKLUBAIC0yODYwLDcgKzI4NjMsNyBAQCBzZXRfdmFsdWVfZW5j bG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqCitAQCAtMjk2OSw3ICsyOTc2LDcgQEAgc2V0X3Zh bHVlX2VuY2xvc2luZ190eXBlIChzdHJ1Y3QgdmFsdWUgKgogICAgIEZJRUxETk8gc2F5cyB3aGlj aCBmaWVsZC4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTQxMTMsMTYgKzQwNTIsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIAkJICAgICAgIGludCBmaWVs ZG5vLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAgewogICAgc3RydWN0IHZhbHVlICp2OwotQEAg LTI4ODgsNyArMjg5MSw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICph cmcKLSAJIGJpdC4gIEFzc3VtZSB0aGF0IHRoZSBhZGRyZXNzLCBvZmZzZXQsIGFuZCBlbWJlZGRl ZCBvZmZzZXQKLSAJIGFyZSBzdWZmaWNpZW50bHkgYWxpZ25lZC4gICovCi0gCi0tICAgICAgaW50 IGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9TIChhcmdfdHlwZSwgZmllbGRubyk7Ci0rICAgICAg TE9OR0VTVCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAoYXJnX3R5cGUsIGZpZWxkbm8pOwot ICAgICAgIGludCBjb250YWluZXJfYml0c2l6ZSA9IFRZUEVfTEVOR1RIICh0eXBlKSAqIDg7Ci0g Ci0gICAgICAgaWYgKGFyZzEtPm9wdGltaXplZF9vdXQpCi1AQCAtMjkxNSw3ICsyOTE4LDcgQEAg dmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAgLTMwMTksNyArMzAy Niw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAgICAgICAv KiBUaGlzIGZpZWxkIGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJvYmplY3QsIHNvIHByZXNlcnZlIHRo ZQogIAkgZW50aXJlIG9iamVjdCdzIGNvbnRlbnRzIGZvciBsYXRlciByZWZlcmVuY2VzIHRvIHZp cnR1YWwKICAJIGJhc2VzLCBldGMuICAqLwpAQCAtNDEzMSw3ICs0MDYxLDcgQEAgSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICAKICAgICAgICAvKiBMYXp5IHJlZ2lzdGVy IHZhbHVlcyB3aXRoIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwogICAgICAgIGlmIChW QUxVRV9MVkFMIChhcmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xhenkgKGFyZzEpKQot QEAgLTMwMTQsNyArMzAxNyw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGlu dCBmaWUKK0BAIC0zMTA1LDcgKzMxMTIsNyBAQCB2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICph cmcxLCBpbnQgZmllCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZh bHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCWludCBqLCBzdHJ1Y3QgdHlwZSAq dHlwZSwKQEAgLTQxNDAsMTggKzQwNzAsMTUgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL3ZhbHVlLmMKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7CiAgICBzdHJ1Y3QgdHlwZSAqZnR5 cGUgPSBUWVBFX0ZOX0ZJRUxEX1RZUEUgKGYsIGopOwotQEAgLTMwNzQsOCArMzA3Nyw4IEBAIHZh bHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKK0BAIC0zMTc1LDE0ICszMTgy LDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKICAKLSBzdGF0 aWMgaW50Ci0gdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZSAqZmllbGRf dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJICAgICBpbnQgZW1iZWRkZWRfb2Zm c2V0LCBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSwKLS0JCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqb3JpZ2luYWxfdmFsdWUsCi0rCQkJICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgTE9O R0VTVCBiaXRwb3MsCi0rCQkJICAgICBpbnQgYml0c2l6ZSwgY29uc3Qgc3RydWN0IHZhbHVlICpv cmlnaW5hbF92YWx1ZSwKLSAJCQkgICAgIExPTkdFU1QgKnJlc3VsdCkKKyBzdGF0aWMgTE9OR0VT VAorIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKKy0JCSAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUpCisrCQkg ICAgIExPTkdFU1QgYml0cG9zLCBpbnQgYml0c2l6ZSkKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4g Ynl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAoZmllbGRfdHlw ZSkpOwotQEAgLTMwODMsNyArMzA4Niw3IEBAIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmdfMSAo c3RydWN0IHR5cGUKKyAgIFVMT05HRVNUIHZhbDsKICAgIFVMT05HRVNUIHZhbG1hc2s7CiAgICBp bnQgbHNiY291bnQ7CiAgICBpbnQgYnl0ZXNfcmVhZDsKQEAgLTQxNjAsMjkgKzQwODcsNyBAQCBJ bmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuYwogIAogICAgLyogUmVhZCB0aGUg bWluaW11bSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQ7IHRoZXJlIG1heSBub3QgYmUKICAgICAg IGVub3VnaCBieXRlcyB0byByZWFkIGFuIGVudGlyZSBVTE9OR0VTVC4gICovCi1AQCAtMzE1Myw3 ICszMTU2LDcgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZQotIAot IGludAotIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBp bnQgYml0cG9zLCBpbnQgYml0c2l6ZSwKLSsJCQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwg aW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0gCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmln aW5hbF92YWx1ZSwKLSAJCQkgICBMT05HRVNUICpyZXN1bHQpCi0gewotQEAgLTMxNzEsMTAgKzMx NzQsMTAgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKgotIAotIHN0 YXRpYyBpbnQKLSB1bnBhY2tfdmFsdWVfZmllbGRfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNl dCwgaW50IGZpZWxkbm8sCi0rCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBm aWVsZG5vLAotIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUICpyZXN1 bHQpCi0gewotLSAgaW50IGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBmaWVsZG5v KTsKLSsgIExPTkdFU1QgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8p OwotICAgaW50IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwot ICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxk bm8pOwotIAotQEAgLTMxOTAsNyArMzE5Myw3IEBAIHVucGFja192YWx1ZV9maWVsZF9hc19sb25n XzEgKHN0cnVjdCB0eXAKK0BAIC0zMjMxLDcgKzMyMzgsNyBAQCB1bnBhY2tfYml0c19hc19sb25n IChzdHJ1Y3QgdHlwZSAqZmllbGRfCiAgCiAgaW50CiAgdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xv bmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQxOTAs MTcgKzQwOTUsMjYgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmMKICsJ CQkgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAogIAkJCSAgICBjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCAqcmVzdWx0KQogIHsKLSAgIGdkYl9hc3NlcnQg KHZhbCAhPSBOVUxMKTsKLUBAIC0zMjIyLDcgKzMyMjUsNyBAQCB1bnBhY2tfZmllbGRfYXNfbG9u ZyAoc3RydWN0IHR5cGUgKnR5cGUsCisgICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1Mg KHR5cGUsIGZpZWxkbm8pOworQEAgLTMyNzUsNyArMzI4Miw3IEBAIHVucGFja19maWVsZF9hc19s b25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyB2b2lkCisgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChz dHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAorIAkJICAgICAgIGludCBiaXRwb3MsIGludCBiaXRzaXpl LAorLQkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0 LAorKwkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwKKyAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKKyB7CisgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlcjsKK0BAIC0zMzEzLDcgKzMzMjAsNyBAQCB1bnBhY2tfdmFsdWVf Yml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9maWVs ZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVsZG5vLAogIAkJICAgICAgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAtCQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICsJCSAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7Ci0gICBMT05HRVNUIGw7Ci0gCi1AQCAtMzI0OSwx MiArMzI1MiwxMiBAQCB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsCisg ICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOworICAgaW50 IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOworQEAgLTMzMzQs MTIgKzMzNDEsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAog IAogIHZvaWQKICBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRk ciwKQEAgLTQyMTUsMTEgKzQxMjksMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3ZhbHVlLmMKICAKICAgIC8qIE5vcm1hbGl6ZSBCSVRQT1MuICAqLwogICAgYWRkciArPSBiaXRw b3MgLyA4OwotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmgKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWx1ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYxMy5vcmlnL2dkYi92YWx1ZS5oCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAkyMDE0LTA2LTI0IDE2 OjA3OjI3LjI3Mjk4NjkwNSArMDIwMAotQEAgLTgzLDggKzgzLDggQEAgZXh0ZXJuIHZvaWQgc2V0 X3ZhbHVlX3BhcmVudCAoc3RydWN0IHZhbAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvdmFsdWUuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2MzMxODk4NCArMDEwMAorKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTUzMjY5MDMg KzAxMDAKK0BAIC0xMzEsOCArMTMxLDggQEAgZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BhcmVudCAo c3RydWN0IHZhbAogICAgIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0cnVjdHVyZS4gIE5vdGUgYWxz byB0aGUgbWVtYmVyCiAgICAgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KICAKQEAgLTQyMzAs NyArNDE0NCw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCiAg LyogVGhlIGNvbW1lbnQgZnJvbSAic3RydWN0IHZhbHVlIiByZWFkczogYGBJcyBpdCBtb2RpZmlh YmxlPyAgT25seQogICAgIHJlbGV2YW50IGlmIGx2YWwgIT0gbm90X2x2YWwuJycuICBTaG91bGRu J3QgdGhlIHZhbHVlIGluc3RlYWQgYmUKLUBAIC0xNTMsMTAgKzE1MywxMCBAQCBleHRlcm4gc3Ry dWN0IHR5cGUgKnZhbHVlX2FjdHVhbF90eXBlIChzCitAQCAtMjAxLDEwICsyMDEsMTAgQEAgZXh0 ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9hY3R1YWxfdHlwZSAocwogIAkJCQkgICAgICAgaW50IHJl c29sdmVfc2ltcGxlX3R5cGVzLAogIAkJCQkgICAgICAgaW50ICpyZWFsX3R5cGVfZm91bmQpOwog IApAQCAtNDI0NSwxNyArNDE1OSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92 YWx1ZS5oCiAgCiAgLyogRm9yIGx2YWxfY29tcHV0ZWQgdmFsdWVzLCB0aGlzIHN0cnVjdHVyZSBo b2xkcyBmdW5jdGlvbnMgdXNlZCB0bwogICAgIHJldHJpZXZlIGFuZCBzZXQgdGhlIHZhbHVlIChv ciBwb3J0aW9ucyBvZiB0aGUgdmFsdWUpLgotQEAgLTE4NCw3ICsxODQsOCBAQCBzdHJ1Y3QgbHZh bF9mdW5jcwotICAgLyogQ2hlY2sgdGhlIHZhbGlkaXR5IG9mIHNvbWUgYml0cyBpbiBWQUxVRS4g IFRoaXMgc2hvdWxkIHJldHVybiAxCi0gICAgICBpZiBhbGwgdGhlIGJpdHMgc3RhcnRpbmcgYXQg T0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yIExFTkdUSCBiaXRzCi0gICAgICBhcmUgdmFsaWQsIG9y IDAgaWYgYW55IGJpdCBpcyBpbnZhbGlkLiAgKi8KLS0gIGludCAoKmNoZWNrX3ZhbGlkaXR5KSAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rICBp bnQgKCpjaGVja192YWxpZGl0eSkgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qg b2Zmc2V0LAotKwkJCSBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gICAvKiBSZXR1cm4gMSBpZiBhbnkg Yml0IGluIFZBTFVFIGlzIHZhbGlkLCAwIGlmIHRoZXkgYXJlIGFsbCBpbnZhbGlkLiAgKi8KLSAg IGludCAoKmNoZWNrX2FueV92YWxpZCkgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUpOwotQEAg LTIwMiw3ICsyMDMsNyBAQCBzdHJ1Y3QgbHZhbF9mdW5jcworQEAgLTI0Miw3ICsyNDIsNyBAQCBz dHJ1Y3QgbHZhbF9mdW5jcwogICAgLyogSWYgbm9uLU5VTEwsIHRoaXMgaXMgdXNlZCB0byBkZXRl cm1pbmUgd2hldGhlciB0aGUgaW5kaWNhdGVkIGJpdHMKICAgICAgIG9mIFZBTFVFIGFyZSBhIHN5 bnRoZXRpYyBwb2ludGVyLiAgKi8KICAgIGludCAoKmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKSAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKQEAgLTQyNjQsNyArNDE2OCw3IEBAIEluZGV4OiBn ZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCiAgICAvKiBSZXR1cm4gYSBkdXBsaWNh dGUgb2YgVkFMVUUncyBjbG9zdXJlLCBmb3IgdXNlIGluIGEgbmV3IHZhbHVlLgogICAgICAgVGhp cyBtYXkgc2ltcGx5IHJldHVybiB0aGUgc2FtZSBjbG9zdXJlLCBpZiBWQUxVRSdzIGlzCi1AQCAt MjM5LDcgKzI0MCw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX2NvbXB1dGVkX3YK K0BAIC0yNzksNyArMjc5LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfY29tcHV0 ZWRfdgogICAgIE90aGVyd2lzZSwgcmV0dXJuIDEuICAqLwogIAogIGV4dGVybiBpbnQgdmFscHJp bnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0 eXBlLApAQCAtNDI3MywxNCArNDE3NywzMyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdmFsdWUuaAogIAkJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwogIAogIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX29wdGltaXplZF9vdXRfdmFsdWUgKHN0cnVjdCB0eXBl ICp0eXBlKTsKLUBAIC00MjEsMTMgKzQyMiwxMyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpjb2Vy Y2VfYXJyYXkgKHN0cnVjCi0gICAgYml0cyBpbiB0aGUgZ2l2ZW4gcmFuZ2UgYXJlIHZhbGlkLCB6 ZXJvIGlmIGFueSBiaXQgaXMgaW52YWxpZC4gICovCitAQCAtMzczLDcgKzM3Myw4IEBAIGV4dGVy biBpbnQgdmFsdWVfb3B0aW1pemVkX291dCAoc3RydWN0IHYKKyAgICBvdGhlcndpc2UuICAqLwor IAorIGV4dGVybiBpbnQgdmFsdWVfYml0c19hbnlfb3B0aW1pemVkX291dCAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwKKy0JCQkJCSBpbnQgYml0X29mZnNldCwgaW50IGJpdF9sZW5ndGgpOwor KwkJCQkJIExPTkdFU1QgYml0X29mZnNldCwKKysJCQkJCSBMT05HRVNUIGJpdF9sZW5ndGgpOwor IAorIC8qIExpa2UgdmFsdWVfb3B0aW1pemVkX291dCwgYnV0IHJldHVybiB0cnVlIGlmZiB0aGUg d2hvbGUgdmFsdWUgaXMKKyAgICBvcHRpbWl6ZWQgb3V0LiAgKi8KK0BAIC0zODMsMTMgKzM4NCwx MyBAQCBleHRlcm4gaW50IHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQKKyAgICBMRU5HVEgg Ynl0ZXMgYXMgb3B0aW1pemVkIG91dC4gICovCisgCisgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9i eXRlc19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAorLQkJCQkJICAgIGludCBv ZmZzZXQsIGludCBsZW5ndGgpOworKwkJCQkJICAgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxl bmd0aCk7CisgCisgLyogTWFyayBWQUxVRSdzIGNvbnRlbnQgYml0cyBzdGFydGluZyBhdCBPRkZT RVQgYW5kIGV4dGVuZGluZyBmb3IKKyAgICBMRU5HVEggYml0cyBhcyBvcHRpbWl6ZWQgb3V0LiAg Ki8KICAKLSBleHRlcm4gaW50IHZhbHVlX2JpdHNfdmFsaWQgKGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsdWUsCi0tCQkJICAgICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKLSsJCQkgICAgIExPTkdF U1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CisgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9iaXRz X29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsCistCQkJCQkgICBpbnQgb2Zmc2V0 LCBpbnQgbGVuZ3RoKTsKKysJCQkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7 CiAgCi0gLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGJpdHMgc3RhcnRp bmcgYXQgT0ZGU0VUIGFuZAorIC8qIFNldCBvciByZXR1cm4gZmllbGQgaW5kaWNhdGluZyB3aGV0 aGVyIGEgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgb3IKKyAgICBub3QsIGJhc2VkIG9uIGRlYnVn Z2luZyBpbmZvcm1hdGlvbiBzdXBwbGllZCBieSB0aGUgY29tcGlsZXIuCitAQCAtNDcyLDcgKzQ3 Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV9hcnJheSAoc3RydWMKICAgICBleHRl bmRpbmcgZm9yIExFTkdUSCBiaXRzIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KICAKICBl eHRlcm4gaW50IHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsdWUsCkBAIC00Mjg5LDcgKzQyMTIsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYx My9nZGIvdmFsdWUuaAogIAogIC8qIEdpdmVuIGEgdmFsdWUsIGRldGVybWluZSB3aGV0aGVyIHRo ZSBjb250ZW50cyBieXRlcyBzdGFydGluZyBhdAogICAgIE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZv ciBMRU5HVEggYnl0ZXMgYXJlIGF2YWlsYWJsZS4gIFRoaXMgcmV0dXJucwotQEAgLTQzNSw3ICs0 MzYsNyBAQCBleHRlcm4gaW50IHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIKK0BAIC00ODAs NyArNDgxLDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyCiAgICAg Ynl0ZSBpcyB1bmF2YWlsYWJsZS4gICovCiAgCiAgZXh0ZXJuIGludCB2YWx1ZV9ieXRlc19hdmFp bGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00Mjk4LDcgKzQyMjEsMTYgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmgKICAKICAvKiBHaXZlbiBhIHZh bHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgY29udGVudHMgYml0cyBzdGFydGluZyBhdAogICAg IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvciBMRU5HVEggYml0cyBhcmUgYXZhaWxhYmxlLiAgVGhp cyByZXR1cm5zCi1AQCAtNDU3LDcgKzQ1OCw3IEBAIGV4dGVybiBpbnQgdmFsdWVfZW50aXJlbHlf dW5hdmFpbGFibGUgKHMKK0BAIC00ODgsNyArNDg5LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9ieXRl c19hdmFpbGFibGUgKGNvbnN0CisgICAgYml0IGlzIHVuYXZhaWxhYmxlLiAgKi8KKyAKKyBleHRl cm4gaW50IHZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAor LQkJCQkgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7CisrCQkJCSBMT05HRVNUIG9mZnNldCwgTE9O R0VTVCBsZW5ndGgpOworIAorIC8qIExpa2UgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlLCBidXQgcmV0 dXJuIGZhbHNlIGlmIGFueSBieXRlIGluIHRoZQorICAgIHdob2xlIG9iamVjdCBpcyB1bmF2YWls YWJsZS4gICovCitAQCAtNTAyLDcgKzUwMyw3IEBAIGV4dGVybiBpbnQgdmFsdWVfZW50aXJlbHlf dW5hdmFpbGFibGUgKHMKICAgICBMRU5HVEggYnl0ZXMgYXMgdW5hdmFpbGFibGUuICAqLwogIAog IGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsCkBAIC00MzA3LDI5ICs0MjM5LDIwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi92YWx1ZS5oCiAgCiAgLyogTWFyayBWQUxVRSdzIGNvbnRlbnQgYml0cyBzdGFydGluZyBh dCBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IKICAgICBMRU5HVEggYml0cyBhcyB1bmF2YWlsYWJs ZS4gICovCi1AQCAtNDczLDcgKzQ3NCw3IEBAIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c191 bmF2YWlsYWJsZQotICAgIGV4YW1wbGUsIHRvIGNvbXBhcmUgYSBjb21wbGV0ZSBvYmplY3QgdmFs dWUgd2l0aCBpdHNlbGYsIGluY2x1ZGluZwotICAgIGl0cyBlbmNsb3NpbmcgdHlwZSBjaHVuaywg eW91J2QgZG86Ci0gCi0tICAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKGNoZWNrX3R5cGVkZWYg KHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKSk7Ci0rICAgICBVTE9OR0VTVCBsZW4gPSBUWVBF X0xFTkdUSCAoY2hlY2tfdHlwZWRlZiAodmFsdWVfZW5jbG9zaW5nX3R5cGUgKHZhbCkpKTsKLSAg ICAgIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50cyAodmFsLCAwLCB2YWwsIDAsIGxlbik7Ci0gCi0g ICAgUmV0dXJucyB0cnVlIGlmZiB0aGUgc2V0IG9mIGF2YWlsYWJsZSBjb250ZW50cyBtYXRjaC4g IFVuYXZhaWxhYmxlCi1AQCAtNTAwLDkgKzUwMSw5IEBAIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVf Yml0c191bmF2YWlsYWJsZQotICAgIGdvbmUsIGl0IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAg VGhlcmVmb3JlLCB0aGlzIHJvdXRpbmUgbXVzdCBub3QKLSAgICBiZSBjYWxsZWQgd2l0aCBsYXp5 IHZhbHVlcy4gICovCi0gCi0tZXh0ZXJuIGludCB2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfZXEg KGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgaW50IG9mZnNldDEsCi0tCQkJCQljb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbDIsIGludCBvZmZzZXQyLAotLQkJCQkJaW50IGxlbmd0aCk7Ci0rZXh0ZXJu IGludCB2YWx1ZV9hdmFpbGFibGVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs MSwgTE9OR0VTVCBvZmZzZXQxLAotKwkJCQkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBMT05H RVNUIG9mZnNldDIsCi0rCQkJCQlMT05HRVNUIGxlbmd0aCk7CitAQCAtNTYzLDkgKzU2NCw5IEBA IGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZQorICAgIGFmdGVyIHRoZSBp bmZlcmlvciBpcyBnb25lLCBpdCB3b3JrcyB3aXRoIGNvbnN0IHZhbHVlcy4gIFRoZXJlZm9yZSwK KyAgICB0aGlzIHJvdXRpbmUgbXVzdCBub3QgYmUgY2FsbGVkIHdpdGggbGF6eSB2YWx1ZXMuICAq LworIAorLWV4dGVybiBpbnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsMSwgaW50IG9mZnNldDEsCistCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBp bnQgb2Zmc2V0MiwKKy0JCQkgICAgICBpbnQgbGVuZ3RoKTsKKytleHRlcm4gaW50IHZhbHVlX2Nv bnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIExPTkdFU1Qgb2Zmc2V0MSwKKysJ CQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIExPTkdFU1Qgb2Zmc2V0MiwKKysJCQkg ICAgICBMT05HRVNUIGxlbmd0aCk7CiAgCiAgLyogUmVhZCBMRU5HVEggYnl0ZXMgb2YgbWVtb3J5 IHN0YXJ0aW5nIGF0IE1FTUFERFIgaW50byBCVUZGRVIsIHdoaWNoCiAgICAgaXMgKG9yIHdpbGwg YmUgY29waWVkIHRvKSBWQUwncyBjb250ZW50cyBidWZmZXIgb2Zmc2V0IGJ5Ci1AQCAtNTExLDcg KzUxMiw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYXZhaWxhYmxlX2NvbnRlbnRzX2VxICgKK0BAIC01 NzQsNyArNTc1LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydQog ICAgIG1lbW9yeSBpcyBsaWtld2lzZSB1bmF2YWlsYWJsZS4gIFNUQUNLIGluZGljYXRlcyB3aGV0 aGVyIHRoZSBtZW1vcnkKICAgICBpcyBrbm93biB0byBiZSBzdGFjayBtZW1vcnkuICAqLwogIApA QCAtNDMzOCwxNiArNDI2MSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1 ZS5oCiAgCQkJICAgICAgIGludCBzdGFjaywgQ09SRV9BRERSIG1lbWFkZHIsCiAgCQkJICAgICAg IGdkYl9ieXRlICpidWZmZXIsIHNpemVfdCBsZW5ndGgpOwogIAotQEAgLTU0NSw3ICs1NDYsNyBA QCBleHRlcm4gQ09SRV9BRERSIHVucGFja19wb2ludGVyIChzdHJ1Y3QKLSAKLSBleHRlcm4gaW50 IHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLAotIAkJ CQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJICAgICAgaW50IGVtYmVkZGVk X29mZnNldCwgaW50IGJpdHBvcywKLSsJCQkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQs IGludCBiaXRwb3MsCi0gCQkJCSAgICAgIGludCBiaXRzaXplLAotIAkJCQkgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAotIAkJCQkgICAgICBMT05HRVNUICpyZXN1bHQp OwotQEAgLTU1NCwxMiArNTU1LDEyIEBAIGV4dGVybiBMT05HRVNUIHVucGFja19maWVsZF9hc19s b25nIChzdHIKK0BAIC02MTAsMTcgKzYxMSwxOCBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmll bGRfYXNfbG9uZyAoc3RyCiAgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgCQkJ CSAgICAgaW50IGZpZWxkbm8pOwogIGV4dGVybiBpbnQgdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xv bmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQzNTUs NiArNDI2OSwxMyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAogKwkJ CQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgaW50IGZpZWxkbm8sCiAgCQkJCWNvbnN0IHN0cnVj dCB2YWx1ZSAqdmFsLCBMT05HRVNUICpyZXN1bHQpOwogIAorIGV4dGVybiB2b2lkIHVucGFja192 YWx1ZV9iaXRmaWVsZCAoc3RydWN0IHZhbHVlICpkZXN0X3ZhbCwKKyAJCQkJICAgaW50IGJpdHBv cywgaW50IGJpdHNpemUsCistCQkJCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1i ZWRkZWRfb2Zmc2V0LAorKwkJCQkgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKKysJCQkJICAg TE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs KTsKKyAKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0 IHR5cGUgKnR5cGUsIGludCBmaWVsZG5vLAogIAkJCQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCiAtCQkJCQkgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LApAQCAtNDM2Miw3ICs0MjgzLDcgQEAg SW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3ZhbHVlLmgKICAJCQkJCSAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsKTsKICAKICBleHRlcm4gdm9pZCBwYWNrX2xvbmcgKGdkYl9ieXRlICpi dWYsIHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUIG51bSk7Ci1AQCAtNjE2LDEyICs2MTcsMTIg QEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQorQEAgLTY3NywxMiAr Njc5LDEyIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmRlZmF1bHRfcmVhZF92YXJfdmEKICAKICBl eHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUpOwog IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0 eXBlKTsKQEAgLTQzODEsNyArNDMwMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dk Yi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfcmVwZWF0X3ZhbHVl IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGNvdW50KTsKICAKLUBAIC02OTgsMTYgKzY5OSwxNiBA QCBleHRlcm4gaW50IGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB2CitAQCAtNzYwLDE2ICs3 NjIsMTYgQEAgZXh0ZXJuIGludCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdgogIAogIGV4 dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBm aWVsZG5vKTsKICAKQEAgLTQ0MDEsNyArNDMyMiw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY2FzdF9wb2lu dGVycyAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICosIGludCk7CiAgCi1AQCAtODAyLDcg KzgwMyw3IEBAIGV4dGVybiB2b2lkIHNldF9pbnRlcm5hbHZhcl9zdHJpbmcgKHN0cnUKK0BAIC04 NjQsNyArODY2LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X2ludGVybmFsdmFyX3N0cmluZyAoc3RydQog IGV4dGVybiB2b2lkIGNsZWFyX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhcik7 CiAgCiAgZXh0ZXJuIHZvaWQgc2V0X2ludGVybmFsdmFyX2NvbXBvbmVudCAoc3RydWN0IGludGVy bmFsdmFyICp2YXIsCkBAIC00NDEwLDcgKzQzMzEsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvdmFsdWUuaAogIAkJCQkgICAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCiAg CQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsKICAKLUBAIC04ODMsNyArODg0LDcg QEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfeF91bm9wIChzdHJ1YworQEAgLTk0NSw3ICs5 NDcsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV94X3Vub3AgKHN0cnVjCiAgCQkJCSAg IGVudW0gbm9zaWRlIG5vc2lkZSk7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfZm5f ZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKmYsCkBAIC00NDE5 LDcgKzQzNDAsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAogIAog IGV4dGVybiBpbnQgYmlub3BfdHlwZXNfdXNlcl9kZWZpbmVkX3AgKGVudW0gZXhwX29wY29kZSBv cCwKICAJCQkJICAgICAgIHN0cnVjdCB0eXBlICp0eXBlMSwKLUBAIC05MTEsNyArOTEyLDggQEAg ZXh0ZXJuIHZvaWQgcmVsZWFzZV92YWx1ZV9vcl9pbmNyZWYgKHN0cgorQEAgLTk3Myw3ICs5NzUs OCBAQCBleHRlcm4gdm9pZCByZWxlYXNlX3ZhbHVlX29yX2luY3JlZiAoc3RyCiAgZXh0ZXJuIGlu dCByZWNvcmRfbGF0ZXN0X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbCk7CiAgCiAgZXh0ZXJuIHZv aWQgbW9kaWZ5X2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZ2RiX2J5dGUgKmFkZHIsCkBAIC00 NDI5LDcgKzQzNTAsNyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdmFsdWUuaAog IAogIGV4dGVybiB2b2lkIHR5cGVfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBjaGFy ICp2YXJzdHJpbmcsCiAgCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHNob3cpOwotQEAg LTk0MSw3ICs5NDMsNyBAQCBleHRlcm4gdm9pZCB2YWx1ZV9wcmludF9hcnJheV9lbGVtZW50cyAo CitAQCAtMTAwMyw3ICsxMDA2LDcgQEAgZXh0ZXJuIHZvaWQgdmFsdWVfcHJpbnRfYXJyYXlfZWxl bWVudHMgKAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3JlbGVhc2VfdG9fbWFyayAoc3Ry dWN0IHZhbHVlICptYXJrKTsKICAKICBleHRlcm4gdm9pZCB2YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQ0MzgsNyArNDM1OSw3IEBAIElu ZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92YWx1ZS5oCiAgCQkgICAgICAgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsCiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMsCi1AQCAtOTkwLDEwICs5OTIsMTEgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfbGl0 ZXJhbF9jb21wbAorQEAgLTEwNTQsMTAgKzEwNTcsMTEgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq dmFsdWVfbGl0ZXJhbF9jb21wbAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmZpbmRfZnVuY3Rpb25f aW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKiwKICAJCQkJCQlzdHJ1Y3Qgb2JqZmlsZSAqKik7CiAg CkBAIC00NDUyLDExICs0MzczLDExIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi92 YWx1ZS5oCiAgCiAgLyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAgKi8KICAKLUluZGV4OiBnZGIt Ny43LjkwLjIwMTQwNjEzL2dkYi9zMzkwLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvczM5MC1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAu MjAxNDA2MTMub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE0LTA2LTEzIDAzOjU5OjM3LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3MzOTAtbGludXgtbmF0 LmMJMjAxNC0wNi0yNCAxNjowNzoyNy4yNzI5ODY5MDUgKzAyMDAKLUBAIC01NjcsNyArNTY3LDcg QEAgczM5MF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0YXJnZQorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQx LjU2NDMxODk4OSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3MzOTAtbGludXgt bmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKK0BAIC01NDQsNyArNTQ0 LDcgQEAgczM5MF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0YXJnZQogIAogIHN0YXRp YyBpbnQKICBzMzkwX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9v cHMgKnNlbGYsCkBAIC00NDY1LDEwICs0Mzg2LDEwIEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQw NjEzL2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIDE7CiAgfQotSW5kZXg6IGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL2V4dGVuc2lvbi1wcml2LmgKK0luZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9leHRlbnNpb24tcHJpdi5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45 MC4yMDE0MDYxMy5vcmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTQtMDYtMTMgMDM6NTk6MzYu MDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZXh0ZW5zaW9uLXBy aXYuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3Mjk4NjkwNSArMDIwMAorLS0tIGdkYi03LjguNTAu MjAxNDEyMjgub3JpZy9nZGIvZXh0ZW5zaW9uLXByaXYuaAkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2 NDMxODk4OSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2V4dGVuc2lvbi1wcml2 LmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTUzMjY5MDMgKzAxMDAKIEBAIC0xNzUsNyArMTc1LDcg QEAgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9vcHMKICAgIGVudW0gZXh0X2xhbmdfcmMgKCph cHBseV92YWxfcHJldHR5X3ByaW50ZXIpCiAgICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xh bmd1YWdlX2RlZm4gKiwKQEAgLTQ0NzgsMTEgKzQzOTksMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAu MjAxNDA2MTMvZ2RiL2V4dGVuc2lvbi1wcml2LmgKICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAogICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0 cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAogICAgICAgY29uc3Qgc3RydWN0IGxh bmd1YWdlX2RlZm4gKmxhbmd1YWdlKTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9w eXRob24vcHl0aG9uLWludGVybmFsLmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9w eXRob24vcHl0aG9uLWludGVybmFsLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQw NjEzLm9yaWcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE0LTA2LTEzIDAzOjU5OjM3 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3B5dGhvbi9weXRo b24taW50ZXJuYWwuaAkyMDE0LTA2LTI0IDE2OjA3OjI3LjI3Mjk4NjkwNSArMDIwMAotQEAgLTMx Nyw3ICszMTcsNyBAQCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9hZF9lbmFibGVkIChjb25zCist LS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJ MjAxNS0wMS0wNiAyMjo0NDo0MS41NjQzMTg5ODkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTUz MjY5MDMgKzAxMDAKK0BAIC0zMTMsNyArMzEzLDcgQEAgZXh0ZXJuIGludCBnZGJweV9hdXRvX2xv YWRfZW5hYmxlZCAoY29ucwogIGV4dGVybiBlbnVtIGV4dF9sYW5nX3JjIGdkYnB5X2FwcGx5X3Zh bF9wcmV0dHlfcHJpbnRlcgogICAgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVm biAqLAogICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAg LTQ0OTEsMTEgKzQ0MTIsMTEgQEAgSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3B5dGhv bi9weXRob24taW50ZXJuYWwuaAogICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAogICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2Ri L3RhcmdldC1kZWxlZ2F0ZXMuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rhcmdl dC1kZWxlZ2F0ZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTQtMDYtMTMgMDM6NTk6MzcuMDAwMDAwMDAwICswMjAw Ci0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTQtMDYt MjQgMTY6MDc6MjcuMjcyOTg2OTA1ICswMjAwCi1AQCAtMjY4LDcgKzI2OCw3IEBAIGRlbGVnYXRl X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHMKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NTMxODk5 NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwky MDE1LTAxLTA2IDIyOjQ0OjQzLjE5NjMyNjkwNyArMDEwMAorQEAgLTYzNCwxNCArNjM0LDE0IEBA IGRlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnUKICB9CiAgCiAgc3RhdGlj IGludApAQCAtNDUwNCwxMSArNDQyNSwyOCBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgewogICAgc2VsZiA9IHNlbGYtPmJlbmVhdGg7CiAgICBy ZXR1cm4gc2VsZi0+dG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzZWxmLCBhcmcxLCBh cmcyKTsKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5j CisgfQorIAorIHN0YXRpYyBpbnQKKy1kZWJ1Z19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLCBDT1JFX0FERFIgYXJnMSwgaW50IGFyZzIpCisrZGVi dWdfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwg Q09SRV9BRERSIGFyZzEsIExPTkdFU1QgYXJnMikKKyB7CisgICBpbnQgcmVzdWx0OworICAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7CitAQCAtNjUx LDcgKzY1MSw3IEBAIGRlYnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWMKKyAg IGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOworICAgdGFyZ2V0X2RlYnVnX3By aW50X0NPUkVfQUREUiAoYXJnMSk7CisgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3Rk bG9nKTsKKy0gIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKGFyZzIpOworKyAgdGFyZ2V0X2RlYnVn X3ByaW50X0xPTkdFU1QgKGFyZzIpOworICAgZnB1dHNfdW5maWx0ZXJlZCAoIikgPSAiLCBnZGJf c3RkbG9nKTsKKyAgIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKHJlc3VsdCk7CisgICBmcHV0c191 bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0 MDYxMy5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTQtMDYtMTMgMDM6NTk6MzYuMDAw MDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvYWFyY2g2NC1saW51eC1u YXQuYwkyMDE0LTA2LTI0IDE2OjA4OjA2LjcyMjAzMDY1MyArMDIwMAotQEAgLTE0MDcsNyArMTQw Nyw3IEBAIGFhcmNoNjRfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdAorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTAxLTA2IDIy OjQ0OjQxLjU2NTMxODk5NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FhcmNo NjQtbGludXgtbmF0LmMJMjAxNS0wMS0wNiAyMjo0NDo0My4xOTYzMjY5MDcgKzAxMDAKK0BAIC0x Mzg5LDcgKzEzODksNyBAQCBhYXJjaDY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QK ICAKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9p bnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDUxNywzICs0NDU1LDY5IEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCiAgewogICAgQ09S RV9BRERSIGFsaWduZWRfYWRkcjsKICAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9u YXQveDg2LWRyZWdzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NjMxODk5OSArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTAxLTA2IDIy OjQ0OjQzLjE5NzMyNjkxMiArMDEwMAorQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2Fs aWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IHg4CisgCisgc3RhdGljIGludAorIHg4Nl9oYW5kbGVf bm9uYWxpZ25lZF93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUs CistCQkJCSAgeDg2X3dwX29wX3Qgd2hhdCwgQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCisrCQkJ CSAgeDg2X3dwX29wX3Qgd2hhdCwgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuLAorIAkJCQkg IGVudW0gdGFyZ2V0X2h3X2JwX3R5cGUgdHlwZSkKKyB7CisgICBpbnQgcmV0dmFsID0gMDsKK0BA IC01NTIsNyArNTUyLDcgQEAgeDg2X2RyX3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2Rl YgorIAorIGludAorIHg4Nl9kcl9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKHN0cnVjdCB4ODZf ZGVidWdfcmVnX3N0YXRlICpzdGF0ZSwKKy0JCQkJIENPUkVfQUREUiBhZGRyLCBpbnQgbGVuKQor KwkJCQkgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIGludCBucmVnczsKKyAK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0 LmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2NvbXBpbGUv Y29tcGlsZS1jLXN1cHBvcnQuYwkyMDE1LTAxLTA2IDIyOjQ0OjQxLjU2NjMxODk5OSArMDEwMAor KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwky MDE1LTAxLTA2IDIyOjQ0OjQzLjE5NzMyNjkxMiArMDEwMAorQEAgLTI3NywxMSArMjc3LDExIEBA IGdlbmVyYXRlX3JlZ2lzdGVyX3N0cnVjdCAoc3RydWN0IHVpX2ZpbGUKKyAKKyAJICAgICAgZGVm YXVsdDoKKyAJCWZwcmludGZfdW5maWx0ZXJlZCAoc3RyZWFtLAorLQkJCQkgICAgIiAgdW5zaWdu ZWQgY2hhciAlc1slZF0iCisrCQkJCSAgICAiICB1bnNpZ25lZCBjaGFyICVzWyVzXSIKKyAJCQkJ ICAgICIgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oIgorIAkJCQkgICAgIl9fQklHR0VTVF9B TElHTk1FTlRfXykpKSIsCisgCQkJCSAgICByZWduYW1lLAorLQkJCQkgICAgVFlQRV9MRU5HVEgg KHJlZ3R5cGUpKTsKKysJCQkJICAgIHB1bG9uZ2VzdCAoVFlQRV9MRU5HVEggKHJlZ3R5cGUpKSk7 CisgCSAgICAgIH0KKyAJICAgIGZwdXRzX3VuZmlsdGVyZWQgKCI7XG4iLCBzdHJlYW0pOworIAor SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL25hdC94ODYtZHJlZ3MuaAorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUt MDEtMDYgMjI6NDQ6NDEuNTY2MzE4OTk5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk3MzI2OTEyICswMTAwCitA QCAtMTEyLDcgKzExMiw3IEBAIGV4dGVybiBpbnQgeDg2X2RyX3JlbW92ZV93YXRjaHBvaW50IChz dHIKKyAvKiBSZXR1cm4gbm9uLXplcm8gaWYgd2UgY2FuIHdhdGNoIGEgbWVtb3J5IHJlZ2lvbiB0 aGF0IHN0YXJ0cyBhdAorICAgIGFkZHJlc3MgQUREUiBhbmQgd2hvc2UgbGVuZ3RoIGlzIExFTiBi eXRlcy4gICovCisgZXh0ZXJuIGludCB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChz dHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCistCQkJCQkgICAgQ09SRV9BRERSIGFk ZHIsIGludCBsZW4pOworKwkJCQkJICAgIENPUkVfQUREUiBhZGRyLCBMT05HRVNUIGxlbik7Cisg CisgLyogSWYgdGhlIGluZmVyaW9yIGhhcyBzb21lIGJyZWFrL3dhdGNocG9pbnQgdGhhdCB0cmln Z2VyZWQsIHNldCB0aGUKKyAgICBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGJyZWFrL3dh dGNocG9pbnQgYW5kIHJldHVybiB0cnVlLgorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3g4Ni1uYXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv eDg2LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDEuNTY2MzE4OTk5ICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIveDg2LW5hdC5jCTIwMTUtMDEtMDYgMjI6NDQ6NDMuMTk3MzI2OTEy ICswMTAwCitAQCAtMTc4LDcgKzE3OCw3IEBAIHg4Nl9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0 IHRhcmdldF9vcHMKKyAKKyBzdGF0aWMgaW50CisgeDg2X3JlZ2lvbl9va19mb3Jfd2F0Y2hwb2lu dCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCistCQkJICAgICAgQ09SRV9BRERSIGFkZHIsIGlu dCBsZW4pCisrCQkJICAgICAgQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVuKQorIHsKKyAgIHN0 cnVjdCB4ODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZQorICAgICA9IHg4Nl9kZWJ1Z19yZWdfc3Rh dGUgKHB0aWRfZ2V0X3BpZCAoaW5mZXJpb3JfcHRpZCkpOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1 LnBhdGNoCmluZGV4IDE5NDNiYTYuLmVjY2EwNjggMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy0yMm9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5w YXRjaApAQCAtOTYsMTEgKzk2LDExIEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250 ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2ht ZW50OyBmaWxlbmFtZT1iaXRwb3Mtd3AucGF0Y2gKIAotSW5kZXg6IGdkYi03LjgvZ2RiL2FybS1s aW51eC1uYXQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS1saW51eC1uYXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTQt MDgtMDEgMjM6Mjc6MzAuMTgzNzczNjc2ICswMjAwCi0rKysgZ2RiLTcuOC9nZGIvYXJtLWxpbnV4 LW5hdC5jCTIwMTQtMDgtMDEgMjM6Mjc6MzAuMjQxNzczNzU0ICswMjAwCi1AQCAtMTI5Niw3ICsx Mjk2LDcgQEAgYXJtX2xpbnV4X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAoc3RydWN0CistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0wMS0wNSAyMjox MDozMC4xNzA3MjY3NzQgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tbGlu dXgtbmF0LmMJMjAxNS0wMS0wNSAyMjoxMDozNS41NzE3NTEzMjQgKzAxMDAKK0BAIC0xMjk1LDcg KzEyOTUsNyBAQCBhcm1fbGludXhfc3RvcHBlZF9ieV93YXRjaHBvaW50IChzdHJ1Y3QKICBzdGF0 aWMgaW50CiAgYXJtX2xpbnV4X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0 YXJnZXRfb3BzICp0YXJnZXQsCiAgCQkJCQlDT1JFX0FERFIgYWRkciwKQEAgLTEwOSwxMSArMTA5 LDExIEBAIEluZGV4OiBnZGItNy44L2dkYi9hcm0tbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4g c3RhcnQgPD0gYWRkciAmJiBzdGFydCArIGxlbmd0aCAtIDEgPj0gYWRkcjsKICB9Ci1JbmRleDog Z2RiLTcuOC9nZGIvcHBjLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvcHBjLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi9wcGMt bGludXgtbmF0LmMJMjAxNC0wOC0wMSAyMzoyNzozMC4yMDI3NzM3MDEgKzAyMDAKLSsrKyBnZGIt Ny44L2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNC0wOC0wMSAyMzoyOTozOC4zMTE5NDQ5MjUgKzAy MDAKLUBAIC0xODYyLDExICsxODYyLDExIEBAIGNhbl91c2Vfd2F0Y2hwb2ludF9jb25kX2FjY2Vs ICh2b2lkKQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5j CTIwMTUtMDEtMDUgMjI6MTA6MzAuMTcxNzI2Nzc5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMDEtMDUgMjI6MTA6MzUuNTcyNzUxMzI5ICsw MTAwCitAQCAtMTg2MCwxMSArMTg2MCwxMSBAQCBjYW5fdXNlX3dhdGNocG9pbnRfY29uZF9hY2Nl bCAodm9pZCkKICAgICBDT05ESVRJT05fVkFMVUUgd2lsbCBob2xkIHRoZSB2YWx1ZSB3aGljaCBz aG91bGQgYmUgcHV0IGluIHRoZQogICAgIERWQyByZWdpc3Rlci4gICovCiAgc3RhdGljIHZvaWQK QEAgLTEyOCw3ICsxMjgsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHBjLWxpbnV4LW5hdC5jCiAg ICBDT1JFX0FERFIgYWRkcl9lbmRfZGF0YSwgYWRkcl9lbmRfZHZjOwogIAogICAgLyogVGhlIERW QyByZWdpc3RlciBjb21wYXJlcyBieXRlcyB3aXRoaW4gZml4ZWQtbGVuZ3RoIHdpbmRvd3Mgd2hp Y2gKLUBAIC0xOTUzLDcgKzE5NTMsNyBAQCBudW1fbWVtb3J5X2FjY2Vzc2VzIChzdHJ1Y3QgdmFs dWUgKnYpCitAQCAtMTk1MSw3ICsxOTUxLDcgQEAgbnVtX21lbW9yeV9hY2Nlc3NlcyAoc3RydWN0 IHZhbHVlICp2KQogICAgIG9mIHRoZSBjb25zdGFudC4gICovCiAgc3RhdGljIGludAogIGNoZWNr X2NvbmRpdGlvbiAoQ09SRV9BRERSIHdhdGNoX2FkZHIsIHN0cnVjdCBleHByZXNzaW9uICpjb25k LApAQCAtMTM3LDcgKzEzNyw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9wcGMtbGludXgtbmF0LmMK ICB7CiAgICBpbnQgcGMgPSAxLCBudW1fYWNjZXNzZXNfbGVmdCwgbnVtX2FjY2Vzc2VzX3JpZ2h0 OwogICAgc3RydWN0IHZhbHVlICpsZWZ0X3ZhbCwgKnJpZ2h0X3ZhbCwgKmxlZnRfY2hhaW4sICpy aWdodF9jaGFpbjsKLUBAIC0yMDIxLDcgKzIwMjEsNyBAQCBjaGVja19jb25kaXRpb24gKENPUkVf QUREUiB3YXRjaF9hZGRyLCBzCitAQCAtMjAxOSw3ICsyMDE5LDcgQEAgY2hlY2tfY29uZGl0aW9u IChDT1JFX0FERFIgd2F0Y2hfYWRkciwgcwogICAgIHRydWUuICAqLwogIHN0YXRpYyBpbnQKICBw cGNfbGludXhfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChzdHJ1Y3QgdGFyZ2V0X29w cyAqc2VsZiwKQEAgLTE0Niw3ICsxNDYsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHBjLWxpbnV4 LW5hdC5jCiAgCQkJCQkgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQogIHsKICAgIENPUkVfQURE UiBkYXRhX3ZhbHVlOwotQEAgLTIwMzgsNyArMjAzOCw3IEBAIHBwY19saW51eF9jYW5fYWNjZWxf d2F0Y2hwb2ludF9jb25kaXRpb24KK0BAIC0yMDM2LDcgKzIwMzYsNyBAQCBwcGNfbGludXhfY2Fu X2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uCiAgCiAgc3RhdGljIHZvaWQKICBjcmVhdGVfd2F0 Y2hwb2ludF9yZXF1ZXN0IChzdHJ1Y3QgcHBjX2h3X2JyZWFrcG9pbnQgKnAsIENPUkVfQUREUiBh ZGRyLApAQCAtMTU1LDcgKzE1NSw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9wcGMtbGludXgtbmF0 LmMKICAJCQkgICBpbnQgaW5zZXJ0KQogIHsKICAgIGlmIChsZW4gPT0gMQotQEAgLTIzMDQsNyAr MjMwNCw3IEBAIHBwY19saW51eF9zdG9wcGVkX2J5X3dhdGNocG9pbnQgKHN0cnVjdAorQEAgLTIz MDIsNyArMjMwMiw3IEBAIHBwY19saW51eF9zdG9wcGVkX2J5X3dhdGNocG9pbnQgKHN0cnVjdAog IHN0YXRpYyBpbnQKICBwcGNfbGludXhfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoc3Ry dWN0IHRhcmdldF9vcHMgKnRhcmdldCwKICAJCQkJCUNPUkVfQUREUiBhZGRyLApAQCAtMTY0LDEx ICsxNjQsMTEgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsKICAgIGlu dCBtYXNrOwogIAotSW5kZXg6IGdkYi03LjgvZ2RiL3Byb2Nmcy5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvcHJvY2ZzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9yaWcvZ2Ri L3Byb2Nmcy5jCTIwMTQtMDgtMDEgMjM6Mjc6MzAuMjAzNzczNzAzICswMjAwCi0rKysgZ2RiLTcu OC9nZGIvcHJvY2ZzLmMJMjAxNC0wOC0wMSAyMzoyNzozMC4yNDM3NzM3NTYgKzAyMDAKLUBAIC0y NDI5LDcgKzI0MjksNyBAQCBwcm9jZnNfYWRkcmVzc190b19ob3N0X3BvaW50ZXIgKENPUkVfQURE CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9wcm9jZnMuYwkyMDE1LTAxLTA1IDIy OjEwOjMwLjE3MjcyNjc4MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Byb2Nm cy5jCTIwMTUtMDEtMDUgMjI6MTA6MzUuNTczNzUxMzMzICswMTAwCitAQCAtMjQyNiw3ICsyNDI2 LDcgQEAgcHJvY2ZzX2FkZHJlc3NfdG9faG9zdF9wb2ludGVyIChDT1JFX0FERAogICNlbmRpZgog IAogIHN0YXRpYyBpbnQKQEAgLTE3Nyw3ICsxNzcsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcHJv Y2ZzLmMKICB7CiAgI2lmICFkZWZpbmVkIChQQ1dBVENIKSAmJiAhZGVmaW5lZCAoUElPQ1NXQVRD SCkKICAgIC8qIElmIG5laXRoZXIgb3IgdGhlc2UgaXMgZGVmaW5lZCwgd2UgY2FuJ3Qgc3VwcG9y dCB3YXRjaHBvaW50cy4KLUBAIC00NzYyLDcgKzQ3NjIsNyBAQCBwcm9jZnNfcGlkX3RvX3N0ciAo c3RydWN0IHRhcmdldF9vcHMgKm9wCitAQCAtNDcwNSw3ICs0NzA1LDcgQEAgcHJvY2ZzX3BpZF90 b19zdHIgKHN0cnVjdCB0YXJnZXRfb3BzICpvcAogIC8qIEluc2VydCBhIHdhdGNocG9pbnQuICAq LwogIAogIHN0YXRpYyBpbnQKQEAgLTE4NiwxMSArMTg2LDExIEBAIEluZGV4OiBnZGItNy44L2dk Yi9wcm9jZnMuYwogIAkJICAgICAgIGludCBhZnRlcikKICB7CiAgI2lmbmRlZiBBSVg1Ci1JbmRl eDogZ2RiLTcuOC9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9y ZW1vdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvcmVtb3RlLmMJMjAxNC0w OC0wMSAyMzoyNzozMC4yMDU3NzM3MDUgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9yZW1vdGUuYwky MDE0LTA4LTAxIDIzOjI3OjMwLjI0Njc3Mzc2MCArMDIwMAotQEAgLTgyMDYsNyArODIwNiw3IEBA IHJlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KKy0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTUtMDEtMDUgMjI6MTA6MzAuMTc0NzI2Nzky ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmVtb3RlLmMJMjAxNS0wMS0wNSAy MjoxMDozNS41NzQ3NTEzMzggKzAxMDAKK0BAIC04Mjk4LDcgKzgyOTgsNyBAQCByZW1vdGVfaW5z ZXJ0X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfCiAgICBwID0gc3RyY2hyIChycy0+YnVmLCAn XDAnKTsKICAgIGFkZHIgPSByZW1vdGVfYWRkcmVzc19tYXNrZWQgKGFkZHIpOwogICAgcCArPSBo ZXhudW1zdHIgKHAsIChVTE9OR0VTVCkgYWRkcik7CkBAIC0xOTksNyArMTk5LDcgQEAgSW5kZXg6 IGdkYi03LjgvZ2RiL3JlbW90ZS5jCiAgCiAgICBwdXRwa3QgKHJzLT5idWYpOwogICAgZ2V0cGt0 ICgmcnMtPmJ1ZiwgJnJzLT5idWZfc2l6ZSwgMCk7Ci1AQCAtODIyNiw3ICs4MjI2LDcgQEAgcmVt b3RlX2luc2VydF93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0XworQEAgLTgzMTgsNyArODMxOCw3 IEBAIHJlbW90ZV9pbnNlcnRfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KICAKICBzdGF0aWMg aW50CiAgcmVtb3RlX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRf b3BzICp0YXJnZXQsIENPUkVfQUREUiBhZGRyLApAQCAtMjA4LDcgKzIwOCw3IEBAIEluZGV4OiBn ZGItNy44L2dkYi9yZW1vdGUuYwogIHsKICAgIENPUkVfQUREUiBkaWZmID0gcmVtb3RlX2FkZHJl c3NfbWFza2VkIChhZGRyIC0gc3RhcnQpOwogIAotQEAgLTgyNTYsNyArODI1Niw3IEBAIHJlbW90 ZV9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF8KK0BAIC04MzQ4LDcgKzgzNDgsNyBA QCByZW1vdGVfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfCiAgICBwID0gc3RyY2hy IChycy0+YnVmLCAnXDAnKTsKICAgIGFkZHIgPSByZW1vdGVfYWRkcmVzc19tYXNrZWQgKGFkZHIp OwogICAgcCArPSBoZXhudW1zdHIgKHAsIChVTE9OR0VTVCkgYWRkcik7CkBAIC0yMTcsMTEgKzIx NywxMSBAQCBJbmRleDogZ2RiLTcuOC9nZGIvcmVtb3RlLmMKICAgIHB1dHBrdCAocnMtPmJ1Zik7 CiAgICBnZXRwa3QgKCZycy0+YnVmLCAmcnMtPmJ1Zl9zaXplLCAwKTsKICAKLUluZGV4OiBnZGIt Ny44L2dkYi90YXJnZXQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi90YXJnZXQuYwkyMDE0LTA4LTAxIDIz OjI3OjMwLjIwNjc3MzcwNyArMDIwMAotKysrIGdkYi03LjgvZ2RiL3RhcmdldC5jCTIwMTQtMDgt MDEgMjM6Mjk6MzguMzE0OTQ0ODU3ICswMjAwCi1AQCAtNTIsNyArNTIsNyBAQCBzdGF0aWMgdm9p ZCB0YXJnZXRfaW5mbyAoY2hhciAqLCBpbnQpOworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvdGFyZ2V0LmMJMjAxNS0wMS0wNSAyMjoxMDozMC4xNzU3MjY3OTcgKzAxMDAKKysrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQuYwkyMDE1LTAxLTA1IDIyOjEwOjM1LjU3NTc1 MTM0MiArMDEwMAorQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHZvaWQgZ2VuZXJpY190bHNfZXJy b3IgKHZvaWQpIEFUVAogIHN0YXRpYyB2b2lkIGRlZmF1bHRfdGVybWluYWxfaW5mbyAoc3RydWN0 IHRhcmdldF9vcHMgKiwgY29uc3QgY2hhciAqLCBpbnQpOwogIAogIHN0YXRpYyBpbnQgZGVmYXVs dF93YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLApAQCAt MjMwLDIzICsyMzAsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMg aW50IGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29w cyAqLAogIAkJCQkJCUNPUkVfQUREUiwgTE9OR0VTVCk7Ci1AQCAtMTUwLDEzICsxNTAsMTMgQEAg c3RhdGljIGludCBkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCAocwotIHN0YXRpYyBpbnQgZGVi dWdfdG9fc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdCB0YXJnZXRfb3BzICosIENPUkVfQURE UiAqKTsKLSAKLSBzdGF0aWMgaW50IGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFu Z2UgKHN0cnVjdCB0YXJnZXRfb3BzICosCi0tCQkJCQkJICBDT1JFX0FERFIsIENPUkVfQUREUiwg aW50KTsKLSsJCQkJCQkgIENPUkVfQUREUiwgQ09SRV9BRERSLCBMT05HRVNUKTsKLSAKLSBzdGF0 aWMgaW50IGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdl dF9vcHMgKnNlbGYsCi0gCQkJCQkJIENPUkVfQUREUiwgTE9OR0VTVCk7Ci0gCi0gc3RhdGljIGlu dCBkZWJ1Z190b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKHN0cnVjdCB0YXJnZXRf b3BzICpzZWxmLAotLQkJCQkJCSAgICBDT1JFX0FERFIsIGludCwgaW50LAotKwkJCQkJCSAgICBD T1JFX0FERFIsIExPTkdFU1QsIGludCwKLSAJCQkJCQkgICAgc3RydWN0IGV4cHJlc3Npb24gKik7 Ci0gCi0gc3RhdGljIHZvaWQgZGVidWdfdG9fdGVybWluYWxfaW5pdCAoc3RydWN0IHRhcmdldF9v cHMgKnNlbGYpOwotQEAgLTI5NjAsNyArMjk2MCw3IEBAIGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9o d193YXRjaHBvaW50IChzdHIKK0BAIC0yOTgzLDcgKzI5ODMsNyBAQCBkZWZhdWx0X3JlZ2lvbl9v a19mb3JfaHdfd2F0Y2hwb2ludCAoc3RyCiAgc3RhdGljIGludAogIGRlZmF1bHRfd2F0Y2hwb2lu dF9hZGRyX3dpdGhpbl9yYW5nZSAoc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwKICAJCQkJICAg ICAgQ09SRV9BRERSIGFkZHIsCkBAIC0yNTUsNTIgKzIzOSwxMSBAQCBJbmRleDogZ2RiLTcuOC9n ZGIvdGFyZ2V0LmMKICB7CiAgICByZXR1cm4gYWRkciA+PSBzdGFydCAmJiBhZGRyIDwgc3RhcnQg KyBsZW5ndGg7CiAgfQotQEAgLTM2ODEsNyArMzY4MSw3IEBAIGRlYnVnX3RvX3JlZ2lvbl9va19m b3JfaHdfd2F0Y2hwb2ludCAoc3QKLSAKLSBzdGF0aWMgaW50Ci0gZGVidWdfdG9fY2FuX2FjY2Vs X3dhdGNocG9pbnRfY29uZGl0aW9uIChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKLS0JCQkJCSBD T1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHJ3LAotKwkJCQkJIENPUkVfQUREUiBhZGRyLCBM T05HRVNUIGxlbiwgaW50IHJ3LAotIAkJCQkJIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQotIHsK LSAgIGludCByZXR2YWw7Ci1AQCAtMzY5Miw4ICszNjkyLDggQEAgZGVidWdfdG9fY2FuX2FjY2Vs X3dhdGNocG9pbnRfY29uZGl0aW9uCi0gCi0gICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRs b2csCi0gCQkgICAgICAidGFyZ2V0X2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAiCi0t CQkgICAgICAiKCVzLCAlZCwgJWQsICVzKSA9ICVsZFxuIiwKLS0JCSAgICAgIGNvcmVfYWRkcl90 b19zdHJpbmcgKGFkZHIpLCBsZW4sIHJ3LAotKwkJICAgICAgIiglcywgJXMsICVkLCAlcykgPSAl bGRcbiIsCi0rCQkgICAgICBjb3JlX2FkZHJfdG9fc3RyaW5nIChhZGRyKSwgcGxvbmdlc3QgKGxl biksIHJ3LAotIAkJICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoY29uZCksICh1bnNpZ25l ZCBsb25nKSByZXR2YWwpOwotICAgcmV0dXJuIHJldHZhbDsKLSB9Ci1AQCAtMzcyOCw3ICszNzI4 LDcgQEAgZGVidWdfdG9fc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdCB0YQotIHN0YXRpYyBp bnQKLSBkZWJ1Z190b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0 X29wcyAqdGFyZ2V0LAotIAkJCQkgICAgICAgQ09SRV9BRERSIGFkZHIsCi0tCQkJCSAgICAgICBD T1JFX0FERFIgc3RhcnQsIGludCBsZW5ndGgpCi0rCQkJCSAgICAgICBDT1JFX0FERFIgc3RhcnQs IExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIGludCByZXR2YWw7Ci0gCi1AQCAtMzczNiw5ICszNzM2 LDkgQEAgZGVidWdfdG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAocwotIAkJCQkJCQkg c3RhcnQsIGxlbmd0aCk7Ci0gCi0gICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJfc3RkbG9nLAotLQkJ ICAgICJ0YXJnZXRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoJXMsICVzLCAlZCkgPSAl ZFxuIiwKLSsJCSAgICAidGFyZ2V0X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKCVzLCAl cywgJXMpID0gJWRcbiIsCi0gCQkgICAgY29yZV9hZGRyX3RvX3N0cmluZyAoYWRkciksIGNvcmVf YWRkcl90b19zdHJpbmcgKHN0YXJ0KSwKLS0JCSAgICBsZW5ndGgsIHJldHZhbCk7Ci0rCQkgICAg cGxvbmdlc3QgKGxlbmd0aCksIHJldHZhbCk7Ci0gICByZXR1cm4gcmV0dmFsOwotIH0KLSAKLUlu ZGV4OiBnZGItNy44L2dkYi90YXJnZXQuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3RhcmdldC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC5vcmlnL2dkYi90YXJnZXQuaAkyMDE0 LTA4LTAxIDIzOjI3OjMwLjIwNzc3MzcwOCArMDIwMAotKysrIGdkYi03LjgvZ2RiL3RhcmdldC5o CTIwMTQtMDgtMDEgMjM6Mjk6MzguMzE1OTQ0ODM5ICswMjAwCi1AQCAtNDY5LDcgKzQ2OSw3IEBA IHN0cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90YXJn ZXQuaAkyMDE1LTAxLTA1IDIyOjEwOjMwLjE3NjcyNjgwMiArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3RhcmdldC5oCTIwMTUtMDEtMDUgMjI6MTA6MzUuNTc1NzUxMzQyICswMTAw CitAQCAtNDgzLDcgKzQ4Myw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgICAgIGludCAoKnRvX3N0 b3BwZWRfZGF0YV9hZGRyZXNzKSAoc3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9BRERSICopCiAg ICAgICAgVEFSR0VUX0RFRkFVTFRfUkVUVVJOICgwKTsKICAgICAgaW50ICgqdG9fd2F0Y2hwb2lu dF9hZGRyX3dpdGhpbl9yYW5nZSkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMDksNyArMjUy LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL3RhcmdldC5oCiAgICAgICAgVEFSR0VUX0RFRkFVTFRf RlVOQyAoZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlKTsKICAKICAgICAgLyog RG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0aGUgY29ycmVz cG9uZGluZwotQEAgLTQ3OSw3ICs0NzksNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworQEAgLTQ5Myw3 ICs0OTMsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogICAgICAgIFRBUkdFVF9ERUZBVUxUX0ZVTkMg KGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50KTsKICAKICAgICAgaW50ICgqdG9f Y2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uKSAoc3RydWN0IHRhcmdldF9vcHMgKiwKQEAg LTMxOCwxMSArMjYxLDExIEBAIEluZGV4OiBnZGItNy44L2dkYi90YXJnZXQuaAogIAkJCQkJICAg ICAgc3RydWN0IGV4cHJlc3Npb24gKikKICAgICAgICBUQVJHRVRfREVGQVVMVF9SRVRVUk4gKDAp OwogICAgICBpbnQgKCp0b19tYXNrZWRfd2F0Y2hfbnVtX3JlZ2lzdGVycykgKHN0cnVjdCB0YXJn ZXRfb3BzICosCi1JbmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYworSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44Lm9yaWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNC0wOC0wMSAyMzoy NzozMC4yMTI3NzM3MTUgKzAyMDAKLSsrKyBnZGItNy44L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5j CTIwMTQtMDgtMDEgMjM6Mjc6MzAuMjQ4NzczNzYzICswMjAwCi1AQCAtNDI4LDE0ICs0MjgsMTQg QEAgYWFyY2g2NF9ub3RpZnlfZGVidWdfcmVnX2NoYW5nZSAoY29uc3QgcworLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTAxLTA1IDIyOjEw OjMwLjE3NjcyNjgwMiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FhcmNoNjQt bGludXgtbmF0LmMJMjAxNS0wMS0wNSAyMjoxMDozNS41NzU3NTEzNDIgKzAxMDAKK0BAIC00MjQs MTQgKzQyNCwxNCBAQCBhYXJjaDY0X25vdGlmeV9kZWJ1Z19yZWdfY2hhbmdlIChjb25zdCBzCiAg c3RhdGljIHZvaWQKICBhYXJjaDY0X3Nob3dfZGVidWdfcmVnX3N0YXRlIChzdHJ1Y3QgYWFyY2g2 NF9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLAogIAkJCSAgICAgIGNvbnN0IGNoYXIgKmZ1bmMsIENP UkVfQUREUiBhZGRyLApAQCAtMzQwLDcgKzI4Myw3IEBAIEluZGV4OiBnZGItNy44L2dkYi9hYXJj aDY0LWxpbnV4LW5hdC5jCiAgCQkJdHlwZSA9PSBod193cml0ZSA/ICJody13cml0ZS13YXRjaHBv aW50IgogIAkJCTogKHR5cGUgPT0gaHdfcmVhZCA/ICJody1yZWFkLXdhdGNocG9pbnQiCiAgCQkJ ICAgOiAodHlwZSA9PSBod19hY2Nlc3MgPyAiaHctYWNjZXNzLXdhdGNocG9pbnQiCi1AQCAtODY5 LDkgKzg2OSwxMCBAQCBhYXJjaDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKHN0cnVjdCB0CitA QCAtODUxLDkgKzg1MSwxMCBAQCBhYXJjaDY0X2xpbnV4X3JlYWRfZGVzY3JpcHRpb24gKHN0cnVj dCB0CiAgICAgZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMgZm9yIG1vcmUgaW5mb3JtYXRp b24uICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0zNTMsNyArMjk2LDcgQEAgSW5kZXg6IGdkYi03 LjgvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKICB7CiAgICBpbnQgYWxpZ25lZF9sZW47CiAgICB1 bnNpZ25lZCBpbnQgb2Zmc2V0OwotQEAgLTEwMzgsNyArMTAzOSw3IEBAIGFhcmNoNjRfcG9pbnRf ZW5jb2RlX2N0cmxfcmVnIChpbnQgdHlwZSwKK0BAIC0xMDIwLDcgKzEwMjEsNyBAQCBhYXJjaDY0 X3BvaW50X2VuY29kZV9jdHJsX3JlZyAoaW50IHR5cGUsCiAgICAgUmV0dXJuIDAgZm9yIGFueSBu b24tY29tcGxpYW50IEFERFIgYW5kL29yIExFTjsgcmV0dXJuIDEgb3RoZXJ3aXNlLiAgKi8KICAK ICBzdGF0aWMgaW50CkBAIC0zNjIsNyArMzA1LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2FhcmNo NjQtbGludXgtbmF0LmMKICB7CiAgICB1bnNpZ25lZCBpbnQgYWxpZ25tZW50ID0gaXNfd2F0Y2hw b2ludCA/IEFBUkNINjRfSFdQX0FMSUdOTUVOVAogICAgICA6IEFBUkNINjRfSEJQX0FMSUdOTUVO VDsKLUBAIC0xMjkwLDcgKzEyOTEsNyBAQCBhYXJjaDY0X2hhbmRsZV9hbGlnbmVkX3dhdGNocG9p bnQgKGludCB0CitAQCAtMTI3Miw3ICsxMjczLDcgQEAgYWFyY2g2NF9oYW5kbGVfYWxpZ25lZF93 YXRjaHBvaW50IChpbnQgdAogICAgIFJldHVybiAwIGlmIHN1Y2NlZWQuICAqLwogIAogIHN0YXRp YyBpbnQKQEAgLTM3MSw3ICszMTQsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51 eC1uYXQuYwogIAkJCQkgICAgIGludCBpc19pbnNlcnQpCiAgewogICAgc3RydWN0IGFhcmNoNjRf ZGVidWdfcmVnX3N0YXRlICpzdGF0ZQotQEAgLTEzMTUsOCArMTMxNiw4IEBAIGFhcmNoNjRfaGFu ZGxlX3VuYWxpZ25lZF93YXRjaHBvaW50IChpbnQKK0BAIC0xMjk3LDggKzEyOTgsOCBAQCBhYXJj aDY0X2hhbmRsZV91bmFsaWduZWRfd2F0Y2hwb2ludCAoaW50CiAgCWZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGxvZywKICAiaGFuZGxlX3VuYWxpZ25lZF93YXRjaHBvaW50OiBpc19pbnNlcnQ6 ICVkXG4iCiAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25lZF9hZGRyOiAweCUw OGx4LCBhbGlnbmVkX2xlbjogJWRcbiIKQEAgLTM4Miw3ICszMjUsNyBAQCBJbmRleDogZ2RiLTcu OC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIAogICAgICAgIGlmIChyZXQgIT0gMCkKICAJcmV0 dXJuIHJldDsKLUBAIC0xMzI4LDcgKzEzMjksNyBAQCBhYXJjaDY0X2hhbmRsZV91bmFsaWduZWRf d2F0Y2hwb2ludCAoaW50CitAQCAtMTMxMCw3ICsxMzExLDcgQEAgYWFyY2g2NF9oYW5kbGVfdW5h bGlnbmVkX3dhdGNocG9pbnQgKGludAogIC8qIEltcGxlbWVudHMgaW5zZXJ0aW9uIGFuZCByZW1v dmFsIG9mIGEgc2luZ2xlIHdhdGNocG9pbnQuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTM5MSw3 ICszMzQsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsKICAg IGlmIChhYXJjaDY0X3BvaW50X2lzX2FsaWduZWQgKDEgLyogaXNfd2F0Y2hwb2ludCAqLyAsIGFk ZHIsIGxlbikpCiAgICAgIHJldHVybiBhYXJjaDY0X2hhbmRsZV9hbGlnbmVkX3dhdGNocG9pbnQg KHR5cGUsIGFkZHIsIGxlbiwgaXNfaW5zZXJ0KTsKLUBAIC0xNDk3LDcgKzE0OTgsNyBAQCBhYXJj aDY0X2xpbnV4X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAoc3RyCitAQCAtMTQ3OSw3ICsxNDgwLDcg QEAgYWFyY2g2NF9saW51eF9zdG9wcGVkX2J5X3dhdGNocG9pbnQgKHN0cgogIHN0YXRpYyBpbnQK ICBhYXJjaDY0X2xpbnV4X3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJn ZXRfb3BzICp0YXJnZXQsCiAgCQkJCQkgICAgQ09SRV9BRERSIGFkZHIsCkBAIC00MDAsMTEgKzM0 MywxMSBAQCBJbmRleDogZ2RiLTcuOC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsKICAgIHJl dHVybiBzdGFydCA8PSBhZGRyICYmIHN0YXJ0ICsgbGVuZ3RoIC0gMSA+PSBhZGRyOwogIH0KLUlu ZGV4OiBnZGItNy44L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Lm9y aWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE0LTA4LTAxIDIzOjI3OjMwLjIxMjc3MzcxNSAr MDIwMAotKysrIGdkYi03LjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE0LTA4LTAxIDIzOjI5 OjM4LjMxMzk0NDg3NyArMDIwMAotQEAgLTI2MSw3ICsyNjEsNyBAQCB0ZGVmYXVsdF9zdG9wcGVk X2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wMS0wNSAyMjoxMDozMC4xNzc3MjY4MDYgKzAxMDAK KysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wMS0w NSAyMjoxMjoxMS4wNzExODU0MDggKzAxMDAKK0BAIC02MDcsMTQgKzYwNywxNCBAQCBkZWJ1Z19z dG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdlCiAgfQogIAogIHN0YXRpYyBpbnQKQEAg LTQxMyw3ICszNTYsMjQgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwog IHsKICAgIHNlbGYgPSBzZWxmLT5iZW5lYXRoOwogICAgcmV0dXJuIHNlbGYtPnRvX3dhdGNocG9p bnRfYWRkcl93aXRoaW5fcmFuZ2UgKHNlbGYsIGFyZzEsIGFyZzIsIGFyZzMpOwotQEAgLTI3NSwx NCArMjc1LDE0IEBAIGRlbGVnYXRlX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3QKKyB9 CisgCisgc3RhdGljIGludAorLWRlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0 cnVjdCB0YXJnZXRfb3BzICpzZWxmLCBDT1JFX0FERFIgYXJnMSwgQ09SRV9BRERSIGFyZzIsIGlu dCBhcmczKQorK2RlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLCBDT1JFX0FERFIgYXJnMSwgQ09SRV9BRERSIGFyZzIsIExPTkdFU1QgYXJn MykKKyB7CisgICBpbnQgcmVzdWx0OworICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9n LCAiLT4gJXMtPnRvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKC4uLilcbiIsIGRlYnVn X3RhcmdldC50b19zaG9ydG5hbWUpOworQEAgLTYyNiw3ICs2MjYsNyBAQCBkZWJ1Z193YXRjaHBv aW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1CisgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBn ZGJfc3RkbG9nKTsKKyAgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzIpOworICAg ZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CistICB0YXJnZXRfZGVidWdfcHJp bnRfaW50IChhcmczKTsKKysgIHRhcmdldF9kZWJ1Z19wcmludF9MT05HRVNUIChhcmczKTsKKyAg IGZwdXRzX3VuZmlsdGVyZWQgKCIpID0gIiwgZ2RiX3N0ZGxvZyk7CisgICB0YXJnZXRfZGVidWdf cHJpbnRfaW50IChyZXN1bHQpOworICAgZnB1dHNfdW5maWx0ZXJlZCAoIlxuIiwgZ2RiX3N0ZGxv Zyk7CitAQCAtNjU5LDIwICs2NTksMjAgQEAgZGVidWdfcmVnaW9uX29rX2Zvcl9od193YXRjaHBv aW50IChzdHJ1YwogIH0KICAKICBzdGF0aWMgaW50CkBAIC00MzAsMyArMzkwLDE5IEBAIEluZGV4 OiBnZGItNy44L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICByZXR1cm4gMDsKICB9Cisg Cisgc3RhdGljIGludAorLWRlYnVnX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoc3Ry dWN0IHRhcmdldF9vcHMgKnNlbGYsIENPUkVfQUREUiBhcmcxLCBpbnQgYXJnMiwgaW50IGFyZzMs IHN0cnVjdCBleHByZXNzaW9uICphcmc0KQorK2RlYnVnX2Nhbl9hY2NlbF93YXRjaHBvaW50X2Nv bmRpdGlvbiAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsIENPUkVfQUREUiBhcmcxLCBMT05HRVNU IGFyZzIsIGludCBhcmczLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqYXJnNCkKKyB7CisgICBpbnQgcmVz dWx0OworICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX2Nhbl9h Y2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0 bmFtZSk7CitAQCAtNjgyLDcgKzY4Miw3IEBAIGRlYnVnX2Nhbl9hY2NlbF93YXRjaHBvaW50X2Nv bmRpdGlvbiAoc3QKKyAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOworICAg dGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMSk7CisgICBmcHV0c191bmZpbHRlcmVk ICgiLCAiLCBnZGJfc3RkbG9nKTsKKy0gIHRhcmdldF9kZWJ1Z19wcmludF9pbnQgKGFyZzIpOwor KyAgdGFyZ2V0X2RlYnVnX3ByaW50X0xPTkdFU1QgKGFyZzIpOworICAgZnB1dHNfdW5maWx0ZXJl ZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CisgICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChhcmczKTsK KyAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOwoKZGlmZiAtLWdpdCBhL2dk Yi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3Mt MjNvZjI1LnBhdGNoCmluZGV4IGUwZTEzYjUuLjA5ZjhmMmEgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIz b2YyNS5wYXRjaApAQCAtMTM3LDExICsxMzcsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0 Y2gKIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246 IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy43 LjEvZ2RiL2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FscGhh LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJ MjAxNC0wNS0wOSAxOToyNDoxOC42NzcyNTI3NjkgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL2Fs cGhhLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyMDcwMzc2NyArMDIwMAotQEAgLTI5OSwx OCArMjk5LDE4IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKKy0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE1LTAxLTA1IDIy OjE4OjU1Ljk4ODAyMzYwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FscGhh LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA4NjA3ODQ0MCArMDEwMAorQEAgLTI5OCwxOCAr Mjk4LDE4IEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICB7CiAg ICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJj aCk7CiAgICBpbnQgaTsKQEAgLTE2NCw3ICsxNjQsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9h bHBoYS10ZGVwLmMKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIg KGZ1bmN0aW9uLCBOVUxMKTsKICAKICAgIC8qIFRoZSBBQkkgcGxhY2VzIHRoZSBhZGRyZXNzIG9m IHRoZSBjYWxsZWQgZnVuY3Rpb24gaW4gVDEyLiAgKi8KLUBAIC00MzAsOCArNDMwLDggQEAgYWxw aGFfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworQEAgLTQyOSw4ICs0MjksOCBA QCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCiAgICBmb3IgKGkgPSBu YXJnczsgbV9hcmctLSwgLS1pID49IDA7KQogICAgICB7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUg KmNvbnRlbnRzID0gbV9hcmctPmNvbnRlbnRzOwpAQCAtMTc1LDcgKzE3NSw3IEBAIEluZGV4OiBn ZGItNy43LjEvZ2RiL2FscGhhLXRkZXAuYwogIAogICAgICAgIC8qIENvcHkgdGhlIGJ5dGVzIGRl c3RpbmVkIGZvciByZWdpc3RlcnMgaW50byBhcmdfcmVnX2J1ZmZlci4gICovCiAgICAgICAgaWYg KG9mZnNldCA8IHNpemVvZihhcmdfcmVnX2J1ZmZlcikpCi1AQCAtNDQzLDcgKzQ0Myw3IEBAIGFs cGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKK0BAIC00NDIsNyArNDQyLDcg QEAgYWxwaGFfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwogIAkgICAgfQogIAkg IGVsc2UKICAJICAgIHsKQEAgLTE4NCwxMSArMTg0LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2Ri L2FscGhhLXRkZXAuYwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBj b250ZW50cywgdGxlbik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50 cyArPSB0bGVuOwotSW5kZXg6IGdkYi03LjcuMS9nZGIvYW1kNjQtdGRlcC5jCitJbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny4xLm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY3ODI1Mjc3MCAr MDIwMAotKysrIGdkYi03LjcuMS9nZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDku NjIwNzAzNzY3ICswMjAwCi1AQCAtNjMzLDcgKzYzMyw3IEBAIGFtZDY0X3JldHVybl92YWx1ZSAo c3RydWN0IGdkYmFyY2ggKmdkYmEKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2Ft ZDY0LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk4OTAyMzYxMiArMDEwMAorKysrIGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2FtZDY0LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA4NzA3 ODQ0NCArMDEwMAorQEAgLTcwMCw3ICs3MDAsNyBAQCBhbWQ2NF9yZXR1cm5fdmFsdWUgKHN0cnVj dCBnZGJhcmNoICpnZGJhCiAgCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRl ICp3cml0ZWJ1ZikKICB7CiAgICBlbnVtIGFtZDY0X3JlZ19jbGFzcyBjbGFzc1syXTsKQEAgLTE5 Nyw3ICsxOTcsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hbWQ2NC10ZGVwLmMKICAgIHN0YXRp YyBpbnQgaW50ZWdlcl9yZWdudW1bXSA9IHsgQU1ENjRfUkFYX1JFR05VTSwgQU1ENjRfUkRYX1JF R05VTSB9OwogICAgc3RhdGljIGludCBzc2VfcmVnbnVtW10gPSB7IEFNRDY0X1hNTTBfUkVHTlVN LCBBTUQ2NF9YTU0xX1JFR05VTSB9OwogICAgaW50IGludGVnZXJfcmVnID0gMDsKLUBAIC03ODQs OCArNzg0LDggQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgorQEAg LTg1MSw4ICs4NTEsOCBAQCBhbWQ2NF9wdXNoX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpy CiAgICB9OwogICAgc3RydWN0IHZhbHVlICoqc3RhY2tfYXJncyA9IGFsbG9jYSAobmFyZ3MgKiBz aXplb2YgKHN0cnVjdCB2YWx1ZSAqKSk7CiAgICBpbnQgbnVtX3N0YWNrX2FyZ3MgPSAwOwpAQCAt MjA4LDcgKzIwOCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2FtZDY0LXRkZXAuYwogICAgaW50 IGludGVnZXJfcmVnID0gMDsKICAgIGludCBzc2VfcmVnID0gMDsKICAgIGludCBpOwotQEAgLTc5 Nyw3ICs3OTcsNyBAQCBhbWQ2NF9wdXNoX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCitA QCAtODY0LDcgKzg2NCw3IEBAIGFtZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUg KnIKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0 IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmdzW2ldKTsKQEAgLTIxNywxMCArMjE3LDEwIEBA IEluZGV4OiBnZGItNy43LjEvZ2RiL2FtZDY0LXRkZXAuYwogICAgICAgIGVudW0gYW1kNjRfcmVn X2NsYXNzIGNsYXNzWzJdOwogICAgICAgIGludCBuZWVkZWRfaW50ZWdlcl9yZWdzID0gMDsKICAg ICAgICBpbnQgbmVlZGVkX3NzZV9yZWdzID0gMDsKLUluZGV4OiBnZGItNy43LjEvZ2RiL2FtZDY0 LXdpbmRvd3MtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtd2lu ZG93cy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvYW1kNjQtd2lu ZG93cy10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC42NzkyNTI3NzAgKzAyMDAKLSsrKyBnZGIt Ny43LjEvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjIwNzAz NzY3ICswMjAwCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9hbWQ2NC13aW5kb3dz LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5MDAyMzYxNiArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDgu MDg3MDc4NDQ0ICswMTAwCiBAQCAtMjg4LDcgKzI4OCw3IEBAIGFtZDY0X3dpbmRvd3NfcmV0dXJu X3ZhbHVlIChzdHJ1Y3QgZ2RiYXIKICAJCQkgICAgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkJICAgIGdkYl9ieXRlICpyZWFkYnVmLCBjb25zdCBnZGJf Ynl0ZSAqd3JpdGVidWYpCkBAIC0yMzAsMjAgKzIzMCwyMCBAQCBJbmRleDogZ2RiLTcuNy4xL2dk Yi9hbWQ2NC13aW5kb3dzLXRkZXAuYwogICAgaW50IHJlZ251bSA9IC0xOwogIAogICAgLyogU2Vl IGlmIG91ciB2YWx1ZSBpcyByZXR1cm5lZCB0aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBpcywg dGhlbgotSW5kZXg6IGdkYi03LjcuMS9nZGIvYXJtLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2FybS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9n ZGIvYXJtLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY4NDI1Mjc3MCArMDIwMAotKysrIGdk Yi03LjcuMS9nZGIvYXJtLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyMjcwMzc2OCArMDIw MAotQEAgLTM0OTgsNyArMzQ5OCw3IEBAIGFybV92ZnBfY3ByY19yZWdfY2hhciAoZW51bSBhcm1f dmZwX2NwcmMKLSAgICBhcnJheSkuICBWZWN0b3JzIGFuZCBjb21wbGV4IHR5cGVzIGFyZSBub3Qg Y3VycmVudGx5IHN1cHBvcnRlZCwKLSAgICBtYXRjaGluZyB0aGUgZ2VuZXJpYyBBQVBDUyBzdXBw b3J0LiAgKi8KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2FybS10ZGVwLmMJMjAx NS0wMS0wNSAyMjoxODo1NS45OTUwMjM2MzkgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9hcm0tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDg5MDc4NDUzICswMTAwCitAQCAt MzUyNCw3ICszNTI0LDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19jaGFyIChlbnVtIGFybV92ZnBfY3By YworICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQs IG1hdGNoaW5nIHRoZQorICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICovCiAgCiAtc3RhdGlj IGludAogK3N0YXRpYyBMT05HRVNUCiAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVj dCB0eXBlICp0LAogIAkJCSAgICBlbnVtIGFybV92ZnBfY3ByY19iYXNlX3R5cGUgKmJhc2VfdHlw ZSkKICB7Ci1AQCAtMzUyOSw3ICszNTI5LDcgQEAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUg KHN0cnVjdCB0eXBlCitAQCAtMzU4Nyw3ICszNTg3LDcgQEAgYXJtX3ZmcF9jcHJjX3N1Yl9jYW5k aWRhdGUgKHN0cnVjdCB0eXBlCiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgogICAgICAg IHsKQEAgLTI1Miw3ICsyNTIsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hcm0tdGRlcC5jCiAg CXVuc2lnbmVkIHVuaXRsZW47CiAgCWNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUg KFRZUEVfVEFSR0VUX1RZUEUgKHQpLCBiYXNlX3R5cGUpOwogIAlpZiAoY291bnQgPT0gLTEpCi1A QCAtMzU0OSwxMyArMzU0OSwxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0 IHR5cGUKK0BAIC0zNjA3LDEzICszNjA3LDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRl IChzdHJ1Y3QgdHlwZQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6CiAgICAgICAgewpA QCAtMjcxLDcgKzI3MSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2FybS10ZGVwLmMKICAJICAg IGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAgICAgIHJldHVybiAtMTsKICAJICAgIGNvdW50ICs9 IHN1Yl9jb3VudDsKLUBAIC0zNTc1LDEzICszNTc3LDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2Fu ZGlkYXRlIChzdHJ1Y3QgdHlwZQorQEAgLTM2MzMsMTMgKzM2MzUsMTUgQEAgYXJtX3ZmcF9jcHJj X3N1Yl9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlCiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9O OgogICAgICAgIHsKQEAgLTI5MCw3ICsyOTAsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9hcm0t dGRlcC5jCiAgCSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQogIAkgICAgICByZXR1cm4gLTE7CiAg CSAgICBjb3VudCA9IChjb3VudCA+IHN1Yl9jb3VudCA/IGNvdW50IDogc3ViX2NvdW50KTsKLUBA IC0zNjE3LDcgKzM2MjEsNyBAQCBhcm1fdmZwX2NhbGxfY2FuZGlkYXRlIChzdHJ1Y3QgdHlwZSAq dCwKK0BAIC0zNjc1LDcgKzM2NzksNyBAQCBhcm1fdmZwX2NhbGxfY2FuZGlkYXRlIChzdHJ1Y3Qg dHlwZSAqdCwKICAJCQlpbnQgKmNvdW50KQogIHsKICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2Vf dHlwZSBiID0gVkZQX0NQUkNfVU5LTk9XTjsKQEAgLTI5OSw3ICsyOTksNyBAQCBJbmRleDogZ2Ri LTcuNy4xL2dkYi9hcm0tdGRlcC5jCiAgICBpZiAoYyA8PSAwIHx8IGMgPiA0KQogICAgICByZXR1 cm4gMDsKICAgICpiYXNlX3R5cGUgPSBiOwotQEAgLTM2OTgsNyArMzcwMiw3IEBAIGFybV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKK0BAIC0zNzU2LDcgKzM3NjAsNyBAQCBh cm1fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgCiAgICBmb3IgKGFyZ251 bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0rKykKICAgICAgewpAQCAtMzA4LDExICszMDgs MTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvYXJtLXRkZXAuYwogICAgICAgIHN0cnVjdCB0eXBl ICphcmdfdHlwZTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CiAgICAgICAgZW51 bSB0eXBlX2NvZGUgdHlwZWNvZGU7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9hdnItdGRlcC5jCitJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjcuMS5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjg2MjUy NzcxICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9hdnItdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6 MDkuNjIzNzAzNzY4ICswMjAwCi1AQCAtMTE2NywxMyArMTE2NywxNCBAQCBhdnJfZHVtbXlfaWQg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9hdnItdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk2MDIzNjQzICswMTAwCisrKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXZyLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA4 OTA3ODQ1MyArMDEwMAorQEAgLTExOTYsMTMgKzExOTYsMTQgQEAgYXZyX2R1bW15X2lkIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgcwogIAogIHN0cnVjdCBzdGFja19pdGVtCiAgewpAQCAtMzI5 LDcgKzMyOSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2F2ci10ZGVwLmMKICB7CiAgICBzdHJ1 Y3Qgc3RhY2tfaXRlbSAqc2k7CiAgICBzaSA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IHN0YWNr X2l0ZW0pKTsKLUBAIC0xMjYyLDEyICsxMjYzLDEyIEBAIGF2cl9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZGIKK0BAIC0xMjkxLDEyICsxMjkyLDEyIEBAIGF2cl9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIKICAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsg aSsrKQogICAgICB7CkBAIC0zNDUsMTEgKzM0NSwxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9h dnItdGRlcC5jCiAgCiAgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBwb3RlbnRpYWwgbGFzdCByZWdp c3RlciBuZWVkZWQuICAqLwogICAgICAgIGxhc3RfcmVnbnVtID0gcmVnbnVtIC0gKGxlbiArIChs ZW4gJiAxKSk7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9iZmluLXRkZXAuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4x Lm9yaWcvZ2RiL2JmaW4tdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjg2MjUyNzcxICswMjAw Ci0rKysgZ2RiLTcuNy4xL2dkYi9iZmluLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyMzcw Mzc2OCArMDIwMAotQEAgLTUwNiw3ICs1MDYsNyBAQCBiZmluX3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKmdkCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9iZmluLXRk ZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5NjAyMzY0MyArMDEwMAorKysrIGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2JmaW4tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkwMDc4NDU4ICsw MTAwCitAQCAtNTA0LDcgKzUwNCw3IEBAIGJmaW5fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKICAgIGdkYl9ieXRlIGJ1Zls0XTsKICAgIGludCBpOwogICAgbG9uZyByZWdfcjAs IHJlZ19yMSwgcmVnX3IyOwpAQCAtMzU4LDcgKzM1OCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2Ri L2JmaW4tdGRlcC5jCiAgICBlbnVtIGJmaW5fYWJpIGFiaSA9IGJmaW5fYWJpIChnZGJhcmNoKTsK ICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBO VUxMKTsKICAKLUBAIC01MzAsNyArNTMwLDcgQEAgYmZpbl9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZAorQEAgLTUyOCw3ICs1MjgsNyBAQCBiZmluX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKmdkCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlw ZSA9IHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ldKTsKICAgICAgICBzdHJ1Y3QgdHlwZSAq YXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlKTsKQEAgLTM2NywxMSArMzY3LDEx IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL2JmaW4tdGRlcC5jCiAgCiAgICAgICAgc3AgLT0gY29u dGFpbmVyX2xlbjsKICAgICAgICB3cml0ZV9tZW1vcnkgKHNwLCB2YWx1ZV9jb250ZW50c193cml0 ZWFibGUgKGFyZ3NbaV0pLCBjb250YWluZXJfbGVuKTsKLUluZGV4OiBnZGItNy43LjEvZ2RiL2Ny aXMtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY3Jpcy10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxNC0wNS0wOSAx OToyNDoxOC42ODcyNTI3NzEgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL2NyaXMtdGRlcC5jCTIw MTQtMDUtMDkgMjA6MDI6MDkuNjIzNzAzNzY4ICswMjAwCi1AQCAtNjY1LDEzICs2NjUsMTMgQEAg c3RhdGljIENPUkVfQUREUiBjcmlzX3Vud2luZF9zcCAoc3RydWN0CistLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5NzAyMzY0 OCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NyaXMtdGRlcC5jCTIwMTUtMDEt MDUgMjI6MTk6MDguMDkwMDc4NDU4ICswMTAwCitAQCAtNjYzLDEzICs2NjMsMTMgQEAgc3RhdGlj IENPUkVfQUREUiBjcmlzX3Vud2luZF9zcCAoc3RydWN0CiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0K ICB7CkBAIC0zODcsNyArMzg3LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvY3Jpcy10ZGVwLmMK ICB7CiAgICBzdHJ1Y3Qgc3RhY2tfaXRlbSAqc2k7CiAgICBzaSA9IHhtYWxsb2MgKHNpemVvZiAo c3RydWN0IHN0YWNrX2l0ZW0pKTsKLUBAIC04NDQsMTMgKzg0NCwxMyBAQCBjcmlzX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCitAQCAtODQyLDEzICs4NDIsMTMgQEAgY3Jpc19w dXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogIAogICAgZm9yIChhcmdudW0gPSAw OyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTQwNSwxMSArNDA1LDExIEBA IEluZGV4OiBnZGItNy43LjEvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAgCiAgICAgICAgLyogSG93 IG1heSByZWdpc3RlcnMgd29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlzIGFyZ3Vt ZW50PyAgKi8KICAgICAgICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQgIT0gMCA/ IDEgOiAwKTsKLUluZGV4OiBnZGItNy43LjEvZ2RiL2g4MzAwLXRkZXAuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2g4MzAwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljcu MS5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC42ODgyNTI3NzEgKzAy MDAKLSsrKyBnZGItNy43LjEvZ2RiL2g4MzAwLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYy NDcwMzc2OCArMDIwMAotQEAgLTY0MCw3ICs2NDAsNyBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICpnCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9oODMw MC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1NS45OTgwMjM2NTIgKzAxMDAKKysrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9oODMwMC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTEwNzg0 NjMgKzAxMDAKK0BAIC02MzksNyArNjM5LDcgQEAgaDgzMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqZwogIAkJICAgICAgIGludCBzdHJ1Y3RfcmV0dXJuLCBDT1JFX0FERFIgc3Ry dWN0X2FkZHIpCiAgewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIEluZGV4OiBnZGItNy43LjEv Z2RiL2g4MzAwLXRkZXAuYwogICAgaW50IHdvcmRzaXplID0gQklOV09SRCAoZ2RiYXJjaCk7CiAg ICBpbnQgcmVnID0gRV9BUkcwX1JFR05VTTsKICAgIGludCBhcmd1bWVudDsKLUBAIC02NjcsMTEg KzY2NywxMSBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAt NjY2LDExICs2NjYsMTEgQEAgaDgzMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq ZwogICAgICB7CiAgICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICAgICAgc3RydWN0 IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmdzW2FyZ3VtZW50XSk7CkBAIC00MzIsNyArNDMy LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvaDgzMDAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUg KnBhZGRlZCA9IHhtYWxsb2MgKHBhZGRlZF9sZW4pOwogICAgICAgIGJhY2tfdG8gPSBtYWtlX2Ns ZWFudXAgKHhmcmVlLCBwYWRkZWQpOwogIAotQEAgLTcwMCw3ICs3MDAsNyBAQCBoODMwMF9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAtNjk5LDcgKzY5OSw3IEBAIGg4MzAw X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAJICAgICAgLyogSGVhdmVucyB0 byBCZXRzeSAtLS0gaXQncyByZWFsbHkgZ29pbmcgaW4gcmVnaXN0ZXJzIQogIAkgICAgICAgICBO b3RlIHRoYXQgb24gdGhlIGg4LzMwMHMsIHRoZXJlIGFyZSBnYXBzIGJldHdlZW4gdGhlCiAgCSAg ICAgICAgIHJlZ2lzdGVycyBpbiB0aGUgcmVnaXN0ZXIgZmlsZS4gICovCkBAIC00NDEsMTEgKzQ0 MSwxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9oODMwMC10ZGVwLmMKICAKICAJICAgICAgZm9y IChvZmZzZXQgPSAwOyBvZmZzZXQgPCBwYWRkZWRfbGVuOyBvZmZzZXQgKz0gd29yZHNpemUpCiAg CQl7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9ocHBhLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2hwcGEtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcv Z2RiL2hwcGEtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjkwMjUyNzcxICswMjAwCi0rKysg Z2RiLTcuNy4xL2dkYi9ocHBhLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyNDcwMzc2OCAr MDIwMAotQEAgLTk2MSw3ICs5NjEsNyBAQCBocHBhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9ocHBhLXRkZXAuYwky MDE1LTAxLTA1IDIyOjE4OjU1Ljk5OTAyMzY1NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL2hwcGEtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkxMDc4NDYzICswMTAwCitA QCAtOTYwLDcgKzk2MCw3IEBAIGhwcGE2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICoKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1tpXTsKICAgICAgICBz dHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZyk7CkBAIC00NTQsNyArNDU0LDcgQEAg SW5kZXg6IGdkYi03LjcuMS9nZGIvaHBwYS10ZGVwLmMKICAgICAgICBjb25zdCBiZmRfYnl0ZSAq dmFsYnVmOwogICAgICAgIGJmZF9ieXRlIGZwdHJidWZbOF07CiAgICAgICAgaW50IHJlZ251bTsK LUBAIC0xMTU2LDcgKzExNTYsNyBAQCBocHBhNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiCitAQCAtMTE1NSw3ICsxMTU1LDcgQEAgaHBwYTY0X3JldHVybl92YWx1ZSAoc3RydWN0 IGdkYmFyY2ggKmdkYgogIAkJICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hl ICpyZWdjYWNoZSwKICAJCSAgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3 cml0ZWJ1ZikKICB7CkBAIC00NjMsMTEgKzQ2MywxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9o cHBhLXRkZXAuYwogICAgaW50IHJlZ251bSwgb2Zmc2V0OwogIAogICAgaWYgKGxlbiA+IDE2KQot SW5kZXg6IGdkYi03LjcuMS9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ny4xLm9yaWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5MDI1 Mjc3MSArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTQtMDUt MDkgMjA6MDI6MDkuNjI0NzAzNzY4ICswMjAwCi1AQCAtMTY0LDcgKzE2NCw3IEBAIGkzODZfZGFy d2luX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmEKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5OTAyMzY1 NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwky MDE1LTAxLTA1IDIyOjE5OjA4LjA5MTA3ODQ2MyArMDEwMAorQEAgLTE2Myw3ICsxNjMsNyBAQCBp Mzg2X2Rhcndpbl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhCiAgCiAgICBmb3IgKHdyaXRl X3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00NzYs MTEgKzQ3NiwxMSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKICAg ICAgICBpbnQgbnVtX20xMjggPSAwOwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQotSW5k ZXg6IGdkYi03LjcuMS9nZGIvaTM4Ni10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9pMzg2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9pMzg2 LXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5MjI1Mjc3MSArMDIwMAotKysrIGdkYi03Ljcu MS9nZGIvaTM4Ni10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42MjU3MDM3NjkgKzAyMDAKLUBA IC0yNDczLDcgKzI0NzMsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmdkCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE1LTAx LTA1IDIyOjE4OjU2LjAwMjAyMzY3MSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2kzODYtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkyMDc4NDY3ICswMTAwCitAQCAtMjY0 Myw3ICsyNjQzLDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAog ICAgZ2RiX2J5dGUgYnVmWzRdOwogICAgaW50IGk7CiAgICBpbnQgd3JpdGVfcGFzczsKQEAgLTQ4 OSw3ICs0ODksNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyog RGV0ZXJtaW5lIHRoZSB0b3RhbCBzcGFjZSByZXF1aXJlZCBmb3IgYXJndW1lbnRzIGFuZCBzdHJ1 Y3QKICAgICAgIHJldHVybiBhZGRyZXNzIGluIGEgZmlyc3QgcGFzcyAoYWxsb3dpbmcgZm9yIDE2 LWJ5dGUtYWxpZ25lZAotQEAgLTI0ODEsNyArMjQ4MSw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC0yNjUxLDcgKzI2NTEsNyBAQCBpMzg2X3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3 cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00OTgsNyArNDk4LDcgQEAg SW5kZXg6IGdkYi03LjcuMS9nZGIvaTM4Ni10ZGVwLmMKICAKICAgICAgICBpZiAoc3RydWN0X3Jl dHVybikKICAJewotQEAgLTI0OTgsNyArMjQ5OCw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2QKK0BAIC0yNjY4LDcgKzI2NjgsNyBAQCBpMzg2X3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5hcmdz OyBpKyspCiAgCXsKQEAgLTUwNyw3ICs1MDcsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pMzg2 LXRkZXAuYwogIAogIAkgIGlmICh3cml0ZV9wYXNzKQogIAkgICAgewotQEAgLTI3MDUsNyArMjcw NSw3IEBAIGkzODZfcmVnX3N0cnVjdF9yZXR1cm5fcCAoc3RydWN0IGdkYmFyY2gKK0BAIC0yODc1 LDcgKzI4NzUsNyBAQCBpMzg2X3JlZ19zdHJ1Y3RfcmV0dXJuX3AgKHN0cnVjdCBnZGJhcmNoCiAg ewogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7 CiAgICBlbnVtIHR5cGVfY29kZSBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKQEAgLTUxNiw3ICs1 MTYsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9pMzg2LXRkZXAuYwogIAogICAgZ2RiX2Fzc2Vy dCAoY29kZSA9PSBUWVBFX0NPREVfU1RSVUNUCiAgICAgICAgICAgICAgICB8fCBjb2RlID09IFRZ UEVfQ09ERV9VTklPTgotQEAgLTMyNDksNyArMzI0OSw3IEBAIHN0YXRpYyBpbnQKK0BAIC0zNjIx LDcgKzM2MjEsNyBAQCBzdGF0aWMgaW50CiAgaTM4Nl9jb252ZXJ0X3JlZ2lzdGVyX3AgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSBpbnQgcmVnbnVtLCBzdHJ1Y3QgdHlwZSAqdHlwZSkK ICB7CkBAIC01MjUsNyArNTI1LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvaTM4Ni10ZGVwLmMK ICAKICAgIC8qIFZhbHVlcyBtYXkgYmUgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSByZWdpc3RlcnMu ICBNb3N0IGRlYnVnZ2luZwogICAgICAgZm9ybWF0cyBhcmVuJ3QgZXhwcmVzc2l2ZSBlbm91Z2gg dG8gc3BlY2lmeSB0aGUgbG9jYXRpb25zLCBzbwotQEAgLTMyODIsNyArMzI4Miw3IEBAIGkzODZf cmVnaXN0ZXJfdG9fdmFsdWUgKHN0cnVjdCBmcmFtZV9pbmYKK0BAIC0zNjU0LDcgKzM2NTQsNyBA QCBpMzg2X3JlZ2lzdGVyX3RvX3ZhbHVlIChzdHJ1Y3QgZnJhbWVfaW5mCiAgCQkJaW50ICpvcHRp bWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CkBAIC01MzQsNyArNTM0LDcgQEAgSW5kZXg6IGdk Yi03LjcuMS9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZGJh cmNoLCByZWdudW0pKQogICAgICByZXR1cm4gaTM4N19yZWdpc3Rlcl90b192YWx1ZSAoZnJhbWUs IHJlZ251bSwgdHlwZSwgdG8sCi1AQCAtMzMxOCw3ICszMzE4LDcgQEAgc3RhdGljIHZvaWQKK0BA IC0zNjkwLDcgKzM2OTAsNyBAQCBzdGF0aWMgdm9pZAogIGkzODZfdmFsdWVfdG9fcmVnaXN0ZXIg KHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKICAJCQlzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKmZyb20pCiAgewpAQCAtNTQzLDI4ICs1NDMsMTEgQEAgSW5k ZXg6IGdkYi03LjcuMS9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGlmIChpMzg2X2ZwX3JlZ251bV9w IChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpLCByZWdudW0pKQogICAgICB7Ci1JbmRleDogZ2RiLTcu Ny4xL2dkYi9pYTY0LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2lxMjAw MC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvaWE2NC10ZGVwLmMJ MjAxNC0wNS0wOSAxOToyNDoxOC42OTMyNTI3NzEgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL2lh NjQtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjI2NzAzNzY5ICswMjAwCi1AQCAtMzg1MSw4 ICszODUxLDEwIEBAIGlhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKLSAg IGludCBhcmdubzsKLSAgIHN0cnVjdCB2YWx1ZSAqYXJnOwotICAgc3RydWN0IHR5cGUgKnR5cGU7 Ci0tICBpbnQgbGVuLCBhcmdvZmZzZXQ7Ci0tICBpbnQgbnNsb3RzLCByc2VzbG90cywgbWVtc2xv dHMsIHNsb3RudW0sIG5mdW5jYXJnczsKLSsgIExPTkdFU1QgYXJnb2Zmc2V0OwotKyAgTE9OR0VT VCBsZW47Ci0rICBpbnQgcnNlc2xvdHMsIHNsb3RudW0sIG5mdW5jYXJnczsKLSsgIExPTkdFU1Qg bnNsb3RzLCBtZW1zbG90czsKLSAgIGludCBmbG9hdHJlZzsKLSAgIFVMT05HRVNUIGJzcDsKLSAg IENPUkVfQUREUiBmdW5jZGVzY2FkZHIsIHBjLCBnbG9iYWxfcG9pbnRlcjsKLUluZGV4OiBnZGIt Ny43LjEvZ2RiL2lxMjAwMC10ZGVwLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9n ZGIvaXEyMDAwLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5MzI1Mjc3MSArMDIwMAotKysr IGdkYi03LjcuMS9nZGIvaXEyMDAwLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyNjcwMzc2 OSArMDIwMAotQEAgLTY1NCw4ICs2NTQsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pcTIwMDAtdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDAzMDIzNjc1ICswMTAwCisrKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvaXEyMDAwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5MjA3ODQ2NyAr MDEwMAorQEAgLTY1Myw4ICs2NTMsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqCiAgICBjb25zdCBiZmRfYnl0ZSAqdmFsOwogICAgYmZkX2J5dGUgYnVmWzRdOwog ICAgc3RydWN0IHR5cGUgKnR5cGU7CkBAIC01NzYsMTEgKzU1OSwxMSBAQCBJbmRleDogZ2RiLTcu Ny4xL2dkYi9pcTIwMDAtdGRlcC5jCiAgICAvKiBVc2VkIHRvIGNvcHkgc3RydWN0IGFyZ3VtZW50 cyBpbnRvIHRoZSBzdGFjay4gICovCiAgICBDT1JFX0FERFIgc3RydWN0X3B0cjsKICAKLUluZGV4 OiBnZGItNy43LjEvZ2RiL20zMnItdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvbTMyci10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvbTMyci10 ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC42OTMyNTI3NzEgKzAyMDAKLSsrKyBnZGItNy43LjEv Z2RiL20zMnItdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjI2NzAzNzY5ICswMjAwCi1AQCAt Njg5LDcgKzY4OSw3IEBAIG0zMnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL20zMnItdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTg6NTYuMDAzMDIzNjc1ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTMy ci10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTMwNzg0NzIgKzAxMDAKK0BAIC02ODcsNyAr Njg3LDcgQEAgbTMycl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgQ09S RV9BRERSIHJlZ3ZhbDsKICAgIGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSB2YWxidWZbTUFY X1JFR0lTVEVSX1NJWkVdOwpAQCAtNTg5LDExICs1NzIsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9n ZGIvbTMyci10ZGVwLmMKICAKICAgIC8qIEZpcnN0IGZvcmNlIHNwIHRvIGEgNC1ieXRlIGFsaWdu bWVudC4gICovCiAgICBzcCA9IHNwICYgfjM7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9tNjhrLXRk ZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL202OGstdGRlcC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL202OGstdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6 MTguNjk0MjUyNzcxICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9tNjhrLXRkZXAuYwkyMDE0LTA1 LTA5IDIwOjAyOjA5LjYyNzcwMzc2OSArMDIwMAotQEAgLTM4NCw3ICszODQsNyBAQCBtNjhrX3Jl Z19zdHJ1Y3RfcmV0dXJuX3AgKHN0cnVjdCBnZGJhcmNoCistLS0gZ2RiLTcuOC41MC4yMDE0MTIy OC5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAwMzAyMzY3NSArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL202OGstdGRlcC5jCTIwMTUtMDEtMDUgMjI6 MTk6MDguMDkzMDc4NDcyICswMTAwCitAQCAtMzgyLDcgKzM4Miw3IEBAIG02OGtfcmVnX3N0cnVj dF9yZXR1cm5fcCAoc3RydWN0IGdkYmFyY2gKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0 ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gdHlwZV9jb2RlIGNvZGUgPSBU WVBFX0NPREUgKHR5cGUpOwpAQCAtNjAyLDcgKzU4NSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2Ri L202OGstdGRlcC5jCiAgCiAgICBnZGJfYXNzZXJ0IChjb2RlID09IFRZUEVfQ09ERV9TVFJVQ1Qg fHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KICAJICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVf Q09NUExFWCk7Ci1AQCAtNTE2LDkgKzUxNiw5IEBAIG02OGtfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2QKK0BAIC01MTQsOSArNTE0LDkgQEAgbTY4a19wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICpnZAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkK ICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9zaW5n X3R5cGUgKGFyZ3NbaV0pOwpAQCAtNjE1LDExICs1OTgsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9n ZGIvbTY4ay10ZGVwLmMKICAKICAgICAgICAvKiBOb24tc2NhbGFycyBiaWdnZXIgdGhhbiA0IGJ5 dGVzIGFyZSBsZWZ0IGFsaWduZWQsIG90aGVycyBhcmUKICAJIHJpZ2h0IGFsaWduZWQuICAqLwot SW5kZXg6IGdkYi03LjcuMS9nZGIvbTg4ay10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9tODhrLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9t ODhrLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5NDI1Mjc3MSArMDIwMAotKysrIGdkYi03 LjcuMS9nZGIvbTg4ay10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42Mjc3MDM3NjkgKzAyMDAK LUBAIC0yNjAsMTMgKzI2MCwxMyBAQCBtODhrX3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2Nh Y2hlICpyCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tODhrLXRkZXAuYwkyMDE1 LTAxLTA1IDIyOjE4OjU2LjAwNDAyMzY4MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL204OGstdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkzMDc4NDcyICswMTAwCitAQCAt MjU3LDEzICsyNTcsMTMgQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAq cgogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJl Z2NhY2hlKTsKICAgIGludCBudW1fcmVnaXN0ZXJfd29yZHMgPSAwOwpAQCAtNjM1LDcgKzYxOCw3 IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL204OGstdGRlcC5jCiAgCiAgICAgICAgaWYgKG04OGtf aW50ZWdyYWxfb3JfcG9pbnRlcl9wICh0eXBlKSAmJiBsZW4gPCA0KQogIAl7Ci1AQCAtMzA4LDgg KzMwOCw4IEBAIG04OGtfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKK0BAIC0z MDUsOCArMzA1LDggQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgog ICAgICB7CiAgICAgICAgY29uc3QgYmZkX2J5dGUgKnZhbGJ1ZiA9IHZhbHVlX2NvbnRlbnRzIChh cmdzW2ldKTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0p OwpAQCAtNjQ2LDExICs2MjksMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbTg4ay10ZGVwLmMK ICAKICAgICAgICBpZiAobTg4a19pbl9yZWdpc3Rlcl9wICh0eXBlKSkKICAJewotSW5kZXg6IGdk Yi03LjcuMS9nZGIvbWVwLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21l cC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvbWVwLXRkZXAuYwky MDE0LTA1LTA5IDE5OjI0OjE4LjY5NTI1Mjc3MiArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvbWVw LXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYyNzcwMzc2OSArMDIwMAotQEAgLTIyNzIsNyAr MjI3Miw3IEBAIHB1c2hfbGFyZ2VfYXJndW1lbnRzIChDT1JFX0FERFIgc3AsIGludAorLS0tIGdk Yi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2 LjAwNTAyMzY4NCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21lcC10ZGVwLmMJ MjAxNS0wMS0wNSAyMjoxOTowOC4wOTMwNzg0NzIgKzAxMDAKK0BAIC0yMjY5LDcgKzIyNjksNyBA QCBwdXNoX2xhcmdlX2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKICAKICAgIGZvciAoaSA9 IDA7IGkgPCBhcmdjOyBpKyspCiAgICAgIHsKQEAgLTY1OSwxMSArNjQyLDExIEBAIEluZGV4OiBn ZGItNy43LjEvZ2RiL21lcC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnX2xlbiA+IE1FUF9HUFJf U0laRSkKICAgICAgICAgIHsKLUluZGV4OiBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWlwcy10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy43LjEub3JpZy9nZGIvbWlwcy10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC42OTgyNTI3 NzIgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6 MDkuNjI4NzAzNzY5ICswMjAwCi1AQCAtNDAyLDcgKzQwMiw3IEBAIHN0YXRpYyB2b2lkCistLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9taXBzLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4 OjU2LjAwOTAyMzcwMiArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21pcHMtdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk1MDc4NDgxICswMTAwCitAQCAtNDU1LDcgKzQ1NSw3 IEBAIHN0YXRpYyB2b2lkCiAgbWlwc194ZmVyX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICBpbnQgcmVnX251bSwgaW50 IGxlbmd0aCwKICAJCSAgICBlbnVtIGJmZF9lbmRpYW4gZW5kaWFuLCBnZGJfYnl0ZSAqaW4sCkBA IC02NzIsNyArNjU1LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICB7CiAg ICBpbnQgcmVnX29mZnNldCA9IDA7CiAgCi1AQCAtNDI1LDggKzQyNSw4IEBAIG1pcHNfeGZlcl9y ZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmEKK0BAIC00NzgsOCArNDc4LDggQEAgbWlwc194 ZmVyX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYQogICAgICB9CiAgICBpZiAobWlwc19k ZWJ1ZykKICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLApAQCAtNjgzLDcgKzY2 Niw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5jCiAgICBpZiAobWlwc19kZWJ1 ZyAmJiBvdXQgIT0gTlVMTCkKICAgICAgewogICAgICAgIGludCBpOwotQEAgLTQzNDUsMTMgKzQz NDUsMTMgQEAgbWlwc19lYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyYworQEAgLTQ1 NTEsMTMgKzQ1NTEsMTMgQEAgbWlwc19lYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy YwogICAgICAgIGdkYl9ieXRlIHZhbGJ1ZltNQVhfUkVHSVNURVJfU0laRV07CiAgICAgICAgc3Ry dWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190 eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC02OTgsOSArNjgxLDkg QEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICsJCQkgICAgIm1pcHNfZWFiaV9w dXNoX2R1bW15X2NhbGw6ICVkIGxlbj0lcyB0eXBlPSVkIiwKICsJCQkgICAgYXJnbnVtICsgMSwg cGxvbmdlc3QgKGxlbiksIChpbnQpIHR5cGVjb2RlKTsKICAKLSAgICAgICAvKiBGdW5jdGlvbiBw b2ludGVyIGFyZ3VtZW50cyB0byBtaXBzMTYgY29kZSBuZWVkIHRvIGJlIG1hZGUgaW50bwotICAg ICAgICAgIG1pcHMxNiBwb2ludGVycy4gICovCi1AQCAtNDYzNiw3ICs0NjM2LDcgQEAgbWlwc19l YWJpX3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKgorICAgICAgIC8qIFRoZSBFQUJJIHBh c3NlcyBzdHJ1Y3R1cmVzIHRoYXQgZG8gbm90IGZpdCBpbiBhIHJlZ2lzdGVyIGJ5CisgICAgICAg ICAgcmVmZXJlbmNlLiAgKi8KK0BAIC00ODI2LDcgKzQ4MjYsNyBAQCBtaXBzX2VhYmlfcmV0dXJu X3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgCiAgc3RhdGljIGludAogIG1pcHNfbjMybjY0X2Zw X2FyZ19jaHVua19wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKmFyZ190 eXBlLApAQCAtNzA5LDcgKzY5Miw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL21pcHMtdGRlcC5j CiAgewogICAgaW50IGk7CiAgCi1AQCAtNDY1MSw3ICs0NjUxLDcgQEAgbWlwc19uMzJuNjRfZnBf YXJnX2NodW5rX3AgKHN0cnVjdCBnZGJhcgorQEAgLTQ4NDEsNyArNDg0MSw3IEBAIG1pcHNfbjMy bjY0X2ZwX2FyZ19jaHVua19wIChzdHJ1Y3QgZ2RiYXIKICAKICAgIGZvciAoaSA9IDA7IGkgPCBU WVBFX05GSUVMRFMgKGFyZ190eXBlKTsgaSsrKQogICAgICB7CkBAIC03MTgsNyArNzAxLDcgQEAg SW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmll bGRfdHlwZTsKICAKICAgICAgICAvKiBXZSdyZSBvbmx5IGxvb2tpbmcgYXQgbm9ybWFsIGZpZWxk cy4gICovCi1AQCAtNDY5Myw3ICs0NjkzLDcgQEAgbWlwc19uMzJuNjRfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYQorQEAgLTQ4ODMsNyArNDg4Myw3IEBAIG1pcHNfbjMybjY0X3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmEKICAgIGludCBhcmdyZWc7CiAgICBpbnQgZmxvYXRfYXJncmVn OwogICAgaW50IGFyZ251bTsKQEAgLTcyNyw3ICs3MTAsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dk Yi9taXBzLXRkZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FE RFIgZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7Ci1AQCAt NTA0NCwxMSArNTA0NCwxMSBAQCBtaXBzX24zMm42NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJh cmNoCitAQCAtNTIzNCwxMSArNTIzNCwxMSBAQCBtaXBzX24zMm42NF9yZXR1cm5fdmFsdWUgKHN0 cnVjdCBnZGJhcmNoCiAgCQkJCTogTUlQU19WMF9SRUdOVU0pOwogIAkgICBmaWVsZCA8IFRZUEVf TkZJRUxEUyAodHlwZSk7IGZpZWxkKyssIHJlZ251bSArPSAyKQogIAl7CkBAIC03NDMsNyArNzI2 LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMKICAJICBpZiAoVFlQRV9MRU5H VEggKFRZUEVfRklFTERfVFlQRSAodHlwZSwgZmllbGQpKSA9PSAxNikKICAJICAgIHsKICAJICAg ICAgLyogQSAxNi1ieXRlIGxvbmcgZG91YmxlIGZpZWxkIGdvZXMgaW4gdHdvIGNvbnNlY3V0aXZl Ci1AQCAtNTA5MCw4ICs1MDkwLDggQEAgbWlwc19uMzJuNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3Qg Z2RiYXJjaAorQEAgLTUyODAsOCArNTI4MCw4IEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAo c3RydWN0IGdkYmFyY2gKICAJICBpZiAob2Zmc2V0ICsgeGZlciA+IFRZUEVfTEVOR1RIICh0eXBl KSkKICAJICAgIHhmZXIgPSBUWVBFX0xFTkdUSCAodHlwZSkgLSBvZmZzZXQ7CiAgCSAgaWYgKG1p cHNfZGVidWcpCkBAIC03NTQsNyArNzM3LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10 ZGVwLmMKICAJICBtaXBzX3hmZXJfcmVnaXN0ZXIgKGdkYmFyY2gsIHJlZ2NhY2hlLAogIAkJCSAg ICAgIGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgcmVnbnVtLAogIAkJCSAgICAgIHhmZXIs IEJGRF9FTkRJQU5fVU5LTk9XTiwgcmVhZGJ1Ziwgd3JpdGVidWYsCi1AQCAtNTE0OSw3ICs1MTQ5 LDcgQEAgbWlwc19vMzJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTUzMzks NyArNTMzOSw3IEBAIG1pcHNfbzMyX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKICAg IGludCBhcmdyZWc7CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAgLTc2 Myw3ICs3NDYsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9taXBzLXRkZXAuYwogICAgaW50IHN0 YWNrX29mZnNldCA9IDA7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9mdW5j dGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7Ci1AQCAtNTIxMywxMyArNTIxMywxMyBAQCBtaXBz X28zMl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTQwMywxMyArNTQwMywx MyBAQCBtaXBzX28zMl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoCiAgICAgICAgY29u c3QgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVt XTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChhcmcpKTsKQEAgLTc4MCw3ICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9taXBz LXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAotQEAgLTU2 NzcsOCArNTY3Nyw4IEBAIG1pcHNfbzY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gK K0BAIC01ODY3LDggKzU4NjcsOCBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoCiAgICBpbnQgYXJncmVnOwogICAgaW50IGZsb2F0X2FyZ3JlZzsKICAgIGludCBhcmdu dW07CkBAIC03OTEsOCArNzc0LDggQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbWlwcy10ZGVwLmMK ICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJh cmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0 aW9uLCBOVUxMKTsKICAKLUBAIC01NzM5LDEzICs1NzM5LDEzIEBAIG1pcHNfbzY0X3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKLSAgICAgICBnZGJfYnl0ZSB2YWxidWZbTUFYX1JFR0lT VEVSX1NJWkVdOworQEAgLTU5MjgsMTMgKzU5MjgsMTMgQEAgbWlwc19vNjRfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaAorICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAg c3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFy Z190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CiAtICAgICAgaW50IGxl biA9IFRZUEVfTEVOR1RIIChhcmdfdHlwZSk7CkBAIC04MDgsMTEgKzc5MSwxMSBAQCBJbmRleDog Z2RiLTcuNy4xL2dkYi9taXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRz IChhcmcpOwogIAotSW5kZXg6IGdkYi03LjcuMS9nZGIvbW4xMDMwMC10ZGVwLmMKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tbjEwMzAwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjcuMS5vcmlnL2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjY5ODI1 Mjc3MiArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNC0wNS0wOSAy MDowMjowOS42Mjk3MDM3NzAgKzAyMDAKLUBAIC0xMjI3LDcgKzEyMjcsNyBAQCBtbjEwMzAwX3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEwMDIzNzA3ICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0wMS0wNSAy MjoxOTowOC4wOTYwNzg0ODUgKzAxMDAKK0BAIC0xMjI1LDcgKzEyMjUsNyBAQCBtbjEwMzAwX3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGNvbnN0IGludCBwdXNoX3Np emUgPSByZWdpc3Rlcl9zaXplIChnZGJhcmNoLCBFX1BDX1JFR05VTSk7CiAgICBpbnQgcmVnc191 c2VkOwpAQCAtODIxLDExICs4MDQsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvbW4xMDMwMC10 ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgaW50IGFyZ251bTsKICAgIGNvbnN0 IGdkYl9ieXRlICp2YWw7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9tdC10ZGVwLmMKK0luZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tdC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43 LjEub3JpZy9nZGIvbXQtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNjk5MjUyNzcyICswMjAw Ci0rKysgZ2RiLTcuNy4xL2dkYi9tdC10ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42Mjk3MDM3 NzAgKzAyMDAKLUBAIC03ODMsOSArNzgzLDkgQEAgbXRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbXQtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEwMDIzNzA3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbXQtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk2MDc4NDg1ICswMTAwCitA QCAtNzgxLDkgKzc4MSw5IEBAIG10X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdk YmEKICAgIGdkYl9ieXRlIGJ1ZltNVF9NQVhfU1RSVUNUX1NJWkVdOwogICAgaW50IGFyZ3JlZyA9 IE1UXzFTVF9BUkdSRUc7CiAgICBpbnQgc3BsaXRfcGFyYW1fbGVuID0gMDsKQEAgLTgzNywxMSAr ODIwLDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL210LXRkZXAuYwogICAgaW50IGksIGo7CiAg CiAgICAvKiBGaXJzdCBoYW5kbGUgaG93ZXZlciBtYW55IGFyZ3Mgd2UgY2FuIGZpdCBpbnRvIE1U XzFTVF9BUkdSRUcgdGhydQotSW5kZXg6IGdkYi03LjcuMS9nZGIvcHBjLXN5c3YtdGRlcC5jCitJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0 OjE4LjY5OTI1Mjc3MiArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvcHBjLXN5c3YtdGRlcC5jCTIw MTQtMDUtMDkgMjA6MTA6MTMuOTk0ODA3NzA5ICswMjAwCi1AQCAtNjgsNyArNjgsNyBAQCBwcGNf c3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCistLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTEwMjM3 MTEgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAx NS0wMS0wNSAyMjoxOTowOC4wOTYwNzg0ODUgKzAxMDAKK0BAIC02Niw3ICs2Niw3IEBAIHBwY19z eXN2X2FiaV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGIKICAgIGVudW0gYmZkX2VuZGlhbiBi eXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBvcGVuY2xf YWJpID0gcHBjX3N5c3ZfdXNlX29wZW5jbF9hYmkgKHZhbHVlX3R5cGUgKGZ1bmN0aW9uKSk7CiAg ICBVTE9OR0VTVCBzYXZlZF9zcDsKQEAgLTg1MCw3ICs4MzMsNyBAQCBJbmRleDogZ2RiLTcuNy4x L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAgIGludCB3cml0ZV9wYXNzOwogIAogICAgZ2RiX2Fzc2Vy dCAodGRlcC0+d29yZHNpemUgPT0gNCk7Ci1AQCAtOTksOSArOTksOSBAQCBwcGNfc3lzdl9hYmlf cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCitAQCAtOTcsOSArOTcsOSBAQCBwcGNfc3lzdl9h YmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCiAgICAgICAgLyogTmV4dCBhdmFpbGFibGUg dmVjdG9yIHJlZ2lzdGVyIGZvciB2ZWN0b3IgYXJndW1lbnRzLiAgKi8KICAgICAgICBpbnQgdnJl ZyA9IDI7CiAgICAgICAgLyogQXJndW1lbnRzIHN0YXJ0IGFib3ZlIHRoZSAiTFIgc2F2ZSB3b3Jk IiBhbmQgIkJhY2sgY2hhaW4iLiAgKi8KQEAgLTg2Miw3ICs4NDUsNyBAQCBJbmRleDogZ2RiLTcu Ny4xL2dkYi9wcGMtc3lzdi10ZGVwLmMKICAKICAgICAgICAvKiBJZiB0aGUgZnVuY3Rpb24gaXMg cmV0dXJuaW5nIGEgYHN0cnVjdCcsIHRoZW4gdGhlIGZpcnN0IHdvcmQKICAgICAgICAgICAod2hp Y2ggd2lsbCBiZSBwYXNzZWQgaW4gcjMpIGlzIHVzZWQgZm9yIHN0cnVjdCByZXR1cm4KLUBAIC0x MjAsNyArMTIwLDcgQEAgcHBjX3N5c3ZfYWJpX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYgor QEAgLTExOCw3ICsxMTgsNyBAQCBwcGNfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiCiAgCXsKICAJICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbYXJnbm9dOwogIAkgIHN0cnVj dCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC04NzEs NyArODU0LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvcHBjLXN5c3YtdGRlcC5jCiAgCSAgY29u c3QgYmZkX2J5dGUgKnZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAogIAkgIGlmIChUWVBF X0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9GTFQgJiYgbGVuIDw9IDgKLUBAIC0xMjg1LDExICsx Mjg1LDExIEBAIHN0cnVjdCBwcGM2NF9zeXN2X2FyZ3BvcworQEAgLTEyODMsMTEgKzEyODMsMTEg QEAgc3RydWN0IHBwYzY0X3N5c3ZfYXJncG9zCiAgCiAgc3RhdGljIHZvaWQKICBwcGM2NF9zeXN2 X2FiaV9wdXNoX3ZhbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCkBAIC04ODUsMTEgKzg2OCwx MSBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9wcGMtc3lzdi10ZGVwLmMKICAKICAgIC8qIEVuZm9y Y2UgYWxpZ25tZW50IG9mIHN0YWNrIGxvY2F0aW9uLCBpZiByZXF1ZXN0ZWQuICAqLwogICAgaWYg KGFsaWduID4gdGRlcC0+d29yZHNpemUpCi1JbmRleDogZ2RiLTcuNy4xL2dkYi9ybDc4LXRkZXAu YworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JsNzgtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3JsNzgtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTgu NzAwMjUyNzcyICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9ybDc4LXRkZXAuYwkyMDE0LTA1LTA5 IDIwOjAyOjA5LjYzMDcwMzc3MCArMDIwMAotQEAgLTEwNTIsOCArMTA1Miw4IEBAIHJsNzhfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4 Lm9yaWcvZ2RiL3JsNzgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDExMDIzNzExICswMTAw CisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmw3OC10ZGVwLmMJMjAxNS0wMS0wNSAyMjox OTowOC4wOTYwNzg0ODUgKzAxMDAKK0BAIC0xMjUxLDggKzEyNTEsOCBAQCBybDc4X3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0g MDsgaS0tKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9l bmNsb3NpbmdfdHlwZSAoYXJnc1tpXSk7CkBAIC05MDAsMTEgKzg4MywxMSBAQCBJbmRleDogZ2Ri LTcuNy4xL2dkYi9ybDc4LXRkZXAuYwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAg ICAgICAgd3JpdGVfbWVtb3J5IChybDc4X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1JbmRleDog Z2RiLTcuNy4xL2dkYi9yczYwMDAtYWl4LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcv Z2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzAwMjUyNzcyICswMjAw Ci0rKysgZ2RiLTcuNy4xL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5 LjYzMDcwMzc3MCArMDIwMAotQEAgLTE5Niw5ICsxOTYsOSBAQCByczYwMDBfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9y czYwMDAtYWl4LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxMjAyMzcxNiArMDEwMAorKysr IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6 MTk6MDguMDk3MDc4NDkwICswMTAwCitAQCAtMTg2LDkgKzE4Niw5IEBAIHJzNjAwMF9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAg PSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGlpOwpAQCAtOTE2LDcgKzg5 OSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiAgICBnZGJfYnl0 ZSB0bXBfYnVmZmVyWzUwXTsKICAgIGludCBmX2FyZ25vID0gMDsJCS8qIGN1cnJlbnQgZmxvYXRp bmcgcG9pbnQgYXJnbm8gKi8KICAgIGludCB3b3Jkc2l6ZSA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJj aCktPndvcmRzaXplOwotQEAgLTMzMSw3ICszMzEsNyBAQCByYW5fb3V0X29mX3JlZ2lzdGVyc19m b3JfYXJndW1lbnRzOgorQEAgLTMyMSw3ICszMjEsNyBAQCByYW5fb3V0X29mX3JlZ2lzdGVyc19m b3JfYXJndW1lbnRzOgogIAogICAgaWYgKChhcmdubyA8IG5hcmdzKSB8fCBhcmdieXRlcykKICAg ICAgewpAQCAtOTI1LDExICs5MDgsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvcnM2MDAwLWFp eC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnYnl0ZXMpCiAgCXsKLUluZGV4OiBnZGItNy43LjEv Z2RiL3MzOTAtbGludXgtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvczM5 MC1saW51eC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvczM5MC1s aW51eC10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC43MDEyNTI3NzIgKzAyMDAKLSsrKyBnZGIt Ny43LjEvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjMxNzAzNzcw ICswMjAwCi1AQCAtMjUyNiw3ICsyNTI2LDcgQEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUg KnR5cGUpCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAu YwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxMzAyMzcyMCArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk3MDc4NDkw ICswMTAwCitAQCAtMjMzNCw3ICsyMzM0LDcgQEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUg KnR5cGUpCiAgCiAgCiAgc3RhdGljIGludApAQCAtOTM4LDcgKzkyMSw3IEBAIEluZGV4OiBnZGIt Ny43LjEvZ2RiL3MzOTAtbGludXgtdGRlcC5jCiAgewogICAgcmV0dXJuICgobiAmIChuIC0gMSkp ID09IDApOwogIH0KLUBAIC0yNzEyLDcgKzI3MTIsNyBAQCBzMzkwX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKmdkCitAQCAtMjUyMCw3ICsyNTIwLDcgQEAgczM5MF9wdXNoX2R1bW15 X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgICAgIHsKICAJc3RydWN0IHZhbHVlICphcmcg PSBhcmdzW2ldOwogIAlzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKGFyZykpOwpAQCAtOTQ3LDExICs5MzAsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvczM5 MC1saW51eC10ZGVwLmMKICAKICAJaWYgKHMzOTBfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJl bmNlICh0eXBlKSkKICAJICB7Ci1JbmRleDogZ2RiLTcuNy4xL2dkYi9zY29yZS10ZGVwLmMKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zY29yZS10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy43LjEub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzAx MjUyNzcyICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9zY29yZS10ZGVwLmMJMjAxNC0wNS0wOSAy MDowMjowOS42MzE3MDM3NzAgKzAyMDAKLUBAIC01MTUsNyArNTE1LDcgQEAgc2NvcmVfcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEzMDIzNzIwICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6 MDguMDk3MDc4NDkwICswMTAwCitAQCAtNTE0LDcgKzUxNCw3IEBAIHNjb3JlX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0g Z2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBhcmdudW07CiAgICBpbnQgYXJn cmVnOwpAQCAtOTYwLDExICs5NDMsMTEgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvc2NvcmUtdGRl cC5jCiAgICBDT1JFX0FERFIgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIENPUkVfQUREUiBhZGRyID0g MDsKICAKLUluZGV4OiBnZGItNy43LjEvZ2RiL3NoLXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dk Yi9zaC10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDoxOC43MDIyNTI3NzIgKzAyMDAKLSsrKyBnZGIt Ny43LjEvZ2RiL3NoLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYzMTcwMzc3MCArMDIwMAot QEAgLTgwNyw3ICs4MDcsNyBAQCBzaF9za2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjCistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxNS0wMS0w NSAyMjoxODo1Ni4wMTQwMjM3MjUgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9z aC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTgwNzg0OTQgKzAxMDAKK0BAIC04MDUsNyAr ODA1LDcgQEAgc2hfc2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyYwogIHN0YXRp YyBpbnQKICBzaF91c2Vfc3RydWN0X2NvbnZlbnRpb24gKGludCByZW5lc2FzX2FiaSwgc3RydWN0 IHR5cGUgKnR5cGUpCiAgewpAQCAtOTczLDcgKzk1Niw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2Ri L3NoLXRkZXAuYwogICAgaW50IG5lbGVtID0gVFlQRV9ORklFTERTICh0eXBlKTsKICAKICAgIC8q IFRoZSBSZW5lc2FzIEFCSSByZXR1cm5zIGFnZ3JlZ2F0ZSB0eXBlcyBhbHdheXMgb24gc3RhY2su ICAqLwotQEAgLTkwOSw3ICs5MDksNyBAQCBzaF9mcmFtZV9hbGlnbiAoc3RydWN0IGdkYmFyY2gg Kmlnbm9yZSwKK0BAIC05MDcsNyArOTA3LDcgQEAgc2hfZnJhbWVfYWxpZ24gKHN0cnVjdCBnZGJh cmNoICppZ25vcmUsCiAgCiAgLyogSGVscGVyIGZ1bmN0aW9uIHRvIGp1c3RpZnkgdmFsdWUgaW4g cmVnaXN0ZXIgYWNjb3JkaW5nIHRvIGVuZGlhbmVzcy4gICovCiAgc3RhdGljIGNvbnN0IGdkYl9i eXRlICoKQEAgLTk4Miw3ICs5NjUsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9zaC10ZGVwLmMK ICB7CiAgICBzdGF0aWMgZ2RiX2J5dGUgdmFsYnVmWzRdOwogIAotQEAgLTEwNjksNyArMTA2OSw4 IEBAIHNoX3B1c2hfZHVtbXlfY2FsbF9mcHUgKHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xMDY3LDcg KzEwNjcsOCBAQCBzaF9wdXNoX2R1bW15X2NhbGxfZnB1IChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICBz dHJ1Y3QgdHlwZSAqdHlwZTsKICAgIENPUkVfQUREUiByZWd2YWw7CiAgICBjb25zdCBnZGJfYnl0 ZSAqdmFsOwpAQCAtOTkyLDcgKzk3NSw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3NoLXRkZXAu YwogICAgaW50IHBhc3Nfb25fc3RhY2sgPSAwOwogICAgaW50IHRyZWF0X2FzX2ZsdDsKICAgIGlu dCBsYXN0X3JlZ19hcmcgPSBJTlRfTUFYOwotQEAgLTEyMTAsNyArMTIxMSw4IEBAIHNoX3B1c2hf ZHVtbXlfY2FsbF9ub2ZwdSAoc3RydWN0IGdkYmFyY2gKK0BAIC0xMjA4LDcgKzEyMDksOCBAQCBz aF9wdXNoX2R1bW15X2NhbGxfbm9mcHUgKHN0cnVjdCBnZGJhcmNoCiAgICBzdHJ1Y3QgdHlwZSAq dHlwZTsKICAgIENPUkVfQUREUiByZWd2YWw7CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwpAQCAt MTAwMiwxMSArOTg1LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3NoLXRkZXAuYwogICAgaW50 IHBhc3Nfb25fc3RhY2sgPSAwOwogICAgaW50IGxhc3RfcmVnX2FyZyA9IElOVF9NQVg7CiAgCi1J bmRleDogZ2RiLTcuNy4xL2dkYi9zaDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3NoNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3No NjQtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzAyMjUyNzcyICswMjAwCi0rKysgZ2RiLTcu Ny4xL2dkYi9zaDY0LXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYzMjcwMzc3MSArMDIwMAot QEAgLTEwNTgsNyArMTA1OCw3IEBAIHNoNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIwMTUt MDEtMDUgMjI6MTg6NTYuMDE1MDIzNzI5ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvc2g2NC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTgwNzg0OTQgKzAxMDAKK0BAIC0x MDU2LDcgKzEwNTYsNyBAQCBzaDY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdk CiAgCQkgICAgICBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewogICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTAxNSw3ICs5 OTgsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dkYi9zaDY0LXRkZXAuYwogICAgaW50IGludF9hcmdy ZWc7CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGRvdWJsZV9hcmdyZWc7Ci1AQCAtMTA2 OSw3ICsxMDY5LDcgQEAgc2g2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAor QEAgLTEwNjcsNyArMTA2Nyw3IEBAIHNoNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKICAgIENPUkVfQUREUiByZWd2YWw7CiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwogICAg Z2RiX2J5dGUgdmFsYnVmWzhdOwpAQCAtMTAyNCwxMSArMTAwNywxMSBAQCBJbmRleDogZ2RiLTcu Ny4xL2dkYi9zaDY0LXRkZXAuYwogICAgaW50IGFyZ3JlZ19zaXplOwogICAgaW50IGZwX2FyZ3Nb MTJdOwogIAotSW5kZXg6IGdkYi03LjcuMS9nZGIvc3BhcmMtdGRlcC5jCitJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvc3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4x Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE0LTA1LTA5IDE5OjI0OjE4LjcwMzI1Mjc3MiArMDIw MAotKysrIGdkYi03LjcuMS9nZGIvc3BhcmMtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjMy NzAzNzcxICswMjAwCi1AQCAtNTAyLDcgKzUwMiw3IEBAIHNwYXJjMzJfc3RvcmVfYXJndW1lbnRz IChzdHJ1Y3QgcmVnY2FjaGUKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3NwYXJj LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxNjAyMzczNCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3NwYXJjLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5ODA3ODQ5 NCArMDEwMAorQEAgLTUyNSw3ICs1MjUsNyBAQCBzcGFyYzMyX3N0b3JlX2FyZ3VtZW50cyAoc3Ry dWN0IHJlZ2NhY2hlCiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDM3LDEx ICsxMDIwLDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3NwYXJjLXRkZXAuYwogIAogICAgICAg IGlmIChzcGFyY19zdHJ1Y3R1cmVfb3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAoc3BhcmNfZmxv YXRpbmdfcCAodHlwZSkgJiYgbGVuID09IDE2KQotSW5kZXg6IGdkYi03LjcuMS9nZGIvc3BhcmM2 NC10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYzY0LXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE0LTA1 LTA5IDE5OjI0OjE4LjcwNDI1Mjc3MyArMDIwMAotKysrIGdkYi03LjcuMS9nZGIvc3BhcmM2NC10 ZGVwLmMJMjAxNC0wNS0wOSAyMDowMjowOS42MzI3MDM3NzEgKzAyMDAKLUBAIC02MzksNyArNjM5 LDggQEAgc3BhcmM2NF8xNl9ieXRlX2FsaWduX3AgKHN0cnVjdCB0eXBlICp0eQorLS0tIGdkYi03 LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1 Ni4wMTYwMjM3MzQgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYzY0LXRk ZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5OTA3ODQ5OSArMDEwMAorQEAgLTYzNiw3ICs2MzYs OCBAQCBzcGFyYzY0XzE2X2J5dGVfYWxpZ25fcCAoc3RydWN0IHR5cGUgKnR5CiAgCiAgc3RhdGlj IHZvaWQKICBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xMDUxLDcgKzEwMzQsNyBAQCBJbmRleDog Z2RiLTcuNy4xL2dkYi9zcGFyYzY0LXRkZXAuYwogIHsKICAgIGludCBsZW4gPSBUWVBFX0xFTkdU SCAodHlwZSk7CiAgCi1AQCAtNjgxLDcgKzY4Miw3IEBAIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdf ZmllbGRzIChzdHJ1Y3QgcmUKK0BAIC02NzgsNyArNjc5LDcgQEAgc3BhcmM2NF9zdG9yZV9mbG9h dGluZ19maWVsZHMgKHN0cnVjdCByZQogICAgICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVM RFMgKHR5cGUpOyBpKyspCiAgCXsKICAJICBzdHJ1Y3QgdHlwZSAqc3VidHlwZSA9IGNoZWNrX3R5 cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkpOwpAQCAtMTA2MCw3ICsxMDQzLDcgQEAg SW5kZXg6IGdkYi03LjcuMS9nZGIvc3BhcmM2NC10ZGVwLmMKICAKICAJICBzcGFyYzY0X3N0b3Jl X2Zsb2F0aW5nX2ZpZWxkcyAocmVnY2FjaGUsIHN1YnR5cGUsIHZhbGJ1ZiwKICAJCQkJCSBlbGVt ZW50LCBzdWJwb3MpOwotQEAgLTcxMyw3ICs3MTQsNyBAQCBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5n X2ZpZWxkcyAoc3RydWN0IHJlCitAQCAtNzEwLDcgKzcxMSw3IEBAIHNwYXJjNjRfc3RvcmVfZmxv YXRpbmdfZmllbGRzIChzdHJ1Y3QgcmUKICAKICBzdGF0aWMgdm9pZAogIHNwYXJjNjRfZXh0cmFj dF9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBl ICp0eXBlLApAQCAtMTA2OSw3ICsxMDUyLDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvc3BhcmM2 NC10ZGVwLmMKICB7CiAgICBpZiAoc3BhcmM2NF9mbG9hdGluZ19wICh0eXBlKSkKICAgICAgewot QEAgLTc1MCw3ICs3NTEsNyBAQCBzcGFyYzY0X2V4dHJhY3RfZmxvYXRpbmdfZmllbGRzIChzdHJ1 Y3QKK0BAIC03NDcsNyArNzQ4LDcgQEAgc3BhcmM2NF9leHRyYWN0X2Zsb2F0aW5nX2ZpZWxkcyAo c3RydWN0CiAgICAgICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGkrKykK ICAJewogIAkgIHN0cnVjdCB0eXBlICpzdWJ0eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVM RF9UWVBFICh0eXBlLCBpKSk7CkBAIC0xMDc4LDcgKzEwNjEsNyBAQCBJbmRleDogZ2RiLTcuNy4x L2dkYi9zcGFyYzY0LXRkZXAuYwogIAogIAkgIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVs ZHMgKHJlZ2NhY2hlLCBzdWJ0eXBlLCB2YWxidWYsIHN1YnBvcyk7CiAgCX0KLUBAIC03ODMsNyAr Nzg0LDcgQEAgc3BhcmM2NF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZQorQEAgLTc4 MCw3ICs3ODEsNyBAQCBzcGFyYzY0X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAg ICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBl ICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDg3LDcgKzEwNzAsNyBAQCBJbmRl eDogZ2RiLTcuNy4xL2dkYi9zcGFyYzY0LXRkZXAuYwogIAogICAgICAgIGlmIChzcGFyYzY0X3N0 cnVjdHVyZV9vcl91bmlvbl9wICh0eXBlKQogIAkgIHx8IChzcGFyYzY0X2NvbXBsZXhfZmxvYXRp bmdfcCAodHlwZSkgJiYgbGVuID09IDMyKSkKLUBAIC04ODMsNyArODg0LDcgQEAgc3BhcmM2NF9z dG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZQorQEAgLTg4MCw3ICs4ODEsNyBAQCBzcGFy YzY0X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlCiAgICAgIHsKICAgICAgICBjb25z dCBnZGJfYnl0ZSAqdmFsYnVmID0gdmFsdWVfY29udGVudHMgKGFyZ3NbaV0pOwogICAgICAgIHN0 cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0xMDk2LDExICsxMDc5 LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3NwYXJjNjQtdGRlcC5jCiAgICAgICAgaW50IHJl Z251bSA9IC0xOwogICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07CiAgCi1JbmRleDogZ2RiLTcuNy4x L2dkYi9zcHUtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3B1LXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi9zcHUtdGRlcC5jCTIwMTQtMDUt MDkgMTk6MjQ6MTguNzA0MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi9zcHUtdGRlcC5j CTIwMTQtMDUtMDkgMjA6MDI6MDkuNjMzNzAzNzcxICswMjAwCi1AQCAtMTM3Niw3ICsxMzc2LDcg QEAgc3B1X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxNzAy MzczOSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NwdS10ZGVwLmMJMjAxNS0w MS0wNSAyMjoxOTowOC4wOTkwNzg0OTkgKzAxMDAKK0BAIC0xNDMwLDcgKzE0MzAsNyBAQCBzcHVf cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgICAgICAgc3RydWN0IHZhbHVl ICphcmcgPSBhcmdzW2ldOwogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAoYXJnKSk7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzID0g dmFsdWVfY29udGVudHMgKGFyZyk7CkBAIC0xMTA5LDcgKzEwOTIsNyBAQCBJbmRleDogZ2RiLTcu Ny4xL2dkYi9zcHUtdGRlcC5jCiAgCiAgICAgICAgLyogSWYgdGhlIGFyZ3VtZW50IGRvZXNuJ3Qg d2hvbGx5IGZpdCBpbnRvIHJlZ2lzdGVycywgaXQgYW5kCiAgCSBhbGwgc3Vic2VxdWVudCBhcmd1 bWVudHMgZ28gdG8gdGhlIHN0YWNrLiAgKi8KLUBAIC0xNDA4LDcgKzE0MDgsNyBAQCBzcHVfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAtMTQ2Miw3ICsxNDYyLDcgQEAg c3B1X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYgogIAl7CiAgCSAgc3RydWN0 IHZhbHVlICphcmcgPSBhcmdzW2ldOwogIAkgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlw ZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMTE4LDExICsxMTAxLDExIEBAIEluZGV4OiBn ZGItNy43LjEvZ2RiL3NwdS10ZGVwLmMKICAJICBpbnQgcHJlZmVycmVkX3Nsb3Q7CiAgCSAgCiAg CSAgaWYgKHNwdV9zY2FsYXJfdmFsdWVfcCAodHlwZSkpCi1JbmRleDogZ2RiLTcuNy4xL2dkYi90 aWM2eC10ZGVwLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWM2eC10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy43LjEub3JpZy9nZGIvdGljNngtdGRlcC5jCTIwMTQtMDUt MDkgMTk6MjQ6MTguNzA1MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi90aWM2eC10ZGVw LmMJMjAxNC0wNS0wOSAyMDowMjowOS42MzM3MDM3NzEgKzAyMDAKLUBAIC04OTYsNyArODk2LDcg QEAgdGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZworLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvdGljNngtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDE4 MDIzNzQzICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGljNngtdGRlcC5jCTIw MTUtMDEtMDUgMjI6MTk6MDguMDk5MDc4NDk5ICswMTAwCitAQCAtODk1LDcgKzg5NSw3IEBAIHRp YzZ4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgIGludCBhcmdyZWcgPSAw OwogICAgaW50IGFyZ251bTsKICAgIGludCBzdGFja19vZmZzZXQgPSA0OwpAQCAtMTEzMSw3ICsx MTE0LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvdGljNngtdGRlcC5jCiAgICBDT1JFX0FERFIg ZnVuY19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgICBlbnVt IGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAg ICBzdHJ1Y3QgdHlwZSAqZnVuY190eXBlID0gdmFsdWVfdHlwZSAoZnVuY3Rpb24pOwotQEAgLTkz MCw3ICs5MzAsNyBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitA QCAtOTI5LDcgKzkyOSw3IEBAIHRpYzZ4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmcKICAgIC8qIE5vdyBtYWtlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIGFyZ3MuICAqLwog ICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAg LTExNDAsNyArMTEyMyw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3RpYzZ4LXRkZXAuYwogICAg ICAgIGlmIChhcmdudW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJlZmVyZW5jZXNfb2Zmc2V0ICs9IGxl bjsKICAgICAgICBzdGFja19vZmZzZXQgKz0gbGVuOwotQEAgLTk0OSw3ICs5NDksNyBAQCB0aWM2 eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAtOTQ4LDcgKzk0OCw3IEBA IHRpYzZ4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgICAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwog ICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOwpAQCAtMTE0OSw3ICsxMTMyLDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIvdGljNngt dGRlcC5jCiAgICAgICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGUgPSBUWVBFX0NPREUgKGFyZ190 eXBlKTsKICAKICAgICAgICB2YWwgPSB2YWx1ZV9jb250ZW50cyAoYXJnKTsKLUBAIC0xMTA5LDcg KzExMDksOCBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCitAQCAt MTEwOCw3ICsxMTA4LDggQEAgdGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq ZwogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19M SU5FX18sCkBAIC0xMTU5LDExICsxMTQyLDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3RpYzZ4 LXRkZXAuYwogIAogIAkgIGFkZHIgPSBzcCArIHN0YWNrX29mZnNldDsKICAJICB3cml0ZV9tZW1v cnkgKGFkZHIsIHZhbCwgbGVuKTsKLUluZGV4OiBnZGItNy43LjEvZ2RiL3RpbGVneC10ZGVwLmMK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWxlZ3gtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNy4xLm9yaWcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNC0wNS0wOSAxOToyNDox OC43MDUyNTI3NzMgKzAyMDAKLSsrKyBnZGItNy43LjEvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNC0w NS0wOSAyMDowMjowOS42MzM3MDM3NzEgKzAyMDAKLUBAIC0yOTAsNyArMjkwLDcgQEAgdGlsZWd4 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvdGlsZWd4LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxODAyMzc0MyAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0wMS0w NSAyMjoxOTowOC4xMDAwNzg1MDMgKzAxMDAKK0BAIC0yODgsNyArMjg4LDcgQEAgdGlsZWd4X3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3Qg PSBzcDsKICAgIGludCBhcmdyZWcgPSBUSUxFR1hfUjBfUkVHTlVNOwogICAgaW50IGksIGo7CkBA IC0xMTcyLDExICsxMTU1LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3RpbGVneC10ZGVwLmMK ICAgIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSBmb3VyX3plcm9fd29yZHNbMTZdID0geyAwIH07CiAg CiAgICAvKiBJZiBzdHJ1Y3RfcmV0dXJuIGlzIDEsIHRoZW4gdGhlIHN0cnVjdCByZXR1cm4gYWRk cmVzcyB3aWxsCi1JbmRleDogZ2RiLTcuNy4xL2dkYi92ODUwLXRkZXAuYworSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Y4NTAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy4x Lm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzA1MjUyNzczICswMjAw Ci0rKysgZ2RiLTcuNy4xL2dkYi92ODUwLXRkZXAuYwkyMDE0LTA1LTA5IDIwOjAyOjA5LjYzNDcw Mzc3MSArMDIwMAotQEAgLTEwMjEsNyArMTAyMSw3IEBAIHY4NTBfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Y4NTAt dGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDE5MDIzNzQ4ICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdjg1MC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4xMDAwNzg1MDMg KzAxMDAKK0BAIC0xMDE5LDcgKzEwMTksNyBAQCB2ODUwX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKmdkCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0 ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAgLTEx ODUsNyArMTE2OCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3Y4NTAtdGRlcC5jCiAgICBpbnQg c3RhY2tfb2Zmc2V0OwogIAogICAgaWYgKGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPmFiaSA9PSBW ODUwX0FCSV9SSDg1MCkKLUBAIC0xMDQ5LDcgKzEwNDksNyBAQCB2ODUwX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKmdkCitAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgdjg1MF9wdXNoX2R1 bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgICAgaW4gZm91ciByZWdpc3RlcnMgYXZh aWxhYmxlLiAgTG9vcCB0aHJ1IGFyZ3MgZnJvbSBmaXJzdCB0byBsYXN0LiAgKi8KICAgIGZvciAo YXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0xMTk0LDEx ICsxMTc3LDExIEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3Y4NTAtdGRlcC5jCiAgICAgICAgZ2Ri X2J5dGUgKnZhbDsKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6ZV07CiAgCi1J bmRleDogZ2RiLTcuNy4xL2dkYi92YXgtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi92YXgt dGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzA2MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4x L2dkYi92YXgtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjM0NzAzNzcxICswMjAwCi1AQCAt MTE1LDcgKzExNSw3IEBAIHZheF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNS0wMS0wNSAy MjoxODo1Ni4wMTkwMjM3NDggKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YXgt dGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMTAwMDc4NTAzICswMTAwCitAQCAtMTExLDcgKzEx MSw3IEBAIHZheF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUKICAgIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKICAgIGVu dW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsK ICAgIGdkYl9ieXRlIGJ1Zls0XTsKQEAgLTEyMDcsNyArMTE5MCw3IEBAIEluZGV4OiBnZGItNy43 LjEvZ2RiL3ZheC10ZGVwLmMKICAgIGludCBpOwogIAogICAgLyogV2UgY3JlYXRlIGFuIGFyZ3Vt ZW50IGxpc3Qgb24gdGhlIHN0YWNrLCBhbmQgbWFrZSB0aGUgYXJndW1lbnQKLUBAIC0xMjQsNyAr MTI0LDcgQEAgdmF4X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyZQorQEAgLTEy MCw3ICsxMjAsNyBAQCB2YXhfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlCiAg ICAvKiBQdXNoIGFyZ3VtZW50cyBpbiByZXZlcnNlIG9yZGVyLiAgKi8KICAgIGZvciAoaSA9IG5h cmdzIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKQEAgLTEyMTYsMTEgKzExOTksMTEgQEAgSW5k ZXg6IGdkYi03LjcuMS9nZGIvdmF4LXRkZXAuYwogIAogICAgICAgIHNwIC09IChsZW4gKyAzKSAm IH4zOwogICAgICAgIGNvdW50ICs9IChsZW4gKyAzKSAvIDQ7Ci1JbmRleDogZ2RiLTcuNy4xL2dk Yi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIveHN0b3Jt eTE2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi94c3Rvcm15MTYt dGRlcC5jCTIwMTQtMDUtMDkgMTk6MjQ6MTguNzA2MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4x L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjM0NzAzNzcxICswMjAw Ci1AQCAtMjM1LDggKzIzNSw5IEBAIHhzdG9ybXkxNl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmMKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJ MjAxNS0wMS0wNSAyMjoxODo1Ni4wMjAwMjM3NTIgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMTAwMDc4NTAzICsw MTAwCitAQCAtMjMzLDggKzIzMyw5IEBAIHhzdG9ybXkxNl9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29y ZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CiAgICBpbnQgYXJn cmVnID0gRV8xU1RfQVJHX1JFR05VTTsKQEAgLTEyMzIsMTEgKzEyMTUsMTEgQEAgSW5kZXg6IGdk Yi03LjcuMS9nZGIveHN0b3JteTE2LXRkZXAuYwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAg IGdkYl9ieXRlIGJ1Zlt4c3Rvcm15MTZfcGNfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuNy4xL2dk Yi94dGVuc2EtdGRlcC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIveHRlbnNhLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuMS5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIw MTQtMDUtMDkgMTk6MjQ6MTguNzA3MjUyNzczICswMjAwCi0rKysgZ2RiLTcuNy4xL2dkYi94dGVu c2EtdGRlcC5jCTIwMTQtMDUtMDkgMjA6MDI6MDkuNjM0NzAzNzcxICswMjAwCi1AQCAtMTY1Miw4 ICsxNjUyLDcgQEAgeHRlbnNhX3N0b3JlX3JldHVybl92YWx1ZSAoc3RydWN0IHR5cGUgKgorLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIveHRlbnNhLXRkZXAuYwkyMDE1LTAxLTA1IDIy OjE4OjU2LjAyMTAyMzc1NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3h0ZW5z YS10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4xMDEwNzg1MDggKzAxMDAKK0BAIC0xNjQ2LDgg KzE2NDYsNyBAQCB4dGVuc2Ffc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCiAgCiAg ICAgICAgaWYgKGxlbiA+IChjYWxsc2l6ZSA+IDggPyA4IDogMTYpKQogIAlpbnRlcm5hbF9lcnJv ciAoX19GSUxFX18sIF9fTElORV9fLApAQCAtMTI0Niw3ICsxMjI5LDcgQEAgSW5kZXg6IGdkYi03 LjcuMS9nZGIveHRlbnNhLXRkZXAuYwogICAgICAgIGFyZWcgPSBhcnJlZ19udW1iZXIgKGdkYmFy Y2gsCiAgCQkJICAgZ2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIgKyBjYWxsc2l6 ZSwgd2IpOwogIAotQEAgLTE3MjcsMTggKzE3MjYsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKgorQEAgLTE3MjEsMTggKzE3MjAsMTggQEAgeHRlbnNhX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogIHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRl X29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBpOwpAQCAtMTI2 OCw3ICsxMjUxLDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIveHRlbnNhLXRkZXAuYwogICAgICAg IGludCByZWdubzsJCS8qIHJlZ25vIGlmIGluIHJlZ2lzdGVyLiAgKi8KICAgICAgfSB1OwogICAg fTsKLUBAIC0xNzYyLDkgKzE3NjEsMTAgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKgorQEAgLTE3NTYsOSArMTc1NSwxMCBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICAgICAgICB7CiAgCSAgc3RydWN0IHZhbHVlICphcmcgPSBh cmdzW2ldOwogIAkgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFyZykpOwpAQCAtMTI4Miw3ICsxMjY1LDcgQEAgSW5kZXg6IGdkYi03LjcuMS9nZGIv eHRlbnNhLXRkZXAuYwogIAkgIHN3aXRjaCAoVFlQRV9DT0RFIChhcmdfdHlwZSkpCiAgCSAgICB7 CiAgCSAgICBjYXNlIFRZUEVfQ09ERV9JTlQ6Ci1AQCAtMTgzNCw4ICsxODM0LDggQEAgeHRlbnNh X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorQEAgLTE4MjgsOCArMTgyOCw4IEBA IHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKICAJICBpbmZvLT5hbGln biA9IFRZUEVfTEVOR1RIIChidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2xvbmcpOwog IAkgIGJyZWFrOwogIAl9CkBAIC0xMjkyLDcgKzEyNzUsNyBAQCBJbmRleDogZ2RiLTcuNy4xL2dk Yi94dGVuc2EtdGRlcC5jCiAgCiAgICAgICAgLyogQWxpZ24gc2l6ZSBhbmQgb25zdGFja19zaXpl LiAgKi8KICAgICAgICBzaXplID0gKHNpemUgKyBpbmZvLT5hbGlnbiAtIDEpICYgfihpbmZvLT5h bGlnbiAtIDEpOwotQEAgLTE4ODAsNyArMTg4MCw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xODc0LDcgKzE4NzQsNyBAQCB4dGVuc2FfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgCiAgICAgICAgaWYgKGluZm8tPm9uc3RhY2spCiAg CXsKQEAgLTEzMDEsNyArMTI4NCw3IEBAIEluZGV4OiBnZGItNy43LjEvZ2RiL3h0ZW5zYS10ZGVw LmMKICAJICBDT1JFX0FERFIgb2Zmc2V0ID0gc3AgKyBpbmZvLT51Lm9mZnNldDsKICAKICAJICAv KiBPZGQtc2l6ZWQgc3RydWN0cyBhcmUgYWxpZ25lZCB0byB0aGUgbG93ZXIgc2lkZSBvZiBhIG1l bW9yeQotQEAgLTE4OTYsNyArMTg5Niw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICoKK0BAIC0xODkwLDcgKzE4OTAsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqCiAgCX0KICAgICAgICBlbHNlCiAgCXsKCmRpZmYgLS1naXQgYS9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTI1b2YyNS5wYXRjaAppbmRleCAzYTY2YzAxLi42ZmU2ODRlIDEwMDY0NAotLS0gYS9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y NW9mMjUucGF0Y2gKQEAgLTQ3LDEwICs0NywxMCBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRj aAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjog YXR0YWNobWVudDsgZmlsZW5hbWU9Zjc3LWJvdW5kcy5wYXRjaAogCi1JbmRleDogZ2RiLTcuNy45 MC4yMDE0MDYxMy9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9m LWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZi1s YW5nLmgJMjAxNC0wNi0xNiAyMjo0NTowMC40MDQ0NzA5NDQgKzAyMDAKLSsrKyBnZGItNy43Ljkw LjIwMTQwNjEzL2dkYi9mLWxhbmcuaAkyMDE0LTA2LTE2IDIyOjQ1OjEwLjM1MjQ3Nzc2MSArMDIw MAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0wMS0wNiAy Mjo0NjozMS42MjA4NTI5OTYgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLWxh bmcuaAkyMDE1LTAxLTA2IDIyOjQ2OjM0LjE5MDg2NTQ2NiArMDEwMAogQEAgLTYyLDkgKzYyLDkg QEAgc3RydWN0IGNvbW1vbl9ibG9jawogICAgc3RydWN0IHN5bWJvbCAqY29udGVudHNbMV07CiAg fTsKQEAgLTYzLDExICs2MywxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZi1s YW5nLmgKICAKICBleHRlcm4gdm9pZCBmNzdfZ2V0X2R5bmFtaWNfYXJyYXlfbGVuZ3RoIChzdHJ1 Y3QgdHlwZSAqKTsKICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXR5cGVwcmlu dC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi10eXBlcHJpbnQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE0 LTA2LTE2IDIyOjQ1OjAwLjQwNDQ3MDk0NCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMv Z2RiL2YtdHlwZXByaW50LmMJMjAxNC0wNi0xNiAyMjo0NToxMC4zNTM0Nzc3NjEgKzAyMDAKLUBA IC0xNjEsNyArMTYxLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlw ZQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTAx LTA2IDIyOjQ2OjMxLjYyMTg1MzAwMSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2YtdHlwZXByaW50LmMJMjAxNS0wMS0wNiAyMjo0NzowMy43MzEwMDg3OTggKzAxMDAKK0BAIC0x NTgsNyArMTU4LDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQog IAkJCSAgICAgaW50IHNob3csIGludCBwYXNzZWRfYV9wdHIsIGludCBkZW1hbmdsZWRfYXJncywK ICAJCQkgICAgIGludCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpCiAgewpAQCAtNzYsMjUgKzc2 LDI1IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXR5cGVwcmludC5jCiAgCiAg ICAvKiBObyBzdGF0aWMgdmFyaWFibGVzIGFyZSBwZXJtaXR0ZWQgYXMgYW4gZXJyb3IgY2FsbCBt YXkgb2NjdXIgZHVyaW5nCiAgICAgICBleGVjdXRpb24gb2YgdGhpcyBmdW5jdGlvbi4gICovCi1A QCAtMTk1LDcgKzE5NSw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5 cGUKK0BAIC0xOTIsNyArMTkyLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1 Y3QgdHlwZQogIAogICAgICAgICAgICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAo dHlwZSk7CiAgICAgICAgICAgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1 bHQuICAqLwogLSAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxv d2VyX2JvdW5kKTsKLSsJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzOiIsIHBsb25n ZXN0IChsb3dlcl9ib3VuZCkpOworKyAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIiVzOiIsIHBsb25nZXN0IChsb3dlcl9ib3VuZCkpOwogIAogICAgICAgICAgICAvKiBNYWtl IHN1cmUgdGhhdCwgaWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCiAgICAgICAg ICAgICAgIHByaW50IG91dCBhIHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBlcmJvdW5kIGFzICcq Jy4gICovCi1AQCAtMjA1LDcgKzIwNSw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAo c3RydWN0IHR5cGUKK0BAIC0yMDIsNyArMjAyLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3Vm Zml4IChzdHJ1Y3QgdHlwZQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgdXBwZXJfYm91bmQgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHR5cGUpOwogLSAgICAg ICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7Ci0r CSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzIiwgcGxvbmdlc3QgKHVwcGVyX2Jv dW5kKSk7CisrICAgICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBs b25nZXN0ICh1cHBlcl9ib3VuZCkpOwogICAgICAgICAgICAgIH0KICAKICAgICAgICAgICAgaWYg KFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkK LUBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZAorQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkCiAgZl90 eXBlX3ByaW50X2Jhc2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgc2hvdywKICAJCSAgIGludCBsZXZlbCkKICB7CkBAIC0xMDMsNyArMTAzLDcgQEAgSW5k ZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtdHlwZXByaW50LmMKICAgIGludCBpbmRleDsK ICAKICAgIFFVSVQ7Ci1AQCAtMzU2LDcgKzM1Niw3IEBAIGZfdHlwZV9wcmludF9iYXNlIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3QKK0BAIC0zNTMsNyArMzUzLDcgQEAgZl90eXBlX3ByaW50X2Jhc2Ug KHN0cnVjdCB0eXBlICp0eXBlLCBzdAogICAgICAgIGVsc2UKICAJewogIAkgIHVwcGVyX2JvdW5k ID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKQEAgLTExMiwxMSArMTEyLDExIEBAIEluZGV4 OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXR5cGVwcmludC5jCiAgCX0KICAgICAgICBicmVh azsKICAKLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9mLXZhbHByaW50LmMKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE0LTA2LTE2IDIyOjQ1 OjM0LjkwMTQ5NTA2OSArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2YtdmFscHJp bnQuYwkyMDE0LTA2LTE2IDIyOjQ1OjQ0LjkzMzUwMjA2NyArMDIwMAotQEAgLTQ2LDcgKzQ2LDcg QEAgTE9OR0VTVCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTgorLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMDEtMDYgMjI6NDY6MzEuNjIx ODUzMDAxICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZi12YWxwcmludC5jCTIw MTUtMDEtMDYgMjI6NDY6MzQuMTkxODY1NDcxICswMTAwCitAQCAtNDMsNyArNDMsNyBAQCBMT05H RVNUIGY3N19hcnJheV9vZmZzZXRfdGJsW01BWF9GT1JUUkFOCiAgLyogQXJyYXkgd2hpY2ggaG9s ZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCiAgICAgZm9y IGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3ViYXJy YXkuICAqLwogIApAQCAtMTI1LDcgKzEyNSw3IEBAIEluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEz L2dkYi9mLXZhbHByaW50LmMKICBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBl KQogIHsKICAgIGlmIChUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRCAodHlwZSkp Ci1AQCAtNTUsNyArNTUsNyBAQCBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBl KQorQEAgLTUyLDcgKzUyLDcgQEAgZjc3X2dldF9sb3dlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlw ZSkKICAgIHJldHVybiBUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX1ZBTFVFICh0eXBlKTsKICB9CiAg CgpkaWZmIC0tZ2l0IGEvZ2RiLXNhdmUtYnJlYWtwb2ludHMtZml4LnBhdGNoIGIvZ2RiLXNhdmUt YnJlYWtwb2ludHMtZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTVh M2JiLi4wMDAwMDAwCi0tLSBhL2dkYi1zYXZlLWJyZWFrcG9pbnRzLWZpeC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDEyMyArMCwwIEBACi1nZGIvCi0yMDE0LTEwLTAzICBNaXJvc2xhdiBGcmFu YyAgPG1mcmFuY0ByZWRoYXQuY29tPgotCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci0KLQlGaXggInNhdmUgYnJlYWtwb2ludHMiIGZvciAiY2F0Y2giIGNv bW1hbmQuCi0JKiBicmVhay1jYXRjaC1zaWcuYyAoc2lnbmFsX2NhdGNocG9pbnRfcHJpbnRfcmVj cmVhdGUpOiBBZGQgdHJhaWxpbmcKLQluZXdsaW5lLgotCi1nZGIvdGVzdHN1aXRlLwotMjAxNC0x MC0wMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JRml4 ICJzYXZlIGJyZWFrcG9pbnRzIiBmb3IgImNhdGNoIiBjb21tYW5kLgotCSogZ2RiLmJhc2UvY2F0 Y2gtc2lnbmFsLmV4cDogQWRkIGdkYl9icmVha3BvaW50ICJtYWluIi4KLQlSZW1vdmUgLW5vbmV3 bGluZS4gIE1hdGNoIGFsc28gdGhlIGFkZGVkICJtYWluIiBsaW5lLgotCi1kaWZmIC0tZ2l0IGEv Z2RiL2JyZWFrLWNhdGNoLXNpZy5jIGIvZ2RiL2JyZWFrLWNhdGNoLXNpZy5jCi1pbmRleCBjNDFi ZjMzLi41NzlmYjc4IDEwMDY0NAotLS0tIGEvZ2RiL2JyZWFrLWNhdGNoLXNpZy5jCi0rKysgYi9n ZGIvYnJlYWstY2F0Y2gtc2lnLmMKLUBAIC0zNDYsNiArMzQ2LDcgQEAgc2lnbmFsX2NhdGNocG9p bnRfcHJpbnRfcmVjcmVhdGUgKHN0cnVjdCBicmVha3BvaW50ICpiLCBzdHJ1Y3QgdWlfZmlsZSAq ZnApCi0gICAgIH0KLSAgIGVsc2UgaWYgKGMtPmNhdGNoX2FsbCkKLSAgICAgZnByaW50Zl91bmZp bHRlcmVkIChmcCwgIiBhbGwiKTsKLSsgIGZwdXRjX3VuZmlsdGVyZWQgKCdcbicsIGZwKTsKLSB9 Ci0gCi0gLyogSW1wbGVtZW50IHRoZSAiZXhwbGFpbnNfc2lnbmFsIiBicmVha3BvaW50X29wcyBt ZXRob2QgZm9yIHNpZ25hbAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2F0 Y2gtc2lnbmFsLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2F0Y2gtc2lnbmFsLmV4cAot aW5kZXggMjJjYWY0MC4uNzAwMmY4NCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvY2F0Y2gtc2lnbmFsLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYXRjaC1z aWduYWwuZXhwCi1AQCAtMTE3LDYgKzExNyw3IEBAIGZvcmVhY2gge2FyZyBkZXNjfSB7IiIgInN0 YW5kYXJkIHNpZ25hbHMiIFwKLSAJInNldCBjYXRjaHBvaW50ICckYXJnJyBmb3IgcHJpbnRpbmci Ci0gICAgIGdkYl90ZXN0ICJpbmZvIGJyZWFrIiAiJGRlY2ltYWwuKmNhdGNocG9pbnQuKnNpZ25h bC4qJGRlc2MuKiIgXAotIAkiaW5mbyBicmVhayBmb3IgJyRhcmcnIgotKyAgICBnZGJfYnJlYWtw b2ludCAibWFpbiIKLSAgICAgZ2RiX3Rlc3QgInNhdmUgYnJlYWtwb2ludHMgW3N0YW5kYXJkX291 dHB1dF9maWxlIGJwcy4kaV0iIFwKLSAJIlNhdmVkIHRvIGZpbGUgLipicHMuJGkuKiIgXAotIAki c2F2ZSBicmVha3BvaW50cyBmb3IgJyRhcmcnIgotQEAgLTEyNCwxNSArMTI1LDE3IEBAIGZvcmVh Y2gge2FyZyBkZXNjfSB7IiIgInN0YW5kYXJkIHNpZ25hbHMiIFwKLSAgICAgc2V0IGZpbGVuYW1l IFtyZW1vdGVfdXBsb2FkIGhvc3QgW3N0YW5kYXJkX291dHB1dF9maWxlIGJwcy4kaV0gXAotIAkJ ICAgICAgW3N0YW5kYXJkX291dHB1dF9maWxlIGJwcy1sb2NhbC4kaV1dCi0gICAgIHNldCBmZCBb b3BlbiAkZmlsZW5hbWVdCi0tICAgIHNldCBjb250ZW50cyBbcmVhZCAtbm9uZXdsaW5lICRmZF0K LSsgICAgc2V0IGNvbnRlbnRzIFtyZWFkICRmZF0KLSAgICAgY2xvc2UgJGZkCi0gCi0rICAgIHNl dCBubCAiXHI/XG4iCi0gICAgIGlmIHskYXJnID09ICIifSB7Ci0tCXNldCBwYXR0ZXJuICJjYXRj aCBzaWduYWwiCi0rCXNldCBwYXR0ZXJuICJjYXRjaCBzaWduYWwkbmwiCi0gICAgIH0gZWxzZSB7 Ci0tCXNldCBwYXR0ZXJuICJjYXRjaCBzaWduYWwgJGFyZyIKLSsJc2V0IHBhdHRlcm4gImNhdGNo IHNpZ25hbCAkYXJnJG5sIgotICAgICB9Ci0tICAgIGlmIHtbc3RyaW5nIG1hdGNoICRwYXR0ZXJu ICRjb250ZW50c119IHsKLSsgICAgc2V0IHBhdHRlcm4gIiR7cGF0dGVybn1icmVhayBtYWluJG5s IgotKyAgICBpZiB7W3JlZ2V4cCAiJHBhdHRlcm4iICRjb250ZW50c119IHsKLSAJcGFzcyAicmVz dWx0cyBvZiBzYXZlIGJyZWFrcG9pbnRzIGZvciAnJGFyZyciCi0gICAgIH0gZWxzZSB7Ci0gCWZh aWwgInJlc3VsdHMgb2Ygc2F2ZSBicmVha3BvaW50cyBmb3IgJyRhcmcnIgotZ2RiLwotMjAxNC0x MC0wMyAgTWlyb3NsYXYgRnJhbmMgIDxtZnJhbmNAcmVkaGF0LmNvbT4KLQotCUZpeCAic2F2ZSBi cmVha3BvaW50cyIgZm9yICJkaXNhYmxlICRicG51bSIgY29tbWFuZC4KLQkqIGJyZWFrcG9pbnQu YyAoc2F2ZV9icmVha3BvaW50cyk6IEFkZCAkYnBudW0gZm9yIGRpc2FibGUuCi0KLWdkYi90ZXN0 c3VpdGUvCi0yMDE0LTEwLTAzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+Ci0KLQlGaXggInNhdmUgYnJlYWtwb2ludHMiIGZvciAiZGlzYWJsZSAkYnBudW0iIGNv bW1hbmQuCi0JKiBnZGIuYmFzZS9zYXZlLWJwLmMgKG1haW4pOiBBZGQgbGFiZWwuCi0JKiBnZGIu YmFzZS9zYXZlLWJwLmV4cDogQWRkIDh0aCBkaXNhYmxlZCBicmVha3BvaW50LiAgTWF0Y2ggaXQu Ci0KLWRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwotaW5k ZXggZTIxNzBiNC4uMGE0MzhkMSAxMDA2NDQKLS0tLSBhL2dkYi9icmVha3BvaW50LmMKLSsrKyBi L2dkYi9icmVha3BvaW50LmMKLUBAIC0xNjEzMSw3ICsxNjEzMSw3IEBAIHNhdmVfYnJlYWtwb2lu dHMgKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHksCi0gICAgICAgfQotIAotICAgICBpZiAo dHAtPmVuYWJsZV9zdGF0ZSA9PSBicF9kaXNhYmxlZCkKLS0gICAgICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGZwLCAiZGlzYWJsZVxuIik7Ci0rICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChmcCwgImRp c2FibGUgJGJwbnVtXG4iKTsKLSAKLSAgICAgLyogSWYgdGhpcyBpcyBhIG11bHRpLWxvY2F0aW9u IGJyZWFrcG9pbnQsIGNoZWNrIGlmIHRoZSBsb2NhdGlvbnMKLSAgICAgICAgc2hvdWxkIGJlIGlu ZGl2aWR1YWxseSBkaXNhYmxlZC4gIFdhdGNocG9pbnQgbG9jYXRpb25zIGFyZQotZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2F2ZS1icC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9zYXZlLWJwLmMKLWluZGV4IDlhNzJmZTguLmYwMWYwMzEgMTAwNjQ0Ci0tLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3NhdmUtYnAuYwotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9zYXZlLWJwLmMKLUBAIC0zMSw2ICszMSw2IEBAIG1haW4gKHZvaWQpCi0gICAgIGJyZWFrX21l ICgpOyAvKiBUcnkgYSBjb25kaXRpb24tc3BlY2lmaWMgYnJlYWtwb2ludC4gICovCi0gCi0gICBi cmVha19tZSAoKTsgLyogRmluYWxseSwgdHJ5IGEgYnJlYWtwb2ludCB3aXRoIGNvbW1hbmRzLiAg Ki8KLS0gIHJldHVybiAwOwotKyAgcmV0dXJuIDA7IC8qIFJldHVybiBsaW5lLiAqLwotIH0KLSAK LWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NhdmUtYnAuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9zYXZlLWJwLmV4cAotaW5kZXggYmE5ODYzMy4uN2JjOGFiNiAxMDA2 NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc2F2ZS1icC5leHAKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2Uvc2F2ZS1icC5leHAKLUBAIC00Nyw2ICs0NywxMCBAQCBnZGJfdGVz dCAiY29tbWFuZHNcbnNpbGVudFxuZW5kIiAiRW5kIHdpdGguKiIgImFkZCBicmVha3BvaW50IGNv bW1hbmRzIgotIAotIGdkYl90ZXN0ICJkcHJpbnRmICR7c3JjZmlsZX06JHtsb2NfYnA1fSxcIkF0 IGZvbyBlbnRyeVxcblwiIiAiRHByaW50ZiAuKiIKLSAKLStzZXQgbG9jX2JwOCBbZ2RiX2dldF9s aW5lX251bWJlciAiUmV0dXJuIGxpbmUiXQotK2dkYl9icmVha3BvaW50ICIke3NyY2ZpbGV9OiR7 bG9jX2JwOH0iCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0IHtkaXNhYmxlICRicG51bX0KLSsKLSAjIE5v dywgc2F2ZSB0aGUgYnJlYWtwb2ludHMgaW50byBhIGZpbGUuLi4KLSBpZiB7W2lzX3JlbW90ZSBo b3N0XX0gewotICAgICBzZXQgYnBzIGJwcwotQEAgLTcxLDYgKzc1LDcgQEAgZ2RiX3Rlc3QgInNv dXJjZSAkYnBzIiAiIiAic291cmNlIGJwcyIKLSAKLSAjIE5vdywgdmVyaWZ5IHRoYXQgYWxsIGJy ZWFrcG9pbnRzIGhhdmUgYmVlbiBjcmVhdGVkIGNvcnJlY3RseS4uLgotIHNldCBicF9yb3dfc3Rh cnQgIlxbMC05XF0rICticmVha3BvaW50ICtrZWVwICt5ICsweFxbMC05YS1mXF0rICtpbiIKLStz ZXQgZGlzYWJsZWRfcm93X3N0YXJ0ICJcWzAtOVxdKyArYnJlYWtwb2ludCAra2VlcCArbiArMHhc WzAtOWEtZlxdKyAraW4iCi0gc2V0IGRwcmludGZfcm93X3N0YXJ0ICJcWzAtOVxdKyArZHByaW50 ZiAra2VlcCAreSArMHhcWzAtOWEtZlxdKyAraW4iCi0gZ2RiX3Rlc3QgImluZm8gYnJlYWsiIFwK LS0gICIgKk51bSArVHlwZSArRGlzcCArRW5iICtBZGRyZXNzICtXaGF0XHJcbiRicF9yb3dfc3Rh cnQgYnJlYWtfbWUgYXQgLiokc3JjZmlsZTpcWzAtOVxdK1xyXG4kYnBfcm93X3N0YXJ0IG1haW4g YXQgLiokc3JjZmlsZTokbG9jX2JwMlxyXG4kYnBfcm93X3N0YXJ0IG1haW4gYXQgLiokc3JjZmls ZTokbG9jX2JwMyArdGhyZWFkIDFcclxuXFsgXHRdK3N0b3Agb25seSBpbiB0aHJlYWQgMVxyXG4k YnBfcm93X3N0YXJ0IG1haW4gYXQgLiokc3JjZmlsZTokbG9jX2JwNFxyXG5cWyBcdFxdK3N0b3Ag b25seSBpZiBpID09IDEoIFxcKChob3N0fHRhcmdldCkgZXZhbHNcXCkpP1xyXG4kYnBfcm93X3N0 YXJ0IG1haW4gYXQgLiokc3JjZmlsZTokbG9jX2JwNVxyXG5cWyBcdFxdK3NpbGVudFxyXG4kZHBy aW50Zl9yb3dfc3RhcnQgbWFpbiBhdCAuKiRzcmNmaWxlOiRsb2NfYnA1XHJcblxbIFx0XF0rcHJp bnRmLioiCi0rICAiICpOdW0gK1R5cGUgK0Rpc3AgK0VuYiArQWRkcmVzcyArV2hhdFxyXG4kYnBf cm93X3N0YXJ0IGJyZWFrX21lIGF0IC4qJHNyY2ZpbGU6XFswLTlcXStcclxuJGJwX3Jvd19zdGFy dCBtYWluIGF0IC4qJHNyY2ZpbGU6JGxvY19icDJcclxuJGJwX3Jvd19zdGFydCBtYWluIGF0IC4q JHNyY2ZpbGU6JGxvY19icDMgK3RocmVhZCAxXHJcblxbIFx0XStzdG9wIG9ubHkgaW4gdGhyZWFk IDFcclxuJGJwX3Jvd19zdGFydCBtYWluIGF0IC4qJHNyY2ZpbGU6JGxvY19icDRcclxuXFsgXHRc XStzdG9wIG9ubHkgaWYgaSA9PSAxKCBcXCgoaG9zdHx0YXJnZXQpIGV2YWxzXFwpKT9cclxuJGJw X3Jvd19zdGFydCBtYWluIGF0IC4qJHNyY2ZpbGU6JGxvY19icDVcclxuXFsgXHRcXStzaWxlbnRc clxuJGRwcmludGZfcm93X3N0YXJ0IG1haW4gYXQgLiokc3JjZmlsZTokbG9jX2JwNVxyXG5cWyBc dFxdK3ByaW50ZlxbXlxyXG5cXStcclxuJGRpc2FibGVkX3Jvd19zdGFydCBtYWluIGF0IC4qJHNy Y2ZpbGU6JGxvY19icDgiCgpkaWZmIC0tZ2l0IGEvZ2RiLXNsb3ctZ3N0YWNrLXBlcmZvcm1hbmNl LnBhdGNoIGIvZ2RiLXNsb3ctZ3N0YWNrLXBlcmZvcm1hbmNlLnBhdGNoCmluZGV4IDZhOTM5ODgu LmM4OTVlN2YgMTAwNjQ0Ci0tLSBhL2dkYi1zbG93LWdzdGFjay1wZXJmb3JtYW5jZS5wYXRjaAor KysgYi9nZGItc2xvdy1nc3RhY2stcGVyZm9ybWFuY2UucGF0Y2gKQEAgLTEzNCwxMSArMTM0LDEx IEBAIGdkYi8KIAkoZHdhcmZfZGVjb2RlX2xpbmVfaGVhZGVyKTogSW5pdGlhbGl6ZSBvZmZzZXQg YW5kIG9mZnNldF9pbl9kd3ouCiAJKGR3YXJmX2RlY29kZV9saW5lcyk6IE5ldyBwYXJhbWV0ZXIg ZGVjb2RlX21hcHBpbmcsIHVzZSBpdC4KIAotSW5kZXg6IGdkYi03LjgvZ2RiL2R3YXJmMnJlYWQu YworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03Ljgub3JpZy9nZGIvZHdhcmYycmVhZC5jCi0rKysgZ2RiLTcuOC9nZGIvZHdh cmYycmVhZC5jCi1AQCAtMzEyLDYgKzMxMiw5IEBAIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUK Ky0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA1 IDIyOjQ1OjMyLjgyMzI0MDQ1MyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE1LTAxLTA1IDIyOjQ5OjM1LjI3MDMzMjY0NyArMDEwMAorQEAgLTMwOSw2 ICszMDksOSBAQCBzdHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlCiAgCiAgICAvKiBUaGUgQ1VzIHdl IHJlY2VudGx5IHJlYWQuICAqLwogICAgVkVDIChkd2FyZjJfcGVyX2N1X3B0cikgKmp1c3RfcmVh ZF9jdXM7CkBAIC0xNDgsNyArMTQ4LDcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2R3YXJmMnJlYWQu YwogIH07CiAgCiAgc3RhdGljIHN0cnVjdCBkd2FyZjJfcGVyX29iamZpbGUgKmR3YXJmMl9wZXJf b2JqZmlsZTsKLUBAIC0xMDI4LDYgKzEwMzEsMTIgQEAgdHlwZWRlZiB2b2lkIChkaWVfcmVhZGVy X2Z1bmNfZnR5cGUpIChjbworQEAgLTEwMjUsNiArMTAyOCwxMiBAQCB0eXBlZGVmIHZvaWQgKGRp ZV9yZWFkZXJfZnVuY19mdHlwZSkgKGNvCiAgICAgd2hpY2ggY29udGFpbnMgdGhlIGZvbGxvd2lu ZyBpbmZvcm1hdGlvbi4gICovCiAgc3RydWN0IGxpbmVfaGVhZGVyCiAgewpAQCAtMTYxLDI3ICsx NjEsMjcgQEAgSW5kZXg6IGdkYi03LjgvZ2RiL2R3YXJmMnJlYWQuYwogICAgdW5zaWduZWQgaW50 IHRvdGFsX2xlbmd0aDsKICAgIHVuc2lnbmVkIHNob3J0IHZlcnNpb247CiAgICB1bnNpZ25lZCBp bnQgaGVhZGVyX2xlbmd0aDsKLUBAIC0xNTE2LDcgKzE1MjUsNyBAQCBzdGF0aWMgc3RydWN0IGxp bmVfaGVhZGVyICpkd2FyZl9kZWNvZGVfCitAQCAtMTUxMyw3ICsxNTIyLDcgQEAgc3RhdGljIHN0 cnVjdCBsaW5lX2hlYWRlciAqZHdhcmZfZGVjb2RlXwogIAogIHN0YXRpYyB2b2lkIGR3YXJmX2Rl Y29kZV9saW5lcyAoc3RydWN0IGxpbmVfaGVhZGVyICosIGNvbnN0IGNoYXIgKiwKICAJCQkJc3Ry dWN0IGR3YXJmMl9jdSAqLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKiwKLS0JCQkJaW50KTsKLSsJ CQkJaW50LCBpbnQgZGVjb2RlX21hcHBpbmcpOworLQkJCQlDT1JFX0FERFIpOworKwkJCQlDT1JF X0FERFIsIGludCBkZWNvZGVfbWFwcGluZyk7CiAgCi0gc3RhdGljIHZvaWQgZHdhcmYyX3N0YXJ0 X3N1YmZpbGUgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOworIHN0 YXRpYyB2b2lkIGR3YXJmMl9zdGFydF9zdWJmaWxlIChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg Kik7CiAgCi1AQCAtMTg0OSw2ICsxODU4LDggQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19jdV9pbmNs dWRlcyAodm9pZCk7Ci0gCi0gc3RhdGljIHZvaWQgY2hlY2tfcHJvZHVjZXIgKHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KTsKK0BAIC0yMDU3LDYgKzIwNjYsOCBAQCBnZXRfc2VjdGlvbl9maWxlX25hbWUg KGNvbnN0IHN0cnVjdCBkd2FyCisgLyogUmV0dXJuIHRoZSBpZCBvZiBTRUNUSU9OLgorICAgIFJl dHVybnMgMCBpZiBTRUNUSU9OIGRvZXNuJ3QgZXhpc3QuICAqLwogIAogK3N0YXRpYyB2b2lkIGZy ZWVfbGluZV9oZWFkZXJfdm9pZHAgKHZvaWQgKmFyZyk7CiArCiAgc3RhdGljIGludAotIGF0dHJf dG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGll X2luZm8gKmRpZSwKLSAJCSAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgZHluYW1p Y19wcm9wICpwcm9wLAotQEAgLTE5MjAsNiArMTkzMSwyOSBAQCBkd2FyZjJfaW52YWxpZF9hdHRy aWJfY2xhc3NfY29tcGxhaW50IChjCi0gCSAgICAgXygiaW52YWxpZCBhdHRyaWJ1dGUgY2xhc3Mg b3IgZm9ybSBmb3IgJyVzJyBpbiAnJXMnIiksCi0gCSAgICAgYXJnMSwgYXJnMik7CisgZ2V0X3Nl Y3Rpb25faWQgKGNvbnN0IHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICpzZWN0aW9uKQorIHsK K0BAIC0yNDYxLDYgKzI0NzIsMjkgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAodm9pZCkKKyAgIGR3 YXJmMl9wZXJfb2JqZmlsZS0+ZHd6X2ZpbGUgPSByZXN1bHQ7CisgICByZXR1cm4gcmVzdWx0Owog IH0KICsKICsvKiBIYXNoIGZ1bmN0aW9uIGZvciBsaW5lX2hlYWRlcl9oYXNoLiAgKi8KQEAgLTIw NywyMCArMjA3LDIwIEBAIEluZGV4OiBnZGItNy44L2dkYi9kd2FyZjJyZWFkLmMKICt9CiArCiAg DAotICNpZiBXT1JEU19CSUdFTkRJQU4KKyAvKiBEV0FSRiBxdWlja19zeW1ib2xzX2Z1bmN0aW9u cyBzdXBwb3J0LiAgKi8KICAKLUBAIC00NDU5LDcgKzQ0OTMsNyBAQCBkd2FyZjJfYnVpbGRfaW5j bHVkZV9wc3ltdGFicyAoc3RydWN0IGR3CitAQCAtNDQ1NCw3ICs0NDg4LDcgQEAgZHdhcmYyX2J1 aWxkX2luY2x1ZGVfcHN5bXRhYnMgKHN0cnVjdCBkdwogICAgICByZXR1cm47ICAvKiBObyBsaW5l dGFibGUsIHNvIG5vIGluY2x1ZGVzLiAgKi8KICAKICAgIC8qIE5PVEU6IHBzdC0+ZGlybmFtZSBp cyBEV19BVF9jb21wX2RpciAoaWYgcHJlc2VudCkuICAqLwotLSAgZHdhcmZfZGVjb2RlX2xpbmVz IChsaCwgcHN0LT5kaXJuYW1lLCBjdSwgcHN0LCAxKTsKLSsgIGR3YXJmX2RlY29kZV9saW5lcyAo bGgsIHBzdC0+ZGlybmFtZSwgY3UsIHBzdCwgMSwgMSk7CistICBkd2FyZl9kZWNvZGVfbGluZXMg KGxoLCBwc3QtPmRpcm5hbWUsIGN1LCBwc3QsIHBzdC0+dGV4dGxvdyk7CisrICBkd2FyZl9kZWNv ZGVfbGluZXMgKGxoLCBwc3QtPmRpcm5hbWUsIGN1LCBwc3QsIHBzdC0+dGV4dGxvdywgMSk7CiAg CiAgICBmcmVlX2xpbmVfaGVhZGVyIChsaCk7CiAgfQotQEAgLTg5ODksMjQgKzkwMjMsNjQgQEAg c3RhdGljIHZvaWQKK0BAIC05MDAyLDI0ICs5MDM2LDY0IEBAIHN0YXRpYyB2b2lkCiAgaGFuZGxl X0RXX0FUX3N0bXRfbGlzdCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1LAotIAkJCWNvbnN0IGNoYXIgKmNvbXBfZGlyKSAvKiBBUkk6IGVkaXRDYXNlIGZ1bmN0aW9u ICovCisgCQkJY29uc3QgY2hhciAqY29tcF9kaXIsIENPUkVfQUREUiBsb3dwYykgLyogQVJJOiBl ZGl0Q2FzZSBmdW5jdGlvbiAqLwogIHsKICsgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlID0gZHdh cmYyX3Blcl9vYmpmaWxlLT5vYmpmaWxlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAg LTI0OSw3ICsyNDksNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvZHdhcmYycmVhZC5jCiAtCXsKIC0J ICBjdS0+bGluZV9oZWFkZXIgPSBsaW5lX2hlYWRlcjsKIC0JICBtYWtlX2NsZWFudXAgKGZyZWVf Y3VfbGluZV9oZWFkZXIsIGN1KTsKLS0JICBkd2FyZl9kZWNvZGVfbGluZXMgKGxpbmVfaGVhZGVy LCBjb21wX2RpciwgY3UsIE5VTEwsIDEpOworLQkgIGR3YXJmX2RlY29kZV9saW5lcyAobGluZV9o ZWFkZXIsIGNvbXBfZGlyLCBjdSwgTlVMTCwgbG93cGMpOwogLQl9CiArICAgICAgZHdhcmYyX3Bl cl9vYmpmaWxlLT5saW5lX2hlYWRlcl9oYXNoCiArCT0gaHRhYl9jcmVhdGVfYWxsb2NfZXggKDEy NywgbGluZV9oZWFkZXJfaGFzaCwgbGluZV9oZWFkZXJfZXEsCkBAIC0yODksMTIgKzI4OSwxMiBA QCBJbmRleDogZ2RiLTcuOC9nZGIvZHdhcmYycmVhZC5jCiArICAgICAgbWFrZV9jbGVhbnVwIChm cmVlX2N1X2xpbmVfaGVhZGVyLCBjdSk7CiAgICAgIH0KICsgIGRlY29kZV9tYXBwaW5nID0gKGRp ZS0+dGFnICE9IERXX1RBR19wYXJ0aWFsX3VuaXQpOwotKyAgZHdhcmZfZGVjb2RlX2xpbmVzIChs aW5lX2hlYWRlciwgY29tcF9kaXIsIGN1LCBOVUxMLCAxLAorKyAgZHdhcmZfZGVjb2RlX2xpbmVz IChsaW5lX2hlYWRlciwgY29tcF9kaXIsIGN1LCBOVUxMLCBsb3dwYywKICsJCSAgICAgIGRlY29k ZV9tYXBwaW5nKTsKICB9CiAgCiAgLyogUHJvY2VzcyBEV19UQUdfY29tcGlsZV91bml0IG9yIERX X1RBR19wYXJ0aWFsX3VuaXQuICAqLwotQEAgLTE2OTY5LDYgKzE3MDQzLDE2IEBAIGZyZWVfbGlu ZV9oZWFkZXIgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgKK0BAIC0xNjkxNyw2ICsxNjk5MSwxNiBA QCBmcmVlX2xpbmVfaGVhZGVyIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoCiAgICB4ZnJlZSAobGgp OwogIH0KICAKQEAgLTMxMSw3ICszMTEsNyBAQCBJbmRleDogZ2RiLTcuOC9nZGIvZHdhcmYycmVh ZC5jCiAgLyogQWRkIGFuIGVudHJ5IHRvIExIJ3MgaW5jbHVkZSBkaXJlY3RvcnkgdGFibGUuICAq LwogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTcwOTksNiArMTcxODMsOSBAQCBkd2FyZl9kZWNvZGVf bGluZV9oZWFkZXIgKHVuc2lnbmVkIGludCBvCitAQCAtMTcwNDcsNiArMTcxMzEsOSBAQCBkd2Fy Zl9kZWNvZGVfbGluZV9oZWFkZXIgKHVuc2lnbmVkIGludCBvCiAgICBiYWNrX3RvID0gbWFrZV9j bGVhbnVwICgobWFrZV9jbGVhbnVwX2Z0eXBlICopIGZyZWVfbGluZV9oZWFkZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBsaCk7CiAgCkBAIC0zMjEsMTIgKzMyMSwxMiBA QCBJbmRleDogZ2RiLTcuOC9nZGIvZHdhcmYycmVhZC5jCiAgICBsaW5lX3B0ciA9IHNlY3Rpb24t PmJ1ZmZlciArIG9mZnNldDsKICAKICAgIC8qIFJlYWQgaW4gdGhlIGhlYWRlci4gICovCi1AQCAt MTc1OTYsMTggKzE3NjgzLDIyIEBAIGR3YXJmX2RlY29kZV9saW5lc18xIChzdHJ1Y3QgbGluZV9o ZWFkZXIKLSAgICBhcyB0aGUgY29ycmVzcG9uZGluZyBzeW10YWIuICBTaW5jZSBDT01QX0RJUiBp cyBub3QgdXNlZCBpbiB0aGUgbmFtZSBvZiB0aGUKLSAgICBzeW10YWIgd2UgZG9uJ3QgdXNlIGl0 IGluIHRoZSBuYW1lIG9mIHRoZSBwc3ltdGFicyB3ZSBjcmVhdGUuCitAQCAtMTc2NzQsMTcgKzE3 NzYxLDIyIEBAIGR3YXJmX2RlY29kZV9saW5lc18xIChzdHJ1Y3QgbGluZV9oZWFkZXIKICAgICBF LmcuIGV4cGFuZF9saW5lX3NhbCByZXF1aXJlcyB0aGlzIHdoZW4gZmluZGluZyBwc3ltdGFicyB0 byBleHBhbmQuCi0tICAgQSBnb29kIHRlc3RjYXNlIGZvciB0aGlzIGlzIG1iLWlubGluZS5leHAu ICAqLwotKyAgIEEgZ29vZCB0ZXN0Y2FzZSBmb3IgdGhpcyBpcyBtYi1pbmxpbmUuZXhwLgorICAg IEEgZ29vZCB0ZXN0Y2FzZSBmb3IgdGhpcyBpcyBtYi1pbmxpbmUuZXhwLgorIAorLSAgIExPV1BD IGlzIHRoZSBsb3dlc3QgYWRkcmVzcyBpbiBDVSAob3IgMCBpZiBub3Qga25vd24pLiAgKi8KKysg ICBMT1dQQyBpcyB0aGUgbG93ZXN0IGFkZHJlc3MgaW4gQ1UgKG9yIDAgaWYgbm90IGtub3duKS4K ICsKICsgICBCb29sZWFuIERFQ09ERV9NQVBQSU5HIHNwZWNpZmllcyB3ZSBuZWVkIHRvIGZ1bGx5 IGRlY29kZSAuZGVidWdfbGluZQogKyAgIGZvciBpdHMgUEM8LT5saW5lcyBtYXBwaW5nIGluZm9y bWF0aW9uLiAgT3RoZXJ3aXNlIG9ubHkgZmlsZW5hbWVzCkBAIC0zMzUsMTUgKzMzNSwxNSBAQCBJ bmRleDogZ2RiLTcuOC9nZGIvZHdhcmYycmVhZC5jCiAgc3RhdGljIHZvaWQKICBkd2FyZl9kZWNv ZGVfbGluZXMgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIGNvbnN0IGNoYXIgKmNvbXBfZGlyLAog IAkJICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCwK LS0JCSAgICBpbnQgd2FudF9saW5lX2luZm8pCi0rCQkgICAgaW50IHdhbnRfbGluZV9pbmZvLCBp bnQgZGVjb2RlX21hcHBpbmcpCistCQkgICAgQ09SRV9BRERSIGxvd3BjKQorKwkJICAgIENPUkVf QUREUiBsb3dwYywgaW50IGRlY29kZV9tYXBwaW5nKQogIHsKICAgIHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlID0gY3UtPm9iamZpbGU7CiAgICBjb25zdCBpbnQgZGVjb2RlX2Zvcl9wc3RfcCA9IChw c3QgIT0gTlVMTCk7Ci0gICBzdHJ1Y3Qgc3ViZmlsZSAqZmlyc3Rfc3ViZmlsZSA9IGN1cnJlbnRf c3ViZmlsZTsKICAKLS0gIGlmICh3YW50X2xpbmVfaW5mbykKLSsgIGlmICh3YW50X2xpbmVfaW5m byAmJiBkZWNvZGVfbWFwcGluZykKLSAgICAgZHdhcmZfZGVjb2RlX2xpbmVzXzEgKGxoLCBjb21w X2RpciwgY3UsIHBzdCk7CistICBkd2FyZl9kZWNvZGVfbGluZXNfMSAobGgsIGN1LCBkZWNvZGVf Zm9yX3BzdF9wLCBsb3dwYyk7CisrICBpZiAoZGVjb2RlX21hcHBpbmcpCisrICAgIGR3YXJmX2Rl Y29kZV9saW5lc18xIChsaCwgY3UsIGRlY29kZV9mb3JfcHN0X3AsIGxvd3BjKTsKICAKICAgIGlm IChkZWNvZGVfZm9yX3BzdF9wKQorICAgICB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXN0YWxlLWZyYW1l X2luZm8ucGF0Y2ggYi9nZGItc3RhbGUtZnJhbWVfaW5mby5wYXRjaAppbmRleCA1OWY4ZWExLi5i YzQyZTY4IDEwMDY0NAotLS0gYS9nZGItc3RhbGUtZnJhbWVfaW5mby5wYXRjaAorKysgYi9nZGIt c3RhbGUtZnJhbWVfaW5mby5wYXRjaApAQCAtNDUsNyArNDUsNyBAQCBnZGIvCiAtICBpbmYgPSBm aW5kX2luZmVyaW9yX2Zvcl9wcm9ncmFtX3NwYWNlIChwc3BhY2UpOwogKyAgaWYgKGluZi0+cHNw YWNlICE9IHBzcGFjZSkKICsgICAgaW5mID0gZmluZF9pbmZlcmlvcl9mb3JfcHJvZ3JhbV9zcGFj ZSAocHNwYWNlKTsKLSAgIGlmIChpbmYgIT0gTlVMTCkKKyAgIGlmIChpbmYgIT0gTlVMTCAmJiBp bmYtPnBpZCAhPSAwKQogICAgICB7CiAtICAgICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKICsg ICAgICBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwLCAqY3VycmVudF90cCA9IE5VTEw7CgpkaWZmIC0t Z2l0IGEvZ2RiLXN5bWJvbHMtbG9va3VwLWFjY2VsLnBhdGNoIGIvZ2RiLXN5bWJvbHMtbG9va3Vw LWFjY2VsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTAxZDA3Li4wMDAw MDAwCi0tLSBhL2dkYi1zeW1ib2xzLWxvb2t1cC1hY2NlbC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDE5MSArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAx NC0xMC9tc2cwMDUyNC5odG1sCi1TdWJqZWN0OiBbcGF0Y2ggMS8yXSBBY2NlbGVyYXRlIGl0ZXJf bWF0Y2hfZmlyc3RfaGFzaGVkIDEuOHgKLQotCi0tLTE3cEVIZDRSaFBIT2luWnAKLUNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjog aW5saW5lCi0KLUhpLAotCi12ZXJ5IHNpbXBsZSBjYWNoaW5nLiAgZGljdF9oYXNoKCkgaXMgYmVp bmcgY2FsbGVkIGFnYWluIGFuZCBhZ2FpbiBmb3IgdGhlIHNhbWUKLXN0cmluZy4KLQotIzAgIGlu IHNraXBfc3BhY2VzX2NvbnN0IChjaHA9MHg3ZmZmYjEwZjliYjYgInRzPGNoYXI+LCBzdGQ6OmFs bG9jYXRvcjxjaGFyPiA+OjpucG9zIikgYXQgLi9jbGkvY2xpLXV0aWxzLmM6MjQ0Ci0jMSAgaW4g bXN5bWJvbF9oYXNoX2l3IChzdHJpbmc9MHg3ZmZmYjEwZjliYjYgInRzPGNoYXI+LCBzdGQ6OmFs bG9jYXRvcjxjaGFyPiA+OjpucG9zIikgYXQgbWluc3ltcy5jOjg5Ci0jMiAgaW4gZGljdF9oYXNo ICggc3RyaW5nMD0weDdmZmZiMTBmOWI5MCAic3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpj aGFyX3RyYWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bnBvcyIpIGF0IGRpY3Rp b25hcnkuYzo4NDAKLSMzICBpbiBpdGVyX21hdGNoX2ZpcnN0X2hhc2hlZCAoZGljdD0weDEwNWE3 ODQwLCBuYW1lPTB4N2ZmZmIxMGY5YjkwICJzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNo YXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+OjpucG9zIiwgY29tcGFyZT0w eDhiODJmOCA8c3RyY21wX2l3PiwgaXRlcmF0b3I9MHg3ZmZmYjEwZjk5NzApIGF0IGRpY3Rpb25h cnkuYzo2NTkKLSM0ICBpbiBkaWN0X2l0ZXJfbWF0Y2hfZmlyc3QgKGRpY3Q9MHgxMDVhNzg0MCwg bmFtZT0weDdmZmZiMTBmOWI5MCAic3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3Ry YWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bnBvcyIsIGNvbXBhcmU9MHg4Yjgy ZjggPHN0cmNtcF9pdz4sIGl0ZXJhdG9yPTB4N2ZmZmIxMGY5OTcwKSBhdCBkaWN0aW9uYXJ5LmM6 NTU1Ci0jNSAgaW4gZGljdF9pdGVyX25hbWVfZmlyc3QgKGRpY3Q9MHgxMDVhNzg0MCwgbmFtZT0w eDdmZmZiMTBmOWI5MCAic3RkOjpiYXNpY19zdHJpbmc8Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxj aGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bnBvcyIsIGl0ZXJhdG9yPTB4N2ZmZmIxMGY5 OTcwKSBhdCBkaWN0aW9uYXJ5LmM6NTQxCi0jNiAgaW4gYmxvY2tfaXRlcl9uYW1lX3N0ZXAgKGl0 ZXJhdG9yPTB4N2ZmZmIxMGY5OTYwLCBuYW1lPTB4N2ZmZmIxMGY5YjkwICJzdGQ6OmJhc2ljX3N0 cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6OmFsbG9jYXRvcjxjaGFyPiA+ OjpucG9zIiwgZmlyc3Q9MSkgYXQgYmxvY2suYzo1ODAKLSM3ICBpbiBibG9ja19pdGVyX25hbWVf Zmlyc3QgKGJsb2NrPTB4MTA1OTNlMTAsIG5hbWU9MHg3ZmZmYjEwZjliOTAgInN0ZDo6YmFzaWNf c3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ ID46Om5wb3MiLCBpdGVyYXRvcj0weDdmZmZiMTBmOTk2MCkgYXQgYmxvY2suYzo2MDkKLSM4ICBp biBsb29rdXBfYmxvY2tfc3ltYm9sIChibG9jaz0weDEwNTkzZTEwLCBuYW1lPTB4N2ZmZmIxMGY5 YjkwICJzdGQ6OmJhc2ljX3N0cmluZzxjaGFyLCBzdGQ6OmNoYXJfdHJhaXRzPGNoYXI+LCBzdGQ6 OmFsbG9jYXRvcjxjaGFyPiA+OjpucG9zIiwgZG9tYWluPVZBUl9ET01BSU4pIGF0IHN5bXRhYi5j OjIwNjIKLSM5ICBpbiBsb29rdXBfc3ltYm9sX2F1eF9vYmpmaWxlIChvYmpmaWxlPTB4NDY2Zjg3 MCwgYmxvY2tfaW5kZXg9MCwgbmFtZT0weDdmZmZiMTBmOWI5MCAic3RkOjpiYXNpY19zdHJpbmc8 Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiwgc3RkOjphbGxvY2F0b3I8Y2hhcj4gPjo6bnBv cyIsIGRvbWFpbj1WQVJfRE9NQUlOKSBhdCBzeW10YWIuYzoxNjY0Ci0jMTAgaW4gbG9va3VwX3N5 bWJvbF9nbG9iYWxfaXRlcmF0b3JfY2IgKG9iamZpbGU9MHg0NjZmODcwLCBjYl9kYXRhPTB4N2Zm ZmIxMGY5YWQwKSBhdCBzeW10YWIuYzoxODY4Ci0KLQotTWF5YmUgaXQgY291bGQgZ2V0IGNhY2hl ZCBhdCB0aGUgY2FsbGVyIGJ1dDoKLSAqIFdlIHdvdWxkIG5lZWQgdG8gcGFzcyB0aGUgaGFzaCB2 YWx1ZSBhbG9uZyB0aGUgd2hvbGUge2RpY3QsYmxvY2t9X2l0ZXJfKgotICAgY2FsbCBjaGFpbi4K LSAqIFRoZSBESUNUX1ZFQ1RPUiB2aXJ0dWFsaXphdGlvbiB3b3VsZCBnZXQgdmlvbGF0ZWQgYXMg ZGljdF9saW5lYXIqX3ZlY3RvciBkbwotICAgbm90IHVzZSBhbnkgaGFzaCB2YWx1ZXMuCi0KLQot SmFuCi0KLS0tMTdwRUhkNFJoUEhPaW5acAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy c2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPSJpZHhj YWNoZTEucGF0Y2giCi0KLWdkYi8KLTIwMTQtMTAtMjAgIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogZGljdGlvbmFyeS5jIChpdGVyX21hdGNoX2ZpcnN0 X2hhc2hlZCk6IFByb3ZpZGUgc3RhdGUgY2FjaGUgZm9yCi0JaGFzaF9pbmRleCBmcm9tIE5BTUUu Ci0KLWRpZmYgLS1naXQgYS9nZGIvZGljdGlvbmFyeS5jIGIvZ2RiL2RpY3Rpb25hcnkuYwotaW5k ZXggMDU1Yzg3ZS4uOTBiY2Q2ZCAxMDA2NDQKLS0tLSBhL2dkYi9kaWN0aW9uYXJ5LmMKLSsrKyBi L2dkYi9kaWN0aW9uYXJ5LmMKLUBAIC02NTYsOSArNjU2LDI2IEBAIGl0ZXJfbWF0Y2hfZmlyc3Rf aGFzaGVkIChjb25zdCBzdHJ1Y3QgZGljdGlvbmFyeSAqZGljdCwgY29uc3QgY2hhciAqbmFtZSwK LSAJCQkgc3ltYm9sX2NvbXBhcmVfZnR5cGUgKmNvbXBhcmUsCi0gCQkJIHN0cnVjdCBkaWN0X2l0 ZXJhdG9yICppdGVyYXRvcikKLSB7Ci0tICB1bnNpZ25lZCBpbnQgaGFzaF9pbmRleCA9IGRpY3Rf aGFzaCAobmFtZSkgJSBESUNUX0hBU0hFRF9OQlVDS0VUUyAoZGljdCk7Ci0rICB1bnNpZ25lZCBp bnQgaGFzaF9pbmRleDsKLSAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKLSAKLSsgIC8qIENhY2hlIEhB U0hfSU5ERVguICAqLwotKyAgewotKyAgICBzdGF0aWMgY29uc3QgY2hhciAqbmFtZV9wdHJfY2Fj aGVkOwotKyAgICBzdGF0aWMgY2hhciAqbmFtZV9jb250ZW50X2NhY2hlZDsKLSsgICAgc3RhdGlj IHVuc2lnbmVkIGludCBkaWN0X2hhc2hfY2FjaGVkOwotKwotKyAgICBpZiAobmFtZV9wdHJfY2Fj aGVkICE9IG5hbWUgfHwgc3RyY21wIChuYW1lX2NvbnRlbnRfY2FjaGVkLCBuYW1lKSAhPSAwKQot KyAgICAgIHsKLSsJZGljdF9oYXNoX2NhY2hlZCA9IGRpY3RfaGFzaCAobmFtZSk7Ci0rCW5hbWVf cHRyX2NhY2hlZCA9IG5hbWU7Ci0rCXhmcmVlIChuYW1lX2NvbnRlbnRfY2FjaGVkKTsKLSsJbmFt ZV9jb250ZW50X2NhY2hlZCA9IHhzdHJkdXAgKG5hbWUpOwotKyAgICAgIH0KLSsgICAgaGFzaF9p bmRleCA9IGRpY3RfaGFzaF9jYWNoZWQ7Ci0rICB9Ci0rICBoYXNoX2luZGV4ICU9IERJQ1RfSEFT SEVEX05CVUNLRVRTIChkaWN0KTsKLSsKLSAgIERJQ1RfSVRFUkFUT1JfRElDVCAoaXRlcmF0b3Ip ID0gZGljdDsKLSAKLSAgIC8qIExvb3AgdGhyb3VnaCB0aGUgc3ltYm9scyBpbiB0aGUgZ2l2ZW4g YnVja2V0LCBicmVha2luZyB3aGVuIFNZTQotCi0tLTE3cEVIZDRSaFBIT2luWnAtLQotCi0KLQot aHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMTAvbXNnMDA2MTIuaHRt bAotU3ViamVjdDogW3BhdGNodjIgMi8yXSBBY2NlbGVyYXRlIGxvb2t1cF9zeW1ib2xfYXV4X29i amZpbGUgMTQuNXggIFtSZTogW3BhdGNoIDAvMl0gQWNjZWxlcmF0ZSBzeW1ib2wgbG9va3VwcyAx NXhdCi0KLQotLS12dHpHaHZpemJCUlE4NURMCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9dXMtYXNjaWkKLUNvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQotCi1PbiBXZWQsIDIy IE9jdCAyMDE0IDEwOjU1OjE4ICswMjAwLCBEb3VnIEV2YW5zIHdyb3RlOgotPiBGb3IgZXhhbXBs ZSwgdGhlIGNvdW50IG9mIGNhbGxzIHRvIGRpY3RfaGFzaCBiZWZvcmUvYWZ0ZXIgZ29lcyBmcm9t IDEzLjhNIHRvIDMxLgotPiBJJ20gZ3Vlc3Npbmcgb25lIHQgaGluZyB3ZSdyZSBkb2luZyBoZXJl IGlzIGNvcGluZyB3aXRoIGFuIGFydGlmYWN0IG9mCi0+IGR3ejoKLQotRHVyaW5nIG15IHNpbXBs ZSB0ZXN0IG9uIG5vbi1EV1ogZmlsZSAoLi9nZGIgaXRzZWxmKSBpdCB3ZW50IDM2ODQtPjM0ODQu Ci0KLVRoZSBwcm9ibGVtIGlzIHRoYXQgZGljdF9jYXNoKHZhbCkgaXMgY2FsbGVkIGZvciB0aGUg c2FtZSB2YWwgZm9yIGVhY2ggYmxvY2sKLSg9PSBzeW10YWIpLgotCi1PbiBEV1ogdGhlIHNhdmlu ZyBpcyBwcm9iYWJseSBtdWNoIGxhcmdlciBhcyB0aGVyZSBhcmUgbWFueSBtb3JlIHN5bXRhYnMg ZHVlCi10byBEV19UQUdfcGFydGlhbF91bml0IG9uZXMuCi0KLQotPiB3aGF0IHdhcyBvbmNlIG9u ZSBnbG9iYWwgYmxvY2sgdG8gcmVwcmVzZW50IHRoZSBlbnRpcmUgb2JqZmlsZSBpcwotPiBub3cg Ti4KLQotV2l0aG91dCBEV1ogdGhlcmUgYXJlIFggZ2xvYmFsIGJsb2NrcyBmb3IgWCBwcmltYXJ5 IHN5bXRhYnMgZm9yIFggQ1VzIG9mCi1vYmpmaWxlLiAgV2l0aCBEV1ogdGhlcmUgYXJlIFgrWSBn bG9iYWwgYmxvY2tzIGZvciBYK1kgcHJpbWFyeSBzeW10YWJzIGZvcgotWCtZIENVcyB3aGVyZSBZ IGFyZSAnRFdfVEFHX3BhcnRpYWxfdW5pdCdzLgotCi1Gb3IgJ0RXX1RBR19wYXJ0aWFsX3VuaXQn cyAoWXMpIHRoZWlyIGJsb2NrdmVjdG9yIGlzIHVzdWFsbHkgZW1wdHkuICBCdXQgbm90Ci1hbHdh eXMsIEkgaGF2ZSBmb3VuZCB0aGVyZSB0eXBlZGVmIHN5bWJvbHMsIHRoZXJlIGNhbiBJTU8gYmUg b3B0aW1pemVkLW91dAotc3RhdGljIHZhcmlhYmxlcyBldGMuCi0KLQotPiBbSSdtIHN1cmUgdGhl IHBhdGNoZXMgaGVscCBpbiB0aGUgbm9uLWR3eiBjYXNlLCBidXQgSSBzdXNwZWN0IGl0J3MgbGVz cy4KLT4gV2hpY2ggaXNuJ3QgdG8gc2F5IHRoZSBwYXRjaGVzIGFyZW4ndCB1c2VmdWwuCi0+IEkg anVzdCBuZWVkIHBsYXkgd2l0aCBhIGZldyBtb3JlIGV4YW1wbGVzLl0KLQotSSBhZ3JlZS4KLQot W3BhdGNoIDIvMl0gY291bGQgbmVlZGxlc3NseSBwZXJmb3JtYW5jZS1yZWdyZXNzIG5vbi1EV1og Y2FzZXMsIHRoZXJlZm9yZQotSSBoYXZlIHB1dCBiYWNrIG9yaWdpbmFsIEFMTF9PQkpGSUxFX1BS SU1BUllfU1lNVEFCUyAoaW5zdGVhZCBvZiBteQotQUxMX09CSkZJTEVfU1lNVEFCUykgYXMgaXQg aXMgcGVyZmVjdGx5IHN1ZmZpY2llbnQuICBGb3IgdGhlIHBlcmZvcm1hbmNlCi10ZXN0Y2FzZSBv ZiBtaW5lOgotCi1CZW5jaG1hcmsgb24gbm9uLXRyaXZpYWwgYXBwbGljYXRpb24gd2l0aCAgICAn cCA8dGFiPjx0YWI+JzoKLUNvbW1hbmQgZXhlY3V0aW9uIHRpbWU6ICAgNC4yMTUwMDAgKGNwdSks ICAgNC4yNDE0NjYgKHdhbGwpIC0tLSBib3RoIGZpeGVzIHdpdGggbmV3IFtwYXRjaCAyLzJdCi1D b21tYW5kIGV4ZWN1dGlvbiB0aW1lOiAgIDcuMzczMDAwIChjcHUpLCAgIDcuMzk1MDk1ICh3YWxs KSAtLS0gYm90aCBmaXhlcwotQ29tbWFuZCBleGVjdXRpb24gdGltZTogIDEzLjU3MjAwMCAoY3B1 KSwgIDEzLjU5MjY4OSAod2FsbCkgLS0tIGp1c3QgbG9va3VwX3N5bWJvbF9hdXhfb2JqZmlsZSBm aXgKLUNvbW1hbmQgZXhlY3V0aW9uIHRpbWU6IDExMy4wMzYwMDAgKGNwdSksIDExMy4wNjc5OTUg KHdhbGwpIC0tLSBGU0YgR0RCIEhFQUQKLQotVGhhdCBpcyBhZGRpdGlvbmFsIDEuNzV4IGltcHJv dmVtZW50LCBtYWtpbmcgdGhlIHRvdGFsIGltcHJvdmVtZW50IDI2Ljh4LgotCi0KLU5vIHJlZ3Jl c3Npb25zIG9uIHt4ODZfNjQseDg2XzY0LW0zMixpNjg2fS1mZWRvcmEyMXByZS1saW51eC1nbnUg aW4gc3RhbmRhcmQKLWFuZCAuZ2RiX2luZGV4LWVuYWJsZWQgcnVucy4gIE5laXRoZXIgb2YgdGhl IHBhdGNoZXMgc2hvdWxkIGNhdXNlIGFueSB2aXNpYmxlCi1iZWhhdmlvciBjaGFuZ2UuCi0KLQot VGhhbmtzLAotSmFuCi0KLS0tdnR6R2h2aXpiQlJRODVETAotQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVu YW1lPSJpZHhjYWNoZTJkb3VnLnBhdGNoIgotCi1nZGIvCi0yMDE0LTEwLTIzICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQkqIHN5bXRhYi5jIChsb29rdXBf c3ltYm9sX2F1eF9vYmpmaWxlKTogVXNlIEFMTF9PQkpGSUxFX1NZTVRBQlMsIGlubGluZQotCWxv b2t1cF9ibG9ja19zeW1ib2wuCi0KLWRpZmYgLS1naXQgYS9nZGIvc3ltdGFiLmMgYi9nZGIvc3lt dGFiLmMKLWluZGV4IGM1MzBkNTAuLmRhMTM4NjEgMTAwNjQ0Ci0tLS0gYS9nZGIvc3ltdGFiLmMK LSsrKyBiL2dkYi9zeW10YWIuYwotQEAgLTE2NTcsMTUgKzE2NTcsMjUgQEAgbG9va3VwX3N5bWJv bF9hdXhfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCBibG9ja19pbmRleCwK LSAgIGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2s7Ci0gICBzdHJ1Y3Qgc3ltdGFiICpzOwotIAot KyAgZ2RiX2Fzc2VydCAoYmxvY2tfaW5kZXggPT0gR0xPQkFMX0JMT0NLIHx8IGJsb2NrX2luZGV4 ID09IFNUQVRJQ19CTE9DSyk7Ci0rCi0gICBBTExfT0JKRklMRV9QUklNQVJZX1NZTVRBQlMgKG9i amZpbGUsIHMpCi0gICAgIHsKLSsgICAgICBzdHJ1Y3QgZGljdF9pdGVyYXRvciBkaWN0X2l0ZXI7 Ci0rCi0gICAgICAgYnYgPSBCTE9DS1ZFQ1RPUiAocyk7Ci0gICAgICAgYmxvY2sgPSBCTE9DS1ZF Q1RPUl9CTE9DSyAoYnYsIGJsb2NrX2luZGV4KTsKLS0gICAgICBzeW0gPSBsb29rdXBfYmxvY2tf c3ltYm9sIChibG9jaywgbmFtZSwgZG9tYWluKTsKLS0gICAgICBpZiAoc3ltKQotKwotKyAgICAg IGZvciAoc3ltID0gZGljdF9pdGVyX25hbWVfZmlyc3QgKGJsb2NrLT5kaWN0LCBuYW1lLCAmZGlj dF9pdGVyKTsKLSsJICAgc3ltICE9IE5VTEw7Ci0rCSAgIHN5bSA9IGRpY3RfaXRlcl9uYW1lX25l eHQgKG5hbWUsICZkaWN0X2l0ZXIpKQotIAl7Ci0tCSAgYmxvY2tfZm91bmQgPSBibG9jazsKLS0J ICByZXR1cm4gZml4dXBfc3ltYm9sX3NlY3Rpb24gKHN5bSwgb2JqZmlsZSk7Ci0rCSAgaWYgKHN5 bWJvbF9tYXRjaGVzX2RvbWFpbiAoU1lNQk9MX0xBTkdVQUdFIChzeW0pLAotKwkJCQkgICAgIFNZ TUJPTF9ET01BSU4gKHN5bSksIGRvbWFpbikpCi0rCSAgICB7Ci0rCSAgICAgIGJsb2NrX2ZvdW5k ID0gYmxvY2s7Ci0rCSAgICAgIHJldHVybiBmaXh1cF9zeW1ib2xfc2VjdGlvbiAoc3ltLCBvYmpm aWxlKTsKLSsJICAgIH0KLSAJfQotICAgICB9Ci0gCi0KLS0tdnR6R2h2aXpiQlJRODVETC0tCi0K CmRpZmYgLS1naXQgYS9nZGItdGVraGV4LXJlZ3Jlc3Npb24tcmV2ZXJ0LnBhdGNoIGIvZ2RiLXRl a2hleC1yZWdyZXNzaW9uLXJldmVydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42ODM3NzVmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXRla2hleC1yZWdyZXNzaW9u LXJldmVydC5wYXRjaApAQCAtMCwwICsxLDE1MSBAQAorLVIgZm9yIDg1ODgwMjUwZTU5MWE1MTYy NGQyNGRiNjUzYWFhY2UwYzVjZTU5NDMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0L2dpdHdl Yi5jZ2k/cD1iaW51dGlscy1nZGIuZ2l0O2E9Y29tbWl0ZGlmZjtoPTg1ODgwMjUwZTU5MWE1MTYy NGQyNGRiNjUzYWFhY2UwYzVjZTU5NDM7aHA9ZmNlMTBhODQ5NGVmYThmYWVjCisKK1tidWlsZGJv dF0gR0RCIHJlZ3Jlc3Npb24gb24gODU4ODAyNTBlNTkxYTUxNjI0ZDI0ZGI2NTNhYWFjZTBjNWNl NTk0MworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9iaW51dGlscy8yMDE1LTAxL21zZzAwMDQ0 Lmh0bWwKKworZGlmZiAtLWdpdCBhL2JmZC9jb2ZmLWk4NjAuYyBiL2JmZC9jb2ZmLWk4NjAuYwor aW5kZXggODU3M2E4ZC4uMjEyMmMwZCAxMDA2NDQKKy0tLSBhL2JmZC9jb2ZmLWk4NjAuYworKysr IGIvYmZkL2NvZmYtaTg2MC5jCitAQCAtNDY3LDEwICs0NjcsNyBAQCBzdGF0aWMgcmVsb2NfaG93 dG9fdHlwZSBob3d0b190YWJsZVtdID0KKyAgICBGSVhNRTogVGhpcyBtYWNybyByZWZlcnMgdG8g c3ltYm9scyBhbmQgYXNlY3Q7IHRoZXNlIGFyZSBmcm9tIHRoZQorICAgIGNhbGxpbmcgZnVuY3Rp b24sIG5vdCB0aGUgbWFjcm8gYXJndW1lbnRzLiAgKi8KKyAKKy0vKiBQUiAxNzUxMjogZmlsZTog MGEzOGZiN2MKKy0gICBTZXQgYW4gYWRkZW5kIHZhbHVlLCBldmVuIGlmIGl0IGlzIG5vdCBnb2lu ZyB0byBiZSB1c2VkLiAgQSB0b29sCistICAgbGlrZSBjb2ZmZHVtcCBtaWdodCBiZSB1c2VkIHRv IHByaW50IG91dCB0aGUgY29udGVudHMgb2YgdGhlIHJlbG9jLiAgKi8KKy0jZGVmaW5lIENBTENf QURERU5EKGFiZmQsIHB0ciwgcmVsb2MsIGNhY2hlX3B0cikgKGNhY2hlX3B0ciktPmFkZGVuZCA9 IDAKKysjZGVmaW5lIENBTENfQURERU5EKGFiZmQsIHB0ciwgcmVsb2MsIGNhY2hlX3B0cikKKyAK KyAvKiBXZSB1c2UgdGhlIHNwZWNpYWwgQ09GRiBiYWNrZW5kIGxpbmtlci4gICovCisgI2RlZmlu ZSBjb2ZmX3JlbG9jYXRlX3NlY3Rpb24gX2JmZF9jb2ZmX2dlbmVyaWNfcmVsb2NhdGVfc2VjdGlv bgorZGlmZiAtLWdpdCBhL2JmZC90ZWtoZXguYyBiL2JmZC90ZWtoZXguYworaW5kZXggOTQ0NDEx Ny4uOTY5YjgxMiAxMDA2NDQKKy0tLSBhL2JmZC90ZWtoZXguYworKysrIGIvYmZkL3Rla2hleC5j CitAQCAtMjY3LDcgKzI2Nyw3IEBAIHR5cGVkZWYgc3RydWN0IHRla2hleF9kYXRhX3N0cnVjdAor ICNkZWZpbmUgZW5kYSh4KSAoeC0+dm1hICsgeC0+c2l6ZSkKKyAKKyBzdGF0aWMgYmZkX2Jvb2xl YW4KKy1nZXR2YWx1ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCwgY2hhciAqIGVuZHAp CisrZ2V0dmFsdWUgKGNoYXIgKipzcmNwLCBiZmRfdm1hICp2YWx1ZXApCisgeworICAgY2hhciAq c3JjID0gKnNyY3A7CisgICBiZmRfdm1hIHZhbHVlID0gMDsKK0BAIC0yNzksNyArMjc5LDcgQEAg Z2V0dmFsdWUgKGNoYXIgKipzcmNwLCBiZmRfdm1hICp2YWx1ZXAsIGNoYXIgKiBlbmRwKQorICAg bGVuID0gaGV4X3ZhbHVlICgqc3JjKyspOworICAgaWYgKGxlbiA9PSAwKQorICAgICBsZW4gPSAx NjsKKy0gIHdoaWxlIChsZW4tLSAmJiBzcmMgPCBlbmRwKQorKyAgd2hpbGUgKGxlbi0tKQorICAg ICB7CisgICAgICAgaWYgKCFJU0hFWCAoKnNyYykpCisgCXJldHVybiBGQUxTRTsKK0BAIC0yODgs MTEgKzI4OCwxMSBAQCBnZXR2YWx1ZSAoY2hhciAqKnNyY3AsIGJmZF92bWEgKnZhbHVlcCwgY2hh ciAqIGVuZHApCisgCisgICAqc3JjcCA9IHNyYzsKKyAgICp2YWx1ZXAgPSB2YWx1ZTsKKy0gIHJl dHVybiBsZW4gPT0gMDsKKysgIHJldHVybiBUUlVFOworIH0KKyAKKyBzdGF0aWMgYmZkX2Jvb2xl YW4KKy1nZXRzeW0gKGNoYXIgKmRzdHAsIGNoYXIgKipzcmNwLCB1bnNpZ25lZCBpbnQgKmxlbnAs IGNoYXIgKiBlbmRwKQorK2dldHN5bSAoY2hhciAqZHN0cCwgY2hhciAqKnNyY3AsIHVuc2lnbmVk IGludCAqbGVucCkKKyB7CisgICBjaGFyICpzcmMgPSAqc3JjcDsKKyAgIHVuc2lnbmVkIGludCBp OworQEAgLTMwNCw3ICszMDQsNyBAQCBnZXRzeW0gKGNoYXIgKmRzdHAsIGNoYXIgKipzcmNwLCB1 bnNpZ25lZCBpbnQgKmxlbnAsIGNoYXIgKiBlbmRwKQorICAgbGVuID0gaGV4X3ZhbHVlICgqc3Jj KyspOworICAgaWYgKGxlbiA9PSAwKQorICAgICBsZW4gPSAxNjsKKy0gIGZvciAoaSA9IDA7IGkg PCBsZW4gJiYgc3JjIDwgZW5kcDsgaSsrKQorKyAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQor ICAgICBkc3RwW2ldID0gc3JjW2ldOworICAgZHN0cFtpXSA9IDA7CisgICAqc3JjcCA9IHNyYyAr IGk7CitAQCAtMzU0LDcgKzM1NCw3IEBAIGluc2VydF9ieXRlIChiZmQgKmFiZmQsIGludCB2YWx1 ZSwgYmZkX3ZtYSBhZGRyKQorICAgaG93IGJpZyB0aGUgZGF0YSBpcy4gICovCisgCisgc3RhdGlj IGJmZF9ib29sZWFuCistZmlyc3RfcGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNoYXIgKnNy YywgY2hhciAqIHNyY19lbmQpCisrZmlyc3RfcGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNo YXIgKnNyYykKKyB7CisgICBhc2VjdGlvbiAqc2VjdGlvbiwgKmFsdF9zZWN0aW9uOworICAgdW5z aWduZWQgaW50IGxlbjsKK0BAIC0zNjgsMjEgKzM2OCwyMSBAQCBmaXJzdF9waGFzZSAoYmZkICph YmZkLCBpbnQgdHlwZSwgY2hhciAqc3JjLCBjaGFyICogc3JjX2VuZCkKKyAgICAgICB7CisgCWJm ZF92bWEgYWRkcjsKKyAKKy0JaWYgKCFnZXR2YWx1ZSAoJnNyYywgJmFkZHIsIHNyY19lbmQpKQor KwlpZiAoIWdldHZhbHVlICgmc3JjLCAmYWRkcikpCisgCSAgcmV0dXJuIEZBTFNFOworIAorLQl3 aGlsZSAoKnNyYyAmJiBzcmMgPCBzcmNfZW5kIC0gMSkKKysJd2hpbGUgKCpzcmMpCisgCSAgewor IAkgICAgaW5zZXJ0X2J5dGUgKGFiZmQsIEhFWCAoc3JjKSwgYWRkcik7CisgCSAgICBzcmMgKz0g MjsKKyAJICAgIGFkZHIrKzsKKyAJICB9CistCXJldHVybiBUUlVFOworICAgICAgIH0KKyAKKysg ICAgICByZXR1cm4gVFJVRTsKKyAgICAgY2FzZSAnMyc6CisgICAgICAgLyogU3ltYm9sIHJlY29y ZCwgcmVhZCB0aGUgc2VnbWVudC4gICovCistICAgICAgaWYgKCFnZXRzeW0gKHN5bSwgJnNyYywg Jmxlbiwgc3JjX2VuZCkpCisrICAgICAgaWYgKCFnZXRzeW0gKHN5bSwgJnNyYywgJmxlbikpCisg CXJldHVybiBGQUxTRTsKKyAgICAgICBzZWN0aW9uID0gYmZkX2dldF9zZWN0aW9uX2J5X25hbWUg KGFiZmQsIHN5bSk7CisgICAgICAgaWYgKHNlY3Rpb24gPT0gTlVMTCkKK0BAIC00MDMsOSArNDAz LDkgQEAgZmlyc3RfcGhhc2UgKGJmZCAqYWJmZCwgaW50IHR5cGUsIGNoYXIgKnNyYywgY2hhciAq IHNyY19lbmQpCisgCSAgICB7CisgCSAgICBjYXNlICcxJzoJCS8qIFNlY3Rpb24gcmFuZ2UuICAq LworIAkgICAgICBzcmMrKzsKKy0JICAgICAgaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnNlY3Rpb24t PnZtYSwgc3JjX2VuZCkpCisrCSAgICAgIGlmICghZ2V0dmFsdWUgKCZzcmMsICZzZWN0aW9uLT52 bWEpKQorIAkJcmV0dXJuIEZBTFNFOworLQkgICAgICBpZiAoIWdldHZhbHVlICgmc3JjLCAmdmFs LCBzcmNfZW5kKSkKKysJICAgICAgaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnZhbCkpCisgCQlyZXR1 cm4gRkFMU0U7CisgCSAgICAgIHNlY3Rpb24tPnNpemUgPSB2YWwgLSBzZWN0aW9uLT52bWE7Cisg CSAgICAgIHNlY3Rpb24tPmZsYWdzID0gU0VDX0hBU19DT05URU5UUyB8IFNFQ19MT0FEIHwgU0VD X0FMTE9DOworQEAgLTQzMiw3ICs0MzIsNyBAQCBmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQg dHlwZSwgY2hhciAqc3JjLCBjaGFyICogc3JjX2VuZCkKKyAJCWFiZmQtPmZsYWdzIHw9IEhBU19T WU1TOworIAkJbmV3X3N5bWJvbC0+cHJldiA9IGFiZmQtPnRkYXRhLnRla2hleF9kYXRhLT5zeW1i b2xzOworIAkJYWJmZC0+dGRhdGEudGVraGV4X2RhdGEtPnN5bWJvbHMgPSBuZXdfc3ltYm9sOwor LQkJaWYgKCFnZXRzeW0gKHN5bSwgJnNyYywgJmxlbiwgc3JjX2VuZCkpCisrCQlpZiAoIWdldHN5 bSAoc3ltLCAmc3JjLCAmbGVuKSkKKyAJCSAgcmV0dXJuIEZBTFNFOworIAkJbmV3X3N5bWJvbC0+ c3ltYm9sLm5hbWUgPSAoY29uc3QgY2hhciAqKQorICAgICAgICAgICAgICAgICAgICAgYmZkX2Fs bG9jIChhYmZkLCAoYmZkX3NpemVfdHlwZSkgbGVuICsgMSk7CitAQCAtNDgwLDcgKzQ4MCw3IEBA IGZpcnN0X3BoYXNlIChiZmQgKmFiZmQsIGludCB0eXBlLCBjaGFyICpzcmMsIGNoYXIgKiBzcmNf ZW5kKQorIAkJCW5ld19zeW1ib2wtPnN5bWJvbC5zZWN0aW9uID0gYWx0X3NlY3Rpb247CisgCQkg ICAgICB9CisgCQkgIH0KKy0JCWlmICghZ2V0dmFsdWUgKCZzcmMsICZ2YWwsIHNyY19lbmQpKQor KwkJaWYgKCFnZXR2YWx1ZSAoJnNyYywgJnZhbCkpCisgCQkgIHJldHVybiBGQUxTRTsKKyAJCW5l d19zeW1ib2wtPnN5bWJvbC52YWx1ZSA9IHZhbCAtIHNlY3Rpb24tPnZtYTsKKyAJCWJyZWFrOwor QEAgLTQ5OCw3ICs0OTgsNyBAQCBmaXJzdF9waGFzZSAoYmZkICphYmZkLCBpbnQgdHlwZSwgY2hh ciAqc3JjLCBjaGFyICogc3JjX2VuZCkKKyAgICByZWNvcmQuICAqLworIAorIHN0YXRpYyBiZmRf Ym9vbGVhbgorLXBhc3Nfb3ZlciAoYmZkICphYmZkLCBiZmRfYm9vbGVhbiAoKmZ1bmMpIChiZmQg KiwgaW50LCBjaGFyICosIGNoYXIgKikpCisrcGFzc19vdmVyIChiZmQgKmFiZmQsIGJmZF9ib29s ZWFuICgqZnVuYykgKGJmZCAqLCBpbnQsIGNoYXIgKikpCisgeworICAgdW5zaWduZWQgaW50IGNo YXJzX29uX2xpbmU7CisgICBiZmRfYm9vbGVhbiBpc19lb2YgPSBGQUxTRTsKK0BAIC01MzksNyAr NTM5LDggQEAgcGFzc19vdmVyIChiZmQgKmFiZmQsIGJmZF9ib29sZWFuICgqZnVuYykgKGJmZCAq LCBpbnQsIGNoYXIgKiwgY2hhciAqKSkKKyAKKyAgICAgICAvKiBQdXQgYSBudWxsIGF0IHRoZSBl bmQuICAqLworICAgICAgIHNyY1tjaGFyc19vbl9saW5lXSA9IDA7CistICAgICAgaWYgKCFmdW5j IChhYmZkLCB0eXBlLCBzcmMsIHNyYyArIGNoYXJzX29uX2xpbmUpKQorKworKyAgICAgIGlmICgh ZnVuYyAoYWJmZCwgdHlwZSwgc3JjKSkKKyAJcmV0dXJuIEZBTFNFOworICAgICB9CisgCgpkaWZm IC0tZ2l0IGEvZ2RiLXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjhmZTdhLi4wMDAwMDAwCi0tLSBhL2dkYi11cHN0cmVh bS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJl Lm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE0LTA3L21zZzAwMjc0Lmh0bWwKLVN1YmplY3Q6IFtvYnZd IEZpeCBmYWxzZSBhcmd2MC1zeW1saW5rLmV4cCBGQUlMIHJ1bm5pbmcgdW5kZXIgYSB2ZXJ5IGxv bmcgZGlyZWN0b3J5IG5hbWUKLQotSGksCi0KLWNoZWNrZWQgaW4gYXMgb2J2aW91czoKLQotU3Rh cnRpbmcgcHJvZ3JhbTogL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi10ZXN0LWZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLWZpbGVsaW5rIF5NCi1bLi4uXQotKGdkYikgcHJp bnQgYXJndlswXV5NCi0kMSA9IDB4N2ZmZmZmZmZkYTM5ICIvaG9tZS9qa3JhdG9jaC9yZWRoYXQv Z2RiLXRlc3QtIiwgJ2YnIDxyZXBlYXRzIDE2OSB0aW1lcz4uLi5eTQotKGdkYikgRkFJTDogZ2Ri LmJhc2UvYXJndjAtc3ltbGluay5leHA6IGtlcHQgZmlsZSBzeW1ib2xpYyBsaW5rIG5hbWUKLQot YWZ0ZXIgInNldCBwcmludCByZXBlYXRzIDEwMDAwIjoKLQotcHJpbnQgYXJndlswXV5NCi0kMSA9 IDB4N2ZmZmZmZmZkYTM5ICIvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLXRlc3QtZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiIuLi5eTQotKGdk YikgRkFJTDogZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHA6IGtlcHQgZmlsZSBzeW1ib2xpYyBs aW5rIG5hbWUKLQotYWZ0ZXIgInNldCBwcmludCBlbGVtZW50cyAxMDAwMCI6Ci0KLXByaW50IGFy Z3ZbMF1eTQotJDEgPSAweDdmZmZmZmZmZGEzOSAiL2hvbWUvamtyYXRvY2gvcmVkaGF0L2dkYi10 ZXN0LWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLWZpbGVsaW5rIl5NCi0o Z2RiKSBQQVNTOiBnZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4cDoga2VwdCBmaWxlIHN5bWJvbGlj IGxpbmsgbmFtZQotCi1jb21taXQgMjE4YzI2NTU2MDM3NDhiODQ0ZGNhZjEwM2UzNGZkMTRkOGVl OGFlZgotQXV0aG9yOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K LURhdGU6ICAgRnJpIEp1bCAxMSAxNzoyNjo0MiAyMDE0ICswMjAwCi0KLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi1pbmRleCA3 NGY3YmNlLi4yNTNlZWViIDEwMDY0NAotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMj IyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDkgQEAKLSsyMDE0LTA3LTEx ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0rCUZpeCBm YWxzZSBGQUlMIHJ1bm5pbmcgdW5kZXIgYSB2ZXJ5IGxvbmcgZGlyZWN0b3J5IG5hbWUuCi0rCSog Z2RiLmJhc2UvYXJndjAtc3ltbGluay5leHA6IEFkZCAic2V0IHByaW50IHJlcGVhdHMgMTAwMDAi Ci0rCWFuZCAic2V0IHByaW50IGVsZW1lbnRzIDEwMDAwIi4gIFR3aWNlLgotKwotIDIwMTQtMDct MTEgIFlhbyBRaSAgPHlhb0Bjb2Rlc291cmNlcnkuY29tPgotIAotIAkqIGdkYi5iYXNlL2V4cHJz LmV4cDogInNldCBwcmludCBzeW1ib2wgb2ZmIi4KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcmd2 MC1zeW1saW5rLmV4cAotaW5kZXggMGUwMjAyZC4uZDg0OWI0YyAxMDA2NDQKLS0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAKLUBAIC0zNiw2ICszNiw5IEBAIGlmICFbcnVudG9f bWFpbl0gewotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0rZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQg cHJpbnQgcmVwZWF0cyAxMDAwMCIKLStnZGJfdGVzdF9ub19vdXRwdXQgInNldCBwcmludCBlbGVt ZW50cyAxMDAwMCIKLSsKLSBnZGJfdGVzdCB7cHJpbnQgYXJndlswXX0gIi8kZmlsZWxpbmtcIiIg JHRlc3QKLSAKLSAjIEZvciBhIGxpbmsgbmFtZWQgL1BBVEgvVE8vRElSL0xJTkssIHdlIHdhbnQg dG8gY2hlY2sgdGhlIG91dHB1dAotQEAgLTY3LDYgKzcwLDkgQEAgaWYgIVtydW50b19tYWluXSB7 Ci0gICAgIHJldHVybiAtMQotIH0KLSAKLStnZGJfdGVzdF9ub19vdXRwdXQgInNldCBwcmludCBy ZXBlYXRzIDEwMDAwIgotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHByaW50IGVsZW1lbnRzIDEw MDAwIgotKwotICMgZ2Ric2VydmVyIGRvZXMgbm90IGhhdmUgdGhpcyBpc3N1ZS4KLSBpZiAhW2lz X3JlbW90ZSB0YXJnZXRdIHsKLSAgICAgc2V0dXBfa2ZhaWwgIiotKi0qIiBnZGIvMTU5MzQKCmRp ZmYgLS1naXQgYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaCBiL2dkYi12bGEtaW50 ZWwtc3RyaW5nYnQtZml4LnBhdGNoCmluZGV4IDkzN2Y4ZmUuLjY3ODUwZjMgMTAwNjQ0Ci0tLSBh L2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCisrKyBiL2dkYi12bGEtaW50ZWwtc3Ry aW5nYnQtZml4LnBhdGNoCkBAIC0zMSwxMSArMzEsMTEgQEAgSmFuCiBDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKIENvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsg ZmlsZW5hbWU9InZsYXN0cmluZ29ubHkucGF0Y2giCiAKLWRpZmYgLS1naXQgYS9nZGIvZ2RidHlw ZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCi1pbmRleCA1M2NhZTJjLi5jZjdhYzI2IDEwMDY0NAotLS0t IGEvZ2RiL2dkYnR5cGVzLmMKLSsrKyBiL2dkYi9nZGJ0eXBlcy5jCi1AQCAtMTY1OSw2ICsxNjU5 LDcgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHRv cF9sZXZlbCkKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUt MDEtMDggMTg6MTU6MTguNDc1NjgyNTIzICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZ2RidHlwZXMuYwkyMDE1LTAxLTA4IDE4OjM5OjAxLjQyMzEzNDcwMCArMDEwMAorQEAgLTE2 ODQsNiArMTY4NCw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQK ICAgICAgICByZXR1cm4gIWhhc19zdGF0aWNfcmFuZ2UgKFRZUEVfUkFOR0VfREFUQSAodHlwZSkp OwogIAogICAgICBjYXNlIFRZUEVfQ09ERV9BUlJBWToKQEAgLTQzLDExICs0MywxOCBAQCBpbmRl eCA1M2NhZTJjLi5jZjdhYzI2IDEwMDY0NAogICAgICAgIHsKICAJZ2RiX2Fzc2VydCAoVFlQRV9O RklFTERTICh0eXBlKSA9PSAxKTsKICAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwLi4yNjFjZTE3Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAKK0BAIC0xOTkyLDYg KzE5OTMsNyBAQCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5CisgCSAg fQorIAorIAljYXNlIFRZUEVfQ09ERV9BUlJBWToKKysJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgor IAkgIHJlc29sdmVkX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHR5cGUsIGFkZHIpOwor IAkgIGJyZWFrOworIAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLXN0dWIuZjkwCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJh bWUtc3R1Yi5mOTAJMjAxNS0wMS0wOCAxODoxNToxOC44OTc2ODQ0MzUgKzAxMDAKIEBAIC0wLDAg KzEsMjQgQEAKICshIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKyEKQEAgLTczLDExICs4MCwxMCBAQCBpbmRleCAwMDAwMDAwLi4yNjFjZTE3CiArICByZWFs IDo6IGR1bW15CiArICBkdW1teSA9IDEKICtlbmQgc3Vicm91dGluZSBiYXIKLWRpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAotbmV3IGZpbGUg bW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjU3MGEyOGMKLS0tLSAvZGV2L251bGwKLSsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1v dGhlci1mcmFtZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS5leHAJMjAxNS0wMS0wOCAxODoxNTox OC44OTc2ODQ0MzUgKzAxMDAKIEBAIC0wLDAgKzEsMzkgQEAKICsjIENvcHlyaWdodCAyMDEwIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTE4LDExICsxMjQsMTAgQEAgaW5k ZXggMDAwMDAwMC4uNTcwYTI4YwogK30KICsKICtnZGJfdGVzdCAiYnQiIHtmb28gXChzdHJpbmc9 J2hlbGxvJy4qfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1p Yy1vdGhlci1mcmFtZS5mOTAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3Ro ZXItZnJhbWUuZjkwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMmJjNjM3 ZAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWlj LW90aGVyLWZyYW1lLmY5MAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmY5MAorPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1l LmY5MAkyMDE1LTAxLTA4IDE4OjE1OjE4Ljg5NzY4NDQzNSArMDEwMAogQEAgLTAsMCArMSwzNiBA QAogKyEgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpA QCAtMTYwLDYgKzE2NSwzIEBAIGluZGV4IDAwMDAwMDAuLjJiYzYzN2QKICsgIGVuZCBpbnRlcmZh Y2UKICsgIGNhbGwgZm9vICgnaGVsbG8nKQogK2VuZAotCi0tLUZDdXVnTUZrQ2xiSkxsMUwtLQot CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC5wYXRjaCBiL2dkYi12bGEtaW50ZWwucGF0Y2gK aW5kZXggN2E4Njc0Yi4uMTczMDhmNSAxMDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC5wYXRjaAor KysgYi9nZGItdmxhLWludGVsLnBhdGNoCkBAIC02LDExICs2LDExIEBAIEdJVCBzbmFwc2hvdDoK IGNvbW1pdCA1MTFiZmY1MjAzNzJmZmMxMGZhMmZmNTY5YzE3NmJkZjFlNmU0NzVkCiAKIAotSW5k ZXg6IGdkYi03LjguMS9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvYy12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL2Mt dmFscHJpbnQuYwkyMDE0LTEyLTEzIDE1OjUyOjA3LjY5NTMxMDI3NiArMDEwMAotKysrIGdkYi03 LjguMS9nZGIvYy12YWxwcmludC5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODE3MzA3MTM4ICswMTAw Ci1AQCAtNTM4LDcgKzUzOCwxNiBAQCBjX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwg c3RydWN0CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAx NS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9jLXZhbHByaW50LmMJMjAxNS0wMS0wNiAyMzowMzowNy40MjQ2ODQ3NTMgKzAxMDAKK0BA IC01MzcsNyArNTM3LDE2IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1 Y3QKICAJewogIAkgIC8qIG5vcm1hbCBjYXNlICovCiAgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3Ry ZWFtLCAiKCIpOwpAQCAtMjgsMjM0ICsyOCwyNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9jLXZh bHByaW50LmMKICAJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpICIpOwogIAl9CiAgICAg IH0KLUluZGV4OiBnZGItNy44LjEvZ2RiL2R3YXJmMmV4cHIuYworSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL2R3YXJmMmxvYy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcv Z2RiL2R3YXJmMmV4cHIuYwkyMDE0LTEyLTEzIDE1OjUyOjA3LjY5NTMxMDI3NiArMDEwMAotKysr IGdkYi03LjguMS9nZGIvZHdhcmYyZXhwci5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODE3MzA3MTM4 ICswMTAwCi1AQCAtMTQ3OCw2ICsxNDc4LDEyIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBk d2FyZl9leHByX2NvbnQKLSAJICB9Ci0gCSAgYnJlYWs7Ci0gCi0rICAgICAgICBjYXNlIERXX09Q X3B1c2hfb2JqZWN0X2FkZHJlc3M6Ci0rCSAgLyogUmV0dXJuIHRoZSBhZGRyZXNzIG9mIHRoZSBv YmplY3Qgd2UgYXJlIGN1cnJlbnRseSBvYnNlcnZpbmcuICAqLwotKwkgIHJlc3VsdCA9IChjdHgt PmZ1bmNzLT5nZXRfb2JqZWN0X2FkZHJlc3MpIChjdHgtPmJhdG9uKTsKLSsJICByZXN1bHRfdmFs ID0gdmFsdWVfZnJvbV91bG9uZ2VzdCAoYWRkcmVzc190eXBlLCByZXN1bHQpOwotKwkgIGJyZWFr OwotKwotIAlkZWZhdWx0OgotIAkgIGVycm9yIChfKCJVbmhhbmRsZWQgZHdhcmYgZXhwcmVzc2lv biBvcGNvZGUgMHgleCIpLCBvcCk7Ci0gCX0KLUluZGV4OiBnZGItNy44LjEvZ2RiL2R3YXJmMmV4 cHIuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9kd2FyZjJleHByLmgJMjAx NC0xMi0xMyAxNTo1MjowNy42OTYzMTAyNzUgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2R3YXJm MmV4cHIuaAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgxNzMwNzEzOCArMDEwMAotQEAgLTg0LDEyICs4 NCw4IEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MKLSAgICAgIFRoaXMgY2FuIHRo cm93IGFuIGV4Y2VwdGlvbiBpZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLiAgKi8KLSAgIENP UkVfQUREUiAoKmdldF9hZGRyX2luZGV4KSAodm9pZCAqYmF0b24sIHVuc2lnbmVkIGludCBpbmRl eCk7Ci0gCi0tI2lmIDAKLS0gIC8qIE5vdCB5ZXQgaW1wbGVtZW50ZWQuICAqLwotLQotICAgLyog UmV0dXJuIHRoZSBgb2JqZWN0IGFkZHJlc3MnIGZvciBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNz LiAgKi8KLSAgIENPUkVfQUREUiAoKmdldF9vYmplY3RfYWRkcmVzcykgKHZvaWQgKmJhdG9uKTsK LS0jZW5kaWYKLSB9OwotIAotIC8qIFRoZSBsb2NhdGlvbiBvZiBhIHZhbHVlLiAgKi8KLUluZGV4 OiBnZGItNy44LjEvZ2RiL2R3YXJmMmxvYy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9y aWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTQtMTItMTMgMTU6NTI6MDcuNjk3MzEwMjc0ICswMTAwCi0r KysgZ2RiLTcuOC4xL2dkYi9kd2FyZjJsb2MuYwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgxODMwNzEz NyArMDEwMAotQEAgLTMwNiw2ICszMDYsNyBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbgotIHsK LSAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZTsKLSAgIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2Rh dGEgKnBlcl9jdTsKLSsgIENPUkVfQUREUiBvYmpfYWRkcmVzczsKLSB9OwotIAotIC8qIEhlbHBl ciBmdW5jdGlvbnMgZm9yIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYy4gICovCi1AQCAtMTIwOSw2 ICsxMjEwLDcgQEAgZHdhcmZfZXhwcl9wdXNoX2R3YXJmX3JlZ19lbnRyeV92YWx1ZSAocwotIAot ICAgYmF0b25fbG9jYWwuZnJhbWUgPSBjYWxsZXJfZnJhbWU7Ci0gICBiYXRvbl9sb2NhbC5wZXJf Y3UgPSBjYWxsZXJfcGVyX2N1OwotKyAgYmF0b25fbG9jYWwub2JqX2FkZHJlc3MgPSAwOwotIAot ICAgc2F2ZWRfY3R4LmdkYmFyY2ggPSBjdHgtPmdkYmFyY2g7Ci0gICBzYXZlZF9jdHguYWRkcl9z aXplID0gY3R4LT5hZGRyX3NpemU7Ci1AQCAtMTIzOCw2ICsxMjQwLDIyIEBAIGR3YXJmX2V4cHJf Z2V0X2FkZHJfaW5kZXggKHZvaWQgKmJhdG9uLAotICAgcmV0dXJuIGR3YXJmMl9yZWFkX2FkZHJf aW5kZXggKGRlYmF0b24tPnBlcl9jdSwgaW5kZXgpOwotIH0KLSAKLSsvKiBDYWxsYmFjayBmdW5j dGlvbiBmb3IgZ2V0X29iamVjdF9hZGRyZXNzLiBSZXR1cm4gdGhlIGFkZHJlc3Mgb2YgdGhlIFZM QQotKyAgIG9iamVjdC4gICovCi0rCi0rc3RhdGljIENPUkVfQUREUgotK2R3YXJmX2V4cHJfZ2V0 X29ial9hZGRyICh2b2lkICpiYXRvbikKLSt7Ci0rICBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbiAq ZGViYXRvbiA9IGJhdG9uOwotKwotKyAgZ2RiX2Fzc2VydCAoZGViYXRvbiAhPSBOVUxMKTsKLSsK LSsgIGlmIChkZWJhdG9uLT5vYmpfYWRkcmVzcyA9PSAwKQotKyAgICBlcnJvciAoXygiTG9jYXRp b24gYWRkcmVzcyBpcyBub3Qgc2V0LiIpKTsKLSsKLSsgIHJldHVybiBkZWJhdG9uLT5vYmpfYWRk cmVzczsKLSt9Ci0rCi0gLyogVkFMVUUgbXVzdCBiZSBvZiB0eXBlIGx2YWxfY29tcHV0ZWQgd2l0 aCBlbnRyeV9kYXRhX3ZhbHVlX2Z1bmNzLiAgUGVyZm9ybQotICAgIHRoZSBpbmRpcmVjdCBtZXRo b2Qgb24gaXQsIHRoYXQgaXMgdXNlIGl0cyBzdG9yZWQgdGFyZ2V0IHZhbHVlLCB0aGUgc29sZQot ICAgIHB1cnBvc2Ugb2YgZW50cnlfZGF0YV92YWx1ZV9mdW5jcy4uICAqLwotQEAgLTIyMDIsNyAr MjIyMCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0X2YKLSAgIGR3 YXJmX2V4cHJfZHdhcmZfY2FsbCwKLSAgIGR3YXJmX2V4cHJfZ2V0X2Jhc2VfdHlwZSwKLSAgIGR3 YXJmX2V4cHJfcHVzaF9kd2FyZl9yZWdfZW50cnlfdmFsdWUsCi0tICBkd2FyZl9leHByX2dldF9h ZGRyX2luZGV4Ci0rICBkd2FyZl9leHByX2dldF9hZGRyX2luZGV4LAotKyAgZHdhcmZfZXhwcl9n ZXRfb2JqX2FkZHIKLSB9OwotIAotIC8qIEV2YWx1YXRlIGEgbG9jYXRpb24gZGVzY3JpcHRpb24s IHN0YXJ0aW5nIGF0IERBVEEgYW5kIHdpdGggbGVuZ3RoCi1AQCAtMjIzMSw2ICsyMjUwLDcgQEAg ZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQotIAotICAgYmF0b24uZnJh bWUgPSBmcmFtZTsKLSAgIGJhdG9uLnBlcl9jdSA9IHBlcl9jdTsKLSsgIGJhdG9uLm9ial9hZGRy ZXNzID0gMDsKLSAKLSAgIGN0eCA9IG5ld19kd2FyZl9leHByX2NvbnRleHQgKCk7Ci0gICBvbGRf Y2hhaW4gPSBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHByX2NvbnRleHQgKGN0eCk7Ci1AQCAt MjMyNiw2ICsyMzQ2LDExIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3Qg dHkKLSAJICAgIGludCBpbl9zdGFja19tZW1vcnkgPSBkd2FyZl9leHByX2ZldGNoX2luX3N0YWNr X21lbW9yeSAoY3R4LCAwKTsKLSAKLSAJICAgIGRvX2NsZWFudXBzICh2YWx1ZV9jaGFpbik7Ci0r Ci0rCSAgICAvKiBTZWxlY3QgcmlnaHQgZnJhbWUgdG8gY29ycmVjdGx5IGV2YWx1YXRlIFZMQSdz IGR1cmluZyBhIGJhY2t0cmFjZS4gICovCi0rCSAgICBpZiAoaXNfZHluYW1pY190eXBlICh0eXBl KSkKLSsJICAgICAgc2VsZWN0X2ZyYW1lIChmcmFtZSk7Ci0rCi0gCSAgICByZXR2YWwgPSB2YWx1 ZV9hdF9sYXp5ICh0eXBlLCBhZGRyZXNzICsgYnl0ZV9vZmZzZXQpOwotIAkgICAgaWYgKGluX3N0 YWNrX21lbW9yeSkKLSAJICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEpOwotQEAgLTI0 MzYsNiArMjQ2MSw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHR5cGUgKnQK LSAKLSBzdGF0aWMgaW50Ci0gZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZhbCAoY29uc3Qgc3RydWN0 IGR3YXJmMl9sb2NleHByX2JhdG9uICpkbGJhdG9uLAotKyAgICAgICAgIENPUkVfQUREUiBhZGRy LAotIAkJCSAgIENPUkVfQUREUiAqdmFscCkKLSB7Ci0gICBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250 ZXh0ICpjdHg7Ci1AQCAtMjQ1MSw2ICsyNDc3LDcgQEAgZHdhcmYyX2xvY2V4cHJfYmF0b25fZXZh bCAoY29uc3Qgc3RydWN0Ci0gCi0gICBiYXRvbi5mcmFtZSA9IGdldF9zZWxlY3RlZF9mcmFtZSAo TlVMTCk7Ci0gICBiYXRvbi5wZXJfY3UgPSBkbGJhdG9uLT5wZXJfY3U7Ci0rICBiYXRvbi5vYmpf YWRkcmVzcyA9IGFkZHI7Ci0gCi0gICBvYmpmaWxlID0gZHdhcmYyX3Blcl9jdV9vYmpmaWxlIChk bGJhdG9uLT5wZXJfY3UpOwotIAotQEAgLTI0OTEsNyArMjUxOCw4IEBAIGR3YXJmMl9sb2NleHBy X2JhdG9uX2V2YWwgKGNvbnN0IHN0cnVjdAotIC8qIFNlZSBkd2FyZjJsb2MuaC4gICovCi0gCi0g aW50Ci0tZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9w ICpwcm9wLCBDT1JFX0FERFIgKnZhbHVlKQotK2R3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29u c3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rICAgICAg ICBDT1JFX0FERFIgKnZhbHVlKQotIHsKLSAgIGlmIChwcm9wID09IE5VTEwpCi0gICAgIHJldHVy biAwOwotQEAgLTI1MDIsNyArMjUzMCw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29u c3Qgc3RydWN0IGQKLSAgICAgICB7Ci0gCWNvbnN0IHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0 b24gKmJhdG9uID0gcHJvcC0+ZGF0YS5iYXRvbjsKLSAKLS0JaWYgKGR3YXJmMl9sb2NleHByX2Jh dG9uX2V2YWwgKCZiYXRvbi0+bG9jZXhwciwgdmFsdWUpKQotKwlpZiAoZHdhcmYyX2xvY2V4cHJf YmF0b25fZXZhbCAoJmJhdG9uLT5sb2NleHByLCBhZGRyZXNzLCB2YWx1ZSkpCi0gCSAgewotIAkg ICAgaWYgKGJhdG9uLT5yZWZlcmVuY2VkX3R5cGUpCi0gCSAgICAgIHsKLUBAIC0yNTQ2LDYgKzI1 NzQsMjAgQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1Y3QgZAotICAgcmV0 dXJuIDA7Ci0gfQotIAotKy8qIFNlZSBkd2FyZjJsb2MuaC4gICovCi0rCi0raW50Ci0rZHdhcmYy X2FkZHJlc3NfZGF0YV92YWxpZCAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0rewotKyAgaWYg KFRZUEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlmIChU WVBFX05PVF9BTExPQ0FURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiAx OwotK30KLSsKLSAMCi0gLyogSGVscGVyIGZ1bmN0aW9ucyBhbmQgYmF0b24gZm9yIGR3YXJmMl9s b2NfZGVzY19uZWVkc19mcmFtZS4gICovCi0gCi1AQCAtMjY1Myw2ICsyNjk1LDE1IEBAIG5lZWRz X2dldF9hZGRyX2luZGV4ICh2b2lkICpiYXRvbiwgdW5zaWcKLSAgIHJldHVybiAxOwotIH0KLSAK LSsvKiBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzIGhhcyBhIGZyYW1lIGFscmVhZHkgcGFzc2Vk IHRocm91Z2guICAqLwotKwotK3N0YXRpYyBDT1JFX0FERFIKLStuZWVkc19nZXRfb2JqX2FkZHIg KHZvaWQgKmJhdG9uKQotK3sKLSsgIC8qIE5vdGhpbmcgdG8gZG8uICAqLwotKyAgcmV0dXJuIDE7 Ci0rfQotKwotIC8qIFZpcnR1YWwgbWV0aG9kIHRhYmxlIGZvciBkd2FyZjJfbG9jX2Rlc2NfbmVl ZHNfZnJhbWUgYmVsb3cuICAqLwotIAotIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdhcmZfZXhwcl9j b250ZXh0X2Z1bmNzIG5lZWRzX2ZyYW1lX2N0eF9mdW5jcyA9Ci1AQCAtMjY2Nyw3ICsyNzE4LDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHRfZgotICAgbmVlZHNfZnJh bWVfZHdhcmZfY2FsbCwKLSAgIE5VTEwsCQkJCS8qIGdldF9iYXNlX3R5cGUgKi8KLSAgIG5lZWRz X2R3YXJmX3JlZ19lbnRyeV92YWx1ZSwKLS0gIG5lZWRzX2dldF9hZGRyX2luZGV4Ci0rICBuZWVk c19nZXRfYWRkcl9pbmRleCwKLSsgIG5lZWRzX2dldF9vYmpfYWRkcgotIH07Ci0gCi0gLyogUmV0 dXJuIG5vbi16ZXJvIGlmZiB0aGUgbG9jYXRpb24gZXhwcmVzc2lvbiBhdCBEQVRBIChsZW5ndGgg U0laRSkKLUBAIC0zMzE2LDYgKzMzNjgsMTAgQEAgZHdhcmYyX2NvbXBpbGVfZXhwcl90b19heCAo c3RydWN0IGFnZW50XwotIAkgIHVuaW1wbGVtZW50ZWQgKG9wKTsKLSAJICBicmVhazsKLSAKLSsg IGNhc2UgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzczoKLSsgICAgdW5pbXBsZW1lbnRlZCAob3Ap OwotKyAgICBicmVhazsKLSsKLSAJY2FzZSBEV19PUF9za2lwOgotIAkgIG9mZnNldCA9IGV4dHJh Y3Rfc2lnbmVkX2ludGVnZXIgKG9wX3B0ciwgMiwgYnl0ZV9vcmRlcik7Ci0gCSAgb3BfcHRyICs9 IDI7Ci1JbmRleDogZ2RiLTcuOC4xL2dkYi9kd2FyZjJsb2MuaAotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguMS5vcmlnL2dkYi9kd2FyZjJsb2MuaAkyMDE0LTEyLTEzIDE1OjUyOjA3LjY5NzMxMDI3 NCArMDEwMAotKysrIGdkYi03LjguMS9nZGIvZHdhcmYybG9jLmgJMjAxNC0xMi0xMyAxNTo1Mjox MC44MTkzMDcxMzYgKzAxMDAKLUBAIC05NiwxMSArOTYsMTggQEAgc3RydWN0IHZhbHVlICpkd2Fy ZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKAotICAgIGludG8gVkFMVUUsIG90aGVyd2lzZSByZXR1cm5z IDAuICAqLwotIAotIGludCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnVjdCBk eW5hbWljX3Byb3AgKnByb3AsCi0rCQkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCistLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kd2FyZjJsb2MuaAkyMDE1LTAxLTA2IDIyOjUxOjE3 LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMmxvYy5o CTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI0Njg0NzUzICswMTAwCitAQCAtMTExLDYgKzExMSwxMSBA QCBpbnQgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1CisgCQkJICAgICAgQ09S RV9BRERSIGFkZHJlc3MsCiAgCQkJICAgICAgQ09SRV9BRERSICp2YWx1ZSk7CiAgCi0gQ09SRV9B RERSIGR3YXJmMl9yZWFkX2FkZHJfaW5kZXggKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBl cl9jdSwKLSAJCQkJICB1bnNpZ25lZCBpbnQgYWRkcl9pbmRleCk7Ci0gCiArLyogQ2hlY2tzIGlm IGEgZHdhcmYgbG9jYXRpb24gZGVmaW5pdGlvbiBpcyB2YWxpZC4KICsgICBSZXR1cm5zIDEgaWYg dmFsaWQ7IDAgb3RoZXJ3aXNlLiAgKi8KICsKICtleHRlcm4gaW50IGR3YXJmMl9hZGRyZXNzX2Rh dGFfdmFsaWQgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKTsKICsKLSsKLSAvKiBUaGUgc3ltYm9s IGxvY2F0aW9uIGJhdG9uIHR5cGVzIHVzZWQgYnkgdGhlIERXQVJGLTIgcmVhZGVyIChpLmUuCi0g ICAgU1lNQk9MX0xPQ0FUSU9OX0JBVE9OIGZvciBhIExPQ19DT01QVVRFRCBzeW1ib2wpLiAgInN0 cnVjdAotICAgIGR3YXJmMl9sb2NleHByX2JhdG9uIiBpcyBmb3IgYSBzeW1ib2wgd2l0aCBhIHNp bmdsZSBsb2NhdGlvbgotSW5kZXg6IGdkYi03LjguMS9nZGIvZHdhcmYycmVhZC5jCisgLyogQSBo ZWxwZXIgZm9yIHRoZSBjb21waWxlciBpbnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBk eW5hbWljCisgICAgcHJvcGVydHkgdG8gQyBjb2RlLgorIAorSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dk Yi9kd2FyZjJyZWFkLmMJMjAxNC0xMi0xMyAxNTo1MjowNy43MDQzMTAyNjcgKzAxMDAKLSsrKyBn ZGItNy44LjEvZ2RiL2R3YXJmMnJlYWQuYwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyMzMwNzEzMiAr MDEwMAotQEAgLTE4NDcsNiArMTg0NywxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2R3b19maWxlX2Ns ZWFudXAgKHZvaWQKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQu YwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTA2IDIzOjA0OjA5LjY5MTk4Njg4MSArMDEw MAorQEAgLTE4NDQsNiArMTg0NCwxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2R3b19maWxlX2NsZWFu dXAgKHZvaWQKICBzdGF0aWMgdm9pZCBwcm9jZXNzX2N1X2luY2x1ZGVzICh2b2lkKTsKICAKICBz dGF0aWMgdm9pZCBjaGVja19wcm9kdWNlciAoc3RydWN0IGR3YXJmMl9jdSAqY3UpOwpAQCAtMjY4 LDcgKzYxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZHdhcmYycmVhZC5jCiAgDAogIC8qIFZh cmlvdXMgY29tcGxhaW50cyBhYm91dCBzeW1ib2wgcmVhZGluZyB0aGF0IGRvbid0IGFib3J0IHRo ZSBwcm9jZXNzLiAgKi8KICAKLUBAIC0xNDE4MiwyOSArMTQxODgsOTIgQEAgcmVhZF90YWdfc3Ry aW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZAorQEAgLTE0MjQxLDI5ICsxNDI0Nyw5MiBAQCBy ZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkCiAgICBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUg KnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHI7CkBAIC0zNjgsNyArMTYxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIv ZHdhcmYycmVhZC5jCiAgICBjaGFyX3R5cGUgPSBsYW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChj dS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7CiAgICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBl IChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5cGUpOwogIAotQEAgLTE0NTIxLDEzICsxNDU5MCwx NSBAQCByZWFkX2Jhc2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0CitAQCAtMTQ1ODAs MTMgKzE0NjQ5LDE1IEBAIHJlYWRfYmFzZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3QK ICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogIH0KICAKQEAgLTM4NSw3 ICsxNzgsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9kd2FyZjJyZWFkLmMKICB7CiAgICBzdHJ1 Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbjsKICAgIHN0cnVjdCBvYnN0YWNrICpvYnN0 YWNrID0gJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2s7Ci1AQCAtMTQ1NDAsOCArMTQ2MTEs MjUgQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaQorQEAgLTE0NTk5 LDggKzE0NjcwLDI1IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkK ICAgICAgICBiYXRvbiA9IG9ic3RhY2tfYWxsb2MgKG9ic3RhY2ssIHNpemVvZiAoKmJhdG9uKSk7 CiAgICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CiAgICAgICAgYmF0b24tPmxv Y2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKQEAgLTQxMyw3ICsyMDYsNyBAQCBJbmRleDogZ2Ri LTcuOC4xL2dkYi9kd2FyZjJyZWFkLmMKICAgICAgICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247 CiAgICAgICAgcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAgICAgICBnZGJfYXNzZXJ0IChw cm9wLT5kYXRhLmJhdG9uICE9IE5VTEwpOwotQEAgLTE0NTcxLDggKzE0NjU5LDI4IEBAIGF0dHJf dG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKK0BAIC0xNDYzMCw4ICsxNDcxOCwy OCBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpCiAgCSAgYmF0b24g PSBvYnN0YWNrX2FsbG9jIChvYnN0YWNrLCBzaXplb2YgKCpiYXRvbikpOwogIAkgIGJhdG9uLT5y ZWZlcmVuY2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKICAJICBi YXRvbi0+bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwpAQCAtNDQ0LDcgKzIzNyw3IEBAIElu ZGV4OiBnZGItNy44LjEvZ2RiL2R3YXJmMnJlYWQuYwogIAkgIHByb3AtPmRhdGEuYmF0b24gPSBi YXRvbjsKICAJICBwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwogIAkgIGdkYl9hc3NlcnQgKHBy b3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAtMTQ2MDcsNyArMTQ3MTUsNyBAQCByZWFkX3N1 YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCitAQCAtMTQ2NjYsNyArMTQ3NzQsNyBA QCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCiAgICBzdHJ1Y3QgdHlw ZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlw ZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC00NTMsNyArMjQ2LDcgQEAgSW5kZXg6 IGdkYi03LjguMS9nZGIvZHdhcmYycmVhZC5jCiAgICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7 CiAgICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7CiAgICBjb25zdCBjaGFyICpuYW1lOwot QEAgLTE0NjI3LDcgKzE0NzM1LDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZQorQEAgLTE0Njg2LDcgKzE0Nzk0LDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZQogIAogICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5r aW5kID0gUFJPUF9DT05TVDsKQEAgLTQ2Myw3ICsyNTYsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dk Yi9kd2FyZjJyZWFkLmMKICAKICAgIC8qIFNldCBMT1dfREVGQVVMVF9JU19WQUxJRCBpZiBjdXJy ZW50IGxhbmd1YWdlIGFuZCBEV0FSRiB2ZXJzaW9uIGFsbG93CiAgICAgICBvbWl0dGluZyBEV19B VF9sb3dlcl9ib3VuZC4gICovCi1AQCAtMTQ2NjAsMTkgKzE0NzcwLDI2IEBAIHJlYWRfc3VicmFu Z2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNDcxOSwxOSArMTQ4MjksMjYgQEAg cmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZQogICAgICAgIGJyZWFrOwog ICAgICB9CiAgCkBAIC00OTMsNyArMjg2LDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZHdhcmYy cmVhZC5jCiAgCXsKICAJICAvKiBJZiBib3VuZHMgYXJlIGNvbnN0YW50IGRvIHRoZSBmaW5hbCBj YWxjdWxhdGlvbiBoZXJlLiAgKi8KICAJICBpZiAobG93LmtpbmQgPT0gUFJPUF9DT05TVCAmJiBo aWdoLmtpbmQgPT0gUFJPUF9DT05TVCkKLUBAIC0xNDczNiw3ICsxNDg1Myw3IEBAIHJlYWRfc3Vi cmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKK0BAIC0xNDc5NSw3ICsxNDkxMiw3IEBA IHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAgICAgICAmJiAhVFlQ RV9VTlNJR05FRCAoYmFzZV90eXBlKSAmJiAoaGlnaC5kYXRhLmNvbnN0X3ZhbCAmIG5lZ2F0aXZl X21hc2spKQogICAgICBoaWdoLmRhdGEuY29uc3RfdmFsIHw9IG5lZ2F0aXZlX21hc2s7CiAgCkBA IC01MDIsMTkgKzI5NSwxOCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9kd2FyZjJyZWFkLmMKICAK ICAgIGlmIChoaWdoX2JvdW5kX2lzX2NvdW50KQogICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdl X3R5cGUpLT5mbGFnX3VwcGVyX2JvdW5kX2lzX2NvdW50ID0gMTsKLUBAIC0yMTY1NCw2ICsyMTc3 MSw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnUKLSB7Ci0gICBz dHJ1Y3QgZHdhcmYyX3Blcl9jdV9vZmZzZXRfYW5kX3R5cGUgKipzbG90LCBvZnM7Ci0gICBzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOwotKyAgc3RydWN0IGF0dHJpYnV0ZSAq YXR0cjsKLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgcHJvcDsKLSAKLSAgIC8qIEZvciBBZGEgdHlw ZXMsIG1ha2Ugc3VyZSB0aGF0IHRoZSBnbmF0LXNwZWNpZmljIGRhdGEgaXMgYWx3YXlzCi0gICAg ICBpbml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0KS4gIFRoZXJlIGFyZSBhIGZldyB0eXBl cyB3aGVyZQotQEAgLTIxNjY4LDYgKzIxNzg3LDQzIEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnUKLSAgICAgICAmJiAhSEFWRV9HTkFUX0FVWF9JTkZPICh0eXBlKSkK LSAgICAgSU5JVF9HTkFUX1NQRUNJRklDICh0eXBlKTsKK0BAIC0yMTg2MCw3ICsyMTk3Nyw0NCBA QCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1CiAgCisgICAvKiBSZWFk IERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KKyAgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7CistICBpZiAoYXR0cl90b19k eW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgIGlmIChhdHRyX3RvX2R5bmFt aWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQorKyAgICB7CisrICAgICAg VFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQorKyAgICAgICAgPSBvYnN0YWNrX2FsbG9jICgmb2Jq ZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzaXplb2YgKHByb3ApKTsKKysgICAgICAqVFlQRV9EQVRB X0xPQ0FUSU9OICh0eXBlKSA9IHByb3A7CisrICAgIH0KKysKICsgIC8qIFJlYWQgRFdfQVRfYWxs b2NhdGVkIGFuZCBzZXQgaW4gdHlwZS4gICovCiArICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwg RFdfQVRfYWxsb2NhdGVkLCBjdSk7CiArICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkK QEAgLTU0NiwyOCArMzM4LDIyIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2R3YXJmMnJlYWQuYwog KyAgLyogUmVhZCBEV19BVF9kYXRhX2xvY2F0aW9uIGFuZCBzZXQgaW4gdHlwZS4gICovCiArICBh dHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZGF0YV9sb2NhdGlvbiwgY3UpOwogKyAgaWYg KGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0r ICAgIHsKLSsgICAgICBUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAgICA9IG9ic3Rh Y2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHNpemVvZiAocHJvcCkpOwotKyAg ICAgICpUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpID0gcHJvcDsKLSsgICAgfQotKwotICAgaWYg KGR3YXJmMl9wZXJfb2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQogICAgICB7Ci0gICAg ICAgZHdhcmYyX3Blcl9vYmpmaWxlLT5kaWVfdHlwZV9oYXNoID0KLUluZGV4OiBnZGItNy44LjEv Z2RiL2YtdHlwZXByaW50LmMKKyAgICAgICBUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCisgICAg ICAgICA9IG9ic3RhY2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHNpemVvZiAo cHJvcCkpOworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE0LTEyLTEz IDE1OjUyOjA3LjcwNTMxMDI2NiArMDEwMAotKysrIGdkYi03LjguMS9nZGIvZi10eXBlcHJpbnQu YwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyMzMwNzEzMiArMDEwMAorLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkw NyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0w MS0wNiAyMzowMzowNy40Mjg2ODQ3NzIgKzAxMDAKIEBAIC0zMCw2ICszMCw3IEBACiAgI2luY2x1 ZGUgImdkYmNvcmUuaCIKICAjaW5jbHVkZSAidGFyZ2V0LmgiCiAgI2luY2x1ZGUgImYtbGFuZy5o IgogKyNpbmNsdWRlICJ2YWxwcmludC5oIgogIAotICNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5j bHVkZSA8ZXJybm8uaD4KLUBAIC01Niw2ICs1NywxNyBAQCBmX3ByaW50X3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBjCisgI2lmIDAJCQkJLyogQ3VycmVudGx5IHVudXNlZC4gICovCisg c3RhdGljIHZvaWQgZl90eXBlX3ByaW50X2FyZ3MgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9m aWxlICopOworQEAgLTUzLDYgKzU0LDE3IEBAIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGMKICAgIGVudW0gdHlwZV9jb2RlIGNvZGU7CiAgICBpbnQgZGVtYW5nbGVkX2Fy Z3M7CiAgCkBAIC01ODUsNyArMzcxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZi10eXBlcHJp bnQuYwogICAgZl90eXBlX3ByaW50X2Jhc2UgKHR5cGUsIHN0cmVhbSwgc2hvdywgbGV2ZWwpOwog ICAgY29kZSA9IFRZUEVfQ09ERSAodHlwZSk7CiAgICBpZiAoKHZhcnN0cmluZyAhPSBOVUxMICYm ICp2YXJzdHJpbmcgIT0gJ1wwJykKLUBAIC0xNzAsMjggKzE4MiwzNiBAQCBmX3R5cGVfcHJpbnRf dmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCitAQCAtMTY3LDI4ICsxNzksMzYgQEAgZl90eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQogICAgICAgIGlmIChhcnJheXByaW50 X3JlY3Vyc2VfbGV2ZWwgPT0gMSkKICAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCIpOwog IApAQCAtNjQzLDExICs0MjksMTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZi10eXBlcHJpbnQu YwogICAgICAgIGlmIChhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwgPT0gMSkKICAJZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwogICAgICAgIGVsc2UKLUluZGV4OiBnZGItNy44LjEvZ2Ri L2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2YtdmFscHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjguMS5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNC0x Mi0xMyAxNTo1MjowNy43MDUzMTAyNjYgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL2YtdmFscHJp bnQuYwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNDMwNzEzMSArMDEwMAotQEAgLTM5LDggKzM5LDYg QEAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAx LTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2YtdmFscHJpbnQuYwkyMDE1LTAxLTA2IDIzOjAzOjA3LjQyODY4NDc3MiArMDEwMAorQEAgLTM2 LDggKzM2LDYgQEAKICAKICBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lk KTsKICBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CkBAIC02 NTYsNyArNDQyLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZi12YWxwcmludC5jCiAgc3RhdGlj IHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICop OwogIAogIGludCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTl9ESU1TICsgMV1bMl07 Ci1AQCAtNDgsMTUgKzQ2LDYgQEAgaW50IGY3N19hcnJheV9vZmZzZXRfdGJsW01BWF9GT1JUUkFO X0RJTQorQEAgLTQ1LDE1ICs0Myw2IEBAIGludCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9S VFJBTl9ESU0KICAvKiBBcnJheSB3aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8g Z2V0IGEgcm93J3MgZWxlbWVudHMKICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFycmF5IGFsc28g aG9sZHMgdGhlIHNpemUgb2YgZWFjaCBzdWJhcnJheS4gICovCiAgCkBAIC02NzIsNyArNDU4LDcg QEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZi12YWxwcmludC5jCiAgaW50CiAgZjc3X2dldF9sb3dl cmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7Ci1AQCAtMTE0LDQ3ICsxMDMsNiBAQCBmNzdf Z2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RyCitAQCAtMTExLDQ3ICsxMDAsNiBA QCBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RyCiAgICAgICogVFlQRV9M RU5HVEggKGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7CiAgfQogIApA QCAtNzIwLDcgKzUwNiw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2YtdmFscHJpbnQuYwogIC8q IEFjdHVhbCBmdW5jdGlvbiB3aGljaCBwcmludHMgb3V0IEY3NyBhcnJheXMsIFZhbGFkZHIgPT0g YWRkcmVzcyBpbiAKICAgICB0aGUgc3VwZXJpb3IuICBBZGRyZXNzID09IHRoZSBhZGRyZXNzIGlu IHRoZSBpbmZlcmlvci4gICovCiAgCi1AQCAtMTY3LDQxICsxMTUsNjIgQEAgZjc3X3ByaW50X2Fy cmF5XzEgKGludCBuc3MsIGludCBuZGltZW5zaQorQEAgLTE2NCw0MSArMTEyLDYyIEBAIGY3N19w cmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKICAJCSAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAogIAkJICAgaW50ICplbHRzKQogIHsKQEAgLTc5 OSw3ICs1ODUsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9mLXZhbHByaW50LmMKICAJICAgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwogIAl9CiAgICAgIH0KLUBAIC0yMjgsMTIg KzE5Nyw2IEBAIGY3N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKK0BAIC0y MjUsMTIgKzE5NCw2IEBAIGY3N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMK ICBUeXBlIG5vZGUgY29ycnVwdCEgRjc3IGFycmF5cyBjYW5ub3QgaGF2ZSAlZCBzdWJzY3JpcHRz ICglZCBNYXgpIiksCiAgCSAgIG5kaW1lbnNpb25zLCBNQVhfRk9SVFJBTl9ESU1TKTsKICAKQEAg LTgxMiw3ICs1OTgsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9mLXZhbHByaW50LmMKICAgIGY3 N19wcmludF9hcnJheV8xICgxLCBuZGltZW5zaW9ucywgdHlwZSwgdmFsYWRkciwgZW1iZWRkZWRf b2Zmc2V0LAogIAkJICAgICBhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UsIHZhbCwgb3B0aW9ucywg JmVsdHMpOwogIH0KLUBAIC0zNzgsMTIgKzM0MSwxNSBAQCBmX3ZhbF9wcmludCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkCitAQCAtMzc1LDEyICszMzgsMTUgQEAgZl92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZAogICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIiggIik7CiAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgVFlQRV9ORklFTERTICh0 eXBlKTsgaW5kZXgrKykKICAgICAgICAgIHsKQEAgLTgzMywxMSArNjE5LDExIEBAIEluZGV4OiBn ZGItNy44LjEvZ2RiL2YtdmFscHJpbnQuYwogICAgICAgICAgICBpZiAoaW5kZXggIT0gVFlQRV9O RklFTERTICh0eXBlKSAtIDEpCiAgICAgICAgICAgICAgZnB1dHNfZmlsdGVyZWQgKCIsICIsIHN0 cmVhbSk7CiAgICAgICAgICB9Ci1JbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguMS5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTQtMTItMTMgMTU6NTI6MDcuNzA3MzEwMjY0 ICswMTAwCi0rKysgZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCTIwMTQtMTItMTMgMTU6NTM6MTAu Njc1MjQ2OTc2ICswMTAwCi1AQCAtODA1LDcgKzgwNSw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9k IChzdHJ1Y3QgdHlwZSAqdHlwZSkKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2dk YnR5cGVzLmMJMjAxNS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0Nzc3 ICswMTAwCitAQCAtODE1LDcgKzgxNSw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1Y3Qg dHlwZSAqdHlwZSkKICBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0 eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgCQkgICBjb25zdCBz dHJ1Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQsCkBAIC04NDcsNyArNjMzLDcgQEAgSW5kZXg6 IGdkYi03LjguMS9nZGIvZ2RidHlwZXMuYwogIHsKICAgIGlmIChyZXN1bHRfdHlwZSA9PSBOVUxM KQogICAgICByZXN1bHRfdHlwZSA9IGFsbG9jX3R5cGVfY29weSAoaW5kZXhfdHlwZSk7Ci1AQCAt ODIwLDYgKzgyMSw3IEBAIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqcmVzdWx0X3QK K0BAIC04MzAsNiArODMxLDcgQEAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1 bHRfdAogICAgICBUWVBFX1pBTExPQyAocmVzdWx0X3R5cGUsIHNpemVvZiAoc3RydWN0IHJhbmdl X2JvdW5kcykpOwogICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmxvdyA9ICpsb3df Ym91bmQ7CiAgICBUWVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+aGlnaCA9ICpoaWdoX2Jv dW5kOwpAQCAtODU1LDcgKzY0MSw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnR5cGVzLmMK ICAKICAgIGlmIChsb3dfYm91bmQtPmtpbmQgPT0gUFJPUF9DT05TVCAmJiBsb3dfYm91bmQtPmRh dGEuY29uc3RfdmFsID49IDApCiAgICAgIFRZUEVfVU5TSUdORUQgKHJlc3VsdF90eXBlKSA9IDE7 Ci1AQCAtODQxLDcgKzg0Myw3IEBAIHN0cnVjdCB0eXBlICoKK0BAIC04NTgsNyArODYwLDcgQEAg c3RydWN0IHR5cGUgKgogIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJl c3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCQkgIExPTkdFU1QgbG93X2Jv dW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCiAgewpAQCAtODY0LDcgKzY1MCw3IEBAIEluZGV4OiBn ZGItNy44LjEvZ2RiL2dkYnR5cGVzLmMKICAKICAgIGxvdy5raW5kID0gUFJPUF9DT05TVDsKICAg IGxvdy5kYXRhLmNvbnN0X3ZhbCA9IGxvd19ib3VuZDsKLUBAIC04NDksNyArODUxLDExIEBAIGNy ZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnIKK0BAIC04NjYsNyArODY4LDEx IEBAIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnIKICAgIGhpZ2gua2lu ZCA9IFBST1BfQ09OU1Q7CiAgICBoaWdoLmRhdGEuY29uc3RfdmFsID0gaGlnaF9ib3VuZDsKICAK QEAgLTg3Nyw3ICs2NjMsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAgCiAg ICByZXR1cm4gcmVzdWx0X3R5cGU7CiAgfQotQEAgLTEwMDMsMTggKzEwMDksMjQgQEAgY3JlYXRl X2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHN0cnVjdCB0eQorQEAgLTEwMjAsMTggKzEwMjYsMjQg QEAgY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHN0cnVjdCB0eQogIAogICAgVFlQRV9D T0RFIChyZXN1bHRfdHlwZSkgPSBUWVBFX0NPREVfQVJSQVk7CiAgICBUWVBFX1RBUkdFVF9UWVBF IChyZXN1bHRfdHlwZSkgPSBlbGVtZW50X3R5cGU7CkBAIC05MDQsNyArNjkwLDcgQEAgSW5kZXg6 IGdkYi03LjguMS9nZGIvZ2RidHlwZXMuYwogICAgICAgIGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAw KQogIAlUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpID0KICAJICAoYml0X3N0cmlkZSAqIChoaWdo X2JvdW5kIC0gbG93X2JvdW5kICsgMSkgKyA3KSAvIDg7Ci1AQCAtMTYxNiwxMiArMTYyOCwzMSBA QCBzdHViX25vbmFtZV9jb21wbGFpbnQgKHZvaWQpCitAQCAtMTYzMCwxMiArMTY0MiwzMSBAQCBz dHViX25vbmFtZV9jb21wbGFpbnQgKHZvaWQpCiAgc3RhdGljIGludAogIGlzX2R5bmFtaWNfdHlw ZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCiAgewpAQCAtOTMz LDEwICs3MTksMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2RidHlwZXMuYwogKyAgICAgIGlm IChpc19keW5hbWljX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaW5kZXgpKSkKICsgICAg ICAgIHJldHVybiAxOwogKwotICAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUpKQotICAgICB7Ci0g ICAgIGNhc2UgVFlQRV9DT0RFX1JBTkdFOgotQEAgLTE2MzEsMTEgKzE2NjIsMTkgQEAgaXNfZHlu YW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdAorICAgLyogVHlwZXMgdGhhdCBoYXZl IGEgZHluYW1pYyBUWVBFX0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKKyAgICAgIGR5bmFt aWMsIGV2ZW4gaWYgdGhlIHR5cGUgaXRzZWxmIGlzIHN0YXRpY2FsbHkgZGVmaW5lZC4KKyAgICAg IEZyb20gYSB1c2VyJ3MgcG9pbnQgb2YgdmlldywgdGhpcyBtYXkgYXBwZWFyIGNvdW50ZXItaW50 dWl0aXZlOworQEAgLTE2NTYsMTEgKzE2ODcsMTkgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFs IChzdHJ1Y3QgdHlwZSAqdAogICAgICAgIHsKICAJZ2RiX2Fzc2VydCAoVFlQRV9ORklFTERTICh0 eXBlKSA9PSAxKTsKICAKQEAgLTk1OSw3ICs3NDUsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9n ZGJ0eXBlcy5jCiAgICAgICAgfQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6Ci1AQCAt MTY0OCw2ICsxNjg3LDE3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUg KnQKK0BAIC0xNjczLDYgKzE3MTIsMTcgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1 Y3QgdHlwZSAqdAogIAkgICAgICAmJiBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfRklF TERfVFlQRSAodHlwZSwgaSksIDApKQogIAkgICAgcmV0dXJuIDE7CiAgICAgICAgfQpAQCAtOTc3 LDIwICs3NjMsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAgICAgICAgYnJl YWs7CiAgICAgIH0KICAKLUBAIC0xNjY2LDIyICsxNzE2LDIzIEBAIHN0YXRpYyBzdHJ1Y3QgdHlw ZSAqcmVzb2x2ZV9keW5hbWljX3R5cGUKLSAJCQkJCQkgICBDT1JFX0FERFIgYWRkciwKLSAJCQkJ CQkgICBpbnQgdG9wX2xldmVsKTsKLSAKLS0vKiBHaXZlbiBhIGR5bmFtaWMgcmFuZ2UgdHlwZSAo ZHluX3JhbmdlX3R5cGUpLCByZXR1cm4gYSBzdGF0aWMgdmVyc2lvbgotLSAgIG9mIHRoYXQgdHlw ZS4gICovCi0rLyogR2l2ZW4gYSBkeW5hbWljIHJhbmdlIHR5cGUgKGR5bl9yYW5nZV90eXBlKSBh bmQgYWRkcmVzcywKLSsgICByZXR1cm4gYSBzdGF0aWMgdmVyc2lvbiBvZiB0aGF0IHR5cGUuICAq LwotIAotIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCi0tcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1 Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUpCi0rcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3Qg dHlwZSAqZHluX3JhbmdlX3R5cGUsIENPUkVfQUREUiBhZGRyKQotIHsKLSAgIENPUkVfQUREUiB2 YWx1ZTsKK0BAIC0xNzAxLDcgKzE3NTEsOCBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVj dCB0eXBlICpkeW5fCiAgICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGU7CiAgICBjb25z dCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOwogICAgY29uc3Qgc3RydWN0IGR3YXJmMl9sb2Nl eHByX2JhdG9uICpiYXRvbjsKQEAgLTEwMDAsMjIgKzc3Myw3IEBAIEluZGV4OiBnZGItNy44LjEv Z2RiL2dkYnR5cGVzLmMKICAKICAgIGdkYl9hc3NlcnQgKFRZUEVfQ09ERSAoZHluX3JhbmdlX3R5 cGUpID09IFRZUEVfQ09ERV9SQU5HRSk7CiAgCi0gICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAo ZHluX3JhbmdlX3R5cGUpLT5sb3c7Ci0tICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChw cm9wLCAmdmFsdWUpKQotKyAgaWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRk ciwgJnZhbHVlKSkKLSAgICAgewotICAgICAgIGxvd19ib3VuZC5raW5kID0gUFJPUF9DT05TVDsK LSAgICAgICBsb3dfYm91bmQuZGF0YS5jb25zdF92YWwgPSB2YWx1ZTsKLUBAIC0xNjkzLDcgKzE3 NDQsNyBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpkeW5fCi0gICAgIH0K LSAKLSAgIHByb3AgPSAmVFlQRV9SQU5HRV9EQVRBIChkeW5fcmFuZ2VfdHlwZSktPmhpZ2g7Ci0t ICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCAmdmFsdWUpKQotKyAgaWYgKGR3 YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVlKSkKLSAgICAgewotICAg ICAgIGhpZ2hfYm91bmQua2luZCA9IFBST1BfQ09OU1Q7Ci0gICAgICAgaGlnaF9ib3VuZC5kYXRh LmNvbnN0X3ZhbCA9IHZhbHVlOwotQEAgLTE3MDcsMTAgKzE3NTgsMTcgQEAgcmVzb2x2ZV9keW5h bWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXworQEAgLTE3MzIsMTAgKzE3ODMsMTcgQEAgcmVz b2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXwogICAgICAgIGhpZ2hfYm91bmQu a2luZCA9IFBST1BfVU5ERUZJTkVEOwogICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwg PSAwOwogICAgICB9CkBAIC0xMDM2LDE0ICs3OTQsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9n ZGJ0eXBlcy5jCiAgICBUWVBFX1JBTkdFX0RBVEEgKHN0YXRpY19yYW5nZV90eXBlKS0+ZmxhZ19i b3VuZF9ldmFsdWF0ZWQgPSAxOwogICAgcmV0dXJuIHN0YXRpY19yYW5nZV90eXBlOwogIH0KLUBA IC0xNzIwLDI5ICsxNzc4LDUyIEBAIHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUg KmR5bl8KLSAgICBvZiB0aGUgYXNzb2NpYXRlZCBhcnJheS4gICovCi0gCi0gc3RhdGljIHN0cnVj dCB0eXBlICoKLS1yZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlKQotK3Jl c29sdmVfZHluYW1pY19hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQUREUiBhZGRyKQot IHsKLSAgIENPUkVfQUREUiB2YWx1ZTsKK0BAIC0xNzUxLDIzICsxODA5LDQ2IEBAIHJlc29sdmVf ZHluYW1pY19hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUKICAgIHN0cnVjdCB0eXBlICplbHRfdHlw ZTsKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IHR5cGUgKmFyeV9kaW07 CkBAIC0xMDUyLDEzICs4MDMsMTIgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvZ2RidHlwZXMuYwog IAogLSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpOwog KyAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKLSsgICAg ICAgICAgICAgIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORyk7CisrCSAg ICAgIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORyk7CiAgCiAgICBlbHRf dHlwZSA9IHR5cGU7CiAgICByYW5nZV90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9JTkRFWF9U WVBFIChlbHRfdHlwZSkpOwotLSAgcmFuZ2VfdHlwZSA9IHJlc29sdmVfZHluYW1pY19yYW5nZSAo cmFuZ2VfdHlwZSk7Ci0rICByYW5nZV90eXBlID0gcmVzb2x2ZV9keW5hbWljX3JhbmdlIChyYW5n ZV90eXBlLCBhZGRyKTsKLSsKKyAgIHJhbmdlX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfcmFuZ2Ug KHJhbmdlX3R5cGUsIGFkZHIpOworIAogKyAgcHJvcCA9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5 cGUpOwogKyAgaWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVl KSkKICsgICAgewpAQCAtMTA3MiwxMSArODIyLDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dk YnR5cGVzLmMKICsgICAgICBUWVBFX0FTU09DSUFURURfUFJPUCAoY29weSktPmtpbmQgPSBQUk9Q X0NPTlNUOwogKyAgICAgIFRZUEVfQVNTT0NJQVRFRF9QUk9QIChjb3B5KS0+ZGF0YS5jb25zdF92 YWwgPSB2YWx1ZTsKICsgICAgfQotIAorKwogICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZ UEVfVEFSR0VUX1RZUEUgKGVsdF90eXBlKSk7CiAgCiAtICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYm IFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotLSAgICBlbHRfdHlwZSA9 IHJlc29sdmVfZHluYW1pY19hcnJheSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOworLSAgICBl bHRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSks IGFkZHIpOwogKyAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiAoVFlQRV9DT0RFIChhcnlfZGltKSA9 PSBUWVBFX0NPREVfQVJSQVkKICsgICAgICAgICAgfHwgVFlQRV9DT0RFIChhcnlfZGltKSA9PSBU WVBFX0NPREVfU1RSSU5HKSkKICsgICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkg KFRZUEVfVEFSR0VUX1RZUEUgKGNvcHkpLCBhZGRyKTsKQEAgLTEwODgsNDIgKzgzOCwxOCBAQCBJ bmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAtCQkJICAgIHJhbmdlX3R5cGUpOwogKyAg aWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORykKICsgICAgcmV0dXJuIGNy ZWF0ZV9zdHJpbmdfdHlwZSAoY29weSwKLSsgICAgICAgICAgICBlbHRfdHlwZSwKLSsgICAgICAg ICAgICByYW5nZV90eXBlKTsKKysJICAgIGVsdF90eXBlLAorKwkgICAgcmFuZ2VfdHlwZSk7CiAr ICBlbHNlCiArICAgIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZSAoY29weSwKLSsgICAgICAgICAg ICBlbHRfdHlwZSwKLSsgICAgICAgICAgICByYW5nZV90eXBlKTsKKysJICAgIGVsdF90eXBlLAor KwkgICAgcmFuZ2VfdHlwZSk7CiAgfQogIAogIC8qIFJlc29sdmUgZHluYW1pYyBib3VuZHMgb2Yg bWVtYmVycyBvZiB0aGUgdW5pb24gVFlQRSB0byBzdGF0aWMKLUBAIC0xODQ2LDYgKzE5MjcsOCBA QCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5Ci0gewotICAgc3RydWN0 IHR5cGUgKnJlYWxfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHR5cGUpOwotICAgc3RydWN0IHR5cGUg KnJlc29sdmVkX3R5cGUgPSB0eXBlOwotKyAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJv cDsKLSsgIENPUkVfQUREUiB2YWx1ZTsKLSAKLSAgIGlmICghaXNfZHluYW1pY190eXBlX2ludGVy bmFsIChyZWFsX3R5cGUsIHRvcF9sZXZlbCkpCi0gICAgIHJldHVybiB0eXBlOwotQEAgLTE4NzYs MTEgKzE5NTksMTIgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eQot IAkgIH0KLSAKLSAJY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0tCSAgcmVzb2x2ZWRfdHlwZSA9IHJl c29sdmVfZHluYW1pY19hcnJheSAodHlwZSk7Ci0rCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSsJ ICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5ICh0eXBlLCBhZGRyKTsKLSAJ ICBicmVhazsKLSAKLSAJY2FzZSBUWVBFX0NPREVfUkFOR0U6Ci0tCSAgcmVzb2x2ZWRfdHlwZSA9 IHJlc29sdmVfZHluYW1pY19yYW5nZSAodHlwZSk7Ci0rCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29s dmVfZHluYW1pY19yYW5nZSAodHlwZSwgYWRkcik7Ci0gCSAgYnJlYWs7Ci0gCi0gCWNhc2UgVFlQ RV9DT0RFX1VOSU9OOgotQEAgLTE4OTMsNiArMTk3NywyNSBAQCByZXNvbHZlX2R5bmFtaWNfdHlw ZV9pbnRlcm5hbCAoc3RydWN0IHR5Ci0gCX0KLSAgICAgfQorQEAgLTE5MzgsNiArMjAxOSwyNSBA QCByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5CisgICBlbHNlCisgICAg IFRZUEVfREFUQV9MT0NBVElPTiAocmVzb2x2ZWRfdHlwZSkgPSBOVUxMOwogIAogKyAgLyogUmVz b2x2ZSBkYXRhX2xvY2F0aW9uIGF0dHJpYnV0ZS4gICovCiArICBwcm9wID0gVFlQRV9EQVRBX0xP Q0FUSU9OIChyZXNvbHZlZF90eXBlKTsKQEAgLTExNDcsOCArODczLDggQEAgSW5kZXg6IGdkYi03 LjguMS9nZGIvZ2RidHlwZXMuYwogICAgcmV0dXJuIHJlc29sdmVkX3R5cGU7CiAgfQogIAotQEAg LTQxMTAsNiArNDIxMywyNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqCi0gICAgICAgKlRZUEVfUkFOR0VfREFUQSAobmV3X3R5cGUpID0gKlRZUEVfUkFOR0VfREFU QSAodHlwZSk7CitAQCAtNDE3NCw2ICs0Mjc0LDI3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0 cnVjdCBvYmpmaWxlICpvYmoKKyAJICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7 CiAgICAgIH0KICAKICsgIC8qIENvcHkgdGhlIGRhdGEgbG9jYXRpb24gaW5mb3JtYXRpb24uICAq LwpAQCAtMTE3NSw5ICs5MDEsOSBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5jCiAg ICAvKiBDb3B5IHBvaW50ZXJzIHRvIG90aGVyIHR5cGVzLiAgKi8KICAgIGlmIChUWVBFX1RBUkdF VF9UWVBFICh0eXBlKSkKICAgICAgVFlQRV9UQVJHRVRfVFlQRSAobmV3X3R5cGUpID0gCi1AQCAt NDE1Niw2ICs0MjgwLDQ0IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0g ICBtZW1jcHkgKFRZUEVfTUFJTl9UWVBFIChuZXdfdHlwZSksIFRZUEVfTUFJTl9UWVBFICh0eXBl KSwKLSAJICBzaXplb2YgKHN0cnVjdCBtYWluX3R5cGUpKTsKK0BAIC00MjI3LDYgKzQzNDgsNDQg QEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKyAJICAgICAgc2l6ZW9mIChz dHJ1Y3QgZHluYW1pY19wcm9wKSk7CisgICAgIH0KICAKICsgIGlmIChUWVBFX0FMTE9DQVRFRF9Q Uk9QICh0eXBlKSkKICsgICAgewpAQCAtMTIyMCwxMSArOTQ2LDExIEBAIEluZGV4OiBnZGItNy44 LjEvZ2RiL2dkYnR5cGVzLmMKICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgDAotSW5kZXg6IGdk Yi03LjguMS9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2dk YnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvZ2RidHlwZXMuaAky MDE0LTEyLTEzIDE1OjUyOjA3LjcwODMxMDI2MyArMDEwMAotKysrIGdkYi03LjguMS9nZGIvZ2Ri dHlwZXMuaAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNTMwNzEzMCArMDEwMAotQEAgLTY3MCw2ICs2 NzAsMTAgQEAgc3RydWN0IG1haW5fdHlwZQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9n ZGIvZ2RidHlwZXMuaAkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wMS0wNiAyMzowMzowNy40Mjk2 ODQ3NzcgKzAxMDAKK0BAIC02NjAsNiArNjYwLDEwIEBAIHN0cnVjdCBtYWluX3R5cGUKICAKICAg ICAgICBzdHJ1Y3QgZHluYW1pY19wcm9wIGhpZ2g7CiAgCkBAIC0xMjM1LDE1ICs5NjEsMTAgQEAg SW5kZXg6IGdkYi03LjguMS9nZGIvZ2RidHlwZXMuaAogICAgICAgIC8qIFRydWUgaWYgSElHSCBy YW5nZSBib3VuZCBjb250YWlucyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoZQogIAkgc3Vi cmFuZ2UuIFRoaXMgYWZmZWN0cyBob3cgdGhlIGZpbmFsIGhpZ2h0IGJvdW5kIGlzIGNvbXB1dGVk LiAgKi8KICAKLUBAIC03MjUsNiArNzI5LDIzIEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC03MjAs NiArNzI0LDE4IEBAIHN0cnVjdCBtYWluX3R5cGUKKyAgICAgIHRoaXMgZmllbGQgeWllbGRzIHRv IHRoZSBsb2NhdGlvbiBvZiB0aGUgZGF0YSBmb3IgYW4gb2JqZWN0LiAgKi8KICAKLSAgICAgc3Ry dWN0IGZ1bmNfdHlwZSAqZnVuY19zdHVmZjsKLSAgIH0gdHlwZV9zcGVjaWZpYzsKLSsKLSsgIC8q ICogQ29udGFpbnMgYSBsb2NhdGlvbiBkZXNjcmlwdGlvbiB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQg dHlwZS4gRXZhbHVhdGluZwotKyAgICAgdGhpcyBmaWVsZCB5aWVsZHMgdG8gdGhlIGxvY2F0aW9u IG9mIHRoZSBkYXRhIGZvciBhbiBvYmplY3QuICAqLwotKwotKyAgc3RydWN0IGR5bmFtaWNfcHJv cCAqZGF0YV9sb2NhdGlvbjsKKyAgIHN0cnVjdCBkeW5hbWljX3Byb3AgKmRhdGFfbG9jYXRpb247 CiArCiArICAvKiBTdHJ1Y3R1cmUgZm9yIERXX0FUX2FsbG9jYXRlZC4KICsgICAgIFRoZSBwcmVz ZW5jZSBvZiB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgb2JqZWN0IG9mIHRoZSB0 eXBlCkBAIC0xMjU5LDcgKzk4MCw3IEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL2dkYnR5cGVzLmgK ICB9OwogIAogIC8qICogQSBgYHN0cnVjdCB0eXBlJycgZGVzY3JpYmVzIGEgcGFydGljdWxhciBp bnN0YW5jZSBvZiBhIHR5cGUsIHdpdGgKLUBAIC0xMjAzLDYgKzEyMjQsMzkgQEAgZXh0ZXJuIHZv aWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorQEAgLTExOTgsNiArMTIxNCwzOSBAQCBl eHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CiAgICBUWVBFX1JBTkdFX0RB VEEocmFuZ2VfdHlwZSktPmhpZ2gua2luZAogICNkZWZpbmUgVFlQRV9MT1dfQk9VTkRfS0lORChy YW5nZV90eXBlKSBcCiAgICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmxvdy5raW5kCkBA IC0xMjk3LDkgKzEwMTgsOSBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5oCiArICAm JiBUWVBFX0FTU09DSUFURURfUFJPUCAodCktPmtpbmQgPT0gUFJPUF9DT05TVCBcCiArICAmJiAh VFlQRV9BU1NPQ0lBVEVEX1BST1AgKHQpLT5kYXRhLmNvbnN0X3ZhbCkKICAKLSAvKiBNb3RvLXNw ZWNpZmljIHN0dWZmIGZvciBGT1JUUkFOIGFycmF5cy4gICovCi0gCi1AQCAtMTIxMCw2ICsxMjY0 LDkgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorIC8qIEF0dHJp YnV0ZSBhY2Nlc3NvcnMgZm9yIHRoZSB0eXBlIGRhdGEgbG9jYXRpb24uICAqLworICNkZWZpbmUg VFlQRV9EQVRBX0xPQ0FUSU9OKHRoaXN0eXBlKSBcCitAQCAtMTIxNSw2ICsxMjY0LDkgQEAgZXh0 ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQogICAgIFRZUEVfSElHSF9CT1VO RF9VTkRFRklORUQoVFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCiAgI2RlZmluZSBUWVBFX0FS UkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRChhcnJheXR5cGUpIFwKICAgICBUWVBFX0xPV19C T1VORF9VTkRFRklORUQoVFlQRV9JTkRFWF9UWVBFKGFycmF5dHlwZSkpCkBAIC0xMzA5LDcgKzEw MzAsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5oCiAgCiAgI2RlZmluZSBUWVBF X0FSUkFZX1VQUEVSX0JPVU5EX1ZBTFVFKGFycmF5dHlwZSkgXAogICAgIChUWVBFX0hJR0hfQk9V TkQoVFlQRV9JTkRFWF9UWVBFKChhcnJheXR5cGUpKSkpCi1AQCAtMTY3OCw2ICsxNzM1LDcgQEAg ZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZV93aQorQEAgLTE2ODUsNiArMTcz Nyw3IEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5cGVfd2kKICAKICBleHRl cm4gc3RydWN0IHR5cGUgKmNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3Qg dHlwZSAqLAogIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqLApAQCAtMTMx NywxMCArMTAzOCwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi9nZGJ0eXBlcy5oCiAgCQkJCSAg ICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlw ZSAqY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi1JbmRl eDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4 cAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtYWxsb2MtYXNzb2MuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNTMwNzEz MCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtYWxsb2MtYXNzb2MuZXhwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0Nzc3ICswMTAw CiBAQCAtMCwwICsxLDY1IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICsKQEAgLTEzODcsMTAgKzExMDgsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hbGxvYy1hc3NvYy5leHAKICtnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAidmxhMi1kZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgbCIg IiA9IFxcLkZBTFNFXFwuIiAicHJpbnQgdmxhMiBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHJp bnQgdmxhMiIgIiA9IDxub3QgYWxsb2NhdGVkPiIgInByaW50IGRlYWxsb2NhdGVkIHZsYTIiCi1J bmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5l eHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLWRhdGF0eXBlcy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNTMwNzEzMCAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtZGF0YXR5cGVzLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQyOTY4NDc3NyArMDEwMAogQEAg LTAsMCArMSw4MiBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0xNDc0LDEwICsxMTk1LDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAogKyAgInByaW50IGxvZ2ljYWx2 bGEoNSw1LDUpICgybmQpIgogK2dkYl90ZXN0ICJwcmludCBjaGFyYWN0ZXJ2bGEoNSw1LDUpIiAi ID0gJ1gnIiBcCiArICAicHJpbnQgY2hhcmFjdGVydmxhKDUsNSw1KSAoMm5kKSIKLUluZGV4OiBn ZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAorSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0 YXR5cGVzLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1kYXRhdHlwZXMuZjkwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI1MzA3MTMwICswMTAwCisr KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRh dHlwZXMuZjkwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDI5Njg0Nzc3ICswMTAwCiBAQCAtMCwwICsx LDUxIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICshCkBAIC0xNTMwLDEwICsxMjUxLDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmY5MAogKyAgISBkdW1teSBzdGF0ZW1lbnQgZm9y IGJwCiArICBsID0gLkZBTFNFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgISB2bGFzLW1v ZGlmaWVkCiArZW5kIHByb2dyYW0gdmxhX3ByaW1pdGl2ZXMKLUluZGV4OiBnZGItNy44LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKK0luZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCTIwMTQtMTIt MTMgMTU6NTI6MTAuODI1MzA3MTMwICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQz MDY4NDc4MiArMDEwMAogQEAgLTAsMCArMSw2MSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNTk2LDEwICsxMzE3LDEwIEBAIEluZGV4 OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKICsgICJw cmludCB2bGEzIChhZnRlciBmdW5jMikiCiArZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0g aW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKICsgICJwdHlwZSB2bGEzIChhZnRl ciBmdW5jMikiCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LWZ1bmMuZjkwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1mdW5jLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNjMwNzEyOSArMDEw MAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt ZnVuYy5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKIEBAIC0wLDAgKzEs NzEgQEAKICshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KyEKQEAgLTE2NzIsMTAgKzEzOTMsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAogKwogKyAgcmV0ID0gLlRSVUUuICAgICAgICAgICAg ICAgICEgZnVuYzItcmV0dXJuZWQKICtlbmQgcHJvZ3JhbSB2bGFfZnVuYwotSW5kZXg6IGdkYi03 LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlz dG9yeS5leHAJMjAxNC0xMi0xMyAxNTo1MjoxMC44MjYzMDcxMjkgKzAxMDAKKysrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCTIw MTUtMDEtMDYgMjM6MDM6MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCwwICsxLDYyIEBACiArIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE3Mzks MTAgKzE0NjAsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1oaXN0b3J5LmV4cAogKyMgVHJ5IHRvIGFjY2VzcyBoaXN0b3J5IHZhbHVlcyBmb3Igdmxh IHZhbHVlcy4KICtnZGJfdGVzdCAicHJpbnQgXCQ5IiAiID0gMTMxMSIgInByaW50IFwkOSIKICtn ZGJfdGVzdCAicHJpbnQgXCQxMCIgIiA9IDEwMDEiICJwcmludCBcJDEwIgotSW5kZXg6IGdkYi03 LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1zdWIuZXhwCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS1z dWIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXB0eXBlLXN1Yi5leHAJMjAxNC0xMi0xMyAxNTo1MjoxMC44MjYzMDcxMjkgKzAxMDAKKysrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLXN1 Yi5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzA2ODQ3ODIgKzAxMDAKIEBAIC0wLDAgKzEsODcg QEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMTgzMSwxMCArMTU1MiwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXB0eXBlLXN1Yi5leHAKICsgICJwdHlwZSBhcnJheTEoMTAwKSAoYXJiaXRy YXJ5IGxlbmd0aCkiCiArZ2RiX3Rlc3QgInB0eXBlIGFycmF5Mig0LDEwMCkiICJ0eXBlID0gaW50 ZWdlclxcXChraW5kPTRcXFwpIiBcCiArICAicHR5cGUgYXJyYXkyKDQsMTAwKSAoYXJiaXRyYXJ5 IGxlbmd0aCkiCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXB0eXBlLmV4cAorSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtcHR5cGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNjMwNzEyOSAr MDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtcHR5cGUuZXhwCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCww ICsxLDk2IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KICsKQEAgLTE5MzIsMTAgKzE2NTMsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKICtnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0 NSwgMjApIiBcCiArICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNlIG5vdCBhbGxvY2F0 ZWQiIFwKICsgICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkgbm90IGFsbG9jYXRlZCIKLUluZGV4OiBn ZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9mLmV4cAorSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc2l6ZW9m LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1z aXplb2YuZXhwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI2MzA3MTI5ICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhwCTIw MTUtMDEtMDYgMjM6MDM6MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCwwICsxLDQ2IEBACiArIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE5ODMs MTAgKzE3MDQsMTAgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1zaXplb2YuZXhwCiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2 bGEtYXNzb2NpYXRlZCJdCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2Np YXRlZCIKICtnZGJfdGVzdCAicHJpbnQgc2l6ZW9mKHB2bGEpIiAiID0gNDAwMCIgInByaW50IHNp emVvZiBhc3NvY2lhdGVkIHB2bGEiCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAkyMDE0LTEyLTEzIDE1OjUy OjEwLjgyNjMwNzEyOSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4 MiArMDEwMAogQEAgLTAsMCArMSw0NCBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMDMyLDEwICsxNzUzLDEwIEBAIEluZGV4OiBnZGIt Ny44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAogK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIKICtnZGJfdGVzdCAicHJpbnQgcHZs YSIgIiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50IgogK2dkYl90ZXN0ICJwcmlu dCBwdmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGIt Ny44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAorSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5 MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJp ZGUuZjkwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI2MzA3MTI5ICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCTIwMTUt MDEtMDYgMjM6MDM6MDcuNDMwNjg0NzgyICswMTAwCiBAQCAtMCwwICsxLDMwIEBACiArISBDb3B5 cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMDY3LDEw ICsxNzg4LDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3RyaWRlLmY5MAogKwogKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1l bnQKICtlbmQgcHJvZ3JhbSB2bGFfc3RyaWRlCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE0LTEy LTEzIDE1OjUyOjEwLjgyNjMwNzEyOSArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAJMjAxNS0wMS0wNiAyMzowMzow Ny40MzA2ODQ3ODIgKzAxMDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAxNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIxNzYsMTAgKzE4OTcsMTAgQEAg SW5kZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4 cAogKyAgIndoYXRpcyB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInB0 eXBlIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIg XAogKyAgInB0eXBlIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKLUluZGV4OiBnZGItNy44 LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKK0luZGV4OiBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlu Z3MuZjkwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI2MzA3MTI5ICswMTAwCisrKysgZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAkyMDE1 LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAogQEAgLTAsMCArMSw0MCBAQAogKyEgQ29w eXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjIyMSwx MCArMTk0MiwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN0cmluZ3MuZjkwCiArICB2YXJfY2hhcl9wID0+IG51bGwoKQogKyAgbCA9IGFzc29jaWF0 ZWQodmFyX2NoYXJfcCkgICAgICAgICAgICAgICEgdmFyX2NoYXJfcC1ub3QtYXNzb2NpYXRlZAog K2VuZCBwcm9ncmFtIHZsYV9zdHJpbmdzCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3ViLmY5MAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgy NzMwNzEyOCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtc3ViLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMDY4NDc4MiArMDEwMAog QEAgLTAsMCArMSw4MiBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArIQpAQCAtMjMwOCwxMCArMjAyOSwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAKICsKICsgIGNhbGwgYmFyKHN1Yl9h cnIzLCBzdWJfYXJyMSkKICtlbmQgcHJvZ3JhbSB2bGFfc3ViCi1JbmRleDogZ2RiLTcuOC4xL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJhcnkuZXhwCitJbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1 ZS1zdWItYXJiaXRyYXJ5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEw LjgyNzMwNzEyOCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAJMjAxNS0wMS0wNiAyMzowMzow Ny40MzA2ODQ3ODIgKzAxMDAKIEBAIC0wLDAgKzEsMzUgQEAKICsjIENvcHlyaWdodCAyMDE0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjM0OCwxMCArMjA2OSwxMCBAQCBJ bmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1h cmJpdHJhcnkuZXhwCiArZ2RiX3Rlc3QgInAgYXJyYXkxKDEwMCkiICIgPSAxMDAiICJwcmludCBh cmJpdGFyeSBhcnJheTEoMTAwKSIKICtnZGJfdGVzdCAicCBhcnJheTIoNCwxMCkiICIgPSAxIiAi cHJpbnQgYXJiaXRhcnkgYXJyYXkyKDQsMTApIgogK2dkYl90ZXN0ICJwIGFycmF5Mig0LDEwMCki ICIgPSAxIiAicHJpbnQgYXJiaXRhcnkgYXJyYXkyKDQsMTAwKSIKLUluZGV4OiBnZGItNy44LjEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAKK0luZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVl LXN1Yi1maW5pc2guZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI3MzA3 MTI4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS12YWx1ZS1zdWItZmluaXNoLmV4cAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4 NyArMDEwMAogQEAgLTAsMCArMSw0OSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yNDAyLDEwICsyMTIzLDEwIEBAIEluZGV4OiBnZGIt Ny44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAK ICtnZGJfdGVzdCAicCBzdWJfYXJyMigxLCAxLCAxKSIgIiA9IDMwIiAic3ViX2FycjIoMSwgMSwg MSkgYWZ0ZXIgZmluaXNoIgogK2dkYl90ZXN0ICJwIHN1Yl9hcnIyKDIsIDEsIDEpIiAiID0gMjAi ICJzdWJfYXJyMigyLCAxLCAxKSBhZnRlciBmaW5pc2giCiArCi1JbmRleDogZ2RiLTcuOC4xL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUt c3ViLmV4cAkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyNzMwNzEyOCArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLmV4cAky MDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAogQEAgLTAsMCArMSw5MCBAQAogKyMg Q29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yNDk3 LDEwICsyMjE4LDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtdmFsdWUtc3ViLmV4cAogKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAgaW4gc3Vicm91 dGluZSAocGFzc2VkIHZsYSkiCiArZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwo ICpcXCggKjMwLCAqMjAsICozLFxbKCkzLCAuXF0qXFwpIiBcCiArICAicHJpbnQgYXJyYXkyIGlu IGZvbyBhZnRlciBpdCB3YXMgbW9maWZpZWQgaW4gZGVidWdnZXIgKHBhc3NlZCB2bGEpIgotSW5k ZXg6IGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKK0lu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZh bHVlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS12YWx1ZS5leHAJMjAxNC0xMi0xMyAxNTo1MjoxMC44MjczMDcxMjggKzAxMDAKKysrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAky MDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAogQEAgLTAsMCArMSwxNDggQEAKICsj IENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjY1 MCwxMCArMjM3MSwxMCBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXZhbHVlLmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLWRlYXNz b2NpYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgXCRteXB2YXIoMSwzLDgpIiAiID0gMTAwMSIgXAog KyAgInByaW50IFwkbXlwdmFyKDEsMyw4KSBhZnRlciBkZWFsbG9jYXRlZCIKLUluZGV4OiBnZGIt Ny44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCitJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCTIwMTQtMTItMTMgMTU6 NTI6MTAuODI3MzA3MTI4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcgKzAx MDAKIEBAIC0wLDAgKzEsNTYgQEAKICshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgogKyEKQEAgLTI3MTEsMTAgKzI0MzIsMTAgQEAgSW5kZXg6IGdkYi03Ljgu MS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKICsgIGFsbG9jYXRlICh2bGEzICgy LDIpKSAgICAgICAgICAgICAgICEgdmxhMi1kZWFsbG9jYXRlZAogKyAgdmxhMyg6LDopID0gMTMK ICtlbmQgcHJvZ3JhbSB2bGEKLUluZGV4OiBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWktdmxhLWZvcnRyYW4uZXhwCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTQtMTItMTMgMTU6NTI6MTAuODI3 MzA3MTI4ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12bGEtZm9ydHJhbi5leHAJMjAxNS0wMS0wNiAyMzowMzowNy40MzE2ODQ3ODcgKzAxMDAK IEBAIC0wLDAgKzEsMTgyIEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICsKQEAgLTI4OTgsMTAgKzI2MTksMTAgQEAgSW5kZXg6IGdkYi03LjguMS9n ZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKICsKICttaV9nZGJfZXhpdAog K3JldHVybiAwCi1JbmRleDogZ2RiLTcuOC4xL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAK K0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy44LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAkyMDE0LTEy LTEzIDE1OjUyOjEwLjgyNzMwNzEyOCArMDEwMAorKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvdmxhLmY5MAkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyAr MDEwMAogQEAgLTAsMCArMSw0MiBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjk0NSwxMSArMjY2NiwxMSBAQCBJbmRleDogZ2RiLTcu OC4xL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAKICsgIHB2bGEyID0+IG51bGwoKQogKyAg bCA9IGFzc29jaWF0ZWQocHZsYTIpICAgICAgICEgcHZsYTItc2V0LXRvLW51bGwKICtlbmQgcHJv Z3JhbSB2bGEKLUluZGV4OiBnZGItNy44LjEvZ2RiL3R5cGVwcmludC5jCitJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEu b3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNC0xMi0xMyAxNTo1MjowNy43MTAzMTAyNjEgKzAxMDAK LSsrKyBnZGItNy44LjEvZ2RiL3R5cGVwcmludC5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODI4MzA3 MTI3ICswMTAwCi1AQCAtNDU5LDYgKzQ1OSwxMyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGlu dCBzaG93KQorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdHlwZXByaW50LmMJMjAx NS0wMS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi90eXBlcHJpbnQuYwkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMTY4NDc4NyArMDEwMAorQEAg LTQ1Niw2ICs0NTYsMTMgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKICAKICAg IHR5cGUgPSB2YWx1ZV90eXBlICh2YWwpOwogIApAQCAtMjk2MywxMSArMjY4NCwxMSBAQCBJbmRl eDogZ2RiLTcuOC4xL2dkYi90eXBlcHJpbnQuYwogICAgZ2V0X3VzZXJfcHJpbnRfb3B0aW9ucyAo Jm9wdHMpOwogICAgaWYgKG9wdHMub2JqZWN0cHJpbnQpCiAgICAgIHsKLUluZGV4OiBnZGItNy44 LjEvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YWxhcml0 aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNC0x Mi0xMyAxNTo1MjowNy43MTEzMTAyNjAgKzAxMDAKLSsrKyBnZGItNy44LjEvZ2RiL3ZhbGFyaXRo LmMJMjAxNC0xMi0xMyAxNTo1MjoxMC44MjgzMDcxMjcgKzAxMDAKLUBAIC0xOTUsMTIgKzE5NSwz MSBAQCB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCistLS0gZ2RiLTcu OC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMDYgMjI6NTE6MTcuNjYz MjQwOTA3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsYXJpdGguYwkyMDE1 LTAxLTA2IDIzOjAzOjA3LjQzMjY4NDc5MiArMDEwMAorQEAgLTE5MywxMiArMTkzLDMxIEBAIHZh bHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKICAgIHN0cnVjdCB0eXBlICph cnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICAgIHN0cnVj dCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5 X3R5cGUpKTsKICAgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHRfdHlw ZSk7CkBAIC0zMDAxLDExICsyNzIyLDExIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3ZhbGFyaXRo LmMKICAKICAgIGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVf bGF6eSAoYXJyYXkpKQogICAgICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAoZWx0X3R5cGUpOwot SW5kZXg6IGdkYi03LjguMS9nZGIvdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjEub3JpZy9nZGIvdmFs cHJpbnQuYwkyMDE0LTEyLTEzIDE1OjUyOjA3LjcxMjMxMDI1OSArMDEwMAotKysrIGdkYi03Ljgu MS9nZGIvdmFscHJpbnQuYwkyMDE0LTEyLTEzIDE1OjUyOjEwLjgyODMwNzEyNyArMDEwMAotQEAg LTMwNyw2ICszMDcsMTggQEAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxl CistLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMDEtMDYg MjI6NTE6MTcuNjYzMjQwOTA3ICswMTAwCisrKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFs cHJpbnQuYwkyMDE1LTAxLTA2IDIzOjAzOjA3LjQzMjY4NDc5MiArMDEwMAorQEAgLTMwMyw2ICsz MDMsMTggQEAgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVjdCB1aV9maWxlCiAgewogICAg Q0hFQ0tfVFlQRURFRiAodHlwZSk7CiAgCkBAIC0zMDI0LDcgKzI3NDUsNyBAQCBJbmRleDogZ2Ri LTcuOC4xL2dkYi92YWxwcmludC5jCiAgICBpZiAoVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NP REVfVU5JT04KICAgICAgICAmJiBUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9TVFJVQ1QK ICAgICAgICAmJiBUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9BUlJBWSkKLUBAIC0zNjIs NiArMzc0LDE4IEBAIHZhbF9wcmludF9pbnZhbGlkX2FkZHJlc3MgKHN0cnVjdCB1aV9maWwKK0BA IC0zNTksNiArMzcxLDE4IEBAIHZhbF9wcmludF9pbnZhbGlkX2FkZHJlc3MgKHN0cnVjdCB1aV9m aWwKICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgXygiPGludmFsaWQgYWRkcmVzcz4iKSk7 CiAgfQogIApAQCAtMzA0Myw3ICsyNzY0LDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFscHJp bnQuYwogIC8qIEEgZ2VuZXJpYyB2YWxfcHJpbnQgdGhhdCBpcyBzdWl0YWJsZSBmb3IgdXNlIGJ5 IGxhbmd1YWdlCiAgICAgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBsYV92YWxfcHJpbnQgbWV0aG9k LiAgVGhpcyBmdW5jdGlvbiBjYW4KICAgICBoYW5kbGUgbW9zdCB0eXBlIGNvZGVzLCB0aG91Z2gg bm90IGFsbCwgbm90YWJseSBleGNlcHRpb24KLUBAIC04MDMsMTIgKzgyNywxNiBAQCBzdGF0aWMg aW50CitAQCAtODAwLDEyICs4MjQsMTYgQEAgc3RhdGljIGludAogIHZhbHVlX2NoZWNrX3ByaW50 YWJsZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkgICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewpAQCAtMzA2 MCw3ICsyNzgxLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFscHJpbnQuYwogICAgaWYgKHZh bHVlX2VudGlyZWx5X29wdGltaXplZF9vdXQgKHZhbCkpCiAgICAgIHsKICAgICAgICBpZiAob3B0 aW9ucy0+c3VtbWFyeSAmJiAhdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHZhbHVlX3R5cGUgKHZh bCkpKQotQEAgLTgzNCw2ICs4NjIsMTggQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3Qg dmFsdWUgKnZhbAorQEAgLTgzMSw2ICs4NTksMTggQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChz dHJ1Y3QgdmFsdWUgKnZhbAogICAgICAgIHJldHVybiAwOwogICAgICB9CiAgCkBAIC0zMDc5LDEw ICsyODAwLDEwIEBAIEluZGV4OiBnZGItNy44LjEvZ2RiL3ZhbHByaW50LmMKICAgIHJldHVybiAx OwogIH0KICAKLUluZGV4OiBnZGItNy44LjEvZ2RiL3ZhbHByaW50LmgKK0luZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi92YWxwcmludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC4xLm9y aWcvZ2RiL3ZhbHByaW50LmgJMjAxNC0xMi0xMyAxNTo1MjowNy43MTIzMTAyNTkgKzAxMDAKLSsr KyBnZGItNy44LjEvZ2RiL3ZhbHByaW50LmgJMjAxNC0xMi0xMyAxNTo1MjoxMC44MjgzMDcxMjcg KzAxMDAKKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0w MS0wNiAyMjo1MToxNy42NjMyNDA5MDcgKzAxMDAKKysrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi92YWxwcmludC5oCTIwMTUtMDEtMDYgMjM6MDM6MDcuNDMyNjg0NzkyICswMTAwCiBAQCAtMjE3 LDQgKzIxNyw4IEBAIGV4dGVybiB2b2lkIG91dHB1dF9jb21tYW5kX2NvbnN0IChjb25zdAogIAog IGV4dGVybiBpbnQgdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKTsK QEAgLTMwOTIsMTEgKzI4MTMsMTEgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFscHJpbnQuaAog K2V4dGVybiB2b2lkIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSk7CiArCiAgI2VuZGlmCi1JbmRleDogZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCitJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdmFsdWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu MS5vcmlnL2dkYi92YWx1ZS5jCTIwMTQtMTItMTMgMTU6NTI6MDcuNzEzMzEwMjU4ICswMTAwCi0r KysgZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCTIwMTQtMTItMTMgMTU6NTI6MTAuODI5MzA3MTI2ICsw MTAwCi1AQCAtNDMsNiArNDMsNyBAQAorLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv dmFsdWUuYwkyMDE1LTAxLTA2IDIyOjUxOjE3LjY2MzI0MDkwNyArMDEwMAorKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3ZhbHVlLmMJMjAxNS0wMS0wNiAyMzowMzowNy40MzM2ODQ3OTcgKzAx MDAKK0BAIC00MCw2ICs0MCw3IEBACiAgI2luY2x1ZGUgInRyYWNlcG9pbnQuaCIKICAjaW5jbHVk ZSAiY3AtYWJpLmgiCiAgI2luY2x1ZGUgInVzZXItcmVncy5oIgpAQCAtMzEwNCw3ICsyODI1LDcg QEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFsdWUuYwogIAogIC8qIFByb3RvdHlwZXMgZm9yIGV4 cG9ydGVkIGZ1bmN0aW9ucy4gICovCiAgCi1AQCAtMTY0OSw2ICsxNjUwLDI1IEBAIHNldF92YWx1 ZV9jb21wb25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWwKK0BAIC0xNzU1LDYgKzE3NTYsMjUgQEAg c2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbAogICAgICAgIGlmIChmdW5j cy0+Y29weV9jbG9zdXJlKQogICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5jb21wdXRlZC5j bG9zdXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwogICAgICB9CkBAIC0zMTMwLDcg KzI4NTEsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCiAgfQogIAogIAwKLUBAIC0y OTUzLDEzICsyOTczLDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICph cmcKK0BAIC0zMDQxLDEzICszMDYxLDIyIEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0 IHZhbHVlICphcmcKICAJdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwogICAgICAgIGVs c2UKICAJewpAQCAtMzE1OSw3ICsyODgwLDcgQEAgSW5kZXg6IGdkYi03LjguMS9nZGIvdmFsdWUu YwogICAgICB9CiAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uICh2LCBhcmcxKTsKICAg IFZBTFVFX1JFR05VTSAodikgPSBWQUxVRV9SRUdOVU0gKGFyZzEpOwotQEAgLTM1NDIsNyArMzU3 MSw4IEBAIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWwKK0BAIC0zNjM1 LDcgKzM2NjQsOCBAQCByZWFkanVzdF9pbmRpcmVjdF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsCiAg CQkJICAgICAgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSkKICB7CiAgICAvKiBSZS1hZGp1 c3QgdHlwZS4gICovCkBAIC0zMTY5LDcgKzI4OTAsNyBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi92 YWx1ZS5jCiAgCiAgICAvKiBBZGQgZW1iZWRkaW5nIGluZm8uICAqLwogICAgc2V0X3ZhbHVlX2Vu Y2xvc2luZ190eXBlICh2YWx1ZSwgZW5jX3R5cGUpOwotQEAgLTM1NTksNiArMzU4OSwxMiBAQCBj b2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKmFyZykKK0BAIC0zNjUyLDYgKzM2ODIsMTIgQEAgY29l cmNlX3JlZiAoc3RydWN0IHZhbHVlICphcmcpCiAgICBzdHJ1Y3QgdmFsdWUgKnJldHZhbDsKICAg IHN0cnVjdCB0eXBlICplbmNfdHlwZTsKICAKQEAgLTMxODIsNyArMjkwMyw3IEBAIEluZGV4OiBn ZGItNy44LjEvZ2RiL3ZhbHVlLmMKICAgIHJldHZhbCA9IGNvZXJjZV9yZWZfaWZfY29tcHV0ZWQg KGFyZyk7CiAgICBpZiAocmV0dmFsKQogICAgICByZXR1cm4gcmV0dmFsOwotQEAgLTM3MDIsOCAr MzczOCwxNCBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC0zNzg2 LDggKzM4MjIsMTQgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCiAgICAg IH0KICAgIGVsc2UgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIHsK QEAgLTMxOTgsMyArMjkxOSwzOSBAQCBJbmRleDogZ2RiLTcuOC4xL2dkYi92YWx1ZS5jCiAgCiAg ICAgICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSkKICAJcmVhZF92YWx1ZV9tZW1vcnkgKHZhbCwg MCwgdmFsdWVfc3RhY2sgKHZhbCksCitJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdh cmYybG9jLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2R3 YXJmMmxvYy5jCTIwMTQtMTItMjggMDI6NDg6NDMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvZHdhcmYybG9jLmMJMjAxNS0wMS0wNiAyMzowNTo1NS4yOTY0OTky ODcgKzAxMDAKK0BAIC0yMzI2LDYgKzIzNDYsMTEgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNj X2Z1bGwgKHN0cnVjdCB0eQorIAkgICAgaW50IGluX3N0YWNrX21lbW9yeSA9IGR3YXJmX2V4cHJf ZmV0Y2hfaW5fc3RhY2tfbWVtb3J5IChjdHgsIDApOworIAorIAkgICAgZG9fY2xlYW51cHMgKHZh bHVlX2NoYWluKTsKKysKKysJICAgIC8qIFNlbGVjdCByaWdodCBmcmFtZSB0byBjb3JyZWN0bHkg ZXZhbHVhdGUgVkxBJ3MgZHVyaW5nIGEgYmFja3RyYWNlLiAgKi8KKysJICAgIGlmIChpc19keW5h bWljX3R5cGUgKHR5cGUpKQorKwkgICAgICBzZWxlY3RfZnJhbWUgKGZyYW1lKTsKKysKKyAJICAg IHJldHZhbCA9IHZhbHVlX2F0X2xhenkgKHR5cGUsIGFkZHJlc3MgKyBieXRlX29mZnNldCk7Cisg CSAgICBpZiAoaW5fc3RhY2tfbWVtb3J5KQorIAkgICAgICBzZXRfdmFsdWVfc3RhY2sgKHJldHZh bCwgMSk7CitAQCAtMjU0Niw2ICsyNTQ2LDE5IEBAIGR3YXJmMl9jb21waWxlX3Byb3BlcnR5X3Rv X2MgKHN0cnVjdCB1aV8KKyAJCQkgICAgIGRhdGEsIGRhdGEgKyBzaXplLCBwZXJfY3UpOworIH0K KyAKKysvKiBTZWUgZHdhcmYybG9jLmguICAqLworKworK2ludAorK2R3YXJmMl9hZGRyZXNzX2Rh dGFfdmFsaWQgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorK3sKKysgIGlmIChUWVBFX05PVF9B U1NPQ0lBVEVEICh0eXBlKSkKKysgICAgcmV0dXJuIDA7CisrCisrICBpZiAoVFlQRV9OT1RfQUxM T0NBVEVEICh0eXBlKSkKKysgICAgcmV0dXJuIDA7CisrCisrICByZXR1cm4gMTsKKyt9CisgDAor IC8qIEhlbHBlciBmdW5jdGlvbnMgYW5kIGJhdG9uIGZvciBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNf ZnJhbWUuICAqLworIAoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggYjc3 YjcwYi4uYTE1OTJjNSAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTIx LDEyICsyMSwxMiBAQCBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogJWdsb2JhbCBzbmFwc3JjICAg IDIwMTQwNjExCiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291cmNlIGdudWxpYiBpbnN0YWxsZWQgaW50 byBnZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVsaWIgMjAxMjEyMTMKLSVnbG9iYWwgdGFy bmFtZSBnZGItJXt2ZXJzaW9ufS4yMDE0MTIyOAotVmVyc2lvbjogNy44LjEKKyVnbG9iYWwgdGFy bmFtZSBnZGItJXt2ZXJzaW9ufQorVmVyc2lvbjogNy44LjUwLjIwMTUwMTA4CiAKICMgVGhlIHJl bGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0 IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxs eSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTog MzYlez9kaXN0fQorUmVsZWFzZTogMSV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BM djMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25z IGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwK IEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTIxOSw3ICsyMTksNyBAQCBQYXRjaDIz MTogZ2RiLTYuMy1iejIwMjY4OS1leGVjLWZyb20tcHRocmVhZC10ZXN0LnBhdGNoCiAKICMgQmFj a3BvcnRlZCBmaXh1cHMgcG9zdCB0aGUgc291cmNlIHRhcmJhbGwuCiAjWGRyb3A6IEp1c3QgYmFj a3BvcnRzLgotUGF0Y2gyMzI6IGdkYi11cHN0cmVhbS5wYXRjaAorI1BhdGNoMjMyOiBnZGItdXBz dHJlYW0ucGF0Y2gKIAogIyBUZXN0Y2FzZSBmb3IgUFBDIFBvd2VyNi9ERlAgaW5zdHJ1Y3Rpb25z IGRpc2Fzc2VtYmx5IChCWiAyMzAwMDApLgogIz1mZWRvcmF0ZXN0K3BwYwpAQCAtNTA2LDQzICs1 MDYsMzMgQEAgUGF0Y2g4NDg6IGdkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaAogUGF0 Y2g4NTI6IGdkYi1nbmF0LWR3YXJmLWNyYXNoLTNvZjMucGF0Y2gKIAogIyBWTEEgKEZvcnRyYW4g ZHluYW1pYyBhcnJheXMpIGZyb20gSW50ZWwgKyBhcmNoZXItamFua3JhdG9jaHZpbC12bGEgdGVz dHMuCi1QYXRjaDg4NzogZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKIFBhdGNoODg4OiBnZGIt dmxhLWludGVsLnBhdGNoCi1QYXRjaDkxMjogZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNo CiBQYXRjaDg4OTogZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKLQotIyBGaXggLS13 aXRoLXN5c3RlbS1yZWFkbGluZSB3aXRoIHJlYWRsaW5lLTYuMyBwYXRjaCA1LgotUGF0Y2g5MTQ6 IGdkYi1yZWFkbGluZS02LjMuNS5wYXRjaAorUGF0Y2g5MTI6IGdkYi12bGEtaW50ZWwtMDRvZjIz LWZpeC5wYXRjaAorUGF0Y2g4ODc6IGdkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCiAKICMgQ29u dGludWUgYmFja3RyYWNlIGV2ZW4gaWYgYSBmcmFtZSBmaWx0ZXIgdGhyb3dzIGFuIGV4Y2VwdGlv biAoUGhpbCBNdWxkb29uKS4KIFBhdGNoOTE4OiBnZGItYnRyb2J1c3QucGF0Y2gKIAotIyBQeXRo b24gY29tcGxldGlvbiB3L292ZXJyaWRlbiBjb21wbGV0ZXIgKFNlcmdpbyBEdXJpZ2FuIEp1bmlv ciwgQlogMTA3NTE5OSkuCi1QYXRjaDkyMDogZ2RiLXB5dGhvbi1jb21wbGV0ZXItMW9mMi5wYXRj aAotUGF0Y2g5MjE6IGdkYi1weXRob24tY29tcGxldGVyLTJvZjIucGF0Y2gKLQogIyBEaXNwbGF5 IEZvcnRyYW4gc3RyaW5ncyBpbiBiYWNrdHJhY2VzLgogUGF0Y2g5MjU6IGdkYi1mb3J0cmFuLWZy YW1lLXN0cmluZy5wYXRjaAogCiAjIEZpeCBQeXRob24gR0lMIHdpdGggZ2RiLmV4ZWN1dGUoImNv bnRpbnVlIikgKFBoaWwgTXVsZG9vbiwgQlogMTExNjk1NykuCiBQYXRjaDkyNzogZ2RiLXB5dGhv bi1naWwucGF0Y2gKIAotIyBGaXggR0RCIFNJR1RUKiBTdG9wcGVkIHdoZW4gdXNpbmcgdGhlIFBJ RCBhcmd1bWVudCAoQlogMTEzNjcwNCwgUGVkcm8gQWx2ZXMpLgotUGF0Y2g5NzA6IGdkYi1hc3lu Yy1zdG9wcGVkLW9uLXBpZC1hcmctdGVzdHN1aXRlLnBhdGNoCi0KLSMgRml4ICJzYXZlIGJyZWFr cG9pbnRzIiBmb3Igc2lnbmFsIGNhdGNocG9pbnRzIGFuZCBkaXNhYmxlZCBicmVha3BvaW50cwot IyAoQlogMTE0NjE3MCwgTWlyb3NsYXYgRnJhbmMpLgotUGF0Y2g5NzE6IGdkYi1zYXZlLWJyZWFr cG9pbnRzLWZpeC5wYXRjaAotCiAjIEZpeCAnU2xvdyBnc3RhY2sgcGVyZm9ybWFuY2UnIChSSCBC WiAxMTAzODk0LCBKYW4gS3JhdG9jaHZpbCkuCiBQYXRjaDk3MzogZ2RiLXNsb3ctZ3N0YWNrLXBl cmZvcm1hbmNlLnBhdGNoCiAKLSMgQWNjZWxlcmF0ZSBpbnRlcmFjdGl2ZSBzeW1ib2xzIGxvb2t1 cCAxNXguCi1QYXRjaDk3NTogZ2RiLXN5bWJvbHMtbG9va3VwLWFjY2VsLnBhdGNoCisjIEZpeCAn Y29tcGlsZScgY29tcGlsYXRpb24gd2FybmluZy9lcnJvci4KK1BhdGNoOTc3OiBnZGItY29tcGls ZS13YXJuX3VudXNlZF9yZXN1bHQucGF0Y2gKKworIyBGaXggaml0LXJlYWRlci5oIGZvciBtdWx0 aS1saWIuCitQYXRjaDk3ODogZ2RiLWppdC1yZWFkZXItbXVsdGlsaWIucGF0Y2gKIAotIyBGaXgg J1tSRkVdIHBsZWFzZSBhZGQgYWRkLWF1dG8tbG9hZC1zY3JpcHRzLWRpcmVjdG9yeSBjb21tYW5k JyAoUkgKLSMgQlogMTE2MzMzOSwgSmFuIEtyYXRvY2h2aWwpLgotUGF0Y2g5NzY6IGdkYi1yaGJ6 MTE2MzMzOS1hZGQtYXV0by1sb2FkLXNjcmlwdHMtZGlyZWN0b3J5LnBhdGNoCisjIEZpeCBnZGIt Ny45cHJlIHJlZ3Jlc3Npb25zIC8gbmV3IEZBSUxzLgorUGF0Y2g5Nzk6IGdkYi02LjgtYno0NTcx ODctbGFyZ2VmaWxlLXRlc3QtcmVncmVzc2lvbi1maXgucGF0Y2gKK1BhdGNoOTgwOiBnZGItcHkt ZnJhbWUtcmlwLXRlc3QtZml4LnBhdGNoCitQYXRjaDk4MTogZ2RiLXRla2hleC1yZWdyZXNzaW9u LXJldmVydC5wYXRjaAogCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxf U1RBVEVfRkVET1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgpAQCAtNzE5LDExICs3MDks MTEgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICMgTWF0Y2ggdGhlIEZlZG9y YSdzIHZlcnNpb24gaW5mby4KICVwYXRjaDIgLXAxCiAKLSVwYXRjaDIzMiAtcDEKKyNwYXRjaDIz MiAtcDEKICVwYXRjaDM0OSAtcDEKICVwYXRjaDg4OCAtcDEKLSVwYXRjaDkxMiAtcDEKICVwYXRj aDg4OSAtcDEKKyVwYXRjaDkxMiAtcDEKICVwYXRjaDEgLXAxCiAKICVwYXRjaDEwNSAtcDEKQEAg LTgyMiwxNyArODEyLDE1IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0 Y2g4NTIgLXAxCiAlcGF0Y2g4NjMgLXAxCiAlcGF0Y2g4ODcgLXAxCi0lcGF0Y2g5MTQgLXAxCiAl cGF0Y2g5MTggLXAxCi0lcGF0Y2g5MjAgLXAxCi0lcGF0Y2g5MjEgLXAxCiAlcGF0Y2g5MjUgLXAx CiAlcGF0Y2g5MjcgLXAxCi0lcGF0Y2g5NzAgLXAxCi0lcGF0Y2g5NzEgLXAxCiAlcGF0Y2g5NzMg LXAxCi0lcGF0Y2g5NzUgLXAxCi0lcGF0Y2g5NzYgLXAxCislcGF0Y2g5NzcgLXAxCislcGF0Y2g5 NzggLXAxCislcGF0Y2g5NzkgLXAxCislcGF0Y2g5ODAgLXAxCislcGF0Y2g5ODEgLXAxCiAKICVw YXRjaDg0OCAtcDEKICVpZiAwJXshP2VsNjoxfQpAQCAtMTI3MSwxMCArMTI1OSw5IEBAIHJtIC1y ZiAkUlBNX0JVSUxEX1JPT1QKICV7X2JpbmRpcn0vcHN0YWNrCiAle19tYW5kaXJ9LyovcHN0YWNr LjEqCiAle19kYXRhZGlyfS9nZGIKLSV7X2luY2x1ZGVkaXJ9L2dkYgotIyBQcm92aWRlIGppdC1y ZWFkZXIuaCBzbyB0aGF0IHVzZXJzIGFyZSBhYmxlIHRvIHdyaXRlIHRoZWlyIG93biBHREIgSklU CisjIFByb3ZpZGUgZ2RiL2ppdC1yZWFkZXIuaCBzbyB0aGF0IHVzZXJzIGFyZSBhYmxlIHRvIHdy aXRlIHRoZWlyIG93biBHREIgSklUCiAjIHBsdWdpbnMuCi0le19pbmNsdWRlZGlyfS9nZGIvaml0 LXJlYWRlci5oCisle19pbmNsdWRlZGlyfS9nZGIKIAogIyBkb24ndCBpbmNsdWRlIHRoZSBmaWxl cyBpbiBpbmNsdWRlLCB0aGV5IGFyZSBwYXJ0IG9mIGJpbnV0aWxzCiAKQEAgLTEzMzQsNiArMTMy MSwxMCBAQCB0aGVuCiBmaQogCiAlY2hhbmdlbG9nCisqIFRodSBKYW4gIDggMjAxNSBKYW4gS3Jh dG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjguNTAuMjAxNTAxMDgtMS5m YzIyCistIFJlYmFzZSB0byBwcmUtNy45IHNuYXBzaG90IDcuOC41MC4yMDE1MDEwOC4KKy0gRml4 IGppdC1yZWFkZXIuaCBmb3IgbXVsdGktbGliLgorCiAqIFN1biBEZWMgMjggMjAxNCBKYW4gS3Jh dG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjguMS0zNi5mYzIxCiAtIFJl YmFzZSB0byA3LjguMS4yMDE0MTIyOCBmb3IgYSBwZXJmb3JtYW5jZSBmaXggKFBSIGJpbnV0aWxz LzE3Njc3KS4KIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGUzN2U5Y2Eu LmVkOTYzODYgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIg QEAKIDQ5ODEzMDdhYTk2MTliYmVjNWI3MzI2MWU0ZTQxYzhkICBnZGItbGlic3RkYysrLXYzLXB5 dGhvbi1yMTU1OTc4LnRhci5iejIKLTRjMTc2OWI0MGE2MDJjZTE5NmY3NjMyM2IyYTk1YTliICBn ZGItNy44LjEuMjAxNDEyMjgudGFyLnh6Cis2YjQzZjEwNzllOWE2NDAxYzcyNzdkNmJkNzc3YmQ3 ZiAgZ2RiLTcuOC41MC4yMDE1MDEwOC50YXIueHoK