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: Sergio Durigan Junior To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Rebase to FSF GDB 8.2.50.20180917 (8.3pre). Date: Thu, 23 Jul 2026 18:33:37 GMT Message-ID: <178483161745.1.13513230279755354101.rpms-gdb-0702d0d3e831@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 0702d0d3e8313c1dc588ee5326b3f8af1cfe9a4d ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMDcwMmQwZDNlODMxM2MxZGM1ODhlZTUzMjZiM2Y4YWYxY2ZlOWE0ZAog ICAgICAgICAgICBBdXRob3IgOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhh dC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDktMTdUMTg6Mzg6MTQtMDQ6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzQ4My8tMzg0MCBpbiA1NSBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMDcwMmQwZDNl ODMxM2MxZGM1ODhlZTUzMjZiM2Y4YWYxY2ZlOWE0ZD9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gRlNGIEdEQiA4LjIuNTAuMjAxODA5 MTcgKDguM3ByZSkuCkFkZCAnZ2RiLXJoYno3OTU0MjQtYml0cG9zLWFycmF5dmlldy5wYXRjaCcu CgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDk0OWMyMDQu LjkxMmFmYTggMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwz ICsxLDMgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5dGhvbi04LjEuMS0yMDE4MDYyNi50YXIueHoK LS9nZGItOC4xLjkwLjIwMTgwNzI3LnRhci54egogL3YyLjAudGFyLmd6CisvZ2RiLTguMi41MC4y MDE4MDkxNy50YXIueHoKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZSBiL19n ZGIuc3BlYy5QYXRjaC5pbmNsdWRlCmluZGV4IGIzYzU2MzMuLjQ3YmY2ODUgMTAwNjQ0Ci0tLSBh L19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCkBA IC01MDQsMzMgKzUwNCw4IEBAIFBhdGNoMTIwOiBnZGItdmxhLWludGVsLWZpeC1wcmludC1jaGFy LWFycmF5LnBhdGNoCiAjID1mZWRvcmF0ZXN0CiBQYXRjaDEyMTogZ2RiLXJoYnoxNTUzMTA0LXMz OTB4LWFyY2gxMi10ZXN0LnBhdGNoCiAKLSMgSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3IgR0RC L2dkYnNlcnZlciAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgotUGF0Y2gx MjI6IGdkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaAotCi0KLVBhdGNoMTIzOiBnZGItcmhi ejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gKLQotCi1QYXRjaDEyNDogZ2RiLXJoYno4ODE4NDktaXB2 Ni0zb2YzLnBhdGNoCi0KLSMgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VS OCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCi1QYXRjaDEyNTogZ2RiLXJoYnoxMTg3 NTgxLXBvd2VyOC1yZWdzLTFvZjcucGF0Y2gKLQotIyBBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNz L2Rpc3BsYXkgUE9XRVI4IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgxKS4KLVBhdGNoMTI2 OiBnZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtMm9mNy5wYXRjaAotCi0jIEFkZCBHREIgc3Vw cG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1 ODEpLgotUGF0Y2gxMjc6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0zb2Y3LnBhdGNoCi0K LSMgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElC TSwgUkggQlogMTE4NzU4MSkuCi1QYXRjaDEyODogZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdz LTRvZjcucGF0Y2gKLQotIyBBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4 IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgxKS4KLVBhdGNoMTI5OiBnZGItcmhiejExODc1 ODEtcG93ZXI4LXJlZ3MtNW9mNy5wYXRjaAotCi0jIEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3Mv ZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgotUGF0Y2gxMzA6 IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy02b2Y3LnBhdGNoCi0KLSMgQWRkIEdEQiBzdXBw b3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4 MSkuCi1QYXRjaDEzMTogZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTdvZjcucGF0Y2gKKyMg VGhpcyBwYXRjaCBpcyBuZWVkZWQgdG8gY29tcGlsZSBHREIgYWZ0ZXIgLVdlcnJvcj1uYXJyb3dp bmcgaGFzCisjIGJlZW4gZW5hYmxlZCBieSBkZWZhdWx0LgorIyBBdXRob3I6IFNlcmdpbyBEdXJp Z2FuIEp1bmlvci4KK1BhdGNoMTIyOiBnZGItcmhiejc5NTQyNC1iaXRwb3MtYXJyYXl2aWV3LnBh dGNoCiAKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5w YXRjaC5pbmNsdWRlCmluZGV4IGNhMzkwYjcuLjEzMWNmOTMgMTAwNjQ0Ci0tLSBhL19nZGIuc3Bl Yy5wYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCkBAIC0xMjAsMTIg KzEyMCwzIEBACiAlcGF0Y2gxMjAgLXAxCiAlcGF0Y2gxMjEgLXAxCiAlcGF0Y2gxMjIgLXAxCi0l cGF0Y2gxMjMgLXAxCi0lcGF0Y2gxMjQgLXAxCi0lcGF0Y2gxMjUgLXAxCi0lcGF0Y2gxMjYgLXAx Ci0lcGF0Y2gxMjcgLXAxCi0lcGF0Y2gxMjggLXAxCi0lcGF0Y2gxMjkgLXAxCi0lcGF0Y2gxMzAg LXAxCi0lcGF0Y2gxMzEgLXAxCgpkaWZmIC0tZ2l0IGEvX2dpdF91cHN0cmVhbV9jb21taXQgYi9f Z2l0X3Vwc3RyZWFtX2NvbW1pdAppbmRleCAwNmYzM2ZkLi41ZDgyZTI1IDEwMDY0NAotLS0gYS9f Z2l0X3Vwc3RyZWFtX2NvbW1pdAorKysgYi9fZ2l0X3Vwc3RyZWFtX2NvbW1pdApAQCAtMSArMSBA QAotYWIwODBjMTAyODY5ZGQzYWQzMDBhOTlkMGMwMGIyNTY0MDRmZDc2YgorZTA4ZWY2MjhhN2Uz MDk4Njk5ZWM2OTM5NTg0ZTJjOWY3YTllMTk1MgoKZGlmZiAtLWdpdCBhL19wYXRjaF9vcmRlciBi L19wYXRjaF9vcmRlcgppbmRleCBlYzJmODZmLi40ZDE5OWNlIDEwMDY0NAotLS0gYS9fcGF0Y2hf b3JkZXIKKysrIGIvX3BhdGNoX29yZGVyCkBAIC0xMTksMTMgKzExOSw0IEBAIGdkYi10ZXN0c3Vp dGUtcmVhZGxpbmU2My1zaWdpbnQucGF0Y2gKIGdkYi1hcmNoZXIucGF0Y2gKIGdkYi12bGEtaW50 ZWwtZml4LXByaW50LWNoYXItYXJyYXkucGF0Y2gKIGdkYi1yaGJ6MTU1MzEwNC1zMzkweC1hcmNo MTItdGVzdC5wYXRjaAotZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YzLnBhdGNoCi1nZGItcmhiejg4 MTg0OS1pcHY2LTJvZjMucGF0Y2gKLWdkYi1yaGJ6ODgxODQ5LWlwdjYtM29mMy5wYXRjaAotZ2Ri LXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTFvZjcucGF0Y2gKLWdkYi1yaGJ6MTE4NzU4MS1wb3dl cjgtcmVncy0yb2Y3LnBhdGNoCi1nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtM29mNy5wYXRj aAotZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTRvZjcucGF0Y2gKLWdkYi1yaGJ6MTE4NzU4 MS1wb3dlcjgtcmVncy01b2Y3LnBhdGNoCi1nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtNm9m Ny5wYXRjaAotZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTdvZjcucGF0Y2gKK2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy1hcnJheXZpZXcucGF0Y2gKCmRpZmYgLS1naXQgYS9nZGItNi4zLWdzdGFj ay0yMDA1MDQxMS5wYXRjaCBiL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCmluZGV4IDM3 YjA5ZGUuLjUyM2QwZDAgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNo CisrKyBiL2dkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCkBAIC0xNiw3ICsxNiw3IEBAIFN1 YmplY3Q6IGdkYi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoCiBkaWZmIC0tZ2l0IGEvZ2RiL01h a2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4KICsrKyBi L2dkYi9NYWtlZmlsZS5pbgotQEAgLTE3MzUsNyArMTczNSw3IEBAIGluZm8gaW5zdGFsbC1pbmZv IGNsZWFuLWluZm8gZHZpIHBkZiBpbnN0YWxsLXBkZiBodG1sIGluc3RhbGwtaHRtbDogZm9yY2UK K0BAIC0xNzMyLDcgKzE3MzIsNyBAQCBpbmZvIGluc3RhbGwtaW5mbyBjbGVhbi1pbmZvIGR2aSBw ZGYgaW5zdGFsbC1wZGYgaHRtbCBpbnN0YWxsLWh0bWw6IGZvcmNlCiAgaW5zdGFsbDogYWxsCiAg CUAkKE1BS0UpICQoRkxBR1NfVE9fUEFTUykgaW5zdGFsbC1vbmx5CiAgCkBAIC0yNSw3ICsyNSw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KICAJdHJh bnNmb3JtZWRfbmFtZT1gdD0nJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKSc7IFwKICAJCQkgIGVj aG8gZ2RiIHwgc2VkIC1lICIkJHQiYCA7IFwKICAJCWlmIHRlc3QgIngkJHRyYW5zZm9ybWVkX25h bWUiID0geDsgdGhlbiBcCi1AQCAtMTc4NCw3ICsxNzg0LDI1IEBAIGluc3RhbGwtZ3VpbGU6CitA QCAtMTc4MSw3ICsxNzgxLDI1IEBAIGluc3RhbGwtZ3VpbGU6CiAgaW5zdGFsbC1weXRob246CiAg CSQoU0hFTEwpICQoc3JjZGlyKS8uLi9ta2luc3RhbGxkaXJzICQoREVTVERJUikkKEdEQl9EQVRB RElSKS9weXRob24vZ2RiCiAgCkBAIC01Miw3ICs1Miw3IEBAIGRpZmYgLS1naXQgYS9nZGIvTWFr ZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KICAJdHJhbnNmb3JtZWRfbmFtZT1gdD0nJChwcm9n cmFtX3RyYW5zZm9ybV9uYW1lKSc7IFwKICAJCQkgIGVjaG8gZ2RiIHwgc2VkIC1lICQkdGAgOyBc CiAgCQlpZiB0ZXN0ICJ4JCR0cmFuc2Zvcm1lZF9uYW1lIiA9IHg7IHRoZW4gXAotQEAgLTE4MDcs NiArMTgyNSwxOCBAQCB1bmluc3RhbGw6IGZvcmNlICQoQ09ORklHX1VOSU5TVEFMTCkKK0BAIC0x ODA0LDYgKzE4MjIsMTggQEAgdW5pbnN0YWxsOiBmb3JjZSAkKENPTkZJR19VTklOU1RBTEwpCiAg CWZpCiAgCUAkKE1BS0UpIERPPXVuaW5zdGFsbCAiRE9ESVJTPSQoU1VCRElSUykiICQoRkxBR1Nf VE9fUEFTUykgc3ViZGlyX2RvCiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAw NTA5MDcucGF0Y2ggYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAppbmRleCBiNzBi NThmLi44YTUxYWVmIDEwMDY0NAotLS0gYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRj aAorKysgYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaApAQCAtMzIsNCArMzIsNCBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2djb3JlLmluIGIvZ2RiL2djb3JlLmluCiArCSIkYmluYXJ5X3Bh dGgvQEdEQl9UUkFOU0ZPUk1fTkFNRUAiIDwvZGV2L251bGwgLS1ueCAtLWJhdGNoIC0tcmVhZG5l dmVyIFwKICAJICAgIC1leCAic2V0IHBhZ2luYXRpb24gb2ZmIiAtZXggInNldCBoZWlnaHQgMCIg LWV4ICJzZXQgd2lkdGggMCIgXAogIAkgICAgIiR7ZHVtcF9hbGxfY21kc1tAXX0iIFwKLSAJICAg IC1leCAiYXR0YWNoICRwaWQiIC1leCAiZ2NvcmUgJG5hbWUuJHBpZCIgLWV4IGRldGFjaCAtZXgg cXVpdAorIAkgICAgLWV4ICJhdHRhY2ggJHBpZCIgLWV4ICJnY29yZSAkcHJlZml4LiRwaWQiIC1l eCBkZXRhY2ggLWV4IHF1aXQKCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjE2NzExLWNsb25lLWlz LW91dGVybW9zdC5wYXRjaCBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBh dGNoCmluZGV4IGE1NDlkMTAuLmYxMWRmMGEgMTAwNjQ0Ci0tLSBhL2dkYi02LjUtYnoyMTY3MTEt Y2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCisrKyBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMt b3V0ZXJtb3N0LnBhdGNoCkBAIC0xNjksNyArMTY5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hbWQ2 NC10ZGVwLmMgYi9nZGIvYW1kNjQtdGRlcC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2kzODYtdGRlcC5j IGIvZ2RiL2kzODYtdGRlcC5jCiAtLS0gYS9nZGIvaTM4Ni10ZGVwLmMKICsrKyBiL2dkYi9pMzg2 LXRkZXAuYwotQEAgLTg0MDQsNiArODQwNCw5IEBAIGkzODZfZ2RiYXJjaF9pbml0IChzdHJ1Y3Qg Z2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoX2xpc3QgKmFyY2hlcykKK0BAIC04NDA2 LDYgKzg0MDYsOSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZv LCBzdHJ1Y3QgZ2RiYXJjaF9saXN0ICphcmNoZXMpCiAgCiAgICB0ZGVwLT54c2F2ZV94Y3IwX29m ZnNldCA9IC0xOwogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjUtYnoyMTgzNzktc29saWItdHJhbXBv bGluZS1sb29rdXAtbG9jay1maXgucGF0Y2ggYi9nZGItNi41LWJ6MjE4Mzc5LXNvbGliLXRyYW1w b2xpbmUtbG9va3VwLWxvY2stZml4LnBhdGNoCmluZGV4IDQ1ZDg1NzAuLjIwNTc3ZWQgMTAwNjQ0 Ci0tLSBhL2dkYi02LjUtYnoyMTgzNzktc29saWItdHJhbXBvbGluZS1sb29rdXAtbG9jay1maXgu cGF0Y2gKKysrIGIvZ2RiLTYuNS1iejIxODM3OS1zb2xpYi10cmFtcG9saW5lLWxvb2t1cC1sb2Nr LWZpeC5wYXRjaApAQCAtMTEsNyArMTEsNyBAQCBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20v YnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTIxODM3OQogZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIu YyBiL2dkYi9zeW10YWIuYwogLS0tIGEvZ2RiL3N5bXRhYi5jCiArKysgYi9nZGIvc3ltdGFiLmMK LUBAIC0zMTY1LDYgKzMxNjUsMTMgQEAgZmluZF9wY19zZWN0X2xpbmUgKENPUkVfQUREUiBwYywg c3RydWN0IG9ial9zZWN0aW9uICpzZWN0aW9uLCBpbnQgbm90Y3VycmVudCkKK0BAIC0zMTY2LDYg KzMxNjYsMTMgQEAgZmluZF9wY19zZWN0X2xpbmUgKENPUkVfQUREUiBwYywgc3RydWN0IG9ial9z ZWN0aW9uICpzZWN0aW9uLCBpbnQgbm90Y3VycmVudCkKICAJICAgICBTWU1CT0xfTElOS0FHRV9O QU1FIChtc3ltYm9sKSk7ICovCiAgCSAgOwogIAkvKiBmYWxsIHRocm91Z2ggKi8KCmRpZmYgLS1n aXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoIGIvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaAppbmRleCA0MDkzOGE1Li41ODc2YTQ3IDEw MDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCisrKyBi L2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKQEAgLTg1LDcgKzg1LDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9leGVjLmMgYi9nZGIvZXhlYy5jCiAgCiAgI2luY2x1ZGUgPGZj bnRsLmg+CiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1AQCAtMzU3LDEyICszNTgs MjcgQEAgZXhlY19maWxlX2F0dGFjaCAoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0 eSkKK0BAIC0zNTYsMTIgKzM1NywyNyBAQCBleGVjX2ZpbGVfYXR0YWNoIChjb25zdCBjaGFyICpm aWxlbmFtZSwgaW50IGZyb21fdHR5KQogIAogICAgICAgIGlmICghYmZkX2NoZWNrX2Zvcm1hdF9t YXRjaGVzIChleGVjX2JmZCwgYmZkX29iamVjdCwgJm1hdGNoaW5nKSkKICAJewpAQCAtMTAyLDcg KzEwMiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZXhlYy5jIGIvZ2RiL2V4ZWMuYwogIAkgIGV4ZWNf Y2xvc2UgKCk7CiAtCSAgZXJyb3IgKF8oIlwiJXNcIjogbm90IGluIGV4ZWN1dGFibGUgZm9ybWF0 OiAlcyIpLAogLQkJIHNjcmF0Y2hfcGF0aG5hbWUsCi0tCQkgZ2RiX2JmZF9lcnJtc2cgKGJmZF9n ZXRfZXJyb3IgKCksIG1hdGNoaW5nKSk7CistCQkgZ2RiX2JmZF9lcnJtc2cgKGJmZF9nZXRfZXJy b3IgKCksIG1hdGNoaW5nKS5jX3N0ciAoKSk7CiArCiArCSAgaWYgKGlzX2NvcmUgIT0gMCkKICsJ ICAgIHRocm93X2Vycm9yIChJU19DT1JFX0VSUk9SLApAQCAtMTEyLDE0ICsxMTIsMTQgQEAgZGlm ZiAtLWdpdCBhL2dkYi9leGVjLmMgYi9nZGIvZXhlYy5jCiArCSAgZWxzZQogKwkgICAgZXJyb3Ig KF8oIlwiJXNcIjogbm90IGluIGV4ZWN1dGFibGUgZm9ybWF0OiAlcyIpLAogKwkJICAgc2NyYXRj aF9wYXRobmFtZSwKLSsJCSAgIGdkYl9iZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpLCBtYXRj aGluZykpOworKwkJICAgZ2RiX2JmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCksIG1hdGNoaW5n KS5jX3N0ciAoKSk7CiAgCX0KICAKICAgICAgICBpZiAoYnVpbGRfc2VjdGlvbl90YWJsZSAoZXhl Y19iZmQsICZzZWN0aW9ucywgJnNlY3Rpb25zX2VuZCkpCiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4u YyBiL2dkYi9tYWluLmMKIC0tLSBhL2dkYi9tYWluLmMKICsrKyBiL2dkYi9tYWluLmMKLUBAIC00 NDcsNiArNDQ3LDM3IEBAIHN0cnVjdCBjbWRhcmcKK0BAIC00NDcsNiArNDQ3LDM1IEBAIHN0cnVj dCBjbWRhcmcKICAgIGNoYXIgKnN0cmluZzsKICB9OwogIApAQCAtMTMwLDggKzEzMCw2IEBAIGRp ZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwogK3N0YXRpYyB2b2lkCiArZXhlY19v cl9jb3JlX2ZpbGVfYXR0YWNoIChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQog K3sKLSsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Ci0rCiArICBnZGJfYXNzZXJ0 IChleGVjX2JmZCA9PSBOVUxMKTsKICsKICsgIFRSWQpAQCAtMTU3LDcgKzE1NSw3IEBAIGRpZmYg LS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwogIHN0YXRpYyB2b2lkCiAgY2FwdHVyZWRf bWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQogIHsKLUBAIC04ODMs NiArOTE0LDggQEAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpj b250ZXh0KQorQEAgLTg4NCw2ICs5MTMsOCBAQCBjYXB0dXJlZF9tYWluXzEgKHN0cnVjdCBjYXB0 dXJlZF9tYWluX2FyZ3MgKmNvbnRleHQpCiAgCXsKICAJICBzeW1hcmcgPSBhcmd2W29wdGluZF07 CiAgCSAgZXhlY2FyZyA9IGFyZ3Zbb3B0aW5kXTsKQEAgLTE2Niw3ICsxNjQsNyBAQCBkaWZmIC0t Z2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsKICAJfQogIAotQEAg LTEwMzMsMTEgKzEwNjYsMjUgQEAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFp bl9hcmdzICpjb250ZXh0KQorQEAgLTEwMzQsMTIgKzEwNjUsMjUgQEAgY2FwdHVyZWRfbWFpbl8x IChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQogICAgICAgICYmIHN5bWFyZyAh PSBOVUxMCiAgICAgICAgJiYgc3RyY21wIChleGVjYXJnLCBzeW1hcmcpID09IDApCiAgICAgIHsK QEAgLTE4NSwxMyArMTgzLDE0IEBAIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4u YwogICAgICAgIC8qIFRoZSBleGVjIGZpbGUgYW5kIHRoZSBzeW1ib2wtZmlsZSBhcmUgdGhlIHNh bWUuICBJZiB3ZSBjYW4ndAogICAgICAgICAgIG9wZW4gaXQsIGJldHRlciBvbmx5IHByaW50IG9u ZSBlcnJvciBtZXNzYWdlLgogLSAgICAgICAgIGNhdGNoX2NvbW1hbmRfZXJyb3JzIHJldHVybnMg bm9uLXplcm8gb24gc3VjY2VzcyEgICovCi0tICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3Jz IChleGVjX2ZpbGVfYXR0YWNoLCBleGVjYXJnLAotLQkJCQkhYmF0Y2hfZmxhZykpCistICAgICAg cmV0ID0gY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGV4ZWNfZmlsZV9hdHRhY2gsIGV4ZWNhcmcsCist CQkJCSAgIWJhdGNoX2ZsYWcpOworLSAgICAgIGlmIChyZXQgIT0gMCkKICsgICAgICAgICBjYXRj aF9jb21tYW5kX2Vycm9ycyByZXR1cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3MhCiArCSBEbyBub3Qg bG9hZCBFWEVDQVJHIGFzIGEgc3ltYm9sIGZpbGUgaWYgaXQgaGFzIGJlZW4gYWxyZWFkeSBwcm9j ZXNzZWQKICsJIGFzIGEgY29yZSBmaWxlLiAgKi8KLSsgICAgICBpZiAoY2F0Y2hfY29tbWFuZF9l cnJvcnMgKGZ1bmMsIGV4ZWNhcmcsICFiYXRjaF9mbGFnKQotKwkgICYmIGNvcmVfYmZkID09IE5V TEwpCi0gCWNhdGNoX2NvbW1hbmRfZXJyb3JzIChzeW1ib2xfZmlsZV9hZGRfbWFpbl9hZGFwdGVy LCBzeW1hcmcsCi0gCQkJICAgICAgIWJhdGNoX2ZsYWcpOworKyAgICAgIHJldCA9IGNhdGNoX2Nv bW1hbmRfZXJyb3JzIChmdW5jLCBleGVjYXJnLCAhYmF0Y2hfZmxhZyk7CisrICAgICAgaWYgKHJl dCAhPSAwICYmIGNvcmVfYmZkID09IE5VTEwpCisgCXJldCA9IGNhdGNoX2NvbW1hbmRfZXJyb3Jz IChzeW1ib2xfZmlsZV9hZGRfbWFpbl9hZGFwdGVyLAorIAkJCQkgICAgc3ltYXJnLCAhYmF0Y2hf ZmxhZyk7CiAgICAgIH0KCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLW1pc2xl YWRpbmctd2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6OTgxMTU0LnBhdGNoIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1taXNsZWFkaW5nLXdhcm5pbmctbWlzc2luZy1kZWJ1Z2luZm8tcmhi ejk4MTE1NC5wYXRjaAppbmRleCBhMjUwNTdlLi4xNjJmM2Q3IDEwMDY0NAotLS0gYS9nZGItNi42 LWJ1aWxkaWQtbG9jYXRlLW1pc2xlYWRpbmctd2FybmluZy1taXNzaW5nLWRlYnVnaW5mby1yaGJ6 OTgxMTU0LnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtbWlzbGVhZGluZy13YXJu aW5nLW1pc3NpbmctZGVidWdpbmZvLXJoYno5ODExNTQucGF0Y2gKQEAgLTI4LDcgKzI4LDcgQEAg Q29tbWVudHMgYnkgU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPjoK IGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1pZC5jCiAtLS0gYS9nZGIv YnVpbGQtaWQuYwogKysrIGIvZ2RiL2J1aWxkLWlkLmMKLUBAIC01ODEsNyArNTgxLDEwIEBAIGJ1 aWxkX2lkX3RvX2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2xlbiwgY29uc3QgYmZkX2J5dGUg KmJ1aWxkX2lkLAorQEAgLTU3OCw3ICs1NzgsMTAgQEAgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChz aXplX3QgYnVpbGRfaWRfbGVuLCBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQsCiAgCSAgZG9fY2xl YW51cHMgKGlubmVyKTsKICAKICAJICBpZiAoYWJmZCA9PSBOVUxMKQoKZGlmZiAtLWdpdCBhL2dk Yi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLWxpYnJwbS13b3JrYXJvdW5kLnBhdGNoIGIvZ2RiLTYu Ni1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gKaW5kZXggMzc1YjE3 OC4uZTQ5MzVmNSAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBt LXdvcmthcm91bmQucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBt LXdvcmthcm91bmQucGF0Y2gKQEAgLTksNyArOSw3IEBAIFN1YmplY3Q6IGdkYi02LjYtYnVpbGRp ZC1sb2NhdGUtcnBtLWxpYnJwbS13b3JrYXJvdW5kLnBhdGNoCiBkaWZmIC0tZ2l0IGEvZ2RiL2J1 aWxkLWlkLmMgYi9nZGIvYnVpbGQtaWQuYwogLS0tIGEvZ2RiL2J1aWxkLWlkLmMKICsrKyBiL2dk Yi9idWlsZC1pZC5jCi1AQCAtNjUyLDYgKzY1MiwxOSBAQCBidWlsZF9pZF90b19maWxlbmFtZSAo Y29uc3Qgc3RydWN0IGJmZF9idWlsZF9pZCAqYnVpbGRfaWQsIGNoYXIgKipsaW5rX3JldHVybikK K0BAIC02NDksNiArNjQ5LDE5IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3Qg YmZkX2J1aWxkX2lkICpidWlsZF9pZCwgY2hhciAqKmxpbmtfcmV0dXJuKQogICNpbmNsdWRlIDxk bGZjbi5oPgogICNlbmRpZgogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUt cnBtLXNjbC5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLXNjbC5wYXRjaAppbmRl eCA3ZTM5NDg4Li5kYTJiZjVkIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJw bS1zY2wucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tc2NsLnBhdGNoCkBA IC0xMiw3ICsxMiw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/ aWQ9OTUzNTg1CiBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmMgYi9nZGIvYnVpbGQtaWQuYwog LS0tIGEvZ2RiL2J1aWxkLWlkLmMKICsrKyBiL2dkYi9idWlsZC1pZC5jCi1AQCAtNjg5LDcgKzY4 OSwxMSBAQCBzdGF0aWMgaW50IG1pc3NpbmdfcnBtX2xpc3RfZW50cmllczsKK0BAIC02ODYsNyAr Njg2LDExIEBAIHN0YXRpYyBpbnQgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzOwogIC8qIFJldHVy bnMgdGhlIGNvdW50IG9mIG5ld2x5IGFkZGVkIHJwbXMuICAqLwogIAogIHN0YXRpYyBpbnQKQEAg LTI0LDcgKzI0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIvZ2RiL2J1aWxkLWlk LmMKICB7CiAgICBzdGF0aWMgaW50IHJwbV9pbml0X2RvbmUgPSAwOwogICAgcnBtdHMgdHM7Ci1A QCAtNzk2LDcgKzgwMCwxMSBAQCBtaXNzaW5nX3JwbV9lbmxpc3QgKGNvbnN0IGNoYXIgKmZpbGVu YW1lKQorQEAgLTc5Myw3ICs3OTcsMTEgQEAgbWlzc2luZ19ycG1fZW5saXN0IChjb25zdCBjaGFy ICpmaWxlbmFtZSkKICAgIG1pID0gcnBtdHNJbml0SXRlcmF0b3JfcCAodHMsIFJQTVRBR19CQVNF TkFNRVMsIGZpbGVuYW1lLCAwKTsKICAgIGlmIChtaSAhPSBOVUxMKQogICAgICB7CkBAIC0zNiw3 ICszNiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1pZC5jCiAg CXsKICAJICBIZWFkZXIgaDsKICAJICBjaGFyICpkZWJ1Z2luZm8sICoqc2xvdCwgKnMsICpzMjsK LUBAIC05MTQsNiArOTIyLDM3IEBAIG1pc3NpbmdfcnBtX2VubGlzdCAoY29uc3QgY2hhciAqZmls ZW5hbWUpCitAQCAtOTExLDYgKzkxOSwzNyBAQCBtaXNzaW5nX3JwbV9lbmxpc3QgKGNvbnN0IGNo YXIgKmZpbGVuYW1lKQogIAkgICAgeGZyZWUgKGRlYnVnaW5mbyk7CiAgCSAgY291bnQrKzsKICAJ fQpAQCAtNzQsNyArNzQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmMgYi9nZGIvYnVp bGQtaWQuYwogIAogICAgICAgIHJwbWRiRnJlZUl0ZXJhdG9yX3AgKG1pKTsKICAgICAgfQotQEAg LTkyNCw2ICs5NjMsMjEgQEAgbWlzc2luZ19ycG1fZW5saXN0IChjb25zdCBjaGFyICpmaWxlbmFt ZSkKK0BAIC05MjEsNiArOTYwLDIxIEBAIG1pc3NpbmdfcnBtX2VubGlzdCAoY29uc3QgY2hhciAq ZmlsZW5hbWUpCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTk5LDcgKzk5LDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9idWlsZC1pZC5jIGIvZ2RiL2J1aWxkLWlkLmMKIGRpZmYgLS1naXQgYS9nZGIvZHdh cmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwogKysr IGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTM0NjksNiArMzQ2OSwxNiBAQCByZWFkX2dkYl9pbmRl eF9mcm9tX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTM0NjcsNiArMzQ2 NywxNiBAQCByZWFkX2dkYl9pbmRleF9mcm9tX2J1ZmZlciAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUsCiAgICAgICAic2V0IHVzZS1kZXByZWNhdGVkLWluZGV4LXNlY3Rpb25zIG9uIi4gICovCiAg ICBpZiAodmVyc2lvbiA8IDYgJiYgIWRlcHJlY2F0ZWRfb2spCiAgICAgIHsKQEAgLTExNiw3ICsx MTYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMK ICAgICAgICBzdGF0aWMgaW50IHdhcm5pbmdfcHJpbnRlZCA9IDA7CiAgICAgICAgaWYgKCF3YXJu aW5nX3ByaW50ZWQpCiAgCXsKLUBAIC0zNDgwLDYgKzM0OTAsMTAgQEAgdG8gdXNlIHRoZSBzZWN0 aW9uIGFueXdheS4iKSwKK0BAIC0zNDc4LDYgKzM0ODgsMTAgQEAgdG8gdXNlIHRoZSBzZWN0aW9u IGFueXdheS4iKSwKICAJICB3YXJuaW5nX3ByaW50ZWQgPSAxOwogIAl9CiAgICAgICAgcmV0dXJu IDA7CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2ggYi9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRleCBkNWVjNGIwLi5jOWNkY2U0IDEwMDY0 NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorKysgYi9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtMjQ0LDcgKzI0NCw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1pZC5jCiAgCiAgI2RlZmluZSBCVUlMRF9JRF9WRVJC T1NFX05PTkUgMAogICNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9GSUxFTkFNRVMgMQotQEAgLTY0 MCw4ICs2NDIsMzY2IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgYmZkX2J1 aWxkX2lkICpidWlsZF9pZCwgY2hhciAqKmxpbmtfcmV0dXJuKQorQEAgLTYzNyw4ICs2MzksMzY2 IEBAIGJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpidWls ZF9pZCwgY2hhciAqKmxpbmtfcmV0dXJuKQogICAgcmV0dXJuIHJlc3VsdDsKICB9CiAgCkBAIC02 MTIsNyArNjEyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWlsZC1pZC5jIGIvZ2RiL2J1aWxkLWlk LmMKICAgICBhdm9pZGFuY2UuICAqLwogIAogIHN0cnVjdCBtaXNzaW5nX2ZpbGVwYWlyCi1AQCAt Njk1LDExICsxMDU1LDE3IEBAIG1pc3NpbmdfZmlsZXBhaXJfY2hhbmdlICh2b2lkKQorQEAgLTY5 MiwxMSArMTA1MiwxNyBAQCBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAodm9pZCkKICAgICAgICAv KiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVzdCBmcm9tIG1pc3NpbmdfZmlsZXBhaXJfT0JTVEFD Sy4gICovCiAgICAgICAgbWlzc2luZ19maWxlcGFpcl9oYXNoID0gTlVMTDsKICAgICAgfQpAQCAt NjMwLDcgKzYzMCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9idWlsZC1p ZC5jCiAgICBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAoKTsKICB9CiAgCi1AQCAtNzY2LDE0ICsx MTMyLDM5IEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3Qg Y2hhciAqZGVidWcpCitAQCAtNzYzLDE0ICsxMTI5LDM5IEBAIGRlYnVnX3ByaW50X21pc3Npbmcg KGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcpCiAgCiAgICAqc2xvdCA9IG1p c3NpbmdfZmlsZXBhaXI7CiAgCkBAIC02OTAsNyArNjkwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9j b25maWcuaW4gYi9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgdHJhbnNsYXRpb24g b2YgcHJvZ3JhbSBtZXNzYWdlcyB0byB0aGUgdXNlcidzIG5hdGl2ZQogICAgIGxhbmd1YWdlIGlz IHJlcXVlc3RlZC4gKi8KICAjdW5kZWYgRU5BQkxFX05MUwotQEAgLTI3MCw2ICsyNzMsOSBAQAor QEAgLTI1OCw2ICsyNjEsOSBAQAogIC8qIERlZmluZSBpZiBQeXRob24gMi43IGlzIGJlaW5nIHVz ZWQuICovCiAgI3VuZGVmIEhBVkVfTElCUFlUSE9OMl83CiAgCkBAIC03MjIsOCArNzIyLDggQEAg ZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiArd2l0aF9ycG0KICBl bmFibGVfdGFyZ2V0cwogIGVuYWJsZV82NF9iaXRfYmZkCi0gZW5hYmxlX2dkYmNsaQotQEAgLTkx Miw2ICs5MTgsMTEgQEAgQ0NDCisgZW5hYmxlX2dkYm1pCitAQCAtOTEwLDYgKzkxNiwxMSBAQCBD Q0MKICBDUFAKICBNQUtFSU5GTwogIE1BS0VJTkZPRkxBR1MKQEAgLTczNSw3ICs3MzUsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKICBZQUNDCiAgWUZMQUdT CiAgWE1LTUYnCi1AQCAtMTU4Myw2ICsxNTk0LDggQEAgT3B0aW9uYWwgUGFja2FnZXM6CitAQCAt MTU3OCw2ICsxNTg5LDggQEAgT3B0aW9uYWwgUGFja2FnZXM6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbLS13aXRoLWF1dG8tbG9hZC1kaXJdCiAgICAtLXdpdGhvdXQtYXV0by1sb2FkLXNh ZmUtcGF0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gbm90IHJlc3RyaWN0IGF1dG8t bG9hZGVkIGZpbGVzIGxvY2F0aW9ucwpAQCAtNzQ0LDcgKzc0NCw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogICAgLS13aXRoLWxpYnVud2luZC1pYTY0ICAg dXNlIGxpYnVud2luZCBmcmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0cwogICAgLS13aXRo LWN1cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0 ZXJtY2FwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5Ci1AQCAtMTY0MCw2ICsx NjUzLDEzIEBAIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorQEAgLTE2 MzUsNiArMTY0OCwxMyBAQCBTb21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoK ICAgIE1BS0VJTkZPICAgIFBhcmVudCBjb25maWd1cmUgZGV0ZWN0cyBpZiBpdCBpcyBvZiBzdWZm aWNpZW50IHZlcnNpb24uCiAgICBNQUtFSU5GT0ZMQUdTCiAgICAgICAgICAgICAgICBQYXJhbWV0 ZXJzIGZvciBNQUtFSU5GTy4KQEAgLTc1OCw3ICs3NTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2Nv bmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKICAgIFlBQ0MgICAgICAgIFRoZSBgWWV0IEFub3RoZXIg Q29tcGlsZXIgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4KICAgICAgICAgICAgICAg IERlZmF1bHRzIHRvIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjogYGJpc29uIC15Jywg YGJ5YWNjJywKICAgICAgICAgICAgICAgIGB5YWNjJy4KLUBAIC02NTc1LDYgKzY1OTUsNDk0IEBA IF9BQ0VPRgorQEAgLTY1NzAsNiArNjU5MCw0OTQgQEAgX0FDRU9GCiAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR3aXRoX2F1dG9fbG9hZF9zYWZlX3Bh dGgiID4mNQogICRhc19lY2hvICIkd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoIiA+JjY7IH0KICAK QEAgLTE1MDMsNyArMTUwMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZXZlbnQtdG9wLmMgYi9nZGIv ZXZlbnQtdG9wLmMKIGRpZmYgLS1naXQgYS9nZGIvc3ltZmlsZS5oIGIvZ2RiL3N5bWZpbGUuaAog LS0tIGEvZ2RiL3N5bWZpbGUuaAogKysrIGIvZ2RiL3N5bWZpbGUuaAotQEAgLTU0MCw2ICs1NDAs OCBAQCB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5hbWVfZnR5cGUgKmZ1 biwgdm9pZCAqZGF0YSwKK0BAIC01MzQsNiArNTM0LDggQEAgdm9pZCBtYXBfc3ltYm9sX2ZpbGVu YW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEsCiAgLyogYnVpbGQt aWQgc3VwcG9ydC4gICovCiAgZXh0ZXJuIHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkX2Fk ZHJfZ2V0IChDT1JFX0FERFIgYWRkcik7CiAgZXh0ZXJuIHZvaWQgZGVidWdfcHJpbnRfbWlzc2lu ZyAoY29uc3QgY2hhciAqYmluYXJ5LCBjb25zdCBjaGFyICpkZWJ1Zyk7CgpkaWZmIC0tZ2l0IGEv Z2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaCBiL2dkYi02LjYt YnVpbGRpZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKaW5kZXggMmI5NjE2Ni4uNmRh NTNhNyAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlk cy5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBh dGNoCkBAIC0xNCw3ICsxNCw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9MTMzOTg2MgogZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1zdnI0LmMgYi9nZGIvc29s aWItc3ZyNC5jCiAtLS0gYS9nZGIvc29saWItc3ZyNC5jCiArKysgYi9nZGIvc29saWItc3ZyNC5j Ci1AQCAtMTM1OCwxNCArMTM1OCwyNyBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxt LCBDT1JFX0FERFIgcHJldl9sbSwKK0BAIC0xMzQzLDE0ICsxMzQzLDI3IEBAIHN2cjRfcmVhZF9z b19saXN0IChDT1JFX0FERFIgbG0sIENPUkVfQUREUiBwcmV2X2xtLAogIAl9CiAgCiAgICAgICAg ewpAQCAtNDQsNyArNDQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLXN2cjQuYyBiL2dkYi9z b2xpYi1zdnI0LmMKICAJaWYgKGJ1aWxkX2lkICE9IE5VTEwpCiAgCSAgewogIAkgICAgY2hhciAq bmFtZSwgKmJ1aWxkX2lkX2ZpbGVuYW1lOwotQEAgLTEzODAsMjMgKzEzOTMsNyBAQCBzdnI0X3Jl YWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBDT1JFX0FERFIgcHJldl9sbSwKK0BAIC0xMzY1LDIz ICsxMzc4LDcgQEAgc3ZyNF9yZWFkX3NvX2xpc3QgKENPUkVfQUREUiBsbSwgQ09SRV9BRERSIHBy ZXZfbG0sCiAgCQl4ZnJlZSAobmFtZSk7CiAgCSAgICAgIH0KICAJICAgIGVsc2UKCmRpZmYgLS1n aXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS5wYXRjaAppbmRleCA2MThmNDFhLi5iMzdhMzk2IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxk aWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTQz Niw3ICs0MzYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmMgYi9nZGIvYnVpbGQtaWQu YwogIAogICAgaWYgKGZvdW5kID09IE5VTEwpCiAgICAgIHdhcm5pbmcgKF8oIkZpbGUgXCIlc1wi IGhhcyBubyBidWlsZC1pZCwgZmlsZSBza2lwcGVkIiksCi1AQCAtNjUsMTEgKzQ2Myw1MCBAQCBi dWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6ZV90IGNoZWNrX2xlbiwgY29uc3QgYmZkX2J5 dGUgKmNoZWNrKQorQEAgLTY1LDExICs0NjMsNDcgQEAgYnVpbGRfaWRfdmVyaWZ5IChiZmQgKmFi ZmQsIHNpemVfdCBjaGVja19sZW4sIGNvbnN0IGJmZF9ieXRlICpjaGVjaykKICAgIHJldHVybiBy ZXR2YWw7CiAgfQogIApAQCAtNDgxLDE0ICs0ODEsMTEgQEAgZGlmZiAtLWdpdCBhL2dkYi9idWls ZC1pZC5jIGIvZ2RiL2J1aWxkLWlkLmMKICtidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBi dWlsZF9pZF9sZW4sIGNvbnN0IGJmZF9ieXRlICpidWlsZF9pZCwKICsJCSAgICAgICBjaGFyICoq bGlua19yZXR1cm4sIGludCBhZGRfZGVidWdfc3VmZml4KQogIHsKLSsgIGNoYXIgKmRlYnVnZGly OwogKyAgc3RkOjpzdHJpbmcgbGluaywgbGlua19hbGw7Ci0rICBzdHJ1Y3QgY2xlYW51cCAqYmFj a190bzsKLSsgIGludCBpeDsKICAgIGdkYl9iZmRfcmVmX3B0ciBhYmZkOwogIAogICAgLyogS2Vl cCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdfRklMRV9ESVJFQ1RPUlkgYmVp bmcgIiIgd2lsbAotQEAgLTgyLDYzICs1MTksMjk2IEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAo c2l6ZV90IGJ1aWxkX2lkX2xlbiwgY29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lkKQorQEAgLTgyLDYz ICs1MTYsMjk2IEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxkX2lkX2xlbiwg Y29uc3QgYmZkX2J5dGUgKmJ1aWxkX2lkKQogICAgICB7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUg KmRhdGEgPSBidWlsZF9pZDsKICAgICAgICBzaXplX3Qgc2l6ZSA9IGJ1aWxkX2lkX2xlbjsKQEAg LTgwNyw3ICs4MDQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmMgYi9nZGIvYnVpbGQt aWQuYwogICAgICAgIC8qIFByZXZlbnQgbG9vcGluZyBvbiBhIHN0cmlwcGVkIC5kZWJ1ZyBmaWxl LiAgKi8KICAgICAgICBpZiAoYWJmZCAhPSBOVUxMCiAgCSAgJiYgZmlsZW5hbWVfY21wIChiZmRf Z2V0X2ZpbGVuYW1lIChhYmZkLmdldCAoKSksCi1AQCAtMTUxLDMgKzgyMSwyMSBAQCBmaW5kX3Nl cGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitA QCAtMTUxLDMgKzgxOCwyMSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgCiAgICByZXR1cm4gc3RkOjpzdHJpbmcgKCk7CiAg fQpAQCAtODMyLDkgKzgyOSw5IEBAIGRpZmYgLS1naXQgYS9nZGIvYnVpbGQtaWQuYyBiL2dkYi9i dWlsZC1pZC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmggYi9nZGIvYnVpbGQtaWQuaAog LS0tIGEvZ2RiL2J1aWxkLWlkLmgKICsrKyBiL2dkYi9idWlsZC1pZC5oCi1AQCAtMjIsOSArMjIs MTAgQEAKLSAKK0BAIC0yMyw5ICsyMywxMCBAQAogICNpbmNsdWRlICJnZGJfYmZkLmgiCisgI2lu Y2x1ZGUgImNvbW1vbi9yc3AtbG93LmgiCiAgCiAtLyogTG9jYXRlIE5UX0dOVV9CVUlMRF9JRCBm cm9tIEFCRkQgYW5kIHJldHVybiBpdHMgY29udGVudC4gICovCiArLyogU2VwYXJhdGUgZGVidWdp bmZvIGZpbGVzIGhhdmUgY29ycnVwdGVkIFBIRFIgYnV0IFNIRFIgaXMgY29ycmVjdCB0aGVyZS4K QEAgLTg0NSw3ICs4NDIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmggYi9nZGIvYnVp bGQtaWQuaAogIAogIC8qIFJldHVybiB0cnVlIGlmIEFCRkQgaGFzIE5UX0dOVV9CVUlMRF9JRCBt YXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUuCiAgICAgT3RoZXJ3aXNlLCBpc3N1ZSBhIHdhcm5pbmcg YW5kIHJldHVybiBmYWxzZS4gICovCi1AQCAtMzgsMTMgKzM5LDE4IEBAIGV4dGVybiBpbnQgYnVp bGRfaWRfdmVyaWZ5IChiZmQgKmFiZmQsCitAQCAtMzksMTQgKzQwLDE5IEBAIGV4dGVybiBpbnQg YnVpbGRfaWRfdmVyaWZ5IChiZmQgKmFiZmQsCiAgICAgdGhlIGNhbGxlci4gICovCiAgCiAgZXh0 ZXJuIGdkYl9iZmRfcmVmX3B0ciBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9p ZF9sZW4sCkBAIC04NjYsMTEgKzg2MywxMiBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2J1aWxkLWlkLmgg Yi9nZGIvYnVpbGQtaWQuaAogK2V4dGVybiBzdGQ6OnN0cmluZyBmaW5kX3NlcGFyYXRlX2RlYnVn X2ZpbGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiArCQkgICAgICAgZ2Ri Ojp1bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gKmJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybik7CiAg Ci0gI2VuZGlmIC8qIEJVSUxEX0lEX0ggKi8KKyAvKiBSZXR1cm4gYW4gaGV4LXN0cmluZyByZXBy ZXNlbnRhdGlvbiBvZiBCVUlMRF9JRC4gICovCisgCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvZmZyZWFk LmMgYi9nZGIvY29mZnJlYWQuYwogLS0tIGEvZ2RiL2NvZmZyZWFkLmMKICsrKyBiL2dkYi9jb2Zm cmVhZC5jCi1AQCAtNzMzLDcgKzczMyw4IEBAIGNvZmZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFncykKK0BAIC03MzQs NyArNzM0LDggQEAgY29mZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBz eW1maWxlX2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQogICAgLyogVHJ5IHRvIGFkZCBzZXBhcmF0 ZSBkZWJ1ZyBmaWxlIGlmIG5vIHN5bWJvbHMgdGFibGUgZm91bmQuICAgKi8KICAgIGlmICghb2Jq ZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xzIChvYmpmaWxlKSkKICAgICAgewpAQCAtOTA1LDcgKzkw Myw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29yZWxvdy5jIGIvZ2RiL2NvcmVsb3cuYwogK3sKICsg IENPUkVfQUREUiBhdF9lbnRyeTsKICsgIHN0cnVjdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkOwot KyAgY2hhciAqZXhlY2ZpbGVuYW1lLCAqZGVidWdfZmlsZW5hbWU7CisrICBjaGFyICpleGVjZmls ZW5hbWU7CiArICBjaGFyICpidWlsZF9pZF9maWxlbmFtZTsKICsgIHN0cnVjdCBjbGVhbnVwICpi YWNrX3RvOwogKwpAQCAtOTQ5LDcgKzk0Nyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29yZWxvdy5j IGIvZ2RiL2NvcmVsb3cuYwogIC8qIElzc3VlIGEgbWVzc2FnZSBzYXlpbmcgd2UgaGF2ZSBubyBj b3JlIHRvIGRlYnVnLCBpZiBGUk9NX1RUWS4gICovCiAgCiAgc3RhdGljIHZvaWQKLUBAIC00NjQs NiArNTE2LDE0IEBAIGNvcmVfdGFyZ2V0X29wZW4gKGNvbnN0IGNoYXIgKmFyZywgaW50IGZyb21f dHR5KQorQEAgLTQ2Myw2ICs1MTUsMTQgQEAgY29yZV90YXJnZXRfb3BlbiAoY29uc3QgY2hhciAq YXJnLCBpbnQgZnJvbV90dHkpCiAgCXN3aXRjaF90b190aHJlYWQgKHRocmVhZCk7CiAgICAgIH0K ICAKQEAgLTk2NCw3ICs5NjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvcmVsb3cuYyBiL2dkYi9j b3JlbG93LmMKICAgIHBvc3RfY3JlYXRlX2luZmVyaW9yICh0YXJnZXQsIGZyb21fdHR5KTsKICAK ICAgIC8qIE5vdyBnbyB0aHJvdWdoIHRoZSB0YXJnZXQgc3RhY2sgbG9va2luZyBmb3IgdGhyZWFk cyBzaW5jZSB0aGVyZQotQEAgLTEwNjYsNCArMTEyNiwxMSBAQCB2b2lkCitAQCAtMTA3MSw0ICsx MTMxLDExIEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQogIHsKICAgIGFkZF90 YXJnZXQgKGNvcmVfdGFyZ2V0X2luZm8sIGNvcmVfdGFyZ2V0X29wZW4sIGZpbGVuYW1lX2NvbXBs ZXRlcik7CkBAIC05NzksNyArOTc3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb3JlbG93LmMgYi9n ZGIvY29yZWxvdy5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2Mv Z2RiLnRleGluZm8KIC0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KICsrKyBiL2dkYi9kb2MvZ2Ri LnRleGluZm8KLUBAIC0xOTU3MCw2ICsxOTU3MCwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4KK0BA IC0xOTc3Miw2ICsxOTc3MiwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4KICAKICBAZW5kIHRhYmxl CiAgCkBAIC0xMDA3LDEwICsxMDA1LDIyIEBAIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhp bmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNvZGV7LmdudV9kZWJ1Z2xpbmt9 IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25zCiAgQSBkZWJ1ZyBsaW5rIGlz IGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZpbGUgbmFtZWQKK2RpZmYgLS1n aXQgYS9nZGIvZHdhcmYtaW5kZXgtY2FjaGUuYyBiL2dkYi9kd2FyZi1pbmRleC1jYWNoZS5jCist LS0gYS9nZGIvZHdhcmYtaW5kZXgtY2FjaGUuYworKysrIGIvZ2RiL2R3YXJmLWluZGV4LWNhY2hl LmMKK0BAIC0xNDAsNyArMTQwLDcgQEAgaW5kZXhfY2FjaGU6OnN0b3JlIChzdHJ1Y3QgZHdhcmYy X3Blcl9vYmpmaWxlICpkd2FyZjJfcGVyX29iamZpbGUpCisgICBpZiAoIWVuYWJsZWQgKCkpCisg ICAgIHJldHVybjsKKyAKKy0gIGNvbnN0IGJmZF9idWlsZF9pZCAqYnVpbGRfaWQgPSBidWlsZF9p ZF9iZmRfZ2V0IChvYmotPm9iZmQpOworKyAgY29uc3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZCA9 IGJ1aWxkX2lkX2JmZF9zaGRyX2dldCAob2JqLT5vYmZkKTsKKyAgIGlmIChidWlsZF9pZCA9PSBu dWxscHRyKQorICAgICB7CisgICAgICAgaWYgKGRlYnVnX2luZGV4X2NhY2hlKQogZGlmZiAtLWdp dCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiAtLS0gYS9nZGIvZHdhcmYy cmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtMjY4Myw3ICsyNjgzLDcgQEAgZHdh cmYyX2dldF9kd3pfZmlsZSAoc3RydWN0IGR3YXJmMl9wZXJfb2JqZmlsZSAqZHdhcmYyX3Blcl9v YmpmaWxlKQorQEAgLTI2OTMsNyArMjY5Myw3IEBAIGR3YXJmMl9nZXRfZHd6X2ZpbGUgKHN0cnVj dCBkd2FyZjJfcGVyX29iamZpbGUgKmR3YXJmMl9wZXJfb2JqZmlsZSkKICAgICAgfQogIAogICAg aWYgKGR3el9iZmQgPT0gTlVMTCkKQEAgLTEwMTksMTAgKzEwMjksMjggQEAgZGlmZiAtLWdpdCBh L2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBpZiAoZHd6X2JmZCA9 PSBOVUxMKQogICAgICBlcnJvciAoXygiY291bGQgbm90IGZpbmQgJy5nbnVfZGVidWdhbHRsaW5r JyBmaWxlIGZvciAlcyIpLAorQEAgLTYxOTgsNyArNjE5OCw3IEBAIGdldF9nZGJfaW5kZXhfY29u dGVudHNfZnJvbV9zZWN0aW9uIChvYmpmaWxlICpvYmosIFQgKnNlY3Rpb25fb3duZXIpCisgc3Rh dGljIGdkYjo6YXJyYXlfdmlldzxjb25zdCBnZGJfYnl0ZT4KKyBnZXRfZ2RiX2luZGV4X2NvbnRl bnRzX2Zyb21fY2FjaGUgKG9iamZpbGUgKm9iaiwgZHdhcmYyX3Blcl9vYmpmaWxlICpkd2FyZjJf b2JqKQorIHsKKy0gIGNvbnN0IGJmZF9idWlsZF9pZCAqYnVpbGRfaWQgPSBidWlsZF9pZF9iZmRf Z2V0IChvYmotPm9iZmQpOworKyAgY29uc3QgYmZkX2J1aWxkX2lkICpidWlsZF9pZCA9IGJ1aWxk X2lkX2JmZF9zaGRyX2dldCAob2JqLT5vYmZkKTsKKyAgIGlmIChidWlsZF9pZCA9PSBudWxscHRy KQorICAgICByZXR1cm4ge307CisgCitAQCAtNjIxMSw3ICs2MjExLDcgQEAgZ2V0X2dkYl9pbmRl eF9jb250ZW50c19mcm9tX2NhY2hlIChvYmpmaWxlICpvYmosIGR3YXJmMl9wZXJfb2JqZmlsZSAq ZHdhcmYyX29iaikKKyBzdGF0aWMgZ2RiOjphcnJheV92aWV3PGNvbnN0IGdkYl9ieXRlPgorIGdl dF9nZGJfaW5kZXhfY29udGVudHNfZnJvbV9jYWNoZV9kd3ogKG9iamZpbGUgKm9iaiwgZHd6X2Zp bGUgKmR3eikKKyB7CistICBjb25zdCBiZmRfYnVpbGRfaWQgKmJ1aWxkX2lkID0gYnVpbGRfaWRf YmZkX2dldCAoZHd6LT5kd3pfYmZkLmdldCAoKSk7CisrICBjb25zdCBiZmRfYnVpbGRfaWQgKmJ1 aWxkX2lkID0gYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChkd3otPmR3el9iZmQuZ2V0ICgpKTsKKyAg IGlmIChidWlsZF9pZCA9PSBudWxscHRyKQorICAgICByZXR1cm4ge307CisgCiBkaWZmIC0tZ2l0 IGEvZ2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKIC0tLSBhL2dkYi9lbGZyZWFkLmMKICsr KyBiL2dkYi9lbGZyZWFkLmMKLUBAIC0xMjkwLDcgKzEyOTAsOSBAQCBlbGZfc3ltZmlsZV9yZWFk IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFn cykKK0BAIC0xMjg5LDcgKzEyODksOSBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3ltZmlsZV9mbGFncykKICAJICAgJiYgb2Jq ZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSA9PSBOVUxMCiAgCSAgICYmIG9iamZpbGUtPnNl cGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsgPT0gTlVMTCkKICAgICAgewpAQCAtMTAzMyw3 ICsxMDYxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9lbGZyZWFkLmMgYi9nZGIvZWxmcmVhZC5jCiAg CiAgICAgICAgaWYgKGRlYnVnZmlsZS5lbXB0eSAoKSkKICAJZGVidWdmaWxlID0gZmluZF9zZXBh cmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1AQCAtMTMwMiw2ICsxMzA0 LDEwIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzeW1maWxl X2FkZF9mbGFncyBzeW1maWxlX2ZsYWdzKQorQEAgLTEzMDEsNiArMTMwMywxMCBAQCBlbGZfc3lt ZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3ltZmlsZV9hZGRfZmxhZ3Mgc3lt ZmlsZV9mbGFncykKICAJICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUgKGFiZmQuZ2V0ICgpLCBk ZWJ1Z2ZpbGUuY19zdHIgKCksCiAgCQkJCSAgICBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKICAJ fQpAQCAtMTA2MSw3ICsxMDg5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9vYmpmaWxlcy5oIGIvZ2Ri L29iamZpbGVzLmgKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYyBiL2dkYi9w eXRob24vcHktb2JqZmlsZS5jCiAtLS0gYS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwogKysrIGIv Z2RiL3B5dGhvbi9weS1vYmpmaWxlLmMKLUBAIC0xMzcsNyArMTM3LDcgQEAgb2JqZnB5X2dldF9i dWlsZF9pZCAoUHlPYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUpCitAQCAtMTMyLDcgKzEzMiw3 IEBAIG9iamZweV9nZXRfYnVpbGRfaWQgKFB5T2JqZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlKQog IAogICAgVFJZCiAgICAgIHsKQEAgLTEwNzAsNyArMTA5OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIv cHl0aG9uL3B5LW9iamZpbGUuYyBiL2dkYi9weXRob24vcHktb2JqZmlsZS5jCiAgICAgIH0KICAg IENBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKICAgICAgewotQEAgLTU0NCw3ICs1NDQs NyBAQCBvYmpmcHlfbG9va3VwX29iamZpbGVfYnlfYnVpbGRfaWQgKGNvbnN0IGNoYXIgKmJ1aWxk X2lkKQorQEAgLTU0OSw3ICs1NDksNyBAQCBvYmpmcHlfbG9va3VwX29iamZpbGVfYnlfYnVpbGRf aWQgKGNvbnN0IGNoYXIgKmJ1aWxkX2lkKQogICAgICAgIC8qIERvbid0IHJldHVybiBzZXBhcmF0 ZSBkZWJ1ZyBmaWxlcy4gICovCiAgICAgICAgaWYgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29i amZpbGVfYmFja2xpbmsgIT0gTlVMTCkKICAJY29udGludWU7CkBAIC0xMDkwLDcgKzExMTgsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKICAKICBz dGF0aWMgc3RydWN0IGxpbmtfbWFwX29mZnNldHMgKnN2cjRfZmV0Y2hfbGlua19tYXBfb2Zmc2V0 cyAodm9pZCk7CiAgc3RhdGljIGludCBzdnI0X2hhdmVfbGlua19tYXBfb2Zmc2V0cyAodm9pZCk7 Ci1AQCAtMTM1Niw5ICsxMzU3LDUxIEBAIHN2cjRfcmVhZF9zb19saXN0IChDT1JFX0FERFIgbG0s IENPUkVfQUREUiBwcmV2X2xtLAorQEAgLTEzNDEsOSArMTM0Miw1MSBAQCBzdnI0X3JlYWRfc29f bGlzdCAoQ09SRV9BRERSIGxtLCBDT1JFX0FERFIgcHJldl9sbSwKICAJICBjb250aW51ZTsKICAJ fQogIApAQCAtMTE0OCw3ICsxMTc2LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi1zdnI0LmMg Yi9nZGIvc29saWItc3ZyNC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUuaCBiL2dkYi9zeW1m aWxlLmgKIC0tLSBhL2dkYi9zeW1maWxlLmgKICsrKyBiL2dkYi9zeW1maWxlLmgKLUBAIC01Mzcs NiArNTM3LDEwIEBAIHZvaWQgZXhwYW5kX3N5bXRhYnNfbWF0Y2hpbmcKK0BAIC01MzEsNiArNTMx LDEwIEBAIHZvaWQgZXhwYW5kX3N5bXRhYnNfbWF0Y2hpbmcKICB2b2lkIG1hcF9zeW1ib2xfZmls ZW5hbWVzIChzeW1ib2xfZmlsZW5hbWVfZnR5cGUgKmZ1biwgdm9pZCAqZGF0YSwKICAJCQkgICBp bnQgbmVlZF9mdWxsbmFtZSk7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1xdWl0LW5ldmVyLWFi b3J0cy5wYXRjaCBiL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKaW5kZXggZjM3NjVk ZS4uMjlmMWI2NiAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaAor KysgYi9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCkBAIC00NSw3ICs0NSw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvZXh0ZW5zaW9uLmMgYi9nZGIvZXh0ZW5zaW9uLmMKIGRpZmYgLS1naXQg YS9nZGIvdG9wLmMgYi9nZGIvdG9wLmMKIC0tLSBhL2dkYi90b3AuYwogKysrIGIvZ2RiL3RvcC5j Ci1AQCAtMTYxMSw3ICsxNjExLDEzIEBAIHF1aXRfZm9yY2UgKGludCAqZXhpdF9hcmcsIGludCBm cm9tX3R0eSkKK0BAIC0xNjA2LDcgKzE2MDYsMTMgQEAgcXVpdF9mb3JjZSAoaW50ICpleGl0X2Fy ZywgaW50IGZyb21fdHR5KQogIAogICAgcXQuZnJvbV90dHkgPSBmcm9tX3R0eTsKICAKQEAgLTYy LDcgKzYyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90b3AuYyBiL2dkYi90b3AuYwogZGlmZiAtLWdp dCBhL2dkYi91dGlscy5jIGIvZ2RiL3V0aWxzLmMKIC0tLSBhL2dkYi91dGlscy5jCiArKysgYi9n ZGIvdXRpbHMuYwotQEAgLTEwOCw2ICsxMDgsMTMgQEAgc3RhdGljIHN0ZDo6Y2hyb25vOjpzdGVh ZHlfY2xvY2s6OmR1cmF0aW9uIHByb21wdF9mb3JfY29udGludWVfd2FpdF90aW1lOworQEAgLTk4 LDYgKzk4LDEzIEBAIHN0YXRpYyBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlvbiBw cm9tcHRfZm9yX2NvbnRpbnVlX3dhaXRfdGltZTsKICAKICBzdGF0aWMgaW50IGRlYnVnX3RpbWVz dGFtcCA9IDA7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci1waWUtYWRkb25zLWtlZXAtZGlz YWJsZWQucGF0Y2ggYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNhYmxlZC5wYXRjaApp bmRleCA2NzI3MzRmLi4xODMzZjk4IDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLXBpZS1hZGRvbnMt a2VlcC1kaXNhYmxlZC5wYXRjaAorKysgYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNh YmxlZC5wYXRjaApAQCAtOCw3ICs4LDcgQEAgU3ViamVjdDogZ2RiLWFyY2hlci1waWUtYWRkb25z LWtlZXAtZGlzYWJsZWQucGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2Ri L2JyZWFrcG9pbnQuYwogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuYwogKysrIGIvZ2RiL2JyZWFrcG9p bnQuYwotQEAgLTE1NTE2LDYgKzE1NTE2LDUwIEBAIGluaXRpYWxpemVfYnJlYWtwb2ludF9vcHMg KHZvaWQpCitAQCAtMTU1MDYsNiArMTU1MDYsNTAgQEAgaW5pdGlhbGl6ZV9icmVha3BvaW50X29w cyAodm9pZCkKICAKICBzdGF0aWMgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKmVuYWJsZWJyZWFr bGlzdCA9IE5VTEw7CiAgCkBAIC02Miw3ICs2Miw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtw b2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50Lmgg Yi9nZGIvYnJlYWtwb2ludC5oCiAtLS0gYS9nZGIvYnJlYWtwb2ludC5oCiArKysgYi9nZGIvYnJl YWtwb2ludC5oCi1AQCAtMTY3OSw2ICsxNjc5LDkgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmVwX3Bh cnNlX29wdGlvbmFsX2lmX2NsYXVzZSAoY29uc3QgY2hhciAqKmFyZyk7CitAQCAtMTY3Niw2ICsx Njc2LDkgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmVwX3BhcnNlX29wdGlvbmFsX2lmX2NsYXVzZSAo Y29uc3QgY2hhciAqKmFyZyk7CiAgICAgVUlPVVQgaWZmIGRlYnVnZ2luZyBtdWx0aXBsZSB0aHJl YWRzLiAgKi8KICBleHRlcm4gdm9pZCBtYXliZV9wcmludF90aHJlYWRfaGl0X2JyZWFrcG9pbnQg KHN0cnVjdCB1aV9vdXQgKnVpb3V0KTsKICAKQEAgLTc1LDcgKzc1LDcgQEAgZGlmZiAtLWdpdCBh L2dkYi9icmVha3BvaW50LmggYi9nZGIvYnJlYWtwb2ludC5oCiBkaWZmIC0tZ2l0IGEvZ2RiL29i amZpbGVzLmMgYi9nZGIvb2JqZmlsZXMuYwogLS0tIGEvZ2RiL29iamZpbGVzLmMKICsrKyBiL2dk Yi9vYmpmaWxlcy5jCi1AQCAtODc1LDYgKzg3NSwxMSBAQCBvYmpmaWxlX3JlbG9jYXRlMSAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtODgwLDYgKzg4MCwxMSBAQCBvYmpmaWxlX3JlbG9j YXRlMSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCQkJCW9ial9zZWN0aW9uX2FkZHIgKHMp KTsKICAgICAgfQogIAoKZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaCBi L2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaAppbmRleCA5YWVmNjE3Li44OGRhMjJhIDEwMDY0 NAotLS0gYS9nZGItYXJjaGVyLXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci1waWUt YWRkb25zLnBhdGNoCkBAIC04LDcgKzgsNyBAQCBTdWJqZWN0OiBnZGItYXJjaGVyLXBpZS1hZGRv bnMucGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAt LS0gYS9nZGIvZ2RidHlwZXMuaAogKysrIGIvZ2RiL2dkYnR5cGVzLmgKLUBAIC01MDUsNiArNTA1 LDcgQEAgZW51bSBmaWVsZF9sb2Nfa2luZAorQEAgLTUwNiw2ICs1MDYsNyBAQCBlbnVtIGZpZWxk X2xvY19raW5kCiAgICB7CiAgICAgIEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJLyoqPCBiaXRwb3Mg Ki8KICAgICAgRklFTERfTE9DX0tJTkRfRU5VTVZBTCwJLyoqPCBlbnVtdmFsICovCkBAIC0xNiw3 ICsxNiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAg ICAgIEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkvKio8IHBoeXNhZGRyICovCiAgICAgIEZJRUxE X0xPQ19LSU5EX1BIWVNOQU1FLAkvKio8IHBoeXNuYW1lICovCiAgICAgIEZJRUxEX0xPQ19LSU5E X0RXQVJGX0JMT0NLCS8qKjwgZHdhcmZfYmxvY2sgKi8KLUBAIC01NTYsNiArNTU3LDcgQEAgdW5p b24gZmllbGRfbG9jYXRpb24KK0BAIC01NTcsNiArNTU4LDcgQEAgdW5pb24gZmllbGRfbG9jYXRp b24KICAgICAgIGZpZWxkLiAgT3RoZXJ3aXNlLCBwaHlzbmFtZSBpcyB0aGUgbWFuZ2xlZCBsYWJl bCBvZiB0aGUKICAgICAgIHN0YXRpYyBmaWVsZC4gICovCiAgCkBAIC0yNCw3ICsyNCw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgICBDT1JFX0FERFIg cGh5c2FkZHI7CiAgICBjb25zdCBjaGFyICpwaHlzbmFtZTsKICAKLUBAIC0xNDM4LDYgKzE0NDAs NyBAQCBleHRlcm4gdm9pZCBzZXRfdHlwZV92cHRyX2Jhc2V0eXBlIChzdHJ1Y3QgdHlwZSAqLCBz dHJ1Y3QgdHlwZSAqKTsKK0BAIC0xNDM5LDYgKzE0NDEsNyBAQCBleHRlcm4gdm9pZCBzZXRfdHlw ZV92cHRyX2Jhc2V0eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5l IEZJRUxEX0VOVU1WQUxfTFZBTCh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5lbnVtdmFsKQogICNk ZWZpbmUgRklFTERfRU5VTVZBTCh0aGlzZmxkKSAoRklFTERfRU5VTVZBTF9MVkFMICh0aGlzZmxk KSArIDApCiAgI2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU05BTUUodGhpc2ZsZCkgKCh0aGlzZmxk KS5sb2MucGh5c25hbWUpCkBAIC0zMiw3ICszMiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlw ZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgI2RlZmluZSBGSUVMRF9TVEFUSUNfUEhZU0FERFIodGhp c2ZsZCkgKCh0aGlzZmxkKS5sb2MucGh5c2FkZHIpCiAgI2RlZmluZSBGSUVMRF9EV0FSRl9CTE9D Syh0aGlzZmxkKSAoKHRoaXNmbGQpLmxvYy5kd2FyZl9ibG9jaykKICAjZGVmaW5lIFNFVF9GSUVM RF9CSVRQT1ModGhpc2ZsZCwgYml0cG9zKQkJCVwKLUBAIC0xNDQ5LDYgKzE0NTIsNyBAQCBleHRl cm4gdm9pZCBzZXRfdHlwZV92cHRyX2Jhc2V0eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlw ZSAqKTsKK0BAIC0xNDUwLDYgKzE0NTMsNyBAQCBleHRlcm4gdm9pZCBzZXRfdHlwZV92cHRyX2Jh c2V0eXBlIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFNFVF9GSUVM RF9QSFlTTkFNRSh0aGlzZmxkLCBuYW1lKQkJCVwKICAgIChGSUVMRF9MT0NfS0lORCAodGhpc2Zs ZCkgPSBGSUVMRF9MT0NfS0lORF9QSFlTTkFNRSwJCVwKICAgICBGSUVMRF9TVEFUSUNfUEhZU05B TUUgKHRoaXNmbGQpID0gKG5hbWUpKQpAQCAtNDAsNyArNDAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2Ri L2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgU0VUX0ZJRUxEX1BIWVNBRERS KHRoaXNmbGQsIGFkZHIpCQkJXAogICAgKEZJRUxEX0xPQ19LSU5EICh0aGlzZmxkKSA9IEZJRUxE X0xPQ19LSU5EX1BIWVNBRERSLAkJXAogICAgIEZJRUxEX1NUQVRJQ19QSFlTQUREUiAodGhpc2Zs ZCkgPSAoYWRkcikpCi1AQCAtMTQ2NSw2ICsxNDY5LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3R5cGVf dnB0cl9iYXNldHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7CitAQCAtMTQ2Niw2 ICsxNDcwLDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3R5cGVfdnB0cl9iYXNldHlwZSAoc3RydWN0IHR5 cGUgKiwgc3RydWN0IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX0ZJRUxEX0JJVFBPUyh0aGlzdHlw ZSwgbikgRklFTERfQklUUE9TIChUWVBFX0ZJRUxEICh0aGlzdHlwZSwgbikpCiAgI2RlZmluZSBU WVBFX0ZJRUxEX0VOVU1WQUwodGhpc3R5cGUsIG4pIEZJRUxEX0VOVU1WQUwgKFRZUEVfRklFTEQg KHRoaXN0eXBlLCBuKSkKICAjZGVmaW5lIFRZUEVfRklFTERfU1RBVElDX1BIWVNOQU1FKHRoaXN0 eXBlLCBuKSBGSUVMRF9TVEFUSUNfUEhZU05BTUUgKFRZUEVfRklFTEQgKHRoaXN0eXBlLCBuKSkK QEAgLTUxLDcgKzUxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5 cGVzLmgKIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5jCiAtLS0gYS9nZGIv dmFsdWUuYwogKysrIGIvZ2RiL3ZhbHVlLmMKLUBAIC0yODI5LDcgKzI4MjksOCBAQCB2YWx1ZV9z dGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRubykKK0BAIC0yODI4LDcg KzI4MjgsOCBAQCB2YWx1ZV9zdGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmll bGRubykKICAgICAgewogICAgICBjYXNlIEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSOgogICAgICAg IHJldHZhbCA9IHZhbHVlX2F0X2xhenkgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgZmllbGRubyks CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXgg ZGNiOTg5Yy4uODgyYjg2ZSAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGIt YXJjaGVyLnBhdGNoCkBAIC0xNyw3ICsxNyw3IEBAIHRyb21leS9weXRob24KIGRpZmYgLS1naXQg YS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KIC0tLSBhL2dkYi9NYWtlZmlsZS5p bgogKysrIGIvZ2RiL01ha2VmaWxlLmluCi1AQCAtMjExMiw2ICsyMTEyLDEyIEBAIHN0YW1wLWg6 ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXR1cworQEAgLTIwOTIsNiArMjA5MiwxMiBA QCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05GSUdf TElOS1M9IFwKICAJICAkKFNIRUxMKSBjb25maWcuc3RhdHVzCiAgCkBAIC03Myw3ICs3Myw3IEBA IGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwog ZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCiAt LS0gYS9nZGIvZG9jL3B5dGhvbi50ZXhpCiArKysgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCi1AQCAt ODgsOCArODgsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToKK0BAIC05 MCw4ICs5MCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgogIAogIEBz bWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRob24KQEAgLTExMiw3ICsxMTIsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKICAjaW5jbHVkZSAic291cmNlLmgi CiAgI2luY2x1ZGUgImNsaS9jbGktY21kcy5oIgogICNpbmNsdWRlICJvYmpmaWxlcy5oIgotQEAg LTQ3OSw3ICs0ODAsNyBAQCBleGVjX29yX2NvcmVfZmlsZV9hdHRhY2ggKGNvbnN0IGNoYXIgKmZp bGVuYW1lLCBpbnQgZnJvbV90dHkpCitAQCAtNDc3LDcgKzQ3OCw3IEBAIGV4ZWNfb3JfY29yZV9m aWxlX2F0dGFjaCAoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0eSkKICB9CiAgCiAg c3RhdGljIHZvaWQKQEAgLTEyMSw3ICsxMjEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBi L2dkYi9tYWluLmMKICB7CiAgICBpbnQgYXJnYyA9IGNvbnRleHQtPmFyZ2M7CiAgICBjaGFyICoq YXJndiA9IGNvbnRleHQtPmFyZ3Y7Ci1AQCAtNjk1LDEwICs2OTYsMTQgQEAgY2FwdHVyZWRfbWFp bl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQorQEAgLTY5NCwxMCArNjk1 LDE0IEBAIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4 dCkKICAgICAgICB7ImFyZ3MiLCBub19hcmd1bWVudCwgJnNldF9hcmdzLCAxfSwKICAgICAgICB7 ImwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ2wnfSwKICAgICAgICB7InJldHVybi1jaGlsZC1y ZXN1bHQiLCBub19hcmd1bWVudCwgJnJldHVybl9jaGlsZF9yZXN1bHQsIDF9LApAQCAtMTM3LDcg KzEzNyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwogICAgICAgIHsK ICAJaW50IG9wdGlvbl9pbmRleDsKICAKLUBAIC03MTYsNiArNzIxLDkgQEAgY2FwdHVyZWRfbWFp bl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQorQEAgLTcxNSw2ICs3MjAs OSBAQCBjYXB0dXJlZF9tYWluXzEgKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKmNvbnRleHQp CiAgCSAgY2FzZSAwOgogIAkgICAgLyogTG9uZyBvcHRpb24gdGhhdCBqdXN0IHNldHMgYSBmbGFn LiAgKi8KICAJICAgIGJyZWFrOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIGRpZmYgLS1naXQgYS9nZGIv bWFpbi5jIGIvZ2RiL21haW4uYwogIAkgIGNhc2UgT1BUX1NFOgogIAkgICAgc3ltYXJnID0gb3B0 YXJnOwogIAkgICAgZXhlY2FyZyA9IG9wdGFyZzsKLUBAIC04OTAsNyArODk4LDMxIEBAIGNhcHR1 cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4dCkKK0BAIC04ODks NyArODk3LDMxIEBAIGNhcHR1cmVkX21haW5fMSAoc3RydWN0IGNhcHR1cmVkX21haW5fYXJncyAq Y29udGV4dCkKICAKICAgIC8qIE5vdyB0aGF0IGdkYl9pbml0IGhhcyBjcmVhdGVkIHRoZSBpbml0 aWFsIGluZmVyaW9yLCB3ZSdyZSBpbgogICAgICAgcG9zaXRpb24gdG8gc2V0IGFyZ3MgZm9yIHRo YXQgaW5mZXJpb3IuICAqLwpAQCAtMTgwLDcgKzE4MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWFp bi5jIGIvZ2RiL21haW4uYwogICAgICB7CiAgICAgICAgLyogVGhlIHJlbWFpbmluZyBvcHRpb25z IGFyZSB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIHRoZQogIAkgaW5mZXJpb3IuICBUaGUg Zmlyc3Qgb25lIGlzIHRoZSBzeW0vZXhlYyBmaWxlLCBhbmQgdGhlIHJlc3QKLUBAIC0xMTgwLDcg KzEyMTIsOCBAQCBjYXB0dXJlZF9tYWluXzEgKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKmNv bnRleHQpCitAQCAtMTE5MCw3ICsxMjIyLDggQEAgY2FwdHVyZWRfbWFpbl8xIChzdHJ1Y3QgY2Fw dHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3Rv cnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5kIGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICov CkBAIC0xOTAsNyArMTkwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9tYWluLmMgYi9nZGIvbWFpbi5j CiAgCiAgICBpZiAoYmF0Y2hfZmxhZykKICAgICAgewotQEAgLTExOTMsMjQgKzEyMjYsMzcgQEAg c3RhdGljIHZvaWQKK0BAIC0xMjA2LDI0ICsxMjM5LDM3IEBAIHN0YXRpYyB2b2lkCiAgY2FwdHVy ZWRfbWFpbiAodm9pZCAqZGF0YSkKICB7CiAgICBzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpj b250ZXh0ID0gKHN0cnVjdCBjYXB0dXJlZF9tYWluX2FyZ3MgKikgZGF0YTsKQEAgLTI0MSw3ICsy NDEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKICAgICAgfQogICAg LyogTm8gZXhpdCAtLSBleGl0IGlzIHRocm91Z2ggcXVpdF9jb21tYW5kLiAgKi8KICB9Ci1AQCAt MTI1Myw2ICsxMjk5LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt KQorQEAgLTEyNjYsNiArMTMxMiwxMiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICBUaGlzIGlzIHRoZSBHTlUgZGVi dWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29wdGlvbnNdIFtleGVjdXRhYmxlLWZpbGUg W2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAgLTI1NCw3ICsyNTQsNyBAQCBkaWZmIC0t Z2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKICAgICAgZ2RiIFtvcHRpb25zXSAtLWFyZ3Mg ZXhlY3V0YWJsZS1maWxlIFtpbmZlcmlvci1hcmd1bWVudHMgLi4uXVxuXG5cCiAgIiksIHN0cmVh bSk7CiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCi1AQCAtMTI5OCw2ICsxMzUwLDEzIEBAIE91 dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxuXAorQEAgLTEzMTEsNiArMTM2Mywx MyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRyb2w6XG5cblwKICAjZW5kaWYKICAg IGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tZGJ4ICAgICAgICAgICAgICBEQlggY29tcGF0 aWJpbGl0eSBtb2RlLlxuXApAQCAtMzY1LDcgKzM2NSw3IEBAIG5ldyBmaWxlIG1vZGUgMTAwNjQ0 CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaCBiL2dkYi9weXRob24v cHl0aG9uLWludGVybmFsLmgKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKICsr KyBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKLUBAIC02NDQsNiArNjQ0LDkgQEAgY2xh c3MgZ2RicHlfZW50ZXJfdmFyb2JqIDogcHVibGljIGdkYnB5X2VudGVyCitAQCAtNjM2LDYgKzYz Niw5IEBAIGNsYXNzIGdkYnB5X2VudGVyX3Zhcm9iaiA6IHB1YmxpYyBnZGJweV9lbnRlcgogIAog IH07CiAgCkBAIC0zNzgsNyArMzc4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmggYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiBkaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKIC0tLSBhL2dkYi9weXRo b24vcHl0aG9uLmMKICsrKyBiL2dkYi9weXRob24vcHl0aG9uLmMKLUBAIC05NSw2ICs5NSw4IEBA IGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2Vf cHl0aG9uID0KK0BAIC05NCw2ICs5NCw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3Vh Z2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2VfcHl0aG9uID0KICAjaW5jbHVkZSAibGluZXNwZWMu aCIKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgInZlcnNpb24uaCIKQEAgLTM4Nyw3 ICszODcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24v cHl0aG9uLmMKICAjaW5jbHVkZSAidGFyZ2V0LmgiCiAgI2luY2x1ZGUgImdkYnRocmVhZC5oIgog ICNpbmNsdWRlICJpbnRlcnBzLmgiCi1AQCAtMjM3LDYgKzIzOSwyOSBAQCBnZGJweV9lbnRlcjo6 fmdkYnB5X2VudGVyICgpCitAQCAtMjM2LDYgKzIzOCwyOSBAQCBnZGJweV9lbnRlcjo6fmdkYnB5 X2VudGVyICgpCiAgICByZXN0b3JlX2FjdGl2ZV9leHRfbGFuZyAobV9wcmV2aW91c19hY3RpdmUp OwogIH0KICAKQEAgLTQxNywxMCArNDE3LDEwIEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwogIC8qIFNldCB0aGUgcXVpdCBmbGFnLiAgKi8K ICAKICBzdGF0aWMgdm9pZAotQEAgLTEzNjcsNiArMTM5Miw5MiBAQCBnZGJweV9wcmludF9zdGFj ayAodm9pZCkKK0BAIC0xMzEyLDYgKzEzMzcsOTIgQEAgZ2RicHlfcHJpbnRfc3RhY2sgKHZvaWQp CisgCisgDAogIAotIC8qIFJldHVybiB0aGUgY3VycmVudCBQcm9nc3BhY2UuCi0gICAgVGhlcmUg YWx3YXlzIGlzIG9uZS4gICovCiArLyogVHJ1ZSBpZiAnZ2RiIC1QJyB3YXMgdXNlZCwgZmFsc2Ug b3RoZXJ3aXNlLiAgKi8KICtzdGF0aWMgaW50IHJ1bm5pbmdfcHl0aG9uX3NjcmlwdDsKICsKQEAg LTUwNywxMCArNTA3LDEwIEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2Ri L3B5dGhvbi9weXRob24uYwogKwogKwwKICsKKyAvKiBSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5n IGFsbCB0aGUgUHJvZ3NwYWNlcy4gICovCiAgCiAgc3RhdGljIFB5T2JqZWN0ICoKLSBnZGJweV9n ZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5T2JqZWN0ICp1bnVzZWQxLCBQeU9iamVjdCAqdW51c2Vk MikKLUBAIC0yMDU3LDYgKzIxNjgsOCBAQCBQeU1ldGhvZERlZiBweXRob25fR2RiTWV0aG9kc1td ID0KK0BAIC0xOTYzLDYgKzIwNzQsOCBAQCBQeU1ldGhvZERlZiBweXRob25fR2RiTWV0aG9kc1td ID0KICBFdmFsdWF0ZSBjb21tYW5kLCBhIHN0cmluZywgYXMgYSBnZGIgQ0xJIGNvbW1hbmQuICBP cHRpb25hbGx5IHJldHVybnNcblwKICBhIFB5dGhvbiBTdHJpbmcgY29udGFpbmluZyB0aGUgb3V0 cHV0IG9mIHRoZSBjb21tYW5kIGlmIHRvX3N0cmluZyBpc1xuXAogIHNldCB0byBUcnVlLiIgfSwK CmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoIGIvZ2RiLWF0 dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCBjOGIxMjY3Li42NTlhZWM2IDEwMDY0 NAotLS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCisrKyBiL2dkYi1hdHRh Y2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTQ1LDcgKzQ1LDcgQEAgZ2RiL2dkYnNlcnZl ci8KIGRpZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5pbgogLS0tIGEvZ2Ri L2NvbmZpZy5pbgogKysrIGIvZ2RiL2NvbmZpZy5pbgotQEAgLTI3Niw2ICsyNzYsOSBAQAorQEAg LTI2NCw2ICsyNjQsOSBAQAogIC8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBiZWluZyB1 c2VkLiAqLwogICN1bmRlZiBIQVZFX0xJQlJQTQogIApAQCAtNTUsNyArNTUsNyBAQCBkaWZmIC0t Z2l0IGEvZ2RiL2NvbmZpZy5pbiBiL2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5 b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0Lmg+IGhlYWRlciBmaWxlLiAqLwogICN1bmRlZiBI QVZFX0xJQlVOV0lORF9JQTY0X0gKICAKLUBAIC0zOTksNiArNDAyLDkgQEAKK0BAIC0zODcsNiAr MzkwLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNjbV9uZXdfc21vYicg ZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0NNX05FV19TTU9CCiAgCkBAIC02OCw3ICs2OCw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5pbgogZGlmZiAtLWdp dCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAtLS0gYS9nZGIvY29uZmlndXJlCiAr KysgYi9nZGIvY29uZmlndXJlCi1AQCAtMTU4NTQsNiArMTU4NTQsNjQgQEAgY2F0ID4+Y29uZmRl ZnMuaCA8PF9BQ0VPRgorQEAgLTE1NzkzLDYgKzE1NzkzLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmgg PDxfQUNFT0YKICBfQUNFT0YKICAKICAKQEAgLTEzNiw3ICsxMzYsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1cmUKIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJl LmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwogLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYwogKysrIGIvZ2Ri L2NvbmZpZ3VyZS5hYwotQEAgLTIwNTQsNiArMjA1NCwxMCBAQCBjYXNlICRob3N0X29zIGluCitA QCAtMjAzMSw2ICsyMDMxLDEwIEBAIGNhc2UgJGhvc3Rfb3MgaW4KICBlc2FjCiAgQUNfREVGSU5F X1VOUVVPVEVEKEdEQklOSVQsIiRnZGJpbml0IixbVGhlIC5nZGJpbml0IGZpbGVuYW1lLl0pCiAg CkBAIC0xNzMsNyArMTczLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmlu IGIvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KIGRpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL2Nv bmZpZ3VyZSBiL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCiAtLS0gYS9nZGIvZ2Ric2VydmVyL2Nv bmZpZ3VyZQogKysrIGIvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUKLUBAIC04NTM1LDYgKzg1MzUs NjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgorQEAgLTg1NjgsNiArODU2OCw2NCBAQCBpZiAkd2Fu dF9pcGEgOyB0aGVuCiAgICAgZmkKICBmaQogIApAQCAtMjc2LDcgKzI3Niw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jIGIvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cu YwogZGlmZiAtLWdpdCBhL2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1uYXQuYwogLS0tIGEv Z2RiL2xpbnV4LW5hdC5jCiArKysgYi9nZGIvbGludXgtbmF0LmMKLUBAIC0xMDg5LDcgKzEwODks MTcgQEAgbGludXhfbmF0X3RhcmdldDo6Y3JlYXRlX2luZmVyaW9yIChjb25zdCBjaGFyICpleGVj X2ZpbGUsCitAQCAtMTA5Miw3ICsxMDkyLDE3IEBAIGxpbnV4X25hdF90YXJnZXQ6OmNyZWF0ZV9p bmZlcmlvciAoY29uc3QgY2hhciAqZXhlY19maWxlLAogICAgLyogTWFrZSBzdXJlIHdlIHJlcG9y dCBhbGwgc2lnbmFscyBkdXJpbmcgc3RhcnR1cC4gICovCiAgICBwYXNzX3NpZ25hbHMgKDAsIE5V TEwpOwogIAoKZGlmZiAtLWdpdCBhL2dkYi1idHJvYnVzdC5wYXRjaCBiL2dkYi1idHJvYnVzdC5w YXRjaAppbmRleCA0MGQ0MDZjLi5iMWE2NWM2IDEwMDY0NAotLS0gYS9nZGItYnRyb2J1c3QucGF0 Y2gKKysrIGIvZ2RiLWJ0cm9idXN0LnBhdGNoCkBAIC0xNCw3ICsxNCw3IEBAIHByaW50ZWQsIGJ1 dCBhIGRlZmF1bHQgYmFja3RyYWNlIHdpbGwgb2NjdXIgaW4gdGhpcyBjYXNlLgogZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYyBiL2dkYi9weXRob24vcHktZnJhbWVmaWx0 ZXIuYwogLS0tIGEvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCiArKysgYi9nZGIvcHl0aG9u L3B5LWZyYW1lZmlsdGVyLmMKLUBAIC0xMTUxLDYgKzExNTEsNyBAQCBnZGJweV9hcHBseV9mcmFt ZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywK K0BAIC0xMTU0LDYgKzExNTQsNyBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0ZXIgKGNvbnN0IHN0 cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKICAJCQkJICAgICAgIGh0YWJf ZXFfcG9pbnRlciwKICAJCQkJICAgICAgIE5VTEwpKTsKICAKQEAgLTIyLDcgKzIyLDcgQEAgZGlm ZiAtLWdpdCBhL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYyBiL2dkYi9weXRob24vcHktZnJh bWVmaWx0ZXIuYwogICAgd2hpbGUgKHRydWUpCiAgICAgIHsKICAgICAgICBnZGJweV9yZWY8PiBp dGVtIChQeUl0ZXJfTmV4dCAoaXRlcmFibGUuZ2V0ICgpKSk7Ci1AQCAtMTE1OSw4ICsxMTYwLDgg QEAgZ2RicHlfYXBwbHlfZnJhbWVfZmlsdGVyIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1 YWdlX2RlZm4gKmV4dGxhbmcsCitAQCAtMTE2Miw4ICsxMTYzLDggQEAgZ2RicHlfYXBwbHlfZnJh bWVfZmlsdGVyIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmcs CiAgCXsKICAJICBpZiAoUHlFcnJfT2NjdXJyZWQgKCkpCiAgCSAgICB7CkBAIC0zMyw3ICszMyw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMgYi9nZGIvcHl0aG9u L3B5LWZyYW1lZmlsdGVyLmMKICAJICAgIH0KICAJICBicmVhazsKICAJfQotQEAgLTExOTMsNyAr MTE5NCw4IEBAIGdkYnB5X2FwcGx5X2ZyYW1lX2ZpbHRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lv bl9sYW5ndWFnZV9kZWZuICpleHRsYW5nLAorQEAgLTExOTYsNyArMTE5Nyw4IEBAIGdkYnB5X2Fw cGx5X2ZyYW1lX2ZpbHRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpl eHRsYW5nLAogICAgICAgIC8qIERvIG5vdCBleGl0IG9uIGVycm9yIHByaW50aW5nIGEgc2luZ2xl IGZyYW1lLiAgUHJpbnQgdGhlCiAgCSBlcnJvciBhbmQgY29udGludWUgd2l0aCBvdGhlciBmcmFt ZXMuICAqLwogICAgICAgIGlmIChzdWNjZXNzID09IEVYVF9MQU5HX0JUX0VSUk9SKQoKZGlmZiAt LWdpdCBhL2dkYi1iejEyMTk3NDctYXR0YWNoLWtpbGxzLnBhdGNoIGIvZ2RiLWJ6MTIxOTc0Ny1h dHRhY2gta2lsbHMucGF0Y2gKaW5kZXggNmFlMTBhMi4uNDRmMzM5ZSAxMDA2NDQKLS0tIGEvZ2Ri LWJ6MTIxOTc0Ny1hdHRhY2gta2lsbHMucGF0Y2gKKysrIGIvZ2RiLWJ6MTIxOTc0Ny1hdHRhY2gt a2lsbHMucGF0Y2gKQEAgLTgwLDE4ICs4MCwxOCBAQCBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwog ZGlmZiAtLWdpdCBhL2dkYi9tYWluLmMgYi9nZGIvbWFpbi5jCiAtLS0gYS9nZGIvbWFpbi5jCiAr KysgYi9nZGIvbWFpbi5jCi1AQCAtMTExNSw3ICsxMTE1LDEwIEBAIGNhcHR1cmVkX21haW5fMSAo c3RydWN0IGNhcHR1cmVkX21haW5fYXJncyAqY29udGV4dCkKLSAgICAgICBpZiAoaXNkaWdpdCAo cGlkX29yX2NvcmVfYXJnWzBdKSkKK0BAIC0xMTIwLDcgKzExMjAsMTAgQEAgY2FwdHVyZWRfbWFp bl8xIChzdHJ1Y3QgY2FwdHVyZWRfbWFpbl9hcmdzICpjb250ZXh0KQogIAl7Ci0gCSAgaWYgKGNh dGNoX2NvbW1hbmRfZXJyb3JzIChhdHRhY2hfY29tbWFuZCwgcGlkX29yX2NvcmVfYXJnLAotLQkJ CQkgICAgIWJhdGNoX2ZsYWcpID09IDApCi0rCQkJCSAgICAhYmF0Y2hfZmxhZykgPT0gMAorIAkg IHJldCA9IGNhdGNoX2NvbW1hbmRfZXJyb3JzIChhdHRhY2hfY29tbWFuZCwgcGlkX29yX2NvcmVf YXJnLAorIAkJCQkgICAgICAhYmF0Y2hfZmxhZyk7CistCSAgaWYgKHJldCA9PSAwKQorKwkgIGlm IChyZXQgPT0gMAogKwkgICAgICAvKiBhdHRhY2hfY29tbWFuZCBjb3VsZCBzdWNjZWVkIHBhcnRp YWxseSBhbmQgY29yZV9maWxlX2NvbW1hbmQKICsJCSB3b3VsZCB0cnkgdG8ga2lsbCBpdC4gICov CiArCSAgICAgICYmICFoYXZlX2luZmVyaW9ycyAoKSkKLSAJICAgIGNhdGNoX2NvbW1hbmRfZXJy b3JzIChjb3JlX2ZpbGVfY29tbWFuZCwgcGlkX29yX2NvcmVfYXJnLAotIAkJCQkgICFiYXRjaF9m bGFnKTsKLSAJfQorIAkgICAgcmV0ID0gY2F0Y2hfY29tbWFuZF9lcnJvcnMgKGNvcmVfZmlsZV9j b21tYW5kLAorIAkJCQkJcGlkX29yX2NvcmVfYXJnLAorIAkJCQkJIWJhdGNoX2ZsYWcpOwogZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXR0YWNoLWtpbGxzLmMgYi9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2F0dGFjaC1raWxscy5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogLS0t IC9kZXYvbnVsbAoKZGlmZiAtLWdpdCBhL2dkYi1iejUzMzE3Ni1mb3J0cmFuLW9tcC1zdGVwLnBh dGNoIGIvZ2RiLWJ6NTMzMTc2LWZvcnRyYW4tb21wLXN0ZXAucGF0Y2gKaW5kZXggYzQyYzQ1OC4u ZTJmOTc5NCAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTMzMTc2LWZvcnRyYW4tb21wLXN0ZXAucGF0Y2gK KysrIGIvZ2RiLWJ6NTMzMTc2LWZvcnRyYW4tb21wLXN0ZXAucGF0Y2gKQEAgLTMwLDcgKzMwLDcg QEAgZGVidWdnaW5nIHByb2JsZW0gb2YgR09NUCBvdXRzaWRlIG9mIHRoZSBzY29wZSBvZiB0aGlz IEJ1Zy4KIGRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMgYi9nZGIvaW5mcnVuLmMKIC0tLSBhL2dk Yi9pbmZydW4uYwogKysrIGIvZ2RiL2luZnJ1bi5jCi1AQCAtNjY5NCw2ICs2Njk0LDE2IEBAIHBy b2Nlc3NfZXZlbnRfc3RvcF90ZXN0IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVj cykKK0BAIC02NjkxLDYgKzY2OTEsMTYgQEAgcHJvY2Vzc19ldmVudF9zdG9wX3Rlc3QgKHN0cnVj dCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQogIAogICAgICAgIGlmIChlY3MtPmV2ZW50 X3RocmVhZC0+Y29udHJvbC5zdGVwX292ZXJfY2FsbHMgPT0gU1RFUF9PVkVSX0FMTCkKICAJewpA QCAtNDcsNyArNDcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2luZnJ1bi5jIGIvZ2RiL2luZnJ1bi5j CiAgCSAgLyogV2UncmUgZG9pbmcgYSAibmV4dCIuCiAgCiAgCSAgICAgTm9ybWFsIChmb3J3YXJk KSBleGVjdXRpb246IHNldCBhIGJyZWFrcG9pbnQgYXQgdGhlCi1AQCAtNjcyNyw2ICs2NzM3LDcg QEAgcHJvY2Vzc19ldmVudF9zdG9wX3Rlc3QgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0 ZSAqZWNzKQorQEAgLTY3MjQsNiArNjczNCw3IEBAIHByb2Nlc3NfZXZlbnRfc3RvcF90ZXN0IChz dHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKICAKICAJICBrZWVwX2dvaW5nIChl Y3MpOwogIAkgIHJldHVybjsKCmRpZmYgLS1naXQgYS9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9y ZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKaW5kZXgg OTEyYWY2NS4uYTI5N2JiZSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUt cnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaApAQCAt MTAsNyArMTAsNyBAQCBTdWJqZWN0OiBnZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0 Y2gKIGRpZmYgLS1naXQgYS9nZGIvYnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwogLS0t IGEvZ2RiL2JyZWFrcG9pbnQuYwogKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwotQEAgLTg4MDEsNyAr ODgwMSw3IEBAIGluaXRfYnJlYWtwb2ludF9zYWwgKHN0cnVjdCBicmVha3BvaW50ICpiLCBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC04Nzg5LDcgKzg3ODksNyBAQCBpbml0X2JyZWFrcG9p bnRfc2FsIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAg CQkgICAgIGludCBlbmFibGVkLCBpbnQgaW50ZXJuYWwsIHVuc2lnbmVkIGZsYWdzLAogIAkJICAg ICBpbnQgZGlzcGxheV9jYW5vbmljYWwpCiAgewpAQCAtMTksNyArMTksNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMKICAKICAgIGlmICh0eXBlID09 IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQpCiAgICAgIHsKLUBAIC0xNDM1MCw3ICsxNDM1MCw3IEBA IGVuYWJsZV9icmVha3BvaW50X2Rpc3AgKHN0cnVjdCBicmVha3BvaW50ICpicHQsIGVudW0gYnBk aXNwIGRpc3Bvc2l0aW9uLAorQEAgLTE0MzQwLDcgKzE0MzQwLDcgQEAgZW5hYmxlX2JyZWFrcG9p bnRfZGlzcCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCwgZW51bSBicGRpc3AgZGlzcG9zaXRpb24s CiAgCiAgICBpZiAoYnB0LT50eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQpCiAgICAgIHsK QEAgLTEwNSw3ICsxMDUsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5uYXQgYi9nZGIv Y29uZmlndXJlLm5hdAogIAkJTkFUREVQRklMRVM9IiR7TkFUREVQRklMRVN9IHg4Ni1uYXQubyB4 ODYtZHJlZ3MubyBcCiAgCQlpMzg2LWxpbnV4LW5hdC5vIHg4Ni1saW51eC1uYXQubyBsaW51eC1i dHJhY2UubyBcCiAgCQl4ODYtbGludXgubyB4ODYtbGludXgtZHJlZ3MubyIKLUBAIC0yOTAsNiAr MjkxLDcgQEAgY2FzZSAke2dkYl9ob3N0fSBpbgorQEAgLTI5NCw2ICsyOTUsNyBAQCBjYXNlICR7 Z2RiX2hvc3R9IGluCiAgCWNhc2UgJHtnZGJfaG9zdF9jcHV9IGluCiAgCSAgICBpMzg2KQogIAkJ IyBIb3N0OiBHTlUvTGludXggeDg2LTY0CkBAIC0xMTYsNyArMTE2LDcgQEAgZGlmZiAtLWdpdCBh L2dkYi9jb25maWd1cmUubmF0IGIvZ2RiL2NvbmZpZ3VyZS5uYXQKIGRpZmYgLS1naXQgYS9nZGIv dGFyZ2V0LmggYi9nZGIvdGFyZ2V0LmgKIC0tLSBhL2dkYi90YXJnZXQuaAogKysrIGIvZ2RiL3Rh cmdldC5oCi1AQCAtMTk1Myw5ICsxOTUzLDExIEBAIGV4dGVybiBzdHJ1Y3QgdGhyZWFkX2luZm8g KnRhcmdldF90aHJlYWRfaGFuZGxlX3RvX3RocmVhZF9pbmZvCitAQCAtMTk4Myw5ICsxOTgzLDEx IEBAIGV4dGVybiBzdHJ1Y3QgdGhyZWFkX2luZm8gKnRhcmdldF90aHJlYWRfaGFuZGxlX3RvX3Ro cmVhZF9pbmZvCiAgICAgb25lLiAgT1RIRVJUWVBFIGlzIHRoZSBudW1iZXIgb2Ygd2F0Y2hwb2lu dHMgb2Ygb3RoZXIgdHlwZXMgdGhhbgogICAgIHRoaXMgb25lIHVzZWQgc28gZmFyLiAgKi8KICAK CmRpZmYgLS1naXQgYS9nZGItYno1NjgyNDgtb29tLWlzLWVycm9yLnBhdGNoIGIvZ2RiLWJ6NTY4 MjQ4LW9vbS1pcy1lcnJvci5wYXRjaAppbmRleCBmM2Y2MWRhLi40OTFlN2Y1IDEwMDY0NAotLS0g YS9nZGItYno1NjgyNDgtb29tLWlzLWVycm9yLnBhdGNoCisrKyBiL2dkYi1iejU2ODI0OC1vb20t aXMtZXJyb3IucGF0Y2gKQEAgLTUzLDcgKzUzLDcgQEAgZ2RiLwogZGlmZiAtLWdpdCBhL2dkYi91 dGlscy5jIGIvZ2RiL3V0aWxzLmMKIC0tLSBhL2dkYi91dGlscy5jCiArKysgYi9nZGIvdXRpbHMu YwotQEAgLTc0NiwxMyArNzQ2LDExIEBAIG1hbGxvY19mYWlsdXJlIChsb25nIHNpemUpCitAQCAt NzE5LDEzICs3MTksMTEgQEAgbWFsbG9jX2ZhaWx1cmUgKGxvbmcgc2l6ZSkKICB7CiAgICBpZiAo c2l6ZSA+IDApCiAgICAgIHsKCmRpZmYgLS1naXQgYS9nZGItY29udGFpbmVyLXJoLXBrZy5wYXRj aCBiL2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCmluZGV4IDJkZWZjOGQuLmI4ZTU3NmQgMTAw NjQ0Ci0tLSBhL2dkYi1jb250YWluZXItcmgtcGtnLnBhdGNoCisrKyBiL2dkYi1jb250YWluZXIt cmgtcGtnLnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItY29udGFpbmVyLXJoLXBr Zy5wYXRjaAogZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwogLS0tIGEv Z2RiL3JlbW90ZS5jCiArKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xMzkwOSw3ICsxMzkwOSwxNyBA QCByZW1vdGVfdGFyZ2V0OjpwaWRfdG9fZXhlY19maWxlIChpbnQgcGlkKQorQEAgLTE0MDEwLDcg KzE0MDEwLDE3IEBAIHJlbW90ZV90YXJnZXQ6OnBpZF90b19leGVjX2ZpbGUgKGludCBwaWQpCiAg ICBjaGFyICphbm5leCA9IE5VTEw7CiAgCiAgICBpZiAocGFja2V0X3N1cHBvcnQgKFBBQ0tFVF9x WGZlcl9leGVjX2ZpbGUpICE9IFBBQ0tFVF9FTkFCTEUpCgpkaWZmIC0tZ2l0IGEvZ2RiLWZlZG9y YS1saWJuY3Vyc2Vzdy5wYXRjaCBiL2dkYi1mZWRvcmEtbGlibmN1cnNlc3cucGF0Y2gKaW5kZXgg NTAzN2UyOS4uNmIwMTkxOSAxMDA2NDQKLS0tIGEvZ2RiLWZlZG9yYS1saWJuY3Vyc2Vzdy5wYXRj aAorKysgYi9nZGItZmVkb3JhLWxpYm5jdXJzZXN3LnBhdGNoCkBAIC0xMiw3ICsxMiw3IEBAIGh0 dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDUzNAogZGlmZiAt LWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAtLS0gYS9nZGIvY29uZmlndXJl CiArKysgYi9nZGIvY29uZmlndXJlCi1AQCAtOTM5Myw2ICs5MzkzLDcgQEAgaWYgdGVzdCB4IiRw cmVmZXJfY3Vyc2VzIiA9IHh5ZXM7IHRoZW4KK0BAIC05MzYyLDYgKzkzNjIsNyBAQCBpZiB0ZXN0 IHgiJHByZWZlcl9jdXJzZXMiID0geHllczsgdGhlbgogICAgIyBzZWFyY2ggL3Vzci9sb2NhbC9p bmNsdWRlLCBpZiBuY3Vyc2VzIGlzIGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsLiAgQQogICAgIyBk ZWZhdWx0IGluc3RhbGxhdGlvbiBvZiBuY3Vyc2VzIG9uIGFscGhhKi1kZWMtb3NmKiB3aWxsIGxl YWQgdG8gc3VjaAogICAgIyBhIHNpdHVhdGlvbi4KQEAgLTIwLDcgKzIwLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAgICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgd2Fk ZHN0ciIgPiY1CiAgJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyB3 YWRkc3RyLi4uICIgPiY2OyB9CiAgaWYgJHthY19jdl9zZWFyY2hfd2FkZHN0cis6fSBmYWxzZTsg dGhlbiA6Ci1AQCAtOTQxNyw3ICs5NDE4LDcgQEAgcmV0dXJuIHdhZGRzdHIgKCk7CitAQCAtOTM4 Niw3ICs5Mzg3LDcgQEAgcmV0dXJuIHdhZGRzdHIgKCk7CiAgICByZXR1cm4gMDsKICB9CiAgX0FD RU9GCkBAIC0yOSw3ICsyOSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2Nv bmZpZ3VyZQogICAgaWYgdGVzdCAteiAiJGFjX2xpYiI7IHRoZW4KICAgICAgYWNfcmVzPSJub25l IHJlcXVpcmVkIgogICAgZWxzZQotQEAgLTk0OTEsNiArOTQ5Miw3IEBAIGNhc2UgJGhvc3Rfb3Mg aW4KK0BAIC05NDYwLDYgKzk0NjEsNyBAQCBjYXNlICRob3N0X29zIGluCiAgZXNhYwogIAogICMg VGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMgY2hlY2tlZCBieSBSZWFkbGluZS4KQEAgLTM3LDcgKzM3 LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbGlicmFyeSBj b250YWluaW5nIHRnZXRlbnQiID4mNQogICRhc19lY2hvX24gImNoZWNraW5nIGZvciBsaWJyYXJ5 IGNvbnRhaW5pbmcgdGdldGVudC4uLiAiID4mNjsgfQogIGlmICR7YWNfY3Zfc2VhcmNoX3RnZXRl bnQrOn0gZmFsc2U7IHRoZW4gOgotQEAgLTk1MTUsNyArOTUxNyw3IEBAIHJldHVybiB0Z2V0ZW50 ICgpOworQEAgLTk0ODQsNyArOTQ4Niw3IEBAIHJldHVybiB0Z2V0ZW50ICgpOwogICAgcmV0dXJu IDA7CiAgfQogIF9BQ0VPRgpAQCAtNDksNyArNDksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZp Z3VyZSBiL2dkYi9jb25maWd1cmUKIGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlLmFjIGIvZ2Ri L2NvbmZpZ3VyZS5hYwogLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYwogKysrIGIvZ2RiL2NvbmZpZ3Vy ZS5hYwotQEAgLTc2Niw3ICs3NjYsOCBAQCBpZiB0ZXN0IHgiJHByZWZlcl9jdXJzZXMiID0geHll czsgdGhlbgorQEAgLTc0Myw3ICs3NDMsOCBAQCBpZiB0ZXN0IHgiJHByZWZlcl9jdXJzZXMiID0g eHllczsgdGhlbgogICAgIyBzZWFyY2ggL3Vzci9sb2NhbC9pbmNsdWRlLCBpZiBuY3Vyc2VzIGlz IGluc3RhbGxlZCBpbiAvdXNyL2xvY2FsLiAgQQogICAgIyBkZWZhdWx0IGluc3RhbGxhdGlvbiBv ZiBuY3Vyc2VzIG9uIGFscGhhKi1kZWMtb3NmKiB3aWxsIGxlYWQgdG8gc3VjaAogICAgIyBhIHNp dHVhdGlvbi4KQEAgLTU5LDcgKzU5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUuYWMg Yi9nZGIvY29uZmlndXJlLmFjCiAgCiAgICBpZiB0ZXN0ICIkYWNfY3Zfc2VhcmNoX3dhZGRzdHIi ICE9IG5vOyB0aGVuCiAgICAgIGN1cnNlc19mb3VuZD15ZXMKLUBAIC04MDgsNyArODA5LDggQEAg Y2FzZSAkaG9zdF9vcyBpbgorQEAgLTc4NSw3ICs3ODYsOCBAQCBjYXNlICRob3N0X29zIGluCiAg ZXNhYwogIAogICMgVGhlc2UgYXJlIHRoZSBsaWJyYXJpZXMgY2hlY2tlZCBieSBSZWFkbGluZS4K CmRpZmYgLS1naXQgYS9nZGItZm9sbG93LWNoaWxkLXN0YWxlLXBhcmVudC5wYXRjaCBiL2dkYi1m b2xsb3ctY2hpbGQtc3RhbGUtcGFyZW50LnBhdGNoCmluZGV4IGFiM2E3NjUuLjliN2IwZjUgMTAw NjQ0Ci0tLSBhL2dkYi1mb2xsb3ctY2hpbGQtc3RhbGUtcGFyZW50LnBhdGNoCisrKyBiL2dkYi1m b2xsb3ctY2hpbGQtc3RhbGUtcGFyZW50LnBhdGNoCkBAIC0yNCw3ICsyNCw3IEBAIHVud2luZGVy cyB0cnkgdG8gYWNjZXNzIGl0LCBicmVha2luZzoKIGRpZmYgLS1naXQgYS9nZGIvaW5mcnVuLmMg Yi9nZGIvaW5mcnVuLmMKIC0tLSBhL2dkYi9pbmZydW4uYwogKysrIGIvZ2RiL2luZnJ1bi5jCi1A QCAtNzUyLDYgKzc1Miw5IEBAIGZvbGxvd19mb3JrICh2b2lkKQorQEAgLTc1NCw2ICs3NTQsOSBA QCBmb2xsb3dfZm9yayAodm9pZCkKICAJICB9CiAgCWVsc2UKICAJICB7CgpkaWZmIC0tZ2l0IGEv Z2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoIGIvZ2RiLWdsaWJjLXN0cnN0ci13b3Jr YXJvdW5kLnBhdGNoCmluZGV4IDJmZWM3Y2YuLjYzYmM3ZTMgMTAwNjQ0Ci0tLSBhL2dkYi1nbGli Yy1zdHJzdHItd29ya2Fyb3VuZC5wYXRjaAorKysgYi9nZGItZ2xpYmMtc3Ryc3RyLXdvcmthcm91 bmQucGF0Y2gKQEAgLTksNyArOSw3IEBAIFN1YmplY3Q6IGdkYi1nbGliYy1zdHJzdHItd29ya2Fy b3VuZC5wYXRjaAogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVh ZC5jCiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAt MjEyNzAsNiArMjEyNzAsMjYgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0yMTQ0Myw2ICsyMTQ0 MywyNiBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogICAgICAgIC8qIENhY2hlIHRoaXMgc3ltYm9sJ3Mg bmFtZSBhbmQgdGhlIG5hbWUncyBkZW1hbmdsZWQgZm9ybSAoaWYgYW55KS4gICovCiAgICAgICAg U1lNQk9MX1NFVF9MQU5HVUFHRSAoc3ltLCBjdS0+bGFuZ3VhZ2UsICZvYmpmaWxlLT5vYmpmaWxl X29ic3RhY2spOwogICAgICAgIGxpbmthZ2VuYW1lID0gZHdhcmYyX3BoeXNuYW1lIChuYW1lLCBk aWUsIGN1KTsKCmRpZmYgLS1naXQgYS9nZGItZ25hdC1kd2FyZi1jcmFzaC0zb2YzLnBhdGNoIGIv Z2RiLWduYXQtZHdhcmYtY3Jhc2gtM29mMy5wYXRjaAppbmRleCBhMjBkYTQ2Li5jMjI3ZjhhIDEw MDY0NAotLS0gYS9nZGItZ25hdC1kd2FyZi1jcmFzaC0zb2YzLnBhdGNoCisrKyBiL2dkYi1nbmF0 LWR3YXJmLWNyYXNoLTNvZjMucGF0Y2gKQEAgLTQyLDcgKzQyLDcgQEAgZ2RiLwogZGlmZiAtLWdp dCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiAtLS0gYS9nZGIvZHdhcmYy cmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtMTA0OTksNiArMTA0OTksMTMgQEAg cHJpdmF0ZToKK0BAIC0xMDU4Niw2ICsxMDU4NiwxMyBAQCBwcml2YXRlOgogIHN0YXRpYyB2b2lk CiAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICB7CkBAIC01OSw3ICs1OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIv Z2RiL2R3YXJmMnJlYWQuYwogZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4u YwogLS0tIGEvZ2RiL2luZnJ1bi5jCiArKysgYi9nZGIvaW5mcnVuLmMKLUBAIC02MDcsNiArNjA3 LDEzIEBAIGhvbGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGV0YWNoLW9uLWZv cmtcIiBvciBcCitAQCAtNjA5LDYgKzYwOSwxMyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVk LiAgVHJ5IFwic2V0IGRldGFjaC1vbi1mb3JrXCIgb3IgXAogIAkJCQl0YXJnZXRfcGlkX3RvX3N0 ciAocHJvY2Vzc19wdGlkKSk7CiAgCSAgICB9CiAgCkBAIC04NiwxMCArODYsMTAgQEAgZGlmZiAt LWdpdCBhL2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1uYXQuYwogKwogKyNlbmRpZgogKwot IC8qIFRoZSBzYXZlZCB0b19jbG9zZSBtZXRob2QsIGluaGVyaXRlZCBmcm9tIGluZi1wdHJhY2Uu Yy4KLSAgICBDYWxsZWQgYnkgb3VyIHRvX2Nsb3NlLiAgKi8KLSBzdGF0aWMgdm9pZCAoKnN1cGVy X2Nsb3NlKSAoc3RydWN0IHRhcmdldF9vcHMgKik7Ci1AQCAtMTAyNyw2ICsxMDMzLDkgQEAgbGlu dXhfbmF0X3Bvc3RfYXR0YWNoX3dhaXQgKHB0aWRfdCBwdGlkLCBpbnQgKnNpZ25hbGxlZCkKKyBz dGF0aWMgdW5zaWduZWQgaW50IGRlYnVnX2xpbnV4X25hdDsKKyBzdGF0aWMgdm9pZAorIHNob3df ZGVidWdfbGludXhfbmF0IChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAorQEAg LTEwMzAsNiArMTAzNiw5IEBAIGxpbnV4X25hdF9wb3N0X2F0dGFjaF93YWl0IChwdGlkX3QgcHRp ZCwgaW50ICpzaWduYWxsZWQpCiAgICAgICAgaWYgKGRlYnVnX2xpbnV4X25hdCkKICAJZnByaW50 Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAiTE5QQVc6IEF0dGFjaGluZyB0byBh IHN0b3BwZWQgcHJvY2Vzc1xuIik7CkBAIC05OSw3ICs5OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIv bGludXgtbmF0LmMgYi9nZGIvbGludXgtbmF0LmMKICAKICAgICAgICAvKiBUaGUgcHJvY2VzcyBp cyBkZWZpbml0ZWx5IHN0b3BwZWQuICBJdCBpcyBpbiBhIGpvYiBjb250cm9sCiAgCSBzdG9wLCB1 bmxlc3MgdGhlIGtlcm5lbCBwcmVkYXRlcyB0aGUgVEFTS19TVE9QUEVEIC8KLUBAIC0xMzU5LDYg KzEzNjgsMjUgQEAgZ2V0X2RldGFjaF9zaWduYWwgKHN0cnVjdCBsd3BfaW5mbyAqbHApCitAQCAt MTM2Miw2ICsxMzcxLDI1IEBAIGdldF9kZXRhY2hfc2lnbmFsIChzdHJ1Y3QgbHdwX2luZm8gKmxw KQogICAgICAgIHJldHVybiBnZGJfc2lnbmFsX3RvX2hvc3QgKHNpZ25vKTsKICAgICAgfQogIApA QCAtMTI1LDcgKzEyNSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbGludXgtbmF0LmMgYi9nZGIvbGlu dXgtbmF0LmMKICAgIHJldHVybiAwOwogIH0KICAKLUBAIC0xNTA3LDYgKzE1MzUsMTAgQEAgbGlu dXhfbmF0X3RhcmdldDo6ZGV0YWNoIChpbmZlcmlvciAqaW5mLCBpbnQgZnJvbV90dHkpCitAQCAt MTUxMCw2ICsxNTM4LDEwIEBAIGxpbnV4X25hdF90YXJnZXQ6OmRldGFjaCAoaW5mZXJpb3IgKmlu ZiwgaW50IGZyb21fdHR5KQogICAgICAgIGRldGFjaF9vbmVfbHdwIChtYWluX2x3cCwgJnNpZ25v KTsKICAKICAgICAgICBkZXRhY2hfc3VjY2VzcyAoaW5mKTsKQEAgLTEzNiw3ICsxMzYsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2xpbnV4LW5hdC5jIGIvZ2RiL2xpbnV4LW5hdC5jCiAgICAgIH0KICB9 CiAgCi1AQCAtMTc2NSw2ICsxNzk3LDE2IEBAIGxpbnV4X25hdF90YXJnZXQ6OnJlc3VtZSAocHRp ZF90IHB0aWQsIGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnbm8pCitAQCAtMTc2OCw2ICsx ODAwLDE2IEBAIGxpbnV4X25hdF90YXJnZXQ6OnJlc3VtZSAocHRpZF90IHB0aWQsIGludCBzdGVw LCBlbnVtIGdkYl9zaWduYWwgc2lnbm8pCiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgCgpkaWZm IC0tZ2l0IGEvZ2RiLWppdC1yZWFkZXItbXVsdGlsaWIucGF0Y2ggYi9nZGItaml0LXJlYWRlci1t dWx0aWxpYi5wYXRjaAppbmRleCAyYWE0MWMyLi5lNjc2YzllIDEwMDY0NAotLS0gYS9nZGItaml0 LXJlYWRlci1tdWx0aWxpYi5wYXRjaAorKysgYi9nZGItaml0LXJlYWRlci1tdWx0aWxpYi5wYXRj aApAQCAtOSw3ICs5LDcgQEAgU3ViamVjdDogZ2RiLWppdC1yZWFkZXItbXVsdGlsaWIucGF0Y2gK IGRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogLS0tIGEvZ2RiL2Nv bmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZpZ3VyZQotQEAgLTk2ODAsMTAgKzk2ODAsMTIgQEAgX0FD RU9GCitAQCAtOTY0OSwxMCArOTY0OSwxMiBAQCBfQUNFT0YKICAKICAKICAKQEAgLTI4LDcgKzI4 LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9jb25maWd1cmUgYi9nZGIvY29uZmlndXJlCiBkaWZmIC0t Z2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKIC0tLSBhL2dkYi9jb25m aWd1cmUuYWMKICsrKyBiL2dkYi9jb25maWd1cmUuYWMKLUBAIC04NDMsMTAgKzg0MywxMiBAQCBB Q19DSEVDS19TSVpFT0YodW5zaWduZWQgbG9uZyBsb25nKQorQEAgLTgyMCwxMCArODIwLDEyIEBA IEFDX0NIRUNLX1NJWkVPRih1bnNpZ25lZCBsb25nIGxvbmcpCiAgQUNfQ0hFQ0tfU0laRU9GKHVu c2lnbmVkIGxvbmcpCiAgQUNfQ0hFQ0tfU0laRU9GKHVuc2lnbmVkIF9faW50MTI4KQogIAoKZGlm ZiAtLWdpdCBhL2dkYi1saW51eF9wZXJmLWJ1bmRsZS5wYXRjaCBiL2dkYi1saW51eF9wZXJmLWJ1 bmRsZS5wYXRjaAppbmRleCBjNzUzM2Y3Li45NWU3NTVmIDEwMDY0NAotLS0gYS9nZGItbGludXhf cGVyZi1idW5kbGUucGF0Y2gKKysrIGIvZ2RiLWxpbnV4X3BlcmYtYnVuZGxlLnBhdGNoCkBAIC05 LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItbGludXhfcGVyZi1idW5kbGUucGF0Y2gKIGRpZmYgLS1n aXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogLS0tIGEvZ2RiL2NvbmZpZ3VyZQog KysrIGIvZ2RiL2NvbmZpZ3VyZQotQEAgLTEyMDU5LDcgKzEyMDU5LDcgQEAgZWxzZQorQEAgLTEy MDI4LDcgKzEyMDI4LDcgQEAgZWxzZQogIAogICNpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+ CiAgI2lmbmRlZiBQRVJGX0FUVFJfU0laRV9WRVI1CkBAIC0yMSw3ICsyMSw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvY29uZmlndXJlIGIvZ2RiL2NvbmZpZ3VyZQogZGlmZiAtLWdpdCBhL2dkYi9jb25m aWd1cmUuYWMgYi9nZGIvY29uZmlndXJlLmFjCiAtLS0gYS9nZGIvY29uZmlndXJlLmFjCiArKysg Yi9nZGIvY29uZmlndXJlLmFjCi1AQCAtMTQ3Nyw3ICsxNDc3LDcgQEAgZWxzZQorQEAgLTE0NTQs NyArMTQ1NCw3IEBAIGVsc2UKICAgIEFDX1BSRVBST0NfSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShb WwogICNpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+CiAgI2lmbmRlZiBQRVJGX0FUVFJfU0la RV9WRVI1CgpkaWZmIC0tZ2l0IGEvZ2RiLW1vcmlidW5kLXV0cmFjZS13b3JrYXJvdW5kLnBhdGNo IGIvZ2RiLW1vcmlidW5kLXV0cmFjZS13b3JrYXJvdW5kLnBhdGNoCmluZGV4IGUwMmU4M2MuLjFi MjZmN2YgMTAwNjQ0Ci0tLSBhL2dkYi1tb3JpYnVuZC11dHJhY2Utd29ya2Fyb3VuZC5wYXRjaAor KysgYi9nZGItbW9yaWJ1bmQtdXRyYWNlLXdvcmthcm91bmQucGF0Y2gKQEAgLTE0LDcgKzE0LDcg QEAgQnVnIGluIEZTRiBHREIgZXhwbG9pdGVkIGJ5IHRoZSBwdHJhY2Utb24tdXRyYWNlIGludGVy YWN0aW9uLgogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5j CiAtLS0gYS9nZGIvYnJlYWtwb2ludC5jCiArKysgYi9nZGIvYnJlYWtwb2ludC5jCi1AQCAtMTIw MTAsNiArMTIwMTAsOCBAQCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3QgKGVudW0gdWdsbF9p bnNlcnRfbW9kZSBpbnNlcnRfbW9kZSkKK0BAIC0xMTk5OCw2ICsxMTk5OCw4IEBAIHVwZGF0ZV9n bG9iYWxfbG9jYXRpb25fbGlzdCAoZW51bSB1Z2xsX2luc2VydF9tb2RlIGluc2VydF9tb2RlKQog IAkJIHRyYXBzIHdlIGNhbiBubyBsb25nZXIgZXhwbGFpbi4gICovCiAgCiAgCSAgICAgIG9sZF9s b2MtPmV2ZW50c190aWxsX3JldGlyZW1lbnQgPSAzICogKHRocmVhZF9jb3VudCAoKSArIDEpOwpA QCAtMjIsNCArMjIsNCBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVh a3BvaW50LmMKICsJICAgICAgb2xkX2xvYy0+ZXZlbnRzX3RpbGxfcmV0aXJlbWVudCAqPSAxMDsK ICAJICAgICAgb2xkX2xvYy0+b3duZXIgPSBOVUxMOwogIAotIAkgICAgICBWRUNfc2FmZV9wdXNo IChicF9sb2NhdGlvbl9wLCBtb3JpYnVuZF9sb2NhdGlvbnMsIG9sZF9sb2MpOworIAkgICAgICBt b3JpYnVuZF9sb2NhdGlvbnMucHVzaF9iYWNrIChvbGRfbG9jKTsKCmRpZmYgLS1naXQgYS9nZGIt cHl0aG9uLWdpbC5wYXRjaCBiL2dkYi1weXRob24tZ2lsLnBhdGNoCmluZGV4IDlmZjJlNDUuLmI4 NTI4NTQgMTAwNjQ0Ci0tLSBhL2dkYi1weXRob24tZ2lsLnBhdGNoCisrKyBiL2dkYi1weXRob24t Z2lsLnBhdGNoCkBAIC05LDcgKzksNyBAQCBTdWJqZWN0OiBnZGItcHl0aG9uLWdpbC5wYXRjaAog ZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCiAt LS0gYS9nZGIvZG9jL3B5dGhvbi50ZXhpCiArKysgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCi1AQCAt MjMyLDYgKzIzMiwxNCBAQCByZXR1cm5lZCBhcyBhIHN0cmluZy4gIFRoZSBkZWZhdWx0IGlzIEBj b2Rle0ZhbHNlfSwgaW4gd2hpY2ggY2FzZSB0aGUKK0BAIC0yMzQsNiArMjM0LDE0IEBAIHJldHVy bmVkIGFzIGEgc3RyaW5nLiAgVGhlIGRlZmF1bHQgaXMgQGNvZGV7RmFsc2V9LCBpbiB3aGljaCBj YXNlIHRoZQogIHJldHVybiB2YWx1ZSBpcyBAY29kZXtOb25lfS4gIElmIEB2YXJ7dG9fc3RyaW5n fSBpcyBAY29kZXtUcnVlfSwgdGhlCiAgQHZhbHVle0dEQk59IHZpcnR1YWwgdGVybWluYWwgd2ls bCBiZSB0ZW1wb3JhcmlseSBzZXQgdG8gdW5saW1pdGVkIHdpZHRoCiAgYW5kIGhlaWdodCwgYW5k IGl0cyBwYWdpbmF0aW9uIHdpbGwgYmUgZGlzYWJsZWQ7IEBweHJlZntTY3JlZW4gU2l6ZX0uCkBA IC0yNyw3ICsyNyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZG9jL3B5dGhvbi50ZXhpIGIvZ2RiL2Rv Yy9weXRob24udGV4aQogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgg Yi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1p bnRlcm5hbC5oCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCi1AQCAtMTQ4LDYg KzE0OCw4IEBAIHR5cGVkZWYgaW50IFB5X3NzaXplX3Q7CitAQCAtMTQ0LDYgKzE0NCw4IEBAIHR5 cGVkZWYgaW50IFB5X3NzaXplX3Q7CiAgI2RlZmluZSBQeUdJTFN0YXRlX1JlbGVhc2UoQVJHKSAo KHZvaWQpKEFSRykpCiAgI2RlZmluZSBQeUV2YWxfSW5pdFRocmVhZHMoKQogICNkZWZpbmUgUHlU aHJlYWRTdGF0ZV9Td2FwKEFSRykgKCh2b2lkKShBUkcpKQpAQCAtMzksNyArMzksNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhv bi9weXRob24uYwogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uYwogKysrIGIvZ2RiL3B5dGhvbi9w eXRob24uYwotQEAgLTU1NiwxMiArNTU2LDE2IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2Jq ZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQorQEAgLTU1NSwxMiArNTU1 LDE2IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn cywgUHlPYmplY3QgKmt3KQogIHsKICAgIGNvbnN0IGNoYXIgKmFyZzsKICAgIFB5T2JqZWN0ICpm cm9tX3R0eV9vYmogPSBOVUxMLCAqdG9fc3RyaW5nX29iaiA9IE5VTEw7CkBAIC02MCw3ICs2MCw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24u YwogICAgICByZXR1cm4gTlVMTDsKICAKICAgIGZyb21fdHR5ID0gMDsKLUBAIC01ODIsNiArNTg2 LDE1IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJn cywgUHlPYmplY3QgKmt3KQorQEAgLTU4MSw2ICs1ODUsMTUgQEAgZXhlY3V0ZV9nZGJfY29tbWFu ZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpCiAgICAgICAg dG9fc3RyaW5nID0gY21wOwogICAgICB9CiAgCkBAIC03Niw3ICs3Niw3IEBAIGRpZmYgLS1naXQg YS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwogICAgc3RkOjpzdHJp bmcgdG9fc3RyaW5nX3JlczsKICAKICAgIFRSWQotQEAgLTYwMiw2ICs2MTUsMTMgQEAgZXhlY3V0 ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAq a3cpCitAQCAtNjAxLDYgKzYxNCwxMyBAQCBleGVjdXRlX2dkYl9jb21tYW5kIChQeU9iamVjdCAq c2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprdykKICAKICAgICAgICBjb3VudGVkX2Nv bW1hbmRfbGluZSBsaW5lcyA9IHJlYWRfY29tbWFuZF9saW5lc18xIChyZWFkZXIsIDEsIG51bGxw dHIpOwogIApAQCAtODcsMTcgKzg3LDE5IEBAIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhv bi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYwogKyAgICAgIGlmIChyZWxlYXNlX2dpbCkKICsJc3Rh dGUgPSBQeUV2YWxfU2F2ZVRocmVhZCgpOwogKwotICAgICAgIHNjb3BlZF9yZXN0b3JlIHNhdmVf YXN5bmMgPSBtYWtlX3Njb3BlZF9yZXN0b3JlICgmY3VycmVudF91aS0+YXN5bmMsIDApOworICAg ICAgIHsKKyAJc2NvcGVkX3Jlc3RvcmUgc2F2ZV9hc3luYyA9IG1ha2Vfc2NvcGVkX3Jlc3RvcmUg KCZjdXJyZW50X3VpLT5hc3luYywKKyAJCQkJCQkJIDApOworQEAgLTYyMCwxMiArNjQwLDI0IEBA IGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlP YmplY3QgKmt3KQorIAkgIGV4ZWN1dGVfY29udHJvbF9jb21tYW5kcyAobGluZXMuZ2V0ICgpLCBm cm9tX3R0eSk7CisgICAgICAgfQogIAotICAgICAgIHNjb3BlZF9yZXN0b3JlIHNhdmVfdWlvdXQg PSBtYWtlX3Njb3BlZF9yZXN0b3JlICgmY3VycmVudF91aW91dCk7Ci1AQCAtNjE3LDEwICs2Mzcs MjIgQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdz LCBQeU9iamVjdCAqa3cpCi0gCQkJCQkJCSAgICBmcm9tX3R0eSk7Ci0gICAgICAgZWxzZQotIAll eGVjdXRlX2NvbnRyb2xfY29tbWFuZHMgKGxpbmVzLmdldCAoKSwgZnJvbV90dHkpOwotKwogKyAg ICAgIC8qIFJlYWNxdWlyZSB0aGUgR0lMIGlmIGl0IHdhcyByZWxlYXNlZCBlYXJsaWVyLiAgKi8K ICsgICAgICBpZiAocmVsZWFzZV9naWwpCiArCVB5RXZhbF9SZXN0b3JlVGhyZWFkIChzdGF0ZSk7 CisrCisgICAgICAgLyogRG8gYW55IGNvbW1hbmRzIGF0dGFjaGVkIHRvIGJyZWFrcG9pbnQgd2Ug c3RvcHBlZCBhdC4gICovCisgICAgICAgYnBzdGF0X2RvX2FjdGlvbnMgKCk7CiAgICAgIH0KICAg IENBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKICAgICAgewoKZGlmZiAtLWdpdCBhL2dk Yi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0xb2Y3LnBhdGNoIGIvZ2RiLXJoYnoxMTg3NTgxLXBv d2VyOC1yZWdzLTFvZjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5YmQ3 OTguLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTFvZjcucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MDk6NDggKzAyMDAKLVN1Ympl Y3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0xb2Y3LnBhdGNoCi0KLTs7IEFkZCBHREIg c3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDEx ODc1ODEpLgotCi1jb21taXQgMDVhYmZjMzljNzE5ZTc0MDUzMDAwMDA1OWJiOTYzYWQzMzQ2MjQ3 OQotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gPHBlZHJvbWZjQGxpbnV4LmlibS5j b20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1NSAyMDE4IC0wMzAwCi0KLSAgICBGaXggaW5k ZW50YXRpb24gaW4gcmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludAotCi0gICAgZ2Ri L0NoYW5nZUxvZzoKLSAgICAyMDE4LTA4LTA2ICBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gIDxw ZWRyb21mY0BsaW51eC5pYm0uY29tPgotCi0gICAgICAgICAgICAqIHJlbW90ZS5jIChyZW1vdGVf dGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50KTogRml4IGluZGVudGF0aW9uCi0gICAgICAgICAg ICBpbiBmb3IgYmxvY2suCi0KLWRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3Rl LmMKLS0tLSBhL2dkYi9yZW1vdGUuYwotKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAtMTI5MTIsMjQg KzEyOTEyLDI0IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQgKHN0cnVjdCBi cF9sb2NhdGlvbiAqbG9jKQotIAllcnJvciAoXygiRXJyb3Igb24gdGFyZ2V0IHdoaWxlIHNldHRp bmcgdHJhY2Vwb2ludHMuIikpOwotICAgICB9Ci0gCi0tICAgIGZvciAoYXV0byBhY3Rpb25faXQg PSBzdGVwcGluZ19hY3Rpb25zLmJlZ2luICgpOwotLQkgYWN0aW9uX2l0ICE9IHN0ZXBwaW5nX2Fj dGlvbnMuZW5kICgpOyBhY3Rpb25faXQrKykKLS0gICAgICB7Ci0tCVFVSVQ7CS8qIEFsbG93IHVz ZXIgdG8gYmFpbCBvdXQgd2l0aCBeQy4gICovCi0tCi0tCWJvb2wgaXNfZmlyc3QgPSBhY3Rpb25f aXQgPT0gc3RlcHBpbmdfYWN0aW9ucy5iZWdpbiAoKTsKLS0JYm9vbCBoYXNfbW9yZSA9IGFjdGlv bl9pdCAhPSBzdGVwcGluZ19hY3Rpb25zLmVuZCAoKTsKLS0KLS0JeHNucHJpbnRmIChidWYsIEJV Rl9TSVpFLCAiUVREUDotJXg6JXM6JXMlcyVzIiwKLS0JCSAgIGItPm51bWJlciwgYWRkcmJ1Ziwg LyogYWRkcmVzcyAqLwotLQkJICAgaXNfZmlyc3QgPyAiUyIgOiAiIiwKLS0JCSAgIGFjdGlvbl9p dC0+Y19zdHIgKCksCi0tCQkgICBoYXNfbW9yZSA/ICItIiA6ICIiKTsKLS0JcHV0cGt0IChidWYp OwotLQlyZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgpOwotLQlpZiAoc3RyY21wIChycy0+YnVmLCAi T0siKSkKLS0JICBlcnJvciAoXygiRXJyb3Igb24gdGFyZ2V0IHdoaWxlIHNldHRpbmcgdHJhY2Vw b2ludHMuIikpOwotLSAgICAgIH0KLSsgIGZvciAoYXV0byBhY3Rpb25faXQgPSBzdGVwcGluZ19h Y3Rpb25zLmJlZ2luICgpOwotKyAgICAgICBhY3Rpb25faXQgIT0gc3RlcHBpbmdfYWN0aW9ucy5l bmQgKCk7IGFjdGlvbl9pdCsrKQotKyAgICB7Ci0rICAgICAgUVVJVDsJLyogQWxsb3cgdXNlciB0 byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KLSsKLSsgICAgICBib29sIGlzX2ZpcnN0ID0gYWN0aW9u X2l0ID09IHN0ZXBwaW5nX2FjdGlvbnMuYmVnaW4gKCk7Ci0rICAgICAgYm9vbCBoYXNfbW9yZSA9 IGFjdGlvbl9pdCAhPSBzdGVwcGluZ19hY3Rpb25zLmVuZCAoKTsKLSsKLSsgICAgICB4c25wcmlu dGYgKGJ1ZiwgQlVGX1NJWkUsICJRVERQOi0leDolczolcyVzJXMiLAotKwkJIGItPm51bWJlciwg YWRkcmJ1ZiwgLyogYWRkcmVzcyAqLwotKwkJIGlzX2ZpcnN0ID8gIlMiIDogIiIsCi0rCQkgYWN0 aW9uX2l0LT5jX3N0ciAoKSwKLSsJCSBoYXNfbW9yZSA/ICItIiA6ICIiKTsKLSsgICAgICBwdXRw a3QgKGJ1Zik7Ci0rICAgICAgcmVtb3RlX2dldF9ub2lzeV9yZXBseSAoKTsKLSsgICAgICBpZiAo c3RyY21wIChycy0+YnVmLCAiT0siKSkKLSsJZXJyb3IgKF8oIkVycm9yIG9uIHRhcmdldCB3aGls ZSBzZXR0aW5nIHRyYWNlcG9pbnRzLiIpKTsKLSsgICAgfQotIAotICAgaWYgKHBhY2tldF9zdXBw b3J0IChQQUNLRVRfVHJhY2Vwb2ludFNvdXJjZSkgPT0gUEFDS0VUX0VOQUJMRSkKLSAgICAgewoK ZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0yb2Y3LnBhdGNoIGIvZ2Ri LXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTJvZjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGIwZDQyY2QuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1y ZWdzLTJvZjcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi1Gcm9tIEZFRE9S QV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MTA6 NDYgKzAyMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0yb2Y3LnBhdGNo Ci0KLTs7IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJz IChJQk0sIFJIIEJaIDExODc1ODEpLgotCi1jb21taXQgYWE2ZjM2OTRjZTg2Nzg4NGU0M2QxYzA0 MDZjNjRkZjA4ZWEyNGJkMwotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gPHBlZHJv bWZjQGxpbnV4LmlibS5jb20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1NSAyMDE4IC0wMzAw Ci0KLSAgICBSZW1vdmUgdHJhaWxpbmcgJy0nIGZyb20gdGhlIGxhc3QgUVREUCBhY3Rpb24gcGFj a2V0Ci0KLSAgICBUaGUgaGFzX21vcmUgcHJlZGljYXRlIGluIHJlbW90ZV90YXJnZXQ6OmRvd25s b2FkX3RyYWNlcG9pbnQgYWx3YXlzCi0gICAgZXZhbHVhdGVzIHRvIHRydWUsIHNvIHRoZSBsYXN0 IGFjdGlvbiBwYWNrZXQgd2lsbCBiZSBzZW50IHdpdGggYQotICAgIHRyYWlsaW5nICctJy4gIFRo aXMgcGF0Y2ggY2hhbmdlcyB0aGUgcHJlZGljYXRlIHRvIHJlbW92ZSB0aGUgbGFzdAotICAgIHRy YWlsaW5nICctJy4KLQotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgMjAxOC0wOC0wNiAgUGVkcm8g RnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KLQotICAgICAgICAg ICAgKiByZW1vdGUuYyAocmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCk6IEZpeCB0 aGUgaGFzX21vcmUKLSAgICAgICAgICAgIHByZWRpY2F0ZSBpbiB0aGUgUVREUCBhY3Rpb24gbGlz dCBpdGVyYXRpb24uCi0KLWRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMK LS0tLSBhL2dkYi9yZW1vdGUuYwotKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAtMTI4OTksNyArMTI4 OTksNyBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9j YXRpb24gKmxvYykKLSAgICAgewotICAgICAgIFFVSVQ7CS8qIEFsbG93IHVzZXIgdG8gYmFpbCBv dXQgd2l0aCBeQy4gICovCi0gCi0tICAgICAgYm9vbCBoYXNfbW9yZSA9IChhY3Rpb25faXQgIT0g dGRwX2FjdGlvbnMuZW5kICgpCi0rICAgICAgYm9vbCBoYXNfbW9yZSA9ICgoYWN0aW9uX2l0ICsg MSkgIT0gdGRwX2FjdGlvbnMuZW5kICgpCi0gCQkgICAgICAgfHwgIXN0ZXBwaW5nX2FjdGlvbnMu ZW1wdHkgKCkpOwotIAotICAgICAgIHhzbnByaW50ZiAoYnVmLCBCVUZfU0laRSwgIlFURFA6LSV4 OiVzOiVzJWMiLAotQEAgLTEyOTE4LDcgKzEyOTE4LDcgQEAgcmVtb3RlX3RhcmdldDo6ZG93bmxv YWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0gICAgICAgUVVJVDsJLyog QWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KLSAKLSAgICAgICBib29sIGlzX2Zp cnN0ID0gYWN0aW9uX2l0ID09IHN0ZXBwaW5nX2FjdGlvbnMuYmVnaW4gKCk7Ci0tICAgICAgYm9v bCBoYXNfbW9yZSA9IGFjdGlvbl9pdCAhPSBzdGVwcGluZ19hY3Rpb25zLmVuZCAoKTsKLSsgICAg ICBib29sIGhhc19tb3JlID0gKGFjdGlvbl9pdCArIDEpICE9IHN0ZXBwaW5nX2FjdGlvbnMuZW5k ICgpOwotIAotICAgICAgIHhzbnByaW50ZiAoYnVmLCBCVUZfU0laRSwgIlFURFA6LSV4OiVzOiVz JXMlcyIsCi0gCQkgYi0+bnVtYmVyLCBhZGRyYnVmLCAvKiBhZGRyZXNzICovCgpkaWZmIC0tZ2l0 IGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTNvZjcucGF0Y2ggYi9nZGItcmhiejExODc1 ODEtcG93ZXI4LXJlZ3MtM29mNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NTU0NmYyYi4uMDAwMDAwMAotLS0gYS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtM29mNy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI1OCArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVT IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MTE6MDkgKzAyMDAK LVN1YmplY3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0zb2Y3LnBhdGNoCi0KLTs7IEFk ZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJI IEJaIDExODc1ODEpLgotCi1jb21taXQgM2RmM2E5ODVhNDc1ZGIwMDQ3MDZkNjRmODNkOTA4NWY5 OTA1MzYxMQotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gPHBlZHJvbWZjQGxpbnV4 LmlibS5jb20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1NSAyMDE4IC0wMzAwCi0KLSAgICBV c2UgZ2V0X3JlbW90ZV9wYWNrZXRfc2l6ZSBpbiBkb3dubG9hZF90cmFjZXBvaW50Ci0KLSAgICBU aGlzIHBhdGNoIGNoYW5nZXMgdGhlIHJlbW90ZSB0YXJnZXQgdG8gdXNlIHRoZSByZW1vdGUgcGFj a2V0IHNpemUgdG8KLSAgICBidWlsZCBRVERQIHBhY2tldHMsIGFuZCB0byBjaGVjayBpZiB0aGVy ZSBpcyBlbm91Z2ggcm9vbSBmb3IgdGhlCi0gICAgcGFja2V0LgotCi0gICAgSSBjaGFuZ2VkIHRo ZSBmdW5jdGlvbiB0byByYWlzZSBhbiBlcnJvciBpZiB0aGUgcGFja2V0IGlzIHRvbyBzbWFsbCwK LSAgICBpbnN0ZWFkIG9mIGFib3J0aW5nIGdkYiAodGhyb3VnaCB4c25wcmludGYpLiAgSXQgaXNu J3QgY2xlYXIgaWYgZ2RiCi0gICAgd2lsbCBiZSBpbiBhIGNvbnNpc3RlbnQgc3RhdGUgd2l0aCBy ZXNwZWN0IHRvIHRoZSBzdHViIGFmdGVyIHRoaXMsCi0gICAgc2luY2UgaXQncyBwb3NzaWJsZSB0 aGF0IHNvbWUgcGFja2V0cyB3aWxsIGJlIHNlbnQgYnV0IG5vdCBvdGhlcnMsIGFuZAotICAgIHRo ZXJlIGNvdWxkIGJlIGFuIGluY29tcGxldGUgdHJhY2Vwb2ludCBvbiB0aGUgc3R1Yi4KLQotICAg IFRoZSBjaGFyIGFycmF5IHVzZWQgdG8gYnVpbGQgdGhlIHBhY2tldHMgaXMgY2hhbmdlZCB0byBh Ci0gICAgZ2RiOjpjaGFyX3ZlY3RvciBhbmQgc2l6ZWQgd2l0aCB0aGUgcmVzdWx0IGZyb20KLSAg ICBnZXRfcmVtb3RlX3BhY2tldF9zaXplLgotCi0gICAgV2hlbiBjaGVja2luZyBpZiB0aGUgYnVm ZmVyIGlzIGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSB0cmFjZXBvaW50Ci0gICAgY29uZGl0aW9u IGFnZW50IGV4cHJlc3Npb24sIHRoZSBsZW5ndGggb2YgdGhlIGV4cHJlc3Npb24gaXMgbXVsdGlw bGllZAotICAgIGJ5IHR3bywgc2luY2UgaXQgaXMgZW5jb2RlZCB3aXRoIHR3byBoZXggZGlnaXRz IHBlciBleHByZXNzaW9uCi0gICAgYnl0ZS4gIEZvciBzaW1wbGljaXR5LCBJIGFzc3VtZSB0aGF0 IHRoZSByZXN1bHQgd29uJ3Qgb3ZlcmZsb3csIHdoaWNoCi0gICAgY2FuIGhhcHBlbiBmb3IgdmVy eSBsb25nIGNvbmRpdGlvbiBleHByZXNzaW9ucy4KLQotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAg MjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJt LmNvbT4KLQotICAgICAgICAgICAgKiByZW1vdGUuYyAocmVtb3RlX3RhcmdldDo6ZG93bmxvYWRf dHJhY2Vwb2ludCk6IFJlbW92ZSBCVUZfU0laRS4KLSAgICAgICAgICAgIFJlcGxhY2UgYXJyYXkg YnVmIHdpdGggZ2RiOjpjaGFyX3ZlY3RvciBidWYsIG9mIHNpemUKLSAgICAgICAgICAgIGdldF9y ZW1vdGVfcGFja2V0X3NpemUgKCkuICBSZXBsYWNlIHJlZmVyZW5jZXMgdG8gYnVmIGFuZAotICAg ICAgICAgICAgQlVGX1NJWkUgdG8gYnVmLmRhdGEgKCkgYW5kIGJ1Zi5zaXplICgpLiAgUmVwbGFj ZSBzdHJjcHksIHN0cmNhdAotICAgICAgICAgICAgYW5kIHhzbnByaW50ZiB3aXRoIHNucHJpbnRm LiAgUmFpc2UgZXJyb3JzIGlmIHRoZSBidWZmZXIgaXMgdG9vCi0gICAgICAgICAgICBzbWFsbC4K LQotZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwotLS0tIGEvZ2RiL3Jl bW90ZS5jCi0rKysgYi9nZGIvcmVtb3RlLmMKLUBAIC0xMjc5OSwyNiArMTI3OTksMzUgQEAgcmVt b3RlX3RhcmdldDo6cmVtb3RlX2Rvd25sb2FkX2NvbW1hbmRfc291cmNlIChpbnQgbnVtLCBVTE9O R0VTVCBhZGRyLAotIHZvaWQKLSByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChz dHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSB7Ci0tI2RlZmluZSBCVUZfU0laRSAyMDQ4Ci0tCi0g ICBDT1JFX0FERFIgdHBhZGRyOwotICAgY2hhciBhZGRyYnVmWzQwXTsKLS0gIGNoYXIgYnVmW0JV Rl9TSVpFXTsKLSAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB0ZHBfYWN0aW9uczsKLSAgIHN0 ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzdGVwcGluZ19hY3Rpb25zOwotICAgY2hhciAqcGt0Owot ICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2MtPm93bmVyOwotICAgc3RydWN0IHRyYWNlcG9p bnQgKnQgPSAoc3RydWN0IHRyYWNlcG9pbnQgKikgYjsKLSAgIHN0cnVjdCByZW1vdGVfc3RhdGUg KnJzID0gZ2V0X3JlbW90ZV9zdGF0ZSAoKTsKLSsgIGludCByZXQ7Ci0rICBjaGFyICplcnJfbXNn ID0gXygiVHJhY2Vwb2ludCBwYWNrZXQgdG9vIGxhcmdlIGZvciB0YXJnZXQuIik7Ci0rICBzaXpl X3Qgc2l6ZV9sZWZ0OwotKwotKyAgLyogV2UgdXNlIGEgYnVmZmVyIG90aGVyIHRoYW4gcnMtPmJ1 ZiBiZWNhdXNlIHdlJ2xsIGJ1aWxkIHN0cmluZ3MKLSsgICAgIGFjcm9zcyBtdWx0aXBsZSBzdGF0 ZW1lbnRzLCBhbmQgb3RoZXIgc3RhdGVtZW50cyBpbiBiZXR3ZWVuIGNvdWxkCi0rICAgICBtb2Rp ZnkgcnMtPmJ1Zi4gICovCi0rICBnZGI6OmNoYXJfdmVjdG9yIGJ1ZiAoZ2V0X3JlbW90ZV9wYWNr ZXRfc2l6ZSAoKSk7Ci0gCi0gICBlbmNvZGVfYWN0aW9uc19yc3AgKGxvYywgJnRkcF9hY3Rpb25z LCAmc3RlcHBpbmdfYWN0aW9ucyk7Ci0gCi0gICB0cGFkZHIgPSBsb2MtPmFkZHJlc3M7Ci0gICBz cHJpbnRmX3ZtYSAoYWRkcmJ1ZiwgdHBhZGRyKTsKLS0gIHhzbnByaW50ZiAoYnVmLCBCVUZfU0la RSwgIlFURFA6JXg6JXM6JWM6JWx4OiV4IiwgYi0+bnVtYmVyLAotLQkgICAgIGFkZHJidWYsIC8q IGFkZHJlc3MgKi8KLS0JICAgICAoYi0+ZW5hYmxlX3N0YXRlID09IGJwX2VuYWJsZWQgPyAnRScg OiAnRCcpLAotLQkgICAgIHQtPnN0ZXBfY291bnQsIHQtPnBhc3NfY291bnQpOwotKyAgcmV0ID0g c25wcmludGYgKGJ1Zi5kYXRhICgpLCBidWYuc2l6ZSAoKSwgIlFURFA6JXg6JXM6JWM6JWx4OiV4 IiwKLSsJCSAgYi0+bnVtYmVyLCBhZGRyYnVmLCAvKiBhZGRyZXNzICovCi0rCQkgIChiLT5lbmFi bGVfc3RhdGUgPT0gYnBfZW5hYmxlZCA/ICdFJyA6ICdEJyksCi0rCQkgIHQtPnN0ZXBfY291bnQs IHQtPnBhc3NfY291bnQpOwotKwotKyAgaWYgKHJldCA8IDAgfHwgcmV0ID49IGJ1Zi5zaXplICgp KQotKyAgICBlcnJvciAoZXJyX21zZyk7Ci0rCi0gICAvKiBGYXN0IHRyYWNlcG9pbnRzIGFyZSBt b3N0bHkgaGFuZGxlZCBieSB0aGUgdGFyZ2V0LCBidXQgd2UgY2FuCi0gICAgICB0ZWxsIHRoZSB0 YXJnZXQgaG93IGJpZyBvZiBhbiBpbnN0cnVjdGlvbiBibG9jayBzaG91bGQgYmUgbW92ZWQKLSAg ICAgIGFyb3VuZC4gICovCi1AQCAtMTI4MzAsOCArMTI4MzksMTUgQEAgcmVtb3RlX3RhcmdldDo6 ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0gCXsKLSAJICBp ZiAoZ2RiYXJjaF9mYXN0X3RyYWNlcG9pbnRfdmFsaWRfYXQgKGxvYy0+Z2RiYXJjaCwgdHBhZGRy LAotIAkJCQkJCU5VTEwpKQotLQkgICAgeHNucHJpbnRmIChidWYgKyBzdHJsZW4gKGJ1ZiksIEJV Rl9TSVpFIC0gc3RybGVuIChidWYpLCAiOkYleCIsCi0tCQkgICAgICAgZ2RiX2luc25fbGVuZ3Ro IChsb2MtPmdkYmFyY2gsIHRwYWRkcikpOwotKwkgICAgewotKwkgICAgICBzaXplX2xlZnQgPSBi dWYuc2l6ZSAoKSAtIHN0cmxlbiAoYnVmLmRhdGEgKCkpOwotKwkgICAgICByZXQgPSBzbnByaW50 ZiAoYnVmLmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5kYXRhICgpKSwKLSsJCQkgICAgICBzaXplX2xl ZnQsICI6RiV4IiwKLSsJCQkgICAgICBnZGJfaW5zbl9sZW5ndGggKGxvYy0+Z2RiYXJjaCwgdHBh ZGRyKSk7Ci0rCi0rCSAgICAgIGlmIChyZXQgPCAwIHx8IHJldCA+PSBzaXplX2xlZnQpCi0rCQll cnJvciAoZXJyX21zZyk7Ci0rCSAgICB9Ci0gCSAgZWxzZQotIAkgICAgLyogSWYgaXQgcGFzc2Vk IHZhbGlkYXRpb24gYXQgZGVmaW5pdGlvbiBidXQgZmFpbHMgbm93LAotIAkgICAgICAgc29tZXRo aW5nIGlzIHZlcnkgd3JvbmcuICAqLwotQEAgLTEyODU1LDcgKzEyODcxLDE0IEBAIHJlbW90ZV90 YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotIAkg IHN0cnVjdCBzdGF0aWNfdHJhY2Vwb2ludF9tYXJrZXIgbWFya2VyOwotIAotIAkgIGlmICh0YXJn ZXRfc3RhdGljX3RyYWNlcG9pbnRfbWFya2VyX2F0ICh0cGFkZHIsICZtYXJrZXIpKQotLQkgICAg c3RyY2F0IChidWYsICI6UyIpOwotKwkgICAgewotKwkgICAgICBzaXplX2xlZnQgPSBidWYuc2l6 ZSAoKSAtIHN0cmxlbiAoYnVmLmRhdGEgKCkpOwotKwkgICAgICByZXQgPSBzbnByaW50ZiAoYnVm LmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5kYXRhICgpKSwKLSsJCQkgICAgICBzaXplX2xlZnQsICI6 UyIpOwotKwotKwkgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQotKwkJZXJy b3IgKGVycl9tc2cpOwotKwkgICAgfQotIAkgIGVsc2UKLSAJICAgIGVycm9yIChfKCJTdGF0aWMg dHJhY2Vwb2ludCBub3QgdmFsaWQgZHVyaW5nIGRvd25sb2FkIikpOwotIAl9Ci1AQCAtMTI4NzMs MTAgKzEyODk2LDI2IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQgKHN0cnVj dCBicF9sb2NhdGlvbiAqbG9jKQotIAkgY2FwYWJpbGl0aWVzIGF0IGRlZmluaXRpb24gdGltZS4g ICovCi0gICAgICAgaWYgKHJlbW90ZV9zdXBwb3J0c19jb25kX3RyYWNlcG9pbnRzICgpKQotIAl7 Ci0tCSAgYWdlbnRfZXhwcl91cCBhZXhwciA9IGdlbl9ldmFsX2Zvcl9leHByICh0cGFkZHIsIGxv Yy0+Y29uZC5nZXQgKCkpOwotLQkgIHhzbnByaW50ZiAoYnVmICsgc3RybGVuIChidWYpLCBCVUZf U0laRSAtIHN0cmxlbiAoYnVmKSwgIjpYJXgsIiwKLS0JCSAgICAgYWV4cHItPmxlbik7Ci0tCSAg cGt0ID0gYnVmICsgc3RybGVuIChidWYpOwotKwkgIGFnZW50X2V4cHJfdXAgYWV4cHIgPSBnZW5f ZXZhbF9mb3JfZXhwciAodHBhZGRyLAotKwkJCQkJCSAgIGxvYy0+Y29uZC5nZXQgKCkpOwotKwot KwkgIHNpemVfbGVmdCA9IGJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYuZGF0YSAoKSk7Ci0rCi0r CSAgcmV0ID0gc25wcmludGYgKGJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYuZGF0YSAoKSksCi0r CQkJICBzaXplX2xlZnQsICI6WCV4LCIsIGFleHByLT5sZW4pOwotKwotKwkgIGlmIChyZXQgPCAw IHx8IHJldCA+PSBzaXplX2xlZnQpCi0rCSAgICBlcnJvciAoZXJyX21zZyk7Ci0rCi0rCSAgc2l6 ZV9sZWZ0ID0gYnVmLnNpemUgKCkgLSBzdHJsZW4gKGJ1Zi5kYXRhICgpKTsKLSsKLSsJICAvKiBU d28gYnl0ZXMgdG8gZW5jb2RlIGVhY2ggYWV4cHIgYnl0ZSwgcGx1cyB0aGUgdGVybWluYXRpbmcK LSsJICAgICBudWxsIGJ5dGUuICAqLwotKwkgIGlmIChhZXhwci0+bGVuICogMiArIDEgPiBzaXpl X2xlZnQpCi0rCSAgICBlcnJvciAoZXJyX21zZyk7Ci0rCi0rCSAgcGt0ID0gYnVmLmRhdGEgKCkg KyBzdHJsZW4gKGJ1Zi5kYXRhICgpKTsKLSsKLSAJICBmb3IgKGludCBuZHggPSAwOyBuZHggPCBh ZXhwci0+bGVuOyArK25keCkKLSAJICAgIHBrdCA9IHBhY2tfaGV4X2J5dGUgKHBrdCwgYWV4cHIt PmJ1ZltuZHhdKTsKLSAJICAqcGt0ID0gJ1wwJzsKLUBAIC0xMjg4Nyw4ICsxMjkyNiwxNyBAQCBy ZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxv YykKLSAgICAgfQotIAotICAgaWYgKGItPmNvbW1hbmRzIHx8ICpkZWZhdWx0X2NvbGxlY3QpCi0t ICAgIHN0cmNhdCAoYnVmLCAiLSIpOwotLSAgcHV0cGt0IChidWYpOwotKyAgICB7Ci0rICAgICAg c2l6ZV9sZWZ0ID0gYnVmLnNpemUgKCkgLSBzdHJsZW4gKGJ1Zi5kYXRhICgpKTsKLSsKLSsgICAg ICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5kYXRhICgpKSwKLSsJ CSAgICAgIHNpemVfbGVmdCwgIi0iKTsKLSsKLSsgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0g c2l6ZV9sZWZ0KQotKwllcnJvciAoZXJyX21zZyk7Ci0rICAgIH0KLSsKLSsgIHB1dHBrdCAoYnVm LmRhdGEgKCkpOwotICAgcmVtb3RlX2dldF9ub2lzeV9yZXBseSAoKTsKLSAgIGlmIChzdHJjbXAg KHJzLT5idWYsICJPSyIpKQotICAgICBlcnJvciAoXygiVGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQg dHJhY2Vwb2ludHMuIikpOwotQEAgLTEyOTAyLDExICsxMjk1MCwxNSBAQCByZW1vdGVfdGFyZ2V0 Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAgICAgICBi b29sIGhhc19tb3JlID0gKChhY3Rpb25faXQgKyAxKSAhPSB0ZHBfYWN0aW9ucy5lbmQgKCkKLSAJ CSAgICAgICB8fCAhc3RlcHBpbmdfYWN0aW9ucy5lbXB0eSAoKSk7Ci0gCi0tICAgICAgeHNucHJp bnRmIChidWYsIEJVRl9TSVpFLCAiUVREUDotJXg6JXM6JXMlYyIsCi0tCQkgYi0+bnVtYmVyLCBh ZGRyYnVmLCAvKiBhZGRyZXNzICovCi0tCQkgYWN0aW9uX2l0LT5jX3N0ciAoKSwKLS0JCSBoYXNf bW9yZSA/ICctJyA6IDApOwotLSAgICAgIHB1dHBrdCAoYnVmKTsKLSsgICAgICByZXQgPSBzbnBy aW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUDotJXg6JXM6JXMlYyIsCi0rCQkg ICAgICBiLT5udW1iZXIsIGFkZHJidWYsIC8qIGFkZHJlc3MgKi8KLSsJCSAgICAgIGFjdGlvbl9p dC0+Y19zdHIgKCksCi0rCQkgICAgICBoYXNfbW9yZSA/ICctJyA6IDApOwotKwotKyAgICAgIGlm IChyZXQgPCAwIHx8IHJldCA+PSBidWYuc2l6ZSAoKSkKLSsJZXJyb3IgKGVycl9tc2cpOwotKwot KyAgICAgIHB1dHBrdCAoYnVmLmRhdGEgKCkpOwotICAgICAgIHJlbW90ZV9nZXRfbm9pc3lfcmVw bHkgKCk7Ci0gICAgICAgaWYgKHN0cmNtcCAocnMtPmJ1ZiwgIk9LIikpCi0gCWVycm9yIChfKCJF cnJvciBvbiB0YXJnZXQgd2hpbGUgc2V0dGluZyB0cmFjZXBvaW50cy4iKSk7Ci1AQCAtMTI5MjAs MTIgKzEyOTcyLDE2IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQgKHN0cnVj dCBicF9sb2NhdGlvbiAqbG9jKQotICAgICAgIGJvb2wgaXNfZmlyc3QgPSBhY3Rpb25faXQgPT0g c3RlcHBpbmdfYWN0aW9ucy5iZWdpbiAoKTsKLSAgICAgICBib29sIGhhc19tb3JlID0gKGFjdGlv bl9pdCArIDEpICE9IHN0ZXBwaW5nX2FjdGlvbnMuZW5kICgpOwotIAotLSAgICAgIHhzbnByaW50 ZiAoYnVmLCBCVUZfU0laRSwgIlFURFA6LSV4OiVzOiVzJXMlcyIsCi0tCQkgYi0+bnVtYmVyLCBh ZGRyYnVmLCAvKiBhZGRyZXNzICovCi0tCQkgaXNfZmlyc3QgPyAiUyIgOiAiIiwKLS0JCSBhY3Rp b25faXQtPmNfc3RyICgpLAotLQkJIGhhc19tb3JlID8gIi0iIDogIiIpOwotLSAgICAgIHB1dHBr dCAoYnVmKTsKLSsgICAgICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgp LCAiUVREUDotJXg6JXM6JXMlcyVzIiwKLSsJCSAgICAgIGItPm51bWJlciwgYWRkcmJ1ZiwgLyog YWRkcmVzcyAqLwotKwkJICAgICAgaXNfZmlyc3QgPyAiUyIgOiAiIiwKLSsJCSAgICAgIGFjdGlv bl9pdC0+Y19zdHIgKCksCi0rCQkgICAgICBoYXNfbW9yZSA/ICItIiA6ICIiKTsKLSsKLSsgICAg ICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCi0rCWVycm9yIChlcnJfbXNnKTsK LSsKLSsgICAgICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKLSAgICAgICByZW1vdGVfZ2V0X25vaXN5 X3JlcGx5ICgpOwotICAgICAgIGlmIChzdHJjbXAgKHJzLT5idWYsICJPSyIpKQotIAllcnJvciAo XygiRXJyb3Igb24gdGFyZ2V0IHdoaWxlIHNldHRpbmcgdHJhY2Vwb2ludHMuIikpOwotQEAgLTEy OTM1LDIyICsxMjk5MSwzMiBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChz dHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAgICAgewotICAgICAgIGlmIChiLT5sb2NhdGlvbiAh PSBOVUxMKQotIAl7Ci0tCSAgc3RyY3B5IChidWYsICJRVERQc3JjOiIpOwotKwkgIHJldCA9IHNu cHJpbnRmIChidWYuZGF0YSAoKSwgYnVmLnNpemUgKCksICJRVERQc3JjOiIpOwotKwotKwkgIGlm IChyZXQgPCAwIHx8IHJldCA+PSBidWYuc2l6ZSAoKSkKLSsJICAgIGVycm9yIChlcnJfbXNnKTsK LSsKLSAJICBlbmNvZGVfc291cmNlX3N0cmluZyAoYi0+bnVtYmVyLCBsb2MtPmFkZHJlc3MsICJh dCIsCi0gCQkJCWV2ZW50X2xvY2F0aW9uX3RvX3N0cmluZyAoYi0+bG9jYXRpb24uZ2V0ICgpKSwK LS0JCQkJYnVmICsgc3RybGVuIChidWYpLCAyMDQ4IC0gc3RybGVuIChidWYpKTsKLS0JICBwdXRw a3QgKGJ1Zik7Ci0rCQkJCWJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYuZGF0YSAoKSksCi0rCQkJ CWJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYuZGF0YSAoKSkpOwotKwkgIHB1dHBrdCAoYnVmLmRh dGEgKCkpOwotIAkgIHJlbW90ZV9nZXRfbm9pc3lfcmVwbHkgKCk7Ci0gCSAgaWYgKHN0cmNtcCAo cnMtPmJ1ZiwgIk9LIikpCi0gCSAgICB3YXJuaW5nIChfKCJUYXJnZXQgZG9lcyBub3Qgc3VwcG9y dCBzb3VyY2UgZG93bmxvYWQuIikpOwotIAl9Ci0gICAgICAgaWYgKGItPmNvbmRfc3RyaW5nKQot IAl7Ci0tCSAgc3RyY3B5IChidWYsICJRVERQc3JjOiIpOwotKwkgIHJldCA9IHNucHJpbnRmIChi dWYuZGF0YSAoKSwgYnVmLnNpemUgKCksICJRVERQc3JjOiIpOwotKwotKwkgIGlmIChyZXQgPCAw IHx8IHJldCA+PSBidWYuc2l6ZSAoKSkKLSsJICAgIGVycm9yIChlcnJfbXNnKTsKLSsKLSAJICBl bmNvZGVfc291cmNlX3N0cmluZyAoYi0+bnVtYmVyLCBsb2MtPmFkZHJlc3MsCi0tCQkJCSJjb25k IiwgYi0+Y29uZF9zdHJpbmcsIGJ1ZiArIHN0cmxlbiAoYnVmKSwKLS0JCQkJMjA0OCAtIHN0cmxl biAoYnVmKSk7Ci0tCSAgcHV0cGt0IChidWYpOwotKwkJCQkiY29uZCIsIGItPmNvbmRfc3RyaW5n LAotKwkJCQlidWYuZGF0YSAoKSArIHN0cmxlbiAoYnVmLmRhdGEgKCkpLAotKwkJCQlidWYuc2l6 ZSAoKSAtIHN0cmxlbiAoYnVmLmRhdGEgKCkpKTsKLSsJICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsK LSAJICByZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgpOwotIAkgIGlmIChzdHJjbXAgKHJzLT5idWYs ICJPSyIpKQotIAkgICAgd2FybmluZyAoXygiVGFyZ2V0IGRvZXMgbm90IHN1cHBvcnQgc291cmNl IGRvd25sb2FkLiIpKTsKCmRpZmYgLS1naXQgYS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3Mt NG9mNy5wYXRjaCBiL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy00b2Y3LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YzU1M2E4Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6 MTE4NzU4MS1wb3dlcjgtcmVncy00b2Y3LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDQ5ICsw LDAgQEAKLUZyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwg OSBBdWcgMjAxOCAxNzoxNzoxNiArMDIwMAotU3ViamVjdDogZ2RiLXJoYnoxMTg3NTgxLXBvd2Vy OC1yZWdzLTRvZjcucGF0Y2gKLQotOzsgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5 IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCi0KLWNvbW1pdCA0Mjc3YzRi ODdhZGRiNTM1NGNjNDdiOThkN2E3M2U0NGNmYWYyMmMyCi1BdXRob3I6IFBlZHJvIEZyYW5jbyBk ZSBDYXJ2YWxobyA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KLURhdGU6ICAgTW9uIEF1ZyA2IDE2 OjI0OjU1IDIwMTggLTAzMDAKLQotICAgIFVzZSByZW1vdGUgcmVnaXN0ZXIgbnVtYmVycyBpbiB0 cmFjZXBvaW50IG1hc2sKLQotICAgIEN1cnJlbnRseSwgdHJhY2Vwb2ludCByZWdpc3RlciBtYXNr cyBpbiB0aGUgUVREUCBwYWNrZXRzIGluY2x1ZGUgYm90aAotICAgIGludGVybmFsIGFuZCByZW1v dGUgcmVnaXN0ZXIgbnVtYmVycywgYXMgd2VsbCBhcyBwc2V1ZG8tcmVnaXN0ZXIKLSAgICBudW1i ZXJzLgotCi0gICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoaXMgc28gdGhhdCB0aGUgbWFzayBvbmx5 IGluY2x1ZGVzIHJlbW90ZSByZWdpc3RlcgotICAgIG51bWJlcnMuCi0KLSAgICBSZWdpc3RlciBu dW1iZXJzIGZyb20gYWdlbnQgZXhwcmVzc2lvbnMgYXJlIGFscmVhZHkgc2V0IGluIHRoZSBtYXNr Ci0gICAgdXNpbmcgcmVtb3RlIG51bWJlcnMuICBPdGhlciB0cmFjZXBvaW50IGFjdGlvbnMgdXNl ZCBpbnRlcm5hbCBudW1iZXJzLAotICAgIGUuZy4gImNvbGxlY3QgJHJlZ3MiIG9yICJjb2xsZWN0 ICQ8cHNldWRvcmVnPiIuICBUbyBoYW5kbGUgcHNldWRvcmVnCi0gICAgbnVtYmVycywgYW4gZW1w dHkgYWdlbnQgZXhwcmVzc2lvbiBpcyBjcmVhdGVkIGFuZCBheF9yZWdfbWFzayBpcwotICAgIGNh bGxlZCBmb3IgdGhpcyBleHByZXNzaW9uIGFuZCB0aGUgcHNldWRvcmVnLiAgVGhpcyB3aWxsIGNh dXNlIHRoZSBheAotICAgIHRvIHNldCBpdHMgbWFzayB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHJl bW90ZSByYXcgcmVnaXN0ZXIKLSAgICBudW1iZXJzICh1c2luZyBheF9yZWdzX21hc2ssIHdoaWNo IGNhbGxzCi0gICAgZ2RiYXJjaF9heF9wc2V1ZG9fcmVnaXN0ZXJfY29sbGVjdCkuCi0KLSAgICBJ ZiBheF9yZWdzX21hc2sgYW5kIGdkYmFyY2hfYXhfcHNldWRvX3JlZ2lzdGVyX2NvbGxlY3QgYWxz byBnZW5lcmF0ZQotICAgIG1vcmUgYXggYnl0ZWNvZGUsIHRoZSBheCBpcyBhbHNvIGFwcGVuZGVk IHRvIHRoZSBjb2xsZWN0aW9uIGxpc3QuICBJdAotICAgIGlzbid0IGNsZWFyIHRoYXQgdGhpcyB3 YXMgdGhlIG9yaWdpbmFsIGludGVudCBmb3IKLSAgICBnZGJhcmNoX2F4X3BzZXVkb19yZWdpc3Rl cl9jb2xsZWN0LCBhbmQgbm9uZSBvZiB0aGUgYXJjaGVzIHNlZW0gdG8gZG8KLSAgICB0aGlzLCBi dXQgaWYgdGhpcyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUsIGl0IHNob3VsZCB3b3JrLgotCi0gICAg VGhlIHBhdGNoIGFsc28gcmVmYWN0b3JzIHRoZSBjb2RlIHVzZWQgYnkgdmFsaWRhdGVfYWN0aW9u IGxpbmUgdG8KLSAgICB2YWxpZGF0ZSBheHMgaW50byBhIGZ1bmN0aW9uIHRoYXQgaXMgbm93IGNh bGxlZCBmcm9tIGV2ZXJ5IHBsYWNlIHRoYXQKLSAgICBnZW5lcmF0ZXMgYXhzLiAgUHJldmlvdXNs eSwgc29tZSBwYXJ0cyBvZiB0cmFjZXBvaW50LmMgdGhhdCBnZW5lcmF0ZWQKLSAgICBheHMgZGlk bid0IGNoZWNrIGlmIHRoZSBheCBsZW5ndGggd2FzIGdyZWF0ZXIgdGhhbiBNQVhfQUdFTlRfRVhQ Ul9MRU4uCi0KLSAgICBnZGIvQ2hhbmdlTG9nOgotICAgIDIwMTgtMDgtMDYgIFBlZHJvIEZyYW5j byBkZSBDYXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+Ci0KLSAgICAgICAgICAgICog dHJhY2Vwb2ludC5oIChjbGFzcyBjb2xsZWN0aW9uX2xpc3QpIDxhZGRfcmVnaXN0ZXI+OiBSZW1v dmUuCi0gICAgICAgICAgICA8YWRkX3JlbW90ZV9yZWdpc3RlciwgYWRkX2F4X3JlZ2lzdGVycywg YWRkX2xvY2FsX3JlZ2lzdGVyPjoKLSAgICAgICAgICAgIERlY2xhcmUuCi0gICAgICAgICAgICA8 YWRkX21lbXJhbmdlPjogQWRkIHNjb3BlIHBhcmFtZXRlci4KLSAgICAgICAgICAgICogdHJhY2Vw b2ludC5jIChlbmNvZGVfYWN0aW9uc18xKTogTGlrZXdpc2UuCi0gICAgICAgICAgICAoY29sbGVj dGlvbl9saXN0OjphZGRfcmVnaXN0ZXIpOiBSZW5hbWUgdG8gLi4uCi0gICAgICAgICAgICAoY29s bGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyKTogLi4uIHRoaXMuICBVcGRhdGUKLSAg ICAgICAgICAgIGNvbW1lbnQuCi0gICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfYXhf cmVnaXN0ZXJzLCBhZGRfbG9jYWxfcmVnaXN0ZXIpOiBOZXcKLSAgICAgICAgICAgIG1ldGhvZHMu Ci0gICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfbWVtcmFuZ2UpOiBBZGQgc2NvcGUg cGFyYW1ldGVyLiAgQ2FsbAotICAgICAgICAgICAgYWRkX2xvY2FsX3JlZ2lzdGVyIGluc3RlYWQg b2YgYWRkX3JlZ2lzdGVyLgotICAgICAgICAgICAgKGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIp OiBOZXcgZnVuY3Rpb24uCi0gICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5 bWJvbCk6IFVwZGF0ZSBjYWxscyB0byBhZGRfbWVtcmFuZ2UuCi0gICAgICAgICAgICBDYWxsIGFk ZF9sb2NhbF9yZWdpc3RlciBpbnN0ZWFkIG9mIGFkZF9yZWdpc3Rlci4gIENhbGwKLSAgICAgICAg ICAgIGFkZF9heF9yZWdpc3RlcnMuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIuCi0g ICAgICAgICAgICAoZW5jb2RlX2FjdGlvbnNfMSk6IEdldCByZW1vdGUgcmVnbm9zIGZvciAkcmVn IGFjdGlvbi4gIENhbGwKLSAgICAgICAgICAgIGFkZF9yZW1vdGVfcmVnaXN0ZXIsIGFkZF9heF9y ZWdpc3RlcnMsIGFuZCBhZGRfbG9jYWxfcmVnaXN0ZXIuCi0gICAgICAgICAgICBVcGRhdGUgY2Fs bCB0byBhZGRfbWVtcmFuZ2UuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIuCi0gICAg ICAgICAgICAodmFsaWRhdGVfYWN0aW9ubGluZSk6IENhbGwgZmluYWxpemVfdHJhY2Vwb2ludF9h ZXhwci4KLQotKzIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAgPHBlZHJvbWZj QGxpbnV4LmlibS5jb20+Ci0rCi0rCSogdHJhY2Vwb2ludC5oIChjbGFzcyBjb2xsZWN0aW9uX2xp c3QpIDxhZGRfcmVnaXN0ZXI+OiBSZW1vdmUuCi0rCTxhZGRfcmVtb3RlX3JlZ2lzdGVyLCBhZGRf YXhfcmVnaXN0ZXJzLCBhZGRfbG9jYWxfcmVnaXN0ZXI+OgotKwlEZWNsYXJlLgotKwk8YWRkX21l bXJhbmdlPjogQWRkIHNjb3BlIHBhcmFtZXRlci4KLSsJKiB0cmFjZXBvaW50LmMgKGVuY29kZV9h Y3Rpb25zXzEpOiBMaWtld2lzZS4KLSsJKGNvbGxlY3Rpb25fbGlzdDo6YWRkX3JlZ2lzdGVyKTog UmVuYW1lIHRvIC4uLgotKwkoY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyKTog Li4uIHRoaXMuICBVcGRhdGUKLSsJY29tbWVudC4KLSsJKGNvbGxlY3Rpb25fbGlzdDo6YWRkX2F4 X3JlZ2lzdGVycywgYWRkX2xvY2FsX3JlZ2lzdGVyKTogTmV3Ci0rCW1ldGhvZHMuCi0rCShjb2xs ZWN0aW9uX2xpc3Q6OmFkZF9tZW1yYW5nZSk6IEFkZCBzY29wZSBwYXJhbWV0ZXIuICBDYWxsCi0r CWFkZF9sb2NhbF9yZWdpc3RlciBpbnN0ZWFkIG9mIGFkZF9yZWdpc3Rlci4KLSsJKGZpbmFsaXpl X3RyYWNlcG9pbnRfYWV4cHIpOiBOZXcgZnVuY3Rpb24uCi0rCShjb2xsZWN0aW9uX2xpc3Q6OmNv bGxlY3Rfc3ltYm9sKTogVXBkYXRlIGNhbGxzIHRvIGFkZF9tZW1yYW5nZS4KLSsJQ2FsbCBhZGRf bG9jYWxfcmVnaXN0ZXIgaW5zdGVhZCBvZiBhZGRfcmVnaXN0ZXIuICBDYWxsCi0rCWFkZF9heF9y ZWdpc3RlcnMuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIuCi0rCShlbmNvZGVfYWN0 aW9uc18xKTogR2V0IHJlbW90ZSByZWdub3MgZm9yICRyZWcgYWN0aW9uLiAgQ2FsbAotKwlhZGRf cmVtb3RlX3JlZ2lzdGVyLCBhZGRfYXhfcmVnaXN0ZXJzLCBhbmQgYWRkX2xvY2FsX3JlZ2lzdGVy LgotKwlVcGRhdGUgY2FsbCB0byBhZGRfbWVtcmFuZ2UuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9p bnRfYWV4cHIuCi0rCSh2YWxpZGF0ZV9hY3Rpb25saW5lKTogQ2FsbCBmaW5hbGl6ZV90cmFjZXBv aW50X2FleHByLgotKwotIDIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAgPHBl ZHJvbWZjQGxpbnV4LmlibS5jb20+Ci0KLSAJKiByZW1vdGUuYyAocmVtb3RlX3RhcmdldDo6ZG93 bmxvYWRfdHJhY2Vwb2ludCk6IFJlbW92ZSBCVUZfU0laRS4KLQotZGlmZiAtLWdpdCBhL2dkYi90 cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCi0tLS0gYS9nZGIvdHJhY2Vwb2ludC5jCi0r KysgYi9nZGIvdHJhY2Vwb2ludC5jCi1AQCAtNjE1LDYgKzYxNSwxOSBAQCByZXBvcnRfYWdlbnRf cmVxc19lcnJvcnMgKHN0cnVjdCBhZ2VudF9leHByICphZXhwcikKLSAgICAgZXJyb3IgKF8oIkV4 cHJlc3Npb24gaXMgdG9vIGNvbXBsaWNhdGVkLiIpKTsKLSB9Ci0gCi0rLyogQ2FsbCBheF9yZXFz IG9uIEFFWFBSIGFuZCByYWlzZSBhbiBlcnJvciBpZiBzb21ldGhpbmcgaXMgd3JvbmcuICAqLwot KwotK3N0YXRpYyB2b2lkCi0rZmluYWxpemVfdHJhY2Vwb2ludF9hZXhwciAoc3RydWN0IGFnZW50 X2V4cHIgKmFleHByKQotK3sKLSsgIGF4X3JlcXMgKGFleHByKTsKLSsKLSsgIGlmIChhZXhwci0+ bGVuID4gTUFYX0FHRU5UX0VYUFJfTEVOKQotKyAgICBlcnJvciAoXygiRXhwcmVzc2lvbiBpcyB0 b28gY29tcGxpY2F0ZWQuIikpOwotKwotKyAgcmVwb3J0X2FnZW50X3JlcXNfZXJyb3JzIChhZXhw cik7Ci0rfQotKwotIC8qIHdvcmtlciBmdW5jdGlvbiAqLwotIHZvaWQKLSB2YWxpZGF0ZV9hY3Rp b25saW5lIChjb25zdCBjaGFyICpsaW5lLCBzdHJ1Y3QgYnJlYWtwb2ludCAqYikKLUBAIC02OTks MTIgKzcxMiw3IEBAIHZhbGlkYXRlX2FjdGlvbmxpbmUgKGNvbnN0IGNoYXIgKmxpbmUsIHN0cnVj dCBicmVha3BvaW50ICpiKQotIAkJCQkJCQlleHAuZ2V0ICgpLAotIAkJCQkJCQl0cmFjZV9zdHJp bmcpOwotIAotLQkgICAgICBpZiAoYWV4cHItPmxlbiA+IE1BWF9BR0VOVF9FWFBSX0xFTikKLS0J CWVycm9yIChfKCJFeHByZXNzaW9uIGlzIHRvbyBjb21wbGljYXRlZC4iKSk7Ci0tCi0tCSAgICAg IGF4X3JlcXMgKGFleHByLmdldCAoKSk7Ci0tCi0tCSAgICAgIHJlcG9ydF9hZ2VudF9yZXFzX2Vy cm9ycyAoYWV4cHIuZ2V0ICgpKTsKLSsJICAgICAgZmluYWxpemVfdHJhY2Vwb2ludF9hZXhwciAo YWV4cHIuZ2V0ICgpKTsKLSAJICAgIH0KLSAJfQotICAgICAgIHdoaWxlIChwICYmICpwKysgPT0g JywnKTsKLUBAIC03MzEsMTEgKzczOSw3IEBAIHZhbGlkYXRlX2FjdGlvbmxpbmUgKGNvbnN0IGNo YXIgKmxpbmUsIHN0cnVjdCBicmVha3BvaW50ICpiKQotIAkJIGxvbmcuICAqLwotIAkgICAgICBh Z2VudF9leHByX3VwIGFleHByID0gZ2VuX2V2YWxfZm9yX2V4cHIgKGxvYy0+YWRkcmVzcywgZXhw LmdldCAoKSk7Ci0gCi0tCSAgICAgIGlmIChhZXhwci0+bGVuID4gTUFYX0FHRU5UX0VYUFJfTEVO KQotLQkJZXJyb3IgKF8oIkV4cHJlc3Npb24gaXMgdG9vIGNvbXBsaWNhdGVkLiIpKTsKLS0KLS0J ICAgICAgYXhfcmVxcyAoYWV4cHIuZ2V0ICgpKTsKLS0JICAgICAgcmVwb3J0X2FnZW50X3JlcXNf ZXJyb3JzIChhZXhwci5nZXQgKCkpOwotKwkgICAgICBmaW5hbGl6ZV90cmFjZXBvaW50X2FleHBy IChhZXhwci5nZXQgKCkpOwotIAkgICAgfQotIAl9Ci0gICAgICAgd2hpbGUgKHAgJiYgKnArKyA9 PSAnLCcpOwotQEAgLTgxMSwxMCArODE1LDEwIEBAIG1lbXJhbmdlX3NvcnRtZXJnZSAoc3RkOjp2 ZWN0b3I8bWVtcmFuZ2U+ICZtZW1yYW5nZXMpCi0gICAgIH0KLSB9Ci0gCi0tLyogQWRkIGEgcmVn aXN0ZXIgdG8gYSBjb2xsZWN0aW9uIGxpc3QuICAqLwotKy8qIEFkZCByZW1vdGUgcmVnaXN0ZXIg bnVtYmVyIFJFR05PIHRvIHRoZSBjb2xsZWN0aW9uIGxpc3QgbWFzay4gICovCi0gCi0gdm9pZAot LWNvbGxlY3Rpb25fbGlzdDo6YWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pCi0rY29s bGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pCi0g ewotICAgaWYgKGluZm9fdmVyYm9zZSkKLSAgICAgcHJpbnRmX2ZpbHRlcmVkICgiY29sbGVjdCBy ZWdpc3RlciAlZFxuIiwgcmVnbm8pOwotQEAgLTgyNCwxMiArODI4LDc0IEBAIGNvbGxlY3Rpb25f bGlzdDo6YWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pCi0gICBtX3JlZ3NfbWFza1ty ZWdubyAvIDhdIHw9IDEgPDwgKHJlZ25vICUgOCk7Ci0gfQotIAotKy8qIEFkZCBhbGwgdGhlIHJl Z2lzdGVycyBmcm9tIHRoZSBtYXNrIGluIEFFWFBSIHRvIHRoZSBtYXNrIGluIHRoZQotKyAgIGNv bGxlY3Rpb24gbGlzdC4gIFJlZ2lzdGVycyBpbiB0aGUgQUVYUFIgbWFzayBhcmUgYWxyZWFkeSBy ZW1vdGUKLSsgICByZWdpc3RlciBudW1iZXJzLiAgKi8KLSsKLSt2b2lkCi0rY29sbGVjdGlvbl9s aXN0OjphZGRfYXhfcmVnaXN0ZXJzIChzdHJ1Y3QgYWdlbnRfZXhwciAqYWV4cHIpCi0rewotKyAg aWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQotKyAgICB7Ci0rICAgICAgZm9yIChpbnQgbmR4 MSA9IDA7IG5keDEgPCBhZXhwci0+cmVnX21hc2tfbGVuOyBuZHgxKyspCi0rCXsKLSsJICBRVUlU OwkvKiBBbGxvdyB1c2VyIHRvIGJhaWwgb3V0IHdpdGggXkMuICAqLwotKwkgIGlmIChhZXhwci0+ cmVnX21hc2tbbmR4MV0gIT0gMCkKLSsJICAgIHsKLSsJICAgICAgLyogQXNzdW1lIGNoYXJzIGhh dmUgOCBiaXRzLiAgKi8KLSsJICAgICAgZm9yIChpbnQgbmR4MiA9IDA7IG5keDIgPCA4OyBuZHgy KyspCi0rCQlpZiAoYWV4cHItPnJlZ19tYXNrW25keDFdICYgKDEgPDwgbmR4MikpCi0rCQkgIC8q IEl0J3MgdXNlZCAtLSByZWNvcmQgaXQuICAqLwotKwkJICBhZGRfcmVtb3RlX3JlZ2lzdGVyIChu ZHgxICogOCArIG5keDIpOwotKwkgICAgfQotKwl9Ci0rICAgIH0KLSt9Ci0rCi0rLyogSWYgUkVH Tk8gaXMgcmF3LCBhZGQgaXRzIGNvcnJlc3BvbmRpbmcgcmVtb3RlIHJlZ2lzdGVyIG51bWJlciB0 bwotKyAgIHRoZSBtYXNrLiAgSWYgUkVHTk8gaXMgYSBwc2V1ZG8tcmVnaXN0ZXIsIGZpZ3VyZSBv dXQgdGhlIG5lY2Vzc2FyeQotKyAgIHJlZ2lzdGVycyB1c2luZyBhIHRlbXBvcmFyeSBhZ2VudCBl eHByZXNzaW9uLCBhbmQgYWRkIGl0IHRvIHRoZQotKyAgIGxpc3QgaWYgaXQgbmVlZHMgbW9yZSB0 aGFuIGp1c3QgYSBtYXNrLiAgKi8KLSsKLSt2b2lkCi0rY29sbGVjdGlvbl9saXN0OjphZGRfbG9j YWxfcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotKwkJCQkgICAgIHVuc2lnbmVk IGludCByZWdubywKLSsJCQkJICAgICBDT1JFX0FERFIgc2NvcGUpCi0rewotKyAgaWYgKHJlZ25v IDwgZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkpCi0rICAgIHsKLSsgICAgICBpbnQgcmVtb3Rl X3JlZ25vID0gZ2RiYXJjaF9yZW1vdGVfcmVnaXN0ZXJfbnVtYmVyIChnZGJhcmNoLCByZWdubyk7 Ci0rCi0rICAgICAgaWYgKHJlbW90ZV9yZWdubyA8IDApCi0rCWVycm9yIChfKCJDYW4ndCBjb2xs ZWN0IHJlZ2lzdGVyICVkIiksIHJlZ25vKTsKLSsKLSsgICAgICBhZGRfcmVtb3RlX3JlZ2lzdGVy IChyZW1vdGVfcmVnbm8pOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBhZ2VudF9l eHByX3VwIGFleHByIChuZXcgYWdlbnRfZXhwciAoZ2RiYXJjaCwgc2NvcGUpKTsKLSsKLSsgICAg ICBheF9yZWdfbWFzayAoYWV4cHIuZ2V0ICgpLCByZWdubyk7Ci0rCi0rICAgICAgZmluYWxpemVf dHJhY2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSsKLSsgICAgICBhZGRfYXhfcmVnaXN0 ZXJzIChhZXhwci5nZXQgKCkpOwotKwotKyAgICAgIC8qIFVzdWFsbHkgYXhfcmVnX21hc2sgZm9y IGEgcHNldWRvLXJlZ2lzZXIgb25seSBzZXRzIHRoZQotKwkgY29ycmVzcG9uZGluZyByYXcgcmVn aXN0ZXJzIGluIHRoZSBheCBtYXNrLCBidXQgaWYgdGhpcyBpc24ndAotKwkgdGhlIGNhc2UgYWRk IHRoZSBleHByZXNzaW9uIHRoYXQgaXMgZ2VuZXJhdGVkIHRvIHRoZQotKwkgY29sbGVjdGlvbiBs aXN0LiAgKi8KLSsgICAgICBpZiAoYWV4cHItPmxlbiA+IDApCi0rCWFkZF9hZXhwciAoc3RkOjpt b3ZlIChhZXhwcikpOwotKyAgICB9Ci0rfQotKwotIC8qIEFkZCBhIG1lbXJhbmdlIHRvIGEgY29s bGVjdGlvbiBsaXN0LiAgKi8KLSAKLSB2b2lkCi0gY29sbGVjdGlvbl9saXN0OjphZGRfbWVtcmFu Z2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotIAkJCSAgICAgICBpbnQgdHlwZSwgYmZkX3Np Z25lZF92bWEgYmFzZSwKLS0JCQkgICAgICAgVUxPTkdFU1QgbGVuKQotKwkJCSAgICAgICBVTE9O R0VTVCBsZW4sIENPUkVfQUREUiBzY29wZSkKLSB7Ci0gICBpZiAoaW5mb192ZXJib3NlKQotICAg ICBwcmludGZfZmlsdGVyZWQgKCIoJWQsJXMsJXMpXG4iLCB0eXBlLCBwYWRkcmVzcyAoZ2RiYXJj aCwgYmFzZSksIHB1bG9uZ2VzdCAobGVuKSk7Ci1AQCAtODQwLDcgKzkwNiw3IEBAIGNvbGxlY3Rp b25fbGlzdDo6YWRkX21lbXJhbmdlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKLSAgIG1fbWVt cmFuZ2VzLmVtcGxhY2VfYmFjayAodHlwZSwgYmFzZSwgYmFzZSArIGxlbik7Ci0gCi0gICBpZiAo dHlwZSAhPSBtZW1yYW5nZV9hYnNvbHV0ZSkgICAgLyogQmV0dGVyIGNvbGxlY3QgdGhlIGJhc2Ug cmVnaXN0ZXIhICAqLwotLSAgICBhZGRfcmVnaXN0ZXIgKHR5cGUpOwotKyAgICBhZGRfbG9jYWxf cmVnaXN0ZXIgKGdkYmFyY2gsIHR5cGUsIHNjb3BlKTsKLSB9Ci0gCi0gLyogQWRkIGEgc3ltYm9s IHRvIGEgY29sbGVjdGlvbiBsaXN0LiAgKi8KLUBAIC04ODIsMTkgKzk0OCwxOSBAQCBjb2xsZWN0 aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCi0gICAgICAgaWYg KFRZUEVfQ09ERSAoU1lNQk9MX1RZUEUgKHN5bSkpID09IFRZUEVfQ09ERV9TVFJVQ1QpCi0gCXRy ZWF0X2FzX2V4cHIgPSAxOwotICAgICAgIGVsc2UKLS0JYWRkX21lbXJhbmdlIChnZGJhcmNoLCBt ZW1yYW5nZV9hYnNvbHV0ZSwgb2Zmc2V0LCBsZW4pOwotKwlhZGRfbWVtcmFuZ2UgKGdkYmFyY2gs IG1lbXJhbmdlX2Fic29sdXRlLCBvZmZzZXQsIGxlbiwgc2NvcGUpOwotICAgICAgIGJyZWFrOwot ICAgICBjYXNlIExPQ19SRUdJU1RFUjoKLSAgICAgICByZWcgPSBTWU1CT0xfUkVHSVNURVJfT1BT IChzeW0pLT5yZWdpc3Rlcl9udW1iZXIgKHN5bSwgZ2RiYXJjaCk7Ci0gICAgICAgaWYgKGluZm9f dmVyYm9zZSkKLSAJcHJpbnRmX2ZpbHRlcmVkICgiTE9DX1JFR1twYXJtXSAlczogIiwgCi0gCQkJ IFNZTUJPTF9QUklOVF9OQU1FIChzeW0pKTsKLS0gICAgICBhZGRfcmVnaXN0ZXIgKHJlZyk7Ci0r ICAgICAgYWRkX2xvY2FsX3JlZ2lzdGVyIChnZGJhcmNoLCByZWcsIHNjb3BlKTsKLSAgICAgICAv KiBDaGVjayBmb3IgZG91YmxlcyBzdG9yZWQgaW4gdHdvIHJlZ2lzdGVycy4gICovCi0gICAgICAg LyogRklYTUU6IGhvdyBhYm91dCBsYXJnZXIgdHlwZXMgc3RvcmVkIGluIDMgb3IgbW9yZSByZWdz PyAgKi8KLSAgICAgICBpZiAoVFlQRV9DT0RFIChTWU1CT0xfVFlQRSAoc3ltKSkgPT0gVFlQRV9D T0RFX0ZMVCAmJgotIAkgIGxlbiA+IHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gsIHJlZykpCi0tCWFk ZF9yZWdpc3RlciAocmVnICsgMSk7Ci0rCWFkZF9sb2NhbF9yZWdpc3RlciAoZ2RiYXJjaCwgcmVn ICsgMSwgc2NvcGUpOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIExPQ19SRUZfQVJHOgotICAg ICAgIHByaW50Zl9maWx0ZXJlZCAoIlNvcnJ5LCBkb24ndCBrbm93IGhvdyB0byBkbyBMT0NfUkVG X0FSRyB5ZXQuXG4iKTsKLUBAIC05MTEsNyArOTc3LDcgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xs ZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAotIAkJCSAgIFNZTUJPTF9QUklOVF9OQU1F IChzeW0pLCBwdWxvbmdlc3QgKGxlbiksCi0gCQkJICAgcGFkZHJlc3MgKGdkYmFyY2gsIG9mZnNl dCksIHJlZyk7Ci0gCX0KLS0gICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0 LCBsZW4pOwotKyAgICAgIGFkZF9tZW1yYW5nZSAoZ2RiYXJjaCwgcmVnLCBvZmZzZXQsIGxlbiwg c2NvcGUpOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIExPQ19SRUdQQVJNX0FERFI6Ci0gICAg ICAgcmVnID0gU1lNQk9MX1ZBTFVFIChzeW0pOwotQEAgLTkyMyw3ICs5ODksNyBAQCBjb2xsZWN0 aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCi0gCQkJICAgU1lN Qk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKLSAJCQkgICBwYWRkcmVzcyAo Z2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKLSAJfQotLSAgICAgIGFkZF9tZW1yYW5nZSAoZ2RiYXJj aCwgcmVnLCBvZmZzZXQsIGxlbik7Ci0rICAgICAgYWRkX21lbXJhbmdlIChnZGJhcmNoLCByZWcs IG9mZnNldCwgbGVuLCBzY29wZSk7Ci0gICAgICAgYnJlYWs7Ci0gICAgIGNhc2UgTE9DX0xPQ0FM OgotICAgICAgIHJlZyA9IGZyYW1lX3JlZ25vOwotQEAgLTkzNSw3ICsxMDAxLDcgQEAgY29sbGVj dGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAotIAkJCSAgIFNZ TUJPTF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbiksCi0gCQkJICAgcGFkZHJlc3Mg KGdkYmFyY2gsIG9mZnNldCksIHJlZyk7Ci0gCX0KLS0gICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFy Y2gsIHJlZywgb2Zmc2V0LCBsZW4pOwotKyAgICAgIGFkZF9tZW1yYW5nZSAoZ2RiYXJjaCwgcmVn LCBvZmZzZXQsIGxlbiwgc2NvcGUpOwotICAgICAgIGJyZWFrOwotIAotICAgICBjYXNlIExPQ19V TlJFU09MVkVEOgotQEAgLTk2OCwyNiArMTAzNCwxMCBAQCBjb2xsZWN0aW9uX2xpc3Q6OmNvbGxl Y3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCi0gCSAgcmV0dXJuOwotIAl9Ci0gCi0tICAg ICAgYXhfcmVxcyAoYWV4cHIuZ2V0ICgpKTsKLS0KLS0gICAgICByZXBvcnRfYWdlbnRfcmVxc19l cnJvcnMgKGFleHByLmdldCAoKSk7Ci0rICAgICAgZmluYWxpemVfdHJhY2Vwb2ludF9hZXhwciAo YWV4cHIuZ2V0ICgpKTsKLSAKLSAgICAgICAvKiBUYWtlIGNhcmUgb2YgdGhlIHJlZ2lzdGVycy4g ICovCi0tICAgICAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQotLQl7Ci0tCSAgZm9yIChp bnQgbmR4MSA9IDA7IG5keDEgPCBhZXhwci0+cmVnX21hc2tfbGVuOyBuZHgxKyspCi0tCSAgICB7 Ci0tCSAgICAgIFFVSVQ7CS8qIEFsbG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0aCBeQy4gICovCi0t CSAgICAgIGlmIChhZXhwci0+cmVnX21hc2tbbmR4MV0gIT0gMCkKLS0JCXsKLS0JCSAgLyogQXNz dW1lIGNoYXJzIGhhdmUgOCBiaXRzLiAgKi8KLS0JCSAgZm9yIChpbnQgbmR4MiA9IDA7IG5keDIg PCA4OyBuZHgyKyspCi0tCQkgICAgaWYgKGFleHByLT5yZWdfbWFza1tuZHgxXSAmICgxIDw8IG5k eDIpKQotLQkJICAgICAgLyogSXQncyB1c2VkIC0tIHJlY29yZCBpdC4gICovCi0tCQkgICAgICBh ZGRfcmVnaXN0ZXIgKG5keDEgKiA4ICsgbmR4Mik7Ci0tCQl9Ci0tCSAgICB9Ci0tCX0KLSsgICAg ICBhZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwotIAotICAgICAgIGFkZF9hZXhwciAo c3RkOjptb3ZlIChhZXhwcikpOwotICAgICB9Ci1AQCAtMTI1Nyw4ICsxMzA3LDE4IEBAIGVuY29k ZV9hY3Rpb25zXzEgKHN0cnVjdCBjb21tYW5kX2xpbmUgKmFjdGlvbiwKLSAKLSAJICAgICAgaWYg KDAgPT0gc3RybmNhc2VjbXAgKCIkcmVnIiwgYWN0aW9uX2V4cCwgNCkpCi0gCQl7Ci0tCQkgIGZv ciAoaSA9IDA7IGkgPCBnZGJhcmNoX251bV9yZWdzICh0YXJnZXRfZ2RiYXJjaCAoKSk7IGkrKykK LS0JCSAgICBjb2xsZWN0LT5hZGRfcmVnaXN0ZXIgKGkpOwotKwkJICBmb3IgKGkgPSAwOyBpIDwg Z2RiYXJjaF9udW1fcmVncyAodGFyZ2V0X2dkYmFyY2ggKCkpOwotKwkJICAgICAgIGkrKykKLSsJ CSAgICB7Ci0rCQkgICAgICBpbnQgcmVtb3RlX3JlZ25vID0gKGdkYmFyY2hfcmVtb3RlX3JlZ2lz dGVyX251bWJlcgotKwkJCQkJICAodGFyZ2V0X2dkYmFyY2ggKCksIGkpKTsKLSsKLSsJCSAgICAg IC8qIElnbm9yZSBhcmNoIHJlZ25vcyB3aXRob3V0IGEgY29ycmVzcG9uZGluZwotKwkJCSByZW1v dGUgcmVnbm8uICBUaGlzIGNhbiBoYXBwZW4gZm9yIHJlZ25vcyBub3QKLSsJCQkgaW4gdGhlIHRk ZXNjLiAgKi8KLSsJCSAgICAgIGlmIChyZW1vdGVfcmVnbm8gPj0gMCkKLSsJCQljb2xsZWN0LT5h ZGRfcmVtb3RlX3JlZ2lzdGVyIChyZW1vdGVfcmVnbm8pOwotKwkJICAgIH0KLSAJCSAgYWN0aW9u X2V4cCA9IHN0cmNociAoYWN0aW9uX2V4cCwgJywnKTsJLyogbW9yZT8gKi8KLSAJCX0KLSAJICAg ICAgZWxzZSBpZiAoMCA9PSBzdHJuY2FzZWNtcCAoIiRhcmciLCBhY3Rpb25fZXhwLCA0KSkKLUBA IC0xMjg4LDI3ICsxMzQ4LDEwIEBAIGVuY29kZV9hY3Rpb25zXzEgKHN0cnVjdCBjb21tYW5kX2xp bmUgKmFjdGlvbiwKLSAJCQkJCQkgICAgdGFyZ2V0X2dkYmFyY2ggKCksCi0gCQkJCQkJICAgIHRy YWNlX3N0cmluZyk7Ci0gCi0tCQkgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7Ci0tCQkgIHJlcG9y dF9hZ2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKLSsJCSAgZmluYWxpemVfdHJhY2Vw b2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSAKLSAJCSAgLyogdGFrZSBjYXJlIG9mIHRoZSBy ZWdpc3RlcnMgKi8KLS0JCSAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQotLQkJICAgIHsK LS0JCSAgICAgIGZvciAoaW50IG5keDEgPSAwOyBuZHgxIDwgYWV4cHItPnJlZ19tYXNrX2xlbjsg bmR4MSsrKQotLQkJCXsKLS0JCQkgIFFVSVQ7CS8qIGFsbG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0 aCBeQyAqLwotLQkJCSAgaWYgKGFleHByLT5yZWdfbWFza1tuZHgxXSAhPSAwKQotLQkJCSAgICB7 Ci0tCQkJICAgICAgLyogYXNzdW1lIGNoYXJzIGhhdmUgOCBiaXRzICovCi0tCQkJICAgICAgZm9y IChpbnQgbmR4MiA9IDA7IG5keDIgPCA4OyBuZHgyKyspCi0tCQkJCWlmIChhZXhwci0+cmVnX21h c2tbbmR4MV0gJiAoMSA8PCBuZHgyKSkKLS0JCQkJICB7Ci0tCQkJCSAgICAvKiBJdCdzIHVzZWQg LS0gcmVjb3JkIGl0LiAgKi8KLS0JCQkJICAgIGNvbGxlY3QtPmFkZF9yZWdpc3RlciAobmR4MSAq IDggKyBuZHgyKTsKLS0JCQkJICB9Ci0tCQkJICAgIH0KLS0JCQl9Ci0tCQkgICAgfQotKwkJICBj b2xsZWN0LT5hZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwotIAotIAkJICBjb2xsZWN0 LT5hZGRfYWV4cHIgKHN0ZDo6bW92ZSAoYWV4cHIpKTsKLSAJCSAgYWN0aW9uX2V4cCA9IHN0cmNo ciAoYWN0aW9uX2V4cCwgJywnKTsJLyogbW9yZT8gKi8KLUBAIC0xMzQwLDcgKzEzODMsOCBAQCBl bmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rpb24sCi0gCQkJCQkgIG5h bWUpOwotIAkJCWlmIChpbmZvX3ZlcmJvc2UpCi0gCQkJICBwcmludGZfZmlsdGVyZWQgKCJPUF9S RUdJU1RFUjogIik7Ci0tCQkJY29sbGVjdC0+YWRkX3JlZ2lzdGVyIChpKTsKLSsJCQljb2xsZWN0 LT5hZGRfbG9jYWxfcmVnaXN0ZXIgKHRhcmdldF9nZGJhcmNoICgpLAotKwkJCQkJCSAgICAgaSwg dGxvYy0+YWRkcmVzcyk7Ci0gCQkJYnJlYWs7Ci0gCQkgICAgICB9Ci0gCi1AQCAtMTM1Miw3ICsx Mzk2LDggQEAgZW5jb2RlX2FjdGlvbnNfMSAoc3RydWN0IGNvbW1hbmRfbGluZSAqYWN0aW9uLAot IAkJICAgICAgY2hlY2tfdHlwZWRlZiAoZXhwLT5lbHRzWzFdLnR5cGUpOwotIAkJICAgICAgY29s bGVjdC0+YWRkX21lbXJhbmdlICh0YXJnZXRfZ2RiYXJjaCAoKSwKLSAJCQkJCSAgICAgbWVtcmFu Z2VfYWJzb2x1dGUsIGFkZHIsCi0tCQkJCQkgICAgIFRZUEVfTEVOR1RIIChleHAtPmVsdHNbMV0u dHlwZSkpOwotKwkJCQkJICAgICBUWVBFX0xFTkdUSCAoZXhwLT5lbHRzWzFdLnR5cGUpLAotKwkJ CQkJICAgICB0bG9jLT5hZGRyZXNzKTsKLSAJCSAgICAgIGNvbGxlY3QtPmFwcGVuZF9leHAgKGV4 cC5nZXQgKCkpOwotIAkJICAgICAgYnJlYWs7Ci0gCi1AQCAtMTM3NiwyOCArMTQyMSwxMCBAQCBl bmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rpb24sCi0gCQkJCQkJCQll eHAuZ2V0ICgpLAotIAkJCQkJCQkJdHJhY2Vfc3RyaW5nKTsKLSAKLS0JCSAgICAgIGF4X3JlcXMg KGFleHByLmdldCAoKSk7Ci0tCi0tCQkgICAgICByZXBvcnRfYWdlbnRfcmVxc19lcnJvcnMgKGFl eHByLmdldCAoKSk7Ci0rCQkgICAgICBmaW5hbGl6ZV90cmFjZXBvaW50X2FleHByIChhZXhwci5n ZXQgKCkpOwotIAotIAkJICAgICAgLyogVGFrZSBjYXJlIG9mIHRoZSByZWdpc3RlcnMuICAqLwot LQkJICAgICAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQotLQkJCXsKLS0JCQkgIGZvciAo aW50IG5keDEgPSAwOyBuZHgxIDwgYWV4cHItPnJlZ19tYXNrX2xlbjsgbmR4MSsrKQotLQkJCSAg ICB7Ci0tCQkJICAgICAgUVVJVDsJLyogQWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAg Ki8KLS0JCQkgICAgICBpZiAoYWV4cHItPnJlZ19tYXNrW25keDFdICE9IDApCi0tCQkJCXsKLS0J CQkJICAvKiBBc3N1bWUgY2hhcnMgaGF2ZSA4IGJpdHMuICAqLwotLQkJCQkgIGZvciAoaW50IG5k eDIgPSAwOyBuZHgyIDwgODsgbmR4MisrKQotLQkJCQkgICAgaWYgKGFleHByLT5yZWdfbWFza1tu ZHgxXSAmICgxIDw8IG5keDIpKQotLQkJCQkgICAgICB7Ci0tCQkJCQkvKiBJdCdzIHVzZWQgLS0g cmVjb3JkIGl0LiAgKi8KLS0JCQkJCWNvbGxlY3QtPmFkZF9yZWdpc3RlciAobmR4MSAqIDggKyBu ZHgyKTsKLS0JCQkJICAgICAgfQotLQkJCQl9Ci0tCQkJICAgIH0KLS0JCQl9Ci0rCQkgICAgICBj b2xsZWN0LT5hZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwotIAotIAkJICAgICAgY29s bGVjdC0+YWRkX2FleHByIChzdGQ6Om1vdmUgKGFleHByKSk7Ci0gCQkgICAgICBjb2xsZWN0LT5h cHBlbmRfZXhwIChleHAuZ2V0ICgpKTsKLUBAIC0xNDIyLDggKzE0NDksNyBAQCBlbmNvZGVfYWN0 aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rpb24sCi0gCQkgIGFnZW50X2V4cHJfdXAg YWV4cHIgPSBnZW5fZXZhbF9mb3JfZXhwciAodGxvYy0+YWRkcmVzcywKLSAJCQkJCQkJICAgZXhw LmdldCAoKSk7Ci0gCi0tCQkgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7Ci0tCQkgIHJlcG9ydF9h Z2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKLSsJCSAgZmluYWxpemVfdHJhY2Vwb2lu dF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKLSAKLSAJCSAgLyogRXZlbiB0aG91Z2ggd2UncmUgbm90 IG9mZmljaWFsbHkgY29sbGVjdGluZywgYWRkCi0gCQkgICAgIHRvIHRoZSBjb2xsZWN0IGxpc3Qg YW55d2F5LiAgKi8KLWRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5oIGIvZ2RiL3RyYWNlcG9p bnQuaAotLS0tIGEvZ2RiL3RyYWNlcG9pbnQuaAotKysrIGIvZ2RiL3RyYWNlcG9pbnQuaAotQEAg LTI2Myw5ICsyNjMsMTQgQEAgcHVibGljOgotICAgdm9pZCBhZGRfYWV4cHIgKGFnZW50X2V4cHJf dXAgYWV4cHIpOwotIAotICAgdm9pZCBhZGRfcmVnaXN0ZXIgKHVuc2lnbmVkIGludCByZWdubyk7 Ci0rICB2b2lkIGFkZF9yZW1vdGVfcmVnaXN0ZXIgKHVuc2lnbmVkIGludCByZWdubyk7Ci0rICB2 b2lkIGFkZF9heF9yZWdpc3RlcnMgKHN0cnVjdCBhZ2VudF9leHByICphZXhwcik7Ci0rICB2b2lk IGFkZF9sb2NhbF9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0rCQkJICAgdW5z aWduZWQgaW50IHJlZ25vLAotKwkJCSAgIENPUkVfQUREUiBzY29wZSk7Ci0gICB2b2lkIGFkZF9t ZW1yYW5nZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0gCQkgICAgIGludCB0eXBlLCBiZmRf c2lnbmVkX3ZtYSBiYXNlLAotLQkJICAgICBVTE9OR0VTVCBsZW4pOwotKwkJICAgICBVTE9OR0VT VCBsZW4sIENPUkVfQUREUiBzY29wZSk7Ci0gICB2b2lkIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qg c3ltYm9sICpzeW0sCi0gCQkgICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCi0gCQkgICAg ICAgbG9uZyBmcmFtZV9yZWdubywgbG9uZyBmcmFtZV9vZmZzZXQsCgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTVvZjcucGF0Y2ggYi9nZGItcmhiejExODc1ODEtcG93 ZXI4LXJlZ3MtNW9mNy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWFjYTUy Zi4uMDAwMDAwMAotLS0gYS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtNW9mNy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDIxNSArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MTc6NDYgKzAyMDAKLVN1Ympl Y3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy01b2Y3LnBhdGNoCi0KLTs7IEFkZCBHREIg c3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDEx ODc1ODEpLgotCi1jb21taXQgYTA0YjlkNjJhMjM0OTIzODI2ZTQzMWEyMDlkMzk2YTYyODY2MTU0 OAotQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gPHBlZHJvbWZjQGxpbnV4LmlibS5j b20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1NSAyMDE4IC0wMzAwCi0KLSAgICBWYXJpYWJs ZSBzaXplIGZvciByZWdzIG1hc2sgaW4gY29sbGVjdGlvbiBsaXN0Ci0KLSAgICBUaGlzIHBhdGNo IGNoYW5nZXMgY29sbGVjdGlvbl9saXN0IHRvIGFsbG93IGxhcmdlciByZWdpc3RlciBtYXNrcy4K LQotICAgIFRoZSBtYXNrIGlzIGNoYW5nZWQgZnJvbSBhbiBhcnJheSB0byBhIHZlY3RvciBhbmQg aXMgaW5pdGlhbGl6ZWQgdG8KLSAgICBob2xkIHRoZSBtYXhpbXVtIHBvc3NpYmxlIHJlbW90ZSBy ZWdpc3RlciBudW1iZXIuICBUaGUgc3RyaW5naWZ5Ci0gICAgbWV0aG9kIGlzIHVwZGF0ZWQgdG8g cmVzaXplIHRlbXBfYnVmIGlmIG5lZWRlZC4KLQotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgMjAx OC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNv bT4KLQotICAgICAgICAgICAgKiB0cmFjZXBvaW50LmggKGNvbGxlY3Rpb25fbGlzdCkgPG1fcmVn c19tYXNrPjogQ2hhbmdlIHR5cGUgdG8KLSAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVuc2lnbmVk IGNoYXI+LgotICAgICAgICAgICAgKiB0cmFjZXBvaW50LmMgKGNvbGxlY3Rpb25fbGlzdDo6Y29s bGVjdGlvbl9saXN0KTogUmVtb3ZlCi0gICAgICAgICAgICBtX3JlZ3NfbWFzayBpbml0aWFsaXpl ciBmcm9tIGluaXRpYWxpemVyIGxpc3QuICBSZXNpemUKLSAgICAgICAgICAgIG1fcmVnc19tYXNr IHVzaW5nIHRoZSBsYXJnZXN0IHJlbW90ZSByZWdpc3RlciBudW1iZXIuCi0gICAgICAgICAgICAo Y29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyKTogUmVtb3ZlIHNpemUgY2hlY2sg b24KLSAgICAgICAgICAgIG1fcmVnc19tYXNrLiAgVXNlIGF0IHRvIGFjY2VzcyBlbGVtZW50Lgot ICAgICAgICAgICAgKGNvbGxlY3Rpb25fbGlzdDo6c3RyaW5naWZ5KTogQ2hhbmdlIHR5cGUgb2Yg dGVtcF9idWYgdG8KLSAgICAgICAgICAgIGdkYjo6Y2hhcl92ZWN0b3IuICBVcGRhdGUgdXNlcyBv ZiB0ZW1wX2J1Zi4gIFJlc2l6ZSBpZiBuZWVkZWQgdG8KLSAgICAgICAgICAgIHN0cmluZ2lmeSB0 aGUgcmVnaXN0ZXIgbWFzay4gIFVzZSBwYWNrX2hleF9ieXRlIGZvciB0aGUgcmVnaXN0ZXIKLSAg ICAgICAgICAgIG1hc2suCi0KLSsyMDE4LTA4LTA2ICBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8g IDxwZWRyb21mY0BsaW51eC5pYm0uY29tPgotKwotKwkqIHRyYWNlcG9pbnQuaCAoY29sbGVjdGlv bl9saXN0KSA8bV9yZWdzX21hc2s+OiBDaGFuZ2UgdHlwZSB0bwotKwlzdGQ6OnZlY3Rvcjx1bnNp Z25lZCBjaGFyPi4KLSsJKiB0cmFjZXBvaW50LmMgKGNvbGxlY3Rpb25fbGlzdDo6Y29sbGVjdGlv bl9saXN0KTogUmVtb3ZlCi0rCW1fcmVnc19tYXNrIGluaXRpYWxpemVyIGZyb20gaW5pdGlhbGl6 ZXIgbGlzdC4gIFJlc2l6ZQotKwltX3JlZ3NfbWFzayB1c2luZyB0aGUgbGFyZ2VzdCByZW1vdGUg cmVnaXN0ZXIgbnVtYmVyLgotKwkoY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVy KTogUmVtb3ZlIHNpemUgY2hlY2sgb24KLSsJbV9yZWdzX21hc2suICBVc2UgYXQgdG8gYWNjZXNz IGVsZW1lbnQuCi0rCShjb2xsZWN0aW9uX2xpc3Q6OnN0cmluZ2lmeSk6IENoYW5nZSB0eXBlIG9m IHRlbXBfYnVmIHRvCi0rCWdkYjo6Y2hhcl92ZWN0b3IuICBVcGRhdGUgdXNlcyBvZiB0ZW1wX2J1 Zi4gIFJlc2l6ZSBpZiBuZWVkZWQgdG8KLSsJc3RyaW5naWZ5IHRoZSByZWdpc3RlciBtYXNrLiAg VXNlIHBhY2tfaGV4X2J5dGUgZm9yIHRoZSByZWdpc3RlcgotKwltYXNrLgotKwotIDIwMTgtMDgt MDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+Ci0K LSAJKiB0cmFjZXBvaW50LmggKGNsYXNzIGNvbGxlY3Rpb25fbGlzdCkgPGFkZF9yZWdpc3Rlcj46 IFJlbW92ZS4KLQotZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2lu dC5jCi0tLS0gYS9nZGIvdHJhY2Vwb2ludC5jCi0rKysgYi9nZGIvdHJhY2Vwb2ludC5jCi1AQCAt ODIyLDEwICs4MjIsOCBAQCBjb2xsZWN0aW9uX2xpc3Q6OmFkZF9yZW1vdGVfcmVnaXN0ZXIgKHVu c2lnbmVkIGludCByZWdubykKLSB7Ci0gICBpZiAoaW5mb192ZXJib3NlKQotICAgICBwcmludGZf ZmlsdGVyZWQgKCJjb2xsZWN0IHJlZ2lzdGVyICVkXG4iLCByZWdubyk7Ci0tICBpZiAocmVnbm8g Pj0gKDggKiBzaXplb2YgKG1fcmVnc19tYXNrKSkpCi0tICAgIGVycm9yIChfKCJJbnRlcm5hbDog cmVnaXN0ZXIgbnVtYmVyICVkIHRvbyBsYXJnZSBmb3IgdHJhY2Vwb2ludCIpLAotLQkgICByZWdu byk7Ci0tICBtX3JlZ3NfbWFza1tyZWdubyAvIDhdIHw9IDEgPDwgKHJlZ25vICUgOCk7Ci0rCi0r ICBtX3JlZ3NfbWFzay5hdCAocmVnbm8gLyA4KSB8PSAxIDw8IChyZWdubyAlIDgpOwotIH0KLSAK LSAvKiBBZGQgYWxsIHRoZSByZWdpc3RlcnMgZnJvbSB0aGUgbWFzayBpbiBBRVhQUiB0byB0aGUg bWFzayBpbiB0aGUKLUBAIC0xMTM2LDkgKzExMzQsMjAgQEAgY29sbGVjdGlvbl9saXN0OjphZGRf c3RhdGljX3RyYWNlX2RhdGEgKCkKLSB9Ci0gCi0gY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0aW9u X2xpc3QgKCkKLS0gIDogbV9yZWdzX21hc2sgKCksCi0tICAgIG1fc3RyYWNlX2RhdGEgKGZhbHNl KQotKyAgOiBtX3N0cmFjZV9kYXRhIChmYWxzZSkKLSB7Ci0rICBpbnQgbWF4X3JlbW90ZV9yZWdu byA9IDA7Ci0rICBmb3IgKGludCBpID0gMDsgaSA8IGdkYmFyY2hfbnVtX3JlZ3MgKHRhcmdldF9n ZGJhcmNoICgpKTsgaSsrKQotKyAgICB7Ci0rICAgICAgaW50IHJlbW90ZV9yZWdubyA9IChnZGJh cmNoX3JlbW90ZV9yZWdpc3Rlcl9udW1iZXIKLSsJCQkgICh0YXJnZXRfZ2RiYXJjaCAoKSwgaSkp OwotKwotKyAgICAgIGlmIChyZW1vdGVfcmVnbm8gPj0gMCAmJiByZW1vdGVfcmVnbm8gPiBtYXhf cmVtb3RlX3JlZ25vKQotKwltYXhfcmVtb3RlX3JlZ25vID0gcmVtb3RlX3JlZ25vOwotKyAgICB9 Ci0rCi0rICBtX3JlZ3NfbWFzay5yZXNpemUgKChtYXhfcmVtb3RlX3JlZ25vIC8gOCkgKyAxKTsK LSsKLSAgIG1fbWVtcmFuZ2VzLnJlc2VydmUgKDEyOCk7Ci0gICBtX2FleHBycy5yZXNlcnZlICgx MjgpOwotIH0KLUBAIC0xMTQ4LDcgKzExNTcsOCBAQCBjb2xsZWN0aW9uX2xpc3Q6OmNvbGxlY3Rp b25fbGlzdCAoKQotIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPgotIGNvbGxlY3Rpb25fbGlzdDo6 c3RyaW5naWZ5ICgpCi0gewotLSAgY2hhciB0ZW1wX2J1ZlsyMDQ4XTsKLSsgIGdkYjo6Y2hhcl92 ZWN0b3IgdGVtcF9idWYgKDIwNDgpOwotKwotICAgaW50IGNvdW50OwotICAgY2hhciAqZW5kOwot ICAgbG9uZyBpOwotQEAgLTExNTgsMzUgKzExNjgsNDUgQEAgY29sbGVjdGlvbl9saXN0OjpzdHJp bmdpZnkgKCkKLSAgICAgewotICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCi0gCXByaW50Zl9maWx0 ZXJlZCAoIlxuQ29sbGVjdGluZyBzdGF0aWMgdHJhY2UgZGF0YVxuIik7Ci0tICAgICAgZW5kID0g dGVtcF9idWY7Ci0rICAgICAgZW5kID0gdGVtcF9idWYuZGF0YSAoKTsKLSAgICAgICAqZW5kKysg PSAnTCc7Ci0tICAgICAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1ZiwgZW5kIC0gdGVt cF9idWYpOwotKyAgICAgIHN0cl9saXN0LmVtcGxhY2VfYmFjayAodGVtcF9idWYuZGF0YSAoKSwg ZW5kIC0gdGVtcF9idWYuZGF0YSAoKSk7Ci0gICAgIH0KLSAKLS0gIGZvciAoaSA9IHNpemVvZiAo bV9yZWdzX21hc2spIC0gMTsgaSA+IDA7IGktLSkKLSsgIGZvciAoaSA9IG1fcmVnc19tYXNrLnNp emUgKCkgLSAxOyBpID4gMDsgaS0tKQotICAgICBpZiAobV9yZWdzX21hc2tbaV0gIT0gMCkgICAg LyogU2tpcCBsZWFkaW5nIHplcm9lcyBpbiByZWdzX21hc2suICAqLwotICAgICAgIGJyZWFrOwot ICAgaWYgKG1fcmVnc19tYXNrW2ldICE9IDApCS8qIFByZXBhcmUgdG8gc2VuZCByZWdzX21hc2sg dG8gdGhlIHN0dWIuICAqLwotICAgICB7Ci0gICAgICAgaWYgKGluZm9fdmVyYm9zZSkKLSAJcHJp bnRmX2ZpbHRlcmVkICgiXG5Db2xsZWN0aW5nIHJlZ2lzdGVycyAobWFzayk6IDB4Iik7Ci0tICAg ICAgZW5kID0gdGVtcF9idWY7Ci0rCi0rICAgICAgLyogT25lIGNoYXIgZm9yICdSJywgb25lIGZv ciB0aGUgbnVsbCB0ZXJtaW5hdG9yIGFuZCB0d28gcGVyCi0rCSBtYXNrIGJ5dGUuICAqLwotKyAg ICAgIHN0ZDo6c2l6ZV90IG5ld19zaXplID0gKGkgKyAxKSAqIDIgKyAyOwotKyAgICAgIGlmIChu ZXdfc2l6ZSA+IHRlbXBfYnVmLnNpemUgKCkpCi0rCXRlbXBfYnVmLnJlc2l6ZSAobmV3X3NpemUp OwotKwotKyAgICAgIGVuZCA9IHRlbXBfYnVmLmRhdGEgKCk7Ci0gICAgICAgKmVuZCsrID0gJ1In OwotICAgICAgIGZvciAoOyBpID49IDA7IGktLSkKLSAJewotIAkgIFFVSVQ7CQkJLyogQWxsb3cg dXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KLSAJICBpZiAoaW5mb192ZXJib3NlKQotIAkg ICAgcHJpbnRmX2ZpbHRlcmVkICgiJTAyWCIsIG1fcmVnc19tYXNrW2ldKTsKLS0JICBzcHJpbnRm IChlbmQsICIlMDJYIiwgbV9yZWdzX21hc2tbaV0pOwotLQkgIGVuZCArPSAyOwotKwotKwkgIGVu ZCA9IHBhY2tfaGV4X2J5dGUgKGVuZCwgbV9yZWdzX21hc2tbaV0pOwotIAl9Ci0tICAgICAgc3Ry X2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1Zik7Ci0rICAgICAgKmVuZCA9ICdcMCc7Ci0rCi0r ICAgICAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1Zi5kYXRhICgpKTsKLSAgICAgfQot ICAgaWYgKGluZm9fdmVyYm9zZSkKLSAgICAgcHJpbnRmX2ZpbHRlcmVkICgiXG4iKTsKLSAgIGlm ICghbV9tZW1yYW5nZXMuZW1wdHkgKCkgJiYgaW5mb192ZXJib3NlKQotICAgICBwcmludGZfZmls dGVyZWQgKCJDb2xsZWN0aW5nIG1lbXJhbmdlczogXG4iKTsKLS0gIGZvciAoaSA9IDAsIGNvdW50 ID0gMCwgZW5kID0gdGVtcF9idWY7IGkgPCBtX21lbXJhbmdlcy5zaXplICgpOyBpKyspCi0rICBm b3IgKGkgPSAwLCBjb3VudCA9IDAsIGVuZCA9IHRlbXBfYnVmLmRhdGEgKCk7Ci0rICAgICAgIGkg PCBtX21lbXJhbmdlcy5zaXplICgpOyBpKyspCi0gICAgIHsKLSAgICAgICBRVUlUOwkJCS8qIEFs bG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0aCBeQy4gICovCi0gICAgICAgaWYgKGluZm9fdmVyYm9z ZSkKLUBAIC0xMjAwLDkgKzEyMjAsOSBAQCBjb2xsZWN0aW9uX2xpc3Q6OnN0cmluZ2lmeSAoKQot IAl9Ci0gICAgICAgaWYgKGNvdW50ICsgMjcgPiBNQVhfQUdFTlRfRVhQUl9MRU4pCi0gCXsKLS0J ICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVmLCBjb3VudCk7Ci0rCSAgc3RyX2xpc3Qu ZW1wbGFjZV9iYWNrICh0ZW1wX2J1Zi5kYXRhICgpLCBjb3VudCk7Ci0gCSAgY291bnQgPSAwOwot LQkgIGVuZCA9IHRlbXBfYnVmOwotKwkgIGVuZCA9IHRlbXBfYnVmLmRhdGEgKCk7Ci0gCX0KLSAK LSAgICAgICB7Ci1AQCAtMTIyMiw3ICsxMjQyLDcgQEAgY29sbGVjdGlvbl9saXN0OjpzdHJpbmdp ZnkgKCkKLSAgICAgICB9Ci0gCi0gICAgICAgY291bnQgKz0gc3RybGVuIChlbmQpOwotLSAgICAg IGVuZCA9IHRlbXBfYnVmICsgY291bnQ7Ci0rICAgICAgZW5kID0gdGVtcF9idWYuZGF0YSAoKSAr IGNvdW50OwotICAgICB9Ci0gCi0gICBmb3IgKGkgPSAwOyBpIDwgbV9hZXhwcnMuc2l6ZSAoKTsg aSsrKQotQEAgLTEyMzAsOSArMTI1MCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6c3RyaW5naWZ5ICgp Ci0gICAgICAgUVVJVDsJCQkvKiBBbGxvdyB1c2VyIHRvIGJhaWwgb3V0IHdpdGggXkMuICAqLwot ICAgICAgIGlmICgoY291bnQgKyAxMCArIDIgKiBtX2FleHByc1tpXS0+bGVuKSA+IE1BWF9BR0VO VF9FWFBSX0xFTikKLSAJewotLQkgIHN0cl9saXN0LmVtcGxhY2VfYmFjayAodGVtcF9idWYsIGNv dW50KTsKLSsJICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVmLmRhdGEgKCksIGNvdW50 KTsKLSAJICBjb3VudCA9IDA7Ci0tCSAgZW5kID0gdGVtcF9idWY7Ci0rCSAgZW5kID0gdGVtcF9i dWYuZGF0YSAoKTsKLSAJfQotICAgICAgIHNwcmludGYgKGVuZCwgIlglMDhYLCIsIG1fYWV4cHJz W2ldLT5sZW4pOwotICAgICAgIGVuZCArPSAxMDsJCS8qICdYJyArIDggaGV4IGRpZ2l0cyArICcs JyAqLwotQEAgLTEyNDQsOSArMTI2NCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6c3RyaW5naWZ5ICgp Ci0gCi0gICBpZiAoY291bnQgIT0gMCkKLSAgICAgewotLSAgICAgIHN0cl9saXN0LmVtcGxhY2Vf YmFjayAodGVtcF9idWYsIGNvdW50KTsKLSsgICAgICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRl bXBfYnVmLmRhdGEgKCksIGNvdW50KTsKLSAgICAgICBjb3VudCA9IDA7Ci0tICAgICAgZW5kID0g dGVtcF9idWY7Ci0rICAgICAgZW5kID0gdGVtcF9idWYuZGF0YSAoKTsKLSAgICAgfQotIAotICAg cmV0dXJuIHN0cl9saXN0OwotZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmggYi9nZGIvdHJh Y2Vwb2ludC5oCi0tLS0gYS9nZGIvdHJhY2Vwb2ludC5oCi0rKysgYi9nZGIvdHJhY2Vwb2ludC5o Ci1AQCAtMjkzLDggKzI5Myw5IEBAIHB1YmxpYzoKLSAgIHsgcmV0dXJuIG1fY29tcHV0ZWQ7IH0K LSAKLSBwcml2YXRlOgotLSAgLyogcm9vbSBmb3IgdXAgdG8gMjU2IHJlZ3MgKi8KLS0gIHVuc2ln bmVkIGNoYXIgbV9yZWdzX21hc2tbMzJdOwotKyAgLyogV2UgbmVlZCB0aGUgYWxsb2NhdG9yIHpl cm8taW5pdGlhbGl6ZSB0aGUgbWFzaywgc28gd2UgZG9uJ3QgdXNlCi0rICAgICBnZGI6OmJ5dGVf dmVjdG9yLiAgKi8KLSsgIHN0ZDo6dmVjdG9yPHVuc2lnbmVkIGNoYXI+IG1fcmVnc19tYXNrOwot IAotICAgc3RkOjp2ZWN0b3I8bWVtcmFuZ2U+IG1fbWVtcmFuZ2VzOwotIAoKZGlmZiAtLWdpdCBh L2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy02b2Y3LnBhdGNoIGIvZ2RiLXJoYnoxMTg3NTgx LXBvd2VyOC1yZWdzLTZvZjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIw YTVlMWYuLjAwMDAwMDAKLS0tIGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTZvZjcucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxODcgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPgotRGF0ZTogVGh1LCA5IEF1ZyAyMDE4IDE3OjE4OjE1ICswMjAwCi1T dWJqZWN0OiBnZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtNm9mNy5wYXRjaAotCi07OyBBZGQg R0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4IHJlZ2lzdGVycyAoSUJNLCBSSCBC WiAxMTg3NTgxKS4KLQotY29tbWl0IDI5Njk1NmJlZmVmMzcxMWVkNDU4YzdjYmE4MDQxZmRlMGRh YjljNTAKLUF1dGhvcjogUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvIDxwZWRyb21mY0BsaW51eC5p Ym0uY29tPgotRGF0ZTogICBNb24gQXVnIDYgMTY6MjQ6NTUgMjAxOCAtMDMwMAotCi0gICAgQWxs b3cgbGFyZ2VyIHJlZ2Jsb2NrIHNpemVzIHdoZW4gc2F2aW5nIHRyYWNlZmlsZXMKLQotICAgIFRo ZSB0cmFjZWZpbGUuYzp0cmFjZV9zYXZlIGZ1bmN0aW9uIGFzc3VtZXMgdHJhY2VfcmVnYmxvY2tf c2l6ZSB3b24ndAotICAgIGJlIGxhcmdlciB0aGFuIHRoZSBNQVhfVFJBQ0VfVVBMT0FEIGNvbnN0 YW50LCB1c2VkIHRvIHNpemUgdGhlIGJ1ZmZlcgotICAgIHdoaWNoIGhvbGRzIHRyYWNlIGRhdGEu ICBUaGlzIGNhbiBjYXVzZSBidWZmZXIgb3ZlcnJ1bnMgd2hlbiB0aGlzIGlzCi0gICAgbm90IHRo ZSBjYXNlLiAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoaXMgZnVuY3Rpb24gc28gdGhhdCB0aGUgbGFy Z2VyCi0gICAgc2l6ZSBpcyB1c2VkIHRvIHNpemUgdGhlIGJ1ZmZlci4KLQotICAgIGdkYi9DaGFu Z2VMb2c6Ci0gICAgMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9t ZmNAbGludXguaWJtLmNvbT4KLQotICAgICAgICAgICAgKiB0cmFjZWZpbGUuYzogSW5jbHVkZSBj b21tb24vYnl0ZS12ZWN0b3IuaC4KLSAgICAgICAgICAgICh0cmFjZV9zYXZlKTogQ2hhbmdlIHR5 cGUgb2YgYnVmIHRvIGdkYjo6Ynl0ZV92ZWN0b3IuICBJbml0aWFsaXplCi0gICAgICAgICAgICB3 aXRoIHRyYWNlX3JlZ2Jsb2NrX3NpemUgaWYgbmVlZGVkLiAgVXBkYXRlIHVzZXMgb2YgYnVmLgot Ci0rMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXgu aWJtLmNvbT4KLSsKLSsJKiB0cmFjZWZpbGUuYzogSW5jbHVkZSBjb21tb24vYnl0ZS12ZWN0b3Iu aC4KLSsJKHRyYWNlX3NhdmUpOiBDaGFuZ2UgdHlwZSBvZiBidWYgdG8gZ2RiOjpieXRlX3ZlY3Rv ci4gIEluaXRpYWxpemUKLSsJd2l0aCB0cmFjZV9yZWdibG9ja19zaXplIGlmIG5lZWRlZC4gIFVw ZGF0ZSB1c2VzIG9mIGJ1Zi4KLSsKLSAyMDE4LTA4LTA2ICBQZWRybyBGcmFuY28gZGUgQ2FydmFs aG8gIDxwZWRyb21mY0BsaW51eC5pYm0uY29tPgotCi0gCSogdHJhY2Vwb2ludC5oIChjb2xsZWN0 aW9uX2xpc3QpIDxtX3JlZ3NfbWFzaz46IENoYW5nZSB0eXBlIHRvCi0KLWRpZmYgLS1naXQgYS9n ZGIvdHJhY2VmaWxlLmMgYi9nZGIvdHJhY2VmaWxlLmMKLS0tLSBhL2dkYi90cmFjZWZpbGUuYwot KysrIGIvZ2RiL3RyYWNlZmlsZS5jCi1AQCAtMjIsNiArMjIsNyBAQAotICNpbmNsdWRlICJjdGYu aCIKLSAjaW5jbHVkZSAiZXhlYy5oIgotICNpbmNsdWRlICJyZWdjYWNoZS5oIgotKyNpbmNsdWRl ICJjb21tb24vYnl0ZS12ZWN0b3IuaCIKLSAKLSAvKiBIZWxwZXIgbWFjcm9zLiAgKi8KLSAKLUBA IC02Nyw3ICs2OCw3IEBAIHRyYWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3Qg dHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKLSAKLSAgIFVMT05HRVNUIG9mZnNldCA9IDA7Ci0g I2RlZmluZSBNQVhfVFJBQ0VfVVBMT0FEIDIwMDAKLS0gIGdkYl9ieXRlIGJ1ZltNQVhfVFJBQ0Vf VVBMT0FEXTsKLSsgIGdkYjo6Ynl0ZV92ZWN0b3IgYnVmIChzdGQ6Om1heCAoTUFYX1RSQUNFX1VQ TE9BRCwgdHJhY2VfcmVnYmxvY2tfc2l6ZSkpOwotICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKHRhcmdldF9nZGJhcmNoICgpKTsKLSAKLSAgIC8qIElm IHRoZSB0YXJnZXQgaXMgdG8gc2F2ZSB0aGUgZGF0YSB0byBhIGZpbGUgb24gaXRzIG93biwgdGhl biBqdXN0Ci1AQCAtMTQ0LDcgKzE0NSw3IEBAIHRyYWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZpbGVu YW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKLSAJICAvKiBXZSBhc2sgZm9y IGJpZyBibG9ja3MsIGluIHRoZSBob3BlcyBvZiBlZmZpY2llbmN5LCBidXQKLSAJICAgICB3aWxs IHRha2UgbGVzcyBpZiB0aGUgdGFyZ2V0IGhhcyBwYWNrZXQgc2l6ZSBsaW1pdGF0aW9ucwotIAkg ICAgIG9yIHNvbWUgc3VjaC4gICovCi0tCSAgZ290dGVuID0gdGFyZ2V0X2dldF9yYXdfdHJhY2Vf ZGF0YSAoYnVmLCBvZmZzZXQsCi0rCSAgZ290dGVuID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0 YSAoYnVmLmRhdGEgKCksIG9mZnNldCwKLSAJCQkJCSAgICAgIE1BWF9UUkFDRV9VUExPQUQpOwot IAkgIGlmIChnb3R0ZW4gPCAwKQotIAkgICAgZXJyb3IgKF8oIkZhaWx1cmUgdG8gZ2V0IHJlcXVl c3RlZCB0cmFjZSBidWZmZXIgZGF0YSIpKTsKLUBAIC0xNTIsNyArMTUzLDcgQEAgdHJhY2Vfc2F2 ZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqd3JpdGVy LAotIAkgIGlmIChnb3R0ZW4gPT0gMCkKLSAJICAgIGJyZWFrOwotIAotLQkgIHdyaXRlci0+b3Bz LT53cml0ZV90cmFjZV9idWZmZXIgKHdyaXRlciwgYnVmLCBnb3R0ZW4pOwotKwkgIHdyaXRlci0+ b3BzLT53cml0ZV90cmFjZV9idWZmZXIgKHdyaXRlciwgYnVmLmRhdGEgKCksIGdvdHRlbik7Ci0g Ci0gCSAgb2Zmc2V0ICs9IGdvdHRlbjsKLSAJfQotQEAgLTE2Myw3ICsxNjQsNyBAQCB0cmFjZV9z YXZlIChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3cml0 ZXIsCi0gCSAgLyogUGFyc2UgdGhlIHRyYWNlIGJ1ZmZlcnMgYWNjb3JkaW5nIHRvIGhvdyBkYXRh IGFyZSBzdG9yZWQKLSAJICAgICBpbiB0cmFjZSBidWZmZXIgaW4gR0RCc2VydmVyLiAgKi8KLSAK LS0JICBnb3R0ZW4gPSB0YXJnZXRfZ2V0X3Jhd190cmFjZV9kYXRhIChidWYsIG9mZnNldCwgNik7 Ci0rCSAgZ290dGVuID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksIG9m ZnNldCwgNik7Ci0gCi0gCSAgaWYgKGdvdHRlbiA9PSAwKQotIAkgICAgYnJlYWs7Ci1AQCAtMTcx LDEwICsxNzIsMTAgQEAgdHJhY2Vfc2F2ZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0 cmFjZV9maWxlX3dyaXRlciAqd3JpdGVyLAotIAkgIC8qIFJlYWQgdGhlIGZpcnN0IHNpeCBieXRl cyBpbiwgd2hpY2ggaXMgdGhlIHRyYWNlcG9pbnQKLSAJICAgICBudW1iZXIgYW5kIHRyYWNlIGZy YW1lIHNpemUuICAqLwotIAkgIHRwX251bSA9ICh1aW50MTZfdCkKLS0JICAgIGV4dHJhY3RfdW5z aWduZWRfaW50ZWdlciAoJmJ1ZlswXSwgMiwgYnl0ZV9vcmRlcik7Ci0rCSAgICBleHRyYWN0X3Vu c2lnbmVkX2ludGVnZXIgKCYoKGJ1Zi5kYXRhICgpKVswXSksIDIsIGJ5dGVfb3JkZXIpOwotIAot IAkgIHRmX3NpemUgPSAodWludDMyX3QpCi0tCSAgICBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIg KCZidWZbMl0sIDQsIGJ5dGVfb3JkZXIpOwotKwkgICAgZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2Vy ICgmKChidWYuZGF0YSAoKSlbMl0pLCA0LCBieXRlX29yZGVyKTsKLSAKLSAJICB3cml0ZXItPm9w cy0+ZnJhbWVfb3BzLT5zdGFydCAod3JpdGVyLCB0cF9udW0pOwotIAkgIGdvdHRlbiA9IDY7Ci1A QCAtMTkyLDcgKzE5Myw4IEBAIHRyYWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1 Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKLSAJCSAgLyogV2UnbGwgZmV0Y2ggb25lIGJs b2NrIGVhY2ggdGltZSwgaW4gb3JkZXIgdG8KLSAJCSAgICAgaGFuZGxlIHRoZSBleHRyZW1lbHkg bGFyZ2UgJ00nIGJsb2NrLiAgV2UgZmlyc3QKLSAJCSAgICAgZmV0Y2ggb25lIGJ5dGUgdG8gZ2V0 IHRoZSB0eXBlIG9mIHRoZSBibG9jay4gICovCi0tCQkgIGdvdHRlbiA9IHRhcmdldF9nZXRfcmF3 X3RyYWNlX2RhdGEgKGJ1Ziwgb2Zmc2V0LCAxKTsKLSsJCSAgZ290dGVuID0gdGFyZ2V0X2dldF9y YXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksCi0rCQkJCQkJICAgICAgb2Zmc2V0LCAxKTsKLSAJ CSAgaWYgKGdvdHRlbiA8IDEpCi0gCQkgICAgZXJyb3IgKF8oIkZhaWx1cmUgdG8gZ2V0IHJlcXVl c3RlZCB0cmFjZSBidWZmZXIgZGF0YSIpKTsKLSAKLUBAIC0yMDUsMTMgKzIwNywxMyBAQCB0cmFj ZV9zYXZlIChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3 cml0ZXIsCi0gCQkgICAgewotIAkJICAgIGNhc2UgJ1InOgotIAkJICAgICAgZ290dGVuCi0tCQkJ PSB0YXJnZXRfZ2V0X3Jhd190cmFjZV9kYXRhIChidWYsIG9mZnNldCwKLSsJCQk9IHRhcmdldF9n ZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Zi5kYXRhICgpLCBvZmZzZXQsCi0gCQkJCQkJICAgICB0cmFj ZV9yZWdibG9ja19zaXplKTsKLSAJCSAgICAgIGlmIChnb3R0ZW4gPCB0cmFjZV9yZWdibG9ja19z aXplKQotIAkJCWVycm9yIChfKCJGYWlsdXJlIHRvIGdldCByZXF1ZXN0ZWQgdHJhY2UiCi0gCQkJ CSAiIGJ1ZmZlciBkYXRhIikpOwotIAotLQkJICAgICAgVFJBQ0VfV1JJVEVfUl9CTE9DSyAod3Jp dGVyLCBidWYsCi0rCQkgICAgICBUUkFDRV9XUklURV9SX0JMT0NLICh3cml0ZXIsIGJ1Zi5kYXRh ICgpLAotIAkJCQkJICAgdHJhY2VfcmVnYmxvY2tfc2l6ZSk7Ci0gCQkgICAgICBicmVhazsKLSAJ CSAgICBjYXNlICdNJzoKLUBAIC0yMjEsNyArMjIzLDggQEAgdHJhY2Vfc2F2ZSAoY29uc3QgY2hh ciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqd3JpdGVyLAotIAkJCUxPTkdF U1QgdDsKLSAJCQlpbnQgajsKLSAKLS0JCQl0ID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAo YnVmLG9mZnNldCwgMTApOwotKwkJCXQgPSB0YXJnZXRfZ2V0X3Jhd190cmFjZV9kYXRhIChidWYu ZGF0YSAoKSwKLSsJCQkJCQkgICAgICAgb2Zmc2V0LCAxMCk7Ci0gCQkJaWYgKHQgPCAxMCkKLSAJ CQkgIGVycm9yIChfKCJGYWlsdXJlIHRvIGdldCByZXF1ZXN0ZWQgdHJhY2UiCi0gCQkJCSAgICIg YnVmZmVyIGRhdGEiKSk7Ci1AQCAtMjMxLDEwICsyMzQsMTAgQEAgdHJhY2Vfc2F2ZSAoY29uc3Qg Y2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqd3JpdGVyLAotIAotIAkJ CWdvdHRlbiA9IDA7Ci0gCQkJYWRkciA9IChVTE9OR0VTVCkKLS0JCQkgIGV4dHJhY3RfdW5zaWdu ZWRfaW50ZWdlciAoYnVmLCA4LAotKwkJCSAgZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyIChidWYu ZGF0YSAoKSwgOCwKLSAJCQkJCQkgICAgYnl0ZV9vcmRlcik7Ci0gCQkJbWxlbiA9ICh1bnNpZ25l ZCBzaG9ydCkKLS0JCQkgIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoJmJ1Zls4XSwgMiwKLSsJ CQkgIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAoJigoYnVmLmRhdGEgKCkpWzhdKSwgMiwKLSAJ CQkJCQkgICAgYnl0ZV9vcmRlcik7Ci0gCi0gCQkJVFJBQ0VfV1JJVEVfTV9CTE9DS19IRUFERVIg KHdyaXRlciwgYWRkciwKLUBAIC0yNTIsMTQgKzI1NSwxNSBAQCB0cmFjZV9zYXZlIChjb25zdCBj aGFyICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3cml0ZXIsCi0gCQkJICAg IGVsc2UKLSAJCQkgICAgICByZWFkX2xlbmd0aCA9IG1sZW4gLSBqOwotIAotLQkJCSAgICB0ID0g dGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLAotKwkJCSAgICB0ID0gdGFyZ2V0X2dldF9y YXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksCi0gCQkJCQkJCSAgIG9mZnNldCArIGosCi0gCQkJ CQkJCSAgIHJlYWRfbGVuZ3RoKTsKLSAJCQkgICAgaWYgKHQgPCByZWFkX2xlbmd0aCkKLSAJCQkg ICAgICBlcnJvciAoXygiRmFpbHVyZSB0byBnZXQgcmVxdWVzdGVkIgotIAkJCQkgICAgICAgIiB0 cmFjZSBidWZmZXIgZGF0YSIpKTsKLSAKLS0JCQkgICAgVFJBQ0VfV1JJVEVfTV9CTE9DS19NRU1P UlkgKHdyaXRlciwgYnVmLAotKwkJCSAgICBUUkFDRV9XUklURV9NX0JMT0NLX01FTU9SWSAod3Jp dGVyLAotKwkJCQkJCQlidWYuZGF0YSAoKSwKLSAJCQkJCQkJcmVhZF9sZW5ndGgpOwotIAotIAkJ CSAgICBqICs9IHJlYWRfbGVuZ3RoOwotQEAgLTI3NCwxOCArMjc4LDE4IEBAIHRyYWNlX3NhdmUg KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwK LSAJCQlMT05HRVNUIHZhbDsKLSAKLSAJCQlnb3R0ZW4KLS0JCQkgID0gdGFyZ2V0X2dldF9yYXdf dHJhY2VfZGF0YSAoYnVmLCBvZmZzZXQsCi0tCQkJCQkJICAgICAgIDEyKTsKLSsJCQkgID0gdGFy Z2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLmRhdGEgKCksCi0rCQkJCQkJICAgICAgIG9mZnNl dCwgMTIpOwotIAkJCWlmIChnb3R0ZW4gPCAxMikKLSAJCQkgIGVycm9yIChfKCJGYWlsdXJlIHRv IGdldCByZXF1ZXN0ZWQiCi0gCQkJCSAgICIgdHJhY2UgYnVmZmVyIGRhdGEiKSk7Ci0gCi0tCQkJ dm51bSAgPSAoaW50KSBleHRyYWN0X3NpZ25lZF9pbnRlZ2VyIChidWYsCi0rCQkJdm51bSAgPSAo aW50KSBleHRyYWN0X3NpZ25lZF9pbnRlZ2VyIChidWYuZGF0YSAoKSwKLSAJCQkJCQkJICAgICAg NCwKLSAJCQkJCQkJICAgICAgYnl0ZV9vcmRlcik7Ci0gCQkJdmFsCi0tCQkJICA9IGV4dHJhY3Rf c2lnbmVkX2ludGVnZXIgKCZidWZbNF0sIDgsCi0tCQkJCQkJICAgIGJ5dGVfb3JkZXIpOwotKwkJ CSAgPSBleHRyYWN0X3NpZ25lZF9pbnRlZ2VyICgmKChidWYuZGF0YSAoKSlbNF0pLAotKwkJCQkJ CSAgICA4LCBieXRlX29yZGVyKTsKLSAKLSAJCQlUUkFDRV9XUklURV9WX0JMT0NLICh3cml0ZXIs IHZudW0sIHZhbCk7Ci0gCQkgICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMTg3NTgxLXBv d2VyOC1yZWdzLTdvZjcucGF0Y2ggYi9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtN29mNy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWU4MjY3My4uMDAwMDAwMAotLS0g YS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtN29mNy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEyOSArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1E YXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MTg6NDkgKzAyMDAKLVN1YmplY3Q6IGdkYi1yaGJ6MTE4 NzU4MS1wb3dlcjgtcmVncy03b2Y3LnBhdGNoCi0KLTs7IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nl c3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgotCi1jb21t aXQgYTdmMjVhODRmNGNjMWRmNTI0OGM0NjM0NjMzN2YxOWEyYTY2YWY1YQotQXV0aG9yOiBTaW1v biBNYXJjaGkgPHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+Ci1EYXRlOiAgIE1vbiBBdWcgNiAx Njo1NDo0NyAyMDE4IC0wNDAwCi0KLSAgICBGaXggY29tcGlsYXRpb24gZmFpbHVyZSBpbiByZW1v dGUuYwotCi0gICAgQSByZWNlbnQgcGF0Y2ggaW50cm9kdWNlZCBhIGZldyBvZiB0aGVzZToKLQot ICAgIC9ob21lL2VtYWlzaW4vc3JjL2JpbnV0aWxzLWdkYi9nZGIvcmVtb3RlLmM6MTI4NjI6MTk6 IGVycm9yOiBmb3JtYXQgbm90IGEgc3RyaW5nIGxpdGVyYWwgYW5kIG5vIGZvcm1hdCBhcmd1bWVu dHMgWy1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5XQotICAgICAgICAgZXJyb3IgKGVycl9tc2cpOwot ICAgICAgICAgICAgICAgICAgICAgICBeCi0KLSAgICBGaXggdGhlbSBieSByZXBsYWNpbmcgdGhl IGNhbGwgdG8gZXJyb3Igd2l0aAotCi0gICAgICBlcnJvciAoIiVzIiwgZXJyX21zZyk7Ci0KLSAg ICBnZGIvQ2hhbmdlTG9nOgotCi0gICAgICAgICAgICAqIHJlbW90ZS5jIChyZW1vdGVfdGFyZ2V0 Ojpkb3dubG9hZF90cmFjZXBvaW50KTogRml4IGZvcm1hdAotICAgICAgICAgICAgc3RyaW5nIGVy cm9ycy4KLQotKzIwMTgtMDgtMDYgIFNpbW9uIE1hcmNoaSAgPHNpbW9uLm1hcmNoaUBlcmljc3Nv bi5jb20+Ci0rCi0rCSogcmVtb3RlLmMgKHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9p bnQpOiBGaXggZm9ybWF0Ci0rCXN0cmluZyBlcnJvcnMuCi0rCi0gMjAxOC0wOC0wNiAgUGVkcm8g RnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KLQotIAkqIHRyYWNl ZmlsZS5jOiBJbmNsdWRlIGNvbW1vbi9ieXRlLXZlY3Rvci5oLgotCi1kaWZmIC0tZ2l0IGEvZ2Ri L3JlbW90ZS5jIGIvZ2RiL3JlbW90ZS5jCi0tLS0gYS9nZGIvcmVtb3RlLmMKLSsrKyBiL2dkYi9y ZW1vdGUuYwotQEAgLTEyODI2LDcgKzEyODI2LDcgQEAgcmVtb3RlX3RhcmdldDo6ZG93bmxvYWRf dHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0gCQkgIHQtPnN0ZXBfY291bnQs IHQtPnBhc3NfY291bnQpOwotIAotICAgaWYgKHJldCA8IDAgfHwgcmV0ID49IGJ1Zi5zaXplICgp KQotLSAgICBlcnJvciAoZXJyX21zZyk7Ci0rICAgIGVycm9yICgiJXMiLCBlcnJfbXNnKTsKLSAK LSAgIC8qIEZhc3QgdHJhY2Vwb2ludHMgYXJlIG1vc3RseSBoYW5kbGVkIGJ5IHRoZSB0YXJnZXQs IGJ1dCB3ZSBjYW4KLSAgICAgIHRlbGwgdGhlIHRhcmdldCBob3cgYmlnIG9mIGFuIGluc3RydWN0 aW9uIGJsb2NrIHNob3VsZCBiZSBtb3ZlZAotQEAgLTEyODQ2LDcgKzEyODQ2LDcgQEAgcmVtb3Rl X3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0g CQkJICAgICAgZ2RiX2luc25fbGVuZ3RoIChsb2MtPmdkYmFyY2gsIHRwYWRkcikpOwotIAotIAkg ICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQotLQkJZXJyb3IgKGVycl9tc2cp OwotKwkJZXJyb3IgKCIlcyIsIGVycl9tc2cpOwotIAkgICAgfQotIAkgIGVsc2UKLSAJICAgIC8q IElmIGl0IHBhc3NlZCB2YWxpZGF0aW9uIGF0IGRlZmluaXRpb24gYnV0IGZhaWxzIG5vdywKLUBA IC0xMjg3Nyw3ICsxMjg3Nyw3IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQg KHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotIAkJCSAgICAgIHNpemVfbGVmdCwgIjpTIik7Ci0g Ci0gCSAgICAgIGlmIChyZXQgPCAwIHx8IHJldCA+PSBzaXplX2xlZnQpCi0tCQllcnJvciAoZXJy X21zZyk7Ci0rCQllcnJvciAoIiVzIiwgZXJyX21zZyk7Ci0gCSAgICB9Ci0gCSAgZWxzZQotIAkg ICAgZXJyb3IgKF8oIlN0YXRpYyB0cmFjZXBvaW50IG5vdCB2YWxpZCBkdXJpbmcgZG93bmxvYWQi KSk7Ci1AQCAtMTI5MDUsMTQgKzEyOTA1LDE0IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3Ry YWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQotIAkJCSAgc2l6ZV9sZWZ0LCAiOlgl eCwiLCBhZXhwci0+bGVuKTsKLSAKLSAJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0 KQotLQkgICAgZXJyb3IgKGVycl9tc2cpOwotKwkgICAgZXJyb3IgKCIlcyIsIGVycl9tc2cpOwot IAotIAkgIHNpemVfbGVmdCA9IGJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYuZGF0YSAoKSk7Ci0g Ci0gCSAgLyogVHdvIGJ5dGVzIHRvIGVuY29kZSBlYWNoIGFleHByIGJ5dGUsIHBsdXMgdGhlIHRl cm1pbmF0aW5nCi0gCSAgICAgbnVsbCBieXRlLiAgKi8KLSAJICBpZiAoYWV4cHItPmxlbiAqIDIg KyAxID4gc2l6ZV9sZWZ0KQotLQkgICAgZXJyb3IgKGVycl9tc2cpOwotKwkgICAgZXJyb3IgKCIl cyIsIGVycl9tc2cpOwotIAotIAkgIHBrdCA9IGJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYuZGF0 YSAoKSk7Ci0gCi1AQCAtMTI5MzMsNyArMTI5MzMsNyBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9h ZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAJCSAgICAgIHNpemVfbGVm dCwgIi0iKTsKLSAKLSAgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQotLQll cnJvciAoZXJyX21zZyk7Ci0rCWVycm9yICgiJXMiLCBlcnJfbXNnKTsKLSAgICAgfQotIAotICAg cHV0cGt0IChidWYuZGF0YSAoKSk7Ci1AQCAtMTI5NTYsNyArMTI5NTYsNyBAQCByZW1vdGVfdGFy Z2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAJCSAg ICAgIGhhc19tb3JlID8gJy0nIDogMCk7Ci0gCi0gICAgICAgaWYgKHJldCA8IDAgfHwgcmV0ID49 IGJ1Zi5zaXplICgpKQotLQllcnJvciAoZXJyX21zZyk7Ci0rCWVycm9yICgiJXMiLCBlcnJfbXNn KTsKLSAKLSAgICAgICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKLSAgICAgICByZW1vdGVfZ2V0X25v aXN5X3JlcGx5ICgpOwotQEAgLTEyOTc5LDcgKzEyOTc5LDcgQEAgcmVtb3RlX3RhcmdldDo6ZG93 bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCi0gCQkgICAgICBoYXNf bW9yZSA/ICItIiA6ICIiKTsKLSAKLSAgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNp emUgKCkpCi0tCWVycm9yIChlcnJfbXNnKTsKLSsJZXJyb3IgKCIlcyIsIGVycl9tc2cpOwotIAot ICAgICAgIHB1dHBrdCAoYnVmLmRhdGEgKCkpOwotICAgICAgIHJlbW90ZV9nZXRfbm9pc3lfcmVw bHkgKCk7Ci1AQCAtMTI5OTQsNyArMTI5OTQsNyBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90 cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAJICByZXQgPSBzbnByaW50ZiAo YnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUHNyYzoiKTsKLSAKLSAJICBpZiAocmV0IDwg MCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCi0tCSAgICBlcnJvciAoZXJyX21zZyk7Ci0rCSAgICBl cnJvciAoIiVzIiwgZXJyX21zZyk7Ci0gCi0gCSAgZW5jb2RlX3NvdXJjZV9zdHJpbmcgKGItPm51 bWJlciwgbG9jLT5hZGRyZXNzLCAiYXQiLAotIAkJCQlldmVudF9sb2NhdGlvbl90b19zdHJpbmcg KGItPmxvY2F0aW9uLmdldCAoKSksCi1AQCAtMTMwMTAsNyArMTMwMTAsNyBAQCByZW1vdGVfdGFy Z2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKLSAJICBy ZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUHNyYzoiKTsKLSAK LSAJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCi0tCSAgICBlcnJvciAoZXJy X21zZyk7Ci0rCSAgICBlcnJvciAoIiVzIiwgZXJyX21zZyk7Ci0gCi0gCSAgZW5jb2RlX3NvdXJj ZV9zdHJpbmcgKGItPm51bWJlciwgbG9jLT5hZGRyZXNzLAotIAkJCQkiY29uZCIsIGItPmNvbmRf c3RyaW5nLAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gg Yi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCmluZGV4IGUyYzJmNDguLmFkMmRh ZjQgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKKysrIGIv Z2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaApAQCAtNTU3LDcgKzU1Nyw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCiAgCQkJCQkgICAgIHN0 cnVjdCB0eXBlICopOwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFzc2lnbl9hZ2dyZWdhdGUg KHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgCi1AQCAtNjk3LDcgKzY5OCw3IEBAIGNv ZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlwZSAq dHlwZSkKK0BAIC02OTIsNyArNjkzLDcgQEAgY29lcmNlX3Vuc3BlY192YWxfdG9fdHlwZSAoc3Ry dWN0IHZhbHVlICp2YWwsIHN0cnVjdCB0eXBlICp0eXBlKQogIH0KICAKICBzdGF0aWMgY29uc3Qg Z2RiX2J5dGUgKgpAQCAtNTY2LDcgKzU2Niw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcu YyBiL2dkYi9hZGEtbGFuZy5jCiAgewogICAgaWYgKHZhbGFkZHIgPT0gTlVMTCkKICAgICAgcmV0 dXJuIE5VTEw7Ci1AQCAtNzA2LDcgKzcwNyw3IEBAIGNvbmRfb2Zmc2V0X2hvc3QgKGNvbnN0IGdk Yl9ieXRlICp2YWxhZGRyLCBsb25nIG9mZnNldCkKK0BAIC03MDEsNyArNzAyLDcgQEAgY29uZF9v ZmZzZXRfaG9zdCAoY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGxvbmcgb2Zmc2V0KQogIH0KICAK ICBzdGF0aWMgQ09SRV9BRERSCkBAIC02ODQsNyArNjg0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9h ZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAKICAgIHZhbCA9IHZhbHVlX2Nhc3QgKHZhbHVl X3R5cGUgKGNvbXBvbmVudCksIHZhbCk7CiAgCi1AQCAtNDQ2Miw3ICs0NDY0LDcgQEAgZW5zdXJl X2x2YWwgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTQ1MDIsNyArNDUwNCw3IEBAIGVuc3VyZV9s dmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKICAgIGlmIChWQUxVRV9MVkFMICh2YWwpID09IG5vdF9s dmFsCiAgICAgICAgfHwgVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2ludGVybmFsdmFyKQogICAg ICB7CkBAIC02OTMsNyArNjkzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2Ri L2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBDT1JFX0FERFIgYWRkciA9CiAgICAgICAgICB2YWx1 ZV9hc19sb25nICh2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAobGVuKSk7CiAgCi1A QCAtNDU0Niw3ICs0NTQ4LDcgQEAgc3RhdGljIENPUkVfQUREUgorQEAgLTQ1ODYsNyArNDU4OCw3 IEBAIHN0YXRpYyBDT1JFX0FERFIKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVl LCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdl dF90eXBlX2FyY2ggKHR5cGUpOwpAQCAtNzAyLDcgKzcwMiw3IEBAIGRpZmYgLS1naXQgYS9nZGIv YWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCiAgICBnZGJfYnl0ZSAqYnVmID0gKGdkYl9ieXRl ICopIGFsbG9jYSAobGVuKTsKICAgIENPUkVfQUREUiBhZGRyOwogIAotQEAgLTY2NTcsNyArNjY1 OSw3IEBAIHZhbHVlX3RhZ19mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNzIChzdHJ1Y3QgdHlwZSAq dHlwZSwKK0BAIC02Njk0LDcgKzY2OTYsNyBAQCB2YWx1ZV90YWdfZnJvbV9jb250ZW50c19hbmRf YWRkcmVzcyAoc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiBh ZGRyZXNzKQogIHsKQEAgLTcxMSw3ICs3MTEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5n LmMgYi9nZGIvYWRhLWxhbmcuYwogICAgc3RydWN0IHR5cGUgKnRhZ190eXBlOwogIAogICAgaWYg KGZpbmRfc3RydWN0X2ZpZWxkICgiX3RhZyIsIHR5cGUsIDAsICZ0YWdfdHlwZSwgJnRhZ19ieXRl X29mZnNldCwKLUBAIC03MTUwLDcgKzcxNTIsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2 YWwsIHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRfbnVtKQorQEAgLTcxODcsNyArNzE4OSw3 IEBAIGFkYV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwgc3RydWN0IHR5cGUgKnR5cGUsIGludCBm aWVsZF9udW0pCiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFja2VkIHZhbHVlcyBv ZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03MjAs NyArNzIwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAgewog ICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNzE2Miw3ICs3MTY0LDcgQEAgYWRhX3ZhbHVlX3By aW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBpbnQgb2Zmc2V0LCBpbnQgZmllbGRu bywKK0BAIC03MTk5LDcgKzcyMDEsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1 Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsIGludCBmaWVsZG5vLAogIAogICAgaWYgKFRZUEVf RklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxkbm8pICE9IDApCiAgICAgIHsKQEAgLTcyOSw3 ICs3MjksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwog ICAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxk bm8pOwogIAogICAgICAgIHJldHVybiBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKGFy ZzEsIHZhbHVlX2NvbnRlbnRzIChhcmcxKSwKLUBAIC03MjM5LDkgKzcyNDEsOSBAQCBhZGFfdmFs dWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsIGludCBm aWVsZG5vLAorQEAgLTcyNzYsOSArNzI3OCw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQg KHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwgaW50IGZpZWxkbm8sCiAgICAgUmV0dXJu cyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNzQxLDcg Kzc0MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCiAg CQkgICBpbnQgKmluZGV4X3ApCiAgewogICAgaW50IGk7Ci1AQCAtNzI2MCw4ICs3MjYyLDggQEAg ZmluZF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB0eXBlICp0eXBlLCBp bnQgb2Zmc2V0LAorQEAgLTcyOTcsOCArNzI5OSw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChjb25z dCBjaGFyICpuYW1lLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IG9mZnNldCwKICAKICAgIGZvciAo aSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAgIHsKQEAgLTc1Miw3 ICs3NTIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwog ICAgICAgIGNvbnN0IGNoYXIgKnRfZmllbGRfbmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwg aSk7CiAgCiAgICAgICAgaWYgKHRfZmllbGRfbmFtZSA9PSBOVUxMKQotQEAgLTczNjMsNyArNzM2 NSw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNzQwMCw3 ICs3NDAyLDcgQEAgbnVtX3Zpc2libGVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICBs b25nIGV4cGxhbmF0aW9uIGluIGZpbmRfc3RydWN0X2ZpZWxkJ3MgZnVuY3Rpb24gZG9jdW1lbnRh dGlvbi4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NjEsNyArNzYxLDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzQx MSw3ICs3NDEzLDcgQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUs IHN0cnVjdCB2YWx1ZSAqYXJnLCBpbnQgb2Zmc2V0LAorQEAgLTc0NDgsNyArNzQ1MCw3IEBAIGFk YV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFy ZywgaW50IG9mZnNldCwKICAgICAgICAgICAgaW50IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBl ICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwK ICAJCQkJCQkJCQlpKSk7CkBAIC03NzAsNyArNzcwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEt bGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IFRZ UEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0gMSkKICAgICAgICAgICAgICB7Ci1AQCAtNzQ0 Myw4ICs3NDQ1LDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUs IHN0cnVjdCB2YWx1ZSAqYXJnLCBpbnQgb2Zmc2V0LAorQEAgLTc0ODAsOCArNzQ4Miw4IEBAIGFk YV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKmFy ZywgaW50IG9mZnNldCwKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTc4MSw3ICs3ODEsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwogIAogIAogIC8q IFJldHVybiBmaWVsZCAjSU5ERVggaW4gQVJHLCB3aGVyZSB0aGUgaW5kZXggaXMgdGhhdCByZXR1 cm5lZCBieQotQEAgLTc0NTMsNyArNzQ1NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9p bmRleF9zdHJ1Y3RfZmllbGRfMSAoaW50ICosIHN0cnVjdCB2YWx1ZSAqLAorQEAgLTc0OTAsNyAr NzQ5Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAo aW50ICosIHN0cnVjdCB2YWx1ZSAqLAogICAqIElmIGZvdW5kLCByZXR1cm4gdmFsdWUsIGVsc2Ug cmV0dXJuIE5VTEwuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtNzkwLDcgKzc5 MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEtbGFuZy5jCiAgCQkJ c3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIGFkYV9pbmRleF9zdHJ1Y3RfZmllbGRf MSAoJmluZGV4LCBhcmcsIG9mZnNldCwgdHlwZSk7Ci1AQCAtNzQ2NSw3ICs3NDY3LDcgQEAgYWRh X2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1Y3QgdmFsdWUgKmFyZywgaW50IG9m ZnNldCwKK0BAIC03NTAyLDcgKzc1MDQsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQg aW5kZXgsIHN0cnVjdCB2YWx1ZSAqYXJnLCBpbnQgb2Zmc2V0LAogICAqICpJTkRFWF9QLiAgKi8K ICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc5OSw3ICs3OTksNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwogIAkJCSAgc3RydWN0IHR5cGUgKnR5 cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzU1NSw3ICs3NTU3LDggQEAgYWRhX3ZhbHVlX3N0cnVj dF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbm9fZXJyKQor QEAgLTc1OTMsNyArNzU5NSw4IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUg KmFyZywgY29uc3QgY2hhciAqbmFtZSwgaW50IG5vX2VycikKICAgICAgdiA9IGFkYV9zZWFyY2hf c3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7CkBAIC04MDks NyArODA5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMK ICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAgICAgICBDT1JFX0FERFIgYWRkcmVz czsKICAKLUBAIC03ODk5LDggKzc5MDIsOCBAQCBhZGFfY29lcmNlX3JlZiAoc3RydWN0IHZhbHVl ICp2YWwwKQorQEAgLTc5NDIsOCArNzk0NSw4IEBAIGFkYV9jb2VyY2VfcmVmIChzdHJ1Y3QgdmFs dWUgKnZhbDApCiAgLyogUmV0dXJuIE9GRiByb3VuZGVkIHVwd2FyZCBpZiBuZWNlc3NhcnkgdG8g YSBtdWx0aXBsZSBvZgogICAgIEFMSUdOTUVOVCAoYSBwb3dlciBvZiAyKS4gICovCiAgCkBAIC04 MjAsNyArODIwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5n LmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYgfihhbGlnbm1lbnQgLSAx KTsKICB9Ci1AQCAtODI5MCwxMCArODI5Myw5IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNv cmRfdHlwZV8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC04MzMzLDEwICs4MzM2LDkgQEAgYWRh X3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cnVjdCB0eXBlICp0eXBlLAogICAg c3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZh bDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsKQEAgLTgzMyw3ICs4MzMsNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL2FkYS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwogICAgaW50IGY7CiAgCiAgICAvKiBD b21wdXRlIHRoZSBudW1iZXIgb2YgZmllbGRzIGluIHRoaXMgcmVjb3JkIHR5cGUgdGhhdCBhcmUg Z29pbmcKLUBAIC04MzcwLDcgKzgzNzIsNyBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3Jk X3R5cGVfMSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtODQxMyw3ICs4NDE1LDcgQEAgYWRhX3Rl bXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cnVjdCB0eXBlICp0eXBlLAogIAkgICAg IHRoYXQgZm9sbG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWduZXJfdHlwZSAo ZmllbGRfdHlwZSkpCiAgCSAgICB7CkBAIC04NDIsNyArODQyLDcgQEAgZGlmZiAtLWdpdCBhL2dk Yi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRfdmFsYWRkciA9 IGNvbmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAgCSAgICAg IGZpZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxk X29mZnNldCk7Ci1AQCAtODUwNiwxMSArODUwOCwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRf cmVjb3JkX3R5cGVfMSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtODU0OSwxMSArODU1MSwxMSBA QCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RydWN0IHR5cGUgKnR5cGUs CiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDApCiAgICAgIHsKICAgICAgICBpZiAoVFlQ RV9OQU1FIChydHlwZSkpCkBAIC04NTgsNyArODU4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEt bGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAgZWxzZQogICAgICB7Ci1AQCAtODk3 NCw3ICs4OTc2LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBz dHJ1Y3QgdmFsdWUgKmR2YWwsCitAQCAtOTAxNyw3ICs5MDE5LDggQEAgdG9fZml4ZWRfYXJyYXlf dHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLCBzdHJ1Y3QgdmFsdWUgKmR2YWwsCiAgCSB0eXBlIHdh cyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFycmF5IHR5cGUuICBBcyBhIHJlc3VsdCwgdGhlCiAg CSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVtZW50cyBuZWVkcyB0byBiZSBzZXQgYWdhaW4sIGFu ZCB0aGUgYXJyYXkKICAJIGxlbmd0aCBuZWVkcyB0byBiZSByZWNvbXB1dGVkIGJhc2VkIG9uIHRo YXQgYml0c2l6ZS4gICovCkBAIC04ODksNyArODg5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEt bGFuZy5oIGIvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRfYWN0dWFsIChzdHJ1Y3Qg dmFsdWUgKmFjdHVhbCwKLUBAIC0yNjEsNyArMjYxLDcgQEAgZXh0ZXJuIGludCBhZGFfaXNfY29u c3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICopOworQEAgLTI2Myw3ICsy NjMsNyBAQCBleHRlcm4gaW50IGFkYV9pc19jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXlfdHlwZSAo c3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWRhX3ZhbHVlX3ByaW1p dGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCQkgICAgIGNvbnN0IGdkYl9i eXRlICosCkBAIC05MDEsNyArOTAxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5oIGIv Z2RiL2FkYS1sYW5nLmgKIGRpZmYgLS1naXQgYS9nZGIvYWRhLXR5cGVwcmludC5jIGIvZ2RiL2Fk YS10eXBlcHJpbnQuYwogLS0tIGEvZ2RiL2FkYS10eXBlcHJpbnQuYwogKysrIGIvZ2RiL2FkYS10 eXBlcHJpbnQuYwotQEAgLTg5Niw4ICs4OTYsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUwLCBjb25zdCBjaGFyICp2YXJzdHJpbmcsCitAQCAtODkxLDggKzg5MSw4IEBAIGFk YV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywK ICAJICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKICAKICAJICAg IGlmICghYWRhX2lzX3JhbmdlX3R5cGVfbmFtZSAobmFtZSkpCkBAIC05MTIsNyArOTEyLDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9hZGEtdHlwZXByaW50LmMgYi9nZGIvYWRhLXR5cGVwcmludC5jCiAg CSAgICBlbHNlCiAgCSAgICAgIHsKICAJCWZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgInJhbmdl ICIpOwotQEAgLTkxOCw3ICs5MTgsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5 cGUwLCBjb25zdCBjaGFyICp2YXJzdHJpbmcsCitAQCAtOTEzLDcgKzkxMyw4IEBAIGFkYV9wcmlu dF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywKICAJICB9 CiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RFX0ZMVDoKQEAgLTExNDAsNyArMTE0MCw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvYW5ub3RhdGUuaCBiL2dkYi9hbm5vdGF0ZS5oCiBkaWZmIC0t Z2l0IGEvZ2RiL2FyY2gtdXRpbHMuYyBiL2dkYi9hcmNoLXV0aWxzLmMKIC0tLSBhL2dkYi9hcmNo LXV0aWxzLmMKICsrKyBiL2dkYi9hcmNoLXV0aWxzLmMKLUBAIC0yMjgsNyArMjI4LDcgQEAgbGVn YWN5X3ZpcnR1YWxfZnJhbWVfcG9pbnRlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAt MjI3LDcgKzIyNyw3IEBAIGxlZ2FjeV92aXJ0dWFsX2ZyYW1lX3BvaW50ZXIgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLAogIAogIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgogIGRlZmF1bHRf ZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAtMTE2NCw3 ICsxMTY0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9hcmNoLXV0aWxzLmggYi9nZGIvYXJjaC11dGls cy5oCiBkaWZmIC0tZ2l0IGEvZ2RiL2FybS1saW51eC1uYXQuYyBiL2dkYi9hcm0tbGludXgtbmF0 LmMKIC0tLSBhL2dkYi9hcm0tbGludXgtbmF0LmMKICsrKyBiL2dkYi9hcm0tbGludXgtbmF0LmMK LUBAIC0xMDk4LDcgKzEwOTgsNyBAQCBhcm1fbGludXhfbmF0X3RhcmdldDo6cmVtb3ZlX2h3X2Jy ZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTEwOTYsNyArMTA5Niw3IEBA IGFybV9saW51eF9uYXRfdGFyZ2V0OjpyZW1vdmVfaHdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsCiAgLyogQXJlIHdlIGFibGUgdG8gdXNlIGEgaGFyZHdhcmUgd2F0Y2hwb2lu dCBmb3IgdGhlIExFTiBieXRlcyBzdGFydGluZyBhdCAKICAgICBBRERSPyAgKi8KICBpbnQKQEAg LTEyOTksNyArMTI5OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYXguaCBiL2dkYi9heC5oCiBkaWZm IC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50LmMKIC0tLSBhL2dkYi9i cmVha3BvaW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50LmMKLUBAIC0yMDUzLDkgKzIwNTMsOSBA QCBzaG91bGRfYmVfaW5zZXJ0ZWQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYmwpCitAQCAtMjA1Nyw5 ICsyMDU3LDkgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsKQog IAl7CiAgCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAogIAkJCSAgICAgICJpbmZy dW46IHN0ZXBwaW5nIHBhc3Qgbm9uLXN0ZXBwYWJsZSB3YXRjaHBvaW50LiAiCkBAIC0xMzExLDcg KzEzMTEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVha3BvaW50 LmMKICAJfQogICAgICAgIHJldHVybiAwOwogICAgICB9Ci1AQCAtNjgxNiw3ICs2ODE2LDcgQEAg YnJlYWtwb2ludF9hZGRyZXNzX21hdGNoIChjb25zdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBD T1JFX0FERFIgYWRkcjEsCitAQCAtNjgwNSw3ICs2ODA1LDcgQEAgYnJlYWtwb2ludF9hZGRyZXNz X21hdGNoIChjb25zdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBDT1JFX0FERFIgYWRkcjEsCiAg c3RhdGljIGludAogIGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZSAoY29uc3QgYWRkcmVz c19zcGFjZSAqYXNwYWNlMSwKICAJCQkJQ09SRV9BRERSIGFkZHIxLApAQCAtMTMyMCw3ICsxMzIw LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCiAg CQkJCUNPUkVfQUREUiBhZGRyMikKICB7CiAgICByZXR1cm4gKChnZGJhcmNoX2hhc19nbG9iYWxf YnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoICgpKQotQEAgLTEwODk5LDcgKzEwODk5LDcgQEAg Y2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChjb25zdCBzdGQ6OnZlY3Rvcjx2YWx1ZV9yZWZf cHRyPiAmdmFscykKK0BAIC0xMDg4Nyw3ICsxMDg4Nyw3IEBAIGNhbl91c2VfaGFyZHdhcmVfd2F0 Y2hwb2ludCAoY29uc3Qgc3RkOjp2ZWN0b3I8dmFsdWVfcmVmX3B0cj4gJnZhbHMpCiAgCQkgICAg ICAmJiBUWVBFX0NPREUgKHZ0eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQogIAkJewogIAkJICBD T1JFX0FERFIgdmFkZHIgPSB2YWx1ZV9hZGRyZXNzICh2KTsKQEAgLTE0NDUsNyArMTQ0NSw3IEBA IGRpZmYgLS1naXQgYS9nZGIvYy12YWxwcmludC5jIGIvZ2RiL2MtdmFscHJpbnQuYwogZGlmZiAt LWdpdCBhL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMgYi9nZGIvY29tcGlsZS9jb21w aWxlLWMtc3VwcG9ydC5jCiAtLS0gYS9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiAr KysgYi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCi1AQCAtMzA3LDExICszMDcsMTEg QEAgZ2VuZXJhdGVfcmVnaXN0ZXJfc3RydWN0IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0yNzAsMTEgKzI3MCwxMSBAQCBnZW5lcmF0ZV9yZWdp c3Rlcl9zdHJ1Y3QgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLAogIAogIAkgICAgICBkZWZhdWx0OgogIAkJZnByaW50Zl91bmZpbHRlcmVkIChzdHJlYW0s CkBAIC0xNTcxLDcgKzE1NzEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2QtdmFscHJpbnQuYyBiL2dk Yi9kLXZhbHByaW50LmMKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYy bG9jLmMKIC0tLSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5jCi1AQCAt MTgxNyw3ICsxODE3LDcgQEAgcndfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVj dCB2YWx1ZSAqZnJvbSkKK0BAIC0xODU1LDcgKzE4NTUsNyBAQCByd19waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdiwgc3RydWN0IHZhbHVlICpmcm9tKQogICAgZm9yICg7IGkgPCBjLT5waWVj ZXMuc2l6ZSAoKSAmJiBvZmZzZXQgPCBtYXhfb2Zmc2V0OyBpKyspCiAgICAgIHsKICAgICAgICBz dHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNTgwLDcgKzE1 ODAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCiAg CiAgICAgICAgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplIC0gYml0c190b19za2lwOwogICAgICAg IGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQpCi1AQCAtMjA2NCw3ICsy MDY0LDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFs dWUgKmZyb20pCitAQCAtMjEwMiw3ICsyMTAyLDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1 Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCiAgCiAgc3RhdGljIGludAogIGNoZWNr X3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9O R0VTVCBiaXRfb2Zmc2V0LApAQCAtMTU4OSw3ICsxNTg5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9k d2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwogIHsKICAgIHN0cnVjdCBwaWVjZV9jbG9zdXJl ICpjCiAgICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1 cmUgKHZhbHVlKTsKLUBAIC0yMDc3LDcgKzIwNzcsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGlj X3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwK K0BAIC0yMTE1LDcgKzIxMTUsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwKICAgIGZvciAoaSA9 IDA7IGkgPCBjLT5waWVjZXMuc2l6ZSAoKSAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAgICB7 CiAgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAt MTU5OCw3ICsxNTk4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2Fy ZjJsb2MuYwogIAogICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIxNzksOCAr MjE3OSw4IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSkKK0BA IC0yMjE5LDggKzIyMTksOCBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUpCiAgICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Ns b3N1cmUgKHZhbHVlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZyYW1lX2lu Zm8gKmZyYW1lOwpAQCAtMTYwOSw3ICsxNjA5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJs b2MuYyBiL2dkYi9kd2FyZjJsb2MuYwogICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnBpZWNl ID0gTlVMTDsKICAgIExPTkdFU1QgYnl0ZV9vZmZzZXQ7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlcjsKLUBAIC0yMTk3LDcgKzIxOTcsNyBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUpCitAQCAtMjIzNyw3ICsyMjM3LDcgQEAgaW5kaXJlY3RfcGllY2Vk X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogICAgZm9yIChpID0gMDsgaSA8IGMtPnBpZWNl cy5zaXplICgpICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg ZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNjE4LDcgKzE2MTgsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICAg ICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjQ4Niw5ICsyNDg2LDkgQEAgaWYgKGZy YW1lICE9IE5VTEwpIHNlbGVjdF9mcmFtZSAoZnJhbWUpOworQEAgLTI1MjYsOSArMjUyNiw5IEBA IGlmIChmcmFtZSAhPSBOVUxMKSBzZWxlY3RfZnJhbWUgKGZyYW1lKTsKICAJY2FzZSBEV0FSRl9W QUxVRV9TVEFDSzoKICAJICB7CiAgCSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gY3R4LmZldGNo ICgwKTsKQEAgLTE2MzQsNyArMTYzNCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmMg Yi9nZGIvZHdhcmYybG9jLmMKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3 YXJmMnJlYWQuYwogLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwogKysrIGIvZ2RiL2R3YXJmMnJlYWQu YwotQEAgLTIwMjEsMTEgKzIwMjEsMTEgQEAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9j b21wbGFpbnQgKHZvaWQpCitAQCAtMjAzMSwxMSArMjAzMSwxMSBAQCBkd2FyZjJfY29tcGxleF9s b2NhdGlvbl9leHByX2NvbXBsYWludCAodm9pZCkKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTE2 NTAsNyArMTY1MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJm MnJlYWQuYwogIH0KICAKICBzdGF0aWMgdm9pZAotQEAgLTE0OTQ5LDggKzE0OTQ5LDggQEAgZHdh cmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpk aWUsCitAQCAtMTUwNzcsOCArMTUwNzcsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmll bGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJICAgICAgICAgb2JqZWN0LCBh bmQgdGhlbiBzdWJ0cmFjdCBvZmYgdGhlIG51bWJlciBvZiBiaXRzIG9mCiAgCSAgICAgICAgIHRo ZSBmaWVsZCBpdHNlbGYuICBUaGUgcmVzdWx0IGlzIHRoZSBiaXQgb2Zmc2V0IG9mCiAgCSAgICAg ICAgIHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgKi8KQEAgLTE2ODMsNyArMTY4Myw3IEBAIGRpZmYg LS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwogIAogICAgaWYgKGV4cC0+ZWx0c1sqcG9z XS5vcGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsKLUBAIC04MDAsMTEgKzgwMSwxMSBAQCBi aW5vcF9wcm9tb3RlIChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UsIHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTc5OSwxMSArODAwLDExIEBAIGJpbm9wX3Byb21vdGUg KGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSwgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCiAgICAgIC8qIEZJWE1FOiBBbHNvIG1peGVkIGludGVncmFsL2Jvb2xlYW5zLCB3aXRo IHJlc3VsdCBhbiBpbnRlZ2VyLiAgKi8KICAgICAgewogICAgICAgIGNvbnN0IHN0cnVjdCBidWls dGluX3R5cGUgKmJ1aWx0aW4gPSBidWlsdGluX3R5cGUgKGdkYmFyY2gpOwpAQCAtMTY5OCw3ICsx Njk4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCiAgICAgICAgaW50 IHVuc2lnbmVkX29wZXJhdGlvbjsKICAKICAgICAgICAvKiBEZXRlcm1pbmUgdHlwZSBsZW5ndGgg YW5kIHNpZ25lZG5lc3MgYWZ0ZXIgcHJvbW90aW9uIGZvcgotQEAgLTE1NDYsNyArMTU0Nyw3IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAg LTE1NDksNyArMTU1MCw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUg KmV4cGVjdF90eXBlLAogICAgc3RydWN0IHZhbHVlICoqYXJndmVjOwogICAgaW50IGNvZGU7CiAg ICBpbnQgaXg7CkBAIC0xNzA3LDcgKzE3MDcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBi L2dkYi9ldmFsLmMKICAgIHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzOwogIAogICAgcGMgPSAoKnBv cykrKzsKLUBAIC0xNzI5LDcgKzE3MzAsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0 cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xNzMyLDcgKzE3MzMsNyBAQCBldmFsdWF0ZV9z dWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICBzdHJ1Y3QgdHlw ZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHR5cGUg KmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwogIAkgIHN0cnVjdCB2YWx1 ZSAqYXJyYXkgPSBhbGxvY2F0ZV92YWx1ZSAoZXhwZWN0X3R5cGUpOwpAQCAtMTgwMiw3ICsxODAy LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9mLXZhbHByaW50LmMgYi9nZGIvZi12YWxwcmludC5jCiBk aWZmIC0tZ2l0IGEvZ2RiL2ZpbmR2YXIuYyBiL2dkYi9maW5kdmFyLmMKIC0tLSBhL2dkYi9maW5k dmFyLmMKICsrKyBiL2dkYi9maW5kdmFyLmMKLUBAIC04MjEsNyArODIxLDcgQEAgc3RydWN0IHZh bHVlICoKK0BAIC04MjMsNyArODIzLDcgQEAgc3RydWN0IHZhbHVlICoKICBkZWZhdWx0X3ZhbHVl X2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0sIHN0cnVjdCBmcmFt ZV9pZCBmcmFtZV9pZCkKICB7CkBAIC0xODExLDcgKzE4MTEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2Ri L2ZpbmR2YXIuYyBiL2dkYi9maW5kdmFyLmMKICAgIHN0cnVjdCB2YWx1ZSAqdmFsdWUgPSBhbGxv Y2F0ZV92YWx1ZSAodHlwZSk7CiAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWU7CiAgCi1AQCAt ODY1LDcgKzg2NSw3IEBAIHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKK0BAIC04NjcsNyArODY3LDcgQEAgcmVh ZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lKQogICAgTE9OR0VTVCBvZmZzZXQgPSAwOwogICAgTE9OR0VTVCByZWdfb2Zm c2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7CiAgICBpbnQgcmVnbnVtID0gVkFMVUVfUkVHTlVN ICh2YWx1ZSk7CkBAIC0xODIwLDcgKzE4MjAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2ZpbmR2YXIu YyBiL2dkYi9maW5kdmFyLmMKICAKICAgIGdkYl9hc3NlcnQgKFZBTFVFX0xWQUwgKHZhbHVlKSA9 PSBsdmFsX3JlZ2lzdGVyKTsKICAKLUBAIC04ODAsNyArODgwLDcgQEAgcmVhZF9mcmFtZV9yZWdp c3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l KQorQEAgLTg4Miw3ICs4ODIsNyBAQCByZWFkX2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnZhbHVlLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCiAgICB3aGlsZSAobGVuID4g MCkKICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqcmVndmFsID0gZ2V0X2ZyYW1lX3JlZ2lz dGVyX3ZhbHVlIChmcmFtZSwgcmVnbnVtKTsKQEAgLTE4MzIsNyArMTgzMiw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvZmluZHZhci5jIGIvZ2RiL2ZpbmR2YXIuYwogZGlmZiAtLWdpdCBhL2dkYi9mcmFt ZS5jIGIvZ2RiL2ZyYW1lLmMKIC0tLSBhL2dkYi9mcmFtZS5jCiArKysgYi9nZGIvZnJhbWUuYwot QEAgLTEzOTYsNyArMTM5Niw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAorQEAgLTEzOTgsNyArMTM5OCw3IEBA IGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l LCBpbnQgcmVnbnVtLAogIAogIGludAogIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0 IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLApAQCAtMTg0MSw3ICsxODQxLDcgQEAgZGlm ZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2ZyYW1lLmMKICAJCQkgIGludCAqb3B0aW1pemVk cCwgaW50ICp1bmF2YWlsYWJsZXApCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBn ZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotQEAgLTE0MjUsNyArMTQyNSw3IEBAIGdldF9mcmFtZV9y ZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAorQEAg LTE0MjcsNyArMTQyNyw3IEBAIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAogICAgICB9CiAgICBpZiAobGVuID4gbWF4c2l6ZSkK ICAgICAgZXJyb3IgKF8oIkJhZCBkZWJ1ZyBpbmZvcm1hdGlvbiBkZXRlY3RlZDogIgpAQCAtMTg3 Nyw3ICsxODc3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJhcmNoLmMgYi9nZGIvZ2RiYXJjaC5j CiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYmFyY2guaCBiL2dkYi9nZGJhcmNoLmgKIC0tLSBhL2dkYi9n ZGJhcmNoLmgKICsrKyBiL2dkYi9nZGJhcmNoLmgKLUBAIC0xOTMsOCArMTkzLDggQEAgZXh0ZXJu IHZvaWQgc2V0X2dkYmFyY2hfd2NoYXJfc2lnbmVkIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwg aW50IHdjaGFyX3NpZ25lZCkKK0BAIC0xOTUsOCArMTk1LDggQEAgZXh0ZXJuIHZvaWQgc2V0X2dk YmFyY2hfd2NoYXJfc2lnbmVkIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgaW50IHdjaGFyX3Np Z25lZCkKICAgICBOQU1FLCBpZiBub24tTlVMTCwgaXMgdGhlIHR5cGUgbmFtZSwgd2hpY2ggbWF5 IGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2gKICAgICBkaWZmZXJlbnQgdGFyZ2V0IGZvcm1hdHMgb2Yg dGhlIHNhbWUgbGVuZ3RoLiAqLwogIApAQCAtMTkwMyw3ICsxOTAzLDcgQEAgZGlmZiAtLWdpdCBh L2dkYi9nZGJhcmNoLnNoIGIvZ2RiL2dkYmFyY2guc2gKIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlw ZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAtLS0gYS9nZGIvZ2RidHlwZXMuYwogKysrIGIvZ2RiL2dk YnR5cGVzLmMKLUBAIC0yOTA2LDcgKzI5MDYsNyBAQCBmbG9hdGZvcm1hdF9mcm9tX3R5cGUgKGNv bnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTI5MTUsNyArMjkxNSw3IEBAIGZsb2F0Zm9ybWF0 X2Zyb21fdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCiAgICAgbGVhc3QgYXMgbG9uZyBh cyBPQkpGSUxFLiAgKi8KICAKICBzdHJ1Y3QgdHlwZSAqCkBAIC0xOTEyLDcgKzE5MTIsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogIAkgICBjb25zdCBj aGFyICpuYW1lKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwotQEAgLTMzNjAsOCArMzM2MCw4 IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB0eXBlICpk Y2xhc3MpCitAQCAtMzM2OSw4ICszMzY5LDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3Qg dHlwZSAqYmFzZSwgc3RydWN0IHR5cGUgKmRjbGFzcykKICAKICBzdGF0aWMgaW50CiAgaXNfdW5p cXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB0eXBlICpkY2xh c3MsCkBAIC0xOTIzLDcgKzE5MjMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9n ZGIvZ2RidHlwZXMuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZh bCkKICB7CiAgICBpbnQgaSwgY291bnQgPSAwOwotQEAgLTMzNzIsNyArMzM3Miw3IEBAIGlzX3Vu aXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNs YXNzLAorQEAgLTMzODEsNyArMzM4MSw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0 cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLAogICAgZm9yIChpID0gMDsgaSA8 IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNsYXNzKSAmJiBjb3VudCA8IDI7ICsraSkKICAgICAgewog ICAgICAgIHN0cnVjdCB0eXBlICppdGVyOwpAQCAtMTkzMiw3ICsxOTMyLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKICAKICAgICAgICBpdGVyID0gY2hl Y2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKGRjbGFzcywgaSkpOwogIAotQEAgLTM0MTMsNyAr MzQxMyw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBz dHJ1Y3QgdHlwZSAqZGNsYXNzLAorQEAgLTM0MjIsNyArMzQyMiw3IEBAIGlzX3VuaXF1ZV9hbmNl c3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLAogIGlu dAogIGlzX3VuaXF1ZV9hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHN0cnVjdCB2YWx1ZSAq dmFsKQogIHsKQEAgLTE5NDEsNyArMTk0MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMu YyBiL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICByZXR1cm4gaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtl ciAoYmFzZSwgdmFsdWVfdHlwZSAodmFsKSwgJm9mZnNldCwKICAJCQkJICAgIHZhbHVlX2NvbnRl bnRzX2Zvcl9wcmludGluZyAodmFsKSwKLUBAIC00NjQyLDcgKzQ2NDIsNyBAQCByZWN1cnNpdmVf ZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHNwYWNlcykKK0BAIC00NjUxLDcgKzQ2 NTEsNyBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHNwYWNl cykKICAgICAgICBicmVhazsKICAgICAgfQogICAgcHV0c19maWx0ZXJlZCAoIlxuIik7CkBAIC0x OTUwLDcgKzE5NTAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlw ZXMuYwogICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlwZSkpCiAgICAgIHsKICAgICAgICBw cmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIpOwotQEAgLTUwODUsNyArNTA4NSw3 IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNTA5Niw3ICs1MDk2 LDcgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICAKICBzdHJ1Y3QgdHlw ZSAqCiAgYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKQEAgLTE5NjIsNyArMTk2 Miw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiBkaWZm IC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAogLS0tIGEvZ2RiL2dkYnR5 cGVzLmgKICsrKyBiL2dkYi9nZGJ0eXBlcy5oCi1AQCAtODYyLDcgKzg2Miw3IEBAIHN0cnVjdCB0 eXBlCitAQCAtODYzLDcgKzg2Myw3IEBAIHN0cnVjdCB0eXBlCiAgICAgICB0eXBlX2xlbmd0aF91 bml0cyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCBpbiBvcmRlciB0byBnZXQgdGhlIGxlbmd0aAog ICAgICAgZXhwcmVzc2VkIGluIHRhcmdldCBhZGRyZXNzYWJsZSBtZW1vcnkgdW5pdHMuICAqLwog IApAQCAtMTk3MSw3ICsxOTcxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2Ri L2dkYnR5cGVzLmgKICAKICAgIC8qICogQ29yZSB0eXBlLCBzaGFyZWQgYnkgYSBncm91cCBvZiBx dWFsaWZpZWQgdHlwZXMuICAqLwogIAotQEAgLTE3ODMsNyArMTc4Myw3IEBAIGV4dGVybiB1bnNp Z25lZCBpbnQgdHlwZV9sZW5ndGhfdW5pdHMgKHN0cnVjdCB0eXBlICp0eXBlKTsKK0BAIC0xNzkw LDcgKzE3OTAsNyBAQCBleHRlcm4gdW5zaWduZWQgaW50IHR5cGVfbGVuZ3RoX3VuaXRzIChzdHJ1 Y3QgdHlwZSAqdHlwZSk7CiAgCiAgLyogKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9i amZpbGUtb3duZWQgdHlwZXMuICAqLwogIApAQCAtMTk4MCw3ICsxOTgwLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKICAJCQkgICAgICAgY29uc3QgY2hh ciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmluaXRfaW50ZWdlcl90eXBlIChzdHJ1Y3Qgb2Jq ZmlsZSAqLCBpbnQsIGludCwKICAJCQkJICAgICAgIGNvbnN0IGNoYXIgKik7Ci1AQCAtMTgwMCw3 ICsxODAwLDcgQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICppbml0X3BvaW50ZXJfdHlwZSAoc3RydWN0 IG9iamZpbGUgKiwgaW50LCBjb25zdCBjaGFyICosCitAQCAtMTgwNyw3ICsxODA3LDcgQEAgZXh0 ZXJuIHN0cnVjdCB0eXBlICppbml0X3BvaW50ZXJfdHlwZSAoc3RydWN0IG9iamZpbGUgKiwgaW50 LCBjb25zdCBjaGFyICosCiAgCQkJCSAgICAgICBzdHJ1Y3QgdHlwZSAqKTsKICAKICAvKiBIZWxw ZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBhcmNoaXRlY3R1cmUtb3duZWQgdHlwZXMuICAqLwpA QCAtMjEyMiw3ICsyMTIyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nby12YWxwcmludC5jIGIvZ2Ri L2dvLXZhbHByaW50LmMKIGRpZmYgLS1naXQgYS9nZGIvaTM4Ni10ZGVwLmMgYi9nZGIvaTM4Ni10 ZGVwLmMKIC0tLSBhL2dkYi9pMzg2LXRkZXAuYwogKysrIGIvZ2RiL2kzODYtdGRlcC5jCi1AQCAt ODE1Myw3ICs4MTUzLDcgQEAgaTM4Nl9mYXN0X3RyYWNlcG9pbnRfdmFsaWRfYXQgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYWRkciwKK0BAIC04MTU1LDcgKzgxNTUsNyBAQCBp Mzg2X2Zhc3RfdHJhY2Vwb2ludF92YWxpZF9hdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENP UkVfQUREUiBhZGRyLAogIAogIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgogIGkzODZfZmxv YXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAtMjM2MCw3ICsy MzYwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9tZW1yYW5nZS5oIGIvZ2RiL21lbXJhbmdlLmgKIGRp ZmYgLS1naXQgYS9nZGIvbWlwcy1saW51eC1uYXQuYyBiL2dkYi9taXBzLWxpbnV4LW5hdC5jCiAt LS0gYS9nZGIvbWlwcy1saW51eC1uYXQuYwogKysrIGIvZ2RiL21pcHMtbGludXgtbmF0LmMKLUBA IC02MTQsNyArNjE0LDcgQEAgbWlwc19saW51eF9uYXRfdGFyZ2V0OjpzdG9wcGVkX2RhdGFfYWRk cmVzcyAoQ09SRV9BRERSICpwYWRkcikKK0BAIC02MTAsNyArNjEwLDcgQEAgbWlwc19saW51eF9u YXRfdGFyZ2V0OjpzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICpwYWRkcikKICAgICB0 aGUgc3BlY2lmaWVkIHJlZ2lvbiBjYW4gYmUgY292ZXJlZCBieSB0aGUgd2F0Y2ggcmVnaXN0ZXJz LiAgKi8KICAKICBpbnQKQEAgLTI1NzcsNyArMjU3Nyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcC12 YWxwcmludC5jIGIvZ2RiL3AtdmFscHJpbnQuYwogZGlmZiAtLWdpdCBhL2dkYi9wcGMtbGludXgt bmF0LmMgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCiAtLS0gYS9nZGIvcHBjLWxpbnV4LW5hdC5jCiAr KysgYi9nZGIvcHBjLWxpbnV4LW5hdC5jCi1AQCAtMTMwOCw3ICsxMzA4LDcgQEAgcHBjX2xpbnV4 X25hdF90YXJnZXQ6OmNhbl91c2VfaHdfYnJlYWtwb2ludCAoZW51bSBicHR5cGUgdHlwZSwgaW50 IGNudCwgaW50IG90KQorQEAgLTEzMDAsNyArMTMwMCw3IEBAIHBwY19saW51eF9uYXRfdGFyZ2V0 OjpjYW5fdXNlX2h3X2JyZWFrcG9pbnQgKGVudW0gYnB0eXBlIHR5cGUsIGludCBjbnQsIGludCBv dCkKICB9CiAgCiAgaW50CkBAIC0yNjIyLDcgKzI2MjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3By aW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYwogZGlmZiAtLWdpdCBhL2dkYi9wcm9jZnMuYyBiL2dk Yi9wcm9jZnMuYwogLS0tIGEvZ2RiL3Byb2Nmcy5jCiArKysgYi9nZGIvcHJvY2ZzLmMKLUBAIC0z MzU4LDcgKzMzNTgsNyBAQCBwcm9jZnNfdGFyZ2V0OjpyZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9B RERSIGFkZHIsIGludCBsZW4sCitAQCAtMzM2MSw3ICszMzYxLDcgQEAgcHJvY2ZzX3RhcmdldDo6 cmVtb3ZlX3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLAogIH0KICAKICBpbnQK QEAgLTI2OTEsNyArMjY5MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcmVnY2FjaGUuYyBiL2dkYi9y ZWdjYWNoZS5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3JlZ2NhY2hlLmggYi9nZGIvcmVnY2FjaGUuaAog LS0tIGEvZ2RiL3JlZ2NhY2hlLmgKICsrKyBiL2dkYi9yZWdjYWNoZS5oCi1AQCAtMjQ0LDggKzI0 NCw4IEBAIHB1YmxpYzoKK0BAIC0yNTYsOCArMjU2LDggQEAgcHVibGljOgogICAgZW51bSByZWdp c3Rlcl9zdGF0dXMgcmF3X3JlYWQgKGludCByZWdudW0sIFQgKnZhbCk7CiAgCiAgICAvKiBQYXJ0 aWFsIHRyYW5zZmVyIG9mIHJhdyByZWdpc3RlcnMuICBSZXR1cm4gdGhlIHN0YXR1cyBvZiB0aGUg cmVnaXN0ZXIuICAqLwpAQCAtMjcwMiw3ICsyNzAyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9yZWdj YWNoZS5oIGIvZ2RiL3JlZ2NhY2hlLmgKICAKICAgIC8qIE1ha2UgY2VydGFpbiB0aGF0IHRoZSBy ZWdpc3RlciBSRUdOVU0gaXMgdXAtdG8tZGF0ZS4gICovCiAgICB2aXJ0dWFsIHZvaWQgcmF3X3Vw ZGF0ZSAoaW50IHJlZ251bSkgPSAwOwotQEAgLTI1Nyw4ICsyNTcsOCBAQCBwdWJsaWM6CitAQCAt MjY5LDggKzI2OSw4IEBAIHB1YmxpYzoKICAgIGVudW0gcmVnaXN0ZXJfc3RhdHVzIGNvb2tlZF9y ZWFkIChpbnQgcmVnbnVtLCBUICp2YWwpOwogIAogICAgLyogUGFydGlhbCB0cmFuc2ZlciBvZiBh IGNvb2tlZCByZWdpc3Rlci4gICovCkBAIC0yNzEzLDcgKzI3MTMsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL3JlZ2NhY2hlLmggYi9nZGIvcmVnY2FjaGUuaAogIAogICAgLyogUmVhZCByZWdpc3RlciBS RUdOVU0gZnJvbSB0aGUgcmVnY2FjaGUgYW5kIHJldHVybiBhIG5ldyB2YWx1ZS4gIFRoaXMKICAg ICAgIHdpbGwgY2FsbCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIGFzIGFwcHJvcHJpYXRl LiAgKi8KLUBAIC0yNjgsNyArMjY4LDcgQEAgcHJvdGVjdGVkOgorQEAgLTI4MCw3ICsyODAsNyBA QCBwcm90ZWN0ZWQ6CiAgCiAgICAvKiBQZXJmb3JtIGEgcGFydGlhbCByZWdpc3RlciB0cmFuc2Zl ciB1c2luZyBhIHJlYWQsIG1vZGlmeSwgd3JpdGUKICAgICAgIG9wZXJhdGlvbi4gIFdpbGwgZmFp bCBpZiByZWdpc3RlciBpcyBjdXJyZW50bHkgaW52YWxpZC4gICovCkBAIC0yNzIyLDcgKzI3MjIs NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlZ2NhY2hlLmggYi9nZGIvcmVnY2FjaGUuaAogIAkJCQkg IGdkYl9ieXRlICpvdXQsIGJvb2wgaXNfcmF3KTsKICB9OwogIAotQEAgLTMyNiwxMSArMzI2LDEy IEBAIHB1YmxpYzoKK0BAIC0zMzgsMTEgKzMzOCwxMiBAQCBwdWJsaWM6CiAgCiAgICAvKiBQYXJ0 aWFsIHRyYW5zZmVyIG9mIHJhdyByZWdpc3RlcnMuICBQZXJmb3JtIHJlYWQsIG1vZGlmeSwgd3Jp dGUgc3R5bGUKICAgICAgIG9wZXJhdGlvbnMuICAqLwpAQCAtMjczNyw3ICsyNzM3LDcgQEAgZGlm ZiAtLWdpdCBhL2dkYi9yZWdjYWNoZS5oIGIvZ2RiL3JlZ2NhY2hlLmgKICAJCQkgIGNvbnN0IGdk Yl9ieXRlICpidWYpOwogIAogICAgdm9pZCBzdXBwbHlfcmVnc2V0IChjb25zdCBzdHJ1Y3QgcmVn c2V0ICpyZWdzZXQsCi1AQCAtMzgxLDcgKzM4Miw3IEBAIHByaXZhdGU6CitAQCAtMzkzLDcgKzM5 NCw3IEBAIHByaXZhdGU6CiAgCiAgICAvKiBQZXJmb3JtIGEgcGFydGlhbCByZWdpc3RlciB0cmFu c2ZlciB1c2luZyBhIHJlYWQsIG1vZGlmeSwgd3JpdGUKICAgICAgIG9wZXJhdGlvbi4gICovCkBA IC0yNzU4LDcgKzI3NTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2RiL3JlbW90 ZS5jCiAgCiAgICBpbnQgaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiwgaW50LCBlbnVtIHRh cmdldF9od19icF90eXBlLAogIAkJCSBzdHJ1Y3QgZXhwcmVzc2lvbiAqKSBvdmVycmlkZTsKLUBA IC0xMDQxMyw3ICsxMDQxMyw3IEBAIGludCByZW1vdGVfaHdfd2F0Y2hwb2ludF9sZW5ndGhfbGlt aXQgPSAtMTsKK0BAIC0xMDQ0Niw3ICsxMDQ0Niw3IEBAIGludCByZW1vdGVfaHdfd2F0Y2hwb2lu dF9sZW5ndGhfbGltaXQgPSAtMTsKICBpbnQgcmVtb3RlX2h3X2JyZWFrcG9pbnRfbGltaXQgPSAt MTsKICAKICBpbnQKQEAgLTI3NzAsNyArMjc3MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcmVtb3Rl LmMgYi9nZGIvcmVtb3RlLmMKIGRpZmYgLS1naXQgYS9nZGIvcnVzdC1sYW5nLmMgYi9nZGIvcnVz dC1sYW5nLmMKIC0tLSBhL2dkYi9ydXN0LWxhbmcuYwogKysrIGIvZ2RiL3J1c3QtbGFuZy5jCi1A QCAtMjg4LDcgKzI4OCw3IEBAIHJ1c3RfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCitAQCAtMzAxLDcgKzMwMSw3IEBAIHJ1c3RfcHJp bnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0p CiAgCiAgc3RhdGljIHZvaWQKICBydXN0X3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI3NzksNyArMjc3OSw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvcnVzdC1sYW5nLmMgYi9nZGIvcnVzdC1sYW5nLmMKICAJICAgICAgIGNvbnN0IGNoYXIgKnVz ZXJfZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC00OTcsNyArNDk3LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZWNvcmF0aW9ucyBydXN0X2RlY29y YXRpb25zID0KK0BAIC01MTcsNyArNTE3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmlj X3ZhbF9wcmludF9kZWNvcmF0aW9ucyBydXN0X2RlY29yYXRpb25zID0KICAvKiBsYV92YWxfcHJp bnQgaW1wbGVtZW50YXRpb24gZm9yIFJ1c3QuICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0yNzkx LDcgKzI3OTEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFu Zy5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3MzOTAtbGludXgtbmF0LmMgYi9nZGIvczM5MC1saW51eC1u YXQuYwogLS0tIGEvZ2RiL3MzOTAtbGludXgtbmF0LmMKICsrKyBiL2dkYi9zMzkwLWxpbnV4LW5h dC5jCi1AQCAtOTUyLDcgKzk1Miw4IEBAIHMzOTBfbGludXhfbmF0X3RhcmdldDo6cmVtb3ZlX2h3 X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTk1MSw3ICs5NTEsOCBA QCBzMzkwX2xpbnV4X25hdF90YXJnZXQ6OnJlbW92ZV9od19icmVha3BvaW50IChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKICB9CiAgCiAgaW50CkBAIC0yODg0LDggKzI4ODQsOCBAQCBkaWZmIC0t Z2l0IGEvZ2RiL3N5bW1pc2MuYyBiL2dkYi9zeW1taXNjLmMKIGRpZmYgLS1naXQgYS9nZGIvdGFy Z2V0LWRlbGVnYXRlcy5jIGIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogLS0tIGEvZ2RiL3Rhcmdl dC1kZWxlZ2F0ZXMuYwogKysrIGIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwotQEAgLTM5LDcgKzM5 LDcgQEAgc3RydWN0IGR1bW15X3RhcmdldCA6IHB1YmxpYyB0YXJnZXRfb3BzCi0gICBib29sIGhh dmVfY29udGludWFibGVfd2F0Y2hwb2ludCAoKSBvdmVycmlkZTsKK0BAIC0zOCw3ICszOCw3IEBA IHN0cnVjdCBkdW1teV90YXJnZXQgOiBwdWJsaWMgdGFyZ2V0X29wcworICAgaW50IGhhdmVfc3Rl cHBhYmxlX3dhdGNocG9pbnQgKCkgb3ZlcnJpZGU7CiAgICBib29sIHN0b3BwZWRfZGF0YV9hZGRy ZXNzIChDT1JFX0FERFIgKmFyZzApIG92ZXJyaWRlOwogICAgYm9vbCB3YXRjaHBvaW50X2FkZHJf d2l0aGluX3JhbmdlIChDT1JFX0FERFIgYXJnMCwgQ09SRV9BRERSIGFyZzEsIGludCBhcmcyKSBv dmVycmlkZTsKIC0gIGludCByZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBh cmcwLCBpbnQgYXJnMSkgb3ZlcnJpZGU7CkBAIC0yODkzLDggKzI4OTMsOCBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICAgIGJv b2wgY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uIChDT1JFX0FERFIgYXJnMCwgaW50IGFy ZzEsIGludCBhcmcyLCBzdHJ1Y3QgZXhwcmVzc2lvbiAqYXJnMykgb3ZlcnJpZGU7CiAgICBpbnQg bWFza2VkX3dhdGNoX251bV9yZWdpc3RlcnMgKENPUkVfQUREUiBhcmcwLCBDT1JFX0FERFIgYXJn MSkgb3ZlcnJpZGU7CiAgICBpbnQgY2FuX2RvX3NpbmdsZV9zdGVwICgpIG92ZXJyaWRlOwotQEAg LTIwNyw3ICsyMDcsNyBAQCBzdHJ1Y3QgZGVidWdfdGFyZ2V0IDogcHVibGljIHRhcmdldF9vcHMK LSAgIGJvb2wgaGF2ZV9jb250aW51YWJsZV93YXRjaHBvaW50ICgpIG92ZXJyaWRlOworQEAgLTIw NSw3ICsyMDUsNyBAQCBzdHJ1Y3QgZGVidWdfdGFyZ2V0IDogcHVibGljIHRhcmdldF9vcHMKKyAg IGludCBoYXZlX3N0ZXBwYWJsZV93YXRjaHBvaW50ICgpIG92ZXJyaWRlOwogICAgYm9vbCBzdG9w cGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICphcmcwKSBvdmVycmlkZTsKICAgIGJvb2wgd2F0 Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcx LCBpbnQgYXJnMikgb3ZlcnJpZGU7CiAtICBpbnQgcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50 IChDT1JFX0FERFIgYXJnMCwgaW50IGFyZzEpIG92ZXJyaWRlOwpAQCAtMjkwMiw3ICsyOTAyLDcg QEAgZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMgYi9nZGIvdGFyZ2V0LWRlbGVn YXRlcy5jCiAgICBib29sIGNhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERS IGFyZzAsIGludCBhcmcxLCBpbnQgYXJnMiwgc3RydWN0IGV4cHJlc3Npb24gKmFyZzMpIG92ZXJy aWRlOwogICAgaW50IG1hc2tlZF93YXRjaF9udW1fcmVnaXN0ZXJzIChDT1JFX0FERFIgYXJnMCwg Q09SRV9BRERSIGFyZzEpIG92ZXJyaWRlOwogICAgaW50IGNhbl9kb19zaW5nbGVfc3RlcCAoKSBv dmVycmlkZTsKLUBAIC0xMDk4LDE5ICsxMDk4LDE5IEBAIGRlYnVnX3RhcmdldDo6d2F0Y2hwb2lu dF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxLCBpbnQK K0BAIC0xMDcxLDE5ICsxMDcxLDE5IEBAIGRlYnVnX3RhcmdldDo6d2F0Y2hwb2ludF9hZGRyX3dp dGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxLCBpbnQKICB9CiAgCiAg aW50CkBAIC0yOTI1LDcgKzI5MjUsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0 ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnJlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCAoLi4uKVxuIiwgdGhpcy0+YmVuZWF0aCAoKS0+c2hvcnRuYW1lICgpKTsKLUBAIC0x MTE4LDcgKzExMTgsNyBAQCBkZWJ1Z190YXJnZXQ6OnJlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCAoQ09SRV9BRERSIGFyZzAsIGludCBhcmcxKQorQEAgLTEwOTEsNyArMTA5MSw3IEBAIGRlYnVn X3RhcmdldDo6cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChDT1JFX0FERFIgYXJnMCwgaW50 IGFyZzEpCiAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csICI8LSAlcy0+cmVnaW9u X29rX2Zvcl9od193YXRjaHBvaW50ICgiLCB0aGlzLT5iZW5lYXRoICgpLT5zaG9ydG5hbWUgKCkp OwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X0NPUkVfQUREUiAoYXJnMCk7CiAgICBmcHV0c191bmZp bHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKQEAgLTI5NDYsNyArMjk0Niw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvdGFyZ2V0LmMgYi9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMgdm9pZCBkZWZhdWx0 X3JjbWQgKHN0cnVjdCB0YXJnZXRfb3BzICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUg Kik7CiAgCi1AQCAtMzE4MSw3ICszMTgxLDcgQEAgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9j IChzdHJ1Y3QgaW5mZXJpb3IgKmluZiwgY29uc3QgY2hhciAqZmlsZW5hbWUpCitAQCAtMzE4NCw3 ICszMTg0LDcgQEAgdGFyZ2V0X2ZpbGVpb19yZWFkX3N0cmFsbG9jIChzdHJ1Y3QgaW5mZXJpb3Ig KmluZiwgY29uc3QgY2hhciAqZmlsZW5hbWUpCiAgCiAgc3RhdGljIGludAogIGRlZmF1bHRfcmVn aW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTI5 NTgsNyArMjk1OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmMgYi9nZGIvdGFyZ2V0LmMK IGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmggYi9nZGIvdGFyZ2V0LmgKIC0tLSBhL2dkYi90YXJn ZXQuaAogKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtNTYyLDcgKzU2Miw3IEBAIHN0cnVjdCB0YXJn ZXRfb3BzCitAQCAtNTYzLDcgKzU2Myw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCiAgCiAgICAgIC8q IERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGggdGhlIGNvcnJl c3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAqLwpAQCAtMjk3MCwxMiArMjk3MCwx MiBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC5oIGIvZ2RiL3RhcmdldC5oCiBkaWZmIC0tZ2l0 IGEvZ2RiL3RyYWNlcG9pbnQuYyBiL2dkYi90cmFjZXBvaW50LmMKIC0tLSBhL2dkYi90cmFjZXBv aW50LmMKICsrKyBiL2dkYi90cmFjZXBvaW50LmMKLUBAIC04MjksMTAgKzgyOSwxMCBAQCBjb2xs ZWN0aW9uX2xpc3Q6OmFkZF9yZWdpc3RlciAodW5zaWduZWQgaW50IHJlZ25vKQorQEAgLTg5Mywx MCArODkzLDEwIEBAIGNvbGxlY3Rpb25fbGlzdDo6YWRkX2xvY2FsX3JlZ2lzdGVyIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwKICB2b2lkCiAgY29sbGVjdGlvbl9saXN0OjphZGRfbWVtcmFuZ2Ug KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSAgICAgICBpbnQgdHlwZSwgYmZkX3NpZ25l ZF92bWEgYmFzZSwKLS0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBsZW4pCi0rCQkJICAgICAgIFVM T05HRVNUIGxlbikKKy0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBsZW4sIENPUkVfQUREUiBzY29w ZSkKKysJCQkgICAgICAgVUxPTkdFU1QgbGVuLCBDT1JFX0FERFIgc2NvcGUpCiAgewogICAgaWYg KGluZm9fdmVyYm9zZSkKIC0gICAgcHJpbnRmX2ZpbHRlcmVkICgiKCVkLCVzLCVsZClcbiIsIHR5 cGUsIHBhZGRyZXNzIChnZGJhcmNoLCBiYXNlKSwgbGVuKTsKQEAgLTI5ODMsNyArMjk4Myw3IEBA IGRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3RyYWNlcG9pbnQuYwogIAogICAg LyogdHlwZTogbWVtcmFuZ2VfYWJzb2x1dGUgPT0gbWVtb3J5LCBvdGhlciBuID09IGJhc2VyZWcg Ki8KICAgIC8qIGJhc2U6IGFkZHIgaWYgbWVtb3J5LCBvZmZzZXQgaWYgcmVnIHJlbGF0aXZlLiAg Ki8KLUBAIC04NTIsNyArODUyLDcgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAo c3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTkxNiw3ICs5MTYsNyBAQCBjb2xsZWN0aW9uX2xpc3Q6 OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgCQkJCSBDT1JFX0FERFIgc2Nv cGUsCiAgCQkJCSBpbnQgdHJhY2Vfc3RyaW5nKQogIHsKQEAgLTI5OTIsNyArMjk5Miw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3RyYWNlcG9pbnQuYwogICAgdW5zaWdu ZWQgaW50IHJlZzsKICAgIGJmZF9zaWduZWRfdm1hIG9mZnNldDsKICAgIGludCB0cmVhdF9hc19l eHByID0gMDsKLUBAIC04NzMsOCArODczLDggQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5 bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTkzNyw4ICs5MzcsOCBAQCBjb2xsZWN0aW9u X2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgICAgICAgb2Zmc2V0 ID0gU1lNQk9MX1ZBTFVFX0FERFJFU1MgKHN5bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkK ICAJewpAQCAtMzAwMyw3ICszMDAzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMg Yi9nZGIvdHJhY2Vwb2ludC5jCiAgCQkJICAgcGFkZHJlc3MgKGdkYmFyY2gsIG9mZnNldCkpOwog IAl9CiAgICAgICAgLyogQSBzdHJ1Y3QgbWF5IGJlIGEgQysrIGNsYXNzIHdpdGggc3RhdGljIGZp ZWxkcywgZ28gdG8gZ2VuZXJhbAotQEAgLTkwNiw5ICs5MDYsOSBAQCBjb2xsZWN0aW9uX2xpc3Q6 OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtOTcwLDkgKzk3MCw5IEBA IGNvbGxlY3Rpb25fbGlzdDo6Y29sbGVjdF9zeW1ib2wgKHN0cnVjdCBzeW1ib2wgKnN5bSwKICAg ICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7CiAgICAgICAg aWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzAxNCw4ICszMDE0LDggQEAgZGlmZiAtLWdpdCBh L2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCiArCQkJICAgU1lNQk9MX1BSSU5U X05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKICAJCQkgICBwYWRkcmVzcyAoZ2RiYXJjaCwg b2Zmc2V0KSwgcmVnKTsKICAJfQotICAgICAgIGFkZF9tZW1yYW5nZSAoZ2RiYXJjaCwgcmVnLCBv ZmZzZXQsIGxlbik7Ci1AQCAtOTE4LDkgKzkxOCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6Y29sbGVj dF9zeW1ib2wgKHN0cnVjdCBzeW1ib2wgKnN5bSwKKyAgICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFy Y2gsIHJlZywgb2Zmc2V0LCBsZW4sIHNjb3BlKTsKK0BAIC05ODIsOSArOTgyLDkgQEAgY29sbGVj dGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAogICAgICAgIG9m ZnNldCA9IDA7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzAyNiw4ICszMDI2 LDggQEAgZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCiAr CQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKICAJCQkgICBw YWRkcmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKICAJfQotICAgICAgIGFkZF9tZW1yYW5n ZSAoZ2RiYXJjaCwgcmVnLCBvZmZzZXQsIGxlbik7Ci1AQCAtOTMwLDkgKzkzMCw5IEBAIGNvbGxl Y3Rpb25fbGlzdDo6Y29sbGVjdF9zeW1ib2wgKHN0cnVjdCBzeW1ib2wgKnN5bSwKKyAgICAgICBh ZGRfbWVtcmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBsZW4sIHNjb3BlKTsKK0BAIC05OTQs OSArOTk0LDkgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJv bCAqc3ltLAogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAoc3lt KTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMDM4LDggKzMwMzgsOCBAQCBk aWZmIC0tZ2l0IGEvZ2RiL3RyYWNlcG9pbnQuYyBiL2dkYi90cmFjZXBvaW50LmMKICsJCQkgICBT WU1CT0xfUFJJTlRfTkFNRSAoc3ltKSwgcHVsb25nZXN0IChsZW4pLAogIAkJCSAgIHBhZGRyZXNz IChnZGJhcmNoLCBvZmZzZXQpLCByZWcpOwogIAl9Ci0gICAgICAgYWRkX21lbXJhbmdlIChnZGJh cmNoLCByZWcsIG9mZnNldCwgbGVuKTsKLUBAIC0yNDQ3LDcgKzI0NDcsOCBAQCBpbmZvX3Njb3Bl X2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3NfaW4sIGludCBmcm9tX3R0eSkKKyAgICAgICBhZGRf bWVtcmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBsZW4sIHNjb3BlKTsKK0BAIC0yNDkyLDcg KzI0OTIsOCBAQCBpbmZvX3Njb3BlX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3NfaW4sIGludCBm cm9tX3R0eSkKICAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CiAgICBjb25zdCBjaGFyICpzYXZlX2Fy Z3MgPSBhcmdzX2luOwogICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7CkBAIC0zMDQ5LDcg KzMwNDksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3RyYWNlcG9pbnQuYyBiL2dkYi90cmFjZXBvaW50 LmMKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwogICAgaW50IHJlZ25vOwogICAgY29uc3Qg Y2hhciAqYXJncyA9IGFyZ3NfaW47Ci1AQCAtMjU5MSw4ICsyNTkyLDExIEBAIGluZm9fc2NvcGVf Y29tbWFuZCAoY29uc3QgY2hhciAqYXJnc19pbiwgaW50IGZyb21fdHR5KQorQEAgLTI2MzYsOCAr MjYzNywxMSBAQCBpbmZvX3Njb3BlX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZ3NfaW4sIGludCBm cm9tX3R0eSkKICAJCX0KICAJICAgIH0KICAJICBpZiAoU1lNQk9MX1RZUEUgKHN5bSkpCkBAIC0z MDY2LDEyICszMDY2LDEyIEBAIGRpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3Ry YWNlcG9pbnQuYwogZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmggYi9nZGIvdHJhY2Vwb2lu dC5oCiAtLS0gYS9nZGIvdHJhY2Vwb2ludC5oCiArKysgYi9nZGIvdHJhY2Vwb2ludC5oCi1AQCAt MjY1LDcgKzI2NSw3IEBAIHB1YmxpYzoKLSAgIHZvaWQgYWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBp bnQgcmVnbm8pOworQEAgLTI2OSw3ICsyNjksNyBAQCBwdWJsaWM6CisgCQkJICAgQ09SRV9BRERS IHNjb3BlKTsKICAgIHZvaWQgYWRkX21lbXJhbmdlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwK ICAJCSAgICAgaW50IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2UsCi0tCQkgICAgIHVuc2lnbmVk IGxvbmcgbGVuKTsKLSsJCSAgICAgVUxPTkdFU1QgbGVuKTsKKy0JCSAgICAgdW5zaWduZWQgbG9u ZyBsZW4sIENPUkVfQUREUiBzY29wZSk7CisrCQkgICAgIFVMT05HRVNUIGxlbiwgQ09SRV9BRERS IHNjb3BlKTsKICAgIHZvaWQgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJ CSAgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAJCSAgICAgICBsb25nIGZyYW1lX3Jl Z25vLCBsb25nIGZyYW1lX29mZnNldCwKQEAgLTMxMTEsNyArMzExMSw3IEBAIGRpZmYgLS1naXQg YS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCiAgewogICAgc3RydWN0IHR5cGUgKmFy cmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwogICAgc3RydWN0 IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlf dHlwZSkpOwotQEAgLTY1OSw3ICs2NTksNyBAQCB2YWx1ZV9jb25jYXQgKHN0cnVjdCB2YWx1ZSAq YXJnMSwgc3RydWN0IHZhbHVlICphcmcyKQorQEAgLTY1Nyw3ICs2NTcsNyBAQCB2YWx1ZV9jb25j YXQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0IHZhbHVlICphcmcyKQogICAgc3RydWN0IHZh bHVlICppbnZhbDE7CiAgICBzdHJ1Y3QgdmFsdWUgKmludmFsMjsKICAgIHN0cnVjdCB2YWx1ZSAq b3V0dmFsID0gTlVMTDsKQEAgLTMxMjAsNyArMzEyMCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdmFs YXJpdGguYyBiL2dkYi92YWxhcml0aC5jCiAgICBpbnQgY291bnQsIGlkeDsKICAgIGNoYXIgaW5j aGFyOwogICAgc3RydWN0IHR5cGUgKnR5cGUxID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJnMSkpOwotQEAgLTE0MTksNyArMTQxOSw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUg KmFyZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMiwgZW51bSBleHBfb3Bjb2RlIG9wKQorQEAgLTE0MTcs NyArMTQxNyw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdCB2YWx1 ZSAqYXJnMiwgZW51bSBleHBfb3Bjb2RlIG9wKQogIGludAogIHZhbHVlX2xvZ2ljYWxfbm90IChz dHJ1Y3QgdmFsdWUgKmFyZzEpCiAgewpAQCAtMzEyOSw3ICszMTI5LDcgQEAgZGlmZiAtLWdpdCBh L2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKICAgIGNvbnN0IGdkYl9ieXRlICpwOwog ICAgc3RydWN0IHR5cGUgKnR5cGUxOwogIAotQEAgLTE0NDcsMTEgKzE0NDcsMTEgQEAgdmFsdWVf bG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNDQ1LDExICsxNDQ1LDExIEBA IHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgc3RhdGljIGludAogIHZh bHVlX3N0cmNtcCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCiAgewpA QCAtMzE4OSw3ICszMTg5LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxv cHMuYwogICAgICAgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOwogIAogIAlp ZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQotQEAgLTMzNTcsNyArMzM1Nyw3IEBAIGNvbXBhcmVf cGFyYW1ldGVycyAoc3RydWN0IHR5cGUgKnQxLCBzdHJ1Y3QgdHlwZSAqdDIsIGludCBza2lwX2Fy dGlmaWNpYWwpCitAQCAtMzM1Niw3ICszMzU2LDcgQEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1 Y3QgdHlwZSAqdDEsIHN0cnVjdCB0eXBlICp0MiwgaW50IHNraXBfYXJ0aWZpY2lhbCkKICAgICB0 aGUgZm9ybSAiRE9NQUlOOjpOQU1FIi4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBA IC0zMTk4LDcgKzMxOTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9w cy5jCiAgCQkJCXN0cnVjdCB0eXBlICpjdXJ0eXBlLCBjb25zdCBjaGFyICpuYW1lLAogIAkJCQlz dHJ1Y3QgdHlwZSAqaW50eXBlLCAKICAJCQkJaW50IHdhbnRfYWRkcmVzcywKLUBAIC0zMzkxLDcg KzMzOTEsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0eXBlICpk b21haW4sIGludCBvZmZzZXQsCitAQCAtMzM5MCw3ICszMzkwLDcgQEAgdmFsdWVfc3RydWN0X2Vs dF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdHlwZSAqZG9tYWluLCBpbnQgb2Zmc2V0LAogIAkgIGlm ICh3YW50X2FkZHJlc3MpCiAgCSAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25nZXN0CiAgCSAgICAg IChsb29rdXBfbWVtYmVycHRyX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodCwgaSksIGRvbWFpbiks CkBAIC0zMjA3LDcgKzMyMDcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3Zh bG9wcy5jCiAgCSAgZWxzZSBpZiAobm9zaWRlICE9IEVWQUxfTk9STUFMKQogIAkgICAgcmV0dXJu IGFsbG9jYXRlX3ZhbHVlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpKTsKICAJICBlbHNlCi1AQCAt MzU2NCw3ICszNTY0LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3Qg dHlwZSAqZG9tYWluLCBpbnQgb2Zmc2V0LAorQEAgLTM1NjMsNyArMzU2Myw3IEBAIHZhbHVlX3N0 cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKmRvbWFpbiwgaW50IG9mZnNldCwK ICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBpID49IDA7IGktLSkKICAg ICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKQEAgLTMyMTYsNyArMzIxNiw3IEBAIGRpZmYg LS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKICAKICAgICAgICBpZiAoQkFTRVRZ UEVfVklBX1ZJUlRVQUwgKHQsIGkpKQogIAliYXNlX29mZnNldCA9IDA7Ci1AQCAtMzcxMyw3ICsz NzEzLDcgQEAgdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAq ZnVsbCwKK0BAIC0zNzEyLDcgKzM3MTIsNyBAQCB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0 cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZnVsbF9v YmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1Y3QgdHlwZSAqcnR5cGUsIApA QCAtMzI3OCw3ICszMjc4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi92YWxwcmludC5jIGIvZ2RiL3Zh bHByaW50LmMKICAJICBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJICBpID0gcmVwMSAt IDE7Ci1AQCAtMjY2OSw3ICsyNjY5LDcgQEAgcHJpbnRfY29udmVydGVkX2NoYXJzX3RvX29ic3Rh Y2sgKHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrLAorQEAgLTI2NjgsNyArMjY2OCw3IEBAIHByaW50 X2NvbnZlcnRlZF9jaGFyc190b19vYnN0YWNrIChzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjaywKICAK ICB2b2lkCiAgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0 IHR5cGUgKnR5cGUsIApAQCAtMzQ0Myw3ICszNDQzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi94ODYt bmF0LmggYi9nZGIveDg2LW5hdC5oCiAgZXh0ZXJuIGludCB4ODZfc3RvcHBlZF9ieV93YXRjaHBv aW50ICgpOwogIGV4dGVybiBpbnQgeDg2X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChDT1JFX0FERFIg KmFkZHJfcCk7CiAgZXh0ZXJuIGludCB4ODZfaW5zZXJ0X3dhdGNocG9pbnQgKENPUkVfQUREUiBh ZGRyLCBpbnQgbGVuLAotQEAgLTgyLDcgKzgyLDcgQEAgc3RydWN0IHg4Nl9uYXRfdGFyZ2V0IDog cHVibGljIEJhc2VUYXJnZXQKK0BAIC03NSw3ICs3NSw3IEBAIHN0cnVjdCB4ODZfbmF0X3Rhcmdl dCA6IHB1YmxpYyBCYXNlVGFyZ2V0CiAgICBpbnQgY2FuX3VzZV9od19icmVha3BvaW50IChlbnVt IGJwdHlwZSB0eXBlLCBpbnQgY250LCBpbnQgb3RoZXJ0eXBlKSBvdmVycmlkZQogICAgeyByZXR1 cm4geDg2X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAodHlwZSwgY250LCBvdGhlcnR5cGUpOyB9CiAg CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaCBiL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2gKaW5kZXggNTYxN2E1MC4uYTcwMjU0ZiAxMDA2 NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaAorKysgYi9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoCkBAIC0xMTEsNyArMTExLDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9wLXZhbHByaW50LmMgYi9nZGIvcC12YWxwcmludC5jCiBkaWZmIC0tZ2l0IGEvZ2Ri L3V0aWxzLmMgYi9nZGIvdXRpbHMuYwogLS0tIGEvZ2RiL3V0aWxzLmMKICsrKyBiL2dkYi91dGls cy5jCi1AQCAtMjgzNCw2ICsyODM0LDE3IEBAIHN0cmluZ190b19jb3JlX2FkZHIgKGNvbnN0IGNo YXIgKm15X3N0cmluZykKK0BAIC0yODA3LDYgKzI4MDcsMTcgQEAgc3RyaW5nX3RvX2NvcmVfYWRk ciAoY29uc3QgY2hhciAqbXlfc3RyaW5nKQogICAgcmV0dXJuIGFkZHI7CiAgfQogIApAQCAtMTMy LDcgKzEzMiw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdXRpbHMuYyBiL2dkYi91dGlscy5jCiBkaWZm IC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCiAtLS0gYS9nZGIvdmFsb3BzLmMK ICsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTIwODgsNiArMjA4OCw3IEBAIHNlYXJjaF9zdHJ1Y3Rf bWV0aG9kIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKK0BAIC0yMDg3 LDYgKzIwODcsNyBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwgc3Ry dWN0IHZhbHVlICoqYXJnMXAsCiAgCSAgICB7CiAgCSAgICAgIENPUkVfQUREUiBhZGRyZXNzOwog IApAQCAtMTYwLDcgKzE2MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuYyBiL2dkYi92YWx1 ZS5jCiAgICBpZiAoIXZhbC0+Y29udGVudHMpCiAgICAgIHsKICAgICAgICBjaGVja190eXBlX2xl bmd0aF9iZWZvcmVfYWxsb2MgKHZhbC0+ZW5jbG9zaW5nX3R5cGUpOwotQEAgLTI4NzYsNiArMjg3 OSw3IEBAIHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVj dCB0eXBlICpuZXdfZW5jbF90eXBlKQorQEAgLTI4NzUsNiArMjg3OCw3IEBAIHNldF92YWx1ZV9l bmNsb3NpbmdfdHlwZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB0eXBlICpuZXdfZW5jbF90 eXBlKQogICAgaWYgKFRZUEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSA+IFRZUEVfTEVOR1RIICh2 YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKSkpCiAgICAgIHsKICAgICAgICBjaGVja190eXBlX2xl bmd0aF9iZWZvcmVfYWxsb2MgKG5ld19lbmNsX3R5cGUpOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1 LnBhdGNoCmluZGV4IDgwNzJmNzcuLjllNjg4MmMgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0 LWJpdHBvcy0yMm9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5w YXRjaApAQCAtMTU0LDcgKzE1NCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvYXJtLWxpbnV4LW5hdC5j IGIvZ2RiL2FybS1saW51eC1uYXQuYwogIAogICAgY29uc3Qgc3RydWN0IHRhcmdldF9kZXNjICpy ZWFkX2Rlc2NyaXB0aW9uICgpIG92ZXJyaWRlOwogIAotQEAgLTEyMDcsNyArMTIwNyw3IEBAIGFy bV9saW51eF9uYXRfdGFyZ2V0OjpzdG9wcGVkX2J5X3dhdGNocG9pbnQgKCkKK0BAIC0xMjAzLDcg KzEyMDMsNyBAQCBhcm1fbGludXhfbmF0X3RhcmdldDo6c3RvcHBlZF9ieV93YXRjaHBvaW50ICgp CiAgYm9vbAogIGFybV9saW51eF9uYXRfdGFyZ2V0Ojp3YXRjaHBvaW50X2FkZHJfd2l0aGluX3Jh bmdlIChDT1JFX0FERFIgYWRkciwKICAJCQkJCQkgICAgQ09SRV9BRERSIHN0YXJ0LApAQCAtMjk5 LDcgKzI5OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcHBjLWxpbnV4LW5hdC5jIGIvZ2RiL3BwYy1s aW51eC1uYXQuYwogICAgICBvdmVycmlkZTsKICAKICAgIGludCBtYXNrZWRfd2F0Y2hfbnVtX3Jl Z2lzdGVycyAoQ09SRV9BRERSLCBDT1JFX0FERFIpIG92ZXJyaWRlOwotQEAgLTE2NTksMTEgKzE2 NTksMTEgQEAgY2FuX3VzZV93YXRjaHBvaW50X2NvbmRfYWNjZWwgKHZvaWQpCitAQCAtMTY0OSwx MSArMTY0OSwxMSBAQCBjYW5fdXNlX3dhdGNocG9pbnRfY29uZF9hY2NlbCAodm9pZCkKICAgICBD T05ESVRJT05fVkFMVUUgd2lsbCBob2xkIHRoZSB2YWx1ZSB3aGljaCBzaG91bGQgYmUgcHV0IGlu IHRoZQogICAgIERWQyByZWdpc3Rlci4gICovCiAgc3RhdGljIHZvaWQKQEAgLTMxNCw3ICszMTQs NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3BwYy1saW51eC1uYXQuYyBiL2dkYi9wcGMtbGludXgtbmF0 LmMKICAgIENPUkVfQUREUiBhZGRyX2VuZF9kYXRhLCBhZGRyX2VuZF9kdmM7CiAgCiAgICAvKiBU aGUgRFZDIHJlZ2lzdGVyIGNvbXBhcmVzIGJ5dGVzIHdpdGhpbiBmaXhlZC1sZW5ndGggd2luZG93 cyB3aGljaAotQEAgLTE3NTEsNyArMTc1MSw3IEBAIG51bV9tZW1vcnlfYWNjZXNzZXMgKGNvbnN0 IHN0ZDo6dmVjdG9yPHZhbHVlX3JlZl9wdHI+ICZjaGFpbikKK0BAIC0xNzQxLDcgKzE3NDEsNyBA QCBudW1fbWVtb3J5X2FjY2Vzc2VzIChjb25zdCBzdGQ6OnZlY3Rvcjx2YWx1ZV9yZWZfcHRyPiAm Y2hhaW4pCiAgICAgb2YgdGhlIGNvbnN0YW50LiAgKi8KICBzdGF0aWMgaW50CiAgY2hlY2tfY29u ZGl0aW9uIChDT1JFX0FERFIgd2F0Y2hfYWRkciwgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQsCkBA IC0zMjMsNyArMzIzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9wcGMtbGludXgtbmF0LmMgYi9nZGIv cHBjLWxpbnV4LW5hdC5jCiAgewogICAgaW50IHBjID0gMSwgbnVtX2FjY2Vzc2VzX2xlZnQsIG51 bV9hY2Nlc3Nlc19yaWdodDsKICAgIHN0cnVjdCB2YWx1ZSAqbGVmdF92YWwsICpyaWdodF92YWw7 Ci1AQCAtMTgwMiw3ICsxODAyLDggQEAgY2hlY2tfY29uZGl0aW9uIChDT1JFX0FERFIgd2F0Y2hf YWRkciwgc3RydWN0IGV4cHJlc3Npb24gKmNvbmQsCitAQCAtMTc5Miw3ICsxNzkyLDggQEAgY2hl Y2tfY29uZGl0aW9uIChDT1JFX0FERFIgd2F0Y2hfYWRkciwgc3RydWN0IGV4cHJlc3Npb24gKmNv bmQsCiAgICAgdGhlIGNvbmRpdGlvbiBleHByZXNzaW9uLCB0aHVzIG9ubHkgdHJpZ2dlcmluZyB0 aGUgd2F0Y2hwb2ludCB3aGVuIGl0IGlzCiAgICAgdHJ1ZS4gICovCiAgYm9vbApAQCAtMzMzLDcg KzMzMyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcHBjLWxpbnV4LW5hdC5jIGIvZ2RiL3BwYy1saW51 eC1uYXQuYwogIAkJCQkJCSAgICAgIGludCBydywKICAJCQkJCQkgICAgICBzdHJ1Y3QgZXhwcmVz c2lvbiAqY29uZCkKICB7Ci1AQCAtMTgyMCw3ICsxODIxLDcgQEAgcHBjX2xpbnV4X25hdF90YXJn ZXQ6OmNhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERSIGFkZHIsIGludCBs ZW4sCitAQCAtMTgxMCw3ICsxODExLDcgQEAgcHBjX2xpbnV4X25hdF90YXJnZXQ6OmNhbl9hY2Nl bF93YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCiAgCiAgc3Rh dGljIHZvaWQKICBjcmVhdGVfd2F0Y2hwb2ludF9yZXF1ZXN0IChzdHJ1Y3QgcHBjX2h3X2JyZWFr cG9pbnQgKnAsIENPUkVfQUREUiBhZGRyLApAQCAtMzQyLDcgKzM0Miw3IEBAIGRpZmYgLS1naXQg YS9nZGIvcHBjLWxpbnV4LW5hdC5jIGIvZ2RiL3BwYy1saW51eC1uYXQuYwogIAkJCSAgIHN0cnVj dCBleHByZXNzaW9uICpjb25kLCBpbnQgaW5zZXJ0KQogIHsKICAgIGlmIChsZW4gPT0gMQotQEAg LTIwODYsNyArMjA4Nyw3IEBAIHBwY19saW51eF9uYXRfdGFyZ2V0OjpzdG9wcGVkX2J5X3dhdGNo cG9pbnQgKCkKK0BAIC0yMDc2LDcgKzIwNzcsNyBAQCBwcGNfbGludXhfbmF0X3RhcmdldDo6c3Rv cHBlZF9ieV93YXRjaHBvaW50ICgpCiAgYm9vbAogIHBwY19saW51eF9uYXRfdGFyZ2V0Ojp3YXRj aHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChDT1JFX0FERFIgYWRkciwKICAJCQkJCQkgICAgQ09S RV9BRERSIHN0YXJ0LApAQCAtMzU0LDcgKzM1NCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvcHBjLWxp bnV4LW5hdC5jIGIvZ2RiL3BwYy1saW51eC1uYXQuYwogZGlmZiAtLWdpdCBhL2dkYi9wcm9jZnMu YyBiL2dkYi9wcm9jZnMuYwogLS0tIGEvZ2RiL3Byb2Nmcy5jCiArKysgYi9nZGIvcHJvY2ZzLmMK LUBAIC0xNTYxLDcgKzE1NjEsNyBAQCBwcm9jZnNfYWRkcmVzc190b19ob3N0X3BvaW50ZXIgKENP UkVfQUREUiBhZGRyKQorQEAgLTE1NjUsNyArMTU2NSw3IEBAIHByb2Nmc19hZGRyZXNzX3RvX2hv c3RfcG9pbnRlciAoQ09SRV9BRERSIGFkZHIpCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTM2Myw3 ICszNjMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3Byb2Nmcy5jIGIvZ2RiL3Byb2Nmcy5jCiAgewog ICAgc3RydWN0IHsKICAgICAgcHJvY2ZzX2N0bF90IGNtZDsKLUBAIC0zMjE0LDcgKzMyMTQsNyBA QCBwcm9jZnNfdGFyZ2V0OjpwaWRfdG9fc3RyIChwdGlkX3QgcHRpZCkKK0BAIC0zMjE3LDcgKzMy MTcsNyBAQCBwcm9jZnNfdGFyZ2V0OjpwaWRfdG9fc3RyIChwdGlkX3QgcHRpZCkKICAvKiBJbnNl cnQgYSB3YXRjaHBvaW50LiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC0zODQsNyArMzg0LDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwogIAogICAgaW50IGNhbl91 c2VfaHdfYnJlYWtwb2ludCAoZW51bSBicHR5cGUsIGludCwgaW50KSBvdmVycmlkZTsKICAKLUBA IC0xMDM0Miw3ICsxMDM0Miw3IEBAIHJlbW90ZV90YXJnZXQ6Omluc2VydF93YXRjaHBvaW50IChD T1JFX0FERFIgYWRkciwgaW50IGxlbiwKK0BAIC0xMDM3NSw3ICsxMDM3NSw3IEBAIHJlbW90ZV90 YXJnZXQ6Omluc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKICAgIHAg PSBzdHJjaHIgKHJzLT5idWYsICdcMCcpOwogICAgYWRkciA9IHJlbW90ZV9hZGRyZXNzX21hc2tl ZCAoYWRkcik7CiAgICBwICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsKQEAgLTM5 Myw3ICszOTMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2RiL3JlbW90ZS5jCiAg CiAgICBwdXRwa3QgKHJzLT5idWYpOwogICAgZ2V0cGt0ICgmcnMtPmJ1ZiwgJnJzLT5idWZfc2l6 ZSwgMCk7Ci1AQCAtMTAzNjIsNyArMTAzNjIsNyBAQCByZW1vdGVfdGFyZ2V0OjppbnNlcnRfd2F0 Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCitAQCAtMTAzOTUsNyArMTAzOTUsNyBA QCByZW1vdGVfdGFyZ2V0OjppbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBs ZW4sCiAgCiAgYm9vbAogIHJlbW90ZV90YXJnZXQ6OndhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFu Z2UgKENPUkVfQUREUiBhZGRyLApAQCAtNDAyLDcgKzQwMiw3IEBAIGRpZmYgLS1naXQgYS9nZGIv cmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKICB7CiAgICBDT1JFX0FERFIgZGlmZiA9IHJlbW90ZV9h ZGRyZXNzX21hc2tlZCAoYWRkciAtIHN0YXJ0KTsKICAKLUBAIC0xMDM5MSw3ICsxMDM5MSw3IEBA IHJlbW90ZV90YXJnZXQ6OnJlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxl biwKK0BAIC0xMDQyNCw3ICsxMDQyNCw3IEBAIHJlbW90ZV90YXJnZXQ6OnJlbW92ZV93YXRjaHBv aW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKICAgIHAgPSBzdHJjaHIgKHJzLT5idWYsICdc MCcpOwogICAgYWRkciA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkcik7CiAgICBwICs9IGhl eG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsKQEAgLTQyMCwxNSArNDIwLDE1IEBAIGRpZmYg LS1naXQgYS9nZGIvczM5MC1saW51eC1uYXQuYyBiL2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgICAg IG92ZXJyaWRlOwogLSAgaW50IHJlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERS LCBpbnQpIG92ZXJyaWRlOwogKyAgaW50IHJlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09S RV9BRERSLCBMT05HRVNUKSBvdmVycmlkZTsKLSAgIGJvb2wgaGF2ZV9jb250aW51YWJsZV93YXRj aHBvaW50ICgpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgIGJvb2wgc3RvcHBlZF9ieV93 YXRjaHBvaW50ICgpIG92ZXJyaWRlOwogICAgaW50IGluc2VydF93YXRjaHBvaW50IChDT1JFX0FE RFIsIGludCwgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSwKKyAJCQkgc3RydWN0IGV4cHJlc3Npb24g Kikgb3ZlcnJpZGU7CiBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90 YXJnZXQtZGVsZWdhdGVzLmMKIC0tLSBhL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICsrKyBiL2dk Yi90YXJnZXQtZGVsZWdhdGVzLmMKLUBAIC0zOCw5ICszOCw5IEBAIHN0cnVjdCBkdW1teV90YXJn ZXQgOiBwdWJsaWMgdGFyZ2V0X29wcworQEAgLTM3LDkgKzM3LDkgQEAgc3RydWN0IGR1bW15X3Rh cmdldCA6IHB1YmxpYyB0YXJnZXRfb3BzCisgICBib29sIHN0b3BwZWRfYnlfd2F0Y2hwb2ludCAo KSBvdmVycmlkZTsKICAgIGludCBoYXZlX3N0ZXBwYWJsZV93YXRjaHBvaW50ICgpIG92ZXJyaWRl OwotICAgYm9vbCBoYXZlX2NvbnRpbnVhYmxlX3dhdGNocG9pbnQgKCkgb3ZlcnJpZGU7CiAgICBi b29sIHN0b3BwZWRfZGF0YV9hZGRyZXNzIChDT1JFX0FERFIgKmFyZzApIG92ZXJyaWRlOwogLSAg Ym9vbCB3YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChDT1JFX0FERFIgYXJnMCwgQ09SRV9B RERSIGFyZzEsIGludCBhcmcyKSBvdmVycmlkZTsKICsgIGJvb2wgd2F0Y2hwb2ludF9hZGRyX3dp dGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxLCBMT05HRVNUIGFyZzIp IG92ZXJyaWRlOwpAQCAtNDM4LDkgKzQzOCw5IEBAIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LWRl bGVnYXRlcy5jIGIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogICAgaW50IG1hc2tlZF93YXRjaF9u dW1fcmVnaXN0ZXJzIChDT1JFX0FERFIgYXJnMCwgQ09SRV9BRERSIGFyZzEpIG92ZXJyaWRlOwog ICAgaW50IGNhbl9kb19zaW5nbGVfc3RlcCAoKSBvdmVycmlkZTsKICAgIGJvb2wgc3VwcG9ydHNf dGVybWluYWxfb3VycyAoKSBvdmVycmlkZTsKLUBAIC0yMDYsOSArMjA2LDkgQEAgc3RydWN0IGRl YnVnX3RhcmdldCA6IHB1YmxpYyB0YXJnZXRfb3BzCitAQCAtMjA0LDkgKzIwNCw5IEBAIHN0cnVj dCBkZWJ1Z190YXJnZXQgOiBwdWJsaWMgdGFyZ2V0X29wcworICAgYm9vbCBzdG9wcGVkX2J5X3dh dGNocG9pbnQgKCkgb3ZlcnJpZGU7CiAgICBpbnQgaGF2ZV9zdGVwcGFibGVfd2F0Y2hwb2ludCAo KSBvdmVycmlkZTsKLSAgIGJvb2wgaGF2ZV9jb250aW51YWJsZV93YXRjaHBvaW50ICgpIG92ZXJy aWRlOwogICAgYm9vbCBzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICphcmcwKSBvdmVy cmlkZTsKIC0gIGJvb2wgd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFy ZzAsIENPUkVfQUREUiBhcmcxLCBpbnQgYXJnMikgb3ZlcnJpZGU7CiArICBib29sIHdhdGNocG9p bnRfYWRkcl93aXRoaW5fcmFuZ2UgKENPUkVfQUREUiBhcmcwLCBDT1JFX0FERFIgYXJnMSwgTE9O R0VTVCBhcmcyKSBvdmVycmlkZTsKQEAgLTQ1MCw3ICs0NTAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2Ri L3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICAgIGludCBtYXNr ZWRfd2F0Y2hfbnVtX3JlZ2lzdGVycyAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxKSBv dmVycmlkZTsKICAgIGludCBjYW5fZG9fc2luZ2xlX3N0ZXAgKCkgb3ZlcnJpZGU7CiAgICBib29s IHN1cHBvcnRzX3Rlcm1pbmFsX291cnMgKCkgb3ZlcnJpZGU7Ci1AQCAtMTA2OCwxOSArMTA2OCwx OSBAQCBkZWJ1Z190YXJnZXQ6OnN0b3BwZWRfZGF0YV9hZGRyZXNzIChDT1JFX0FERFIgKmFyZzAp CitAQCAtMTA0MSwxOSArMTA0MSwxOSBAQCBkZWJ1Z190YXJnZXQ6OnN0b3BwZWRfZGF0YV9hZGRy ZXNzIChDT1JFX0FERFIgKmFyZzApCiAgfQogIAogIGJvb2wKQEAgLTQ3Myw3ICs0NzMsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVz LmMKICB7CiAgICBib29sIHJlc3VsdDsKICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxv ZywgIi0+ICVzLT53YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlICguLi4pXG4iLCB0aGlzLT5i ZW5lYXRoICgpLT5zaG9ydG5hbWUgKCkpOwotQEAgLTEwOTAsNyArMTA5MCw3IEBAIGRlYnVnX3Rh cmdldDo6d2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoQ09SRV9BRERSIGFyZzAsIENPUkVf QUREUiBhcmcxLCBpbnQKK0BAIC0xMDYzLDcgKzEwNjMsNyBAQCBkZWJ1Z190YXJnZXQ6OndhdGNo cG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKENPUkVfQUREUiBhcmcwLCBDT1JFX0FERFIgYXJnMSwg aW50CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdldF9k ZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzEpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwgIiwg Z2RiX3N0ZGxvZyk7CkBAIC00ODIsNyArNDgyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQt ZGVsZWdhdGVzLmMgYi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBmcHV0c191bmZpbHRlcmVk ICgiKSA9ICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X2Jvb2wgKHJlc3Vs dCk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiXG4iLCBnZGJfc3RkbG9nKTsKLUBAIC0xMTI2LDE5 ICsxMTI2LDE5IEBAIGRlYnVnX3RhcmdldDo6cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChD T1JFX0FERFIgYXJnMCwgTE9OR0VTVCBhcmcxKQorQEAgLTEwOTksMTkgKzEwOTksMTkgQEAgZGVi dWdfdGFyZ2V0OjpyZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhcmcwLCBM T05HRVNUIGFyZzEpCiAgfQogIAogIGJvb2wKQEAgLTUwNSw3ICs1MDUsNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYyBiL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAg ICBib29sIHJlc3VsdDsKICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIi0+ICVz LT5jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKC4uLilcbiIsIHRoaXMtPmJlbmVhdGgg KCktPnNob3J0bmFtZSAoKSk7Ci1AQCAtMTE0Niw3ICsxMTQ2LDcgQEAgZGVidWdfdGFyZ2V0Ojpj YW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKENPUkVfQUREUiBhcmcwLCBpbnQgYXJnMSwg aW50IGFyZzIKK0BAIC0xMTE5LDcgKzExMTksNyBAQCBkZWJ1Z190YXJnZXQ6OmNhbl9hY2NlbF93 YXRjaHBvaW50X2NvbmRpdGlvbiAoQ09SRV9BRERSIGFyZzAsIGludCBhcmcxLCBpbnQgYXJnMgog ICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiPC0gJXMtPmNhbl9hY2NlbF93YXRj aHBvaW50X2NvbmRpdGlvbiAoIiwgdGhpcy0+YmVuZWF0aCAoKS0+c2hvcnRuYW1lICgpKTsKICAg IHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzApOwogICAgZnB1dHNfdW5maWx0ZXJl ZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CkBAIC01MjYsNyArNTI2LDcgQEAgZGlmZiAtLWdpdCBhL2dk Yi90YXJnZXQuYyBiL2dkYi90YXJnZXQuYwogIAogIHN0YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25f b2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICosCiAgCQkJCQkJQ09SRV9B RERSLCBMT05HRVNUKTsKLUBAIC0zMTg5LDcgKzMxODksNyBAQCBkZWZhdWx0X3JlZ2lvbl9va19m b3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCitAQCAtMzE5Miw3ICsz MTkyLDcgQEAgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLAogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRo aW5fcmFuZ2UgKHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQsCiAgCQkJCSAgICAgIENPUkVfQURE UiBhZGRyLApAQCAtNTM4LDcgKzUzOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmMgYi9n ZGIvdGFyZ2V0LmMKIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmggYi9nZGIvdGFyZ2V0LmgKIC0t LSBhL2dkYi90YXJnZXQuaAogKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtNTU3LDcgKzU1Nyw3IEBA IHN0cnVjdCB0YXJnZXRfb3BzCitAQCAtNTU4LDcgKzU1OCw3IEBAIHN0cnVjdCB0YXJnZXRfb3Bz CiAgICAgICAgVEFSR0VUX0RFRkFVTFRfUkVUVVJOIChmYWxzZSk7CiAgICAgIHZpcnR1YWwgYm9v bCBzdG9wcGVkX2RhdGFfYWRkcmVzcyAoQ09SRV9BRERSICopCiAgICAgICAgVEFSR0VUX0RFRkFV TFRfUkVUVVJOIChmYWxzZSk7CkBAIC01NDcsNyArNTQ3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90 YXJnZXQuaCBiL2dkYi90YXJnZXQuaAogICAgICAgIFRBUkdFVF9ERUZBVUxUX0ZVTkMgKGRlZmF1 bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk7CiAgCiAgICAgIC8qIERvY3VtZW50YXRp b24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKLUBA IC01NjUsNyArNTY1LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKK0BAIC01NjYsNyArNTY2LDcgQEAg c3RydWN0IHRhcmdldF9vcHMKICAgICAgdmlydHVhbCBpbnQgcmVnaW9uX29rX2Zvcl9od193YXRj aHBvaW50IChDT1JFX0FERFIsIExPTkdFU1QpCiAgICAgICAgVEFSR0VUX0RFRkFVTFRfRlVOQyAo ZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOwogIAoKZGlmZiAtLWdpdCBhL2dk Yi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3Mt MjNvZjI1LnBhdGNoCmluZGV4IGViYmU2OTYuLmQ4Nzg5NWMgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6 Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIz b2YyNS5wYXRjaApAQCAtMzU3LDggKzM1Nyw4IEBAIGRpZmYgLS1naXQgYS9nZGIvYmZpbi10ZGVw LmMgYi9nZGIvYmZpbi10ZGVwLmMKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICp2YWx1ZV90 eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOwogICAgICAgIHN0cnVjdCB0eXBl ICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUpOwotLSAgICAgIGludCBjb250 YWluZXJfbGVuID0gKFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKSArIDMpICYgfjM7Ci0rICAgICAg c3NpemVfdCBjb250YWluZXJfbGVuID0gKFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlKSArIDMpICYg fjM7CistICAgICAgaW50IGNvbnRhaW5lcl9sZW4gPSAoVFlQRV9MRU5HVEggKGFyZ190eXBlKSAr IDMpICYgfjM7CisrICAgICAgc3NpemVfdCBjb250YWluZXJfbGVuID0gKFRZUEVfTEVOR1RIIChh cmdfdHlwZSkgKyAzKSAmIH4zOwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAgICAg ICAgd3JpdGVfbWVtb3J5IChzcCwgdmFsdWVfY29udGVudHMgKGFyZ3NbaV0pLCBjb250YWluZXJf bGVuKTsKQEAgLTYyMCw3ICs2MjAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL21pcHMtdGRlcC5jIGIv Z2RiL21pcHMtdGRlcC5jCiAgICBpZiAobWlwc19kZWJ1ZyAmJiBvdXQgIT0gTlVMTCkKICAgICAg ewogICAgICAgIGludCBpOwotQEAgLTQ1NDMsMTMgKzQ1NDMsMTMgQEAgbWlwc19lYWJpX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqZnVuY3Rp b24sCitAQCAtNDU2MSwxMyArNDU2MSwxMyBAQCBtaXBzX2VhYmlfcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlvbiwKICAgICAgICBn ZGJfYnl0ZSByZWZfdmFsYnVmW01BWF9NSVBTX0FCSV9SRUdTSVpFXTsKICAgICAgICBzdHJ1Y3Qg dmFsdWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUg PSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTYzNyw3ICs2MzcsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL21pcHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAgICAg LyogVGhlIEVBQkkgcGFzc2VzIHN0cnVjdHVyZXMgdGhhdCBkbyBub3QgZml0IGluIGEgcmVnaXN0 ZXIgYnkKICAgICAgICAgICByZWZlcmVuY2UuICAqLwotQEAgLTQ4MTksNyArNDgxOSw3IEBAIG1p cHNfZWFiaV9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFs dWUgKmZ1bmN0aW9uLAorQEAgLTQ4MzcsNyArNDgzNyw3IEBAIG1pcHNfZWFiaV9yZXR1cm5fdmFs dWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAogIAog IHN0YXRpYyBpbnQKICBtaXBzX24zMm42NF9mcF9hcmdfY2h1bmtfcCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsIHN0cnVjdCB0eXBlICphcmdfdHlwZSwKQEAgLTY0Niw3ICs2NDYsNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL21pcHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCiAgewogICAgaW50IGk7 CiAgCi1AQCAtNDgzNCw3ICs0ODM0LDcgQEAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5rX3AgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUsCitAQCAtNDg1Miw3 ICs0ODUyLDcgQEAgbWlwc19uMzJuNjRfZnBfYXJnX2NodW5rX3AgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUsCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQ RV9ORklFTERTIChhcmdfdHlwZSk7IGkrKykKICAgICAgewpAQCAtNjU1LDcgKzY1NSw3IEBAIGRp ZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMKICAgICAgICBzdHJ1 Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAKICAgICAgICAvKiBXZSdyZSBvbmx5IGxvb2tpbmcgYXQg bm9ybWFsIGZpZWxkcy4gICovCi1AQCAtNDg3Niw3ICs0ODc2LDcgQEAgbWlwc19uMzJuNjRfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5j dGlvbiwKK0BAIC00ODk0LDcgKzQ4OTQsNyBAQCBtaXBzX24zMm42NF9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAogICAgaW50 IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNjY0LDcg KzY2NCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMK ICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9 IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTUyMjcsMTEgKzUyMjcs MTEgQEAgbWlwc19uMzJuNjRfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwg c3RydWN0IHZhbHVlICpmdW5jdGlvbiwKK0BAIC01MjQ1LDExICs1MjQ1LDExIEBAIG1pcHNfbjMy bjY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAq ZnVuY3Rpb24sCiAgCQkJCTogTUlQU19WMF9SRUdOVU0pOwogIAkgICBmaWVsZCA8IFRZUEVfTkZJ RUxEUyAodHlwZSk7IGZpZWxkKyssIHJlZ251bSArPSAyKQogIAl7CkBAIC02ODAsNyArNjgwLDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9taXBzLXRkZXAuYyBiL2dkYi9taXBzLXRkZXAuYwogIAkgIGlm IChUWVBFX0xFTkdUSCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZCkpID09IDE2KQogIAkg ICAgewogIAkgICAgICAvKiBBIDE2LWJ5dGUgbG9uZyBkb3VibGUgZmllbGQgZ29lcyBpbiB0d28g Y29uc2VjdXRpdmUKLUBAIC01MjczLDggKzUyNzMsOCBAQCBtaXBzX24zMm42NF9yZXR1cm5fdmFs dWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAorQEAg LTUyOTEsOCArNTI5MSw4IEBAIG1pcHNfbjMybjY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqZnVuY3Rpb24sCiAgCSAgaWYgKG9mZnNldCArIHhm ZXIgPiBUWVBFX0xFTkdUSCAodHlwZSkpCiAgCSAgICB4ZmVyID0gVFlQRV9MRU5HVEggKHR5cGUp IC0gb2Zmc2V0OwogIAkgIGlmIChtaXBzX2RlYnVnKQpAQCAtNjkxLDcgKzY5MSw3IEBAIGRpZmYg LS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMKICAJICBtaXBzX3hmZXJf cmVnaXN0ZXIgKGdkYmFyY2gsIHJlZ2NhY2hlLAogIAkJCSAgICAgIGdkYmFyY2hfbnVtX3JlZ3Mg KGdkYmFyY2gpICsgcmVnbnVtLAogIAkJCSAgICAgIHhmZXIsIEJGRF9FTkRJQU5fVU5LTk9XTiwg cmVhZGJ1Ziwgd3JpdGVidWYsCi1AQCAtNTMzMiw3ICs1MzMyLDcgQEAgbWlwc19vMzJfcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlv biwKK0BAIC01MzUwLDcgKzUzNTAsNyBAQCBtaXBzX28zMl9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAogICAgaW50IGFyZ3Jl ZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzAwLDcgKzcwMCw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMKICAgIGlu dCBzdGFja19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRf ZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTUzOTYsMTMgKzUzOTYsMTMgQEAg bWlwc19vMzJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0 IHZhbHVlICpmdW5jdGlvbiwKK0BAIC01NDE0LDEzICs1NDE0LDEzIEBAIG1pcHNfbzMyX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqZnVuY3Rp b24sCiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFy ZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTcxNyw3ICs3MTcsNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL21pcHMtdGRlcC5jIGIvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0gdmFs dWVfY29udGVudHMgKGFyZyk7CiAgCi1AQCAtNTg1Niw4ICs1ODU2LDggQEAgbWlwc19vNjRfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5j dGlvbiwKK0BAIC01ODc0LDggKzU4NzQsOCBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAogICAgaW50IGFy Z3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzI4LDcgKzcy OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvbWlwcy10ZGVwLmMgYi9nZGIvbWlwcy10ZGVwLmMKICAg IGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNo KTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9u LCBOVUxMKTsKICAKLUBAIC01OTE3LDEzICs1OTE3LDEzIEBAIG1pcHNfbzY0X3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqZnVuY3Rpb24sCitA QCAtNTkzNSwxMyArNTkzNSwxMyBAQCBtaXBzX282NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAogICAgICAgIGNvbnN0IGdk Yl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAg ICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAo YXJnKSk7CkBAIC05NDQsNyArOTQ0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9zaC10ZGVwLmMgYi9n ZGIvc2gtdGRlcC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL3NwYXJjNjQtdGRlcC5jIGIvZ2RiL3NwYXJj NjQtdGRlcC5jCiAtLS0gYS9nZGIvc3BhcmM2NC10ZGVwLmMKICsrKyBiL2dkYi9zcGFyYzY0LXRk ZXAuYwotQEAgLTEyMDUsNyArMTIwNSw3IEBAIHNwYXJjNjRfMTZfYnl0ZV9hbGlnbl9wIChzdHJ1 Y3QgdHlwZSAqdHlwZSkKK0BAIC0xMjA2LDcgKzEyMDYsNyBAQCBzcGFyYzY0XzE2X2J5dGVfYWxp Z25fcCAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgc3RhdGljIHZvaWQKICBzcGFyYzY0X3N0b3Jl X2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgc3RydWN0IHR5cGUg KnR5cGUsCkBAIC05NTMsNyArOTUzLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9zcGFyYzY0LXRkZXAu YyBiL2dkYi9zcGFyYzY0LXRkZXAuYwogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0g cmVnY2FjaGUtPmFyY2ggKCk7CiAgICBpbnQgbGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwotQEAg LTEyNjUsNyArMTI2NSw3IEBAIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzIChzdHJ1Y3Qg cmVnY2FjaGUgKnJlZ2NhY2hlLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC0xMjY2LDcgKzEyNjYs NyBAQCBzcGFyYzY0X3N0b3JlX2Zsb2F0aW5nX2ZpZWxkcyAoc3RydWN0IHJlZ2NhY2hlICpyZWdj YWNoZSwgc3RydWN0IHR5cGUgKnR5cGUsCiAgICAgICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJ RUxEUyAodHlwZSk7IGkrKykKICAJewogIAkgIHN0cnVjdCB0eXBlICpzdWJ0eXBlID0gY2hlY2tf dHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSk7CkBAIC05NjIsNyArOTYyLDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9zcGFyYzY0LXRkZXAuYyBiL2dkYi9zcGFyYzY0LXRkZXAuYwogIAog IAkgIHNwYXJjNjRfc3RvcmVfZmxvYXRpbmdfZmllbGRzIChyZWdjYWNoZSwgc3VidHlwZSwgdmFs YnVmLAogIAkJCQkJIGVsZW1lbnQsIHN1YnBvcyk7Ci1AQCAtMTI5Nyw3ICsxMjk3LDcgQEAgc3Bh cmM2NF9zdG9yZV9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0 cnVjdCB0eXBlICp0eXBlLAorQEAgLTEyOTgsNyArMTI5OCw3IEBAIHNwYXJjNjRfc3RvcmVfZmxv YXRpbmdfZmllbGRzIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwKICAKICBzdGF0aWMgdm9pZAogIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVsZHMgKHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtOTcxLDcgKzk3 MSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvc3BhcmM2NC10ZGVwLmMgYi9nZGIvc3BhcmM2NC10ZGVw LmMKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IHJlZ2NhY2hlLT5hcmNoICgpOwog IAotQEAgLTEzNTMsNyArMTM1Myw3IEBAIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVsZHMg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTEzNTQs NyArMTM1NCw3IEBAIHNwYXJjNjRfZXh0cmFjdF9mbG9hdGluZ19maWVsZHMgKHN0cnVjdCByZWdj YWNoZSAqcmVnY2FjaGUsIHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgIGZvciAoaSA9IDA7IGkg PCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpKyspCiAgCXsKICAJICBzdHJ1Y3QgdHlwZSAqc3VidHlw ZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkpOwpAQCAtOTgwLDcg Kzk4MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvc3BhcmM2NC10ZGVwLmMgYi9nZGIvc3BhcmM2NC10 ZGVwLmMKICAKICAJICBzcGFyYzY0X2V4dHJhY3RfZmxvYXRpbmdfZmllbGRzIChyZWdjYWNoZSwg c3VidHlwZSwgdmFsYnVmLCBzdWJwb3MpOwogIAl9Ci1AQCAtMTM4Niw3ICsxMzg2LDcgQEAgc3Bh cmM2NF9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCBuYXJn cywKK0BAIC0xMzg3LDcgKzEzODcsNyBAQCBzcGFyYzY0X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0 IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IG5hcmdzLAogICAgZm9yIChpID0gMDsgaSA8IG5hcmdz OyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFy Z3NbaV0pOwpAQCAtOTg5LDcgKzk4OSw3IEBAIGRpZmYgLS1naXQgYS9nZGIvc3BhcmM2NC10ZGVw LmMgYi9nZGIvc3BhcmM2NC10ZGVwLmMKICAKICAgICAgICBpZiAoc3BhcmM2NF9zdHJ1Y3R1cmVf b3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAoc3BhcmM2NF9jb21wbGV4X2Zsb2F0aW5nX3AgKHR5 cGUpICYmIGxlbiA9PSAzMikpCi1AQCAtMTQ4Niw3ICsxNDg2LDcgQEAgc3BhcmM2NF9zdG9yZV9h cmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCBuYXJncywKK0BAIC0xNDg3 LDcgKzE0ODcsNyBAQCBzcGFyYzY0X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwgaW50IG5hcmdzLAogICAgICB7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGJ1 ZiA9IHZhbHVlX2NvbnRlbnRzIChhcmdzW2ldKTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9 IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOwpAQCAtMTAyOCwxMCArMTAyOCwxMCBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL3RpYzZ4LXRkZXAuYyBiL2dkYi90aWM2eC10ZGVwLmMKICAgIGludCBzdGFja19vZmZz ZXQgPSA0OwogLSAgaW50IHJlZmVyZW5jZXNfb2Zmc2V0ID0gNDsKICsgIExPTkdFU1QgcmVmZXJl bmNlc19vZmZzZXQgPSA0OwotICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25f YWRkciAoZnVuY3Rpb24sIE5VTEwpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBn ZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgc3RydWN0IHR5cGUgKmZ1bmNfdHlwZSA9 IHZhbHVlX3R5cGUgKGZ1bmN0aW9uKTsKLUBAIC05MTUsNyArOTE1LDcgQEAgdGljNnhfcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlv biwKKyAgIC8qIFRoZSBmaXJzdCBhcmcgcGFzc2VkIG9uIHN0YWNrLiAgTW9zdGx5IHRoZSBmaXJz dCAxMCBhcmdzIGFyZSBwYXNzZWQgYnkKK0BAIC05MTQsNyArOTE0LDcgQEAgdGljNnhfcHVzaF9k dW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlv biwKICAgIC8qIE5vdyBtYWtlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIGFyZ3MuICAqLwog ICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAg LTEwNDAsNyArMTA0MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvdGljNngtdGRlcC5jIGIvZ2RiL3Rp YzZ4LXRkZXAuYwogICAgICAgIGlmIChhcmdudW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJlZmVyZW5j ZXNfb2Zmc2V0ICs9IGxlbjsKICAgICAgICBzdGFja19vZmZzZXQgKz0gbGVuOwotQEAgLTkzNCw3 ICs5MzQsNyBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0aW9uLAorQEAgLTkzMyw3ICs5MzMsNyBAQCB0aWM2eF9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdmFsdWUgKmZ1bmN0 aW9uLAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICAgICAgc3RydWN0IHZhbHVlICph cmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tf dHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMDQ5LDcgKzEwNDksNyBAQCBkaWZmIC0t Z2l0IGEvZ2RiL3RpYzZ4LXRkZXAuYyBiL2dkYi90aWM2eC10ZGVwLmMKICAgICAgICBlbnVtIHR5 cGVfY29kZSB0eXBlY29kZSA9IFRZUEVfQ09ERSAoYXJnX3R5cGUpOwogIAogICAgICAgIHZhbCA9 IHZhbHVlX2NvbnRlbnRzIChhcmcpOwotQEAgLTEwOTAsNyArMTA5MCw4IEBAIHRpYzZ4X3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqZnVuY3Rp b24sCitAQCAtMTA4OSw3ICsxMDg5LDggQEAgdGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHZhbHVlICpmdW5jdGlvbiwKICAJICAgIH0KICAJICBl bHNlCiAgCSAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLApAQCAtMTEzMSw3 ICsxMTMxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi94c3Rvcm15MTYtdGRlcC5jIGIvZ2RiL3hzdG9y bXkxNi10ZGVwLmMKIGRpZmYgLS1naXQgYS9nZGIveHRlbnNhLXRkZXAuYyBiL2dkYi94dGVuc2Et dGRlcC5jCiAtLS0gYS9nZGIveHRlbnNhLXRkZXAuYwogKysrIGIvZ2RiL3h0ZW5zYS10ZGVwLmMK LUBAIC0xNjI2LDggKzE2MjYsNyBAQCB4dGVuc2Ffc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKK0BAIC0xNjI1LDggKzE2MjUsNyBAQCB4dGVuc2Ffc3RvcmVfcmV0dXJuX3Zh bHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAKICAgICAgICBpZiAobGVuID4gKGNhbGxzaXplID4g OCA/IDggOiAxNikpCiAgCWludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0x MTQxLDcgKzExNDEsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3h0ZW5zYS10ZGVwLmMgYi9nZGIveHRl bnNhLXRkZXAuYwogICAgICAgIGFyZWcgPSBhcnJlZ19udW1iZXIgKGdkYmFyY2gsCiAgCQkJICAg Z2RiYXJjaF90ZGVwIChnZGJhcmNoKS0+YTBfYmFzZSArIDIgKyBjYWxsc2l6ZSwgd2IpOwogIAot QEAgLTE3MDEsMTggKzE3MDAsMTggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCitAQCAtMTcwMCwxOCArMTY5OSwxOCBAQCB4dGVuc2FfcHVzaF9kdW1t eV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4g Ynl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgaTsKQEAg LTExNjMsNyArMTE2Myw3IEBAIGRpZmYgLS1naXQgYS9nZGIveHRlbnNhLXRkZXAuYyBiL2dkYi94 dGVuc2EtdGRlcC5jCiAgICAgICAgaW50IHJlZ25vOwkJLyogcmVnbm8gaWYgaW4gcmVnaXN0ZXIu ICAqLwogICAgICB9IHU7CiAgICB9OwotQEAgLTE3MzYsOSArMTczNSwxMCBAQCB4dGVuc2FfcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC0xNzM1LDkgKzE3MzQs MTAgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAg ICAgICAgICB7CiAgCSAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogIAkgIHN0cnVjdCB0 eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtMTE3 Nyw3ICsxMTc3LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi94dGVuc2EtdGRlcC5jIGIvZ2RiL3h0ZW5z YS10ZGVwLmMKICAJICBzd2l0Y2ggKFRZUEVfQ09ERSAoYXJnX3R5cGUpKQogIAkgICAgewogIAkg ICAgY2FzZSBUWVBFX0NPREVfSU5UOgotQEAgLTE4MDgsOCArMTgwOCw4IEBAIHh0ZW5zYV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTE4MDcsOCArMTgwNyw4 IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkg IGluZm8tPmFsaWduID0gVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0 aW5fbG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0KQEAgLTExODcsNyArMTE4Nyw3IEBAIGRpZmYgLS1n aXQgYS9nZGIveHRlbnNhLXRkZXAuYyBiL2dkYi94dGVuc2EtdGRlcC5jCiAgCiAgICAgICAgLyog QWxpZ24gc2l6ZSBhbmQgb25zdGFja19zaXplLiAgKi8KICAgICAgICBzaXplID0gKHNpemUgKyBp bmZvLT5hbGlnbiAtIDEpICYgfihpbmZvLT5hbGlnbiAtIDEpOwotQEAgLTE4NTQsNyArMTg1NCw3 IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAg LTE4NTMsNyArMTg1Myw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoLAogIAogICAgICAgIGlmIChpbmZvLT5vbnN0YWNrKQogIAl7CkBAIC0xMTk2LDcg KzExOTYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3h0ZW5zYS10ZGVwLmMgYi9nZGIveHRlbnNhLXRk ZXAuYwogIAkgIENPUkVfQUREUiBvZmZzZXQgPSBzcCArIGluZm8tPnUub2Zmc2V0OwogIAogIAkg IC8qIE9kZC1zaXplZCBzdHJ1Y3RzIGFyZSBhbGlnbmVkIHRvIHRoZSBsb3dlciBzaWRlIG9mIGEg bWVtb3J5Ci1AQCAtMTg3MCw3ICsxODcwLDcgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTg2OSw3ICsxODY5LDcgQEAgeHRlbnNhX3B1c2hf ZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgCX0KICAgICAgICBlbHNlCiAg CXsKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtYXJyYXl2aWV3LnBhdGNoIGIv Z2RiLXJoYno3OTU0MjQtYml0cG9zLWFycmF5dmlldy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi42MDNhNDc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno3OTU0 MjQtYml0cG9zLWFycmF5dmlldy5wYXRjaApAQCAtMCwwICsxLDYwIEBACitGcm9tIEZFRE9SQV9Q QVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2VyZ2lvIER1cmlnYW4gSnVu aW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAxMiBTZXAgMjAxOCAwMDowMjox NyAtMDQwMAorU3ViamVjdDogZ2RiLXJoYno3OTU0MjQtYml0cG9zLWFycmF5dmlldy5wYXRjaAor Cis7OyBUaGlzIHBhdGNoIGlzIG5lZWRlZCB0byBjb21waWxlIEdEQiBhZnRlciAtV2Vycm9yPW5h cnJvd2luZyBoYXMKKzs7IGJlZW4gZW5hYmxlZCBieSBkZWZhdWx0LgorOzsgQXV0aG9yOiBTZXJn aW8gRHVyaWdhbiBKdW5pb3IuCisKK2RpZmYgLS1naXQgYS9nZGIvY29tbW9uL2FycmF5LXZpZXcu aCBiL2dkYi9jb21tb24vYXJyYXktdmlldy5oCistLS0gYS9nZGIvY29tbW9uL2FycmF5LXZpZXcu aAorKysrIGIvZ2RiL2NvbW1vbi9hcnJheS12aWV3LmgKK0BAIC04NSw3ICs4NSw3IEBAIHB1Ymxp YzoKKyAgIHVzaW5nIHZhbHVlX3R5cGUgPSBUOworICAgdXNpbmcgcmVmZXJlbmNlID0gVCAmOwor ICAgdXNpbmcgY29uc3RfcmVmZXJlbmNlID0gY29uc3QgVCAmOworLSAgdXNpbmcgc2l6ZV90eXBl ID0gc2l6ZV90OworKyAgdXNpbmcgc2l6ZV90eXBlID0gVUxPTkdFU1Q7CisgCisgICAvKiBEZWZh dWx0IGNvbnN0cnVjdGlvbiBjcmVhdGVzIGFuIGVtcHR5IHZpZXcuICAqLworICAgY29uc3RleHBy IGFycmF5X3ZpZXcgKCkgbm9leGNlcHQKK0BAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgorICAg ICAgY291bnQuICAqLworICAgdGVtcGxhdGU8dHlwZW5hbWUgVSwKKyAJICAgdHlwZW5hbWUgPSBS ZXF1aXJlczxEZWNheWVkQ29udmVydGlibGU8VT4+PgorLSAgY29uc3RleHByIGFycmF5X3ZpZXcg KFUgKmFycmF5LCBzaXplX3Qgc2l6ZSkgbm9leGNlcHQKKysgIGNvbnN0ZXhwciBhcnJheV92aWV3 IChVICphcnJheSwgVUxPTkdFU1Qgc2l6ZSkgbm9leGNlcHQKKyAgICAgOiBtX2FycmF5IChhcnJh eSksIG1fc2l6ZSAoc2l6ZSkKKyAgIHt9CisgCitAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoK KyAgIHt9CisgCisgICAvKiBDcmVhdGUgYW4gYXJyYXkgdmlldyBmcm9tIGFuIGFycmF5LiAgKi8K Ky0gIHRlbXBsYXRlPHR5cGVuYW1lIFUsIHNpemVfdCBTaXplLAorKyAgdGVtcGxhdGU8dHlwZW5h bWUgVSwgVUxPTkdFU1QgU2l6ZSwKKyAJICAgdHlwZW5hbWUgPSBSZXF1aXJlczxEZWNheWVkQ29u dmVydGlibGU8VT4+PgorICAgY29uc3RleHByIGFycmF5X3ZpZXcgKFUgKCZhcnJheSlbU2l6ZV0p IG5vZXhjZXB0CisgICAgIDogbV9hcnJheSAoYXJyYXkpLCBtX3NpemUgKFNpemUpCitAQCAtMTYx LDkgKzE2MSw5IEBAIHB1YmxpYzoKKyAgIC8qY29uc3RleHByMTQqLyBUICplbmQgKCkgbm9leGNl cHQgeyByZXR1cm4gbV9hcnJheSArIG1fc2l6ZTsgfQorICAgY29uc3RleHByIGNvbnN0IFQgKmVu ZCAoKSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiBtX2FycmF5ICsgbV9zaXplOyB9CisgCistICAv KmNvbnN0ZXhwcjE0Ki8gcmVmZXJlbmNlIG9wZXJhdG9yW10gKHNpemVfdCBpbmRleCkgbm9leGNl cHQKKysgIC8qY29uc3RleHByMTQqLyByZWZlcmVuY2Ugb3BlcmF0b3JbXSAoVUxPTkdFU1QgaW5k ZXgpIG5vZXhjZXB0CisgICB7IHJldHVybiBtX2FycmF5W2luZGV4XTsgfQorLSAgY29uc3RleHBy IGNvbnN0X3JlZmVyZW5jZSBvcGVyYXRvcltdIChzaXplX3QgaW5kZXgpIGNvbnN0IG5vZXhjZXB0 CisrICBjb25zdGV4cHIgY29uc3RfcmVmZXJlbmNlIG9wZXJhdG9yW10gKFVMT05HRVNUIGluZGV4 KSBjb25zdCBub2V4Y2VwdAorICAgeyByZXR1cm4gbV9hcnJheVtpbmRleF07IH0KKyAKKyAgIGNv bnN0ZXhwciBzaXplX3R5cGUgc2l6ZSAoKSBjb25zdCBub2V4Y2VwdCB7IHJldHVybiBtX3NpemU7 IH0KK0BAIC0xODUsNyArMTg1LDcgQEAgb3BlcmF0b3I9PSAoY29uc3QgZ2RiOjphcnJheV92aWV3 PFQ+ICZsaHMsIGNvbnN0IGdkYjo6YXJyYXlfdmlldzxUPiAmcmhzKQorICAgaWYgKGxocy5zaXpl ICgpICE9IHJocy5zaXplICgpKQorICAgICByZXR1cm4gZmFsc2U7CisgCistICBmb3IgKHNpemVf dCBpID0gMDsgaSA8IGxocy5zaXplICgpOyBpKyspCisrICBmb3IgKFVMT05HRVNUIGkgPSAwOyBp IDwgbGhzLnNpemUgKCk7IGkrKykKKyAgICAgaWYgKCEobGhzW2ldID09IHJoc1tpXSkpCisgICAg ICAgcmV0dXJuIGZhbHNlOworIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9m My5wYXRjaCBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggN2MzYTY2NC4uMDAwMDAwMAotLS0gYS9nZGItcmhiejg4MTg0OS1pcHY2 LTFvZjMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTM0ICswLDAgQEAKLUZyb20gRkVET1JB X1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBK dW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDE4IE1heSAyMDE4IDAxOjI5 OjI0IC0wNDAwCi1TdWJqZWN0OiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKLQotOzsg SW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3IgR0RCL2dkYnNlcnZlciAoUkggQlogODgxODQ5LCBT ZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgotCi1JbXBsZW1lbnQgSVB2NiBzdXBwb3J0IGZvciBHREIv Z2Ric2VydmVyCi0KLVRoaXMgcGF0Y2ggaW1wbGVtZW50cyBJUHY2IHN1cHBvcnQgZm9yIGJvdGgg R0RCIGFuZCBnZGJzZXJ2ZXIuICBCYXNlZAotb24gbXkgcmVzZWFyY2gsIGl0IGlzIHRoZSBmb3Vy dGggYXR0ZW1wdCB0byBkbyB0aGF0IHNpbmNlIDIwMDYuICBTaW5jZQotSSB1c2VkIGlkZWFzIGZy b20gYWxsIG9mIHRoZSBwcmV2aW91cyBwYXRjaGVzLCBJIGFsc28gYWRkZWQgdGhlaXIKLWF1dGhv cnMncyBuYW1lcyBvbiB0aGUgQ2hhbmdlTG9ncyBhcyBhIHdheSB0byByZWNvZ25pemUgdGhlaXIK LWVmZm9ydHMuICBGb3IgcmVmZXJlbmNlIHNha2UsIHlvdSBjYW4gZmluZCB0aGUgcHJldmlvdXMg YXR0ZW1wdHMgYXQ6Ci0KLSAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDA2LTA5L21zZzAwMTkyLmh0bWwKLQotICBodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1w YXRjaGVzLzIwMTQtMDIvbXNnMDAyNDguaHRtbAotCi0gIGh0dHBzOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDIyNi5odG1sCi0KLVRoZSBiYXNpYyBpZGVhIGJl aGluZCB0aGUgcGF0Y2ggaXMgdG8gc3RhcnQgdXNpbmcgdGhlIG5ldwotJ2dldGFkZHJpbmZvJy8n Z2V0bmFtZWluZm8nIGNhbGxzLCB3aGljaCBhcmUgcmVzcG9uc2libGUgZm9yCi10cmFuc2xhdGlu ZyBuYW1lcyBhbmQgYWRkcmVzc2VzIGluIGEgcHJvdG9jb2wtaW5kZXBlbmRlbnQgd2F5LiAgVGhp cwotbWVhbnMgdGhhdCBpZiB3ZSBldmVyIGhhdmUgYSBuZXcgdmVyc2lvbiBvZiB0aGUgSVAgcHJv dG9jb2wsIHdlIHdvbid0Ci1uZWVkIHRvIGNoYW5nZSB0aGUgY29kZSBhZ2FpbiAob3IsIGF0IGxl YXN0LCB3b24ndCBoYXZlIHRvIGNoYW5nZSB0aGUKLW1ham9yaXR5IG9mIHRoZSBjb2RlKS4KLQot VGhlIGZ1bmN0aW9uICdnZXRhZGRyaW5mbycgcmV0dXJucyBhIGxpbmtlZCBsaXN0IG9mIHBvc3Np YmxlIGFkZHJlc3NlcwotdG8gY29ubmVjdCB0by4gIERlYWxpbmcgd2l0aCBtdWx0aXBsZSBhZGRy ZXNzZXMgcHJvdmVkIHRvIGJlIGEgaGFyZAotdGFzayB3aXRoIHRoZSBjdXJyZW50IFRDUCBhdXRv LXJldHJ5IG1lY2hhbmlzbSBpbXBsZW1lbnRlZCBvbgotc2VyLXRjcDpuZXRfb3Blbi4gIEZvciBl eGFtcGxlLCB3aGVuIGdkYnNlcnZlciBsaXN0ZW5lZCBvbmx5IG9uIGFuCi1JUHY0IHNvY2tldDoK LQotICAkIC4vZ2Ric2VydmVyIC0tb25jZSAxMjcuMC4wLjE6MTIzNCAuL2Eub3V0Ci0KLWFuZCBH REIgd2FzIGluc3RydWN0ZWQgdG8gdHJ5IHRvIGNvbm5lY3QgdG8gYm90aCBJUHY2IGFuZCBJUHY0 Ci1zb2NrZXRzOgotCi0gICQgLi9nZGIgLWV4ICd0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIGxvY2Fs aG9zdDoxMjM0JyAuL2Eub3V0Ci0KLXRoZSB1c2VyIHdvdWxkIG5vdGljZSBhIHNvbWV3aGF0IGJp ZyBkZWxheSBiZWZvcmUgR0RCIHdhcyBhYmxlIHRvCi1jb25uZWN0IHRvIHRoZSBJUHY0IHNvY2tl dC4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSBHREIgd2FzIHRyeWluZyB0bwotY29ubmVjdCB0byB0 aGUgSVB2NiBzb2NrZXQgZmlyc3QsIGFuZCBoYWQgdG8gd2FpdCB1bnRpbCB0aGUgY29ubmVjdGlv bgotdGltZWQgb3V0IGJlZm9yZSBpdCB0cmllZCB0byBjb25uZWN0IHRvIHRoZSBJUHY0IHNvY2tl dC4KLQotRm9yIHRoYXQgcmVhc29uLCBJIGhhZCB0byByZXdyaXRlIHRoZSBtYWluIGxvb3AgYW5k IGltcGxlbWVudCBhIG5ldwotbWV0aG9kIGZvciBoYW5kbGluZyBtdWx0aXBsZSBjb25uZWN0aW9u cy4gIEFmdGVyIHNvbWUgZGlzY3Vzc2lvbiwKLVBlZHJvIGFuZCBJIGFncmVlZCBvbiB0aGUgZm9s bG93aW5nIGFsZ29yaXRobToKLQotICAxKSBGb3IgZWFjaCBlbnRyeSByZXR1cm5lZCBieSAnZ2V0 YWRkcmluZm8nLCB3ZSB0cnkgdG8gb3BlbiBhIHNvY2tldAotICBhbmQgY29ubmVjdCB0byBpdC4K LQotICAyLmEpIElmIHdlIGhhdmUgYSBzdWNjZXNzZnVsICdjb25uZWN0Jywgd2UganVzdCB1c2Ug dGhhdCBjb25uZWN0aW9uLgotCi0gIDIuYikgSWYgd2UgZG9uJ3QgaGF2ZSBhIHN1Y2Nlc3NmdWxs ICdjb25uZWN0JywgYnV0IGlmIHdlJ3ZlIGdvdCBhCi0gIEVDT05OUkVGVVNFRCAobWVhbmluZyB0 aGUgdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQpLCB3ZSBrZWVwIHRyYWNrCi0gIG9mIHRoaXMg ZmFjdCBieSB1c2luZyBhIGZsYWcuCi0KLSAgMi5jKSBJZiB3ZSBkb24ndCBoYXZlIGEgc3VjY2Vz c2Z1bGwgJ2Nvbm5lY3QnLCBidXQgaWYgd2UndmUgZ290IGEKLSAgRUlOUFJPR1JFU1MgKG1lYW5p bmcgdGhhdCB0aGUgY29ubmVjdGlvbiBpcyBpbiBwcm9ncmVzcyksIHdlIHBlcmZvcm0KLSAgYSAn c2VsZWN0JyBjYWxsIG9uIHRoZSBzb2NrZXQgdW50aWwgd2UgaGF2ZSBhIHJlc3VsdCAoZWl0aGVy IGEKLSAgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLCBvciBhbiBlcnJvciBvbiB0aGUgc29ja2V0KS4K LQotICAzKSBJZiB0Y3BfYXV0b19yZXRyeSBpcyB0cnVlLCBhbmQgd2UgaGF2ZW4ndCBnb3R0ZW4g YSBzdWNjZXNzZnVsCi0gIGNvbm5lY3Rpb24sIGFuZCBhdCBsZWFzdCBvbmUgb2Ygb3VyIGF0dGVt cHRzIGZhaWxlZCB3aXRoCi0gIEVDT05OUkVGVVNFRCwgdGhlbiB3ZSB3YWl0IGEgbGl0dGxlIGJp dCAoaS5lLiwgY2FsbAotICAnd2FpdF9mb3JfY29ubmVjdCcpLCBjaGVjayB0byBzZWUgaWYgdGhl cmUgd2FzIGEKLSAgdGltZW91dC9pbnRlcnJ1cHRpb24gKGluIHdoaWNoIGNhc2Ugd2UgYmFpbCBv dXQpLCBhbmQgdGhlbiBnbyBiYWNrCi0gIHRvICgxKS4KLQotQWZ0ZXIgbXVsdGlwbGUgdGVzdHMs IEkgd2FzIGFibGUgdG8gY29ubmVjdCB3aXRob3V0IGRlbGF5IG9uIHRoZQotc2NlbmFyaW8gZGVz Y3JpYmVkIGFib3ZlLCBhbmQgd2FzIGFsc28gYWJsZSB0byBjb25uZWN0IGluIGFsbCBvdGhlcgot dHlwZXMgb2Ygc2NlbmFyaW9zLgotCi1JIGFsc28gaW1wbGVtZW50ZWQgc29tZSBob3N0bmFtZSBw YXJzaW5nIGZ1bmN0aW9ucyAoYWxvbmcgd2l0aCB0aGVpcgotY29ycmVzcG9uZGluZyB1bml0IHRl c3RzKSB3aGljaCBhcmUgdXNlZCB0byBoZWxwIEdEQiBhbmQgZ2Ric2VydmVyIHRvCi1wYXJzZSBo b3N0bmFtZSBzdHJpbmdzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiAgVGhlc2UgbmV3IGZ1bmN0aW9u cyBhcmUKLWxpdmluZyBpbnNpZGUgY29tbW9uL25ldHN0dWZmLltjaF0uICBJJ3ZlIGhhZCB0byBk byB0aGF0IHNpbmNlIElQdjYKLWludHJvZHVjZXMgYSBuZXcgVVJMIHNjaGVtZSwgd2hpY2ggZGVm aW5lcyB0aGF0IHNxdWFyZSBicmFja2V0cyBjYW4gYmUKLXVzZWQgdG8gZW5jbG9zZSB0aGUgaG9z dCBwYXJ0IGFuZCBkaWZmZXJlbnRpYXRlIGl0IGZyb20gdGhlCi1wb3J0IChlLmcuLCAiWzo6MV06 MTIzNCIgbWVhbnMgImhvc3QgOjoxLCBwb3J0IDEyMzQiKS4gIEkgc3BlbnQgc29tZQotdGltZSB0 aGlua2luZyBhYm91dCBhIHJlYXNvbmFibGUgd2F5IHRvIGludGVycHJldCB3aGF0IHRoZSB1c2Vy IHdhbnRzLAotYW5kIEkgY2FtZSB1cCB3aXRoIHRoZSBmb2xsb3dpbmc6Ci0KLSAgLSBJZiB0aGUg dXNlciBoYXMgcHJvdmlkZWQgYSBwcmVmaXggdGhhdCBkb2Vzbid0IHNwZWNpZnkgdGhlIHByb3Rv Y29sCi0gICAgdmVyc2lvbiAoaS5lLiwgInRjcDoiIG9yICJ1ZHA6IiksIG9yIGlmIHRoZSB1c2Vy IGhhcyBub3QgcHJvdmlkZWQKLSAgICBhbnkgcHJlZml4LCBkb24ndCBtYWtlIGFueSBhc3N1bXB0 aW9ucyAoaS5lLiwgYXNzdW1lIEFGX1VOU1BFQyB3aGVuCi0gICAgZGVhbGluZyB3aXRoICdnZXRh ZGRyaW5mbycpICp1bmxlc3MqIHRoZSBob3N0IHN0YXJ0cyB3aXRoICJbIiAoaW4KLSAgICB3aGlj aCBjYXNlLCBhc3N1bWUgaXQncyBhbiBJUHY2IGhvc3QpLgotCi0gIC0gSWYgdGhlIHVzZXIgaGFz IHByb3ZpZGVkIGEgcHJlZml4IHRoYXQgZG9lcyBzcGVjaWZ5IHRoZSBwcm90b2NvbAotICAgIHZl cnNpb24gKGkuZS4sICJ0Y3A0OiIsICJ0Y3A2OiIsICJ1ZHA0OiIgb3IgInVkcDY6IiksIHRoZW4g cmVzcGVjdAotICAgIHRoYXQuCi0KLVRoaXMgbWV0aG9kIGRvZXNuJ3QgZm9sbG93IHN0cmljdGx5 IHdoYXQgUkZDIDI3MzIgcHJvcG9zZXMgKHRoYXQKLWxpdGVyYWwgSVB2NiBhZGRyZXNzZXMgc2hv dWxkIGJlIHByb3ZpZGVkIGVuY2xvc2VkIGluICJbIiBhbmQgIl0iKQotYmVjYXVzZSBJUHY2IGFk ZHJlc3NlcyBzdGlsbCBjYW4gYmUgcHJvdmlkZWQgd2l0aG91dCBzcXVhcmUgYnJhY2tldHMKLWlu IG91ciBjYXNlLCBidXQgc2luY2Ugd2UgaGF2ZSBwcmVmaXhlcyB0byBzcGVjaWZ5IHByb3RvY29s IHZlcnNpb25zIEkKLXRoaW5rIHRoaXMgaXMgbm90IGFuIGlzc3VlLgotCi1Bbm90aGVyIHRoaW5n IHdvcnRoIG1lbnRpb25pbmcgaXMgdGhlIG5ldyAnR0RCX1RFU1RfU09DS0VUSE9TVCcKLXRlc3Rj YXNlIHBhcmFtZXRlciwgd2hpY2ggbWFrZXMgaXQgcG9zc2libGUgdG8gc3BlY2lmeSB0aGUKLWhv c3RuYW1lICh3aXRob3V0IHRoZSBwb3J0KSB0byBiZSB1c2VkIHdoZW4gdGVzdGluZyBHREIgYW5k Ci1nZGJzZXJ2ZXIuICBGb3IgZXhhbXBsZSwgdG8gcnVuIElQdjYgdGVzdHM6Ci0KLSAgJCBtYWtl IGNoZWNrLWdkYiBSVU5URVNURkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9dGNwNjpbOjoxXScK LQotT3IsIHRvIHJ1biBJUHY0IHRlc3RzOgotCi0gICQgbWFrZSBjaGVjay1nZGIgUlVOVEVTVEZM QUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDQ6MTI3LjAuMC4xJwotCi1UaGlzIHJlcXVpcmVk IGEgZmV3IGNoYW5nZXMgb24gdGhlIGdkYnNlcnZlci1iYXNlLmV4cCwgYW5kIGFsc28gYQotbWlu aW1hbCBhZGp1c3RtZW50IG9uIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4 cC4KLQotRmluYWxseSwgSSd2ZSBpbXBsZW1lbnRlZCBhIG5ldyB0ZXN0Y2FzZSwKLWdkYi5zZXJ2 ZXIvc2VydmVyLWNvbm5lY3QuZXhwLCB3aGljaCBpcyBzdXBwb3NlZCB0byBydW4gb24gdGhlIG5h dGl2ZQotaG9zdCBhbmQgcGVyZm9ybSB2YXJpb3VzICJzbW9rZSB0ZXN0cyIgdXNpbmcgZGlmZmVy ZW50IGNvbm5lY3Rpb24KLW1ldGhvZHMuCi0KLVRoaXMgcGF0Y2ggaGFzIGJlZW4gcmVncmVzc2lv bi10ZXN0ZWQgb24gQnVpbGRCb3QgYW5kIGxvY2FsbHksIGFuZAotYWxzbyBidWlsdCB1c2luZyBh IHg4Nl82NC13NjQtbWluZ3czMiBHQ0MsIGFuZCBubyBwcm9ibGVtcyB3ZXJlIGZvdW5kLgotCi1n ZGIvQ2hhbmdlTG9nOgotMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lv ZGpAcmVkaGF0LmNvbT4KLQkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRo YXQuY29tPgotCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgotCSAgICBU c3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+Ci0JICAgIFBlZHJvIEFsdmVzICA8cGFs dmVzQHJlZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmluIChTVUJESVJfVU5JVFRFU1RTX1NSQ1Mp OiBBZGQKLQkndW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYycuCi0J KENPTU1PTl9TRklMRVMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5jJy4KLQkoSEZJTEVTX05PX1NS Q0RJUik6IEFkZCAnY29tbW9uL25ldHN0dWZmLmgnLgotCSogTkVXUyAoQ2hhbmdlcyBzaW5jZSBH REIgOC4yKTogTWVudGlvbiBJUHY2IHN1cHBvcnQuCi0JKiBjb21tb24vbmV0c3R1ZmYuYzogTmV3 IGZpbGUuCi0JKiBjb21tb24vbmV0c3R1ZmYuaDogTmV3IGZpbGUuCi0JKiBzZXItdGNwLmM6IElu Y2x1ZGUgJ25ldHN0dWZmLmgnIGFuZCAnd3NwaWFwaS5oJy4KLQkod2FpdF9mb3JfY29ubmVjdCk6 IFVwZGF0ZSBjb21tZW50LiAgTmV3IHBhcmFtZXRlcgotCSdnZGI6Om9wdGlvbmFsPGludD4gc29j aycgaW5zdGVhZCBvZiAnc3RydWN0IHNlcmlhbCAqc2NiJy4KLQlVc2UgJ3NvY2snIGRpcmVjdGx5 IGluc3RlYWQgb2YgJ3NjYi0+ZmQnLgotCSh0cnlfY29ubmVjdCk6IE5ldyBmdW5jdGlvbiwgd2l0 aCBjb2RlIGZyb20gJ25ldF9vcGVuJy4KLQkobmV0X29wZW4pOiBSZXdyaXRlIG1haW4gbG9vcCB0 byBkZWFsIHdpdGggbXVsdGlwbGUKLQlzb2NrZXRzL2FkZHJlc3Nlcy4gIEhhbmRsZSBJUHY2LXN0 eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4K LQkqIHVuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmM6IE5ldyBmaWxl LgotCi1nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2Fu IEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdt YWlsLmNvbT4KLQkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotCi0JKiBN YWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkICckKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMnLgot CShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4KLQkoR0RCUkVQTEFZX09CUyk6IExpa2V3 aXNlLgotCSogZ2RicmVwbGF5LmM6IEluY2x1ZGUgJ3dzcGlhcGkuaCcgYW5kICduZXRzdHVmZi5o Jy4KLQkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2NgotCWNvbm5lY3Rp b25zLgotCSogcmVtb3RlLXV0aWxzLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnLCAnZmlsZXN0dWZm LmgnCi0JYW5kICd3c3BpYXBpLmgnLgotCShoYW5kbGVfYWNjZXB0X2V2ZW50KTogQWNjZXB0IGNv bm5lY3Rpb25zIGZyb20gSVB2NiBzb3VyY2VzLgotCShyZW1vdGVfcHJlcGFyZSk6IEhhbmRsZSBJ UHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0 aW9ucy4KLQkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgcHJpbnRpbmcgY29u bmVjdGlvbnMgZnJvbQotCUlQdjYgc291cmNlcy4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 Ci0yMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29t PgotCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0JICAg IFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci0JICAgIFRzdXRvbXUgU2VraSAg PHNla2lyaWtpQGdtYWlsLmNvbT4KLQotCSogUkVBRE1FIChUZXN0c3VpdGUgUGFyYW1ldGVycyk6 IE1lbnRpb24gbmV3ICdHREJfVEVTVF9TT0NLRVRIT1NUJwotCXBhcmFtZXRlci4KLQkqIGJvYXJk cy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cDogRG8gbm90IHNldCAnc29ja2V0aG9zdCcK LQlieSBkZWZhdWx0LgotCSogYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4K LQkqIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cDogSW1wcm92ZSByZWdl eHAgdXNlZAotCWZvciBkZXRlY3Rpbmcgd2hlbiBhIHJlbW90ZSBkZWJ1Z2dpbmcgY29ubmVjdGlv biBzdWNjZWVkcy4KLQkqIGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4K LQkqIGxpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZlcl9kZWZhdWx0X2dldF9jb21t X3BvcnQpOgotCURvIG5vdCBwcmVmaXggdGhlIHBvcnQgbnVtYmVyIHdpdGggIjoiLgotCShnZGJz ZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQK LQlzdXBwb3J0IGZvciBkZXRlY3RpbmcgYW5kIHVzaW5nIGl0LiAgQWRkICckZGVidWdob3N0X2dk YnNlcnZlcicKLQl0byB0aGUgbGlzdCBvZiBhcmd1bWVudHMgdXNlZCB0byBzdGFydCBnZGJzZXJ2 ZXIuICBIYW5kbGUgY2FzZQotCXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGEgbmV0d29y ayBuYW1lLgotCi1nZGIvZG9jL0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2Fu IEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdt YWlsLmNvbT4KLQkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotCi0JKiBn ZGIudGV4aW5mbyAoUmVtb3RlIENvbm5lY3Rpb24gQ29tbWFuZHMpOiBBZGQgZXhwbGFuYXRpb24K LQlhYm91dCBuZXcgSVB2NiBzdXBwb3J0LiAgQWRkIG5ldyBjb25uZWN0aW9uIHByZWZpeGVzLgot Ci1kaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCi0tLS0gYS9n ZGIvTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTQzMCw2ICs0MzAsNyBA QCBTVUJESVJfVU5JVFRFU1RTX1NSQ1MgPSBcCi0gCXVuaXR0ZXN0cy9vZmZzZXQtdHlwZS1zZWxm dGVzdHMuYyBcCi0gCXVuaXR0ZXN0cy9vYnNlcnZhYmxlLXNlbGZ0ZXN0cy5jIFwKLSAJdW5pdHRl c3RzL29wdGlvbmFsLXNlbGZ0ZXN0cy5jIFwKLSsJdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24t c3BlYy1zZWxmdGVzdHMuYyBcCi0gCXVuaXR0ZXN0cy9wdGlkLXNlbGZ0ZXN0cy5jIFwKLSAJdW5p dHRlc3RzL3JzcC1sb3ctc2VsZnRlc3RzLmMgXAotIAl1bml0dGVzdHMvc2NvcGVkX2ZkLXNlbGZ0 ZXN0cy5jIFwKLUBAIC05NjcsNiArOTY4LDcgQEAgQ09NTU9OX1NGSUxFUyA9IFwKLSAJY29tbW9u L2pvYi1jb250cm9sLmMgXAotIAljb21tb24vZ2RiX3RpbGRlX2V4cGFuZC5jIFwKLSAJY29tbW9u L2dkYl92ZWNzLmMgXAotKwljb21tb24vbmV0c3R1ZmYuYyBcCi0gCWNvbW1vbi9uZXctb3AuYyBc Ci0gCWNvbW1vbi9wYXRoc3R1ZmYuYyBcCi0gCWNvbW1vbi9wcmludC11dGlscy5jIFwKLUBAIC0x NDQ4LDYgKzE0NTAsNyBAQCBIRklMRVNfTk9fU1JDRElSID0gXAotIAljb21tb24vZ2RiX3ZlY3Mu aCBcCi0gCWNvbW1vbi9nZGJfd2FpdC5oIFwKLSAJY29tbW9uL2NvbW1vbi1pbmZlcmlvci5oIFwK LSsJY29tbW9uL25ldHN0dWZmLmggXAotIAljb21tb24vaG9zdC1kZWZzLmggXAotIAljb21tb24v cGF0aHN0dWZmLmggXAotIAljb21tb24vcHJpbnQtdXRpbHMuaCBcCi1kaWZmIC0tZ2l0IGEvZ2Ri L05FV1MgYi9nZGIvTkVXUwotLS0tIGEvZ2RiL05FV1MKLSsrKyBiL2dkYi9ORVdTCi1AQCAtMSw2 ICsxLDEyIEBACi0gCQlXaGF0IGhhcyBjaGFuZ2VkIGluIEdEQj8KLSAJICAgICAoT3JnYW5pemVk IHJlbGVhc2UgYnkgcmVsZWFzZSkKLSAKLSsqKiogQ2hhbmdlcyBzaW5jZSBHREIgOC4yCi0rCi0r KiBHREIgYW5kIEdEQnNlcnZlciBub3cgc3VwcG9ydCBJUHY2IGNvbm5lY3Rpb25zLiAgSVB2NiBh ZGRyZXNzZXMKLSsgIGNhbiBiZSBwYXNzZWQgdXNpbmcgdGhlICdbQUREUkVTU106UE9SVCcgbm90 YXRpb24sIG9yIHRoZSByZWd1bGFyCi0rICAnQUREUkVTUzpQT1JUJyBtZXRob2QuCi0rCi0gKioq IENoYW5nZXMgaW4gR0RCIDguMgotIAotICogVGhlICdzZXQgZGlzYXNzZW1ibGVyLW9wdGlvbnMn IGNvbW1hbmQgbm93IHN1cHBvcnRzIHNwZWNpZnlpbmcgb3B0aW9ucwotZGlmZiAtLWdpdCBhL2dk Yi9jb21tb24vbmV0c3R1ZmYuYyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYwotbmV3IGZpbGUgbW9k ZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYwotQEAg LTAsMCArMSwxNTUgQEAKLSsvKiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCi0rICAgQ29w eXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCi0rCi0rI2luY2x1ZGUgImNvbW1vbi1kZWZzLmgiCi0rI2luY2x1ZGUgIm5l dHN0dWZmLmgiCi0rI2luY2x1ZGUgPGFsZ29yaXRobT4KLSsKLSsjaWZkZWYgVVNFX1dJTjMyQVBJ Ci0rI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSsjZWxzZQot KyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+Ci0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotKyNpbmNs dWRlIDxuZXRkYi5oPgotKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPG5ldGlu ZXQvdGNwLmg+Ci0rI2VuZGlmCi0rCi0rLyogU2VlIGNvbW1vbi9uZXRzdHVmZi5oLiAgKi8KLSsK LStzY29wZWRfZnJlZV9hZGRyaW5mbzo6fnNjb3BlZF9mcmVlX2FkZHJpbmZvICgpCi0rewotKyAg ZnJlZWFkZHJpbmZvIChtX3Jlcyk7Ci0rfQotKwotKy8qIFNlZSBjb21tb24vbmV0c3R1ZmYuaC4g ICovCi0rCi0rcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYwotK3BhcnNlX2Nvbm5lY3Rpb25fc3BlY193 aXRob3V0X3ByZWZpeCAoc3RkOjpzdHJpbmcgc3BlYywgc3RydWN0IGFkZHJpbmZvICpoaW50KQot K3sKLSsgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0OwotKyAgc2l6ZV90IGxhc3RfY29sb25f cG9zID0gMDsKLSsgIC8qIFdlJ3JlIGRlYWxpbmcgd2l0aCBJUHY2IGlmOgotKwotKyAgICAgLSBh aV9mYW1pbHkgaXMgQUZfSU5FVDYsIG9yCi0rICAgICAtIGFpX2ZhbWlseSBpcyBub3QgQUZfSU5F VCwgYW5kCi0rICAgICAgIC0gc3BlY1swXSBpcyAnWycsIG9yCi0rICAgICAgIC0gdGhlIG51bWJl ciBvZiAnOicgb24gc3BlYyBpcyBncmVhdGVyIHRoYW4gMS4gICovCi0rICBib29sIGlzX2lwdjYg PSAoaGludC0+YWlfZmFtaWx5ID09IEFGX0lORVQ2Ci0rCQkgIHx8IChoaW50LT5haV9mYW1pbHkg IT0gQUZfSU5FVAotKwkJICAgICAgJiYgKHNwZWNbMF0gPT0gJ1snCi0rCQkJICB8fCBzdGQ6OmNv dW50IChzcGVjLmJlZ2luICgpLAotKwkJCQkJIHNwZWMuZW5kICgpLCAnOicpID4gMSkpKTsKLSsK LSsgIGlmIChpc19pcHY2KQotKyAgICB7Ci0rICAgICAgaWYgKHNwZWNbMF0gPT0gJ1snKQotKwl7 Ci0rCSAgLyogSVB2NiBhZGRyZXNzZXMgY2FuIGJlIHdyaXR0ZW4gYXMgJ1tBRERSXTpQT1JUJywg YW5kIHdlCi0rCSAgICAgc3VwcG9ydCB0aGlzIG5vdGF0aW9uLiAgKi8KLSsJICBzaXplX3QgY2xv c2VfYnJhY2tldF9wb3MgPSBzcGVjLmZpbmRfZmlyc3Rfb2YgKCddJyk7Ci0rCi0rCSAgaWYgKGNs b3NlX2JyYWNrZXRfcG9zID09IHN0ZDo6c3RyaW5nOjpucG9zKQotKwkgICAgZXJyb3IgKF8oIk1p c3NpbmcgY2xvc2UgYnJhY2tldCBpbiBob3N0bmFtZSAnJXMnIiksCi0rCQkgICBzcGVjLmNfc3Ry ICgpKTsKLSsKLSsJICBoaW50LT5haV9mYW1pbHkgPSBBRl9JTkVUNjsKLSsKLSsJICBjb25zdCBj aGFyIGMgPSBzcGVjW2Nsb3NlX2JyYWNrZXRfcG9zICsgMV07Ci0rCi0rCSAgaWYgKGMgPT0gJ1ww JykKLSsJICAgIGxhc3RfY29sb25fcG9zID0gc3RkOjpzdHJpbmc6Om5wb3M7Ci0rCSAgZWxzZSBp ZiAoYyAhPSAnOicpCi0rCSAgICBlcnJvciAoXygiSW52YWxpZCBjcnVmdCBhZnRlciBjbG9zZSBi cmFja2V0IGluICclcyciKSwKLSsJCSAgIHNwZWMuY19zdHIgKCkpOwotKwotKwkgIC8qIEVyYXNl IGJvdGggJ1snIGFuZCAnXScuICAqLwotKwkgIHNwZWMuZXJhc2UgKDAsIDEpOwotKwkgIHNwZWMu ZXJhc2UgKGNsb3NlX2JyYWNrZXRfcG9zIC0gMSwgMSk7Ci0rCX0KLSsgICAgICBlbHNlIGlmIChz cGVjLmZpbmRfZmlyc3Rfb2YgKCddJykgIT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rCWVycm9yIChf KCJNaXNzaW5nIG9wZW4gYnJhY2tldCBpbiBob3N0bmFtZSAnJXMnIiksCi0rCSAgICAgICBzcGVj LmNfc3RyICgpKTsKLSsgICAgfQotKwotKyAgaWYgKGxhc3RfY29sb25fcG9zID09IDApCi0rICAg IGxhc3RfY29sb25fcG9zID0gc3BlYy5maW5kX2xhc3Rfb2YgKCc6Jyk7Ci0rCi0rICAvKiBUaGUg bGVuZ3RoIG9mIHRoZSBob3N0bmFtZSBwYXJ0LiAgKi8KLSsgIHNpemVfdCBob3N0X2xlbjsKLSsK LSsgIGlmIChsYXN0X2NvbG9uX3BvcyAhPSBzdGQ6OnN0cmluZzo6bnBvcykKLSsgICAgewotKyAg ICAgIC8qIFRoZSB1c2VyIGhhcyBwcm92aWRlZCBhIHBvcnQuICAqLwotKyAgICAgIGhvc3RfbGVu ID0gbGFzdF9jb2xvbl9wb3M7Ci0rICAgICAgcmV0LnBvcnRfc3RyID0gc3BlYy5zdWJzdHIgKGxh c3RfY29sb25fcG9zICsgMSk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgaG9zdF9sZW4gPSBzcGVj LnNpemUgKCk7Ci0rCi0rICByZXQuaG9zdF9zdHIgPSBzcGVjLnN1YnN0ciAoMCwgaG9zdF9sZW4p OwotKwotKyAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAqLwotKyAgaWYgKHJl dC5ob3N0X3N0ci5lbXB0eSAoKSkKLSsgICAgcmV0Lmhvc3Rfc3RyID0gImxvY2FsaG9zdCI7Ci0r Ci0rICByZXR1cm4gcmV0OwotK30KLSsKLSsvKiBTZWUgY29tbW9uL25ldHN0dWZmLmguICAqLwot KwotK3BhcnNlZF9jb25uZWN0aW9uX3NwZWMKLStwYXJzZV9jb25uZWN0aW9uX3NwZWMgKGNvbnN0 IGNoYXIgKnNwZWMsIHN0cnVjdCBhZGRyaW5mbyAqaGludCkKLSt7Ci0rICAvKiBTdHJ1Y3QgdG8g aG9sZCB0aGUgYXNzb2NpYXRpb24gYmV0d2VlbiB2YWxpZCBwcmVmaXhlcywgdGhlaXIKLSsgICAg IGZhbWlseSBhbmQgc29ja3R5cGUuICAqLwotKyAgc3RydWN0IGhvc3RfcHJlZml4Ci0rICAgIHsK LSsgICAgICAvKiBUaGUgcHJlZml4LiAgKi8KLSsgICAgICBjb25zdCBjaGFyICpwcmVmaXg7Ci0r Ci0rICAgICAgLyogVGhlICdhaV9mYW1pbHknLiAgKi8KLSsgICAgICBpbnQgZmFtaWx5OwotKwot KyAgICAgIC8qIFRoZSAnYWlfc29ja3R5cGUnLiAgKi8KLSsgICAgICBpbnQgc29ja3R5cGU7Ci0r ICAgIH07Ci0rICBzdGF0aWMgY29uc3Qgc3RydWN0IGhvc3RfcHJlZml4IHByZWZpeGVzW10gPQot KyAgICB7Ci0rICAgICAgeyAidWRwOiIsICBBRl9VTlNQRUMsIFNPQ0tfREdSQU0gfSwKLSsgICAg ICB7ICJ0Y3A6IiwgIEFGX1VOU1BFQywgU09DS19TVFJFQU0gfSwKLSsgICAgICB7ICJ1ZHA0OiIs IEFGX0lORVQsICAgU09DS19ER1JBTSB9LAotKyAgICAgIHsgInRjcDQ6IiwgQUZfSU5FVCwgICBT T0NLX1NUUkVBTSB9LAotKyAgICAgIHsgInVkcDY6IiwgQUZfSU5FVDYsICBTT0NLX0RHUkFNIH0s Ci0rICAgICAgeyAidGNwNjoiLCBBRl9JTkVUNiwgIFNPQ0tfU1RSRUFNIH0sCi0rICAgIH07Ci0r Ci0rICBmb3IgKGNvbnN0IGhvc3RfcHJlZml4IHByZWZpeCA6IHByZWZpeGVzKQotKyAgICBpZiAo c3RhcnRzd2l0aCAoc3BlYywgcHJlZml4LnByZWZpeCkpCi0rICAgICAgewotKwlzcGVjICs9IHN0 cmxlbiAocHJlZml4LnByZWZpeCk7Ci0rCWhpbnQtPmFpX2ZhbWlseSA9IHByZWZpeC5mYW1pbHk7 Ci0rCWhpbnQtPmFpX3NvY2t0eXBlID0gcHJlZml4LnNvY2t0eXBlOwotKwloaW50LT5haV9wcm90 b2NvbAotKwkgID0gaGludC0+YWlfc29ja3R5cGUgPT0gU09DS19ER1JBTSA/IElQUFJPVE9fVURQ IDogSVBQUk9UT19UQ1A7Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsKLSsgIHJldHVybiBwYXJzZV9j b25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKHNwZWMsIGhpbnQpOwotK30KLWRpZmYgLS1n aXQgYS9nZGIvY29tbW9uL25ldHN0dWZmLmggYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKLW5ldyBm aWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvY29tbW9uL25ldHN0dWZm LmgKLUBAIC0wLDAgKzEsNzYgQEAKLSsvKiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCi0r ICAgQ29weXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsg ICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCi0rCi0rI2lmbmRlZiBORVRTVFVGRl9ICi0rI2RlZmluZSBORVRT VFVGRl9ICi0rCi0rI2luY2x1ZGUgPHN0cmluZz4KLSsKLSsvKiBMaWtlIE5JX01BWEhPU1QvTklf TUFYU0VSViwgYnV0IGVub3VnaCBmb3IgbnVtZXJpYyBmb3Jtcy4gICovCi0rI2RlZmluZSBHREJf TklfTUFYX0FERFIgNjQKLSsjZGVmaW5lIEdEQl9OSV9NQVhfUE9SVCAxNgotKwotKy8qIEhlbHBl ciBjbGFzcyB0byBndWFyYW50ZWUgdGhhdCB3ZSBhbHdheXMgY2FsbCAnZnJlZWFkZHJpbmZvJy4g ICovCi0rCi0rY2xhc3Mgc2NvcGVkX2ZyZWVfYWRkcmluZm8KLSt7Ci0rcHVibGljOgotKyAgLyog RGVmYXVsdCBjb25zdHJ1Y3Rvci4gICovCi0rICBleHBsaWNpdCBzY29wZWRfZnJlZV9hZGRyaW5m byAoc3RydWN0IGFkZHJpbmZvICphaW5mbykKLSsgICAgOiBtX3JlcyAoYWluZm8pCi0rICB7Ci0r ICB9Ci0rCi0rICAvKiBEZXN0cnVjdG9yIHJlc3BvbnNpYmxlIGZvciBmcmVlJ2luZyBNX1JFUyBi eSBjYWxsaW5nCi0rICAgICAnZnJlZWFkZHJpbmZvJy4gICovCi0rICB+c2NvcGVkX2ZyZWVfYWRk cmluZm8gKCk7Ci0rCi0rICBESVNBQkxFX0NPUFlfQU5EX0FTU0lHTiAoc2NvcGVkX2ZyZWVfYWRk cmluZm8pOwotKwotK3ByaXZhdGU6Ci0rICAvKiBUaGUgYWRkcmluZm8gcmVzb3VyY2UuICAqLwot KyAgc3RydWN0IGFkZHJpbmZvICptX3JlczsKLSt9OwotKwotKy8qIFRoZSBzdHJ1Y3Qgd2UgcmV0 dXJuIGFmdGVyIHBhcnNpbmcgdGhlIGNvbm5lY3Rpb24gc3BlYy4gICovCi0rCi0rc3RydWN0IHBh cnNlZF9jb25uZWN0aW9uX3NwZWMKLSt7Ci0rICAvKiBUaGUgaG9zdG5hbWUuICAqLwotKyAgc3Rk OjpzdHJpbmcgaG9zdF9zdHI7Ci0rCi0rICAvKiBUaGUgcG9ydCwgaWYgYW55LiAgKi8KLSsgIHN0 ZDo6c3RyaW5nIHBvcnRfc3RyOwotK307Ci0rCi0rCi0rLyogUGFyc2UgU1BFQyAod2hpY2ggaXMg YSBzdHJpbmcgaW4gdGhlIGZvcm0gb2YgIkFERFI6UE9SVCIpIGFuZAotKyAgIHJldHVybiBhICdw YXJzZWRfY29ubmVjdGlvbl9zcGVjJyBzdHJ1Y3R1cmUgd2l0aCB0aGUgcHJvcGVyIGZpZWxkcwot KyAgIGZpbGxlZCBpbi4gIEFsc28gYWRqdXN0IEhJTlQgYWNjb3JkaW5nbHkuICAqLwotK2V4dGVy biBwYXJzZWRfY29ubmVjdGlvbl9zcGVjCi0rICBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91 dF9wcmVmaXggKHN0ZDo6c3RyaW5nIHNwZWMsCi0rCQkJCQlzdHJ1Y3QgYWRkcmluZm8gKmhpbnQp OwotKwotKy8qIFBhcnNlIFNQRUMgKHdoaWNoIGlzIGEgc3RyaW5nIGluIHRoZSBmb3JtIG9mCi0r ICAgIlt0Y3BbNl06fHVkcFs2XTpdQUREUjpQT1JUIikgYW5kIHJldHVybiBhICdwYXJzZWRfY29u bmVjdGlvbl9zcGVjJwotKyAgIHN0cnVjdHVyZSB3aXRoIHRoZSBwcm9wZXIgZmllbGRzIGZpbGxl ZCBpbi4gIEFsc28gYWRqdXN0IEhJTlQKLSsgICBhY2NvcmRpbmdseS4gICovCi0rZXh0ZXJuIHBh cnNlZF9jb25uZWN0aW9uX3NwZWMgcGFyc2VfY29ubmVjdGlvbl9zcGVjIChjb25zdCBjaGFyICpz cGVjLAotKwkJCQkJCSAgICAgc3RydWN0IGFkZHJpbmZvICpoaW50KTsKLSsKLSsjZW5kaWYgLyog ISBORVRTVFVGRl9IICovCi1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9DaGFuZ2VMb2cgYi9nZGIvZG9j L0NoYW5nZUxvZwotLS0tIGEvZ2RiL2RvYy9DaGFuZ2VMb2cKLSsrKyBiL2dkYi9kb2MvQ2hhbmdl TG9nCi1AQCAtMSwzICsxLDExIEBACi0rMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9y ICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLSsJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLSsJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5j b20+Ci0rCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+Ci0rCi0rCSogZ2Ri LnRleGluZm8gKFJlbW90ZSBDb25uZWN0aW9uIENvbW1hbmRzKTogQWRkIGV4cGxhbmF0aW9uCi0r CWFib3V0IG5ldyBJUHY2IHN1cHBvcnQuICBBZGQgbmV3IGNvbm5lY3Rpb24gcHJlZml4ZXMuCi0r Ci0gMjAxOC0wNy0wMiAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BtaXBzLmNvbT4KLSAKLSAJ UFIgdGRlcC84MjgyCi1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2Mv Z2RiLnRleGluZm8KLS0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KLSsrKyBiL2dkYi9kb2MvZ2Ri LnRleGluZm8KLUBAIC0yMDU0OCwxNiArMjA1NDgsMjcgQEAgSWYgeW91J3JlIHVzaW5nIGEgc2Vy aWFsIGxpbmUsIHlvdSBtYXkgd2FudCB0byBnaXZlIEB2YWx1ZXtHREJOfSB0aGUKLSBAY29kZXt0 YXJnZXR9IGNvbW1hbmQuCi0gCi0gQGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29kZXtAdmFye2hvc3R9 OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7QHZhcntbaG9zdF19OkB2 YXJ7cG9ydH19Ci0gQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZh cntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A6QHZhcntbaG9zdF19OkB2 YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2 YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2 YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06 QHZhcntwb3J0fX0KLSBAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXtAdmFye2hv c3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7QHZh cntbaG9zdF19OkB2YXJ7cG9ydH19Ci0gQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNv ZGV7dGNwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJl bW90ZSBAY29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBl eHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14 IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19 Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06 QHZhcntwb3J0fX0KLSBAY2luZGV4IEBhY3Jvbnlte1RDUH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJl bW90ZX0KLSBEZWJ1ZyB1c2luZyBhIEBhY3Jvbnlte1RDUH0gY29ubmVjdGlvbiB0byBAdmFye3Bv cnR9IG9uIEB2YXJ7aG9zdH0uCi0tVGhlIEB2YXJ7aG9zdH0gbWF5IGJlIGVpdGhlciBhIGhvc3Qg bmFtZSBvciBhIG51bWVyaWMgQGFjcm9ueW17SVB9Ci0tYWRkcmVzczsgQHZhcntwb3J0fSBtdXN0 IGJlIGEgZGVjaW1hbCBudW1iZXIuICBUaGUgQHZhcntob3N0fSBjb3VsZCBiZQotLXRoZSB0YXJn ZXQgbWFjaGluZSBpdHNlbGYsIGlmIGl0IGlzIGRpcmVjdGx5IGNvbm5lY3RlZCB0byB0aGUgbmV0 LCBvcgotLWl0IG1pZ2h0IGJlIGEgdGVybWluYWwgc2VydmVyIHdoaWNoIGluIHR1cm4gaGFzIGEg c2VyaWFsIGxpbmUgdG8gdGhlCi0tdGFyZ2V0LgotK1RoZSBAdmFye2hvc3R9IG1heSBiZSBlaXRo ZXIgYSBob3N0IG5hbWUsIGEgbnVtZXJpYyBAYWNyb255bXtJUHY0fQotK2FkZHJlc3MsIG9yIGEg bnVtZXJpYyBAYWNyb255bXtJUHY2fSBhZGRyZXNzICh3aXRoIG9yIHdpdGhvdXQgdGhlCi0rc3F1 YXJlIGJyYWNrZXRzIHRvIHNlcGFyYXRlIHRoZSBhZGRyZXNzIGZyb20gdGhlIHBvcnQpOyBAdmFy e3BvcnR9Ci0rbXVzdCBiZSBhIGRlY2ltYWwgbnVtYmVyLiAgVGhlIEB2YXJ7aG9zdH0gY291bGQg YmUgdGhlIHRhcmdldCBtYWNoaW5lCi0raXRzZWxmLCBpZiBpdCBpcyBkaXJlY3RseSBjb25uZWN0 ZWQgdG8gdGhlIG5ldCwgb3IgaXQgbWlnaHQgYmUgYQotK3Rlcm1pbmFsIHNlcnZlciB3aGljaCBp biB0dXJuIGhhcyBhIHNlcmlhbCBsaW5lIHRvIHRoZSB0YXJnZXQuCi0gCi0gRm9yIGV4YW1wbGUs IHRvIGNvbm5lY3QgdG8gcG9ydCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkCi0gQGNv ZGV7bWFueWZhcm1zfToKLUBAIC0yMDU2Niw2ICsyMDU3NywyOCBAQCBGb3IgZXhhbXBsZSwgdG8g Y29ubmVjdCB0byBwb3J0IDI4Mjggb24gYSB0ZXJtaW5hbCBzZXJ2ZXIgbmFtZWQKLSB0YXJnZXQg cmVtb3RlIG1hbnlmYXJtczoyODI4Ci0gQGVuZCBzbWFsbGV4YW1wbGUKLSAKLStUbyBjb25uZWN0 IHRvIHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciB3aG9zZSBhZGRyZXNzIGlzCi0rQGNv ZGV7MjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0fSwgeW91IGNhbiBlaXRo ZXIgdXNlIHRoZQotK3NxdWFyZSBicmFja2V0IHN5bnRheDoKLSsKLStAc21hbGxleGFtcGxlCi0r dGFyZ2V0IHJlbW90ZSBbMjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0XToy ODI4Ci0rQGVuZCBzbWFsbGV4YW1wbGUKLSsKLStAbm9pbmRlbnQKLStvciBleHBsaWNpdGx5IHNw ZWNpZnkgdGhlIEBhY3Jvbnlte0lQdjZ9IHByb3RvY29sOgotKwotK0BzbWFsbGV4YW1wbGUKLSt0 YXJnZXQgcmVtb3RlIHRjcDY6MjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0 OjI4MjgKLStAZW5kIHNtYWxsZXhhbXBsZQotKwotK1RoaXMgbGFzdCBleGFtcGxlIG1heSBiZSBj b25mdXNpbmcgdG8gdGhlIHJlYWRlciwgYmVjYXVzZSB0aGVyZSBpcyBubwotK3Zpc2libGUgc2Vw YXJhdGlvbiBiZXR3ZWVuIHRoZSBob3N0bmFtZSBhbmQgdGhlIHBvcnQgbnVtYmVyLgotK1RoZXJl Zm9yZSwgd2UgcmVjb21tZW5kIHRoZSB1c2VyIHRvIHByb3ZpZGUgQGFjcm9ueW17SVB2Nn0gYWRk cmVzc2VzCi0rdXNpbmcgc3F1YXJlIGJyYWNrZXRzIGZvciBjbGFyaXR5LiAgSG93ZXZlciwgaXQg aXMgaW1wb3J0YW50IHRvCi0rbWVudGlvbiB0aGF0IGZvciBAdmFsdWV7R0RCTn0gdGhlcmUgaXMg bm8gYW1iaWd1aXR5OiB0aGUgbnVtYmVyIGFmdGVyCi0rdGhlIGxhc3QgY29sb24gaXMgY29uc2lk ZXJlZCB0byBiZSB0aGUgcG9ydCBudW1iZXIuCi0rCi0gSWYgeW91ciByZW1vdGUgdGFyZ2V0IGlz IGFjdHVhbGx5IHJ1bm5pbmcgb24gdGhlIHNhbWUgbWFjaGluZSBhcyB5b3VyCi0gZGVidWdnZXIg c2Vzc2lvbiAoZS5nLkA6IGEgc2ltdWxhdG9yIGZvciB5b3VyIHRhcmdldCBydW5uaW5nIG9uIHRo ZQotIHNhbWUgaG9zdCksIHlvdSBjYW4gb21pdCB0aGUgaG9zdG5hbWUuICBGb3IgZXhhbXBsZSwg dG8gY29ubmVjdCB0bwotQEAgLTIwNTc5LDcgKzIwNjEyLDE1IEBAIHRhcmdldCByZW1vdGUgOjEy MzQKLSBOb3RlIHRoYXQgdGhlIGNvbG9uIGlzIHN0aWxsIHJlcXVpcmVkIGhlcmUuCi0gCi0gQGl0 ZW0gdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0BpdGVt eCB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLStAaXRl bXggdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA0OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRl bXggdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQotK0Bp dGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDpAdmFye2hvc3R9OkB2YXJ7cG9y dH19Ci0gQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwOkB2YXJ7aG9zdH06 QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA6QHZh cntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNv ZGV7dWRwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1y ZW1vdGUgQGNvZGV7dWRwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBl eHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLSBAY2lu ZGV4IEBhY3Jvbnlte1VEUH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0KLSBEZWJ1ZyB1c2lu ZyBAYWNyb255bXtVRFB9IHBhY2tldHMgdG8gQHZhcntwb3J0fSBvbiBAdmFye2hvc3R9LiAgRm9y IGV4YW1wbGUsIHRvCi0gY29ubmVjdCB0byBAYWNyb255bXtVRFB9IHBvcnQgMjgyOCBvbiBhIHRl cm1pbmFsIHNlcnZlciBuYW1lZCBAY29kZXttYW55ZmFybXN9OgotZGlmZiAtLWdpdCBhL2dkYi9n ZGJzZXJ2ZXIvQ2hhbmdlTG9nIGIvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKLS0tLSBhL2dkYi9n ZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0rKysgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwotQEAgLTEs MyArMSwyMiBAQAotKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2Rq QHJlZGhhdC5jb20+Ci0rCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+Ci0rCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgotKwkgICAg VHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotKwotKwkqIE1ha2VmaWxlLmluIChT RklMRVMpOiBBZGQgJyQoc3JjZGlyKS9jb21tb24vbmV0c3R1ZmYuYycuCi0rCShPQlMpOiBBZGQg J2NvbW1vbi9uZXRzdHVmZi5vJy4KLSsJKEdEQlJFUExBWV9PQlMpOiBMaWtld2lzZS4KLSsJKiBn ZGJyZXBsYXkuYzogSW5jbHVkZSAnd3NwaWFwaS5oJyBhbmQgJ25ldHN0dWZmLmgnLgotKwkocmVt b3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2NgotKwljb25uZWN0aW9ucy4KLSsJ KiByZW1vdGUtdXRpbHMuYzogSW5jbHVkZSAnbmV0c3R1ZmYuaCcsICdmaWxlc3R1ZmYuaCcKLSsJ YW5kICd3c3BpYXBpLmgnLgotKwkoaGFuZGxlX2FjY2VwdF9ldmVudCk6IEFjY2VwdCBjb25uZWN0 aW9ucyBmcm9tIElQdjYgc291cmNlcy4KLSsJKHJlbW90ZV9wcmVwYXJlKTogSGFuZGxlIElQdjYt c3R5bGUgaG9zdG5hbWVzOyBpbXBsZW1lbnQKLSsJc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9u cy4KLSsJKHJlbW90ZV9vcGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHByaW50aW5nIGNvbm5l Y3Rpb25zIGZyb20KLSsJSVB2NiBzb3VyY2VzLgotKwotIDIwMTgtMDctMTEgIFBlZHJvIEFsdmVz ICA8cGFsdmVzQHJlZGhhdC5jb20+Ci0gCi0gCVBSIGdkYi8yMzM3NwotZGlmZiAtLWdpdCBhL2dk Yi9nZGJzZXJ2ZXIvTWFrZWZpbGUuaW4gYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCi0tLS0g YS9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCi0rKysgYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxl LmluCi1AQCAtMjExLDYgKzIxMSw3IEBAIFNGSUxFUyA9IFwKLSAJJChzcmNkaXIpL2NvbW1vbi9q b2ItY29udHJvbC5jIFwKLSAJJChzcmNkaXIpL2NvbW1vbi9nZGJfdGlsZGVfZXhwYW5kLmMgXAot IAkkKHNyY2RpcikvY29tbW9uL2dkYl92ZWNzLmMgXAotKwkkKHNyY2RpcikvY29tbW9uL25ldHN0 dWZmLmMgXAotIAkkKHNyY2RpcikvY29tbW9uL25ldy1vcC5jIFwKLSAJJChzcmNkaXIpL2NvbW1v bi9wYXRoc3R1ZmYuYyBcCi0gCSQoc3JjZGlyKS9jb21tb24vcHJpbnQtdXRpbHMuYyBcCi1AQCAt MjU0LDYgKzI1NSw3IEBAIE9CUyA9IFwKLSAJY29tbW9uL2Zvcm1hdC5vIFwKLSAJY29tbW9uL2dk Yl90aWxkZV9leHBhbmQubyBcCi0gCWNvbW1vbi9nZGJfdmVjcy5vIFwKLSsJY29tbW9uL25ldHN0 dWZmLm8gXAotIAljb21tb24vbmV3LW9wLm8gXAotIAljb21tb24vcGF0aHN0dWZmLm8gXAotIAlj b21tb24vcHJpbnQtdXRpbHMubyBcCi1AQCAtMjkwLDYgKzI5Miw3IEBAIEdEQlJFUExBWV9PQlMg PSBcCi0gCWNvbW1vbi9jb21tb24tZXhjZXB0aW9ucy5vIFwKLSAJY29tbW9uL2NvbW1vbi11dGls cy5vIFwKLSAJY29tbW9uL2Vycm9ycy5vIFwKLSsJY29tbW9uL25ldHN0dWZmLm8gXAotIAljb21t b24vcHJpbnQtdXRpbHMubyBcCi0gCWdkYnJlcGxheS5vIFwKLSAJdXRpbHMubyBcCi1kaWZmIC0t Z2l0IGEvZ2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5 LmMKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKLSsrKyBiL2dkYi9nZGJzZXJ2ZXIv Z2RicmVwbGF5LmMKLUBAIC00Niw4ICs0NiwxMSBAQAotIAotICNpZiBVU0VfV0lOMzJBUEkKLSAj aW5jbHVkZSA8d2luc29jazIuaD4KLSsjaW5jbHVkZSA8d3NwaWFwaS5oPgotICNlbmRpZgotIAot KyNpbmNsdWRlICJuZXRzdHVmZi5oIgotKwotICNpZm5kZWYgSEFWRV9TT0NLTEVOX1QKLSB0eXBl ZGVmIGludCBzb2NrbGVuX3Q7Ci0gI2VuZGlmCi1AQCAtMTQyLDU2ICsxNDUsMTA4IEBAIHJlbW90 ZV9jbG9zZSAodm9pZCkKLSBzdGF0aWMgdm9pZAotIHJlbW90ZV9vcGVuIChjaGFyICpuYW1lKQot IHsKLS0gIGlmICghc3RyY2hyIChuYW1lLCAnOicpKQotKyAgY2hhciAqbGFzdF9jb2xvbiA9IHN0 cnJjaHIgKG5hbWUsICc6Jyk7Ci0rCi0rICBpZiAobGFzdF9jb2xvbiA9PSBOVUxMKQotICAgICB7 Ci0gICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IE11c3Qgc3BlY2lmeSB0Y3AgY29ubmVjdGlv biBhcyBob3N0OmFkZHJcbiIsIG5hbWUpOwotICAgICAgIGZmbHVzaCAoc3RkZXJyKTsKLSAgICAg ICBleGl0ICgxKTsKLSAgICAgfQotLSAgZWxzZQotLSAgICB7Ci0rCi0gI2lmZGVmIFVTRV9XSU4z MkFQSQotLSAgICAgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKLSsgIHN0YXRpYyBp bnQgd2luc29ja19pbml0aWFsaXplZDsKLSAjZW5kaWYKLS0gICAgICBjaGFyICpwb3J0X3N0cjsK LS0gICAgICBpbnQgcG9ydDsKLS0gICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7Ci0t ICAgICAgc29ja2xlbl90IHRtcDsKLS0gICAgICBpbnQgdG1wX2Rlc2M7Ci0rICBjaGFyICpwb3J0 X3N0cjsKLSsgIGludCB0bXA7Ci0rICBpbnQgdG1wX2Rlc2M7Ci0rICBzdHJ1Y3QgYWRkcmluZm8g aGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0gCi0tICAgICAgcG9ydF9zdHIgPSBz dHJjaHIgKG5hbWUsICc6Jyk7Ci0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsK LSsgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91 bGQgdXNlCi0rICAgICBBRl9VTlNQRUMuICAqLwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQ RUM7Ci0rICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3Rv Y29sID0gSVBQUk9UT19UQ1A7Ci0gCi0tICAgICAgcG9ydCA9IGF0b2kgKHBvcnRfc3RyICsgMSk7 Ci0rICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3Bl YyAobmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKLSsg ICAgZXJyb3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOwotIAot ICNpZmRlZiBVU0VfV0lOMzJBUEkKLS0gICAgICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCi0t CXsKLS0JICBXU0FEQVRBIHdzYWQ7Ci0rICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCi0rICAg IHsKLSsgICAgICBXU0FEQVRBIHdzYWQ7Ci0gCi0tCSAgV1NBU3RhcnR1cCAoTUFLRVdPUkQgKDEs IDApLCAmd3NhZCk7Ci0tCSAgd2luc29ja19pbml0aWFsaXplZCA9IDE7Ci0tCX0KLSsgICAgICBX U0FTdGFydHVwIChNQUtFV09SRCAoMSwgMCksICZ3c2FkKTsKLSsgICAgICB3aW5zb2NrX2luaXRp YWxpemVkID0gMTsKLSsgICAgfQotICNlbmRpZgotIAotLSAgICAgIHRtcF9kZXNjID0gc29ja2V0 IChQRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7Ci0tICAgICAgaWYgKHRtcF9kZXNjID09IC0xKQot LQlwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3Qgb3BlbiBzb2NrZXQiKTsKLSsgIGludCByID0gZ2V0 YWRkcmluZm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAoKSwgcGFyc2VkLnBvcnRfc3RyLmNfc3Ry ICgpLAotKwkJICAgICAgICZoaW50LCAmYWluZm8pOwotIAotLSAgICAgIC8qIEFsbG93IHJhcGlk IHJldXNlIG9mIHRoaXMgcG9ydC4gKi8KLS0gICAgICB0bXAgPSAxOwotLSAgICAgIHNldHNvY2tv cHQgKHRtcF9kZXNjLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIChjaGFyICopICZ0bXAsCi0t CQkgIHNpemVvZiAodG1wKSk7Ci0rICBpZiAociAhPSAwKQotKyAgICB7Ci0rICAgICAgZnByaW50 ZiAoc3RkZXJyLCAiJXM6JXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzXG4iLAotKwkgICAgICAg cGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCi0rCSAg ICAgICBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBmZmx1c2ggKHN0ZGVycik7Ci0rICAgICAg ZXhpdCAoMSk7Ci0rICAgIH0KLSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8g KGFpbmZvKTsKLSsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqcDsKLSsKLSsgIGZvciAocCA9IGFpbmZv OyBwICE9IE5VTEw7IHAgPSBwLT5haV9uZXh0KQotKyAgICB7Ci0rICAgICAgdG1wX2Rlc2MgPSBz b2NrZXQgKHAtPmFpX2ZhbWlseSwgcC0+YWlfc29ja3R5cGUsIHAtPmFpX3Byb3RvY29sKTsKLSAK LS0gICAgICBzb2NrYWRkci5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKLS0gICAgICBzb2NrYWRkci5z aW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gICAgICBzb2NrYWRkci5zaW5fYWRkci5zX2FkZHIg PSBJTkFERFJfQU5ZOwotKyAgICAgIGlmICh0bXBfZGVzYyA+PSAwKQotKwlicmVhazsKLSsgICAg fQotKwotKyAgaWYgKHAgPT0gTlVMTCkKLSsgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbm5vdCBv cGVuIHNvY2tldCIpOwotIAotLSAgICAgIGlmIChiaW5kICh0bXBfZGVzYywgKHN0cnVjdCBzb2Nr YWRkciAqKSAmc29ja2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKQotLQkgIHx8IGxpc3RlbiAodG1w X2Rlc2MsIDEpKQotLQlwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7Ci0r ICAvKiBBbGxvdyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCi0rICB0bXAgPSAxOwotKyAg c2V0c29ja29wdCAodG1wX2Rlc2MsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNoYXIgKikg JnRtcCwKLSsJICAgICAgc2l6ZW9mICh0bXApKTsKLSsKLSsgIHN3aXRjaCAocC0+YWlfZmFtaWx5 KQotKyAgICB7Ci0rICAgIGNhc2UgQUZfSU5FVDoKLSsgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9p biAqKSBwLT5haV9hZGRyKS0+c2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKLSsgICAgICBi cmVhazsKLSsgICAgY2FzZSBBRl9JTkVUNjoKLSsgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbjYg KikgcC0+YWlfYWRkciktPnNpbjZfYWRkciA9IGluNmFkZHJfYW55OwotKyAgICAgIGJyZWFrOwot KyAgICBkZWZhdWx0OgotKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIkludmFsaWQgJ2FpX2ZhbWls eScgJWRcbiIsIHAtPmFpX2ZhbWlseSk7Ci0rICAgICAgZXhpdCAoMSk7Ci0rICAgIH0KLSsKLSsg IGlmIChiaW5kICh0bXBfZGVzYywgcC0+YWlfYWRkciwgcC0+YWlfYWRkcmxlbikgIT0gMCkKLSsg ICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGJpbmQgYWRkcmVzcyIpOwotKwotKyAgaWYgKHAt PmFpX3NvY2t0eXBlID09IFNPQ0tfREdSQU0pCi0rICAgIHJlbW90ZV9kZXNjID0gdG1wX2Rlc2M7 Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRk cjsKLSsgICAgICBzb2NrbGVuX3Qgc29ja2FkZHJzaXplID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0r ICAgICAgY2hhciBvcmlnX2hvc3RbR0RCX05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9N QVhfUE9SVF07Ci0rCi0rICAgICAgaWYgKGxpc3RlbiAodG1wX2Rlc2MsIDEpICE9IDApCi0rCXBl cnJvcl93aXRoX25hbWUgKCJDYW4ndCBsaXN0ZW4gb24gc29ja2V0Iik7Ci0rCi0rICAgICAgcmVt b3RlX2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRk ciwKLSsJCQkgICAgJnNvY2thZGRyc2l6ZSk7Ci0gCi0tICAgICAgdG1wID0gc2l6ZW9mIChzb2Nr YWRkcik7Ci0tICAgICAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3RydWN0IHNv Y2thZGRyICopICZzb2NrYWRkciwgJnRtcCk7Ci0gICAgICAgaWYgKHJlbW90ZV9kZXNjID09IC0x KQotIAlwZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0IGZhaWxlZCIpOwotIAotQEAgLTIwNiw2ICsy NjEsMTYgQEAgcmVtb3RlX29wZW4gKGNoYXIgKm5hbWUpCi0gICAgICAgc2V0c29ja29wdCAocmVt b3RlX2Rlc2MsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwKLSAJCSAgKGNoYXIgKikgJnRtcCwg c2l6ZW9mICh0bXApKTsKLSAKLSsgICAgICBpZiAoZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2Fk ZHIgKikgJnNvY2thZGRyLCBzb2NrYWRkcnNpemUsCi0rCQkgICAgICAgb3JpZ19ob3N0LCBzaXpl b2YgKG9yaWdfaG9zdCksCi0rCQkgICAgICAgb3JpZ19wb3J0LCBzaXplb2YgKG9yaWdfcG9ydCks Ci0rCQkgICAgICAgTklfTlVNRVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VSVikgPT0gMCkKLSsJewot KwkgIGZwcmludGYgKHN0ZGVyciwgIlJlbW90ZSBkZWJ1Z2dpbmcgZnJvbSBob3N0ICVzLCBwb3J0 ICVzXG4iLAotKwkJICAgb3JpZ19ob3N0LCBvcmlnX3BvcnQpOwotKwkgIGZmbHVzaCAoc3RkZXJy KTsKLSsJfQotKwotICNpZm5kZWYgVVNFX1dJTjMyQVBJCi0gICAgICAgY2xvc2UgKHRtcF9kZXNj KTsJCS8qIE5vIGxvbmdlciBuZWVkIHRoaXMgKi8KLSAKLWRpZmYgLS1naXQgYS9nZGIvZ2Ric2Vy dmVyL3JlbW90ZS11dGlscy5jIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotLS0tIGEv Z2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotKysrIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUt dXRpbHMuYwotQEAgLTI2LDYgKzI2LDggQEAKLSAjaW5jbHVkZSAiZGxsLmgiCi0gI2luY2x1ZGUg InJzcC1sb3cuaCIKLSAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCi0rI2luY2x1ZGUgIm5ldHN0dWZm LmgiCi0rI2luY2x1ZGUgImZpbGVzdHVmZi5oIgotICNpbmNsdWRlIDxjdHlwZS5oPgotICNpZiBI QVZFX1NZU19JT0NUTF9ICi0gI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotQEAgLTYzLDYgKzY1LDcg QEAKLSAKLSAjaWYgVVNFX1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1 ZGUgPHdzcGlhcGkuaD4KLSAjZW5kaWYKLSAKLSAjaWYgX19RTlhfXwotQEAgLTE1MSwxOSArMTU0 LDE4IEBAIGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24gKGludCBmZCkKLSBzdGF0aWMgaW50Ci0g aGFuZGxlX2FjY2VwdF9ldmVudCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRh KQotIHsKLS0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKLS0gIHNvY2tsZW5fdCB0bXA7 Ci0rICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsgIHNvY2tsZW5fdCBsZW4g PSBzaXplb2YgKHNvY2thZGRyKTsKLSAKLSAgIGlmIChkZWJ1Z190aHJlYWRzKQotICAgICBkZWJ1 Z19wcmludGYgKCJoYW5kbGluZyBwb3NzaWJsZSBhY2NlcHQgZXZlbnRcbiIpOwotIAotLSAgdG1w ID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0tICByZW1vdGVfZGVzYyA9IGFjY2VwdCAobGlzdGVuX2Rl c2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmdG1wKTsKLSsgIHJlbW90ZV9kZXNj ID0gYWNjZXB0IChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZs ZW4pOwotICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQotICAgICBwZXJyb3Jfd2l0aF9uYW1lICgi QWNjZXB0IGZhaWxlZCIpOwotIAotICAgLyogRW5hYmxlIFRDUCBrZWVwIGFsaXZlIHByb2Nlc3Mu ICovCi0tICB0bXAgPSAxOwotKyAgc29ja2xlbl90IHRtcCA9IDE7Ci0gICBzZXRzb2Nrb3B0IChy ZW1vdGVfZGVzYywgU09MX1NPQ0tFVCwgU09fS0VFUEFMSVZFLAotIAkgICAgICAoY2hhciAqKSAm dG1wLCBzaXplb2YgKHRtcCkpOwotIAotQEAgLTE5Miw4ICsxOTQsMTkgQEAgaGFuZGxlX2FjY2Vw dF9ldmVudCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQotICAgZGVsZXRl X2ZpbGVfaGFuZGxlciAobGlzdGVuX2Rlc2MpOwotIAotICAgLyogQ29udmVydCBJUCBhZGRyZXNz IHRvIHN0cmluZy4gICovCi0tICBmcHJpbnRmIChzdGRlcnIsICJSZW1vdGUgZGVidWdnaW5nIGZy b20gaG9zdCAlc1xuIiwKLS0JICAgaW5ldF9udG9hIChzb2NrYWRkci5zaW5fYWRkcikpOwotKyAg Y2hhciBvcmlnX2hvc3RbR0RCX05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9S VF07Ci0rCi0rICBpbnQgciA9IGdldG5hbWVpbmZvICgoc3RydWN0IHNvY2thZGRyICopICZzb2Nr YWRkciwgbGVuLAotKwkJICAgICAgIG9yaWdfaG9zdCwgc2l6ZW9mIChvcmlnX2hvc3QpLAotKwkJ ICAgICAgIG9yaWdfcG9ydCwgc2l6ZW9mIChvcmlnX3BvcnQpLAotKwkJICAgICAgIE5JX05VTUVS SUNIT1NUIHwgTklfTlVNRVJJQ1NFUlYpOwotKwotKyAgaWYgKHIgIT0gMCkKLSsgICAgZnByaW50 ZiAoc3RkZXJyLCBfKCJDb3VsZCBub3Qgb2J0YWluIHJlbW90ZSBhZGRyZXNzOiAlc1xuIiksCi0r CSAgICAgZ2FpX3N0cmVycm9yIChyKSk7Ci0rICBlbHNlCi0rICAgIGZwcmludGYgKHN0ZGVyciwg XygiUmVtb3RlIGRlYnVnZ2luZyBmcm9tIGhvc3QgJXMsIHBvcnQgJXNcbiIpLAotKwkgICAgIG9y aWdfaG9zdCwgb3JpZ19wb3J0KTsKLSAKLSAgIGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24gKHJl bW90ZV9kZXNjKTsKLSAKLUBAIC0yMjIsMTAgKzIzNSw3IEBAIHJlbW90ZV9wcmVwYXJlIChjb25z dCBjaGFyICpuYW1lKQotICNpZmRlZiBVU0VfV0lOMzJBUEkKLSAgIHN0YXRpYyBpbnQgd2luc29j a19pbml0aWFsaXplZDsKLSAjZW5kaWYKLS0gIGludCBwb3J0OwotLSAgc3RydWN0IHNvY2thZGRy X2luIHNvY2thZGRyOwotICAgc29ja2xlbl90IHRtcDsKLS0gIGNoYXIgKnBvcnRfZW5kOwotIAot ICAgcmVtb3RlX2lzX3N0ZGlvID0gMDsKLSAgIGlmIChzdHJjbXAgKG5hbWUsIFNURElPX0NPTk5F Q1RJT05fTkFNRSkgPT0gMCkKLUBAIC0yMzgsMTcgKzI0OCwyNSBAQCByZW1vdGVfcHJlcGFyZSAo Y29uc3QgY2hhciAqbmFtZSkKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gIHBvcnRfc3Ry ID0gc3RyY2hyIChuYW1lLCAnOicpOwotLSAgaWYgKHBvcnRfc3RyID09IE5VTEwpCi0rICBzdHJ1 Y3QgYWRkcmluZm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0rCi0rICBtZW1z ZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBwcmVmaXggd2ls bCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9VTlNQRUMuICAq LwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3NvY2t0eXBlID0g U09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7Ci0rCi0rICBw YXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZAotKyAgICA9IHBhcnNlX2Nvbm5lY3Rpb25fc3Bl Y193aXRob3V0X3ByZWZpeCAobmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0 ci5lbXB0eSAoKSkKLSAgICAgewotICAgICAgIGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9IDA7 Ci0gICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICBwb3J0ID0gc3RydG91bCAocG9ydF9zdHIg KyAxLCAmcG9ydF9lbmQsIDEwKTsKLS0gIGlmIChwb3J0X3N0clsxXSA9PSAnXDAnIHx8ICpwb3J0 X2VuZCAhPSAnXDAnKQotLSAgICBlcnJvciAoIkJhZCBwb3J0IGFyZ3VtZW50OiAlcyIsIG5hbWUp OwotLQotICNpZmRlZiBVU0VfV0lOMzJBUEkKLSAgIGlmICghd2luc29ja19pbml0aWFsaXplZCkK LSAgICAgewotQEAgLTI1OSw4ICsyNzcsMjYgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIg Km5hbWUpCi0gICAgIH0KLSAjZW5kaWYKLSAKLS0gIGxpc3Rlbl9kZXNjID0gc29ja2V0IChQRl9J TkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOwotLSAgaWYgKGxpc3Rlbl9kZXNjID09IC0x KQotKyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJz ZWQucG9ydF9zdHIuY19zdHIgKCksCi0rCQkgICAgICAgJmhpbnQsICZhaW5mbyk7Ci0rCi0rICBp ZiAociAhPSAwKQotKyAgICBlcnJvciAoXygiJXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzIiks IG5hbWUsIGdhaV9zdHJlcnJvciAocikpOwotKwotKyAgc2NvcGVkX2ZyZWVfYWRkcmluZm8gZnJl ZWFkZHJpbmZvIChhaW5mbyk7Ci0rCi0rICBzdHJ1Y3QgYWRkcmluZm8gKml0ZXI7Ci0rCi0rICBm b3IgKGl0ZXIgPSBhaW5mbzsgaXRlciAhPSBOVUxMOyBpdGVyID0gaXRlci0+YWlfbmV4dCkKLSsg ICAgewotKyAgICAgIGxpc3Rlbl9kZXNjID0gZ2RiX3NvY2tldF9jbG9leGVjIChpdGVyLT5haV9m YW1pbHksIGl0ZXItPmFpX3NvY2t0eXBlLAotKwkJCQkJaXRlci0+YWlfcHJvdG9jb2wpOwotKwot KyAgICAgIGlmIChsaXN0ZW5fZGVzYyA+PSAwKQotKwlicmVhazsKLSsgICAgfQotKwotKyAgaWYg KGl0ZXIgPT0gTlVMTCkKLSAgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IG9wZW4gc29ja2V0 Iik7Ci0gCi0gICAvKiBBbGxvdyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCi1AQCAtMjY4 LDE0ICszMDQsMjUgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCi0gICBzZXRz b2Nrb3B0IChsaXN0ZW5fZGVzYywgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAoY2hhciAqKSAm dG1wLAotIAkgICAgICBzaXplb2YgKHRtcCkpOwotIAotLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9 IFBGX0lORVQ7Ci0tICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gIHNvY2th ZGRyLnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Ci0rICBzd2l0Y2ggKGl0ZXItPmFpX2Zh bWlseSkKLSsgICAgewotKyAgICBjYXNlIEFGX0lORVQ6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2Fk ZHJfaW4gKikgaXRlci0+YWlfYWRkciktPnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Ci0r ICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgQUZfSU5FVDY6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2Fk ZHJfaW42ICopIGl0ZXItPmFpX2FkZHIpLT5zaW42X2FkZHIgPSBpbjZhZGRyX2FueTsKLSsgICAg ICBicmVhazsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18s IF9fTElORV9fLAotKwkJICAgICAgXygiSW52YWxpZCAnYWlfZmFtaWx5JyAlZFxuIiksIGl0ZXIt PmFpX2ZhbWlseSk7Ci0rICAgIH0KLSAKLS0gIGlmIChiaW5kIChsaXN0ZW5fZGVzYywgKHN0cnVj dCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKQotLSAgICAgIHx8IGxp c3RlbiAobGlzdGVuX2Rlc2MsIDEpKQotKyAgaWYgKGJpbmQgKGxpc3Rlbl9kZXNjLCBpdGVyLT5h aV9hZGRyLCBpdGVyLT5haV9hZGRybGVuKSAhPSAwKQotICAgICBwZXJyb3Jfd2l0aF9uYW1lICgi Q2FuJ3QgYmluZCBhZGRyZXNzIik7Ci0gCi0rICBpZiAobGlzdGVuIChsaXN0ZW5fZGVzYywgMSkg IT0gMCkKLSsgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGxpc3RlbiBvbiBzb2NrZXQiKTsK LSsKLSAgIGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9IDE7Ci0gfQotIAotQEAgLTM1MCwxOCAr Mzk3LDI0IEBAIHJlbW90ZV9vcGVuIChjb25zdCBjaGFyICpuYW1lKQotICNlbmRpZiAvKiBVU0Vf V0lOMzJBUEkgKi8KLSAgIGVsc2UKLSAgICAgewotLSAgICAgIGludCBwb3J0OwotLSAgICAgIHNv Y2tsZW5fdCBsZW47Ci0tICAgICAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOwotLQotLSAg ICAgIGxlbiA9IHNpemVvZiAoc29ja2FkZHIpOwotLSAgICAgIGlmIChnZXRzb2NrbmFtZSAobGlz dGVuX2Rlc2MsCi0tCQkgICAgICAgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4p IDwgMAotLQkgIHx8IGxlbiA8IHNpemVvZiAoc29ja2FkZHIpKQotKyAgICAgIGNoYXIgbGlzdGVu X3BvcnRbR0RCX05JX01BWF9QT1JUXTsKLSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBz b2NrYWRkcjsKLSsgICAgICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0rCi0r ICAgICAgaWYgKGdldHNvY2tuYW1lIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAm c29ja2FkZHIsICZsZW4pIDwgMCkKLSAJcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGRldGVybWlu ZSBwb3J0Iik7Ci0tICAgICAgcG9ydCA9IG50b2hzIChzb2NrYWRkci5zaW5fcG9ydCk7Ci0gCi0t ICAgICAgZnByaW50ZiAoc3RkZXJyLCAiTGlzdGVuaW5nIG9uIHBvcnQgJWRcbiIsIHBvcnQpOwot KyAgICAgIGludCByID0gZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRy LCBsZW4sCi0rCQkJICAgTlVMTCwgMCwKLSsJCQkgICBsaXN0ZW5fcG9ydCwgc2l6ZW9mIChsaXN0 ZW5fcG9ydCksCi0rCQkJICAgTklfTlVNRVJJQ1NFUlYpOwotKwotKyAgICAgIGlmIChyICE9IDAp Ci0rCWZwcmludGYgKHN0ZGVyciwgXygiQ2FuJ3Qgb2J0YWluIHBvcnQgd2hlcmUgd2UgYXJlIGxp c3RlbmluZzogJXMiKSwKLSsJCSBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBlbHNlCi0rCWZw cmludGYgKHN0ZGVyciwgXygiTGlzdGVuaW5nIG9uIHBvcnQgJXNcbiIpLCBsaXN0ZW5fcG9ydCk7 Ci0rCi0gICAgICAgZmZsdXNoIChzdGRlcnIpOwotIAotICAgICAgIC8qIFJlZ2lzdGVyIHRoZSBl dmVudCBsb29wIGhhbmRsZXIuICAqLwotZGlmZiAtLWdpdCBhL2dkYi9zZXItdGNwLmMgYi9nZGIv c2VyLXRjcC5jCi0tLS0gYS9nZGIvc2VyLXRjcC5jCi0rKysgYi9nZGIvc2VyLXRjcC5jCi1AQCAt MjUsNiArMjUsNyBAQAotICNpbmNsdWRlICJjbGkvY2xpLWRlY29kZS5oIgotICNpbmNsdWRlICJj bGkvY2xpLXNldHNob3cuaCIKLSAjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCi0rI2luY2x1ZGUgIm5l dHN0dWZmLmgiCi0gCi0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotIAotQEAgLTM5LDYgKzQwLDcg QEAKLSAKLSAjaWZkZWYgVVNFX1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2lu Y2x1ZGUgPHdzcGlhcGkuaD4KLSAjaWZuZGVmIEVUSU1FRE9VVAotICNkZWZpbmUgRVRJTUVET1VU IFdTQUVUSU1FRE9VVAotICNlbmRpZgotQEAgLTgxLDEyICs4MywxMyBAQCBzdGF0aWMgdW5zaWdu ZWQgaW50IHRjcF9yZXRyeV9saW1pdCA9IDE1OwotIAotICNkZWZpbmUgUE9MTF9JTlRFUlZBTCA1 Ci0gCi0tLyogSGVscGVyIGZ1bmN0aW9uIHRvIHdhaXQgYSB3aGlsZS4gIElmIFNDQiBpcyBub24t bnVsbCwgd2FpdCBvbiBpdHMKLS0gICBmaWxlIGRlc2NyaXB0b3IuICBPdGhlcndpc2UganVzdCB3 YWl0IG9uIGEgdGltZW91dCwgdXBkYXRpbmcgKlBPTExTLgotLSAgIFJldHVybnMgLTEgb24gdGlt ZW91dCBvciBpbnRlcnJ1cHQsIG90aGVyd2lzZSB0aGUgdmFsdWUgb2Ygc2VsZWN0LiAgKi8KLSsv KiBIZWxwZXIgZnVuY3Rpb24gdG8gd2FpdCBhIHdoaWxlLiAgSWYgU09DSyBpcyBub3QgLTEsIHdh aXQgb24gaXRzCi0rICAgZmlsZSBkZXNjcmlwdG9yLiAgT3RoZXJ3aXNlIGp1c3Qgd2FpdCBvbiBh IHRpbWVvdXQsIHVwZGF0aW5nCi0rICAgKlBPTExTLiAgUmV0dXJucyAtMSBvbiB0aW1lb3V0IG9y IGludGVycnVwdCwgb3RoZXJ3aXNlIHRoZSB2YWx1ZSBvZgotKyAgIHNlbGVjdC4gICovCi0gCi0g c3RhdGljIGludAotLXdhaXRfZm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwgKnNjYiwgdW5zaWdu ZWQgaW50ICpwb2xscykKLSt3YWl0X2Zvcl9jb25uZWN0IChpbnQgc29jaywgdW5zaWduZWQgaW50 ICpwb2xscykKLSB7Ci0gICBzdHJ1Y3QgdGltZXZhbCB0OwotICAgaW50IG47Ci1AQCAtMTIwLDI0 ICsxMjMsMjQgQEAgd2FpdF9mb3JfY29ubmVjdCAoc3RydWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25l ZCBpbnQgKnBvbGxzKQotICAgICAgIHQudHZfdXNlYyA9IDA7Ci0gICAgIH0KLSAKLS0gIGlmIChz Y2IpCi0rICBpZiAoc29jayA+PSAwKQotICAgICB7Ci0gICAgICAgZmRfc2V0IHJzZXQsIHdzZXQs IGVzZXQ7Ci0gCi0gICAgICAgRkRfWkVSTyAoJnJzZXQpOwotLSAgICAgIEZEX1NFVCAoc2NiLT5m ZCwgJnJzZXQpOwotKyAgICAgIEZEX1NFVCAoc29jaywgJnJzZXQpOwotICAgICAgIHdzZXQgPSBy c2V0OwotICAgICAgIGVzZXQgPSByc2V0OwotLQkgIAotKwotICAgICAgIC8qIFBPU0lYIHN5c3Rl bXMgcmV0dXJuIGNvbm5lY3Rpb24gc3VjY2VzcyBvciBmYWlsdXJlIGJ5IHNpZ25hbGxpbmcKLSAJ IHdzZXQuICBXaW5kb3dzIHN5c3RlbXMgcmV0dXJuIHN1Y2Nlc3MgaW4gd3NldCBhbmQgZmFpbHVy ZSBpbgotIAkgZXNldC4KLS0gICAgIAotKwotIAkgV2UgbXVzdCBjYWxsIHNlbGVjdCBoZXJlLCBy YXRoZXIgdGhhbiBnZGJfc2VsZWN0LCBiZWNhdXNlCi0gCSB0aGUgc2VyaWFsIHN0cnVjdHVyZSBo YXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkIC0gdGhlCi0gCSBNaW5HVyBzZWxlY3Qgd3JhcHBl ciB3aWxsIG5vdCBrbm93IHRoYXQgdGhpcyBGRCByZWZlcnMKLSAJIHRvIGEgc29ja2V0LiAgKi8K LS0gICAgICBuID0gc2VsZWN0IChzY2ItPmZkICsgMSwgJnJzZXQsICZ3c2V0LCAmZXNldCwgJnQp OwotKyAgICAgIG4gPSBzZWxlY3QgKHNvY2sgKyAxLCAmcnNldCwgJndzZXQsICZlc2V0LCAmdCk7 Ci0gICAgIH0KLSAgIGVsc2UKLSAgICAgLyogVXNlIGdkYl9zZWxlY3QgaGVyZSwgc2luY2Ugd2Ug aGF2ZSBubyBmaWxlIGRlc2NyaXB0b3JzLCBhbmQgb24KLUBAIC0xNTMsODAgKzE1NiwyOCBAQCB3 YWl0X2Zvcl9jb25uZWN0IChzdHJ1Y3Qgc2VyaWFsICpzY2IsIHVuc2lnbmVkIGludCAqcG9sbHMp Ci0gICByZXR1cm4gbjsKLSB9Ci0gCi0tLyogT3BlbiBhIHRjcCBzb2NrZXQuICAqLwotKy8qIFRy eSB0byBjb25uZWN0IHRvIHRoZSBob3N0IHJlcHJlc2VudGVkIGJ5IEFJTkZPLiAgSWYgdGhlIGNv bm5lY3Rpb24KLSsgICBzdWNjZWVkcywgcmV0dXJuIGl0cyBzb2NrZXQuICBPdGhlcndpc2UsIHJl dHVybiAtMSBhbmQgc2V0IEVSUk5PCi0rICAgYWNjb3JkaW5nbHkuICBQT0xMUyBpcyB1c2VkIHdo ZW4gJ2Nvbm5lY3QnIHJldHVybnMgRUlOUFJPR1JFU1MsIGFuZAotKyAgIHdlIG5lZWQgdG8gaW52 b2tlICd3YWl0X2Zvcl9jb25uZWN0JyB0byBvYnRhaW4gdGhlIHN0YXR1cy4gICovCi0gCi0taW50 Ci0tbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKLStzdGF0 aWMgaW50Ci0rdHJ5X2Nvbm5lY3QgKGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqYWluZm8sIHVuc2ln bmVkIGludCAqcG9sbHMpCi0gewotLSAgY2hhciBob3N0bmFtZVsxMDBdOwotLSAgY29uc3QgY2hh ciAqcG9ydF9zdHI7Ci0tICBpbnQgbiwgcG9ydCwgdG1wOwotLSAgaW50IHVzZV91ZHA7Ci0tICBz dHJ1Y3QgaG9zdGVudCAqaG9zdGVudDsKLS0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsK LS0jaWZkZWYgVVNFX1dJTjMyQVBJCi0tICB1X2xvbmcgaW9hcmc7Ci0tI2Vsc2UKLS0gIGludCBp b2FyZzsKLS0jZW5kaWYKLS0gIHVuc2lnbmVkIGludCBwb2xscyA9IDA7Ci0tCi0tICB1c2VfdWRw ID0gMDsKLS0gIGlmIChzdGFydHN3aXRoIChuYW1lLCAidWRwOiIpKQotLSAgICB7Ci0tICAgICAg dXNlX3VkcCA9IDE7Ci0tICAgICAgbmFtZSA9IG5hbWUgKyA0OwotLSAgICB9Ci0tICBlbHNlIGlm IChzdGFydHN3aXRoIChuYW1lLCAidGNwOiIpKQotLSAgICBuYW1lID0gbmFtZSArIDQ7Ci0tCi0t ICBwb3J0X3N0ciA9IHN0cmNociAobmFtZSwgJzonKTsKLS0KLS0gIGlmICghcG9ydF9zdHIpCi0t ICAgIGVycm9yIChfKCJuZXRfb3BlbjogTm8gY29sb24gaW4gaG9zdCBuYW1lISIpKTsgIC8qIFNo b3VsZG4ndCBldmVyCi0tCQkJCQkJICAgICAgIGhhcHBlbi4gICovCi0tCi0tICB0bXAgPSBzdGQ6 Om1pbiAocG9ydF9zdHIgLSBuYW1lLCAocHRyZGlmZl90KSBzaXplb2YgaG9zdG5hbWUgLSAxKTsK LS0gIHN0cm5jcHkgKGhvc3RuYW1lLCBuYW1lLCB0bXApOwkvKiBEb24ndCB3YW50IGNvbG9uLiAg Ki8KLS0gIGhvc3RuYW1lW3RtcF0gPSAnXDAwMCc7CS8qIFRpZSBvZmYgaG9zdCBuYW1lLiAgKi8K LS0gIHBvcnQgPSBhdG9pIChwb3J0X3N0ciArIDEpOwotLQotLSAgLyogRGVmYXVsdCBob3N0bmFt ZSBpcyBsb2NhbGhvc3QuICAqLwotLSAgaWYgKCFob3N0bmFtZVswXSkKLS0gICAgc3RyY3B5ICho b3N0bmFtZSwgImxvY2FsaG9zdCIpOwotLQotLSAgaG9zdGVudCA9IGdldGhvc3RieW5hbWUgKGhv c3RuYW1lKTsKLS0gIGlmICghaG9zdGVudCkKLS0gICAgewotLSAgICAgIGZwcmludGZfdW5maWx0 ZXJlZCAoZ2RiX3N0ZGVyciwgIiVzOiB1bmtub3duIGhvc3RcbiIsIGhvc3RuYW1lKTsKLS0gICAg ICBlcnJubyA9IEVOT0VOVDsKLS0gICAgICByZXR1cm4gLTE7Ci0tICAgIH0KLSsgIGludCBzb2Nr ID0gZ2RiX3NvY2tldF9jbG9leGVjIChhaW5mby0+YWlfZmFtaWx5LCBhaW5mby0+YWlfc29ja3R5 cGUsCi0rCQkJCSBhaW5mby0+YWlfcHJvdG9jb2wpOwotIAotLSAgc29ja2FkZHIuc2luX2ZhbWls eSA9IFBGX0lORVQ7Ci0tICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gIG1l bWNweSAoJnNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciwgaG9zdGVudC0+aF9hZGRyLAotLQkgIHNp emVvZiAoc3RydWN0IGluX2FkZHIpKTsKLS0KLS0gcmV0cnk6Ci0tCi0tICBpZiAodXNlX3VkcCkK LS0gICAgc2NiLT5mZCA9IGdkYl9zb2NrZXRfY2xvZXhlYyAoUEZfSU5FVCwgU09DS19ER1JBTSwg MCk7Ci0tICBlbHNlCi0tICAgIHNjYi0+ZmQgPSBnZGJfc29ja2V0X2Nsb2V4ZWMgKFBGX0lORVQs IFNPQ0tfU1RSRUFNLCAwKTsKLS0KLS0gIGlmIChzY2ItPmZkID09IC0xKQotKyAgaWYgKHNvY2sg PCAwKQotICAgICByZXR1cm4gLTE7Ci0tICAKLSsKLSAgIC8qIFNldCBzb2NrZXQgbm9uYmxvY2tp bmcuICAqLwotLSAgaW9hcmcgPSAxOwotLSAgaW9jdGwgKHNjYi0+ZmQsIEZJT05CSU8sICZpb2Fy Zyk7Ci0rICBpbnQgaW9hcmcgPSAxOwotKwotKyAgaW9jdGwgKHNvY2ssIEZJT05CSU8sICZpb2Fy Zyk7Ci0gCi0gICAvKiBVc2UgTm9uLWJsb2NraW5nIGNvbm5lY3QuICBjb25uZWN0KCkgd2lsbCBy ZXR1cm4gMCBpZiBjb25uZWN0ZWQKLSAgICAgIGFscmVhZHkuICAqLwotLSAgbiA9IGNvbm5lY3Qg KHNjYi0+ZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzaXplb2YgKHNvY2thZGRy KSk7Ci0tCi0tICBpZiAobiA8IDApCi0rICBpZiAoY29ubmVjdCAoc29jaywgYWluZm8tPmFpX2Fk ZHIsIGFpbmZvLT5haV9hZGRybGVuKSA8IDApCi0gICAgIHsKLSAjaWZkZWYgVVNFX1dJTjMyQVBJ Ci0gICAgICAgaW50IGVyciA9IFdTQUdldExhc3RFcnJvcigpOwotQEAgLTIzNCwyMSArMTg1LDI2 IEBAIG5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0gICAg ICAgaW50IGVyciA9IGVycm5vOwotICNlbmRpZgotIAotLSAgICAgIC8qIE1heWJlIHdlJ3JlIHdh aXRpbmcgZm9yIHRoZSByZW1vdGUgdGFyZ2V0IHRvIGJlY29tZSByZWFkeSB0bwotLQkgYWNjZXB0 IGNvbm5lY3Rpb25zLiAgKi8KLS0gICAgICBpZiAodGNwX2F1dG9fcmV0cnkKLSsgICAgICAvKiBJ ZiB3ZSd2ZSBnb3QgYSAiY29ubmVjdGlvbiByZWZ1c2VkIiBlcnJvciwganVzdCByZXR1cm4KLSsJ IC0xLiAgVGhlIGNhbGxlciB3aWxsIGtub3cgd2hhdCB0byBkby4gICovCi0rICAgICAgaWYgKAot ICNpZmRlZiBVU0VfV0lOMzJBUEkKLS0JICAmJiBlcnIgPT0gV1NBRUNPTk5SRUZVU0VECi0rCSAg ZXJyID09IFdTQUVDT05OUkVGVVNFRAotICNlbHNlCi0tCSAgJiYgZXJyID09IEVDT05OUkVGVVNF RAotKwkgIGVyciA9PSBFQ09OTlJFRlVTRUQKLSAjZW5kaWYKLS0JICAmJiB3YWl0X2Zvcl9jb25u ZWN0IChOVUxMLCAmcG9sbHMpID49IDApCi0rCSAgKQotIAl7Ci0tCSAgY2xvc2UgKHNjYi0+ZmQp OwotLQkgIGdvdG8gcmV0cnk7Ci0rCSAgY2xvc2UgKHNvY2spOwotKwkgIGVycm5vID0gZXJyOwot KwkgIHJldHVybiAtMTsKLSAJfQotIAotICAgICAgIGlmICgKLSsJICAvKiBBbnkgb3RoZXIgZXJy b3IgKGV4Y2VwdCBFSU5QUk9HUkVTUykgd2lsbCBiZSAic3dhbGxvd2VkIgotKwkgICAgIGhlcmUu ICBXZSByZXR1cm4gd2l0aG91dCBzcGVjaWZ5aW5nIGEgcmV0dXJuIHZhbHVlLCBhbmQKLSsJICAg ICBzZXQgZXJybm8gaWYgdGhlIGNhbGxlciB3YW50cyB0byBpbnNwZWN0IHdoYXQKLSsJICAgICBo YXBwZW5lZC4gICovCi0gI2lmZGVmIFVTRV9XSU4zMkFQSQotIAkgIC8qIFVuZGVyIFdpbmRvd3Ms IGNhbGxpbmcgImNvbm5lY3QiIHdpdGggYSBub24tYmxvY2tpbmcgc29ja2V0Ci0gCSAgICAgcmVz dWx0cyBpbiBXU0FFV09VTERCTE9DSywgbm90IFdTQUVJTlBST0dSRVNTLiAgKi8KLUBAIC0yNTgs NjYgKzIxNCwxNjYgQEAgbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAq bmFtZSkKLSAjZW5kaWYKLSAJICApCi0gCXsKLSsJICBjbG9zZSAoc29jayk7Ci0gCSAgZXJybm8g PSBlcnI7Ci0tCSAgbmV0X2Nsb3NlIChzY2IpOwotIAkgIHJldHVybiAtMTsKLSAJfQotIAotICAg ICAgIC8qIExvb2tzIGxpa2Ugd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgY29ubmVjdC4gICovCi0t ICAgICAgZG8gCi0tCXsKLS0JICBuID0gd2FpdF9mb3JfY29ubmVjdCAoc2NiLCAmcG9sbHMpOwot LQl9IAotKyAgICAgIGludCBuOwotKwotKyAgICAgIGRvCi0rCW4gPSB3YWl0X2Zvcl9jb25uZWN0 IChzb2NrLCBwb2xscyk7Ci0gICAgICAgd2hpbGUgKG4gPT0gMCk7Ci0rCi0gICAgICAgaWYgKG4g PCAwKQotIAl7Ci0tCSAgbmV0X2Nsb3NlIChzY2IpOwotKwkgIGludCBzYXZlZF9lcnJubyA9IGVy cm5vOwotKwotKwkgIC8qIEEgbmVnYXRpdmUgdmFsdWUgaGVyZSBtZWFucyB0aGF0IHdlIGVpdGhl ciB0aW1lZCBvdXQgb3IKLSsJICAgICBnb3QgaW50ZXJydXB0ZWQgYnkgdGhlIHVzZXIuICBKdXN0 IHJldHVybi4gICovCi0rCSAgY2xvc2UgKHNvY2spOwotKwkgIGVycm5vID0gc2F2ZWRfZXJybm87 Ci0gCSAgcmV0dXJuIC0xOwotIAl9Ci0gICAgIH0KLSAKLSAgIC8qIEdvdCBzb21ldGhpbmcuICBJ cyBpdCBhbiBlcnJvcj8gICovCi0tICB7Ci0tICAgIGludCByZXMsIGVycjsKLS0gICAgc29ja2xl bl90IGxlbjsKLS0KLS0gICAgbGVuID0gc2l6ZW9mIChlcnIpOwotLSAgICAvKiBPbiBXaW5kb3dz LCB0aGUgZm91cnRoIHBhcmFtZXRlciB0byBnZXRzb2Nrb3B0IGlzIGEgImNoYXIgKiI7Ci0tICAg ICAgIG9uIFVOSVggc3lzdGVtcyBpdCBpcyBnZW5lcmFsbHkgInZvaWQgKiIuICBUaGUgY2FzdCB0 byAiY2hhciAqIgotLSAgICAgICBpcyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRh dGEgcG9pbnRlciB0eXBlIGNhbiBiZQotLSAgICAgICBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byAi dm9pZCAqIi4gICovCi0tICAgIHJlcyA9IGdldHNvY2tvcHQgKHNjYi0+ZmQsIFNPTF9TT0NLRVQs IFNPX0VSUk9SLCAoY2hhciAqKSAmZXJyLCAmbGVuKTsKLS0gICAgaWYgKHJlcyA8IDAgfHwgZXJy KQotLSAgICAgIHsKLS0JLyogTWF5YmUgdGhlIHRhcmdldCBzdGlsbCBpc24ndCByZWFkeSB0byBh Y2NlcHQgdGhlIGNvbm5lY3Rpb24uICAqLwotLQlpZiAodGNwX2F1dG9fcmV0cnkKLSsgIGludCBl cnI7Ci0rICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChlcnIpOwotKwotKyAgLyogT24gV2luZG93 cywgdGhlIGZvdXJ0aCBwYXJhbWV0ZXIgdG8gZ2V0c29ja29wdCBpcyBhICJjaGFyICoiOwotKyAg ICAgb24gVU5JWCBzeXN0ZW1zIGl0IGlzIGdlbmVyYWxseSAidm9pZCAqIi4gIFRoZSBjYXN0IHRv ICJjaGFyICoiCi0rICAgICBpcyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEg cG9pbnRlciB0eXBlIGNhbiBiZQotKyAgICAgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gInZvaWQg KiIuICAqLwotKyAgaW50IHJldCA9IGdldHNvY2tvcHQgKHNvY2ssIFNPTF9TT0NLRVQsIFNPX0VS Uk9SLCAoY2hhciAqKSAmZXJyLCAmbGVuKTsKLSsKLSsgIGlmIChyZXQgPCAwKQotKyAgICB7Ci0r ICAgICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87Ci0rCi0rICAgICAgY2xvc2UgKHNvY2spOwot KyAgICAgIGVycm5vID0gc2F2ZWRfZXJybm87Ci0rICAgICAgcmV0dXJuIC0xOwotKyAgICB9Ci0r ICBlbHNlIGlmIChyZXQgPT0gMCAmJiBlcnIgIT0gMCkKLSsgICAgewotKyAgICAgIGNsb3NlIChz b2NrKTsKLSsgICAgICBlcnJubyA9IGVycjsKLSsgICAgICByZXR1cm4gLTE7Ci0rICAgIH0KLSsK LSsgIC8qIFRoZSBjb25uZWN0aW9uIHN1Y2NlZWRlZC4gIFJldHVybiB0aGUgc29ja2V0LiAgKi8K LSsgIHJldHVybiBzb2NrOwotK30KLSsKLSsvKiBPcGVuIGEgdGNwIHNvY2tldC4gICovCi0rCi0r aW50Ci0rbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKLSt7 Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0r Ci0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBw cmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9V TlNQRUMuICAqLwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3Nv Y2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7 Ci0rCi0rICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25f c3BlYyAobmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkK LSsgICAgZXJyb3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOwot KwotKyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLAotKwkJ ICAgICAgIHBhcnNlZC5wb3J0X3N0ci5jX3N0ciAoKSwKLSsJCSAgICAgICAmaGludCwgJmFpbmZv KTsKLSsKLSsgIGlmIChyICE9IDApCi0rICAgIHsKLSsgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRlcnIsIF8oIiVzOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAlc1xuIiksCi0rCQkJICBu YW1lLCBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBlcnJubyA9IEVOT0VOVDsKLSsgICAgICBy ZXR1cm4gLTE7Ci0rICAgIH0KLSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8g KGFpbmZvKTsKLSsKLSsgIC8qIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB3ZSd2ZSBnb3QgYSBj b25uZWN0aW9uIHJlZnVzZWQuICBJdCB3aWxsCi0rICAgICBiZSB0cnVlIGlmIGFueSBvZiB0aGUg Y29ubmVjdGlvbnMgdHJpZWQgd2FzIHJlZnVzZWQuICAqLwotKyAgYm9vbCBnb3RfY29ubnJlZnVz ZWQ7Ci0rICAvKiBJZiBhIGNvbm5lY3Rpb24gc3VjY2VlZWRzLCBTVUNDRVNTX0FJTkZPIHdpbGwg cG9pbnQgdG8gdGhlCi0rICAgICAnc3RydWN0IGFkZHJpbmZvJyB0aGF0IHN1Y2NlZWQuICAqLwot KyAgc3RydWN0IGFkZHJpbmZvICpzdWNjZXNzX2FpbmZvID0gTlVMTDsKLSsgIHVuc2lnbmVkIGlu dCBwb2xscyA9IDA7Ci0rCi0rICAvKiBBc3N1bWUgdGhlIHdvcnN0LiAgKi8KLSsgIHNjYi0+ZmQg PSAtMTsKLSsKLSsgIGRvCi0rICAgIHsKLSsgICAgICBnb3RfY29ubnJlZnVzZWQgPSBmYWxzZTsK LSsKLSsgICAgICBmb3IgKHN0cnVjdCBhZGRyaW5mbyAqaXRlciA9IGFpbmZvOyBpdGVyICE9IE5V TEw7IGl0ZXIgPSBpdGVyLT5haV9uZXh0KQotKwl7Ci0rCSAgLyogSXRlcmF0ZSBvdmVyIHRoZSBs aXN0IG9mIHBvc3NpYmxlIGFkZHJlc3NlcyB0byBjb25uZWN0Ci0rCSAgICAgdG8uICBGb3IgZWFj aCwgd2UnbGwgdHJ5IHRvIGNvbm5lY3QgYW5kIHNlZSBpZiBpdAotKwkgICAgIHN1Y2NlZWRzLiAg Ki8KLSsJICBpbnQgc29jayA9IHRyeV9jb25uZWN0IChpdGVyLCAmcG9sbHMpOwotKwotKwkgIGlm IChzb2NrID49IDApCi0rCSAgICB7Ci0rCSAgICAgIC8qIFdlJ3ZlIGdvdHRlbiBhIHN1Y2Nlc3Nm dWwgY29ubmVjdGlvbi4gIFNhdmUgaXRzCi0rCQkgJ3N0cnVjdCBhZGRyaW5mbycsIHRoZSBzb2Nr ZXQsIGFuZCBicmVhay4gICovCi0rCSAgICAgIHN1Y2Nlc3NfYWluZm8gPSBpdGVyOwotKwkgICAg ICBzY2ItPmZkID0gc29jazsKLSsJICAgICAgYnJlYWs7Ci0rCSAgICB9Ci0rCSAgZWxzZSBpZiAo Ci0gI2lmZGVmIFVTRV9XSU4zMkFQSQotLQkgICAgJiYgZXJyID09IFdTQUVDT05OUkVGVVNFRAot KwkgIGVycm5vID09IFdTQUVDT05OUkVGVVNFRAotICNlbHNlCi0tCSAgICAmJiBlcnIgPT0gRUNP Tk5SRUZVU0VECi0rCSAgZXJybm8gPT0gRUNPTk5SRUZVU0VECi0gI2VuZGlmCi0tCSAgICAmJiB3 YWl0X2Zvcl9jb25uZWN0IChOVUxMLCAmcG9sbHMpID49IDApCi0tCSAgewotLQkgICAgY2xvc2Ug KHNjYi0+ZmQpOwotLQkgICAgZ290byByZXRyeTsKLS0JICB9Ci0tCWlmIChlcnIpCi0tCSAgZXJy bm8gPSBlcnI7Ci0tCW5ldF9jbG9zZSAoc2NiKTsKLS0JcmV0dXJuIC0xOwotLSAgICAgIH0KLS0g IH0gCi0rCQkgICApCi0rCSAgICBnb3RfY29ubnJlZnVzZWQgPSB0cnVlOwotKwl9Ci0rICAgIH0K LSsgIC8qIEp1c3QgcmV0cnkgaWY6Ci0rCi0rICAgICAtIHRjcF9hdXRvX3JldHJ5IGlzIHRydWUs IGFuZAotKyAgICAgLSBXZSBoYXZlbid0IGdvdHRlbiBhIGNvbm5lY3Rpb24geWV0LCBhbmQKLSsg ICAgIC0gQW55IG9mIG91ciBjb25uZWN0aW9uIGF0dGVtcHRzIHJldHVybmVkIHdpdGggRUNPTk5S RUZVU0VELCBhbmQKLSsgICAgIC0gd2FpdF9mb3JfY29ubmVjdCBzaWduYWxzIHRoYXQgd2UgY2Fu IGtlZXAgZ29pbmcuICAqLwotKyAgd2hpbGUgKHRjcF9hdXRvX3JldHJ5Ci0rCSAmJiBzdWNjZXNz X2FpbmZvID09IE5VTEwKLSsJICYmIGdvdF9jb25ucmVmdXNlZAotKwkgJiYgd2FpdF9mb3JfY29u bmVjdCAoLTEsICZwb2xscykgPj0gMCk7Ci0rCi0rICBpZiAoc3VjY2Vzc19haW5mbyA9PSBOVUxM KQotKyAgICB7Ci0rICAgICAgbmV0X2Nsb3NlIChzY2IpOwotKyAgICAgIHJldHVybiAtMTsKLSsg ICAgfQotIAotICAgLyogVHVybiBvZmYgbm9uYmxvY2tpbmcuICAqLwotLSAgaW9hcmcgPSAwOwot KyNpZmRlZiBVU0VfV0lOMzJBUEkKLSsgIHVfbG9uZyBpb2FyZyA9IDA7Ci0rI2Vsc2UKLSsgIGlu dCBpb2FyZyA9IDA7Ci0rI2VuZGlmCi0rCi0gICBpb2N0bCAoc2NiLT5mZCwgRklPTkJJTywgJmlv YXJnKTsKLSAKLS0gIGlmICh1c2VfdWRwID09IDApCi0rICBpZiAoc3VjY2Vzc19haW5mby0+YWlf c29ja3R5cGUgPT0gSVBQUk9UT19UQ1ApCi0gICAgIHsKLSAgICAgICAvKiBEaXNhYmxlIE5hZ2xl IGFsZ29yaXRobS4gIE5lZWRlZCBpbiBzb21lIGNhc2VzLiAgKi8KLS0gICAgICB0bXAgPSAxOwot KyAgICAgIGludCB0bXAgPSAxOwotKwotICAgICAgIHNldHNvY2tvcHQgKHNjYi0+ZmQsIElQUFJP VE9fVENQLCBUQ1BfTk9ERUxBWSwKLS0JCSAgKGNoYXIgKikmdG1wLCBzaXplb2YgKHRtcCkpOwot KwkJICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOwotICAgICB9Ci0gCi0gI2lmZGVmIFNJ R1BJUEUKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nCi0tLS0gYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9DaGFuZ2VMb2cKLUBAIC0xLDMgKzEsMjMgQEAKLSsyMDE4LTA3LTExICBTZXJnaW8g RHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotKwkgICAgSmFuIEtyYXRvY2h2 aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVy Y2VycGF2QGdtYWlsLmNvbT4KLSsJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNv bT4KLSsKLSsJKiBSRUFETUUgKFRlc3RzdWl0ZSBQYXJhbWV0ZXJzKTogTWVudGlvbiBuZXcgJ0dE Ql9URVNUX1NPQ0tFVEhPU1QnCi0rCXBhcmFtZXRlci4KLSsJKiBib2FyZHMvbmF0aXZlLWV4dGVu ZGVkLWdkYnNlcnZlci5leHA6IERvIG5vdCBzZXQgJ3NvY2tldGhvc3QnCi0rCWJ5IGRlZmF1bHQu Ci0rCSogYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4KLSsJKiBnZGIuc2Vy dmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHA6IEltcHJvdmUgcmVnZXhwIHVzZWQKLSsJ Zm9yIGRldGVjdGluZyB3aGVuIGEgcmVtb3RlIGRlYnVnZ2luZyBjb25uZWN0aW9uIHN1Y2NlZWRz LgotKwkqIGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4KLSsJKiBsaWIv Z2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0KToK LSsJRG8gbm90IHByZWZpeCB0aGUgcG9ydCBudW1iZXIgd2l0aCAiOiIuCi0rCShnZGJzZXJ2ZXJf c3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQKLSsJc3Vw cG9ydCBmb3IgZGV0ZWN0aW5nIGFuZCB1c2luZyBpdC4gIEFkZCAnJGRlYnVnaG9zdF9nZGJzZXJ2 ZXInCi0rCXRvIHRoZSBsaXN0IG9mIGFyZ3VtZW50cyB1c2VkIHRvIHN0YXJ0IGdkYnNlcnZlci4g IEhhbmRsZSBjYXNlCi0rCXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGEgbmV0d29yayBu YW1lLgotKwotIDIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJl ZGhhdC5jb20+Ci0gCi0gCVBSIGMrKy8yMzM3MwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv UkVBRE1FIGIvZ2RiL3Rlc3RzdWl0ZS9SRUFETUUKLS0tLSBhL2dkYi90ZXN0c3VpdGUvUkVBRE1F Ci0rKysgYi9nZGIvdGVzdHN1aXRlL1JFQURNRQotQEAgLTI1OSw2ICsyNTksMjAgQEAgVGhpcyBt YWtlIChub3QgcnVudGVzdCkgdmFyaWFibGUgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXRoZXIgdGhl Ci0gdGVzdHN1aXRlIHByZWxvYWRzIHRoZSByZWFkMS5zbyBsaWJyYXJ5IGludG8gZXhwZWN0LiAg QW55IG5vbi1lbXB0eQotIHZhbHVlIG1lYW5zIHRydWUuICBTZWUgIlJhY2UgZGV0ZWN0aW9uIiBi ZWxvdy4KLSAKLStHREJfVEVTVF9TT0NLRVRIT1NUCi0rCi0rVGhpcyB2YXJpYWJsZSBjYW4gcHJv dmlkZSB0aGUgaG9zdG5hbWUvYWRkcmVzcyB0aGF0IHNob3VsZCBiZSB1c2VkCi0rd2hlbiBwZXJm b3JtaW5nIEdEQnNlcnZlci1yZWxhdGVkIHRlc3RzLiAgVGhpcyBpcyB1c2VmdWwgaW4gc29tZQot K3NpdHVhdGlvbnMsIGUuZy4sIHdoZW4geW91IHdhbnQgdG8gdGVzdCB0aGUgSVB2NiBjb25uZWN0 aXZpdHkgb2YgR0RCCi0rYW5kIEdEQnNlcnZlciwgb3Igd2hlbiB1c2luZyBhIGRpZmZlcmVudCBo b3N0bmFtZS9hZGRyZXNzIGlzIG5lZWRlZC4KLStGb3IgZXhhbXBsZSwgdG8gbWFrZSBHREIgYW5k IEdEQnNlcnZlciB1c2UgSVB2Ni1vbmx5IGNvbm5lY3Rpb25zLCB5b3UKLStjYW4gZG86Ci0rCi0r CW1ha2UgY2hlY2sgVEVTVFM9ImdkYi5zZXJ2ZXIvKi5leHAiIFJVTlRFU1RGTEFHUz0nR0RCX1RF U1RfU09DS0VUSE9TVD10Y3A2Ols6OjFdJwotKwotK05vdGUgdGhhdCBvbmx5IGEgaG9zdG5hbWUv YWRkcmVzcyBjYW4gYmUgcHJvdmlkZWQsIHdpdGhvdXQgYSBwb3J0Ci0rbnVtYmVyLgotKwotIFJh Y2UgZGV0ZWN0aW9uCi0gKioqKioqKioqKioqKioKLSAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUv Ym9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRl L2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9ib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHAKLUBAIC0yNCw4ICsyNCw2IEBA IGxvYWRfZ2VuZXJpY19jb25maWcgImV4dGVuZGVkLWdkYnNlcnZlciIKLSBsb2FkX2JvYXJkX2Rl c2NyaXB0aW9uICJnZGJzZXJ2ZXItYmFzZSIKLSBsb2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJsb2Nh bC1ib2FyZCIKLSAKLS1zZXRfYm9hcmRfaW5mbyBzb2NrZXRob3N0ICJsb2NhbGhvc3Q6IgotLQot ICMgV2Ugd2lsbCBiZSB1c2luZyB0aGUgZXh0ZW5kZWQgR0RCIHJlbW90ZSBwcm90b2NvbC4KLSBz ZXRfYm9hcmRfaW5mbyBnZGJfcHJvdG9jb2wgImV4dGVuZGVkLXJlbW90ZSIKLSAKLWRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0 c3VpdGUvYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2Jv YXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0 aXZlLWdkYnNlcnZlci5leHAKLUBAIC0zMCw3ICszMCw2IEBAIHNldF9ib2FyZF9pbmZvIGdkYixk b19yZWxvYWRfb25fcnVuIDEKLSAjIFRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgYXJndW1lbnQtcGFz c2luZyAoeWV0KS4KLSBzZXRfYm9hcmRfaW5mbyBub2FyZ3MgMQotIAotLXNldF9ib2FyZF9pbmZv IHNvY2tldGhvc3QgImxvY2FsaG9zdDoiCi0gc2V0X2JvYXJkX2luZm8gdXNlX2dkYl9zdHViIDEK LSBzZXRfYm9hcmRfaW5mbyBleGl0X2lzX3JlbGlhYmxlIDEKLSAKLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhwCi0tLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cAotKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAK LUBAIC01Myw3ICs1Myw3IEBAIHNhdmVfdmFycyB7IEdEQkZMQUdTIH0gewotICAgICBzZXQgdXNl X2dkYl9zdHViIDAKLSAKLSAgICAgZ2RiX3Rlc3QgInRhcmdldCAke2dkYnNlcnZlcl9wcm90b2Nv bH0gJHtnZGJzZXJ2ZXJfZ2RicG9ydH0iIFwKLS0JIlJlbW90ZSBkZWJ1Z2dpbmcgdXNpbmcgJGdk YnNlcnZlcl9nZGJwb3J0IiBcCi0rCSJSZW1vdGUgZGVidWdnaW5nIHVzaW5nIFtzdHJpbmdfdG9f cmVnZXhwICRnZGJzZXJ2ZXJfZ2RicG9ydF0iIFwKLSAJImNvbm5lY3QgdG8gZ2Ric2VydmVyIgot IAotICAgICBnZGJfdGVzdCAicnVuIiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu c2VydmVyL3NlcnZlci1jb25uZWN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2 ZXItY29ubmVjdC5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwCi1AQCAtMCwwICsx LDExMSBAQAotKyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KLSsjCi0rIyBDb3B5cmlnaHQgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K LSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu Ci0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGVzdCBtdWx0aXBsZSB0 eXBlcyBvZiBjb25uZWN0aW9uIChJUHY0LCBJUHY2LCBUQ1AsIFVEUCkgYW5kIG1ha2UKLSsjIHN1 cmUgYm90aCBnZGJzZXJ2ZXIgYW5kIEdEQiB3b3JrLgotKwotK2xvYWRfbGliIGdkYnNlcnZlci1z dXBwb3J0LmV4cAotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIG5vcm1hbC5jCi0rCi0raWYge1tza2lw X2dkYnNlcnZlcl90ZXN0c119IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBXZSB3YW50IHRv IGhhdmUgY29udHJvbCBvdmVyIHdoZXJlIHdlIHN0YXJ0IGdkYnNlcnZlci4KLStpZiB7IFtpc19y ZW1vdGUgdGFyZ2V0XSB9IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0raWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10g fSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLSsjIE1ha2Ugc3VyZSB3ZSdyZSBkaXNjb25uZWN0 ZWQsIGluIGNhc2Ugd2UncmUgdGVzdGluZyB3aXRoIGFuCi0rIyBleHRlbmRlZC1yZW1vdGUgYm9h cmQsIHRoZXJlZm9yZSBhbHJlYWR5IGNvbm5lY3RlZC4KLStnZGJfdGVzdCAiZGlzY29ubmVjdCIg Ii4qIgotKwotK3NldCB0YXJnZXRfZXhlYyBbZ2Ric2VydmVyX2Rvd25sb2FkX2N1cnJlbnRfcHJv Z10KLSsKLSsjIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHRlc3QgaW5zdHJ1Y3Rpb25zIGZvciBl YWNoIHNjZW5hcmlvLiAgVGhlCi0rIyBkZXNjcmlwdGlvbiBvZiBlYWNoIGZpZWxkIGlzIGFzIGZv bGxvd3M6Ci0rIwotKyMgLSBUaGUgY29ubmVjdGlvbiBzcGVjaWZpY2F0aW9uIHRvIGJlIHVzZWQg d2hlbiBzdGFydGluZwotKyMgICBnZGJzZXJ2ZXIvR0RCLiAgVGhpcyBzdHJpbmcgd2lsbCBiZSB1 c2VkIHRvIHNldCB0aGUKLSsjICAgR0RCX1RFU1RfU09DS0VUSE9TVCB3aGVuIGNhbGxpbmcgZ2Ri c2VydmVyX3N0YXJ0LgotKyMKLSsjIC0gQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBnZGJzZXJ2 ZXIgc2hvdWxkIGZhaWwgd2hlbiB3ZSBhdHRlbXB0IHRvCi0rIyAgIHN0YXJ0IGl0LiAgVXNlZnVs IHdoZW4gdGVzdGluZyBlcnJvbmVvdXMgY29ubmVjdGlvbiBzcGVjcyBzdWNoIGFzCi0rIyAgICJ0 Y3A4OiIuCi0rIwotKyMgLSBUaGUgcHJlZml4IHRoYXQgc2hvdWxkIGJlIHByZXBlbmRlZCB0byB0 aGUgdGVzdCBtZXNzYWdlcy4KLStzZXQgdGVzdF9wYXJhbXMgXAotKyAgICB7IFwKLSsJICB7ICJ0 Y3A0OjEyNy4wLjAuMSIgMCAidGNwNCIgfSBcCi0rCSAgeyAidGNwNjo6OjEiICAgICAgIDAgInRj cDYiIH0gXAotKwkgIHsgInRjcDY6Wzo6MV0iICAgICAwICJ0Y3A2LXdpdGgtYnJhY2tldHMiIH0g XAotKwkgIHsgInRjcDpsb2NhbGhvc3QiICAwICJ0Y3AiIH0gXAotKwkgIHsgInVkcDQ6MTI3LjAu MC4xIiAwICJ1ZHA0IiB9IFwKLSsJICB7ICJ1ZHA2Ojo6MSIgICAgICAgMCAidWRwNiIgfSBcCi0r CSAgeyAidWRwNjpbOjoxXSIgICAgIDAgInVkcDYtd2l0aC1icmFja2V0cyIgfSBcCi0rCSAgeyAi dGNwODoxMjMiICAgICAgIDEgInRjcDgiIH0gXAotKwkgIHsgInVkcDEyMzo6OiIgICAgICAxICJ1 ZHAxMjMiIH0gXAotKwkgIHsgImdhcmJhZ2U6MTIzNCIgICAxICJnYXJiYWdlOjEyMzQiIH0gXAot KyAgICB9Ci0rCi0rIyBUaGUgYmVzdCB3YXkgdG8gdGVzdCBkaWZmZXJlbnQgdHlwZXMgb2YgY29u bmVjdGlvbnMgaXMgdG8gc2V0IHRoZQotKyMgR0RCX1RFU1RfU09DS0VUSE9TVCB2YXJpYWJsZSBh Y2NvcmRpbmdseS4KLStzYXZlX3ZhcnMgeyBHREJfVEVTVF9TT0NLRVRIT1NUIH0gewotKyAgICBm b3JlYWNoIGxpbmUgJHRlc3RfcGFyYW1zIHsKLSsJc2V0IHNvY2tob3N0IFtsaW5kZXggJGxpbmUg MF0KLSsJc2V0IGdkYnNlcnZlcl9zaG91bGRfZmFpbCBbbGluZGV4ICRsaW5lIDFdCi0rCXNldCBw cmVmaXggW2xpbmRleCAkbGluZSAyXQotKwotKwl3aXRoX3Rlc3RfcHJlZml4ICRwcmVmaXggewot KwkgICAgc2V0IEdEQl9URVNUX1NPQ0tFVEhPU1QgJHNvY2tob3N0Ci0rCSAgICBzZXQgdGVzdCAi c3RhcnQgZ2Ric2VydmVyIgotKwotKwkgICAgIyBUcnkgdG8gc3RhcnQgZ2Ric2VydmVyLgotKwkg ICAgc2V0IGNhdGNocmVzIFtjYXRjaCB7c2V0IHJlcyBbZ2Ric2VydmVyX3N0YXJ0ICIiICR0YXJn ZXRfZXhlY119IGVycm1zZ10KLSsKLSsJICAgIGlmIHsgJGNhdGNocmVzICE9IDAgfSB7Ci0rCQlp ZiB7ICRnZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgfSB7Ci0rCQkgICAgcGFzcyAiJHRlc3Q6IGdkYnNl cnZlciBmYWlsZWQgYXMgZXhwZWN0ZWQiCi0rCQl9IGVsc2UgewotKwkJICAgIGZhaWwgIiR0ZXN0 OiAkZXJybXNnIgotKwkJfQotKwkJY29udGludWUKLSsJICAgIH0gZWxzZSB7Ci0rCQlpZiB7ICRn ZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgfSB7Ci0rCQkgICAgZmFpbCAiJHRlc3Q6IGdkYnNlcnZlciBz aG91bGQgZmFpbCBidXQgZGlkIG5vdCIKLSsJCX0gZWxzZSB7Ci0rCQkgICAgcGFzcyAiJHRlc3Qi Ci0rCQl9Ci0rCSAgICB9Ci0rCi0rCSAgICBzZXQgZ2Ric2VydmVyX3Byb3RvY29sIFtsaW5kZXgg JHJlcyAwXQotKwkgICAgc2V0IGdkYnNlcnZlcl9nZGJwb3J0IFtsaW5kZXggJHJlcyAxXQotKwkg ICAgc2V0IHRlc3QgImNvbm5lY3QgdG8gZ2Ric2VydmVyIHVzaW5nICRzb2NraG9zdCIKLSsKLSsJ ICAgIGlmIHsgW2dkYl90YXJnZXRfY21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9n ZGJwb3J0XSA9PSAwIH0gewotKwkJcGFzcyAkdGVzdAotKwkgICAgfSBlbHNlIHsKLSsJCWZhaWwg JHRlc3QKLSsJICAgIH0KLSsJfQotKyAgICB9Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZl ci1zdXBwb3J0LmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQu ZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLUBAIC0y MTEsNyArMjExLDcgQEAgcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfcmVtb3RlX2FkZHJlc3Mg eyBob3N0IHBvcnQgfSB7Ci0gIyBEZWZhdWx0IHJvdXRpbmUgdG8gY29tcHV0ZSB0aGUgImNvbW0i IGFyZ3VtZW50IGZvciBnZGJzZXJ2ZXIuCi0gCi0gcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRf Y29tbV9wb3J0IHsgcG9ydCB9IHsKLS0gICAgcmV0dXJuICI6JHBvcnQiCi0rICAgIHJldHVybiAi JHBvcnQiCi0gfQotIAotICMgU3RhcnQgYSBnZGJzZXJ2ZXIgcHJvY2VzcyB3aXRoIGluaXRpYWwg T1BUSU9OUyBhbmQgdHJhaWxpbmcgQVJHVU1FTlRTLgotQEAgLTIyMSw2ICsyMjEsNyBAQCBwcm9j IGdkYnNlcnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQgeyBwb3J0IH0gewotIAotIHByb2MgZ2Ri c2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMgfSB7Ci0gICAgIGdsb2JhbCBwb3J0bnVt Ci0rICAgIGdsb2JhbCBHREJfVEVTVF9TT0NLRVRIT1NUCi0gCi0gICAgICMgUG9ydCBpZCAtLSBl aXRoZXIgc3BlY2lmaWVkIGluIGJhc2Vib2FyZCBmaWxlLCBvciBtYW5hZ2VkIGhlcmUuCi0gICAg IGlmIFt0YXJnZXRfaW5mbyBleGlzdHMgZ2RiLHNvY2tldHBvcnRdIHsKLUBAIC0yMzEsMTAgKzIz MiwyMiBAQCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0gewotICAg ICB9Ci0gCi0gICAgICMgRXh0cmFjdCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBob3N0IGlkcyBmcm9t IHRoZSB0YXJnZXQgYm9hcmQgc3RydWN0LgotLSAgICBpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIHNv Y2tldGhvc3RdIHsKLSsgICAgaWYgeyBbaW5mbyBleGlzdHMgR0RCX1RFU1RfU09DS0VUSE9TVF0g fSB7Ci0rCSMgVGhlIHVzZXIgaXMgbm90IHN1cHBvc2VkIHRvIHByb3ZpZGUgYSBwb3J0IG51bWJl ciwganVzdCBhCi0rCSMgaG9zdG5hbWUvYWRkcmVzcywgdGhlcmVmb3JlIHdlIGFkZCB0aGUgdHJh aWxpbmcgIjoiIGhlcmUuCi0rCXNldCBkZWJ1Z2hvc3QgIiR7R0RCX1RFU1RfU09DS0VUSE9TVH06 IgotKwkjIEVzY2FwZSBvcGVuIGFuZCBjbG9zZSBzcXVhcmUgYnJhY2tldHMuCi0rCXNldCBkZWJ1 Z2hvc3RfdG1wIFtzdHJpbmcgbWFwIHsgWyBcXFsgXSBcXF0gfSAkZGVidWdob3N0XQotKwkjIFdl IG5lZWQgYSAiZ2Ric2VydmVyIiB2ZXJzaW9uIG9mIHRoZSBkZWJ1Z2hvc3QsIHdoaWNoIHdpbGwK LSsJIyBoYXZlIHRoZSBwb3NzaWJsZSBjb25uZWN0aW9uIHByZWZpeCBzdHJpcHBlZC4gIFRoaXMg aXMKLSsJIyBiZWNhdXNlIGdkYnNlcnZlciBjdXJyZW50bHkgZG9lc24ndCByZWNvZ25pemUgdGhl IHByZWZpeGVzLgotKwlyZWdzdWIgLWFsbCAiXlwodGNwOnx1ZHA6fHRjcDQ6fHVkcDQ6fHRjcDY6 fHVkcDY6XCkiICRkZWJ1Z2hvc3RfdG1wICIiIGRlYnVnaG9zdF9nZGJzZXJ2ZXIKLSsgICAgfSBl bHNlaWYgW3RhcmdldF9pbmZvIGV4aXN0cyBzb2NrZXRob3N0XSB7Ci0gCXNldCBkZWJ1Z2hvc3Qg W3RhcmdldF9pbmZvIHNvY2tldGhvc3RdCi0rCXNldCBkZWJ1Z2hvc3RfZ2Ric2VydmVyICRkZWJ1 Z2hvc3QKLSAgICAgfSBlbHNlIHsKLSAJc2V0IGRlYnVnaG9zdCAibG9jYWxob3N0OiIKLSsJc2V0 IGRlYnVnaG9zdF9nZGJzZXJ2ZXIgJGRlYnVnaG9zdAotICAgICB9Ci0gCi0gICAgICMgU29tZSBi b2FyZHMgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciB0aGUgcG9ydCB0aGF0IGlzIHBhc3NlZCB0 bwotQEAgLTI3Nyw4ICsyOTAsMTQgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFy Z3VtZW50cyB9IHsKLSAJaWYgeyAkb3B0aW9ucyAhPSAiIiB9IHsKLSAJICAgIGFwcGVuZCBnZGJz ZXJ2ZXJfY29tbWFuZCAiICRvcHRpb25zIgotIAl9Ci0rCWlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2 ZXIgIT0gIiIgfSB7Ci0rCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAkZGVidWdob3N0 X2dkYnNlcnZlciIKLSsJfQotIAlpZiB7ICRwb3J0bnVtICE9ICIiIH0gewotLQkgICAgYXBwZW5k IGdkYnNlcnZlcl9jb21tYW5kICIgWyRnZXRfY29tbV9wb3J0ICRwb3J0bnVtXSIKLSsJICAgIGlm IHsgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIgPT0gIiIgfSB7Ci0rCQlhcHBlbmQgZ2Ric2VydmVyX2Nv bW1hbmQgIiAiCi0rCSAgICB9Ci0rCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIlskZ2V0 X2NvbW1fcG9ydCAkcG9ydG51bV0iCi0gCX0KLSAJaWYgeyAkYXJndW1lbnRzICE9ICIiIH0gewot IAkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgJGFyZ3VtZW50cyIKLUBAIC0zMDcsNiAr MzI2LDkgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKLSAJ CSAgICBjb250aW51ZQotIAkJfQotIAkgICAgfQotKwkgICAgLXJlICIuKjogY2Fubm90IHJlc29s dmUgbmFtZTogTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93blxyXG4iIHsKLSsJCWVycm9yICJnZGJz ZXJ2ZXIgY2Fubm90IHJlc29sdmUgbmFtZS4iCi0rCSAgICB9Ci0gCSAgICB0aW1lb3V0IHsKLSAJ CWVycm9yICJUaW1lb3V0IHdhaXRpbmcgZm9yIGdkYnNlcnZlciByZXNwb25zZS4iCi0gCSAgICB9 Ci1kaWZmIC0tZ2l0IGEvZ2RiL3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRl c3RzLmMgYi9nZGIvdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYwot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi91bml0dGVzdHMv cGFyc2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jCi1AQCAtMCwwICsxLDI0OSBAQAotKy8q IFNlbGYgdGVzdHMgZm9yIHBhcnNpbmcgY29ubmVjdGlvbiBzcGVjcyBmb3IgR0RCLCB0aGUgR05V IGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSsKLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCi0rCi0rICAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwot KyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlICJkZWZzLmgi Ci0rI2luY2x1ZGUgInNlbGZ0ZXN0LmgiCi0rI2luY2x1ZGUgImNvbW1vbi9uZXRzdHVmZi5oIgot KyNpbmNsdWRlICJkaWFnbm9zdGljcy5oIgotKyNpZmRlZiBVU0VfV0lOMzJBUEkKLSsjaW5jbHVk ZSA8d2luc29jazIuaD4KLSsjaW5jbHVkZSA8d3NwaWFwaS5oPgotKyNlbHNlCi0rI2luY2x1ZGUg PG5ldGluZXQvaW4uaD4KLSsjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0rI2luY2x1ZGUgPG5ldGRi Lmg+Ci0rI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4K LSsjZW5kaWYKLSsKLStuYW1lc3BhY2Ugc2VsZnRlc3RzIHsKLStuYW1lc3BhY2UgcGFyc2VfY29u bmVjdGlvbl9zcGVjX3Rlc3RzIHsKLSsKLSsvKiBBdXhpbGlhcnkgc3RydWN0IHRoYXQgaG9sZHMg aW5mbyBhYm91dCBhIHNwZWNpZmljIHRlc3QgZm9yIGEKLSsgICBjb25uZWN0aW9uIHNwZWMuICAq LwotKwotK3N0cnVjdCBwYXJzZV9jb25uX3Rlc3QKLSt7Ci0rICAvKiBUaGUgY29ubmVjdGlvbiBz cGVjLiAgKi8KLSsgIGNvbnN0IGNoYXIgKmNvbm5zcGVjOwotKwotKyAgLyogRXhwZWN0ZWQgcmVz dWx0IGZyb20gJ3BhcnNlX2Nvbm5lY3Rpb25fc3BlYycuICAqLwotKyAgcGFyc2VkX2Nvbm5lY3Rp b25fc3BlYyBleHBlY3RlZF9yZXN1bHQ7Ci0rCi0rICAvKiBUcnVlIGlmIHRoaXMgdGVzdCBzaG91 bGQgZmFpbCwgZmFsc2Ugb3RoZXJ3aXNlLiAgSWYgdHJ1ZSwgb25seQotKyAgICAgdGhlIENPTk5T UEVDIGZpZWxkIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHZhbGlkLiAgKi8KLSsgIGJvb2wgc2hv dWxkX2ZhaWw7Ci0rCi0rICAvKiBUaGUgZXhwZWN0ZWQgQUlfRkFNSUxZIHRvIGJlIGZvdW5kIG9u IHRoZSAnc3RydWN0IGFkZHJpbmZvJwotKyAgICAgSElOVC4gICovCi0rICBpbnQgZXhwX2FpX2Zh bWlseTsKLSsKLSsgIC8qIFRoZSBleHBlY3RlZCBBSV9TT0NLVFlQRSB0byBiZSBmb3VuZCBvbiB0 aGUgJ3N0cnVjdCBhZGRyaW5mbycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50IGV4cF9haV9zb2Nr dHlwZTsKLSsKLSsgIC8qIFRoZSBleHBlY3RlZCBBSV9QUk9UT0NPTCB0byBiZSBmb3VuZCBvbiB0 aGUgJ3N0cnVjdCBhZGRyaW5mbycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50IGV4cF9haV9wcm90 b2NvbDsKLSt9OwotKwotKy8qIFNvbWUgZGVmaW5lcyB0byBoZWxwIHVzIGZpbGwgYSAnc3RydWN0 IHBhcnNlX2Nvbm5fdGVzdCcuICAqLwotKwotKy8qIEluaXRpYWxpemUgYSBmdWxsIGVudHJ5LiAg Ki8KLSsjZGVmaW5lIElOSVRfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBTSE9VTERf RkFJTCwgRVhQX0FJX0ZBTUlMWSwgXAotKwkJICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJP VE9DT0wpCQkJXAotKyAgeyBBRERSLCB7IEVYUF9IT1NULCBFWFBfUE9SVCB9LCBTSE9VTERfRkFJ TCwgRVhQX0FJX0ZBTUlMWSwgXAotKyAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NP TCB9Ci0rCi0rLyogSW5pdGlhbGl6ZSBhbiB1bnByZWZpeGVkIGVudHJ5LiAgSW4gdGhpcyBjYXNl LCB3ZSBkb24ndCBleHBlY3QKLSsgICBhbnl0aGluZyBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycg SElOVC4gICovCi0rI2RlZmluZSBJTklUX1VOUFJFRklYRURfRU5UUlkoQUREUiwgRVhQX0hPU1Qs IEVYUF9QT1JUKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZh bHNlLCAwLCAwLCAwKQotKwotKy8qIEluaXRpYWxpemVkIGFuIHVucHJlZml4ZWQgSVB2NiBlbnRy eS4gIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3QKLSsgICBleHBlY3QgYW55dGhpbmcgb24gdGhlICdz dHJ1Y3QgYWRkcmluZm8nIEhJTlQuICAqLwotKyNkZWZpbmUgSU5JVF9VTlBSRUZJWEVEX0lQVjZf RU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCBF WFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCBBRl9JTkVUNiwgMCwgMCkKLSsKLSsvKiBJbml0aWFs aXplIGEgcHJlZml4ZWQgZW50cnkuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9FTlRSWShB RERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIEVYUF9BSV9GQU1JTFksIFwKLSsJCQkgICAgRVhQX0FJ X1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpIFwKLSsgIElOSVRfRU5UUlkgKEFERFIsIEVYUF9I T1NULCBFWFBfUE9SVCwgZmFsc2UsIEVYUF9BSV9GQU1JTFksIFwKLSsJICAgICAgRVhQX0FJX1NP Q0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpCi0rCi0rLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVm aXhlZCB3aXRoICJ0Y3A0OiIuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUChB RERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKLSsgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIs IEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVCwgU09DS19TVFJFQU0sIFwKLSsJCSAgICAgICBJ UFBST1RPX1RDUCkKLSsKLSsvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInRj cDY6Ii4gICovCi0rI2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjZfVENQKEFERFIsIEVYUF9IT1NU LCBFWFBfUE9SVCkgXAotKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVY UF9QT1JULCBBRl9JTkVUNiwgU09DS19TVFJFQU0sIFwKLSsJCSAgICAgICBJUFBST1RPX1RDUCkK LSsKLSsvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInVkcDQ6Ii4gICovCi0r I2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjRfVURQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkg XAotKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9J TkVULCBTT0NLX0RHUkFNLCBcCi0rCQkgICAgICAgSVBQUk9UT19VRFApCi0rCi0rLyogSW5pdGlh bGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ1ZHA2OiIuICAqLwotKyNkZWZpbmUgSU5JVF9Q UkVGSVhFRF9JUFY2X1VEUChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKLSsgIElOSVRfUFJF RklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVDYsIFNPQ0tfREdS QU0sIFwKLSsJCSAgICAgICBJUFBST1RPX1VEUCkKLSsKLSsvKiBJbml0aWFsaXplIGEgYm9ndXMg ZW50cnksIGkuZS4sIGEgY29ubmVjdGlvbiBzcGVjIHRoYXQgc2hvdWxkCi0rICAgZmFpbC4gICov Ci0rI2RlZmluZSBJTklUX0JPR1VTX0VOVFJZKEFERFIpIFwKLSsgIElOSVRfRU5UUlkgKEFERFIs ICIiLCAiIiwgdHJ1ZSwgMCwgMCwgMCkKLSsKLSsvKiBUaGUgdmFyaWFibGUgd2hpY2ggaG9sZHMg YWxsIG9mIG91ciB0ZXN0cy4gICovCi0rCi0rc3RhdGljIGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCBj b25uX3Rlc3RbXSA9Ci0rICB7Ci0rICAgIC8qIFVucHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KLSsK LSsgICAgLyogSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9VTlBS RUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsg ICAgLyogSVB2NCwgb25seSBob3N0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgi MTI3LjAuMC4xIiwgIjEyNy4wLjAuMSIsICIiKSwKLSsgICAgLyogSVB2NCwgbWlzc2luZyBwb3J0 LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xOiIsICIxMjcuMC4w LjEiLCAiIiksCi0rCi0rICAgIC8qIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgbm8gYnJh Y2tldHMuICAqLwotKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCI6OjE6MTIzNCIsICI6OjEi LCAiMTIzNCIpLAotKyAgICAvKiBJUHY2LCBtaXNzaW5nIHBvcnQsIG5vIGJyYWNrZXRzLiAgKi8K LSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjoxOiIsICI6OjEiLCAiIiksCi0rICAgIC8q IElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgd2l0aCBicmFja2V0cy4gICovCi0rICAgIElO SVRfVU5QUkVGSVhFRF9JUFY2X0VOVFJZICgiWzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAot KyAgICAvKiBJUHY2LCBvbmx5IGhvc3QsIHdpdGggYnJhY2tldHMuICAqLwotKyAgICBJTklUX1VO UFJFRklYRURfSVBWNl9FTlRSWSAoIls6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAgLyogSVB2Niwg bWlzc2luZyBwb3J0LCB3aXRoIGJyYWNrZXRzLiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0lQ VjZfRU5UUlkgKCJbOjoxXToiLCAiOjoxIiwgIiIpLAotKwotKyAgICAvKiBVbnNwZWNpZmllZCwg b25seSBwb3J0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjEyMzQiLCAibG9j YWxob3N0IiwgIjEyMzQiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KLSsK LSsgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBob3N0IGFuZCBwb3J0IHByZXNlbnRzLiAg Ki8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOjEyMzQiLCAi MTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBvbmx5 IHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVENQICgidGNwNDo6MTIzNCIsICJs b2NhbGhvc3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQsIG9ubHkg aG9zdC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMSIs ICIxMjcuMC4wLjEiLCAiIiksCi0rICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIgSVB2NCwgbWlzc2lu ZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4x OiIsICIxMjcuMC4wLjEiLCAiIiksCi0rCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwg aG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAo InVkcDQ6MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsgICAgLyogUHJl Zml4ZWQgInVkcDQ6IiBJUHY0LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQ VjRfVURQICgidWRwNDo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVm aXhlZCAidWRwNDoiIElQdjQsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBW NF9VRFAgKCJ1ZHA0OjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCi0rICAgIC8qIFByZWZp eGVkICJ1ZHA0OiIgSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9J UFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCi0rCi0rCi0rICAg IC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsg ICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQi KSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBvbmx5IHBvcnQuICAqLwotKyAgICBJ TklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIp LAotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYsIG9ubHkgaG9zdC4gICovCi0rICAgIC8v SU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjoxIiwgIjo6MSIsICIiKSwKLSsgICAgLyog UHJlZml4ZWQgInRjcDY6IiBJUHY2LCBtaXNzaW5nIHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJ WEVEX0lQVjZfVENQICgidGNwNjo6OjE6IiwgIjo6MSIsICIiKSwKLSsKLSsgICAgLyogUHJlZml4 ZWQgInVkcDY6IiBJUHY2LCBob3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLwotKyAgICBJTklUX1BS RUZJWEVEX0lQVjZfVURQICgidWRwNjo6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAv KiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG9ubHkgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklY RURfSVBWNl9VRFAgKCJ1ZHA2OjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCi0rICAgIC8q IFByZWZpeGVkICJ1ZHA2OiIgSVB2Niwgb25seSBob3N0LiAgKi8KLSsgICAgLy9JTklUX1BSRUZJ WEVEX0lQVjZfVURQICgidWRwNjo6OjEiLCAiOjoxIiwgIiIpLAotKyAgICAvKiBQcmVmaXhlZCAi dWRwNjoiIElQdjYsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9V RFAgKCJ1ZHA2Ojo6MToiLCAiOjoxIiwgIiIpLAotKwotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoi IElQdjYgd2l0aCBicmFja2V0cywgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5J VF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAot KyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgb25seSBob3N0LiAg Ki8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV0iLCAiOjoxIiwgIiIp LAotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgbWlzc2luZyBw b3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06IiwgIjo6 MSIsICIiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMs IGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAg KCJ1ZHA2Ols6OjFdOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInVk cDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRfUFJFRklY RURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAgLyogUHJlZml4ZWQg InVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElOSVRf UFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOiIsICI6OjEiLCAiIiksCi0rCi0rCi0rICAg IC8qIEJvZ3VzIGFkZHJlc3Nlcy4gICovCi0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ols6 OjFdMTIzOjQ0IiksCi0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJbOjoxIiksCi0rICAgIElOSVRf Qk9HVVNfRU5UUlkgKCJ0Y3A2Ojo6MV06IiksCi0rICB9OwotKwotKy8qIFRlc3QgYSBjb25uZWN0 aW9uIHNwZWMgQy4gICovCi0rCi0rc3RhdGljIHZvaWQKLSt0ZXN0X2Nvbm4gKGNvbnN0IHBhcnNl X2Nvbm5fdGVzdCAmYykKLSt7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHBhcnNlZF9j b25uZWN0aW9uX3NwZWMgcmV0OwotKwotKyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mIChoaW50 KSk7Ci0rCi0rICBUUlkKLSsgICAgewotKyAgICAgIHJldCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3Bl YyAoYy5jb25uc3BlYywgJmhpbnQpOwotKyAgICB9Ci0rICBDQVRDSCAoZXgsIFJFVFVSTl9NQVNL X0VSUk9SKQotKyAgICB7Ci0rICAgICAgLyogSWYgd2UgY2F1Z2h0IGFuIGVycm9yLCB3ZSBzaG91 bGQgY2hlY2sgaWYgdGhpcyBjb25uZWN0aW9uCi0rCSBzcGVjIHdhcyBzdXBwb3NlZCB0byBmYWls LiAgKi8KLSsgICAgICBTRUxGX0NIRUNLIChjLnNob3VsZF9mYWlsKTsKLSsgICAgICByZXR1cm47 Ci0rICAgIH0KLSsgIEVORF9DQVRDSAotKwotKyAgU0VMRl9DSEVDSyAoIWMuc2hvdWxkX2ZhaWwp OwotKyAgU0VMRl9DSEVDSyAocmV0Lmhvc3Rfc3RyID09IGMuZXhwZWN0ZWRfcmVzdWx0Lmhvc3Rf c3RyKTsKLSsgIFNFTEZfQ0hFQ0sgKHJldC5wb3J0X3N0ciA9PSBjLmV4cGVjdGVkX3Jlc3VsdC5w b3J0X3N0cik7Ci0rICBTRUxGX0NIRUNLIChoaW50LmFpX2ZhbWlseSA9PSBjLmV4cF9haV9mYW1p bHkpOwotKyAgU0VMRl9DSEVDSyAoaGludC5haV9zb2NrdHlwZSA9PSBjLmV4cF9haV9zb2NrdHlw ZSk7Ci0rICBTRUxGX0NIRUNLIChoaW50LmFpX3Byb3RvY29sID09IGMuZXhwX2FpX3Byb3RvY29s KTsKLSt9Ci0rCi0rLyogUnVuIHRoZSB0ZXN0cyBhc3NvY2lhdGVkIHdpdGggcGFyc2luZyBjb25u ZWN0aW9uIHNwZWNzLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK3J1bl90ZXN0cyAoKQotK3sKLSsg IGZvciAoY29uc3QgcGFyc2VfY29ubl90ZXN0ICZjIDogY29ubl90ZXN0KQotKyAgICB0ZXN0X2Nv bm4gKGMpOwotK30KLSt9IC8qIG5hbWVzcGFjZSBwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHMg Ki8KLSt9IC8qIG5hbWVzcGFjZSBzZWxmdGVzdHMgKi8KLSsKLSt2b2lkCi0rX2luaXRpYWxpemVf cGFyc2VfY29ubmVjdGlvbl9zcGVjX3NlbGZ0ZXN0cyAoKQotK3sKLSsgIHNlbGZ0ZXN0czo6cmVn aXN0ZXJfdGVzdCAoInBhcnNlX2Nvbm5lY3Rpb25fc3BlYyIsCi0rCQkJICAgIHNlbGZ0ZXN0czo6 cGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3RzOjpydW5fdGVzdHMpOwotK30KCmRpZmYgLS1naXQg YS9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2LTJv ZjMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5MGJlMGYuLjAwMDAwMDAK LS0tIGEvZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NTQgKzAsMCBAQAotRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLURhdGU6 IE1vbiwgMzAgSnVsIDIwMTggMTU6MjM6MjcgLTA0MDAKLVN1YmplY3Q6IGdkYi1yaGJ6ODgxODQ5 LWlwdjYtMm9mMy5wYXRjaAotCi1NYXRjaCBhbnkga2luZCBvZiBlcnJvciBhZnRlciAiY2Fubm90 IHJlc29sdmUgbmFtZSIgb24gbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cDpnZGJzZXJ2ZXJfc3Rh cnQKLQotT24gY29tbWl0OgotCi1jb21taXQgN2YxZjdlMjM5MzlhZGM3ZDcxMDM2YTE3ZmM2MDgx ZTNhZjdjYTU4NQotQXV0aG9yOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhh dC5jb20+Ci1EYXRlOiAgIEZyaSBKdWwgMTMgMTY6MjA6MzQgMjAxOCAtMDQwMAotCi0gICAgRXhw ZWN0IGZvciBhbm90aGVyIHZhcmlhbnQgb2YgZXJyb3IgbWVzc2FnZSB3aGVuIGdkYnNlcnZlciBj YW5ub3QgcmVzb2x2ZSBob3N0bmFtZQotCi1JIGV4dGVuZGVkIHRoZSByZWd1bGFyIGV4cHJlc3Np b24gYmVpbmcgdXNlZCB0byBpZGVudGlmeSB3aGV0aGVyCi1nZGJzZXJ2ZXIgY291bGQgbm90IHJl c29sdmUgYSAoaG9zdCluYW1lLiAgVGhpcyB3YXMgbmVlZGVkIGJlY2F1c2UgdGhlCi1lcnJvciBt ZXNzYWdlIGJlaW5nIHByaW50ZWQgaGFkIGEgZGlmZmVyZW50IHZhcmlhdGlvbiBhY3Jvc3Mgc29t ZQotc3lzdGVtcy4gIEhvd2V2ZXIsIGFzIGl0IHR1cm5zIG91dCwgSSd2ZSBqdXN0IG5vdGljZWQg dGhhdCB0aGUgbWVzc2FnZQotaGFzIHlldCBhbm90aGVyIHZhcmlhdGlvbjoKLQotICB0YXJnZXQg cmVtb3RlIHRjcDg6MTIzOjIzNTMKLSAgdGNwODoxMjM6MjM1MzogY2Fubm90IHJlc29sdmUgbmFt ZTogU3lzdGVtIGVycm9yCi0gICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXgotICB0Y3A4OjEyMzoyMzUzOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5Lgot ICAoZ2RiKSBGQUlMOiBnZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cDogdGNwODogY29ubmVj dCB0byBnZGJzZXJ2ZXIgdXNpbmcgdGNwODoxMjMKLQotd2hpY2ggaXMgY2F1c2luZyBGQUlMcyBv biBzb21lIHN5c3RlbXMgKG5hbWVseSwgRmVkb3JhLWk2ODYgb24KLUJ1aWxkQm90KS4KLQotU28g aW5zdGVhZCBvZiB0cnlpbmcgdG8gcHJlZGljdCBldmVyeXRoaW5nIHRoYXQgY2FuIGJlIHByaW50 ZWQsIEkKLWRlY2lkZWQgdG8ganVzdCBtYXRjaCBhbnl0aGluZyBhZnRlciB0aGUgImNhbm5vdCBy ZXNvbHZlIG5hbWU6ICIgcGFydC4KLVRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGF0LgotCi1SZWdy ZXNzaW9uIHRlc3RlZCBvbiB0aGUgQnVpbGRCb3QuCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9n OgotMjAxOC0wNy0zMCAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNv bT4KLQotCSogbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCAoZ2Ric2VydmVyX3N0YXJ0KTogTWF0 Y2ggYW55IGtpbmQgb2YKLQllcnJvciBhZnRlciAiY2Fubm90IHJlc29sdmUgbmFtZSIgc3RyaW5n LgotCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi0tLS0gYS9nZGIvdGVz dHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvbGli L2dkYnNlcnZlci1zdXBwb3J0LmV4cAotQEAgLTMyNiw3ICszMjYsNyBAQCBwcm9jIGdkYnNlcnZl cl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0gewotIAkJICAgIGNvbnRpbnVlCi0gCQl9Ci0g CSAgICB9Ci0tCSAgICAtcmUgIi4qOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiBOYW1lIG9yIHNlcnZp Y2Ugbm90IGtub3duXHJcbiIgewotKwkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFtZTog LipcclxuIiB7Ci0gCQllcnJvciAiZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIG5hbWUuIgotIAkg ICAgfQotIAkgICAgdGltZW91dCB7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno4ODE4NDktaXB2Ni0z b2YzLnBhdGNoIGIvZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA3ODljYjE4Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6ODgxODQ5LWlw djYtM29mMy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLUZyb20gRkVET1JB X1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBK dW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDMgQXVnIDIwMTggMTg6MDQ6 MzggLTA0MDAKLVN1YmplY3Q6IGdkYi1yaGJ6ODgxODQ5LWlwdjYtM29mMy5wYXRjaAotCi1GaXgg dGhpbmtvIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0byBkaXNhYmxlIFRDUCdzIE5hZ2xlIGFsZ29y aXRobQotCi1UaGlzIHBhdGNoIGZpeGVzIGEgdGhpbmtvIHRoYXQgaGFwcGVuZWQgd2hlbiBJIHdh cyBpbXBsZW1lbnRpbmcgdGhlCi1JUHY2IHN1cHBvcnQgb24gR0RCL2dkYnNlcnZlci4gIE9uIGNl cnRhaW4gc2l0dWF0aW9ucywgaXQgaXMgbmVjZXNzYXJ5Ci10byBkaXNhYmxlIFRDUCdzIE5hZ2xl IGFsZ29yaXRobSAoTk9ERUxBWSkuICBGb3Igb2J2aW91cyByZWFzb25zLCB0aGlzCi1vbmx5IGFw cGxpZXMgd2hlbiB3ZSBhcmUgZGVhbGluZyB3aXRoIGEgVENQIGNvbm5lY3Rpb24uCi0KLVdoaWxl IGltcGxlbWVudGluZyB0aGUgSVB2NiBwYXRjaCwgSSBub3RpY2VkIHRoYXQgdGhlIG5ldF9vcGVu Ci1mdW5jdGlvbiAob24gZ2RiL3Nlci10Y3AuYykga2VwdCBhIGZsYWcgaW5kaWNhdGluZyB3aGV0 aGVyIHRoZQotY29ubmVjdGlvbiB0eXBlIHdhcyBVRFAgb3IgVENQLiAgSSBlbGltaW5hdGVkIHRo YXQgZmxhZywgYW5kIHN0YXJ0ZWQKLXVzaW5nIHRoZSAnc3RydWN0IGFkZHJpbmZvIConIHJlbGF0 ZWQgdG8gdGhlIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbgotZGlyZWN0bHkuICBIb3dldmVyLCBJIG1h ZGUgYSBtaXN0YWtlOgotCi0gIGlmIChzdWNjZXNzX2FpbmZvLT5haV9zb2NrdHlwZSA9PSBJUFBS T1RPX1RDUCkKLSAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eCi0gICAgewotICAgICAg LyogRGlzYWJsZSBOYWdsZSBhbGdvcml0aG0uICBOZWVkZWQgaW4gc29tZSBjYXNlcy4gICovCi0g ICAgICBpbnQgdG1wID0gMTsKLQotICAgICAgc2V0c29ja29wdCAoc2NiLT5mZCwgSVBQUk9UT19U Q1AsIFRDUF9OT0RFTEFZLAotCQkgIChjaGFyICopICZ0bXAsIHNpemVvZiAodG1wKSk7Ci0gICAg fQotCi1UaGUgJ2FpX3NvY2t0eXBlJyBmaWVsZCBzcGVjaWZpZXMgdGhlIHNvY2tldCB0eXBlIChT T0NLX1NUUkVBTSBvcgotU09DS19ER1JBTSksIGFuZCBub3QgdGhlIHByb3RvY29sLiAgVGhpcyB0 ZXN0IHdhcyBhbHdheXMgZmFpbGluZywgYW5kCi10aGUgTmFnbGUgYWxnb3JpdGhtIHdhcyBuZXZl ciBiZWluZyBkaXNhYmxlZC4KLQotVGhlIG9idmlvdXMgZml4IGlzIHRvIHVzZSB0aGUgJ2FpX3By b3RvY29sJyBmaWVsZC4gIFRoaXMgaXMgd2hhdCB0aGlzCi1wYXRjaCBkb2VzLgotCi1IdWdlICJ0 aGFuayB5b3UiIHRvIEpvZWwgQnJvYmVja2VyIHdobyByZXBvcnRlZCB0aGUgcmVncmVzc2lvbiAo aGUgd2FzCi1leHBlcmllbmNpbmcgYW4gdW51c3VhbCBkZWxheSB3aGlsZSBkZWJ1Z2dpbmcgYSBi YXJlLW1ldGFsIHByb2dyYW0KLXJ1bm5pbmcgdW5kZXIgUUVNVSkgYW5kIGhlbHBlZCBtZSBzZXQg dXAgYSBwcm9wZXIgcmVwcm9kdWNlciBmb3IgdGhlCi1idWcuCi0KLWdkYi9DaGFuZ2VMb2c6Ci0y MDE4LTA4LTAzICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgot Ci0JKiBzZXItdGNwLmMgKG5ldF9vcGVuKTogRml4IHRoaW5rbyB3aGVuIGRlY2lkaW5nIHdoZXRo ZXIgdG8KLQlkaXNhYmxlIFRDUCdzIE5hZ2xlIGFsZ29yaXRobSAodXNlICJhaV9wcm90b2NvbCIg aW5zdGVhZCBvZgotCSJhaV9zb2NrdHlwZSIpLgotCi1kaWZmIC0tZ2l0IGEvZ2RiL0NoYW5nZUxv ZyBiL2dkYi9DaGFuZ2VMb2cKLS0tLSBhL2dkYi9DaGFuZ2VMb2cKLSsrKyBiL2dkYi9DaGFuZ2VM b2cKLUBAIC0xLDMgKzEsOSBAQAotKzIwMTgtMDgtMDMgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAg PHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0rCi0rCSogc2VyLXRjcC5jIChuZXRfb3Blbik6IEZpeCB0 aGlua28gd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvCi0rCWRpc2FibGUgVENQJ3MgTmFnbGUgYWxn b3JpdGhtICh1c2UgImFpX3Byb3RvY29sIiBpbnN0ZWFkIG9mCi0rCSJhaV9zb2NrdHlwZSIpLgot KwotIDIwMTgtMDctMjUgIEFsYW4gSGF5d2FyZCAgPGFsYW4uaGF5d2FyZEBhcm0uY29tPgotIAot IAkqIHRhcmdldC1kZXNjcmlwdGlvbnMuYyAodGRlc2NfcmVnaXN0ZXJfYml0c2l6ZSk6IFJlbmFt ZS4KLWRpZmYgLS1naXQgYS9nZGIvc2VyLXRjcC5jIGIvZ2RiL3Nlci10Y3AuYwotLS0tIGEvZ2Ri L3Nlci10Y3AuYwotKysrIGIvZ2RiL3Nlci10Y3AuYwotQEAgLTM2Nyw3ICszNjcsNyBAQCBuZXRf b3BlbiAoc3RydWN0IHNlcmlhbCAqc2NiLCBjb25zdCBjaGFyICpuYW1lKQotIAotICAgaW9jdGwg KHNjYi0+ZmQsIEZJT05CSU8sICZpb2FyZyk7Ci0gCi0tICBpZiAoc3VjY2Vzc19haW5mby0+YWlf c29ja3R5cGUgPT0gSVBQUk9UT19UQ1ApCi0rICBpZiAoc3VjY2Vzc19haW5mby0+YWlfcHJvdG9j b2wgPT0gSVBQUk9UT19UQ1ApCi0gICAgIHsKLSAgICAgICAvKiBEaXNhYmxlIE5hZ2xlIGFsZ29y aXRobS4gIE5lZWRlZCBpbiBzb21lIGNhc2VzLiAgKi8KLSAgICAgICBpbnQgdG1wID0gMTsKCmRp ZmYgLS1naXQgYS9nZGItdmxhLWludGVsLWZvcnRyYW4tc3RyaWRlcy5wYXRjaCBiL2dkYi12bGEt aW50ZWwtZm9ydHJhbi1zdHJpZGVzLnBhdGNoCmluZGV4IGZhZjgzNmMuLjYwNTRhNGMgMTAwNjQ0 Ci0tLSBhL2dkYi12bGEtaW50ZWwtZm9ydHJhbi1zdHJpZGVzLnBhdGNoCisrKyBiL2dkYi12bGEt aW50ZWwtZm9ydHJhbi1zdHJpZGVzLnBhdGNoCkBAIC0zNyw3ICszNyw3IEBAIGRiZmQ3MTQwYmY0 YzA1MDBkMWY1ZDE5MmJlNzgxZjgzZjc4Zjc5MjIKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9j LmMgYi9nZGIvZHdhcmYybG9jLmMKIC0tLSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3 YXJmMmxvYy5jCi1AQCAtMjYwMCwxMSArMjYwMCwxNCBAQCBkd2FyZjJfbG9jZXhwcl9iYXRvbl9l dmFsIChjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0b24sCitAQCAtMjY1 OSwxMSArMjY1OSwxNCBAQCBkd2FyZjJfbG9jZXhwcl9iYXRvbl9ldmFsIChjb25zdCBzdHJ1Y3Qg ZHdhcmYyX2xvY2V4cHJfYmF0b24gKmRsYmF0b24sCiAgLyogU2VlIGR3YXJmMmxvYy5oLiAgKi8K ICAKICBpbnQKQEAgLTU0LDcgKzU0LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBi L2dkYi9kd2FyZjJsb2MuYwogICAgaWYgKHByb3AgPT0gTlVMTCkKICAgICAgcmV0dXJuIDA7CiAg Ci1AQCAtMjYyOCw3ICsyNjMxLDcgQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBz dHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAorQEAgLTI2ODcsNyArMjY5MCw3IEBAIGR3YXJmMl9l dmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKICAKICAJ CSp2YWx1ZSA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbCk7CiAgCSAgICAgIH0KQEAgLTYzLDcgKzYz LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwogIAkg IH0KICAgICAgICB9CiAgICAgICAgYnJlYWs7Ci1AQCAtMjY1MCw3ICsyNjUzLDcgQEAgZHdhcmYy X2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLAorQEAg LTI3MDksNyArMjcxMiw3IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0 IGR5bmFtaWNfcHJvcCAqcHJvcCwKICAJICAgIGlmICghdmFsdWVfb3B0aW1pemVkX291dCAodmFs KSkKICAJICAgICAgewogIAkJKnZhbHVlID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsKTsKQEAgLTcy LDcgKzcyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2Mu YwogIAkgICAgICB9CiAgCSAgfQogICAgICAgIH0KLUBAIC0yNjU4LDggKzI2NjEsOCBAQCBkd2Fy ZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCitA QCAtMjcxNyw4ICsyNzIwLDggQEAgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChjb25zdCBzdHJ1 Y3QgZHluYW1pY19wcm9wICpwcm9wLAogIAogICAgICBjYXNlIFBST1BfQ09OU1Q6CiAgICAgICAg KnZhbHVlID0gcHJvcC0+ZGF0YS5jb25zdF92YWw7CkBAIC04Myw3ICs4Myw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9jLmMKICAgICAgY2FzZSBQUk9QX0FE RFJfT0ZGU0VUOgogICAgICAgIHsKICAJc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbiAqYmF0 b24KLUBAIC0yNjgwLDExICsyNjgzLDM4IEBAIGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29u c3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKK0BAIC0yNzM5LDExICsyNzQyLDM4IEBAIGR3 YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAoY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwK ICAJICB2YWwgPSB2YWx1ZV9hdCAoYmF0b24tPm9mZnNldF9pbmZvLnR5cGUsCiAgCQkJICBwaW5m by0+YWRkciArIGJhdG9uLT5vZmZzZXRfaW5mby5vZmZzZXQpOwogIAkqdmFsdWUgPSB2YWx1ZV9h c19hZGRyZXNzICh2YWwpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdh cmYybG9jLmggYi9nZGIvZHdhcmYybG9jLmgKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5j IGIvZ2RiL2R3YXJmMnJlYWQuYwogLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwogKysrIGIvZ2RiL2R3 YXJmMnJlYWQuYwotQEAgLTE3NTUwLDcgKzE3NTUwLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTc3MDUsNyAr MTc3MDUsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICpiYXNlX3R5cGUsICpvcmlnX2Jhc2Vf dHlwZTsKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAq YXR0cjsKQEAgLTE1Miw3ICsxNTIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBi L2dkYi9kd2FyZjJyZWFkLmMKICAgIGludCBsb3dfZGVmYXVsdF9pc192YWxpZDsKICAgIGludCBo aWdoX2JvdW5kX2lzX2NvdW50ID0gMDsKICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci1AQCAtMTc1NzAs NyArMTc1NzAsOSBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xNzcyNSw3ICsxNzcyNSw5IEBAIHJlYWRfc3VicmFu Z2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAog ICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5raW5kID0gUFJPUF9DT05TVDsKQEAg LTE2Miw3ICsxNjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2Fy ZjJyZWFkLmMKICAKICAgIC8qIFNldCBMT1dfREVGQVVMVF9JU19WQUxJRCBpZiBjdXJyZW50IGxh bmd1YWdlIGFuZCBEV0FSRiB2ZXJzaW9uIGFsbG93CiAgICAgICBvbWl0dGluZyBEV19BVF9sb3dl cl9ib3VuZC4gICovCi1AQCAtMTc2MDMsNiArMTc2MDUsMTQgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTc3NTgs NiArMTc3NjAsMTQgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTE3Nyw3 ICsxNzcsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFk LmMKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3dlcl9ib3VuZCwgY3UpOwog ICAgaWYgKGF0dHIpCiAgICAgIGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAm bG93KTsKLUBAIC0xNzY4MCw3ICsxNzY5MCw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE3ODUwLDcgKzE3ODYw LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCiAgICAgICAgJiYgIVRZUEVfVU5TSUdORUQgKGJhc2VfdHlwZSkgJiYgKGhp Z2guZGF0YS5jb25zdF92YWwgJiBuZWdhdGl2ZV9tYXNrKSkKICAgICAgaGlnaC5kYXRhLmNvbnN0 X3ZhbCB8PSBuZWdhdGl2ZV9tYXNrOwogIApAQCAtMTg5LDcgKzE4OSw3IEBAIGRpZmYgLS1naXQg YS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogZGlmZiAtLWdpdCBhL2dkYi9l dmFsLmMgYi9nZGIvZXZhbC5jCiAtLS0gYS9nZGIvZXZhbC5jCiArKysgYi9nZGIvZXZhbC5jCi1A QCAtMzc3LDI5ICszNzcsMzI1IEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICph cnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50LAorQEAgLTM3NywyOSArMzc3LDMyNCBAQCBpbml0 X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCB2YWx1ZSAqZWxlbWVu dCwKICAgIHJldHVybiBpbmRleDsKICB9CiAgCkBAIC0yMDcsOCArMjA3LDcgQEAgZGlmZiAtLWdp dCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCiArCQkgICAgaW50ICpwb3MsIGludCBuYXJncywg ZW51bSBub3NpZGUgbm9zaWRlKQogIHsKIC0gIGludCBwYyA9ICgqcG9zKSArIDE7Ci0rICBpbnQg aSwgZGltX2NvdW50ID0gMDsKLSAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworLSAg TE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAtICBzdHJ1Y3QgdHlwZSAqcmFuZ2UgPSBj aGVja190eXBlZGVmIChUWVBFX0lOREVYX1RZUEUgKHZhbHVlX3R5cGUgKGFycmF5KSkpOwogLSAg ZW51bSByYW5nZV90eXBlIHJhbmdlX3R5cGUKIC0gICAgPSAoZW51bSByYW5nZV90eXBlKSBsb25n ZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29uc3QpOwpAQCAtMjE5LDYgKzIxOCw3IEBA IGRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwogLSAgICBsb3dfYm91bmQgPSBU WVBFX0xPV19CT1VORCAocmFuZ2UpOwogLSAgZWxzZQogLSAgICBsb3dfYm91bmQgPSB2YWx1ZV9h c19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwor KyAgaW50IGksIGRpbV9jb3VudCA9IDA7CiArICBzdHJ1Y3QgdmFsdWUgKm5ld19hcnJheSA9IGFy cmF5OwogKyAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90 eXBlIChuZXdfYXJyYXkpKTsKICsgIHN0cnVjdCB0eXBlICplbHRfdHlwZTsKQEAgLTUzMyw3ICs1 MzMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKICB9CiAgCiAgCi1A QCAtMTkyNiwxOSArMjIyMiw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5 cGUgKmV4cGVjdF90eXBlLAorQEAgLTE5MzAsMTkgKzIyMjUsOCBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgICBzd2l0Y2ggKGNvZGUp CiAgCXsKICAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CkBAIC01NTQsNyArNTU0LDcgQEAgZGlmZiAt LWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCiAgCiAgCWNhc2UgVFlQRV9DT0RFX1BUUjoK ICAJY2FzZSBUWVBFX0NPREVfRlVOQzoKLUBAIC0yMzM0LDQ5ICsyNjE5LDYgQEAgZXZhbHVhdGVf c3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjMzOCw0OSAr MjYyMiw2IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90 eXBlLAogIAl9CiAgICAgICAgcmV0dXJuIChhcmcxKTsKICAKQEAgLTYwNCw3ICs2MDQsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKICAgICAgY2FzZSBCSU5PUF9MT0dJ Q0FMX0FORDoKICAgICAgICBhcmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwg cG9zLCBub3NpZGUpOwogICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQotQEAgLTMyOTMs NiArMzUzNSw5IEBAIGNhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBlICphcnJheV90eXBl KQorQEAgLTMzMDEsNiArMzU0Miw5IEBAIGNhbGNfZjc3X2FycmF5X2RpbXMgKHN0cnVjdCB0eXBl ICphcnJheV90eXBlKQogICAgaW50IG5kaW1lbiA9IDE7CiAgICBzdHJ1Y3QgdHlwZSAqdG1wX3R5 cGU7CiAgCkBAIC04MzIsNyArODMyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9mLXZhbHByaW50LmMg Yi9nZGIvZi12YWxwcmludC5jCiBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2Ri dHlwZXMuYwogLS0tIGEvZ2RiL2dkYnR5cGVzLmMKICsrKyBiL2dkYi9nZGJ0eXBlcy5jCi1AQCAt OTAyLDcgKzkwMiw4IEBAIG9wZXJhdG9yPT0gKGNvbnN0IHJhbmdlX2JvdW5kcyAmbCwgY29uc3Qg cmFuZ2VfYm91bmRzICZyKQorQEAgLTkxMSw3ICs5MTEsOCBAQCBvcGVyYXRvcj09IChjb25zdCBy YW5nZV9ib3VuZHMgJmwsIGNvbnN0IHJhbmdlX2JvdW5kcyAmcikKICBzdHJ1Y3QgdHlwZSAqCiAg Y3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUg KmluZGV4X3R5cGUsCiAgCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpsb3dfYm91bmQs CkBAIC04NDIsNyArODQyLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dk YnR5cGVzLmMKICB7CiAgICBpZiAocmVzdWx0X3R5cGUgPT0gTlVMTCkKICAgICAgcmVzdWx0X3R5 cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5cGUpOwotQEAgLTkxNyw2ICs5MTgsNyBAQCBj cmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAq aW5kZXhfdHlwZSwKK0BAIC05MjYsNiArOTI3LDcgQEAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVj dCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgICAgIFRZUEVf WkFMTE9DIChyZXN1bHRfdHlwZSwgc2l6ZW9mIChzdHJ1Y3QgcmFuZ2VfYm91bmRzKSk7CiAgICBU WVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90eXBlKS0+bG93ID0gKmxvd19ib3VuZDsKICAgIFRZUEVf UkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5oaWdoID0gKmhpZ2hfYm91bmQ7CkBAIC04NTAsNyAr ODUwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKICAK ICAgIGlmIChsb3dfYm91bmQtPmtpbmQgPT0gUFJPUF9DT05TVCAmJiBsb3dfYm91bmQtPmRhdGEu Y29uc3RfdmFsID49IDApCiAgICAgIFRZUEVfVU5TSUdORUQgKHJlc3VsdF90eXBlKSA9IDE7Ci1A QCAtOTQ1LDcgKzk0Nyw3IEBAIHN0cnVjdCB0eXBlICoKK0BAIC05NTQsNyArOTU2LDcgQEAgc3Ry dWN0IHR5cGUgKgogIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3Vs dF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKICAJCQkgIExPTkdFU1QgbG93X2JvdW5k LCBMT05HRVNUIGhpZ2hfYm91bmQpCiAgewpAQCAtODU5LDcgKzg1OSw3IEBAIGRpZmYgLS1naXQg YS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICBsb3cua2luZCA9IFBST1Bf Q09OU1Q7CiAgICBsb3cuZGF0YS5jb25zdF92YWwgPSBsb3dfYm91bmQ7Ci1AQCAtOTUzLDcgKzk1 NSwxMSBAQCBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlw ZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCitAQCAtOTYyLDcgKzk2NCwxMSBAQCBjcmVhdGVf c3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUg KmluZGV4X3R5cGUsCiAgICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOwogICAgaGlnaC5kYXRhLmNv bnN0X3ZhbCA9IGhpZ2hfYm91bmQ7CiAgCkBAIC04NzIsNyArODcyLDcgQEAgZGlmZiAtLWdpdCBh L2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKICAKICAgIHJldHVybiByZXN1bHRfdHlw ZTsKICB9Ci1AQCAtMTE3MSwxNiArMTE3NywyMCBAQCBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0 cmlkZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLAorQEAgLTExODAsMTYgKzExODYsMjAgQEAg Y3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwK ICAgICAgICAmJiAoIXR5cGVfbm90X2Fzc29jaWF0ZWQgKHJlc3VsdF90eXBlKQogIAkgICYmICF0 eXBlX25vdF9hbGxvY2F0ZWQgKHJlc3VsdF90eXBlKSkpCiAgICAgIHsKQEAgLTg5NCw3ICs4OTQs NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogICAgICAg IGVsc2UgaWYgKGJpdF9zdHJpZGUgPiAwKQogIAlUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpID0K ICAJICAoYml0X3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5kICsgMSkgKyA3KSAvIDg7 Ci1AQCAtMTk4MSwxMiArMTk5MSwxMiBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0 eXBlICpkeW5fcmFuZ2VfdHlwZSwKK0BAIC0xOTkwLDEyICsyMDAwLDEyIEBAIHJlc29sdmVfZHlu YW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBlLAogICAgQ09SRV9BRERSIHZh bHVlOwogICAgc3RydWN0IHR5cGUgKnN0YXRpY19yYW5nZV90eXBlLCAqc3RhdGljX3RhcmdldF90 eXBlOwogICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKQEAgLTkwOSw3ICs5MDks NyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogICAgICB7 CiAgICAgICAgbG93X2JvdW5kLmtpbmQgPSBQUk9QX0NPTlNUOwogICAgICAgIGxvd19ib3VuZC5k YXRhLmNvbnN0X3ZhbCA9IHZhbHVlOwotQEAgLTE5OTgsNyArMjAwOCw3IEBAIHJlc29sdmVfZHlu YW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBlLAorQEAgLTIwMDcsNyArMjAx Nyw3IEBAIHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9yYW5nZV90eXBl LAogICAgICB9CiAgCiAgICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5cGUp LT5oaWdoOwpAQCAtOTE4LDcgKzkxOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBi L2dkYi9nZGJ0eXBlcy5jCiAgICAgIHsKICAgICAgICBoaWdoX2JvdW5kLmtpbmQgPSBQUk9QX0NP TlNUOwogICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwgPSB2YWx1ZTsKLUBAIC0yMDEz LDEyICsyMDIzLDIwIEBAIHJlc29sdmVfZHluYW1pY19yYW5nZSAoc3RydWN0IHR5cGUgKmR5bl9y YW5nZV90eXBlLAorQEAgLTIwMjIsMTIgKzIwMzIsMjAgQEAgcmVzb2x2ZV9keW5hbWljX3Jhbmdl IChzdHJ1Y3QgdHlwZSAqZHluX3JhbmdlX3R5cGUsCiAgICAgICAgaGlnaF9ib3VuZC5kYXRhLmNv bnN0X3ZhbCA9IDA7CiAgICAgIH0KICAKQEAgLTk0Myw3ICs5NDMsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYwogZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBl cy5oIGIvZ2RiL2dkYnR5cGVzLmgKIC0tLSBhL2dkYi9nZGJ0eXBlcy5oCiArKysgYi9nZGIvZ2Ri dHlwZXMuaAotQEAgLTYxMiw2ICs2MTIsMTAgQEAgc3RydWN0IHJhbmdlX2JvdW5kcworQEAgLTYx Myw2ICs2MTMsMTAgQEAgc3RydWN0IHJhbmdlX2JvdW5kcwogIAogICAgc3RydWN0IGR5bmFtaWNf cHJvcCBoaWdoOwogIApAQCAtOTU0LDcgKzk1NCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlw ZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29u dGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUKICAgICAgIHN1YnJhbmdlLiBUaGlz IGFmZmVjdHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICovCiAgCi1A QCAtNzc2LDcgKzc4MCw2IEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC03NzcsNyArNzgxLDYgQEAg c3RydWN0IG1haW5fdHlwZQogICAgICAvKiAqIFVuaW9uIG1lbWJlciB1c2VkIGZvciByYW5nZSB0 eXBlcy4gICovCiAgCiAgICAgIHN0cnVjdCByYW5nZV9ib3VuZHMgKmJvdW5kczsKQEAgLTk2Miw3 ICs5NjIsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMuaAog ICAgfSBmbGRzX2JuZHM7CiAgCiAgICAvKiAqIFNsb3QgdG8gcG9pbnQgdG8gYWRkaXRpb25hbCBs YW5ndWFnZS1zcGVjaWZpYyBmaWVsZHMgb2YgdGhpcwotQEAgLTEzMjksNiArMTMzMiwxNSBAQCBl eHRlcm4gYm9vbCBzZXRfdHlwZV9hbGlnbiAoc3RydWN0IHR5cGUgKiwgVUxPTkdFU1QpOworQEAg LTEzMzAsNiArMTMzMywxNSBAQCBleHRlcm4gYm9vbCBzZXRfdHlwZV9hbGlnbiAoc3RydWN0IHR5 cGUgKiwgVUxPTkdFU1QpOwogICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5oaWdoLmtp bmQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX0tJTkQocmFuZ2VfdHlwZSkgXAogICAgVFlQRV9S QU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3cua2luZApAQCAtOTc4LDcgKzk3OCw3IEBAIGRpZmYg LS1naXQgYS9nZGIvZ2RidHlwZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgCiAgLyogUHJvcGVydHkg YWNjZXNzb3JzIGZvciB0aGUgdHlwZSBkYXRhIGxvY2F0aW9uLiAgKi8KICAjZGVmaW5lIFRZUEVf REFUQV9MT0NBVElPTih0aGlzdHlwZSkgXAotQEAgLTEzNjMsNiArMTM3NSw5IEBAIGV4dGVybiBi b29sIHNldF90eXBlX2FsaWduIChzdHJ1Y3QgdHlwZSAqLCBVTE9OR0VTVCk7CitAQCAtMTM2NCw2 ICsxMzc2LDkgQEAgZXh0ZXJuIGJvb2wgc2V0X3R5cGVfYWxpZ24gKHN0cnVjdCB0eXBlICosIFVM T05HRVNUKTsKICAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShh cnJheXR5cGUpKQogICNkZWZpbmUgVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRFRklORUQo YXJyYXl0eXBlKSBcCiAgICAgVFlQRV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQ RShhcnJheXR5cGUpKQpAQCAtOTg4LDcgKzk4OCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlw ZXMuaCBiL2dkYi9nZGJ0eXBlcy5oCiAgCiAgI2RlZmluZSBUWVBFX0FSUkFZX1VQUEVSX0JPVU5E X1ZBTFVFKGFycmF5dHlwZSkgXAogICAgIChUWVBFX0hJR0hfQk9VTkQoVFlQRV9JTkRFWF9UWVBF KChhcnJheXR5cGUpKSkpCi1AQCAtMTg5Miw2ICsxOTA3LDcgQEAgZXh0ZXJuIHN0cnVjdCB0eXBl ICpjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZQorQEAgLTE4OTksNiArMTkxNCw3IEBAIGV4 dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUKICAgICBzdHJ1 Y3QgZHluYW1pY19wcm9wICosIHVuc2lnbmVkIGludCk7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBl ICpjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKQEAgLTk5 OSw3ICs5OTksNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmggYi9nZGIvZ2RidHlwZXMu aAogZGlmZiAtLWdpdCBhL2dkYi9wYXJzZS5jIGIvZ2RiL3BhcnNlLmMKIC0tLSBhL2dkYi9wYXJz ZS5jCiArKysgYi9nZGIvcGFyc2UuYwotQEAgLTk4OSwyNCArOTg5LDIwIEBAIG9wZXJhdG9yX2xl bmd0aF9zdGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Npb24gKmV4cHIsIGludCBlbmRwb3Ms CitAQCAtOTg4LDI0ICs5ODgsMjAgQEAgb3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkIChjb25zdCBz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwciwgaW50IGVuZHBvcywKICAKICAgICAgY2FzZSBPUF9SQU5H RToKICAgICAgICBvcGxlbiA9IDM7CkBAIC0xMDM4LDcgKzEwMzgsNyBAQCBkaWZmIC0tZ2l0IGEv Z2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwogZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWV4cC55IGIv Z2RiL3J1c3QtZXhwLnkKIC0tLSBhL2dkYi9ydXN0LWV4cC55CiArKysgYi9nZGIvcnVzdC1leHAu eQotQEAgLTI0NzgsMjQgKzI0NzgsMjggQEAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoc3Ry dWN0IHBhcnNlcl9zdGF0ZSAqc3RhdGUsCitAQCAtMjQ3NSwyNCArMjQ3NSwyOCBAQCBydXN0X3Bh cnNlcjo6Y29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAoY29uc3Qgc3RydWN0IHJ1c3Rfb3AgKm9w ZXJhdGlvbiwKICAKICAgICAgY2FzZSBPUF9SQU5HRToKICAgICAgICB7CkBAIC0xMDQ3LDEzICsx MDQ3LDEzIEBAIGRpZmYgLS1naXQgYS9nZGIvcnVzdC1leHAueSBiL2dkYi9ydXN0LWV4cC55CiAg CiAgCWlmIChvcGVyYXRpb24tPmxlZnQub3AgIT0gTlVMTCkKICAJICB7Ci0gCSAgICBjb252ZXJ0 X2FzdF90b19leHByZXNzaW9uIChzdGF0ZSwgb3BlcmF0aW9uLT5sZWZ0Lm9wLCB0b3ApOworIAkg ICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAob3BlcmF0aW9uLT5sZWZ0Lm9wLCB0b3ApOwog LQkgICAga2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKICsJICAgIGtpbmQgPSBTVUJBUlJBWV9M T1dfQk9VTkQ7CiAgCSAgfQogIAlpZiAob3BlcmF0aW9uLT5yaWdodC5vcCAhPSBOVUxMKQogIAkg IHsKLSAJICAgIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24gKHN0YXRlLCBvcGVyYXRpb24tPnJp Z2h0Lm9wLCB0b3ApOworIAkgICAgY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbiAob3BlcmF0aW9u LT5yaWdodC5vcCwgdG9wKTsKIC0JICAgIGlmIChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCkK IC0JICAgICAga2luZCA9IChvcGVyYXRpb24tPmluY2x1c2l2ZQogLQkJICAgICAgPyBMT1dfQk9V TkRfREVGQVVMVCA6IExPV19CT1VORF9ERUZBVUxUX0VYQ0xVU0lWRSk7CkBAIC0xMDc4LDcgKzEw NzgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtZXhwLnkgYi9nZGIvcnVzdC1leHAueQogZGlm ZiAtLWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxhbmcuYwogLS0tIGEvZ2RiL3J1 c3QtbGFuZy5jCiArKysgYi9nZGIvcnVzdC1sYW5nLmMKLUBAIC0xMTQ5LDEzICsxMTQ5LDExIEBA IHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lk ZSBub3NpZGUpCitAQCAtMTE4MSwxMyArMTE4MSwxMSBAQCBydXN0X3JhbmdlIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQogICAga2luZCA9IChl bnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbKnBvcyArIDFdLmxvbmdj b25zdCk7CiAgICAqcG9zICs9IDM7CiAgCkBAIC0xMDk1LDcgKzEwOTUsNyBAQCBkaWZmIC0tZ2l0 IGEvZ2RiL3J1c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFuZy5jCiAgCiAgICBpZiAobm9zaWRlID09 IEVWQUxfU0tJUCkKICAgICAgcmV0dXJuIHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBl IChleHAtPmdkYmFyY2gpLT5idWlsdGluX2ludCwgMSk7Ci1AQCAtMTI0NCw3ICsxMjQyLDcgQEAg cnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICpyYW5n ZSwKK0BAIC0xMjc2LDcgKzEyNzQsNyBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAogIAogICAgKmxvdyA9IDA7CiAgICAqaGlnaCA9 IDA7CkBAIC0xMTA0LDcgKzExMDQsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIv Z2RiL3J1c3QtbGFuZy5jCiAgCiAgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA9PSAwKQogICAg ICByZXR1cm47Ci1AQCAtMTI1MiwxNSArMTI1MCwxNCBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0 cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorQEAgLTEyODQsMTUgKzEyODIs MTQgQEAgcnVzdF9jb21wdXRlX3JhbmdlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVl ICpyYW5nZSwKICAgIGkgPSAwOwogICAgaWYgKHN0cmNtcCAoVFlQRV9GSUVMRF9OQU1FICh0eXBl LCAwKSwgInN0YXJ0IikgPT0gMCkKICAgICAgewpAQCAtMTEyMiw3ICsxMTIyLDcgQEAgZGlmZiAt LWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxhbmcuYwogICAgICAgICpoaWdoID0g dmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCBpKSk7CiAgCiAgICAgICAgaWYgKHJ1 c3RfaW5jbHVzaXZlX3JhbmdlX3R5cGVfcCAodHlwZSkpCi1AQCAtMTI3OCw3ICsxMjc1LDcgQEAg cnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5v c2lkZSBub3NpZGUsCitAQCAtMTMxMCw3ICsxMzA3LDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVj dCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCiAgICBzdHJ1 Y3QgdHlwZSAqcmhzdHlwZTsKICAgIExPTkdFU1QgbG93LCBoaWdoX2JvdW5kOwogICAgLyogSW5p dGlhbGl6ZWQgdG8gYXBwZWFzZSB0aGUgY29tcGlsZXIuICAqLwpAQCAtMTEzMSw3ICsxMTMxLDcg QEAgZGlmZiAtLWdpdCBhL2dkYi9ydXN0LWxhbmcuYyBiL2dkYi9ydXN0LWxhbmcuYwogICAgTE9O R0VTVCBoaWdoID0gMDsKICAgIGludCB3YW50X3NsaWNlID0gMDsKICAKLUBAIC0xMzc2LDcgKzEz NzMsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3Ms IGVudW0gbm9zaWRlIG5vc2lkZSwKK0BAIC0xNDA4LDcgKzE0MDUsNyBAQCBydXN0X3N1YnNjcmlw dCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwK ICAJZXJyb3IgKF8oIkNhbm5vdCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUiKSk7CiAgCiAgICAg ICAgaWYgKHdhbnRfc2xpY2UKQEAgLTExNDAsNyArMTE0MCw3IEBAIGRpZmYgLS1naXQgYS9nZGIv cnVzdC1sYW5nLmMgYi9nZGIvcnVzdC1sYW5nLmMKICAJbG93ID0gbG93X2JvdW5kOwogICAgICAg IGlmIChsb3cgPCAwKQogIAllcnJvciAoXygiSW5kZXggbGVzcyB0aGFuIHplcm8iKSk7Ci1AQCAt MTM5NCw3ICsxMzkxLDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAs IGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCitAQCAtMTQyNiw3ICsxNDIzLDcgQEAgcnVz dF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lk ZSBub3NpZGUsCiAgCSAgQ09SRV9BRERSIGFkZHI7CiAgCSAgc3RydWN0IHZhbHVlICphZGRydmFs LCAqdGVtOwogIApAQCAtMTc2MSw3ICsxNzYxLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLmYK IGRpZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCiAtLS0gYS9nZGIv dmFsYXJpdGguYwogKysrIGIvZ2RiL3ZhbGFyaXRoLmMKLUBAIC0xODcsMTAgKzE4NywxNiBAQCB2 YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExPTkdFU1QgaW5k ZXgsIGludCBsb3dlcmJvdW5kKQorQEAgLTE4NywxMSArMTg3LDE3IEBAIHZhbHVlX3N1YnNjcmlw dGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICphcnJheSwgTE9OR0VTVCBpbmRleCwgaW50IGxvd2Vy Ym91bmQpCiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVl X3R5cGUgKGFycmF5KSk7CiAgICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVm IChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7CiAgICBVTE9OR0VTVCBlbHRfc2l6ZSA9 IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7CkBAIC0xNzc0LDE2ICsxNzc0LDE3IEBAIGRp ZmYgLS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCiArICBlbHNlCiArICAg IGVsdF9vZmZzICo9IGVsdF9zaXplOwogIAotICAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8fCAo IVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQotLQkJCSAg ICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKSkKLSsJCQkg ICAgICYmIGFicyAoZWx0X29mZnMpID49IHR5cGVfbGVuZ3RoX3VuaXRzIChhcnJheV90eXBlKSkp CisgICBpZiAoaW5kZXggPCBsb3dlcmJvdW5kCisgICAgICAgfHwgKCFUWVBFX0FSUkFZX1VQUEVS X0JPVU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkKKy0gICAgICAgICAgJiYgZWx0X29mZnMg Pj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5cGUpKQorKyAgICAgICAgICAmJiBhYnMgKGVs dF9vZmZzKSA+PSB0eXBlX2xlbmd0aF91bml0cyAoYXJyYXlfdHlwZSkpCisgICAgICAgfHwgKFZB TFVFX0xWQUwgKGFycmF5KSAhPSBsdmFsX21lbW9yeQorICAgICAgICAgICAmJiBUWVBFX0FSUkFZ X1VQUEVSX0JPVU5EX0lTX1VOREVGSU5FRCAoYXJyYXlfdHlwZSkpKQogICAgICB7Ci0gICAgICAg aWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKGFycmF5X3R5cGUpKQotICAgICAgICAgZXJyb3IgKF8o Im5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgKHZlY3RvciBub3QgYXNzb2NpYXRlZCkiKSk7CiBkaWZm IC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCiAtLS0gYS9nZGIvdmFsb3BzLmMK ICsrKyBiL2dkYi92YWxvcHMuYwotQEAgLTM4MDgsNTYgKzM4MDgsMTk1IEBAIHZhbHVlX29mX3Ro aXNfc2lsZW50IChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZykKK0BAIC0zODA3LDU2 ICszODA3LDE5NSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdl X2RlZm4gKmxhbmcpCiAgCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9zbGljZSAoc3RydWN0IHZh bHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQoKZGlmZiAtLWdpdCBhL2dkYi12 bGEtaW50ZWwtZm9ydHJhbi12bGEtc3RyaW5ncy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtZm9ydHJh bi12bGEtc3RyaW5ncy5wYXRjaAppbmRleCA4YzE1MTIxLi4xNjQ2YmQzIDEwMDY0NAotLS0gYS9n ZGItdmxhLWludGVsLWZvcnRyYW4tdmxhLXN0cmluZ3MucGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRl bC1mb3J0cmFuLXZsYS1zdHJpbmdzLnBhdGNoCkBAIC0zMyw3ICszMyw3IEBAIGdpdCBkaWZmIC0t c3RhdCAtcCBnZGIvbWFzdGVyLi4uZ2RiL3VzZXJzL2JoZWNrZWwvZm9ydHJhbi12bGEtc3RyaW5n cwogZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKIC0tLSBhL2dkYi9ORVdTCiArKysg Yi9nZGIvTkVXUwotQEAgLTEwNiw2ICsxMDYsOCBAQCBTSC01L1NINjQgcnVubmluZyBPcGVuQlNE IAlTSC01L1NINjQgc3VwcG9ydCBpbiBzaCotKi1vcGVuYnNkKgorQEAgLTIwMyw2ICsyMDMsOCBA QCBTSC01L1NINjQgcnVubmluZyBPcGVuQlNEIAlTSC01L1NINjQgc3VwcG9ydCBpbiBzaCotKi1v cGVuYnNkKgogIAogICoqKiBDaGFuZ2VzIGluIEdEQiA4LjEKICAKQEAgLTc3LDcgKzc3LDcgQEAg ZGlmZiAtLWdpdCBhL2dkYi9jLXZhbHByaW50LmMgYi9nZGIvYy12YWxwcmludC5jCiBkaWZmIC0t Z2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKIC0tLSBhL2dkYi9kd2Fy ZjJyZWFkLmMKICsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNzg5LDcgKzE3ODksOCBAQCBz dGF0aWMgdm9pZCByZWFkX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IHNpZ25hdHVyZWRfdHlwZSAq KTsKK0BAIC0xNzk5LDcgKzE3OTksOCBAQCBzdGF0aWMgdm9pZCByZWFkX3NpZ25hdHVyZWRfdHlw ZSAoc3RydWN0IHNpZ25hdHVyZWRfdHlwZSAqKTsKICAKICBzdGF0aWMgaW50IGF0dHJfdG9fZHlu YW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogIAkJCQkgc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LApAQCAtODcsNyArODcsNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKICAKICAvKiBtZW1v cnkgYWxsb2NhdGlvbiBpbnRlcmZhY2UgKi8KICAKLUBAIC0xMzY0OCw3ICsxMzY0OSw3IEBAIHJl YWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQorQEAgLTEzNzQ4LDcgKzEzNzQ5LDcgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIHsKICAgICAgICBuZXdvYmotPnN0 YXRpY19saW5rCiAgCT0gWE9CTkVXICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzdHJ1Y3Qg ZHluYW1pY19wcm9wKTsKQEAgLTk1LDggKzk1LDggQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJy ZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCiArICAgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0 dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmssIE5VTEwsIDApOwogICAgICB9CiAgCi0g ICBjdS0+bGlzdF9pbl9zY29wZSA9ICZsb2NhbF9zeW1ib2xzOwotQEAgLTE2MzEzLDcgKzE2MzE0 LDggQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCisgICBjdS0+bGlzdF9pbl9zY29wZSA9IGN1LT5idWlsZGVyLT5nZXRfbG9jYWxf c3ltYm9scyAoKTsKK0BAIC0xNjQ2OCw3ICsxNjQ2OSw4IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAogICAgICAgIGJ5dGVf c3RyaWRlX3Byb3AKICAJPSAoc3RydWN0IGR5bmFtaWNfcHJvcCAqKSBhbGxvY2EgKHNpemVvZiAo c3RydWN0IGR5bmFtaWNfcHJvcCkpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIGRpZmYgLS1naXQgYS9n ZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgIGlmICghc3RyaWRlX29r KQogIAl7CiAgCSAgY29tcGxhaW50IChfKCJ1bmFibGUgdG8gcmVhZCBhcnJheSBEV19BVF9ieXRl X3N0cmlkZSAiCi1AQCAtMTcwNzQsMjkgKzE3MDc2LDkwIEBAIHJlYWRfdGFnX3N0cmluZ190eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTcyMjks MjkgKzE3MjMxLDkwIEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdl dF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90 eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7 CkBAIC0xNTAsNyArMTUwLDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIv ZHdhcmYycmVhZC5jCiArCQkgICBvcGVyYW5kLiAgKi8KICsJCURXX09QX2RlcmVmX3NpemUsCiAr CQkvKiBPcGVyYW5kIGZvciBEV19PUF9kZXJlZl9zaXplLiAgKi8KLSsJCURXX1VOU05EKGJ5dGVf c2l6ZSkgfTsKKysJCShnZGJfYnl0ZSkgRFdfVU5TTkQoYnl0ZV9zaXplKSB9OwogKwogKwkgICAg ICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgYXBwZW5k X29wcywKICsJCQkJCSBBUlJBWV9TSVpFKGFwcGVuZF9vcHMpKSkKQEAgLTIwOCw3ICsyMDgsNyBA QCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKICAgIGNo YXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBn ZGJhcmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwg cmFuZ2VfdHlwZSk7CiAgCi1AQCAtMTc0NDQsNyArMTc1MDcsOCBAQCByZWFkX2Jhc2VfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTE3NTk5LDcg KzE3NjYyLDggQEAgcmVhZF9iYXNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKICAKICBzdGF0aWMgaW50CiAgYXR0cl90b19keW5hbWljX3Byb3AgKGNv bnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLApAQCAtMjE4 LDcgKzIxOCw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJl YWQuYwogIHsKICAgIHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJhdG9uOwogICAgc3Ry dWN0IG9ic3RhY2sgKm9ic3RhY2sKLUBAIC0xNzQ1NSwxNCArMTc1MTksMzMgQEAgYXR0cl90b19k eW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5m byAqZGllLAorQEAgLTE3NjEwLDE0ICsxNzY3NCwzMyBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAo Y29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgCiAg ICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKICAgICAgewpAQCAtMjU2LDcgKzI1Niw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogICAg ICB9CiAgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfcmVmIChhdHRyKSkKICAgICAgewotQEAgLTE3 NDk1LDggKzE3NTc4LDI4IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC0xNzY1MCw4ICsxNzczMywy OCBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwg c3RydWN0IGRpZV9pbmZvICpkaWUsCiAgCQliYXRvbiA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0 IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CiAgCQliYXRvbi0+cmVmZXJlbmNlZF90eXBlID0gZGll X3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7CiAgCQliYXRvbi0+bG9jZXhwci5wZXJfY3Ug PSBjdS0+cGVyX2N1OwpAQCAtMjg3LDcgKzI4Nyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYy cmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwogIAkJcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwog IAkJcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKICAJCWdkYl9hc3NlcnQgKHByb3AtPmRhdGEu YmF0b24gIT0gTlVMTCk7Ci1AQCAtMTc2MDcsNyArMTc3MTAsNyBAQCByZWFkX3N1YnJhbmdlX3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xNzc2 Miw3ICsxNzg2NSw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAogICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2J5dGVfc3RyaWRlLCBjdSk7CiAgICBpZiAoYXR0cikKQEAgLTI5Niw3ICsyOTYsNyBAQCBk aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKICAgICAgICAg IGNvbXBsYWludCAoXygiTWlzc2luZyBEV19BVF9ieXRlX3N0cmlkZSAiCiAgCQkgICAgICItIERJ RSBhdCAweCVzIFtpbiBtb2R1bGUgJXNdIiksCiAgCQkgICBzZWN0X29mZnNldF9zdHIgKGRpZS0+ c2VjdF9vZmYpLAotQEAgLTE3NjE1LDcgKzE3NzE4LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTc3NzAsNyAr MTc4NzMsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9s b3dlcl9ib3VuZCwgY3UpOwogICAgaWYgKGF0dHIpCkBAIC0zMDUsMjAgKzMwNSwyMCBAQCBkaWZm IC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKICAgIGVsc2UgaWYg KCFsb3dfZGVmYXVsdF9pc192YWxpZCkKICAgICAgY29tcGxhaW50IChfKCJNaXNzaW5nIERXX0FU X2xvd2VyX2JvdW5kICIKICAJCQkJICAgICAgIi0gRElFIGF0ICVzIFtpbiBtb2R1bGUgJXNdIiks Ci1AQCAtMTc2MjMsMTAgKzE3NzI2LDEwIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotIAkgICAgICAgb2JqZmlsZV9uYW1l IChjdS0+cGVyX2N1LT5kd2FyZjJfcGVyX29iamZpbGUtPm9iamZpbGUpKTsKK0BAIC0xNzc3OSwx MCArMTc4ODIsMTAgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfdXBwZXJfYm91bmQsIGN1KTsKKyAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJfdWIsICphdHRy X2NvdW50OworICAgYXR0ciA9IGF0dHJfdWIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF91cHBl cl9ib3VuZCwgY3UpOwogLSAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBj dSwgJmhpZ2gpKQogKyAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwg JmhpZ2gsIE5VTEwsIDApKQogICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUs IERXX0FUX2NvdW50LCBjdSk7CisgICAgICAgYXR0ciA9IGF0dHJfY291bnQgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOwogLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJv cCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQogKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJv cCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQogIAl7CiAgCSAgLyogSWYgYm91bmRz IGFyZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2FsY3VsYXRpb24gaGVyZS4gICovCiAgCSAgaWYg KGxvdy5raW5kID09IFBST1BfQ09OU1QgJiYgaGlnaC5raW5kID09IFBST1BfQ09OU1QpCi1AQCAt MjUxMjcsNyArMjUyMzAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjUzMzcsNyArMjU0 NDAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwg RFdfQVRfYWxsb2NhdGVkLCBjdSk7CiAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkK ICAgICAgewpAQCAtMzI3LDcgKzMyNyw3IEBAIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5j IGIvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9BTExP Q0FURUQsIHByb3AsIHR5cGUpOwogICAgICB9CiAgICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCi1A QCAtMjUxNDEsNyArMjUyNDQsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjUzNTEsNyAr MjU0NTQsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfYXNzb2NpYXRlZCwgY3UpOwogICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0 cikpCiAgICAgIHsKQEAgLTMzNiw3ICszMzYsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMnJl YWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKICAgICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1Bf QVNTT0NJQVRFRCwgcHJvcCwgdHlwZSk7CiAgICAgIH0KICAgIGVsc2UgaWYgKGF0dHIgIT0gTlVM TCkKLUBAIC0yNTE1Myw3ICsyNTI1Niw3IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0yNTM2 Myw3ICsyNTQ2Niw3IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIC8qIFJlYWQgRFdfQVRf ZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLwogICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKQEAgLTUwMCw3ICs1MDAsNyBAQCBkaWZm IC0tZ2l0IGEvZ2RiL2YtdHlwZXByaW50LmMgYi9nZGIvZi10eXBlcHJpbnQuYwogZGlmZiAtLWdp dCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKIC0tLSBhL2dkYi9nZGJ0eXBlcy5j CiArKysgYi9nZGIvZ2RidHlwZXMuYwotQEAgLTE5MDQsNyArMTkwNCw4IEBAIGlzX2R5bmFtaWNf dHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCitAQCAtMTkx Myw3ICsxOTEzLDggQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgaW50IHRvcF9sZXZlbCkKICAgIHR5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKICAKICAg IC8qIFdlIG9ubHkgd2FudCB0byByZWNvZ25pemUgcmVmZXJlbmNlcyBhdCB0aGUgb3V0ZXJtb3N0 IGxldmVsLiAgKi8KQEAgLTUxMCw3ICs1MTAsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVz LmMgYi9nZGIvZ2RidHlwZXMuYwogICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSkpOwogIAogICAgLyogVHlwZXMgdGhhdCBoYXZlIGEgZHluYW1pYyBUWVBF X0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKLUBAIC0xOTM4LDYgKzE5MzksNyBAQCBpc19k eW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgdG9wX2xldmVsKQor QEAgLTE5NDcsNiArMTk0OCw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5 cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCiAgICAgICAgfQogIAogICAgICBjYXNlIFRZUEVfQ09E RV9BUlJBWToKQEAgLTUxOCw3ICs1MTgsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMg Yi9nZGIvZ2RidHlwZXMuYwogICAgICAgIHsKICAJZ2RiX2Fzc2VydCAoVFlQRV9ORklFTERTICh0 eXBlKSA9PSAxKTsKICAKLUBAIC0yMDU2LDcgKzIwNTgsOCBAQCByZXNvbHZlX2R5bmFtaWNfYXJy YXkgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTIwNjUsNyArMjA2Nyw4IEBAIHJlc29sdmVfZHlu YW1pY19hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgICBzdHJ1Y3QgZHluYW1pY19wcm9wICpw cm9wOwogICAgdW5zaWduZWQgaW50IGJpdF9zdHJpZGUgPSAwOwogIApAQCAtNTI4LDcgKzUyOCw3 IEBAIGRpZmYgLS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICB0 eXBlID0gY29weV90eXBlICh0eXBlKTsKICAKLUBAIC0yMDgxLDExICsyMDg0LDE1IEBAIHJlc29s dmVfZHluYW1pY19hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMjA5MCwxMSArMjA5Mywx NSBAQCByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAogIAogICAgYXJ5 X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGVsdF90eXBlKSk7CiAgCkBA IC01NDUsNyArNTQ1LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5 cGVzLmMKICAgIHByb3AgPSBnZXRfZHluX3Byb3AgKERZTl9QUk9QX0JZVEVfU1RSSURFLCB0eXBl KTsKICAgIGlmIChwcm9wICE9IE5VTEwpCiAgICAgIHsKLUBAIC0yMjQwLDYgKzIyNDcsMjggQEAg cmVzb2x2ZV9keW5hbWljX3N0cnVjdCAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMjI0OSw2ICsy MjU2LDI4IEBAIHJlc29sdmVfZHluYW1pY19zdHJ1Y3QgKHN0cnVjdCB0eXBlICp0eXBlLAogICAg cmV0dXJuIHJlc29sdmVkX3R5cGU7CiAgfQogIApAQCAtNTc0LDcgKzU3NCw3IEBAIGRpZmYgLS1n aXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiAgLyogV29ya2VyIGZvciByZXNv bHZlZF9keW5hbWljX3R5cGUuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCi1AQCAtMjI4 OCw3ICsyMzE3LDEyIEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKK0BAIC0yMjk3LDcgKzIzMjYsMTIgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50 ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAogIAkgICAgYnJlYWs7CiAgCSAgfQogIAoKZGlmZiAt LWdpdCBhL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC1z dHJpbmdidC1maXgucGF0Y2gKaW5kZXggYjIxNzBmNC4uN2I0MjBhYiAxMDA2NDQKLS0tIGEvZ2Ri LXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKKysrIGIvZ2RiLXZsYS1pbnRlbC1zdHJpbmdi dC1maXgucGF0Y2gKQEAgLTM4LDcgKzM4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2Mu YyBiL2dkYi9kd2FyZjJsb2MuYwogICNpbmNsdWRlICJjb21tb24vdW5kZXJseWluZy5oIgogICNp bmNsdWRlICJjb21tb24vYnl0ZS12ZWN0b3IuaCIKICAKLUBAIC0yMzQ4LDYgKzIzNDksMjAgQEAg ZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUsCitAQCAtMjM4OCw2ICsyMzg5LDIwIEBAIGR3YXJmMl9ldmFsdWF0 ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lLAogICAgY3R4LnBlcl9jdSA9IHBlcl9jdTsKICAgIGN0eC5vYmpfYWRkcmVzcyA9IDA7CiAg CgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCA0OTk3ZjBjLi45MThmOWQ5 IDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMTgsMTUgKzE4LDE1IEBA CiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJy YW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxODA3MjcKKyVnbG9iYWwgc25hcHNyYyAgICAy MDE4MDkxNwogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5zdGFsbGVkIGludG8g Z2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTYxMTE1CiAlZ2xvYmFsIHRhcm5h bWUgZ2RiLSV7dmVyc2lvbn0KLVZlcnNpb246IDguMS45MC4le3NuYXBzcmN9CitWZXJzaW9uOiA4 LjIuNTAuJXtzbmFwc3JjfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRp bmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBh IHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxl IGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDQ1JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9kaXN0 fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYy KyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgTEdQ THYzKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1l bnQvRGVidWdnZXJzCkBAIC0xMDIyLDYgKzEwMjIsMTAgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdl bG9nCisqIE1vbiBTZXAgMTcgMjAxOCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJl ZGhhdC5jb20+IC0gOC4yLjUwLjIwMTgwOTE3LTEuZmMzMAorLSBSZWJhc2UgdG8gRlNGIEdEQiA4 LjIuNTAuMjAxODA5MTcgKDguM3ByZSkuCistIEFkZCAnZ2RiLXJoYno3OTU0MjQtYml0cG9zLWFy cmF5dmlldy5wYXRjaCcuCisKICogVHVlIEF1ZyAyMSAyMDE4IFNlcmdpbyBEdXJpZ2FuIEp1bmlv ciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4gLSA4LjEuOTAuMjAxODA3MjctNDUuZmMzMAogLSBFbmFi bGUgdmVyYm9zZSBvdXRwdXQgd2hlbiBydW5uaW5nICJtYWtlIi4KIAoKZGlmZiAtLWdpdCBhL3Nv dXJjZXMgYi9zb3VyY2VzCmluZGV4IDVkOGI4NTMuLmMxN2ZmN2QgMTAwNjQ0Ci0tLSBhL3NvdXJj ZXMKKysrIGIvc291cmNlcwpAQCAtMSwzICsxLDMgQEAKIFNIQTUxMiAoZ2RiLWxpYnN0ZGMrKy12 My1weXRob24tOC4xLjEtMjAxODA2MjYudGFyLnh6KSA9IGE4YjFjNTRkZDM0OGNmZWIzN2RhNzNm OTY4NzQyODk2YmUzZGQxM2E0MjE1ZjhkODUxOTg3MGMyYWJlYTkxNWY1MTc2YzNmYTY5ODlkZGQx MGYyMDAyMGExNmYwZmFiMjBjYmFlNjhlZThkNThhODIyMzRkODc3ODAyMzUyMGY4Ci1TSEE1MTIg KGdkYi04LjEuOTAuMjAxODA3MjcudGFyLnh6KSA9IDBmOGU5Y2ZhZWFmOWYyMjM2MWIzYjhkNWQ0 OTBkMGE4YmVhM2VlYWFhMGM2ODEzZDVkZjBhNmQ1MjY3ZmYzZjU5Nzc0N2NjMGU5N2Q3MGM0MTk2 ZDc4ZWUzMmUwZTgyZDU4OTMyODNkNzFiNDQ5ZDg5NzAzODkzYmYxYWUwMDE0CiBTSEE1MTIgKHYy LjAudGFyLmd6KSA9IGVjNjMxNTFlODQyYzgxY2M3M2VhMTFiYTU2MGI2M2UwMDVjZWZiZTE5ZDk4 ZGUyNGFlNWM4Y2FhNGRlN2M5YzFkNzFkMWVjNWI2MjE0YTM0NzU5MmVhYzY3NWI3NWEzZDJiMjZk NDY5MWNhODZmOTEwMjBlYmZlYThlOTEyOTM5CitTSEE1MTIgKGdkYi04LjIuNTAuMjAxODA5MTcu dGFyLnh6KSA9IDkyZjA3ZmMwNjJmZjlkN2NiNTY4MzUwN2EyNTZmNjVhZTlkMjliN2Q2MzY4ZDIy ZjQ3NDA0MTIwMWMxMjliMWQzZjY4N2YwMmU4OWU1MDlkNWZkOGU5YzA4ZGJjOGJiZjlkOWFhZDU2 ZDlkYmRjMmY2ZTJiYWVmMjIzY2M5MGVmCg==