From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Rebase to FSF GDB 7.7. Date: Thu, 23 Jul 2026 18:31:12 GMT Message-ID: <178483147278.1.17205843839293095789.rpms-gdb-2c55a5441d00@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 2c55a5441d00bc3f00df01ed3184da81461c6cb2 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMmM1NWE1NDQxZDAwYmMzZjAwZGYwMWVkMzE4NGRhODE0NjFjNmNiMgog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxNC0wMi0wN1QxOTozODoxNCswMTowMAogICAg ICAgICAgICBTdGF0cyAgOiArMzA5OC8tNDc0OSBpbiAzNyBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvMmM1NWE1NDQx ZDAwYmMzZjAwZGYwMWVkMzE4NGRhODE0NjFjNmNiMj9icmFuY2g9Zml4LWR1cC1wYXRjaAoKICAg ICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gRlNGIEdEQiA3LjcuCgotIE5ldyBy cG1idWlsZCBvcHRpb246IC0td2l0aCBhc2FuCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUg Yi8uZ2l0aWdub3JlCmluZGV4IDUyYjA0MmIuLjEyNWRmODMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25v cmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwzICsxLDIgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5 dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy42LjUwLjIwMTMwNjI0LnRhci5iejIKLS9nZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy50YXIuYnoyCisvZ2RiLTcuNy50YXIuYnoyCgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2ggYi9nZGItNi4zLWdzdGFjay0yMDA1MDQx MS5wYXRjaAppbmRleCBiNzNlZWZmLi5mMWU5ZTNhIDEwMDY0NAotLS0gYS9nZGItNi4zLWdzdGFj ay0yMDA1MDQxMS5wYXRjaAorKysgYi9nZGItNi4zLWdzdGFjay0yMDA1MDQxMS5wYXRjaApAQCAt NCwxMSArNCwxMSBAQAogCXRvIGluc3RhbGwgYW5kIHVuaW5zdGFsbC4KIAkqIGdzdGFjay5zaCwg Z3N0YWNrLjE6IE5ldyBmaWxlcy4KIAotSW5kZXg6IGdkYi03LjYvZ2RiL01ha2VmaWxlLmluCitJ bmRleDogZ2RiLTcuNy9nZGIvTWFrZWZpbGUuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42Lm9y aWcvZ2RiL01ha2VmaWxlLmluCTIwMTMtMDUtMjEgMTM6MjY6MzMuNDk2ODIwNzYzICswMjAwCi0r KysgZ2RiLTcuNi9nZGIvTWFrZWZpbGUuaW4JMjAxMy0wNS0yMSAxMzoyNjozMy42MDk4MTk1Nzkg KzAyMDAKLUBAIC0xMDI5LDcgKzEwMjksNyBAQCBpbmZvIGluc3RhbGwtaW5mbyBjbGVhbi1pbmZv IGR2aSBwZGYgaW5zCistLS0gZ2RiLTcuNy5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDE0LTAyLTA2 IDIwOjI5OjA5LjQwMTIxNDMzOSArMDEwMAorKysrIGdkYi03LjcvZ2RiL01ha2VmaWxlLmluCTIw MTQtMDItMDYgMjA6Mjk6MDkuNTAxMjE0MzYwICswMTAwCitAQCAtMTA2Nyw3ICsxMDY3LDcgQEAg aW5mbyBpbnN0YWxsLWluZm8gY2xlYW4taW5mbyBkdmkgcGRmIGlucwogIGluc3RhbGw6IGFsbAog IAlAJChNQUtFKSAkKEZMQUdTX1RPX1BBU1MpIGluc3RhbGwtb25seQogIApAQCAtMTcsNyArMTcs NyBAQCBJbmRleDogZ2RiLTcuNi9nZGIvTWFrZWZpbGUuaW4KICAJdHJhbnNmb3JtZWRfbmFtZT1g dD0nJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKSc7IFwKICAJCQkgIGVjaG8gZ2RiIHwgc2VkIC1l ICIkJHQiYCA7IFwKICAJCWlmIHRlc3QgIngkJHRyYW5zZm9ybWVkX25hbWUiID0geDsgdGhlbiBc Ci1AQCAtMTA2MCw3ICsxMDYwLDI1IEBAIGluc3RhbGwtb25seTogJChDT05GSUdfSU5TVEFMTCkK K0BAIC0xMTA0LDcgKzExMDQsMjUgQEAgaW5zdGFsbC1zdHJpcDoKICBpbnN0YWxsLXB5dGhvbjoK ICAJJChTSEVMTCkgJChzcmNkaXIpLy4uL21raW5zdGFsbGRpcnMgJChERVNURElSKSQoR0RCX0RB VEFESVIpL3B5dGhvbi9nZGIKICAKQEAgLTQ0LDcgKzQ0LDcgQEAgSW5kZXg6IGdkYi03LjYvZ2Ri L01ha2VmaWxlLmluCiAgCXRyYW5zZm9ybWVkX25hbWU9YHQ9JyQocHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSknOyBcCiAgCQkJICBlY2hvIGdkYiB8IHNlZCAtZSAkJHRgIDsgXAogIAkJaWYgdGVzdCAi eCQkdHJhbnNmb3JtZWRfbmFtZSIgPSB4OyB0aGVuIFwKLUBAIC0xMDgzLDYgKzExMDEsMTggQEAg dW5pbnN0YWxsOiBmb3JjZSAkKENPTkZJR19VTklOU1RBTEwpCitAQCAtMTEyNyw2ICsxMTQ1LDE4 IEBAIHVuaW5zdGFsbDogZm9yY2UgJChDT05GSUdfVU5JTlNUQUxMKQogIAlmaQogIAlAJChNQUtF KSBETz11bmluc3RhbGwgIkRPRElSUz0kKFNVQkRJUlMpIiAkKEZMQUdTX1RPX1BBU1MpIHN1YmRp cl9kbwogIApAQCAtNjMsMTAgKzYzLDEwIEBAIEluZGV4OiBnZGItNy42L2dkYi9NYWtlZmlsZS5p bgogICMgVGhlIEMrKyBuYW1lIHBhcnNlciBjYW4gYmUgYnVpbHQgc3RhbmRhbG9uZSBmb3IgdGVz dGluZy4KICB0ZXN0LWNwLW5hbWUtcGFyc2VyLm86IGNwLW5hbWUtcGFyc2VyLmMKICAJJChDT01Q SUxFKSAtRFRFU1RfQ1BOQU1FUyBjcC1uYW1lLXBhcnNlci5jCi1JbmRleDogZ2RiLTcuNi9nZGIv Z3N0YWNrLnNoCitJbmRleDogZ2RiLTcuNy9nZGIvZ3N0YWNrLnNoCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu Ni9nZGIvZ3N0YWNrLnNoCTIwMTMtMDUtMjEgMTM6MjY6NTUuNDM0NjI1OTA4ICswMjAwCisrKysg Z2RiLTcuNy9nZGIvZ3N0YWNrLnNoCTIwMTQtMDItMDYgMjA6Mjk6MDkuNTAxMjE0MzYwICswMTAw CiBAQCAtMCwwICsxLDQzIEBACiArIyEvYmluL3NoCiArCkBAIC0xMTEsMTAgKzExMSwxMCBAQCBJ bmRleDogZ2RiLTcuNi9nZGIvZ3N0YWNrLnNoCiArICAgIC1lICdzL15cKChnZGIpIFwpKi8vJyBc CiArICAgIC1lICcvXiMvcCcgXAogKyAgICAtZSAnL15UaHJlYWQvcCcKLUluZGV4OiBnZGItNy42 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ3N0YWNrLmV4cAorSW5kZXg6IGdkYi03LjcvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9nc3RhY2suZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2dzdGFjay5leHAJMjAxMy0wNS0yMSAxMzoyNjo1NS40MzQ2MjU5MDggKzAy MDAKKysrKyBnZGItNy43L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ3N0YWNrLmV4cAkyMDE0LTAy LTA2IDIwOjQzOjE3Ljc3NDc0NzM1MiArMDEwMAogQEAgLTAsMCArMSw2NiBAQAogKyMgQ29weXJp Z2h0IChDKSAyMDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTMzLDcg KzEzMyw3IEBAIEluZGV4OiBnZGItNy42L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ3N0YWNrLmV4 cAogKwogK3NldCB0ZXN0ZmlsZSBnc3RhY2sKICtzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfQot K3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJGV4ZWN1dGFibGUKKytzZXQgYmluZmls ZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJGV4ZWN1dGFibGVdCiAraWYge1tidWlsZF9leGVjdXRh YmxlICR7dGVzdGZpbGV9ICR7ZXhlY3V0YWJsZX0gIiIge2RlYnVnfV0gPT0gLTF9IHsKICsgICAg cmV0dXJuIC0xCiArfQpAQCAtMTgyLDEwICsxODIsMTAgQEAgSW5kZXg6IGdkYi03LjYvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9nc3RhY2suZXhwCiArZ2RiX2V4aXQKICsKICtyZW1vdGVfZXhlYyBo b3N0ICJraWxsIC05ICRwaWQiCi1JbmRleDogZ2RiLTcuNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2dzdGFjay5jCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dzdGFjay5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2dzdGFjay5jCTIwMTMt MDUtMjEgMTM6MjY6MzMuNjEwODE5NTY5ICswMjAwCisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2dzdGFjay5jCTIwMTQtMDItMDYgMjA6Mjk6MDkuNTAyMjE0MzYwICswMTAwCiBA QCAtMCwwICsxLDQzIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KICsKCmRpZmYgLS1naXQgYS9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkwNy5w YXRjaCBiL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCmluZGV4IDk0NGUxMDQuLjdm ZjFkYzcgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCisrKyBi L2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoCkBAIC0xMSwxMSArMTEsMTEgQEAKIAog ICAgICAgICAqIGdkYi50ZXhpbmZvIChGaWxlIE9wdGlvbnMpOiBEb2N1bWVudCAtLXJlYWRuZXZl ci4KIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2MvZ2RiLnRleGluZm8K K0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8J MjAxMy0wOC0wMiAxNjoxMjo1NC45NzAwODU5NDIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTMtMDgtMDIgMTY6MjA6MjEuMTY0Njg3ODg2 ICswMjAwCi1AQCAtMTAzMCw2ICsxMDMwLDEyIEBAIFJlYWQgZWFjaCBzeW1ib2wgZmlsZSdzIGVu dGlyZSBzeW1ib2wgdGEKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2RvYy9nZGIu dGV4aW5mbwkyMDE0LTAxLTI3IDIyOjQyOjUzLjE1MDU3MzYwMyArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE0LTAxLTI3IDIyOjQyOjU2LjY5NDU3 NjMxOSArMDEwMAorQEAgLTEwMzEsNiArMTAzMSwxMiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUn cyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhlIGRlZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5j cmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQuCiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwg YnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25zIGZhc3Rlci4KICAKQEAgLTI4LDExICsyOCwxMSBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBl bmQgdGFibGUKICAKICBAbm9kZSBNb2RlIE9wdGlvbnMKLUluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvbWFpbi5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWFpbi5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvbWFpbi5j CTIwMTMtMDgtMDIgMTY6MTI6NTQuOTc0MDg1OTQ4ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL21haW4uYwkyMDEzLTA4LTAyIDE2OjIwOjUzLjcwNDczMTQ0OSArMDIwMAot QEAgLTQ1OSw2ICs0NTksNyBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbWFpbi5jCTIwMTQtMDEtMjcgMjI6NDI6NTMuMTUzNTcz NjA2ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWFpbi5jCTIwMTQtMDEtMjcg MjI6NDI6NTYuNjk1NTc2MzE5ICswMTAwCitAQCAtNDczLDYgKzQ3Myw3IEBAIGNhcHR1cmVkX21h aW4gKHZvaWQgKmRhdGEpCiAgICAgICAgeyJ4ZGIiLCBub19hcmd1bWVudCwgJnhkYl9jb21tYW5k cywgMX0sCiAgICAgICAgeyJkYngiLCBub19hcmd1bWVudCwgJmRieF9jb21tYW5kcywgMX0sCiAg ICAgICAgeyJyZWFkbm93Iiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJvbF9maWxlcywgMX0s CkBAIC00MCw3ICs0MCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWFp bi5jCiAgICAgICAgeyJyIiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJvbF9maWxlcywgMX0s CiAgICAgICAgeyJxdWlldCIsIG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAogICAgICAgIHsicSIs IG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAotQEAgLTExNTQsNiArMTE1NSw3IEBAIFNlbGVjdGlv biBvZiBkZWJ1Z2dlZSBhbmQgaXRzIGZpbGVzOlxuXG4KK0BAIC0xMTY0LDYgKzExNjUsNyBAQCBT ZWxlY3Rpb24gb2YgZGVidWdnZWUgYW5kIGl0cyBmaWxlczpcblxuCiAgICAtLXNlPUZJTEUgICAg ICAgICAgVXNlIEZJTEUgYXMgc3ltYm9sIGZpbGUgYW5kIGV4ZWN1dGFibGUgZmlsZS5cblwKICAg IC0tc3ltYm9scz1TWU1GSUxFICBSZWFkIHN5bWJvbHMgZnJvbSBTWU1GSUxFLlxuXAogICAgLS1y ZWFkbm93ICAgICAgICAgIEZ1bGx5IHJlYWQgc3ltYm9sIGZpbGVzIG9uIGZpcnN0IGFjY2Vzcy5c blwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L21haW4uYwogICAgLS13cml0ZSAgICAgICAgICAgIFNldCB3cml0aW5nIGludG8gZXhlY3V0YWJs ZSBhbmQgY29yZSBmaWxlcy5cblxuXAogICIpLCBzdHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJl ZCAoXygiXAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zeW1maWxlLmMKK0lu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zeW1maWxlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zeW1maWxlLmMJMjAxMy0wOC0wMiAxNjox Mjo1NC45NzUwODU5NDkgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3lt ZmlsZS5jCTIwMTMtMDgtMDIgMTY6MjA6MjEuMTY1Njg3ODg4ICswMjAwCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9zeW1maWxlLmMJMjAxNC0wMS0yNyAyMjo0Mjo1My4xNTQ1NzM2 MDcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zeW1maWxlLmMJMjAxNC0wMS0y NyAyMjo0Mjo1Ni42OTY1NzYzMjAgKzAxMDAKIEBAIC04Miw2ICs4Miw3IEBAIHN0YXRpYyB2b2lk IGNsZWFyX3N5bXRhYl91c2Vyc19jbGVhbnVwICgKICAKICAvKiBHbG9iYWwgdmFyaWFibGVzIG93 bmVkIGJ5IHRoaXMgZmlsZS4gICovCkBAIC02MCwzNCArNjAsMzIgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9zeW1maWxlLmMKICAKICAvKiBGdW5jdGlvbnMgdGhpcyBmaWxl IGRlZmluZXMuICAqLwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2Fy ZjJyZWFkLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kd2FyZjJyZWFkLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAxMy0wOC0wMiAxNjoxMjo1NC45NzkwODU5NTQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5jCTIwMTMtMDgtMDIgMTY6MjA6MzcuMTkwNzA5Njg5 ICswMjAwCi1AQCAtNjksNiArNjksNyBAQAotICNpbmNsdWRlICJmLWxhbmcuaCIKKy0tLSBnZGIt Ny42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE0LTAxLTI3IDIyOjQyOjU2 LjcwMDU3NjMyMyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2R3YXJmMnJlYWQu YwkyMDE0LTAxLTI3IDIyOjQ0OjIxLjkxNTY0MTU2MCArMDEwMAorQEAgLTcwLDYgKzcwLDcgQEAK ICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2luY2x1ZGUgImZpbGVzdHVmZi5oIgorICNpbmNsdWRl ICJidWlsZC1pZC5oIgogKyNpbmNsdWRlICJ0b3AuaCIKICAKICAjaW5jbHVkZSA8ZmNudGwuaD4K LSAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTE4MzQsOCArMTgzNSw5IEBAIGR3YXJmMl9o YXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitA QCAtMTk3NSw3ICsxOTc2LDggQEAgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgbmFtZXMpOwogICAg ICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+b2JqZmlsZSA9IG9iamZpbGU7CiAgICAgIH0KLS0gIHJl dHVybiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5pbmZvLmFzZWN0aW9uICE9IE5VTEwKLS0JICAmJiBk d2FyZjJfcGVyX29iamZpbGUtPmFiYnJldi5hc2VjdGlvbiAhPSBOVUxMKTsKLSsgIHJldHVybiAo ISByZWFkbmV2ZXJfc3ltYm9sX2ZpbGVzCi0rCSAgJiYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+aW5m by5hc2VjdGlvbiAhPSBOVUxMCi0rCSAgICAgICYmIGR3YXJmMl9wZXJfb2JqZmlsZS0+YWJicmV2 LmFzZWN0aW9uICE9IE5VTEwpKTsKLSB9Ci0gCi0gLyogV2hlbiBsb2FkaW5nIHNlY3Rpb25zLCB3 ZSBsb29rIGVpdGhlciBmb3IgdW5jb21wcmVzc2VkIHNlY3Rpb24gb3IgZm9yCi1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RvcC5oCistICByZXR1cm4gKCFkd2FyZjJfcGVyX29i amZpbGUtPmluZm8uaXNfdmlydHVhbAorKyAgcmV0dXJuICFyZWFkbmV2ZXJfc3ltYm9sX2ZpbGVz ICYmCisrCSAoIWR3YXJmMl9wZXJfb2JqZmlsZS0+aW5mby5pc192aXJ0dWFsCisgCSAgJiYgZHdh cmYyX3Blcl9vYmpmaWxlLT5pbmZvLnMuYXNlY3Rpb24gIT0gTlVMTAorIAkgICYmICFkd2FyZjJf cGVyX29iamZpbGUtPmFiYnJldi5pc192aXJ0dWFsCisgCSAgJiYgZHdhcmYyX3Blcl9vYmpmaWxl LT5hYmJyZXYucy5hc2VjdGlvbiAhPSBOVUxMKTsKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi90b3AuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcv Z2RiL3RvcC5oCTIwMTMtMDgtMDIgMTY6MTI6NTQuOTgwMDg1OTU2ICswMjAwCi0rKysgZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3RvcC5oCTIwMTMtMDgtMDIgMTY6MjA6MjEuMTY5Njg3ODkz ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90b3AuaAkyMDE0LTAxLTI3 IDIyOjQyOjUzLjE1OTU3MzYxMCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rv cC5oCTIwMTQtMDEtMjcgMjI6NDI6NTYuNzAxNTc2MzI0ICswMTAwCiBAQCAtNTksNiArNTksNyBA QCBleHRlcm4gdm9pZCBzZXRfcHJvbXB0IChjb25zdCBjaGFyICpzKTsKICAKICAvKiBGcm9tIHJh bmRvbSBwbGFjZXMuICAqLwoKZGlmZiAtLWdpdCBhL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcu cGF0Y2ggYi9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCmluZGV4IGM2YThjYmMuLmYz OGMwYmYgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcucGF0Y2gKKysrIGIv Z2RiLTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5wYXRjaApAQCAtMSwyNSArMSwyNSBAQAotSW5kZXg6 IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNS45MS4yMDEzMDMyMy5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFj CTIwMTMtMDMtMTEgMDk6NTk6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuNS45MS4yMDEz MDMyMy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDEzLTAzLTIzIDE5OjQ3OjI0LjE4OTY4 MzU1NSArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGVzdHN1aXRlL2Nv bmZpZ3VyZS5hYwkyMDE0LTAxLTI3IDIyOjQxOjE5LjI4MTUwMTY4OCArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAxNC0wMS0yNyAyMjo0 MTozOS43MzY1MTczNjAgKzAxMDAKIEBAIC05Niw2ICs5Niw2IEBAIEFDX09VVFBVVChbTWFrZWZp bGUgXAogICAgZ2RiLmhwL2dkYi5hQ0MvTWFrZWZpbGUgZ2RiLmhwL2dkYi5jb21wYXQvTWFrZWZp bGUgXAogICAgZ2RiLmhwL2dkYi5kZWZlY3RzL01ha2VmaWxlIGdkYi5saW5lc3BlYy9NYWtlZmls ZSBcCiAgICBnZGIubWkvTWFrZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01h a2VmaWxlIFwKIC0gIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9w dC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIFwKICsgIGdkYi5vYmpjL01ha2VmaWxlIGdk Yi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdk Yi5waWUvTWFrZWZpbGUgXAotICAgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtl ZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgXAorICAgZ2RiLnBlcmYvTWFrZWZpbGUgZ2RiLnB5dGhv bi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgXAogICAg Z2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGVd KQotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKK0lu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNS45MS4yMDEzMDMyMy5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJl CTIwMTMtMDMtMTEgMDk6NTk6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuNS45MS4yMDEz MDMyMy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDEzLTAzLTIzIDE5OjQ3OjQ3LjI1NjgyMjMx MiArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZp Z3VyZQkyMDE0LTAxLTI3IDIyOjQxOjE5LjI4MzUwMTY4OSArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAxNC0wMS0yNyAyMjo0MTo0OS45MzM1 MjUxNzIgKzAxMDAKIEBAIC0zNDQ4LDcgKzM0NDgsNyBAQCBkb25lCiAgCiAgCiAgCi0tYWNfY29u ZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2Ri LmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuYnRy YWNlL01ha2VmaWxlIGdkYi5jZWxsL01ha2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNt L01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLmdv L01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLmhwL01h a2VmaWxlIGdkYi5ocC9nZGIub2JqZGJnL01ha2VmaWxlIGdkYi5ocC9nZGIuYmFzZS1ocC9NYWtl ZmlsZSBnZGIuaHAvZ2RiLmFDQy9NYWtlZmlsZSBnZGIuaHAvZ2RiLmNvbXBhdC9NYWtlZmlsZSBn ZGIuaHAvZ2RiLmRlZmVjdHMvTWFrZWZpbGUgZ2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5taS9N YWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMv TWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwv TWFrZWZpbGUgZ2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3Rh YnMvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54 bWwvTWFrZWZpbGUiCi0rYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxl IGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIu YmFzZS9NYWtlZmlsZSBnZGIuYnRyYWNlL01ha2VmaWxlIGdkYi5jZWxsL01ha2VmaWxlIGdkYi5j cC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZv cnRyYW4vTWFrZWZpbGUgZ2RiLmdvL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmph dmEvTWFrZWZpbGUgZ2RiLmhwL01ha2VmaWxlIGdkYi5ocC9nZGIub2JqZGJnL01ha2VmaWxlIGdk Yi5ocC9nZGIuYmFzZS1ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmFDQy9NYWtlZmlsZSBnZGIuaHAv Z2RiLmNvbXBhdC9NYWtlZmlsZSBnZGIuaHAvZ2RiLmRlZmVjdHMvTWFrZWZpbGUgZ2RiLmxpbmVz cGVjL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIubXVs dGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmlsZSBnZGIub3B0 L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmlsZSBnZGIucHl0aG9u L01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhy ZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKKy1hY19j b25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBn ZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5i dHJhY2UvTWFrZWZpbGUgZ2RiLmNlbGwvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5kaXNh c20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIu Z28vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIuaHAv TWFrZWZpbGUgZ2RiLmhwL2dkYi5vYmpkYmcvTWFrZWZpbGUgZ2RiLmhwL2dkYi5iYXNlLWhwL01h a2VmaWxlIGdkYi5ocC9nZGIuYUNDL01ha2VmaWxlIGdkYi5ocC9nZGIuY29tcGF0L01ha2VmaWxl IGdkYi5ocC9nZGIuZGVmZWN0cy9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgZ2RiLm1p L01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2Jq Yy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2Nh bC9NYWtlZmlsZSBnZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZl cnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIu dHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKKythY19jb25maWdfZmlsZXM9IiRhY19j b25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBn ZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5idHJhY2UvTWFrZWZpbGUgZ2Ri LmNlbGwvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3 YXJmMi9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtlZmlsZSBnZGIuZ28vTWFrZWZpbGUgZ2RiLnNl cnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIuaHAvTWFrZWZpbGUgZ2RiLmhwL2dk Yi5vYmpkYmcvTWFrZWZpbGUgZ2RiLmhwL2dkYi5iYXNlLWhwL01ha2VmaWxlIGdkYi5ocC9nZGIu YUNDL01ha2VmaWxlIGdkYi5ocC9nZGIuY29tcGF0L01ha2VmaWxlIGdkYi5ocC9nZGIuZGVmZWN0 cy9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1 bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3Bl bmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGll L01ha2VmaWxlIGdkYi5wZXJmL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVy c2UvTWFrZWZpbGUgZ2RiLnN0YWJzL01ha2VmaWxlIGdkYi50aHJlYWRzL01ha2VmaWxlIGdkYi50 cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlIgogIAogIGNhdCA+Y29uZmNhY2hlIDw8XF9B Q0VPRgogICMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2FjaGVzIHRoZSByZXN1 bHRzIG9mIGNvbmZpZ3VyZQpAQCAtMjgsMTMgKzI4LDEzIEBAIEluZGV4OiBnZGItNy41LjkxLjIw MTMwMzIzL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCiAgICAgICJnZGIub3B0L01ha2VmaWxlIikg Q09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZpbGUiIDs7CiAgICAgICJn ZGIucGFzY2FsL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5wYXNj YWwvTWFrZWZpbGUiIDs7CiArICAgICJnZGIucGllL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk Q09ORklHX0ZJTEVTIGdkYi5waWUvTWFrZWZpbGUiIDs7CisgICAgICJnZGIucGVyZi9NYWtlZmls ZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIucGVyZi9NYWtlZmlsZSIgOzsKICAg ICAgImdkYi5weXRob24vTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2Ri LnB5dGhvbi9NYWtlZmlsZSIgOzsKICAgICAgImdkYi5yZXZlcnNlL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5yZXZlcnNlL01ha2VmaWxlIiA7OwotICAgICAiZ2Ri LnN0YWJzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5zdGFicy9N YWtlZmlsZSIgOzsKLUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2Ri LnBpZS9hdHRhY2guYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2F0dGFjaC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxMy0wMy0yMyAxOTo0NzoyNC4xOTE2ODM0NjYgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwky MDE0LTAxLTI3IDIyOjQxOjE5LjI4NDUwMTY5MCArMDEwMAogQEAgLTAsMCArMSwyMCBAQAogKy8q IFRoaXMgcHJvZ3JhbSBpcyBpbnRlbmRlZCB0byBiZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBh bmQgdGhlbgogKyAgIGF0dGFjaGVkIHRvIGJ5IGdkYi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBp biBhIGxvb3AuICBUaGUgbG9vcApAQCAtNTYsMTAgKzU2LDEwIEBAIEluZGV4OiBnZGItNy41Ljkx LjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwogKyAgICB9CiArICByZXR1 cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2dkYi5w aWUvYXR0YWNoMi5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dk Yi5waWUvYXR0YWNoMi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYXR0YWNoMi5jCTIwMTMtMDMtMjMgMTk6NDc6MjQuMTkyNjgzNDIxICswMTAw CisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoMi5j CTIwMTQtMDEtMjcgMjI6NDE6MTkuMjg0NTAxNjkwICswMTAwCiBAQCAtMCwwICsxLDI0IEBACiAr LyogVGhpcyBwcm9ncmFtIGlzIGludGVuZGVkIHRvIGJlIHN0YXJ0ZWQgb3V0c2lkZSBvZiBnZGIs IGFuZCB0aGVuCiArICAgYXR0YWNoZWQgdG8gYnkgZ2RiLiAgVGh1cywgaXQgc2ltcGx5IHNwaW5z IGluIGEgbG9vcC4gIFRoZSBsb29wCkBAIC04NSwxMCArODUsMTAgQEAgSW5kZXg6IGdkYi03LjUu OTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwogKyAgICB9CiArICBy ZXR1cm4gKDApOwogK30KLUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9icmVhay5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRl L2dkYi5waWUvYnJlYWsuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGllL2JyZWFrLmMJMjAxMy0wMy0yMyAxOTo0NzoyNC4xOTI2ODM0MjEgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCTIw MTQtMDEtMjcgMjI6NDE6MTkuMjg0NTAxNjkwICswMTAwCiBAQCAtMCwwICsxLDE0NiBAQAogKy8q IFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0y MzYsMTAgKzIzNiwxMCBAQCBJbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRl L2dkYi5waWUvYnJlYWsuYwogKyAgICB9CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcu NS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCTIwMTMt MDMtMjMgMTk6NDc6MjQuMTkyNjgzNDIxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMJMjAxNC0wMS0yNyAyMjo0MToxOS4yODQ1MDE2 OTAgKzAxMDAKIEBAIC0wLDAgKzEsNDQgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjg1LDEwICsyODUsMTAgQEAgSW5kZXg6IGdk Yi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCiArdm9pZCBt YXJrZXIzIChhLCBiKSBjaGFyICphLCAqYjsge30JLyogc2V0IGJyZWFrcG9pbnQgMTggaGVyZSAq LwogK3ZvaWQgbWFya2VyNCAoZCkgbG9uZyBkOyB7fQkJLyogc2V0IGJyZWFrcG9pbnQgMTMgaGVy ZSAqLwogKyNlbmRpZgotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGllL2NvcmVtYWtlci5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvY29yZW1ha2VyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy41LjkxLjIwMTMwMzIzL2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwkyMDEzLTAzLTIzIDE5OjQ3OjI0LjE5MjY4 MzQyMSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGll L2NvcmVtYWtlci5jCTIwMTQtMDEtMjcgMjI6NDE6MTkuMjg0NTAxNjkwICswMTAwCiBAQCAtMCww ICsxLDE0MiBAQAogKy8qIENvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAx OTk5CiArICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC00MzIsMTAgKzQzMiwx MCBAQCBJbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29y ZW1ha2VyLmMKICsgIHJldHVybiAwOwogK30KICsKLUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIz L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjUu OTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAJMjAxMy0wMy0yMyAx OTo0NzoyNC4xOTM2ODMzNzcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhwCTIwMTQtMDEtMjcgMjI6NDE6MTkuMjg1NTAxNjkxICsw MTAwCiBAQCAtMCwwICsxLDQxNyBAQAogKyMgICBDb3B5cmlnaHQgMTk5NywgMTk5OSwgMjAwMiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTg1NCwxMCArODU0LDEwIEBAIElu ZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guZXhw CiArZG9fY2FsbF9hdHRhY2hfdGVzdHMKICsKICtyZXR1cm4gMAotSW5kZXg6IGdkYi03LjUuOTEu MjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAorSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQog LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjUuOTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAkyMDEzLTAz LTIzIDE5OjQ3OjI0LjE5NDY4MzMzMiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAkyMDE0LTAxLTI3IDIyOjQxOjE5LjI4NjUwMTY5 MSArMDEwMAogQEAgLTAsMCArMSw5NjIgQEAKICsjICAgQ29weXJpZ2h0IDE5ODgsIDE5OTAsIDE5 OTEsIDE5OTIsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCiArIyAgIDIwMDAs IDIwMDIsIDIwMDMsIDIwMDQKQEAgLTE4MjEsMTAgKzE4MjEsMTAgQEAgSW5kZXg6IGdkYi03LjUu OTEuMjAxMzAzMjMvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmV4cAogKyAgICBzZW5kX2dk YiAic2V0IGFyZ3MgbWFpblxuIgogKyAgICBnZGJfZXhwZWN0IC1yZSAiLiokZ2RiX3Byb21wdCAk IiB7fQogK30KLUluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBp ZS9jb3JlZmlsZS5leHAKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlZmlsZS5leHAJMjAxMy0wMy0yMyAxOTo0NzoyNC4xOTQ2ODMz MzIgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9j b3JlZmlsZS5leHAJMjAxNC0wMS0yNyAyMjo0MToxOS4yODY1MDE2OTEgKzAxMDAKIEBAIC0wLDAg KzEsMjMzIEBACiArIyBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5 NywgMTk5OCwgMTk5OSwgMjAwMAogKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBA IC0yMDU5LDEwICsyMDU5LDEwIEBAIEluZGV4OiBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9jb3JlZmlsZS5leHAKICtnZGJfdGVzdCAidXAiICIjXFswLTlcXSogKlxb MC05eGEtZkgnXF0qIGluIC4qIFxcKC4qXFwpLioiICJ1cCBpbiBjb3JlZmlsZS5leHAgKHJlaW5p dCkiCiArCiArZ2RiX3Rlc3QgImNvcmUiICJObyBjb3JlIGZpbGUgbm93LiIKLUluZGV4OiBnZGIt Ny41LjkxLjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgorSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZp bGUuaW4JMjAxMy0wMy0yMyAxOTo0NzoyNC4xOTQ2ODMzMzIgKzAxMDAKKysrKyBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgkyMDE0LTAxLTI3IDIy OjQxOjE5LjI4NjUwMTY5MSArMDEwMAogQEAgLTAsMCArMSwxOSBAQAogK1ZQQVRIID0gQHNyY2Rp ckAKICtzcmNkaXIgPSBAc3JjZGlyQAoKZGlmZiAtLWdpdCBhL2dkYi02LjMtdGVzdC1zZWxmLTIw MDUwMTEwLnBhdGNoIGIvZ2RiLTYuMy10ZXN0LXNlbGYtMjAwNTAxMTAucGF0Y2gKaW5kZXggM2E1 NzQ1Yi4uMjA3M2FmMiAxMDA2NDQKLS0tIGEvZ2RiLTYuMy10ZXN0LXNlbGYtMjAwNTAxMTAucGF0 Y2gKKysrIGIvZ2RiLTYuMy10ZXN0LXNlbGYtMjAwNTAxMTAucGF0Y2gKQEAgLTYsMjAgKzYsMjAg QEAKICAgICAgICAgKiBnZGIuZ2RiL3hmdWxscGF0aC5leHA6IERpdHRvLgogICAgICAgICAqIGdk Yi5nZGIvb2JzZXJ2ZXIuZXhwOiBEaXR0by4KIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi90ZXN0c3VpdGUvbGliL3NlbGZ0ZXN0LXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2xpYi9zZWxmdGVzdC1zdXBwb3J0LmV4cAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9s aWIvc2VsZnRlc3Qtc3VwcG9ydC5leHAJMjAxMy0wOC0wMiAxNjoxMToyOS4xOTU5NzE5MjIgKzAy MDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2xpYi9zZWxmdGVz dC1zdXBwb3J0LmV4cAkyMDEzLTA4LTAyIDE2OjEyOjIwLjQwNDA0MDM3OCArMDIwMAotQEAgLTEz MCwxOCArMTMwLDE4IEBAIHByb2MgZG9fc2VsZl90ZXN0cyB7ZnVuY3Rpb24gYm9keX0gewotICAg ICBzZXQgR0RCX0ZVTExQQVRIIFtmaW5kX2dkYiAkR0RCXQorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9zZWxmdGVzdC1zdXBwb3J0LmV4cAkyMDE0LTAxLTI3 IDIyOjQyOjA0LjAyMjUzNTk2NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rl c3RzdWl0ZS9saWIvc2VsZnRlc3Qtc3VwcG9ydC5leHAJMjAxNC0wMS0yNyAyMjo0Mjo0Mi42MzA1 NjU2NzUgKzAxMDAKK0BAIC0xMzYsMTggKzEzNiwxOCBAQCBwcm9jIGRvX3NlbGZfdGVzdHMge2Z1 bmN0aW9uIGJvZHl9IHsKKyAgICAgfQogIAogICAgICAjIFJlbW92ZSBhbnkgb2xkIGNvcHkgbHlp bmcgYXJvdW5kLgotLSAgICByZW1vdGVfZmlsZSBob3N0IGRlbGV0ZSB4JHRvb2wKLSsgICAgI3Jl bW90ZV9maWxlIGhvc3QgZGVsZXRlIHgkdG9vbAorLSAgICByZW1vdGVfZmlsZSBob3N0IGRlbGV0 ZSAkeGdkYgorKyAgICAjcmVtb3RlX2ZpbGUgaG9zdCBkZWxldGUgJHhnZGIKICAKICAgICAgZ2Ri X3N0YXJ0Ci0tICAgIHNldCBmaWxlIFtyZW1vdGVfZG93bmxvYWQgaG9zdCAkR0RCX0ZVTExQQVRI IHgkdG9vbF0KLSsgICAgI3NldCBmaWxlIFtyZW1vdGVfZG93bmxvYWQgaG9zdCAkR0RCX0ZVTExQ QVRIIHgkdG9vbF0KKy0gICAgc2V0IGZpbGUgW3JlbW90ZV9kb3dubG9hZCBob3N0ICRHREJfRlVM TFBBVEggJHhnZGJdCisrICAgICNzZXQgZmlsZSBbcmVtb3RlX2Rvd25sb2FkIGhvc3QgJEdEQl9G VUxMUEFUSCAkeGdkYl0KICAKIC0gICAgc2V0IHJlc3VsdCBbc2VsZnRlc3Rfc2V0dXAgJGZpbGUg JGZ1bmN0aW9uXQogKyAgICBzZXQgcmVzdWx0IFtzZWxmdGVzdF9zZXR1cCAkR0RCX0ZVTExQQVRI ICRmdW5jdGlvbl0KCmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MjE2NzExLWNsb25lLWlzLW91dGVy bW9zdC5wYXRjaCBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJtb3N0LnBhdGNoCmlu ZGV4IDQxYTg4N2EuLjlmYjIzZWQgMTAwNjQ0Ci0tLSBhL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUt aXMtb3V0ZXJtb3N0LnBhdGNoCisrKyBiL2dkYi02LjUtYnoyMTY3MTEtY2xvbmUtaXMtb3V0ZXJt b3N0LnBhdGNoCkBAIC0yMywxMSArMjMsMTEgQEAgaW5zdGVhZC4KIAogCVBvcnQgdG8gR0RCLTYu Ny4KIAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwor SW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvYW1kNjQtbGludXgtdGRlcC5j CTIwMTItMDYtMTMgMjI6MzY6NDguMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEy MDcwMy9nZGIvYW1kNjQtbGludXgtdGRlcC5jCTIwMTItMDctMDMgMTc6MzI6NDYuNTQ3NTYzMzYz ICswMjAwCi1AQCAtMjcxLDYgKzI3MSw4MCBAQCBhbWQ2NF9saW51eF9yZWdpc3Rlcl9yZWdncm91 cF9wIChzdHJ1Y3QKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FtZDY0LWxpbnV4 LXRkZXAuYwkyMDE0LTAyLTA0IDIzOjQwOjA2LjI2MzQ4MzQ2OSArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2FtZDY0LWxpbnV4LXRkZXAuYwkyMDE0LTAyLTA0IDIzOjQ3OjE4LjQz ODAwOTI5MCArMDEwMAorQEAgLTI4OSw2ICsyODksODAgQEAgYW1kNjRfbGludXhfcmVnaXN0ZXJf cmVnZ3JvdXBfcCAoc3RydWN0CiAgCiAgLyogU2V0IHRoZSBwcm9ncmFtIGNvdW50ZXIgZm9yIHBy b2Nlc3MgUFRJRCB0byBQQy4gICovCiAgCkBAIC0xMDgsMjAgKzEwOCwyMCBAQCBJbmRleDogZ2Ri LTcuNC41MC4yMDEyMDcwMy9nZGIvYW1kNjQtbGludXgtdGRlcC5jCiAgc3RhdGljIHZvaWQKICBh bWQ2NF9saW51eF93cml0ZV9wYyAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgQ09SRV9BRERS IHBjKQogIHsKLUBAIC0xNTQ3LDYgKzE2MjEsOCBAQCBhbWQ2NF9saW51eF9pbml0X2FiaSAoc3Ry dWN0IGdkYmFyY2hfaW5mCitAQCAtMTYwNyw2ICsxNjgxLDggQEAgYW1kNjRfbGludXhfaW5pdF9h YmlfY29tbW9uKHN0cnVjdCBnZGJhcgogIAotICAgYW1kNjRfbGludXhfaW5pdF9hYmlfY29tbW9u IChpbmZvLCBnZGJhcmNoKTsKKyAgIHRkZXAtPnhzYXZlX3hjcjBfb2Zmc2V0ID0gSTM4Nl9MSU5V WF9YU0FWRV9YQ1IwX09GRlNFVDsKICAKICsgIHRkZXAtPm91dGVybW9zdF9mcmFtZV9wID0gYW1k NjRfbGludXhfb3V0ZXJtb3N0X2ZyYW1lOwogKwotICAgLyogR05VL0xpbnV4IHVzZXMgU1ZSNC1z dHlsZSBzaGFyZWQgbGlicmFyaWVzLiAgKi8KLSAgIHNldF9zb2xpYl9zdnI0X2ZldGNoX2xpbmtf bWFwX29mZnNldHMKLSAgICAgKGdkYmFyY2gsIHN2cjRfbHA2NF9mZXRjaF9saW5rX21hcF9vZmZz ZXRzKTsKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9hbWQ2NC10ZGVwLmMKKyAgIC8q IEFkZCB0aGUgJW9yaWdfcmF4IHJlZ2lzdGVyIHVzZWQgZm9yIHN5c2NhbGwgcmVzdGFydGluZy4g ICovCisgICBzZXRfZ2RiYXJjaF93cml0ZV9wYyAoZ2RiYXJjaCwgYW1kNjRfbGludXhfd3JpdGVf cGMpOworIAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIw MTItMDYtMTYgMTc6MjA6MjIuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcw My9nZGIvYW1kNjQtdGRlcC5jCTIwMTItMDctMDMgMTc6MzI6MTIuMzM1NjA0NDE1ICswMjAwCi1A QCAtMjMyNCw2ICsyMzI0LDcgQEAgYW1kNjRfZnJhbWVfdW53aW5kX3N0b3BfcmVhc29uIChzdHJ1 Y3QgZgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTQt MDItMDQgMjM6NDA6MDYuMjY1NDgzNDcxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvYW1kNjQtdGRlcC5jCTIwMTQtMDItMDQgMjM6NDU6NDAuODQ2ODkxNjUzICswMTAwCitAQCAt MjM1OSw2ICsyMzU5LDcgQEAgYW1kNjRfZnJhbWVfdW53aW5kX3N0b3BfcmVhc29uIChzdHJ1Y3Qg ZgogIHsKICAgIHN0cnVjdCBhbWQ2NF9mcmFtZV9jYWNoZSAqY2FjaGUgPQogICAgICBhbWQ2NF9m cmFtZV9jYWNoZSAodGhpc19mcmFtZSwgdGhpc19jYWNoZSk7CkBAIC0xMjksNyArMTI5LDcgQEAg SW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2FtZDY0LXRkZXAuYwogIAogICAgaWYgKCFj YWNoZS0+YmFzZV9wKQogICAgICByZXR1cm4gVU5XSU5EX1VOQVZBSUxBQkxFOwotQEAgLTIzMzIs NiArMjMzMywxMCBAQCBhbWQ2NF9mcmFtZV91bndpbmRfc3RvcF9yZWFzb24gKHN0cnVjdCBmCitA QCAtMjM2Nyw2ICsyMzY4LDEwIEBAIGFtZDY0X2ZyYW1lX3Vud2luZF9zdG9wX3JlYXNvbiAoc3Ry dWN0IGYKICAgIGlmIChjYWNoZS0+YmFzZSA9PSAwKQogICAgICByZXR1cm4gVU5XSU5EX09VVEVS TU9TVDsKICAKQEAgLTE0MCwzMCArMTQwLDMxIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAz L2dkYi9hbWQ2NC10ZGVwLmMKICAgIHJldHVybiBVTldJTkRfTk9fUkVBU09OOwogIH0KICAKLUBA IC0yMzQxLDYgKzIzNDYsNyBAQCBhbWQ2NF9mcmFtZV90aGlzX2lkIChzdHJ1Y3QgZnJhbWVfaW5m byAqCitAQCAtMjQ5OCw2ICsyNTAzLDcgQEAgYW1kNjRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCAo c3RydWN0IGZyYQogIHsKICAgIHN0cnVjdCBhbWQ2NF9mcmFtZV9jYWNoZSAqY2FjaGUgPQotICAg ICBhbWQ2NF9mcmFtZV9jYWNoZSAodGhpc19mcmFtZSwgdGhpc19jYWNoZSk7CisgICAgIGFtZDY0 X3NpZ3RyYW1wX2ZyYW1lX2NhY2hlICh0aGlzX2ZyYW1lLCB0aGlzX2NhY2hlKTsKICsgIHN0cnVj dCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdldF9mcmFtZV9hcmNoICh0aGlz X2ZyYW1lKSk7CiAgCiAgICBpZiAoIWNhY2hlLT5iYXNlX3ApCi0gICAgIHJldHVybjsKLUBAIC0y MzQ5LDYgKzIzNTUsMTAgQEAgYW1kNjRfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYW1lX2luZm8g KgotICAgaWYgKGNhY2hlLT5iYXNlID09IDApCi0gICAgIHJldHVybjsKLSAKLSsgIC8qIERldGVj dCBPUyBkZXBlbmRlbnQgb3V0ZXJtb3N0IGZyYW1lczsgc3VjaCBhcyBgY2xvbmUnLiAgKi8KLSsg IGlmICh0ZGVwLT5vdXRlcm1vc3RfZnJhbWVfcCAmJiB0ZGVwLT5vdXRlcm1vc3RfZnJhbWVfcCAo dGhpc19mcmFtZSkpCi0rICAgIHJldHVybjsKLSsKLSAgICgqdGhpc19pZCkgPSBmcmFtZV9pZF9i dWlsZCAoY2FjaGUtPmJhc2UgKyAxNiwgY2FjaGUtPnBjKTsKKyAgICAgKCp0aGlzX2lkKSA9IGZy YW1lX2lkX2J1aWxkX3VuYXZhaWxhYmxlX3N0YWNrIChnZXRfZnJhbWVfcGMgKHRoaXNfZnJhbWUp KTsKK0BAIC0yNTA2LDYgKzI1MTIsMTEgQEAgYW1kNjRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCAo c3RydWN0IGZyYQorICAgICAgIC8qIFRoaXMgbWFya3MgdGhlIG91dGVybW9zdCBmcmFtZS4gICov CisgICAgICAgcmV0dXJuOworICAgICB9CisrICBlbHNlIGlmICh0ZGVwLT5vdXRlcm1vc3RfZnJh bWVfcCAmJiB0ZGVwLT5vdXRlcm1vc3RfZnJhbWVfcCAodGhpc19mcmFtZSkpCisrICAgIHsKKysg ICAgICAvKiBEZXRlY3QgT1MgZGVwZW5kZW50IG91dGVybW9zdCBmcmFtZXM7IHN1Y2ggYXMgYGNs b25lJy4gICovCisrICAgICAgcmV0dXJuOworKyAgICB9CisgICBlbHNlCisgICAgICgqdGhpc19p ZCkgPSBmcmFtZV9pZF9idWlsZCAoY2FjaGUtPmJhc2UgKyAxNiwgZ2V0X2ZyYW1lX3BjICh0aGlz X2ZyYW1lKSk7CiAgfQotIAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2kzODYtdGRl cC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4Ni10ZGVwLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTItMDYt MTggMTk6MzE6MzQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIv aTM4Ni10ZGVwLmMJMjAxMi0wNy0wMyAxNzozMjoxMi4zMzk2MDQ0MDkgKzAyMDAKLUBAIC03NjU1 LDYgKzc2NTUsOSBAQCBpMzg2X2dkYmFyY2hfaW5pdCAoc3RydWN0IGdkYmFyY2hfaW5mbyBpCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE0LTAyLTA0IDIz OjQwOjA2LjI2NzQ4MzQ3MyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2kzODYt dGRlcC5jCTIwMTQtMDItMDQgMjM6NDM6MzMuMDQ4NzM0OTc0ICswMTAwCitAQCAtNzgzMCw2ICs3 ODMwLDkgQEAgaTM4Nl9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQogIAogICAg dGRlcC0+eHNhdmVfeGNyMF9vZmZzZXQgPSAtMTsKICAKQEAgLTE3MywxMSArMTc0LDExIEBAIElu ZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9pMzg2LXRkZXAuYwogICAgdGRlcC0+cmVjb3Jk X3JlZ21hcCA9IGkzODZfcmVjb3JkX3JlZ21hcDsKICAKICAgIHNldF9nZGJhcmNoX2xvbmdfbG9u Z19hbGlnbl9iaXQgKGdkYmFyY2gsIDMyKTsKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dk Yi9pMzg2LXRkZXAuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2kzODYtdGRlcC5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9pMzg2LXRkZXAu aAkyMDEyLTA2LTEzIDIyOjI5OjE1LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAx MjA3MDMvZ2RiL2kzODYtdGRlcC5oCTIwMTItMDctMDMgMTc6MzI6MTIuMzQwNjA0NDA4ICswMjAw Ci1AQCAtMjE5LDYgKzIxOSw5IEBAIHN0cnVjdCBnZGJhcmNoX3RkZXAKKy0tLSBnZGItNy42Ljkw LjIwMTQwMTI3Lm9yaWcvZ2RiL2kzODYtdGRlcC5oCTIwMTQtMDItMDQgMjM6NDA6MDYuMjY4NDgz NDc1ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4Ni10ZGVwLmgJMjAxNC0w Mi0wNCAyMzo0MzozMy4wNDg3MzQ5NzQgKzAxMDAKK0BAIC0xOTIsNiArMTkyLDkgQEAgc3RydWN0 IGdkYmFyY2hfdGRlcAogICAgaW50ICgqaTM4Nl9zeXNlbnRlcl9yZWNvcmQpIChzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlKTsKICAgIC8qIFBhcnNlIHN5c2NhbGwgYXJncy4gICovCiAgICBpbnQg KCppMzg2X3N5c2NhbGxfcmVjb3JkKSAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSk7CkBAIC0x ODcsMTAgKzE4OCwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvaTM4Ni10ZGVw LmgKICB9OwogIAogIC8qIEZsb2F0aW5nLXBvaW50IHJlZ2lzdGVycy4gICovCi1JbmRleDogZ2Ri LTcuNC41MC4yMDEyMDcwMy9nZGIvaWE2NC10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9pYTY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMu b3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxMi0wNy0wMyAxNzozMDowOS4wMDAwMDAwMDAgKzAyMDAK LSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9pYTY0LXRkZXAuYwkyMDEyLTA3LTAzIDE3OjMy OjEyLjM0MzYwNDQwNSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvaWE2 NC10ZGVwLmMJMjAxNC0wMi0wNCAyMzo0MDowNi4yNzA0ODM0NzcgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9pYTY0LXRkZXAuYwkyMDE0LTAyLTA0IDIzOjQzOjMzLjA0OTczNDk3 NSArMDEwMAogQEAgLTIxNzYsNiArMjE3NiwxMzggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmcmFt ZV91bndpbmQgaWE2NF9mcgogICAgZGVmYXVsdF9mcmFtZV9zbmlmZmVyCiAgfTsKQEAgLTMzMCw3 ICszMzEsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvaWE2NC10ZGVwLmMKICAv KiBTaWduYWwgdHJhbXBvbGluZXMuICAqLwogIAogIHN0YXRpYyB2b2lkCi1AQCAtNDE0Niw2ICs0 Mjc4LDcgQEAgaWE2NF9nZGJhcmNoX2luaXQgKHN0cnVjdCBnZGJhcmNoX2luZm8gaQorQEAgLTQw MjMsNiArNDE1NSw3IEBAIGlhNjRfZ2RiYXJjaF9pbml0IChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGkK ICAgIHNldF9nZGJhcmNoX2R1bW15X2lkIChnZGJhcmNoLCBpYTY0X2R1bW15X2lkKTsKICAKICAg IHNldF9nZGJhcmNoX3Vud2luZF9wYyAoZ2RiYXJjaCwgaWE2NF91bndpbmRfcGMpOwpAQCAtMzM4 LDEwICszMzksMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2lhNjQtdGRlcC5j CiAgI2lmZGVmIEhBVkVfTElCVU5XSU5EX0lBNjRfSAogICAgZnJhbWVfdW53aW5kX2FwcGVuZF91 bndpbmRlciAoZ2RiYXJjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpYTY0 X2xpYnVud2luZF9zaWd0cmFtcF9mcmFtZV91bndpbmQpOwotSW5kZXg6IGdkYi03LjQuNTAuMjAx MjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmMKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYnQtY2xvbmUtc3Rv cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2dkYi50aHJl YWRzL2J0LWNsb25lLXN0b3AuYwkyMDEyLTA3LTAzIDE3OjMyOjEyLjM0NDYwNDQwNCArMDIwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9u ZS1zdG9wLmMJMjAxNC0wMi0wNCAyMzo0MzozMy4wNTA3MzQ5NzYgKzAxMDAKIEBAIC0wLDAgKzEs MzkgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgogKwpAQCAtMzgyLDEwICszODMsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2Ri L3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmMKICsJZm9yICg7OykKICsJCXBh dXNlKCk7CiArfQotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIu dGhyZWFkcy9idC1jbG9uZS1zdG9wLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmV4 cAkyMDEyLTA3LTAzIDE3OjMyOjEyLjM0NDYwNDQwNCArMDIwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9idC1jbG9uZS1zdG9wLmV4cAkyMDE0LTAy LTA0IDIzOjQzOjMzLjA1MDczNDk3NiArMDEwMAogQEAgLTAsMCArMSw2MSBAQAogKyMgQ29weXJp Z2h0IDIwMDYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCgpkaWZmIC0tZ2l0IGEv Z2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaCBiL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKaW5kZXggZGZkNWExZS4uZmZlMGI0MCAxMDA2NDQK LS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5wYXRjaAorKysgYi9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCkBAIC01OCwxMyArNTgsMTMgQEAg SHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTAtMDEvbXNnMDA1MTcuaHRt bAogCSogZXhlYy5jIChleGVjX2ZpbGVfYXR0YWNoKTogUHJpbnQgYSBtb3JlIHVzZWZ1bCBlcnJv ciBtZXNzYWdlIGlmIHRoZQogCXVzZXIgZGlkICJnZGIgY29yZSIuCiAKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhjZXB0aW9ucy5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvZXhjZXB0aW9ucy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMub3JpZy9nZGIvZXhjZXB0aW9ucy5oCTIwMTMtMDgtMDIgMTY6Mjk6NDQuNzcwNDQwMjYy ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4Y2VwdGlvbnMuaAkyMDEz LTA4LTAyIDE2OjMwOjA2LjE5NzQ2ODcyNyArMDIwMAotQEAgLTkwLDYgKzkwLDkgQEAgZW51bSBl cnJvcnMgewotICAgICAgYWJvcnRlZCBhcyB0aGUgaW5mZXJpb3Igc3RhdGUgaXMgbm8gbG9uZ2Vy IHZhbGlkLiAgKi8KLSAgIFRBUkdFVF9DTE9TRV9FUlJPUiwKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL2V4Y2VwdGlvbnMuaAkyMDE0LTAyLTA2IDE3OjMxOjAwLjE0ODUyOTczNiAr MDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2V4Y2VwdGlvbnMuaAkyMDE0LTAyLTA2 IDE3OjMxOjE3LjU2MDU0ODUyNSArMDEwMAorQEAgLTk3LDYgKzk3LDkgQEAgZW51bSBlcnJvcnMg eworICAgLyogQW4gdW5kZWZpbmVkIGNvbW1hbmQgd2FzIGV4ZWN1dGVkLiAgKi8KKyAgIFVOREVG SU5FRF9DT01NQU5EX0VSUk9SLAogIAogKyAgLyogQXR0ZW1wdCB0byBsb2FkIGEgY29yZSBmaWxl IGFzIGV4ZWN1dGFibGUuICAqLwogKyAgSVNfQ09SRV9FUlJPUiwKQEAgLTcyLDEwICs3MiwxMCBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4Y2VwdGlvbnMuaAogICAgLyog QWRkIG1vcmUgZXJyb3JzIGhlcmUuICAqLwogICAgTlJfRVJST1JTCiAgfTsKLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhlYy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3Jp Zy9nZGIvZXhlYy5jCTIwMTMtMDgtMDIgMTY6Mjk6NDQuNzcxNDQwMjY0ICswMjAwCi0rKysgZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4ZWMuYwkyMDEzLTA4LTAyIDE2OjMxOjMwLjEwMDYx ODY1NyArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZXhlYy5jCTIwMTQt MDItMDYgMTc6MzA6NTguMjY2NTI3NzA4ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvZXhlYy5jCTIwMTQtMDItMDYgMTc6MzE6MDAuMTQ5NTI5NzM3ICswMTAwCiBAQCAtMzQsNiAr MzQsNyBAQAogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgi CkBAIC04NCw3ICs4NCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhl Yy5jCiAgCiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5l LmgiCi1AQCAtMjE3LDEyICsyMTgsMjcgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmlsZW5h bWUsIGludCBmcgorQEAgLTIyOCwxMiArMjI5LDI3IEBAIGV4ZWNfZmlsZV9hdHRhY2ggKGNoYXIg KmZpbGVuYW1lLCBpbnQgZnIKICAKICAgICAgICBpZiAoIWJmZF9jaGVja19mb3JtYXRfbWF0Y2hl cyAoZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCiAgCXsKQEAgLTExNSwxMSArMTE1 LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhlYy5jCiAgCX0KICAK ICAgICAgICBpZiAoYnVpbGRfc2VjdGlvbl90YWJsZSAoZXhlY19iZmQsICZzZWN0aW9ucywgJnNl Y3Rpb25zX2VuZCkpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL21haW4uYwor SW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL21haW4uYwkyMDEzLTA4LTAyIDE2OjI5OjQ0 Ljc3MjQ0MDI2NSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tYWluLmMJ MjAxMy0wOC0wMiAxNjozMDowNi4xOTk0Njg3MzAgKzAyMDAKLUBAIC0zMDAsNiArMzAwLDM2IEBA IHR5cGVkZWYgc3RydWN0IGNtZGFyZyB7CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9tYWluLmMJMjAxNC0wMi0wNiAxNzozMDo1OC4yNjc1Mjc3MDkgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9tYWluLmMJMjAxNC0wMi0wNiAxNzozMjozMi4yMzI2MjkwNTIgKzAx MDAKK0BAIC0zMDcsNiArMzA3LDM2IEBAIHR5cGVkZWYgc3RydWN0IGNtZGFyZyB7CiAgLyogRGVm aW5lIHR5cGUgVkVDIChjbWRhcmdfcykuICAqLwogIERFRl9WRUNfTyAoY21kYXJnX3MpOwogIApA QCAtMTU2LDcgKzE1Niw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWFp bi5jCiAgc3RhdGljIGludAogIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgewotQEAgLTgx MCw2ICs4NDAsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTgyNCw2ICs4NTQs OCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAl7CiAgCSAgc3ltYXJnID0gYXJndltv cHRpbmRdOwogIAkgIGV4ZWNhcmcgPSBhcmd2W29wdGluZF07CkBAIC0xNjUsNyArMTY1LDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsK ICAJfQogIAotQEAgLTk3NSwxMSArMTAwNywyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRh KQorQEAgLTk4NywxMSArMTAxOSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogICAg ICAgICYmIHN5bWFyZyAhPSBOVUxMCiAgICAgICAgJiYgc3RyY21wIChleGVjYXJnLCBzeW1hcmcp ID09IDApCiAgICAgIHsKQEAgLTE5MSw2ICsxOTEsNiBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL21haW4uYwogKwkgYXMgYSBjb3JlIGZpbGUuICAqLwogKyAgICAgIGlmIChj YXRjaF9jb21tYW5kX2Vycm9ycyAoZnVuYywgZXhlY2FyZywgIWJhdGNoX2ZsYWcsIFJFVFVSTl9N QVNLX0FMTCkKICsJICAmJiBjb3JlX2JmZCA9PSBOVUxMKQotIAljYXRjaF9jb21tYW5kX2Vycm9y cyAoc3ltYm9sX2ZpbGVfYWRkX21haW4sIHN5bWFyZywKLSAJCQkgICAgICAhYmF0Y2hfZmxhZywg UkVUVVJOX01BU0tfQUxMKTsKKyAJY2F0Y2hfY29tbWFuZF9lcnJvcnNfY29uc3QgKHN5bWJvbF9m aWxlX2FkZF9tYWluLCBzeW1hcmcsCisgCQkJCSAgICAhYmF0Y2hfZmxhZywgUkVUVVJOX01BU0tf QUxMKTsKICAgICAgfQoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLWxp YnJwbS13b3JrYXJvdW5kLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBt LXdvcmthcm91bmQucGF0Y2gKaW5kZXggNjE3YmVmOS4uMzM3ODcxNyAxMDA2NDQKLS0tIGEvZ2Ri LTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gKKysrIGIvZ2Ri LTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0tbGlicnBtLXdvcmthcm91bmQucGF0Y2gKQEAgLTEsOCAr MSwyMCBAQAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL2VsZnJlYWQuYworSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Byb2Mtc2VydmljZS5saXN0CiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNC41MC4yMDEyMDYwMi5vcmlnL2dkYi9lbGZyZWFkLmMJMjAxMi0wNi0wMiAyMToz NTowOS42Njk1MTA3NTcgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNjAyL2dkYi9lbGZyZWFk LmMJMjAxMi0wNi0wMiAyMTozNTozMS4xMDY1MDI2NjAgKzAyMDAKLUBAIC0xNjU4LDYgKzE2NTgs MTkgQEAgYnVpbGRfaWRfdG9fZmlsZW5hbWUgKHN0cnVjdCBidWlsZF9pZCAqYgorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcHJvYy1zZXJ2aWNlLmxpc3QJMjAxNC0wMi0wNiAxNzoz Mjo0Mi44MTA2NDAzMjAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9wcm9jLXNl cnZpY2UubGlzdAkyMDE0LTAyLTA2IDE3OjMzOjM1LjQwNjY5Njk2NCArMDEwMAorQEAgLTM3LDQg KzM3LDcgQEAKKyAgIHBzX3BzdG9wOworICAgcHNfcHRyZWFkOworICAgcHNfcHR3cml0ZTsKKysK KysgIC8qIGdkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoICovCisrICBycG1zcUVuYWJs ZTsKKyB9OworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2J1aWxkLWlkLmMKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNC0w Mi0wNiAxNzozMDoxNC4yMzA0ODAyNjQgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9idWlsZC1pZC5jCTIwMTQtMDItMDYgMTc6MzQ6MjguODQ2NzU0MjgzICswMTAwCitAQCAtNjc3 LDYgKzY3NywxOSBAQCBidWlsZF9pZF90b19maWxlbmFtZSAoY29uc3Qgc3RydWN0IGVsZl9iCiAg I2luY2x1ZGUgPGRsZmNuLmg+CiAgI2VuZGlmCiAgCkBAIC0yMiwxNSArMzQsMyBAQCBJbmRleDog Z2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvZWxmcmVhZC5jCiAgLyogVGhpcyBNSVNTSU5HX1JQTV9I QVNIIHRyYWNrZXIgaXMgdXNlZCB0byBjb2xsZWN0IGFsbCB0aGUgbWlzc2luZyBycG0gZmlsZXMK ICAgICBhbmQgYXZvaWQgdGhlaXIgZHVwbGljaXRpZXMgZHVyaW5nIGEgc2luZ2xlIGluZmVyaW9y IHJ1bi4gICovCiAgCi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvcHJvYy1zZXJ2aWNl Lmxpc3QKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNjAyLm9yaWcvZ2RiL3Byb2Mt c2VydmljZS5saXN0CTIwMTItMDYtMDIgMjE6MzU6MDkuNjY5NTEwNzU3ICswMjAwCi0rKysgZ2Ri LTcuNC41MC4yMDEyMDYwMi9nZGIvcHJvYy1zZXJ2aWNlLmxpc3QJMjAxMi0wNi0wMiAyMTozNTox NC4yOTY1MDg5ODkgKzAyMDAKLUBAIC0zNyw0ICszNyw3IEBACi0gICBwc19wc3RvcDsKLSAgIHBz X3B0cmVhZDsKLSAgIHBzX3B0d3JpdGU7Ci0rCi0rICAvKiBnZGItNi42LWJ1aWxkaWQtbG9jYXRl LXJwbS5wYXRjaCAqLwotKyAgcnBtc3FFbmFibGU7Ci0gfTsKCmRpZmYgLS1naXQgYS9nZGItNi42 LWJ1aWxkaWQtbG9jYXRlLXJwbS1zY2wucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJw bS1zY2wucGF0Y2gKaW5kZXggMGZlODg3Ny4uZDU1MzNlOCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS1ycG0tc2NsLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUt cnBtLXNjbC5wYXRjaApAQCAtMSw5ICsxLDExIEBACiB3YXJuaW5nOiBTa2lwcGluZyBkZXByZWNh dGVkIC5nZGJfaW5kZXggc2VjdGlvbgogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3df YnVnLmNnaT9pZD05NTM1ODUKIAotLS0tIGdkYi03LjUuOTEuMjAxMzA0MDctb3JpZy9nZGIvZHdh cmYycmVhZC5jCTIwMTMtMDQtMjIgMTU6NDc6MTguODM3ODA2NzUyICswMjAwCi0rKysgZ2RiLTcu NS45MS4yMDEzMDQwNy9nZGIvZHdhcmYycmVhZC5jCTIwMTMtMDQtMjIgMTY6MTI6NTUuMDQzMTcx ODgxICswMjAwCi1AQCAtMjcwMCw2ICsyNzAwLDE0IEBAIHJlYWRfaW5kZXhfZnJvbV9zZWN0aW9u IChzdHJ1Y3Qgb2JqZmlsZQorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2R3YXJmMnJl YWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZHdhcmYy cmVhZC5jCTIwMTQtMDItMDYgMTg6Mjg6MjMuNzU2MjMyMDI2ICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvZHdhcmYycmVhZC5jCTIwMTQtMDItMDYgMTg6Mjg6NDguOTY5MjU5MTIy ICswMTAwCitAQCAtMzAzNSw2ICszMDM1LDE0IEBAIHJlYWRfaW5kZXhfZnJvbV9zZWN0aW9uIChz dHJ1Y3Qgb2JqZmlsZQogICAgICAgInNldCB1c2UtZGVwcmVjYXRlZC1pbmRleC1zZWN0aW9ucyBv biIuICAqLwogICAgaWYgKHZlcnNpb24gPCA2ICYmICFkZXByZWNhdGVkX29rKQogICAgICB7CkBA IC0xOCw3ICsyMCw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/ aWQ9OTUzNTg1CiAgICAgICAgc3RhdGljIGludCB3YXJuaW5nX3ByaW50ZWQgPSAwOwogICAgICAg IGlmICghd2FybmluZ19wcmludGVkKQogIAl7Ci1AQCAtMjcxMSw2ICsyNzE5LDggQEAgdG8gdXNl IHRoZSBzZWN0aW9uIGFueXdheS4iKSwKK0BAIC0zMDQ2LDYgKzMwNTQsOCBAQCB0byB1c2UgdGhl IHNlY3Rpb24gYW55d2F5LiIpLAogIAkgIHdhcm5pbmdfcHJpbnRlZCA9IDE7CiAgCX0KICAgICAg ICByZXR1cm4gMDsKQEAgLTI2LDEwICsyOCwxMiBAQCBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5j b20vc2hvd19idWcuY2dpP2lkPTk1MzU4NQogKyAgICAgIH0KICAgICAgfQogICAgLyogVmVyc2lv biA3IGluZGljZXMgZ2VuZXJhdGVkIGJ5IGdvbGQgcmVmZXIgdG8gdGhlIENVIGZvciBhIHN5bWJv bCBpbnN0ZWFkCi0gICAgICBvZiB0aGUgVFUgKGZvciBzeW1ib2xzIGNvbWluZyBmcm9tIFRVcyku ICBJdCdzIGp1c3QgYSBwZXJmb3JtYW5jZSBidWcsIGFuZAotLS0tIGdkYi03LjUuOTEuMjAxMzA0 MDctb3JpZy9nZGIvZWxmcmVhZC5jCTIwMTMtMDQtMjIgMTU6NDc6MTguNjM3ODA3MjAwICswMjAw Ci0rKysgZ2RiLTcuNS45MS4yMDEzMDQwNy9nZGIvZWxmcmVhZC5jCTIwMTMtMDQtMjIgMTY6MDQ6 MDkuMjU5NDI5MDM0ICswMjAwCi1AQCAtMTY3NCw3ICsxNjc0LDcgQEAgc3RhdGljIGludCBtaXNz aW5nX3JwbV9saXN0X2VudHJpZXM7CisgICAgICBvZiB0aGUgVFUgKGZvciBzeW1ib2xzIGNvbWlu ZyBmcm9tIFRVcyksCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYnVpbGQtaWQuYwor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYnVpbGQtaWQuYwky MDE0LTAyLTA2IDE4OjI4OjIzLjc1ODIzMjAyOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2J1aWxkLWlkLmMJMjAxNC0wMi0wNiAxODoyODoyNi44MTQyMzUzMTIgKzAxMDAKK0BA IC03MTEsNyArNzExLDcgQEAgc3RhdGljIGludCBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXM7CiAg LyogUmV0dXJucyB0aGUgY291bnQgb2YgbmV3bHkgYWRkZWQgcnBtcy4gICovCiAgCiAgc3RhdGlj IGludApAQCAtMzgsNyArNDIsNyBAQCBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19i dWcuY2dpP2lkPTk1MzU4NQogIHsKICAgIHN0YXRpYyBpbnQgcnBtX2luaXRfZG9uZSA9IDA7CiAg ICBycG10cyB0czsKLUBAIC0xNzc4LDcgKzE3NzgsNyBAQCBtaXNzaW5nX3JwbV9lbmxpc3QgKGNv bnN0IGNoYXIgKmZpbGVuYW1lCitAQCAtODE1LDcgKzgxNSw3IEBAIG1pc3NpbmdfcnBtX2VubGlz dCAoY29uc3QgY2hhciAqZmlsZW5hbWUKICAgIG1pID0gcnBtdHNJbml0SXRlcmF0b3JfcCAodHMs IFJQTVRBR19CQVNFTkFNRVMsIGZpbGVuYW1lLCAwKTsKICAgIGlmIChtaSAhPSBOVUxMKQogICAg ICB7CkBAIC00Nyw3ICs1MSw3IEBAIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1 Zy5jZ2k/aWQ9OTUzNTg1CiAgCXsKICAJICBIZWFkZXIgaDsKICAJICBjaGFyICpkZWJ1Z2luZm8s ICoqc2xvdCwgKnMsICpzMjsKLUBAIC0xODk3LDYgKzE4OTcsMzUgQEAgbWlzc2luZ19ycG1fZW5s aXN0IChjb25zdCBjaGFyICpmaWxlbmFtZQorQEAgLTkzMyw2ICs5MzMsMzUgQEAgbWlzc2luZ19y cG1fZW5saXN0IChjb25zdCBjaGFyICpmaWxlbmFtZQogIAkgICAgeGZyZWUgKGRlYnVnaW5mbyk7 CiAgCSAgY291bnQrKzsKICAJfQpAQCAtODMsNyArODcsNyBAQCBodHRwczovL2J1Z3ppbGxhLnJl ZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTk1MzU4NQogIAogICAgICAgIHJwbWRiRnJlZUl0ZXJh dG9yX3AgKG1pKTsKICAgICAgfQotQEAgLTE5MDcsNiArMTkzNiwxOSBAQCBtaXNzaW5nX3JwbV9l bmxpc3QgKGNvbnN0IGNoYXIgKmZpbGVuYW1lCitAQCAtOTQzLDYgKzk3MiwxOSBAQCBtaXNzaW5n X3JwbV9lbmxpc3QgKGNvbnN0IGNoYXIgKmZpbGVuYW1lCiAgfQogIAogIHN0YXRpYyBpbnQKCmRp ZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaCBiL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUtcnBtLnBhdGNoCmluZGV4IDMxOTJlZTEuLjc3YjJjYTQgMTAwNjQ0Ci0tLSBh L2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1s b2NhdGUtcnBtLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9ldmVudC10b3AuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2V2 ZW50LXRvcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9n ZGIvZXZlbnQtdG9wLmMJMjAxMy0wOC0wMiAxNjoyNToyNC45NjgwOTQzOTggKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXZlbnQtdG9wLmMJMjAxMy0wOC0wMiAxNjoyNToz OC42MzgxMTI4NzQgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2V2ZW50 LXRvcC5jCTIwMTQtMDItMDYgMTc6MTg6MjYuOTY1NzE3MjEwICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvZXZlbnQtdG9wLmMJMjAxNC0wMi0wNiAxNjo1OToyMy4xNzQ0NzQ0MDQg KzAxMDAKIEBAIC0zNyw2ICszNyw3IEBACiAgI2luY2x1ZGUgImdkYmNtZC5oIgkJLyogZm9yIGRv bnRfcmVwZWF0KCkgKi8KICAjaW5jbHVkZSAiYW5ub3RhdGUuaCIKQEAgLTEwLDE2ICsxMCwxNiBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2ZW50LXRvcC5jCiAgCiAgLyog cmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5l LmgiCi1AQCAtMTcxLDYgKzE3Miw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyIChn ZGJfY2xpZW4KK0BAIC0xNzMsNiArMTc0LDggQEAgcmxfY2FsbGJhY2tfcmVhZF9jaGFyX3dyYXBw ZXIgKGdkYl9jbGllbgogIHZvaWQKLSBjbGlfY29tbWFuZF9sb29wICh2b2lkKQorIGNsaV9jb21t YW5kX2xvb3AgKHZvaWQgKmRhdGEpCiAgewogKyAgZGVidWdfZmx1c2hfbWlzc2luZyAoKTsKICsK ICAgIGRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CiAgCiAgICAvKiBOb3cgaXQncyB0aW1lIHRvIHN0 YXJ0IHRoZSBldmVudCBsb29wLiAgKi8KLUBAIC0yMzgsNiArMjQxLDggQEAgZGlzcGxheV9nZGJf cHJvbXB0IChjaGFyICpuZXdfcHJvbXB0KQorQEAgLTI0MCw2ICsyNDMsOCBAQCBkaXNwbGF5X2dk Yl9wcm9tcHQgKGNoYXIgKm5ld19wcm9tcHQpCiAgICAvKiBSZXNldCB0aGUgbmVzdGluZyBkZXB0 aCB1c2VkIHdoZW4gdHJhY2UtY29tbWFuZHMgaXMgc2V0LiAgKi8KICAgIHJlc2V0X2NvbW1hbmRf bmVzdF9kZXB0aCAoKTsKICAKQEAgLTI4LDgxNSArMjgsOTE2IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvZXZlbnQtdG9wLmMKICAgIC8qIEVhY2ggaW50ZXJwcmV0ZXIgaGFz IGl0cyBvd24gcnVsZXMgb24gZGlzcGxheWluZyB0aGUgY29tbWFuZAogICAgICAgcHJvbXB0LiAg Ki8KICAgIGlmICghY3VycmVudF9pbnRlcnBfZGlzcGxheV9wcm9tcHRfcCAoKSkKLUluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZWxmcmVhZC5jCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTMtMDgtMDIgMTY6MjU6MjQuOTcwMDk0NDAxICsw MjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwkyMDEzLTA4LTAy IDE2OjI1OjI3LjMzNjA5NzU1NyArMDIwMAotQEAgLTQ5LDYgKzQ5LDcgQEAKLSAjaW5jbHVkZSAi Z2RiY29yZS5oIgotICNpbmNsdWRlICJnZGJjbWQuaCIKLSAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIK LSsjaW5jbHVkZSAiZWxmL2V4dGVybmFsLmgiCi0gI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CistLS0g Z2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNC0wMi0wNiAxNzoxODoz My44NjU3MjQ2NjYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zeW1maWxlLmgJ MjAxNC0wMi0wNiAxNzowODo1Ni4yODIwOTkxNTAgKzAxMDAKK0BAIC01NTcsNiArNTU3LDggQEAg ZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICppbmNyZW1lbnRfcmVhZGluZworIC8qIGJ1aWxkLWlkIHN1 cHBvcnQuICAqLworIGV4dGVybiBzdHJ1Y3QgZWxmX2J1aWxkX2lkICpidWlsZF9pZF9hZGRyX2dl dCAoQ09SRV9BRERSIGFkZHIpOworIGV4dGVybiB2b2lkIGRlYnVnX3ByaW50X21pc3NpbmcgKGNv bnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcpOworK2V4dGVybiB2b2lkIGRlYnVn X2ZsdXNoX21pc3NpbmcgKHZvaWQpOworKyNkZWZpbmUgQlVJTERfSURfTUFJTl9FWEVDVVRBQkxF X0ZJTEVOQU1FIF8oInRoZSBtYWluIGV4ZWN1dGFibGUgZmlsZSIpCiAgCi0gZXh0ZXJuIHZvaWQg X2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCk7Ci1AQCAtMTcwMSw4ICsxNzAyLDM2MCBAQCBidWls ZF9pZF90b19maWxlbmFtZSAoY29uc3Qgc3RydWN0IGVsZl9iCi0gICByZXR1cm4gcmV0dmFsOwot IH0KKyAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAotKyNpZmRlZiBIQVZFX0xJQlJQTQorSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCTIwMTQtMDItMDYgMTc6MTg6MjYuOTY5NzE3MjE0ICswMTAwCisrKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTQtMDItMDYgMTc6MTg6MzMuODY2 NzI0NjY3ICswMTAwCitAQCAtMTUwNCw3ICsxNTA0LDcgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFy dCB7IH0geworIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKKyAJ fQorICAgICB9CistICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRl c3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCisrICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcg UlBNcyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4KKyAgICAg c2VuZF9nZGIgInNldCBidWlsZC1pZC12ZXJib3NlIDBcbiIKKyAgICAgZ2RiX2V4cGVjdCAxMCB7 CisgCS1yZSAiJGdkYl9wcm9tcHQgJCIgeworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy42Ljkw LjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNC0wMi0w NiAxNzoxODoyNi45NzA3MTcyMTUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90 ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTQtMDItMDYgMTc6MTg6MzMuODY3NzI0NjY4 ICswMTAwCitAQCAtMjEyLDcgKzIxMiw3IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBh cmdzIH0geworIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKKyAJ fQorICAgICB9CistICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRl c3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCisrICAgICMgVHVybiBvZmYgdGhlIG1pc3Npbmcg UlBNcyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4KKyAgICAg c2VuZF9nZGIgIjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgorICAgICBnZGJfZXhw ZWN0IDEwIHsKKyAJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4xOTBc XFxeZG9uZVxyXG4kbWlfZ2RiX3Byb21wdCQiIHsKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi90dWkvdHVpLWludGVycC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEy Ny5vcmlnL2dkYi90dWkvdHVpLWludGVycC5jCTIwMTQtMDItMDYgMTc6MTg6MjYuOTcwNzE3MjE1 ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdHVpL3R1aS1pbnRlcnAuYwkyMDE0 LTAyLTA2IDE3OjE4OjMzLjg2NzcyNDY2OCArMDEwMAorQEAgLTMwLDYgKzMwLDcgQEAKKyAjaW5j bHVkZSAidHVpL3R1aS5oIgorICNpbmNsdWRlICJ0dWkvdHVpLWlvLmgiCisgI2luY2x1ZGUgImV4 Y2VwdGlvbnMuaCIKKysjaW5jbHVkZSAic3ltZmlsZS5oIgorIAorIC8qIFNldCB0byAxIHdoZW4g dGhlIFRVSSBtb2RlIG11c3QgYmUgYWN0aXZhdGVkIHdoZW4gd2UgZmlyc3Qgc3RhcnQKKyAgICBn ZGIuICAqLworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FjbG9jYWwubTQKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FjbG9jYWwubTQJMjAxNC0w Mi0wNiAxNzoxODozMy44Njg3MjQ2NjkgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9hY2xvY2FsLm00CTIwMTQtMDItMDYgMTc6MDk6NDkuODc3MTU3NDA1ICswMTAwCitAQCAtMTEs NiArMTEsMjIxIEBACisgIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBCisgIyBQQVJUSUNVTEFSIFBVUlBPU0UuCisgCisrIyBwa2cu bTQgLSBNYWNyb3MgdG8gbG9jYXRlIGFuZCB1dGlsaXNlIHBrZy1jb25maWcuICAgICAgICAgICAg LSotIEF1dG9jb25mIC0qLQorKyMgc2VyaWFsIDEgKHBrZy1jb25maWctMC4yNCkKKysjIAorKyMg Q29weXJpZ2h0IMKpIDIwMDQgU2NvdHQgSmFtZXMgUmVtbmFudCA8c2NvdHRAbmV0c3BsaXQuY29t Pi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKysj IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCisrIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w bGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKyMKKysj IEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl LCBpZiB5b3UKKysjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRo YXQgY29udGFpbnMgYQorKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9j b25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKysjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0 ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KICsKLSsjaW5j bHVkZSA8cnBtL3JwbWxpYi5oPgotKyNpbmNsdWRlIDxycG0vcnBtdHMuaD4KLSsjaW5jbHVkZSA8 cnBtL3JwbWRiLmg+Ci0rI2luY2x1ZGUgPHJwbS9oZWFkZXIuaD4KLSsjaWZkZWYgRExPUEVOX0xJ QlJQTQotKyNpbmNsdWRlIDxkbGZjbi5oPgotKyNlbmRpZgorKyMgUEtHX1BST0dfUEtHX0NPTkZJ RyhbTUlOLVZFUlNJT05dKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor K0FDX0RFRlVOKFtQS0dfUFJPR19QS0dfQ09ORklHXSwKKytbbTRfcGF0dGVybl9mb3JiaWQoW15f P1BLR19bQS1aX10rJF0pCisrbTRfcGF0dGVybl9hbGxvdyhbXlBLR19DT05GSUcoXyhQQVRIfExJ QkRJUnxTWVNST09UX0RJUnxBTExPV19TWVNURU1fKENGTEFHU3xMSUJTKSkpPyRdKQorK200X3Bh dHRlcm5fYWxsb3coW15QS0dfQ09ORklHXyhESVNBQkxFX1VOSU5TVEFMTEVEfFRPUF9CVUlMRF9E SVJ8REVCVUdfU1BFVykkXSkKKytBQ19BUkdfVkFSKFtQS0dfQ09ORklHXSwgW3BhdGggdG8gcGtn LWNvbmZpZyB1dGlsaXR5XSkKKytBQ19BUkdfVkFSKFtQS0dfQ09ORklHX1BBVEhdLCBbZGlyZWN0 b3JpZXMgdG8gYWRkIHRvIHBrZy1jb25maWcncyBzZWFyY2ggcGF0aF0pCisrQUNfQVJHX1ZBUihb UEtHX0NPTkZJR19MSUJESVJdLCBbcGF0aCBvdmVycmlkaW5nIHBrZy1jb25maWcncyBidWlsdC1p biBzZWFyY2ggcGF0aF0pCiArCi0rLyogVGhpcyBNSVNTSU5HX1JQTV9IQVNIIHRyYWNrZXIgaXMg dXNlZCB0byBjb2xsZWN0IGFsbCB0aGUgbWlzc2luZyBycG0gZmlsZXMKLSsgICBhbmQgYXZvaWQg dGhlaXIgZHVwbGljaXRpZXMgZHVyaW5nIGEgc2luZ2xlIGluZmVyaW9yIHJ1bi4gICovCisraWYg dGVzdCAieCRhY19jdl9lbnZfUEtHX0NPTkZJR19zZXQiICE9ICJ4c2V0IjsgdGhlbgorKwlBQ19Q QVRIX1RPT0woW1BLR19DT05GSUddLCBbcGtnLWNvbmZpZ10pCisrZmkKKytpZiB0ZXN0IC1uICIk UEtHX0NPTkZJRyI7IHRoZW4KKysJX3BrZ19taW5fdmVyc2lvbj1tNF9kZWZhdWx0KFskMV0sIFsw LjkuMF0pCisrCUFDX01TR19DSEVDS0lORyhbcGtnLWNvbmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9u ICRfcGtnX21pbl92ZXJzaW9uXSkKKysJaWYgJFBLR19DT05GSUcgLS1hdGxlYXN0LXBrZ2NvbmZp Zy12ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uOyB0aGVuCisrCQlBQ19NU0dfUkVTVUxUKFt5ZXNd KQorKwllbHNlCisrCQlBQ19NU0dfUkVTVUxUKFtub10pCisrCQlQS0dfQ09ORklHPSIiCisrCWZp CisrZmlbXWRubAorK10pIyBQS0dfUFJPR19QS0dfQ09ORklHCiArCi0rc3RhdGljIHN0cnVjdCBo dGFiICptaXNzaW5nX3JwbV9oYXNoOworKyMgUEtHX0NIRUNLX0VYSVNUUyhNT0RVTEVTLCBbQUNU SU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQorKyMKKysjIENoZWNrIHRvIHNl ZSB3aGV0aGVyIGEgcGFydGljdWxhciBzZXQgb2YgbW9kdWxlcyBleGlzdHMuICBTaW1pbGFyCisr IyB0byBQS0dfQ0hFQ0tfTU9EVUxFUygpLCBidXQgZG9lcyBub3Qgc2V0IHZhcmlhYmxlcyBvciBw cmludCBlcnJvcnMuCisrIworKyMgUGxlYXNlIHJlbWVtYmVyIHRoYXQgbTQgZXhwYW5kcyBBQ19S RVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkKKysjIG9ubHkgYXQgdGhlIGZpcnN0IG9jY3Vy ZW5jZSBpbiBjb25maWd1cmUuYWMsIHNvIGlmIHRoZSBmaXJzdCBwbGFjZQorKyMgaXQncyBjYWxs ZWQgbWlnaHQgYmUgc2tpcHBlZCAoc3VjaCBhcyBpZiBpdCBpcyB3aXRoaW4gYW4gImlmIiwgeW91 CisrIyBoYXZlIHRvIGNhbGwgUEtHX0NIRUNLX0VYSVNUUyBtYW51YWxseQorKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytB Q19ERUZVTihbUEtHX0NIRUNLX0VYSVNUU10sCisrW0FDX1JFUVVJUkUoW1BLR19QUk9HX1BLR19D T05GSUddKWRubAorK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIiAmJiBcCisrICAgIEFDX1JVTl9M T0coWyRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkMSJdKTsgdGhlbgorKyAg bTRfZGVmYXVsdChbJDJdLCBbOl0pCisrbTRfaWZ2YWxuKFskM10sIFtlbHNlCisrICAkM10pZG5s CisrZmldKQogKwotKy8qIFRoaXMgTUlTU0lOR19SUE1fTElTVCB0cmFja2VyIGlzIHVzZWQgdG8g Y29sbGVjdCBhbmQgcHJpbnQgYXMgYSBzaW5nbGUgbGluZQotKyAgIGFsbCB0aGUgcnBtcyByaWdo dCBiZWZvcmUgdGhlIG5lYXJlc3QgR0RCIHByb21wdC4gIEl0IGdldHMgY2xlYXJlZCBhZnRlcgot KyAgIGVhY2ggc3VjaCBwcmludCAoaXQgaXMgcXVlc3Rpb25hYmxlIGlmIHdlIHNob3VsZCBjbGVh ciBpdCBhZnRlciB0aGUgcHJpbnQpLgotKyAgICovCisrIyBfUEtHX0NPTkZJRyhbVkFSSUFCTEVd LCBbQ09NTUFORF0sIFtNT0RVTEVTXSkKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorK200X2RlZmluZShbX1BLR19DT05GSUddLAorK1tpZiB0ZXN0IC1u ICIkJDEiOyB0aGVuCisrICAgIHBrZ19jdl9bXSQxPSIkJDEiCisrIGVsaWYgdGVzdCAtbiAiJFBL R19DT05GSUciOyB0aGVuCisrICAgIFBLR19DSEVDS19FWElTVFMoWyQzXSwKKysgICAgICAgICAg ICAgICAgICAgICBbcGtnX2N2X1tdJDE9YCRQS0dfQ09ORklHIC0tW10kMiAiJDMiIDI+L2Rldi9u dWxsYAorKwkJICAgICAgdGVzdCAieCQ/IiAhPSAieDAiICYmIHBrZ19mYWlsZWQ9eWVzIF0sCisr CQkgICAgIFtwa2dfZmFpbGVkPXllc10pCisrIGVsc2UKKysgICAgcGtnX2ZhaWxlZD11bnRyaWVk CisrZmlbXWRubAorK10pIyBfUEtHX0NPTkZJRwogKwotK3N0cnVjdCBtaXNzaW5nX3JwbQotKyAg ewotKyAgICBzdHJ1Y3QgbWlzc2luZ19ycG0gKm5leHQ7Ci0rICAgIGNoYXIgcnBtWzFdOwotKyAg fTsKLStzdGF0aWMgc3RydWN0IG1pc3NpbmdfcnBtICptaXNzaW5nX3JwbV9saXN0OwotK3N0YXRp YyBpbnQgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzOworKyMgX1BLR19TSE9SVF9FUlJPUlNfU1VQ UE9SVEVECisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorK0FDX0RFRlVOKFtfUEtH X1NIT1JUX0VSUk9SU19TVVBQT1JURURdLAorK1tBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09O RklHXSkKKytpZiAkUEtHX0NPTkZJRyAtLWF0bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gMC4yMDsg dGhlbgorKyAgICAgICAgX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkPXllcworK2Vsc2UKKysg ICAgICAgIF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZD1ubworK2ZpW11kbmwKKytdKSMgX1BL R19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECiArCi0rLyogUmV0dXJucyB0aGUgY291bnQgb2YgbmV3 bHkgYWRkZWQgcnBtcy4gICovCiArCi0rc3RhdGljIGludAotK21pc3NpbmdfcnBtX2VubGlzdCAo Y29uc3QgY2hhciAqZmlsZW5hbWUpCi0rewotKyAgc3RhdGljIGludCBycG1faW5pdF9kb25lID0g MDsKLSsgIHJwbXRzIHRzOwotKyAgcnBtZGJNYXRjaEl0ZXJhdG9yIG1pOwotKyAgaW50IGNvdW50 ID0gMDsKKysjIFBLR19DSEVDS19NT0RVTEVTKFZBUklBQkxFLVBSRUZJWCwgTU9EVUxFUywgW0FD VElPTi1JRi1GT1VORF0sCisrIyBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCisrIworKyMKKysjIE5v dGUgdGhhdCBpZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoZSBmaXJzdCBjYWxsIHRvCisrIyBQ S0dfQ0hFQ0tfTU9EVUxFUyBtaWdodCBub3QgaGFwcGVuLCB5b3Ugc2hvdWxkIGJlIHN1cmUgdG8g aW5jbHVkZSBhbgorKyMgZXhwbGljaXQgY2FsbCB0byBQS0dfUFJPR19QS0dfQ09ORklHIGluIHlv dXIgY29uZmlndXJlLmFjCisrIworKyMKKysjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrQUNfREVGVU4oW1BLR19DSEVDS19N T0RVTEVTXSwKKytbQUNfUkVRVUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10pZG5sCisrQUNfQVJH X1ZBUihbJDFdW19DRkxBR1NdLCBbQyBjb21waWxlciBmbGFncyBmb3IgJDEsIG92ZXJyaWRpbmcg cGtnLWNvbmZpZ10pZG5sCisrQUNfQVJHX1ZBUihbJDFdW19MSUJTXSwgW2xpbmtlciBmbGFncyBm b3IgJDEsIG92ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCiArCi0rI2lmZGVmIERMT1BFTl9MSUJS UE0KLSsgIC8qIER1cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5IHRoZXkg bWF0Y2guICBUaGUgc2FtZSBzYW5pdHkKLSsgICAgIGNoZWNrIGlzIHByZXNlbnQgYWxzbyBpbiBg Y29uZmlndXJlLmFjJy4gICovCi0rICBleHRlcm4gY2hhciAqIGhlYWRlckZvcm1hdChIZWFkZXIg aCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKiBlcnJtc2cpOwotKyAgc3RhdGljIGNoYXIg KigqaGVhZGVyRm9ybWF0X3ApIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3Qg KmVycm1zZyk7Ci0rICBleHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhjb25zdCBjaGFyICog ZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7Ci0rICBzdGF0aWMgaW50ICgqcnBtUmVhZENvbmZp Z0ZpbGVzX3ApIChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7Ci0rICBl eHRlcm4gcnBtZGJNYXRjaEl0ZXJhdG9yIHJwbWRiRnJlZUl0ZXJhdG9yKHJwbWRiTWF0Y2hJdGVy YXRvciBtaSk7Ci0rICBzdGF0aWMgcnBtZGJNYXRjaEl0ZXJhdG9yICgqcnBtZGJGcmVlSXRlcmF0 b3JfcCkgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7Ci0rICBleHRlcm4gSGVhZGVyIHJwbWRiTmV4 dEl0ZXJhdG9yKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7Ci0rICBzdGF0aWMgSGVhZGVyICgqcnBt ZGJOZXh0SXRlcmF0b3JfcCkgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7Ci0rICBleHRlcm4gcnBt dHMgcnBtdHNDcmVhdGUodm9pZCk7Ci0rICBzdGF0aWMgcnBtdHMgKCpycG10c0NyZWF0ZV9wKSAo dm9pZCk7Ci0rICBleHRlcm4gcnBtdHMgcnBtdHNGcmVlKHJwbXRzIHRzKTsKLSsgIHN0YXRpYyBy cG10cyAoKnJwbXRzRnJlZV9wKSAocnBtdHMgdHMpOwotKyAgZXh0ZXJuIHJwbWRiTWF0Y2hJdGVy YXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJwbXRhZywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq IGtleXAsIHNpemVfdCBrZXlsZW4pOwotKyAgc3RhdGljIHJwbWRiTWF0Y2hJdGVyYXRvciAoKnJw bXRzSW5pdEl0ZXJhdG9yX3ApIChjb25zdCBycG10cyB0cywKLSsJCQkJCQkgICAgcnBtVGFnIHJw bXRhZywKLSsJCQkJCQkgICAgY29uc3Qgdm9pZCAqa2V5cCwKLSsJCQkJCQkgICAgc2l6ZV90IGtl eWxlbik7Ci0rI2Vsc2UJLyogIURMT1BFTl9MSUJSUE0gKi8KLSsjIGRlZmluZSBoZWFkZXJGb3Jt YXRfcCBoZWFkZXJGb3JtYXQKLSsjIGRlZmluZSBycG1SZWFkQ29uZmlnRmlsZXNfcCBycG1SZWFk Q29uZmlnRmlsZXMKLSsjIGRlZmluZSBycG1kYkZyZWVJdGVyYXRvcl9wIHJwbWRiRnJlZUl0ZXJh dG9yCi0rIyBkZWZpbmUgcnBtZGJOZXh0SXRlcmF0b3JfcCBycG1kYk5leHRJdGVyYXRvcgotKyMg ZGVmaW5lIHJwbXRzQ3JlYXRlX3AgcnBtdHNDcmVhdGUKLSsjIGRlZmluZSBycG10c0ZyZWVfcCBy cG10c0ZyZWUKLSsjIGRlZmluZSBycG10c0luaXRJdGVyYXRvcl9wIHJwbXRzSW5pdEl0ZXJhdG9y Ci0rI2VuZGlmCS8qICFETE9QRU5fTElCUlBNICovCisrcGtnX2ZhaWxlZD1ubworK0FDX01TR19D SEVDS0lORyhbZm9yICQxXSkKICsKLSsgIGdkYl9hc3NlcnQgKGZpbGVuYW1lICE9IE5VTEwpOwor K19QS0dfQ09ORklHKFskMV1bX0NGTEFHU10sIFtjZmxhZ3NdLCBbJDJdKQorK19QS0dfQ09ORklH KFskMV1bX0xJQlNdLCBbbGlic10sIFskMl0pCiArCi0rICBpZiAoc3RyY21wIChmaWxlbmFtZSwg QlVJTERfSURfTUFJTl9FWEVDVVRBQkxFX0ZJTEVOQU1FKSA9PSAwKQotKyAgICByZXR1cm4gMDsK KyttNF9kZWZpbmUoW19QS0dfVEVYVF0sIFtBbHRlcm5hdGl2ZWx5LCB5b3UgbWF5IHNldCB0aGUg ZW52aXJvbm1lbnQgdmFyaWFibGVzICQxW11fQ0ZMQUdTCisrYW5kICQxW11fTElCUyB0byBhdm9p ZCB0aGUgbmVlZCB0byBjYWxsIHBrZy1jb25maWcuCisrU2VlIHRoZSBwa2ctY29uZmlnIG1hbiBw YWdlIGZvciBtb3JlIGRldGFpbHMuXSkKICsKLSsgIGlmIChmaWxlbmFtZVswXSAhPSAnLycpCi0r ICAgIHsKLSsgICAgICB3YXJuaW5nIChfKCJJZ25vcmluZyBub24tYWJzb2x1dGUgZmlsZW5hbWU6 IDwlcz4iKSwgZmlsZW5hbWUpOwotKyAgICAgIHJldHVybiAwOwotKyAgICB9CisraWYgdGVzdCAk cGtnX2ZhaWxlZCA9IHllczsgdGhlbgorKyAgIAlBQ19NU0dfUkVTVUxUKFtub10pCisrICAgICAg ICBfUEtHX1NIT1JUX0VSUk9SU19TVVBQT1JURUQKKysgICAgICAgIGlmIHRlc3QgJF9wa2dfc2hv cnRfZXJyb3JzX3N1cHBvcnRlZCA9IHllczsgdGhlbgorKwkgICAgICAgICQxW11fUEtHX0VSUk9S Uz1gJFBLR19DT05GSUcgLS1zaG9ydC1lcnJvcnMgLS1wcmludC1lcnJvcnMgLS1jZmxhZ3MgLS1s aWJzICIkMiIgMj4mMWAKKysgICAgICAgIGVsc2UgCisrCSAgICAgICAgJDFbXV9QS0dfRVJST1JT PWAkUEtHX0NPTkZJRyAtLXByaW50LWVycm9ycyAtLWNmbGFncyAtLWxpYnMgIiQyIiAyPiYxYAor KyAgICAgICAgZmkKKysJIyBQdXQgdGhlIG5hc3R5IGVycm9yIG1lc3NhZ2UgaW4gY29uZmlnLmxv ZyB3aGVyZSBpdCBiZWxvbmdzCisrCWVjaG8gIiQkMVtdX1BLR19FUlJPUlMiID4mQVNfTUVTU0FH RV9MT0dfRkQKICsKLSsgIGlmICghcnBtX2luaXRfZG9uZSkKLSsgICAgewotKyAgICAgIHN0YXRp YyBpbnQgaW5pdF90cmllZDsKKysJbTRfZGVmYXVsdChbJDRdLCBbQUNfTVNHX0VSUk9SKAorK1tQ YWNrYWdlIHJlcXVpcmVtZW50cyAoJDIpIHdlcmUgbm90IG1ldDoKICsKLSsgICAgICAvKiBBbHJl YWR5IGZhaWxlZCB0aGUgaW5pdGlhbGl6YXRpb24gYmVmb3JlPyAgKi8KLSsgICAgICBpZiAoaW5p dF90cmllZCkKLSsgICAgICAJcmV0dXJuIDA7Ci0rICAgICAgaW5pdF90cmllZCA9IDE7CisrJCQx X1BLR19FUlJPUlMKICsKLSsjaWZkZWYgRExPUEVOX0xJQlJQTQotKyAgICAgIHsKLSsJdm9pZCAq aDsKKytDb25zaWRlciBhZGp1c3RpbmcgdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2 YXJpYWJsZSBpZiB5b3UKKytpbnN0YWxsZWQgc29mdHdhcmUgaW4gYSBub24tc3RhbmRhcmQgcHJl Zml4LgogKwotKwloID0gZGxvcGVuIChETE9QRU5fTElCUlBNLCBSVExEX0xBWlkpOwotKwlpZiAo IWgpCi0rCSAgewotKwkgICAgd2FybmluZyAoXygiVW5hYmxlIHRvIG9wZW4gXCIlc1wiICglcyks ICIKLSsJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5vdCBi ZSBkaXNwbGF5ZWQiKSwKLSsJCSAgICAgRExPUEVOX0xJQlJQTSwgZGxlcnJvciAoKSk7Ci0rCSAg ICByZXR1cm4gMDsKLSsJICB9CisrX1BLR19URVhUXSlbXWRubAorKyAgICAgICAgXSkKKytlbGlm IHRlc3QgJHBrZ19mYWlsZWQgPSB1bnRyaWVkOyB0aGVuCisrICAgICAJQUNfTVNHX1JFU1VMVChb bm9dKQorKwltNF9kZWZhdWx0KFskNF0sIFtBQ19NU0dfRkFJTFVSRSgKKytbVGhlIHBrZy1jb25m aWcgc2NyaXB0IGNvdWxkIG5vdCBiZSBmb3VuZCBvciBpcyB0b28gb2xkLiAgTWFrZSBzdXJlIGl0 CisraXMgaW4geW91ciBQQVRIIG9yIHNldCB0aGUgUEtHX0NPTkZJRyBlbnZpcm9ubWVudCB2YXJp YWJsZSB0byB0aGUgZnVsbAorK3BhdGggdG8gcGtnLWNvbmZpZy4KICsKLSsJaWYgKCEoKGhlYWRl ckZvcm1hdF9wID0gZGxzeW0gKGgsICJoZWFkZXJGb3JtYXQiKSkKLSsJICAgICAgJiYgKHJwbVJl YWRDb25maWdGaWxlc19wID0gZGxzeW0gKGgsICJycG1SZWFkQ29uZmlnRmlsZXMiKSkKLSsJICAg ICAgJiYgKHJwbWRiRnJlZUl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbWRiRnJlZUl0ZXJhdG9y IikpCi0rCSAgICAgICYmIChycG1kYk5leHRJdGVyYXRvcl9wID0gZGxzeW0gKGgsICJycG1kYk5l eHRJdGVyYXRvciIpKQotKwkgICAgICAmJiAocnBtdHNDcmVhdGVfcCA9IGRsc3ltIChoLCAicnBt dHNDcmVhdGUiKSkKLSsJICAgICAgJiYgKHJwbXRzRnJlZV9wID0gZGxzeW0gKGgsICJycG10c0Zy ZWUiKSkKLSsJICAgICAgJiYgKHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbXRz SW5pdEl0ZXJhdG9yIikpKSkKLSsJICB7Ci0rCSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGlicmFy eSBcIiVzXCIgaXMgaW5jb21wYXRpYmxlICglcyksICIKLSsJCSAgICAgICJtaXNzaW5nIGRlYnVn aW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKLSsJCSAgICAgRExP UEVOX0xJQlJQTSwgZGxlcnJvciAoKSk7Ci0rCSAgICBpZiAoZGxjbG9zZSAoaCkpCi0rCSAgICAg IHdhcm5pbmcgKF8oIkVycm9yIGNsb3NpbmcgbGlicmFyeSBcIiVzXCI6ICVzXG4iKSwgRExPUEVO X0xJQlJQTSwKLSsJCSAgICAgICBkbGVycm9yICgpKTsKLSsJICAgIHJldHVybiAwOwotKwkgIH0K LSsgICAgICB9Ci0rI2VuZGlmCS8qIERMT1BFTl9MSUJSUE0gKi8KLSsKLSsgICAgICBpZiAocnBt UmVhZENvbmZpZ0ZpbGVzX3AgKE5VTEwsIE5VTEwpICE9IDApCi0rCXsKLSsJICB3YXJuaW5nIChf KCJFcnJvciByZWFkaW5nIHRoZSBycG0gY29uZmlndXJhdGlvbiBmaWxlcyIpKTsKLSsJICByZXR1 cm4gMDsKLSsJfQorK19QS0dfVEVYVAogKwotKyAgICAgIHJwbV9pbml0X2RvbmUgPSAxOwotKyAg ICB9CisrVG8gZ2V0IHBrZy1jb25maWcsIHNlZSA8aHR0cDovL3BrZy1jb25maWcuZnJlZWRlc2t0 b3Aub3JnLz4uXSlbXWRubAorKyAgICAgICAgXSkKKytlbHNlCisrCSQxW11fQ0ZMQUdTPSRwa2df Y3ZfW10kMVtdX0NGTEFHUworKwkkMVtdX0xJQlM9JHBrZ19jdl9bXSQxW11fTElCUworKyAgICAg ICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKysJJDMKKytmaVtdZG5sCisrXSkjIFBLR19DSEVDS19N T0RVTEVTCiArCi0rICB0cyA9IHJwbXRzQ3JlYXRlX3AgKCk7CiArCi0rICBtaSA9IHJwbXRzSW5p dEl0ZXJhdG9yX3AgKHRzLCBSUE1UQUdfQkFTRU5BTUVTLCBmaWxlbmFtZSwgMCk7Ci0rICBpZiAo bWkgIT0gTlVMTCkKLSsgICAgewotKyAgICAgIGZvciAoOzspCi0rCXsKLSsJICBIZWFkZXIgaDsK LSsJICBjaGFyICpkZWJ1Z2luZm8sICoqc2xvdCwgKnMsICpzMjsKLSsJICBlcnJtc2dfdCBlcnI7 Ci0rCSAgc2l6ZV90IHNyY3JwbWxlbiA9IHNpemVvZiAoIi5zcmMucnBtIikgLSAxOwotKwkgIHNp emVfdCBkZWJ1Z2luZm9sZW4gPSBzaXplb2YgKCItZGVidWdpbmZvIikgLSAxOwotKwkgIHJwbWRi TWF0Y2hJdGVyYXRvciBtaV9kZWJ1Z2luZm87CisrIyBQS0dfSU5TVEFMTERJUihESVJFQ1RPUlkp CisrIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIyBTdWJzdGl0dXRlcyB0aGUgdmFyaWFi bGUgcGtnY29uZmlnZGlyIGFzIHRoZSBsb2NhdGlvbiB3aGVyZSBhIG1vZHVsZQorKyMgc2hvdWxk IGluc3RhbGwgcGtnLWNvbmZpZyAucGMgZmlsZXMuIEJ5IGRlZmF1bHQgdGhlIGRpcmVjdG9yeSBp cworKyMgJGxpYmRpci9wa2djb25maWcsIGJ1dCB0aGUgZGVmYXVsdCBjYW4gYmUgY2hhbmdlZCBi eSBwYXNzaW5nCisrIyBESVJFQ1RPUlkuIFRoZSB1c2VyIGNhbiBvdmVycmlkZSB0aHJvdWdoIHRo ZSAtLXdpdGgtcGtnY29uZmlnZGlyCisrIyBwYXJhbWV0ZXIuCisrQUNfREVGVU4oW1BLR19JTlNU QUxMRElSXSwKKytbbTRfcHVzaGRlZihbcGtnX2RlZmF1bHRdLCBbbTRfZGVmYXVsdChbJDFdLCBb JyR7bGliZGlyfS9wa2djb25maWcnXSldKQorK200X3B1c2hkZWYoW3BrZ19kZXNjcmlwdGlvbl0s CisrICAgIFtwa2ctY29uZmlnIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkgQDw6QF1wa2dfZGVmYXVs dFtAOj5AXSkKKytBQ19BUkdfV0lUSChbcGtnY29uZmlnZGlyXSwKKysgICAgW0FTX0hFTFBfU1RS SU5HKFstLXdpdGgtcGtnY29uZmlnZGlyXSwgcGtnX2Rlc2NyaXB0aW9uKV0sLAorKyAgICBbd2l0 aF9wa2djb25maWdkaXI9XXBrZ19kZWZhdWx0KQorK0FDX1NVQlNUKFtwa2djb25maWdkaXJdLCBb JHdpdGhfcGtnY29uZmlnZGlyXSkKKyttNF9wb3BkZWYoW3BrZ19kZWZhdWx0XSkKKyttNF9wb3Bk ZWYoW3BrZ19kZXNjcmlwdGlvbl0pCisrXSkgZG5sIFBLR19JTlNUQUxMRElSCisrCisrCisrIyBQ S0dfTk9BUkNIX0lOU1RBTExESVIoRElSRUNUT1JZKQorKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyMgU3Vic3RpdHV0ZXMgdGhlIHZhcmlhYmxlIG5vYXJjaF9wa2djb25maWdkaXIgYXMg dGhlIGxvY2F0aW9uIHdoZXJlIGEKKysjIG1vZHVsZSBzaG91bGQgaW5zdGFsbCBhcmNoLWluZGVw ZW5kZW50IHBrZy1jb25maWcgLnBjIGZpbGVzLiBCeQorKyMgZGVmYXVsdCB0aGUgZGlyZWN0b3J5 IGlzICRkYXRhZGlyL3BrZ2NvbmZpZywgYnV0IHRoZSBkZWZhdWx0IGNhbiBiZQorKyMgY2hhbmdl ZCBieSBwYXNzaW5nIERJUkVDVE9SWS4gVGhlIHVzZXIgY2FuIG92ZXJyaWRlIHRocm91Z2ggdGhl CisrIyAtLXdpdGgtbm9hcmNoLXBrZ2NvbmZpZ2RpciBwYXJhbWV0ZXIuCisrQUNfREVGVU4oW1BL R19OT0FSQ0hfSU5TVEFMTERJUl0sCisrW200X3B1c2hkZWYoW3BrZ19kZWZhdWx0XSwgW200X2Rl ZmF1bHQoWyQxXSwgWycke2RhdGFkaXJ9L3BrZ2NvbmZpZyddKV0pCisrbTRfcHVzaGRlZihbcGtn X2Rlc2NyaXB0aW9uXSwKKysgICAgW3BrZy1jb25maWcgYXJjaC1pbmRlcGVuZGVudCBpbnN0YWxs YXRpb24gZGlyZWN0b3J5IEA8OkBdcGtnX2RlZmF1bHRbQDo+QF0pCisrQUNfQVJHX1dJVEgoW25v YXJjaC1wa2djb25maWdkaXJdLAorKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1ub2FyY2gt cGtnY29uZmlnZGlyXSwgcGtnX2Rlc2NyaXB0aW9uKV0sLAorKyAgICBbd2l0aF9ub2FyY2hfcGtn Y29uZmlnZGlyPV1wa2dfZGVmYXVsdCkKKytBQ19TVUJTVChbbm9hcmNoX3BrZ2NvbmZpZ2Rpcl0s IFskd2l0aF9ub2FyY2hfcGtnY29uZmlnZGlyXSkKKyttNF9wb3BkZWYoW3BrZ19kZWZhdWx0XSkK KyttNF9wb3BkZWYoW3BrZ19kZXNjcmlwdGlvbl0pCisrXSkgZG5sIFBLR19OT0FSQ0hfSU5TVEFM TERJUgorKworKworKyMgUEtHX0NIRUNLX1ZBUihWQVJJQUJMRSwgTU9EVUxFLCBDT05GSUctVkFS SUFCTEUsCisrIyBbQUNUSU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQorKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyMgUmV0cmlldmVz IHRoZSB2YWx1ZSBvZiB0aGUgcGtnLWNvbmZpZyB2YXJpYWJsZSBmb3IgdGhlIGdpdmVuIG1vZHVs ZS4KKytBQ19ERUZVTihbUEtHX0NIRUNLX1ZBUl0sCisrW0FDX1JFUVVJUkUoW1BLR19QUk9HX1BL R19DT05GSUddKWRubAorK0FDX0FSR19WQVIoWyQxXSwgW3ZhbHVlIG9mICQzIGZvciAkMiwgb3Zl cnJpZGluZyBwa2ctY29uZmlnXSlkbmwKICsKLSsJICBoID0gcnBtZGJOZXh0SXRlcmF0b3JfcCAo bWkpOwotKwkgIGlmIChoID09IE5VTEwpCi0rCSAgICBicmVhazsKKytfUEtHX0NPTkZJRyhbJDFd LCBbdmFyaWFibGU9Il1bJDNdWyJdLCBbJDJdKQorK0FTX1ZBUl9DT1BZKFskMV0sIFtwa2dfY3Zf XVskMV0pCiArCi0rCSAgLyogVmVyaWZ5IHRoZSBkZWJ1Z2luZm8gZmlsZSBpcyBub3QgYWxyZWFk eSBpbnN0YWxsZWQuICAqLworK0FTX1ZBUl9JRihbJDFdLCBbIiJdLCBbJDVdLCBbJDRdKWRubAor K10pIyBQS0dfQ0hFQ0tfVkFSCiArCi0rCSAgZGVidWdpbmZvID0gaGVhZGVyRm9ybWF0X3AgKGgs ICIle3NvdXJjZXJwbX0tZGVidWdpbmZvLiV7YXJjaH0iLAotKwkJCQkgICAgICAmZXJyKTsKLSsJ ICBpZiAoIWRlYnVnaW5mbykKLSsJICAgIHsKLSsJICAgICAgd2FybmluZyAoXygiRXJyb3IgcXVl cnlpbmcgdGhlIHJwbSBmaWxlIGAlcyc6ICVzIiksIGZpbGVuYW1lLAotKwkgICAgICAgICAgICAg ICBlcnIpOwotKwkgICAgICBjb250aW51ZTsKLSsJICAgIH0KLSsJICAvKiBzID0gYC5zcmMucnBt LWRlYnVnaW5mby4le2FyY2h9JyAqLwotKwkgIHMgPSBzdHJyY2hyIChkZWJ1Z2luZm8sICctJykg LSBzcmNycG1sZW47Ci0rCSAgczIgPSBOVUxMOwotKwkgIGlmIChzID4gZGVidWdpbmZvICYmIG1l bWNtcCAocywgIi5zcmMucnBtIiwgc3JjcnBtbGVuKSA9PSAwKQotKwkgICAgewotKwkgICAgICAv KiBzMiA9IGAtJXtyZWxlYXNlfS5zcmMucnBtLWRlYnVnaW5mby4le2FyY2h9JyAqLwotKwkgICAg ICBzMiA9IG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzIC0gZGVidWdpbmZvKTsKLSsJICAgIH0K LSsJICBpZiAoczIpCi0rCSAgICB7Ci0rCSAgICAgIC8qIHMyID0gYC0le3ZlcnNpb259LSV7cmVs ZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KLSsJICAgICAgczIgPSBtZW1yY2hy IChkZWJ1Z2luZm8sICctJywgczIgLSBkZWJ1Z2luZm8pOwotKwkgICAgfQotKwkgIGlmICghczIp Ci0rCSAgICB7Ci0rCSAgICAgIHdhcm5pbmcgKF8oIkVycm9yIHF1ZXJ5aW5nIHRoZSBycG0gZmls ZSBgJXMnOiAlcyIpLCBmaWxlbmFtZSwKLSsJICAgICAgICAgICAgICAgZGVidWdpbmZvKTsKLSsJ ICAgICAgeGZyZWUgKGRlYnVnaW5mbyk7Ci0rCSAgICAgIGNvbnRpbnVlOwotKwkgICAgfQotKwkg IC8qIHMgPSBgLnNyYy5ycG0tZGVidWdpbmZvLiV7YXJjaH0nICovCi0rCSAgLyogczIgPSBgLSV7 dmVyc2lvbn0tJXtyZWxlYXNlfS5zcmMucnBtLWRlYnVnaW5mby4le2FyY2h9JyAqLwotKwkgIG1l bW1vdmUgKHMyICsgZGVidWdpbmZvbGVuLCBzMiwgcyAtIHMyKTsKLSsJICBtZW1jcHkgKHMyLCAi LWRlYnVnaW5mbyIsIGRlYnVnaW5mb2xlbik7Ci0rCSAgLyogcyA9IGBYWFhYLiV7YXJjaH0nICov Ci0rCSAgLyogc3RybGVuICgiWFhYWCIpID09IHNyY3JwbWxlbiArIGRlYnVnaW5mb2xlbiAqLwot KwkgIC8qIHMyID0gYC1kZWJ1Z2luZm8tJXt2ZXJzaW9ufS0le3JlbGVhc2V9WFguJXthcmNofScg Ki8KLSsJICAvKiBzdHJsZW4gKCJYWCIpID09IHNyY3JwbWxlbiAqLwotKwkgIG1lbW1vdmUgKHMg KyBkZWJ1Z2luZm9sZW4sIHMgKyBzcmNycG1sZW4gKyBkZWJ1Z2luZm9sZW4sCi0rCQkgICBzdHJs ZW4gKHMgKyBzcmNycG1sZW4gKyBkZWJ1Z2luZm9sZW4pICsgMSk7Ci0rCSAgLyogcyA9IGAtZGVi dWdpbmZvLSV7dmVyc2lvbn0tJXtyZWxlYXNlfS4le2FyY2h9JyAqLworICMgQU1fQVVYX0RJUl9F WFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29u ZiAtKi0KKyAKKyAjIENvcHlyaWdodCAoQykgMjAwMSwgMjAwMywgMjAwNSAgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29uZmln LmluCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9jb25maWcu aW4JMjAxNC0wMi0wNiAxNzoxODoyNi45NzE3MTcyMTYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9jb25maWcuaW4JMjAxNC0wMi0wNiAxNzoxODozMy44Njg3MjQ2NjkgKzAxMDAK K0BAIC0zMyw2ICszMyw5IEBACisgLyogRGVmaW5lIHRvIEJGRCdzIGRlZmF1bHQgdGFyZ2V0IHZl Y3Rvci4gKi8KKyAjdW5kZWYgREVGQVVMVF9CRkRfVkVDCisgCisrLyogbGlicnBtIHZlcnNpb24g c3BlY2lmaWMgbGlicmFyeSBuYW1lIHRvIGRsb3Blbi4gKi8KKysjdW5kZWYgRExPUEVOX0xJQlJQ TQogKwotKwkgIC8qIFJQTURCSV9QQUNLQUdFUyByZXF1aXJlcyBrZXlsZW4gPT0gc2l6ZW9mIChp bnQpLiAgKi8KLSsJICAvKiBSUE1EQklfTEFCRUwgaXMgYW4gaW50ZXJmYWNlIGZvciBOVlItYmFz ZWQgZGJpRmluZEJ5TGFiZWwoKS4gICovCi0rCSAgbWlfZGVidWdpbmZvID0gcnBtdHNJbml0SXRl cmF0b3JfcCAodHMsIFJQTURCSV9MQUJFTCwgZGVidWdpbmZvLCAwKTsKLSsJICB4ZnJlZSAoZGVi dWdpbmZvKTsKLSsJICBpZiAobWlfZGVidWdpbmZvKQotKwkgICAgewotKwkgICAgICBycG1kYkZy ZWVJdGVyYXRvcl9wIChtaV9kZWJ1Z2luZm8pOwotKwkgICAgICBjb3VudCA9IDA7Ci0rCSAgICAg IGJyZWFrOwotKwkgICAgfQorIC8qIERlZmluZSB0byAxIGlmIHRyYW5zbGF0aW9uIG9mIHByb2dy YW0gbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBuYXRpdmUKKyAgICBsYW5ndWFnZSBpcyByZXF1ZXN0 ZWQuICovCisgI3VuZGVmIEVOQUJMRV9OTFMKK0BAIC0yMDcsNiArMjEwLDkgQEAKKyAvKiBEZWZp bmUgaWYgUHl0aG9uIDIuNyBpcyBiZWluZyB1c2VkLiAqLworICN1bmRlZiBIQVZFX0xJQlBZVEhP TjJfNworIAorKy8qIERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBiZWluZyB1c2VkLiAqLwor KyN1bmRlZiBIQVZFX0xJQlJQTQogKwotKwkgIC8qIFRoZSBhbGxvY2F0ZWQgbWVtb3J5IGdldHMg dXRpbGl6ZWQgYmVsb3cgZm9yIE1JU1NJTkdfUlBNX0hBU0guICAqLwotKwkgIGRlYnVnaW5mbyA9 IGhlYWRlckZvcm1hdF9wIChoLAotKwkJCQkgICAgICAiJXtuYW1lfS0le3ZlcnNpb259LSV7cmVs ZWFzZX0uJXthcmNofSIsCi0rCQkJCSAgICAgICZlcnIpOwotKwkgIGlmICghZGVidWdpbmZvKQot KwkgICAgewotKwkgICAgICB3YXJuaW5nIChfKCJFcnJvciBxdWVyeWluZyB0aGUgcnBtIGZpbGUg YCVzJzogJXMiKSwgZmlsZW5hbWUsCi0rCSAgICAgICAgICAgICAgIGVycik7Ci0rCSAgICAgIGNv bnRpbnVlOwotKwkgICAgfQorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGlidW53 aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCisgI3VuZGVmIEhBVkVfTElCVU5XSU5EX0lBNjRf SAorIAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZ3VyZQorPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY29uZmlndXJlCTIwMTQtMDItMDYg MTc6MTg6MjYuOTc2NzE3MjIxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29u ZmlndXJlCTIwMTQtMDItMDYgMTc6MTg6MzMuODcyNzI0NjczICswMTAwCitAQCAtNjg5LDYgKzY4 OSwxMSBAQCBQS0dWRVJTSU9OCisgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCisgVEFSR0VUX09C UworIHN1YmRpcnMKKytSUE1fTElCUworK1JQTV9DRkxBR1MKKytQS0dfQ09ORklHX0xJQkRJUgor K1BLR19DT05GSUdfUEFUSAorK1BLR19DT05GSUcKKyBHREJfREFUQURJUgorIERFQlVHRElSCisg TUFLRUlORk9fRVhUUkFfRkxBR1MKK0BAIC03OTIsNiArNzk3LDcgQEAgd2l0aF9nZGJfZGF0YWRp cgorIHdpdGhfcmVsb2NhdGVkX3NvdXJjZXMKKyB3aXRoX2F1dG9fbG9hZF9kaXIKKyB3aXRoX2F1 dG9fbG9hZF9zYWZlX3BhdGgKKyt3aXRoX3JwbQorIGVuYWJsZV90YXJnZXRzCisgZW5hYmxlXzY0 X2JpdF9iZmQKKyBlbmFibGVfZ2RiY2xpCitAQCAtODQyLDYgKzg0OCwxMSBAQCBDUFBGTEFHUwor IENQUAorIE1BS0VJTkZPCisgTUFLRUlORk9GTEFHUworK1BLR19DT05GSUcKKytQS0dfQ09ORklH X1BBVEgKKytQS0dfQ09ORklHX0xJQkRJUgorK1JQTV9DRkxBR1MKKytSUE1fTElCUworIFlBQ0MK KyBZRkxBR1MKKyBYTUtNRicKK0BAIC0xNTEyLDYgKzE1MjMsOCBAQCBPcHRpb25hbCBQYWNrYWdl czoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFstLXdpdGgtYXV0by1sb2FkLWRpcl0KKyAg IC0td2l0aG91dC1hdXRvLWxvYWQtc2FmZS1wYXRoCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBkbyBub3QgcmVzdHJpY3QgYXV0by1sb2FkZWQgZmlsZXMgbG9jYXRpb25zCisrICAtLXdpdGgt cnBtICAgICAgICAgICAgICBxdWVyeSBycG0gZGF0YWJhc2UgZm9yIG1pc3NpbmcgZGVidWdpbmZv cyAoeWVzL25vLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmLiBhdXRvPWxpYnJwbS5z bykKKyAgIC0td2l0aC1saWJ1bndpbmQtaWE2NCAgIHVzZSBsaWJ1bndpbmQgZnJhbWUgdW53aW5k aW5nIGZvciBpYTY0IHRhcmdldHMKKyAgIC0td2l0aC1jdXJzZXMgICAgICAgICAgIHVzZSB0aGUg Y3Vyc2VzIGxpYnJhcnkgaW5zdGVhZCBvZiB0aGUgdGVybWNhcAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlicmFyeQorQEAgLTE1NTksNiArMTU3MiwxMyBAQCBTb21lIGluZmx1ZW50aWFs IGVudmlyb25tZW50IHZhcmlhYmxlczoKKyAgIE1BS0VJTkZPICAgIFBhcmVudCBjb25maWd1cmUg ZGV0ZWN0cyBpZiBpdCBpcyBvZiBzdWZmaWNpZW50IHZlcnNpb24uCisgICBNQUtFSU5GT0ZMQUdT CisgICAgICAgICAgICAgICBQYXJhbWV0ZXJzIGZvciBNQUtFSU5GTy4KKysgIFBLR19DT05GSUcg IHBhdGggdG8gcGtnLWNvbmZpZyB1dGlsaXR5CisrICBQS0dfQ09ORklHX1BBVEgKKysgICAgICAg ICAgICAgIGRpcmVjdG9yaWVzIHRvIGFkZCB0byBwa2ctY29uZmlnJ3Mgc2VhcmNoIHBhdGgKKysg IFBLR19DT05GSUdfTElCRElSCisrICAgICAgICAgICAgICBwYXRoIG92ZXJyaWRpbmcgcGtnLWNv bmZpZydzIGJ1aWx0LWluIHNlYXJjaCBwYXRoCisrICBSUE1fQ0ZMQUdTICBDIGNvbXBpbGVyIGZs YWdzIGZvciBSUE0sIG92ZXJyaWRpbmcgcGtnLWNvbmZpZworKyAgUlBNX0xJQlMgICAgbGlua2Vy IGZsYWdzIGZvciBSUE0sIG92ZXJyaWRpbmcgcGtnLWNvbmZpZworICAgWUFDQyAgICAgICAgVGhl IGBZZXQgQW5vdGhlciBDIENvbXBpbGVyJyBpbXBsZW1lbnRhdGlvbiB0byB1c2UuIERlZmF1bHRz IHRvCisgICAgICAgICAgICAgICB0aGUgZmlyc3QgcHJvZ3JhbSBmb3VuZCBvdXQgb2Y6IGBiaXNv biAteScsIGBieWFjYycsIGB5YWNjJy4KKyAgIFlGTEFHUyAgICAgIFRoZSBsaXN0IG9mIGFyZ3Vt ZW50cyB0aGF0IHdpbGwgYmUgcGFzc2VkIGJ5IGRlZmF1bHQgdG8gJFlBQ0MuCitAQCAtNTE1NCw2 ICs1MTc0LDQ5MSBAQCBfQUNFT0YKKyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY1CisgJGFzX2VjaG8g IiR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNjsgfQorIAorKyMgSW50ZWdyYXRpb24gd2l0 aCBycG0gbGlicmFyeSB0byBzdXBwb3J0IG1pc3NpbmcgZGVidWdpbmZvIHN1Z2dlc3Rpb25zLgor KyMgLS13aXRob3V0LXJwbTogRGlzYWJsZSBhbnkgcnBtIHN1cHBvcnQuCisrIyAtLXdpdGgtcnBt PWxpYm5hbWUuc286IFRyeSB0byBkeW5hbWljYWxseSBvcGVuIGBsaWJuYW1lLnNvJyBkdXJpbmcg cnVudGltZS4KKysjICAgRXZlbiB3aXRoIHJ1bnRpbWUgbWlzc2luZyBgbGlibmFtZS5zbycgR0RC IHdpbGwgc3RpbGwgb3RoZXIgcnVuIGNvcnJlY3RseS4KKysjICAgTWlzc2luZyBgbGlibmFtZS5z bycgZHVyaW5nIC4vY29uZmlndXJlIHdpbGwgYWJvcnQgdGhlIGNvbmZpZ3VyYXRpb24uCisrIyAt LXdpdGgtcnBtPWxpYnJwbS5zbzogTGlrZSBgLS13aXRoLXJwbT1saWJuYW1lLnNvJyBidXQgdHJ5 IHRvIGZpbmQgc3BlY2lmaWMKKysjICAgbWlub3IgdmVyc2lvbiBmaXJzdCBzdWNoIGFzIGBsaWJy cG0tNC42LnNvJyBhcyBtaW5vciB2ZXJzaW9uIGRpZmZlcmVuY2VzCisrIyAgIG1lYW4gQVBJK0FC SSBpbmNvbXBhdGliaWxpdHkuICBJZiB0aGUgc3BlY2lmaWMgbWF0Y2ggdmVyc2lvbmVkIGxpYnJh cnkgbmFtZQorKyMgICBjb3VsZCBub3QgYmUgZm91bmQgc3RpbGwgb3BlbiBkeW5hbWljYWxseSBh dCBsZWFzdCBgbGlicnBtLnNvJy4KKysjIC0td2l0aC1ycG06IExpa2UgYC0td2l0aC1ycG09bGli cnBtLnNvJyBidXQgaWYgYW55IG9mIGl0cyBkZXRlY3Rpb24gZmFpbHMgdHJ5CisrIyAgIHRvIGZp bmQgbGlicnBtIGZvciBjb21waWxhdGlvbi10aW1lIGxpbmtpbmcgYnkgcGtnLWNvbmZpZy4gIEdE QiBiaW5hcnkgd2lsbAorKyMgICBiZSBwcm9iYWJseSBsaW5rZWQgd2l0aCB0aGUgdmVyc2lvbiBz cGVjaWZpYyBsaWJyYXJ5IChhcyBgbGlicnBtLTQuNi5zbycpLgorKyMgICBGYWlsdXJlIHRvIGZp bmQgbGlicnBtIGJ5IHBrZy1jb25maWcgd2lsbCBhYm9ydCB0aGUgY29uZmlndXJhdGlvbi4KKysj IChkZWZhdWx0KSAtLXdpdGgtcnBtPWF1dG86IExpa2UgYC0td2l0aC1ycG09bGlicnBtLnNvJyBi dXQgaWYgZXZlbiBwa2ctY29uZmlnCisrIyAgIGNhbm5vdCBmaW5kIGxpYnJwbSB1c2UgdG8gdGhl IHJwbWxlc3MgY29tcGlsYXRpb24gKGxpa2UgYC0td2l0aG91dC1ycG0nKS4KICsKLSsJICAvKiBC YXNlIHBhY2thZ2UgbmFtZSBmb3IgYGRlYnVnaW5mby1pbnN0YWxsJy4gIFdlIGRvIG5vdCB1c2Ug dGhlCi0rCSAgICAgYHl1bScgY29tbWFuZCBkaXJlY3RseSBhcyB0aGUgbGluZQotKwkJIHl1bSAt LWVuYWJsZXJlcG89JypkZWJ1ZyonIGluc3RhbGwgTkFNRS1kZWJ1Z2luZm8uQVJDSAotKwkgICAg IHdvdWxkIGJlIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBqdXN0OgotKwkJIGRlYnVnaW5mby1pbnN0 YWxsIE5BTUUtVkVSU0lPTi1SRUxFQVNFLkFSQ0gKLSsJICAgICBEbyBub3Qgc3VwcGx5IHRoZSBy cG0gYmFzZSBuYW1lIChkZXJpdmVkIGZyb20gLnNyYy5ycG0gbmFtZSkgYXMKLSsJICAgICBkZWJ1 Z2luZm8taW5zdGFsbCBpcyB1bmFibGUgdG8gaW5zdGFsbCB0aGUgZGVidWdpbmZvIHBhY2thZ2Ug aWYKLSsJICAgICB0aGUgYmFzZSBuYW1lIFBLRyBiaW5hcnkgcnBtIGlzIG5vdCBpbnN0YWxsZWQg d2hpbGUgZm9yIGV4YW1wbGUKLSsJICAgICBQS0ctbGlicyB3b3VsZCBiZSBpbnN0YWxsZWQgKFJI IEJ1ZyA0Njc5MDEpLgotKwkgICAgIEZVVFVSRTogQWZ0ZXIgbXVsdGlwbGUgZGVidWdpbmZvIHZl cnNpb25zIHNpbXVsdGFuZW91c2x5IGluc3RhbGxlZAotKwkgICAgIGdldCBzdXBwb3J0ZWQgdGhl IHN1cHBvcnQgZm9yIHRoZSBWRVJTSU9OLVJFTEVBU0UgdGFncyBoYW5kbGluZwotKwkgICAgIG1h eSBuZWVkIGFuIHVwZGF0ZS4gICovCiArCi0rCSAgaWYgKG1pc3NpbmdfcnBtX2hhc2ggPT0gTlVM TCkKLSsJICAgIHsKLSsJICAgICAgLyogREVMX0YgaXMgcGFzc2VkIE5VTEwgYXMgTUlTU0lOR19S UE1fTElTVCdzIEhUQUJfREVMRVRFCi0rCQkgc2hvdWxkIG5vdCBkZWFsbG9jYXRlIHRoZSBlbnRy aWVzLiAgKi8KKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLXJwbSB3YXMgZ2l2ZW4uCisraWYgdGVz dCAiJHt3aXRoX3JwbStzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFsPSR3aXRoX3JwbTsK KytlbHNlCisrICB3aXRoX3JwbT0iYXV0byIKKytmaQogKwotKwkgICAgICBtaXNzaW5nX3JwbV9o YXNoID0gaHRhYl9jcmVhdGVfYWxsb2MgKDY0LCBodGFiX2hhc2hfc3RyaW5nLAotKwkJCSAgICAg ICAoaW50ICgqKSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKSBzdHJlcSwKLSsJCQkJCQkg ICAgTlVMTCwgeGNhbGxvYywgeGZyZWUpOwotKwkgICAgfQotKwkgIHNsb3QgPSAoY2hhciAqKikg aHRhYl9maW5kX3Nsb3QgKG1pc3NpbmdfcnBtX2hhc2gsIGRlYnVnaW5mbywgSU5TRVJUKTsKLSsJ ICAvKiBYQ0FMTE9DIG5ldmVyIHJldHVybnMgTlVMTC4gICovCi0rCSAgZ2RiX2Fzc2VydCAoc2xv dCAhPSBOVUxMKTsKLSsJICBpZiAoKnNsb3QgPT0gTlVMTCkKLSsJICAgIHsKLSsJICAgICAgc3Ry dWN0IG1pc3NpbmdfcnBtICptaXNzaW5nX3JwbTsKICsKLSsJICAgICAgKnNsb3QgPSBkZWJ1Z2lu Zm87CiArCi0rCSAgICAgIG1pc3NpbmdfcnBtID0geG1hbGxvYyAoc2l6ZW9mICgqbWlzc2luZ19y cG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsKLSsJICAgICAgc3RyY3B5IChtaXNzaW5nX3JwbS0+ cnBtLCBkZWJ1Z2luZm8pOwotKwkgICAgICBtaXNzaW5nX3JwbS0+bmV4dCA9IG1pc3NpbmdfcnBt X2xpc3Q7Ci0rCSAgICAgIG1pc3NpbmdfcnBtX2xpc3QgPSBtaXNzaW5nX3JwbTsKLSsJICAgICAg bWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKys7Ci0rCSAgICB9Ci0rCSAgZWxzZQotKwkgICAgeGZy ZWUgKGRlYnVnaW5mbyk7Ci0rCSAgY291bnQrKzsKLSsJfQogKwotKyAgICAgIHJwbWRiRnJlZUl0 ZXJhdG9yX3AgKG1pKTsKLSsgICAgfQorK2lmIHRlc3QgIngkd2l0aF9ycG0iICE9ICJ4bm8iOyB0 aGVuCisrICBpZiB0ZXN0ICJ4JHdpdGhfcnBtIiA9ICJ4eWVzIjsgdGhlbgorKyAgICBMSUJSUE09 ImxpYnJwbS5zbyIKKysgICAgUlBNX1JFUVVJUkU9dHJ1ZQorKyAgICBETE9QRU5fUkVRVUlSRT1m YWxzZQorKyAgZWxpZiB0ZXN0ICJ4JHdpdGhfcnBtIiA9ICJ4YXV0byI7IHRoZW4KKysgICAgTElC UlBNPSJsaWJycG0uc28iCisrICAgIFJQTV9SRVFVSVJFPWZhbHNlCisrICAgIERMT1BFTl9SRVFV SVJFPWZhbHNlCisrICBlbHNlCisrICAgIExJQlJQTT0iJHdpdGhfcnBtIgorKyAgICBSUE1fUkVR VUlSRT10cnVlCisrICAgIERMT1BFTl9SRVFVSVJFPXRydWUKKysgIGZpCisrICBMSUJSUE1fU1RS SU5HPSciJyIkTElCUlBNIiciJwogKwotKyAgcnBtdHNGcmVlX3AgKHRzKTsKKysgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgc3BlY2lmaWMgbGlicnBt IHZlcnNpb24iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIHNwZWNpZmljIGxpYnJwbSB2ZXJz aW9uLi4uICIgPiY2OyB9CisrICBIQVZFX0RMT1BFTl9MSUJSUE09ZmFsc2UKKysgIHNhdmVfTElC Uz0iJExJQlMiCisrICBMSUJTPSIkTElCUyAtbGRsIgorKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBp bGluZyIgPSB5ZXM7IHRoZW4gOgorKyAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQorK2FzX2ZuX2Vycm9yICJjYW5ub3QgcnVuIHRl c3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKKytTZWUgXGBjb25maWcubG9nJyBmb3Ig bW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH0KKytlbHNlCisrICBjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisrLyogZW5kIGNvbmZkZWZzLmguICAqLwogKwot KyAgcmV0dXJuIGNvdW50OwotK30KKysjaW5jbHVkZSA8cnBtL3JwbWxpYi5oPgorKyNpbmNsdWRl IDxkbGZjbi5oPgorKyNpbmNsdWRlIDxlcnJuby5oPgogKwotK3N0YXRpYyBpbnQKLSttaXNzaW5n X3JwbV9saXN0X2NvbXBhciAoY29uc3QgY2hhciAqY29uc3QgKmFwLCBjb25zdCBjaGFyICpjb25z dCAqYnApCisraW50CisrbWFpbiAoKQogK3sKLSsgIHJldHVybiBzdHJjb2xsICgqYXAsICpicCk7 Ci0rfQogKwotKy8qIEl0IHJldHVybnMgYSBOVUxMLXRlcm1pbmF0ZWQgYXJyYXkgb2Ygc3RyaW5n cyBuZWVkaW5nIHRvIGJlIEZSRUVkLiAgSXQgbWF5Ci0rICAgYWxzbyByZXR1cm4gb25seSBOVUxM LiAgKi8KKysgICAgdm9pZCAqaDsKKysgICAgY29uc3QgY2hhciAqY29uc3QgKnJwbXZlcnA7Cisr ICAgIEZJTEUgKmY7CiArCi0rc3RhdGljIHZvaWQKLSttaXNzaW5nX3JwbV9saXN0X3ByaW50ICh2 b2lkKQotK3sKLSsgIGNoYXIgKiphcnJheSwgKiphcnJheV9pdGVyOwotKyAgc3RydWN0IG1pc3Np bmdfcnBtICpsaXN0X2l0ZXI7Ci0rICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHM7CisrICAgIGYg PSBmb3BlbiAoImNvbmZ0ZXN0Lm91dCIsICJ3Iik7CisrICAgIGlmICghZikKKysgICAgICB7Cisr CWZwcmludGYgKHN0ZGVyciwgIkNhbm5vdCB3cml0ZSBcIiVzXCI6ICVzXG4iLCAiY29uZnRlc3Qu b3V0IiwKKysJCSBzdHJlcnJvciAoZXJybm8pKTsKKysJcmV0dXJuIDE7CisrICAgICAgfQorKyAg ICBoID0gZGxvcGVuICgkTElCUlBNX1NUUklORywgUlRMRF9MQVpZKTsKKysgICAgaWYgKCFoKQor KyAgICAgIHsKKysJZnByaW50ZiAoc3RkZXJyLCAiZGxvcGVuIChcIiVzXCIpOiAlc1xuIiwgJExJ QlJQTV9TVFJJTkcsIGRsZXJyb3IgKCkpOworKwlyZXR1cm4gMTsKKysgICAgICB9CisrICAgIHJw bXZlcnAgPSBkbHN5bSAoaCwgIlJQTVZFUlNJT04iKTsKKysgICAgaWYgKCFycG12ZXJwKQorKyAg ICAgIHsKKysJZnByaW50ZiAoc3RkZXJyLCAiZGxzeW0gKFwiUlBNVkVSU0lPTlwiKTogJXNcbiIs IGRsZXJyb3IgKCkpOworKwlyZXR1cm4gMTsKKysgICAgICB9CisrICAgIGZwcmludGYgKHN0ZGVy ciwgIlJQTVZFUlNJT04gaXM6IFwiIik7CisrICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXCJcbiIs ICpycG12ZXJwKTsKICsKLSsgIGlmIChtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMgPT0gMCkKLSsg ICAgcmV0dXJuOworKyAgICAvKiBUcnkgdG8gZmluZCB0aGUgc3BlY2lmaWMgbGlicnBtIHZlcnNp b24gb25seSBmb3IgImxpYnJwbS5zbyIgYXMgd2UgZG8KKysgICAgICAgbm90IGtub3cgaG93IHRv IGFzc2VtYmxlIHRoZSB2ZXJzaW9uIHN0cmluZyBvdGhlcndpc2UuICAqLwogKwotKyAgYXJyYXkg PSB4bWFsbG9jIChzaXplb2YgKCphcnJheSkgKiBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMpOwot KyAgY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBhcnJheSk7CisrICAgIGlmIChzdHJj bXAgKCJsaWJycG0uc28iLCAkTElCUlBNX1NUUklORykgIT0gMCkKKysgICAgICB7CisrCWZwcmlu dGYgKGYsICIlc1xuIiwgJExJQlJQTV9TVFJJTkcpOworKwlyZXR1cm4gMDsKKysgICAgICB9Cisr ICAgIGVsc2UKKysgICAgICB7CisrCWNoYXIgKmgyX25hbWU7CisrCXZvaWQgKmgyOworKwlpbnQg bWFqb3IsIG1pbm9yOwogKwotKyAgYXJyYXlfaXRlciA9IGFycmF5OwotKyAgZm9yIChsaXN0X2l0 ZXIgPSBtaXNzaW5nX3JwbV9saXN0OyBsaXN0X2l0ZXIgIT0gTlVMTDsKLSsgICAgICAgbGlzdF9p dGVyID0gbGlzdF9pdGVyLT5uZXh0KQotKyAgICB7Ci0rICAgICAgKmFycmF5X2l0ZXIrKyA9IGxp c3RfaXRlci0+cnBtOwotKyAgICB9Ci0rICBnZGJfYXNzZXJ0IChhcnJheV9pdGVyID09IGFycmF5 ICsgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKTsKKysJaWYgKHNzY2FuZiAoKnJwbXZlcnAsICIl ZC4lZCIsICZtYWpvciwgJm1pbm9yKSAhPSAyKQorKwkgIHsKKysJICAgIGZwcmludGYgKHN0ZGVy ciwgIlVuYWJsZSB0byBwYXJzZSBSUE1WRVJTSU9OLlxuIik7CisrCSAgICBmcHJpbnRmIChmLCAi JXNcbiIsICRMSUJSUE1fU1RSSU5HKTsKKysJICAgIHJldHVybiAwOworKwkgIH0KKysJLyogQXZv aWQgdGhlIHNxdWFyZSBicmFja2V0cyBieSBtYWxsb2MuICAqLworKwloMl9uYW1lID0gbWFsbG9j ICg2NCk7CisrCXNwcmludGYgKGgyX25hbWUsICJsaWJycG0tJWQuJWQuc28iLCBtYWpvciwgbWlu b3IpOworKwloMiA9IGRsb3BlbiAoaDJfbmFtZSwgUlRMRF9MQVpZKTsKKysJaWYgKCFoMikKKysJ ICB7CisrCSAgICBmcHJpbnRmIChzdGRlcnIsICJkbG9wZW4gKFwiJXNcIik6ICVzXG4iLCBoMl9u YW1lLCBkbGVycm9yICgpKTsKKysJICAgIGZwcmludGYgKGYsICIlc1xuIiwgJExJQlJQTV9TVFJJ TkcpOworKwkgICAgcmV0dXJuIDA7CisrCSAgfQorKwlpZiAoaDIgIT0gaCkKKysJICB7CisrCSAg ICBmcHJpbnRmIChzdGRlcnIsICJkbG9wZW4gb2YgXCIlc1wiIGFuZCBcIiVzXCIgYXJlIGRpZmZl cmVudC5cbiIsCisrCQkgICAgICRMSUJSUE1fU1RSSU5HLCBoMl9uYW1lKTsKKysJICAgIGZwcmlu dGYgKGYsICIlc1xuIiwgJExJQlJQTV9TVFJJTkcpOworKwkgICAgcmV0dXJuIDA7CisrCSAgfQor KwkvKiBGb3VuZCB0aGUgdmFsaWQgLnNvIG5hbWUgd2l0aCBhIHNwZWNpZmljIHZlcnNpb24uICAq LworKwlmcHJpbnRmIChmLCAiJXNcbiIsIGgyX25hbWUpOworKwlyZXR1cm4gMDsKKysgICAgICB9 CiArCi0rICBxc29ydCAoYXJyYXksIG1pc3NpbmdfcnBtX2xpc3RfZW50cmllcywgc2l6ZW9mICgq YXJyYXkpLAotKwkgKGludCAoKikgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqKSkgbWlzc2lu Z19ycG1fbGlzdF9jb21wYXIpOworKyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lm IGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgogKwotKyAgcHJpbnRmX3VuZmlsdGVy ZWQgKF8oIk1pc3Npbmcgc2VwYXJhdGUgZGVidWdpbmZvcywgdXNlOiAlcyIpLAotKwkJICAgICAi ZGVidWdpbmZvLWluc3RhbGwiKTsKLSsgIGZvciAoYXJyYXlfaXRlciA9IGFycmF5OyBhcnJheV9p dGVyIDwgYXJyYXkgKyBtaXNzaW5nX3JwbV9saXN0X2VudHJpZXM7Ci0rICAgICAgIGFycmF5X2l0 ZXIrKykKLSsgICAgewotKyAgICAgIHB1dGNoYXJfdW5maWx0ZXJlZCAoJyAnKTsKLSsgICAgICBw dXRzX3VuZmlsdGVyZWQgKCphcnJheV9pdGVyKTsKLSsgICAgfQotKyAgcHV0Y2hhcl91bmZpbHRl cmVkICgnXG4nKTsKKysgICAgRExPUEVOX0xJQlJQTT0iYGNhdCBjb25mdGVzdC5vdXRgIgorKyAg ICBpZiB0ZXN0ICJ4JERMT1BFTl9MSUJSUE0iICE9ICJ4IjsgdGhlbgorKyAgICAgIEhBVkVfRExP UEVOX0xJQlJQTT10cnVlCisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRETE9QRU5fTElCUlBNIiA+JjUKKyskYXNfZWNobyAiJERMT1BFTl9M SUJSUE0iID4mNjsgfQorKyAgICBmaQogKwotKyAgd2hpbGUgKG1pc3NpbmdfcnBtX2xpc3QgIT0g TlVMTCkKLSsgICAgewotKyAgICAgIGxpc3RfaXRlciA9IG1pc3NpbmdfcnBtX2xpc3Q7Ci0rICAg ICAgbWlzc2luZ19ycG1fbGlzdCA9IGxpc3RfaXRlci0+bmV4dDsKLSsgICAgICB4ZnJlZSAobGlz dF9pdGVyKTsKLSsgICAgfQotKyAgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzID0gMDsKKytmaQor K3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRl c3QkYWNfZXhlZXh0IFwKKysgIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuYmVhbSBjb25m dGVzdC4kYWNfZXh0CisrZmkKICsKLSsgIGRvX2NsZWFudXBzIChjbGVhbnVwcyk7Ci0rfQorKyAg cm0gLWYgY29uZnRlc3Qub3V0CiArCi0rc3RhdGljIHZvaWQKLSttaXNzaW5nX3JwbV9jaGFuZ2Ug KHZvaWQpCi0rewotKyAgZGVidWdfZmx1c2hfbWlzc2luZyAoKTsKICsKLSsgIGdkYl9hc3NlcnQg KG1pc3NpbmdfcnBtX2xpc3QgPT0gTlVMTCk7Ci0rICBpZiAobWlzc2luZ19ycG1faGFzaCAhPSBO VUxMKQotKyAgICB7Ci0rICAgICAgaHRhYl9kZWxldGUgKG1pc3NpbmdfcnBtX2hhc2gpOwotKyAg ICAgIG1pc3NpbmdfcnBtX2hhc2ggPSBOVUxMOwotKyAgICB9Ci0rfQogKwotK2VudW0gbWlzc2lu Z19leGVjCi0rICB7Ci0rICAgIC8qIEluaXQgc3RhdGUuICBFWEVDX0JGRCBhbHNvIHN0aWxsIGNv dWxkIGJlIE5VTEwuICAqLwotKyAgICBNSVNTSU5HX0VYRUNfTk9UX1RSSUVELAotKyAgICAvKiBX ZSBzYXcgYSBub24tTlVMTCBFWEVDX0JGRCBidXQgUlBNIGhhcyBubyBpbmZvIGFib3V0IGl0LiAg Ki8KLSsgICAgTUlTU0lOR19FWEVDX05PVF9GT1VORCwKLSsgICAgLyogV2UgZm91bmQgRVhFQ19C RkQgYnkgUlBNIGFuZCB3ZSBlaXRoZXIgaGF2ZSBpdHMgc3ltYm9scyAoZWl0aGVyIGVtYmVkZGVk Ci0rICAgICAgIG9yIHNlcGFyYXRlKSBvciB0aGUgbWFpbiBleGVjdXRhYmxlJ3MgUlBNIGlzIG5v dyBjb250YWluZWQgaW4KLSsgICAgICAgTUlTU0lOR19SUE1fSEFTSC4gICovCi0rICAgIE1JU1NJ TkdfRVhFQ19FTkxJU1RFRAotKyAgfTsKLStzdGF0aWMgZW51bSBtaXNzaW5nX2V4ZWMgbWlzc2lu Z19leGVjID0gTUlTU0lOR19FWEVDX05PVF9UUklFRDsKKysgIGlmICRIQVZFX0RMT1BFTl9MSUJS UE07IHRoZW4KICsKLSsjZW5kaWYJLyogSEFWRV9MSUJSUE0gKi8KKysgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29t cGF0aWJpbGl0eSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNv bXBhdGliaWxpdHkuLi4gIiA+JjY7IH0KKysgICAgIyBUaGUgY29tcGlsYXRpb24gcmVxdWlyZXMg LVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCisrICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgor KyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIKKysgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICsKLSt2b2lk Ci0rZGVidWdfZmx1c2hfbWlzc2luZyAodm9pZCkKKysvKiBEdXBsaWNhdGUgaGVyZSB0aGUgZGVj bGFyYXRpb25zIHRvIHZlcmlmeSB0aGV5IG1hdGNoICJlbGZyZWFkLmMiLiAgKi8KKysjaW5jbHVk ZSA8cnBtL3JwbWxpYi5oPgorKyNpbmNsdWRlIDxycG0vcnBtdHMuaD4KKysjaW5jbHVkZSA8cnBt L3JwbWRiLmg+CisrI2luY2x1ZGUgPHJwbS9oZWFkZXIuaD4KKytleHRlcm4gY2hhciAqIGhlYWRl ckZvcm1hdChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKiBlcnJtc2cpOwor K2V4dGVybiBpbnQgcnBtUmVhZENvbmZpZ0ZpbGVzKGNvbnN0IGNoYXIgKiBmaWxlLCBjb25zdCBj aGFyICogdGFyZ2V0KTsKKytleHRlcm4gcnBtZGJNYXRjaEl0ZXJhdG9yIHJwbWRiRnJlZUl0ZXJh dG9yKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrZXh0ZXJuIEhlYWRlciBycG1kYk5leHRJdGVy YXRvcihycG1kYk1hdGNoSXRlcmF0b3IgbWkpOworK2V4dGVybiBycG10cyBycG10c0NyZWF0ZSh2 b2lkKTsKKytleHRlcm4gcnBtdHMgcnBtdHNGcmVlKHJwbXRzIHRzKTsKKytleHRlcm4gcnBtZGJN YXRjaEl0ZXJhdG9yIHJwbXRzSW5pdEl0ZXJhdG9yKGNvbnN0IHJwbXRzIHRzLCBycG1UYWcgcnBt dGFnLAorKwkJCQkJICAgIGNvbnN0IHZvaWQgKiBrZXlwLCBzaXplX3Qga2V5bGVuKTsKKysKKytp bnQKKyttYWluICgpCiArewotKyNpZmRlZiBIQVZFX0xJQlJQTQotKyAgbWlzc2luZ19ycG1fbGlz dF9wcmludCAoKTsKLSsjZW5kaWYKLSt9CiArCi0gLyogVGhpcyBNSVNTSU5HX0ZJTEVQQUlSX0hB U0ggdHJhY2tlciBpcyB1c2VkIG9ubHkgZm9yIHRoZSBkdXBsaWNpdGUgbWVzc2FnZXMKLS0gICAg IFRyeSB0byBpbnN0YWxsIHRoZSBoYXNoIGZpbGUgLi4uCi0rICAgICB5dW0gLS1lbmFibGVyZXBv PScqZGVidWcqJyBpbnN0YWxsIC4uLgotICAgIGF2b2lkYW5jZS4gICovCi0gCi0gc3RydWN0IG1p c3NpbmdfZmlsZXBhaXIKLUBAIC0xNzU2LDExICsyMTA5LDE3IEBAIG1pc3NpbmdfZmlsZXBhaXJf Y2hhbmdlICh2b2lkKQotICAgICAgIC8qIEFsbCB0aGVpciBtZW1vcnkgY2FtZSBqdXN0IGZyb20g bWlzc2luZ19maWxlcGFpcl9PQlNUQUNLLiAgKi8KLSAgICAgICBtaXNzaW5nX2ZpbGVwYWlyX2hh c2ggPSBOVUxMOwotICAgICB9Ci0rI2lmZGVmIEhBVkVfTElCUlBNCi0rICBtaXNzaW5nX2V4ZWMg PSBNSVNTSU5HX0VYRUNfTk9UX1RSSUVEOwotKyNlbmRpZgotIH0KLSAKLSBzdGF0aWMgdm9pZAot IGRlYnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCAodm9pZCkKLSB7Ci0rI2lmZGVmIEhBVkVf TElCUlBNCi0rICBtaXNzaW5nX3JwbV9jaGFuZ2UgKCk7Ci0rI2VuZGlmCi0gICBtaXNzaW5nX2Zp bGVwYWlyX2NoYW5nZSAoKTsKLSB9Ci0gCi1AQCAtMTgyNywxNCArMjE4NiwzNCBAQCBkZWJ1Z19w cmludF9taXNzaW5nIChjb25zdCBjaGFyICpiaW5hcnksCi0gCi0gICAqc2xvdCA9IG1pc3Npbmdf ZmlsZXBhaXI7Ci0gCi0tICAvKiBXZSBkbyBub3QgY29sbGVjdCBhbmQgZmx1c2ggdGhlc2UgbWVz c2FnZXMgYXMgZWFjaCBzdWNoIG1lc3NhZ2UKLS0gICAgIGFscmVhZHkgcmVxdWlyZXMgaXRzIG93 biBzZXBhcmF0ZSBsaW5lcy4gICovCi0rI2lmZGVmIEhBVkVfTElCUlBNCi0rICBpZiAobWlzc2lu Z19leGVjID09IE1JU1NJTkdfRVhFQ19OT1RfVFJJRUQpCi0rICAgIHsKLSsgICAgICBjaGFyICpl eGVjZmlsZW5hbWU7Ci0gCi0tICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi0tCQkg ICAgICBfKCJNaXNzaW5nIHNlcGFyYXRlIGRlYnVnaW5mbyBmb3IgJXNcbiIpLCBiaW5hcnkpOwot LSAgaWYgKGRlYnVnICE9IE5VTEwpCi0tICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxv ZywgXygiVHJ5IHRvIGluc3RhbGwgdGhlIGhhc2ggZmlsZSAlc1xuIiksCi0tCQkJZGVidWcpOwot KyAgICAgIGV4ZWNmaWxlbmFtZSA9IGdldF9leGVjX2ZpbGUgKDApOwotKyAgICAgIGlmIChleGVj ZmlsZW5hbWUgIT0gTlVMTCkKLSsJewotKwkgIGlmIChtaXNzaW5nX3JwbV9lbmxpc3QgKGV4ZWNm aWxlbmFtZSkgPT0gMCkKLSsJICAgIG1pc3NpbmdfZXhlYyA9IE1JU1NJTkdfRVhFQ19OT1RfRk9V TkQ7Ci0rCSAgZWxzZQotKwkgICAgbWlzc2luZ19leGVjID0gTUlTU0lOR19FWEVDX0VOTElTVEVE OwotKwl9Ci0rICAgIH0KLSsgIGlmIChtaXNzaW5nX2V4ZWMgIT0gTUlTU0lOR19FWEVDX0VOTElT VEVEKQotKyAgICBpZiAoKGJpbmFyeVswXSA9PSAwIHx8IG1pc3NpbmdfcnBtX2VubGlzdCAoYmlu YXJ5KSA9PSAwKQotKwkmJiAoZGVidWcgPT0gTlVMTCB8fCBtaXNzaW5nX3JwbV9lbmxpc3QgKGRl YnVnKSA9PSAwKSkKLSsjZW5kaWYJLyogSEFWRV9MSUJSUE0gKi8KLSsgICAgICB7Ci0rCS8qIFdl IGRvIG5vdCBjb2xsZWN0IGFuZCBmbHVzaCB0aGVzZSBtZXNzYWdlcyBhcyBlYWNoIHN1Y2ggbWVz c2FnZQotKwkgICBhbHJlYWR5IHJlcXVpcmVzIGl0cyBvd24gc2VwYXJhdGUgbGluZXMuICAqLwor KyAgOworKyAgcmV0dXJuIDA7CisrfQorK19BQ0VPRgorK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUg IiRMSU5FTk8iOyB0aGVuIDoKICsKLSsJZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAot KwkJCSAgICBfKCJNaXNzaW5nIHNlcGFyYXRlIGRlYnVnaW5mbyBmb3IgJXNcbiIpLCBiaW5hcnkp OwotKyAgICAgICAgaWYgKGRlYnVnICE9IE5VTEwpCi0rCSAgZnByaW50Zl91bmZpbHRlcmVkIChn ZGJfc3RkbG9nLCBfKCJUcnk6ICVzICVzXG4iKSwKLSsJCQkgICAgICAieXVtIC0tZW5hYmxlcmVw bz0nKmRlYnVnKicgaW5zdGFsbCIsIGRlYnVnKTsKLSsgICAgICB9Ci0gfQotIAotIHN0YXRpYyBj aGFyICoKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3ltZmlsZS5oCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc3ltZmlsZS5oCTIw MTMtMDgtMDIgMTY6MjU6MjQuOTcxMDk0NDAyICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL3N5bWZpbGUuaAkyMDEzLTA4LTAyIDE2OjI1OjI3LjMzNjA5NzU1NyArMDIwMAot QEAgLTYwMiw2ICs2MDIsOCBAQCBleHRlcm4gc3RydWN0IGVsZl9idWlsZF9pZCAqYnVpbGRfaWRf YWRkCi0gZXh0ZXJuIGNoYXIgKmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgZWxm X2J1aWxkX2lkICpidWlsZF9pZCwKLSAJCQkJICAgY2hhciAqKmxpbmtfcmV0dXJuLCBpbnQgYWRk X2RlYnVnX3N1ZmZpeCk7Ci0gZXh0ZXJuIHZvaWQgZGVidWdfcHJpbnRfbWlzc2luZyAoY29uc3Qg Y2hhciAqYmluYXJ5LCBjb25zdCBjaGFyICpkZWJ1Zyk7Ci0rZXh0ZXJuIHZvaWQgZGVidWdfZmx1 c2hfbWlzc2luZyAodm9pZCk7Ci0rI2RlZmluZSBCVUlMRF9JRF9NQUlOX0VYRUNVVEFCTEVfRklM RU5BTUUgXygidGhlIG1haW4gZXhlY3V0YWJsZSBmaWxlIikKLSAKLSAvKiBGcm9tIGR3YXJmMnJl YWQuYyAqLwotIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmln L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMy0wOC0wMiAxNjoyNToyNC45NzIwOTQ0MDQg KzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM3MDk3NTU5ICswMjAwCi1AQCAtMTQ4Miw3ICsxNDgy LDcgQEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewotIAkgICAgd2FybmluZyAiQ291bGRu J3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKLSAJfQotICAgICB9Ci0tICAgICMgVHVybiBvZmYgdGhl IG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQuCi0r ICAgICMgVHVybiBvZmYgdGhlIG1pc3NpbmcgUlBNcyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRl IGRvZXMgbm90IGV4cGVjdCBpdC4KLSAgICAgc2VuZF9nZGIgInNldCBidWlsZC1pZC12ZXJib3Nl IDBcbiIKLSAgICAgZ2RiX2V4cGVjdCAxMCB7Ci0gCS1yZSAiJGdkYl9wcm9tcHQgJCIgewotSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQu ZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvdGVz dHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDEzLTA4LTAyIDE2OjI1OjI0Ljk3MzA5NDQwNSAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwCTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM4MDk3NTYwICswMjAwCi1AQCAtMjEyLDcg KzIxMiw3IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0gewotIAkgICAgd2Fy bmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKLSAJfQotICAgICB9Ci0tICAgICMg VHVybiBvZmYgdGhlIG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBl eHBlY3QgaXQuCi0rICAgICMgVHVybiBvZmYgdGhlIG1pc3NpbmcgUlBNcyB3YXJuaW5ncyBhcyB0 aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4KLSAgICAgc2VuZF9nZGIgIjE5MC1nZGIt c2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgotICAgICBnZGJfZXhwZWN0IDEwIHsKLSAJLXJlICIu KjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4xOTBcXFxeZG9uZVxyXG4kbWlfZ2Ri X3Byb21wdCQiIHsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdHVpL3R1aS1p bnRlcnAuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2Ri L3R1aS90dWktaW50ZXJwLmMJMjAxMy0wOC0wMiAxNjoyNToyNC45NzQwOTQ0MDYgKzAyMDAKLSsr KyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdHVpL3R1aS1pbnRlcnAuYwkyMDEzLTA4LTAy IDE2OjI1OjI3LjMzODA5NzU2MCArMDIwMAotQEAgLTMwLDYgKzMwLDcgQEAKLSAjaW5jbHVkZSAi dHVpL3R1aS5oIgotICNpbmNsdWRlICJ0dWkvdHVpLWlvLmgiCi0gI2luY2x1ZGUgImV4Y2VwdGlv bnMuaCIKLSsjaW5jbHVkZSAic3ltZmlsZS5oIgotIAotIC8qIFNldCB0byAxIHdoZW4gdGhlIFRV SSBtb2RlIG11c3QgYmUgYWN0aXZhdGVkIHdoZW4gd2UgZmlyc3Qgc3RhcnQKLSAgICBnZGIuICAq LwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hY2xvY2FsLm00Ci09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvYWNsb2NhbC5tNAkyMDEz LTA4LTAyIDE2OjI1OjI0Ljk3NDA5NDQwNiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9hY2xvY2FsLm00CTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM5MDk3NTYxICswMjAwCi1A QCAtMTEsNiArMTEsMTY0IEBACi0gIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0gIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0gCi0r IyBwa2cubTQgLSBNYWNyb3MgdG8gbG9jYXRlIGFuZCB1dGlsaXNlIHBrZy1jb25maWcuICAgICAg ICAgICAgLSotIEF1dG9jb25mIC0qLQotKyMgc2VyaWFsIDEgKHBrZy1jb25maWctMC4yNCkKLSsj IAotKyMgQ29weXJpZ2h0IMKpIDIwMDQgU2NvdHQgSmFtZXMgUmVtbmFudCA8c2NvdHRAbmV0c3Bs aXQuY29tPi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y Ci0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBi dXQKLSsjIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJbmMuLCA1 OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgot KyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9n cmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5 IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBzYW1lIGRpc3RyaWJ1 dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsK LSsjIFBLR19QUk9HX1BLR19DT05GSUcoW01JTi1WRVJTSU9OXSkKLSsjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbUEtHX1BST0dfUEtHX0NPTkZJR10sCi0r W200X3BhdHRlcm5fZm9yYmlkKFteXz9QS0dfW0EtWl9dKyRdKQotK200X3BhdHRlcm5fYWxsb3co W15QS0dfQ09ORklHKF9QQVRIKT8kXSkKLStBQ19BUkdfVkFSKFtQS0dfQ09ORklHXSwgW3BhdGgg dG8gcGtnLWNvbmZpZyB1dGlsaXR5XSkKLStBQ19BUkdfVkFSKFtQS0dfQ09ORklHX1BBVEhdLCBb ZGlyZWN0b3JpZXMgdG8gYWRkIHRvIHBrZy1jb25maWcncyBzZWFyY2ggcGF0aF0pCi0rQUNfQVJH X1ZBUihbUEtHX0NPTkZJR19MSUJESVJdLCBbcGF0aCBvdmVycmlkaW5nIHBrZy1jb25maWcncyBi dWlsdC1pbiBzZWFyY2ggcGF0aF0pCisrICAgICAgTElCUlBNX0NPTVBBVD10cnVlCisrICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1 CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CiArCi0raWYgdGVzdCAieCRhY19jdl9lbnZfUEtHX0NP TkZJR19zZXQiICE9ICJ4c2V0IjsgdGhlbgotKwlBQ19QQVRIX1RPT0woW1BLR19DT05GSUddLCBb cGtnLWNvbmZpZ10pCi0rZmkKLStpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KLSsJX3Br Z19taW5fdmVyc2lvbj1tNF9kZWZhdWx0KFskMV0sIFswLjkuMF0pCi0rCUFDX01TR19DSEVDS0lO RyhbcGtnLWNvbmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uXSkKLSsJ aWYgJFBLR19DT05GSUcgLS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uICRfcGtnX21pbl92ZXJz aW9uOyB0aGVuCi0rCQlBQ19NU0dfUkVTVUxUKFt5ZXNdKQotKwllbHNlCi0rCQlBQ19NU0dfUkVT VUxUKFtub10pCi0rCQlQS0dfQ09ORklHPSIiCi0rCWZpCi0rZmlbXWRubAotK10pIyBQS0dfUFJP R19QS0dfQ09ORklHCisrZWxzZQogKwotKyMgUEtHX0NIRUNLX0VYSVNUUyhNT0RVTEVTLCBbQUNU SU9OLUlGLUZPVU5EXSwgW0FDVElPTi1JRi1OT1QtRk9VTkRdKQotKyMKLSsjIENoZWNrIHRvIHNl ZSB3aGV0aGVyIGEgcGFydGljdWxhciBzZXQgb2YgbW9kdWxlcyBleGlzdHMuICBTaW1pbGFyCi0r IyB0byBQS0dfQ0hFQ0tfTU9EVUxFUygpLCBidXQgZG9lcyBub3Qgc2V0IHZhcmlhYmxlcyBvciBw cmludCBlcnJvcnMuCi0rIwotKyMgUGxlYXNlIHJlbWVtYmVyIHRoYXQgbTQgZXhwYW5kcyBBQ19S RVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkKLSsjIG9ubHkgYXQgdGhlIGZpcnN0IG9jY3Vy ZW5jZSBpbiBjb25maWd1cmUuYWMsIHNvIGlmIHRoZSBmaXJzdCBwbGFjZQotKyMgaXQncyBjYWxs ZWQgbWlnaHQgYmUgc2tpcHBlZCAoc3VjaCBhcyBpZiBpdCBpcyB3aXRoaW4gYW4gImlmIiwgeW91 Ci0rIyBoYXZlIHRvIGNhbGwgUEtHX0NIRUNLX0VYSVNUUyBtYW51YWxseQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStB Q19ERUZVTihbUEtHX0NIRUNLX0VYSVNUU10sCi0rW0FDX1JFUVVJUkUoW1BLR19QUk9HX1BLR19D T05GSUddKWRubAotK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIiAmJiBcCi0rICAgIEFDX1JVTl9M T0coWyRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkMSJdKTsgdGhlbgotKyAg bTRfZGVmYXVsdChbJDJdLCBbOl0pCi0rbTRfaWZ2YWxuKFskM10sIFtlbHNlCi0rICAkM10pZG5s Ci0rZmldKQorKyAgICAgIExJQlJQTV9DT01QQVQ9ZmFsc2UKKysgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJu byIgPiY2OyB9CiArCi0rIyBfUEtHX0NPTkZJRyhbVkFSSUFCTEVdLCBbQ09NTUFORF0sIFtNT0RV TEVTXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot K200X2RlZmluZShbX1BLR19DT05GSUddLAotK1tpZiB0ZXN0IC1uICIkJDEiOyB0aGVuCi0rICAg IHBrZ19jdl9bXSQxPSIkJDEiCi0rIGVsaWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCi0r ICAgIFBLR19DSEVDS19FWElTVFMoWyQzXSwKLSsgICAgICAgICAgICAgICAgICAgICBbcGtnX2N2 X1tdJDE9YCRQS0dfQ09ORklHIC0tW10kMiAiJDMiIDI+L2Rldi9udWxsYF0sCi0rCQkgICAgIFtw a2dfZmFpbGVkPXllc10pCi0rIGVsc2UKLSsgICAgcGtnX2ZhaWxlZD11bnRyaWVkCi0rZmlbXWRu bAotK10pIyBfUEtHX0NPTkZJRworK2ZpCisrcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdT IgogKwotKyMgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtfUEtHX1NIT1JUX0VSUk9SU19TVVBQT1JURURdLAot K1tBQ19SRVFVSVJFKFtQS0dfUFJPR19QS0dfQ09ORklHXSkKLStpZiAkUEtHX0NPTkZJRyAtLWF0 bGVhc3QtcGtnY29uZmlnLXZlcnNpb24gMC4yMDsgdGhlbgotKyAgICAgICAgX3BrZ19zaG9ydF9l cnJvcnNfc3VwcG9ydGVkPXllcwotK2Vsc2UKLSsgICAgICAgIF9wa2dfc2hvcnRfZXJyb3JzX3N1 cHBvcnRlZD1ubwotK2ZpW11kbmwKLStdKSMgX1BLR19TSE9SVF9FUlJPUlNfU1VQUE9SVEVECisr ICAgIGlmICEgJExJQlJQTV9DT01QQVQ7IHRoZW4KKysgICAgICBIQVZFX0RMT1BFTl9MSUJSUE09 ZmFsc2UKKysgICAgZmkKKysgIGZpCiArCisrICBpZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0aGVu CisrICAgIERMT1BFTl9MSUJSUE1fU1RSSU5HPSciJyIkRExPUEVOX0xJQlJQTSInIicKICsKLSsj IFBLR19DSEVDS19NT0RVTEVTKFZBUklBQkxFLVBSRUZJWCwgTU9EVUxFUywgW0FDVElPTi1JRi1G T1VORF0sCi0rIyBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCi0rIwotKyMKLSsjIE5vdGUgdGhhdCBp ZiB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoZSBmaXJzdCBjYWxsIHRvCi0rIyBQS0dfQ0hFQ0tf TU9EVUxFUyBtaWdodCBub3QgaGFwcGVuLCB5b3Ugc2hvdWxkIGJlIHN1cmUgdG8gaW5jbHVkZSBh bgotKyMgZXhwbGljaXQgY2FsbCB0byBQS0dfUFJPR19QS0dfQ09ORklHIGluIHlvdXIgY29uZmln dXJlLmFjCi0rIwotKyMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW1BLR19DSEVDS19NT0RVTEVTXSwK LStbQUNfUkVRVUlSRShbUEtHX1BST0dfUEtHX0NPTkZJR10pZG5sCi0rQUNfQVJHX1ZBUihbJDFd W19DRkxBR1NdLCBbQyBjb21waWxlciBmbGFncyBmb3IgJDEsIG92ZXJyaWRpbmcgcGtnLWNvbmZp Z10pZG5sCi0rQUNfQVJHX1ZBUihbJDFdW19MSUJTXSwgW2xpbmtlciBmbGFncyBmb3IgJDEsIG92 ZXJyaWRpbmcgcGtnLWNvbmZpZ10pZG5sCisrY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorKyNk ZWZpbmUgRExPUEVOX0xJQlJQTSAkRExPUEVOX0xJQlJQTV9TVFJJTkcKKytfQUNFT0YKICsKLStw a2dfZmFpbGVkPW5vCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3IgJDFdKQogKwotK19QS0dfQ09ORklH KFskMV1bX0NGTEFHU10sIFtjZmxhZ3NdLCBbJDJdKQotK19QS0dfQ09ORklHKFskMV1bX0xJQlNd LCBbbGlic10sIFskMl0pCisrJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJSUE0gMSIgPj5jb25m ZGVmcy5oCiArCi0rbTRfZGVmaW5lKFtfUEtHX1RFWFRdLCBbQWx0ZXJuYXRpdmVseSwgeW91IG1h eSBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyAkMVtdX0NGTEFHUwotK2FuZCAkMVtdX0xJ QlMgdG8gYXZvaWQgdGhlIG5lZWQgdG8gY2FsbCBwa2ctY29uZmlnLgotK1NlZSB0aGUgcGtnLWNv bmZpZyBtYW4gcGFnZSBmb3IgbW9yZSBkZXRhaWxzLl0pCisrICBlbHNlCisrICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KKysgICAgTElCUz0iJHNhdmVfTElCUyIKKysgICAgaWYgJERMT1BFTl9S RVFVSVJFOyB0aGVuCisrICAgICAgYXNfZm5fZXJyb3IgIlNwZWNpZmljIG5hbWUgJExJQlJQTSB3 YXMgcmVxdWVzdGVkIGJ1dCBpdCBjb3VsZCBub3QgYmUgb3BlbmVkLiIgIiRMSU5FTk8iIDUKKysg ICAgZmkKICsKLStpZiB0ZXN0ICRwa2dfZmFpbGVkID0geWVzOyB0aGVuCi0rICAgCUFDX01TR19S RVNVTFQoW25vXSkKLSsgICAgICAgIF9QS0dfU0hPUlRfRVJST1JTX1NVUFBPUlRFRAotKyAgICAg ICAgaWYgdGVzdCAkX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkID0geWVzOyB0aGVuCi0rCSAg ICAgICAgJDFbXV9QS0dfRVJST1JTPWAkUEtHX0NPTkZJRyAtLXNob3J0LWVycm9ycyAtLXByaW50 LWVycm9ycyAiJDIiIDI+JjFgCi0rICAgICAgICBlbHNlIAotKwkgICAgICAgICQxW11fUEtHX0VS Uk9SUz1gJFBLR19DT05GSUcgLS1wcmludC1lcnJvcnMgIiQyIiAyPiYxYAotKyAgICAgICAgZmkK LSsJIyBQdXQgdGhlIG5hc3R5IGVycm9yIG1lc3NhZ2UgaW4gY29uZmlnLmxvZyB3aGVyZSBpdCBi ZWxvbmdzCi0rCWVjaG8gIiQkMVtdX1BLR19FUlJPUlMiID4mQVNfTUVTU0FHRV9MT0dfRkQKICsK LSsJbTRfZGVmYXVsdChbJDRdLCBbQUNfTVNHX0VSUk9SKAotK1tQYWNrYWdlIHJlcXVpcmVtZW50 cyAoJDIpIHdlcmUgbm90IG1ldDoKICsKLSskJDFfUEtHX0VSUk9SUwogKwotK0NvbnNpZGVyIGFk anVzdGluZyB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIGlmIHlvdQot K2luc3RhbGxlZCBzb2Z0d2FyZSBpbiBhIG5vbi1zdGFuZGFyZCBwcmVmaXguCiArCi0rX1BLR19U RVhUXSkKLSsgICAgICAgIF0pCi0rZWxpZiB0ZXN0ICRwa2dfZmFpbGVkID0gdW50cmllZDsgdGhl bgotKyAgICAgCUFDX01TR19SRVNVTFQoW25vXSkKLSsJbTRfZGVmYXVsdChbJDRdLCBbQUNfTVNH X0ZBSUxVUkUoCi0rW1RoZSBwa2ctY29uZmlnIHNjcmlwdCBjb3VsZCBub3QgYmUgZm91bmQgb3Ig aXMgdG9vIG9sZC4gIE1ha2Ugc3VyZSBpdAotK2lzIGluIHlvdXIgUEFUSCBvciBzZXQgdGhlIFBL R19DT05GSUcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGZ1bGwKLStwYXRoIHRvIHBrZy1j b25maWcuCiArCi0rX1BLR19URVhUCisraWYgdGVzdCAieCRhY19jdl9lbnZfUEtHX0NPTkZJR19z ZXQiICE9ICJ4c2V0IjsgdGhlbgorKwlpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVu CisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cGtnLWNv bmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisrc2V0IGR1bW15 ICR7YWNfdG9vbF9wcmVmaXh9cGtnLWNvbmZpZzsgYWNfd29yZD0kMgorK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKysk YXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIk e2FjX2N2X3BhdGhfUEtHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbiA6CisrICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorK2Vsc2UKKysgIGNhc2UgJFBLR19DT05GSUcgaW4KKysgIFtcXC9d KiB8ID86W1xcL10qKQorKyAgYWNfY3ZfcGF0aF9QS0dfQ09ORklHPSIkUEtHX0NPTkZJRyIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisrICA7OworKyAgKikK KysgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKKytmb3IgYXNfZGlyIGlu ICRQQVRICisrZG8KKysgIElGUz0kYXNfc2F2ZV9JRlMKKysgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCisrICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbworKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgor KyAgICBhY19jdl9wYXRoX1BLR19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi CisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorKyAgICBicmVhayAyCisrICBmaQorK2RvbmUK KysgIGRvbmUKKytJRlM9JGFzX3NhdmVfSUZTCiArCi0rVG8gZ2V0IHBrZy1jb25maWcsIHNlZSA8 aHR0cDovL3BrZy1jb25maWcuZnJlZWRlc2t0b3Aub3JnLz4uXSkKLSsgICAgICAgIF0pCisrICA7 OworK2VzYWMKKytmaQorK1BLR19DT05GSUc9JGFjX2N2X3BhdGhfUEtHX0NPTkZJRworK2lmIHRl c3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQS0dfQ09ORklHIiA+JjUKKyskYXNfZWNobyAiJFBLR19D T05GSUciID4mNjsgfQogK2Vsc2UKLSsJJDFbXV9DRkxBR1M9JHBrZ19jdl9bXSQxW11fQ0ZMQUdT Ci0rCSQxW11fTElCUz0kcGtnX2N2X1tdJDFbXV9MSUJTCi0rICAgICAgICBBQ19NU0dfUkVTVUxU KFt5ZXNdKQotKwkkMwotK2ZpW11kbmwKLStdKSMgUEtHX0NIRUNLX01PRFVMRVMKKysgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFz X2VjaG8gIm5vIiA+JjY7IH0KKytmaQogKwotICMgQU1fQ09ORElUSU9OQUwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSAKLSAjIENv cHlyaWdodCAoQykgMTk5NywgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw OAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb25maWcuaW4KLT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jb25maWcuaW4JMjAxMy0w OC0wMiAxNjoyNToyNC45NzUwOTQ0MDcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvY29uZmlnLmluCTIwMTMtMDgtMDIgMTY6MjU6MjcuMzM5MDk3NTYxICswMjAwCi1AQCAt MzMsNiArMzMsOSBAQAotIC8qIERlZmluZSB0byBCRkQncyBkZWZhdWx0IHRhcmdldCB2ZWN0b3Iu ICovCi0gI3VuZGVmIERFRkFVTFRfQkZEX1ZFQwotIAotKy8qIGxpYnJwbSB2ZXJzaW9uIHNwZWNp ZmljIGxpYnJhcnkgbmFtZSB0byBkbG9wZW4uICovCi0rI3VuZGVmIERMT1BFTl9MSUJSUE0KICsK LSAvKiBEZWZpbmUgdG8gMSBpZiB0cmFuc2xhdGlvbiBvZiBwcm9ncmFtIG1lc3NhZ2VzIHRvIHRo ZSB1c2VyJ3MgbmF0aXZlCi0gICAgbGFuZ3VhZ2UgaXMgcmVxdWVzdGVkLiAqLwotICN1bmRlZiBF TkFCTEVfTkxTCi1AQCAtMjE5LDYgKzIyMiw5IEBACi0gLyogRGVmaW5lIGlmIFB5dGhvbiAyLjcg aXMgYmVpbmcgdXNlZC4gKi8KLSAjdW5kZWYgSEFWRV9MSUJQWVRIT04yXzcKLSAKLSsvKiBEZWZp bmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8KLSsjdW5kZWYgSEFWRV9MSUJS UE0KKytmaQorK2lmIHRlc3QgLXogIiRhY19jdl9wYXRoX1BLR19DT05GSUciOyB0aGVuCisrICBh Y19wdF9QS0dfQ09ORklHPSRQS0dfQ09ORklHCisrICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQg b2YgInBrZy1jb25maWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgor K3NldCBkdW1teSBwa2ctY29uZmlnOyBhY193b3JkPSQyCisreyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zf cGF0aF9hY19wdF9QS0dfQ09ORklHK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CisrZWxzZQorKyAgY2FzZSAkYWNfcHRfUEtHX0NPTkZJRyBpbgorKyAg W1xcL10qIHwgPzpbXFwvXSopCisrICBhY19jdl9wYXRoX2FjX3B0X1BLR19DT05GSUc9IiRhY19w dF9QS0dfQ09ORklHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0 aC4KKysgIDs7CisrICAqKQorKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRP UgorK2ZvciBhc19kaXIgaW4gJFBBVEgKKytkbworKyAgSUZTPSRhc19zYXZlX0lGUworKyAgdGVz dCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKysgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRh Y19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisrICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiOyB9OyB0aGVuCisrICAgIGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRz0iJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIKKysgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAg IGJyZWFrIDIKKysgIGZpCisrZG9uZQorKyAgZG9uZQorK0lGUz0kYXNfc2F2ZV9JRlMKICsKLSAv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnVud2luZC1pYTY0Lmg+IGhlYWRlciBm aWxlLiAqLwotICN1bmRlZiBIQVZFX0xJQlVOV0lORF9JQTY0X0gKLSAKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJlCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY29uZmlndXJlCTIwMTMtMDgtMDIgMTY6MjU6MjQuOTgx MDk0NDE1ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZ3VyZQky MDEzLTA4LTAyIDE2OjI1OjI3LjM0MzA5NzU2NyArMDIwMAotQEAgLTY4OSw2ICs2ODksMTEgQEAg UEtHVkVSU0lPTgotIEhBVkVfTkFUSVZFX0dDT1JFX1RBUkdFVAotIFRBUkdFVF9PQlMKLSBzdWJk aXJzCi0rUlBNX0xJQlMKLStSUE1fQ0ZMQUdTCi0rUEtHX0NPTkZJR19MSUJESVIKLStQS0dfQ09O RklHX1BBVEgKLStQS0dfQ09ORklHCi0gR0RCX0RBVEFESVIKLSBERUJVR0RJUgotIE1BS0VJTkZP X0VYVFJBX0ZMQUdTCi1AQCAtNzg5LDYgKzc5NCw3IEBAIHdpdGhfZ2RiX2RhdGFkaXIKLSB3aXRo X3JlbG9jYXRlZF9zb3VyY2VzCi0gd2l0aF9hdXRvX2xvYWRfZGlyCi0gd2l0aF9hdXRvX2xvYWRf c2FmZV9wYXRoCi0rd2l0aF9ycG0KLSBlbmFibGVfdGFyZ2V0cwotIGVuYWJsZV82NF9iaXRfYmZk Ci0gZW5hYmxlX2dkYmNsaQotQEAgLTgzOSw2ICs4NDUsMTEgQEAgQ1BQRkxBR1MKLSBDUFAKLSBN QUtFSU5GTwotIE1BS0VJTkZPRkxBR1MKLStQS0dfQ09ORklHCi0rUEtHX0NPTkZJR19QQVRICi0r UEtHX0NPTkZJR19MSUJESVIKLStSUE1fQ0ZMQUdTCi0rUlBNX0xJQlMKLSBZQUNDCi0gWUZMQUdT Ci0gWE1LTUYnCi1AQCAtMTUwOSw2ICsxNTIwLDggQEAgT3B0aW9uYWwgUGFja2FnZXM6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICBbLS13aXRoLWF1dG8tbG9hZC1kaXJdCi0gICAtLXdpdGhv dXQtYXV0by1sb2FkLXNhZmUtcGF0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZG8gbm90 IHJlc3RyaWN0IGF1dG8tbG9hZGVkIGZpbGVzIGxvY2F0aW9ucwotKyAgLS13aXRoLXJwbSAgICAg ICAgICAgICAgcXVlcnkgcnBtIGRhdGFiYXNlIGZvciBtaXNzaW5nIGRlYnVnaW5mb3MgKHllcy9u bywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZi4gYXV0bz1saWJycG0uc28pCi0gICAt LXdpdGgtbGlidW53aW5kLWlhNjQgICB1c2UgbGlidW53aW5kIGZyYW1lIHVud2luZGluZyBmb3Ig aWE2NCB0YXJnZXRzCi0gICAtLXdpdGgtY3Vyc2VzICAgICAgICAgICB1c2UgdGhlIGN1cnNlcyBs aWJyYXJ5IGluc3RlYWQgb2YgdGhlIHRlcm1jYXAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnJhcnkKLUBAIC0xNTU2LDYgKzE1NjksMTMgQEAgU29tZSBpbmZsdWVudGlhbCBlbnZpcm9u bWVudCB2YXJpYWJsZXM6Ci0gICBNQUtFSU5GTyAgICBQYXJlbnQgY29uZmlndXJlIGRldGVjdHMg aWYgaXQgaXMgb2Ygc3VmZmljaWVudCB2ZXJzaW9uLgotICAgTUFLRUlORk9GTEFHUwotICAgICAg ICAgICAgICAgUGFyYW1ldGVycyBmb3IgTUFLRUlORk8uCi0rICBQS0dfQ09ORklHICBwYXRoIHRv IHBrZy1jb25maWcgdXRpbGl0eQotKyAgUEtHX0NPTkZJR19QQVRICi0rICAgICAgICAgICAgICBk aXJlY3RvcmllcyB0byBhZGQgdG8gcGtnLWNvbmZpZydzIHNlYXJjaCBwYXRoCi0rICBQS0dfQ09O RklHX0xJQkRJUgotKyAgICAgICAgICAgICAgcGF0aCBvdmVycmlkaW5nIHBrZy1jb25maWcncyBi dWlsdC1pbiBzZWFyY2ggcGF0aAotKyAgUlBNX0NGTEFHUyAgQyBjb21waWxlciBmbGFncyBmb3Ig UlBNLCBvdmVycmlkaW5nIHBrZy1jb25maWcKLSsgIFJQTV9MSUJTICAgIGxpbmtlciBmbGFncyBm b3IgUlBNLCBvdmVycmlkaW5nIHBrZy1jb25maWcKLSAgIFlBQ0MgICAgICAgIFRoZSBgWWV0IEFu b3RoZXIgQyBDb21waWxlcicgaW1wbGVtZW50YXRpb24gdG8gdXNlLiBEZWZhdWx0cyB0bwotICAg ICAgICAgICAgICAgdGhlIGZpcnN0IHByb2dyYW0gZm91bmQgb3V0IG9mOiBgYmlzb24gLXknLCBg YnlhY2MnLCBgeWFjYycuCi0gICBZRkxBR1MgICAgICBUaGUgbGlzdCBvZiBhcmd1bWVudHMgdGhh dCB3aWxsIGJlIHBhc3NlZCBieSBkZWZhdWx0IHRvICRZQUNDLgotQEAgLTUwMzksNiArNTA1OSw0 OTEgQEAgX0FDRU9GCi0geyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNQotICRhc19lY2hvICIkd2l0aF9h dXRvX2xvYWRfc2FmZV9wYXRoIiA+JjY7IH0KLSAKLSsjIEludGVncmF0aW9uIHdpdGggcnBtIGxp YnJhcnkgdG8gc3VwcG9ydCBtaXNzaW5nIGRlYnVnaW5mbyBzdWdnZXN0aW9ucy4KLSsjIC0td2l0 aG91dC1ycG06IERpc2FibGUgYW55IHJwbSBzdXBwb3J0LgotKyMgLS13aXRoLXJwbT1saWJuYW1l LnNvOiBUcnkgdG8gZHluYW1pY2FsbHkgb3BlbiBgbGlibmFtZS5zbycgZHVyaW5nIHJ1bnRpbWUu Ci0rIyAgIEV2ZW4gd2l0aCBydW50aW1lIG1pc3NpbmcgYGxpYm5hbWUuc28nIEdEQiB3aWxsIHN0 aWxsIG90aGVyIHJ1biBjb3JyZWN0bHkuCi0rIyAgIE1pc3NpbmcgYGxpYm5hbWUuc28nIGR1cmlu ZyAuL2NvbmZpZ3VyZSB3aWxsIGFib3J0IHRoZSBjb25maWd1cmF0aW9uLgotKyMgLS13aXRoLXJw bT1saWJycG0uc286IExpa2UgYC0td2l0aC1ycG09bGlibmFtZS5zbycgYnV0IHRyeSB0byBmaW5k IHNwZWNpZmljCi0rIyAgIG1pbm9yIHZlcnNpb24gZmlyc3Qgc3VjaCBhcyBgbGlicnBtLTQuNi5z bycgYXMgbWlub3IgdmVyc2lvbiBkaWZmZXJlbmNlcwotKyMgICBtZWFuIEFQSStBQkkgaW5jb21w YXRpYmlsaXR5LiAgSWYgdGhlIHNwZWNpZmljIG1hdGNoIHZlcnNpb25lZCBsaWJyYXJ5IG5hbWUK LSsjICAgY291bGQgbm90IGJlIGZvdW5kIHN0aWxsIG9wZW4gZHluYW1pY2FsbHkgYXQgbGVhc3Qg YGxpYnJwbS5zbycuCi0rIyAtLXdpdGgtcnBtOiBMaWtlIGAtLXdpdGgtcnBtPWxpYnJwbS5zbycg YnV0IGlmIGFueSBvZiBpdHMgZGV0ZWN0aW9uIGZhaWxzIHRyeQotKyMgICB0byBmaW5kIGxpYnJw bSBmb3IgY29tcGlsYXRpb24tdGltZSBsaW5raW5nIGJ5IHBrZy1jb25maWcuICBHREIgYmluYXJ5 IHdpbGwKLSsjICAgYmUgcHJvYmFibHkgbGlua2VkIHdpdGggdGhlIHZlcnNpb24gc3BlY2lmaWMg bGlicmFyeSAoYXMgYGxpYnJwbS00LjYuc28nKS4KLSsjICAgRmFpbHVyZSB0byBmaW5kIGxpYnJw bSBieSBwa2ctY29uZmlnIHdpbGwgYWJvcnQgdGhlIGNvbmZpZ3VyYXRpb24uCi0rIyAoZGVmYXVs dCkgLS13aXRoLXJwbT1hdXRvOiBMaWtlIGAtLXdpdGgtcnBtPWxpYnJwbS5zbycgYnV0IGlmIGV2 ZW4gcGtnLWNvbmZpZwotKyMgICBjYW5ub3QgZmluZCBsaWJycG0gdXNlIHRvIHRoZSBycG1sZXNz IGNvbXBpbGF0aW9uIChsaWtlIGAtLXdpdGhvdXQtcnBtJykuCisrICA7OworK2VzYWMKKytmaQor K2FjX3B0X1BLR19DT05GSUc9JGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRworK2lmIHRlc3Qg LW4gIiRhY19wdF9QS0dfQ09ORklHIjsgdGhlbgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19wdF9QS0dfQ09ORklHIiA+JjUKKyskYXNfZWNo byAiJGFjX3B0X1BLR19DT05GSUciID4mNjsgfQorK2Vsc2UKKysgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+ JjY7IH0KKytmaQorKworKyAgaWYgdGVzdCAieCRhY19wdF9QS0dfQ09ORklHIiA9IHg7IHRoZW4K KysgICAgUEtHX0NPTkZJRz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6 JGFjX3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRo IGhvc3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xf d2FybmVkPXllcyA7OworK2VzYWMKKysgICAgUEtHX0NPTkZJRz0kYWNfcHRfUEtHX0NPTkZJRwor KyAgZmkKKytlbHNlCisrICBQS0dfQ09ORklHPSIkYWNfY3ZfcGF0aF9QS0dfQ09ORklHIgorK2Zp CisrCisrZmkKKytpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KKysJX3BrZ19taW5fdmVy c2lvbj0wLjkuMAorKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAkX3BrZ19taW5fdmVyc2lvbiIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcGtnLWNvbmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9u ICRfcGtnX21pbl92ZXJzaW9uLi4uICIgPiY2OyB9CisrCWlmICRQS0dfQ09ORklHIC0tYXRsZWFz dC1wa2djb25maWctdmVyc2lvbiAkX3BrZ19taW5fdmVyc2lvbjsgdGhlbgorKwkJeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2Vj aG8gInllcyIgPiY2OyB9CisrCWVsc2UKKysJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysJCVBL R19DT05GSUc9IiIKKysJZmkKKytmaQogKworK3BrZ19mYWlsZWQ9bm8KKyt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBSUE0iID4mNQorKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBSUE0uLi4gIiA+JjY7IH0KICsKLSsjIENoZWNrIHdoZXRoZXIg LS13aXRoLXJwbSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX3JwbStzZXR9IiA9IHNldDsg dGhlbiA6Ci0rICB3aXRodmFsPSR3aXRoX3JwbTsKKytpZiB0ZXN0IC1uICIkUlBNX0NGTEFHUyI7 IHRoZW4KKysgICAgcGtnX2N2X1JQTV9DRkxBR1M9IiRSUE1fQ0ZMQUdTIgorKyBlbGlmIHRlc3Qg LW4gIiRQS0dfQ09ORklHIjsgdGhlbgorKyAgICBpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyIgJiYg XAorKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCRQS0df Q09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzIFwicnBtXCIiOyB9ID4mNQorKyAgKCRQS0df Q09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJycG0iKSAyPiY1CisrICBhY19zdGF0dXM9 JD8KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19z dGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgorKyAgcGtnX2N2X1JQ TV9DRkxBR1M9YCRQS0dfQ09ORklHIC0tY2ZsYWdzICJycG0iIDI+L2Rldi9udWxsYAogK2Vsc2UK LSsgIHdpdGhfcnBtPSJhdXRvIgorKyAgcGtnX2ZhaWxlZD15ZXMKKytmaQorKyBlbHNlCisrICAg IHBrZ19mYWlsZWQ9dW50cmllZAorK2ZpCisraWYgdGVzdCAtbiAiJFJQTV9MSUJTIjsgdGhlbgor KyAgICBwa2dfY3ZfUlBNX0xJQlM9IiRSUE1fTElCUyIKKysgZWxpZiB0ZXN0IC1uICIkUEtHX0NP TkZJRyI7IHRoZW4KKysgICAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKKysgICAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkUEtHX0NPTkZJRyAtLWV4 aXN0cyAtLXByaW50LWVycm9ycyBcInJwbVwiIjsgfSA+JjUKKysgICgkUEtHX0NPTkZJRyAtLWV4 aXN0cyAtLXByaW50LWVycm9ycyAicnBtIikgMj4mNQorKyAgYWNfc3RhdHVzPSQ/CisrICAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK KysgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4KKysgIHBrZ19jdl9SUE1fTElCUz1gJFBL R19DT05GSUcgLS1saWJzICJycG0iIDI+L2Rldi9udWxsYAorK2Vsc2UKKysgIHBrZ19mYWlsZWQ9 eWVzCisrZmkKKysgZWxzZQorKyAgICBwa2dfZmFpbGVkPXVudHJpZWQKICtmaQogKwogKwogKwor K2lmIHRlc3QgJHBrZ19mYWlsZWQgPSB5ZXM7IHRoZW4KKysgICAJeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQogKwotK2lmIHRlc3QgIngkd2l0aF9ycG0iICE9ICJ4bm8iOyB0aGVuCi0rICBpZiB0ZXN0 ICJ4JHdpdGhfcnBtIiA9ICJ4eWVzIjsgdGhlbgotKyAgICBMSUJSUE09ImxpYnJwbS5zbyIKLSsg ICAgUlBNX1JFUVVJUkU9dHJ1ZQotKyAgICBETE9QRU5fUkVRVUlSRT1mYWxzZQotKyAgZWxpZiB0 ZXN0ICJ4JHdpdGhfcnBtIiA9ICJ4YXV0byI7IHRoZW4KLSsgICAgTElCUlBNPSJsaWJycG0uc28i Ci0rICAgIFJQTV9SRVFVSVJFPWZhbHNlCi0rICAgIERMT1BFTl9SRVFVSVJFPWZhbHNlCi0rICBl bHNlCi0rICAgIExJQlJQTT0iJHdpdGhfcnBtIgotKyAgICBSUE1fUkVRVUlSRT10cnVlCi0rICAg IERMT1BFTl9SRVFVSVJFPXRydWUKLSsgIGZpCi0rICBMSUJSUE1fU1RSSU5HPSciJyIkTElCUlBN IiciJworK2lmICRQS0dfQ09ORklHIC0tYXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAwLjIwOyB0 aGVuCisrICAgICAgICBfcGtnX3Nob3J0X2Vycm9yc19zdXBwb3J0ZWQ9eWVzCisrZWxzZQorKyAg ICAgICAgX3BrZ19zaG9ydF9lcnJvcnNfc3VwcG9ydGVkPW5vCisrZmkKKysgICAgICAgIGlmIHRl c3QgJF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZCA9IHllczsgdGhlbgorKwkgICAgICAgIFJQ TV9QS0dfRVJST1JTPWAkUEtHX0NPTkZJRyAtLXNob3J0LWVycm9ycyAtLXByaW50LWVycm9ycyAi cnBtIiAyPiYxYAorKyAgICAgICAgZWxzZQorKwkgICAgICAgIFJQTV9QS0dfRVJST1JTPWAkUEtH X0NPTkZJRyAtLXByaW50LWVycm9ycyAicnBtIiAyPiYxYAorKyAgICAgICAgZmkKKysJIyBQdXQg dGhlIG5hc3R5IGVycm9yIG1lc3NhZ2UgaW4gY29uZmlnLmxvZyB3aGVyZSBpdCBiZWxvbmdzCisr CWVjaG8gIiRSUE1fUEtHX0VSUk9SUyIgPiY1CiArCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHNwZWNpZmljIGxpYnJwbSB2ZXJzaW9uIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBzcGVjaWZpYyBsaWJycG0gdmVyc2lvbi4uLiAiID4mNjsg fQotKyAgSEFWRV9ETE9QRU5fTElCUlBNPWZhbHNlCi0rICBzYXZlX0xJQlM9IiRMSUJTIgotKyAg TElCUz0iJExJQlMgLWxkbCIKLSsgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0 aGVuIDoKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciAiY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hp bGUgY3Jvc3MgY29tcGlsaW5nCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4i ICIkTElORU5PIiA1OyB9CisrCUhBVkVfTElCUlBNPWZhbHNlCisrZWxpZiB0ZXN0ICRwa2dfZmFp bGVkID0gdW50cmllZDsgdGhlbgorKyAgICAgCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KKysJSEFW RV9MSUJSUE09ZmFsc2UKICtlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLworKwlSUE1fQ0ZMQUdTPSRwa2df Y3ZfUlBNX0NGTEFHUworKwlSUE1fTElCUz0kcGtnX2N2X1JQTV9MSUJTCisrICAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKKysk YXNfZWNobyAieWVzIiA+JjY7IH0KKysJSEFWRV9MSUJSUE09dHJ1ZQorK2ZpCiArCi0rI2luY2x1 ZGUgPHJwbS9ycG1saWIuaD4KLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsjaW5jbHVkZSA8ZXJybm8u aD4KKysgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCiArCi0raW50Ci0rbWFpbiAoKQotK3sKKysg ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBycG0g bGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcnBt IGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkuLi4gIiA+JjY7IH0KKysgICAgIyBUaGUgY29tcGls YXRpb24gcmVxdWlyZXMgLVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCisrICAgIHNhdmVfQ0ZM QUdTPSIkQ0ZMQUdTIgorKyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIKKysgICAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KICsKLSsgICAgdm9pZCAqaDsKLSsgICAgY29uc3QgY2hhciAqY29uc3QgKnJwbXZlcnA7 Ci0rICAgIEZJTEUgKmY7CisrLyogRHVwbGljYXRlIGhlcmUgdGhlIGRlY2xhcmF0aW9ucyB0byB2 ZXJpZnkgdGhleSBtYXRjaCAiZWxmcmVhZC5jIi4gICovCisrI2luY2x1ZGUgPHJwbS9ycG1saWIu aD4KKysjaW5jbHVkZSA8cnBtL3JwbXRzLmg+CisrI2luY2x1ZGUgPHJwbS9ycG1kYi5oPgorKyNp bmNsdWRlIDxycG0vaGVhZGVyLmg+CisrZXh0ZXJuIGNoYXIgKiBoZWFkZXJGb3JtYXQoSGVhZGVy IGgsIGNvbnN0IGNoYXIgKiBmbXQsIGVycm1zZ190ICogZXJybXNnKTsKKytleHRlcm4gaW50IHJw bVJlYWRDb25maWdGaWxlcyhjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7 CisrZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBycG1kYkZyZWVJdGVyYXRvcihycG1kYk1hdGNo SXRlcmF0b3IgbWkpOworK2V4dGVybiBIZWFkZXIgcnBtZGJOZXh0SXRlcmF0b3IocnBtZGJNYXRj aEl0ZXJhdG9yIG1pKTsKKytleHRlcm4gcnBtdHMgcnBtdHNDcmVhdGUodm9pZCk7CisrZXh0ZXJu IHJwbXRzIHJwbXRzRnJlZShycG10cyB0cyk7CisrZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBy cG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJwbXRhZywKKysJCQkJCSAg ICBjb25zdCB2b2lkICoga2V5cCwgc2l6ZV90IGtleWxlbik7CisrCisraW50CisrbWFpbiAoKQor K3sKKysKKysgIDsKKysgIHJldHVybiAwOworK30KKytfQUNFT0YKKytpZiBhY19mbl9jX3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6CisrCisrICAgICAgTElCUlBNX0NPTVBBVD10cnVlCisr ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHll cyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CisrCisrZWxzZQorKworKyAgICAgIExJQlJQ TV9DT01QQVQ9ZmFsc2UKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogbm8iID4mNQorKyRhc19lY2hvICJubyIgPiY2OyB9CisrCisrZmkKKyty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19l eHQKKysgICAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCisrCisrICAgICAgaWYgISAkTElCUlBNX0NP TVBBVDsgdGhlbgorKwlIQVZFX0xJQlJQTT1mYWxzZQorKwlSUE1fUEtHX0VSUk9SUz0iRm91bmQg JExJQlJQTSBBUEkgaXMgaW5jb21wYXRpYmlsZSB3aXRoIHRoaXMgR0RCIgorKyAgICAgIGZpCisr ICAgIGZpCisrCisrICAgIGlmICRIQVZFX0xJQlJQTTsgdGhlbgorKworKyRhc19lY2hvICIjZGVm aW5lIEhBVkVfTElCUlBNIDEiID4+Y29uZmRlZnMuaAorKworKyAgICAgIENGTEFHUz0iJENGTEFH UyAkUlBNX0NGTEFHUyIKKysgICAgICBMSUJTPSIkTElCUyAkUlBNX0xJQlMiCisrICAgIGVsc2UK KysgICAgICBpZiAkUlBNX1JFUVVJUkU7IHRoZW4KKysJYXNfZm5fZXJyb3IgIiRSUE1fUEtHX0VS Uk9SUyIgIiRMSU5FTk8iIDUKKysgICAgICBlbHNlCisrCXsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogV0FSTklORzogJFJQTV9QS0dfRVJST1JTIiA+JjUKKyskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiAkUlBNX1BLR19FUlJPUlMiID4mMjt9CisrICAgICAgZmkKKysg ICAgZmkKKysgIGZpCisrZmkKKysKKyAKKyAKKyBzdWJkaXJzPSIkc3ViZGlycyB0ZXN0c3VpdGUi CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29uZmlndXJlLmFjCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxNC0wMi0w NiAxNzoxODoyNi45Nzc3MTcyMjMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9j b25maWd1cmUuYWMJMjAxNC0wMi0wNiAxNzoxODozMy44NzM3MjQ2NzQgKzAxMDAKK0BAIC0xNjUs NiArMTY1LDE5OSBAQCBBQ19ERUZJTkVfRElSKEFVVE9fTE9BRF9TQUZFX1BBVEgsIGVzY2FwCisg CSAgICAgIFtEaXJlY3RvcmllcyBzYWZlIHRvIGhvbGQgYXV0by1sb2FkZWQgZmlsZXMuXSkKKyBB Q19NU0dfUkVTVUxUKFskd2l0aF9hdXRvX2xvYWRfc2FmZV9wYXRoXSkKKyAKKysjIEludGVncmF0 aW9uIHdpdGggcnBtIGxpYnJhcnkgdG8gc3VwcG9ydCBtaXNzaW5nIGRlYnVnaW5mbyBzdWdnZXN0 aW9ucy4KKysjIC0td2l0aG91dC1ycG06IERpc2FibGUgYW55IHJwbSBzdXBwb3J0LgorKyMgLS13 aXRoLXJwbT1saWJuYW1lLnNvOiBUcnkgdG8gZHluYW1pY2FsbHkgb3BlbiBgbGlibmFtZS5zbycg ZHVyaW5nIHJ1bnRpbWUuCisrIyAgIEV2ZW4gd2l0aCBydW50aW1lIG1pc3NpbmcgYGxpYm5hbWUu c28nIEdEQiB3aWxsIHN0aWxsIG90aGVyIHJ1biBjb3JyZWN0bHkuCisrIyAgIE1pc3NpbmcgYGxp Ym5hbWUuc28nIGR1cmluZyAuL2NvbmZpZ3VyZSB3aWxsIGFib3J0IHRoZSBjb25maWd1cmF0aW9u LgorKyMgLS13aXRoLXJwbT1saWJycG0uc286IExpa2UgYC0td2l0aC1ycG09bGlibmFtZS5zbycg YnV0IHRyeSB0byBmaW5kIHNwZWNpZmljCisrIyAgIG1pbm9yIHZlcnNpb24gZmlyc3Qgc3VjaCBh cyBgbGlicnBtLTQuNi5zbycgYXMgbWlub3IgdmVyc2lvbiBkaWZmZXJlbmNlcworKyMgICBtZWFu IEFQSStBQkkgaW5jb21wYXRpYmlsaXR5LiAgSWYgdGhlIHNwZWNpZmljIG1hdGNoIHZlcnNpb25l ZCBsaWJyYXJ5IG5hbWUKKysjICAgY291bGQgbm90IGJlIGZvdW5kIHN0aWxsIG9wZW4gZHluYW1p Y2FsbHkgYXQgbGVhc3QgYGxpYnJwbS5zbycuCisrIyAtLXdpdGgtcnBtOiBMaWtlIGAtLXdpdGgt cnBtPWxpYnJwbS5zbycgYnV0IGlmIGFueSBvZiBpdHMgZGV0ZWN0aW9uIGZhaWxzIHRyeQorKyMg ICB0byBmaW5kIGxpYnJwbSBmb3IgY29tcGlsYXRpb24tdGltZSBsaW5raW5nIGJ5IHBrZy1jb25m aWcuICBHREIgYmluYXJ5IHdpbGwKKysjICAgYmUgcHJvYmFibHkgbGlua2VkIHdpdGggdGhlIHZl cnNpb24gc3BlY2lmaWMgbGlicmFyeSAoYXMgYGxpYnJwbS00LjYuc28nKS4KKysjICAgRmFpbHVy ZSB0byBmaW5kIGxpYnJwbSBieSBwa2ctY29uZmlnIHdpbGwgYWJvcnQgdGhlIGNvbmZpZ3VyYXRp b24uCisrIyAoZGVmYXVsdCkgLS13aXRoLXJwbT1hdXRvOiBMaWtlIGAtLXdpdGgtcnBtPWxpYnJw bS5zbycgYnV0IGlmIGV2ZW4gcGtnLWNvbmZpZworKyMgICBjYW5ub3QgZmluZCBsaWJycG0gdXNl IHRvIHRoZSBycG1sZXNzIGNvbXBpbGF0aW9uIChsaWtlIGAtLXdpdGhvdXQtcnBtJykuCisrCisr QUNfQVJHX1dJVEgoW3JwbV0sCisrICBbQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1ycG1dLAorKyAg ICAgICAgICAgICAgICAgIFtxdWVyeSBycG0gZGF0YWJhc2UgZm9yIG1pc3NpbmcgZGVidWdpbmZv cyAoeWVzL25vLCBkZWYuIGF1dG89bGlicnBtLnNvKV0pXSwgW10sIFt3aXRoX3JwbT0iYXV0byJd KQorKworK200X3BhdHRlcm5fYWxsb3coW15BQ19NU0dfRVJST1IkXSkKKyttNF9wYXR0ZXJuX2Fs bG93KFteQUNfTVNHX1dBUk4kXSkKKytpZiB0ZXN0ICJ4JHdpdGhfcnBtIiAhPSAieG5vIjsgdGhl bgorKyAgaWYgdGVzdCAieCR3aXRoX3JwbSIgPSAieHllcyI7IHRoZW4KKysgICAgTElCUlBNPSJs aWJycG0uc28iCisrICAgIFJQTV9SRVFVSVJFPXRydWUKKysgICAgRExPUEVOX1JFUVVJUkU9ZmFs c2UKKysgIGVsaWYgdGVzdCAieCR3aXRoX3JwbSIgPSAieGF1dG8iOyB0aGVuCisrICAgIExJQlJQ TT0ibGlicnBtLnNvIgorKyAgICBSUE1fUkVRVUlSRT1mYWxzZQorKyAgICBETE9QRU5fUkVRVUlS RT1mYWxzZQorKyAgZWxzZQorKyAgICBMSUJSUE09IiR3aXRoX3JwbSIKKysgICAgUlBNX1JFUVVJ UkU9dHJ1ZQorKyAgICBETE9QRU5fUkVRVUlSRT10cnVlCisrICBmaQorKyAgTElCUlBNX1NUUklO Rz0nIiciJExJQlJQTSInIicKKysKKysgIEFDX01TR19DSEVDS0lORyhbc3BlY2lmaWMgbGlicnBt IHZlcnNpb25dKQorKyAgSEFWRV9ETE9QRU5fTElCUlBNPWZhbHNlCisrICBzYXZlX0xJQlM9IiRM SUJTIgorKyAgTElCUz0iJExJQlMgLWxkbCIKKysgIEFDX1JVTl9JRkVMU0UoQUNfTEFOR19QUk9H UkFNKFtbCisrI2luY2x1ZGUgPHJwbS9ycG1saWIuaD4KKysjaW5jbHVkZSA8ZGxmY24uaD4KKysj aW5jbHVkZSA8ZXJybm8uaD4KKysgIF1dLCBbWworKyAgICB2b2lkICpoOworKyAgICBjb25zdCBj aGFyICpjb25zdCAqcnBtdmVycDsKKysgICAgRklMRSAqZjsKICsKICsgICAgZiA9IGZvcGVuICgi Y29uZnRlc3Qub3V0IiwgInciKTsKICsgICAgaWYgKCFmKQpAQCAtOTAxLDM5ICsxMDAyLDIxIEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJlCiArCWZwcmludGYg KGYsICIlc1xuIiwgaDJfbmFtZSk7CiArCXJldHVybiAwOwogKyAgICAgIH0KLSsKLSsgIDsKLSsg IHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0 aGVuIDoKLSsKKysgIF1dKSwgWwogKyAgICBETE9QRU5fTElCUlBNPSJgY2F0IGNvbmZ0ZXN0Lm91 dGAiCiArICAgIGlmIHRlc3QgIngkRExPUEVOX0xJQlJQTSIgIT0gIngiOyB0aGVuCiArICAgICAg SEFWRV9ETE9QRU5fTElCUlBNPXRydWUKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJERMT1BFTl9MSUJSUE0iID4mNQotKyRhc19lY2hvICIk RExPUEVOX0xJQlJQTSIgPiY2OyB9CisrICAgICAgQUNfTVNHX1JFU1VMVCgkRExPUEVOX0xJQlJQ TSkKICsgICAgZmkKLSsKLStmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBn bW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKLSsgIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKKysgIF0pCiArICBybSAt ZiBjb25mdGVzdC5vdXQKICsKLSsKLSsKLSsgIGlmICRIQVZFX0RMT1BFTl9MSUJSUE07IHRoZW4K LSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkuLi4gIiA+JjY7IH0KKysgIG00X2RlZmlu ZShbQ0hFQ0tfTElCUlBNX0NPTVBBVF0sIFsKKysgICAgQUNfTVNHX0NIRUNLSU5HKFtycG0gbGli cmFyeSBBUEkgY29tcGF0aWJpbGl0eV0pCiArICAgICMgVGhlIGNvbXBpbGF0aW9uIHJlcXVpcmVz IC1XZXJyb3IgdG8gdmVyaWZ5IGFueXRoaW5nLgogKyAgICBzYXZlX0NGTEFHUz0iJENGTEFHUyIK ICsgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1XZXJyb3IiCi0rICAgIGNhdCBjb25mZGVmcy5oIC0gPDxf QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCisrICAg IEFDX0NPTVBJTEVfSUZFTFNFKEFDX0xBTkdfUFJPR1JBTShbWwogKy8qIER1cGxpY2F0ZSBoZXJl IHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5IHRoZXkgbWF0Y2ggImVsZnJlYWQuYyIuICAqLwog KyNpbmNsdWRlIDxycG0vcnBtbGliLmg+CiArI2luY2x1ZGUgPHJwbS9ycG10cy5oPgpAQCAtOTQ3 LDMxICsxMDMwLDE4IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmln dXJlCiArZXh0ZXJuIHJwbXRzIHJwbXRzRnJlZShycG10cyB0cyk7CiArZXh0ZXJuIHJwbWRiTWF0 Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJwbXRh ZywKICsJCQkJCSAgICBjb25zdCB2b2lkICoga2V5cCwgc2l6ZV90IGtleWxlbik7Ci0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBh Y19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rCisrICAgIF1dKSwgWwogKyAg ICAgIExJQlJQTV9DT01QQVQ9dHJ1ZQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsgfQot KwotK2Vsc2UKLSsKKysgICAgICBBQ19NU0dfUkVTVUxUKHllcykKKysgICAgXSwgWwogKyAgICAg IExJQlJQTV9DT01QQVQ9ZmFsc2UKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rCi0r ZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKKysgICAgICBBQ19NU0dfUkVTVUxUKG5vKQorKyAgICBdKQogKyAgICBDRkxBR1M9 IiRzYXZlX0NGTEFHUyIKKysgIF0pCiArCisrICBpZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0aGVu CisrICAgIENIRUNLX0xJQlJQTV9DT01QQVQKICsgICAgaWYgISAkTElCUlBNX0NPTVBBVDsgdGhl bgogKyAgICAgIEhBVkVfRExPUEVOX0xJQlJQTT1mYWxzZQogKyAgICBmaQpAQCAtOTc5LDQ5OCAr MTA0OSw0ODUgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb25maWd1cmUK ICsKICsgIGlmICRIQVZFX0RMT1BFTl9MSUJSUE07IHRoZW4KICsgICAgRExPUEVOX0xJQlJQTV9T VFJJTkc9JyInIiRETE9QRU5fTElCUlBNIiciJwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNF T0YKLSsjZGVmaW5lIERMT1BFTl9MSUJSUE0gJERMT1BFTl9MSUJSUE1fU1RSSU5HCi0rX0FDRU9G Ci0rCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9MSUJSUE0gMSIgPj5jb25mZGVmcy5oCi0r CisrICAgIEFDX0RFRklORV9VTlFVT1RFRChETE9QRU5fTElCUlBNLCAkRExPUEVOX0xJQlJQTV9T VFJJTkcsIFtsaWJycG0gdmVyc2lvbiBzcGVjaWZpYyBsaWJyYXJ5IG5hbWUgdG8gZGxvcGVuLl0p CisrICAgIEFDX0RFRklORShIQVZFX0xJQlJQTSwgMSwgW0RlZmluZSBpZiBsaWJycG0gbGlicmFy eSBpcyBiZWluZyB1c2VkLl0pCiArICBlbHNlCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0K KysgICAgQUNfTVNHX1JFU1VMVChubykKICsgICAgTElCUz0iJHNhdmVfTElCUyIKICsgICAgaWYg JERMT1BFTl9SRVFVSVJFOyB0aGVuCi0rICAgICAgYXNfZm5fZXJyb3IgIlNwZWNpZmljIG5hbWUg JExJQlJQTSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBjb3VsZCBub3QgYmUgb3BlbmVkLiIgIiRMSU5F Tk8iIDUKKysgICAgICBBQ19NU0dfRVJST1IoW1NwZWNpZmljIG5hbWUgJExJQlJQTSB3YXMgcmVx dWVzdGVkIGJ1dCBpdCBjb3VsZCBub3QgYmUgb3BlbmVkLl0pCiArICAgIGZpCisrICAgIFBLR19D SEVDS19NT0RVTEVTKFJQTSwgcnBtLCBbSEFWRV9MSUJSUE09dHJ1ZV0sIFtIQVZFX0xJQlJQTT1m YWxzZV0pCiArCisrICAgIGlmICRIQVZFX0xJQlJQTTsgdGhlbgorKyAgICAgIENIRUNLX0xJQlJQ TV9DT01QQVQKKysgICAgICBpZiAhICRMSUJSUE1fQ09NUEFUOyB0aGVuCisrCUhBVkVfTElCUlBN PWZhbHNlCisrCVJQTV9QS0dfRVJST1JTPSJGb3VuZCAkTElCUlBNIEFQSSBpcyBpbmNvbXBhdGli aWxlIHdpdGggdGhpcyBHREIiCisrICAgICAgZmkKKysgICAgZmkKICsKKysgICAgaWYgJEhBVkVf TElCUlBNOyB0aGVuCisrICAgICAgQUNfREVGSU5FKEhBVkVfTElCUlBNLCAxLCBbRGVmaW5lIGlm IGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQuXSkKKysgICAgICBDRkxBR1M9IiRDRkxBR1Mg JFJQTV9DRkxBR1MiCisrICAgICAgTElCUz0iJExJQlMgJFJQTV9MSUJTIgorKyAgICBlbHNlCisr ICAgICAgaWYgJFJQTV9SRVFVSVJFOyB0aGVuCisrCUFDX01TR19FUlJPUigkUlBNX1BLR19FUlJP UlMpCisrICAgICAgZWxzZQorKwlBQ19NU0dfV0FSTigkUlBNX1BLR19FUlJPUlMpCisrICAgICAg ZmkKKysgICAgZmkKKysgIGZpCisrZmkKKysgCisgQUNfQ09ORklHX1NVQkRJUlModGVzdHN1aXRl KQorIAorICMgQ2hlY2sgd2hldGhlciB0byBzdXBwb3J0IGFsdGVybmF0aXZlIHRhcmdldCBjb25m aWd1cmF0aW9ucworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvcmVsb3cuYworPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTQt MDItMDYgMTc6MTg6MjYuOTc4NzE3MjI0ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvY29yZWxvdy5jCTIwMTQtMDItMDYgMTc6MTg6MzMuODczNzI0Njc0ICswMTAwCitAQCAtMzE1 LDcgKzMxNSw3IEBAIGJ1aWxkX2lkX2xvY2F0ZV9leGVjIChpbnQgZnJvbV90dHkpCisgICAgICAg ICBzeW1maWxlX29iamZpbGUtPmZsYWdzIHw9IE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQ7Cisg ICAgIH0KKyAgIGVsc2UKKy0gICAgZGVidWdfcHJpbnRfbWlzc2luZyAoXygidGhlIG1haW4gZXhl Y3V0YWJsZSBmaWxlIiksIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKKysgICAgZGVidWdfcHJpbnRfbWlz c2luZyAoQlVJTERfSURfTUFJTl9FWEVDVVRBQkxFX0ZJTEVOQU1FLCBidWlsZF9pZF9maWxlbmFt ZSk7CisgCisgICBkb19jbGVhbnVwcyAoYmFja190byk7CisgCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvYnVpbGQtaWQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE0LTAyLTA2IDE3OjE4OjI2Ljg0MjcxNzA3NyArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2J1aWxkLWlkLmMJMjAxNC0wMi0wNiAxNzow ODoxOC4zNDEwNjAyOTUgKzAxMDAKK0BAIC0zMiw2ICszMiw3IEBACisgI2luY2x1ZGUgImdkYmNt ZC5oIgorICNpbmNsdWRlICJvYnNlcnZlci5oIgorICNpbmNsdWRlIDxzeXMvc3RhdC5oPgorKyNp bmNsdWRlICJlbGYvZXh0ZXJuYWwuaCIKKyAKKyAjZGVmaW5lIEJVSUxEX0lEX1ZFUkJPU0VfTk9O RSAwCisgI2RlZmluZSBCVUlMRF9JRF9WRVJCT1NFX0ZJTEVOQU1FUyAxCitAQCAtNjY2LDggKzY2 NywzNjAgQEAgYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBlbGZfYgorICAgcmV0 dXJuIHJlc3VsdDsKKyB9CisgCisrI2lmZGVmIEhBVkVfTElCUlBNCiArCisrI2luY2x1ZGUgPHJw bS9ycG1saWIuaD4KKysjaW5jbHVkZSA8cnBtL3JwbXRzLmg+CisrI2luY2x1ZGUgPHJwbS9ycG1k Yi5oPgorKyNpbmNsdWRlIDxycG0vaGVhZGVyLmg+CisrI2lmZGVmIERMT1BFTl9MSUJSUE0KKysj aW5jbHVkZSA8ZGxmY24uaD4KKysjZW5kaWYKICsKKysvKiBUaGlzIE1JU1NJTkdfUlBNX0hBU0gg dHJhY2tlciBpcyB1c2VkIHRvIGNvbGxlY3QgYWxsIHRoZSBtaXNzaW5nIHJwbSBmaWxlcworKyAg IGFuZCBhdm9pZCB0aGVpciBkdXBsaWNpdGllcyBkdXJpbmcgYSBzaW5nbGUgaW5mZXJpb3IgcnVu LiAgKi8KICsKKytzdGF0aWMgc3RydWN0IGh0YWIgKm1pc3NpbmdfcnBtX2hhc2g7CiArCi0raWYg dGVzdCAieCRhY19jdl9lbnZfUEtHX0NPTkZJR19zZXQiICE9ICJ4c2V0IjsgdGhlbgotKwlpZiB0 ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cGtnLWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy YW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cGtnLWNvbmZp ZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFj X3dvcmQuLi4gIiA+JjY7IH0KLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtHX0NPTkZJRytzZXR9 IiA9IHNldDsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGNhc2UgJFBLR19DT05GSUcgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNfY3ZfcGF0 aF9QS0dfQ09ORklHPSIkUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl c3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX1BLR19DT05GSUc9 IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZT CisrLyogVGhpcyBNSVNTSU5HX1JQTV9MSVNUIHRyYWNrZXIgaXMgdXNlZCB0byBjb2xsZWN0IGFu ZCBwcmludCBhcyBhIHNpbmdsZSBsaW5lCisrICAgYWxsIHRoZSBycG1zIHJpZ2h0IGJlZm9yZSB0 aGUgbmVhcmVzdCBHREIgcHJvbXB0LiAgSXQgZ2V0cyBjbGVhcmVkIGFmdGVyCisrICAgZWFjaCBz dWNoIHByaW50IChpdCBpcyBxdWVzdGlvbmFibGUgaWYgd2Ugc2hvdWxkIGNsZWFyIGl0IGFmdGVy IHRoZSBwcmludCkuCisrICAgKi8KICsKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rUEtHX0NPTkZJRz0k YWNfY3ZfcGF0aF9QS0dfQ09ORklHCi0raWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFBLR19D T05GSUciID4mNQotKyRhc19lY2hvICIkUEtHX0NPTkZJRyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSsk YXNfZWNobyAibm8iID4mNjsgfQotK2ZpCisrc3RydWN0IG1pc3NpbmdfcnBtCisrICB7CisrICAg IHN0cnVjdCBtaXNzaW5nX3JwbSAqbmV4dDsKKysgICAgY2hhciBycG1bMV07CisrICB9OworK3N0 YXRpYyBzdHJ1Y3QgbWlzc2luZ19ycG0gKm1pc3NpbmdfcnBtX2xpc3Q7Cisrc3RhdGljIGludCBt aXNzaW5nX3JwbV9saXN0X2VudHJpZXM7CiArCisrLyogUmV0dXJucyB0aGUgY291bnQgb2YgbmV3 bHkgYWRkZWQgcnBtcy4gICovCiArCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9QS0df Q09ORklHIjsgdGhlbgotKyAgYWNfcHRfUEtHX0NPTkZJRz0kUEtHX0NPTkZJRwotKyAgIyBFeHRy YWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwa2ctY29uZmlnIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgcGtnLWNvbmZpZzsgYWNfd29yZD0kMgotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193 b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0K LStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhl biA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJGFjX3B0 X1BLR19DT05GSUcgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNfY3ZfcGF0aF9hY19w dF9QS0dfQ09ORklHPSIkYWNfcHRfUEtHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUg dGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX2FjX3B0 X1BLR19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCi0rICAgICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCisrc3RhdGljIGludAorK21pc3NpbmdfcnBtX2VubGlzdCAoY29uc3QgY2hh ciAqZmlsZW5hbWUpCisreworKyAgc3RhdGljIGludCBycG1faW5pdF9kb25lID0gMDsKKysgIHJw bXRzIHRzOworKyAgcnBtZGJNYXRjaEl0ZXJhdG9yIG1pOworKyAgaW50IGNvdW50ID0gMDsKICsK LSsgIDs7Ci0rZXNhYwotK2ZpCi0rYWNfcHRfUEtHX0NPTkZJRz0kYWNfY3ZfcGF0aF9hY19wdF9Q S0dfQ09ORklHCi0raWYgdGVzdCAtbiAiJGFjX3B0X1BLR19DT05GSUciOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3B0X1BLR19D T05GSUciID4mNQotKyRhc19lY2hvICIkYWNfcHRfUEtHX0NPTkZJRyIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCisrI2lmZGVmIERMT1BFTl9MSUJSUE0KKysg IC8qIER1cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5IHRoZXkgbWF0Y2gu ICBUaGUgc2FtZSBzYW5pdHkKKysgICAgIGNoZWNrIGlzIHByZXNlbnQgYWxzbyBpbiBgY29uZmln dXJlLmFjJy4gICovCisrICBleHRlcm4gY2hhciAqIGhlYWRlckZvcm1hdChIZWFkZXIgaCwgY29u c3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKiBlcnJtc2cpOworKyAgc3RhdGljIGNoYXIgKigqaGVh ZGVyRm9ybWF0X3ApIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKmVycm1z Zyk7CisrICBleHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhjb25zdCBjaGFyICogZmlsZSwg Y29uc3QgY2hhciAqIHRhcmdldCk7CisrICBzdGF0aWMgaW50ICgqcnBtUmVhZENvbmZpZ0ZpbGVz X3ApIChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7CisrICBleHRlcm4g cnBtZGJNYXRjaEl0ZXJhdG9yIHJwbWRiRnJlZUl0ZXJhdG9yKHJwbWRiTWF0Y2hJdGVyYXRvciBt aSk7CisrICBzdGF0aWMgcnBtZGJNYXRjaEl0ZXJhdG9yICgqcnBtZGJGcmVlSXRlcmF0b3JfcCkg KHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrICBleHRlcm4gSGVhZGVyIHJwbWRiTmV4dEl0ZXJh dG9yKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrICBzdGF0aWMgSGVhZGVyICgqcnBtZGJOZXh0 SXRlcmF0b3JfcCkgKHJwbWRiTWF0Y2hJdGVyYXRvciBtaSk7CisrICBleHRlcm4gcnBtdHMgcnBt dHNDcmVhdGUodm9pZCk7CisrICBzdGF0aWMgcnBtdHMgKCpycG10c0NyZWF0ZV9wKSAodm9pZCk7 CisrICBleHRlcm4gcnBtdHMgcnBtdHNGcmVlKHJwbXRzIHRzKTsKKysgIHN0YXRpYyBycG10cyAo KnJwbXRzRnJlZV9wKSAocnBtdHMgdHMpOworKyAgZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBy cG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJwbXRhZywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqIGtleXAs IHNpemVfdCBrZXlsZW4pOworKyAgc3RhdGljIHJwbWRiTWF0Y2hJdGVyYXRvciAoKnJwbXRzSW5p dEl0ZXJhdG9yX3ApIChjb25zdCBycG10cyB0cywKKysJCQkJCQkgICAgcnBtVGFnIHJwbXRhZywK KysJCQkJCQkgICAgY29uc3Qgdm9pZCAqa2V5cCwKKysJCQkJCQkgICAgc2l6ZV90IGtleWxlbik7 CisrI2Vsc2UJLyogIURMT1BFTl9MSUJSUE0gKi8KKysjIGRlZmluZSBoZWFkZXJGb3JtYXRfcCBo ZWFkZXJGb3JtYXQKKysjIGRlZmluZSBycG1SZWFkQ29uZmlnRmlsZXNfcCBycG1SZWFkQ29uZmln RmlsZXMKKysjIGRlZmluZSBycG1kYkZyZWVJdGVyYXRvcl9wIHJwbWRiRnJlZUl0ZXJhdG9yCisr IyBkZWZpbmUgcnBtZGJOZXh0SXRlcmF0b3JfcCBycG1kYk5leHRJdGVyYXRvcgorKyMgZGVmaW5l IHJwbXRzQ3JlYXRlX3AgcnBtdHNDcmVhdGUKKysjIGRlZmluZSBycG10c0ZyZWVfcCBycG10c0Zy ZWUKKysjIGRlZmluZSBycG10c0luaXRJdGVyYXRvcl9wIHJwbXRzSW5pdEl0ZXJhdG9yCisrI2Vu ZGlmCS8qICFETE9QRU5fTElCUlBNICovCiArCi0rICBpZiB0ZXN0ICJ4JGFjX3B0X1BLR19DT05G SUciID0geDsgdGhlbgotKyAgICBQS0dfQ09ORklHPSIiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNy b3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90 IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJO SU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4m Mjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBQS0dfQ09ORklHPSRhY19w dF9QS0dfQ09ORklHCi0rICBmaQotK2Vsc2UKLSsgIFBLR19DT05GSUc9IiRhY19jdl9wYXRoX1BL R19DT05GSUciCi0rZmkKKysgIGdkYl9hc3NlcnQgKGZpbGVuYW1lICE9IE5VTEwpOwogKwotK2Zp Ci0raWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCi0rCV9wa2dfbWluX3ZlcnNpb249MC45 LjAKLSsJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBw a2ctY29uZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb24iID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAkX3BrZ19t aW5fdmVyc2lvbi4uLiAiID4mNjsgfQotKwlpZiAkUEtHX0NPTkZJRyAtLWF0bGVhc3QtcGtnY29u ZmlnLXZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb247IHRoZW4KLSsJCXsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMi ID4mNjsgfQotKwllbHNlCi0rCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rCQlQS0dfQ09ORklH PSIiCi0rCWZpCi0rZmkKKysgIGlmIChzdHJjbXAgKGZpbGVuYW1lLCBCVUlMRF9JRF9NQUlOX0VY RUNVVEFCTEVfRklMRU5BTUUpID09IDApCisrICAgIHJldHVybiAwOwogKwotK3BrZ19mYWlsZWQ9 bm8KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZv ciBSUE0iID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBSUE0uLi4gIiA+JjY7IH0KKysg IGlmIChmaWxlbmFtZVswXSAhPSAnLycpCisrICAgIHsKKysgICAgICB3YXJuaW5nIChfKCJJZ25v cmluZyBub24tYWJzb2x1dGUgZmlsZW5hbWU6IDwlcz4iKSwgZmlsZW5hbWUpOworKyAgICAgIHJl dHVybiAwOworKyAgICB9CiArCi0raWYgdGVzdCAtbiAiJFJQTV9DRkxBR1MiOyB0aGVuCi0rICAg IHBrZ19jdl9SUE1fQ0ZMQUdTPSIkUlBNX0NGTEFHUyIKLSsgZWxpZiB0ZXN0IC1uICIkUEtHX0NP TkZJRyI7IHRoZW4KLSsgICAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKLSsgICAgeyB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkUEtHX0NPTkZJRyAtLWV4 aXN0cyAtLXByaW50LWVycm9ycyBcInJwbVwiIjsgfSA+JjUKLSsgICgkUEtHX0NPTkZJRyAtLWV4 aXN0cyAtLXByaW50LWVycm9ycyAicnBtIikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK LSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4KLSsgIHBrZ19jdl9SUE1fQ0ZMQUdTPWAk UEtHX0NPTkZJRyAtLWNmbGFncyAicnBtIiAyPi9kZXYvbnVsbGAKLStlbHNlCi0rICBwa2dfZmFp bGVkPXllcwotK2ZpCi0rIGVsc2UKLSsgICAgcGtnX2ZhaWxlZD11bnRyaWVkCi0rZmkKLStpZiB0 ZXN0IC1uICIkUlBNX0xJQlMiOyB0aGVuCi0rICAgIHBrZ19jdl9SUE1fTElCUz0iJFJQTV9MSUJT IgotKyBlbGlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgotKyAgICBpZiB0ZXN0IC1uICIk UEtHX0NPTkZJRyIgJiYgXAotKyAgICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogXCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzIFwicnBtXCIiOyB9 ID4mNQotKyAgKCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJycG0iKSAyPiY1 Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhl bgotKyAgcGtnX2N2X1JQTV9MSUJTPWAkUEtHX0NPTkZJRyAtLWxpYnMgInJwbSIgMj4vZGV2L251 bGxgCi0rZWxzZQotKyAgcGtnX2ZhaWxlZD15ZXMKLStmaQotKyBlbHNlCi0rICAgIHBrZ19mYWls ZWQ9dW50cmllZAotK2ZpCisrICBpZiAoIXJwbV9pbml0X2RvbmUpCisrICAgIHsKKysgICAgICBz dGF0aWMgaW50IGluaXRfdHJpZWQ7CiArCisrICAgICAgLyogQWxyZWFkeSBmYWlsZWQgdGhlIGlu aXRpYWxpemF0aW9uIGJlZm9yZT8gICovCisrICAgICAgaWYgKGluaXRfdHJpZWQpCisrICAgICAg CXJldHVybiAwOworKyAgICAgIGluaXRfdHJpZWQgPSAxOwogKworKyNpZmRlZiBETE9QRU5fTElC UlBNCisrICAgICAgeworKwl2b2lkICpoOwogKwotK2lmIHRlc3QgJHBrZ19mYWlsZWQgPSB5ZXM7 IHRoZW4KLSsgICAJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQorKwloID0gZGxvcGVuIChETE9QRU5f TElCUlBNLCBSVExEX0xBWlkpOworKwlpZiAoIWgpCisrCSAgeworKwkgICAgd2FybmluZyAoXygi VW5hYmxlIHRvIG9wZW4gXCIlc1wiICglcyksICIKKysJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5m b3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKKysJCSAgICAgRExPUEVO X0xJQlJQTSwgZGxlcnJvciAoKSk7CisrCSAgICByZXR1cm4gMDsKKysJICB9CiArCi0raWYgJFBL R19DT05GSUcgLS1hdGxlYXN0LXBrZ2NvbmZpZy12ZXJzaW9uIDAuMjA7IHRoZW4KLSsgICAgICAg IF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZD15ZXMKLStlbHNlCi0rICAgICAgICBfcGtnX3No b3J0X2Vycm9yc19zdXBwb3J0ZWQ9bm8KLStmaQotKyAgICAgICAgaWYgdGVzdCAkX3BrZ19zaG9y dF9lcnJvcnNfc3VwcG9ydGVkID0geWVzOyB0aGVuCi0rCSAgICAgICAgUlBNX1BLR19FUlJPUlM9 YCRQS0dfQ09ORklHIC0tc2hvcnQtZXJyb3JzIC0tcHJpbnQtZXJyb3JzICJycG0iIDI+JjFgCi0r ICAgICAgICBlbHNlCi0rCSAgICAgICAgUlBNX1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tcHJp bnQtZXJyb3JzICJycG0iIDI+JjFgCi0rICAgICAgICBmaQotKwkjIFB1dCB0aGUgbmFzdHkgZXJy b3IgbWVzc2FnZSBpbiBjb25maWcubG9nIHdoZXJlIGl0IGJlbG9uZ3MKLSsJZWNobyAiJFJQTV9Q S0dfRVJST1JTIiA+JjUKKysJaWYgKCEoKGhlYWRlckZvcm1hdF9wID0gZGxzeW0gKGgsICJoZWFk ZXJGb3JtYXQiKSkKKysJICAgICAgJiYgKHJwbVJlYWRDb25maWdGaWxlc19wID0gZGxzeW0gKGgs ICJycG1SZWFkQ29uZmlnRmlsZXMiKSkKKysJICAgICAgJiYgKHJwbWRiRnJlZUl0ZXJhdG9yX3Ag PSBkbHN5bSAoaCwgInJwbWRiRnJlZUl0ZXJhdG9yIikpCisrCSAgICAgICYmIChycG1kYk5leHRJ dGVyYXRvcl9wID0gZGxzeW0gKGgsICJycG1kYk5leHRJdGVyYXRvciIpKQorKwkgICAgICAmJiAo cnBtdHNDcmVhdGVfcCA9IGRsc3ltIChoLCAicnBtdHNDcmVhdGUiKSkKKysJICAgICAgJiYgKHJw bXRzRnJlZV9wID0gZGxzeW0gKGgsICJycG10c0ZyZWUiKSkKKysJICAgICAgJiYgKHJwbXRzSW5p dEl0ZXJhdG9yX3AgPSBkbHN5bSAoaCwgInJwbXRzSW5pdEl0ZXJhdG9yIikpKSkKKysJICB7Cisr CSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGlicmFyeSBcIiVzXCIgaXMgaW5jb21wYXRpYmxlICgl cyksICIKKysJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5v dCBiZSBkaXNwbGF5ZWQiKSwKKysJCSAgICAgRExPUEVOX0xJQlJQTSwgZGxlcnJvciAoKSk7Cisr CSAgICBpZiAoZGxjbG9zZSAoaCkpCisrCSAgICAgIHdhcm5pbmcgKF8oIkVycm9yIGNsb3Npbmcg bGlicmFyeSBcIiVzXCI6ICVzXG4iKSwgRExPUEVOX0xJQlJQTSwKKysJCSAgICAgICBkbGVycm9y ICgpKTsKKysJICAgIHJldHVybiAwOworKwkgIH0KKysgICAgICB9CisrI2VuZGlmCS8qIERMT1BF Tl9MSUJSUE0gKi8KICsKLSsJSEFWRV9MSUJSUE09ZmFsc2UKLStlbGlmIHRlc3QgJHBrZ19mYWls ZWQgPSB1bnRyaWVkOyB0aGVuCi0rICAgICAJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKwlIQVZF X0xJQlJQTT1mYWxzZQotK2Vsc2UKLSsJUlBNX0NGTEFHUz0kcGtnX2N2X1JQTV9DRkxBR1MKLSsJ UlBNX0xJQlM9JHBrZ19jdl9SUE1fTElCUwotKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2 OyB9Ci0rCUhBVkVfTElCUlBNPXRydWUKLStmaQorKyAgICAgIGlmIChycG1SZWFkQ29uZmlnRmls ZXNfcCAoTlVMTCwgTlVMTCkgIT0gMCkKKysJeworKwkgIHdhcm5pbmcgKF8oIkVycm9yIHJlYWRp bmcgdGhlIHJwbSBjb25maWd1cmF0aW9uIGZpbGVzIikpOworKwkgIHJldHVybiAwOworKwl9CiAr Ci0rICAgIGlmICRIQVZFX0xJQlJQTTsgdGhlbgorKyAgICAgIHJwbV9pbml0X2RvbmUgPSAxOwor KyAgICB9CiArCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIHJwbSBsaWJyYXJ5IEFQSSBjb21wYXRpYmlsaXR5Li4uICIgPiY2OyB9Ci0rICAg ICMgVGhlIGNvbXBpbGF0aW9uIHJlcXVpcmVzIC1XZXJyb3IgdG8gdmVyaWZ5IGFueXRoaW5nLgot KyAgICBzYXZlX0NGTEFHUz0iJENGTEFHUyIKLSsgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1XZXJyb3Ii Ci0rICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBl bmQgY29uZmRlZnMuaC4gICovCisrICB0cyA9IHJwbXRzQ3JlYXRlX3AgKCk7CiArCi0rLyogRHVw bGljYXRlIGhlcmUgdGhlIGRlY2xhcmF0aW9ucyB0byB2ZXJpZnkgdGhleSBtYXRjaCAiZWxmcmVh ZC5jIi4gICovCi0rI2luY2x1ZGUgPHJwbS9ycG1saWIuaD4KLSsjaW5jbHVkZSA8cnBtL3JwbXRz Lmg+Ci0rI2luY2x1ZGUgPHJwbS9ycG1kYi5oPgotKyNpbmNsdWRlIDxycG0vaGVhZGVyLmg+Ci0r ZXh0ZXJuIGNoYXIgKiBoZWFkZXJGb3JtYXQoSGVhZGVyIGgsIGNvbnN0IGNoYXIgKiBmbXQsIGVy cm1zZ190ICogZXJybXNnKTsKLStleHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhjb25zdCBj aGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCk7Ci0rZXh0ZXJuIHJwbWRiTWF0Y2hJdGVy YXRvciBycG1kYkZyZWVJdGVyYXRvcihycG1kYk1hdGNoSXRlcmF0b3IgbWkpOwotK2V4dGVybiBI ZWFkZXIgcnBtZGJOZXh0SXRlcmF0b3IocnBtZGJNYXRjaEl0ZXJhdG9yIG1pKTsKLStleHRlcm4g cnBtdHMgcnBtdHNDcmVhdGUodm9pZCk7Ci0rZXh0ZXJuIHJwbXRzIHJwbXRzRnJlZShycG10cyB0 cyk7Ci0rZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBy cG10cyB0cywgcnBtVGFnIHJwbXRhZywKLSsJCQkJCSAgICBjb25zdCB2b2lkICoga2V5cCwgc2l6 ZV90IGtleWxlbik7CisrICBtaSA9IHJwbXRzSW5pdEl0ZXJhdG9yX3AgKHRzLCBSUE1UQUdfQkFT RU5BTUVTLCBmaWxlbmFtZSwgMCk7CisrICBpZiAobWkgIT0gTlVMTCkKKysgICAgeworKyAgICAg IGZvciAoOzspCisrCXsKKysJICBIZWFkZXIgaDsKKysJICBjaGFyICpkZWJ1Z2luZm8sICoqc2xv dCwgKnMsICpzMjsKKysJICBlcnJtc2dfdCBlcnI7CisrCSAgc2l6ZV90IHNyY3JwbWxlbiA9IHNp emVvZiAoIi5zcmMucnBtIikgLSAxOworKwkgIHNpemVfdCBkZWJ1Z2luZm9sZW4gPSBzaXplb2Yg KCItZGVidWdpbmZvIikgLSAxOworKwkgIHJwbWRiTWF0Y2hJdGVyYXRvciBtaV9kZWJ1Z2luZm87 CiArCi0raW50Ci0rbWFpbiAoKQotK3sKKysJICBoID0gcnBtZGJOZXh0SXRlcmF0b3JfcCAobWkp OworKwkgIGlmIChoID09IE5VTEwpCisrCSAgICBicmVhazsKICsKLSsgIDsKLSsgIHJldHVybiAw OwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6 CisrCSAgLyogVmVyaWZ5IHRoZSBkZWJ1Z2luZm8gZmlsZSBpcyBub3QgYWxyZWFkeSBpbnN0YWxs ZWQuICAqLwogKwotKyAgICAgIExJQlJQTV9DT01QQVQ9dHJ1ZQotKyAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hv ICJ5ZXMiID4mNjsgfQorKwkgIGRlYnVnaW5mbyA9IGhlYWRlckZvcm1hdF9wIChoLCAiJXtzb3Vy Y2VycG19LWRlYnVnaW5mby4le2FyY2h9IiwKKysJCQkJICAgICAgJmVycik7CisrCSAgaWYgKCFk ZWJ1Z2luZm8pCisrCSAgICB7CisrCSAgICAgIHdhcm5pbmcgKF8oIkVycm9yIHF1ZXJ5aW5nIHRo ZSBycG0gZmlsZSBgJXMnOiAlcyIpLCBmaWxlbmFtZSwKKysJICAgICAgICAgICAgICAgZXJyKTsK KysJICAgICAgY29udGludWU7CisrCSAgICB9CisrCSAgLyogcyA9IGAuc3JjLnJwbS1kZWJ1Z2lu Zm8uJXthcmNofScgKi8KKysJICBzID0gc3RycmNociAoZGVidWdpbmZvLCAnLScpIC0gc3JjcnBt bGVuOworKwkgIHMyID0gTlVMTDsKKysJICBpZiAocyA+IGRlYnVnaW5mbyAmJiBtZW1jbXAgKHMs ICIuc3JjLnJwbSIsIHNyY3JwbWxlbikgPT0gMCkKKysJICAgIHsKKysJICAgICAgLyogczIgPSBg LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KKysJICAgICAgczIgPSBt ZW1yY2hyIChkZWJ1Z2luZm8sICctJywgcyAtIGRlYnVnaW5mbyk7CisrCSAgICB9CisrCSAgaWYg KHMyKQorKwkgICAgeworKwkgICAgICAvKiBzMiA9IGAtJXt2ZXJzaW9ufS0le3JlbGVhc2V9LnNy Yy5ycG0tZGVidWdpbmZvLiV7YXJjaH0nICovCisrCSAgICAgIHMyID0gbWVtcmNociAoZGVidWdp bmZvLCAnLScsIHMyIC0gZGVidWdpbmZvKTsKKysJICAgIH0KKysJICBpZiAoIXMyKQorKwkgICAg eworKwkgICAgICB3YXJuaW5nIChfKCJFcnJvciBxdWVyeWluZyB0aGUgcnBtIGZpbGUgYCVzJzog JXMiKSwgZmlsZW5hbWUsCisrCSAgICAgICAgICAgICAgIGRlYnVnaW5mbyk7CisrCSAgICAgIHhm cmVlIChkZWJ1Z2luZm8pOworKwkgICAgICBjb250aW51ZTsKKysJICAgIH0KKysJICAvKiBzID0g YC5zcmMucnBtLWRlYnVnaW5mby4le2FyY2h9JyAqLworKwkgIC8qIHMyID0gYC0le3ZlcnNpb259 LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KKysJICBtZW1tb3ZlIChz MiArIGRlYnVnaW5mb2xlbiwgczIsIHMgLSBzMik7CisrCSAgbWVtY3B5IChzMiwgIi1kZWJ1Z2lu Zm8iLCBkZWJ1Z2luZm9sZW4pOworKwkgIC8qIHMgPSBgWFhYWC4le2FyY2h9JyAqLworKwkgIC8q IHN0cmxlbiAoIlhYWFgiKSA9PSBzcmNycG1sZW4gKyBkZWJ1Z2luZm9sZW4gKi8KKysJICAvKiBz MiA9IGAtZGVidWdpbmZvLSV7dmVyc2lvbn0tJXtyZWxlYXNlfVhYLiV7YXJjaH0nICovCisrCSAg Lyogc3RybGVuICgiWFgiKSA9PSBzcmNycG1sZW4gKi8KKysJICBtZW1tb3ZlIChzICsgZGVidWdp bmZvbGVuLCBzICsgc3JjcnBtbGVuICsgZGVidWdpbmZvbGVuLAorKwkJICAgc3RybGVuIChzICsg c3JjcnBtbGVuICsgZGVidWdpbmZvbGVuKSArIDEpOworKwkgIC8qIHMgPSBgLWRlYnVnaW5mby0l e3ZlcnNpb259LSV7cmVsZWFzZX0uJXthcmNofScgKi8KICsKLStlbHNlCisrCSAgLyogUlBNREJJ X1BBQ0tBR0VTIHJlcXVpcmVzIGtleWxlbiA9PSBzaXplb2YgKGludCkuICAqLworKwkgIC8qIFJQ TURCSV9MQUJFTCBpcyBhbiBpbnRlcmZhY2UgZm9yIE5WUi1iYXNlZCBkYmlGaW5kQnlMYWJlbCgp LiAgKi8KKysJICBtaV9kZWJ1Z2luZm8gPSBycG10c0luaXRJdGVyYXRvcl9wICh0cywgUlBNREJJ X0xBQkVMLCBkZWJ1Z2luZm8sIDApOworKwkgIHhmcmVlIChkZWJ1Z2luZm8pOworKwkgIGlmICht aV9kZWJ1Z2luZm8pCisrCSAgICB7CisrCSAgICAgIHJwbWRiRnJlZUl0ZXJhdG9yX3AgKG1pX2Rl YnVnaW5mbyk7CisrCSAgICAgIGNvdW50ID0gMDsKKysJICAgICAgYnJlYWs7CisrCSAgICB9CiAr Ci0rICAgICAgTElCUlBNX0NPTVBBVD1mYWxzZQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KKysJICAvKiBUaGUgYWxsb2NhdGVkIG1lbW9yeSBnZXRzIHV0aWxpemVkIGJlbG93IGZvciBN SVNTSU5HX1JQTV9IQVNILiAgKi8KKysJICBkZWJ1Z2luZm8gPSBoZWFkZXJGb3JtYXRfcCAoaCwK KysJCQkJICAgICAgIiV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LiV7YXJjaH0iLAorKwkJ CQkgICAgICAmZXJyKTsKKysJICBpZiAoIWRlYnVnaW5mbykKKysJICAgIHsKKysJICAgICAgd2Fy bmluZyAoXygiRXJyb3IgcXVlcnlpbmcgdGhlIHJwbSBmaWxlIGAlcyc6ICVzIiksIGZpbGVuYW1l LAorKwkgICAgICAgICAgICAgICBlcnIpOworKwkgICAgICBjb250aW51ZTsKKysJICAgIH0KICsK LStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuJGFjX2V4dAotKyAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKKysJICAvKiBCYXNlIHBhY2th Z2UgbmFtZSBmb3IgYGRlYnVnaW5mby1pbnN0YWxsJy4gIFdlIGRvIG5vdCB1c2UgdGhlCisrCSAg ICAgYHl1bScgY29tbWFuZCBkaXJlY3RseSBhcyB0aGUgbGluZQorKwkJIHl1bSAtLWVuYWJsZXJl cG89JypkZWJ1ZyonIGluc3RhbGwgTkFNRS1kZWJ1Z2luZm8uQVJDSAorKwkgICAgIHdvdWxkIGJl IG1vcmUgY29tcGxpY2F0ZWQgdGhhbiBqdXN0OgorKwkJIGRlYnVnaW5mby1pbnN0YWxsIE5BTUUt VkVSU0lPTi1SRUxFQVNFLkFSQ0gKKysJICAgICBEbyBub3Qgc3VwcGx5IHRoZSBycG0gYmFzZSBu YW1lIChkZXJpdmVkIGZyb20gLnNyYy5ycG0gbmFtZSkgYXMKKysJICAgICBkZWJ1Z2luZm8taW5z dGFsbCBpcyB1bmFibGUgdG8gaW5zdGFsbCB0aGUgZGVidWdpbmZvIHBhY2thZ2UgaWYKKysJICAg ICB0aGUgYmFzZSBuYW1lIFBLRyBiaW5hcnkgcnBtIGlzIG5vdCBpbnN0YWxsZWQgd2hpbGUgZm9y IGV4YW1wbGUKKysJICAgICBQS0ctbGlicyB3b3VsZCBiZSBpbnN0YWxsZWQgKFJIIEJ1ZyA0Njc5 MDEpLgorKwkgICAgIEZVVFVSRTogQWZ0ZXIgbXVsdGlwbGUgZGVidWdpbmZvIHZlcnNpb25zIHNp bXVsdGFuZW91c2x5IGluc3RhbGxlZAorKwkgICAgIGdldCBzdXBwb3J0ZWQgdGhlIHN1cHBvcnQg Zm9yIHRoZSBWRVJTSU9OLVJFTEVBU0UgdGFncyBoYW5kbGluZworKwkgICAgIG1heSBuZWVkIGFu IHVwZGF0ZS4gICovCiArCi0rICAgICAgaWYgISAkTElCUlBNX0NPTVBBVDsgdGhlbgotKwlIQVZF X0xJQlJQTT1mYWxzZQotKwlSUE1fUEtHX0VSUk9SUz0iRm91bmQgJExJQlJQTSBBUEkgaXMgaW5j b21wYXRpYmlsZSB3aXRoIHRoaXMgR0RCIgotKyAgICAgIGZpCi0rICAgIGZpCisrCSAgaWYgKG1p c3NpbmdfcnBtX2hhc2ggPT0gTlVMTCkKKysJICAgIHsKKysJICAgICAgLyogREVMX0YgaXMgcGFz c2VkIE5VTEwgYXMgTUlTU0lOR19SUE1fTElTVCdzIEhUQUJfREVMRVRFCisrCQkgc2hvdWxkIG5v dCBkZWFsbG9jYXRlIHRoZSBlbnRyaWVzLiAgKi8KICsKLSsgICAgaWYgJEhBVkVfTElCUlBNOyB0 aGVuCisrCSAgICAgIG1pc3NpbmdfcnBtX2hhc2ggPSBodGFiX2NyZWF0ZV9hbGxvYyAoNjQsIGh0 YWJfaGFzaF9zdHJpbmcsCisrCQkJICAgICAgIChpbnQgKCopIChjb25zdCB2b2lkICosIGNvbnN0 IHZvaWQgKikpIHN0cmVxLAorKwkJCQkJCSAgICBOVUxMLCB4Y2FsbG9jLCB4ZnJlZSk7CisrCSAg ICB9CisrCSAgc2xvdCA9IChjaGFyICoqKSBodGFiX2ZpbmRfc2xvdCAobWlzc2luZ19ycG1faGFz aCwgZGVidWdpbmZvLCBJTlNFUlQpOworKwkgIC8qIFhDQUxMT0MgbmV2ZXIgcmV0dXJucyBOVUxM LiAgKi8KKysJICBnZGJfYXNzZXJ0IChzbG90ICE9IE5VTEwpOworKwkgIGlmICgqc2xvdCA9PSBO VUxMKQorKwkgICAgeworKwkgICAgICBzdHJ1Y3QgbWlzc2luZ19ycG0gKm1pc3NpbmdfcnBtOwog KwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfTElCUlBNIDEiID4+Y29uZmRlZnMuaAorKwkgICAg ICAqc2xvdCA9IGRlYnVnaW5mbzsKICsKLSsgICAgICBDRkxBR1M9IiRDRkxBR1MgJFJQTV9DRkxB R1MiCi0rICAgICAgTElCUz0iJExJQlMgJFJQTV9MSUJTIgotKyAgICBlbHNlCi0rICAgICAgaWYg JFJQTV9SRVFVSVJFOyB0aGVuCi0rCWFzX2ZuX2Vycm9yICIkUlBNX1BLR19FUlJPUlMiICIkTElO RU5PIiA1Ci0rICAgICAgZWxzZQotKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IFdBUk5JTkc6ICRSUE1fUEtHX0VSUk9SUyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogJFJQTV9QS0dfRVJST1JTIiA+JjI7fQotKyAgICAgIGZpCi0rICAgIGZpCi0rICBm aQotK2ZpCisrCSAgICAgIG1pc3NpbmdfcnBtID0geG1hbGxvYyAoc2l6ZW9mICgqbWlzc2luZ19y cG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsKKysJICAgICAgc3RyY3B5IChtaXNzaW5nX3JwbS0+ cnBtLCBkZWJ1Z2luZm8pOworKwkgICAgICBtaXNzaW5nX3JwbS0+bmV4dCA9IG1pc3NpbmdfcnBt X2xpc3Q7CisrCSAgICAgIG1pc3NpbmdfcnBtX2xpc3QgPSBtaXNzaW5nX3JwbTsKKysJICAgICAg bWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKys7CisrCSAgICB9CisrCSAgZWxzZQorKwkgICAgeGZy ZWUgKGRlYnVnaW5mbyk7CisrCSAgY291bnQrKzsKKysJfQogKwotIAotIAotIHN1YmRpcnM9IiRz dWJkaXJzIHRlc3RzdWl0ZSIKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29u ZmlndXJlLmFjCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9n ZGIvY29uZmlndXJlLmFjCTIwMTMtMDgtMDIgMTY6MjU6MjQuOTgzMDk0NDE4ICswMjAwCi0rKysg Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZ3VyZS5hYwkyMDEzLTA4LTAyIDE2OjI1 OjI3LjM0NDA5NzU2OCArMDIwMAotQEAgLTE2NCw2ICsxNjQsMTk5IEBAIEFDX0RFRklORV9ESVIo QVVUT19MT0FEX1NBRkVfUEFUSCwgZXNjYXAKLSAJICAgICAgW0RpcmVjdG9yaWVzIHNhZmUgdG8g aG9sZCBhdXRvLWxvYWRlZCBmaWxlcy5dKQotIEFDX01TR19SRVNVTFQoWyR3aXRoX2F1dG9fbG9h ZF9zYWZlX3BhdGhdKQotIAotKyMgSW50ZWdyYXRpb24gd2l0aCBycG0gbGlicmFyeSB0byBzdXBw b3J0IG1pc3NpbmcgZGVidWdpbmZvIHN1Z2dlc3Rpb25zLgotKyMgLS13aXRob3V0LXJwbTogRGlz YWJsZSBhbnkgcnBtIHN1cHBvcnQuCi0rIyAtLXdpdGgtcnBtPWxpYm5hbWUuc286IFRyeSB0byBk eW5hbWljYWxseSBvcGVuIGBsaWJuYW1lLnNvJyBkdXJpbmcgcnVudGltZS4KLSsjICAgRXZlbiB3 aXRoIHJ1bnRpbWUgbWlzc2luZyBgbGlibmFtZS5zbycgR0RCIHdpbGwgc3RpbGwgb3RoZXIgcnVu IGNvcnJlY3RseS4KLSsjICAgTWlzc2luZyBgbGlibmFtZS5zbycgZHVyaW5nIC4vY29uZmlndXJl IHdpbGwgYWJvcnQgdGhlIGNvbmZpZ3VyYXRpb24uCi0rIyAtLXdpdGgtcnBtPWxpYnJwbS5zbzog TGlrZSBgLS13aXRoLXJwbT1saWJuYW1lLnNvJyBidXQgdHJ5IHRvIGZpbmQgc3BlY2lmaWMKLSsj ICAgbWlub3IgdmVyc2lvbiBmaXJzdCBzdWNoIGFzIGBsaWJycG0tNC42LnNvJyBhcyBtaW5vciB2 ZXJzaW9uIGRpZmZlcmVuY2VzCi0rIyAgIG1lYW4gQVBJK0FCSSBpbmNvbXBhdGliaWxpdHkuICBJ ZiB0aGUgc3BlY2lmaWMgbWF0Y2ggdmVyc2lvbmVkIGxpYnJhcnkgbmFtZQotKyMgICBjb3VsZCBu b3QgYmUgZm91bmQgc3RpbGwgb3BlbiBkeW5hbWljYWxseSBhdCBsZWFzdCBgbGlicnBtLnNvJy4K LSsjIC0td2l0aC1ycG06IExpa2UgYC0td2l0aC1ycG09bGlicnBtLnNvJyBidXQgaWYgYW55IG9m IGl0cyBkZXRlY3Rpb24gZmFpbHMgdHJ5Ci0rIyAgIHRvIGZpbmQgbGlicnBtIGZvciBjb21waWxh dGlvbi10aW1lIGxpbmtpbmcgYnkgcGtnLWNvbmZpZy4gIEdEQiBiaW5hcnkgd2lsbAotKyMgICBi ZSBwcm9iYWJseSBsaW5rZWQgd2l0aCB0aGUgdmVyc2lvbiBzcGVjaWZpYyBsaWJyYXJ5IChhcyBg bGlicnBtLTQuNi5zbycpLgotKyMgICBGYWlsdXJlIHRvIGZpbmQgbGlicnBtIGJ5IHBrZy1jb25m aWcgd2lsbCBhYm9ydCB0aGUgY29uZmlndXJhdGlvbi4KLSsjIChkZWZhdWx0KSAtLXdpdGgtcnBt PWF1dG86IExpa2UgYC0td2l0aC1ycG09bGlicnBtLnNvJyBidXQgaWYgZXZlbiBwa2ctY29uZmln Ci0rIyAgIGNhbm5vdCBmaW5kIGxpYnJwbSB1c2UgdG8gdGhlIHJwbWxlc3MgY29tcGlsYXRpb24g KGxpa2UgYC0td2l0aG91dC1ycG0nKS4KKysgICAgICBycG1kYkZyZWVJdGVyYXRvcl9wIChtaSk7 CisrICAgIH0KICsKLStBQ19BUkdfV0lUSChbcnBtXSwKLSsgIFtBU19IRUxQX1NUUklORyhbLS13 aXRoLXJwbV0sCi0rICAgICAgICAgICAgICAgICAgW3F1ZXJ5IHJwbSBkYXRhYmFzZSBmb3IgbWlz c2luZyBkZWJ1Z2luZm9zICh5ZXMvbm8sIGRlZi4gYXV0bz1saWJycG0uc28pXSldLCBbXSwgW3dp dGhfcnBtPSJhdXRvIl0pCisrICBycG10c0ZyZWVfcCAodHMpOwogKwotK200X3BhdHRlcm5fYWxs b3coW15BQ19NU0dfRVJST1IkXSkKLSttNF9wYXR0ZXJuX2FsbG93KFteQUNfTVNHX1dBUk4kXSkK LStpZiB0ZXN0ICJ4JHdpdGhfcnBtIiAhPSAieG5vIjsgdGhlbgotKyAgaWYgdGVzdCAieCR3aXRo X3JwbSIgPSAieHllcyI7IHRoZW4KLSsgICAgTElCUlBNPSJsaWJycG0uc28iCi0rICAgIFJQTV9S RVFVSVJFPXRydWUKLSsgICAgRExPUEVOX1JFUVVJUkU9ZmFsc2UKLSsgIGVsaWYgdGVzdCAieCR3 aXRoX3JwbSIgPSAieGF1dG8iOyB0aGVuCi0rICAgIExJQlJQTT0ibGlicnBtLnNvIgotKyAgICBS UE1fUkVRVUlSRT1mYWxzZQotKyAgICBETE9QRU5fUkVRVUlSRT1mYWxzZQotKyAgZWxzZQotKyAg ICBMSUJSUE09IiR3aXRoX3JwbSIKLSsgICAgUlBNX1JFUVVJUkU9dHJ1ZQotKyAgICBETE9QRU5f UkVRVUlSRT10cnVlCi0rICBmaQotKyAgTElCUlBNX1NUUklORz0nIiciJExJQlJQTSInIicKKysg IHJldHVybiBjb3VudDsKKyt9CiArCi0rICBBQ19NU0dfQ0hFQ0tJTkcoW3NwZWNpZmljIGxpYnJw bSB2ZXJzaW9uXSkKLSsgIEhBVkVfRExPUEVOX0xJQlJQTT1mYWxzZQotKyAgc2F2ZV9MSUJTPSIk TElCUyIKLSsgIExJQlM9IiRMSUJTIC1sZGwiCi0rICBBQ19SVU5fSUZFTFNFKEFDX0xBTkdfUFJP R1JBTShbWwotKyNpbmNsdWRlIDxycG0vcnBtbGliLmg+Ci0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0r I2luY2x1ZGUgPGVycm5vLmg+Ci0rICBdXSwgW1sKLSsgICAgdm9pZCAqaDsKLSsgICAgY29uc3Qg Y2hhciAqY29uc3QgKnJwbXZlcnA7Ci0rICAgIEZJTEUgKmY7Cisrc3RhdGljIGludAorK21pc3Np bmdfcnBtX2xpc3RfY29tcGFyIChjb25zdCBjaGFyICpjb25zdCAqYXAsIGNvbnN0IGNoYXIgKmNv bnN0ICpicCkKKyt7CisrICByZXR1cm4gc3RyY29sbCAoKmFwLCAqYnApOworK30KICsKLSsgICAg ZiA9IGZvcGVuICgiY29uZnRlc3Qub3V0IiwgInciKTsKLSsgICAgaWYgKCFmKQotKyAgICAgIHsK LSsJZnByaW50ZiAoc3RkZXJyLCAiQ2Fubm90IHdyaXRlIFwiJXNcIjogJXNcbiIsICJjb25mdGVz dC5vdXQiLAotKwkJIHN0cmVycm9yIChlcnJubykpOwotKwlyZXR1cm4gMTsKLSsgICAgICB9Ci0r ICAgIGggPSBkbG9wZW4gKCRMSUJSUE1fU1RSSU5HLCBSVExEX0xBWlkpOwotKyAgICBpZiAoIWgp Ci0rICAgICAgewotKwlmcHJpbnRmIChzdGRlcnIsICJkbG9wZW4gKFwiJXNcIik6ICVzXG4iLCAk TElCUlBNX1NUUklORywgZGxlcnJvciAoKSk7Ci0rCXJldHVybiAxOwotKyAgICAgIH0KLSsgICAg cnBtdmVycCA9IGRsc3ltIChoLCAiUlBNVkVSU0lPTiIpOwotKyAgICBpZiAoIXJwbXZlcnApCi0r ICAgICAgewotKwlmcHJpbnRmIChzdGRlcnIsICJkbHN5bSAoXCJSUE1WRVJTSU9OXCIpOiAlc1xu IiwgZGxlcnJvciAoKSk7Ci0rCXJldHVybiAxOwotKyAgICAgIH0KLSsgICAgZnByaW50ZiAoc3Rk ZXJyLCAiUlBNVkVSU0lPTiBpczogXCIiKTsKLSsgICAgZnByaW50ZiAoc3RkZXJyLCAiJXNcIlxu IiwgKnJwbXZlcnApOworKy8qIEl0IHJldHVybnMgYSBOVUxMLXRlcm1pbmF0ZWQgYXJyYXkgb2Yg c3RyaW5ncyBuZWVkaW5nIHRvIGJlIEZSRUVkLiAgSXQgbWF5CisrICAgYWxzbyByZXR1cm4gb25s eSBOVUxMLiAgKi8KICsKLSsgICAgLyogVHJ5IHRvIGZpbmQgdGhlIHNwZWNpZmljIGxpYnJwbSB2 ZXJzaW9uIG9ubHkgZm9yICJsaWJycG0uc28iIGFzIHdlIGRvCi0rICAgICAgIG5vdCBrbm93IGhv dyB0byBhc3NlbWJsZSB0aGUgdmVyc2lvbiBzdHJpbmcgb3RoZXJ3aXNlLiAgKi8KKytzdGF0aWMg dm9pZAorK21pc3NpbmdfcnBtX2xpc3RfcHJpbnQgKHZvaWQpCisreworKyAgY2hhciAqKmFycmF5 LCAqKmFycmF5X2l0ZXI7CisrICBzdHJ1Y3QgbWlzc2luZ19ycG0gKmxpc3RfaXRlcjsKKysgIHN0 cnVjdCBjbGVhbnVwICpjbGVhbnVwczsKICsKLSsgICAgaWYgKHN0cmNtcCAoImxpYnJwbS5zbyIs ICRMSUJSUE1fU1RSSU5HKSAhPSAwKQotKyAgICAgIHsKLSsJZnByaW50ZiAoZiwgIiVzXG4iLCAk TElCUlBNX1NUUklORyk7Ci0rCXJldHVybiAwOwotKyAgICAgIH0KLSsgICAgZWxzZQotKyAgICAg IHsKLSsJY2hhciAqaDJfbmFtZTsKLSsJdm9pZCAqaDI7Ci0rCWludCBtYWpvciwgbWlub3I7Cisr ICBpZiAobWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzID09IDApCisrICAgIHJldHVybjsKICsKLSsJ aWYgKHNzY2FuZiAoKnJwbXZlcnAsICIlZC4lZCIsICZtYWpvciwgJm1pbm9yKSAhPSAyKQotKwkg IHsKLSsJICAgIGZwcmludGYgKHN0ZGVyciwgIlVuYWJsZSB0byBwYXJzZSBSUE1WRVJTSU9OLlxu Iik7Ci0rCSAgICBmcHJpbnRmIChmLCAiJXNcbiIsICRMSUJSUE1fU1RSSU5HKTsKLSsJICAgIHJl dHVybiAwOwotKwkgIH0KLSsJLyogQXZvaWQgdGhlIHNxdWFyZSBicmFja2V0cyBieSBtYWxsb2Mu ICAqLwotKwloMl9uYW1lID0gbWFsbG9jICg2NCk7Ci0rCXNwcmludGYgKGgyX25hbWUsICJsaWJy cG0tJWQuJWQuc28iLCBtYWpvciwgbWlub3IpOwotKwloMiA9IGRsb3BlbiAoaDJfbmFtZSwgUlRM RF9MQVpZKTsKLSsJaWYgKCFoMikKLSsJICB7Ci0rCSAgICBmcHJpbnRmIChzdGRlcnIsICJkbG9w ZW4gKFwiJXNcIik6ICVzXG4iLCBoMl9uYW1lLCBkbGVycm9yICgpKTsKLSsJICAgIGZwcmludGYg KGYsICIlc1xuIiwgJExJQlJQTV9TVFJJTkcpOwotKwkgICAgcmV0dXJuIDA7Ci0rCSAgfQotKwlp ZiAoaDIgIT0gaCkKLSsJICB7Ci0rCSAgICBmcHJpbnRmIChzdGRlcnIsICJkbG9wZW4gb2YgXCIl c1wiIGFuZCBcIiVzXCIgYXJlIGRpZmZlcmVudC5cbiIsCi0rCQkgICAgICRMSUJSUE1fU1RSSU5H LCBoMl9uYW1lKTsKLSsJICAgIGZwcmludGYgKGYsICIlc1xuIiwgJExJQlJQTV9TVFJJTkcpOwot KwkgICAgcmV0dXJuIDA7Ci0rCSAgfQotKwkvKiBGb3VuZCB0aGUgdmFsaWQgLnNvIG5hbWUgd2l0 aCBhIHNwZWNpZmljIHZlcnNpb24uICAqLwotKwlmcHJpbnRmIChmLCAiJXNcbiIsIGgyX25hbWUp OwotKwlyZXR1cm4gMDsKLSsgICAgICB9Ci0rICBdXSksIFsKLSsgICAgRExPUEVOX0xJQlJQTT0i YGNhdCBjb25mdGVzdC5vdXRgIgotKyAgICBpZiB0ZXN0ICJ4JERMT1BFTl9MSUJSUE0iICE9ICJ4 IjsgdGhlbgotKyAgICAgIEhBVkVfRExPUEVOX0xJQlJQTT10cnVlCi0rICAgICAgQUNfTVNHX1JF U1VMVCgkRExPUEVOX0xJQlJQTSkKLSsgICAgZmkKLSsgIF0pCi0rICBybSAtZiBjb25mdGVzdC5v dXQKKysgIGFycmF5ID0geG1hbGxvYyAoc2l6ZW9mICgqYXJyYXkpICogbWlzc2luZ19ycG1fbGlz dF9lbnRyaWVzKTsKKysgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYXJyYXkpOwog KwotKyAgbTRfZGVmaW5lKFtDSEVDS19MSUJSUE1fQ09NUEFUXSwgWwotKyAgICBBQ19NU0dfQ0hF Q0tJTkcoW3JwbSBsaWJyYXJ5IEFQSSBjb21wYXRpYmlsaXR5XSkKLSsgICAgIyBUaGUgY29tcGls YXRpb24gcmVxdWlyZXMgLVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCi0rICAgIHNhdmVfQ0ZM QUdTPSIkQ0ZMQUdTIgotKyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIKLSsgICAgQUNfQ09N UElMRV9JRkVMU0UoQUNfTEFOR19QUk9HUkFNKFtbCi0rLyogRHVwbGljYXRlIGhlcmUgdGhlIGRl Y2xhcmF0aW9ucyB0byB2ZXJpZnkgdGhleSBtYXRjaCAiZWxmcmVhZC5jIi4gICovCi0rI2luY2x1 ZGUgPHJwbS9ycG1saWIuaD4KLSsjaW5jbHVkZSA8cnBtL3JwbXRzLmg+Ci0rI2luY2x1ZGUgPHJw bS9ycG1kYi5oPgotKyNpbmNsdWRlIDxycG0vaGVhZGVyLmg+Ci0rZXh0ZXJuIGNoYXIgKiBoZWFk ZXJGb3JtYXQoSGVhZGVyIGgsIGNvbnN0IGNoYXIgKiBmbXQsIGVycm1zZ190ICogZXJybXNnKTsK LStleHRlcm4gaW50IHJwbVJlYWRDb25maWdGaWxlcyhjb25zdCBjaGFyICogZmlsZSwgY29uc3Qg Y2hhciAqIHRhcmdldCk7Ci0rZXh0ZXJuIHJwbWRiTWF0Y2hJdGVyYXRvciBycG1kYkZyZWVJdGVy YXRvcihycG1kYk1hdGNoSXRlcmF0b3IgbWkpOwotK2V4dGVybiBIZWFkZXIgcnBtZGJOZXh0SXRl cmF0b3IocnBtZGJNYXRjaEl0ZXJhdG9yIG1pKTsKLStleHRlcm4gcnBtdHMgcnBtdHNDcmVhdGUo dm9pZCk7Ci0rZXh0ZXJuIHJwbXRzIHJwbXRzRnJlZShycG10cyB0cyk7Ci0rZXh0ZXJuIHJwbWRi TWF0Y2hJdGVyYXRvciBycG10c0luaXRJdGVyYXRvcihjb25zdCBycG10cyB0cywgcnBtVGFnIHJw bXRhZywKLSsJCQkJCSAgICBjb25zdCB2b2lkICoga2V5cCwgc2l6ZV90IGtleWxlbik7Ci0rICAg IF1dKSwgWwotKyAgICAgIExJQlJQTV9DT01QQVQ9dHJ1ZQotKyAgICAgIEFDX01TR19SRVNVTFQo eWVzKQotKyAgICBdLCBbCi0rICAgICAgTElCUlBNX0NPTVBBVD1mYWxzZQotKyAgICAgIEFDX01T R19SRVNVTFQobm8pCi0rICAgIF0pCi0rICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgotKyAgXSkK KysgIGFycmF5X2l0ZXIgPSBhcnJheTsKKysgIGZvciAobGlzdF9pdGVyID0gbWlzc2luZ19ycG1f bGlzdDsgbGlzdF9pdGVyICE9IE5VTEw7CisrICAgICAgIGxpc3RfaXRlciA9IGxpc3RfaXRlci0+ bmV4dCkKKysgICAgeworKyAgICAgICphcnJheV9pdGVyKysgPSBsaXN0X2l0ZXItPnJwbTsKKysg ICAgfQorKyAgZ2RiX2Fzc2VydCAoYXJyYXlfaXRlciA9PSBhcnJheSArIG1pc3NpbmdfcnBtX2xp c3RfZW50cmllcyk7CiArCi0rICBpZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0aGVuCi0rICAgIENI RUNLX0xJQlJQTV9DT01QQVQKLSsgICAgaWYgISAkTElCUlBNX0NPTVBBVDsgdGhlbgotKyAgICAg IEhBVkVfRExPUEVOX0xJQlJQTT1mYWxzZQotKyAgICBmaQotKyAgZmkKKysgIHFzb3J0IChhcnJh eSwgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzLCBzaXplb2YgKCphcnJheSksCisrCSAoaW50ICgq KSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKSBtaXNzaW5nX3JwbV9saXN0X2NvbXBhcik7 CiArCi0rICBpZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0aGVuCi0rICAgIERMT1BFTl9MSUJSUE1f U1RSSU5HPSciJyIkRExPUEVOX0xJQlJQTSInIicKLSsgICAgQUNfREVGSU5FX1VOUVVPVEVEKERM T1BFTl9MSUJSUE0sICRETE9QRU5fTElCUlBNX1NUUklORywgW2xpYnJwbSB2ZXJzaW9uIHNwZWNp ZmljIGxpYnJhcnkgbmFtZSB0byBkbG9wZW4uXSkKLSsgICAgQUNfREVGSU5FKEhBVkVfTElCUlBN LCAxLCBbRGVmaW5lIGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQuXSkKLSsgIGVsc2UK LSsgICAgQUNfTVNHX1JFU1VMVChubykKLSsgICAgTElCUz0iJHNhdmVfTElCUyIKLSsgICAgaWYg JERMT1BFTl9SRVFVSVJFOyB0aGVuCi0rICAgICAgQUNfTVNHX0VSUk9SKFtTcGVjaWZpYyBuYW1l ICRMSUJSUE0gd2FzIHJlcXVlc3RlZCBidXQgaXQgY291bGQgbm90IGJlIG9wZW5lZC5dKQotKyAg ICBmaQotKyAgICBQS0dfQ0hFQ0tfTU9EVUxFUyhSUE0sIHJwbSwgW0hBVkVfTElCUlBNPXRydWVd LCBbSEFWRV9MSUJSUE09ZmFsc2VdKQorKyAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIk1pc3Npbmcg c2VwYXJhdGUgZGVidWdpbmZvcywgdXNlOiAlcyIpLAorKwkJICAgICAiZGVidWdpbmZvLWluc3Rh bGwiKTsKKysgIGZvciAoYXJyYXlfaXRlciA9IGFycmF5OyBhcnJheV9pdGVyIDwgYXJyYXkgKyBt aXNzaW5nX3JwbV9saXN0X2VudHJpZXM7CisrICAgICAgIGFycmF5X2l0ZXIrKykKKysgICAgewor KyAgICAgIHB1dGNoYXJfdW5maWx0ZXJlZCAoJyAnKTsKKysgICAgICBwdXRzX3VuZmlsdGVyZWQg KCphcnJheV9pdGVyKTsKKysgICAgfQorKyAgcHV0Y2hhcl91bmZpbHRlcmVkICgnXG4nKTsKICsK LSsgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCi0rICAgICAgQ0hFQ0tfTElCUlBNX0NPTVBBVAot KyAgICAgIGlmICEgJExJQlJQTV9DT01QQVQ7IHRoZW4KLSsJSEFWRV9MSUJSUE09ZmFsc2UKLSsJ UlBNX1BLR19FUlJPUlM9IkZvdW5kICRMSUJSUE0gQVBJIGlzIGluY29tcGF0aWJpbGUgd2l0aCB0 aGlzIEdEQiIKLSsgICAgICBmaQotKyAgICBmaQorKyAgd2hpbGUgKG1pc3NpbmdfcnBtX2xpc3Qg IT0gTlVMTCkKKysgICAgeworKyAgICAgIGxpc3RfaXRlciA9IG1pc3NpbmdfcnBtX2xpc3Q7Cisr ICAgICAgbWlzc2luZ19ycG1fbGlzdCA9IGxpc3RfaXRlci0+bmV4dDsKKysgICAgICB4ZnJlZSAo bGlzdF9pdGVyKTsKKysgICAgfQorKyAgbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzID0gMDsKICsK LSsgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCi0rICAgICAgQUNfREVGSU5FKEhBVkVfTElCUlBN LCAxLCBbRGVmaW5lIGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQuXSkKLSsgICAgICBD RkxBR1M9IiRDRkxBR1MgJFJQTV9DRkxBR1MiCi0rICAgICAgTElCUz0iJExJQlMgJFJQTV9MSUJT IgotKyAgICBlbHNlCi0rICAgICAgaWYgJFJQTV9SRVFVSVJFOyB0aGVuCi0rCUFDX01TR19FUlJP UigkUlBNX1BLR19FUlJPUlMpCi0rICAgICAgZWxzZQotKwlBQ19NU0dfV0FSTigkUlBNX1BLR19F UlJPUlMpCi0rICAgICAgZmkKLSsgICAgZmkKLSsgIGZpCi0rZmkKLSsgCi0gQUNfQ09ORklHX1NV QkRJUlModGVzdHN1aXRlKQorKyAgZG9fY2xlYW51cHMgKGNsZWFudXBzKTsKKyt9CisrCisrc3Rh dGljIHZvaWQKKyttaXNzaW5nX3JwbV9jaGFuZ2UgKHZvaWQpCisreworKyAgZGVidWdfZmx1c2hf bWlzc2luZyAoKTsKKysKKysgIGdkYl9hc3NlcnQgKG1pc3NpbmdfcnBtX2xpc3QgPT0gTlVMTCk7 CisrICBpZiAobWlzc2luZ19ycG1faGFzaCAhPSBOVUxMKQorKyAgICB7CisrICAgICAgaHRhYl9k ZWxldGUgKG1pc3NpbmdfcnBtX2hhc2gpOworKyAgICAgIG1pc3NpbmdfcnBtX2hhc2ggPSBOVUxM OworKyAgICB9CisrfQorKworK2VudW0gbWlzc2luZ19leGVjCisrICB7CisrICAgIC8qIEluaXQg c3RhdGUuICBFWEVDX0JGRCBhbHNvIHN0aWxsIGNvdWxkIGJlIE5VTEwuICAqLworKyAgICBNSVNT SU5HX0VYRUNfTk9UX1RSSUVELAorKyAgICAvKiBXZSBzYXcgYSBub24tTlVMTCBFWEVDX0JGRCBi dXQgUlBNIGhhcyBubyBpbmZvIGFib3V0IGl0LiAgKi8KKysgICAgTUlTU0lOR19FWEVDX05PVF9G T1VORCwKKysgICAgLyogV2UgZm91bmQgRVhFQ19CRkQgYnkgUlBNIGFuZCB3ZSBlaXRoZXIgaGF2 ZSBpdHMgc3ltYm9scyAoZWl0aGVyIGVtYmVkZGVkCisrICAgICAgIG9yIHNlcGFyYXRlKSBvciB0 aGUgbWFpbiBleGVjdXRhYmxlJ3MgUlBNIGlzIG5vdyBjb250YWluZWQgaW4KKysgICAgICAgTUlT U0lOR19SUE1fSEFTSC4gICovCisrICAgIE1JU1NJTkdfRVhFQ19FTkxJU1RFRAorKyAgfTsKKytz dGF0aWMgZW51bSBtaXNzaW5nX2V4ZWMgbWlzc2luZ19leGVjID0gTUlTU0lOR19FWEVDX05PVF9U UklFRDsKKysKKysjZW5kaWYJLyogSEFWRV9MSUJSUE0gKi8KKysKKyt2b2lkCisrZGVidWdfZmx1 c2hfbWlzc2luZyAodm9pZCkKKyt7CisrI2lmZGVmIEhBVkVfTElCUlBNCisrICBtaXNzaW5nX3Jw bV9saXN0X3ByaW50ICgpOworKyNlbmRpZgorK30KKysKKyAvKiBUaGlzIE1JU1NJTkdfRklMRVBB SVJfSEFTSCB0cmFja2VyIGlzIHVzZWQgb25seSBmb3IgdGhlIGR1cGxpY2l0ZSBtZXNzYWdlcwor LSAgICAgVHJ5IHRvIGluc3RhbGwgdGhlIGhhc2ggZmlsZSAuLi4KKysgICAgIHl1bSAtLWVuYWJs ZXJlcG89JypkZWJ1ZyonIGluc3RhbGwgLi4uCisgICAgYXZvaWRhbmNlLiAgKi8KICAKLSAjIENo ZWNrIHdoZXRoZXIgdG8gc3VwcG9ydCBhbHRlcm5hdGl2ZSB0YXJnZXQgY29uZmlndXJhdGlvbnMK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29yZWxvdy5jCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY29yZWxvdy5jCTIwMTMtMDgt MDIgMTY6MjU6MjQuOTg0MDk0NDE5ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2NvcmVsb3cuYwkyMDEzLTA4LTAyIDE2OjI1OjI3LjM0NDA5NzU2OCArMDIwMAotQEAgLTMx Niw3ICszMTYsNyBAQCBidWlsZF9pZF9sb2NhdGVfZXhlYyAoaW50IGZyb21fdHR5KQotICAgICAg ICAgc3ltZmlsZV9vYmpmaWxlLT5mbGFncyB8PSBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEOwor IHN0cnVjdCBtaXNzaW5nX2ZpbGVwYWlyCitAQCAtNzIxLDExICsxMDc0LDE3IEBAIG1pc3Npbmdf ZmlsZXBhaXJfY2hhbmdlICh2b2lkKQorICAgICAgIC8qIEFsbCB0aGVpciBtZW1vcnkgY2FtZSBq dXN0IGZyb20gbWlzc2luZ19maWxlcGFpcl9PQlNUQUNLLiAgKi8KKyAgICAgICBtaXNzaW5nX2Zp bGVwYWlyX2hhc2ggPSBOVUxMOwogICAgICB9Ci0gICBlbHNlCi0tICAgIGRlYnVnX3ByaW50X21p c3NpbmcgKF8oInRoZSBtYWluIGV4ZWN1dGFibGUgZmlsZSIpLCBidWlsZF9pZF9maWxlbmFtZSk7 Ci0rICAgIGRlYnVnX3ByaW50X21pc3NpbmcgKEJVSUxEX0lEX01BSU5fRVhFQ1VUQUJMRV9GSUxF TkFNRSwgYnVpbGRfaWRfZmlsZW5hbWUpOworKyNpZmRlZiBIQVZFX0xJQlJQTQorKyAgbWlzc2lu Z19leGVjID0gTUlTU0lOR19FWEVDX05PVF9UUklFRDsKKysjZW5kaWYKKyB9CiAgCi0gICBkb19j bGVhbnVwcyAoYmFja190byk7Cisgc3RhdGljIHZvaWQKKyBkZWJ1Z19wcmludF9leGVjdXRhYmxl X2NoYW5nZWQgKHZvaWQpCisgeworKyNpZmRlZiBIQVZFX0xJQlJQTQorKyAgbWlzc2luZ19ycG1f Y2hhbmdlICgpOworKyNlbmRpZgorICAgbWlzc2luZ19maWxlcGFpcl9jaGFuZ2UgKCk7CisgfQor IAorQEAgLTc5MiwxNCArMTE1MSwzNCBAQCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25zdCBjaGFy ICpiaW5hcnksCisgCisgICAqc2xvdCA9IG1pc3NpbmdfZmlsZXBhaXI7CisgCistICAvKiBXZSBk byBub3QgY29sbGVjdCBhbmQgZmx1c2ggdGhlc2UgbWVzc2FnZXMgYXMgZWFjaCBzdWNoIG1lc3Nh Z2UKKy0gICAgIGFscmVhZHkgcmVxdWlyZXMgaXRzIG93biBzZXBhcmF0ZSBsaW5lcy4gICovCisr I2lmZGVmIEhBVkVfTElCUlBNCisrICBpZiAobWlzc2luZ19leGVjID09IE1JU1NJTkdfRVhFQ19O T1RfVFJJRUQpCisrICAgIHsKKysgICAgICBjaGFyICpleGVjZmlsZW5hbWU7CisgCistICBmcHJp bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCistCQkgICAgICBfKCJNaXNzaW5nIHNlcGFyYXRl IGRlYnVnaW5mbyBmb3IgJXNcbiIpLCBiaW5hcnkpOworLSAgaWYgKGRlYnVnICE9IE5VTEwpCist ICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgXygiVHJ5IHRvIGluc3RhbGwgdGhl IGhhc2ggZmlsZSAlc1xuIiksCistCQkJZGVidWcpOworKyAgICAgIGV4ZWNmaWxlbmFtZSA9IGdl dF9leGVjX2ZpbGUgKDApOworKyAgICAgIGlmIChleGVjZmlsZW5hbWUgIT0gTlVMTCkKKysJewor KwkgIGlmIChtaXNzaW5nX3JwbV9lbmxpc3QgKGV4ZWNmaWxlbmFtZSkgPT0gMCkKKysJICAgIG1p c3NpbmdfZXhlYyA9IE1JU1NJTkdfRVhFQ19OT1RfRk9VTkQ7CisrCSAgZWxzZQorKwkgICAgbWlz c2luZ19leGVjID0gTUlTU0lOR19FWEVDX0VOTElTVEVEOworKwl9CisrICAgIH0KKysgIGlmICht aXNzaW5nX2V4ZWMgIT0gTUlTU0lOR19FWEVDX0VOTElTVEVEKQorKyAgICBpZiAoKGJpbmFyeVsw XSA9PSAwIHx8IG1pc3NpbmdfcnBtX2VubGlzdCAoYmluYXJ5KSA9PSAwKQorKwkmJiAoZGVidWcg PT0gTlVMTCB8fCBtaXNzaW5nX3JwbV9lbmxpc3QgKGRlYnVnKSA9PSAwKSkKKysjZW5kaWYJLyog SEFWRV9MSUJSUE0gKi8KKysgICAgICB7CisrCS8qIFdlIGRvIG5vdCBjb2xsZWN0IGFuZCBmbHVz aCB0aGVzZSBtZXNzYWdlcyBhcyBlYWNoIHN1Y2ggbWVzc2FnZQorKwkgICBhbHJlYWR5IHJlcXVp cmVzIGl0cyBvd24gc2VwYXJhdGUgbGluZXMuICAqLworKworKwlmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRsb2csCisrCQkJICAgIF8oIk1pc3Npbmcgc2VwYXJhdGUgZGVidWdpbmZvIGZvciAl c1xuIiksIGJpbmFyeSk7CisrICAgICAgICBpZiAoZGVidWcgIT0gTlVMTCkKKysJICBmcHJpbnRm X3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csIF8oIlRyeTogJXMgJXNcbiIpLAorKwkJCSAgICAgICJ5 dW0gLS1lbmFibGVyZXBvPScqZGVidWcqJyBpbnN0YWxsIiwgZGVidWcpOworKyAgICAgIH0KKyB9 CiAgCisgLyogU2VlIGJ1aWxkLWlkLmguICAqLwoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCmluZGV4IDBiOTY3 ZmQuLmQzYmM0YTUgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKKysr IGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaApAQCAtMSwxOCArMSwxOSBAQAotSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb3JlbG93LmMKK0luZGV4OiBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi9jb3JlbG93LmMJMjAxMy0wOC0wMiAxNzowNzoxNy44ODY3Mzk1MTMg KzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29yZWxvdy5jCTIwMTMtMDgt MDIgMTc6MDc6MjguNDM0NzUzMjkzICswMjAwCi1AQCAtNDgsNiArNDgsOSBAQAorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTQtMDEtMjcgMDI6NTc6NTMuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY29yZWxvdy5jCTIwMTQt MDItMDYgMTY6NDY6NTIuMjYxNjQ2NDk5ICswMTAwCitAQCAtNDgsNiArNDgsMTAgQEAKICAjaW5j bHVkZSAiZ2RiX2JmZC5oIgogICNpbmNsdWRlICJjb21wbGV0ZXIuaCIKICAjaW5jbHVkZSAiZmls ZXN0dWZmLmgiCiArI2luY2x1ZGUgImF1eHYuaCIKICsjaW5jbHVkZSAiZWxmL2NvbW1vbi5oIgog KyNpbmNsdWRlICJnZGJjbWQuaCIKKysjaW5jbHVkZSAiYnVpbGQtaWQuaCIKICAKICAjaWZuZGVm IE9fTEFSR0VGSUxFCiAgI2RlZmluZSBPX0xBUkdFRklMRSAwCi1AQCAtMjczLDYgKzI3Niw1MyBA QCBhZGRfdG9fdGhyZWFkX2xpc3QgKGJmZCAqYWJmZCwgYXNlY3Rpb24KK0BAIC0yNzEsNiArMjc1 LDUzIEBAIGFkZF90b190aHJlYWRfbGlzdCAoYmZkICphYmZkLCBhc2VjdGlvbgogICAgICBpbmZl cmlvcl9wdGlkID0gcHRpZDsJCQkvKiBZZXMsIG1ha2UgaXQgY3VycmVudC4gICovCiAgfQogIApA QCAtNDQsNyArNDUsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvcmVs b3cuYwogKyAgICAgZmlsZSAtIHN1Y2ggLmVoX2ZyYW1lIHdvdWxkIG5vdCBiZSBmb3VuZCBpZiBT WU1GSUxFX09CSkZJTEUgd291bGQgcmVmZXIKICsgICAgIGRpcmVjdGx5IHRvIHRoZSBzZXBhcmF0 ZSBkZWJ1ZyBpbmZvIGZpbGUuICAqLwogKwotKyAgZXhlY2ZpbGVuYW1lID0gYnVpbGRfaWRfdG9f ZmlsZW5hbWUgKGJ1aWxkX2lkLCAmYnVpbGRfaWRfZmlsZW5hbWUsIDApOworKyAgZXhlY2ZpbGVu YW1lID0gYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGJ1aWxkX2lkLCAmYnVpbGRfaWRfZmlsZW5hbWUp OwogKyAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgYnVpbGRfaWRfZmlsZW5hbWUpOwogKwogKyAgaWYg KGV4ZWNmaWxlbmFtZSAhPSBOVUxMKQpAQCAtNjYsNyArNjcsNyBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2NvcmVsb3cuYwogIC8qIFRoaXMgcm91dGluZSBvcGVucyBhbmQg c2V0cyB1cCB0aGUgY29yZSBmaWxlIGJmZC4gICovCiAgCiAgc3RhdGljIHZvaWQKLUBAIC00MTEs NiArNDYxLDE0IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0eSkKK0BA IC00MDksNiArNDYwLDE0IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0 eSkKICAJc3dpdGNoX3RvX3RocmVhZCAodGhyZWFkLT5wdGlkKTsKICAgICAgfQogIApAQCAtODEs NyArODIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvcmVsb3cuYwog ICAgcG9zdF9jcmVhdGVfaW5mZXJpb3IgKCZjb3JlX29wcywgZnJvbV90dHkpOwogIAogICAgLyog Tm93IGdvIHRocm91Z2ggdGhlIHRhcmdldCBzdGFjayBsb29raW5nIGZvciB0aHJlYWRzIHNpbmNl IHRoZXJlCi1AQCAtOTc0LDQgKzEwMzIsMTEgQEAgX2luaXRpYWxpemVfY29yZWxvdyAodm9pZCkK K0BAIC05ODAsNCArMTAzOSwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQogICAgaW5p dF9jb3JlX29wcyAoKTsKICAKICAgIGFkZF90YXJnZXRfd2l0aF9jb21wbGV0ZXIgKCZjb3JlX29w cywgZmlsZW5hbWVfY29tcGxldGVyKTsKQEAgLTkzLDExICs5NCwxMSBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5VTEwsIE5VTEwsIE5VTEws CiArCQkJICAgJnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMy0wOC0wMiAxNzowNzoxNy44ODY3Mzk1 MTMgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTMtMDgtMDIgMTc6MDc6MjguNDQzNzUzMzA0ICswMjAwCi1AQCAtMTcxMTksNiArMTcxMTks MjcgQEAgaW5mb3JtYXRpb24gZmlsZXMuCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9kb2MvZ2RiLnRleGluZm8JMjAxNC0wMi0wNiAxNjo0Njo1MS44MDQ2NDU5ODkgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNC0wMi0wNiAxNjo0 Njo1Mi4xMTA2NDYzMzEgKzAxMDAKK0BAIC0xNzQxMyw2ICsxNzQxMywyNyBAQCBpbmZvcm1hdGlv biBmaWxlcy4KICAKICBAZW5kIHRhYmxlCiAgCkBAIC0xMjUsMTEgKzEyNiwxOSBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNv ZGV7LmdudV9kZWJ1Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25z CiAgQSBkZWJ1ZyBsaW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZp bGUgbmFtZWQKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc29saWItc3ZyNC5j CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc29saWItc3ZyNC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTMt MDgtMDIgMTc6MDc6MTcuODg2NzM5NTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3NvbGliLXN2cjQuYwkyMDEzLTA4LTAyIDE3OjA3OjI4LjQ0NDc1MzMwNSArMDIwMAot QEAgLTEzNjUsOSArMTM2NSw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBD T1JFX0FECistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAx NC0wMS0yNyAwMjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9zb2xpYi1zdnI0LmMJMjAxNC0wMi0wNiAxNjo0OToyNy41MDg4MTkxNzQgKzAxMDAKK0BA IC00Nyw2ICs0Nyw3IEBACisgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKKyAjaW5jbHVkZSAiZ2Ri X2JmZC5oIgorICNpbmNsdWRlICJwcm9iZS5oIgorKyNpbmNsdWRlICJidWlsZC1pZC5oIgorIAor IHN0YXRpYyBzdHJ1Y3QgbGlua19tYXBfb2Zmc2V0cyAqc3ZyNF9mZXRjaF9saW5rX21hcF9vZmZz ZXRzICh2b2lkKTsKKyBzdGF0aWMgaW50IHN2cjRfaGF2ZV9saW5rX21hcF9vZmZzZXRzICh2b2lk KTsKK0BAIC0xMzY5LDkgKzEzNzAsNTIgQEAgc3ZyNF9yZWFkX3NvX2xpc3QgKENPUkVfQUREUiBs bSwgQ09SRV9BRAogIAkgIGNvbnRpbnVlOwogIAl9CiAgCkBAIC0xNTEsNyArMTYwLDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zb2xpYi1zdnI0LmMKICsKICsJICAgIC8q IE1pc3NpbmcgdGhlIGJ1aWxkLWlkIG1hdGNoaW5nIHNlcGFyYXRlIGRlYnVnIGluZm8gZmlsZQog KwkgICAgICAgd291bGQgYmUgaGFuZGxlZCB3aGlsZSBTT19OQU1FIGdldHMgbG9hZGVkLiAgKi8K LSsJICAgIG5hbWUgPSBidWlsZF9pZF90b19maWxlbmFtZSAoYnVpbGRfaWQsICZidWlsZF9pZF9m aWxlbmFtZSwgMCk7CisrCSAgICBuYW1lID0gYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGJ1aWxkX2lk LCAmYnVpbGRfaWRfZmlsZW5hbWUpOwogKwkgICAgaWYgKG5hbWUgIT0gTlVMTCkKICsJICAgICAg ewogKwkJc3RybmNweSAobmV3LT5zb19uYW1lLCBuYW1lLCBTT19OQU1FX01BWF9QQVRIX1NJWkUg LSAxKTsKQEAgLTE4NSwyNyArMTk0LDE2MCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3NvbGliLXN2cjQuYwogICAgICAgIHhmcmVlIChidWZmZXIpOwogIAogICAgICAgIC8q IElmIHRoaXMgZW50cnkgaGFzIG5vIG5hbWUsIG9yIGl0cyBuYW1lIG1hdGNoZXMgdGhlIG5hbWUK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZWxmcmVhZC5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTMtMDgtMDIgMTc6MDc6MTcuODg2 NzM5NTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwky MDEzLTA4LTAyIDE3OjA5OjA2LjQ2MDg4MTUwMyArMDIwMAotQEAgLTQ1LDYgKzQ1LDExIEBACi0g I2luY2x1ZGUgInJlZ2NhY2hlLmgiCi0gI2luY2x1ZGUgImJjYWNoZS5oIgotICNpbmNsdWRlICJn ZGJfYmZkLmgiCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9lbGZyZWFkLmMJMjAx NC0wMS0yNyAwMjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9lbGZyZWFkLmMJMjAxNC0wMi0wNiAxNjo0Njo1Mi4yNDk2NDY0ODYgKzAxMDAKK0BAIC0x MzE2LDkgKzEzMTYsMTAgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZp bAorIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKKyAJICAg JiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQorICAg ICB7CistICAgICAgY2hhciAqZGVidWdmaWxlOworKyAgICAgIGNoYXIgKmRlYnVnZmlsZSwgKmJ1 aWxkX2lkX2ZpbGVuYW1lOworIAorLSAgICAgIGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVi dWdfZmlsZV9ieV9idWlsZGlkIChvYmpmaWxlKTsKKysgICAgICBkZWJ1Z2ZpbGUgPSBmaW5kX3Nl cGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSwKKysJCQkJCQkgICAgICAgJmJ1 aWxkX2lkX2ZpbGVuYW1lKTsKKyAKKyAgICAgICBpZiAoZGVidWdmaWxlID09IE5VTEwpCisgCWRl YnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9kZWJ1Z2xpbmsgKG9iamZpbGUp OworQEAgLTEzMzIsNiArMTMzMywxMiBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsCisgCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBkZWJ1Z2ZpbGUs IHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOworIAkgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsKKyAJ fQorKyAgICAgIC8qIENoZWNrIGlmIGFueSBzZXBhcmF0ZSBkZWJ1ZyBpbmZvIGhhcyBiZWVuIGV4 dHJhY3RlZCBvdXQuICAqLworKyAgICAgIGVsc2UgaWYgKGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1l IChvYmpmaWxlLT5vYmZkLCAiLmdudV9kZWJ1Z2xpbmsiKQorKwkgICAgICAgIT0gTlVMTCkKKysJ ZGVidWdfcHJpbnRfbWlzc2luZyAob2JqZmlsZV9uYW1lIChvYmpmaWxlKSwgYnVpbGRfaWRfZmls ZW5hbWUpOworKworKyAgICAgIHhmcmVlIChidWlsZF9pZF9maWxlbmFtZSk7CisgICAgIH0KKyB9 CisgCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3ltZmlsZS5oCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNC0wMS0yNyAw Mjo1Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zeW1m aWxlLmgJMjAxNC0wMi0wNiAxNjo0Njo1Mi4yNTA2NDY0ODcgKzAxMDAKK0BAIC01NTQsNiArNTU0 LDEwIEBAIHZvaWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHMKKyAKKyBleHRl cm4gc3RydWN0IGNsZWFudXAgKmluY3JlbWVudF9yZWFkaW5nX3N5bXRhYiAodm9pZCk7CisgCisr LyogYnVpbGQtaWQgc3VwcG9ydC4gICovCisrZXh0ZXJuIHN0cnVjdCBlbGZfYnVpbGRfaWQgKmJ1 aWxkX2lkX2FkZHJfZ2V0IChDT1JFX0FERFIgYWRkcik7CisrZXh0ZXJuIHZvaWQgZGVidWdfcHJp bnRfbWlzc2luZyAoY29uc3QgY2hhciAqYmluYXJ5LCBjb25zdCBjaGFyICpkZWJ1Zyk7CisrCisg LyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KKyAKKyAvKiBOYW1lcyBmb3IgYSBkd2FyZjIgZGVidWdn aW5nIHNlY3Rpb24uICBUaGUgZmllbGQgTk9STUFMIGlzIHRoZSBub3JtYWwKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE0 LTAyLTA2IDE2OjQ2OjUxLjY0MzY0NTgxMCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE0LTAyLTA2IDE2OjQ2OjUyLjI1MTY0NjQ4OCAr MDEwMAorQEAgLTE1MDQsNiArMTUwNCwxNiBAQCBwcm9jIGRlZmF1bHRfZ2RiX3N0YXJ0IHsgfSB7 CisgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgorIAl9CisgICAg IH0KKysgICAgIyBUdXJuIG9mZiB0aGUgbWlzc2luZyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRl IGRvZXMgbm90IGV4cGVjdCBpdC4KKysgICAgc2VuZF9nZGIgInNldCBidWlsZC1pZC12ZXJib3Nl IDBcbiIKKysgICAgZ2RiX2V4cGVjdCAxMCB7CisrCS1yZSAiJGdkYl9wcm9tcHQgJCIgeworKwkg ICAgdmVyYm9zZSAiRGlzYWJsZWQgdGhlIG1pc3NpbmcgZGVidWcgaW5mb3Mgd2FybmluZ3MuIiAy CisrCX0KKysJdGltZW91dCB7CisrCSAgICB3YXJuaW5nICJDb3VsZCBub3QgZGlzYWJsZSB0aGUg bWlzc2luZyBkZWJ1ZyBpbmZvcyB3YXJuaW5ncy4uIgorKwl9CisrICAgIH0KKyAgICAgcmV0dXJu IDAKKyB9CisgCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2xpYi9t aS1zdXBwb3J0LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE0LTAxLTI3IDAyOjU3OjU0LjAwMDAw MDAwMCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWkt c3VwcG9ydC5leHAJMjAxNC0wMi0wNiAxNjo0Njo1Mi4yNTI2NDY0ODkgKzAxMDAKK0BAIC0yMTIs NiArMjEyLDE2IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0geworIAkgICAg d2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIKKyAJfQorICAgICB9CisrICAg ICMgVHVybiBvZmYgdGhlIG1pc3Npbmcgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5v dCBleHBlY3QgaXQuCisrICAgIHNlbmRfZ2RiICIxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3Nl IDBcbiIKKysgICAgZ2RiX2V4cGVjdCAxMCB7CisrCS1yZSAiLioxOTAtZ2RiLXNldCBidWlsZC1p ZC12ZXJib3NlIDBcclxuMTkwXFxcXmRvbmVcclxuJG1pX2dkYl9wcm9tcHQkIiB7CisrCSAgICB2 ZXJib3NlICJEaXNhYmxlZCB0aGUgbWlzc2luZyBkZWJ1ZyBpbmZvcyB3YXJuaW5ncy4iIDIKKysJ fQorKwl0aW1lb3V0IHsKKysJICAgIHdhcm5pbmcgIkNvdWxkIG5vdCBkaXNhYmxlIHRoZSBtaXNz aW5nIGRlYnVnIGluZm9zIHdhcm5pbmdzLi4iCisrCX0KKysgICAgfQorICAgICAjIElmIGFsbG93 aW5nIHRoZSBpbmZlcmlvciB0byBoYXZlIGl0cyBvd24gUFRZIHRoZW4gYXNzaWduIHRoZSBpbmZl cmlvcgorICAgICAjIGl0cyBvd24gdGVybWluYWwgZGV2aWNlIGhlcmUuCisgICAgIGlmIHsgJHNl cGFyYXRlX2luZmVyaW9yX3B0eSB9IHsKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9v YmpmaWxlcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9v YmpmaWxlcy5oCTIwMTQtMDEtMjcgMDI6NTc6NTMuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvb2JqZmlsZXMuaAkyMDE0LTAyLTA2IDE2OjQ2OjUyLjExMzY0NjMz NCArMDEwMAorQEAgLTQzNiw2ICs0MzYsMTAgQEAgc3RydWN0IG9iamZpbGUKKyAKKyAjZGVmaW5l IE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8IDYpCisgCisrLyogVGhpcyBmaWxlIHdhcyBsb2FkZWQg YWNjb3JkaW5nIHRvIHRoZSBCVUlMRF9JRF9DT1JFX0xPQURTIHJ1bGVzLiAgKi8KKysKKysjZGVm aW5lIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQgKDEgPDwgMTIpCisrCisgLyogRGVjbGFyYXRp b25zIGZvciBmdW5jdGlvbnMgZGVmaW5lZCBpbiBvYmpmaWxlcy5jICovCisgCisgZXh0ZXJuIHN0 cnVjdCBvYmpmaWxlICphbGxvY2F0ZV9vYmpmaWxlIChiZmQgKiwgY29uc3QgY2hhciAqbmFtZSwg aW50KTsKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Y29yZWZpbGUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTQtMDEtMjcgMDI6NTc6NTQuMDAw MDAwMDAwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2NvcmVmaWxlLmV4cAkyMDE0LTAyLTA2IDE2OjQ2OjUyLjExMzY0NjMzNCArMDEwMAorQEAg LTI4MSwzICsyODEsMzMgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgImNvcmUtZmlsZSAkY29yZWZpbGUi CisgCXBhc3MgJHRlc3QKKyAgICAgfQorIH0KKysKKysKKysjIFRlc3QgYXV0by1sb2FkaW5nIG9m IGJpbmFyeSBmaWxlcyB0aHJvdWdoIGJ1aWxkLWlkIGZyb20gdGhlIGNvcmUgZmlsZS4KKytzZXQg YnVpbGRpZCBbYnVpbGRfaWRfZGVidWdfZmlsZW5hbWVfZ2V0ICRiaW5maWxlXQorK3NldCB3aG9s ZXRlc3QgImJpbmZpbGUgZm91bmQgYnkgYnVpbGQtaWQiCisraWYgeyRidWlsZGlkID09ICIifSB7 CisrICAgIHVudGVzdGVkICIkd2hvbGV0ZXN0IChiaW5hcnkgaGFzIG5vIGJ1aWxkLWlkKSIKKyt9 IGVsc2UgeworKyAgICBnZGJfZXhpdAorKyAgICBnZGJfc3RhcnQKKysKKysgICAgcmVnc3ViIHtc LmRlYnVnJH0gJGJ1aWxkaWQge30gYnVpbGRpZAorKyAgICBzZXQgZGVidWdkaXIgJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS1kZWJ1Z2RpcgorKyAgICBmaWxlIGRlbGV0ZSAtZm9yY2Ug LS0gJGRlYnVnZGlyCisrICAgIGZpbGUgbWtkaXIgJGRlYnVnZGlyL1tmaWxlIGRpcm5hbWUgJGJ1 aWxkaWRdCisrICAgIGZpbGUgY29weSAkYmluZmlsZSAkZGVidWdkaXIvJGJ1aWxkaWQKKysKKysg ICAgc2V0IHRlc3QgInNob3cgZGVidWctZmlsZS1kaXJlY3RvcnkiCisrICAgIGdkYl90ZXN0X211 bHRpcGxlICR0ZXN0ICR0ZXN0IHsKKysJLXJlICJUaGUgZGlyZWN0b3J5IHdoZXJlIHNlcGFyYXRl IGRlYnVnIHN5bWJvbHMgYXJlIHNlYXJjaGVkIGZvciBpcyBcIiguKilcIlxcLlxyXG4kZ2RiX3By b21wdCAkIiB7CisrCSAgICBzZXQgZGVidWdkaXJfb3JpZyAkZXhwZWN0X291dCgxLHN0cmluZykK KysJICAgIHBhc3MgJHRlc3QKKysJfQorKyAgICB9CisrICAgIGdkYl90ZXN0X25vX291dHB1dCAi c2V0IGRlYnVnLWZpbGUtZGlyZWN0b3J5ICRkZWJ1Z2RpcjokZGVidWdkaXJfb3JpZyIgInNldCBk ZWJ1Zy1maWxlLWRpcmVjdG9yeSIKKysgICAgZ2RiX3Rlc3QgInNob3cgYnVpbGQtaWQtY29yZS1s b2FkcyIge1doZXRoZXIgQ09SRS1GSUxFIGxvYWRzIHRoZSBidWlsZC1pZCBhc3NvY2lhdGVkIGZp bGVzIGF1dG9tYXRpY2FsbHkgaXMgb25cLn0KKysgICAgZ2RiX3Rlc3QgImNvcmUtZmlsZSAkY29y ZWZpbGUiICJcclxuUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggLioiICJjb3JlLWZpbGUgd2l0aG91 dCBleGVjdXRhYmxlIgorKyAgICBnZGJfdGVzdCAiaW5mbyBmaWxlcyIgIkxvY2FsIGV4ZWMgZmls ZTpcclxuXFsgXHRcXSpgW3N0cmluZ190b19yZWdleHAgJGRlYnVnZGlyLyRidWlsZGlkXScsIGZp bGUgdHlwZSAuKiIKKysgICAgcGFzcyAkd2hvbGV0ZXN0CisrfQorSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2J1aWxkLWlkLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNC0wMS0yNyAwMjo1Nzo1My4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9idWlsZC1pZC5jCTIwMTQtMDItMDYgMTY6 NDY6NTIuMTEzNjQ2MzM0ICswMTAwCitAQCAtMjcsMTEgKzI3LDY1IEBACisgI2luY2x1ZGUgInN5 bWZpbGUuaCIKKyAjaW5jbHVkZSAib2JqZmlsZXMuaCIKKyAjaW5jbHVkZSAiZmlsZW5hbWVzLmgi CiArI2luY2x1ZGUgImxpYmJmZC5oIgogKyNpbmNsdWRlICJnZGJjb3JlLmgiCiArI2luY2x1ZGUg ImdkYmNtZC5oIgogKyNpbmNsdWRlICJvYnNlcnZlci5oIgogKyNpbmNsdWRlIDxzeXMvc3RhdC5o PgotIAotIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpOwotIAotQEAgLTEw ODcsMTAgKzEwOTIsNTkgQEAgZWxmX2dudV9pZnVuY19yZXNvbHZlcl9yZXR1cm5fc3RvcCAoc3Ry dQotICAgdXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChiLCBzYWxzLCBzYWxzX2VuZCk7Ci0g fQotIAotLS8qIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQgZnJvbSBBQkZEIGFuZCByZXR1cm4gaXRz IGNvbnRlbnQuICAqLworKwogKyNkZWZpbmUgQlVJTERfSURfVkVSQk9TRV9OT05FIDAKICsjZGVm aW5lIEJVSUxEX0lEX1ZFUkJPU0VfRklMRU5BTUVTIDEKICsjZGVmaW5lIEJVSUxEX0lEX1ZFUkJP U0VfQklOQVJZX1BBUlNFIDIKQEAgLTIyMCw3ICszNjIsOCBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKwogKy8qIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQg YW5kIHJldHVybiBpdHMgbWF0Y2hpbmcgZGVidWcgZmlsZW5hbWUuCiArICAgRklYTUU6IE5PVEUg ZGVjb2Rpbmcgc2hvdWxkIGJlIHVuaWZpZWQgd2l0aCB0aGUgQkZEIGNvcmUgbm90ZXMgZGVjb2Rp bmcuICAqLwotKworIAorLS8qIExvY2F0ZSBOVF9HTlVfQlVJTERfSUQgZnJvbSBBQkZEIGFuZCBy ZXR1cm4gaXRzIGNvbnRlbnQuICAqLwogK3N0YXRpYyBzdHJ1Y3QgZWxmX2J1aWxkX2lkICoKICti dWlsZF9pZF9idWZfZ2V0IChiZmQgKnRlbXBsLCBnZGJfYnl0ZSAqYnVmLCBiZmRfc2l6ZV90eXBl IHNpemUpCiArewpAQCAtMjUzLDE3ICszOTYsMTcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICsgICAgfQogKyAgcmV0dXJuIE5VTEw7CiArfQotKworIAog Ky8qIFNlcGFyYXRlIGRlYnVnaW5mbyBmaWxlcyBoYXZlIGNvcnJ1cHRlZCBQSERSIGJ1dCBTSERS IGlzIGNvcnJlY3QgdGhlcmUuCiArICAgTG9jYXRlIE5UX0dOVV9CVUlMRF9JRCBmcm9tIEFCRkQg YW5kIHJldHVybiBpdHMgY29udGVudC4gICovCi0gCisrIAogIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZWxmX2J1aWxkX2lkICoKIC1idWlsZF9pZF9iZmRfZ2V0IChiZmQgKmFiZmQpCiArYnVpbGRfaWRf YmZkX3NoZHJfZ2V0IChiZmQgKmFiZmQpCiAgewogICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0IChh YmZkLCBiZmRfb2JqZWN0KQogICAgICAgIHx8IGJmZF9nZXRfZmxhdm91ciAoYWJmZCkgIT0gYmZk X3RhcmdldF9lbGZfZmxhdm91cgotQEAgLTExMDAsNiArMTE1NCwzNDggQEAgYnVpbGRfaWRfYmZk X2dldCAoYmZkICphYmZkKQorQEAgLTQ1LDYgKzk5LDM0OCBAQCBidWlsZF9pZF9iZmRfZ2V0IChi ZmQgKmFiZmQpCiAgICByZXR1cm4gZWxmX3RkYXRhIChhYmZkKS0+YnVpbGRfaWQ7CiAgfQogIApA QCAtNjA5LDIzICs3NTIsMjMgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9l bGZyZWFkLmMKICsgIHJldHVybiByZXR2YWw7CiArfQogKwotIC8qIFJldHVybiBpZiBGSUxFTkFN RSBoYXMgTlRfR05VX0JVSUxEX0lEIG1hdGNoaW5nIHRoZSBDSEVDSyB2YWx1ZS4gICovCisgLyog U2VlIGJ1aWxkLWlkLmguICAqLwogIAotIHN0YXRpYyBpbnQKLUBAIC0xMTE0LDcgKzE1MTAsNyBA QCBidWlsZF9pZF92ZXJpZnkgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjCi0gICBpZiAoYWJmZCA9 PSBOVUxMKQotICAgICByZXR1cm4gMDsKKyBpbnQKK0BAIC01Myw3ICs0NDksNyBAQCBidWlsZF9p ZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6ZV90IGNoZWNrCisgICBjb25zdCBzdHJ1Y3QgZWxmX2J1 aWxkX2lkICpmb3VuZDsKKyAgIGludCByZXR2YWwgPSAwOwogIAogLSAgZm91bmQgPSBidWlsZF9p ZF9iZmRfZ2V0IChhYmZkKTsKICsgIGZvdW5kID0gYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChhYmZk KTsKICAKICAgIGlmIChmb3VuZCA9PSBOVUxMKQotICAgICB3YXJuaW5nIChfKCJGaWxlIFwiJXNc IiBoYXMgbm8gYnVpbGQtaWQsIGZpbGUgc2tpcHBlZCIpLCBmaWxlbmFtZSk7Ci1AQCAtMTEzMSwx NiArMTUyNyw1MyBAQCBidWlsZF9pZF92ZXJpZnkgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjCisg ICAgIHdhcm5pbmcgKF8oIkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwgZmlsZSBza2lwcGVk IiksCitAQCAtNjgsMjAgKzQ2NCw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6 ZV90IGNoZWNrCisgICByZXR1cm4gcmV0dmFsOwogIH0KICAKLSBzdGF0aWMgY2hhciAqCi0tYnVp bGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKmJ1aWxk X2lkKQorK3N0YXRpYyBjaGFyICoKICtsaW5rX3Jlc29sdmUgKGNvbnN0IGNoYXIgKnN5bWxpbmss IGludCBsZXZlbCkKICt7CiArICBjaGFyIGJ1ZltQQVRIX01BWCArIDFdLCAqdGFyZ2V0LCAqcmV0 dmFsOwpAQCAtNjYxLDI4ICs4MDQsMzMgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9lbGZyZWFkLmMKICsgIHJldHVybiByZXR2YWw7CiArfQogKwotK2NoYXIgKgotK2J1aWxk X2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgZWxmX2J1aWxkX2lkICpidWlsZF9pZCwgY2hh ciAqKmxpbmtfcmV0dXJuLAotKwkJICAgICAgaW50IGFkZF9kZWJ1Z19zdWZmaXgpCisgLyogU2Vl IGJ1aWxkLWlkLmguICAqLworIAorIGJmZCAqCistYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXpl X3QgYnVpbGRfaWRfbGVuLCBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQpCisrYnVpbGRfaWRfdG9f ZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbGVuLCBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQs CisrCQkgICAgICAgY2hhciAqKmxpbmtfcmV0dXJuLCBpbnQgYWRkX2RlYnVnX3N1ZmZpeCkKICB7 Ci0gICBjaGFyICpsaW5rLCAqZGVidWdkaXIsICpyZXR2YWwgPSBOVUxMOwotKyAgY2hhciAqbGlu a19hbGwgPSBOVUxMOworLSAgY2hhciAqbGluaywgKmRlYnVnZGlyOworKyAgY2hhciAqbGluaywg KmRlYnVnZGlyLCAqbGlua19hbGwgPSBOVUxMOwogICAgVkVDIChjaGFyX3B0cikgKmRlYnVnZGly X3ZlYzsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgaW50IGl4OworICAgYmZkICph YmZkID0gTlVMTDsKICAKICAgIC8qIERFQlVHX0ZJTEVfRElSRUNUT1JZLy5idWlsZC1pZC9hYi9j ZGVmICovCiAtICBsaW5rID0gYWxsb2NhIChzdHJsZW4gKGRlYnVnX2ZpbGVfZGlyZWN0b3J5KSAr IChzaXplb2YgIi8uYnVpbGQtaWQvIiAtIDEpICsgMQotLQkJICsgMiAqIGJ1aWxkX2lkLT5zaXpl ICsgKHNpemVvZiAiLmRlYnVnIiAtIDEpICsgMSk7Ci0rICBsaW5rID0geG1hbGxvYyAoc3RybGVu IChkZWJ1Z19maWxlX2RpcmVjdG9yeSkgKyAyICogYnVpbGRfaWQtPnNpemUgKyA1MCk7CistCQkg KyAyICogYnVpbGRfaWRfbGVuICsgKHNpemVvZiAiLmRlYnVnIiAtIDEpICsgMSk7CisrICBsaW5r ID0geG1hbGxvYyAoc3RybGVuIChkZWJ1Z19maWxlX2RpcmVjdG9yeSkgKyAyICogYnVpbGRfaWRf bGVuICsgNTApOwogIAogICAgLyogS2VlcCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQg REVCVUdfRklMRV9ESVJFQ1RPUlkgYmVpbmcgIiIgd2lsbAogICAgICAgY2F1c2UgIi8uYnVpbGQt aWQvLi4uIiBsb29rdXBzLiAgKi8KLUBAIC0xMTUzLDcgKzE1ODYsMTAgQEAgYnVpbGRfaWRfdG9f ZGVidWdfZmlsZW5hbWUgKGNvbnN0IHN0cnVjdAorQEAgLTk0LDggKzUyNiwxMSBAQCBidWlsZF9p ZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sCiAgICAgICAgc2l6ZV90IGRlYnVnZGly X2xlbiA9IHN0cmxlbiAoZGVidWdkaXIpOwotICAgICAgIGNvbnN0IGdkYl9ieXRlICpkYXRhID0g YnVpbGRfaWQtPmRhdGE7Ci0gICAgICAgc2l6ZV90IHNpemUgPSBidWlsZF9pZC0+c2l6ZTsKKyAg ICAgICBjb25zdCBnZGJfYnl0ZSAqZGF0YSA9IGJ1aWxkX2lkOworICAgICAgIHNpemVfdCBzaXpl ID0gYnVpbGRfaWRfbGVuOwogLSAgICAgIGNoYXIgKnM7CisgICAgICAgY2hhciAqZmlsZW5hbWUg PSBOVUxMOwogKyAgICAgIHVuc2lnbmVkIHNlcW5vOwogKyAgICAgIHN0cnVjdCBzdGF0IHN0YXRi dWZfdHJhc2g7CiArICAgICAgLyogSW5pdGlhbGl6ZSBpdCBqdXN0IHRvIGF2b2lkIGEgR0NDIGZh bHNlIHdhcm5pbmcuICAqLwpAQCAtNjkwLDE5ICs4MzgsMTggQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICAKICAgICAgICBtZW1jcHkgKGxpbmssIGRlYnVn ZGlyLCBkZWJ1Z2Rpcl9sZW4pOwogICAgICAgIHMgPSAmbGlua1tkZWJ1Z2Rpcl9sZW5dOwotQEAg LTExNjcsMzcgKzE2MDMsMjU2IEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVuYW1lIChjb25zdCBz dHJ1Y3QKK0BAIC0xMDksNDQgKzU0NCwyODIgQEAgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXpl X3QgYnVpbGRfaWRfbAogIAkqcysrID0gJy8nOwogICAgICAgIHdoaWxlIChzaXplLS0gPiAwKQog IAlzICs9IHNwcmludGYgKHMsICIlMDJ4IiwgKHVuc2lnbmVkKSAqZGF0YSsrKTsKIC0gICAgICBz dHJjcHkgKHMsICIuZGVidWciKTsKLSAKLS0gICAgICAvKiBscmVhbHBhdGgoKSBpcyBleHBlbnNp dmUgZXZlbiBmb3IgdGhlIHVzdWFsbHkgbm9uLWV4aXN0ZW50IGZpbGVzLiAgKi8KLS0gICAgICBp ZiAoYWNjZXNzIChsaW5rLCBGX09LKSA9PSAwKQotLQlyZXR2YWwgPSBscmVhbHBhdGggKGxpbmsp OwogKyAgICAgIGZvciAoc2Vxbm8gPSAwOzsgc2Vxbm8rKykKICsJewogKwkgIGNoYXIgKnMyOwot KworIAorLSAgICAgIC8qIGxyZWFscGF0aCgpIGlzIGV4cGVuc2l2ZSBldmVuIGZvciB0aGUgdXN1 YWxseSBub24tZXhpc3RlbnQgZmlsZXMuICAqLworLSAgICAgIGlmIChhY2Nlc3MgKGxpbmssIEZf T0spID09IDApCistCWZpbGVuYW1lID0gbHJlYWxwYXRoIChsaW5rKTsKICsJICBpZiAoc2Vxbm8p CiArCSAgICB7CiArCSAgICAgIC8qIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBidWlsZC1pZCBzeW1s aW5rcyBwb2ludGluZyB0byByZWFsIGZpbGVzCkBAIC03MzMsMjEgKzg4MCwzOSBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKwkgICAgICBicmVhazsKICsJ ICAgIH0KICsKLSsJICByZXR2YWwgPSBscmVhbHBhdGggKGxpbmspOworKwkgIGZpbGVuYW1lID0g bHJlYWxwYXRoIChsaW5rKTsKKysJICBpZiAoZmlsZW5hbWUgPT0gTlVMTCkKKysJICAgIGNvbnRp bnVlOwogKwotKwkgIGlmIChyZXR2YWwgIT0gTlVMTCAmJiAhYnVpbGRfaWRfdmVyaWZ5IChyZXR2 YWwsIGJ1aWxkX2lkKSkKKysJICAvKiBXZSBleHBlY3QgdG8gYmUgc2lsZW50IG9uIHRoZSBub24t ZXhpc3RpbmcgZmlsZXMuICAqLworKwkgIGFiZmQgPSBnZGJfYmZkX29wZW5fbWF5YmVfcmVtb3Rl IChmaWxlbmFtZSk7CisrCSAgaWYgKGFiZmQgPT0gTlVMTCkKICsJICAgIHsKLSsJICAgICAgeGZy ZWUgKHJldHZhbCk7Ci0rCSAgICAgIHJldHZhbCA9IE5VTEw7CisrCSAgICAgIHhmcmVlIChmaWxl bmFtZSk7CisrCSAgICAgIGNvbnRpbnVlOwogKwkgICAgfQotKwotKwkgIGlmIChyZXR2YWwpCisg CistICAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCistCWNvbnRpbnVlOworKwkgIGlmIChidWls ZF9pZF92ZXJpZnkgKGFiZmQsIGJ1aWxkX2lkX2xlbiwgYnVpbGRfaWQpKQogKwkgICAgYnJlYWs7 CisgCistICAgICAgLyogV2UgZXhwZWN0IHRvIGJlIHNpbGVudCBvbiB0aGUgbm9uLWV4aXN0aW5n IGZpbGVzLiAgKi8KKy0gICAgICBhYmZkID0gZ2RiX2JmZF9vcGVuX21heWJlX3JlbW90ZSAoZmls ZW5hbWUpOworLSAgICAgIGlmIChhYmZkID09IE5VTEwpCistCWNvbnRpbnVlOworKwkgIGdkYl9i ZmRfdW5yZWYgKGFiZmQpOworKwkgIGFiZmQgPSBOVUxMOworIAorLSAgICAgIGlmIChidWlsZF9p ZF92ZXJpZnkgKGFiZmQsIGJ1aWxkX2lkX2xlbiwgYnVpbGRfaWQpKQorLQlicmVhazsKKysJICB4 ZnJlZSAoZmlsZW5hbWUpOworKwkgIGZpbGVuYW1lID0gTlVMTDsKICsJfQogKwotKyAgICAgIGlm IChyZXR2YWwgIT0gTlVMTCkKKysgICAgICBpZiAoZmlsZW5hbWUgIT0gTlVMTCkKICsJewotKwkg IC8qIExJTktfQUxMIGlzIG5vdCB1c2VkIGJlbG93IGluIHRoaXMgbm9uLU5VTEwgUkVUVkFMIGNh c2UuICAqLworKwkgIC8qIExJTktfQUxMIGlzIG5vdCB1c2VkIGJlbG93IGluIHRoaXMgbm9uLU5V TEwgRklMRU5BTUUgY2FzZS4gICovCiArCSAgeGZyZWUgKGxpbmswKTsKICsJICBicmVhazsKICsJ fQpAQCAtNzU3LDE0ICs5MjIsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9lbGZyZWFkLmMKICsgICAgICAgICBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19i dWcuY2dpP2lkPTk4MTE1NCAgKi8KICsgICAgICBsaW5rMF9yZXNvbHZlZCA9IGxpbmtfcmVzb2x2 ZSAobGluazAsIDApOwogKyAgICAgIHhmcmVlIChsaW5rMCk7Ci0gCi0tICAgICAgaWYgKHJldHZh bCAhPSBOVUxMICYmICFidWlsZF9pZF92ZXJpZnkgKHJldHZhbCwgYnVpbGRfaWQpKQorKwogKyAg ICAgIGlmIChsaW5rX2FsbCA9PSBOVUxMKQotKwlsaW5rX2FsbCA9IHhzdHJkdXAgKGxpbmswX3Jl c29sdmVkKTsKKysJbGlua19hbGwgPSBsaW5rMF9yZXNvbHZlZDsKICsgICAgICBlbHNlCi0gCXsK LS0JICB4ZnJlZSAocmV0dmFsKTsKLS0JICByZXR2YWwgPSBOVUxMOworKwl7CiArCSAgc2l6ZV90 IGxlbl9vcmlnID0gc3RybGVuIChsaW5rX2FsbCk7CiArCiArCSAgbGlua19hbGwgPSB4cmVhbGxv YyAobGlua19hbGwsCkBAIC03NzMsMTYgKzkzNSwxNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKwkgIC8qIFVzZSB3aGl0ZXNwYWNlIGluc3RlYWQgb2Yg RElSTkFNRV9TRVBBUkFUT1IgdG8gYmUgY29tcGF0aWJsZSB3aXRoCiArCSAgICAgaXRzIHBvc3Np YmxlIHVzZSBhcyBhbiBhcmd1bWVudCBmb3IgaW5zdGFsbGF0aW9uIGNvbW1hbmQuICAqLwogKwkg IGxpbmtfYWxsW2xlbl9vcmlnXSA9ICcgJzsKLSsKKyAKKy0gICAgICBnZGJfYmZkX3VucmVmIChh YmZkKTsKKy0gICAgICBhYmZkID0gTlVMTDsKICsJICBzdHJjcHkgKCZsaW5rX2FsbFtsZW5fb3Jp ZyArIDFdLCBsaW5rMF9yZXNvbHZlZCk7Ci0gCX0KLSsgICAgICB4ZnJlZSAobGluazBfcmVzb2x2 ZWQpOworKwkgIHhmcmVlIChsaW5rMF9yZXNvbHZlZCk7CisrCX0KICsgICAgfQotIAorKwogKyAg aWYgKGxpbmtfcmV0dXJuICE9IE5VTEwpCiArICAgIHsKLSAgICAgICBpZiAocmV0dmFsICE9IE5V TEwpCi0tCWJyZWFrOworKyAgICAgIGlmIChhYmZkICE9IE5VTEwpCiArCXsKICsJICAqbGlua19y ZXR1cm4gPSBsaW5rOwogKwkgIGxpbmsgPSBOVUxMOwpAQCAtNzk3LDkgKzk2MCwyNCBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2VsZnJlYWQuYwogKyAgeGZyZWUgKGxpbmtf YWxsKTsKICAKICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKLSAgIHJldHVybiByZXR2YWw7Cisg ICByZXR1cm4gYWJmZDsKICB9CiAgCisrY2hhciAqCisrYnVpbGRfaWRfdG9fZmlsZW5hbWUgKGNv bnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKmJ1aWxkX2lkLCBjaGFyICoqbGlua19yZXR1cm4pCisr eworKyAgYmZkICphYmZkOworKyAgY2hhciAqcmVzdWx0OworKyAgCisrICBhYmZkID0gYnVpbGRf aWRfdG9fZGVidWdfYmZkIChidWlsZF9pZC0+c2l6ZSwgYnVpbGRfaWQtPmRhdGEsIGxpbmtfcmV0 dXJuLCAwKTsKKysgIGlmIChhYmZkID09IE5VTEwpCisrICAgIHJldHVybiBOVUxMOworKworKyAg cmVzdWx0ID0geHN0cmR1cCAoYmZkX2dldF9maWxlbmFtZSAoYWJmZCkpOworKyAgZ2RiX2JmZF91 bnJlZiAoYWJmZCk7CisrICByZXR1cm4gcmVzdWx0OworK30KKysKICsvKiBUaGlzIE1JU1NJTkdf RklMRVBBSVJfSEFTSCB0cmFja2VyIGlzIHVzZWQgb25seSBmb3IgdGhlIGR1cGxpY2l0ZSBtZXNz YWdlcwogKyAgICAgVHJ5IHRvIGluc3RhbGwgdGhlIGhhc2ggZmlsZSAuLi4KICsgICBhdm9pZGFu Y2UuICAqLwpAQCAtOTM2LDcgKzExMTQsOSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2VsZnJlYWQuYwogKwkJCWRlYnVnKTsKICt9CiArCi0gc3RhdGljIGNoYXIgKgorIC8q IFNlZSBidWlsZC1pZC5oLiAgKi8KKyAKKyBjaGFyICoKIC1maW5kX3NlcGFyYXRlX2RlYnVnX2Zp bGVfYnlfYnVpbGRpZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiArZmluZF9zZXBhcmF0ZV9k ZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogKwkJCQkgICAg IGNoYXIgKipidWlsZF9pZF9maWxlbmFtZV9yZXR1cm4pCkBAIC05NTAsNTQgKzExMzAsMjQgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9lbGZyZWFkLmMKICsgIGJ1aWxkX2lk ID0gYnVpbGRfaWRfYmZkX3NoZHJfZ2V0IChvYmpmaWxlLT5vYmZkKTsKICAgIGlmIChidWlsZF9p ZCAhPSBOVUxMKQogICAgICB7Ci0gICAgICAgY2hhciAqYnVpbGRfaWRfbmFtZTsKKyAgICAgICBi ZmQgKmFiZmQ7CiAgCi0tICAgICAgYnVpbGRfaWRfbmFtZSA9IGJ1aWxkX2lkX3RvX2RlYnVnX2Zp bGVuYW1lIChidWlsZF9pZCk7Ci0rICAgICAgYnVpbGRfaWRfbmFtZSA9IGJ1aWxkX2lkX3RvX2Zp bGVuYW1lIChidWlsZF9pZCwgYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuLAotKwkJCQkJICAgIDEp OworLSAgICAgIGFiZmQgPSBidWlsZF9pZF90b19kZWJ1Z19iZmQgKGJ1aWxkX2lkLT5zaXplLCBi dWlsZF9pZC0+ZGF0YSk7CisrICAgICAgYWJmZCA9IGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoYnVp bGRfaWQtPnNpemUsIGJ1aWxkX2lkLT5kYXRhLAorKwkJCQkgICAgYnVpbGRfaWRfZmlsZW5hbWVf cmV0dXJuLCAxKTsKICAgICAgICAvKiBQcmV2ZW50IGxvb3Bpbmcgb24gYSBzdHJpcHBlZCAuZGVi dWcgZmlsZS4gICovCi0gICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVMTAotIAkgICYmIGZp bGVuYW1lX2NtcCAoYnVpbGRfaWRfbmFtZSwgb2JqZmlsZS0+bmFtZSkgPT0gMCkKLUBAIC0xMjA3 LDcgKzE4NjIsNyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RyCi0g CSAgeGZyZWUgKGJ1aWxkX2lkX25hbWUpOwotIAl9Ci0gICAgICAgZWxzZSBpZiAoYnVpbGRfaWRf bmFtZSAhPSBOVUxMKQotLSAgICAgICAgcmV0dXJuIGJ1aWxkX2lkX25hbWU7Ci0rCXJldHVybiBi dWlsZF9pZF9uYW1lOworICAgICAgIGlmIChhYmZkICE9IE5VTEwKKyAJICAmJiBmaWxlbmFtZV9j bXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLAorQEAgLTE2NiwzICs4MzksMjEgQEAgZmluZF9z ZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgogICAgICB9CiAgICByZXR1cm4gTlVM TDsKICB9Ci1AQCAtMTQ0NSw5ICsyMTAwLDEwIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWwKLSAJICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSA9 PSBOVUxMCi0gCSAgICYmIG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsg PT0gTlVMTCkKLSAgICAgewotLSAgICAgIGNoYXIgKmRlYnVnZmlsZTsKLSsgICAgICBjaGFyICpk ZWJ1Z2ZpbGUsICpidWlsZF9pZF9maWxlbmFtZTsKLSAKLS0gICAgICBkZWJ1Z2ZpbGUgPSBmaW5k X3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAob2JqZmlsZSk7Ci0rICAgICAgZGVidWdm aWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKG9iamZpbGUsCi0rCQkJ CQkJICAgICAgICZidWlsZF9pZF9maWxlbmFtZSk7Ci0gCi0gICAgICAgaWYgKGRlYnVnZmlsZSA9 PSBOVUxMKQotIAlkZWJ1Z2ZpbGUgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfZGVidWds aW5rIChvYmpmaWxlKTsKLUBAIC0xNDYxLDYgKzIxMTcsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAo c3RydWN0IG9iamZpbGUgKm9iamZpbAotIAkgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJm ZCwgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7Ci0gCSAgZG9fY2xlYW51cHMgKGNsZWFudXApOwot IAl9Ci0rICAgICAgLyogQ2hlY2sgaWYgYW55IHNlcGFyYXRlIGRlYnVnIGluZm8gaGFzIGJlZW4g ZXh0cmFjdGVkIG91dC4gICovCi0rICAgICAgZWxzZSBpZiAoYmZkX2dldF9zZWN0aW9uX2J5X25h bWUgKG9iamZpbGUtPm9iZmQsICIuZ251X2RlYnVnbGluayIpCi0rCSAgICAgICAhPSBOVUxMKQot KwlkZWJ1Z19wcmludF9taXNzaW5nIChvYmpmaWxlLT5uYW1lLCBidWlsZF9pZF9maWxlbmFtZSk7 CiArCi0rICAgICAgeGZyZWUgKGJ1aWxkX2lkX2ZpbGVuYW1lKTsKLSAgICAgfQotIH0KLSAKLUBA IC0xNzkwLDQgKzI0NTIsMTYgQEAgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCkKLSAKLSAgIGVs Zl9vYmpmaWxlX2dudV9pZnVuY19jYWNoZV9kYXRhID0gcmVnaXN0ZXJfb2JqZmlsZV9kYXRhICgp OwotICAgZ251X2lmdW5jX2Zuc19wID0gJmVsZl9nbnVfaWZ1bmNfZm5zOworK2V4dGVybiB2b2lk IF9pbml0aWFsaXplX2J1aWxkX2lkICh2b2lkKTsKICsKKyt2b2lkCisrX2luaXRpYWxpemVfYnVp bGRfaWQgKHZvaWQpCisrewogKyAgYWRkX3NldHNob3dfemludGVnZXJfY21kICgiYnVpbGQtaWQt dmVyYm9zZSIsIG5vX2NsYXNzLCAmYnVpbGRfaWRfdmVyYm9zZSwKICsJCQkgICAgXygiXAogK1Nl dCBkZWJ1Z2dpbmcgbGV2ZWwgb2YgdGhlIGJ1aWxkLWlkIGxvY2F0b3IuIiksIF8oIlwKQEAgLTEw MDksMTE2ICsxMTU5LDQyIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZWxm cmVhZC5jCiArCQkJICAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogKwogKyAgb2JzZXJ2ZXJfYXR0 YWNoX2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdfcHJpbnRfZXhlY3V0YWJsZV9jaGFuZ2VkKTsK LSB9Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N5bWZpbGUuaAorK30KK0lu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9idWlsZC1pZC5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTMtMDgtMDIgMTc6 MDc6MTcuODg2NzM5NTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N5 bWZpbGUuaAkyMDEzLTA4LTAyIDE3OjA3OjI4LjQ0Njc1MzMwOCArMDIwMAotQEAgLTU5Nyw2ICs1 OTcsMTIgQEAgdm9pZCBmcmVlX3N5bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1Y3QgcwotIAotIGV4 dGVybiBzdHJ1Y3QgY2xlYW51cCAqaW5jcmVtZW50X3JlYWRpbmdfc3ltdGFiICh2b2lkKTsKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2J1aWxkLWlkLmgJMjAxNC0wMS0yNyAwMjo1 Nzo1My4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9idWlsZC1p ZC5oCTIwMTQtMDItMDYgMTY6NDY6NTIuMTE0NjQ2MzM1ICswMTAwCitAQCAtMzIsMTMgKzMyLDE4 IEBAIGV4dGVybiBpbnQgYnVpbGRfaWRfdmVyaWZ5IChiZmQgKmFiZmQsCisgICAgdGhlIGNhbGxl ci4gICovCiAgCi0rLyogYnVpbGQtaWQgc3VwcG9ydC4gICovCi0rZXh0ZXJuIHN0cnVjdCBlbGZf YnVpbGRfaWQgKmJ1aWxkX2lkX2FkZHJfZ2V0IChDT1JFX0FERFIgYWRkcik7Ci0rZXh0ZXJuIGNo YXIgKmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgZWxmX2J1aWxkX2lkICpidWls ZF9pZCwKLSsJCQkJICAgY2hhciAqKmxpbmtfcmV0dXJuLCBpbnQgYWRkX2RlYnVnX3N1ZmZpeCk7 Ci0rZXh0ZXJuIHZvaWQgZGVidWdfcHJpbnRfbWlzc2luZyAoY29uc3QgY2hhciAqYmluYXJ5LCBj b25zdCBjaGFyICpkZWJ1Zyk7CisgZXh0ZXJuIGJmZCAqYnVpbGRfaWRfdG9fZGVidWdfYmZkIChz aXplX3QgYnVpbGRfaWRfbGVuLAorLQkJCQkgICBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQpOwor KwkJCQkgICBjb25zdCBiZmRfYnl0ZSAqYnVpbGRfaWQsIGNoYXIgKipsaW5rX3JldHVybiwKKysJ CQkJICAgaW50IGFkZF9kZWJ1Z19zdWZmaXgpOwogKwotIC8qIEZyb20gZHdhcmYycmVhZC5jICov CisrZXh0ZXJuIGNoYXIgKmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgZWxmX2J1 aWxkX2lkICpidWlsZF9pZCwKKysJCQkJICAgY2hhciAqKmxpbmtfcmV0dXJuKTsKICAKLSAvKiBO YW1lcyBmb3IgYSBkd2FyZjIgZGVidWdnaW5nIHNlY3Rpb24uICBUaGUgZmllbGQgTk9STUFMIGlz IHRoZSBub3JtYWwKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRl L2xpYi9nZGIuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3Jp Zy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTMtMDgtMDIgMTc6MDc6MTcuODg2NzM5NTEz ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LmV4cAkyMDEzLTA4LTAyIDE3OjA3OjI4LjQ0Njc1MzMwOCArMDIwMAotQEAgLTE0ODIsNiArMTQ4 MiwxNiBAQCBwcm9jIGRlZmF1bHRfZ2RiX3N0YXJ0IHsgfSB7Ci0gCSAgICB3YXJuaW5nICJDb3Vs ZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgotIAl9Ci0gICAgIH0KLSsgICAgIyBUdXJuIG9mZiB0 aGUgbWlzc2luZyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4K LSsgICAgc2VuZF9nZGIgInNldCBidWlsZC1pZC12ZXJib3NlIDBcbiIKLSsgICAgZ2RiX2V4cGVj dCAxMCB7Ci0rCS1yZSAiJGdkYl9wcm9tcHQgJCIgewotKwkgICAgdmVyYm9zZSAiRGlzYWJsZWQg dGhlIG1pc3NpbmcgZGVidWcgaW5mb3Mgd2FybmluZ3MuIiAyCi0rCX0KLSsJdGltZW91dCB7Ci0r CSAgICB3YXJuaW5nICJDb3VsZCBub3QgZGlzYWJsZSB0aGUgbWlzc2luZyBkZWJ1ZyBpbmZvcyB3 YXJuaW5ncy4uIgotKwl9Ci0rICAgIH0KLSAgICAgcmV0dXJuIDAKLSB9CisgLyogRmluZCB0aGUg c2VwYXJhdGUgZGVidWcgZmlsZSBmb3IgT0JKRklMRSwgYnkgdXNpbmcgdGhlIGJ1aWxkLWlkCisg ICAgYXNzb2NpYXRlZCB3aXRoIE9CSkZJTEUncyBCRkQuICBJZiBzdWNjZXNzZnVsLCByZXR1cm5z IGEgbWFsbG9jJ2QKKyAgICBmaWxlIG5hbWUgZm9yIHRoZSBzZXBhcmF0ZSBkZWJ1ZyBmaWxlLiAg VGhlIGNhbGxlciBtdXN0IGZyZWUgdGhpcy4KKyAgICBPdGhlcndpc2UsIHJldHVybnMgTlVMTC4g ICovCisgCistZXh0ZXJuIGNoYXIgKmZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9idWlsZGlk IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSk7CisrZXh0ZXJuIGNoYXIgKmZpbmRfc2VwYXJhdGVf ZGVidWdfZmlsZV9ieV9idWlsZGlkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKKysJCQkJCSAg ICAgICBjaGFyICoqYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuKTsKICAKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAorICNlbmRp ZiAvKiBCVUlMRF9JRF9IICovCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYy cmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIv dGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDEzLTA4LTAyIDE3OjA3OjE3Ljg4NjczOTUx MyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvbGliL21p LXN1cHBvcnQuZXhwCTIwMTMtMDgtMDIgMTc6MDc6MjguNDQ3NzUzMzEwICswMjAwCi1AQCAtMjEy LDYgKzIxMiwxNiBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0YXJ0IHsgYXJncyB9IHsKLSAJICAg IHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KKy0tLSBnZGItNy42 LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE0LTAyLTA2IDE2OjQ2OjUxLjgw OTY0NTk5NSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2R3YXJmMnJlYWQuYwky MDE0LTAyLTA2IDE2OjQ5OjU1LjY3OTg1MDQxNCArMDEwMAorQEAgLTI0MjksNyArMjQyOSw3IEBA IGR3YXJmMl9nZXRfZHd6X2ZpbGUgKHZvaWQpCiAgICAgIH0KLSsgICAgIyBUdXJuIG9mZiB0aGUg bWlzc2luZyB3YXJuaW5ncyBhcyB0aGUgdGVzdHN1aXRlIGRvZXMgbm90IGV4cGVjdCBpdC4KLSsg ICAgc2VuZF9nZGIgIjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgotKyAgICBnZGJf ZXhwZWN0IDEwIHsKLSsJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4x OTBcXFxeZG9uZVxyXG4kbWlfZ2RiX3Byb21wdCQiIHsKLSsJICAgIHZlcmJvc2UgIkRpc2FibGVk IHRoZSBtaXNzaW5nIGRlYnVnIGluZm9zIHdhcm5pbmdzLiIgMgotKwl9Ci0rCXRpbWVvdXQgewot KwkgICAgd2FybmluZyAiQ291bGQgbm90IGRpc2FibGUgdGhlIG1pc3NpbmcgZGVidWcgaW5mb3Mg d2FybmluZ3MuLiIKLSsJfQotKyAgICB9Ci0gICAgICMgSWYgYWxsb3dpbmcgdGhlIGluZmVyaW9y IHRvIGhhdmUgaXRzIG93biBQVFkgdGhlbiBhc3NpZ24gdGhlIGluZmVyaW9yCi0gICAgICMgaXRz IG93biB0ZXJtaW5hbCBkZXZpY2UgaGVyZS4KLSAgICAgaWYgeyAkc2VwYXJhdGVfaW5mZXJpb3Jf cHR5IH0gewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9vYmpmaWxlcy5oCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvb2JqZmlsZXMu aAkyMDEzLTA4LTAyIDE3OjA3OjE3Ljg4NjczOTUxMyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9vYmpmaWxlcy5oCTIwMTMtMDgtMDIgMTc6MDc6MjguNDQ3NzUzMzEwICsw MjAwCi1AQCAtNDI5LDYgKzQyOSwxMCBAQCBzdHJ1Y3Qgb2JqZmlsZQotIAotICNkZWZpbmUgT0JK Rl9NQUlOTElORSAoMSA8PCA1KQotIAotKy8qIFRoaXMgZmlsZSB3YXMgbG9hZGVkIGFjY29yZGlu ZyB0byB0aGUgQlVJTERfSURfQ09SRV9MT0FEUyBydWxlcy4gICovCi0rCi0rI2RlZmluZSBPQkpG X0JVSUxEX0lEX0NPUkVfTE9BREVEICgxIDw8IDEyKQotKwotIC8qIFRoZSBvYmplY3QgZmlsZSB0 aGF0IGNvbnRhaW5zIHRoZSBydW50aW1lIGNvbW1vbiBtaW5pbWFsIHN5bWJvbHMKLSAgICBmb3Ig U3VuT1M0LiAgTm90ZSB0aGF0IHRoaXMgb2JqZmlsZSBoYXMgbm8gYXNzb2NpYXRlZCBCRkQuICAq LwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvY29yZWZpbGUuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMu b3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDEzLTA4LTAyIDE3OjA3 OjE3Ljg4NjczOTUxMyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTMtMDgtMDIgMTc6MDc6MjguNDQ3NzUzMzEw ICswMjAwCi1AQCAtMjU1LDMgKzI1NSwzMyBAQCBpZiAhW2lzX3JlbW90ZSB0YXJnZXRdIHsKKyAg IGlmIChkd3pfYmZkID09IE5VTEwpCistICAgIGR3el9iZmQgPSBidWlsZF9pZF90b19kZWJ1Z19i ZmQgKGJ1aWxkaWRfbGVuLCBidWlsZGlkKTsKKysgICAgZHd6X2JmZCA9IGJ1aWxkX2lkX3RvX2Rl YnVnX2JmZCAoYnVpbGRpZF9sZW4sIGJ1aWxkaWQsIE5VTEwsIDEpOwogIAotICAgICBnZGJfZXhp dAotIH0KLSsKLSsKLSsjIFRlc3QgYXV0by1sb2FkaW5nIG9mIGJpbmFyeSBmaWxlcyB0aHJvdWdo IGJ1aWxkLWlkIGZyb20gdGhlIGNvcmUgZmlsZS4KLStzZXQgYnVpbGRpZCBbYnVpbGRfaWRfZGVi dWdfZmlsZW5hbWVfZ2V0ICRiaW5maWxlXQotK3NldCB3aG9sZXRlc3QgImJpbmZpbGUgZm91bmQg YnkgYnVpbGQtaWQiCi0raWYgeyRidWlsZGlkID09ICIifSB7Ci0rICAgIHVudGVzdGVkICIkd2hv bGV0ZXN0IChiaW5hcnkgaGFzIG5vIGJ1aWxkLWlkKSIKLSt9IGVsc2UgewotKyAgICBnZGJfZXhp dAotKyAgICBnZGJfc3RhcnQKLSsKLSsgICAgcmVnc3ViIHtcLmRlYnVnJH0gJGJ1aWxkaWQge30g YnVpbGRpZAotKyAgICBzZXQgZGVidWdkaXIgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxl fS1kZWJ1Z2RpcgotKyAgICBmaWxlIGRlbGV0ZSAtZm9yY2UgLS0gJGRlYnVnZGlyCi0rICAgIGZp bGUgbWtkaXIgJGRlYnVnZGlyL1tmaWxlIGRpcm5hbWUgJGJ1aWxkaWRdCi0rICAgIGZpbGUgY29w eSAkYmluZmlsZSAkZGVidWdkaXIvJGJ1aWxkaWQKLSsKLSsgICAgc2V0IHRlc3QgInNob3cgZGVi dWctZmlsZS1kaXJlY3RvcnkiCi0rICAgIGdkYl90ZXN0X211bHRpcGxlICR0ZXN0ICR0ZXN0IHsK LSsJLXJlICJUaGUgZGlyZWN0b3J5IHdoZXJlIHNlcGFyYXRlIGRlYnVnIHN5bWJvbHMgYXJlIHNl YXJjaGVkIGZvciBpcyBcIiguKilcIlxcLlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCSAgICBzZXQg ZGVidWdkaXJfb3JpZyAkZXhwZWN0X291dCgxLHN0cmluZykKLSsJICAgIHBhc3MgJHRlc3QKLSsJ fQotKyAgICB9Ci0rICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0IGRlYnVnLWZpbGUtZGlyZWN0 b3J5ICRkZWJ1Z2RpcjokZGVidWdkaXJfb3JpZyIgInNldCBkZWJ1Zy1maWxlLWRpcmVjdG9yeSIK LSsgICAgZ2RiX3Rlc3QgInNob3cgYnVpbGQtaWQtY29yZS1sb2FkcyIge1doZXRoZXIgQ09SRS1G SUxFIGxvYWRzIHRoZSBidWlsZC1pZCBhc3NvY2lhdGVkIGZpbGVzIGF1dG9tYXRpY2FsbHkgaXMg b25cLn0KLSsgICAgZ2RiX3Rlc3QgImNvcmUtZmlsZSAkY29yZWZpbGUiICJcclxuUHJvZ3JhbSB0 ZXJtaW5hdGVkIHdpdGggLioiICJjb3JlLWZpbGUgd2l0aG91dCBleGVjdXRhYmxlIgotKyAgICBn ZGJfdGVzdCAiaW5mbyBmaWxlcyIgIkxvY2FsIGV4ZWMgZmlsZTpcclxuXFsgXHRcXSpgW3N0cmlu Z190b19yZWdleHAgJGRlYnVnZGlyLyRidWlsZGlkXScsIGZpbGUgdHlwZSAuKiIKLSsgICAgcGFz cyAkd2hvbGV0ZXN0Ci0rfQorICAgaWYgKGR3el9iZmQgPT0gTlVMTCkKKyAgICAgZXJyb3IgKF8o ImNvdWxkIG5vdCBmaW5kICcuZ251X2RlYnVnYWx0bGluaycgZmlsZSBmb3IgJXMiKSwKCmRpZmYg LS1naXQgYS9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0Y2ggYi9nZGItNi42 LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWluZm8ucGF0Y2gKaW5kZXggZDcyNjNmZi4uZDZkOTQxNiAx MDA2NDQKLS0tIGEvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZvLnBhdGNoCisrKyBi L2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5wYXRjaApAQCAtMywxMiArMywxMiBA QAogCVBvcnQgdG8gR0RCLTYuOHByZS4KIAlSZW1vdmUgdGhlIGBbJyBjaGFyYWN0ZXIgZnJvbSB0 aGUgR0RCLTYuOCBkZWZhdWx0IG1lc3NhZ2UuCiAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIw L2dkYi9saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xpbnV4LW5h dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDMyMC5vcmlnL2dkYi9saW51eC1u YXQuYwkyMDExLTAzLTIwIDE2OjU5OjUxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAu MjAxMTAzMjAvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDMtMjAgMTY6NTk6NTEuMDAwMDAwMDAwICsw MTAwCi1AQCAtNzE2LDcgKzcxNiw3IEBAIGhvbGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkg XCJzZXQgZGUKLSAJICAgICAgcmVtb3ZlX2JyZWFrcG9pbnRzX3BpZCAoR0VUX1BJRCAoaW5mZXJp b3JfcHRpZCkpOworLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbGludXgtbmF0LmMJ MjAxNC0wMi0wNCAyMzo0NzozOS4yNzUwMzQ0OTEgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9saW51eC1uYXQuYwkyMDE0LTAyLTA0IDIzOjQ4OjExLjk0MzA3NDEzMiArMDEwMAor QEAgLTQyNiw3ICs0MjYsNyBAQCBob2xkaW5nIHRoZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0 IGRlCisgCSAgICAgIHJlbW92ZV9icmVha3BvaW50c19waWQgKHB0aWRfZ2V0X3BpZCAoaW5mZXJp b3JfcHRpZCkpOwogIAkgICAgfQogIAogLQkgIGlmIChpbmZvX3ZlcmJvc2UgfHwgZGVidWdfbGlu dXhfbmF0KQpAQCAtMTYsMTAgKzE2LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dk Yi9saW51eC1uYXQuYwogIAkgICAgewogIAkgICAgICB0YXJnZXRfdGVybWluYWxfb3VycyAoKTsK ICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKLUluZGV4OiBnZGItNy4yLjUw LjIwMTEwMzIwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guYworSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Zvcmst ZGV0YWNoLmMJMjAxMS0wMy0yMCAxNjo1OTo1MS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guYwkyMDE0LTAy LTA0IDIzOjQ3OjM5LjI3NTAzNDQ5MSArMDEwMAogQEAgLTAsMCArMSw1NyBAQAogKy8qIFRoaXMg dGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03OCwxMCAr NzgsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9mb3JrLWRldGFjaC5jCiArICAgIH0KICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMzIwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2guZXhwCitJbmRl eDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNo LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9mb3JrLWRldGFjaC5leHAJMjAxMS0wMy0yMCAxNzoxMjoyMi4wMDAwMDAwMDAgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1kZXRhY2gu ZXhwCTIwMTQtMDItMDQgMjM6NDc6MzkuMjc2MDM0NDkzICswMTAwCiBAQCAtMCwwICsxLDM2IEBA CiArIyBDb3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKCmRp ZmYgLS1naXQgYS9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5nLXN0ZXAtaXMtZGVmYXVsdC5wYXRj aCBiL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1pcy1kZWZhdWx0LnBhdGNoCmluZGV4 IDExMzI0NDkuLjY3ZTM1YzIgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmct c3RlcC1pcy1kZWZhdWx0LnBhdGNoCisrKyBiL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3Rl cC1pcy1kZWZhdWx0LnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjUuNTAuMjAx MzAxMTgvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaW5mcnVu LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL2luZnJ1bi5j CTIwMTMtMDEtMTkgMjA6NTY6MzQuMTQyOTE3NDE2ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvaW5mcnVuLmMJMjAxMy0wMS0xOSAyMDo1NjozNC42NjI5MTg0NzQgKzAxMDAKLUBA IC0xNjI4LDcgKzE2MjgsNyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc2NoZWR1bGVyX2Vu dW1zCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9pbmZydW4uYwkyMDE0LTAyLTA0 IDIzOjQ4OjI3LjI2MjA5Mjg2OSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2lu ZnJ1bi5jCTIwMTQtMDItMDQgMjM6NDg6MzEuNjc0MDk2NjEzICswMTAwCitAQCAtMTYxOCw3ICsx NjE4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNjaGVkdWxlcl9lbnVtcwogICAgc2No ZWRsb2NrX3N0ZXAsCiAgICBOVUxMCiAgfTsKQEAgLTExLDEwICsxMSwxMCBAQCBJbmRleDogZ2Ri LTcuNS41MC4yMDEzMDExOC9nZGIvaW5mcnVuLmMKICBzdGF0aWMgdm9pZAogIHNob3dfc2NoZWR1 bGVyX21vZGUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBpbnQgZnJvbV90dHksCiAgCQkgICAgIHN0 cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1ZSkKLUluZGV4OiBnZGIt Ny41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNsaS5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWktY2xpLmV4cAkyMDEzLTAxLTAxIDA3OjQxOjI0LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY2xpLmV4cAkyMDEzLTAxLTE5 IDIwOjU2OjM0LjY2MjkxODQ3NCArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jbGkuZXhwCTIwMTQtMDItMDQgMjM6NDg6MjcuMjYzMDky ODcxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aS1jbGkuZXhwCTIwMTQtMDItMDQgMjM6NDg6MzEuNjc0MDk2NjEzICswMTAwCiBAQCAtMTYzLDcg KzE2Myw3IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMtY29udGludWUiICJicmVha3BvaW4KICAjIFRl c3QgdGhhdCB0aGUgdG9rZW4gaXMgb3V0cHV0IGV2ZW4gZm9yIENMSSBjb21tYW5kcwogICMgQWxz byB0ZXN0IHRoYXQgKnN0b3BwZWQgaW5jbHVkZXMgZnJhbWUgaW5mb3JtYXRpb24uCkBAIC0yNCwx MCArMjQsMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktY2xpLmV4cAogICAgICAiMzQgbmV4dDogcnVuIgogIAogIGlmIHshJGFzeW5jfSB7Ci1J bmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1sb2dnaW5n LmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt bG9nZ2luZy5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWktbG9nZ2luZy5leHAJMjAxMy0wMS0wMSAwNzo0MToyNC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLWxvZ2dpbmcuZXhwCTIwMTMtMDEtMTkgMjA6NTY6MzQuNjYyOTE4NDc0ICswMTAwCistLS0g Z2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWxvZ2dpbmcu ZXhwCTIwMTQtMDItMDQgMjM6NDg6MjcuMjYzMDkyODcxICswMTAwCisrKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1sb2dnaW5nLmV4cAkyMDE0LTAyLTA0IDIz OjQ4OjMxLjY3NDA5NjYxMyArMDEwMAogQEAgLTUzLDcgKzUzLDcgQEAgY2xvc2UgJGNoYW4KICAK ICBzZXQgbWlfbG9nX3Byb21wdCAiXFsoXF1nZGJcWylcXSBcW1xyXG5cXSsiCkBAIC00NiwxNyAr NDYsMTcgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWktbG9nZ2luZy5leHAKICAgICAgcGFzcyAiUmVkaXJlY3QgbG9nIGZpbGUgY29udGVudHMiCiAg fSBlbHNlIHsKICAgICAgZmFpbCAiUmVkaXJlY3QgbG9nIGZpbGUgY29udGVudHMiCi1JbmRleDog Z2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jb25zb2xlLmV4cAor SW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktY29uc29s ZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWktY29uc29sZS5leHAJMjAxMy0wMS0wMSAwNzo0MToyNC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNv bnNvbGUuZXhwCTIwMTMtMDEtMTkgMjA6NTY6NTUuNzgzOTYxMTQ1ICswMTAwCi1AQCAtNDUsNiAr NDUsOSBAQCBpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWNvbnNvbGUuZXhw CTIwMTQtMDItMDQgMjM6NDg6MzEuNjc1MDk2NjY2ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS1jb25zb2xlLmV4cAkyMDE0LTAyLTA0IDIzOjQ4 OjU1Ljk4MTEyNzk2MyArMDEwMAorQEAgLTYwLDYgKzYwLDkgQEAgaWYgIHsgW2dkYl9jb21waWxl ICIke3NyY2Rpcn0vJHtzdWJkaXJ9LwogIAogIG1pX3J1bl90b19tYWluCiAgCiArIyB0aHJlYWQt aWQ9XCJhbGxcIiB2cy4gdGhyZWFkLWlkPVwiMVwiIGJlbG93OgogK21pX2dkYl90ZXN0ICIyMTAt Z2RiLXNldCBzY2hlZHVsZXItbG9ja2luZyBvZmYiICIyMTBcXF5kb25lIiAic2V0IHNjaGVkdWxl ci1sb2NraW5nIG9mZiIKICsKLSAjIE5leHQgb3ZlciB0aGUgaGVsbG8oKSBjYWxsIHdoaWNoIHdp bGwgcHJvZHVjZSBsb3RzIG9mIG91dHB1dAotIG1pX2dkYl90ZXN0ICIyMjAtZXhlYy1uZXh0IiBc Ci0gCSAgICAiMjIwXFxecnVubmluZyhcclxuXFwqcnVubmluZyx0aHJlYWQtaWQ9XCJhbGxcIik/ IiBcCisgIyBUaGUgb3V0cHV0IHdlIGdldCBmcm9tIHRoZSB0YXJnZXQgZGVwZW5kcyBvbiBob3cg aXQgaXMgaG9zdGVkLiAgSWYKKyAjIHdlIGFyZSBzZW1paG9zdGVkIChlLmcuLCB0aGUgc2ltIG9y IGEgcmVtb3RlIHRhcmdldCB0aGF0IHN1cHBvcnRzCisgIyB0aGUgRmlsZSBJL08gcmVtb3RlIHBy b3RvY29sIGV4dGVuc2lvbiksIHdlIHNlZSB0aGUgdGFyZ2V0IEkvTwoKZGlmZiAtLWdpdCBhL2dk Yi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3RlcC1zdy13YXRjaHBvaW50czIucGF0Y2ggYi9nZGIt Ni42LXNjaGVkdWxlcl9sb2NraW5nLXN0ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoCmluZGV4IDRk NGZkNmIuLjc1ZGRhMWEgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtc2NoZWR1bGVyX2xvY2tpbmctc3Rl cC1zdy13YXRjaHBvaW50czIucGF0Y2gKKysrIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1z dGVwLXN3LXdhdGNocG9pbnRzMi5wYXRjaApAQCAtMjEsMTEgKzIxLDExIEBACiAKIAlQb3J0IHRv IEdEQi02LjhwcmUuCiAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZlcmlvci5o CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaW5mZXJpb3IuaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjUuNTAuMjAxMzAyMTUub3JpZy9nZGIvaW5mZXJpb3IuaAkyMDEzLTAxLTE2IDE4 OjMxOjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAyMTUvZ2RiL2luZmVy aW9yLmgJMjAxMy0wMi0xNSAyMjozMTo0Mi45OTM5NDQ5NTcgKzAxMDAKLUBAIC0xNjAsNyArMTYw LDE1IEBAIGV4dGVybiB2b2lkIHJlb3Blbl9leGVjX2ZpbGUgKHZvaWQpOworLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvaW5mZXJpb3IuaAkyMDE0LTAxLTI3IDIyOjA1OjI4LjgwMTg5 NTM0NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2luZmVyaW9yLmgJMjAxNC0w MS0yNyAyMjozMzo0NS4yMzAxNTc4MTMgKzAxMDAKK0BAIC0xNTUsNyArMTU1LDE1IEBAIGV4dGVy biB2b2lkIHJlb3Blbl9leGVjX2ZpbGUgKHZvaWQpOwogIC8qIFRoZSBgcmVzdW1lJyByb3V0aW5l IHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpbiBzcGVjaWFsIGNpcmN1bXN0YW5jZXMuCiAgICAgTm9y bWFsbHksIHVzZSBgcHJvY2VlZCcsIHdoaWNoIGhhbmRsZXMgYSBsb3Qgb2YgYm9va2tlZXBpbmcu ICAqLwogIApAQCAtNDIsMTEgKzQyLDExIEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dk Yi9pbmZlcmlvci5oCiAgCiAgZXh0ZXJuIHB0aWRfdCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQg KGludCBzdGVwKTsKICAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZydW4uYwor SW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNS41MC4yMDEzMDIxNS5vcmlnL2dkYi9pbmZydW4uYwkyMDEzLTAxLTMxIDIwOjE4OjU4 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAyMTUvZ2RiL2luZnJ1bi5jCTIw MTMtMDItMTUgMjI6MzQ6MDcuMTMyMTQ0NTE5ICswMTAwCi1AQCAtODEsNyArODEsNyBAQCBzdGF0 aWMgaW50IGZvbGxvd19mb3JrICh2b2lkKTsKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2luZnJ1bi5jCTIwMTQtMDEtMjcgMjI6MDU6MjguODA0ODk1MzQ5ICswMTAwCisrKysgZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvaW5mcnVuLmMJMjAxNC0wMS0yNyAyMjozNToxMi43ODEyMjQy NzkgKzAxMDAKK0BAIC04Myw3ICs4Myw3IEBAIHN0YXRpYyBpbnQgZm9sbG93X2ZvcmsgKHZvaWQp OwogIHN0YXRpYyB2b2lkIHNldF9zY2hlZGxvY2tfZnVuYyAoY2hhciAqYXJncywgaW50IGZyb21f dHR5LAogIAkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqYyk7CiAgCkBAIC01NSw3ICs1NSw3 IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZydW4uYwogIAogIHN0YXRpYyBp bnQgY3VycmVudGx5X3N0ZXBwaW5nX29yX25leHRpbmdfY2FsbGJhY2sgKHN0cnVjdCB0aHJlYWRf aW5mbyAqdHAsCiAgCQkJCQkJICAgdm9pZCAqZGF0YSk7Ci1AQCAtMTcwOSw3ICsxNzA5LDggQEAg dXNlcl92aXNpYmxlX3Jlc3VtZV9wdGlkIChpbnQgc3RlcCkKK0BAIC0xNjk5LDcgKzE2OTksOCBA QCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQogICAgICB9CiAgICBlbHNlIGlm ICgoc2NoZWR1bGVyX21vZGUgPT0gc2NoZWRsb2NrX29uKQogIAkgICB8fCAoc2NoZWR1bGVyX21v ZGUgPT0gc2NoZWRsb2NrX3N0ZXAKQEAgLTY1LDcgKzY1LDcgQEAgSW5kZXg6IGdkYi03LjUuNTAu MjAxMzAyMTUvZ2RiL2luZnJ1bi5jCiAgICAgIHsKICAgICAgICAvKiBVc2VyLXNldHRhYmxlICdz Y2hlZHVsZXInIG1vZGUgcmVxdWlyZXMgc29sbyB0aHJlYWQgcmVzdW1lLiAgKi8KICAgICAgICBy ZXN1bWVfcHRpZCA9IGluZmVyaW9yX3B0aWQ7Ci1AQCAtMTcyNyw3ICsxNzI4LDcgQEAgdXNlcl92 aXNpYmxlX3Jlc3VtZV9wdGlkIChpbnQgc3RlcCkKK0BAIC0xNzE3LDcgKzE3MTgsNyBAQCB1c2Vy X3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQogICAgIFNURVAgbm9uemVybyBpZiB3ZSBz aG91bGQgc3RlcCAoemVybyB0byBjb250aW51ZSBpbnN0ZWFkKS4KICAgICBTSUcgaXMgdGhlIHNp Z25hbCB0byBnaXZlIHRoZSBpbmZlcmlvciAoemVybyBmb3Igbm9uZSkuICAqLwogIHZvaWQKQEAg LTc0LDIzICs3NCwyMyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvaW5mcnVuLmMK ICB7CiAgICBpbnQgc2hvdWxkX3Jlc3VtZSA9IDE7CiAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2Ns ZWFudXBzID0gbWFrZV9jbGVhbnVwIChyZXN1bWVfY2xlYW51cHMsIDApOwotQEAgLTE3NjAsOSAr MTc2MSwxMyBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQorQEAgLTE3 NTAsOSArMTc1MSwxMyBAQCByZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQog IAogICAgaWYgKGRlYnVnX2luZnJ1bikKICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3Rk bG9nLAotLSAgICAgICAgICAgICAgICAgICAgICAgICJpbmZydW46IHJlc3VtZSAoc3RlcD0lZCwg c2lnbmFsPSVkKSwgIgotKyAgICAgICAgICAgICAgICAgICAgICAgICJpbmZydW46IHJlc3VtZSAo c3RlcD0lcywgc2lnbmFsPSVkKSwgIgorLQkJCSJpbmZydW46IHJlc3VtZSAoc3RlcD0lZCwgc2ln bmFsPSVzKSwgIgorKwkJCSJpbmZydW46IHJlc3VtZSAoc3RlcD0lcywgc2lnbmFsPSVzKSwgIgog IAkJCSJ0cmFwX2V4cGVjdGVkPSVkLCBjdXJyZW50IHRocmVhZCBbJXNdIGF0ICVzXG4iLAotLSAJ CQlzdGVwLCBzaWcsIHRwLT5jb250cm9sLnRyYXBfZXhwZWN0ZWQsCistCQkJc3RlcCwgZ2RiX3Np Z25hbF90b19zeW1ib2xfc3RyaW5nIChzaWcpLAogKwkJCShzdGVwID09IFJFU1VNRV9TVEVQX0NP TlRJTlVFCiArCQkJID8gIlJFU1VNRV9TVEVQX0NPTlRJTlVFIgogKwkJCSA6IChzdGVwID09IFJF U1VNRV9TVEVQX1VTRVIgPyAiUkVTVU1FX1NURVBfVVNFUiIKICsJCQkJCQkgICAgIDogIlJFU1VN RV9TVEVQX05FRURFRCIpKSwKLSsgCQkJc2lnLCB0cC0+Y29udHJvbC50cmFwX2V4cGVjdGVkLAor KwkJCWdkYl9zaWduYWxfdG9fc3ltYm9sX3N0cmluZyAoc2lnKSwKKyAJCQl0cC0+Y29udHJvbC50 cmFwX2V4cGVjdGVkLAogIAkJCXRhcmdldF9waWRfdG9fc3RyIChpbmZlcmlvcl9wdGlkKSwKICAJ CQlwYWRkcmVzcyAoZ2RiYXJjaCwgcGMpKTsKLSAKLUBAIC0yMTQwLDcgKzIxNDUsNyBAQCBwcm9j ZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCitAQCAtMjE0Nyw3ICsyMTUyLDcg QEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gZ2RiX3NpZ25hbAogICAgQ09SRV9BRERS IHBjOwogICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFzcGFjZTsKICAgIC8qIEdEQiBtYXkgZm9y Y2UgdGhlIGluZmVyaW9yIHRvIHN0ZXAgZHVlIHRvIHZhcmlvdXMgcmVhc29ucy4gICovCkBAIC05 OSw3ICs5OSw3IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZydW4uYwogIAog ICAgLyogSWYgd2UncmUgc3RvcHBlZCBhdCBhIGZvcmsvdmZvcmssIGZvbGxvdyB0aGUgYnJhbmNo IHNldCBieSB0aGUKICAgICAgICJzZXQgZm9sbG93LWZvcmstbW9kZSIgY29tbWFuZDsgb3RoZXJ3 aXNlLCB3ZSdsbCBqdXN0IHByb2NlZWQKLUBAIC0yMTgwLDEzICsyMTg1LDEzIEBAIHByb2NlZWQg KENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKK0BAIC0yMTg3LDEzICsyMTkyLDEzIEBA IHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKICAJICAgYWN0dWFsbHkg YmUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGluc24gYW55d2F5LgogIAkgICBXZSdsbCBiZSAo dW4tKWV4ZWN1dGluZyB0aGUgcHJldmlvdXMgaW5zdHJ1Y3Rpb24uICAqLwogIApAQCAtMTE1LDcg KzExNSw3IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZydW4uYwogICAgICB9 CiAgICBlbHNlCiAgICAgIHsKLUBAIC0yMjE3LDEzICsyMjIyLDEzIEBAIHByb2NlZWQgKENPUkVf QUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKK0BAIC0yMjI1LDEzICsyMjMwLDEzIEBAIHByb2Nl ZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdkYl9zaWduYWwKICAJIGlzIHJlcXVpcmVkIGl0IHJl dHVybnMgVFJVRSBhbmQgc2V0cyB0aGUgY3VycmVudCB0aHJlYWQgdG8KICAJIHRoZSBvbGQgdGhy ZWFkLiAgKi8KICAgICAgICBpZiAocHJlcGFyZV90b19wcm9jZWVkIChzdGVwKSkKQEAgLTEzMSw3 ICsxMzEsNyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvaW5mcnVuLmMKICAgICAg ewogICAgICAgIHRwLT5jb250cm9sLnRyYXBfZXhwZWN0ZWQgPSAxOwogICAgICAgIC8qIElmIGRp c3BsYWNlZCBzdGVwcGluZyBpcyBlbmFibGVkLCB3ZSBjYW4gc3RlcCBvdmVyIHRoZQotQEAgLTIz MTAsOSArMjMxNSwxMyBAQCBwcm9jZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFs CitAQCAtMjMxOCw5ICsyMzIzLDEzIEBAIHByb2NlZWQgKENPUkVfQUREUiBhZGRyLCBlbnVtIGdk Yl9zaWduYWwKICAgIC8qIFJlc2V0IHRvIG5vcm1hbCBzdGF0ZS4gICovCiAgICBpbml0X2luZndh aXRfc3RhdGUgKCk7CiAgCkBAIC0xNDcsNyArMTQ3LDcgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAx MzAyMTUvZ2RiL2luZnJ1bi5jCiAgCiAgICAvKiBXYWl0IGZvciBpdCB0byBzdG9wIChpZiBub3Qg c3RhbmRhbG9uZSkKICAgICAgIGFuZCBpbiBhbnkgY2FzZSBkZWNvZGUgd2h5IGl0IHN0b3BwZWQs IGFuZCBhY3QgYWNjb3JkaW5nbHkuICAqLwotQEAgLTUyNDcsMTMgKzUyNTYsMTggQEAgcHJvY2Vz c19ldmVudF9zdG9wX3Rlc3Q6CitAQCAtNTMzMiwxMyArNTM0MSwxOCBAQCBzd2l0Y2hfYmFja190 b19zdGVwcGVkX3RocmVhZCAoc3RydWN0IGV4CiAgCiAgLyogSXMgdGhyZWFkIFRQIGluIHRoZSBt aWRkbGUgb2Ygc2luZ2xlLXN0ZXBwaW5nPyAgKi8KICAKQEAgLTE3MSwxMSArMTcxLDExIEBAIElu ZGV4OiBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9pbmZydW4uYwogIH0KICAKICAvKiBSZXR1cm5z IHRydWUgaWYgYW55IHRocmVhZCAqYnV0KiB0aGUgb25lIHBhc3NlZCBpbiAiZGF0YSIgaXMgaW4g dGhlCi1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjUuNTAuMjAxMzAyMTUub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMy0wMi0xMyAxNTo1OTo0OS4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMjE1L2dkYi9saW51eC1uYXQuYwky MDEzLTAyLTE1IDIyOjMxOjQyLjk5Nzk0NDk2NyArMDEwMAotQEAgLTI5NzEsNyArMjk3MSwxMSBA QCBzdGF0aWMgaW50CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9saW51eC1uYXQu YwkyMDE0LTAxLTI3IDIyOjA1OjI4LjgwNjg5NTM1MCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMDEtMjcgMjI6MzM6NDUuMzMwMTU3ODg5ICswMTAw CitAQCAtMjY5Nyw3ICsyNjk3LDExIEBAIHN0YXRpYyBpbnQKICBzZWxlY3Rfc2luZ2xlc3RlcF9s d3BfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5mbyAqbHAsIHZvaWQgKmRhdGEpCiAgewogICAgaWYg KGxwLT5sYXN0X3Jlc3VtZV9raW5kID09IHJlc3VtZV9zdGVwCkBAIC0xODgsMTEgKzE4OCwxMSBA QCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDIxNS9nZGIvbGludXgtbmF0LmMKICAgICAgcmV0dXJu IDE7CiAgICBlbHNlCiAgICAgIHJldHVybiAwOwotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAyMTUv Z2RiL2xpbnV4LW5hdC5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbGludXgtbmF0 LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMjE1Lm9yaWcvZ2RiL2xpbnV4LW5h dC5oCTIwMTMtMDItMTMgMTU6NTk6NDkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuNS41MC4y MDEzMDIxNS9nZGIvbGludXgtbmF0LmgJMjAxMy0wMi0xNSAyMjozMTo0Mi45OTg5NDQ5NjkgKzAx MDAKLUBAIC03Myw4ICs3Myw4IEBAIHN0cnVjdCBsd3BfaW5mbworLS0tIGdkYi03LjYuOTAuMjAx NDAxMjcub3JpZy9nZGIvbGludXgtbmF0LmgJMjAxNC0wMS0yNyAyMjowNToyOC44MDc4OTUzNTEg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9saW51eC1uYXQuaAkyMDE0LTAxLTI3 IDIyOjMzOjQ1LjMzNDE1Nzg5MiArMDEwMAorQEAgLTU5LDggKzU5LDggQEAgc3RydWN0IGx3cF9p bmZvCiAgICAvKiBJZiBub24temVybywgYSBwZW5kaW5nIHdhaXQgc3RhdHVzLiAgKi8KICAgIGlu dCBzdGF0dXM7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNy10ZXN0c3VpdGUtc3RhYmxlLXJlc3Vs dHMucGF0Y2ggYi9nZGItNi43LXRlc3RzdWl0ZS1zdGFibGUtcmVzdWx0cy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzk3YzA2MS4uMDAwMDAwMAotLS0gYS9nZGItNi43LXRl c3RzdWl0ZS1zdGFibGUtcmVzdWx0cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCww IEBACi1nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZpbGVpby5jOgotZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9maWxlaW8uZXhwOgotMjAwNy0xMi0wOCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9j aHZpbEByZWRoYXQuY29tPgotCi0JKiBnZGIuYmFzZS9maWxlaW8uYyAoUk9PVFNVQkRJUik6IE5l dyBtYWNyby4KLQkobWFpbik6IENIRElSIGludG8gUk9PVFNVQkRJUi4gIENIT1dOIFJPT1RTVUJE SVIgYW5kIENIRElSIGludG8KLQlST09UU1VCRElSIGlmIHdlIGFyZSBiZWluZyBydW4gYXMgcm9v dC4KLQkqIGdkYi5iYXNlL2ZpbGVpby5leHA6IENoYW5nZSB0aGUgc3RhcnR1cCBhbmQgZmluaXNo IGNsZWFudXAuCi0JQ2hhbmdlIHRoZSB0ZXN0IGZpbGUgcmVmZXJlbmNlIHRvIGJlIGludG8gdGhl IGBmaWxlaW8uZGlyJyBkaXJlY3RvcnkuCi0KLQotc291cmNlcy9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2R1bXAuZXhwOgotRm91bmQgb24gUkhFTC01LnMzOTB4LgotCi0KLWdkYi02LjguNTAuMjAw OTAyMDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hdXh2LmV4cDoKLXJhbmRvbSBGQUlMOiBnZGIu YmFzZS9hdXh2LmV4cDogbWF0Y2hpbmcgYXV4diBkYXRhIGZyb20gbGl2ZSBhbmQgZ2NvcmUKLQot Ci1nZGItNi44LjUwLjIwMDkwMjA5L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYW5ub3RhMS5leHA6 Ci1mcmFtZXMtaW52YWxpZCBjYW4gaGFwcGVuIGFzeW5jaHJvbm91c2x5LgotCi1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9maWxlaW8uYwotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9maWxlaW8uYwkyMDEzLTA4LTAyIDE2OjI1OjQ5LjQ2NjEyNzA3NCArMDIwMAotKysr IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZmlsZWlvLmMJ MjAxMy0wOC0wMiAxNjoyNjoxMS43MjQxNTY3NTAgKzAyMDAKLUBAIC01OCw2ICs1OCw4IEBAIHN5 c3RlbSAoY29uc3QgY2hhciAqIHN0cmluZyk7Ci0gMSkgSW52YWxpZCBzdHJpbmcvY29tbWFuZC4g LSAgcmV0dXJucyAxMjcuICAqLwotIHN0YXRpYyBjb25zdCBjaGFyICpzdHJlcnJubyAoaW50IGVy cik7Ci0gCi0rI2RlZmluZSBST09UU1VCRElSICJmaWxlaW8uZGlyIgotKwotICNkZWZpbmUgRklM RU5BTUUgICAgImZvby5maWxlaW8udGVzdCIKLSAjZGVmaW5lIFJFTkFNRUQgICAgICJiYXIuZmls ZWlvLnRlc3QiCi0gI2RlZmluZSBOT05FWElTVEFOVCAibm9mb28uZmlsZWlvLnRlc3QiCi1AQCAt NTQyLDYgKzU0NCwzNyBAQCBzdHJlcnJubyAoaW50IGVycikKLSBpbnQKLSBtYWluICgpCi0gewot KyAgLyogUk9PVFNVQkRJUiBpcyBhbHJlYWR5IHByZXBhcmVkIGJ5IGZpbGVpby5leHAuICBXZSB1 c2UgaXQgZm9yIGVhc3kgY2xlYW51cAotKyAgICAgKGJ5IGZpbGVpby5leHApIGlmIHdlIGFyZSBy dW4gYnkgbXVsdGlwbGUgdXNlcnMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LiAgKi8KLSsKLSsgIGlm IChjaGRpciAoUk9PVFNVQkRJUikgIT0gMCkKLSsgICAgewotKyAgICAgIHByaW50ZiAoImNoZGly ICIgUk9PVFNVQkRJUiAiOiAlc1xuIiwgc3RyZXJyb3IgKGVycm5vKSk7Ci0rICAgICAgZXhpdCAo MSk7Ci0rICAgIH0KLSsKLSsgIC8qIFRoZXNlIHRlc3RzCi0rICAgICAgIE9wZW4gZm9yIHdyaXRl IGJ1dCBubyB3cml0ZSBwZXJtaXNzaW9uIHJldHVybnMgRUFDQ0VTCi0rICAgICAgIFVubGlua2lu ZyBhIGZpbGUgaW4gYSBkaXJlY3Rvcnkgdy9vIHdyaXRlIGFjY2VzcyByZXR1cm5zIEVBQ0NFUwot KyAgICAgZmFpbCBpZiB3ZSBhcmUgYmVpbmcgcnVuIGFzIHJvb3QgLSBkcm9wIHRoZSBwcml2aWxl Z2VzIGhlcmUuICAqLwotKwotKyAgaWYgKGdldGV1aWQgKCkgPT0gMCkKLSsgICAgewotKyAgICAg IHVpZF90IHVpZCA9IDk5OwotKwotKyAgICAgIGlmIChjaG93biAoIi4iLCB1aWQsIHVpZCkgIT0g MCkKLSsJewotKwkgIHByaW50ZiAoImNob3duICVkLiVkICIgUk9PVFNVQkRJUiAiOiAlc1xuIiwg KGludCkgdWlkLCAoaW50KSB1aWQsCi0rCQkgIHN0cmVycm9yIChlcnJubykpOwotKwkgIGV4aXQg KDEpOwotKwl9Ci0rICAgICAgaWYgKHNldHVpZCAodWlkKSB8fCBnZXRldWlkICgpID09IDApCi0r CXsKLSsJICBwcmludGYgKCJzZXR1aWQgJWQ6ICVzXG4iLCAoaW50KSB1aWQsIHN0cmVycm9yIChl cnJubykpOwotKwkgIGV4aXQgKDEpOwotKwl9Ci0rICAgIH0KLSsKLSAgIC8qIERvbid0IGNoYW5n ZSB0aGUgb3JkZXIgb2YgdGhlIGNhbGxzLiAgVGhleSBwYXJ0bHkgZGVwZW5kIG9uIGVhY2ggb3Ro ZXIgKi8KLSAgIHRlc3Rfb3BlbiAoKTsKLSAgIHRlc3Rfd3JpdGUgKCk7Ci1JbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9maWxlaW8uZXhwCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ZpbGVpby5leHAJMjAxMy0wOC0wMiAxNjoyNTo0OS40NjcxMjcwNzUgKzAyMDAKLSsr KyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZpbGVpby5l eHAJMjAxMy0wOC0wMiAxNjoyNzoxMC4xNDIyMzQ2MTggKzAyMDAKLUBAIC0zNSw4ICszNSw4IEBA IGlmIFtnZXRfY29tcGlsZXJfaW5mb10gewotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0tcmVtb3Rl X2V4ZWMgYnVpbGQge3NoIC14YyB0ZXN0XCAtclwgZGlyMi5maWxlaW8udGVzdFwgJiZcIGNobW9k XCAtZlwgK3dcIGRpcjIuZmlsZWlvLnRlc3R9Ci0tcmVtb3RlX2V4ZWMgYnVpbGQge3NoIC14YyBy bVwgLXJmXCAqLmZpbGVpby50ZXN0fQotK3JlbW90ZV9leGVjIGJ1aWxkIHtzaCAteGMgcm1cIC1y ZlwgZmlsZWlvLmRpcn0KLStyZW1vdGVfZXhlYyBidWlsZCB7c2ggLXhjIG1rZGlyXCAtbTc3N1wg ZmlsZWlvLmRpcn0KLSAKLSBzZXQgb2xkdGltZW91dCAkdGltZW91dAotIHNldCB0aW1lb3V0IFtl eHByICIkdGltZW91dCArIDYwIl0KLUBAIC03OCw3ICs3OCw3IEBAIGdkYl90ZXN0IGNvbnRpbnVl IFwKLSAKLSBnZGJfdGVzdCAiY29udGludWUiICIuKiIgIiIKLSAKLS1jYXRjaCAic3lzdGVtIFwi Y2htb2QgLWYgLXcgbm93cnQuZmlsZWlvLnRlc3RcIiIKLStjYXRjaCAic3lzdGVtIFwiY2htb2Qg LWYgLXcgZmlsZWlvLmRpci9ub3dydC5maWxlaW8udGVzdFwiIgotIAotIGdkYl90ZXN0IGNvbnRp bnVlIFwKLSAiQ29udGludWluZ1xcLi4qb3BlbiA1Oi4qRUFDQ0VTJHN0b3BfbXNnIiBcCi1AQCAt MjQ0LDggKzI0NCw4IEBAIGdkYl9leGl0Ci0gIyBXYWl0IHRpbGwgR0RCIHJlYWxseSBleGl0cy4K LSBzbGVlcCAxCi0gCi0tcmVtb3RlX2V4ZWMgYnVpbGQge3NoIC14YyB0ZXN0XCAtclwgZGlyMi5m aWxlaW8udGVzdFwgJiZcIGNobW9kXCAtZlwgK3dcIGRpcjIuZmlsZWlvLnRlc3R9Ci0tcmVtb3Rl X2V4ZWMgYnVpbGQge3NoIC14YyBybVwgLXJmXCAqLmZpbGVpby50ZXN0fQotK3JlbW90ZV9leGVj IGJ1aWxkIHtzaCAteGMgdGVzdFwgLXJcIGZpbGVpby5kaXIvZGlyMi5maWxlaW8udGVzdFwgJiZc IGNobW9kXCAtZlwgK3dcIGZpbGVpby5kaXIvZGlyMi5maWxlaW8udGVzdH0KLStyZW1vdGVfZXhl YyBidWlsZCB7c2ggLXhjIHJtXCAtcmZcIGZpbGVpby5kaXJ9Ci0gCi0gc2V0IHRpbWVvdXQgJG9s ZHRpbWVvdXQKLSByZXR1cm4gMAoKZGlmZiAtLWdpdCBhL2dkYi03LjIuNTAtc3BhcmMtYWRkLXdv cmthcm91bmQtdG8tYnJva2VuLWRlYnVnLWZpbGVzLnBhdGNoIGIvZ2RiLTcuMi41MC1zcGFyYy1h ZGQtd29ya2Fyb3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2gKaW5kZXggZDUzZWYwMy4u YzU5MzdmMyAxMDA2NDQKLS0tIGEvZ2RiLTcuMi41MC1zcGFyYy1hZGQtd29ya2Fyb3VuZC10by1i cm9rZW4tZGVidWctZmlsZXMucGF0Y2gKKysrIGIvZ2RiLTcuMi41MC1zcGFyYy1hZGQtd29ya2Fy b3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2gKQEAgLTEsOCArMSw4IEBACi1JbmRleDog Z2RiLTcuNS41MC4yMDEzMDExOC9nZGIvZ2RiX2JmZC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvZ2RiX2JmZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5v cmlnL2dkYi9nZGJfYmZkLmMJMjAxMy0wMS0xOCAyMzoxMToxOC4xNTg3MTg3MDkgKzAxMDAKLSsr KyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi9nZGJfYmZkLmMJMjAxMy0wMS0xOCAyMzoxMjowNi44 NDE3ODc4OTMgKzAxMDAKLUBAIC0yNywxMiArMjcsMTQgQEAKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL2dkYl9iZmQuYwkyMDE0LTAyLTA2IDE3OjM5OjQ2LjM3MDA5NjI5MCArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYl9iZmQuYwkyMDE0LTAyLTA2IDE3OjQw OjE0Ljk5NjEyNzI0NyArMDEwMAorQEAgLTI5LDEyICsyOSwxNCBAQAogICNpZmRlZiBIQVZFX1pM SUJfSAogICNpbmNsdWRlIDx6bGliLmg+CiAgI2VuZGlmCkBAIC0xNSw5ICsxNSw5IEBAIEluZGV4 OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi9nZGJfYmZkLmMKICAjZW5kaWYKICsjZW5kaWYKICAK LSAvKiBBbiBvYmplY3Qgb2YgdGhpcyB0eXBlIGlzIHN0b3JlZCBpbiB0aGUgc2VjdGlvbidzIHVz ZXIgZGF0YSB3aGVuCi0gICAgbWFwcGluZyBhIHNlY3Rpb24uICAqLwotQEAgLTIwNSw2ICsyMDcs NyBAQCBmcmVlX29uZV9iZmRfc2VjdGlvbiAoYmZkICphYmZkLCBhc2VjdGlvCisgdHlwZWRlZiBi ZmQgKmJmZHA7CisgREVGX1ZFQ19QIChiZmRwKTsKK0BAIC0yMTAsNiArMjEyLDcgQEAgZnJlZV9v bmVfYmZkX3NlY3Rpb24gKGJmZCAqYWJmZCwgYXNlY3RpbwogIAogICAgaWYgKHNlY3QgIT0gTlVM TCAmJiBzZWN0LT5kYXRhICE9IE5VTEwpCiAgICAgIHsKQEAgLTI1LDcgKzI1LDcgQEAgSW5kZXg6 IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2dkYl9iZmQuYwogICNpZmRlZiBIQVZFX01NQVAKICAg ICAgICBpZiAoc2VjdC0+bWFwX2FkZHIgIT0gTlVMTCkKICAJewotQEAgLTIxNSw2ICsyMTgsNyBA QCBmcmVlX29uZV9iZmRfc2VjdGlvbiAoYmZkICphYmZkLCBhc2VjdGlvCitAQCAtMjIwLDYgKzIy Myw3IEBAIGZyZWVfb25lX2JmZF9zZWN0aW9uIChiZmQgKmFiZmQsIGFzZWN0aW8KICAJfQogICAg ICAgIGVsc2UKICAjZW5kaWYKQEAgLTMzLDcgKzMzLDcgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAx MzAxMTgvZ2RiL2dkYl9iZmQuYwogIAl4ZnJlZSAoc2VjdC0+ZGF0YSk7CiAgICAgIH0KICB9Ci1A QCAtMzYwLDYgKzM2NCw3IEBAIGdkYl9iZmRfbWFwX3NlY3Rpb24gKGFzZWN0aW9uICpzZWN0cCwg YmYKK0BAIC0zNzEsNiArMzc1LDcgQEAgZ2RiX2JmZF9tYXBfc2VjdGlvbiAoYXNlY3Rpb24gKnNl Y3RwLCBiZgogICAgaWYgKGRlc2NyaXB0b3ItPmRhdGEgIT0gTlVMTCkKICAgICAgZ290byBkb25l OwogIApAQCAtNDEsNyArNDEsNyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvZ2Ri X2JmZC5jCiAgI2lmZGVmIEhBVkVfTU1BUAogICAgaWYgKCFiZmRfaXNfc2VjdGlvbl9jb21wcmVz c2VkIChhYmZkLCBzZWN0cCkpCiAgICAgIHsKLUBAIC0zOTQsNiArMzk5LDcgQEAgZ2RiX2JmZF9t YXBfc2VjdGlvbiAoYXNlY3Rpb24gKnNlY3RwLCBiZgorQEAgLTQwNSw2ICs0MTAsNyBAQCBnZGJf YmZkX21hcF9zZWN0aW9uIChhc2VjdGlvbiAqc2VjdHAsIGJmCiAgCX0KICAgICAgfQogICNlbmRp ZiAvKiBIQVZFX01NQVAgKi8KCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIvZ2RiLWFy Y2hlci5wYXRjaAppbmRleCA5OGZmMGY2Li42Njk0ZGMwIDEwMDY0NAotLS0gYS9nZGItYXJjaGVy LnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsMjAgKzIsMjAgQEAgaHR0cDovL3Nv dXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKIGh0dHA6Ly9zb3VyY2V3YXJlLm9y Zy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5hZ2VtZW50CiAKIEdJVCBzbmFwc2hvdDoKLWNvbW1p dCBhOTgwYmUzYjljYzY2Nzc0YWRmYjlhMjVkYTgwNWY2NWNmZWQ0MjQ1Citjb21taXQgMjFjOGFj OGZhYTQyNTZmMjdkNDc1MWQ4ZjBkMmIyMThmMmQyMzJhOAogCi1icmFuY2ggamFua3JhdG9jaHZp bC9mZWRvcmEyMCAtIHRoZSBtZXJnZSBvZiBicmFuY2hlczoKK2JyYW5jaCBqYW5rcmF0b2Nodmls L2ZlZG9yYWdkYjc3IC0gdGhlIG1lcmdlIG9mIGJyYW5jaGVzOgogamFua3JhdG9jaHZpbC92bGEK IHRyb21leS9weXRob24KIAogCiBkaWZmIC0tZ2l0IGEvUkVBRE1FLmFyY2hlciBiL1JFQURNRS5h cmNoZXIKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4yMTM1N2U0CitpbmRl eCAwMDAwMDAwLi41YWU1ODdlCiAtLS0gL2Rldi9udWxsCiArKysgYi9SRUFETUUuYXJjaGVyCiBA QCAtMCwwICsxLDEzIEBACi0rTWVyZ2UgZm9yIEZlZG9yYSAyMDogaHR0cDovL3BrZ3MuZmVkb3Jh cHJvamVjdC5vcmcvY2dpdC9nZGIuZ2l0LworK01lcmdlIGZvciBGZWRvcmEgMjE6IGh0dHA6Ly9w a2dzLmZlZG9yYXByb2plY3Qub3JnL2NnaXQvZ2RiLmdpdC8KICsKICtqYW5rcmF0b2NodmlsL3Zs YQogK3Ryb21leS9weXRob24KQEAgLTI5LDEwICsyOSwxMCBAQCBpbmRleCAwMDAwMDAwLi4yMTM1 N2U0CiAraW1wbGVtZW50YXRpb24gcGxhbjogICAgICAgICAgICAgaHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi8yMDEyLTExL21zZzAwMDk0Lmh0bWwKICtleHBsYW5hdGlvbiBvZiBpdHMgbWVy Z2Ugc3RhdHVzOiBodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLzIwMTEtMDMvbXNnMDAwMjEu aHRtbAogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5k ZXggOGY0ZWU5ZS4uZTkxNGRmYiAxMDA2NDQKK2luZGV4IDgyNGIyNmIuLjU2ZjA1MmEgMTAwNjQ0 CiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTEzNTEs NiArMTM1MSwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMK K0BAIC0xMzcyLDYgKzEzNzIsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBjb25m aWcuc3RhdHVzCiAgCSAgQ09ORklHX0xJTktTPSBcCiAgCSAgJChTSEVMTCkgY29uZmlnLnN0YXR1 cwogIApAQCAtNDYsMTAgKzQ2LDEwIEBAIGluZGV4IDhmNGVlOWUuLmU5MTRkZmIgMTAwNjQ0CiAg CSQoU0hFTEwpIGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2Fk YS1sYW5nLmMgYi9nZGIvYWRhLWxhbmcuYwotaW5kZXggZGM1ZjJiNi4uNWZlYWM0OSAxMDA2NDQK K2luZGV4IGU3MGEzM2IuLjk3N2YzZTIgMTAwNjQ0CiAtLS0gYS9nZGIvYWRhLWxhbmcuYwogKysr IGIvZ2RiL2FkYS1sYW5nLmMKLUBAIC0xMjMwOSw2ICsxMjMwOSw3IEBAIGFkYV9vcGVyYXRvcl9s ZW5ndGggKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwYywgaW50ICpvcGxlbnAs CitAQCAtMTI3MDMsNiArMTI3MDMsNyBAQCBhZGFfb3BlcmF0b3JfbGVuZ3RoIChjb25zdCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcGMsIGludCAqb3BsZW5wLAogIAogIHN0YXRpYyBpbnQK ICBhZGFfb3BlcmF0b3JfY2hlY2sgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwb3MsCkBA IC01Nyw3ICs1Nyw3IEBAIGluZGV4IGRjNWYyYjYuLjVmZWFjNDkgMTAwNjQ0CiAgCQkgICAgaW50 ICgqb2JqZmlsZV9mdW5jKSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmRhdGEpLAog IAkJICAgIHZvaWQgKmRhdGEpCiAgewotQEAgLTEyMzIzLDEyICsxMjMyNCwxNSBAQCBhZGFfb3Bl cmF0b3JfY2hlY2sgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwb3MsCitAQCAtMTI3MTcs MTIgKzEyNzE4LDE1IEBAIGFkYV9vcGVyYXRvcl9jaGVjayAoc3RydWN0IGV4cHJlc3Npb24gKmV4 cCwgaW50IHBvcywKICAJYnJlYWs7CiAgCiAgICAgICAgZGVmYXVsdDoKQEAgLTc2LDcgKzc2LDcg QEAgaW5kZXggZGM1ZjJiNi4uNWZlYWM0OSAxMDA2NDQKICAgICAgcmV0dXJuIDE7CiAgCiBkaWZm IC0tZ2l0IGEvZ2RiL2Jsb2NrLmMgYi9nZGIvYmxvY2suYwotaW5kZXggNjQzZTE0NC4uNzRjNTE2 YiAxMDA2NDQKK2luZGV4IDJhZTZlZTIuLjM3NmExZTggMTAwNjQ0CiAtLS0gYS9nZGIvYmxvY2su YwogKysrIGIvZ2RiL2Jsb2NrLmMKIEBAIC02OTMsMyArNjkzLDIxIEBAIGJsb2NrX2l0ZXJfbWF0 Y2hfbmV4dCAoY29uc3QgY2hhciAqbmFtZSwKQEAgLTEwMiw3ICsxMDIsNyBAQCBpbmRleCA2NDNl MTQ0Li43NGM1MTZiIDEwMDY0NAogKyAgcmV0dXJuIFNZTUJPTF9TWU1UQUIgKGZ1bmMpLT5vYmpm aWxlOwogK30KIGRpZmYgLS1naXQgYS9nZGIvYmxvY2suaCBiL2dkYi9ibG9jay5oCi1pbmRleCAw MmU3ZThiLi4yOTMxNDAxIDEwMDY0NAoraW5kZXggY2ExNDNhOS4uMGYwNjVmOCAxMDA2NDQKIC0t LSBhL2dkYi9ibG9jay5oCiArKysgYi9nZGIvYmxvY2suaAogQEAgLTI3OSw0ICsyNzksNiBAQCBl eHRlcm4gc3RydWN0IHN5bWJvbCAqYmxvY2tfaXRlcl9tYXRjaF9uZXh0IChjb25zdCBjaGFyICpu YW1lLApAQCAtMTEzLDEwICsxMTMsMTAgQEAgaW5kZXggMDJlN2U4Yi4uMjkzMTQwMSAxMDA2NDQK ICsKICAjZW5kaWYgLyogQkxPQ0tfSCAqLwogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMg Yi9nZGIvYnJlYWtwb2ludC5jCi1pbmRleCAxZTg5NDA3Li4xZjRkZTMzIDEwMDY0NAoraW5kZXgg NjZhNjliNS4uOTUyZTFjNSAxMDA2NDQKIC0tLSBhL2dkYi9icmVha3BvaW50LmMKICsrKyBiL2dk Yi9icmVha3BvaW50LmMKLUBAIC0xNTYwNSw2ICsxNTYwNSwyNCBAQCBhbGxfdHJhY2Vwb2ludHMg KHZvaWQpCitAQCAtMTU3MzQsNiArMTU3MzQsMjQgQEAgYWxsX3RyYWNlcG9pbnRzICh2b2lkKQog ICAgcmV0dXJuIHRwX3ZlYzsKICB9CiAgCkBAIC0xNDEsMTYgKzE0MSwxNiBAQCBpbmRleCAxZTg5 NDA3Li4xZjRkZTMzIDEwMDY0NAogIAwKICAvKiBUaGlzIGhlbHAgc3RyaW5nIGlzIHVzZWQgZm9y IHRoZSBicmVhaywgaGJyZWFrLCB0YnJlYWsgYW5kIHRoYnJlYWsKICAgICBjb21tYW5kcy4gIEl0 IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBwcmV2ZW50IGR1cGxpY2F0aW9uLgotQEAgLTE2NTY4 LDQgKzE2NTg2LDcgQEAgYWdlbnQtcHJpbnRmIFwicHJpbnRmIGZvcm1hdCBzdHJpbmdcIiwgYXJn MSwgYXJnMiwgYXJnMywgLi4uLCBhcmduXG5cCi0gICBhdXRvbWF0aWNfaGFyZHdhcmVfYnJlYWtw b2ludHMgPSAxOworQEAgLTE2Njk5LDQgKzE2NzE3LDcgQEAgYWdlbnQtcHJpbnRmIFwicHJpbnRm IGZvcm1hdCBzdHJpbmdcIiwgYXJnMSwgYXJnMiwgYXJnMywgLi4uLCBhcmduXG5cCiAgCiAgICBv YnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJlYWtwb2ludF9hYm91dF90b19wcm9j ZWVkKTsKKyAgIG9ic2VydmVyX2F0dGFjaF90aHJlYWRfZXhpdCAocmVtb3ZlX3RocmVhZGVkX2Jy ZWFrcG9pbnRzKTsKICsjaWYgMAogKyAgb2JzZXJ2ZXJfYXR0YWNoX21hcmtfdXNlZCAoYnJlYWtw b2ludF90eXBlc19tYXJrX3VzZWQpOwogKyNlbmRpZgogIH0KIGRpZmYgLS1naXQgYS9nZGIvYy10 eXBlcHJpbnQuYyBiL2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBiZjQ1NjRmLi5lOGQwMjgxIDEw MDY0NAoraW5kZXggNGVkYzllYy4uMjkyZWRkYiAxMDA2NDQKIC0tLSBhL2dkYi9jLXR5cGVwcmlu dC5jCiArKysgYi9nZGIvYy10eXBlcHJpbnQuYwogQEAgLTY4OSw3ICs2ODksMTMgQEAgY190eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTE2OSw3ICsxNjks NyBAQCBpbmRleCBiZjQ1NjRmLi5lOGQwMjgxIDEwMDY0NAogIAkJCSAgICBwbG9uZ2VzdCAoaGln aF9ib3VuZCAtIGxvd19ib3VuZCArIDEpKTsKICAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAo aXNfdmVjdG9yID8gIikpKSIgOiAiXSIpKTsKIGRpZmYgLS1naXQgYS9nZGIvY2xlYW51cHMuYyBi L2dkYi9jbGVhbnVwcy5jCi1pbmRleCA4OThlNTI2Li4xOGViYWVlIDEwMDY0NAoraW5kZXggZTUy OTFhYi4uNDgyMDk3MiAxMDA2NDQKIC0tLSBhL2dkYi9jbGVhbnVwcy5jCiArKysgYi9nZGIvY2xl YW51cHMuYwogQEAgLTI2MSw5ICsyNjEsMTEgQEAgc2F2ZV9maW5hbF9jbGVhbnVwcyAodm9pZCkK QEAgLTE4NSwxMiArMTg1LDEyIEBAIGluZGV4IDg5OGU1MjYuLjE4ZWJhZWUgMTAwNjQ0CiAgICAq cG15X2NoYWluID0gY2hhaW47CiAgfQogZGlmZiAtLWdpdCBhL2dkYi9kYXRhLWRpcmVjdG9yeS9N YWtlZmlsZS5pbiBiL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgotaW5kZXggZGVjNjIw Ny4uZmJiNGRjMCAxMDA2NDQKK2luZGV4IGU1MzUzMTYuLjQ0NGRlOWQgMTAwNjQ0CiAtLS0gYS9n ZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KICsrKyBiL2dkYi9kYXRhLWRpcmVjdG9yeS9N YWtlZmlsZS5pbgotQEAgLTYxLDEzICs2MSwyMSBAQCBQWVRIT05fRklMRVMgPSBcCi0gCWdkYi9w cmludGluZy5weSBcCitAQCAtNjMsMTMgKzYzLDIxIEBAIFBZVEhPTl9GSUxFUyA9IFwKICAJZ2Ri L3Byb21wdC5weSBcCisgCWdkYi9jb21tYW5kL2JvdW5kX3JlZ2lzdGVycy5weSBcCiAgCWdkYi9j b21tYW5kL19faW5pdF9fLnB5IFwKICsJZ2RiL2NvbW1hbmQvaWdub3JlX2Vycm9ycy5weSBcCiAr CWdkYi9jb21tYW5kL3BhaG9sZS5weSBcCkBAIC0yMTIsMTAgKzIxMiwxMCBAQCBpbmRleCBkZWM2 MjA3Li5mYmI0ZGMwIDEwMDY0NAogIFNZU1RFTV9HREJJTklUX0RJUiA9IHN5c3RlbS1nZGJpbml0 CiAgU1lTVEVNX0dEQklOSVRfSU5TVEFMTF9ESVIgPSAkKERFU1RESVIpJChHREJfREFUQURJUikv JChTWVNURU1fR0RCSU5JVF9ESVIpCiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBi L2dkYi9kb2MvZ2RiLnRleGluZm8KLWluZGV4IGNiMzkzZTguLjFkZmNhMjIgMTAwNjQ0CitpbmRl eCA3NGRkY2Y1Li5jNDVlMWViIDEwMDY0NAogLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbwogKysr IGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotQEAgLTEyMjEsNiArMTIyMSwxNiBAQCBmb3IgcmVtb3Rl IGRlYnVnZ2luZy4KK0BAIC0xMjIyLDYgKzEyMjIsMTYgQEAgZm9yIHJlbW90ZSBkZWJ1Z2dpbmcu CiAgUnVuIHVzaW5nIEB2YXJ7ZGV2aWNlfSBmb3IgeW91ciBwcm9ncmFtJ3Mgc3RhbmRhcmQgaW5w dXQgYW5kIG91dHB1dC4KICBAYyBGSVhNRToga2luZ2RvbiB0aGlua3MgdGhlcmUgaXMgbW9yZSB0 byAtdHR5LiAgSW52ZXN0aWdhdGUuCiAgCkBAIC0yMzIsNyArMjMyLDcgQEAgaW5kZXggY2IzOTNl OC4uMWRmY2EyMiAxMDA2NDQKICBAYyByZXNvbHZlIHRoZSBzaXR1YXRpb24gb2YgdGhlc2UgZXZl bnR1YWxseQogIEBpdGVtIC10dWkKICBAY2luZGV4IEBjb2Rley0tdHVpfQotQEAgLTIzMTg5LDgg KzIzMTk5LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CitAQCAtMjM1 MjEsOCArMjM1MzEsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToKICAK ICBAc21hbGxleGFtcGxlCiAgKEB2YWx1ZXtHREJQfSkgcHl0aG9uCkBAIC0yNDEsNyArMjQxLDcg QEAgaW5kZXggY2IzOTNlOC4uMWRmY2EyMiAxMDA2NDQKICA+cHJpbnQgMjMKICA+ZW5kCiAgMjMK LUBAIC0yMzIwNCw2ICsyMzIxMiwxNCBAQCBjb250cm9sbGVkIHVzaW5nIEBjb2Rle3NldCBweXRo b24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtmdWxsfSwgdGhlbgorQEAgLTIzNTM2LDYgKzIzNTQ0 LDE0IEBAIGNvbnRyb2xsZWQgdXNpbmcgQGNvZGV7c2V0IHB5dGhvbiBwcmludC1zdGFja306IGlm IEBjb2Rle2Z1bGx9LCB0aGVuCiAgZnVsbCBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMgZW5hYmxl ZDsgaWYgQGNvZGV7bm9uZX0sIHRoZW4gUHl0aG9uIHN0YWNrCiAgYW5kIG1lc3NhZ2UgcHJpbnRp bmcgaXMgZGlzYWJsZWQ7IGlmIEBjb2Rle21lc3NhZ2V9LCB0aGUgZGVmYXVsdCwgb25seQogIHRo ZSBtZXNzYWdlIGNvbXBvbmVudCBvZiB0aGUgZXJyb3IgaXMgcHJpbnRlZC4KQEAgLTI1NiwxNDAg KzI1NiwxMSBAQCBpbmRleCBjYjM5M2U4Li4xZGZjYTIyIDEwMDY0NAogIEBlbmQgdGFibGUKICAK ICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGV4ZWN1dGUgYSBQeXRob24gc2NyaXB0IGZyb20gdGhl IEB2YWx1ZXtHREJOfQotZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8gYi9nZGIv ZG9jL2dkYmludC50ZXhpbmZvCi1pbmRleCA2MDgwNWFkLi41NDExMDEyIDEwMDY0NAotLS0tIGEv Z2RiL2RvYy9nZGJpbnQudGV4aW5mbwotKysrIGIvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwotQEAg LTIxNDYsNiArMjE0NiwxOCBAQCB0aW1lLCBhbmQgc28gd2UgYXR0ZW1wdCB0byBoYW5kbGUgc3lt Ym9scyBpbmNyZW1lbnRhbGx5LiAgRm9yIGluc3RhbmNlLAotIHdlIGNyZWF0ZSBAZGZue3BhcnRp YWwgc3ltYm9sIHRhYmxlc30gY29uc2lzdGluZyBvZiBvbmx5IHNlbGVjdGVkCi0gc3ltYm9scywg YW5kIG9ubHkgZXhwYW5kIHRoZW0gdG8gZnVsbCBzeW1ib2wgdGFibGVzIHdoZW4gbmVjZXNzYXJ5 LgotIAotK0BtZW51Ci0rKiBTeW1ib2wgUmVhZGluZzo6Ci0rKiBQYXJ0aWFsIFN5bWJvbCBUYWJs ZXM6OgotKyogVHlwZXM6OgotKyogT2JqZWN0IEZpbGUgRm9ybWF0czo6Ci0rKiBEZWJ1Z2dpbmcg RmlsZSBGb3JtYXRzOjoKLSsqIEFkZGluZyBhIE5ldyBTeW1ib2wgUmVhZGVyIHRvIEdEQjo6Ci0r KiBNZW1vcnkgTWFuYWdlbWVudCBmb3IgU3ltYm9sIEZpbGVzOjoKLSsqIE1lbW9yeSBNYW5hZ2Vt ZW50IGZvciBUeXBlczo6Ci0rQGVuZCBtZW51Ci0rCi0rQG5vZGUgU3ltYm9sIFJlYWRpbmcKLSBA c2VjdGlvbiBTeW1ib2wgUmVhZGluZwotIAotIEBjaW5kZXggc3ltYm9sIHJlYWRpbmcKLUBAIC0y MjM4LDYgKzIyNTAsNyBAQCBzeW10YWIuICBVcG9uIHJldHVybiwgQGNvZGV7cHN0LT5yZWFkaW59 IHNob3VsZCBoYXZlIGJlZW4gc2V0IHRvIDEsIGFuZAotIHplcm8gaWYgdGhlcmUgd2VyZSBubyBz eW1ib2xzIGluIHRoYXQgcGFydCBvZiB0aGUgc3ltYm9sIGZpbGUuCi0gQGVuZCB0YWJsZQotIAot K0Bub2RlIFBhcnRpYWwgU3ltYm9sIFRhYmxlcwotIEBzZWN0aW9uIFBhcnRpYWwgU3ltYm9sIFRh YmxlcwotIAotIEB2YWx1ZXtHREJOfSBoYXMgdGhyZWUgdHlwZXMgb2Ygc3ltYm9sIHRhYmxlczoK LUBAIC0yMzM5LDYgKzIzNTIsNyBAQCBhbmQgcGFydGlhbCBzeW1ib2wgdGFibGVzIGJlaGluZCBh IHNldCBvZiBmdW5jdGlvbiBwb2ludGVycyBrbm93biBhcwotIHRoZSBAZGZue3F1aWNrIHN5bWJv bCBmdW5jdGlvbnN9LiAgVGhlc2UgYXJlIGRvY3VtZW50ZWQgaW4KLSBAZmlsZXtzeW1maWxlLmh9 LgotIAotK0Bub2RlIFR5cGVzCi0gQHNlY3Rpb24gVHlwZXMKLSAKLSBAdW5udW1iZXJlZHN1YnNl YyBGdW5kYW1lbnRhbCBUeXBlcyAoZS5nLiwgQGNvZGV7RlRfVk9JRH0sIEBjb2Rle0ZUX0JPT0xF QU59KS4KLUBAIC0yMzYxLDYgKzIzNzUsNyBAQCB0eXBlcyBtYXAgdG8gb25lIEBjb2Rle1RZUEVf Q09ERV8qfSB0eXBlLCBhbmQgYXJlIGRpc3Rpbmd1aXNoZWQgYnkKLSBvdGhlciBtZW1iZXJzIG9m IHRoZSB0eXBlIHN0cnVjdCwgc3VjaCBhcyB3aGV0aGVyIHRoZSB0eXBlIGlzIHNpZ25lZAotIG9y IHVuc2lnbmVkLCBhbmQgaG93IG1hbnkgYml0cyBpdCB1c2VzLgotIAotK0BhbmNob3J7QnVpbHRp biBUeXBlc30KLSBAdW5udW1iZXJlZHN1YnNlYyBCdWlsdGluIFR5cGVzIChlLmcuLCBAY29kZXti dWlsdGluX3R5cGVfdm9pZH0sIEBjb2Rle2J1aWx0aW5fdHlwZV9jaGFyfSkuCi0gCi0gVGhlc2Ug YXJlIGluc3RhbmNlcyBvZiB0eXBlIHN0cnVjdHMgdGhhdCByb3VnaGx5IGNvcnJlc3BvbmQgdG8K LUBAIC0yMzc1LDYgKzIzOTAsNyBAQCBvbmx5IG9uZSBpbnN0YW5jZSBleGlzdHMsIHdoaWxlIEBm aWxle2MtbGFuZy5jfSBidWlsZHMgYXMgbWFueQotIEBjb2Rle1RZUEVfQ09ERV9JTlR9IHR5cGVz IGFzIG5lZWRlZCwgd2l0aCBlYWNoIG9uZSBhc3NvY2lhdGVkIHdpdGgKLSBzb21lIHBhcnRpY3Vs YXIgb2JqZmlsZS4KLSAKLStAbm9kZSBPYmplY3QgRmlsZSBGb3JtYXRzCi0gQHNlY3Rpb24gT2Jq ZWN0IEZpbGUgRm9ybWF0cwotIEBjaW5kZXggb2JqZWN0IGZpbGUgZm9ybWF0cwotIAotQEAgLTI0 NjAsNiArMjQ3Niw3IEBAIFNPTSwgd2hpY2ggaXMgYSBjcm9zcy1sYW5ndWFnZSBBQkkpLgotIAot IFRoZSBTT00gcmVhZGVyIGlzIGluIEBmaWxle3NvbXJlYWQuY30uCi0gCi0rQG5vZGUgRGVidWdn aW5nIEZpbGUgRm9ybWF0cwotIEBzZWN0aW9uIERlYnVnZ2luZyBGaWxlIEZvcm1hdHMKLSAKLSBU aGlzIHNlY3Rpb24gZGVzY3JpYmVzIGNoYXJhY3RlcmlzdGljcyBvZiBkZWJ1Z2dpbmcgaW5mb3Jt YXRpb24gdGhhdAotQEAgLTI1MzEsNiArMjU0OCw3IEBAIERXQVJGIDMgaXMgYW4gaW1wcm92ZWQg dmVyc2lvbiBvZiBEV0FSRiAyLgotIEBjaW5kZXggU09NIGRlYnVnZ2luZyBpbmZvCi0gTGlrZSBD T0ZGLCB0aGUgU09NIGRlZmluaXRpb24gaW5jbHVkZXMgZGVidWdnaW5nIGluZm9ybWF0aW9uLgot IAotK0Bub2RlIEFkZGluZyBhIE5ldyBTeW1ib2wgUmVhZGVyIHRvIEdEQgotIEBzZWN0aW9uIEFk ZGluZyBhIE5ldyBTeW1ib2wgUmVhZGVyIHRvIEB2YWx1ZXtHREJOfQotIAotIEBjaW5kZXggYWRk aW5nIGRlYnVnZ2luZyBpbmZvIHJlYWRlcgotQEAgLTI1NTMsNiArMjU3MSw3IEBAIHdpbGwgb25s eSBldmVyIGJlIGltcGxlbWVudGVkIGJ5IG9uZSBvYmplY3QgZmlsZSBmb3JtYXQgbWF5IGJlIGNh bGxlZAotIGRpcmVjdGx5LiAgVGhpcyBpbnRlcmZhY2Ugc2hvdWxkIGJlIGRlc2NyaWJlZCBpbiBh IGZpbGUKLSBAZmlsZXtiZmQvbGliQHZhcnt4eXp9Lmh9LCB3aGljaCBpcyBpbmNsdWRlZCBieSBA dmFsdWV7R0RCTn0uCi0gCi0rQG5vZGUgTWVtb3J5IE1hbmFnZW1lbnQgZm9yIFN5bWJvbCBGaWxl cwotIEBzZWN0aW9uIE1lbW9yeSBNYW5hZ2VtZW50IGZvciBTeW1ib2wgRmlsZXMKLSAKLSBNb3N0 IG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggYSBsb2FkZWQgc3ltYm9sIGZpbGUgaXMgc3RvcmVkIG9u Ci1AQCAtMjU2NCwxMCArMjU4Myw0NSBAQCByZWxlYXNlZCB3aGVuIHRoZSBvYmpmaWxlIGlzIHVu bG9hZGVkIG9yIHJlbG9hZGVkLiAgVGhlcmVmb3JlIG9uZQotIG9iamZpbGUgbXVzdCBub3QgcmVm ZXJlbmNlIHN5bWJvbCBvciB0eXBlIGRhdGEgZnJvbSBhbm90aGVyIG9iamZpbGU7Ci0gdGhleSBj b3VsZCBiZSB1bmxvYWRlZCBhdCBkaWZmZXJlbnQgdGltZXMuCi0gCi0tVXNlciBjb252ZW5pZW5j ZSB2YXJpYWJsZXMsIGV0IGNldGVyYSwgaGF2ZSBhc3NvY2lhdGVkIHR5cGVzLiAgTm9ybWFsbHkK LS10aGVzZSB0eXBlcyBsaXZlIGluIHRoZSBhc3NvY2lhdGVkIG9iamZpbGUuICBIb3dldmVyLCB3 aGVuIHRoZSBvYmpmaWxlCi0taXMgdW5sb2FkZWQsIHRob3NlIHR5cGVzIGFyZSBkZWVwIGNvcGll ZCB0byBnbG9iYWwgbWVtb3J5LCBzbyB0aGF0Ci0tdGhlIHZhbHVlcyBvZiB0aGUgdXNlciB2YXJp YWJsZXMgYW5kIGhpc3RvcnkgaXRlbXMgYXJlIG5vdCBsb3N0LgotK0Bub2RlIE1lbW9yeSBNYW5h Z2VtZW50IGZvciBUeXBlcwotK0BzZWN0aW9uIE1lbW9yeSBNYW5hZ2VtZW50IGZvciBUeXBlcwot K0BjaW5kZXggbWVtb3J5IG1hbmFnZW1lbnQgZm9yIHR5cGVzCi0rCi0rQGZpbmRleCBUWVBFX09C SkZJTEUKLStAY29kZXtUWVBFX09CSkZJTEV9IG1hY3JvIGluZGljYXRlcyB0aGUgY3VycmVudCBt ZW1vcnkgb3duZXIgb2YgdGhlIHR5cGUuCi0rTm9uLUBjb2Rle05VTEx9IHZhbHVlIGluZGljYXRl cyBpdCBpcyBvd25lZCBieSBhbiBvYmpmaWxlIChzcGVjaWZpY2FsbHkgYnkgaXRzCi0rb2JzdGFj aykgYW5kIGluIHN1Y2ggY2FzZSB0aGUgdHlwZSByZW1haW5zIHZhbGlkIHRpbGwgdGhlIG9iamZp bGUgaXMgdW5sb2FkZWQKLStvciByZWxvYWRlZC4gIEZvciBzdWNoIHR5cGVzIHdpdGggYW4gYXNz b2NpYXRlZCBvYmpmaWxlIG5vIHJlZmVyZW5jZSBjb3VudGluZwotK2lzIGJlaW5nIG1hZGUuCi0r Ci0rVXNlciBjb252ZW5pZW5jZSB2YXJpYWJsZXMsIGV0IGNldGVyYSwgaGF2ZSBhc3NvY2lhdGVk IHR5cGVzLiAgTm9ybWFsbHkgdGhlc2UKLSt0eXBlcyBsaXZlIGluIHRoZSBhc3NvY2lhdGVkIG9i amZpbGUuICBIb3dldmVyLCB3aGVuIHRoZSBvYmpmaWxlIGlzIHVubG9hZGVkLAotK3Rob3NlIHR5 cGVzIGFyZSBkZWVwIGNvcGllZCB0byBnbG9iYWwgbWVtb3J5LCBzbyB0aGF0IHRoZSB2YWx1ZXMg b2YgdGhlIHVzZXIKLSt2YXJpYWJsZXMgYW5kIGhpc3RvcnkgaXRlbXMgYXJlIG5vdCBsb3N0LiAg RHVyaW5nIHRoZSBjb3B5IHRoZXkgd2lsbCBnZXQgdGhlaXIKLStAY29kZXtUWVBFX09CSkZJTEV9 IHNldCB0byBAY29kZXtOVUxMfSBhbmQgYmVjb21lIHNvLWNhbGxlZCBAZGZue3JlY2xhaW1hYmxl fQotK3R5cGVzLgotKwotK1R5cGVzIHdpdGggbnVsbCBAY29kZXtUWVBFX09CSkZJTEV9IGNhbiBi ZSBlaXRoZXIgcGVybWFuZW50IHR5cGVzCi0rKEBweHJlZntCdWlsdGluIFR5cGVzfSkgb3IgcmVj bGFpbWFibGUgdHlwZXMgd2hpY2ggd2lsbCBiZSBkZWFsbG9jYXRlZCBhdCB0aGUKLStmaXJzdCBp ZGxlIEB2YWx1ZXtHREJOfSBtb21lbnQgaWYgdGhlIGxhc3Qgb2JqZWN0IHJlZmVyZW5jaW5nIHRo ZW0gaXMgcmVtb3ZlZC4KLStQZXJtYW5lbnQgdHlwZXMgYXJlIGFsbG9jYXRlZCBieSB0aGUgZnVu Y3Rpb24gQGNvZGV7YWxsb2NfdHlwZX0gKGFuZCBpdHMKLStkZXJpdmF0aW9ucyBsaWtlIEBjb2Rl e2luaXRfdHlwZX0pIHNwZWNpZnlpbmcgb2JqZmlsZSBhcyBAY29kZXtOVUxMfS4gIFRoZQotK3Jl Y2xhaW1hYmxlIHR5cGVzIGFyZSBjcmVhdGVkIHRoZSBzYW1lIHdheSBidXQgbW9yZW92ZXIgdGhl eSBuZWVkIHRvIGhhdmUKLStAY29kZXt0eXBlX2luaXRfZ3JvdXB9IGNhbGxlZCB0byBzdGFydCB0 aGVpciB0cmFja2luZyBhcyBiZWluZyBwb3NzaWJseQotK2RlYWxsb2NhdGFibGUuCi0rCi0rQGZp bmRleCBmcmVlX2FsbF90eXBlcwotK1doZW4gQHZhbHVle0dEQk59IGdldHMgaWRsZSBpdCBhbHdh eXMgY2FsbHMgdGhlIEBjb2Rle2ZyZWVfYWxsX3R5cGVzfSBmdW5jdGlvbgotK3doaWNoIGRlYWxs b2NhdGVzIGFueSB1bnVzZWQgdHlwZXMuICBBbGwgdHlwZXMgY3VycmVudGx5IG5vdCBvd25lZCBi eSBhbgotK29iamZpbGUgbXVzdCBiZSBtYXJrZWQgYXMgdXNlZCBvbiBlYWNoIEBjb2Rle2ZyZWVf YWxsX3R5cGVzfSBjYWxsIGFzIHRoZXkgd291bGQKLStnZXQgZGVhbGxvY2F0ZWQgYXMgdW51c2Vk IG90aGVyd2lzZS4KLSsKLStAY29kZXtmcmVlX2FsbF90eXBlc30gYXV0b21hdGljYWxseSBjaGVj a3MgZm9yIGFueSBjcm9zcy10eXBlIHJlZmVyZW5jZXMgc3VjaAotK2FzIHRocm91Z2ggQGNvZGV7 VFlQRV9UQVJHRVRfVFlQRX0sIEBjb2Rle1RZUEVfUE9JTlRFUl9UWVBFfSBldGMuQDogYW5kCi0r cHJldmVudHMgZWFybHkgZGVhbGxvY2F0aW9uIGZvciBhbnkgc3VjaCBleGlzdGluZyByZWZlcmVu Y2VzLiAgUmVjbGFpbWFibGUKLSt0eXBlcyBtYXkgcmVmZXJlbmNlIGFueSBvdGhlciByZWNsYWlt YWJsZSB0eXBlcyBvciBldmVuIHBlcm1hbmVudCB0eXBlcy4gIEJ1dAotK3Blcm1hbmVudCB0eXBl cyBtdXN0IG5vdCByZWZlcmVuY2UgcmVjbGFpbWFibGUgdHlwZXMgKG5vciBhbiBvYmpmaWxlIGFz c29jaWF0ZWQKLSt0eXBlKS4KLSAKLSAKLSBAbm9kZSBMYW5ndWFnZSBTdXBwb3J0CiBkaWZmIC0t Z2l0IGEvZ2RiL2RvYy9vYnNlcnZlci50ZXhpIGIvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCi1pbmRl eCBhZGI3MDg1Li41ZWM1YjVhIDEwMDY0NAoraW5kZXggNjFhY2JiMi4uYWMzNzMyNCAxMDA2NDQK IC0tLSBhL2dkYi9kb2Mvb2JzZXJ2ZXIudGV4aQogKysrIGIvZ2RiL2RvYy9vYnNlcnZlci50ZXhp Ci1AQCAtMjQ5LDYgKzI0OSwxMSBAQCBUaGUgdHJhY2Ugc3RhdGUgdmFyaWFibGUgQHZhcnt0c3Z9 IGlzIGRlbGV0ZWQuICBJZiBAdmFye3Rzdn0gaXMKK0BAIC0yNTMsNiArMjUzLDExIEBAIFRoZSB0 cmFjZSBzdGF0ZSB2YXJpYWJsZSBAdmFye3Rzdn0gaXMgZGVsZXRlZC4gIElmIEB2YXJ7dHN2fSBp cwogIFRoZSB0cmFjZSBzdGF0ZSB2YWx1ZSBAdmFye3Rzdn0gaXMgbW9kaWZpZWQuCiAgQGVuZCBk ZWZ0eXBlZnVuCiAgCkBAIC00MDIsMTAgKzI3MywxMCBAQCBpbmRleCBhZGI3MDg1Li41ZWM1YjVh IDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIgaXMgdXNlZCBmb3IgaW50ZXJuYWwgdGVzdGluZy4gIERv IG5vdCB1c2UuICAKICBTZWUgdGVzdHN1aXRlL2dkYi5nZGIvb2JzZXJ2ZXIuZXhwLgogZGlmZiAt LWdpdCBhL2dkYi9kd2FyZjJleHByLmMgYi9nZGIvZHdhcmYyZXhwci5jCi1pbmRleCA3NTJkNzgy Li5hYjBhM2ViIDEwMDY0NAoraW5kZXggMzZjOWY2Ni4uMWYyMTc2NiAxMDA2NDQKIC0tLSBhL2dk Yi9kd2FyZjJleHByLmMKICsrKyBiL2dkYi9kd2FyZjJleHByLmMKLUBAIC0xNDc5LDYgKzE0Nzks MTQgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAor QEAgLTE0NzgsNiArMTQ3OCwxNCBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZfZXhw cl9jb250ZXh0ICpjdHgsCiAgCSAgfQogIAkgIGJyZWFrOwogIApAQCAtNDIxLDEwICsyOTIsMTAg QEAgaW5kZXggNzUyZDc4Mi4uYWIwYTNlYiAxMDA2NDQKICAJICBlcnJvciAoXygiVW5oYW5kbGVk IGR3YXJmIGV4cHJlc3Npb24gb3Bjb2RlIDB4JXgiKSwgb3ApOwogIAl9CiBkaWZmIC0tZ2l0IGEv Z2RiL2R3YXJmMmV4cHIuaCBiL2dkYi9kd2FyZjJleHByLmgKLWluZGV4IGU4NTQ4NmEuLmU3YWM3 OTkgMTAwNjQ0CitpbmRleCAzOWRhZGYzLi44Y2ViYmU4IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJm MmV4cHIuaAogKysrIGIvZ2RiL2R3YXJmMmV4cHIuaAotQEAgLTc3LDEyICs3Nyw4IEBAIHN0cnVj dCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MKK0BAIC04NCwxMiArODQsOCBAQCBzdHJ1Y3QgZHdh cmZfZXhwcl9jb250ZXh0X2Z1bmNzCiAgICAgICBUaGlzIGNhbiB0aHJvdyBhbiBleGNlcHRpb24g aWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZS4gICovCiAgICBDT1JFX0FERFIgKCpnZXRfYWRk cl9pbmRleCkgKHZvaWQgKmJhdG9uLCB1bnNpZ25lZCBpbnQgaW5kZXgpOwogIApAQCAtNDM4LDcg KzMwOSw3IEBAIGluZGV4IGU4NTQ4NmEuLmU3YWM3OTkgMTAwNjQ0CiAgCiAgLyogVGhlIGxvY2F0 aW9uIG9mIGEgdmFsdWUuICAqLwogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9k d2FyZjJsb2MuYwotaW5kZXggMDJhZmNkZi4uNWEyMTYyOSAxMDA2NDQKK2luZGV4IGRkOTIxZWMu LjAxYTg1NjYgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYybG9jLmMKICsrKyBiL2dkYi9kd2FyZjJs b2MuYwogQEAgLTMwNiw2ICszMDYsOSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbgpAQCAtNDUx LDcgKzMyMiw3IEBAIGluZGV4IDAyYWZjZGYuLjVhMjE2MjkgMTAwNjQ0CiAgfTsKICAKICAvKiBI ZWxwZXIgZnVuY3Rpb25zIGZvciBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MuICAqLwotQEAgLTQy MSw3ICs0MjQsNyBAQCBkd2FyZl9leHByX2ZyYW1lX2Jhc2VfMSAoc3RydWN0IHN5bWJvbCAqZnJh bWVmdW5jLCBDT1JFX0FERFIgcGMsCitAQCAtNDMzLDcgKzQzNiw3IEBAIGR3YXJmX2V4cHJfZnJh bWVfYmFzZV8xIChzdHJ1Y3Qgc3ltYm9sICpmcmFtZWZ1bmMsIENPUkVfQUREUiBwYywKICAKICAg IGlmICgqbGVuZ3RoID09IDApCiAgICAgIGVycm9yIChfKCJDb3VsZCBub3QgZmluZCB0aGUgZnJh bWUgYmFzZSBmb3IgXCIlc1wiLiIpLApAQCAtNDYwLDcgKzMzMSw3IEBAIGluZGV4IDAyYWZjZGYu LjVhMjE2MjkgMTAwNjQ0CiAgfQogIAogIC8qIEhlbHBlciBmdW5jdGlvbiBmb3IgZHdhcmYyX2V2 YWx1YXRlX2xvY19kZXNjLiAgQ29tcHV0ZXMgdGhlIENGQSBmb3IKLUBAIC00ODgsNiArNDkxLDg1 IEBAIGR3YXJmX2V4cHJfZHdhcmZfY2FsbCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4 LCBjdV9vZmZzZXQgZGllX29mZnNldCkKK0BAIC01MDAsNiArNTAzLDg1IEBAIGR3YXJmX2V4cHJf ZHdhcmZfY2FsbCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LCBjdV9vZmZzZXQgZGll X29mZnNldCkKICAJCSAgICAgY3R4LT5mdW5jcy0+Z2V0X2ZyYW1lX3BjLCBjdHgtPmJhdG9uKTsK ICB9CiAgCkBAIC01NDYsNyArNDE3LDcgQEAgaW5kZXggMDJhZmNkZi4uNWEyMTYyOSAxMDA2NDQK ICAvKiBDYWxsYmFjayBmdW5jdGlvbiBmb3IgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjLiAgKi8K ICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgotQEAgLTEyMDIsMTAgKzEyODQsMTIgQEAgZHdhcmZf ZXhwcl9wdXNoX2R3YXJmX3JlZ19lbnRyeV92YWx1ZSAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dCAqY3R4LAorQEAgLTEyMTUsMTAgKzEyOTcsMTIgQEAgZHdhcmZfZXhwcl9wdXNoX2R3YXJmX3Jl Z19lbnRyeV92YWx1ZSAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAogICAgc2F2 ZWRfY3R4LmdkYmFyY2ggPSBjdHgtPmdkYmFyY2g7CiAgICBzYXZlZF9jdHguYWRkcl9zaXplID0g Y3R4LT5hZGRyX3NpemU7CkBAIC01NTksNyArNDMwLDcgQEAgaW5kZXggMDJhZmNkZi4uNWEyMTYy OSAxMDA2NDQKICAgIGN0eC0+b2Zmc2V0ID0gZHdhcmYyX3Blcl9jdV90ZXh0X29mZnNldCAoYmF0 b25fbG9jYWwucGVyX2N1KTsKICAgIGN0eC0+YmF0b24gPSAmYmF0b25fbG9jYWw7CiAgCi1AQCAt MTIxMywxMCArMTI5Nyw5NSBAQCBkd2FyZl9leHByX3B1c2hfZHdhcmZfcmVnX2VudHJ5X3ZhbHVl IChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsCitAQCAtMTIyNiwxMCArMTMxMCw3OCBA QCBkd2FyZl9leHByX3B1c2hfZHdhcmZfcmVnX2VudHJ5X3ZhbHVlIChzdHJ1Y3QgZHdhcmZfZXhw cl9jb250ZXh0ICpjdHgsCiAgCiAgICBjdHgtPmdkYmFyY2ggPSBzYXZlZF9jdHguZ2RiYXJjaDsK ICAgIGN0eC0+YWRkcl9zaXplID0gc2F2ZWRfY3R4LmFkZHJfc2l6ZTsKQEAgLTU3MCwyMyArNDQx LDYgQEAgaW5kZXggMDJhZmNkZi4uNWEyMTYyOSAxMDA2NDQKICAKICtzdGF0aWMgQ09SRV9BRERS IGR3YXJmX2V4cHJfZ2V0X2FkZHJfaW5kZXggKHZvaWQgKmJhdG9uLCB1bnNpZ25lZCBpbnQgaW5k ZXgpOwogKwotKy8qIFZpcnR1YWwgbWV0aG9kIHRhYmxlIGZvciBkd2FyZjJfZXZhbHVhdGVfbG9j X2Rlc2NfZnVsbCBiZWxvdy4gICovCi0rCi0rc3RhdGljIGNvbnN0IHN0cnVjdCBkd2FyZl9leHBy X2NvbnRleHRfZnVuY3MgZHdhcmZfZXhwcl9jdHhfZnVuY3MgPQotK3sKLSsgIGR3YXJmX2V4cHJf cmVhZF9yZWcsCi0rICBkd2FyZl9leHByX3JlYWRfbWVtLAotKyAgZHdhcmZfZXhwcl9mcmFtZV9i YXNlLAotKyAgZHdhcmZfZXhwcl9mcmFtZV9jZmEsCi0rICBkd2FyZl9leHByX2ZyYW1lX3BjLAot KyAgZHdhcmZfZXhwcl90bHNfYWRkcmVzcywKLSsgIGR3YXJmX2V4cHJfZHdhcmZfY2FsbCwKLSsg IGR3YXJmX2V4cHJfZ2V0X2Jhc2VfdHlwZSwKLSsgIGR3YXJmX2V4cHJfcHVzaF9kd2FyZl9yZWdf ZW50cnlfdmFsdWUsCi0rICBkd2FyZl9leHByX2dldF9hZGRyX2luZGV4LAotKyAgZHdhcmZfZXhw cl9vYmplY3RfYWRkcmVzcwotK307Ci0rCiArLyogRXZhbHVhdGUgRFdBUkYgZXhwcmVzc2lvbiBh dCBEQVRBIC4uLiBEQVRBICsgU0laRSB3aXRoIGl0cyByZXN1bHQgcmVhZGFibGUKICsgICBieSBk d2FyZl9leHByX2ZldGNoIChSRVRWQUwsIDApLiAgRlJBTUUgcGFyYW1ldGVyIGNhbiBiZSBOVUxM IHRvIGNhbGwKICsgICBnZXRfc2VsZWN0ZWRfZnJhbWUgdG8gZmluZCBpdC4gIFJldHVybmVkIGR3 YXJmX2V4cHJfY29udGV4dCBmcmVlaW5nIGlzCkBAIC02NTUsMzAgKzUwOSwxNyBAQCBpbmRleCAw MmFmY2RmLi41YTIxNjI5IDEwMDY0NAogIC8qIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2MuCiAgICAgRmV0Y2ggdGhlIGFkZHJlc3MgaW5kZXhlZCBieSBEV19P UF9HTlVfYWRkcl9pbmRleC4gICovCiAgCi1AQCAtMjE3NywyMiArMjM0Niw2IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgbHZhbF9mdW5jcyBwaWVjZWRfdmFsdWVfZnVuY3MgPSB7Ci0gICBmcmVlX3Bp ZWNlZF92YWx1ZV9jbG9zdXJlCitAQCAtMjIwNSw3ICsyMzU3LDggQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkd2FyZl9leHByX2NvbnRleHRfZnVuY3MgZHdhcmZfZXhwcl9jdHhfZnVuY3MgPQorICAg ZHdhcmZfZXhwcl9kd2FyZl9jYWxsLAorICAgZHdhcmZfZXhwcl9nZXRfYmFzZV90eXBlLAorICAg ZHdhcmZfZXhwcl9wdXNoX2R3YXJmX3JlZ19lbnRyeV92YWx1ZSwKKy0gIGR3YXJmX2V4cHJfZ2V0 X2FkZHJfaW5kZXgKKysgIGR3YXJmX2V4cHJfZ2V0X2FkZHJfaW5kZXgsCisrICBkd2FyZl9leHBy X29iamVjdF9hZGRyZXNzCiAgfTsKICAKLS0vKiBWaXJ0dWFsIG1ldGhvZCB0YWJsZSBmb3IgZHdh cmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgYmVsb3cuICAqLwotLQotLXN0YXRpYyBjb25zdCBz dHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0X2Z1bmNzIGR3YXJmX2V4cHJfY3R4X2Z1bmNzID0KLS17 Ci0tICBkd2FyZl9leHByX3JlYWRfcmVnLAotLSAgZHdhcmZfZXhwcl9yZWFkX21lbSwKLS0gIGR3 YXJmX2V4cHJfZnJhbWVfYmFzZSwKLS0gIGR3YXJmX2V4cHJfZnJhbWVfY2ZhLAotLSAgZHdhcmZf ZXhwcl9mcmFtZV9wYywKLS0gIGR3YXJmX2V4cHJfdGxzX2FkZHJlc3MsCi0tICBkd2FyZl9leHBy X2R3YXJmX2NhbGwsCi0tICBkd2FyZl9leHByX2dldF9iYXNlX3R5cGUsCi0tICBkd2FyZl9leHBy X3B1c2hfZHdhcmZfcmVnX2VudHJ5X3ZhbHVlLAotLSAgZHdhcmZfZXhwcl9nZXRfYWRkcl9pbmRl eAotLX07Ci0tCiAgLyogRXZhbHVhdGUgYSBsb2NhdGlvbiBkZXNjcmlwdGlvbiwgc3RhcnRpbmcg YXQgREFUQSBhbmQgd2l0aCBsZW5ndGgKLSAgICBTSVpFLCB0byBmaW5kIHRoZSBjdXJyZW50IGxv Y2F0aW9uIG9mIHZhcmlhYmxlIG9mIFRZUEUgaW4gdGhlCi0gICAgY29udGV4dCBvZiBGUkFNRS4g IEJZVEVfT0ZGU0VUIGlzIGFwcGxpZWQgYWZ0ZXIgdGhlIGNvbnRlbnRzIGFyZQotQEAgLTIyMDUs NyArMjM1OCw2IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIyMjAsNyArMjM3Myw2IEBAIGR3 YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lLAogIAkJCSAgICAgICBMT05HRVNUIGJ5dGVfb2Zmc2V0KQogIHsKICAg IHN0cnVjdCB2YWx1ZSAqcmV0dmFsOwpAQCAtNjg2LDcgKzUyNyw3IEBAIGluZGV4IDAyYWZjZGYu LjVhMjE2MjkgMTAwNjQ0CiAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHg7CiAgICBz dHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluLCAqdmFsdWVfY2hhaW47CiAgICBzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSA9IGR3YXJmMl9wZXJfY3Vfb2JqZmlsZSAocGVyX2N1KTsKLUBAIC0yMjE3LDI5 ICsyMzY5LDE4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIyMzIsMjkgKzIzODQsMTggQEAg ZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUsCiAgICBpZiAoc2l6ZSA9PSAwKQogICAgICByZXR1cm4gYWxsb2Nh dGVfb3B0aW1pemVkX291dF92YWx1ZSAodHlwZSk7CiAgCkBAIC03MTcsNyArNTU4LDcgQEAgaW5k ZXggMDJhZmNkZi4uNWEyMTYyOSAxMDA2NDQKICAJICByZXR2YWwgPSBhbGxvY2F0ZV92YWx1ZSAo dHlwZSk7CiAgCSAgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAocmV0dmFsLCAwLCBUWVBF X0xFTkdUSCAodHlwZSkpOwogIAkgIHJldHVybiByZXR2YWw7Ci1AQCAtMjMwMyw2ICsyNDQ0LDE2 IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTIzMjksNiArMjQ3MCwxNiBAQCBkd2FyZjJfZXZh bHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZv ICpmcmFtZSwKICAJICAgIGludCBpbl9zdGFja19tZW1vcnkgPSBkd2FyZl9leHByX2ZldGNoX2lu X3N0YWNrX21lbW9yeSAoY3R4LCAwKTsKICAKICAJICAgIGRvX2NsZWFudXBzICh2YWx1ZV9jaGFp bik7CkBAIC03MzEsMTAgKzU3MiwxMCBAQCBpbmRleCAwMmFmY2RmLi41YTIxNjI5IDEwMDY0NAog KwkgICAgICAgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcy4gICovCiArCSAgICBvYmplY3RfYWRk cmVzc19zZXQgKGFkZHJlc3MpOwogKwotIAkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWVfbGF6 eSAodHlwZSk7Ci0gCSAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZhbF9tZW1vcnk7CisgCSAg ICByZXR2YWwgPSB2YWx1ZV9hdF9sYXp5ICh0eXBlLCBhZGRyZXNzICsgYnl0ZV9vZmZzZXQpOwog IAkgICAgaWYgKGluX3N0YWNrX21lbW9yeSkKLUBAIC00MjA0LDggKzQzNTUsNyBAQCBsb2NsaXN0 X3RyYWNlcG9pbnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwKKyAJICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEpOworQEAgLTQy NDEsOCArNDM5Miw3IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9s ICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSAgICAgICBkbGJhdG9uLT5w ZXJfY3UpOwogIH0KICAKQEAgLTc0NSw3ICs1ODYsNyBAQCBpbmRleCAwMmFmY2RmLi41YTIxNjI5 IDEwMDY0NAogICAgbG9jbGlzdF9yZWFkX3ZhcmlhYmxlLAogICAgbG9jbGlzdF9yZWFkX3Zhcmlh YmxlX2F0X2VudHJ5LAogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuaCBiL2dkYi9kd2FyZjJs b2MuaAotaW5kZXggOWJjOGNhNS4uMjg0NjdkYyAxMDA2NDQKK2luZGV4IDc4NmU3N2MuLjU1ZmY0 ZTYgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYybG9jLmgKICsrKyBiL2dkYi9kd2FyZjJsb2MuaAog QEAgLTEzNyw2ICsxMzcsMTUgQEAgc3RydWN0IGR3YXJmMl9sb2NsaXN0X2JhdG9uCkBAIC03NjUs MTAgKzYwNiwxMCBAQCBpbmRleCA5YmM4Y2E1Li4yODQ2N2RjIDEwMDY0NAogIGV4dGVybiBjb25z dCBzdHJ1Y3Qgc3ltYm9sX2Jsb2NrX29wcyBkd2FyZjJfYmxvY2tfZnJhbWVfYmFzZV9sb2NleHBy X2Z1bmNzOwogIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3ltYm9sX2Jsb2NrX29wcyBkd2FyZjJfYmxv Y2tfZnJhbWVfYmFzZV9sb2NsaXN0X2Z1bmNzOwogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFk LmMgYi9nZGIvZHdhcmYycmVhZC5jCi1pbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAoraW5k ZXggMjNiY2ZlMC4uY2E5ZmZkYSAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJyZWFkLmMKICsrKyBi L2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNjYxLDYgKzE2NjEsOSBAQCBzdGF0aWMgdm9pZCBmaWxs X2luX2xvY2xpc3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAorQEAgLTE3MzgsNiArMTcz OCw5IEBAIHN0YXRpYyB2b2lkIGZpbGxfaW5fbG9jbGlzdF9iYXRvbiAoc3RydWN0IGR3YXJmMl9j dSAqY3UsCiAgCQkJCSAgIHN0cnVjdCBkd2FyZjJfbG9jbGlzdF9iYXRvbiAqYmF0b24sCiAgCQkJ CSAgIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIpOwogIApAQCAtNzc4LDcgKzYxOSw3IEBA IGluZGV4IGQxOGVhZWQuLjkxYzQ3NmMgMTAwNjQ0CiAgc3RhdGljIHZvaWQgZHdhcmYyX3N5bWJv bF9tYXJrX2NvbXB1dGVkIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogIAkJCQkJIHN0 cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkJCSBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKLUBAIC0xNjk0 LDYgKzE2OTcsOSBAQCBzdGF0aWMgdm9pZCBhZ2VfY2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOwor QEAgLTE3NzEsNiArMTc3NCw5IEBAIHN0YXRpYyB2b2lkIGFnZV9jYWNoZWRfY29tcF91bml0cyAo dm9pZCk7CiAgCiAgc3RhdGljIHZvaWQgZnJlZV9vbmVfY2FjaGVkX2NvbXBfdW5pdCAoc3RydWN0 IGR3YXJmMl9wZXJfY3VfZGF0YSAqKTsKICAKQEAgLTc4OCw3ICs2MjksNyBAQCBpbmRleCBkMThl YWVkLi45MWM0NzZjIDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc2V0X2RpZV90eXBlIChz dHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICBzdHJ1Y3QgZHdhcmYyX2N1 ICopOwogIAotQEAgLTE3MjIsNiArMTcyOCw5IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2Rp ZV90eXBlX2F0X29mZnNldCAoc2VjdF9vZmZzZXQsCitAQCAtMTc5OSw2ICsxODA1LDkgQEAgc3Rh dGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGVfYXRfb2Zmc2V0IChzZWN0X29mZnNldCwKICAK ICBzdGF0aWMgc3RydWN0IHR5cGUgKmdldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKICAKQEAgLTc5OCw3ICs2MzksNyBAQCBpbmRleCBkMThl YWVkLi45MWM0NzZjIDEwMDY0NAogIHN0YXRpYyB2b2lkIGR3YXJmMl9yZWxlYXNlX3F1ZXVlICh2 b2lkICpkdW1teSk7CiAgCiAgc3RhdGljIHZvaWQgcXVldWVfY29tcF91bml0IChzdHJ1Y3QgZHdh cmYyX3Blcl9jdV9kYXRhICpwZXJfY3UsCi1AQCAtMTIyNjMsNiArMTIyNzIsMjkgQEAgcHJvY2Vz c19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTEzMjI3LDYgKzEzMjM2LDI5IEBAIHByb2Nlc3NfZW51bWVyYXRpb25fc2Nv cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIG5ld19z eW1ib2wgKGRpZSwgdGhpc190eXBlLCBjdSk7CiAgfQogIApAQCAtODI4LDcgKzY2OSw3IEBAIGlu ZGV4IGQxOGVhZWQuLjkxYzQ3NmMgMTAwNjQ0CiAgLyogRXh0cmFjdCBhbGwgaW5mb3JtYXRpb24g ZnJvbSBhIERXX1RBR19hcnJheV90eXBlIERJRSBhbmQgcHV0IGl0IGluCiAgICAgdGhlIERJRSdz IHR5cGUgZmllbGQuICBGb3Igbm93LCB0aGlzIG9ubHkgaGFuZGxlcyBvbmUgZGltZW5zaW9uYWwK ICAgICBhcnJheXMuICAqLwotQEAgLTEyMjc2LDcgKzEyMzA4LDcgQEAgcmVhZF9hcnJheV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTMyNDAs NyArMTMyNzIsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5cGUsICpyYW5nZV90 eXBlLCAqaW5kZXhfdHlwZTsKICAgIHN0cnVjdCB0eXBlICoqcmFuZ2VfdHlwZXMgPSBOVUxMOwog ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTgzNyw3ICs2NzgsNyBAQCBpbmRleCBkMThl YWVkLi45MWM0NzZjIDEwMDY0NAogICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICBjb25z dCBjaGFyICpuYW1lOwogIAotQEAgLTEyMzI5LDE3ICsxMjM2MSwxOSBAQCByZWFkX2FycmF5X3R5 cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMzI5 MywxNyArMTMzMjUsMTkgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwogIAogICAgaWYg KHJlYWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3IpCkBAIC04Njgs NyArNzA5LDcgQEAgaW5kZXggZDE4ZWFlZC4uOTFjNDc2YyAxMDA2NDQKICAKICAgIC8qIFVuZGVy c3RhbmQgRHdhcmYyIHN1cHBvcnQgZm9yIHZlY3RvciB0eXBlcyAobGlrZSB0aGV5IG9jY3VyIG9u CiAgICAgICB0aGUgUG93ZXJQQyB3LyBBbHRpVmVjKS4gIEdjYyBqdXN0IGFkZHMgYW5vdGhlciBh dHRyaWJ1dGUgdG8gdGhlCi1AQCAtMTI5NzMsMjkgKzEzMDA3LDExNCBAQCByZWFkX3RhZ19zdHJp bmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTEzOTQyLDI5ICsxMzk3NiwxMTQgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwg KnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cjsKQEAgLTk5Niw3ICs4MzcsNyBAQCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0 NAogICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdl X2RlZm4sIGdkYmFyY2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hh cl90eXBlLCByYW5nZV90eXBlKTsKICAKLUBAIC0xMzMyMCw3ICsxMzQzOSw3IEBAIHJlYWRfc3Vi cmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTE0Mjg5LDcgKzE0NDA4LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBl LCAqb3JpZ19iYXNlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHI7CkBAIC0xMDA1LDkgKzg0Niw5IEBAIGluZGV4IGQxOGVhZWQuLjkx YzQ3NmMgMTAwNjQ0CiAgICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7CiAgICBjb25zdCBjaGFy ICpuYW1lOwogICAgTE9OR0VTVCBuZWdhdGl2ZV9tYXNrOwotQEAgLTEzMzc5LDQyICsxMzQ5OCw2 IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTE0MzQ4LDQyICsxNDQ2Nyw2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkJCQkgICAgICAi LSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVzXSIpLAotIAkgICAgICAgZGllLT5vZmZzZXQuc2Vj dF9vZmYsIGN1LT5vYmpmaWxlLT5uYW1lKTsKKyAJICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2Zm LCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxlKSk7CiAgCiAtICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfdXBwZXJfYm91bmQsIGN1KTsKIC0gIGlmIChhdHRyKQpAQCAtMTA0OCw3ICs4 ODksNyBAQCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAogICAgLyogRHdhcmYtMiBzcGVj aWZpY2F0aW9ucyBleHBsaWNpdGx5IGFsbG93cyB0byBjcmVhdGUgc3VicmFuZ2UgdHlwZXMKICAg ICAgIHdpdGhvdXQgc3BlY2lmeWluZyBhIGJhc2UgdHlwZS4KICAgICAgIEluIHRoYXQgY2FzZSwg dGhlIGJhc2UgdHlwZSBtdXN0IGJlIHNldCB0byB0aGUgdHlwZSBvZgotQEAgLTEzNDUzLDI0ICsx MzUzNiwxNjMgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTQ0MjIsMjQgKzE0NTA1LDE2MyBAQCByZWFkX3N1YnJh bmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJ fQogICAgICB9CiAgCkBAIC0xMjI2LDcgKzEwNjcsNyBAQCBpbmRleCBkMThlYWVkLi45MWM0NzZj IDEwMDY0NAogIAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICAgIGlmIChuYW1l KQotQEAgLTE2MzgwLDExICsxNjYwMiwxNCBAQCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3Qg YXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCitAQCAtMTczNjEsMTEgKzE3NTgz LDE0IEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVj dCBzeW1ib2wgKnN5bSwKICAgICAgIChpLmUuIHdoZW4gdGhlIHZhbHVlIG9mIGEgcmVnaXN0ZXIg b3IgbWVtb3J5IGxvY2F0aW9uIGlzCiAgICAgICByZWZlcmVuY2VkLCBvciBhIHRocmVhZC1sb2Nh bCBibG9jaywgZXRjLikuICBUaGVuIGFnYWluLCBpdCBtaWdodAogICAgICAgbm90IGJlIHdvcnRo d2hpbGUuICBJJ20gYXNzdW1pbmcgdGhhdCBpdCBpc24ndCB1bmxlc3MgcGVyZm9ybWFuY2UKQEAg LTEyNDMsNyArMTA4NCw3IEBAIGluZGV4IGQxOGVhZWQuLjkxYzQ3NmMgMTAwNjQ0CiAgICAgIGN1 LT5oYXNfbG9jbGlzdCA9IDE7CiAgfQogIAotQEAgLTE3MjI1LDYgKzE3NDUwLDkgQEAgcmVhZF90 eXBlX2RpZV8xIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitA QCAtMTgyMTIsNiArMTg0MzcsOSBAQCByZWFkX3R5cGVfZGllXzEgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAt MTI1Myw3ICsxMDk0LDcgQEAgaW5kZXggZDE4ZWFlZC4uOTFjNDc2YyAxMDA2NDQKICAgIHJldHVy biB0aGlzX3R5cGU7CiAgfQogIAotQEAgLTE5OTEwLDY2ICsyMDEzOCwxMDkgQEAgZmlsbF9pbl9s b2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0yMDg5NCw2NiArMjExMjIs MTA5IEBAIGZpbGxfaW5fbG9jbGlzdF9iYXRvbiAoc3RydWN0IGR3YXJmMl9jdSAqY3UsCiAgICBi YXRvbi0+ZnJvbV9kd28gPSBjdS0+ZHdvX3VuaXQgIT0gTlVMTDsKICB9CiAgCkBAIC0xNDAyLDcg KzEyNDMsNyBAQCBpbmRleCBkMThlYWVkLi45MWM0NzZjIDEwMDY0NAogICAgICB9CiAgfQogIAot QEAgLTIwMzQyLDYgKzIwNjEzLDI1IEBAIHBlcl9jdV9vZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0 IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKK0BAIC0yMTMyNiw2ICsyMTU5 NywyNSBAQCBwZXJfY3Vfb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocywg Y29uc3Qgdm9pZCAqaXRlbV9yaHMpCiAgCSAgJiYgb2ZzX2xocy0+b2Zmc2V0LnNlY3Rfb2ZmID09 IG9mc19yaHMtPm9mZnNldC5zZWN0X29mZik7CiAgfQogIApAQCAtMTQyOCw3ICsxMjY5LDcgQEAg aW5kZXggZDE4ZWFlZC4uOTFjNDc2YyAxMDA2NDQKICAvKiBTZXQgdGhlIHR5cGUgYXNzb2NpYXRl ZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2ZSBpdCBpbiBDVSdzIGhhc2gKICAgICB0YWJsZSBpZiBu ZWNlc3NhcnkuICBGb3IgY29udmVuaWVuY2UsIHJldHVybiBUWVBFLgogIAotQEAgLTIwMzY2LDYg KzIwNjU2LDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5 cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTIxMzUwLDYgKzIxNjQwLDggQEAg c2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGR3YXJmMl9wZXJfY3Vfb2Zmc2V0X2FuZF90 eXBlICoqc2xvdCwgb2ZzOwogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmls ZTsKICAKQEAgLTE0MzgsNyArMTI3OSw3IEBAIGluZGV4IGQxOGVhZWQuLjkxYzQ3NmMgMTAwNjQ0 CiAgICAgICBpbml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0KS4gIFRoZXJlIGFyZSBhIGZl dyB0eXBlcyB3aGVyZQogICAgICAgd2Ugc2hvdWxkIG5vdCBiZSBkb2luZyBzbywgYmVjYXVzZSB0 aGUgdHlwZS1zcGVjaWZpYyBhcmVhIGlzCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9l dmFsLmMKLWluZGV4IDUzOTQ4OWYuLjEzYmExYTkgMTAwNjQ0CitpbmRleCBiZmJlMzE5Li4zZmRj NWQ1IDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwogQEAgLTQxLDYg KzQxLDcgQEAKQEAgLTE0NDksNyArMTI5MCw3IEBAIGluZGV4IDUzOTQ4OWYuLjEzYmExYTkgMTAw NjQ0CiAgCiAgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKICAKLUBAIC0zOTMsMjcgKzM5NCwyMjEg QEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgdmFsdWUg KmVsZW1lbnQsCitAQCAtMzk3LDI3ICszOTgsMjIyIEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3Ry dWN0IHZhbHVlICphcnJheSwgc3RydWN0IHZhbHVlICplbGVtZW50LAogIH0KICAKICBzdGF0aWMg c3RydWN0IHZhbHVlICoKQEAgLTE2NzMsNyArMTUxNCw4IEBAIGluZGV4IDUzOTQ4OWYuLjEzYmEx YTkgMTAwNjQ0CiArICAgIHsKICsgICAgICBnZGJfYXNzZXJ0IChUWVBFX0xFTkdUSCAobmV3X2Fy cmF5X3R5cGUpCiArCQkgIDw9IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChzYXZlZF9hcnJheSkp KTsKLSsgICAgICBhbGxvY2F0ZV92YWx1ZV9jb250ZW50cyAoYXJyYXkpOworKyAgICAgIC8qIEZJ WE1FOiBJdCBzaW11bGF0ZXMgbm9uLXB1YmxpYyBhbGxvY2F0ZV92YWx1ZV9jb250ZW50cy4gICov CisrICAgICAgdmFsdWVfY29udGVudHNfYWxsX3JhdyAoYXJyYXkpOwogKyAgICAgIHNldF92YWx1 ZV9sYXp5IChhcnJheSwgMCk7CiArCiArICAgICAgbWVtY3B5ICh2YWx1ZV9jb250ZW50c193cml0 ZWFibGUgKGFycmF5KSwKQEAgLTE2ODcsNyArMTUyOSw3IEBAIGluZGV4IDUzOTQ4OWYuLjEzYmEx YTkgMTAwNjQ0CiAgfQogIAogIAotQEAgLTcxMCw2ICs5MDUsNyBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC03MTQsNiArOTEwLDcgQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgICBp bnQgc2F2ZV9wb3MxOwogICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBOVUxMOwogICAgY2hh ciAqZnVuY3Rpb25fbmFtZSA9IE5VTEw7CkBAIC0xNjk1LDcgKzE1MzcsNyBAQCBpbmRleCA1Mzk0 ODlmLi4xM2JhMWE5IDEwMDY0NAogIAogICAgcGMgPSAoKnBvcykrKzsKICAgIG9wID0gZXhwLT5l bHRzW3BjXS5vcGNvZGU7Ci1AQCAtMTc3Niw2ICsxOTcyLDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTc4MCw2ICsxOTc3LDggQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCiAg ICAgICAgLyogRmlyc3QgZGV0ZXJtaW5lIHRoZSB0eXBlIGNvZGUgd2UgYXJlIGRlYWxpbmcgd2l0 aC4gICovCiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBv cywgbm9zaWRlKTsKQEAgLTE3MDQsNyArMTU0Niw3IEBAIGluZGV4IDUzOTQ4OWYuLjEzYmExYTkg MTAwNjQ0CiAgICAgICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsK ICAgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAKLUBAIC0xNzk2LDIzICsxOTk0LDEz IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAor QEAgLTE4MDAsMjMgKzE5OTksMTMgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3Qg dHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwogIAkg ICAgfQogIAl9IApAQCAtMTczMCw3ICsxNTcyLDcgQEAgaW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAx MDA2NDQKICAKICAJY2FzZSBUWVBFX0NPREVfUFRSOgogIAljYXNlIFRZUEVfQ09ERV9GVU5DOgot QEAgLTIyMjUsNDkgKzI0MTMsNiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0 eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMjI5LDQ5ICsyNDE4LDYgQEAgZXZhbHVhdGVfc3ViZXhw X3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCX0KICAgICAgICByZXR1cm4g KGFyZzEpOwogIApAQCAtMTc4MCw3ICsxNjIyLDcgQEAgaW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAx MDA2NDQKICAgICAgY2FzZSBCSU5PUF9MT0dJQ0FMX0FORDoKICAgICAgICBhcmcxID0gZXZhbHVh dGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOwogICAgICAgIGlmIChub3Np ZGUgPT0gRVZBTF9TS0lQKQotQEAgLTI0OTksMTUgKzI2NDQsMjMgQEAgZXZhbHVhdGVfc3ViZXhw X3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjUwMywxNSArMjY0OSwy MyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwK ICAgICAgICBpZiAoZXhwZWN0X3R5cGUgJiYgVFlQRV9DT0RFIChleHBlY3RfdHlwZSkgPT0gVFlQ RV9DT0RFX1BUUikKICAJZXhwZWN0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChjaGVja190eXBl ZGVmIChleHBlY3RfdHlwZSkpOwogICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKGV4cGVj dF90eXBlLCBleHAsIHBvcywgbm9zaWRlKTsKQEAgLTE4MDYsNyArMTY0OCw3IEBAIGluZGV4IDUz OTQ4OWYuLjEzYmExYTkgMTAwNjQ0CiAgICAgICAgZWxzZSBpZiAobm9zaWRlID09IEVWQUxfQVZP SURfU0lERV9FRkZFQ1RTKQogIAl7CiAgCSAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKGFyZzEpKTsKLUBAIC0yNTE2LDEyICsyNjY5LDE4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFu ZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTI1MjAsMTIgKzI2NzQsMTggQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAg LyogSW4gQyB5b3UgY2FuIGRlcmVmZXJlbmNlIGFuIGFycmF5IHRvIGdldCB0aGUgMXN0IGVsdC4g ICovCiAgCSAgICAgIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZCiAgCSAg ICApCkBAIC0xODMwLDcgKzE2NzIsNyBAQCBpbmRleCA1Mzk0ODlmLi4xM2JhMWE5IDEwMDY0NAog IAkgIGVsc2UKICAJICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2UgY29udGVudHMgb2YgYSBu b24tcG9pbnRlciB2YWx1ZS4iKSk7CiAgCX0KLUBAIC0yNTMxLDkgKzI2OTAsMTQgQEAgZXZhbHVh dGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMjUzNSw5 ICsyNjk1LDE0IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAogIAkgZG8uICAibG9uZyBsb25nIiB2YXJpYWJsZXMgYXJlIHJhcmUgZW5vdWdoIHRo YXQKICAJIEJVSUxUSU5fVFlQRV9MT05HRVNUIHdvdWxkIHNlZW0gdG8gYmUgYSBtaXN0YWtlLiAg Ki8KICAgICAgICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfSU5UKQpAQCAtMTg0 OCw3ICsxNjkwLDcgQEAgaW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAxMDA2NDQKICAKICAgICAgY2Fz ZSBVTk9QX0FERFI6CiAgICAgICAgLyogQysrOiBjaGVjayBmb3IgYW5kIGhhbmRsZSBwb2ludGVy IHRvIG1lbWJlcnMuICAqLwotQEAgLTI5NjMsNyArMzEyNyw3IEBAIGV2YWx1YXRlX3N1YmV4cF93 aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTI5NjcsNyArMzEzMiw3 IEBAIGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhw LAogIHsKICAgIGVudW0gZXhwX29wY29kZSBvcDsKICAgIGludCBwYzsKQEAgLTE4NTcsNyArMTY5 OSw3IEBAIGluZGV4IDUzOTQ4OWYuLjEzYmExYTkgMTAwNjQ0CiAgICBzdHJ1Y3Qgc3ltYm9sICp2 YXI7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUBAIC0yOTc0LDEzICszMTM4LDE4IEBAIGV2 YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAg LTI5NzgsMTMgKzMxNDMsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0cnVj dCBleHByZXNzaW9uICpleHAsCiAgICAgIHsKICAgICAgY2FzZSBPUF9WQVJfVkFMVUU6CiAgICAg ICAgdmFyID0gZXhwLT5lbHRzW3BjICsgMl0uc3ltYm9sOwpAQCAtMTg3Nyw3ICsxNzE5LDcgQEAg aW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAxMDA2NDQKICAJICByZXR1cm4gdmFsdWVfY2FzdCAobG9v a3VwX3BvaW50ZXJfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpLAogIAkJCSAgICAgdmFs KTsKICAJfQotQEAgLTMwMzgsOSArMzIwNywxMyBAQCBldmFsdWF0ZV9zdWJleHBfZm9yX3NpemVv ZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MpCitAQCAtMzA0Miw5ICszMjEyLDEz IEBAIGV2YWx1YXRlX3N1YmV4cF9mb3Jfc2l6ZW9mIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBp bnQgKnBvcykKICAKICAgICAgY2FzZSBPUF9WQVJfVkFMVUU6CiAgICAgICAgKCpwb3MpICs9IDQ7 CkBAIC0xODk0LDcgKzE3MzYsNyBAQCBpbmRleCA1Mzk0ODlmLi4xM2JhMWE5IDEwMDY0NAogIAog ICAgICBkZWZhdWx0OgogICAgICAgIHZhbCA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgRVZBTF9BVk9JRF9TSURFX0VGRkVDVFMpOwotQEAgLTMwNzEsMTggKzMyNDQsMjUg QEAgcGFyc2VfYW5kX2V2YWxfdHlwZSAoY2hhciAqcCwgaW50IGxlbmd0aCkKK0BAIC0zMDc1LDE4 ICszMjQ5LDI1IEBAIHBhcnNlX2FuZF9ldmFsX3R5cGUgKGNoYXIgKnAsIGludCBsZW5ndGgpCiAg aW50CiAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKmFycmF5X3R5cGUpCiAgewpA QCAtMTkzMSw3ICsxNzczLDcgQEAgaW5kZXggNTM5NDg5Zi4uMTNiYTFhOSAxMDA2NDQKICsKICB9 CiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggODQ2Y2MwMi4u OTI4MzE4MyAxMDA2NDQKK2luZGV4IDdhOTRiMTUuLmE2YmE3ODQgMTAwNjQ0CiAtLS0gYS9nZGIv Zi1leHAueQogKysrIGIvZ2RiL2YtZXhwLnkKIEBAIC0yOTcsNyArMjk3LDkgQEAgYXJnbGlzdCA6 CXN1YnJhbmdlCkBAIC0xOTQ2LDcgKzE3ODgsNyBAQCBpbmRleCA4NDZjYzAyLi45MjgzMTgzIDEw MDY0NAogIAk7CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtbGFuZy5oIGIvZ2RiL2YtbGFuZy5oCi1p bmRleCA0ZWYxYWNmLi44ZGEwMTZiIDEwMDY0NAoraW5kZXggMmQ2N2E0OC4uNGQyZjQxMSAxMDA2 NDQKIC0tLSBhL2dkYi9mLWxhbmcuaAogKysrIGIvZ2RiL2YtbGFuZy5oCiBAQCAtMjksNiArMjks MTAgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAqKTsJLyogRGVmaW5lZCBpbiBmLWV4cC55 ICovCkBAIC0xOTYxLDE5ICsxODAzLDE4IEBAIGluZGV4IDRlZjFhY2YuLjhkYTAxNmIgMTAwNjQ0 CiAgCQkJIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICos CiBkaWZmIC0tZ2l0IGEvZ2RiL2YtdHlwZXByaW50LmMgYi9nZGIvZi10eXBlcHJpbnQuYwotaW5k ZXggYWEzMzIzMS4uZGY5OThjNCAxMDA2NDQKK2luZGV4IDgzNTZhYWIuLjUwNTAyNTUgMTAwNjQ0 CiAtLS0gYS9nZGIvZi10eXBlcHJpbnQuYwogKysrIGIvZ2RiL2YtdHlwZXByaW50LmMKLUBAIC0z MCw3ICszMCw3IEBACitAQCAtMzAsNiArMzAsNyBAQAogICNpbmNsdWRlICJnZGJjb3JlLmgiCiAg I2luY2x1ZGUgInRhcmdldC5oIgogICNpbmNsdWRlICJmLWxhbmcuaCIKLS0KICsjaW5jbHVkZSAi ZHdhcmYybG9jLmgiCi0gI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKLSAjaW5jbHVkZSA8ZXJybm8u aD4KICAKLUBAIC00Nyw2ICs0NywzNCBAQCB2b2lkIGZfdHlwZV9wcmludF92YXJzcGVjX3ByZWZp eCAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwKKyAjaW5jbHVkZSA8c3RyaW5nLmg+ CisgI2luY2x1ZGUgPGVycm5vLmg+CitAQCAtNDcsNiArNDgsMzQgQEAgdm9pZCBmX3R5cGVfcHJp bnRfdmFyc3BlY19wcmVmaXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICosCiAgdm9p ZCBmX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50 LCBpbnQpOwogIAwKICAKQEAgLTIwMDgsNyArMTg0OSw3IEBAIGluZGV4IGFhMzMyMzEuLmRmOTk4 YzQgMTAwNjQ0CiAgLyogTEVWRUwgaXMgdGhlIGRlcHRoIHRvIGluZGVudCBsaW5lcyBieS4gICov CiAgCiAgdm9pZAotQEAgLTU2LDYgKzg0LDkgQEAgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgY2hhciAqdmFyc3RyaW5nLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAg LTU2LDYgKzg1LDkgQEAgZl9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hh ciAqdmFyc3RyaW5nLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogICAgZW51bSB0eXBlX2NvZGUg Y29kZTsKICAgIGludCBkZW1hbmdsZWRfYXJnczsKICAKQEAgLTIwMTgsNyArMTg1OSw3IEBAIGlu ZGV4IGFhMzMyMzEuLmRmOTk4YzQgMTAwNjQ0CiAgICBmX3R5cGVfcHJpbnRfYmFzZSAodHlwZSwg c3RyZWFtLCBzaG93LCBsZXZlbCk7CiAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAgIGlm ICgodmFyc3RyaW5nICE9IE5VTEwgJiYgKnZhcnN0cmluZyAhPSAnXDAnKQotQEAgLTE2Miw2ICsx OTMsOSBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTE2Miw2ICsxOTQsOSBAQCBmX3R5cGVfcHJpbnRf dmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LAogIAogICAgUVVJVDsKICAKQEAgLTIwMjksNyArMTg3MCw3IEBAIGluZGV4IGFhMzMyMzEuLmRm OTk4YzQgMTAwNjQ0CiAgICAgIHsKICAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CiBkaWZmIC0t Z2l0IGEvZ2RiL2YtdmFscHJpbnQuYyBiL2dkYi9mLXZhbHByaW50LmMKLWluZGV4IGQwMWQ2ZWMu LjhhMjExNDkgMTAwNjQ0CitpbmRleCBkOGM3NjdmLi40YWEwZDVlIDEwMDY0NAogLS0tIGEvZ2Ri L2YtdmFscHJpbnQuYwogKysrIGIvZ2RiL2YtdmFscHJpbnQuYwogQEAgLTUxLDE1ICs1MSwxNyBA QCBpbnQgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZPUlRSQU5fRElNUyArIDFdWzJdOwpAQCAt MjE2OCw3ICsyMDA5LDcgQEAgaW5kZXggZDAxZDZlYy4uOGEyMTE0OSAxMDA2NDQKICAgIHN3aXRj aCAoVFlQRV9DT0RFICh0eXBlKSkKICAgICAgewogZGlmZiAtLWdpdCBhL2dkYi9maW5kdmFyLmMg Yi9nZGIvZmluZHZhci5jCi1pbmRleCBmNTg2Y2UyLi44ZmQ1YTA4IDEwMDY0NAoraW5kZXggMDY0 N2MwZi4uYTJhMGE0ZiAxMDA2NDQKIC0tLSBhL2dkYi9maW5kdmFyLmMKICsrKyBiL2dkYi9maW5k dmFyLmMKIEBAIC0zNCw2ICszNCw3IEBACkBAIC0yMTc5LDcgKzIwMjAsNyBAQCBpbmRleCBmNTg2 Y2UyLi44ZmQ1YTA4IDEwMDY0NAogIAogIC8qIEJhc2ljIGJ5dGUtc3dhcHBpbmcgcm91dGluZXMu ICBBbGwgJ2V4dHJhY3QnIGZ1bmN0aW9ucyByZXR1cm4gYQogICAgIGhvc3QtZm9ybWF0IGludGVn ZXIgZnJvbSBhIHRhcmdldC1mb3JtYXQgaW50ZWdlciBhdCBBRERSIHdoaWNoIGlzCi1AQCAtNDQz LDcgKzQ0NCwxMCBAQCBtaW5zeW1fbG9va3VwX2l0ZXJhdG9yX2NiIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwgdm9pZCAqY2JfZGF0YSkKK0BAIC00MTYsNyArNDE3LDEwIEBAIG1pbnN5bV9sb29r dXBfaXRlcmF0b3JfY2IgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lkICpjYl9kYXRhKQog IH0KICAKICAvKiBBIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSAibGFfcmVhZF92YXJf dmFsdWUiIGhvb2sgaW4KQEAgLTIxOTEsNyArMjAzMiw3IEBAIGluZGV4IGY1ODZjZTIuLjhmZDVh MDggMTAwNjQ0CiAgCiAgc3RydWN0IHZhbHVlICoKICBkZWZhdWx0X3JlYWRfdmFyX3ZhbHVlIChz dHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLUBAIC00NTIsMTMg KzQ1Niw2IEBAIGRlZmF1bHRfcmVhZF92YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lKQorQEAgLTQyNSwxMyArNDI5LDYgQEAgZGVmYXVsdF9yZWFk X3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUp CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IFNZTUJPTF9UWVBFICh2YXIpOwogICAgQ09SRV9BRERS IGFkZHI7CiAgCkBAIC0yMjA1LDczICsyMDQ2LDE3IEBAIGluZGV4IGY1ODZjZTIuLjhmZDVhMDgg MTAwNjQ0CiAgICBpZiAoc3ltYm9sX3JlYWRfbmVlZHNfZnJhbWUgKHZhcikpCiAgICAgIGdkYl9h c3NlcnQgKGZyYW1lKTsKICAKLUBAIC01MDIsNyArNDk5LDYgQEAgZGVmYXVsdF9yZWFkX3Zhcl92 YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCi0gICAg ICAgcmV0dXJuIHY7Ci0gCi0gICAgIGNhc2UgTE9DX1NUQVRJQzoKLS0gICAgICB2ID0gYWxsb2Nh dGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgaWYgKG92ZXJsYXlfZGVidWdnaW5nKQotIAlh ZGRyID0gc3ltYm9sX292ZXJsYXllZF9hZGRyZXNzIChTWU1CT0xfVkFMVUVfQUREUkVTUyAodmFy KSwKLSAJCQkJCSBTWU1CT0xfT0JKX1NFQ1RJT04gKFNZTUJPTF9PQkpGSUxFICh2YXIpLAotQEAg LTUxNyw3ICs1MTMsNiBAQCBkZWZhdWx0X3JlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3ltYm9sICp2 YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLSAJZXJyb3IgKF8oIlVua25vd24gYXJndW1l bnQgbGlzdCBhZGRyZXNzIGZvciBgJXMnLiIpLAotIAkgICAgICAgU1lNQk9MX1BSSU5UX05BTUUg KHZhcikpOwotICAgICAgIGFkZHIgKz0gU1lNQk9MX1ZBTFVFICh2YXIpOwotLSAgICAgIHYgPSBh bGxvY2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsKLSAgICAgICBicmVhazsKLSAKLSAgICAgY2FzZSBM T0NfUkVGX0FSRzoKLUBAIC01MzIsMTQgKzUyNywxMiBAQCBkZWZhdWx0X3JlYWRfdmFyX3ZhbHVl IChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLSAJYXJncmVm ICs9IFNZTUJPTF9WQUxVRSAodmFyKTsKLSAJcmVmID0gdmFsdWVfYXQgKGxvb2t1cF9wb2ludGVy X3R5cGUgKHR5cGUpLCBhcmdyZWYpOwotIAlhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAocmVmKTsK LS0JdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwotIAlicmVhazsKLSAgICAgICB9Ci0g Ci0gICAgIGNhc2UgTE9DX0xPQ0FMOgotICAgICAgIGFkZHIgPSBnZXRfZnJhbWVfbG9jYWxzX2Fk ZHJlc3MgKGZyYW1lKTsKLSAgICAgICBhZGRyICs9IFNZTUJPTF9WQUxVRSAodmFyKTsKLS0gICAg ICB2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgYnJlYWs7Ci0gCi0gICAg IGNhc2UgTE9DX1RZUEVERUY6Ci1AQCAtNTQ4LDcgKzU0MSw2IEBAIGRlZmF1bHRfcmVhZF92YXJf dmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotICAg ICAgIGJyZWFrOwotIAotICAgICBjYXNlIExPQ19CTE9DSzoKLS0gICAgICB2ID0gYWxsb2NhdGVf dmFsdWVfbGF6eSAodHlwZSk7Ci0gICAgICAgaWYgKG92ZXJsYXlfZGVidWdnaW5nKQotIAlhZGRy ID0gc3ltYm9sX292ZXJsYXllZF9hZGRyZXNzCi0gCSAgKEJMT0NLX1NUQVJUIChTWU1CT0xfQkxP Q0tfVkFMVUUgKHZhcikpLCBTWU1CT0xfT0JKX1NFQ1RJT04gKFNZTUJPTF9PQkpGSUxFICh2YXIp LAotQEAgLTU3NSw3ICs1NjcsNiBAQCBkZWZhdWx0X3JlYWRfdmFyX3ZhbHVlIChzdHJ1Y3Qgc3lt Ym9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLSAJICAgICAgICAgICAgIFNZTUJP TF9QUklOVF9OQU1FICh2YXIpKTsKLSAKLSAJICAgIGFkZHIgPSB2YWx1ZV9hc19hZGRyZXNzIChy ZWd2YWwpOwotLQkgICAgdiA9IGFsbG9jYXRlX3ZhbHVlX2xhenkgKHR5cGUpOwotIAkgIH0KLSAJ ZWxzZQotIAkgIHsKLUBAIC02MjAsNyArNjExLDYgQEAgZGVmYXVsdF9yZWFkX3Zhcl92YWx1ZSAo c3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCi0gCWlmIChvYmpf c2VjdGlvbgotIAkgICAgJiYgKG9ial9zZWN0aW9uLT50aGVfYmZkX3NlY3Rpb24tPmZsYWdzICYg U0VDX1RIUkVBRF9MT0NBTCkgIT0gMCkKLSAJICBhZGRyID0gdGFyZ2V0X3RyYW5zbGF0ZV90bHNf YWRkcmVzcyAob2JqX3NlY3Rpb24tPm9iamZpbGUsIGFkZHIpOwotLQl2ID0gYWxsb2NhdGVfdmFs dWVfbGF6eSAodHlwZSk7Ci0gICAgICAgfQotICAgICAgIGJyZWFrOwotIAotQEAgLTYzMyw2ICs2 MjMsMTAgQEAgZGVmYXVsdF9yZWFkX3Zhcl92YWx1ZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnJhbWUpCitAQCAtNTk5LDYgKzU5Niw5IEBAIGRlZmF1bHRfcmVhZF92 YXJfdmFsdWUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQog ICAgICAgIGJyZWFrOwogICAgICB9CiAgCiArICAvKiBBRERSIGlzIHNldCBoZXJlIGZvciBBTExP Q0FURV9WQUxVRSdzIENIRUNLX1RZUEVERUYgZm9yCiArICAgICBEV19PUF9QVVNIX09CSkVDVF9B RERSRVNTLiAgKi8KICsgIG9iamVjdF9hZGRyZXNzX3NldCAoYWRkcik7Ci0rICB2ID0gYWxsb2Nh dGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0gICBWQUxVRV9MVkFMICh2KSA9IGx2YWxfbWVtb3J5Owot ICAgc2V0X3ZhbHVlX2FkZHJlc3MgKHYsIGFkZHIpOworICAgdiA9IHZhbHVlX2F0X2xhenkgKHR5 cGUsIGFkZHIpOwogICAgcmV0dXJuIHY7Ci1AQCAtNzM3LDEwICs3MzEsMTEgQEAgc3RydWN0IHZh bHVlICoKKyB9CitAQCAtNzAyLDEwICs3MDIsMTEgQEAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9m cm9tX3JlZ2lzdGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHJlZ251bSwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1l X2FyY2ggKGZyYW1lKTsKQEAgLTIyODUsNyArMjA3MCw3IEBAIGluZGV4IGY1ODZjZTIuLjhmZDVh MDggMTAwNjQ0CiAgICAgIHsKICAgICAgICBpbnQgb3B0aW0sIHVuYXZhaWwsIG9rOwogIAotQEAg LTc1NSw3ICs3NTAsNyBAQCB2YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwg aW50IHJlZ251bSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQorQEAgLTcyMCw3ICs3MjEsNyBA QCB2YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHJlZ251bSwgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lKQogICAgICAgIFZBTFVFX0xWQUwgKHYpID0gbHZhbF9yZWdp c3RlcjsKICAgICAgICBWQUxVRV9GUkFNRV9JRCAodikgPSBnZXRfZnJhbWVfaWQgKGZyYW1lKTsK ICAgICAgICBWQUxVRV9SRUdOVU0gKHYpID0gcmVnbnVtOwpAQCAtMjMxNSwyMCArMjEwMCwxOSBA QCBpbmRleCAwNWEzOGIyLi45ODAxZmRmIDEwMDY0NAogICAgc2V0IHZhcmlhYmxlICRnZGJfaW5p dF9kb25lID0gMQogIAogZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVz LmMKLWluZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CitpbmRleCA4ZTMwOTBkLi43NThiM2M1 IDEwMDY0NAogLS0tIGEvZ2RiL2dkYnR5cGVzLmMKICsrKyBiL2dkYi9nZGJ0eXBlcy5jCi1AQCAt MzgsNiArMzgsOSBAQAotICNpbmNsdWRlICJoYXNodGFiLmgiCi0gI2luY2x1ZGUgImV4Y2VwdGlv bnMuaCIKK0BAIC00MCw2ICs0MCw4IEBACiAgI2luY2x1ZGUgImNwLXN1cHBvcnQuaCIKKyAjaW5j bHVkZSAiYmNhY2hlLmgiCisgI2luY2x1ZGUgImR3YXJmMmxvYy5oIgogKyNpbmNsdWRlICJvYnNl cnZlci5oIgogKyNpbmNsdWRlICJkd2FyZjJleHByLmgiCi0rI2luY2x1ZGUgImR3YXJmMmxvYy5o IgogIAogIC8qIEluaXRpYWxpemUgQkFETkVTUyBjb25zdGFudHMuICAqLwogIAotQEAgLTE4Niw2 ICsxODksNDMgQEAgYWxsb2NfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMTg4 LDYgKzE5MCw0MyBAQCBhbGxvY190eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKICAgIHJl dHVybiB0eXBlOwogIH0KICAKQEAgLTIzNzIsNyArMjE1Niw3IEBAIGluZGV4IGQxOWM1OTMuLjM5 OTU5MTMgMTAwNjQ0CiAgLyogQWxsb2NhdGUgYSBuZXcgR0RCQVJDSC1hc3NvY2lhdGVkIHR5cGUg c3RydWN0dXJlIGFuZCBmaWxsIGl0CiAgICAgd2l0aCBzb21lIGRlZmF1bHRzLiAgU3BhY2UgZm9y IHRoZSB0eXBlIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQKICAgICBvbiB0aGUgaGVhcC4gICovCi1A QCAtMzExLDcgKzM1MSw3IEBAIG1ha2VfcG9pbnRlcl90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwg c3RydWN0IHR5cGUgKip0eXBlcHRyKQorQEAgLTMyOCw3ICszNjcsNyBAQCBtYWtlX3BvaW50ZXJf dHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICoqdHlwZXB0cikKICAKICAgIGlm ICh0eXBlcHRyID09IDAgfHwgKnR5cGVwdHIgPT0gMCkJLyogV2UnbGwgbmVlZCB0byBhbGxvY2F0 ZSBvbmUuICAqLwogICAgICB7CkBAIC0yMzgxLDcgKzIxNjUsNyBAQCBpbmRleCBkMTljNTkzLi4z OTk1OTEzIDEwMDY0NAogICAgICAgIGlmICh0eXBlcHRyKQogIAkqdHlwZXB0ciA9IG50eXBlOwog ICAgICB9Ci1AQCAtMzg0LDcgKzQyNCw3IEBAIG1ha2VfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVwdHIpCitAQCAtNDAxLDcgKzQ0MCw3IEBAIG1h a2VfcmVmZXJlbmNlX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqKnR5cGVw dHIpCiAgCiAgICBpZiAodHlwZXB0ciA9PSAwIHx8ICp0eXBlcHRyID09IDApCS8qIFdlJ2xsIG5l ZWQgdG8gYWxsb2NhdGUgb25lLiAgKi8KICAgICAgewpAQCAtMjM5MCw3ICsyMTc0LDcgQEAgaW5k ZXggZDE5YzU5My4uMzk5NTkxMyAxMDA2NDQKICAgICAgICBpZiAodHlwZXB0cikKICAJKnR5cGVw dHIgPSBudHlwZTsKICAgICAgfQotQEAgLTgwNyw2ICs4NDcsNyBAQCBjcmVhdGVfcmFuZ2VfdHlw ZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5kZXhfdHlwZSwKK0BA IC04MjQsNiArODYzLDcgQEAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRf dHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgICAgIFRZUEVfWkFMTE9DIChyZXN1bHRf dHlwZSwgc2l6ZW9mIChzdHJ1Y3QgcmFuZ2VfYm91bmRzKSk7CiAgICBUWVBFX0xPV19CT1VORCAo cmVzdWx0X3R5cGUpID0gbG93X2JvdW5kOwogICAgVFlQRV9ISUdIX0JPVU5EIChyZXN1bHRfdHlw ZSkgPSBoaWdoX2JvdW5kOwpAQCAtMjM5OCw3ICsyMTgyLDcgQEAgaW5kZXggZDE5YzU5My4uMzk5 NTkxMyAxMDA2NDQKICAKICAgIGlmIChsb3dfYm91bmQgPj0gMCkKICAgICAgVFlQRV9VTlNJR05F RCAocmVzdWx0X3R5cGUpID0gMTsKLUBAIC05MjcsNiArOTY4LDEwIEBAIGdldF9hcnJheV9ib3Vu ZHMgKHN0cnVjdCB0eXBlICp0eXBlLCBMT05HRVNUICpsb3dfYm91bmQsIExPTkdFU1QgKmhpZ2hf Ym91bmQpCitAQCAtOTQ0LDYgKzk4NCwxMCBAQCBnZXRfYXJyYXlfYm91bmRzIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgTE9OR0VTVCAqbG93X2JvdW5kLCBMT05HRVNUICpoaWdoX2JvdW5kKQogICAgcmV0 dXJuIDE7CiAgfQogIApAQCAtMjQwOSw3ICsyMTkzLDcgQEAgaW5kZXggZDE5YzU5My4uMzk5NTkx MyAxMDA2NDQKICAvKiBDcmVhdGUgYW4gYXJyYXkgdHlwZSB1c2luZyBlaXRoZXIgYSBibGFuayB0 eXBlIHN1cHBsaWVkIGluCiAgICAgUkVTVUxUX1RZUEUsIG9yIGNyZWF0aW5nIGEgbmV3IHR5cGUs IGluaGVyaXRpbmcgdGhlIG9iamZpbGUgZnJvbQogICAgIFJBTkdFX1RZUEUuCi1AQCAtOTUwLDI2 ICs5OTUsMzEgQEAgY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwK K0BAIC05NjcsMjYgKzEwMTEsMzEgQEAgY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICpy ZXN1bHRfdHlwZSwKICAKICAgIFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID0gVFlQRV9DT0RFX0FS UkFZOwogICAgVFlQRV9UQVJHRVRfVFlQRSAocmVzdWx0X3R5cGUpID0gZWxlbWVudF90eXBlOwpA QCAtMjQ1NCw3ICsyMjM4LDcgQEAgaW5kZXggZDE5YzU5My4uMzk5NTkxMyAxMDA2NDQKICAKICAg IHJldHVybiByZXN1bHRfdHlwZTsKICB9Ci1AQCAtMTQ5MCw2ICsxNTQwLDEwNSBAQCBzdHViX25v bmFtZV9jb21wbGFpbnQgKHZvaWQpCitAQCAtMTUwOCw2ICsxNTU3LDEwNSBAQCBzdHViX25vbmFt ZV9jb21wbGFpbnQgKHZvaWQpCiAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8o InN0dWIgdHlwZSBoYXMgTlVMTCBuYW1lIikpOwogIH0KICAKQEAgLTI1NjAsNyArMjM0NCw3IEBA IGluZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgLyogRmluZCB0aGUgcmVhbCB0eXBlIG9m IFRZUEUuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHJlYWwgdHlwZSwKICAgICBhZnRlciBy ZW1vdmluZyBhbGwgbGF5ZXJzIG9mIHR5cGVkZWZzLCBhbmQgY29tcGxldGluZyBvcGFxdWUgb3Ig c3R1YgogICAgIHR5cGVzLiAgQ29tcGxldGlvbiBjaGFuZ2VzIHRoZSBUWVBFIGFyZ3VtZW50LCBi dXQgc3RyaXBwaW5nIG9mCi1AQCAtMTY1Niw1MiArMTgwNSwzNyBAQCBjaGVja190eXBlZGVmIChz dHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC0xNjc0LDUyICsxODIyLDM3IEBAIGNoZWNrX3R5cGVkZWYg KHN0cnVjdCB0eXBlICp0eXBlKQogICAgICAgICAgfQogICAgICB9CiAgCkBAIC0yNjM0LDcgKzI0 MTgsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAogIAkgIFRZUEVfVEFSR0VUX1NU VUIgKHR5cGUpID0gMDsKICAJfQogICAgICAgIGVsc2UgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0g VFlQRV9DT0RFX1JBTkdFKQotQEAgLTE3MDksNiArMTg0Myw3IEBAIGNoZWNrX3R5cGVkZWYgKHN0 cnVjdCB0eXBlICp0eXBlKQorQEAgLTE3MjcsNiArMTg2MCw3IEBAIGNoZWNrX3R5cGVkZWYgKHN0 cnVjdCB0eXBlICp0eXBlKQogIAkgIFRZUEVfTEVOR1RIICh0eXBlKSA9IFRZUEVfTEVOR1RIICh0 YXJnZXRfdHlwZSk7CiAgCSAgVFlQRV9UQVJHRVRfU1RVQiAodHlwZSkgPSAwOwogIAl9CkBAIC0y NjQyLDcgKzI0MjYsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAogICAgICB9CiAg CiAgICB0eXBlID0gbWFrZV9xdWFsaWZpZWRfdHlwZSAodHlwZSwgaW5zdGFuY2VfZmxhZ3MsIE5V TEwpOwotQEAgLTM0MDQsMzMgKzM1MzksNDIgQEAgdHlwZV9wYWlyX2VxIChjb25zdCB2b2lkICpp dGVtX2xocywgY29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMzYzMiwzMyArMzc2Niw0MiBAQCB0 eXBlX3BhaXJfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykK ICB9CiAgCiAgLyogQWxsb2NhdGUgdGhlIGhhc2ggdGFibGUgdXNlZCBieSBjb3B5X3R5cGVfcmVj dXJzaXZlIHRvIHdhbGsKQEAgLTI3MDAsNyArMjQ4NCw3IEBAIGluZGV4IGQxOWM1OTMuLjM5OTU5 MTMgMTAwNjQ0CiAgICAgIHJldHVybiB0eXBlOwogIAogICAgLyogVGhpcyB0eXBlIHNob3VsZG4n dCBiZSBwb2ludGluZyB0byBhbnkgdHlwZXMgaW4gb3RoZXIgb2JqZmlsZXM7Ci1AQCAtMzQ0NSw5 ICszNTg5LDEwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAorQEAgLTM2NzMsOSArMzgxNiwxMCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwKICAgIG5ld190eXBlID0gYWxsb2NfdHlwZV9hcmNoIChnZXRfdHlwZV9h cmNoICh0eXBlKSk7CiAgCiAgICAvKiBXZSBtdXN0IGFkZCB0aGUgbmV3IHR5cGUgdG8gdGhlIGhh c2ggdGFibGUgaW1tZWRpYXRlbHksIGluIGNhc2UKQEAgLTI3MTQsNyArMjQ5OCw3IEBAIGluZGV4 IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgICBzdG9yZWQtPm9sZCA9IHR5cGU7CiAgICBzdG9y ZWQtPm5ldyA9IG5ld190eXBlOwogICAgKnNsb3QgPSBzdG9yZWQ7Ci1AQCAtMzQ1OCw2ICszNjAz LDIxIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAg LTM2ODYsNiArMzgzMCwyMSBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqZmlsZSwKICAgIFRZUEVfT0JKRklMRV9PV05FRCAobmV3X3R5cGUpID0gMDsKICAgIFRZUEVf T1dORVIgKG5ld190eXBlKS5nZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CiAgCkBAIC0y NzM2LDcgKzI1MjAsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAogICAgaWYgKFRZ UEVfTkFNRSAodHlwZSkpCiAgICAgIFRZUEVfTkFNRSAobmV3X3R5cGUpID0geHN0cmR1cCAoVFlQ RV9OQU1FICh0eXBlKSk7CiAgICBpZiAoVFlQRV9UQUdfTkFNRSAodHlwZSkpCi1AQCAtMzQ2Niwx MiArMzYyNiw0OCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwKK0BAIC0zNjk0LDEyICszODUzLDQ4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLAogICAgVFlQRV9JTlNUQU5DRV9GTEFHUyAobmV3X3R5cGUpID0gVFlQ RV9JTlNUQU5DRV9GTEFHUyAodHlwZSk7CiAgICBUWVBFX0xFTkdUSCAobmV3X3R5cGUpID0gVFlQ RV9MRU5HVEggKHR5cGUpOwogIApAQCAtMjc4NSw3ICsyNTY5LDcgQEAgaW5kZXggZDE5YzU5My4u Mzk5NTkxMyAxMDA2NDQKICAgICAgICBUWVBFX0ZJRUxEUyAobmV3X3R5cGUpID0gWENBTExPQyAo bmZpZWxkcywgc3RydWN0IGZpZWxkKTsKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmZpZWxkczsg aSsrKQogIAl7Ci1AQCAtMzQ4MCw4ICszNjc2LDggQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzcwOCw4ICszOTAzLDggQEAgY29weV90eXBlX3Jl Y3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgCSAgVFlQRV9GSUVMRF9CSVRTSVpF IChuZXdfdHlwZSwgaSkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGkpOwogIAkgIGlmIChU WVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpKQogIAkgICAgVFlQRV9GSUVMRF9UWVBFIChuZXdfdHlw ZSwgaSkKQEAgLTI3OTYsNyArMjU4MCw3IEBAIGluZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0 CiAgCSAgaWYgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSkpCiAgCSAgICBUWVBFX0ZJRUxEX05B TUUgKG5ld190eXBlLCBpKSA9IAogIAkgICAgICB4c3RyZHVwIChUWVBFX0ZJRUxEX05BTUUgKHR5 cGUsIGkpKTsKLUBAIC0zNTEyLDI0ICszNzA4LDE4NCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zNzQwLDI0ICszOTM1LDE4NCBAQCBjb3B5X3R5 cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJfQogICAgICB9CiAgCkBA IC0yOTg4LDcgKzI3NzIsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAogICAgLyog TWF5YmUgY29weSB0aGUgdHlwZV9zcGVjaWZpYyBiaXRzLgogIAogICAgICAgTk9URSBkcm93LzIw MDUtMTItMDk6IFdlIGRvIG5vdCBjb3B5IHRoZSBDKystc3BlY2lmaWMgYml0cyBsaWtlCi1AQCAt MzU0Niw2ICszOTAyLDE3IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAorQEAgLTM3NzQsNiArNDEyOSwxNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgCkBAIC0zMDA2 LDcgKzI3OTAsNyBAQCBpbmRleCBkMTljNTkzLi4zOTk1OTEzIDEwMDY0NAogIC8qIE1ha2UgYSBj b3B5IG9mIHRoZSBnaXZlbiBUWVBFLCBleGNlcHQgdGhhdCB0aGUgcG9pbnRlciAmIHJlZmVyZW5j ZQogICAgIHR5cGVzIGFyZSBub3QgcHJlc2VydmVkLgogICAgIAotQEAgLTQxMTAsNiArNDQ3Nywx MyBAQCB2b2lkCitAQCAtNDMzMCw2ICs0Njk2LDEzIEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9nZGJ0 eXBlcyAodm9pZCkKICB7CiAgICBnZGJ0eXBlc19kYXRhID0gZ2RiYXJjaF9kYXRhX3JlZ2lzdGVy X3Bvc3RfaW5pdCAoZ2RidHlwZXNfcG9zdF9pbml0KTsKQEAgLTMwMjEsNyArMjgwNSw3IEBAIGlu ZGV4IGQxOWM1OTMuLjM5OTU5MTMgMTAwNjQ0CiAgCiAgICBhZGRfc2V0c2hvd196dWludGVnZXJf Y21kICgib3ZlcmxvYWQiLCBub19jbGFzcywgJm92ZXJsb2FkX2RlYnVnLAogZGlmZiAtLWdpdCBh L2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKLWluZGV4IDBjYTdhODcuLmM2MDI5ZGMg MTAwNjQ0CitpbmRleCA2MWRkZWZmLi5mYzZmMjc2IDEwMDY0NAogLS0tIGEvZ2RiL2dkYnR5cGVz LmgKICsrKyBiL2dkYi9nZGJ0eXBlcy5oCiBAQCAtMjI2LDYgKzIyNiwxMSBAQCBlbnVtIHR5cGVf aW5zdGFuY2VfZmxhZ192YWx1ZQpAQCAtMzIxMiw3ICsyOTk2LDcgQEAgaW5kZXggMGNhN2E4Ny4u YzYwMjlkYyAxMDA2NDQKICAKICAvKiBDKysgKi8KICAKLUBAIC0xNTI5LDYgKzE2MzQsMTggQEAg ZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHR5cGUgKiwKK0BAIC0xNTMzLDYgKzE2MzgsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpj cmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICAg ICAgIHN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX2FycmF5X3Jh bmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIExPTkdFU1QsIExPTkdFU1QpOwogIApAQCAtMzIzMSw3 ICszMDE1LDcgQEAgaW5kZXggMGNhN2E4Ny4uYzYwMjlkYyAxMDA2NDQKICBleHRlcm4gc3RydWN0 IHR5cGUgKmNyZWF0ZV9zdHJpbmdfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwK ICAJCQkJCXN0cnVjdCB0eXBlICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX3N0cmlu Z19yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAqLCBMT05HRVNULCBMT05HRVNUKTsKLUBAIC0xNTc0 LDYgKzE2OTEsMTAgQEAgZXh0ZXJuIGludCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0cnVjdCB0eXBl ICosIHN0cnVjdCB0eXBlICopOworQEAgLTE1NzgsNiArMTY5NSwxMCBAQCBleHRlcm4gaW50IGlz X3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKik7CiAgCiAgZXh0 ZXJuIGludCBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAq KTsKICAKQEAgLTMyNDIsNyArMzAyNiw3IEBAIGluZGV4IDBjYTdhODcuLmM2MDI5ZGMgMTAwNjQ0 CiAgLyogT3ZlcmxvYWQgcmVzb2x1dGlvbiAqLwogIAogICNkZWZpbmUgTEVOR1RIX01BVENIKGJ2 KSAoKGJ2KS0+cmFua1swXSkKLUBAIC0xNjUyLDggKzE3NzMsNyBAQCBleHRlcm4gdm9pZCBtYWlu dGVuYW5jZV9wcmludF90eXBlIChjaGFyICosIGludCk7CitAQCAtMTY1Niw4ICsxNzc3LDcgQEAg ZXh0ZXJuIHZvaWQgbWFpbnRlbmFuY2VfcHJpbnRfdHlwZSAoY2hhciAqLCBpbnQpOwogIAogIGV4 dGVybiBodGFiX3QgY3JlYXRlX2NvcGllZF90eXBlc19oYXNoIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSk7CiAgCkBAIC0zMjUzLDcgKzMwMzcsNyBAQCBpbmRleCAwY2E3YTg3Li5jNjAyOWRjIDEw MDY0NAogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlw ZSAqdHlwZSk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4IDY3 N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0CitpbmRleCAwYzgzNDllLi5hMDdmNDFhIDEwMDY0NAogLS0t IGEvZ2RiL21haW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAgLTM3LDYgKzM3LDcgQEAKQEAgLTMy NjQsNyArMzA0OCw3IEBAIGluZGV4IDY3N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0CiAgI2luY2x1ZGUg InNvdXJjZS5oIgogICNpbmNsdWRlICJjbGkvY2xpLWNtZHMuaCIKICAjaW5jbHVkZSAicHl0aG9u L3B5dGhvbi5oIgotQEAgLTMxOCw2ICszMTksOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRh KQorQEAgLTMyNSw2ICszMjYsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogICAgY2hh ciAqY2RhcmcgPSBOVUxMOwogICAgY2hhciAqdHR5YXJnID0gTlVMTDsKICAKQEAgLTMyNzMsNyAr MzA1Nyw3IEBAIGluZGV4IDY3N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0CiAgICAvKiBUaGVzZSBhcmUg c3RhdGljIHNvIHRoYXQgd2UgY2FuIHRha2UgdGhlaXIgYWRkcmVzcyBpbiBhbgogICAgICAgaW5p dGlhbGl6ZXIuICAqLwogICAgc3RhdGljIGludCBwcmludF9oZWxwOwotQEAgLTUxNywxMCArNTIw LDE0IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNTMxLDEwICs1MzQsMTQgQEAg Y2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7ImFyZ3MiLCBub19hcmd1bWVudCwg JnNldF9hcmdzLCAxfSwKICAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ2wnfSwK ICAgICAgICB7InJldHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwgJnJldHVybl9jaGls ZF9yZXN1bHQsIDF9LApAQCAtMzI4OSw3ICszMDczLDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBiODQ5 ZSAxMDA2NDQKICAgICAgICB7CiAgCWludCBvcHRpb25faW5kZXg7CiAgCi1AQCAtNTM4LDYgKzU0 NSw5IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNTUyLDYgKzU1OSw5IEBAIGNh cHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgCSAgY2FzZSAwOgogIAkgICAgLyogTG9uZyBvcHRp b24gdGhhdCBqdXN0IHNldHMgYSBmbGFnLiAgKi8KICAJICAgIGJyZWFrOwpAQCAtMzI5OSw3ICsz MDgzLDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBiODQ5ZSAxMDA2NDQKICAJICBjYXNlIE9QVF9TRToK ICAJICAgIHN5bWFyZyA9IG9wdGFyZzsKICAJICAgIGV4ZWNhcmcgPSBvcHRhcmc7Ci1AQCAtNzQ3 LDcgKzc1NywzMSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTc2MSw3ICs3NzEs MzEgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAKICAgIC8qIE5vdyB0aGF0IGdkYl9p bml0IGhhcyBjcmVhdGVkIHRoZSBpbml0aWFsIGluZmVyaW9yLCB3ZSdyZSBpbgogICAgICAgcG9z aXRpb24gdG8gc2V0IGFyZ3MgZm9yIHRoYXQgaW5mZXJpb3IuICAqLwpAQCAtMzMzMiw3ICszMTE2 LDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBiODQ5ZSAxMDA2NDQKICAgICAgewogICAgICAgIC8qIFRo ZSByZW1haW5pbmcgb3B0aW9ucyBhcmUgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zIGZvciB0aGUK ICAJIGluZmVyaW9yLiAgVGhlIGZpcnN0IG9uZSBpcyB0aGUgc3ltL2V4ZWMgZmlsZSwgYW5kIHRo ZSByZXN0Ci1AQCAtMTAzNyw3ICsxMDcxLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK K0BAIC0xMDQ3LDcgKzEwODEsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAogICAg LyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5kIGZpbGVzIGhh dmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0zMzQyLDcgKzMxMjYsNyBAQCBpbmRleCA2Nzdm NTg3Li4zMGI4NDllIDEwMDY0NAogIAogICAgaWYgKGJhdGNoX2ZsYWcpCiAgICAgIHsKLUBAIC0x MDQ4LDEzICsxMDgzLDI1IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtMTA1OCwx MyArMTA5MywyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogICAgLyogU2hvdyB0aW1l IGFuZC9vciBzcGFjZSB1c2FnZS4gICovCiAgICBkb19jbGVhbnVwcyAocHJlX3N0YXRfY2hhaW4p OwogIApAQCAtMzM3NCw3ICszMTU4LDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBiODQ5ZSAxMDA2NDQK ICAgICAgfQogICAgLyogTm8gZXhpdCAtLSBleGl0IGlzIHRocm91Z2ggcXVpdF9jb21tYW5kLiAg Ki8KICB9Ci1AQCAtMTA4OSw2ICsxMTM2LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtKQorQEAgLTEwOTksNiArMTE0NiwxMiBAQCBwcmludF9nZGJfaGVscCAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICBUaGlzIGlz IHRoZSBHTlUgZGVidWdnZXIuICBVc2FnZTpcblxuXAogICAgICBnZGIgW29wdGlvbnNdIFtleGVj dXRhYmxlLWZpbGUgW2NvcmUtZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAgLTMzODcsNyArMzE3 MSw3IEBAIGluZGV4IDY3N2Y1ODcuLjMwYjg0OWUgMTAwNjQ0CiAgICAgIGdkYiBbb3B0aW9uc10g LS1hcmdzIGV4ZWN1dGFibGUtZmlsZSBbaW5mZXJpb3ItYXJndW1lbnRzIC4uLl1cblxuXAogICIp LCBzdHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAotQEAgLTExMzQsNiArMTE4Nywx MyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRyb2w6XG5cblwKK0BAIC0xMTQ0LDYg KzExOTcsMTMgQEAgT3V0cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9sOlxuXG5cCiAgICBm cHV0c191bmZpbHRlcmVkIChfKCJcCiAgICAtLWRieCAgICAgICAgICAgICAgREJYIGNvbXBhdGli aWxpdHkgbW9kZS5cblwKICAgIC0teGRiICAgICAgICAgICAgICBYREIgY29tcGF0aWJpbGl0eSBt b2RlLlxuXApAQCAtMzQwMiw3ICszMTg2LDcgQEAgaW5kZXggNjc3ZjU4Ny4uMzBiODQ5ZSAxMDA2 NDQKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKIGRpZmYgLS1naXQg YS9nZGIvcC12YWxwcmludC5jIGIvZ2RiL3AtdmFscHJpbnQuYwotaW5kZXggMDVkNGM2Zi4uYWNl YzJhMiAxMDA2NDQKK2luZGV4IGE4N2YxZjQuLjBmOTMyNzEgMTAwNjQ0CiAtLS0gYS9nZGIvcC12 YWxwcmludC5jCiArKysgYi9nZGIvcC12YWxwcmludC5jCiBAQCAtMzgsNiArMzgsNyBAQApAQCAt MzQ4MiwxMCArMzI2NiwxMCBAQCBpbmRleCAwNWQ0YzZmLi5hY2VjMmEyIDEwMDY0NAogIAwKICB2 b2lkCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotaW5kZXggMTM2OTlh OC4uN2I5MzBjMSAxMDA2NDQKK2luZGV4IDExNzEyODkuLjJhZmRiODUgMTAwNjQ0CiAtLS0gYS9n ZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKLUBAIC0xNzgwLDYgKzE3ODAsNyBAQCBwYXJz ZXJfZnByaW50ZiAoRklMRSAqeCwgY29uc3QgY2hhciAqeSwgLi4uKQorQEAgLTE3NzMsNiArMTc3 Myw3IEBAIHBhcnNlcl9mcHJpbnRmIChGSUxFICp4LCBjb25zdCBjaGFyICp5LCAuLi4pCiAgCiAg aW50CiAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGlu dCBwb3MsCkBAIC0zNDkzLDcgKzMyNzcsNyBAQCBpbmRleCAxMzY5OWE4Li43YjkzMGMxIDEwMDY0 NAogIAkJCSBpbnQgKCpvYmpmaWxlX2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJ CQkJCSAgICAgIHZvaWQgKmRhdGEpLAogIAkJCSB2b2lkICpkYXRhKQotQEAgLTE4MTksNyArMTgy MCw3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBp bnQgcG9zLAorQEAgLTE4MTIsNyArMTgxMyw3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAkgICAgc3RydWN0IHR5cGUgKnR5cGUg PSBlbHRzW3BvcyArIDIgKyBhcmddLnR5cGU7CiAgCSAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSA9IFRZUEVfT0JKRklMRSAodHlwZSk7CiAgCkBAIC0zNTAyLDcgKzMyODYsNyBAQCBpbmRleCAx MzY5OWE4Li43YjkzMGMxIDEwMDY0NAogIAkgICAgICByZXR1cm4gMTsKICAJICB9CiAgICAgICAg fQotQEAgLTE4MzcsNyArMTgzOCw4IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE4MzAsNyArMTgzMSw4IEBAIG9wZXJhdG9y X2NoZWNrX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAogIAkv KiBDaGVjayBvYmpmaWxlIHdoZXJlIHRoZSB2YXJpYWJsZSBpdHNlbGYgaXMgcGxhY2VkLgogIAkg ICBTWU1CT0xfT0JKX1NFQ1RJT04gKHN5bWJvbCkgbWF5IGJlIE5VTEwuICAqLwpAQCAtMzUxMiw3 ICszMjk2LDcgQEAgaW5kZXggMTM2OTlhOC4uN2I5MzBjMSAxMDA2NDQKICAJICByZXR1cm4gMTsK ICAKICAJLyogQ2hlY2sgb2JqZmlsZSB3aGVyZSBpcyBwbGFjZWQgdGhlIGNvZGUgdG91Y2hpbmcg dGhlIHZhcmlhYmxlLiAgKi8KLUBAIC0xODUwLDI0ICsxODUyLDI3IEBAIG9wZXJhdG9yX2NoZWNr X3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTE4NDMsMjQg KzE4NDUsMjcgQEAgb3BlcmF0b3JfY2hlY2tfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpl eHAsIGludCBwb3MsCiAgCiAgICAvKiBJbnZva2UgY2FsbGJhY2tzIGZvciBUWVBFIGFuZCBPQkpG SUxFIGlmIHRoZXkgd2VyZSBzZXQgYXMgbm9uLU5VTEwuICAqLwogIApAQCAtMzU0OCw3ICszMzMy LDcgQEAgaW5kZXggMTM2OTlhOC4uN2I5MzBjMSAxMDA2NDQKICAJICAgICBpbnQgKCpvYmpmaWxl X2Z1bmMpIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0YSksCiAgCSAgICAgdm9p ZCAqZGF0YSkKICB7Ci1AQCAtMTg4Miw3ICsxODg3LDkgQEAgZXhwX2l0ZXJhdGUgKHN0cnVjdCBl eHByZXNzaW9uICpleHAsCitAQCAtMTg3NSw3ICsxODgwLDkgQEAgZXhwX2l0ZXJhdGUgKHN0cnVj dCBleHByZXNzaW9uICpleHAsCiAgCiAgICAgICAgcG9zID0gZW5kcG9zIC0gb3BsZW47CiAgICAg ICAgaWYgKGV4cC0+bGFuZ3VhZ2VfZGVmbi0+bGFfZXhwX2Rlc2MtPm9wZXJhdG9yX2NoZWNrIChl eHAsIHBvcywKQEAgLTM1NTksNyArMzM0Myw3IEBAIGluZGV4IDEzNjk5YTguLjdiOTMwYzEgMTAw NjQ0CiAgCXJldHVybiAxOwogIAogICAgICAgIGVuZHBvcyA9IHBvczsKLUBAIC0xOTEzLDggKzE5 MjAsMjkgQEAgZXhwX3VzZXNfb2JqZmlsZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0 IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMTkwNiw4ICsxOTEzLDI5IEBAIGV4cF91c2VzX29iamZp bGUgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsK ICAgIGdkYl9hc3NlcnQgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsg PT0gTlVMTCk7CiAgCkBAIC0zNTkxLDcgKzMzNzUsNyBAQCBpbmRleCAxMzY5OWE4Li43YjkzMGMx IDEwMDY0NAogIHZvaWQKICBfaW5pdGlhbGl6ZV9wYXJzZSAodm9pZCkKIGRpZmYgLS1naXQgYS9n ZGIvcGFyc2VyLWRlZnMuaCBiL2dkYi9wYXJzZXItZGVmcy5oCi1pbmRleCA1ZmJhZTBkLi4xZmRh ZDQ2IDEwMDY0NAoraW5kZXggYzNmMjYwNy4uZmEwYWY3YiAxMDA2NDQKIC0tLSBhL2dkYi9wYXJz ZXItZGVmcy5oCiArKysgYi9nZGIvcGFyc2VyLWRlZnMuaAogQEAgLTI0NSw2ICsyNDUsOCBAQCBl eHRlcm4gdm9pZCBvcGVyYXRvcl9sZW5ndGhfc3RhbmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNz aW9uICosIGludCwgaW50ICosCkBAIC0zNjEyLDEwICszMzk2LDEwIEBAIGluZGV4IDVmYmFlMGQu LjFmZGFkNDYgMTAwNjQ0CiAgCQkJCQkJdm9pZCAqZGF0YSksCiAgCQkJICAgdm9pZCAqZGF0YSk7 CiBkaWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYwotaW5kZXggMWNj MjQ4ZC4uZWVmMGM2NiAxMDA2NDQKK2luZGV4IDEwZDNjMjMuLjU3NTlkNWMgMTAwNjQ0CiAtLS0g YS9nZGIvcHJpbnRjbWQuYwogKysrIGIvZ2RiL3ByaW50Y21kLmMKLUBAIC01MSw2ICs1MSw3IEBA CitAQCAtNTAsNiArNTAsNyBAQAogICNpbmNsdWRlICJjbGkvY2xpLXV0aWxzLmgiCiAgI2luY2x1 ZGUgImZvcm1hdC5oIgogICNpbmNsdWRlICJzb3VyY2UuaCIKQEAgLTM2MjMsNyArMzQwNyw3IEBA IGluZGV4IDFjYzI0OGQuLmVlZjBjNjYgMTAwNjQ0CiAgCiAgI2lmZGVmIFRVSQogICNpbmNsdWRl ICJ0dWkvdHVpLmgiCQkvKiBGb3IgdHVpX2FjdGl2ZSBldCBhbC4gICAqLwotQEAgLTk4MCw2ICs5 ODEsMTEgQEAgcHJpbnRfY29tbWFuZF8xIChjb25zdCBjaGFyICpleHAsIGludCB2b2lkcHJpbnQp CitAQCAtOTc5LDYgKzk4MCwxMSBAQCBwcmludF9jb21tYW5kXzEgKGNvbnN0IGNoYXIgKmV4cCwg aW50IHZvaWRwcmludCkKICAgIGVsc2UKICAgICAgdmFsID0gYWNjZXNzX3ZhbHVlX2hpc3Rvcnkg KDApOwogIApAQCAtMzYzNSw3ICszNDE5LDcgQEAgaW5kZXggMWNjMjQ4ZC4uZWVmMGM2NiAxMDA2 NDQKICAgIGlmICh2b2lkcHJpbnQgfHwgKHZhbCAmJiB2YWx1ZV90eXBlICh2YWwpICYmCiAgCQkg ICAgVFlQRV9DT0RFICh2YWx1ZV90eXBlICh2YWwpKSAhPSBUWVBFX0NPREVfVk9JRCkpCiAgICAg IHsKLUBAIC0xMDYxLDYgKzEwNjcsOSBAQCBvdXRwdXRfY29tbWFuZF9jb25zdCAoY29uc3QgY2hh ciAqZXhwLCBpbnQgZnJvbV90dHkpCitAQCAtMTA2MCw2ICsxMDY2LDkgQEAgb3V0cHV0X2NvbW1h bmRfY29uc3QgKGNvbnN0IGNoYXIgKmV4cCwgaW50IGZyb21fdHR5KQogIAogICAgdmFsID0gZXZh bHVhdGVfZXhwcmVzc2lvbiAoZXhwcik7CiAgCkBAIC0zNjQ1LDcgKzM0MjksNyBAQCBpbmRleCAx Y2MyNDhkLi5lZWYwYzY2IDEwMDY0NAogICAgYW5ub3RhdGVfdmFsdWVfYmVnaW4gKHZhbHVlX3R5 cGUgKHZhbCkpOwogIAogICAgZ2V0X2Zvcm1hdHRlZF9wcmludF9vcHRpb25zICgmb3B0cywgZm9y bWF0KTsKLUBAIC0xNDk1LDYgKzE1MDQsMjQgQEAgeF9jb21tYW5kIChjaGFyICpleHAsIGludCBm cm9tX3R0eSkKK0BAIC0xNDk0LDYgKzE1MDMsMjQgQEAgeF9jb21tYW5kIChjaGFyICpleHAsIGlu dCBmcm9tX3R0eSkKICAJc2V0X2ludGVybmFsdmFyIChsb29rdXBfaW50ZXJuYWx2YXIgKCJfXyIp LCBsYXN0X2V4YW1pbmVfdmFsdWUpOwogICAgICB9CiAgfQpAQCAtMzY3MCw3ICszNDU0LDcgQEAg aW5kZXggMWNjMjQ4ZC4uZWVmMGM2NiAxMDA2NDQKICAMCiAgCiAgLyogQWRkIGFuIGV4cHJlc3Np b24gdG8gdGhlIGF1dG8tZGlzcGxheSBjaGFpbi4KLUBAIC0xOTkzLDYgKzIwMjAsMTAgQEAgcHJp bnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3ltYm9sICp2 YXIsCitAQCAtMTk5NSw2ICsyMDIyLDEwIEBAIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29u c3QgY2hhciAqbmFtZSwgc3RydWN0IHN5bWJvbCAqdmFyLAogICAgICAgIHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zIG9wdHM7CiAgCiAgICAgICAgdmFsID0gcmVhZF92YXJfdmFsdWUgKHZhciwg ZnJhbWUpOwpAQCAtMzY4MSw3ICszNDY1LDcgQEAgaW5kZXggMWNjMjQ4ZC4uZWVmMGM2NiAxMDA2 NDQKICAgICAgICBnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7CiAgICAgICAgb3B0cy5k ZXJlZl9yZWYgPSAxOwogICAgICAgIGNvbW1vbl92YWxfcHJpbnQgKHZhbCwgc3RyZWFtLCBpbmRl bnQsICZvcHRzLCBjdXJyZW50X2xhbmd1YWdlKTsKLUBAIC0yNjQ4LDQgKzI2NzksOCBAQCBTaG93 IHByaW50aW5nIG9mIHNvdXJjZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgd2l0aCA8c3ltYm9s Pi4iKSwgTlVMTCwKK0BAIC0yNjUxLDQgKzI2ODIsOCBAQCBTaG93IHByaW50aW5nIG9mIHNvdXJj ZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgd2l0aCA8c3ltYm9sPi4iKSwgTlVMTCwKICAgIGFk ZF9jb20gKCJldmFsIiwgbm9fY2xhc3MsIGV2YWxfY29tbWFuZCwgXygiXAogIENvbnZlcnQgXCJw cmludGYgZm9ybWF0IHN0cmluZ1wiLCBhcmcxLCBhcmcyLCBhcmczLCAuLi4sIGFyZ24gdG9cblwK ICBhIGNvbW1hbmQgbGluZSwgYW5kIGNhbGwgaXQuIikpOwpAQCAtMzkzOCwxOSArMzcyMiwxOSBA QCBpbmRleCAwMDAwMDAwLi5kZWJiM2JiCiArCiArSW5TY29wZSAoKQogZGlmZiAtLWdpdCBhL2dk Yi9weXRob24vcHktdHlwZS5jIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMKLWluZGV4IDMzN2UzMDcu LmJlOTFjNWEgMTAwNjQ0CitpbmRleCAxNmJiNDQyLi44Y2Y2ZGViIDEwMDY0NAogLS0tIGEvZ2Ri L3B5dGhvbi9weS10eXBlLmMKICsrKyBiL2dkYi9weXRob24vcHktdHlwZS5jCi1AQCAtMzEsNiAr MzEsOCBAQAotICNpbmNsdWRlICJiY2FjaGUuaCIKLSAjaW5jbHVkZSAiZHdhcmYybG9jLmgiCitA QCAtMjksNiArMjksOCBAQAorICNpbmNsdWRlICJsYW5ndWFnZS5oIgorICNpbmNsdWRlICJ2ZWMu aCIKICAjaW5jbHVkZSAidHlwZXByaW50LmgiCiArI2luY2x1ZGUgIm9ic2VydmVyLmgiCiArI2lu Y2x1ZGUgImdkYl9hc3NlcnQuaCIKICAKICB0eXBlZGVmIHN0cnVjdCBweXR5X3R5cGVfb2JqZWN0 CiAgewotQEAgLTM5LDExICs0MSwxOSBAQCB0eXBlZGVmIHN0cnVjdCBweXR5X3R5cGVfb2JqZWN0 CitAQCAtMzcsMTEgKzM5LDE5IEBAIHR5cGVkZWYgc3RydWN0IHB5dHlfdHlwZV9vYmplY3QKICAK ICAgIC8qIElmIGEgVHlwZSBvYmplY3QgaXMgYXNzb2NpYXRlZCB3aXRoIGFuIG9iamZpbGUsIGl0 IGlzIGtlcHQgb24gYQogICAgICAgZG91Ymx5LWxpbmtlZCBsaXN0LCByb290ZWQgaW4gdGhlIG9i amZpbGUuICBUaGlzIGxldHMgdXMgY29weSB0aGUKQEAgLTM5NzEsNyArMzc1NSw3IEBAIGluZGV4 IDMzN2UzMDcuLmJlOTFjNWEgMTAwNjQ0CiAgc3RhdGljIFB5VHlwZU9iamVjdCB0eXBlX29iamVj dF90eXBlCiAgICAgIENQWUNIRUNLRVJfVFlQRV9PQkpFQ1RfRk9SX1RZUEVERUYgKCJ0eXBlX29i amVjdCIpOwogIAotQEAgLTExODAsOCArMTE5MCw2MyBAQCB0eXB5X3JpY2hjb21wYXJlIChQeU9i amVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyLCBpbnQgb3ApCitAQCAtMTAyNCw4ICsxMDM0LDYz IEBAIHR5cHlfcmljaGNvbXBhcmUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIsIGlu dCBvcCkKICAKICAMCiAgCkBAIC00MDM1LDcgKzM4MTksNyBAQCBpbmRleCAzMzdlMzA3Li5iZTkx YzVhIDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgc2F2ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0dW0pCiAgewotQEAgLTEyMDIsMTIgKzEyNjcsMTMgQEAg c2F2ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0dW0p CitAQCAtMTA0NiwxMiArMTExMSwxMyBAQCBzYXZlX29iamZpbGVfdHlwZXMgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCB2b2lkICpkYXR1bSkKICAgICAgewogICAgICAgIHR5cGVfb2JqZWN0ICpu ZXh0ID0gb2JqLT5uZXh0OwogIApAQCAtNDA1Myw3ICszODM3LDcgQEAgaW5kZXggMzM3ZTMwNy4u YmU5MWM1YSAxMDA2NDQKICAKICAgICAgICBvYmogPSBuZXh0OwogICAgICB9Ci1AQCAtMTIxOCw0 MyArMTI4NCwyOCBAQCBzYXZlX29iamZpbGVfdHlwZXMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LCB2b2lkICpkYXR1bSkKK0BAIC0xMDYyLDQzICsxMTI4LDI4IEBAIHNhdmVfb2JqZmlsZV90eXBl cyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmRhdHVtKQogIH0KICAKICBzdGF0aWMg dm9pZApAQCAtNDExMSw3ICszODk1LDcgQEAgaW5kZXggMzM3ZTMwNy4uYmU5MWM1YSAxMDA2NDQK ICAKICAvKiBSZXR1cm4gbnVtYmVyIG9mIGZpZWxkcyAoImxlbmd0aCIgb2YgdGhlIGZpZWxkIGRp Y3Rpb25hcnkpLiAgKi8KICAKLUBAIC0xNDc0LDcgKzE1MjUsMTAgQEAgdHlwZV90b190eXBlX29i amVjdCAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtMTMxOCw3ICsxMzY5LDEwIEBAIHR5cGVfdG9f dHlwZV9vYmplY3QgKHN0cnVjdCB0eXBlICp0eXBlKQogIAogICAgdHlwZV9vYmogPSBQeU9iamVj dF9OZXcgKHR5cGVfb2JqZWN0LCAmdHlwZV9vYmplY3RfdHlwZSk7CiAgICBpZiAodHlwZV9vYmop CkBAIC00MTI0LDcgKzM5MDgsNyBAQCBpbmRleCAzMzdlMzA3Li5iZTkxYzVhIDEwMDY0NAogICAg cmV0dXJuIChQeU9iamVjdCAqKSB0eXBlX29iajsKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCi1pbmRleCAwZDg3MjE5Li5jMDE5 MTg0IDEwMDY0NAoraW5kZXggNGFiNzgyZC4uZWVkOTFiODc4IDEwMDY0NAogLS0tIGEvZ2RiL3B5 dGhvbi9weS12YWx1ZS5jCiArKysgYi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMKIEBAIC0yOSw2ICsy OSw3IEBACkBAIC00MTM1LDcgKzM5MTksNyBAQCBpbmRleCAwZDg3MjE5Li5jMDE5MTg0IDEwMDY0 NAogIAogICNpZmRlZiBIQVZFX1BZVEhPTgogIAotQEAgLTEzODUsMTIgKzEzODYsMjggQEAgZ2Ri cHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKQorQEAgLTE1MDMsMTIgKzE1MDQsMjgg QEAgZ2RicHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKQogICAgcmV0dXJuIFB5T2Jq ZWN0X1R5cGVDaGVjayAob2JqLCAmdmFsdWVfb2JqZWN0X3R5cGUpOwogIH0KICAKQEAgLTQxNjUs NyArMzk0OSw3IEBAIGluZGV4IDBkODcyMTkuLmMwMTkxODQgMTAwNjQ0CiAgCQkJCSAoUHlPYmpl Y3QgKikgJnZhbHVlX29iamVjdF90eXBlKTsKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9w eXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKLWluZGV4IDAwMDkyYzcuLmVjNDlmYzkgMTAw NjQ0CitpbmRleCAzMzdjMTcwLi44NzNjMGRjIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRo b24uYwogKysrIGIvZ2RiL3B5dGhvbi9weXRob24uYwogQEAgLTY3LDYgKzY3LDggQEAgc3RhdGlj IGNvbnN0IGNoYXIgKmdkYnB5X3Nob3VsZF9wcmludF9zdGFjayA9IHB5dGhvbl9leGNwX21lc3Nh Z2U7CkBAIC00MTc3LDcgKzM5NjEsNyBAQCBpbmRleCAwMDA5MmM3Li5lYzQ5ZmM5IDEwMDY0NAog ICNpbmNsdWRlICJ0YXJnZXQuaCIKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCiAgI2luY2x1ZGUg Im9ic2VydmVyLmgiCi1AQCAtMTExNiw2ICsxMTE4LDUzIEBAIGdkYnB5X3ByaW50X3N0YWNrICh2 b2lkKQorQEAgLTExMTYsNiArMTExOCw1NiBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkKICAK ICAvKiBSZXR1cm4gdGhlIGN1cnJlbnQgUHJvZ3NwYWNlLgogICAgIFRoZXJlIGFsd2F5cyBpcyBv bmUuICAqLwpAQCAtNDE5NCw5ICszOTc4LDEyIEBAIGluZGV4IDAwMDkyYzcuLmVjNDlmYzkgMTAw NjQ0CiArewogKyAgaWYgKCEgcnVubmluZ19weXRob25fc2NyaXB0IHx8IGluX2NsaSkKICsgICAg cmV0dXJuIFB5RXJyX0Zvcm1hdCAoUHlFeGNfUnVudGltZUVycm9yLCAiY2Fubm90IGludm9rZSBD TEkgcmVjdXJzaXZlbHkiKTsKKysgIAorKyAgaWYgKHVpX291dF9pc19taV9saWtlX3AgKGN1cnJl bnRfdWlvdXQpKQorKyAgICByZXR1cm4gUHlFcnJfRm9ybWF0IChQeUV4Y19SdW50aW1lRXJyb3Is IF8oIkNhbm5vdCBpbnZva2UgQ0xJIGZyb20gTUkuIikpOwogKwogKyAgaW5fY2xpID0gMTsKLSsg IGNsaV9jb21tYW5kX2xvb3AgKCk7CisrICBjdXJyZW50X2ludGVycF9jb21tYW5kX2xvb3AgKCk7 CiArICBpbl9jbGkgPSAwOwogKwogKyAgUHlfUkVUVVJOX05PTkU7CkBAIC00MjMxLDIwICs0MDE4 LDIwIEBAIGluZGV4IDAwMDkyYzcuLmVjNDlmYzkgMTAwNjQ0CiAgCiAgc3RhdGljIFB5T2JqZWN0 ICoKICBnZGJweV9nZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5T2JqZWN0ICp1bnVzZWQxLCBQeU9i amVjdCAqdW51c2VkMikKLUBAIC0xODI2LDYgKzE4NzUsOCBAQCBzdGF0aWMgUHlNZXRob2REZWYg R2RiTWV0aG9kc1tdID0KLSAgICAgIkdldCBhIHZhbHVlIGZyb20gaGlzdG9yeSIgfSwKLSAgIHsg ImV4ZWN1dGUiLCAoUHlDRnVuY3Rpb24pIGV4ZWN1dGVfZ2RiX2NvbW1hbmQsIE1FVEhfVkFSQVJH UyB8IE1FVEhfS0VZV09SRFMsCi0gICAgICJFeGVjdXRlIGEgZ2RiIGNvbW1hbmQiIH0sCitAQCAt MTgzMSw2ICsxODgzLDggQEAgc3RhdGljIFB5TWV0aG9kRGVmIEdkYk1ldGhvZHNbXSA9CisgRXZh bHVhdGUgY29tbWFuZCwgYSBzdHJpbmcsIGFzIGEgZ2RiIENMSSBjb21tYW5kLiAgT3B0aW9uYWxs eSByZXR1cm5zXG5cCisgYSBQeXRob24gU3RyaW5nIGNvbnRhaW5pbmcgdGhlIG91dHB1dCBvZiB0 aGUgY29tbWFuZCBpZiB0b19zdHJpbmcgaXNcblwKKyBzZXQgdG8gVHJ1ZS4iIH0sCiArICB7ICJj bGkiLCBnZGJweV9jbGksIE1FVEhfTk9BUkdTLAogKyAgICAiRW50ZXIgdGhlIGdkYiBDTEkiIH0s CiAgICB7ICJwYXJhbWV0ZXIiLCBnZGJweV9wYXJhbWV0ZXIsIE1FVEhfVkFSQVJHUywKICAgICAg IlJldHVybiBhIGdkYiBwYXJhbWV0ZXIncyB2YWx1ZSIgfSwKICAKIGRpZmYgLS1naXQgYS9nZGIv cHl0aG9uL3B5dGhvbi5oIGIvZ2RiL3B5dGhvbi9weXRob24uaAotaW5kZXggMWExZTVjMi4uMzEy YmU5NCAxMDA2NDQKK2luZGV4IDk2YmY3YzIuLjc5YWQ2YzkgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0 aG9uL3B5dGhvbi5oCiArKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5oCi1AQCAtOTUsNiArOTUsOCBA QCB2b2lkIGV2YWxfcHl0aG9uX2Zyb21fY29udHJvbF9jb21tYW5kIChzdHJ1Y3QgY29tbWFuZF9s aW5lICopOworQEAgLTEwOCw2ICsxMDgsOCBAQCB2b2lkIGV2YWxfcHl0aG9uX2Zyb21fY29udHJv bF9jb21tYW5kIChzdHJ1Y3QgY29tbWFuZF9saW5lICopOwogIAogIHZvaWQgc291cmNlX3B5dGhv bl9zY3JpcHQgKEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTsKICAKQEAgLTQyNTQs MTAgKzQwNDEsMTAgQEAgaW5kZXggMWExZTVjMi4uMzEyYmU5NCAxMDA2NDQKICAJCQkgICAgICBp bnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKICAJCQkgICAgICBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKIGRpZmYgLS1naXQgYS9nZGIvc3RhY2suYyBi L2dkYi9zdGFjay5jCi1pbmRleCBkODlmZjg5Li4zMDFkNTY5IDEwMDY0NAoraW5kZXggMzE0ZTRk YS4uZDA3YTljMiAxMDA2NDQKIC0tLSBhL2dkYi9zdGFjay5jCiArKysgYi9nZGIvc3RhY2suYwot QEAgLTUxMSw2ICs1MTEsMTAgQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVu Yywgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAorQEAgLTUzNyw2ICs1MzcsMTAgQEAgcHJpbnRf ZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l LAogICAgc3RiID0gbWVtX2ZpbGVvcGVuICgpOwogICAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVw X3VpX2ZpbGVfZGVsZXRlIChzdGIpOwogIApAQCAtNDI2OSw3ICs0MDU2LDcgQEAgaW5kZXggZDg5 ZmY4OS4uMzAxZDU2OSAxMDA2NDQKICAgICAgewogICAgICAgIHN0cnVjdCBibG9jayAqYiA9IFNZ TUJPTF9CTE9DS19WQUxVRSAoZnVuYyk7CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YWRhL3BhY2tlZF9hcnJheS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5 LmV4cAotaW5kZXggZTIyY2IzYS4uNWUxNjE4NiAxMDA2NDQKK2luZGV4IGFmYzE0NzUuLjdlOTRj NDkgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAog KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKIEBAIC01Niw1ICs1 NiwxMSBAQCBnZGJfdGVzdF9tdWx0aXBsZSAiJHRlc3QiICIkdGVzdCIgewpAQCAtNTQ0OSw3ICs1 MjM2LDcgQEAgaW5kZXggMDAwMDAwMC4uYjA1NDExZQogKwogK2dkYl90ZXN0ICJwdHlwZSBhcnJh eSIgInR5cGUgPSBjaGFyIFxcXFs3OFxcXF0iICJzZWNvbmQ6IHB0eXBlIGFycmF5IgogZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYXJyYXlpZHguYwotaW5kZXggMmNjOTM1Yi4uMzBjN2Y4NSAxMDA2NDQKK2luZGV4 IDU4YmUwOGMuLjA0ZTM2Y2QgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy cmF5aWR4LmMKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogQEAgLTE3 LDYgKzE3LDEzIEBACkBAIC01NDY3LDcgKzUyNTQsNyBAQCBpbmRleCAyY2M5MzViLi4zMGM3Zjg1 IDEwMDY0NAogIG1haW4gKHZvaWQpCiAgewogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXJyYXlpZHguZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAK LWluZGV4IDM3ZWQ0YzMuLjgyZjMwY2IgMTAwNjQ0CitpbmRleCAzNTQ1NGUzLi42MTQ0ZDM2IDEw MDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAKICsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCiBAQCAtNDksNCArNDksMTIgQEAgZ2Ri X3Rlc3QgInByaW50IGFycmF5IiBcCkBAIC01NTEyLDcgKzUyOTksNyBAQCBpbmRleCAwMDAwMDAw Li5lZWI3Yjg1CiArfSBzdGF0aWNzdHJ1Y3QgPSB7IDEgfTsKIGRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cCBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCiBuZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uNmQ4MmU3MworaW5kZXggMDAwMDAwMC4uMzNjOWU5 NAogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12 YXItZmllbGQtYWRkcmVzcy5leHAKIEBAIC0wLDAgKzEsMjYgQEAKQEAgLTU1MzMsNyArNTMyMCw3 IEBAIGluZGV4IDAwMDAwMDAuLjZkODJlNzMKICsKICtzZXQgdGVzdCBpbnRlcm5hbC12YXItZmll bGQtYWRkcmVzcwogK3NldCBiaW5maWxlICR7dGVzdH0ueAotK2lmICB7IFtnZGJfY29tcGlsZSAi JHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Rlc3R9LmMiICIke29iamRpcn0vJHtzdWJkaXJ9LyR7Ymlu ZmlsZX0iIG9iamVjdCB7ZGVidWd9XSAhPSAiIiB9IHsKKytpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7 c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0fS5jIiAiW3N0YW5kYXJkX291dHB1dF9maWxlICR7Ymlu ZmlsZX1dIiBvYmplY3Qge2RlYnVnfV0gIT0gIiIgfSB7CiArICAgIHVudGVzdGVkICJDb3VsZG4n dCBjb21waWxlIHRlc3QgcHJvZ3JhbSIKICsgICAgcmV0dXJuIC0xCiArfQpAQCAtNjQzOSw3ICs2 MjI2LDcgQEAgaW5kZXggMDAwMDAwMC4uNWZjZGQ4NAogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWlu YXRvciAqLwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0 LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWlu ZGV4IDAwMDAwMDAuLmM0MTE1MWMKK2luZGV4IDAwMDAwMDAuLmJjMzUyMDkKIC0tLSAvZGV2L251 bGwKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRh LWxvY2F0aW9uLmV4cAogQEAgLTAsMCArMSwzNyBAQApAQCAtNjQ3Myw3ICs2MjYwLDcgQEAgaW5k ZXggMDAwMDAwMC4uYzQxMTUxYwogK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LlMKICtzZXQgYmlu ZmlsZSAke3Rlc3RmaWxlfS54CiArCi0raWYgIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtz dWJkaXJ9LyR7c3JjZmlsZX0iICIke29iamRpcn0vJHtzdWJkaXJ9LyR7YmluZmlsZX0iIG9iamVj dCB7bm9kZWJ1Z31dICE9ICIiIH0geworK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7 c3ViZGlyfS8ke3NyY2ZpbGV9IiAiW3N0YW5kYXJkX291dHB1dF9maWxlICR7YmluZmlsZX1dIiBv YmplY3Qge25vZGVidWd9XSAhPSAiIiB9IHsKICsgICAgcmV0dXJuIC0xCiArfQogKwpAQCAtNjYw OSw3ICs2Mzk2LDcgQEAgaW5kZXggMDAwMDAwMC4uOWRiYmYzYwogKwkuYnl0ZQkJMHgwCQkJLyog VGVybWluYXRvciAqLwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt c3VicmFuZ2Utbm8tdHlwZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJh bmdlLW5vLXR5cGUuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uYTEz ZTM0NgoraW5kZXggMDAwMDAwMC4uY2VjNjczYwogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAogQEAgLTAsMCArMSwz OSBAQApAQCAtNjY0Miw3ICs2NDI5LDcgQEAgaW5kZXggMDAwMDAwMC4uYTEzZTM0NgogK3NldCB0 ZXN0ZmlsZSBkdzItc3VicmFuZ2Utbm8tdHlwZQogK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LlMK ICtzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfS54Ci0rc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7 c3ViZGlyfS8ke2V4ZWN1dGFibGV9Cisrc2V0IGJpbmZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxl ICR7ZXhlY3V0YWJsZX1dCiArCiAraWYgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRp cn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIG9iamVjdCB7fV0gIT0gIiIgfSB7CiArICAgIHJl dHVybiAtMQpAQCAtNjc3OCw3ICs2NTY1LDcgQEAgaW5kZXggMDAwMDAwMC4uMjYxY2UxNwogK2Vu ZCBzdWJyb3V0aW5lIGJhcgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHluYW1pYy1vdGhlci1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFt aWMtb3RoZXItZnJhbWUuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u ZmE0MWI4MAoraW5kZXggMDAwMDAwMC4uZTVhODJlZQogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAogQEAgLTAsMCAr MSwzNyBAQApAQCAtNjgwMSw5ICs2NTg4LDkgQEAgaW5kZXggMDAwMDAwMC4uZmE0MWI4MAogK3Nl dCB0ZXN0ZmlsZSAiZHluYW1pYy1vdGhlci1mcmFtZSIKICtzZXQgc3JjZmlsZTEgJHt0ZXN0Zmls ZX0uZjkwCiArc2V0IHNyY2ZpbGUyICR7dGVzdGZpbGV9LXN0dWIuZjkwCi0rc2V0IG9iamZpbGUy ICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tc3R1Yi5vCisrc2V0IG9iamZpbGUyIFtz dGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfS1zdHViLm9dCiArc2V0IGV4ZWN1dGFibGUg JHt0ZXN0ZmlsZX0KLStzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7ZXhlY3V0YWJs ZX0KKytzZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfV0KICsK ICtpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGUyfSIgIiR7 b2JqZmlsZTJ9IiBvYmplY3Qge2Y5MH1dICE9ICIiCiArICAgICB8fCBbZ2RiX2NvbXBpbGUgIiR7 c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlMX0gJHtvYmpmaWxlMn0iICIke2JpbmZpbGV9IiBl eGVjdXRhYmxlIHtkZWJ1ZyBmOTB9XSAhPSAiIiB9IHsKQEAgLTczMzIsNyArNzExOSw3IEBAIGlu ZGV4IDAwMDAwMDAuLjQ3NDdlYTkKICsgIHdyaXRlICgqLCopIGEgICAgICAgICAgICAgICAgICEg YnJlYWstc3RhdGljCiArZW5kCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3Nl bGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKLWluZGV4IGQ3 MDA3MTUuLjZlYmNhMGEgMTAwNjQ0CitpbmRleCAxZDAyNzc5Li5mOWY1YmU0IDEwMDY0NAogLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogQEAgLTkyLDYgKzkyLDEwIEBAIHByb2MgZG9fc3RlcHNf YW5kX25leHRzIHt9IHsKQEAgLTczODAsNyArNzE2Nyw3IEBAIGluZGV4IDAwMDAwMDAuLmViY2Vk M2MKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10 eXBlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAKIG5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi45OWI2Y2M3CitpbmRleCAwMDAwMDAw Li44ODMyNmMwCiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTIt dmFyLXN0YWxlLXR5cGUuZXhwCiBAQCAtMCwwICsxLDU3IEBACkBAIC03NDA5LDcgKzcxOTYsNyBA QCBpbmRleCAwMDAwMDAwLi45OWI2Y2M3CiArCiArc2V0IHRlc3RmaWxlICJtaTItdmFyLXN0YWxl LXR5cGUiCiArc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotK3NldCBiaW5maWxlICR7b2JqZGly fS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKytzZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2Zp bGUgJHt0ZXN0ZmlsZX1dCiAraWYge1tidWlsZF9leGVjdXRhYmxlICR7dGVzdGZpbGV9LmV4cCAk dGVzdGZpbGUgJHNyY2ZpbGVdID09IC0xfSB7CiArICAgIHJldHVybiAtMQogK30KQEAgLTc3NDEs NyArNzUyOCw3IEBAIGluZGV4IDAwMDAwMDAuLjI5NTYwMmQKICsgIHdyaXRlbG4ocyk7IHsgc2V0 IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5LWZyYW1lLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZS5leHAKLWluZGV4IDgwNmRhOTQuLmIyMjIzMWEgMTAwNjQ0CitpbmRleCAzNTE3ODI0Li40ZmEy YmQ4IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAog KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAogQEAgLTk0LDMgKzk0 LDUgQEAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoJ3Jlc3VsdCA9ICVzJyAlIGYwLnJlYWRfdmFy ICgndmFyaWFibGVfd2hpY2hfc3VyZWx5X2RvZXMKQEAgLTc3NTEsMTAgKzc1MzgsMTAgQEAgaW5k ZXggODA2ZGE5NC4uYjIyMjMxYSAxMDA2NDQKICsKICtnZGJfdGVzdCAicHl0aG9uIHByaW50ICgn cmVzdWx0ID0gJXMnICUgKGYwLmJsb2NrICgpKSkiICI8Z2RiLkJsb2NrIG9iamVjdCBhdCAweFxb XFs6eGRpZ2l0OlxdXF0rPiIgInRlc3QgRnJhbWUuYmxvY2siCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS12YWx1ZS5leHAKLWluZGV4IDkxNDJjNzIuLjI4NTUyMjAgMTAwNjQ0CitpbmRleCBlZDMz MmRiLi4wNjQ2NmVjIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZh bHVlLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAotQEAg LTM2Niw2ICszNjYsMTUgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKK0BAIC0z ODUsNiArMzg1LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CiAgICAgICJw cmludCB2YWx1ZSdzIHR5cGUiCiAgfQogIApAQCAtNzc3MCwxOSArNzU1NywxOSBAQCBpbmRleCA5 MTQyYzcyLi4yODU1MjIwIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZhbGlkIHN1 YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUgb2YgdGhl IHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMgc3Vic2Ny aXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTQ5Miw2ICs1MDEsNyBAQCB0ZXN0X3ZhbHVl X2luX2luZmVyaW9yCitAQCAtNTEyLDYgKzUyMSw3IEBAIHRlc3RfdmFsdWVfaW5faW5mZXJpb3IK ICB0ZXN0X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xhenlfc3RyaW5ncwogIHRlc3Rf dmFsdWVfYWZ0ZXJfZGVhdGgKICt0ZXN0X2Nhc3RfcmVncmVzc2lvbgogIAogICMgVGVzdCBlaXRo ZXIgQyBvciBDKysgdmFsdWVzLiAKLSB0ZXN0X3N1YnNjcmlwdF9yZWdyZXNzaW9uICIke2JpbmZp bGV9IiAiYyIKKyAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotaW5kZXggNzBiNzk3ZS4uMzU4OGUxZCAxMDA2NDQKK2lu ZGV4IDI3MTNkZGYuLjUzM2I4MWIgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi1AQCAtMTQzLDYgKzE0MywxMSBA QCBwcm9jIGdkYl91bmxvYWQge30geworQEAgLTE1MCw2ICsxNTAsMTEgQEAgcHJvYyBnZGJfdW5s b2FkIHt9IHsKICAJICAgIHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBleHBfY29udGludWUKICAJfQpA QCAtNzc5NSw3ICs3NTgyLDcgQEAgaW5kZXggNzBiNzk3ZS4uMzU4OGUxZCAxMDA2NDQKICAJICAg IHNlbmRfZ2RiICJ5XG4iCiAgCSAgICBleHBfY29udGludWUKIGRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2xpYi9wYXNjYWwuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAotaW5k ZXggNzg0YWI2Yy4uOWUwYTg0NCAxMDA2NDQKK2luZGV4IDFiNDk0ZWUuLjNiYjhhZDkgMTAwNjQ0 CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRl L2xpYi9wYXNjYWwuZXhwCiBAQCAtMzcsNiArMzcsOSBAQCBwcm9jIHBhc2NhbF9pbml0IHt9IHsK QEAgLTc4MzAsMTAgKzc2MTcsMTAgQEAgaW5kZXggNzg0YWI2Yy4uOWUwYTg0NCAxMDA2NDQKICAg ICAgc2V0IHBhc2NhbF9pbml0X2RvbmUgMQogIH0gICAKIGRpZmYgLS1naXQgYS9nZGIvdG9wLmMg Yi9nZGIvdG9wLmMKLWluZGV4IDMzYTc4ZGEuLjIyOTkyYmEgMTAwNjQ0CitpbmRleCBkMDY4NDUw Li5lMmI0MTEwIDEwMDY0NAogLS0tIGEvZ2RiL3RvcC5jCiArKysgYi9nZGIvdG9wLmMKLUBAIC0z NDIsNiArMzQyLDkgQEAgcHJlcGFyZV9leGVjdXRlX2NvbW1hbmQgKHZvaWQpCitAQCAtMzMxLDYg KzMzMSw5IEBAIHByZXBhcmVfZXhlY3V0ZV9jb21tYW5kICh2b2lkKQogIAogICAgbWFyayA9IHZh bHVlX21hcmsgKCk7CiAgICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX3ZhbHVlX2ZyZWVfdG9fbWFy ayAobWFyayk7CkBAIC03ODQ0LDExICs3NjMxLDExIEBAIGluZGV4IDMzYTc4ZGEuLjIyOTkyYmEg MTAwNjQ0CiAgICAvKiBXaXRoIG11bHRpcGxlIHRocmVhZHMgcnVubmluZyB3aGlsZSB0aGUgb25l IHdlJ3JlIGV4YW1pbmluZyBpcwogICAgICAgc3RvcHBlZCwgdGhlIGRjYWNoZSBjYW4gZ2V0IHN0 YWxlIHdpdGhvdXQgdXMgYmVpbmcgYWJsZSB0byBkZXRlY3QKIGRpZmYgLS1naXQgYS9nZGIvdHlw ZXByaW50LmMgYi9nZGIvdHlwZXByaW50LmMKLWluZGV4IDRlNzA1OTMuLmU4NDAyYTIgMTAwNjQ0 CitpbmRleCAwOTk5M2RkLi45ZmNiM2IzIDEwMDY0NAogLS0tIGEvZ2RiL3R5cGVwcmludC5jCiAr KysgYi9nZGIvdHlwZXByaW50LmMKIEBAIC0zNCw2ICszNCw3IEBACi0gI2luY2x1ZGUgImdkYl9z dHJpbmcuaCIKKyAjaW5jbHVkZSA8c3RyaW5nLmg+CiAgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIK ICAjaW5jbHVkZSAidmFscHJpbnQuaCIKICsjaW5jbHVkZSAiZHdhcmYybG9jLmgiCkBAIC03ODgy LDEwICs3NjY5LDEwIEBAIGluZGV4IDRlNzA1OTMuLmU4NDAyYTIgMTAwNjQ0CiAgCiAgICBnZXRf dXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7CiBkaWZmIC0tZ2l0IGEvZ2RiL3V0aWxzLmMgYi9n ZGIvdXRpbHMuYwotaW5kZXggOTRlYmNlOC4uMjNhNDk4NiAxMDA2NDQKK2luZGV4IGUwNjJlODku Ljc3MzI0MmQgMTAwNjQ0CiAtLS0gYS9nZGIvdXRpbHMuYwogKysrIGIvZ2RiL3V0aWxzLmMKLUBA IC0xNzI1LDYgKzE3MjUsMzYgQEAgc2V0X2JhdGNoX2ZsYWdfYW5kX21ha2VfY2xlYW51cF9yZXN0 b3JlX3BhZ2VfaW5mbyAodm9pZCkKK0BAIC0xNzQ1LDYgKzE3NDUsMzYgQEAgc2V0X2JhdGNoX2Zs YWdfYW5kX21ha2VfY2xlYW51cF9yZXN0b3JlX3BhZ2VfaW5mbyAodm9pZCkKICAgIHJldHVybiBi YWNrX3RvOwogIH0KICAKQEAgLTc5MjMsMTAgKzc3MTAsMTAgQEAgaW5kZXggOTRlYmNlOC4uMjNh NDk4NiAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAogZGlmZiAtLWdpdCBhL2dkYi91dGlscy5oIGIv Z2RiL3V0aWxzLmgKLWluZGV4IDBmNmJiMDYuLjI4MzEzN2UgMTAwNjQ0CitpbmRleCA4YmJjYzVm Li4xMzQyZDY4IDEwMDY0NAogLS0tIGEvZ2RiL3V0aWxzLmgKICsrKyBiL2dkYi91dGlscy5oCi1A QCAtMzg0LDQgKzM4NCw2IEBAIGV4dGVybiBVTE9OR0VTVCBhbGlnbl9kb3duIChVTE9OR0VTVCB2 LCBpbnQgbik7CitAQCAtMzgyLDQgKzM4Miw2IEBAIGV4dGVybiBVTE9OR0VTVCBhbGlnbl9kb3du IChVTE9OR0VTVCB2LCBpbnQgbik7CiAgCiAgZXh0ZXJuIExPTkdFU1QgZ2RiX3NpZ25fZXh0ZW5k IChMT05HRVNUIHZhbHVlLCBpbnQgYml0KTsKICAKQEAgLTc5MzQsNyArNzcyMSw3IEBAIGluZGV4 IDBmNmJiMDYuLjI4MzEzN2UgMTAwNjQ0CiArCiAgI2VuZGlmIC8qIFVUSUxTX0ggKi8KIGRpZmYg LS1naXQgYS9nZGIvdmFsYXJpdGguYyBiL2dkYi92YWxhcml0aC5jCi1pbmRleCAxOGMxNGZjLi4w YTNhM2FhIDEwMDY0NAoraW5kZXggOGU4NjNlMy4uOTdhOGIwZiAxMDA2NDQKIC0tLSBhL2dkYi92 YWxhcml0aC5jCiArKysgYi9nZGIvdmFsYXJpdGguYwogQEAgLTE5NSw3ICsxOTUsMTAgQEAgdmFs dWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05HRVNUIGluZGV4 LCBpbnQgbG93ZXJib3VuZCkKQEAgLTc5NjEsMTggKzc3NDgsMTggQEAgaW5kZXggMThjMTRmYy4u MGEzYTNhYSAxMDA2NDQKICB9CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3Zh bG9wcy5jCi1pbmRleCBhM2FiMjRmLi41M2FmODQyIDEwMDY0NAoraW5kZXggNTM4MmM0OS4uMGRl ODAwOSAxMDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwogKysrIGIvZ2RiL3ZhbG9wcy5jCi1AQCAt NDQsNiArNDQsNyBAQAorQEAgLTQyLDYgKzQyLDcgQEAKKyAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIK ICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKLSAjaW5jbHVkZSAic3ltdGFiLmgiCiAgI2luY2x1ZGUg ImV4Y2VwdGlvbnMuaCIKICsjaW5jbHVkZSAiZHdhcmYybG9jLmgiCiAgCiAgZXh0ZXJuIHVuc2ln bmVkIGludCBvdmVybG9hZF9kZWJ1ZzsKICAvKiBMb2NhbCBmdW5jdGlvbnMuICAqLwotQEAgLTkw Miw2ICs5MDMsNjUgQEAgdmFsdWVfb25lIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC05MDAsNiAr OTAxLDY1IEBAIHZhbHVlX29uZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICByZXR1cm4gdmFsOwog IH0KICAKQEAgLTgwMzgsNyArNzgyNSw3IEBAIGluZGV4IGEzYWIyNGYuLjUzYWY4NDIgMTAwNjQ0 CiAgLyogSGVscGVyIGZ1bmN0aW9uIGZvciB2YWx1ZV9hdCwgdmFsdWVfYXRfbGF6eSwgYW5kIHZh bHVlX2F0X2xhenlfc3RhY2suICAqLwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgotQEAgLTEz NjYsNyArMTQyNiwxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9sICp2YXIs IGNvbnN0IHN0cnVjdCBibG9jayAqYikKK0BAIC0xMzY1LDcgKzE0MjUsMTggQEAgYWRkcmVzc19v Zl92YXJpYWJsZSAoc3RydWN0IHN5bWJvbCAqdmFyLCBjb25zdCBzdHJ1Y3QgYmxvY2sgKmIpCiAg ICBpZiAoKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAodmFs KSkKICAgICAgICB8fCBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9GVU5DKQogICAgICB7 CkBAIC04MDU4LDcgKzc4NDUsNyBAQCBpbmRleCBhM2FiMjRmLi41M2FmODQyIDEwMDY0NAogIAog ICAgICAgIHJldHVybiB2YWx1ZV9mcm9tX3BvaW50ZXIgKGxvb2t1cF9wb2ludGVyX3R5cGUgKHR5 cGUpLCBhZGRyKTsKICAgICAgfQotQEAgLTE0NzMsNiArMTU0NCw3IEBAIHN0cnVjdCB2YWx1ZSAq CitAQCAtMTQ3Miw2ICsxNTQzLDcgQEAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9jb2VyY2VfYXJy YXkgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKQEAgLTgwNjYsNyArNzg1Myw3IEBAIGluZGV4 IGEzYWIyNGYuLjUzYWY4NDIgMTAwNjQ0CiAgCiAgICAvKiBJZiB0aGUgdXNlciB0cmllcyB0byBk byBzb21ldGhpbmcgcmVxdWlyaW5nIGEgcG9pbnRlciB3aXRoIGFuCiAgICAgICBhcnJheSB0aGF0 IGhhcyBub3QgeWV0IGJlZW4gcHVzaGVkIHRvIHRoZSB0YXJnZXQsIHRoZW4gdGhpcyB3b3VsZAot QEAgLTE0ODIsOCArMTU1NCwxMiBAQCB2YWx1ZV9jb2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAq YXJnMSkKK0BAIC0xNDgxLDggKzE1NTMsMTIgQEAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3Qg dmFsdWUgKmFyZzEpCiAgICBpZiAoVkFMVUVfTFZBTCAoYXJnMSkgIT0gbHZhbF9tZW1vcnkpCiAg ICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiB2YWx1ZSBub3QgbG9jYXRl ZCBpbiBtZW1vcnkuIikpOwogIApAQCAtODA4MCw3ICs3ODY3LDcgQEAgaW5kZXggYTNhYjI0Zi4u NTNhZjg0MiAxMDA2NDQKICB9CiAgCiAgLyogR2l2ZW4gYSB2YWx1ZSB3aGljaCBpcyBhIGZ1bmN0 aW9uLCByZXR1cm4gYSB2YWx1ZSB3aGljaCBpcyBhIHBvaW50ZXIKLUBAIC0zNTU4LDYgKzM2MzQs OCBAQCB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQg bGVuZ3RoKQorQEAgLTM1NzEsNiArMzY0Nyw4IEBAIHZhbHVlX3NsaWNlIChzdHJ1Y3QgdmFsdWUg KmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCiAgCQkJCQlUWVBFX1RBUkdFVF9UWVBF IChyYW5nZV90eXBlKSwKICAJCQkJCWxvd2JvdW5kLCAKICAJCQkJCWxvd2JvdW5kICsgbGVuZ3Ro IC0gMSk7CkBAIC04MDkwLDcgKzc4NzcsNyBAQCBpbmRleCBhM2FiMjRmLi41M2FmODQyIDEwMDY0 NAogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VU X1RZUEUgKGFycmF5X3R5cGUpOwogZGlmZiAtLWdpdCBhL2dkYi92YWxwcmludC5jIGIvZ2RiL3Zh bHByaW50LmMKLWluZGV4IDc1M2FlMzQuLjZkODdkOWMgMTAwNjQ0CitpbmRleCAwMTg4OWM1Li5l MjVlM2M4IDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHByaW50LmMKICsrKyBiL2dkYi92YWxwcmludC5j CiBAQCAtMzcsNiArMzcsNyBAQApAQCAtODEwMSw3ICs3ODg4LDcgQEAgaW5kZXggNzUzYWUzNC4u NmQ4N2Q5YyAxMDA2NDQKICAKICAjaW5jbHVkZSA8ZXJybm8uaD4KICAKLUBAIC0yOTAsNyArMjkx LDYgQEAgc2NhbGFyX3R5cGVfcCAoc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtMjkwLDcgKzI5MSw2 IEBAIHZhbF9wcmludF9zY2FsYXJfdHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgY2Fz ZSBUWVBFX0NPREVfU1RSVUNUOgogICAgICBjYXNlIFRZUEVfQ09ERV9VTklPTjoKICAgICAgY2Fz ZSBUWVBFX0NPREVfU0VUOgpAQCAtODEwOSw3ICs3ODk2LDcgQEAgaW5kZXggNzUzYWUzNC4uNmQ4 N2Q5YyAxMDA2NDQKICAgICAgICByZXR1cm4gMDsKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1 cm4gMTsKLUBAIC0xNjA3LDYgKzE2MDcsNyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0 cnVjdCB0eXBlICp0eXBlLAorQEAgLTE2MjUsNiArMTYyNSw3IEBAIHZhbF9wcmludF9hcnJheV9l bGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCiAgewogICAgdW5zaWduZWQgaW50IHRoaW5nc19w cmludGVkID0gMDsKICAgIHVuc2lnbmVkIGxlbjsKQEAgLTgxMTcsNyArNzkwNCw3IEBAIGluZGV4 IDc1M2FlMzQuLjZkODdkOWMgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKmluZGV4 X3R5cGU7CiAgICB1bnNpZ25lZCBlbHRsZW47CiAgICAvKiBQb3NpdGlvbiBvZiB0aGUgYXJyYXkg ZWxlbWVudCB3ZSBhcmUgZXhhbWluaW5nIHRvIHNlZQotQEAgLTE2MTUsOSArMTYxNiwzMyBAQCB2 YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTE2MzMsOSAr MTYzNCwzMyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0eXBlLAog ICAgLyogTnVtYmVyIG9mIHJlcGV0aXRpb25zIHdlIGhhdmUgZGV0ZWN0ZWQgc28gZmFyLiAgKi8K ICAgIHVuc2lnbmVkIGludCByZXBzOwogICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7 CkBAIC04MTUzLDcgKzc5NDAsNyBAQCBpbmRleCA3NTNhZTM0Li42ZDg3ZDljIDEwMDY0NAogICAg aW5kZXhfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCiAgICBpZiAoZ2V0X2FycmF5 X2JvdW5kcyAodHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpKQotQEAgLTE3MDQsNiArMTcy OSw4IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAt MTcyMiw2ICsxNzQ3LDggQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAq dHlwZSwKICAgICAgewogICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIi4uLiIpOwog ICAgICB9CkBAIC04MTYzLDcgKzc5NTAsNyBAQCBpbmRleCA3NTNhZTM0Li42ZDg3ZDljIDEwMDY0 NAogIAogIC8qIFJlYWQgTEVOIGJ5dGVzIG9mIHRhcmdldCBtZW1vcnkgYXQgYWRkcmVzcyBNRU1B RERSLCBwbGFjaW5nIHRoZQogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIvZ2RiL3ZhbHVlLmMK LWluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CitpbmRleCA4NTQyMzE2Li5mNzVjZjM3IDEw MDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmMKICsrKyBiL2dkYi92YWx1ZS5jCiBAQCAtNDMsNiArNDMs NyBAQApAQCAtODE3NCw3ICs3OTYxLDcgQEAgaW5kZXggOGQ2MzVjNy4uY2NlODdjNiAxMDA2NDQK ICAKICAvKiBQcm90b3R5cGVzIGZvciBleHBvcnRlZCBmdW5jdGlvbnMuICAqLwogIAotQEAgLTE0 NDgsMTIgKzE0NDksMTUgQEAgdm9pZAorQEAgLTE2MjMsMTIgKzE2MjQsMTUgQEAgdm9pZAogIHNl dF92YWx1ZV9jb21wb25lbnRfbG9jYXRpb24gKHN0cnVjdCB2YWx1ZSAqY29tcG9uZW50LAogIAkJ CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqd2hvbGUpCiAgewpAQCAtODE5MCw3ICs3OTc3LDcg QEAgaW5kZXggOGQ2MzVjNy4uY2NlODdjNiAxMDA2NDQKICAgIGlmICh3aG9sZS0+bHZhbCA9PSBs dmFsX2NvbXB1dGVkKQogICAgICB7CiAgICAgICAgY29uc3Qgc3RydWN0IGx2YWxfZnVuY3MgKmZ1 bmNzID0gd2hvbGUtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTE0NjEsNiArMTQ2NSwx MiBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVu dCwKK0BAIC0xNjM2LDYgKzE2NDAsMTIgQEAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAo c3RydWN0IHZhbHVlICpjb21wb25lbnQsCiAgICAgICAgaWYgKGZ1bmNzLT5jb3B5X2Nsb3N1cmUp CiAgICAgICAgICBjb21wb25lbnQtPmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1cmUgPSBmdW5jcy0+ Y29weV9jbG9zdXJlICh3aG9sZSk7CiAgICAgIH0KQEAgLTgyMDMsNyArNzk5MCw3IEBAIGluZGV4 IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiAgfQogIAogIAwKLUBAIC0xNTk0LDYgKzE2MDQsMzEg QEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAsIGludCBmcm9tX3R0eSkKK0BAIC0xNzY5LDYg KzE3NzksMzEgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9leHAsIGludCBmcm9tX3R0eSkKICAg ICAgICBudW1fZXhwWzFdID0gJ1wwJzsKICAgICAgfQogIH0KQEAgLTgyMzUsNyArODAyMiw3IEBA IGluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiAgDAogIC8qIEludGVybmFsIHZhcmlhYmxl cy4gIFRoZXNlIGFyZSB2YXJpYWJsZXMgd2l0aGluIHRoZSBkZWJ1Z2dlcgogICAgIHRoYXQgaG9s ZCB2YWx1ZXMgYXNzaWduZWQgYnkgZGVidWdnZXIgY29tbWFuZHMuCi1AQCAtMjEyOSw2ICsyMTY0 LDM4IEBAIGNhbGxfaW50ZXJuYWxfZnVuY3Rpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAor QEAgLTIzMDQsNiArMjMzOSwzOCBAQCBjYWxsX2ludGVybmFsX2Z1bmN0aW9uIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKICAgIHJldHVybiAoKmlmbi0+aGFuZGxlcikgKGdkYmFyY2gsIGxhbmd1 YWdlLCBpZm4tPmNvb2tpZSwgYXJnYywgYXJndik7CiAgfQogIApAQCAtODI3NCw3ICs4MDYxLDcg QEAgaW5kZXggOGQ2MzVjNy4uY2NlODdjNiAxMDA2NDQKICAvKiBUaGUgJ2Z1bmN0aW9uJyBjb21t YW5kLiAgVGhpcyBkb2VzIG5vdGhpbmcgLS0gaXQgaXMganVzdCBhCiAgICAgcGxhY2Vob2xkZXIg dG8gbGV0ICJoZWxwIGZ1bmN0aW9uIE5BTUUiIHdvcmsuICBUaGlzIGlzIGFsc28gdXNlZCBhcwog ICAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3ViLWNvbW1hbmQgdGhhdCBpcyBjcmVhdGVk IHdoZW4KLUBAIC0yMTc2LDExICsyMjQzLDEwIEBAIHByZXNlcnZlX29uZV92YWx1ZSAoc3RydWN0 IHZhbHVlICp2YWx1ZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMjM1MSwxMSArMjQx OCwxMCBAQCBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLAogIAkJICAgIGh0YWJfdCBjb3BpZWRfdHlwZXMpCiAgewogICAgaWYg KFRZUEVfT0JKRklMRSAodmFsdWUtPnR5cGUpID09IG9iamZpbGUpCkBAIC04Mjg4LDcgKzgwNzUs NyBAQCBpbmRleCA4ZDYzNWM3Li5jY2U4N2M2IDEwMDY0NAogIAkJCQkJCSBjb3BpZWRfdHlwZXMp OwogIH0KICAKLUBAIC0yMTk1LDcgKzIyNjEsNyBAQCBwcmVzZXJ2ZV9vbmVfaW50ZXJuYWx2YXIg KHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0y MzcwLDcgKzI0MzYsNyBAQCBwcmVzZXJ2ZV9vbmVfaW50ZXJuYWx2YXIgKHN0cnVjdCBpbnRlcm5h bHZhciAqdmFyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAgICAgY2FzZSBJTlRFUk5BTFZB Ul9JTlRFR0VSOgogICAgICAgIGlmICh2YXItPnUuaW50ZWdlci50eXBlICYmIFRZUEVfT0JKRklM RSAodmFyLT51LmludGVnZXIudHlwZSkgPT0gb2JqZmlsZSkKICAJdmFyLT51LmludGVnZXIudHlw ZQpAQCAtODI5Nyw3ICs4MDg0LDcgQEAgaW5kZXggOGQ2MzVjNy4uY2NlODdjNiAxMDA2NDQKICAg ICAgICBicmVhazsKICAKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9WQUxVRToKLUBAIC0zMzA4LDEw ICszMzc0LDI3IEBAIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsIHN0cnVjdCB0eXBlICplbmNfdHlwZSwKK0BAIC0zNDc5LDEwICszNTQ1LDI3IEBAIHJl YWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCB0 eXBlICplbmNfdHlwZSwKICBzdHJ1Y3QgdmFsdWUgKgogIGNvZXJjZV9yZWYgKHN0cnVjdCB2YWx1 ZSAqYXJnKQogIHsKQEAgLTgzMjYsNyArODExMyw3IEBAIGluZGV4IDhkNjM1YzcuLmNjZTg3YzYg MTAwNjQ0CiAgICByZXR2YWwgPSBjb2VyY2VfcmVmX2lmX2NvbXB1dGVkIChhcmcpOwogICAgaWYg KHJldHZhbCkKICAgICAgcmV0dXJuIHJldHZhbDsKLUBAIC0zNDE5LDcgKzM1MDIsOCBAQCBpbnQK K0BAIC0zNTkwLDcgKzM2NzMsOCBAQCBpbnQKICB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFs dWUgKnZhbCkKICB7CiAgICBnZGJfYXNzZXJ0ICh2YWx1ZV9sYXp5ICh2YWwpKTsKQEAgLTgzMzYs NyArODEyMyw3IEBAIGluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiAgICBpZiAodmFsdWVf Yml0c2l6ZSAodmFsKSkKICAgICAgewogICAgICAgIC8qIFRvIHJlYWQgYSBsYXp5IGJpdGZpZWxk LCByZWFkIHRoZSBlbnRpcmUgZW5jbG9zaW5nIHZhbHVlLiAgVGhpcwotQEAgLTM0NTQsMTMgKzM1 MzgsMjQgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCitAQCAtMzYyNSwx MyArMzcwOSwyNCBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKICAgICAg fQogICAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKICAgICAgewpA QCAtODM2NywxMCArODE1NCwxMCBAQCBpbmRleCA4ZDYzNWM3Li5jY2U4N2M2IDEwMDY0NAogICAg ICB9CiAgICBlbHNlIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfcmVnaXN0ZXIpCiAgICAg IHsKLUBAIC0zNTk5LDQgKzM2OTQsMTAgQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0aWFsaXpl ZC4iKSk7Ci0gICBhZGRfcHJlZml4X2NtZCAoImZ1bmN0aW9uIiwgbm9fY2xhc3MsIGZ1bmN0aW9u X2NvbW1hbmQsIF8oIlwKLSBQbGFjZWhvbGRlciBjb21tYW5kIGZvciBzaG93aW5nIGhlbHAgb24g Y29udmVuaWVuY2UgZnVuY3Rpb25zLiIpLAotIAkJICAmZnVuY3Rpb25saXN0LCAiZnVuY3Rpb24g IiwgMCwgJmNtZGxpc3QpOworQEAgLTM4MTQsNCArMzkwOSwxMCBAQCBDaGVjayB3aGV0aGVyIGFu IGV4cHJlc3Npb24gaXMgdm9pZC5cblwKKyBVc2FnZTogJF9pc3ZvaWQgKGV4cHJlc3Npb24pXG5c CisgUmV0dXJuIDEgaWYgdGhlIGV4cHJlc3Npb24gaXMgdm9pZCwgemVybyBvdGhlcndpc2UuIiks CisgCQkJIGlzdm9pZF9pbnRlcm5hbF9mbiwgTlVMTCk7CiArCiArICBtYWtlX2ZpbmFsX2NsZWFu dXAgKHZhbHVlX2hpc3RvcnlfY2xlYW51cCwgTlVMTCk7CiArCkBAIC04Mzc5LDEwICs4MTY2LDEw IEBAIGluZGV4IDhkNjM1YzcuLmNjZTg3YzYgMTAwNjQ0CiArI2VuZGlmCiAgfQogZGlmZiAtLWdp dCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDVlMDBjODkuLmQ5ZWZlM2UgMTAw NjQ0CitpbmRleCA1OTI0YjJmLi5lYWUzNTUzIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmgKICsr KyBiL2dkYi92YWx1ZS5oCi1AQCAtNTQ4LDYgKzU0OCwxMCBAQCBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9mcm9tX2RlY2Zsb2F0IChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC01NzEsNiArNTcx LDEwIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Zyb21fZGVjZmxvYXQgKHN0cnVjdCB0 eXBlICp0eXBlLAogIAkJCQkJICBjb25zdCBnZGJfYnl0ZSAqZGVjYnl0ZXMpOwogIGV4dGVybiBz dHJ1Y3QgdmFsdWUgKnZhbHVlX2Zyb21faGlzdG9yeV9yZWYgKGNoYXIgKiwgY2hhciAqKik7CiAg CgpkaWZmIC0tZ2l0IGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaCBiL2dkYi1h dHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKaW5kZXggNzNlM2Y5Ny4uMWY1OGQzNCAxMDA2 NDQKLS0tIGEvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAorKysgYi9nZGItYXR0 YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCkBAIC0zNywyMiArMzcsMjIgQEAgZ2RiL2dkYnNl cnZlci8KIAkobGludXhfY3JlYXRlX2luZmVyaW9yLCBsaW51eF90cmFjZWZvcmtfY2hpbGQpOiBD YWxsIGl0IGluc3RlYWQgb2YKIAlkaXJlY3QgcHRyYWNlLgogCi1JbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYworSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwkyMDEzLTA4 LTAyIDE2OjMzOjUyLjc2Nzg3MjQxMiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMJMjAxMy0wOC0wMiAxNjozNDoxNi4xMjI5MTA5MzQg KzAyMDAKLUBAIC0yOSw2ICsyOSwxMCBAQAotICNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCi0gI2lu Y2x1ZGUgImdkYl93YWl0LmgiCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9jb21t b24vbGludXgtcHRyYWNlLmMJMjAxNC0wMi0wNiAxNzo0MDozMi41MzAxNDU5NjAgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmMJMjAxNC0wMi0w NiAxNzo0ODoxNi4zMjk2NDQ1MzQgKzAxMDAKK0BAIC0zMiw2ICszMiwxMCBAQAorIAorICNpbmNs dWRlIDxzdGRpbnQuaD4KICAKICsjaWZkZWYgSEFWRV9TRUxJTlVYX1NFTElOVVhfSAogKyMgaW5j bHVkZSA8c2VsaW51eC9zZWxpbnV4Lmg+CiArI2VuZGlmIC8qIEhBVkVfU0VMSU5VWF9TRUxJTlVY X0ggKi8KICsKLSAvKiBGaW5kIGFsbCBwb3NzaWJsZSByZWFzb25zIHdlIGNvdWxkIGZhaWwgdG8g YXR0YWNoIFBJRCBhbmQgYXBwZW5kIHRoZXNlCi0gICAgbmV3bGluZSB0ZXJtaW5hdGVkIHJlYXNv biBzdHJpbmdzIHRvIGluaXRpYWxpemVkIEJVRkZFUi4gICdcMCcgdGVybWluYXRpb24KLSAgICBv ZiBCVUZGRVIgbXVzdCBiZSBkb25lIGJ5IHRoZSBjYWxsZXIuICAqLwotQEAgLTQ4LDYgKzUyLDgg QEAgbGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyAocGlkX3QgcGlkLAorIC8qIFN0b3JlcyB0 aGUgY3VycmVudGx5IHN1cHBvcnRlZCBwdHJhY2Ugb3B0aW9ucy4gIEEgdmFsdWUgb2YKKyAgICAt MSBtZWFucyB3ZSBkaWQgbm90IGNoZWNrIGZvciBmZWF0dXJlcyB5ZXQuICBBIHZhbHVlIG9mIDAg bWVhbnMKKyAgICB0aGVyZSBhcmUgbm8gc3VwcG9ydGVkIGZlYXR1cmVzLiAgKi8KK0BAIC01Niw2 ICs2MCw4IEBAIGxpbnV4X3B0cmFjZV9hdHRhY2hfd2FybmluZ3MgKHBpZF90IHBpZCwKICAgICAg YnVmZmVyX3htbF9wcmludGYgKGJ1ZmZlciwgXygid2FybmluZzogcHJvY2VzcyAlZCBpcyBhIHpv bWJpZSAiCiAgCQkJCSAiLSB0aGUgcHJvY2VzcyBoYXMgYWxyZWFkeSB0ZXJtaW5hdGVkXG4iKSwK ICAJCSAgICAgICAoaW50KSBwaWQpOwpAQCAtNjEsNyArNjEsNyBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2NvbW1vbi9saW51eC1wdHJhY2UuYwogIH0KICAKICAjaWYgZGVm aW5lZCBfX2kzODZfXyB8fCBkZWZpbmVkIF9feDg2XzY0X18KLUBAIC0yMzYsMyArMjQyLDE5IEBA IGxpbnV4X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lkKQorQEAgLTU0MiwzICs1NDgsMTkgQEAg bGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpCiAgCiAgICBsaW51eF9wdHJhY2VfdGVz dF9yZXRfdG9fbnggKCk7CiAgfQpAQCAtODEsMjIgKzgxLDIzIEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvY29tbW9uL2xpbnV4LXB0cmFjZS5jCiArCQkJICIoZ2RiKSBzaGVs bCBzdWRvIHNldHNlYm9vbCBkZW55X3B0cmFjZT0wIikpOwogKyNlbmRpZiAvKiBIQVZFX0xJQlNF TElOVVggKi8KICt9Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbW1vbi9s aW51eC1wdHJhY2UuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbW1vbi9saW51 eC1wdHJhY2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcv Z2RiL2NvbW1vbi9saW51eC1wdHJhY2UuaAkyMDEzLTA4LTAyIDE2OjMzOjUyLjc2ODg3MjQxNCAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb21tb24vbGludXgtcHRyYWNl LmgJMjAxMy0wOC0wMiAxNjozNDoxNi4xMjI5MTA5MzQgKzAyMDAKLUBAIC02OSw1ICs2OSw2IEBA IHN0cnVjdCBidWZmZXI7CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9jb21tb24v bGludXgtcHRyYWNlLmgJMjAxNC0wMi0wNiAxNzo0MDozNS41MDYxNDkxNjIgKzAxMDAKKysrKyBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb21tb24vbGludXgtcHRyYWNlLmgJMjAxNC0wMi0wNiAx Nzo0ODowMC42MDE2Mjc5OTUgKzAxMDAKK0BAIC04NSw2ICs4NSw3IEBAIHN0cnVjdCBidWZmZXI7 CiAgCiAgZXh0ZXJuIHZvaWQgbGludXhfcHRyYWNlX2F0dGFjaF93YXJuaW5ncyAocGlkX3QgcGlk LCBzdHJ1Y3QgYnVmZmVyICpidWZmZXIpOwogIGV4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9pbml0 X3dhcm5pbmdzICh2b2lkKTsKICtleHRlcm4gdm9pZCBsaW51eF9wdHJhY2VfY3JlYXRlX3dhcm5p bmdzIChzdHJ1Y3QgYnVmZmVyICpidWZmZXIpOwotIAotICNlbmRpZiAvKiBDT01NT05fTElOVVhf UFRSQUNFX0ggKi8KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJl LmFjCisgZXh0ZXJuIHZvaWQgbGludXhfZW5hYmxlX2V2ZW50X3JlcG9ydGluZyAocGlkX3QgcGlk KTsKKyBleHRlcm4gaW50IGxpbnV4X3N1cHBvcnRzX3RyYWNlZm9yayAodm9pZCk7CisgZXh0ZXJu IGludCBsaW51eF9zdXBwb3J0c190cmFjZWNsb25lICh2b2lkKTsKK0luZGV4OiBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxMy0wOC0wMiAxNjozNDoxNi4xMjM5 MTA5MzYgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJlLmFj CTIwMTMtMDgtMDIgMTY6MzQ6NDYuNTE5OTYwMDYzICswMjAwCi1AQCAtMjA3MSw2ICsyMDcxLDEw IEBAIGNhc2UgJGhvc3Rfb3MgaW4KKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2Nv bmZpZ3VyZS5hYwkyMDE0LTAyLTA2IDE3OjQwOjMyLjUzMjE0NTk2MiArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE0LTAyLTA2IDE3OjQwOjM1LjUwNzE0 OTE2MyArMDEwMAorQEAgLTE5NzUsNiArMTk3NSwxMCBAQCBjYXNlICRob3N0X29zIGluCiAgZXNh YwogIEFDX0RFRklORV9VTlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAuZ2RiaW5pdCBm aWxlbmFtZS5dKQogIApAQCAtMTA3LDExICsxMDgsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9jb25maWd1cmUuYWMKICBkbmwgSGFuZGxlIG9wdGlvbmFsIGZlYXR1cmVz IHRoYXQgY2FuIGJlIGVuYWJsZWQuCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBp cyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxMy0wOC0wMiAx NjozNDoxNi4xMjQ5MTA5MzggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv Z2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDEzLTA4LTAyIDE2OjM1OjA2LjYzNDk5MTg5MiArMDIw MAotQEAgLTQ3MSw2ICs0NzEsMTAgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE0LTAyLTA2IDE3 OjQwOjMyLjUzMjE0NTk2MiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYnNl cnZlci9jb25maWd1cmUuYWMJMjAxNC0wMi0wNiAxNzo0MDozNS41MDcxNDkxNjMgKzAxMDAKK0BA IC00NTQsNiArNDU0LDEwIEBAIGlmICR3YW50X2lwYSA7IHRoZW4KICAgICBmaQogIGZpCiAgCkBA IC0xMjIsMTEgKzEyMywxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dk YnNlcnZlci9jb25maWd1cmUuYWMKICBBQ19TVUJTVChHREJTRVJWRVJfREVQRklMRVMpCiAgQUNf U1VCU1QoR0RCU0VSVkVSX0xJQlMpCiAgQUNfU1VCU1Qoc3J2X3htbGJ1aWx0aW4pCi1JbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYworSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1s b3cuYwkyMDEzLTA4LTAyIDE2OjMzOjUyLjc3Mjg3MjQyMSArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9nZGJzZXJ2ZXIvbGludXgtbG93LmMJMjAxMy0wOC0wMiAxNjozNDox Ni4xMjY5MTA5NDEgKzAyMDAKLUBAIC02MjIsNiArNjIyLDI5IEBAIGFkZF9sd3AgKHB0aWRfdCBw dGlkKQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxv dy5jCTIwMTQtMDItMDYgMTc6NDA6MzIuNTM0MTQ1OTY0ICswMTAwCisrKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTQtMDItMDYgMTc6NDk6MzIuMzg1 NzI2NTE0ICswMTAwCitAQCAtNTQzLDYgKzU0MywyOSBAQCBhZGRfbHdwIChwdGlkX3QgcHRpZCkK ICAgIHJldHVybiBsd3A7CiAgfQogIApAQCAtMTQwLDcgKzE0MSw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiArCiArICBlcnJubyA9 IDA7CiArICBpZiAocHRyYWNlIChQVFJBQ0VfVFJBQ0VNRSwgMCwKLSsJICAgICAgKFBUUkFDRV9B UkczX1RZUEUpIDAsIChQVFJBQ0VfQVJHNF9UWVBFKSAwKSA9PSAwKQorKwkgICAgICAoUFRSQUNF X1RZUEVfQVJHMykgMCwgKFBUUkFDRV9UWVBFX0FSRzQpIDApID09IDApCiArICAgIHJldHVybjsK ICsKICsgIHNhdmVfZXJybm8gPSBlcnJubzsKQEAgLTE1NiwyOSArMTU3LDIwIEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAgLyogU3Rh cnQgYW4gaW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJucyBpdHMgcGlkLgogICAgIEFMTEFSR1Mg aXMgYSB2ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBhcmdzLiAqLwogIAotQEAgLTY2Miw3ICs2 ODUsNyBAQCBsaW51eF9jcmVhdGVfaW5mZXJpb3IgKGNoYXIgKnByb2dyYW0sIGNoCi0gCitAQCAt NTg0LDcgKzYwNyw3IEBAIGxpbnV4X2NyZWF0ZV9pbmZlcmlvciAoY2hhciAqcHJvZ3JhbSwgY2gK ICAgIGlmIChwaWQgPT0gMCkKICAgICAgewotLSAgICAgIHB0cmFjZSAoUFRSQUNFX1RSQUNFTUUs IDAsIChQVFJBQ0VfQVJHM19UWVBFKSAwLCAoUFRSQUNFX0FSRzRfVFlQRSkgMCk7CisgICAgICAg Y2xvc2VfbW9zdF9mZHMgKCk7CistICAgICAgcHRyYWNlIChQVFJBQ0VfVFJBQ0VNRSwgMCwgKFBU UkFDRV9UWVBFX0FSRzMpIDAsIChQVFJBQ0VfVFlQRV9BUkc0KSAwKTsKICsgICAgICBsaW51eF90 cmFjZW1lIChwcm9ncmFtKTsKICAKICAjaWZuZGVmIF9fQU5EUk9JRF9fIC8qIEJpb25pYyBkb2Vz bid0IHVzZSBTSUdSVE1JTiB0aGUgd2F5IGdsaWJjIGRvZXMuICAqLwogICAgICAgIHNpZ25hbCAo X19TSUdSVE1JTiArIDEsIFNJR19ERkwpOwotQEAgLTQ2ODUsNyArNDcwOCw3IEBAIGxpbnV4X3Ry YWNlZm9ya19ncmFuZGNoaWxkICh2b2lkICphcmcpCi0gc3RhdGljIGludAotIGxpbnV4X3RyYWNl Zm9ya19jaGlsZCAodm9pZCAqYXJnKQotIHsKLS0gIHB0cmFjZSAoUFRSQUNFX1RSQUNFTUUsIDAs IChQVFJBQ0VfQVJHM19UWVBFKSAwLCAoUFRSQUNFX0FSRzRfVFlQRSkgMCk7Ci0rICBsaW51eF90 cmFjZW1lICgiUFRSQUNFX09fVFJBQ0VGT1JLIHRlc3QiKTsKLSAgIGtpbGwgKGdldHBpZCAoKSwg U0lHU1RPUCk7Ci0gCi0gI2lmICEoZGVmaW5lZChfX1VDTElCQ19fKSAmJiBkZWZpbmVkKEhBU19O T01NVSkpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2luZi1wdHJhY2UuYwor SW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2luZi1wdHJhY2UuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2luZi1wdHJhY2UuYwkyMDEzLTA4 LTAyIDE2OjMzOjUyLjc3Mjg3MjQyMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9pbmYtcHRyYWNlLmMJMjAxMy0wOC0wMiAxNjozNDoxNi4xMjY5MTA5NDEgKzAyMDAKLUBA IC0xMDQsNyArMTA0LDE1IEBAIHN0YXRpYyB2b2lkCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAxNC0wMi0wNiAxNzo0MDozMi41MzUxNDU5NjUgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pbmYtcHRyYWNlLmMJMjAxNC0wMi0wNiAxNzo0 MDozNS41MTAxNDkxNjcgKzAxMDAKK0BAIC0xMDUsNyArMTA1LDE1IEBAIHN0YXRpYyB2b2lkCiAg aW5mX3B0cmFjZV9tZSAodm9pZCkKICB7CiAgICAvKiAiVHJhY2UgbWUsIERyLiBNZW1vcnkhIiAg Ki8KQEAgLTE5NCwxMSArMTg2LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvaW5mLXB0cmFjZS5jCiAgfQogIAogIC8qIFN0YXJ0IGEgbmV3IGluZmVyaW9yIFVuaXggY2hp bGQgcHJvY2Vzcy4gIEVYRUNfRklMRSBpcyB0aGUgZmlsZSB0bwotSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMu b3JpZy9nZGIvbGludXgtbmF0LmMJMjAxMy0wOC0wMiAxNjozMzo1Mi43NzQ4NzI0MjQgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbGludXgtbmF0LmMJMjAxMy0wOC0wMiAx NjozNDoxNi4xMjg5MTA5NDQgKzAyMDAKLUBAIC0xNTU0LDYgKzE1NTQsNyBAQCBsaW51eF9uYXRf Y3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi9saW51eC1uYXQuYwkyMDE0LTAyLTA2IDE3OjQwOjMyLjUzNzE0NTk2OCArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xpbnV4LW5hdC5jCTIwMTQtMDItMDYgMTc6NDA6 MzUuNTExMTQ5MTY4ICswMTAwCitAQCAtMTI4Myw2ICsxMjgzLDcgQEAgbGludXhfbmF0X2NyZWF0 ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldAogICNpZmRlZiBIQVZFX1BFUlNPTkFMSVRZCiAgICBp bnQgcGVyc29uYWxpdHlfb3JpZyA9IDAsIHBlcnNvbmFsaXR5X3NldCA9IDA7CiAgI2VuZGlmIC8q IEhBVkVfUEVSU09OQUxJVFkgKi8KQEAgLTIwNiw3ICsxOTgsNyBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2xpbnV4LW5hdC5jCiAgCiAgICAvKiBUaGUgZm9ya19jaGlsZCBt ZWNoYW5pc20gaXMgc3luY2hyb25vdXMgYW5kIGNhbGxzIHRhcmdldF93YWl0LCBzbwogICAgICAg d2UgaGF2ZSB0byBtYXNrIHRoZSBhc3luYyBtb2RlLiAgKi8KLUBAIC0xNTc4LDcgKzE1NzksMTAg QEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldAorQEAgLTEzMDcsNyAr MTMwOCwxMCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0CiAgICAv KiBNYWtlIHN1cmUgd2UgcmVwb3J0IGFsbCBzaWduYWxzIGR1cmluZyBzdGFydHVwLiAgKi8KICAg IGxpbnV4X25hdF9wYXNzX3NpZ25hbHMgKDAsIE5VTEwpOwogIApAQCAtMjE4LDcgKzIxMCw3IEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbGludXgtbmF0LmMKICAKICAjaWZk ZWYgSEFWRV9QRVJTT05BTElUWQogICAgaWYgKHBlcnNvbmFsaXR5X3NldCkKLUBAIC0xNTkwLDYg KzE1OTQsMjQgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0IHRhcmdldAorQEAg LTEzMTksNiArMTMyMywyNCBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFy Z2V0CiAgCQkgc2FmZV9zdHJlcnJvciAoZXJybm8pKTsKICAgICAgfQogICNlbmRpZiAvKiBIQVZF X1BFUlNPTkFMSVRZICovCkBAIC0yNDMsMTEgKzIzNSwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2xpbnV4LW5hdC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1JbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZy5pbgorSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDEzLTA4LTAyIDE2OjI1OjI3LjMzOTA5NzU2MSAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jb25maWcuaW4JMjAxMy0wOC0w MiAxNjozNjoxNi4yNDkwOTk4NDEgKzAyMDAKLUBAIC0yMjUsNiArMjI1LDkgQEAKKy0tLSBnZGIt Ny42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE0LTAyLTA2IDE3OjQwOjMyLjUz ODE0NTk2OSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy5pbgkyMDE0 LTAyLTA2IDE3OjQwOjM1LjUxMTE0OTE2OCArMDEwMAorQEAgLTIxMyw2ICsyMTMsOSBAQAogIC8q IERlZmluZSBpZiBsaWJycG0gbGlicmFyeSBpcyBiZWluZyB1c2VkLiAqLwogICN1bmRlZiBIQVZF X0xJQlJQTQogIApAQCAtMjU3LDcgKzI0OSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaWJ1 bndpbmQtaWE2NC5oPiBoZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9MSUJVTldJTkRfSUE2 NF9ICiAgCi1AQCAtMzcyLDYgKzM3NSw5IEBACitAQCAtMzQ1LDYgKzM0OCw5IEBACiAgLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzYnJrJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFW RV9TQlJLCiAgCkBAIC0yNjcsMTEgKzI1OSwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0 bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRMT0NBTEUKICAKLUluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMub3JpZy9nZGIvY29uZmlndXJlCTIwMTMtMDgtMDIgMTY6MjU6MjcuMzQzMDk3NTY3ICsw MjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NvbmZpZ3VyZQkyMDEzLTA4LTAy IDE2OjM2OjE0LjY2NTA5NzQzNCArMDIwMAotQEAgLTEyODUxLDYgKzEyODUxLDY0IEBAIGNhdCA+ PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2Nv bmZpZ3VyZQkyMDE0LTAyLTA2IDE3OjQwOjMyLjU0MTE0NTk3MiArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2NvbmZpZ3VyZQkyMDE0LTAyLTA2IDE3OjQwOjM1LjUxNTE0OTE3MiAr MDEwMAorQEAgLTEyODYxLDYgKzEyODYxLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK ICBfQUNFT0YKICAKICAKQEAgLTMzNiwyNCArMzI4LDIxIEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvY29uZmlndXJlCiAgCiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9v dCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhfRElSLAogICMgZXhjZXB0IHRoYXQgdGhlIGFyZ3Vt ZW50IHRvIC0td2l0aC1zeXNyb290IGlzIG9wdGlvbmFsLgotSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxMy0wNy0zMSAyMTo0 MTo1NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2Ri c2VydmVyL2NvbmZpZy5pbgkyMDEzLTA4LTAyIDE2OjM2OjIxLjcxOTEwODE0MSArMDIwMAotQEAg LTc2LDYgKzc2LDEyIEBACi0gLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBkbCcgbGli cmFyeSAoLWxkbCkuICovCi0gI3VuZGVmIEhBVkVfTElCREwKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNC0wMi0wNiAxNzo0MDozMi41NDIx NDU5NzMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nZGJzZXJ2ZXIvY29uZmln LmluCTIwMTQtMDItMDYgMTc6NTQ6MDYuOTIzMDIxNzk5ICswMTAwCitAQCAtNzgsNiArNzgsOSBA QAorIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWNoZWNrJyBsaWJyYXJ5ICgtbG1j aGVjaykuICovCisgI3VuZGVmIEhBVkVfTElCTUNIRUNLCiAgCi0rLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIGBtY2hlY2snIGxpYnJhcnkgKC1sbWNoZWNrKS4gKi8KLSsjdW5kZWYgSEFW RV9MSUJNQ0hFQ0sKLSsKICsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbGludXgn IGxpYnJhcnkgKC1sc2VsaW51eCkuICovCiArI3VuZGVmIEhBVkVfTElCU0VMSU5VWAogKwogIC8q IERlZmluZSBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIGJyYW5jaCB0cmFjaW5nLiAqLwogICN1bmRl ZiBIQVZFX0xJTlVYX0JUUkFDRQogIAotQEAgLTE0Niw2ICsxNTIsOSBAQAorQEAgLTE1MSw2ICsx NTQsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVhZGxpbmsnIGZ1bmN0 aW9uLiAqLwogICN1bmRlZiBIQVZFX1JFQURMSU5LCiAgCkBAIC0zNjMsMTEgKzM1MiwxMSBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KICAv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNndHR5Lmg+IGhlYWRlciBmaWxlLiAqLwog ICN1bmRlZiBIQVZFX1NHVFRZX0gKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dk YnNlcnZlci9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy5vcmlnL2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTMtMDctMzEgMjE6NDE6NTQuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYnNlcnZlci9jb25m aWd1cmUJMjAxMy0wOC0wMiAxNjozNjoyMC4yMzcxMDU4OTQgKzAyMDAKLUBAIC02MDAzLDYgKzYw MDMsNjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE0LTAyLTA2IDE3OjQwOjMyLjU0MzE0NTk3NCAr MDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUJMjAx NC0wMi0wNiAxNzo0MDozNS41MTYxNDkxNzMgKzAxMDAKK0BAIC02MTcwLDYgKzYxNzAsNjQgQEAg aWYgJHdhbnRfaXBhIDsgdGhlbgogICAgIGZpCiAgZmkKICAKCmRpZmYgLS1naXQgYS9nZGItYno1 NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9y ZS1ydW4ucGF0Y2gKaW5kZXggNDY2NTBlMy4uZTYwNzNlYiAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQx ODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVm b3JlLXJ1bi5wYXRjaApAQCAtMSwyMCArMSwyMCBAQAotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAz MjMvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS45MS4y MDEzMDMyMy5vcmlnL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTMtMDMtMTEgMDk6MjU6 NTguMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvY29uZmlnL2kz ODYvbGludXg2NC5taAkyMDEzLTAzLTIzIDE5OjQ4OjM3LjcwNzc2MTExNyArMDEwMAotQEAgLTQs NyArNCw3IEBAIE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKLSAJbGlu dXgtbmF0Lm8gbGludXgtb3NkYXRhLm8gXAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDE0LTAyLTA2IDE3OjMwOjIzLjAyMTQ4OTczNiAr MDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJ MjAxNC0wMi0wNiAxNzozMDo0NC45ODQ1MTM0MDMgKzAxMDAKK0BAIC01LDcgKzUsNyBAQCBOQVRE RVBGSUxFUz0gaW5mLXB0cmFjZS5vIGZvcmstY2hpbGQubyBcCiAgCXByb2Mtc2VydmljZS5vIGxp bnV4LXRocmVhZC1kYi5vIGxpbnV4LWZvcmsubyBcCi0gCWxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0 cmFjZS5vIGxpbnV4LWJ0cmFjZS5vCisgCWxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vIGxp bnV4LWJ0cmFjZS5vIFwKKyAJbGludXgtd2FpdHBpZC5vCiAtTkFUX0ZJTEU9IGNvbmZpZy9ubS1s aW51eC5oCiArTkFUX0ZJTEU9IG5tLWxpbnV4NjQuaAogIE5BVF9DREVQUyA9ICQoc3JjZGlyKS9w cm9jLXNlcnZpY2UubGlzdAogIAogICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJ0aHJlYWRf ZGIgbmVlZHMgYWNjZXNzIHRvIHN5bWJvbHMgaW4gdGhlCi1JbmRleDogZ2RiLTcuNS45MS4yMDEz MDMyMy9nZGIvY29uZmlnL2kzODYvbGludXgubWgKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9jb25maWcvaTM4Ni9saW51eC5taAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuOTEuMjAx MzAzMjMub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxMy0wMy0xMSAwOToyNTo1OC4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi9jb25maWcvaTM4Ni9s aW51eC5taAkyMDEzLTAzLTIzIDE5OjQ4OjIyLjc1Nzk5MDI1NiArMDEwMAorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxNC0wMi0wNiAxNzoz MDoxNS44OTM0ODIwNTYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jb25maWcv aTM4Ni9saW51eC5taAkyMDE0LTAyLTA2IDE3OjMwOjIzLjAyMTQ4OTczNiArMDEwMAogQEAgLTEs NiArMSw2IEBACiAgIyBIb3N0OiBJbnRlbCAzODYgcnVubmluZyBHTlUvTGludXguCiAgCkBAIC0y MywxMCArMjMsMTAgQEAgSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL2NvbmZpZy9pMzg2 L2xpbnV4Lm1oCiAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAogIAlp Mzg2LW5hdC5vIGkzODYtbGludXgtbmF0Lm8gXAogIAlwcm9jLXNlcnZpY2UubyBsaW51eC10aHJl YWQtZGIubyBcCi1JbmRleDogZ2RiLTcuNS45MS4yMDEzMDMyMy9nZGIvY29uZmlnL2kzODYvbm0t bGludXguaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy9pMzg2L25tLWxp bnV4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAw MDAwMDAgKzAwMDAKLSsrKyBnZGItNy41LjkxLjIwMTMwMzIzL2dkYi9jb25maWcvaTM4Ni9ubS1s aW51eC5oCTIwMTMtMDMtMjMgMTk6NDg6MjIuNzU3OTkwMjU2ICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDE0LTAyLTA2IDE3OjMwOjIz LjAyMTQ4OTczNiArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIE5hdGl2ZSBzdXBwb3J0IGZv ciBHTlUvTGludXggaTM4Ni4KICsKQEAgLTU2LDEwICs1NiwxMCBAQCBJbmRleDogZ2RiLTcuNS45 MS4yMDEzMDMyMy9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAogKyNkZWZpbmUgdGFyZ2V0X2Nh bl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0eXBlLCBjbnQsIG90KSAxCiArCiArI2VuZGlmIC8q IE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL2NvbmZpZy9p Mzg2L25tLWxpbnV4NjQuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy9p Mzg2L25tLWxpbnV4NjQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL2NvbmZp Zy9pMzg2L25tLWxpbnV4NjQuaAkyMDEzLTAzLTIzIDE5OjQ4OjIyLjc1Nzk5MDI1NiArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDE0 LTAyLTA2IDE3OjMwOjIzLjAyMTQ4OTczNiArMDEwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIE5h dGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggYW1kNjQuCiArCkBAIC04OSwxMSArODksMTEgQEAg SW5kZXg6IGdkYi03LjUuOTEuMjAxMzAzMjMvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAog KyNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0eXBlLCBjbnQsIG90 KSAxCiArCiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdkYi03LjUuOTEuMjAx MzAzMjMvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGFyZ2V0 LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjkxLjIwMTMwMzIzLm9yaWcvZ2RiL3RhcmdldC5o CTIwMTMtMDMtMTEgMDk6NTA6MDUuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuNS45MS4yMDEz MDMyMy9nZGIvdGFyZ2V0LmgJMjAxMy0wMy0yMyAxOTo0ODoyMi43NTg5OTAyMzggKzAxMDAKLUBA IC0xNTYzLDggKzE1NjMsMTAgQEAgZXh0ZXJuIGNoYXIgKnRhcmdldF90aHJlYWRfbmFtZSAoc3Ry dWN0CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90YXJnZXQuaAkyMDE0LTAyLTA2 IDE3OjMwOjE1Ljg5NDQ4MjA1NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rh cmdldC5oCTIwMTQtMDItMDYgMTc6MzA6MjMuMDIyNDg5NzM3ICswMTAwCitAQCAtMTUyMSw4ICsx NTIxLDEwIEBAIGV4dGVybiBjaGFyICp0YXJnZXRfdGhyZWFkX25hbWUgKHN0cnVjdAogICAgIGJw X2hhcmR3YXJlX2JyZWFrcG9pbnQuICBDTlQgaXMgdGhlIG51bWJlciBvZiBzdWNoIHdhdGNocG9p bnRzIHVzZWQgc28gZmFyCiAgICAgKGluY2x1ZGluZyB0aGlzIG9uZT8pLiAgT1RIRVJUWVBFIGlz IHdobyBrbm93cyB3aGF0Li4uICAqLwogIApAQCAtMTA0LDEwICsxMDQsMTAgQEAgSW5kZXg6IGdk Yi03LjUuOTEuMjAxMzAzMjMvZ2RiL3RhcmdldC5oCiAgCiAgLyogUmV0dXJucyB0aGUgbnVtYmVy IG9mIGRlYnVnIHJlZ2lzdGVycyBuZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVuCiAgICAgbWVtb3J5 IHJlZ2lvbiwgb3IgemVybyBpZiBub3Qgc3VwcG9ydGVkLiAgKi8KLUluZGV4OiBnZGItNy41Ljkx LjIwMTMwMzIzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVu LmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93 YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNS45MS4yMDEzMDMy My9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAx My0wMy0yMyAxOTo0ODoyMi43NTg5OTAyMzggKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4cAkyMDE0 LTAyLTA2IDE3OjMwOjIzLjAyMjQ4OTczNyArMDEwMAogQEAgLTAsMCArMSw0MCBAQAogKyMgQ29w eXJpZ2h0IDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCgpkaWZm IC0tZ2l0IGEvZ2RiLWJ6NjAxODg3LWR3YXJmNC1yaC10ZXN0LnBhdGNoIGIvZ2RiLWJ6NjAxODg3 LWR3YXJmNC1yaC10ZXN0LnBhdGNoCmluZGV4IDQ3NzRiZGEuLmExMDNkYTEgMTAwNjQ0Ci0tLSBh L2dkYi1iejYwMTg4Ny1kd2FyZjQtcmgtdGVzdC5wYXRjaAorKysgYi9nZGItYno2MDE4ODctZHdh cmY0LXJoLXRlc3QucGF0Y2gKQEAgLTEsNSArMSw3IEBACi0tLS0gL2Rldi9udWxsCTIwMTAtMDYt MDggMjA6MzU6NDYuODAwMjc4NDUyICswMjAwCi0rKysgZ2RiLTcuMS9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5TCTIwMTAtMDYtMDkgMTU6MjI6NTcuMDAwMDAwMDAw ICswMjAwCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcmgtZHdhcmY0 LXg4Nl82NC5TCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvcmgt ZHdhcmY0LXg4Nl82NC5TCTIwMTQtMDItMDYgMjI6MDI6MjEuOTgxNDQ5NTU1ICswMTAwCiBAQCAt MCwwICsxLDE2NyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuCiArCkBAIC0xNjgsOCArMTcwLDEwIEBACiArCS5zdHJpbmcJIm1haW4iCiArCS5p ZGVudAkiR0NDOiAoR05VKSA0LjQuNCAyMDEwMDUwMyAoUmVkIEhhdCA0LjQuNC0yKSIKICsJLnNl Y3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotLS0tIC9kZXYvbnVsbAkyMDEwLTA2 LTA4IDIwOjM1OjQ2LjgwMDI3ODQ1MiArMDIwMAotKysrIGdkYi03LjEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQuYwkyMDEwLTA2LTA5IDE1OjIxOjM1LjAwMDAwMDAw MCArMDIwMAorSW5kZXg6IGdkYi03LjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3JoLWR3YXJm NC14ODZfNjQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3Jo LWR3YXJmNC14ODZfNjQuYwkyMDE0LTAyLTA2IDIyOjAyOjIxLjk4MTQ0OTU1NSArMDEwMAogQEAg LTAsMCArMSwyMiBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUg ZGVidWdnZXIuCiArCkBAIC0xOTMsOCArMTk3LDEwIEBACiArewogKyAgcmV0dXJuIDA7CiArfQot LS0tIC9kZXYvbnVsbAkyMDEwLTA2LTA4IDIwOjM1OjQ2LjgwMDI3ODQ1MiArMDIwMAotKysrIGdk Yi03LjEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3JoLWR3YXJmNC14ODZfNjQuZXhwCTIwMTAt MDYtMDkgMTU6MjY6MjEuMDAwMDAwMDAwICswMjAwCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvcmgtZHdhcmY0LXg4Nl82NC5leHAKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy43L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9yaC1kd2FyZjQteDg2XzY0LmV4cAkyMDE0LTAyLTA2IDIy OjEyOjEwLjc4ODAzMjQxNyArMDEwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgQ29weXJpZ2h0IDIw MTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yMjksNyArMjM1LDcgQEAK ICtzZXQgdGVzdGZpbGUgInJoLWR3YXJmNC14ODZfNjQiCiArc2V0IHNyY2ZpbGUgJHt0ZXN0Zmls ZX0uUwogK3NldCBleGVjdXRhYmxlICR7dGVzdGZpbGV9LngKLStzZXQgYmluZmlsZSAke29iamRp cn0vJHtzdWJkaXJ9LyR7ZXhlY3V0YWJsZX0KKytzZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0 X2ZpbGUgJHtleGVjdXRhYmxlfV0KICsKICtpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8k e3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIG9iamVjdCB7fV0gIT0gIiIgfSB7CiAr ICAgIHJldHVybiAtMQoKZGlmZiAtLWdpdCBhL2dkYi1jb3JlLW9wZW4tdmRzby13YXJuaW5nLnBh dGNoIGIvZ2RiLWNvcmUtb3Blbi12ZHNvLXdhcm5pbmcucGF0Y2gKaW5kZXggNmM0MmU1YS4uNWJk M2VmOSAxMDA2NDQKLS0tIGEvZ2RiLWNvcmUtb3Blbi12ZHNvLXdhcm5pbmcucGF0Y2gKKysrIGIv Z2RiLWNvcmUtb3Blbi12ZHNvLXdhcm5pbmcucGF0Y2gKQEAgLTMsODkgKzMsMTAgQEAgU3ViamVj dDogW3BhdGNoXSBGaXggR05VL0xpbnV4IGNvcmUgb3BlbjogQ2FuJ3QgcmVhZCBwYXRobmFtZSBm b3IgbG9hZCBtYXA6ICBJbnAKIAogWyBOZXcgcGF0Y2ggdmFyaWFudC4gIF0KIAotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zb2xpYi1zdnI0LmMKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAxMy0wOC0wMiAx NjoyNzoyOC44MzEyNTk0NjggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv c29saWItc3ZyNC5jCTIwMTMtMDgtMDIgMTY6Mjc6NDcuODcxMjg0ODEzICswMjAwCi1AQCAtMTM1 OSw4ICsxMzU5LDE3IEBAIHN2cjRfcmVhZF9zb19saXN0IChDT1JFX0FERFIgbG0sIENPUkVfQUQK LSAJCQkgIFNPX05BTUVfTUFYX1BBVEhfU0laRSAtIDEsICZlcnJjb2RlKTsKLSAgICAgICBpZiAo ZXJyY29kZSAhPSAwKQotIAl7Ci0tCSAgd2FybmluZyAoXygiQ2FuJ3QgcmVhZCBwYXRobmFtZSBm b3IgbG9hZCBtYXA6ICVzLiIpLAotLQkJICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwotKwkg IC8qIER1cmluZyB0aGUgZmlyc3QgZXZlciBEU08gbGlzdCByZWFkaW5nIHNvbWUgc3RyaW5ncyBt YXkgYmUKLSsJICAgICB1bnJlYWRhYmxlIGFzIHJlc2lkaW5nIGluIHRoZSBsZC5zbyByZWFkb25s eSBtZW1vcnkgbm90IGJlaW5nCi0rCSAgICAgcHJlc2VudCBpbiBhIGR1bXBlZCBjb3JlIGZpbGUu ICBEZWxheSB0aGUgZXJyb3IgY2hlY2sgYWZ0ZXIKLSsJICAgICB0aGUgZmlyc3QgcGFzcyBvZiBE U08gbGlzdCBzY2FubmluZyB3aGVuIGxkLnNvIHNob3VsZCBiZQotKwkgICAgIGFscmVhZHkgbWFw cGVkIGluIGFuZCBhbGwgdGhlIERTTyBsaXN0IGxfbmFtZSBtZW1vcnkgZ2V0cwotKwkgICAgIHJl YWRhYmxlLiAgKi8KLSsKLSsJICBpZiAobWFzdGVyX3NvX2xpc3QgKCkgIT0gTlVMTCkKLSsJICAg IHdhcm5pbmcgKF8oIkNhbid0IHJlYWQgcGF0aG5hbWUgZm9yIGxvYWQgbWFwOiAlcy4iKSwKLSsJ CSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwotKwotIAkgIGRvX2NsZWFudXBzIChvbGRf Y2hhaW4pOwotIAkgIGNvbnRpbnVlOwotIAl9Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3NvbGliLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5v cmlnL2dkYi9zb2xpYi5jCTIwMTMtMDgtMDIgMTY6Mjc6MjguODMyMjU5NDcwICswMjAwCi0rKysg Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NvbGliLmMJMjAxMy0wOC0wMiAxNjoyODo1MC40 MjEzNjc2OTQgKzAyMDAKLUBAIC02NjksNyArNjY5LDcgQEAgc29saWJfdXNlZCAoY29uc3Qgc3Ry dWN0IHNvX2xpc3QgKmNvbnN0Ci0gICAgcHJvY2Vzc2VzIHdlJ3ZlIGp1c3QgYXR0YWNoZWQgdG8s IHNvIHRoYXQncyBva2F5LiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLXVwZGF0ZV9zb2xpYl9saXN0 IChpbnQgZnJvbV90dHksIHN0cnVjdCB0YXJnZXRfb3BzICp0YXJnZXQpCi0rdXBkYXRlX3NvbGli X2xpc3RfMSAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0KQotIHsKLSAg IGNvbnN0IHN0cnVjdCB0YXJnZXRfc29fb3BzICpvcHMgPSBzb2xpYl9vcHMgKHRhcmdldF9nZGJh cmNoICgpKTsKLSAgIHN0cnVjdCBzb19saXN0ICppbmZlcmlvciA9IG9wcy0+Y3VycmVudF9zb3Mo KTsKLUBAIC04NDAsNiArODQwLDIxIEBAIERvIHlvdSBuZWVkIFwic2V0IHNvbGliLXNlYXJjaC1w YXRoXCIgb3IKLSAgICAgfQotIH0KLSAKLSsvKiBXcmFwcGVyIGZvciBGZWRvcmE6IGdkYi1jb3Jl LW9wZW4tdmRzby13YXJuaW5nLnBhdGNoICAqLwotKwotK3N0YXRpYyB2b2lkCi0rdXBkYXRlX3Nv bGliX2xpc3QgKGludCBmcm9tX3R0eSwgc3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCkKLSt7Ci0r ICBzdHJ1Y3Qgc29fbGlzdCAqc2F2ZWRfc29fbGlzdF9oZWFkID0gc29fbGlzdF9oZWFkOwotKwot KyAgdXBkYXRlX3NvbGliX2xpc3RfMSAoZnJvbV90dHksIHRhcmdldCk7Ci0rCi0rICAvKiBJZiB0 aGlzIHdhcyB0aGUgdmVyeSBmaXJzdCBEU08gbGlzdCBzY2FuIGFuZCB3ZSBwb3NzaWJseSByZWFk IGluIGxkLnNvCi0rICAgICByZWNoZWNrIGFsbCB0aGUgZm9ybWVybHkgdW5yZWFkYWJsZSBEU08g bmFtZXMgc3RyaW5ncy4gICovCi0rCi0rICBpZiAoc2F2ZWRfc29fbGlzdF9oZWFkID09IE5VTEwg JiYgc29fbGlzdF9oZWFkICE9IE5VTEwpCi0rICAgIHVwZGF0ZV9zb2xpYl9saXN0XzEgKGZyb21f dHR5LCB0YXJnZXQpOwotK30KLSAKLSAvKiBSZXR1cm4gbm9uLXplcm8gaWYgTkFNRSBpcyB0aGUg bGlicHRocmVhZCBzaGFyZWQgbGlicmFyeS4KLSAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAotPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3Jl ZmlsZS5leHAJMjAxMy0wOC0wMiAxNjoyNzoyOC44MzMyNTk0NzEgKzAyMDAKLSsrKyBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDEz LTA4LTAyIDE2OjI3OjQ3Ljg3MjI4NDgxNCArMDIwMAotQEAgLTI4NSwzICsyODUsMTkgQEAgaWYg eyRidWlsZGlkID09ICIifSB7Ci0gICAgIGdkYl90ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhl YyBmaWxlOlxyXG5cWyBcdFxdKmBbc3RyaW5nX3RvX3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRd JywgZmlsZSB0eXBlIC4qIgotICAgICBwYXNzICR3aG9sZXRlc3QKLSB9Ci0rCi0rCi0rIyBUZXN0 IExpbnV4IHNwZWNpZmljIHZEU08gd2FybmluZzoKLSsjIHdhcm5pbmc6IENhbid0IHJlYWQgcGF0 aG5hbWUgZm9yIGxvYWQgbWFwOiBJbnB1dC9vdXRwdXQgZXJyb3IuCi0rCi0rY2xlYW5fcmVzdGFy dCAke3Rlc3RmaWxlfQotKwotK3NldCB0ZXN0ICJjb3JlLWZpbGUgdmRzbyB3YXJuaW5nIgotK2dk Yl90ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJGNvcmVmaWxlIiAkdGVzdCB7Ci0rICAgIC1yZSAi d2FybmluZzogQ2FuJ3QgcmVhZCBwYXRobmFtZSBmb3IgbG9hZCBtYXA6IElucHV0L291dHB1dCBl cnJvclxcLlxyXG4uKlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCWZhaWwgJHRlc3QKLSsgICAgfQot KyAgICAtcmUgIlxyXG4kZ2RiX3Byb21wdCAkIiB7Ci0rCXBhc3MgJHRlc3QKLSsgICAgfQotK30K K2NvbW1pdCA3ZDc2MDA1MWZmYjhhMjNjZGM1MTM0MmQ0ZTYyNDNmYmM0NjJmNzNmCitBdXRob3I6 IFVscmljaCBXZWlnYW5kIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgorRGF0ZTogICBXZWQgU2VwIDI1 IDExOjUyOjUwIDIwMTMgKzAwMDAKKwogSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItc3ltYm9sLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1z eW1ib2wuZXhwCTIwMTMtMDgtMDIgMTY6Mjc6MjguODMzMjU5NDcxICswMjAwCgpkaWZmIC0tZ2l0 IGEvZ2RiLWdkYi1hZGQtaW5kZXgtc2NyaXB0LnBhdGNoIGIvZ2RiLWdkYi1hZGQtaW5kZXgtc2Ny aXB0LnBhdGNoCmluZGV4IGQ2MzA3N2MuLmRhODg2NDIgMTAwNjQ0Ci0tLSBhL2dkYi1nZGItYWRk LWluZGV4LXNjcmlwdC5wYXRjaAorKysgYi9nZGItZ2RiLWFkZC1pbmRleC1zY3JpcHQucGF0Y2gK QEAgLTQwLDEyICs0MCwxMiBAQCBTdWJqZWN0OiBbUEFUQ0ggNC80XSBhZGQgZ2RiLWFkZC1pbmRl eAogIDUgZmlsZXMgY2hhbmdlZCwgNTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKICBj cmVhdGUgbW9kZSAxMDA3NTUgZ2RiL2dkYi1hZGQtaW5kZXgKIAotSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMu b3JpZy9nZGIvTWFrZWZpbGUuaW4JMjAxMy0wOC0wMiAxNjozMTo1OS42MDM2NzQxOTQgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvTWFrZWZpbGUuaW4JMjAxMy0wOC0wMiAx NjozMjowOC4yNjA2OTAxNTYgKzAyMDAKLUBAIC0xMDcwLDYgKzEwNzAsMTUgQEAgaW5zdGFsbC1v bmx5OiBpbnN0YWxsLWdzdGFjayAkKENPTkZJR19JTgotIAkJICAkKElOU1RBTExfUFJPR1JBTSkg Z2NvcmUgXAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvTWFrZWZpbGUuaW4JMjAx NC0wMi0wNiAxNzozNzo1NC41NTU5NzU5NTggKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9NYWtlZmlsZS5pbgkyMDE0LTAyLTA2IDE3OjM4OjUyLjExMDAzODQxNSArMDEwMAorQEAg LTEwOTMsNiArMTA5MywxNSBAQCBpbnN0YWxsLW9ubHk6IGluc3RhbGwtZ3N0YWNrICQoQ09ORklH X0lOCisgCQkgICQoSU5TVEFMTF9TQ1JJUFQpIGdjb3JlIFwKICAJCQkgICQoREVTVERJUikkKGJp bmRpcikvJCR0cmFuc2Zvcm1lZF9uYW1lOyBcCiAgCWZpCiArCXRyYW5zZm9ybWVkX25hbWU9YHQ9 JyQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSknOyBcCkBAIC01NSwxNiArNTUsMTYgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9NYWtlZmlsZS5pbgogKwkJZWxzZSBcCiArCQkg IHRydWUgOyBcCiArCQlmaSA7IFwKLSsJCSQoSU5TVEFMTF9QUk9HUkFNKSAkKHNyY2RpcikvZ2Ri LWFkZC1pbmRleCBcCisrCQkkKElOU1RBTExfUFJPR1JBTSkgJChzcmNkaXIpL2NvbnRyaWIvZ2Ri LWFkZC1pbmRleC5zaCBcCiArCQkJJChERVNURElSKSQoYmluZGlyKS8kJHRyYW5zZm9ybWVkX25h bWUkKEVYRUVYVCkKICAJQCQoTUFLRSkgRE89aW5zdGFsbCAiRE9ESVJTPSQoU1VCRElSUykiICQo RkxBR1NfVE9fUEFTUykgc3ViZGlyX2RvCiAgCi0gaW5zdGFsbC1weXRob246Ci1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbworIGluc3RhbGwtc3RyaXA6 CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZG9jL2dkYi50ZXhpbmZv CTIwMTMtMDgtMDIgMTY6MzE6NTkuNjE2Njc0MjE4ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEzLTA4LTAyIDE2OjMyOjA4LjI3MTY5MDE3 NiArMDIwMAotQEAgLTE3NDQ3LDYgKzE3NDQ3LDE0IEBAIFRoZXJlIGFyZSBjdXJyZW50bHkgc29t ZSBsaW1pdGF0aW9uIG9uIGkKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2RvYy9n ZGIudGV4aW5mbwkyMDE0LTAyLTA2IDE3OjM3OjUwLjgyMjk3MTk0MCArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE0LTAyLTA2IDE3OjM3OjU0LjU2 NTk3NTk2OCArMDEwMAorQEAgLTE3NzQ5LDYgKzE3NzQ5LDE0IEBAIFRoZXJlIGFyZSBjdXJyZW50 bHkgc29tZSBsaW1pdGF0aW9uIG9uIGkKICBmb3IgRFdBUkYgZGVidWdnaW5nIGluZm9ybWF0aW9u LCBub3Qgc3RhYnMuICBBbmQsIHRoZXkgZG8gbm90CiAgY3VycmVudGx5IHdvcmsgZm9yIHByb2dy YW1zIHVzaW5nIEFkYS4KICAKQEAgLTc5LDcgKzc5LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9kb2MvZ2RiLnRleGluZm8KICBAbm9kZSBTeW1ib2wgRXJyb3JzCiAgQHNl Y3Rpb24gRXJyb3JzIFJlYWRpbmcgU3ltYm9sIEZpbGVzCiAgCi1AQCAtNDMwNDQsNiArNDMwNTIs NyBAQCBzd2l0Y2ggKGRpZS0+dGFnKQorQEAgLTQzODc4LDYgKzQzODg2LDcgQEAgc3dpdGNoIChk aWUtPnRhZykKICAqIGdkYnNlcnZlciBtYW46OiAgICAgICAgICAgICAgIFJlbW90ZSBTZXJ2ZXIg Zm9yIHRoZSBHTlUgRGVidWdnZXIgbWFuIHBhZ2UKICAqIGdjb3JlIG1hbjo6ICAgICAgICAgICAg ICAgICAgIEdlbmVyYXRlIGEgY29yZSBmaWxlIG9mIGEgcnVubmluZyBwcm9ncmFtCiAgKiBnZGJp bml0IG1hbjo6ICAgICAgICAgICAgICAgICBnZGJpbml0IHNjcmlwdHMKQEAgLTg3LDcgKzg3LDcg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2MvZ2RiLnRleGluZm8KICBA ZW5kIG1lbnUKICAKICBAbm9kZSBnZGIgbWFuCi1AQCAtNDM2OTYsNiArNDM3MDUsNTQgQEAgZ2Ri KDEpLCBAY29kZXtpbmZvIC1mIGdkYiAtbiBTdGFydHVwfQorQEAgLTQ0NTMwLDYgKzQ0NTM5LDU0 IEBAIGdkYigxKSwgQGNvZGV7aW5mbyAtZiBnZGIgLW4gU3RhcnR1cH0KICBUaGUgZnVsbCBkb2N1 bWVudGF0aW9uIGZvciBAdmFsdWV7R0RCTn0gaXMgbWFpbnRhaW5lZCBhcyBhIFRleGluZm8gbWFu dWFsLgogIElmIHRoZSBAY29kZXtpbmZvfSBhbmQgQGNvZGV7Z2RifSBwcm9ncmFtcyBhbmQgQHZh bHVle0dEQk59J3MgVGV4aW5mbwogIGRvY3VtZW50YXRpb24gYXJlIHByb3Blcmx5IGluc3RhbGxl ZCBhdCB5b3VyIHNpdGUsIHRoZSBjb21tYW5kCkBAIC0xNDIsNDYgKzE0MiwxMSBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RvYy9nZGIudGV4aW5mbwogIAogIEBzbWFsbGV4 YW1wbGUKICBpbmZvIGdkYgotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGIt YWRkLWluZGV4CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZG9jL01ha2VmaWxlLmlu CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYi1hZGQtaW5kZXgJMjAx My0wOC0wMiAxNjozMjowOC4yNzE2OTAxNzYgKzAyMDAKLUBAIC0wLDAgKzEsMzAgQEAKLSsjISAv YmluL3NoCi0rCi0rIyBBZGQgYSAuZ2RiX2luZGV4IHNlY3Rpb24gdG8gYSBmaWxlLgotKwotKyMg Q29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0r IyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLStmaWxlPSIkMSIKLStkaXI9IiR7ZmlsZSUvKn0i Ci0rCi0rIyBXZSBkb24ndCBjYXJlIGlmIGdkYiBnaXZlcyBhbiBlcnJvci4KLStnZGIgLW54IC1p ZXggJ3NldCBhdXRvLWxvYWQgbm8nIC0tYmF0Y2gtc2lsZW50IC1leCAiZmlsZSAkZmlsZSIgLWV4 ICJzYXZlIGdkYi1pbmRleCAkZGlyIgotKwotK2lmIHRlc3QgLWYgIiR7ZmlsZX0uZ2RiLWluZGV4 IjsgdGhlbgotKyAgIG9iamNvcHkgLS1hZGQtc2VjdGlvbiAuZ2RiX2luZGV4PSIke2ZpbGV9Lmdk Yi1pbmRleCIgLS1zZXQtc2VjdGlvbi1mbGFncyAuZ2RiX2luZGV4PXJlYWRvbmx5ICIkZmlsZSIg IiRmaWxlIgotKyAgIHJtIC1mICIke2ZpbGV9LmdkYi1pbmRleCIKLStmaQotKwotK2V4aXQgMAot SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kb2MvTWFrZWZpbGUuaW4KLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9kb2MvTWFrZWZpbGUu aW4JMjAxMy0wOC0wMiAxNjozMTo1OS42MTg2NzQyMjIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvZG9jL01ha2VmaWxlLmluCTIwMTMtMDgtMDIgMTY6MzI6MjguODI4NzI3 MzE0ICswMjAwCi1AQCAtMTc3LDcgKzE3Nyw3IEBAIFBPRDJNQU41ID0gcG9kMm1hbiAtLWNlbnRl cj0iR05VIERldmVsb3AKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2RvYy9NYWtl ZmlsZS5pbgkyMDE0LTAyLTA2IDE3OjM3OjUwLjgyNDk3MTk0MiArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2RvYy9NYWtlZmlsZS5pbgkyMDE0LTAyLTA2IDE3OjM3OjU0LjU2NTk3 NTk2OCArMDEwMAorQEAgLTE2NSw3ICsxNjUsNyBAQCBQT0QyTUFONSA9IHBvZDJtYW4gLS1jZW50 ZXI9IkdOVSBEZXZlbG9wCiAgCQkgICAtLXJlbGVhc2U9ImdkYi1gc2VkIHEgdmVyc2lvbi5zdWJz dGAiIC0tc2VjdGlvbj01CiAgCiAgIyBMaXN0IG9mIG1hbiBwYWdlcyBnZW5lcmF0ZWQgZnJvbSBn ZGIudGV4aQpAQCAtMTkwLDcgKzE1NSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvZG9jL01ha2VmaWxlLmluCiAgTUFONVMgPSBnZGJpbml0LjUKICBNQU5TID0gJChNQU4x UykgJChNQU41UykKICAKLUBAIC02MzAsNiArNjMwLDEzIEBAIGdjb3JlLjE6ICQoR0RCX0RPQ19G SUxFUykKK0BAIC01OTAsNiArNTkwLDEzIEBAIGdjb3JlLjE6ICQoR0RCX0RPQ19GSUxFUykKICAJ CW12IC1mICRALlQkJCQkICRAKSB8fCAocm0gLWYgJEAuVCQkJCQgJiYgZXhpdCAxKQogIAlybSAt ZiBnY29yZS5wb2QKICAKCmRpZmYgLS1naXQgYS9nZGItZ2xpYmMtc3Ryc3RyLXdvcmthcm91bmQu cGF0Y2ggYi9nZGItZ2xpYmMtc3Ryc3RyLXdvcmthcm91bmQucGF0Y2gKaW5kZXggZGM5MjQyZS4u YzYzODNkYiAxMDA2NDQKLS0tIGEvZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoCisr KyBiL2dkYi1nbGliYy1zdHJzdHItd29ya2Fyb3VuZC5wYXRjaApAQCAtMSw4ICsxLDggQEAKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTMtMDgtMDIgMTY6Mzc6 NTEuNjE5MjQxNjk2ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJm MnJlYWQuYwkyMDEzLTA4LTAyIDE2OjM4OjE2LjE1OTI3NzQ2MSArMDIwMAotQEAgLTE2NjU0LDYg KzE2NjU0LDI1IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE0LTAyLTA2IDE4 OjE4OjA5LjY3NjU3MjI3MSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2R3YXJm MnJlYWQuYwkyMDE0LTAyLTA2IDE4OjE4OjQyLjY2NDYwNzgyMyArMDEwMAorQEAgLTE3NjQ2LDYg KzE3NjQ2LDI1IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAg ICAgICAvKiBDYWNoZSB0aGlzIHN5bWJvbCdzIG5hbWUgYW5kIHRoZSBuYW1lJ3MgZGVtYW5nbGVk IGZvcm0gKGlmIGFueSkuICAqLwogICAgICAgIFNZTUJPTF9TRVRfTEFOR1VBR0UgKHN5bSwgY3Ut Pmxhbmd1YWdlLCAmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrKTsKICAgICAgICBsaW5rYWdlbmFt ZSA9IGR3YXJmMl9waHlzbmFtZSAobmFtZSwgZGllLCBjdSk7CkBAIC0xMSw3ICsxMSw3IEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5jCiArICAgICAgICog aW52YWxpZCBJRlVOQyBEV19BVF9saW5rYWdlX25hbWU6IG1lbW1vdmUgc3Ryc3RyIHRpbWUKICsg ICAgICAgKiBodHRwOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE0 MTY2ICAqLwogKyAgICAgIGlmIChzdHJjbXAgKGxpbmthZ2VuYW1lLCAic3Ryc3RyIikgPT0gMAot KwkgICYmIHN0cnN0ciAob2JqZmlsZS0+bmFtZSwgIi9saWJjIikgIT0gTlVMTCkKKysJICAmJiBz dHJzdHIgKG9iamZpbGVfbmFtZSAob2JqZmlsZSksICIvbGliYyIpICE9IE5VTEwpCiArCXsKICsJ ICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZV9tc3ltOwogKwkgIHN0cnVjdCBtaW5pbWFsX3N5bWJv bCAqbXN5bTsKQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2R3YXJmMnJlYWQuYwogICAgICAgIFNZTUJPTF9TRVRfTkFNRVMgKHN5bSwgbGlua2Fn ZW5hbWUsIHN0cmxlbiAobGlua2FnZW5hbWUpLCAwLCBvYmpmaWxlKTsKICAKICAgICAgICAvKiBG b3J0cmFuIGRvZXMgbm90IGhhdmUgbWFuZ2xpbmcgc3RhbmRhcmQgYW5kIHRoZSBtYW5nbGluZyBk b2VzIGRpZmZlcgotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvZ251LWlmdW5jLXN0cnN0ci13b3JrYXJvdW5kLmV4cAorSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nbnUtaWZ1bmMtc3Ryc3RyLXdvcmth cm91bmQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9nbnUtaWZ1bmMtc3Ryc3RyLXdvcmthcm91bmQuZXhwCTIwMTMtMDgtMDIgMTY6 Mzc6NTEuNjIwMjQxNjk3ICswMjAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2dudS1pZnVuYy1zdHJzdHItd29ya2Fyb3VuZC5leHAJMjAxNC0wMi0wNiAx ODoxODoxNi4yOTQ1NzkzODEgKzAxMDAKIEBAIC0wLDAgKzEsMTA4IEBACiArIyBDb3B5cmlnaHQg KEMpIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCgpkaWZmIC0tZ2l0IGEv Z2RiLWltcGxpY2l0LXRoaXMucGF0Y2ggYi9nZGItaW1wbGljaXQtdGhpcy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNlNzJkZC4uMDAwMDAwMAotLS0gYS9nZGItaW1wbGlj aXQtdGhpcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI5OSArMCwwIEBACi1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2MtZXhwLnkKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jLWV4cC55CTIwMTMtMTEtMDkgMTg6NDE6NDguNzA2 NzE4MTI3ICswMTAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2MtZXhwLnkJMjAx My0xMS0wOSAxODo0MjoxOS4yOTE2OTc2NjEgKzAxMDAKLUBAIC0yOTQ0LDYgKzI5NDQsMzAgQEAg Y2xhc3NpZnlfaW5uZXJfbmFtZSAoY29uc3Qgc3RydWN0IGJsb2NrCi0gICAgIHsKLSAgICAgY2Fz ZSBMT0NfQkxPQ0s6Ci0gICAgIGNhc2UgTE9DX0xBQkVMOgotKyAgICAgIHsKLSsJc3RydWN0IGZp ZWxkX29mX3RoaXNfcmVzdWx0IGZvdDsKLSsKLSsJLyogV2UgbWlnaHQgaGF2ZSBlcnJvbmVvdXNs eSBmb3VuZCBhIGNvbnN0cnVjdG9yIHdoZXJlIHdlIHdhbnRlZAotKwkgICBhIHR5cGUgbmFtZS4g IFRoZSB0cmljayBpcyBhc2NlcnRhaW5pbmcgd2hhdCB0aGUgdXNlciB3YW50ZWQuCi0rCSAgIElm IGNwX2xvb2t1cF9uZXN0ZWRfc3ltYm9sIGZvdW5kIGEgY29uc3RydWN0b3IsIGJ1dCBpdCBpcyBm b3IgYQotKwkgICBkaWZmZXJlbnQgdHlwZSB0aGFuIENPTlRFWFQsIHRoZW4gdGhpcyBpcyByZWFs bHkgYSB0eXBlLCBub3QgYQotKwkgICBjb25zdHJ1Y3Rvci4gIExvb2sgZm9yIHRoZSB0eXBlIGFu ZCByZXR1cm4gdGhhdC4gICovCi0rCW1lbXNldCAoJmZvdCwgMCwgc2l6ZW9mIChmb3QpKTsKLSsJ Y2hlY2tfZmllbGQgKHR5cGUsIGNvcHksICZmb3QpOwotKwlpZiAoZm90LmZuX2ZpZWxkICE9IE5V TEwKLSsJICAgICYmIFRZUEVfRk5fRklFTERfQ09OU1RSVUNUT1IgKGZvdC5mbl9maWVsZC0+Zm5f ZmllbGRzLCAwKQotKwkgICAgJiYgIXR5cGVzX2VxdWFsICh0eXBlLCBmb3QudHlwZSkpCi0rCSAg ewotKwkgICAgc3RydWN0IHN5bWJvbCAqc3ltOwotKwotKwkgICAgc3ltID0gbG9va3VwX3N5bWJv bCAoY29weSwgYmxvY2ssIFNUUlVDVF9ET01BSU4sIE5VTEwpOwotKwkgICAgaWYgKHN5bSAhPSBO VUxMKQotKwkgICAgICB7Ci0rCQl5eWx2YWwudHN5bS50eXBlID0gU1lNQk9MX1RZUEUgKHN5bSk7 Ci0rCQlyZXR1cm4gVFlQRU5BTUU7Ci0rCSAgICAgIH0KLSsJICB9Ci0rICAgICAgfQotICAgICAg IHJldHVybiBFUlJPUjsKLSAKLSAgICAgY2FzZSBMT0NfVFlQRURFRjoKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3ltdGFiLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zeW10YWIuYwkyMDEzLTExLTA5IDE4OjQxOjQ4LjcwODcx ODEyNSArMDEwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zeW10YWIuYwkyMDEz LTExLTA5IDE4OjQyOjE5LjI5MzY5NzY2MCArMDEwMAotQEAgLTEyOTMsNyArMTI5Myw3IEBAIGxv b2t1cF9sYW5ndWFnZV90aGlzIChjb25zdCBzdHJ1Y3QgbGFuZ3UKLSAgICByZXR1cm4gMSBpZiB0 aGUgY29tcG9uZW50IG5hbWVkIE5BTUUgZnJvbSB0aGUgdWx0aW1hdGUgdGFyZ2V0Ci0gICAgc3Ry dWN0dXJlL3VuaW9uIGlzIGRlZmluZWQsIG90aGVyd2lzZSwgcmV0dXJuIDAuICAqLwotIAotLXN0 YXRpYyBpbnQKLStpbnQKLSBjaGVja19maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGNo YXIgKm5hbWUsCi0gCSAgICAgc3RydWN0IGZpZWxkX29mX3RoaXNfcmVzdWx0ICppc19hX2ZpZWxk X29mX3RoaXMpCi0gewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zeW10YWIu aAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3N5bXRh Yi5oCTIwMTMtMTEtMDkgMTg6NDI6MTkuMjkzNjk3NjYwICswMTAwCi0rKysgZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL3N5bXRhYi5oCTIwMTMtMTEtMDkgMTg6NDI6MzQuMDIzNjg3ODcyICsw MTAwCi1AQCAtMTM3Nyw0ICsxMzc3LDkgQEAgdm9pZCBpbml0aWFsaXplX3N5bWJvbCAoc3RydWN0 IHN5bWJvbCAqKQotIAotIHN0cnVjdCB0ZW1wbGF0ZV9zeW1ib2wgKmFsbG9jYXRlX3RlbXBsYXRl X3N5bWJvbCAoc3RydWN0IG9iamZpbGUgKik7Ci0gCi0rLyogU2VlIGNvbW1lbnQgaW4gc3ltdGFi LmMuICAqLwotKwotK2ludCBjaGVja19maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGNo YXIgKm5hbWUsCi0rCQkgc3RydWN0IGZpZWxkX29mX3RoaXNfcmVzdWx0ICppc19hX2ZpZWxkX29m X3RoaXMpOwotKwotICNlbmRpZiAvKiAhZGVmaW5lZChTWU1UQUJfSCkgKi8KLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi92YWxvcHMuYwkyMDEzLTExLTA5IDE4OjQxOjQ4Ljcx MjcxODEyMyArMDEwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwky MDEzLTExLTA5IDE4OjQyOjE5LjI5NDY5NzY1OSArMDEwMAotQEAgLTMyMjYsMTAgKzMyMjYsMzUg QEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAotIAkgICAgcmV0dXJu IHZhbHVlX2Zyb21fbG9uZ2VzdAotIAkgICAgICAobG9va3VwX21lbWJlcnB0cl90eXBlIChUWVBF X0ZJRUxEX1RZUEUgKHQsIGkpLCBkb21haW4pLAotIAkgICAgICAgb2Zmc2V0ICsgKFRZUEVfRklF TERfQklUUE9TICh0LCBpKSA+PiAzKSk7Ci0tCSAgZWxzZSBpZiAobm9zaWRlID09IEVWQUxfQVZP SURfU0lERV9FRkZFQ1RTKQotKwkgIGVsc2UgaWYgKG5vc2lkZSAhPSBFVkFMX05PUk1BTCkKLSAJ ICAgIHJldHVybiBhbGxvY2F0ZV92YWx1ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSk7Ci0gCSAg ZWxzZQotLQkgICAgZXJyb3IgKF8oIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBc IiVzXCIiKSwgbmFtZSk7Ci0rCSAgICB7Ci0rCSAgICAgIC8qIFRyeSB0byBldmFsdWF0ZSBOQU1F IGFzIGEgcXVhbGlmaWVkIG5hbWUgd2l0aCBpbXBsaWNpdAotKwkJIHRoaXMgcG9pbnRlci4gIElu IHRoaXMgY2FzZSwgYXR0ZW1wdCB0byByZXR1cm4gdGhlCi0rCQkgZXF1aXZhbGVudCB0byBgdGhp cy0+KigmVFlQRTo6TkFNRSknLiAgKi8KLSsJICAgICAgdiA9IHZhbHVlX29mX3RoaXNfc2lsZW50 IChjdXJyZW50X2xhbmd1YWdlKTsKLSsJICAgICAgaWYgKHYgIT0gTlVMTCkKLSsJCXsKLSsJCSAg c3RydWN0IHZhbHVlICpwdHI7Ci0rCQkgIGxvbmcgbWVtX29mZnNldDsKLSsJCSAgc3RydWN0IHR5 cGUgKnR5cGUsICp0bXA7Ci0rCi0rCQkgIHB0ciA9IHZhbHVlX2FnZ3JlZ2F0ZV9lbHQgKGRvbWFp biwgbmFtZSwgTlVMTCwgMSwgbm9zaWRlKTsKLSsJCSAgdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKHB0cikpOwotKwkJICBnZGJfYXNzZXJ0ICh0eXBlICE9IE5VTEwKLSsJCQkgICAg ICAmJiBUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9NRU1CRVJQVFIpOwotKwkJICB0bXAg PSBsb29rdXBfcG9pbnRlcl90eXBlIChUWVBFX0RPTUFJTl9UWVBFICh0eXBlKSk7Ci0rCQkgIHYg PSB2YWx1ZV9jYXN0X3BvaW50ZXJzICh0bXAsIHYsIDEpOwotKwkJICBtZW1fb2Zmc2V0ID0gdmFs dWVfYXNfbG9uZyAocHRyKTsKLSsJCSAgdG1wID0gbG9va3VwX3BvaW50ZXJfdHlwZSAoVFlQRV9U QVJHRVRfVFlQRSAodHlwZSkpOwotKwkJICByZXN1bHQgPSB2YWx1ZV9mcm9tX3BvaW50ZXIgKHRt cCwKLSsJCQkJCSAgICAgICB2YWx1ZV9hc19sb25nICh2KSArIG1lbV9vZmZzZXQpOwotKwkJICBy ZXR1cm4gdmFsdWVfaW5kIChyZXN1bHQpOwotKwkJfQotKwotKwkgICAgICBlcnJvciAoXygiQ2Fu bm90IHJlZmVyZW5jZSBub24tc3RhdGljIGZpZWxkIFwiJXNcIiIpLCBuYW1lKTsKLSsJICAgIH0K LSAJfQotICAgICB9Ci0gCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvaW1wbC10aGlzLmNjCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvaW1wbC10aGlzLmNjCTIwMTMtMTEtMDkgMTg6NDI6MTku Mjk0Njk3NjU5ICswMTAwCi1AQCAtMCwwICsxLDk2IEBACi0rLyogVGhpcyB0ZXN0Y2FzZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsgICBDb3B5cmlnaHQgMjAxMyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCi0rCi0rI2lmZGVmIERFQlVHCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0r I2VuZGlmCi0rCi0rY2xhc3MgQQotK3sKLStwdWJsaWM6Ci0rICBpbnQgaTsKLSsgIGludCB6Owot KyAgQSAoKSA6IGkgKDEpLCB6ICgxMCkge30KLSt9OwotKwotK2NsYXNzIEIgOiBwdWJsaWMgdmly dHVhbCBBCi0rewotK3B1YmxpYzoKLSsgIGludCBpOwotKyAgQiAoKSA6IGkgKDIpIHt9Ci0rfTsK LSsKLStjbGFzcyBDIDogcHVibGljIHZpcnR1YWwgQQotK3sKLStwdWJsaWM6Ci0rICBpbnQgaTsK LSsgIGludCBjOwotKyAgQyAoKSA6IGkgKDMpLCBjICgzMCkge30KLSt9OwotKwotK2NsYXNzIEQg OiBwdWJsaWMgQiwgcHVibGljIEMKLSt7Ci0rcHVibGljOgotKyAgaW50IGk7Ci0rICBpbnQgeDsK LSsgIEQgKCkgOiBpICg0KSwgeCAoNDApIHt9Ci0rCi0rI2lmZGVmIERFQlVHCi0rI2RlZmluZSBT VU0oWCkJCQkJCVwKLSsgIGRvCQkJCQkJXAotKyAgICB7CQkJCQkJXAotKyAgICAgIHN1bSArPSAo WCk7CQkJCVwKLSsgICAgICBwcmludGYgKCIiICNYICIgPSAlZFxuIiwgKFgpKTsJCVwKLSsgICAg fQkJCQkJCVwKLSsgIHdoaWxlICgwKQotKyNlbHNlCi0rI2RlZmluZSBTVU0oWCkgc3VtICs9IChY KQotKyNlbmRpZgotKwotK2ludAotK2YgKHZvaWQpCi0rICB7Ci0rICAgIGludCBzdW0gPSAwOwot KwotKyAgICBTVU0gKGkpOwotKyAgICBTVU0gKEQ6OmkpOwotKyAgICBTVU0gKEQ6OkI6OmkpOwot KyAgICBTVU0gKEI6OmkpOwotKyAgICBTVU0gKEQ6OkM6OmkpOwotKyAgICBTVU0gKEM6OmkpOwot KyAgICBTVU0gKEQ6OkI6OkE6OmkpOwotKyAgICBTVU0gKEI6OkE6OmkpOwotKyAgICBTVU0gKEE6 OmkpOwotKyAgICBTVU0gKEQ6OkM6OkE6OmkpOwotKyAgICBTVU0gKEM6OkE6OmkpOwotKyAgICBT VU0gKEQ6OngpOwotKyAgICBTVU0gKHgpOwotKyAgICBTVU0gKEQ6OkM6OmMpOwotKyAgICBTVU0g KEM6OmMpOwotKyAgICBTVU0gKGMpOwotKwotKyAgICByZXR1cm4gc3VtOwotKyAgfQotK307Ci0r Ci0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBEIGQ7Ci0rCi0rICByZXR1cm4gZC5mICgpOwot K30KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5jcC9p bXBsLXRoaXMuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvaW1wbC10aGlzLmV4cAkyMDEzLTExLTA5IDE4OjQyOjE5LjI5NTY5NzY1OSAr MDEwMAotQEAgLTAsMCArMSw4OSBAQAotKyMgQ29weXJpZ2h0IDIwMTMgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMg VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGdkYiB0ZXN0c3VpdGUKLSsKLSsjIFRlc3QgZXhwcmVz c2lvbnMgd2hpY2ggYXNzdW1lIGFuIGltcGxpY2l0ICJ0aGlzIiB3aXRoIGEgcXVhbGlmaWVkCi0r IyBuYW1lLgotKwotK2lmIHtbc2tpcF9jcGx1c190ZXN0c119IHsgY29udGludWUgfQotKwotK3N0 YW5kYXJkX3Rlc3RmaWxlIC5jYwotKwotK2lmIHtbcHJlcGFyZV9mb3JfdGVzdGluZyAkdGVzdGZp bGUuZXhwICR0ZXN0ZmlsZSAkc3JjZmlsZSB7ZGVidWcgYysrfV19IHsKLSsgICAgcmV0dXJuIC0x Ci0rfQotKwotKyMgRmlyc3QgdGVzdCBleHByZXNzaW9ucyB3aGVuIHRoZXJlIGlzIG5vIGNvbnRl eHQuCi0rZ2RiX3Rlc3QgInByaW50IGkiICJObyBzeW1ib2wgXCJpXCIgaW4gY3VycmVudCBjb250 ZXh0LiIKLStnZGJfdGVzdCAicHJpbnQgRDo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRp YyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6aSIgIkNhbm5vdCByZWZlcmVu Y2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgQjo6aSIgIkNhbm5v dCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgRDo6 Qzo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVz dCAicHJpbnQgQzo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIK LStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6QTo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRp YyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgQjo6QTo6aSIgIkNhbm5vdCByZWZlcmVu Y2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgQTo6aSIgIkNhbm5v dCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJfdGVzdCAicHJpbnQgRDo6 Qzo6QTo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBcImlcIiIKLStnZGJf dGVzdCAicHJpbnQgQzo6QTo6aSIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRpYyBmaWVsZCBc ImlcIiIKLStnZGJfdGVzdCAicHJpbnQgRDo6eCIgIkNhbm5vdCByZWZlcmVuY2Ugbm9uLXN0YXRp YyBmaWVsZCBcInhcIiIKLStnZGJfdGVzdCAicHJpbnQgeCIgIk5vIHN5bWJvbCBcInhcIiBpbiBj dXJyZW50IGNvbnRleHQuIgotK2dkYl90ZXN0ICJwcmludCBEOjpDOjpjIiAiQ2Fubm90IHJlZmVy ZW5jZSBub24tc3RhdGljIGZpZWxkIFwiY1wiIgotK2dkYl90ZXN0ICJwcmludCBDOjpjIiAiQ2Fu bm90IHJlZmVyZW5jZSBub24tc3RhdGljIGZpZWxkIFwiY1wiIgotK2dkYl90ZXN0ICJwcmludCBj IiAiTm8gc3ltYm9sIFwiY1wiIGluIGN1cnJlbnQgY29udGV4dC4iCi0rCi0rIyBSdW4gdG8gRDo6 Zi4KLStpZiB7IVtydW50b19tYWluXX0gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBt YWluIgotKyAgICBjb250aW51ZQotK30KLSsKLStnZGJfYnJlYWtwb2ludCAiRDo6ZiIKLStnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAicnVuIHRvIEQ6OmYiCi0rCi0rIyBOb3cgdGVzdCB2YWxp ZCBleHByZXNzaW9ucyBpbiB0aGUgY2xhc3MgaGllcmFyY2h5IGZvciBELgotK2dkYl90ZXN0ICJw cmludCBpIiAiPSA0IgotK2dkYl90ZXN0ICJwcmludCBEOjppIiAiPSA0IgotK2dkYl90ZXN0ICJw cmludCBEOjpCOjppIiAiPSAyIgotK2dkYl90ZXN0ICJwcmludCBCOjppIiAiPSAyIgotK2dkYl90 ZXN0ICJwcmludCBEOjpDOjppIiAiPSAzIgotK2dkYl90ZXN0ICJwcmludCBDOjppIiAiPSAzIgot K2dkYl90ZXN0ICJwcmludCBEOjpCOjpBOjppIiAiPSAxIgotK2dkYl90ZXN0ICJwcmludCBCOjpB OjppIiAiPSAxIgotK2dkYl90ZXN0ICJwcmludCBBOjppIiAiPSAxIgotK2dkYl90ZXN0ICJwcmlu dCBEOjpDOjpBOjppIiAiPSAxIgotK2dkYl90ZXN0ICJwcmludCBDOjpBOjppIiAiPSAxIgotK2dk Yl90ZXN0ICJwcmludCBEOjp4IiAiPSA0MCIKLStnZGJfdGVzdCAicHJpbnQgeCIgIj0gNDAiCi0r Z2RiX3Rlc3QgInByaW50IEQ6OkM6OmMiICI9IDMwIgotK2dkYl90ZXN0ICJwcmludCBDOjpjIiAi PSAzMCIKLStnZGJfdGVzdCAicHJpbnQgYyIgIj0gMzAiCi0rCi0rIyBUZXN0IHNvbWUgaW52YWxp ZCBleHByZXNzaW9ucwotK2dkYl90ZXN0ICJwcmludCBEOjpCOjpjIiAiVGhlcmUgaXMgbm8gZmll bGQgbmFtZWQgYyIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6QTo6YyIgIlRoZXJlIGlzIG5vIGZp ZWxkIG5hbWVkIGMiCi0rZ2RiX3Rlc3QgInByaW50IEQ6OkM6OkE6OmMiICJUaGVyZSBpcyBubyBm aWVsZCBuYW1lZCBjIgotK2dkYl90ZXN0ICJwcmludCBCOjpjIiAiVGhlcmUgaXMgbm8gZmllbGQg bmFtZWQgYyIKLStnZGJfdGVzdCAicHJpbnQgQjo6QTo6YyIgIlRoZXJlIGlzIG5vIGZpZWxkIG5h bWVkIGMiCi0rZ2RiX3Rlc3QgInByaW50IEM6OkE6OmMiICJUaGVyZSBpcyBubyBmaWVsZCBuYW1l ZCBjIgotK2dkYl90ZXN0ICJwcmludCBEOjpCOjp4IiAiVGhlcmUgaXMgbm8gZmllbGQgbmFtZWQg eCIKLStnZGJfdGVzdCAicHJpbnQgRDo6Qjo6QTo6eCIgIlRoZXJlIGlzIG5vIGZpZWxkIG5hbWVk IHgiCi0rZ2RiX3Rlc3QgInByaW50IEI6OngiICJUaGVyZSBpcyBubyBmaWVsZCBuYW1lZCB4Igot K2dkYl90ZXN0ICJwcmludCBCOjpBOjp4IiAiVGhlcmUgaXMgbm8gZmllbGQgbmFtZWQgeCIKLStn ZGJfdGVzdCAicHJpbnQgRDo6Qzo6eCIgIlRoZXJlIGlzIG5vIGZpZWxkIG5hbWVkIHgiCi0rZ2Ri X3Rlc3QgInByaW50IEM6OngiICJUaGVyZSBpcyBubyBmaWVsZCBuYW1lZCB4IgotK2dkYl90ZXN0 ICJwcmludCBEOjpDOjpBOjp4IiAiVGhlcmUgaXMgbm8gZmllbGQgbmFtZWQgeCIKLStnZGJfdGVz dCAicHJpbnQgQzo6QTo6eCIgIlRoZXJlIGlzIG5vIGZpZWxkIG5hbWVkIHgiCi0rCgpkaWZmIC0t Z2l0IGEvZ2RiLXB5dGhvbi1zdGFja3NtYXNoLnBhdGNoIGIvZ2RiLXB5dGhvbi1zdGFja3NtYXNo LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNmU2NWYKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGItcHl0aG9uLXN0YWNrc21hc2gucGF0Y2gKQEAgLTAsMCArMSw2NSBA QAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDIvbXNnMDAyMTYu aHRtbAorU3ViamVjdDogW3BhdGNoXSBbcHl0aG9uXSBSZTogR0RCIGNyYXNoaW5nIG9uIGdkYi5w eXRob24vcHktbGluZXRhYmxlLmV4cAorCisKKy0tN0FVYzJxTHk0akIzaEQ3WgorQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitDb250ZW50LURpc3Bvc2l0aW9uOiBp bmxpbmUKKworT24gRnJpLCAwNyBGZWIgMjAxNCAxMTo0NTowNCArMDEwMCwgUGhpbCBNdWxkb29u IHdyb3RlOgorPiBJJ3ZlIHRyaWVkIG1vc3Qgb2YgdGhlIG1vcm5pbmcgdG8gcmVwcm9kdWNlIHRo aXMgb24gRmVkb3JhIDE5LCB3aXRoCis+IC1sbWNoZWNrIGFuZCBhZnRlciBzZXZlcmFsIHRob3Vz YW5kIHRlc3QgcnVucyBJIGNhbid0IHJlcHJvZHVjZS4KKworRHVlIHRvIHRoZSByZXF1aXJlbWVu dCBvZiBzcGVjaWZpYyBzdGFjayBsYXlvdXQgSSBmb3VuZCBpdCBpcyByZXByb2R1Y2libGUgZm9y CittZSBvbiBGZWRvcmEgMjAgeDg2XzY0IHdpdGggKGl0IHN1cmUgY291bGQgYmUgcmVkdWNlZCk6 CisKK0NGTEFHUz0iLU8yIC1nIC1waXBlIC1XYWxsIC1XcCwtRF9GT1JUSUZZX1NPVVJDRT0yIC1m ZXhjZXB0aW9ucyAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcgLS1wYXJhbT1zc3AtYnVmZmVyLXNp emU9NCAtZ3JlY29yZC1nY2Mtc3dpdGNoZXMgIC1tNjQgLW10dW5lPWdlbmVyaWMiIExERkxBR1M9 Ii1zdGF0aWMtbGlic3RkYysrIC1zdGF0aWMtbGliZ2NjIC1XbCwteixyZWxybyIgLi9jb25maWd1 cmUgLS13aXRoLXN5c3RlbS1yZWFkbGluZTttYWtlCisodWxpbWl0IC1jIHVubGltaXRlZDsvdXNy L2Jpbi9ydW50ZXN0IGdkYi5weXRob24vcHktbGluZXRhYmxlLmV4cCkKKworVGhlIGZpeCBpcyBv YnZpb3VzLCBJIHdpbGwgY2hlY2sgaXQgaW4uCisKKy0gIGludCBweV9saW5lOworKyAgZ2RiX3B5 X2xvbmdlc3QgcHlfbGluZTsKK1suLi5dCisKKworCitSZWdhcmRzLAorSmFuCisKKy0tN0FVYzJx THk0akIzaEQ3WgorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCitD b250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKKworZ2RiLworMjAxNC0wMi0w NyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJRml4IFB5 dGhvbiBzdGFjayBjb3JydXB0aW9uLgorCSogcHl0aG9uL3B5LWxpbmV0YWJsZS5jIChsdHB5X2dl dF9wY3NfZm9yX2xpbmUsIGx0cHlfaGFzX2xpbmUpOiBVc2UKKwlnZGJfcHlfbG9uZ2VzdC4KKwor ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktbGluZXRhYmxlLmMgYi9nZGIvcHl0aG9uL3B5LWxp bmV0YWJsZS5jCitpbmRleCBlODNkNDZkLi44YjUzNjJiIDEwMDY0NAorLS0tIGEvZ2RiL3B5dGhv bi9weS1saW5ldGFibGUuYworKysrIGIvZ2RiL3B5dGhvbi9weS1saW5ldGFibGUuYworQEAgLTE2 OCw3ICsxNjgsNyBAQCBzdGF0aWMgUHlPYmplY3QgKgorIGx0cHlfZ2V0X3Bjc19mb3JfbGluZSAo UHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorIHsKKyAgIHN0cnVjdCBzeW10YWIgKnN5 bXRhYjsKKy0gIGludCBweV9saW5lOworKyAgZ2RiX3B5X2xvbmdlc3QgcHlfbGluZTsKKyAgIHN0 cnVjdCBsaW5ldGFibGVfZW50cnkgKmJlc3RfZW50cnkgPSBOVUxMOworICAgbGluZXRhYmxlX2Vu dHJ5X29iamVjdCAqcmVzdWx0OworICAgVkVDIChDT1JFX0FERFIpICpwY3MgPSBOVUxMOworQEAg LTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgUHlPYmplY3QgKgorIGx0cHlfaGFzX2xpbmUgKFB5T2Jq ZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKKyB7CisgICBzdHJ1Y3Qgc3ltdGFiICpzeW10YWI7 CistICBpbnQgcHlfbGluZTsKKysgIGdkYl9weV9sb25nZXN0IHB5X2xpbmU7CisgICBpbnQgaW5k ZXg7CisgCisgICBMVFBZX1JFUVVJUkVfVkFMSUQgKHNlbGYsIHN5bXRhYik7CisKKy0tN0FVYzJx THk0akIzaEQ3Wi0tCisKCmRpZmYgLS1naXQgYS9nZGItcmhiejEwMTM0NTMtdmFsdWUtc3RydWN0 LWVsdC1tZW1vcnktbGVhay5wYXRjaCBiL2dkYi1yaGJ6MTAxMzQ1My12YWx1ZS1zdHJ1Y3QtZWx0 LW1lbW9yeS1sZWFrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWFmMGVh Li4wMDAwMDAwCi0tLSBhL2dkYi1yaGJ6MTAxMzQ1My12YWx1ZS1zdHJ1Y3QtZWx0LW1lbW9yeS1s ZWFrLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM2ICswLDAgQEAKLWh0dHBzOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMy0wNy9tc2cwMDQ2OS5odG1sCi0KLUhpLgotVGhp cyBwYXRjaCBhZGRzIHRoZSBtaXNzaW5nIGNhbGxzIHRvIGNoZWNrX3R5cGVkZWYKLWFuZCBhZGRz IGEgdGVzdGNhc2UgdG8gc2hvdyB0aGUgaXNzdWUuCi0KLVRoZSBQUiBpcyBub3QgY2xvc2VhYmxl IHlldCwgYnV0IHRoZSByZW1haW5pbmcgaXNzdWVzIGFyZSBtb3JlIGNsZWFudXBzCi10aGFuIGFj dHVhbCBidWcgZml4ZXMuCi0KLVJlZ3Jlc3Npb24gdGVzdGVkIG9uIGFtZDY0LWxpbnV4LgotCi1J IHdpbGwgY2hlY2sgdGhpcyBpbiBpbiBhIGZldyBkYXlzIGlmIHRoZXJlIGFyZSBubyBvYmplY3Rp b25zLgotCi1bVGhlIG11bHRpcGxlIGNhbGxzIHRvIGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KCphcmdwKSkgYXJlCi1ib3RoZXJzb21lLCBidXQgdGhlIGNvZGUgaXMgc2ltcGxlciB0aGlzIHdh eSwgYW5kIEkgZXhwZWN0Ci1yZXNvbHZpbmcgdGhlIHJlc3Qgb2YgdGhlIGlzc3VlcyBpbiAxNTY5 NSB0byBwb3RlbnRpYWxseSBjaGFuZ2UgdGhpcwotY29kZSBzaWduaWZpY2FudGx5Ll0KLQotLS0t Ci0KLWNvbW1pdCBjYmIyNTE4OWI2OWU1MDFkZGNhNjQ5MTdkODEwYjU0YmIxNDY2YzkzCi1BdXRo b3I6IERvdWcgRXZhbnMgPGRqZUBnb29nbGUuY29tPgotRGF0ZTogICBUaHUgQXVnIDEgMjM6NTk6 NDcgMjAxMyArMDAwMAotCi0gICAgCVBSIHN5bXRhYi8xNTY5NQotICAgIAkqIHZhbG9wcy5jICh2 YWx1ZV9zdHJ1Y3RfZWx0KTogQWRkIG1pc3NpbmcgY2FsbCB0byBjaGVja190eXBlZGVmLgotICAg IAkodmFsdWVfZmluZF9vbG9hZF9tZXRob2RfbGlzdCk6IERpdHRvLgotICAgIAotICAgIAl0ZXN0 c3VpdGUvCi0gICAgCSogZ2RiLmJhc2UvZnVuYy1wdHIuZXhwOiBOZXcgZmlsZS4KLSAgICAJKiBn ZGIuYmFzZS9mdW5jLXB0ci5jOiBOZXcgZmlsZS4KLQotMjAxMy0wOC0wMSAgRG91ZyBFdmFucyAg PGRqZUBnb29nbGUuY29tPgotIAotCVBSIHN5bXRhYi8xNTY5NQotCSogdmFsb3BzLmMgKHZhbHVl X3N0cnVjdF9lbHQpOiBBZGQgbWlzc2luZyBjYWxsIHRvIGNoZWNrX3R5cGVkZWYuCi0JKHZhbHVl X2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QpOiBEaXR0by4KLQotMjAxMy0wOC0wMSAgRG91ZyBFdmFu cyAgPGRqZUBnb29nbGUuY29tPgotCi0JUFIgc3ltdGFiLzE1Njk1Ci0JKiBnZGIuYmFzZS9mdW5j LXB0ci5leHA6IE5ldyBmaWxlLgotCSogZ2RiLmJhc2UvZnVuYy1wdHIuYzogTmV3IGZpbGUuCi0K LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Z1 bmMtcHRyLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Z1bmMtcHRyLmMKLUBAIC0wLDAgKzEsMzAg QEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgot KwotKyAgIENvcHlyaWdodCAyMDEzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KLSsKLSt2b2lkCi0rYmFy ICgpCi0rewotK30KLSsKLSt0eXBlZGVmIHZvaWQgZm9vICh2b2lkKTsKLStmb28gKnBiYXIgPSBi YXI7Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIHJldHVybiAwOwotK30KLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Z1bmMtcHRyLmV4cAot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvZnVuYy1wdHIuZXhwCi1AQCAtMCwwICsxLDMwIEBACi0rIyBD b3B5cmlnaHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBUaGlzIHRlc3RjYXNlIGV4ZXJjaXNlcyBidWcg MTU2OTUuCi0rIyBUcnlpbmcgdG8gcHJpbnQgZm9vLT5iYXIgaWYgZm9vIGlzIGEgcG9pbnRlciB0 byBhIHR5cGVkZWYgb2YgYSBwb2ludGVyCi0rIyB0byBhIGZ1bmN0aW9uIHdpbGwgcHV0IGdkYiBp bnRvIGFuIGluZmluaXRlIGxvb3AuCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyBmdW5j LXB0ci5leHAgImZ1bmMtcHRyIiB7ZnVuYy1wdHIuY30ge2RlYnVnfV0gfSB7Ci0rICAgIHJldHVy biAtMQotK30KLSsKLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgZmFpbCAiQ2FuJ3QgcnVuIHRv IG1haW4iCi0rICAgIHJldHVybiAwCi0rfQotKwotKyMgVGhpcyB3b3VsZCBwdXQgZ2RiIGludG8g YW4gaW5maW5pdGUgbG9vcC4KLStnZGJfdGVzdCAicHJpbnQgcGJhci0+YmF6IiAiQXR0ZW1wdCB0 byBleHRyYWN0IC4qIgotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMu YwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3ZhbG9w cy5jCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCi1AQCAtMjI3NSw3 ICsyMjc1LDcgQEAgdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICoqYXJncCwgcwotICAg ICB7Ci0gICAgICAgKmFyZ3AgPSB2YWx1ZV9pbmQgKCphcmdwKTsKLSAgICAgICAvKiBEb24ndCBj b2VyY2UgZm4gcG9pbnRlciB0byBmbiBhbmQgdGhlbiBiYWNrIGFnYWluISAgKi8KLS0gICAgICBp ZiAoVFlQRV9DT0RFICh2YWx1ZV90eXBlICgqYXJncCkpICE9IFRZUEVfQ09ERV9GVU5DKQotKyAg ICAgIGlmIChUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKCphcmdwKSkpICE9 IFRZUEVfQ09ERV9GVU5DKQotIAkqYXJncCA9IGNvZXJjZV9hcnJheSAoKmFyZ3ApOwotICAgICAg IHQgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqYXJncCkpOwotICAgICB9Ci1AQCAtMjQz OSw3ICsyNDM5LDcgQEAgdmFsdWVfZmluZF9vbG9hZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbAot ICAgICB7Ci0gICAgICAgKmFyZ3AgPSB2YWx1ZV9pbmQgKCphcmdwKTsKLSAgICAgICAvKiBEb24n dCBjb2VyY2UgZm4gcG9pbnRlciB0byBmbiBhbmQgdGhlbiBiYWNrIGFnYWluISAgKi8KLS0gICAg ICBpZiAoVFlQRV9DT0RFICh2YWx1ZV90eXBlICgqYXJncCkpICE9IFRZUEVfQ09ERV9GVU5DKQot KyAgICAgIGlmIChUWVBFX0NPREUgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKCphcmdwKSkp ICE9IFRZUEVfQ09ERV9GVU5DKQotIAkqYXJncCA9IGNvZXJjZV9hcnJheSAoKmFyZ3ApOwotICAg ICAgIHQgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqYXJncCkpOwotICAgICB9CgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKaW5kZXggNWZjNjM2OS4uYzBmMjc1NSAxMDA2NDQKLS0t IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQy NC1iaXRwb3MtMjBvZjI1LnBhdGNoCkBAIC00NjMsMTAgKzQ2MywxMCBAQCBDb250ZW50LVR5cGU6 IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1E aXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Yml0cG9zLW1haW4ucGF0Y2gKIAotSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvYWRhLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxMy0wOC0wMiAxNjozODoyNi40MDgy OTIxNjAgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwky MDEzLTA4LTAyIDE2OjM5OjQ4LjA1MjQwODI1NiArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0MTkxMTA5MyArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FkYS1sYW5nLmMJMjAxNC0wMi0wNiAxODow Nzo1OC44OTg5MTU5OTAgKzAxMDAKIEBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlw ZSAqZGVzY19ib3VuZHNfdHlwZSAoc3QKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2Jv dW5kcyAoc3RydWN0IHZhbHVlICopOwpAQCAtNjgwLDcgKzY4MCw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgCiAgICB2YWwgPSB2YWx1ZV9jYXN0 ICh2YWx1ZV90eXBlIChjb21wb25lbnQpLCB2YWwpOwogIAotQEAgLTQwODIsNyArNDA4NSw3IEBA IGVuc3VyZV9sdmFsIChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC00MDg1LDcgKzQwODgsNyBAQCBl bnN1cmVfbHZhbCAoc3RydWN0IHZhbHVlICp2YWwpCiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9 PSBub3RfbHZhbAogICAgICAgIHx8IFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9pbnRlcm5hbHZh cikKICAgICAgewpAQCAtNjg5LDcgKzY4OSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyID0KICAgICAg ICAgIHZhbHVlX2FzX2xvbmcgKHZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChsZW4p KTsKICAKLUBAIC00MTU2LDcgKzQxNTksNyBAQCBzdGF0aWMgQ09SRV9BRERSCitAQCAtNDE1OSw3 ICs0MTYyLDcgQEAgc3RhdGljIENPUkVfQUREUgogIHZhbHVlX3BvaW50ZXIgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CkBAIC02OTgsNyArNjk4LDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5jCiAgICBnZGJfYnl0ZSAqYnVmID0g YWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtNjA4Nyw3ICs2MDkwLDcg QEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgorQEAgLTYxNDUsNyAr NjE0OCw3IEBAIHZhbHVlX3RhZ19mcm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNzIChzdHIKICAJCQkJ ICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MpCiAgewpAQCAtNzA3LDcgKzcwNyw3IEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgc3RydWN0IHR5 cGUgKnRhZ190eXBlOwogIAogICAgaWYgKGZpbmRfc3RydWN0X2ZpZWxkICgiX3RhZyIsIHR5cGUs IDAsICZ0YWdfdHlwZSwgJnRhZ19ieXRlX29mZnNldCwKLUBAIC02NTUyLDcgKzY1NTUsNyBAQCBh ZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0cnVjdCB0eXBlCitAQCAtNjYxMCw3ICs2NjEz LDcgQEAgYWRhX2luX3ZhcmlhbnQgKExPTkdFU1QgdmFsLCBzdHJ1Y3QgdHlwZQogICAgIG9ubHkg aW4gdGhhdCBpdCBjYW4gaGFuZGxlIHBhY2tlZCB2YWx1ZXMgb2YgYXJiaXRyYXJ5IHR5cGUuICAq LwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtNzE2LDcgKzcxNiw3IEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlw ZTsKLUBAIC02NTY0LDcgKzY1NjcsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1 Y3QgdmFsdWUKK0BAIC02NjIyLDcgKzY2MjUsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxk IChzdHJ1Y3QgdmFsdWUKICAKICAgIGlmIChUWVBFX0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBm aWVsZG5vKSAhPSAwKQogICAgICB7CkBAIC03MjUsNyArNzI1LDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5jCiAgICAgICAgaW50IGJpdF9zaXplID0gVFlQ RV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAgCiAgICAgICAgcmV0dXJuIGFk YV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFsdWVfY29udGVudHMgKGFyZzEp LAotQEAgLTY1OTEsOSArNjU5NCw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVj dCB2YWx1ZQorQEAgLTY2NDksOSArNjY1Miw5IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfZmllbGQg KHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBvdGhlcndpc2UuICAqLwog IAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3MzcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICAJCSAgIGludCAqaW5kZXhfcCkKICB7CiAgICBpbnQg aTsKLUBAIC02NjExLDggKzY2MTQsOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAq bmFtZSwgc3RyCitAQCAtNjY2OSw4ICs2NjcyLDggQEAgZmluZF9zdHJ1Y3RfZmllbGQgKGNvbnN0 IGNoYXIgKm5hbWUsIHN0cgogIAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAodHlw ZSk7IGkgKz0gMSkKICAgICAgewpAQCAtNzQ4LDcgKzc0OCw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IGNoYXIgKnRfZmllbGRf bmFtZSA9IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7CiAgCiAgICAgICAgaWYgKHRfZmllbGRf bmFtZSA9PSBOVUxMKQotQEAgLTY2ODIsNyArNjY4NSw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAo c3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNjc0MCw3ICs2NzQzLDcgQEAgbnVtX3Zpc2libGVfZmll bGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICBTZWFyY2hlcyByZWN1cnNpdmVseSB0aHJvdWdo IHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KICAKICBzdGF0aWMgc3RydWN0 IHZhbHVlICoKQEAgLTc1Nyw3ICs3NTcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUg KnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNjcxNSw3ICs2NzE4LDcgQEAgYWRhX3NlYXJjaF9z dHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTY3NzMsNyArNjc3Niw3IEBAIGFkYV9z ZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgICAgICAgICAgaW50IGo7CiAg ICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5cGVkZWYgKFRZ UEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBAIC03NjYsNyArNzY2LDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5jCiAgCiAgICAgICAg ICAgIGZvciAoaiA9IDA7IGogPCBUWVBFX05GSUVMRFMgKGZpZWxkX3R5cGUpOyBqICs9IDEpCiAg ICAgICAgICAgICAgewotQEAgLTY3MzMsOCArNjczNiw4IEBAIGFkYV9zZWFyY2hfc3RydWN0X2Zp ZWxkIChjaGFyICpuYW1lLCBzdHIKK0BAIC02NzkxLDggKzY3OTQsOCBAQCBhZGFfc2VhcmNoX3N0 cnVjdF9maWVsZCAoY2hhciAqbmFtZSwgc3RyCiAgICByZXR1cm4gTlVMTDsKICB9CiAgCkBAIC03 NzcsNyArNzc3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFu Zy5jCiAgCiAgCiAgLyogUmV0dXJuIGZpZWxkICNJTkRFWCBpbiBBUkcsIHdoZXJlIHRoZSBpbmRl eCBpcyB0aGF0IHJldHVybmVkIGJ5Ci1AQCAtNjc0Myw3ICs2NzQ2LDcgQEAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqYWRhX2luZGV4X3N0cnVjdF9maQorQEAgLTY4MDEsNyArNjgwNCw3IEBAIHN0YXRp YyBzdHJ1Y3QgdmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkKICAgKiBJZiBmb3VuZCwgcmV0dXJu IHZhbHVlLCBlbHNlIHJldHVybiBOVUxMLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoK QEAgLTc4Niw3ICs3ODYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2Fk YS1sYW5nLmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2luZGV4 X3N0cnVjdF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC02NzU1LDcg KzY3NTgsNyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitAQCAt NjgxMyw3ICs2ODE2LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1 YwogICAqICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc5NSw3 ICs3OTUsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMK ICAJCQkgIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGludCBpOwotQEAgLTY4NDUsNyArNjg0 OCw4IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFyZywKK0BAIC02OTAz LDcgKzY5MDYsOCBAQCBhZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICphcmcsCiAg ICAgIHYgPSBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAobmFtZSwgYXJnLCAwLCB0KTsKICAgIGVs c2UKICAgICAgewpAQCAtODA1LDcgKzgwNSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlOwogICAg ICAgIENPUkVfQUREUiBhZGRyZXNzOwogIAotQEAgLTcxNTgsOCArNzE2Miw4IEBAIGFkYV9jb2Vy Y2VfcmVmIChzdHJ1Y3QgdmFsdWUgKnZhbDApCitAQCAtNzIxNiw4ICs3MjIwLDggQEAgYWRhX2Nv ZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkKICAvKiBSZXR1cm4gT0ZGIHJvdW5kZWQgdXB3 YXJkIGlmIG5lY2Vzc2FyeSB0byBhIG11bHRpcGxlIG9mCiAgICAgQUxJR05NRU5UIChhIHBvd2Vy IG9mIDIpLiAgKi8KICAKQEAgLTgxNiw3ICs4MTYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAt IDEpICYgfihhbGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtNzUzOCwxMCArNzU0Miw5IEBAIGFkYV90 ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC03NTk2LDEwICs3NjAwLDkg QEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogICAgc3RydWN0IHZh bHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0 cnVjdCB0eXBlICpydHlwZTsKQEAgLTgyOSw3ICs4MjksNyBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmMKICAgIGludCBmOwogIAogICAgLyogQ29tcHV0ZSB0 aGUgbnVtYmVyIG9mIGZpZWxkcyBpbiB0aGlzIHJlY29yZCB0eXBlIHRoYXQgYXJlIGdvaW5nCi1A QCAtNzYxMiw3ICs3NjE1LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEg KHN0cgorQEAgLTc2NzAsNyArNzY3Myw3IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRf dHlwZV8xIChzdHIKICAJICAgICB0aGF0IGZvbGxvdyB0aGlzIG9uZS4gICovCiAgCSAgaWYgKGFk YV9pc19hbGlnbmVyX3R5cGUgKGZpZWxkX3R5cGUpKQogIAkgICAgewpAQCAtODM4LDcgKzgzOCw3 IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogIAogIAkg ICAgICBmaWVsZF92YWxhZGRyID0gY29uZF9vZmZzZXRfaG9zdCAoZmllbGRfdmFsYWRkciwgZmll bGRfb2Zmc2V0KTsKICAJICAgICAgZmllbGRfYWRkcmVzcyA9IGNvbmRfb2Zmc2V0X3RhcmdldCAo ZmllbGRfYWRkcmVzcywgZmllbGRfb2Zmc2V0KTsKLUBAIC03NzQxLDExICs3NzQ0LDExIEBAIGFk YV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC03Nzk5LDExICs3ODAy LDExIEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKICAgIGlmIChU WVBFX0xFTkdUSCAodHlwZSkgPD0gMCkKICAgICAgewogICAgICAgIGlmIChUWVBFX05BTUUgKHJ0 eXBlKSkKQEAgLTg1NCw3ICs4NTQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAgZWxzZQogICAgICB7Ci1AQCAtODA4Miw3ICs4MDg1 LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUwLAorQEAgLTgxNDAs NyArODE0Myw4IEBAIHRvX2ZpeGVkX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwKICAJ IHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBhY2tlZCkgYXJyYXkgdHlwZS4gIEFzIGEgcmVzdWx0 LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFycmF5IGVsZW1lbnRzIG5lZWRzIHRvIGJlIHNldCBh Z2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVuZ3RoIG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQgYmFz ZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAgLTg2NCwxMSArODY0LDExIEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGludCBlbHRfYml0c2l6 ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZTAsIDApOwogIAogICAgICAgIFRZUEVfRklFTERf QklUU0laRSAocmVzdWx0LCAwKSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZTAsIDApOwotSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5oCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvYWRhLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxMy0wOC0wMiAxNjozODoyNi40MDky OTIxNjIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYWRhLWxhbmcuaAky MDEzLTA4LTAyIDE2OjM4OjMyLjM0MzMwMDcxMyArMDIwMAotQEAgLTE2OSw3ICsxNjksNyBAQCBl eHRlcm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNDI5MTEwOTQg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hZGEtbGFuZy5oCTIwMTQtMDItMDYg MTg6MDc6NTguODk5OTE1OTkwICswMTAwCitAQCAtMTgwLDcgKzE4MCw3IEBAIGV4dGVybiB2b2lk IGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZQogIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBl ZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3X3N5bWJvbCwKICAJCQkg ICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgCkBAIC04NzcsNyArODc3LDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtbGFuZy5oCiAgCQkJICAgc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAogIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotQEAgLTE4NCw3ICsxODQsNyBAQCBl eHRlcm4gdm9pZCBhZGFfZW1pdF9jaGFyIChpbnQsIHN0cnVjdCB0CitAQCAtMTk1LDcgKzE5NSw3 IEBAIGV4dGVybiB2b2lkIGFkYV9lbWl0X2NoYXIgKGludCwgc3RydWN0IHQKICBleHRlcm4gdm9p ZCBhZGFfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOwog IAogIGV4dGVybiB2b2lkIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKiwgc3RydWN0IHR5 cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTg4Niw3ICs4ODYsNyBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRfYWN0dWFs IChzdHJ1Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNTcsNyArMjU3LDcgQEAgZXh0ZXJuIGludCBh ZGFfaXNfY29uc3RyYWluZWRfcGFja2VkX2FycgorQEAgLTI2OCw3ICsyNjgsNyBAQCBleHRlcm4g aW50IGFkYV9pc19jb25zdHJhaW5lZF9wYWNrZWRfYXJyCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqYWRhX3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJ CQkgICAgIGNvbnN0IGdkYl9ieXRlICosCkBAIC04OTUsMTAgKzg5NSwxMCBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS1sYW5nLmgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICopOwogIAogIGV4 dGVybiBzdHJ1Y3QgdHlwZSAqYWRhX2NvZXJjZV90b19zaW1wbGVfYXJyYXlfdHlwZSAoc3RydWN0 IHR5cGUgKik7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS10eXBlcHJp bnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2FkYS10eXBlcHJp bnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQyNDI5MjE4NCArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9hZGEtdHlwZXByaW50LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNDMz MDA3MTMgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FkYS10eXBlcHJp bnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0MjkxMTA5NCArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4Ljg5OTkxNTk5 MCArMDEwMAogQEAgLTgyOSw4ICs4MjksOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUg KnR5cGUwLCBjb25zCiAgCSAgICBjb25zdCBjaGFyICpuYW1lID0gYWRhX3R5cGVfbmFtZSAodHlw ZSk7CiAgCkBAIC05MjAsMTIgKzkyMCwxMiBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2FkYS10eXBlcHJpbnQuYwogIAlicmVhazsKICAgICAgICBjYXNlIFRZUEVfQ09ERV9F TlVNOgogIAlpZiAoc2hvdyA8IDApCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2FkYS12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYWRhLXZhbHBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9h ZGEtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQyNTI5MjE4NSArMDIwMAotKysrIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4 OjMyLjM0NDMwMDcxNSArMDIwMAotQEAgLTQxLDE2ICs0MSwxNiBAQCBzdGF0aWMgdm9pZCBwcmlu dF9yZWNvcmQgKHN0cnVjdCB0eXBlICosCi0gCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqKTsKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FkYS12YWxwcmlu dC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzQzOTExMDk1ICswMTAwCisrKysgZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvYWRhLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODoxNTowMC43NjYzNjg5ODEg KzAxMDAKK0BAIC0zNSwxMSArMzUsMTEgQEAKKyAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKICBz dGF0aWMgaW50IHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5 dGUgKiwKIC0JCQkgICAgICAgaW50LApAQCAtOTMzLDE5ICs5MzMsMTIgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJCSAgICAgICBzdHJ1Y3Qg dWlfZmlsZSAqLCBpbnQsCiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAg ICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotLQkJCSAgICAgICBpbnQs IHN0cnVjdCB0eXBlICosIGludCk7Ci0rCQkJICAgICAgIGludCwgc3RydWN0IHR5cGUgKiwgTE9O R0VTVCk7Ci0gCi0gc3RhdGljIHZvaWQgYWRqdXN0X3R5cGVfc2lnbmVkbmVzcyAoc3RydWN0IHR5 cGUgKik7Ci0gCi0tc3RhdGljIHZvaWQgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqLCBj b25zdCBnZGJfYnl0ZSAqLCBpbnQsIENPUkVfQUREUiwKLS0JCQkgICAgIHN0cnVjdCB1aV9maWxl ICosIGludCwKLStzdGF0aWMgdm9pZCBhZGFfdmFsX3ByaW50XzEgKHN0cnVjdCB0eXBlICosIGNv bnN0IGdkYl9ieXRlICosIExPTkdFU1QsCi0rCQkJICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9m aWxlICosIGludCwKLSAJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotIAkJCSAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CistCQkJICAgICAgIGludCwgc3RydWN0 IHR5cGUgKiwgaW50LAorKwkJCSAgICAgICBpbnQsIHN0cnVjdCB0eXBlICosIExPTkdFU1QsCisg CQkJICAgICAgIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICopOwogIAwKLUBAIC0xNDMsNyAr MTQzLDcgQEAgdmFsX3ByaW50X3BhY2tlZF9hcnJheV9lbGVtZW50cyAoc3RydWN0CisgCitAQCAt MTMxLDcgKzEzMSw3IEBAIHZhbF9wcmludF9wYWNrZWRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdAog ICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIHVuc2lnbmVkIGxlbjsKICAg IHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKQEAgLTk1NCw3ICs5NDcsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS12YWxwcmludC5jCiAgICB1bnNp Z25lZCBsb25nIGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApOwogICAgc3Ry dWN0IHZhbHVlICptYXJrID0gdmFsdWVfbWFyayAoKTsKICAgIExPTkdFU1QgbG93ID0gMDsKLUBA IC0yOTIsNyArMjkyLDcgQEAgYWRhX2VtaXRfY2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBl LAorQEAgLTI4MCw3ICsyODAsNyBAQCBhZGFfZW1pdF9jaGFyIChpbnQgYywgc3RydWN0IHR5cGUg KnR5cGUsCiAgICAgb2YgYSBjaGFyYWN0ZXIuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTk2Myw3 ICs5NTYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FkYS12YWxwcmlu dC5jCiAgCSBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcikKICB7CiAgICBpZiAodHlwZV9sZW4g PT0gMSkKLUBAIC00NjIsMTEgKzQ2MiwxMSBAQCBhZGFfcHJpbnRfc2NhbGFyIChzdHJ1Y3QgdHlw ZSAqdHlwZSwgTE9OCitAQCAtNDQyLDExICs0NDIsMTEgQEAgYWRhX3ByaW50X3NjYWxhciAoc3Ry dWN0IHR5cGUgKnR5cGUsIExPTgogIAogIHN0YXRpYyB2b2lkCiAgcHJpbnRzdHIgKHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3Ry aW5nLApAQCAtOTc3LDcgKzk3MCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvYWRhLXZhbHByaW50LmMKICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CiAg ICBpbnQgaW5fcXVvdGVzID0gMDsKICAgIGludCBuZWVkX2NvbW1hID0gMDsKLUBAIC00ODEsOSAr NDgxLDkgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAorQEAgLTQ2 MSw5ICs0NjEsOSBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CiAg ICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdlIGFyZSBleGFtaW5p bmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4gICovCkBAIC05ODks NyArOTgyLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJp bnQuYwogIAogICAgICAgIFFVSVQ7CiAgCi1AQCAtNTE0LDcgKzUxNCw4IEBAIHByaW50c3RyIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC00OTQsNyArNDk0LDggQEAgcHJpbnRz dHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAogIAkgIGFkYV9lbWl0X2NoYXIgKGNo YXJfYXQgKHN0cmluZywgaSwgdHlwZV9sZW4sIGJ5dGVfb3JkZXIpLAogIAkJCSBlbHR0eXBlLCBz dHJlYW0sICdcJycsIHR5cGVfbGVuKTsKICAJICBmcHV0c19maWx0ZXJlZCAoIiciLCBzdHJlYW0p OwpAQCAtOTk5LDcgKzk5Miw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv YWRhLXZhbHByaW50LmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0g b3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUBA IC01NDIsNyArNTQzLDcgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVj dAorQEAgLTUyMiw3ICs1MjMsNyBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg c3RydWN0CiAgCiAgdm9pZAogIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg c3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xMDA4LDQ1ICsxMDAxLDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICBjb25zdCBjaGFyICpl bmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNTU2LDcgKzU1Nyw3IEBAIGFkYV9wcmlu dHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3QKLSAKLSB2b2lkCi0gYWRhX3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkgICAgICAg aW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCSAgICAgICBMT05HRVNU IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCSAgICAgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAotIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp Ci1AQCAtNTg4LDggKzU4OSw4IEBAIGFkYV92YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0 eXBlLAotICAgICB7Ci0gICAgICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKLSAgICAgICBzdHJ1Y3QgdHlwZSAq ZWx0dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOwotLSAgICAgIHVuc2lnbmVkIGludCBl bHRsZW47Ci0tICAgICAgdW5zaWduZWQgaW50IGxlbjsKLSsgICAgICBVTE9OR0VTVCBlbHRsZW47 Ci0rICAgICAgVUxPTkdFU1QgbGVuOwotIAotICAgICAgIC8qIFdlIGtub3cgdGhhdCBFTFRUWVBF IGNhbm5vdCBwb3NzaWJseSBiZSBudWxsLCBiZWNhdXNlIHdlIGZvdW5kCi0gCSB0aGF0IFRZUEUg aXMgYSBzdHJpbmctbGlrZSB0eXBlLiAgU2ltaWxhcmx5LCB0aGUgc2l6ZSBvZiBFTFRUWVBFCi1A QCAtNjA3LDcgKzYwOCw3IEBAIGFkYV92YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBl LAotICAgICAgICAgIGVsZW1lbnRzIHVwIHRvIGl0LiAgKi8KLSAgICAgICBpZiAob3B0aW9ucy0+ c3RvcF9wcmludF9hdF9udWxsKQotICAgICAgICAgewotLSAgICAgICAgICBpbnQgdGVtcF9sZW47 Ci0rICAgICAgICAgIExPTkdFU1QgdGVtcF9sZW47Ci0gCi0gICAgICAgICAgIC8qIExvb2sgZm9y IGEgTlVMTCBjaGFyLiAgKi8KLSAgICAgICAgICAgZm9yICh0ZW1wX2xlbiA9IDA7Ci1AQCAtNjQw LDcgKzY0MSw3IEBAIGFkYV92YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLAotIAot IHN0YXRpYyB2b2lkCi0gYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgaW50IG9mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0r CQkgTE9OR0VTVCBvZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotIAkJIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCi0gCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1A QCAtOTE1LDEyICs5MTYsMTIgQEAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29ucworQEAgLTUzMiwxMiArNTMzLDEyIEBAIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgc3QKICAKICBzdGF0aWMgaW50CiAgcHJpbnRfdmFyaWFudF9wYXJ0IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgaW50IGZpZWxkX251bSwKQEAgLTEwNTYsMTIgKzEwMTEsMTIgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAogIAkJICAgIGludCBjb21tYV9uZWVkZWQsCi0tCQkgICAgc3RydWN0IHR5 cGUgKm91dGVyX3R5cGUsIGludCBvdXRlcl9vZmZzZXQpCi0rCQkgICAgc3RydWN0IHR5cGUgKm91 dGVyX3R5cGUsIExPTkdFU1Qgb3V0ZXJfb2Zmc2V0KQorLQkJICAgIHN0cnVjdCB0eXBlICpvdXRl cl90eXBlLCBpbnQgb3V0ZXJfb2Zmc2V0LAorKwkJICAgIHN0cnVjdCB0eXBlICpvdXRlcl90eXBl LCBMT05HRVNUIG91dGVyX29mZnNldCwKKyAJCSAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVm biAqbGFuZ3VhZ2UpCiAgewogICAgc3RydWN0IHR5cGUgKnZhcl90eXBlID0gVFlQRV9GSUVMRF9U WVBFICh0eXBlLCBmaWVsZF9udW0pOwotICAgaW50IHdoaWNoID0gYWRhX3doaWNoX3ZhcmlhbnRf YXBwbGllcyAodmFyX3R5cGUsIG91dGVyX3R5cGUsCi1AQCAtMTAyNywxMSArMTAyOCwxMSBAQCBw cmludF9yZWNvcmQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnCitAQCAtNTczLDExICs1NzQs MTEgQEAgcHJpbnRfdmFyaWFudF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaQogIAogIHN0YXRp YyBpbnQKICBwcmludF9maWVsZF92YWx1ZXMgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKQEAgLTEwNzAsMTIgKzEwMjUsMTIgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z LAogIAkJICAgIGludCBjb21tYV9uZWVkZWQsCi0tCQkgICAgc3RydWN0IHR5cGUgKm91dGVyX3R5 cGUsIGludCBvdXRlcl9vZmZzZXQpCi0rCQkgICAgc3RydWN0IHR5cGUgKm91dGVyX3R5cGUsIExP TkdFU1Qgb3V0ZXJfb2Zmc2V0KQorLQkJICAgIHN0cnVjdCB0eXBlICpvdXRlcl90eXBlLCBpbnQg b3V0ZXJfb2Zmc2V0LAorKwkJICAgIHN0cnVjdCB0eXBlICpvdXRlcl90eXBlLCBMT05HRVNUIG91 dGVyX29mZnNldCwKKyAJCSAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2Up CiAgewogICAgaW50IGksIGxlbjsKLSAKLUBAIC0xMDk3LDcgKzEwOTgsNyBAQCBwcmludF9maWVs ZF92YWx1ZXMgKHN0cnVjdCB0eXBlICp0eXBlLCBjCitAQCAtNjQ0LDcgKzY0NSw3IEBAIHByaW50 X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKICAJICAgIH0KICAJICBlbHNlCiAg CSAgICB7CkBAIC0xMDg0LDEwICsxMDM5LDQ4IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvYWRhLXZhbHByaW50LmMKICAJICAgICAgaW50IGJpdF9zaXplID0gVFlQRV9GSUVM RF9CSVRTSVpFICh0eXBlLCBpKTsKICAJICAgICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg b3B0czsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW5ub3RhdGUuYwor QEAgLTY5MCw4ICs2OTEsOCBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5 cGUsCisgeworICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3Jk ZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKKyAgIHN0cnVjdCB0eXBlICplbHR0eXBlID0gVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSk7CistICB1bnNpZ25lZCBpbnQgZWx0bGVuOworLSAgdW5zaWdu ZWQgaW50IGxlbjsKKysgIFVMT05HRVNUIGVsdGxlbjsKKysgIFVMT05HRVNUIGxlbjsKKyAKKyAg IC8qIFdlIGtub3cgdGhhdCBFTFRUWVBFIGNhbm5vdCBwb3NzaWJseSBiZSBudWxsLCBiZWNhdXNl IHdlIGFzc3VtZQorICAgICAgdGhhdCB3ZSdyZSBjYWxsZWQgb25seSB3aGVuIFRZUEUgaXMgYSBz dHJpbmctbGlrZSB0eXBlLgorQEAgLTcxMCw3ICs3MTEsNyBAQCBhZGFfdmFsX3ByaW50X3N0cmlu ZyAoc3RydWN0IHR5cGUgKnR5cGUsCisgICAgICBlbGVtZW50cyB1cCB0byBpdC4gICovCisgICBp ZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQorICAgICB7CistICAgICAgaW50IHRlbXBf bGVuOworKyAgICAgIExPTkdFU1QgdGVtcF9sZW47CisgCisgICAgICAgLyogTG9vayBmb3IgYSBO VUxMIGNoYXIuICAqLworICAgICAgIGZvciAodGVtcF9sZW4gPSAwOworQEAgLTEwNjksNyArMTA3 MCw3IEBAIGFkYV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KKyAKKyBzdGF0 aWMgdm9pZAorIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAorLQkJIGludCBvZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorKwkJIExP TkdFU1Qgb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJCSBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKKyAJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVl LAorIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAorQEAgLTEx NTAsNyArMTE1MSw3IEBAIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMK KyAKKyB2b2lkCisgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAorLQkgICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCisrCSAgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJl c3MsCisgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyAJICAg ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAorIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv YW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcv Z2RiL2Fubm90YXRlLmMJMjAxMy0wOC0wMiAxNjozODoyNi40MjUyOTIxODUgKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW5ub3RhdGUuYwkyMDEzLTA4LTAyIDE2OjM4OjMy LjM0NDMwMDcxNSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYW5ub3Rh dGUuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0MzkxMTA5NSArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2Fubm90YXRlLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MDA5MTU5OTIgKzAx MDAKIEBAIC01MjMsMjEgKzUyMywyMSBAQCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpCiAgfQog IAwKQEAgLTExMTQsMTAgKzExMDcsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9hbm5vdGF0ZS5jCiAgfQogIAogIHZvaWQKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvYW5ub3RhdGUuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2Fubm90 YXRlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9h bm5vdGF0ZS5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDI2MjkyMTg2ICswMjAwCi0rKysgZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2Fubm90YXRlLmgJMjAxMy0wOC0wMiAxNjozODozMi4zNDQz MDA3MTUgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2Fubm90YXRlLmgJ MjAxNC0wMi0wNiAxODowNzo1NC4zNDM5MTEwOTUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9hbm5vdGF0ZS5oCTIwMTQtMDItMDYgMTg6MDc6NTguOTAxOTE1OTkzICswMTAwCiBA QCAtOTIsOCArOTIsOCBAQCBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9zb3VyY2VfZW5kICh2 CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUgKHZvaWQpOwogIGV4dGVybiB2b2lk IGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCk7CkBAIC0xMTI5LDEwICsxMTIyLDEwIEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lkIGFu bm90YXRlX2VsdF9yZXBfZW5kICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZv aWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXJtLWxpbnV4LW5hdC5jCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYXJtLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTMtMDgt MDIgMTY6Mzg6MjYuNDI2MjkyMTg2ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2FybS1saW51eC1uYXQuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM0NTMwMDcxNiArMDIwMAor LS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTQtMDIt MDYgMTg6MDc6NTQuMzQzOTExMDk1ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv YXJtLWxpbnV4LW5hdC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTAxOTE1OTkzICswMTAwCiBAQCAt MTA3Myw3ICsxMDczLDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50IChzdHJ1Y3Qg ZwogIC8qIEFyZSB3ZSBhYmxlIHRvIHVzZSBhIGhhcmR3YXJlIHdhdGNocG9pbnQgZm9yIHRoZSBM RU4gYnl0ZXMgc3RhcnRpbmcgYXQgCiAgICAgQUREUj8gICovCkBAIC0xMTQyLDExICsxMTM1LDEx IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXJtLWxpbnV4LW5hdC5jCiAg ewogICAgY29uc3Qgc3RydWN0IGFybV9saW51eF9od2JwX2NhcCAqY2FwID0gYXJtX2xpbnV4X2dl dF9od2JwX2NhcCAoKTsKICAgIENPUkVfQUREUiBtYXhfd3BfbGVuZ3RoLCBhbGlnbmVkX2FkZHI7 Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9heC1nZGIuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQyNzI5 MjE4OCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9heC1nZGIuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM0NjMwMDcxNyArMDIwMAotQEAgLTgzLDEyICs4MywxMiBAQCBzdGF0 aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0IGdkYmFyCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9heC1nZGIuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0NDkxMTA5NiArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2F4LWdkYi5jCTIwMTQtMDItMDYgMTg6MDc6 NTguOTAyOTE1OTk0ICswMTAwCitAQCAtODIsMTIgKzgyLDEyIEBAIHN0YXRpYyB2b2lkIGdlbl90 cmFjZWRfcG9wIChzdHJ1Y3QgZ2RiYXIKICBzdGF0aWMgdm9pZCBnZW5fc2lnbl9leHRlbmQgKHN0 cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdlbl9leHRl bmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdl bl9mZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CkBAIC0xMTYxLDcg KzExNTQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCiAg c3RhdGljIHZvaWQgZ2VuX3N5bV9vZmZzZXQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCBz eW1ib2wgKik7CiAgc3RhdGljIHZvaWQgZ2VuX3Zhcl9yZWYgKHN0cnVjdCBnZGJhcmNoICosIHN0 cnVjdCBhZ2VudF9leHByICpheCwKICAJCQkgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsIHN0cnVj dCBzeW1ib2wgKnZhcik7Ci1AQCAtMTM2LDE1ICsxMzYsMTYgQEAgc3RhdGljIHZvaWQgZ2VuX2Rl cmVmIChzdHJ1Y3QgYWdlbnRfZXhwcgorQEAgLTEzNSwxNSArMTM1LDE2IEBAIHN0YXRpYyB2b2lk IGdlbl9kZXJlZiAoc3RydWN0IGFnZW50X2V4cHIKICBzdGF0aWMgdm9pZCBnZW5fYWRkcmVzc19v ZiAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IGF4c192YWx1ZSAqKTsKICBzdGF0aWMgdm9p ZCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRf ZXhwciAqYXgsCiAgCQkJICAgICAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMTgxLDcg KzExNzQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCiAg CQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOwogIHN0YXRpYyB2b2lkIGdlbl9zdHJ1Y3RfcmVm IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICAg IHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAotQEAgLTUzOSw3ICs1NDAsNyBAQCBnZW5fZmV0Y2gg KHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0CitAQCAtNTM4LDcgKzUzOSw3IEBAIGdlbl9m ZXRjaCAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QKICAgICByaWdodCBzaGlmdCBpdCBi eSAtRElTVEFOQ0UgYml0cyBpZiBESVNUQU5DRSA8IDAuICBUaGlzIGdlbmVyYXRlcwogICAgIHVu c2lnbmVkIChsb2dpY2FsKSByaWdodCBzaGlmdHMuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0xMTkw LDcgKzExODMsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5j CiAgewogICAgaWYgKGRpc3RhbmNlID4gMCkKICAgICAgewotQEAgLTU5Myw3ICs1OTQsNyBAQCBn ZW5fZnJhbWVfbG9jYWxzX2FkZHJlc3MgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTkyLDcgKzU5Myw3 IEBAIGdlbl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gKICAgICBwcm9ncmFt bWluZyBpbiBNTCwgaXQgd291bGQgYmUgY2xlYXJlciB3aHkgdGhlc2UgYXJlIHRoZSBzYW1lCiAg ICAgdGhpbmcuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0xMTk5LDcgKzExOTIsNyBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCiAgewogICAgLyogSXQgd291bGQg c3VmZmljZSB0byBzaW1wbHkgcHVzaCB0aGUgb2Zmc2V0IGFuZCBhZGQgaXQsIGJ1dCB0aGlzCiAg ICAgICBtYWtlcyBpdCBlYXNpZXIgdG8gcmVhZCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgb2Zmc2V0 cyBpbiB0aGUKLUBAIC0xMjQ5LDcgKzEyNTAsNyBAQCBnZW5fYWRkcmVzc19vZiAoc3RydWN0IGFn ZW50X2V4cHIgKmF4LCBzCitAQCAtMTI0OCw3ICsxMjQ5LDcgQEAgZ2VuX2FkZHJlc3Nfb2YgKHN0 cnVjdCBhZ2VudF9leHByICpheCwgcwogIHN0YXRpYyB2b2lkCiAgZ2VuX2JpdGZpZWxkX3JlZiAo c3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJICBzdHJ1 Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xMjA4LDcgKzEyMDEs NyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCiAgewogICAg LyogTm90ZSB0aGF0IG9wc1tpXSBmZXRjaGVzIDggPDwgaSBiaXRzLiAgKi8KICAgIHN0YXRpYyBl bnVtIGFnZW50X29wIG9wc1tdCi1AQCAtMTI4NCwxMyArMTI4NSwxMyBAQCBnZW5fYml0ZmllbGRf cmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAtMTI4MywxMyArMTI4NCwxMyBAQCBnZW5f Yml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCiAgCiAgICAvKiBUaGUgZmlyc3Qg YW5kIG9uZS1hZnRlci1sYXN0IGJpdHMgaW4gdGhlIGZpZWxkLCBidXQgcm91bmRlZCBkb3duCiAg ICAgICBhbmQgdXAgdG8gYnl0ZSBib3VuZGFyaWVzLiAgKi8KQEAgLTEyMjcsNyArMTIyMCw3IEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXgtZ2RiLmMKICAKICAgIC8qIFRo ZSBpbmRleCBpbiBvcHMgb2YgdGhlIG9wY29kZSB3ZSdyZSBjb25zaWRlcmluZy4gICovCiAgICBp bnQgb3A7Ci1AQCAtMTQwOSw3ICsxNDEwLDcgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4 cHJlc3Npb24gKmV4cAorQEAgLTE0MDgsNyArMTQwOSw3IEBAIGdlbl9iaXRmaWVsZF9yZWYgKHN0 cnVjdCBleHByZXNzaW9uICpleHAKICBzdGF0aWMgdm9pZAogIGdlbl9wcmltaXRpdmVfZmllbGQg KHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCQkgICAgIHN0cnVjdCBhZ2VudF9leHByICpheCwg c3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjM2LDcgKzEyMjksNyBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdkYi5jCiAgewogICAgLyogSXMgdGhpcyBhIGJp dGZpZWxkPyAgKi8KICAgIGlmIChUWVBFX0ZJRUxEX1BBQ0tFRCAodHlwZSwgZmllbGRubykpCi1A QCAtMTQzNCw3ICsxNDM1LDcgQEAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Np b24gKgorQEAgLTE0MzMsNyArMTQzNCw3IEBAIGdlbl9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCBl eHByZXNzaW9uICoKICBzdGF0aWMgaW50CiAgZ2VuX3N0cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICBzdHJ1Y3Qg YXhzX3ZhbHVlICp2YWx1ZSwKQEAgLTEyNDUsMTAgKzEyMzgsMTAgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAgaW50 IG5iYXNlcyA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2F4LWdlbmVyYWwuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2F4LWdlbmVyYWwuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz Lm9yaWcvZ2RiL2F4LWdlbmVyYWwuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQyODI5MjE4OSArMDIw MAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9heC1nZW5lcmFsLmMJMjAxMy0wOC0w MiAxNjozODozMi4zNDYzMDA3MTcgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2F4LWdlbmVyYWwuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0NTkxMTA5NyArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE0LTAyLTA2IDE4OjA3OjU4 LjkwMjkxNTk5NCArMDEwMAogQEAgLTE5NSw3ICsxOTUsNyBAQCBheF96ZXJvX2V4dCAoc3RydWN0 IGFnZW50X2V4cHIgKngsIGludCBuCiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1 Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpAQCAtMTI1OCwxMCArMTI1MSwx MCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F4LWdlbmVyYWwuYwogIHsK ICAgIC8qIE4gbXVzdCBmaXQgaW4gYSBieXRlLiAgKi8KICAgIGlmIChuIDwgMCB8fCBuID4gMjU1 KQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9heC5oCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvYXguaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL2F4LmgJMjAxMy0wOC0wMiAxNjozODoyNi40MjgyOTIxODkgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXguaAkyMDEzLTA4LTAyIDE2OjM4OjMy LjM0NjMwMDcxNyArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYXguaAky MDE0LTAyLTA2IDE4OjA3OjU0LjM0NTkxMTA5NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2F4LmgJMjAxNC0wMi0wNiAxODowNzo1OC45MDI5MTU5OTQgKzAxMDAKIEBAIC0yMDcs NyArMjA3LDcgQEAgZXh0ZXJuIHZvaWQgYXhfZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqRQogIGV4 dGVybiB2b2lkIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRfZXhwciAqRVhQUiwgaW50IE4pOwog IApAQCAtMTI3MSwxMSArMTI2NCwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2F4LmgKICAKICAvKiBBcHBlbmQgYSBnb3RvIG9wIHRvIEVYUFIuICBPUCBpcyB0aGUgYWN0 dWFsIG9wIChtdXN0IGJlIGFvcF9nb3RvIG9yCiAgICAgYW9wX2lmX2dvdG8pLiAgV2UgYXNzdW1l IHdlIGRvbid0IGtub3cgdGhlIHRhcmdldCBvZmZzZXQgeWV0LAotSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40MzIyOTIxOTUgKzAy MDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYnJlYWtwb2ludC5jCTIwMTMtMDgt MDIgMTY6Mzg6MzIuMzUwMzAwNzIzICswMjAwCi1AQCAtNjcxMCw3ICs2NzEwLDcgQEAgYnJlYWtw b2ludF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcworLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzQ4OTExMTAwICsw MTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYnJlYWtwb2ludC5jCTIwMTQtMDItMDYg MTg6MDc6NTguOTA2OTE1OTk4ICswMTAwCitAQCAtNjc1NCw3ICs2NzU0LDcgQEAgYnJlYWtwb2lu dF9hZGRyZXNzX21hdGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBpbnQKICBicmVha3Bv aW50X2FkZHJlc3NfbWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBD T1JFX0FERFIgYWRkcjEsCkBAIC0xMjg0LDcgKzEyNzcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2JyZWFrcG9pbnQuYwogIAkJCQlDT1JFX0FERFIgYWRkcjIpCiAgewog ICAgcmV0dXJuICgoZ2RiYXJjaF9oYXNfZ2xvYmFsX2JyZWFrcG9pbnRzICh0YXJnZXRfZ2RiYXJj aCAoKSkKLUBAIC0xMTI0Nyw3ICsxMTI0Nyw3IEBAIGNhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2lu dCAoc3RydWN0IHZhbHUKK0BAIC0xMTM1Myw3ICsxMTM1Myw3IEBAIGNhbl91c2VfaGFyZHdhcmVf d2F0Y2hwb2ludCAoc3RydWN0IHZhbHUKICAJCSAgICAgICYmIFRZUEVfQ09ERSAodnR5cGUpICE9 IFRZUEVfQ09ERV9BUlJBWSkpCiAgCQl7CiAgCQkgIENPUkVfQUREUiB2YWRkciA9IHZhbHVlX2Fk ZHJlc3MgKHYpOwpAQCAtMTI5MywxMCArMTI4NiwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2JyZWFrcG9pbnQuYwogIAkJICBpbnQgbnVtX3JlZ3M7CiAgCiAgCQkgIGxl biA9ICh0YXJnZXRfZXhhY3Rfd2F0Y2hwb2ludHMKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvYnJlYWtwb2ludC5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYnJl YWtwb2ludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9n ZGIvYnJlYWtwb2ludC5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDM0MjkyMTk4ICswMjAwCi0rKysg Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2JyZWFrcG9pbnQuaAkyMDEzLTA4LTAyIDE2OjM4 OjMyLjM1MTMwMDcyNSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYnJl YWtwb2ludC5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzQ4OTExMTAwICswMTAwCisrKysgZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvYnJlYWtwb2ludC5oCTIwMTQtMDItMDYgMTg6MDc6NTguOTA2OTE1 OTk4ICswMTAwCiBAQCAtMjQyLDcgKzI0Miw3IEBAIHN0cnVjdCBicF90YXJnZXRfaW5mbwogIAog ICAgLyogSWYgdGhpcyBpcyBhIHJhbmdlZCBicmVha3BvaW50LCB0aGVuIHRoaXMgZmllbGQgY29u dGFpbnMgdGhlCkBAIC0xMzE1LDExICsxMzA4LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBUeXBlIG9mIGhhcmR3YXJlIHdhdGNo cG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB3YXRjaHBvaW50X3R5cGU7Ci1J bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2MtbGFuZy5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvYy1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy5vcmlnL2dkYi9jLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzNDI5MjE5 OCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jLWxhbmcuYwkyMDEzLTA4 LTAyIDE2OjM4OjMyLjM1MTMwMDcyNSArMDIwMAotQEAgLTE4OCw3ICsxODgsNyBAQCBjX3ByaW50 Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCistLS0gZ2RiLTcuNi45MC4yMDE0MDEy Ny5vcmlnL2dkYi9jLWxhbmcuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM0OTkxMTEwMSArMDEwMAor KysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2MtbGFuZy5jCTIwMTQtMDItMDYgMTg6MDc6NTgu OTA3OTE1OTk5ICswMTAwCitAQCAtMTkwLDcgKzE5MCw3IEBAIGNfcHJpbnRjaGFyIChpbnQgYywg c3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICB2b2lkCiAgY19wcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMTMyOCw3ICsxMzIxLDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jLWxhbmcuYwogIAkgICAgY29uc3QgY2hh ciAqdXNlcl9lbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTY2Myw3ICs2NjMsNyBAQCBl dmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CitAQCAtNjc5LDcgKzY3OSw3 IEBAIGV2YWx1YXRlX3N1YmV4cF9jIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3QKICAJICB9CiAgCWVs c2UKICAJICB7CkBAIC0xMzM3LDcgKzEzMzAsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2MtbGFuZy5jCiAgCiAgCSAgICAvKiBXcml0ZSB0aGUgdGVybWluYXRpbmcgY2hh cmFjdGVyLiAgKi8KICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7ICsr aSkKLUBAIC02NzIsNyArNjcyLDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0cnVjdCB0eXBlICpl eHBlY3RfdAorQEAgLTY4OCw3ICs2ODgsNyBAQCBldmFsdWF0ZV9zdWJleHBfYyAoc3RydWN0IHR5 cGUgKmV4cGVjdF90CiAgCSAgICBpZiAoc2F0aXNmeV9leHBlY3RlZCkKICAJICAgICAgewogIAkJ TE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CkBAIC0xMzQ2LDEwICsxMzM5LDEwIEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYy1sYW5nLmMKICAKICAJCWlmIChnZXRf ZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBlKSwKICAJCQkJCSAm bG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9jLWxhbmcuaAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2MtbGFuZy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvYy1sYW5n LmgJMjAxMy0wOC0wMiAxNjozODoyNi40MzQyOTIxOTggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvYy1sYW5nLmgJMjAxMy0wOC0wMiAxNjozODozMi4zNTEzMDA3MjUgKzAy MDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTQtMDItMDYg MTg6MDc6NTQuMzQ5OTExMTAxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvYy1s YW5nLmgJMjAxNC0wMi0wNiAxODowNzo1OC45MDc5MTU5OTkgKzAxMDAKIEBAIC03Myw3ICs3Myw3 IEBAIGV4dGVybiB2b2lkIGNfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUKICAJCQkgICAgIHN0 cnVjdCB1aV9maWxlICopOwogIApAQCAtMTM4NSwxMCArMTM3OCwxMCBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2MtbGFuZy5oCiAgCQkJCQlzdHJ1Y3QgdWlfZmlsZSAqLCBp bnQsCiAgCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICosCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2Mt dmFscHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2MtdmFscHJpbnQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2MtdmFscHJp bnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzNTI5MjE5OSArMDIwMAotKysrIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9jLXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNTIzMDA3 MjYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwky MDE0LTAyLTA2IDE4OjA3OjU0LjM0OTkxMTEwMSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2MtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwNzkxNTk5OSArMDEwMAog QEAgLTEzMiw3ICsxMzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50 X2RlCiAgCiAgdm9pZApAQCAtMTQzMCwxMCArMTQyMywxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2MtdmFscHJpbnQuYwogICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgb3B0cyA9ICpvcHRpb25zOwogIAogICAgb3B0cy5kZXJlZl9yZWYgPSAxOwotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC1hYmkuYworSW5kZXg6IGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2NwLWFiaS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMub3JpZy9nZGIvY3AtYWJpLmMJMjAxMy0wOC0wMiAxNjozODoyNi40MzUyOTIxOTkgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY3AtYWJpLmMJMjAxMy0wOC0wMiAxNjoz ODozMi4zNTIzMDA3MjYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2Nw LWFiaS5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzUwOTExMTAzICswMTAwCisrKysgZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvY3AtYWJpLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MDg5MTYwMDEgKzAx MDAKIEBAIC02OCwxMyArNjgsMTMgQEAgaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFt ZSkKICAgIHJldHVybiAoKmN1cnJlbnRfY3BfYWJpLmlzX29wZXJhdG9yX25hbWUpIChuYW1lKTsK ICB9CkBAIC0xNDY5LDEwICsxNDYyLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvY3AtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqcmV0ID0gTlVMTDsKICAgIHZvbGF0 aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2NwLWFiaS5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY3AtYWJpLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9jcC1hYmku aAkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzNTI5MjE5OSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9jcC1hYmkuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM1MjMwMDcyNiArMDIw MAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY3AtYWJpLmgJMjAxNC0wMi0wNiAx ODowNzo1NC4zNTA5MTExMDMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jcC1h YmkuaAkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwODkxNjAwMSArMDEwMAogQEAgLTEwOCw3ICsxMDgs NyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCiAgCQkJCQkgICAg IHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJCSAgICAgaW50IGosCkBAIC0xNTI3LDEwICsxNTIw LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY3AtYWJpLmgKICAgIHZv aWQgKCpwcmludF9tZXRob2RfcHRyKSAoY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzLAogIAkJCSAg ICBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci1J bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NwLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9jcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2 OjM4OjI2LjQzNjI5MjIwMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9j cC12YWxwcmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzUzMzAwNzI3ICswMjAwCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6 NTQuMzUwOTExMTAzICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY3AtdmFscHJp bnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwODkxNjAwMSArMDEwMAogQEAgLTgyLDcgKzgyLDcg QEAgc3RhdGljIHZvaWQgY3BfcHJpbnRfc3RhdGljX2ZpZWxkIChzdHJ1YwogIAkJCQkgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKQEAgLTE1NDksNyArMTU0Miw3IEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY3AtdmFscHJpbnQuYwogIAkJICAg ICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJICAgICAg IGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0zNDIsNyArMzQyLDcgQEAg Y3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQorQEAgLTMzOSw3ICszMzks NyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCiAgCQl9CiAgCSAg ICAgIGVsc2UgaWYgKGkgPT0gdnB0cl9maWVsZG5vICYmIHR5cGUgPT0gdnB0cl9iYXNldHlwZSkK ICAJCXsKQEAgLTE1NTgsNyArMTU1MSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdHlwZSAqaV90eXBlID0gVFlQRV9GSUVM RF9UWVBFICh0eXBlLCBpKTsKICAKICAJCSAgaWYgKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChz dHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQsIHZhbCkpCi1AQCAtNDI1LDcgKzQyNSw3IEBAIGNwX3By aW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC00MjIsNyArNDIyLDcgQEAg Y3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAogIHZvaWQKICBjcF9w cmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xNTY3LDcgKzE1 NjAsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2NwLXZhbHByaW50LmMK ICAJCQkgICAgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC00 NDEsNyArNDQxLDggQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlCitA QCAtNDM4LDcgKzQzOCw4IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlw ZQogIAkJCVRBUkdFVF9DSEFSX0JJVCAqIFRZUEVfTEVOR1RIICh0eXBlKSkpCiAgICAgIHsKICAg ICAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOwpAQCAtMTU3Nyw3ICsxNTcwLDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC12YWxwcmludC5jCiAgCiAgICAgICAgLyogVWdo LCB3ZSBoYXZlIHRvIGNvbnZlcnQgYmFjayB0byBhIHZhbHVlIGhlcmUuICAqLwogICAgICAgIHZh bHVlID0gdmFsdWVfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcyAodHlwZSwgdmFsYWRkciArIG9m ZnNldCwKLUBAIC00NjUsNyArNDY2LDcgQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0 cnVjdCB0eXBlCitAQCAtNDYyLDcgKzQ2Myw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRp IChzdHJ1Y3QgdHlwZQogIAogIHN0YXRpYyB2b2lkCiAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlLApAQCAtMTU4Niw3ICsxNTc5LDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC12YWxwcmludC5jCiAgCQlDT1JF X0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCWludCByZWN1cnNlLCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotQEAgLTQ3NSw3ICs0NzYsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjCitAQCAtNDcyLDcgKzQ3Myw3IEBAIGNwX3ByaW50X3ZhbHVlIChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMKICAgICAgPSAoc3RydWN0IHR5cGUgKiopIG9ic3RhY2tf bmV4dF9mcmVlICgmZG9udF9wcmludF92Yl9vYnN0YWNrKTsKICAgIHN0cnVjdCBvYnN0YWNrIHRt cF9vYnN0YWNrID0gZG9udF9wcmludF92Yl9vYnN0YWNrOwogICAgaW50IGksIG5fYmFzZWNsYXNz ZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOwpAQCAtMTU5NSw3ICsxNTg4LDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC12YWxwcmludC5jCiAgICBzdHJ1Y3Qg dHlwZSAqdGhpc3R5cGU7CiAgCiAgICBpZiAoZG9udF9wcmludF92YiA9PSAwKQotQEAgLTQ4OSw3 ICs0OTAsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjCitAQCAt NDg2LDcgKzQ4Nyw3IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWMK ICAKICAgIGZvciAoaSA9IDA7IGkgPCBuX2Jhc2VjbGFzc2VzOyBpKyspCiAgICAgIHsKQEAgLTE2 MDQsMTAgKzE1OTcsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcC12 YWxwcmludC5jCiAgICAgICAgaW50IHNraXA7CiAgICAgICAgc3RydWN0IHR5cGUgKmJhc2VjbGFz cyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpKSk7CiAgICAgICAgY29u c3QgY2hhciAqYmFzZW5hbWUgPSBUWVBFX05BTUUgKGJhc2VjbGFzcyk7Ci1JbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5v cmlnL2dkYi9kLWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzNjI5MjIwMSArMDIwMAotKysr IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kLWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjMy LjM1MzMwMDcyNyArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZC1sYW5n LmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNTE5MTExMDQgKzAxMDAKKysrKyBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9kLWxhbmcuaAkyMDE0LTAyLTA2IDE4OjA3OjU4LjkwODkxNjAwMSArMDEwMAog QEAgLTI1LDcgKzI1LDcgQEAKICBleHRlcm4gY2hhciAqZF9kZW1hbmdsZSAoY29uc3QgY2hhciAq bWFuZ2xlZCwgaW50IG9wdGlvbnMpOwogIApAQCAtMTYxNywxMCArMTYxMCwxMCBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2QtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJ CQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9kLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40MzYy OTIyMDEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZC12YWxwcmludC5j CTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzUzMzAwNzI3ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNTE5MTExMDQg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kLXZhbHByaW50LmMJMjAxNC0wMi0w NiAxODowNzo1OC45MDk5MTYwMDEgKzAxMDAKIEBAIC0yOSw3ICsyOSw3IEBACiAgCiAgc3RhdGlj IGludApAQCAtMTY0MywxMSArMTYzNiwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2QtdmFscHJpbnQuYwogICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBpbnQgcmV0OwotSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9kb3VibGVzdC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvZG91Ymxlc3QuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9y aWcvZ2RiL2RvdWJsZXN0LmMJMjAxMy0wOC0wMiAxNjozODoyNi40MzYyOTIyMDEgKzAyMDAKLSsr KyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZG91Ymxlc3QuYwkyMDEzLTA4LTAyIDE2OjM4 OjMyLjM1NDMwMDcyOSArMDIwMAotQEAgLTc0NCw3ICs3NDQsNyBAQCBmbG9hdGZvcm1hdF9mcm9t X2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L2RvdWJsZXN0LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNTE5MTExMDQgKzAxMDAKKysrKyBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9kb3VibGVzdC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTA5OTE2 MDAxICswMTAwCitAQCAtNzY3LDcgKzc2Nyw3IEBAIGZsb2F0Zm9ybWF0X2Zyb21fZG91Ymxlc3Qg KGNvbnN0IHN0cnVjdAogICAgIGJ1dCBub3QgcGFzc2VkIG9uIGJ5IEdEQi4gIFRoaXMgc2hvdWxk IGJlIGZpeGVkLiAgKi8KICAKICBzdGF0aWMgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoKQEAg LTE2NTYsNyArMTY0OSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZG91 Ymxlc3QuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqZm9ybWF0OwogIAotQEAg LTc3Miw4ICs3NzIsOCBAQCBmbG9hdGZvcm1hdF9mcm9tX2xlbmd0aCAoc3RydWN0IGdkYmFyY2gK K0BAIC03OTUsOCArNzk1LDggQEAgZmxvYXRmb3JtYXRfZnJvbV9sZW5ndGggKHN0cnVjdCBnZGJh cmNoCiAgICBlbHNlCiAgICAgIGZvcm1hdCA9IE5VTEw7CiAgICBpZiAoZm9ybWF0ID09IE5VTEwp CkBAIC0xNjY3LDExICsxNjYwLDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvZG91Ymxlc3QuYwogICAgcmV0dXJuIGZvcm1hdDsKICB9CiAgCi1JbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQzODI5MjIwNCArMDIw MAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJsb2MuYwkyMDEzLTA4LTAy IDE2OjQyOjExLjIxNzYwNzcwMyArMDIwMAotQEAgLTE3MTMsMTkgKzE3MTMsMTkgQEAgaW5zZXJ0 X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1bSwKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2R3YXJmMmxvYy5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzUyOTExMTA1ICswMTAwCisrKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZHdhcmYybG9jLmMJMjAxNC0wMi0wNiAxODowNzo1OC45 MTA5MTYwMDMgKzAxMDAKK0BAIC0xNzA5LDE5ICsxNzA5LDE5IEBAIGluc2VydF9iaXRzICh1bnNp Z25lZCBpbnQgZGF0dW0sCiAgICAgQklUU19CSUdfRU5ESUFOIGlzIHRha2VuIGRpcmVjdGx5IGZy b20gZ2RiYXJjaC4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTE2OTcsNyArMTY5MCw3IEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYybG9jLmMKICAKICAgIGRlc3Rf YXZhaWwgPSA4IC0gZGVzdF9vZmZzZXRfYml0cyAlIDg7CiAgCi1AQCAtMTc2MywxMyArMTc2Mywx MyBAQCBzdGF0aWMgdm9pZAorQEAgLTE3NTksMTMgKzE3NTksMTMgQEAgc3RhdGljIHZvaWQKICBy ZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogIHsKICAgIGludCBpOwpAQCAtMTcx Myw3ICsxNzA2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJs b2MuYwogICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9ieXRlICpidWZmZXIgPSBO VUxMOwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTc5Niw4ICsxNzk2LDggQEAg cmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKK0BAIC0xNzkyLDggKzE3OTIsOCBA QCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogICAgZm9yIChpID0gMDsgaSA8 IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAgICBz dHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzI0LDcgKzE3 MTcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJmMmxvYy5jCiAg ICAgICAgY29uc3QgZ2RiX2J5dGUgKmludGVybWVkaWF0ZV9idWZmZXI7CiAgCiAgICAgICAgLyog Q29tcHV0ZSBzaXplLCBzb3VyY2UsIGFuZCBkZXN0aW5hdGlvbiBvZmZzZXRzIGZvciBjb3B5aW5n LCBpbgotQEAgLTE5NDYsMTMgKzE5NDYsMTMgQEAgc3RhdGljIHZvaWQKK0BAIC0xOTQyLDEzICsx OTQyLDEzIEBAIHN0YXRpYyB2b2lkCiAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCiAgewogICAgaW50IGk7CkBAIC0xNzQwLDcgKzE3MzMs NyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJmMmxvYy5jCiAgICBz aXplX3QgYnVmZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBz dHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKLUBAIC0xOTgwLDggKzE5ODAsOCBAQCB3cml0ZV9waWVj ZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0CitAQCAtMTk3Niw4ICsxOTc2LDggQEAgd3Jp dGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogICAgZm9yIChpID0gMDsgaSA8 IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAgICBz dHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzUxLDcgKzE3 NDQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJmMmxvYy5jCiAg ICAgICAgaW50IG5lZWRfYml0d2lzZTsKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlX2J1 ZmZlcjsKICAKLUBAIC0yMTEwLDggKzIxMTAsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVj dCB2YWx1ZSAqdG8sIHN0CitAQCAtMjEwNyw4ICsyMTA3LDggQEAgd3JpdGVfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAogICAgIGltcGxpY2l0IHBvaW50ZXIuICAqLwogIAogIHN0 YXRpYyBpbnQKQEAgLTE3NjIsNyArMTc1NSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvZHdhcmYybG9jLmMKICAJCQkgZW51bSBkd2FyZl92YWx1ZV9sb2NhdGlvbiBjaGVj a19mb3IpCiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKLUBAIC0yMTI3LDcgKzIxMjcs NyBAQCBjaGVja19waWVjZWRfdmFsdWVfYml0cyAoY29uc3Qgc3RydWN0IHZhCitAQCAtMjEyNCw3 ICsyMTI0LDcgQEAgY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0IHN0cnVjdCB2YQogICAg Zm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAg IHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBA IC0xNzcxLDcgKzE3NjQsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3 YXJmMmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjE2NSw4 ICsyMTY1LDggQEAgY2hlY2tfcGllY2VkX3ZhbHVlX2JpdHMgKGNvbnN0IHN0cnVjdCB2YQorQEAg LTIxNjIsOCArMjE2Miw4IEBAIGNoZWNrX3BpZWNlZF92YWx1ZV9iaXRzIChjb25zdCBzdHJ1Y3Qg dmEKICB9CiAgCiAgc3RhdGljIGludApAQCAtMTc4Miw3ICsxNzc1LDcgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJsb2MuYwogIHsKICAgIHJldHVybiBjaGVja19w aWVjZWRfdmFsdWVfYml0cyAodmFsdWUsIGJpdF9vZmZzZXQsIGJpdF9sZW5ndGgsCiAgCQkJCSAg RFdBUkZfVkFMVUVfTUVNT1JZKTsKLUBAIC0yMTg0LDggKzIxODQsOCBAQCBjaGVja19waWVjZWRf dmFsdWVfaW52YWxpZCAoY29uc3Qgc3RydWN0CitAQCAtMjE4MSw4ICsyMTgxLDggQEAgY2hlY2tf cGllY2VkX3ZhbHVlX2ludmFsaWQgKGNvbnN0IHN0cnVjdAogICAgIGEgc3ludGhldGljIHBvaW50 ZXIuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTE3OTMsNyArMTc4Niw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYybG9jLmMKICB7CiAgICByZXR1cm4gY2hlY2tf cGllY2VkX3ZhbHVlX2JpdHMgKHZhbHVlLCBiaXRfb2Zmc2V0LCBiaXRfbGVuZ3RoLAogIAkJCQkg IERXQVJGX1ZBTFVFX0lNUExJQ0lUX1BPSU5URVIpOwotQEAgLTIyMTAsOSArMjIxMCwxMCBAQCBp bmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtMjIwNyw5ICsyMjA3 LDEwIEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKICAgIHN0cnVj dCB0eXBlICp0eXBlOwogICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwogICAgc3RydWN0IGR3 YXJmMl9sb2NleHByX2JhdG9uIGJhdG9uOwpAQCAtMTgwNiw3ICsxNzk5LDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kd2FyZjJsb2MuYwogIAogICAgdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSk7CiAgICBpZiAoVFlQRV9DT0RFICh0eXBlKSAh PSBUWVBFX0NPREVfUFRSKQotQEAgLTIyMjYsNyArMjIyNyw3IEBAIGluZGlyZWN0X3BpZWNlZF92 YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMjIzLDcgKzIyMjQsNyBAQCBpbmRpcmVjdF9w aWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9w aWVjZXMgJiYgYml0X2xlbmd0aCA+IDA7IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2Fy Zl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE4MTUsNyArMTgwOCw3IEBAIElu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYybG9jLmMKICAKICAgICAgICBp ZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0yNDY3LDcgKzI0NjgsNyBAQCBkd2FyZjJfZXZh bHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CitAQCAtMjQ5MSw3ICsyNDkyLDcgQEAgZHdh cmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkgICAgc3RydWN0IHZhbHVl ICp2YWx1ZSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7CiAgCSAgICBnZGJfYnl0ZSAqY29u dGVudHM7CiAgCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsX2J5dGVzOwpAQCAtMTgyNCwxMSArMTgx NywxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2R3YXJmMmxvYy5jCiAg CiAgCSAgICBpZiAoYnl0ZV9vZmZzZXQgKyBUWVBFX0xFTkdUSCAodHlwZSkgPiBuKQogIAkgICAg ICBpbnZhbGlkX3N5bnRoZXRpY19wb2ludGVyICgpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9k d2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmln L2dkYi9kd2FyZjJyZWFkLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDEyOTIyMDggKzAyMDAKLSsr KyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5jCTIwMTMtMDgtMDIgMTY6 Mzg6MzIuMzU4MzAwNzM1ICswMjAwCi1AQCAtMTI1OCwxMiArMTI1OCwxMiBAQCBkd2FyZjJfY29t cGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNTY5MTExMDkgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kd2FyZjJyZWFkLmMJMjAxNC0wMi0wNiAxODow Nzo1OC45MTM5MTYwMDYgKzAxMDAKK0BAIC0xODkzLDEyICsxODkzLDEyIEBAIGR3YXJmMl9jb21w bGV4X2xvY2F0aW9uX2V4cHJfY29tcGxhaW50ICgKICB9CiAgCiAgc3RhdGljIHZvaWQKQEAgLTE4 NDUsNyArMTgzOCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYy cmVhZC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTEyMTUsOCArMTEyMTUsOCBAQCBkd2Fy ZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCitAQCAtMTIxOTAsOCArMTIxOTAs OCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCiAgCSAgICAgICAg IG9iamVjdCwgYW5kIHRoZW4gc3VidHJhY3Qgb2ZmIHRoZSBudW1iZXIgb2YgYml0cyBvZgogIAkg ICAgICAgICB0aGUgZmllbGQgaXRzZWxmLiAgVGhlIHJlc3VsdCBpcyB0aGUgYml0IG9mZnNldCBv ZgogIAkgICAgICAgICB0aGUgTFNCIG9mIHRoZSBmaWVsZC4gICovCkBAIC0xODU2LDExICsxODQ5 LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZHdhcmYycmVhZC5jCiAg CiAgCSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsK ICAJICAgICAgaWYgKGF0dHIpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2 YWwuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2V2YWwuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2V2YWwuYwkyMDEzLTA4LTAyIDE2 OjM4OjI2LjQ0MzI5MjIxMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9l dmFsLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNTkzMDA3MzYgKzAyMDAKLUBAIC0yOTQsNyArMjk0 LDggQEAgZXZhbHVhdGVfc3RydWN0X3R1cGxlIChzdHJ1Y3QgdmFsdWUgKnN0cgorLS0tIGdkYi03 LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvZXZhbC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzU4OTEx MTExICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZXZhbC5jCTIwMTQtMDItMDYg MTg6MDc6NTguOTE0OTE2MDA3ICswMTAwCitAQCAtMjk4LDcgKzI5OCw4IEBAIGV2YWx1YXRlX3N0 cnVjdF90dXBsZSAoc3RydWN0IHZhbHVlICpzdHIKICAgIHdoaWxlICgtLW5hcmdzID49IDApCiAg ICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7CkBAIC0xODcwLDcgKzE4NjMs NyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V2YWwuYwogICAgICAgIGJm ZF9ieXRlICphZGRyOwogIAogICAgICAgIGZpZWxkbm8rKzsKLUBAIC0zNTYsNyArMzU3LDcgQEAg aW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAorQEAgLTM2MCw3ICszNjEs NyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksCiAgCQkgICAgZW51 bSBub3NpZGUgbm9zaWRlLCBMT05HRVNUIGxvd19ib3VuZCwgTE9OR0VTVCBoaWdoX2JvdW5kKQog IHsKICAgIExPTkdFU1QgaW5kZXg7CkBAIC0xODc5LDcgKzE4NzIsNyBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2V2YWwuYwogIAogICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5v cGNvZGUgPT0gQklOT1BfQ09NTUEpCiAgICAgIHsKLUBAIC03MTMsMTEgKzcxNCwxMSBAQCBiaW5v cF9wcm9tb3RlIChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmCitAQCAtNzE4LDExICs3MTksMTEg QEAgYmlub3BfcHJvbW90ZSAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZgogICAgICAvKiBGSVhN RTogQWxzbyBtaXhlZCBpbnRlZ3JhbC9ib29sZWFucywgd2l0aCByZXN1bHQgYW4gaW50ZWdlci4g ICovCiAgICAgIHsKICAgICAgICBjb25zdCBzdHJ1Y3QgYnVpbHRpbl90eXBlICpidWlsdGluID0g YnVpbHRpbl90eXBlIChnZGJhcmNoKTsKQEAgLTE4OTQsNyArMTg4Nyw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXZhbC5jCiAgICAgICAgaW50IHVuc2lnbmVkX29wZXJh dGlvbjsKICAKICAgICAgICAvKiBEZXRlcm1pbmUgdHlwZSBsZW5ndGggYW5kIHNpZ25lZG5lc3Mg YWZ0ZXIgcHJvbW90aW9uIGZvcgotQEAgLTkwMCw3ICs5MDEsNyBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtOTA1LDcgKzkwNiw3IEBAIGV2YWx1YXRlX3N1 YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3ZlYzsK ICAgIGludCBjb2RlOwogICAgaW50IGl4OwpAQCAtMTkwMyw3ICsxODk2LDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ldmFsLmMKICAgIHN0cnVjdCB0eXBlICoqYXJnX3R5 cGVzOwogICAgaW50IHNhdmVfcG9zMTsKICAgIHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9uID0gTlVM TDsKLUBAIC0xMDgwLDcgKzEwODEsNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVj dCB0eXBlICplCitAQCAtMTA4NSw3ICsxMDg2LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJk IChzdHJ1Y3QgdHlwZSAqZQogIAkgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRF WF9UWVBFICh0eXBlKTsKICAJICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJH RVRfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHZhbHVlICphcnJheSA9IGFsbG9jYXRlX3ZhbHVl IChleHBlY3RfdHlwZSk7CkBAIC0xOTEyLDcgKzE5MDUsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2V2YWwuYwogIAkgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5k LCBpbmRleDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxv d19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUBAIC0yMDc1LDcgKzIwNzYsOCBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtMjA4MCw3ICsyMDgxLDggQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQogICAgICAgIHsKICAgICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnMSk7CiAgICAgICAgICBzdHJ1 Y3QgdHlwZSAqcmVhbF90eXBlOwpAQCAtMTkyMiwxMSArMTkxNSwxMSBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2V2YWwuYwogIAlzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyBvcHRzOwogIAogIAlnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7Ci1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvZi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy5vcmlnL2dkYi9mLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ0MzI5MjIxMSArMDIwMAot KysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM4 OjMyLjM1OTMwMDczNiArMDIwMAotQEAgLTEwMyw3ICsxMDMsNyBAQCBmX3ByaW50Y2hhciAoaW50 IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9mLWxhbmcuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM1ODkxMTExMSArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2YtbGFuZy5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTE0OTE2MDA3 ICswMTAwCitAQCAtMTA0LDcgKzEwNCw3IEBAIGZfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5 cGUgKnR5cGUsIHMKICAKICBzdGF0aWMgdm9pZAogIGZfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAt MTkzNSwxMCArMTkyOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2Yt bGFuZy5jCiAgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK ICB7CiAgICBjb25zdCBjaGFyICp0eXBlX2VuY29kaW5nID0gZl9nZXRfZW5jb2RpbmcgKHR5cGUp OwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mLWxhbmcuaAorSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvZi1sYW5nLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NDMy OTIyMTEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZi1sYW5nLmgJMjAx My0wOC0wMiAxNjozODozMi4zNTkzMDA3MzYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3 Lm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzU4OTExMTExICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZi1sYW5nLmgJMjAxNC0wMi0wNiAxODowNzo1OC45 MTQ5MTYwMDcgKzAxMDAKIEBAIC0zMyw3ICszMyw3IEBAIGV4dGVybiBjb25zdCBjaGFyICpmX29i amVjdF9hZGRyZXNzX2RhdGEKICAgIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSk7CiAgZXh0ZXJuIHZvaWQgZl9vYmplY3RfYWRkcmVzc19kYXRhX3ZhbGlkX29yX2Vy cm9yIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CkBAIC0xOTQ4LDEwICsxOTQxLDEwIEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZi1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUg KiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2YtdmFscHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2YtdmFs cHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ0NDI5MjIxMiArMDIwMAotKysrIGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9mLXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNTkz MDA3MzYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2YtdmFscHJpbnQu YwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM1OTkxMTExMiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL2YtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkxNTkxNjAwOCArMDEw MAogQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHZvaWQgZjc3X2NyZWF0ZV9hcnJheXByaW50X29m ZnNldAogIAkJCQkJICAgICAgc3RydWN0IHVpX2ZpbGUgKik7CiAgc3RhdGljIHZvaWQgZjc3X2dl dF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwpAQCAtMjAxNiwx MSArMjAwOSwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2YtdmFscHJp bnQuYwogIAogICAgICAgICAgICB2YWxfcHJpbnQgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaW5k ZXgpLCB2YWxhZGRyLAogIAkJICAgICBlbWJlZGRlZF9vZmZzZXQgKyBvZmZzZXQsCi1JbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2ZpbmR2YXIuYworSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2ZpbmR2YXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ0NDI5MjIxMiAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9maW5kdmFyLmMJMjAxMy0wOC0w MiAxNjozODozMi4zNjAzMDA3MzggKzAyMDAKLUBAIC02NTIsNyArNjUyLDcgQEAgZGVmYXVsdF92 YWx1ZV9mcm9tX3JlZ2lzdGVyIChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvZmluZHZhci5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzU5OTExMTEyICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZmluZHZhci5jCTIwMTQtMDItMDYgMTg6MDc6NTgu OTE1OTE2MDA4ICswMTAwCitAQCAtNjIzLDcgKzYyMyw3IEBAIGRlZmF1bHRfdmFsdWVfZnJvbV9y ZWdpc3RlciAoc3RydWN0IHR5cGUKICAJCQkgICAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkK ICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7 CkBAIC0yMDI5LDcgKzIwMjIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2ZpbmR2YXIuYwogICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGFsbG9jYXRlX3ZhbHVlICh0eXBl KTsKICAKICAgIFZBTFVFX0xWQUwgKHZhbHVlKSA9IGx2YWxfcmVnaXN0ZXI7Ci1AQCAtNjg1LDEw ICs2ODUsMTAgQEAgdm9pZAorQEAgLTY1NiwxMCArNjU2LDEwIEBAIHZvaWQKICByZWFkX2ZyYW1l X3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUpCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAo ZnJhbWUpOwpAQCAtMjA0Myw3ICsyMDM2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9maW5kdmFyLmMKICAKICAgIGdkYl9hc3NlcnQgKFZBTFVFX0xWQUwgKHZhbHVlKSA9 PSBsdmFsX3JlZ2lzdGVyKTsKICAKLUBAIC03MDMsNyArNzAzLDcgQEAgcmVhZF9mcmFtZV9yZWdp c3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlCitAQCAtNjc0LDcgKzY3NCw3IEBAIHJlYWRfZnJhbWVf cmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZQogICAgd2hpbGUgKGxlbiA+IDApCiAgICAgIHsK ICAgICAgICBzdHJ1Y3QgdmFsdWUgKnJlZ3ZhbCA9IGdldF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAo ZnJhbWUsIHJlZ251bSk7CkBAIC0yMDUyLDExICsyMDQ1LDExIEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvZmluZHZhci5jCiAgCiAgICAgICAgaWYgKHZhbHVlX29wdGltaXpl ZF9vdXQgKHJlZ3ZhbCkpCiAgCXsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv ZnJhbWUuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2ZyYW1lLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9mcmFtZS5jCTIwMTMtMDgt MDIgMTY6Mzg6MjYuNDQ1MjkyMjE0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL2ZyYW1lLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjAzMDA3MzggKzAyMDAKLUBAIC0xMTgy LDcgKzExODIsNyBAQCBkZXByZWNhdGVkX2ZyYW1lX3JlZ2lzdGVyX3JlYWQgKHN0cnVjdCBmCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9mcmFtZS5jCTIwMTQtMDItMDYgMTg6MDc6 NTQuMzYwOTExMTEzICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZnJhbWUuYwky MDE0LTAyLTA2IDE4OjA3OjU4LjkxNTkxNjAwOCArMDEwMAorQEAgLTEyNDcsNyArMTI0Nyw3IEBA IGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3RydWN0IGYKICAKICBpbnQKICBnZXRf ZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251 bSwKQEAgLTIwNjUsNyArMjA1OCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvZnJhbWUuYwogIAkJCSAgaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7 CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1A QCAtMTIxMSw3ICsxMjExLDcgQEAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJh bWVfaQorQEAgLTEyNzYsNyArMTI3Niw3IEBAIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3Ry dWN0IGZyYW1lX2kKICAgICAgfQogICAgaWYgKGxlbiA+IG1heHNpemUpCiAgICAgIGVycm9yIChf KCJCYWQgZGVidWcgaW5mb3JtYXRpb24gZGV0ZWN0ZWQ6ICIKQEAgLTIwNzQsMTEgKzIwNjcsMTEg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9mcmFtZS5jCiAgCiAgICAvKiBD b3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAwKQotSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9mcmFtZS5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv ZnJhbWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2Ri L2ZyYW1lLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NDUyOTIyMTQgKzAyMDAKLSsrKyBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvZnJhbWUuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2MDMwMDcz OCArMDIwMAotQEAgLTUzMiw3ICs1MzIsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVfcmVnaXN0 ZXIgKHN0cnVjdCBmCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9mcmFtZS5oCTIw MTQtMDItMDYgMTg6MDc6NTQuMzYwOTExMTEzICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZnJhbWUuaAkyMDE0LTAyLTA2IDE4OjA3OjU4LjkxNjkxNjAwOSArMDEwMAorQEAgLTU1 Niw3ICs1NTYsNyBAQCBleHRlcm4gdm9pZCBwdXRfZnJhbWVfcmVnaXN0ZXIgKHN0cnVjdCBmCiAg ICAgY29udGVudHMgYXJlIG9wdGltaXplZCBvdXQgb3IgdW5hdmFpbGFibGUsIHNldCAqT1BUSU1J WkVEUCwKICAgICAqVU5BVkFJTEFCTEVQIGFjY29yZGluZ2x5LiAgKi8KICBleHRlcm4gaW50IGdl dF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgcmVn bnVtLApAQCAtMjA4NywxMSArMjA4MCwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2ZyYW1lLmgKICAJCQkJICAgICBnZGJfYnl0ZSAqbXlhZGRyLAogIAkJCQkgICAgIGlu dCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApOwogIAotSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9y aWcvZ2RiL2dkYnR5cGVzLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDYyOTIyMTUgKzAyMDAKLSsr KyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2RidHlwZXMuYwkyMDEzLTA4LTAyIDE2OjM4 OjMyLjM2MTMwMDczOSArMDIwMAotQEAgLTIwOTEsNyArMjA5MSw3IEBAIGFsbG9jYXRlX2duYXRf YXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2dkYnR5cGVzLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNjE5MTExMTQgKzAxMDAKKysrKyBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nZGJ0eXBlcy5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTE2 OTE2MDA5ICswMTAwCitAQCAtMjEwOCw3ICsyMTA4LDcgQEAgYWxsb2NhdGVfZ25hdF9hdXhfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cAogICAgIGxlYXN0IGFzIGxvbmcgYXMgT0JKRklMRS4gICovCiAg CiAgc3RydWN0IHR5cGUgKgpAQCAtMjEwMCw3ICsyMDkzLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5jCiAgCSAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwotQEAgLTIzMjIs OCArMjMyMiw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHMKK0BA IC0yMzM5LDggKzIzMzksOCBAQCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNl LCBzCiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0 eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAtMjExMSw3ICsyMTA0LDcgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5jCiAgCQkJICAgQ09SRV9B RERSIGFkZHJlc3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIGludCBpLCBjb3VudCA9IDA7 Ci1AQCAtMjMzNCw3ICsyMzM0LDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoc3RydWN0 IHR5cGUgKgorQEAgLTIzNTEsNyArMjM1MSw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIg KHN0cnVjdCB0eXBlICoKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX05fQkFTRUNMQVNTRVMgKGRj bGFzcykgJiYgY291bnQgPCAyOyArK2kpCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqaXRl cjsKQEAgLTIxMjAsNyArMjExMyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvZ2RidHlwZXMuYwogIAogICAgICAgIGl0ZXIgPSBjaGVja190eXBlZGVmIChUWVBFX0JBU0VD TEFTUyAoZGNsYXNzLCBpKSk7CiAgCi1AQCAtMjM3NSw3ICsyMzc1LDcgQEAgaXNfdW5pcXVlX2Fu Y2VzdG9yX3dvcmtlciAoc3RydWN0IHR5cGUgKgorQEAgLTIzOTIsNyArMjM5Miw3IEBAIGlzX3Vu aXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKICBpbnQKICBpc191bmlxdWVfYW5j ZXN0b3IgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CkBAIC0yMTI5 LDcgKzIxMjIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dkYnR5cGVz LmMKICAKICAgIHJldHVybiBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChiYXNlLCB2YWx1ZV90 eXBlICh2YWwpLCAmb2Zmc2V0LAogIAkJCQkgICAgdmFsdWVfY29udGVudHNfZm9yX3ByaW50aW5n ICh2YWwpLAotQEAgLTMzMDMsNyArMzMwMyw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVj dCB0eXBlICp0eXBlLAorQEAgLTM1MzAsNyArMzUzMCw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUg KHN0cnVjdCB0eXBlICp0eXBlLAogICAgICAgIGJyZWFrOwogICAgICB9CiAgICBwdXRzX2ZpbHRl cmVkICgiXG4iKTsKQEAgLTIxMzgsNyArMjEzMSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvZ2RidHlwZXMuYwogICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlwZSkp CiAgICAgIHsKICAgICAgICBwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIpOwot QEAgLTM0MjcsOCArMzQyNyw4IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0 eXBlLAorQEAgLTM2NTQsOCArMzY1NCw4IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlLAogIAkJCSAgaWR4LCBwbG9uZ2VzdCAoVFlQRV9GSUVMRF9FTlVNVkFMICh0eXBl LCBpZHgpKSk7CiAgICAgICAgZWxzZQogIAlwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMgKyAyLApA QCAtMjE0OSw3ICsyMTQyLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9n ZGJ0eXBlcy5jCiAgCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlkeCkpOwogICAgICAg IGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaWR4KSwgZ2Ri X3N0ZG91dCk7CiAgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVzJyAoIiwKLUBAIC0z OTQyLDcgKzM5NDIsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAg LTQxNjksNyArNDE2OSw3IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCiAg CiAgc3RydWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCkBA IC0yMTU4LDEwICsyMTUxLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv Z2RidHlwZXMuYwogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogIAotSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZ2RidHlwZXMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NDcyOTIyMTcgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ2RidHlwZXMuaAkyMDEzLTA4LTAyIDE2 OjM4OjMyLjM2MTMwMDczOSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv Z2RidHlwZXMuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2MjkxMTExNSArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYnR5cGVzLmgJMjAxNC0wMi0wNiAxODoxMTo0Ni40MzExNjA2 NTAgKzAxMDAKIEBAIC02MDYsNyArNjA2LDcgQEAgc3RydWN0IG1haW5fdHlwZQogIAkgICBnZGJh cmNoX2JpdHNfYmlnX2VuZGlhbj0wIHRhcmdldHMsIGl0IGlzIHRoZSBiaXQgb2Zmc2V0IHRvCiAg CSAgIHRoZSBMU0IuICAqLwpAQCAtMjE4MCw4ICsyMTczLDggQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9nZGJ0eXBlcy5oCiAgCiAgICAvKiBDb3JlIHR5cGUsIHNoYXJlZCBi eSBhIGdyb3VwIG9mIHF1YWxpZmllZCB0eXBlcy4gICovCiAgICBzdHJ1Y3QgbWFpbl90eXBlICpt YWluX3R5cGU7Ci1AQCAtMTU0MiwxMSArMTU0MiwxMiBAQCBleHRlcm4gc3RydWN0IHR5cGUgKmFs bG9jX3R5cGVfY29weSAoY29uCi0gZXh0ZXJuIHN0cnVjdCBnZGJhcmNoICpnZXRfdHlwZV9hcmNo IChjb25zdCBzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xNTQ2LDExICsxNTQ2LDEyIEBAIGV4dGVybiBz dHJ1Y3QgZ2RiYXJjaCAqZ2V0X3R5cGVfYXJjaCAoY28KKyBleHRlcm4gc3RydWN0IHR5cGUgKmdl dF90YXJnZXRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUpOwogIAogIC8qIEhlbHBlciBmdW5jdGlv biB0byBjb25zdHJ1Y3Qgb2JqZmlsZS1vd25lZCB0eXBlcy4gICovCiAtZXh0ZXJuIHN0cnVjdCB0 eXBlICppbml0X3R5cGUgKGVudW0gdHlwZV9jb2RlLCBpbnQsIGludCwgY29uc3QgY2hhciAqLApA QCAtMjE5NSwxMCArMjE4OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2dkYnR5cGVzLmgKICBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdlcl90eXBlIChzdHJ1 Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmFy Y2hfY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwog IGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9ib29sZWFuX3R5cGUgKHN0cnVjdCBnZGJhcmNoICos IGludCwgaW50LCBjaGFyICopOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9n bnUtdjItYWJpLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nbnUtdjItYWJpLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9nbnUtdjIt YWJpLmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDcyOTIyMTcgKzAyMDAKLSsrKyBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvZ251LXYyLWFiaS5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzYyMzAw NzQwICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9nbnUtdjItYWJpLmMJ MjAxNC0wMi0wNiAxODowNzo1NC4zNjI5MTExMTUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9nbnUtdjItYWJpLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MTc5MTYwMTAgKzAxMDAK IEBAIC04NSw3ICs4NSw3IEBAIGdudXYyX2lzX29wZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIgKm5h bWUKICAgICBUWVBFIGlzIHRoZSB0eXBlIGluIHdoaWNoIEYgaXMgbG9jYXRlZC4gICovCiAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0yMjUwLDEwICsyMjQzLDEwIEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nf b2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRy ZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nbnUtdjMt YWJpLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nbnUtdjMtYWJpLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJ MjAxMy0wOC0wMiAxNjozODoyNi40NDgyOTIyMTggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvZ251LXYzLWFiaS5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzYyMzAwNzQwICsw MjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNC0w Mi0wNiAxODowNzo1NC4zNjM5MTExMTYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9nbnUtdjMtYWJpLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MTg5MTYwMTEgKzAxMDAKIEBAIC0x MTIsNyArMTEyLDcgQEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqYQog IHsKICAgIHN0cnVjdCB0eXBlICp0OwpAQCAtMjMyOCwxMCArMjMyMSwxMCBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dudS12My1hYmkuYwogICAgICAgIHN0cnVjdCB0eXBl ICpiYXNldHlwZTsKICAKICAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKGRvbWFpbiwg aSkpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2dvLWxhbmcuaAorSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dvLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjI2 LjQ0ODI5MjIxOCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9nby1sYW5n LmgJMjAxMy0wOC0wMiAxNjozODozMi4zNjIzMDA3NDAgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2MzkxMTExNiAr MDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dvLWxhbmcuaAkyMDE0LTAyLTA2IDE4 OjA3OjU4LjkxODkxNjAxMSArMDEwMAogQEAgLTgzLDcgKzgzLDcgQEAgZXh0ZXJuIHZvaWQgZ29f cHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKgogIC8qIERlZmluZWQgaW4gZ28tdmFscHJpbnQuYy4g ICovCiAgCkBAIC0yMzQxLDEwICsyMzM0LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvZ28tbGFuZy5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9nby12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv Z28tdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9y aWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDgyOTIyMTggKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvZ28tdmFscHJpbnQuYwkyMDEzLTA4LTAy IDE2OjM4OjMyLjM2MjMwMDc0MCArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvZ28tdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2MzkxMTExNiArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1 OC45MTg5MTYwMTEgKzAxMDAKIEBAIC0zNyw3ICszNyw3IEBACiAgCiAgc3RhdGljIHZvaWQKQEAg LTIzNjcsMTAgKzIzNjAsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9n by12YWxwcmludC5jCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQogIHsKICAgIENIRUNLX1RZUEVERUYgKHR5cGUpOwotSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9pMzg2LW5hdC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvaTM4Ni1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9y aWcvZ2RiL2kzODYtbmF0LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NDgyOTIyMTggKzAyMDAKLSsr KyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni1uYXQuYwkyMDEzLTA4LTAyIDE2OjM4 OjMyLjM2MjMwMDc0MCArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvaTM4 Ni1uYXQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2MzkxMTExNiArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2kzODYtbmF0LmMJMjAxNC0wMi0wNiAxODowNzo1OC45MTg5MTYwMTEg KzAxMDAKIEBAIC0yOTAsNyArMjkwLDcgQEAgc3RhdGljIGludCBpMzg2X3JlbW92ZV9hbGlnbmVk X3dhdGNocG9pbgogICAgIHZhbGlkIHZhbHVlLCBib21icyB0aHJvdWdoIGludGVybmFsX2Vycm9y LiAgKi8KICBzdGF0aWMgaW50IGkzODZfaGFuZGxlX25vbmFsaWduZWRfd2F0Y2hwb2ludCAoc3Ry dWN0IGkzODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZSwKQEAgLTI0MDAsMTAgKzIzOTMsMTAgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pMzg2LW5hdC5jCiAgewogICAgc3Ry dWN0IGkzODZfZGVidWdfcmVnX3N0YXRlICpzdGF0ZQogICAgICA9IGkzODZfZGVidWdfcmVnX3N0 YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvaW5mLXR0cmFjZS5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvaW5mLXR0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMu b3JpZy9nZGIvaW5mLXR0cmFjZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDQ5MjkyMjIwICswMjAw Ci0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2luZi10dHJhY2UuYwkyMDEzLTA4LTAy IDE2OjM4OjMyLjM2MzMwMDc0MiArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvaW5mLXR0cmFjZS5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY0OTExMTE3ICswMTAwCisrKysg Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaW5mLXR0cmFjZS5jCTIwMTQtMDItMDYgMTg6MDc6NTgu OTE4OTE2MDExICswMTAwCiBAQCAtMzY1LDcgKzM2NSw3IEBAIGluZl90dHJhY2VfY2FuX3VzZV9o d19icmVha3BvaW50IChpbnQgdHkKICB9CiAgCkBAIC0yNDEzLDEwICsyNDA2LDEwIEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaW5mLXR0cmFjZS5jCiAgewogICAgcmV0dXJu IDE7CiAgfQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9qdi1sYW5nLmMKK0lu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9qdi1sYW5nLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxMy0wOC0wMiAxNjoz ODoyNi40NDkyOTIyMjAgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvanYt bGFuZy5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzYzMzAwNzQyICswMjAwCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNjQ5MTEx MTcgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9qdi1sYW5nLmMJMjAxNC0wMi0w NiAxODowNzo1OC45MTk5MTYwMTIgKzAxMDAKIEBAIC00MzYsNyArNDM2LDcgQEAgamF2YV9saW5r X2NsYXNzX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZm9yIChpID0gVFlQRV9OX0JBU0VD TEFTU0VTICh0eXBlKTsgaSA8IG5maWVsZHM7IGkrKykKICAgICAgewpAQCAtMjQzNSwxMCArMjQy OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2p2LWxhbmcuYwogIAkg ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAg Y29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvanYtbGFuZy5oCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvanYtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMub3JpZy9nZGIvanYtbGFuZy5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDQ5Mjky MjIwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2p2LWxhbmcuaAkyMDEz LTA4LTAyIDE2OjM4OjMyLjM2MzMwMDc0MiArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvanYtbGFuZy5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY0OTExMTE3ICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvanYtbGFuZy5oCTIwMTQtMDItMDYgMTg6MDc6NTgu OTE5OTE2MDEyICswMTAwCiBAQCAtNDIsOCArNDIsOCBAQCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5 cGUKICAKICBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5famF2YV90eXBlICpidWlsdGluX2ph dmFfdHlwZSAoc3RydWN0IGdkYmFyY2ggKik7CkBAIC0yNDUwLDEwICsyNDQzLDEwIEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvanYtbGFuZy5oCiAgCQkJICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq KTsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvanYtdmFscHJpbnQuYwor SW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2p2LXZhbHByaW50LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9qdi12YWxwcmludC5jCTIwMTMt MDgtMDIgMTY6Mzg6MjYuNDUwMjkyMjIxICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2p2LXZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjMzMDA3NDIgKzAyMDAK Ky0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNC0wMi0w NiAxODowNzo1NC4zNjU5MTExMTkgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9q di12YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTE5OTE2MDEyICswMTAwCiBAQCAtMjY2 LDcgKzI2Niw3IEBAIGphdmFfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHIKICAK ICBzdGF0aWMgdm9pZApAQCAtMjQ2Myw3ICsyNDU2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9qdi12YWxwcmludC5jCiAgCQkJIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLAogIAkJCSBpbnQgcmVjdXJzZSwKICAJCQkgY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwsCi1AQCAtNDY1LDcgKzQ2NSw3IEBAIGphdmFfcHJpbnRfdmFsdWVfZmllbGRz IChzdHJ1Y3QgdHlwZSAqdHkKK0BAIC00NTksNyArNDU5LDcgQEAgamF2YV9wcmludF92YWx1ZV9m aWVsZHMgKHN0cnVjdCB0eXBlICp0eQogIAogIHZvaWQKICBqYXZhX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjQ3MiwxMSArMjQ2NSwx MSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2p2LXZhbHByaW50LmMKICAJ CXN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJY29uc3Qgc3RydWN0IHZh bHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbGFuZ3VhZ2UuYworSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYu NDUwMjkyMjIxICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2xhbmd1YWdl LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjQzMDA3NDMgKzAyMDAKLUBAIC03MjEsNyArNzIxLDcg QEAgdW5rX2xhbmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2NTkx MTExOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2xhbmd1YWdlLmMJMjAxNC0w Mi0wNiAxODowNzo1OC45MTk5MTYwMTIgKzAxMDAKK0BAIC03MjIsNyArNzIyLDcgQEAgdW5rX2xh bmdfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKgogIAogIHN0YXRpYyB2b2lkCiAgdW5r X2xhbmdfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBl LApAQCAtMjQ4NSw3ICsyNDc4LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9sYW5ndWFnZS5jCiAgCQkgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlw c2VzLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAg ewotQEAgLTc0MCw3ICs3NDAsNyBAQCB1bmtfbGFuZ19wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAq dHlwZSwKK0BAIC03NDEsNyArNzQxLDcgQEAgdW5rX2xhbmdfcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUsCiAgCiAgc3RhdGljIHZvaWQKICB1bmtfbGFuZ192YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI0OTQsMTEgKzI0ODcsMTEg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9sYW5ndWFnZS5jCiAgCQkgICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAgY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMpCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2xhbmd1YWdlLmgKK0lu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9sYW5ndWFnZS5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvbGFuZ3VhZ2UuaAkyMDEzLTA4LTAyIDE2 OjM4OjI2LjQ1MDI5MjIyMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9s YW5ndWFnZS5oCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY0MzAwNzQzICswMjAwCi1AQCAtMTc1LDcg KzE3NSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi9sYW5ndWFnZS5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY1OTExMTE5ICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbGFuZ3VhZ2UuaAkyMDE0LTAyLTA2IDE4OjA3OjU4 LjkxOTkxNjAxMiArMDEwMAorQEAgLTE4Miw3ICsxODIsNyBAQCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVm bgogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0pOwogIAogICAgICB2b2lkICgqbGFfcHJp bnRzdHIpIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsCkBA IC0yNTA3LDcgKzI1MDAsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2xh bmd1YWdlLmgKICAJCQkgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywK ICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1AQCAtMjE3LDcg KzIxNyw3IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuCitAQCAtMjI0LDcgKzIyNCw3IEBAIHN0cnVj dCBsYW5ndWFnZV9kZWZuCiAgCiAgICAgIHZvaWQgKCpsYV92YWxfcHJpbnQpIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKICAJCQkgIGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKQEAgLTI1MTYsMTEgKzI1 MDksMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9sYW5ndWFnZS5oCiAg CQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tMi1sYW5nLmMK K0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tMi1sYW5nLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxMy0wOC0wMiAx NjozODoyNi40NTAyOTIyMjEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv bTItbGFuZy5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY0MzAwNzQzICswMjAwCi1AQCAtMTAzLDEw ICsxMDMsMTAgQEAgbTJfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsCistLS0g Z2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNC0wMi0wNiAxODowNzo1 NC4zNjY5MTExMjAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tMi1sYW5nLmMJ MjAxNC0wMi0wNiAxODowNzo1OC45MjA5MTYwMTMgKzAxMDAKK0BAIC0xMDQsMTAgKzEwNCwxMCBA QCBtMl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9p ZAogIG0yX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTI1MzMsNyArMjUyNiw3IEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItbGFuZy5jCiAgICB1bnNpZ25lZCBpbnQgdGhp bmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9IDA7CiAgICBpbnQgbmVlZF9jb21t YSA9IDA7Ci1AQCAtMTIxLDkgKzEyMSw5IEBAIG0yX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBzdHIKK0BAIC0xMjIsOSArMTIyLDkgQEAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cgogICAgICB7CiAgICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJh Y3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAgICAgICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVw ZWF0ZWQuICAqLwpAQCAtMjU0NSw3ICsyNTM4LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi9tMi1sYW5nLmMKICAKICAgICAgICBRVUlUOwogIAotQEAgLTE0OSw3ICsxNDks NyBAQCBtMl9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RyCitAQCAtMTUwLDcg KzE1MCw3IEBAIG0yX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHIKICAJICAg ICAgaW5fcXVvdGVzID0gMDsKICAJICAgIH0KICAJICBtMl9wcmludGNoYXIgKHN0cmluZ1tpXSwg dHlwZSwgc3RyZWFtKTsKQEAgLTI1NTQsMTAgKzI1NDcsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9tMi1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdz X3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2Nv bW1hID0gMTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItbGFuZy5oCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTItbGFuZy5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvbTItbGFuZy5oCTIwMTMtMDgtMDIgMTY6 Mzg6MjYuNDUxMjkyMjIyICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL20y LWxhbmcuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2NDMwMDc0MyArMDIwMAorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvbTItbGFuZy5oCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY2OTEx MTIwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTItbGFuZy5oCTIwMTQtMDIt MDYgMTg6MDc6NTguOTIwOTE2MDEzICswMTAwCiBAQCAtMzMsNyArMzMsNyBAQCBleHRlcm4gdm9p ZCBtMl9wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwCiAgZXh0ZXJuIGludCBtMl9pc19sb25nX3Nl dCAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4dGVybiBpbnQgbTJfaXNfdW5ib3VuZGVkX2FycmF5 IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CkBAIC0yNTY3LDEwICsyNTYwLDEwIEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItbGFuZy5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAq LCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9tMi10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL20yLXR5cGVw cmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIv bTItdHlwZXByaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NTEyOTIyMjIgKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItdHlwZXByaW50LmMJMjAxMy0wOC0wMiAxNjoz ODozMi4zNjQzMDA3NDMgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL20y LXR5cGVwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY2OTExMTIwICswMTAwCisrKysgZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvbTItdHlwZXByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1OC45 MjA5MTYwMTMgKzAxMDAKIEBAIC0yMzMsOSArMjMzLDEyIEBAIHN0YXRpYyB2b2lkIG0yX2FycmF5 IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQ RSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CkBAIC0yNTg3LDEwICsyNTgwLDEw IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTItdHlwZXByaW50LmMKICAg ICAgfQogICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXSBPRiAiKTsKICAgIG0yX3ByaW50 X3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCAiIiwgc3RyZWFtLCBzaG93LCBsZXZlbCwg ZmxhZ3MpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tMi12YWxwcmludC5j CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbTItdmFscHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAx My0wOC0wMiAxNjozODoyNi40NTEyOTIyMjIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvbTItdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2NTMwMDc0NSArMDIw MAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE0LTAy LTA2IDE4OjA3OjU0LjM2NjkxMTEyMCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L20yLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1OC45MjA5MTYwMTMgKzAxMDAKIEBAIC0z NSw3ICszNSw3IEBAIHN0YXRpYyBpbnQgcHJpbnRfdW5wYWNrZWRfcG9pbnRlciAoc3RydWMKICAJ CQkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgc3RhdGljIHZvaWQKQEAgLTI2NTYsMTAg KzI2NDksMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tMi12YWxwcmlu dC5jCiAgCiAgCQkgIC8qIExvb2sgZm9yIGEgTlVMTCBjaGFyLiAgKi8KICAJCSAgZm9yICh0ZW1w X2xlbiA9IDA7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL21lbXJhbmdlLmMK K0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tZW1yYW5nZS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDEzLTA4LTAy IDE2OjM4OjI2LjQ1MTI5MjIyMiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9tZW1yYW5nZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY1MzAwNzQ1ICswMjAwCistLS0gZ2Ri LTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9tZW1yYW5nZS5jCTIwMTQtMDItMDYgMTg6MDc6NTQu MzY2OTExMTIwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWVtcmFuZ2UuYwky MDE0LTAyLTA2IDE4OjA3OjU4LjkyMDkxNjAxMyArMDEwMAogQEAgLTIxLDggKzIxLDggQEAKICAj aW5jbHVkZSAibWVtcmFuZ2UuaCIKICAKQEAgLTI2NzEsMTAgKzI2NjQsMTAgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tZW1yYW5nZS5jCiAgewogICAgVUxPTkdFU1QgaCwg bDsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWVtcmFuZ2UuaAorSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21lbXJhbmdlLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9tZW1yYW5nZS5oCTIwMTMtMDgtMDIgMTY6 Mzg6MjYuNDUyMjkyMjI0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL21l bXJhbmdlLmgJMjAxMy0wOC0wMiAxNjozODozMi4zNjUzMDA3NDUgKzAyMDAKKy0tLSBnZGItNy42 LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNjc5 MTExMjEgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tZW1yYW5nZS5oCTIwMTQt MDItMDYgMTg6MDc6NTguOTIxOTE2MDE0ICswMTAwCiBAQCAtMzAsNyArMzAsNyBAQCBzdHJ1Y3Qg bWVtX3JhbmdlCiAgICBDT1JFX0FERFIgc3RhcnQ7CiAgCkBAIC0yNjk1LDEwICsyNjg4LDEwIEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWVtcmFuZ2UuaAogIAogIC8qIFNv cnQgcmFuZ2VzIGJ5IHN0YXJ0IGFkZHJlc3MsIHRoZW4gY29hbGVzY2UgY29udGlndW91cyBvcgog ICAgIG92ZXJsYXBwaW5nIHJhbmdlcy4gICovCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL21pcHMtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9t aXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMu b3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1MjI5MjIyNCAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIw MTMtMDgtMDIgMTY6Mzg6MzIuMzY1MzAwNzQ1ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEy Ny5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzY3OTExMTIx ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE0 LTAyLTA2IDE4OjA3OjU4LjkyMTkxNjAxNCArMDEwMAogQEAgLTU4OCw3ICs1ODgsNyBAQCBtaXBz X2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1Y3QKICAgICB0aGUgc3BlY2lmaWVkIHJl Z2lvbiBjYW4gYmUgY292ZXJlZCBieSB0aGUgd2F0Y2ggcmVnaXN0ZXJzLiAgKi8KICAKQEAgLTI3 MDgsMTAgKzI3MDEsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9taXBz LWxpbnV4LW5hdC5jCiAgewogICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVtbXlfcmVnczsKICAg IGludCBpOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9vcGVuY2wtbGFuZy5j CitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvb3BlbmNsLWxhbmcuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAx My0wOC0wMiAxNjozODoyNi40NTIyOTIyMjQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvb3BlbmNsLWxhbmcuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2NTMwMDc0NSArMDIw MAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE0LTAy LTA2IDE4OjA3OjU0LjM2NzkxMTEyMSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L29wZW5jbC1sYW5nLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MjE5MTYwMTQgKzAxMDAKIEBAIC04 MCwxMSArODAsMTEgQEAgYnVpbHRpbl9vcGVuY2xfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYgog IAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCkBAIC0yODM4LDExICsyODMxLDExIEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgICAgIGlmICgh dmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoYy0+dmFsLAogIAkJCQkJIGMtPmluZGljZXNb aV0gKiBlbHNpemUgKyBjb21wX29mZnNldCwKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvcC1sYW5nLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9wLWxhbmcuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3AtbGFuZy5j CTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDUzMjkyMjI1ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3AtbGFuZy5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY2MzAwNzQ2ICswMjAw Ci1AQCAtOTUsOCArOTUsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2b2lkKQorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvcC1sYW5nLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNjg5MTEx MjIgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9wLWxhbmcuYwkyMDE0LTAyLTA2 IDE4OjA3OjU4LjkyMTkxNjAxNCArMDEwMAorQEAgLTk2LDggKzk2LDggQEAgcGFzY2FsX21haW5f bmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFSX0JJVCB0aGVu IHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhhcHBlbiBmb3Ig RnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwogIGludApAQCAtMjg1Myw3ICsyODQ2LDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wLWxhbmcuYwogIAkJICAgICAgIHN0 cnVjdCB0eXBlICoqY2hhcl90eXBlLAogIAkJICAgICAgIGNvbnN0IGNoYXIgKiphcnJheW5hbWUp CiAgewotQEAgLTIxNiwxMiArMjE2LDEyIEBAIHBhc2NhbF9wcmludGNoYXIgKGludCBjLCBzdHJ1 Y3QgdHlwZSAqdHkKK0BAIC0yMTcsMTIgKzIxNywxMiBAQCBwYXNjYWxfcHJpbnRjaGFyIChpbnQg Yywgc3RydWN0IHR5cGUgKnR5CiAgCiAgdm9pZAogIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0yODY4LDcgKzI4NjEsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3AtbGFuZy5jCiAgICB1bnNpZ25lZCBp bnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9IDA7CiAgICBpbnQgbmVl ZF9jb21tYSA9IDA7Ci1AQCAtMjQ5LDkgKzI0OSw5IEBAIHBhc2NhbF9wcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwKK0BAIC0yNTAsOSArMjUwLDkgQEAgcGFzY2FsX3ByaW50c3RyIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAogICAgICB7CiAgICAgICAgLyogUG9zaXRpb24gb2YgdGhl IGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAgICAgICAgdG8gc2VlIHdoZXRoZXIgaXQg aXMgcmVwZWF0ZWQuICAqLwpAQCAtMjg4MCw3ICsyODczLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi9wLWxhbmcuYwogICAgICAgIHVuc2lnbmVkIGxvbmcgaW50IGN1cnJl bnRfY2hhcjsKICAKICAgICAgICBRVUlUOwotQEAgLTI4Myw3ICsyODMsNyBAQCBwYXNjYWxfcHJp bnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjg0LDcgKzI4NCw3IEBAIHBhc2Nh bF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJICAgICAgaW5fcXVvdGVzID0g MDsKICAJICAgIH0KICAJICBwYXNjYWxfcHJpbnRjaGFyIChjdXJyZW50X2NoYXIsIHR5cGUsIHN0 cmVhbSk7CkBAIC0yODg5LDEwICsyODgyLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvcC1sYW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQg Kz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcC1sYW5nLmgKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9wLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3AtbGFuZy5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDUzMjky MjI1ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3AtbGFuZy5oCTIwMTMt MDgtMDIgMTY6Mzg6MzIuMzY2MzAwNzQ2ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi9wLWxhbmcuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2ODkxMTEyMiArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3AtbGFuZy5oCTIwMTQtMDItMDYgMTg6MDc6NTguOTIy OTE2MDE2ICswMTAwCiBAQCAtMzUsNyArMzUsNyBAQCBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRf dHlwZSAoc3RydWN0IHR5CiAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50X3R5cGVkZWYgKHN0cnVj dCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJCQkJICBzdHJ1Y3QgdWlfZmlsZSAqKTsKQEAg LTI5MjcsMTAgKzI5MjAsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9w LWxhbmcuaAogIAkJCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLAogIAkJCQkJ ICAgICAgaW50LAogIAkJCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCi1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3AtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzLm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1MzI5 MjIyNSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wLXZhbHByaW50LmMJ MjAxMy0wOC0wMiAxNjozODozMi4zNjYzMDA3NDYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQw MTI3Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2ODkxMTEyMiAr MDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3AtdmFscHJpbnQuYwkyMDE0LTAyLTA2 IDE4OjA3OjU4LjkyMjkxNjAxNiArMDEwMAogQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZQogIAogIHZvaWQKQEAgLTI5OTIsMTAgKzI5ODUs MTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wLXZhbHByaW50LmMKICAg ICAgICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKICAgICAgICBpbnQgc2tpcCA9 IDA7CiAgCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3BwYy1saW51eC1uYXQu YworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3BwYy1saW51eC1uYXQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3BwYy1saW51eC1uYXQu YwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1NDI5MjIyNyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxMy0wOC0wMiAxNjozODozMi4zNjYzMDA3 NDYgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3BwYy1saW51eC1uYXQu YwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM2OTkxMTEyMyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyMjkxNjAxNiAr MDEwMAogQEAgLTE0OTYsNyArMTQ5Niw3IEBAIHBwY19saW51eF9jYW5fdXNlX2h3X2JyZWFrcG9p bnQgKGludCB0eXAKICB9CiAgCkBAIC0zMDA1LDExICsyOTk4LDExIEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvcHBjLWxpbnV4LW5hdC5jCiAgewogICAgLyogSGFuZGxlIHN1 Yi04LWJ5dGUgcXVhbnRpdGllcy4gICovCiAgICBpZiAobGVuIDw9IDApCi1JbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3ByaW50Y21kLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9wcmludGNtZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1NDI5MjIyNyArMDIw MAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcmludGNtZC5jCTIwMTMtMDgtMDIg MTY6Mzg6MzIuMzY3MzAwNzQ4ICswMjAwCi1AQCAtMjkwLDcgKzI5MCw3IEBAIHByaW50X2Zvcm1h dHRlZCAoc3RydWN0IHZhbHVlICp2YWwsIGludAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvcHJpbnRjbWQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3MDkxMTEyNCArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ByaW50Y21kLmMJMjAxNC0wMi0wNiAxODowNzo1OC45 MjM5MTYwMTcgKzAxMDAKK0BAIC0yODksNyArMjg5LDcgQEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1 Y3QgdmFsdWUgKnZhbCwgaW50CiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbCkpOwpAQCAt MzAxOCw3ICszMDExLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcmlu dGNtZC5jCiAgCiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21lbW9yeSkKICAgICAg bmV4dF9hZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAodmFsKSArIGxlbjsKLUBAIC0zNjgsNyArMzY4 LDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29uc3Qgdm9pZCAqdmFsYQorQEAgLTM2Nyw3 ICszNjcsNyBAQCBwcmludF9zY2FsYXJfZm9ybWF0dGVkIChjb25zdCB2b2lkICp2YWxhCiAgewog ICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKICAgIExP TkdFU1QgdmFsX2xvbmcgPSAwOwpAQCAtMzAyNywxMSArMzAyMCwxMSBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3ByaW50Y21kLmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRl X29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAKICAgIC8qIFN0cmluZyBw cmludGluZyBzaG91bGQgZ28gdGhyb3VnaCB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZC4gICov Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Byb2Nmcy5jCitJbmRleDogZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvcHJvY2ZzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9wcm9jZnMuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ1NTI5 MjIyOCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcm9jZnMuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM2ODMwMDc0OSArMDIwMAotQEAgLTQ5MjYsNyArNDkyNiw3IEBAIHBy b2Nmc19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTQtMDItMDYgMTg6MDc6NTQuMzcwOTExMTI0ICsw MTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvcHJvY2ZzLmMJMjAxNC0wMi0wNiAxODow Nzo1OC45MjQ5MTYwMTggKzAxMDAKK0BAIC00OTI0LDcgKzQ5MjQsNyBAQCBwcm9jZnNfcmVtb3Zl X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTMwNDAs MTAgKzMwMzMsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcm9jZnMu YwogIHsKICAgIC8qIFRoZSBtYW4gcGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xhcmlzIDIuNiBhbmQg dXAgc2F5cyB0aGF0IHRoZQogICAgICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0aG91c2FuZHMiIG9m IGhhcmR3YXJlIHdhdGNocG9pbnRzLCBidXQgZ2l2ZXMKLUluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTMt MDgtMDIgMTY6Mzg6MjYuNDU2MjkyMjMwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzY4MzAw NzQ5ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9weXRob24vcHktcHJl dHR5cHJpbnQuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3MTkxMTEyNSArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTQtMDItMDYgMTg6 MDc6NTguOTI0OTE2MDE4ICswMTAwCiBAQCAtNjg4LDcgKzY4OCw3IEBAIHByaW50X2NoaWxkcmVu IChQeU9iamVjdCAqcHJpbnRlciwgY29uc3QKICAKICBpbnQKQEAgLTMwNjIsMTEgKzMwNTUsMTEg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9weXRob24vcHktcHJldHR5cHJp bnQuYwogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9weXRo b24vcHl0aG9uLmgKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9weXRob24vcHl0aG9u LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9weXRo b24vcHl0aG9uLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NTYyOTIyMzAgKzAyMDAKLSsrKyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcHl0aG9uL3B5dGhvbi5oCTIwMTMtMDgtMDIgMTY6Mzg6 MzIuMzY4MzAwNzQ5ICswMjAwCi1AQCAtOTgsNyArOTgsNyBAQCB2b2lkIHNvdXJjZV9weXRob25f c2NyaXB0IChGSUxFICpmaWxlLCBjCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9w eXRob24vcHl0aG9uLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNzE5MTExMjUgKzAxMDAKKysrKyBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi9weXRob24vcHl0aG9uLmgJMjAxNC0wMi0wNiAxODowNzo1 OC45MjQ5MTYwMTggKzAxMDAKK0BAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBzb3VyY2VfcHl0aG9u X3NjcmlwdCAoRklMRSAqZmlsZSwgYwogIHZvaWQgcnVuX3B5dGhvbl9zY3JpcHQgKGludCBhcmdj LCBjaGFyICoqYXJndik7CiAgCiAgaW50IGFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzA3NSwxMCArMzA2OCwx MCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3B5dGhvbi9weXRob24uaAog IAkJCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9yZWdjYWNoZS5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvcmVnY2FjaGUuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3JlZ2NhY2hl LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NTcyOTIyMzEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvcmVnY2FjaGUuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM2ODMwMDc0OSAr MDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcmVnY2FjaGUuYwkyMDE0LTAy LTA2IDE4OjA3OjU0LjM3MjkxMTEyNiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3JlZ2NhY2hlLmMJMjAxNC0wMi0wNiAxODowNzo1OC45MjQ5MTYwMTggKzAxMDAKIEBAIC04OTks NyArODk5LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgogIAog IHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0YXR1cwpAQCAtMzEyNCwxMCArMzExNywxMCBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3Qg cmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9yZWdjYWNoZS5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzLm9yaWcvZ2RiL3JlZ2NhY2hlLmgJMjAxMy0wOC0wMiAxNjozODoyNi40NTcyOTIyMzEgKzAy MDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcmVnY2FjaGUuaAkyMDEzLTA4LTAy IDE2OjM4OjMyLjM2ODMwMDc0OSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9n ZGIvcmVnY2FjaGUuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3MjkxMTEyNiArMDEwMAorKysrIGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3JlZ2NhY2hlLmgJMjAxNC0wMi0wNiAxODowNzo1OC45MjU5 MTYwMTkgKzAxMDAKIEBAIC04OSw5ICs4OSw5IEBAIGV4dGVybiB2b2lkIHJlZ2NhY2hlX3Jhd193 cml0ZV91bnNpZ25lZAogIAogIGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1cwpAQCAtMzE1NSwx MSArMzE0OCwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3JlZ2NhY2hl LmgKICAKICAvKiBTcGVjaWFsIHJvdXRpbmVzIHRvIHJlYWQvd3JpdGUgdGhlIFBDLiAgKi8KICAK LUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9yZW1vdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDU5Mjky MjM0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3JlbW90ZS5jCTIwMTMt MDgtMDIgMTY6Mzg6MzIuMzcwMzAwNzUyICswMjAwCi1AQCAtODM2OCw3ICs4MzY4LDcgQEAgaW50 IHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9CistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9yZW1vdGUuYwkyMDE0LTAyLTA2IDE4OjA3OjU0LjM3NDkxMTEyOCArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3JlbW90ZS5jCTIwMTQtMDItMDYgMTg6MDc6 NTguOTI2OTE2MDIwICswMTAwCitAQCAtODQxMyw3ICs4NDEzLDcgQEAgaW50IHJlbW90ZV9od193 YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9CiAgaW50IHJlbW90ZV9od19icmVha3BvaW50X2xpbWl0 ID0gLTE7CiAgCiAgc3RhdGljIGludApAQCAtMzE2OCwyMyArMzE2MSwxMCBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90ZV9od193 YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvczM5MC1uYXQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAx NDAxMjcvZ2RiL3NwdS1tdWx0aWFyY2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzLm9yaWcvZ2RiL3MzOTAtbmF0LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NTkyOTIy MzQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvczM5MC1uYXQuYwkyMDEz LTA4LTAyIDE2OjM4OjMyLjM3MDMwMDc1MiArMDIwMAotQEAgLTU3MSw3ICs1NzEsNyBAQCBzMzkw X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50IHR5cGUsIGluCi0gfQotIAotIHN0YXRpYyBpbnQK LS1zMzkwX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBj bnQpCi0rczM5MF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKENPUkVfQUREUiBhZGRyLCBM T05HRVNUIGNudCkKLSB7Ci0gICByZXR1cm4gMTsKLSB9Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3NwdS1tdWx0aWFyY2guYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDEzLTA4LTAyIDE2OjM4OjI2 LjQ1OTI5MjIzNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zcHUtbXVs dGlhcmNoLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNzAzMDA3NTIgKzAyMDAKKy0tLSBnZGItNy42 LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE0LTAyLTA2IDE4OjA3OjU0 LjM3NDkxMTEyOCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3NwdS1tdWx0aWFy Y2guYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyNzkxNjAyMSArMDEwMAogQEAgLTExOCw3ICsxMTgs NyBAQCBzcHVfdGhyZWFkX2FyY2hpdGVjdHVyZSAoc3RydWN0IHRhcmdldF9vCiAgCiAgLyogT3Zl cnJpZGUgdGhlIHRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCByb3V0aW5lLiAgKi8KQEAg LTMxOTQsMTEgKzMxNzQsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9z cHUtbXVsdGlhcmNoLmMKICB7CiAgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGggPSBm aW5kX3RhcmdldF9iZW5lYXRoICgmc3B1X29wcyk7CiAgICB3aGlsZSAob3BzX2JlbmVhdGggJiYg IW9wc19iZW5lYXRoLT50b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpCi1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3N0YWNrLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMu b3JpZy9nZGIvc3RhY2suYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ2MDI5MjIzNiArMDIwMAotKysr IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zdGFjay5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIu MzcxMzAwNzU0ICswMjAwCi1AQCAtMTc4LDcgKzE3OCw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChz dHJ1Y3QgZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3N0 YWNrLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNzU5MTExMjkgKzAxMDAKKysrKyBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9zdGFjay5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTI3OTE2MDIxICswMTAw CitAQCAtMTgwLDcgKzE4MCw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5m byAqZnIKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNzIGFyZ3VtZW50 KS4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMyMDcsNyArMzE4Nyw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3RhY2suYwogIAkJCSAgIGludCBmaXJzdCwgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9m cmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtNTAwLDcgKzUwMCw3IEBAIHByaW50X2ZyYW1lX2FyZ3Mg KHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC01MjYsNyArNTI2LDcgQEAgcHJpbnRfZnJhbWVf YXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcwogICAgLyogT2Zmc2V0IG9mIG5leHQgc3RhY2sg YXJndW1lbnQgYmV5b25kIHRoZSBvbmUgd2UgaGF2ZSBzZWVuIHRoYXQgaXMKICAgICAgIGF0IHRo ZSBoaWdoZXN0IG9mZnNldCwgb3IgLTEgaWYgd2UgaGF2ZW4ndCBjb21lIHRvIGEgc3RhY2sKICAg ICAgIGFyZ3VtZW50IHlldC4gICovCkBAIC0zMjE2LDcgKzMxOTYsNyBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3N0YWNrLmMKICAgIC8qIE51bWJlciBvZiBpbnRzIG9mIGFy Z3VtZW50cyB0aGF0IHdlIGhhdmUgcHJpbnRlZCBzbyBmYXIuICAqLwogICAgaW50IGFyZ3NfcHJp bnRlZCA9IDA7CiAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWluOwotQEAgLTUzOCw4ICs1Mzgs OCBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCitAQCAtNTY0LDgg KzU2NCw4IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKICAJICAg IGNhc2UgTE9DX0FSRzoKICAJICAgIGNhc2UgTE9DX1JFRl9BUkc6CiAgCSAgICAgIHsKQEAgLTMy MjcsNyArMzIwNyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3RhY2su YwogIAogIAkJLyogQ29tcHV0ZSBhZGRyZXNzIG9mIG5leHQgYXJndW1lbnQgYnkgYWRkaW5nIHRo ZSBzaXplIG9mCiAgCQkgICB0aGlzIGFyZ3VtZW50IGFuZCByb3VuZGluZyB0byBhbiBpbnQgYm91 bmRhcnkuICAqLwotQEAgLTY3NCw3ICs2NzQsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qg c3ltYm9sICpmdW5jLCBzCitAQCAtNzAwLDcgKzcwMCw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0 cnVjdCBzeW1ib2wgKmZ1bmMsIHMKICAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmlu ZCB0aGVtLiAgKi8KICAgIGlmIChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMyMzYsMTEgKzMyMTYs MTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zdGFjay5jCiAgCiAgICAg ICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09IC0xKQogIAlzdGFydCA9IGdkYmFyY2hfZnJhbWVfYXJn c19za2lwIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpKTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvc3ltbWlzYy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3lt bWlzYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIv c3ltbWlzYy5jCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDYwMjkyMjM2ICswMjAwCi0rKysgZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3N5bW1pc2MuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3MTMw MDc1NCArMDIwMAotQEAgLTUzNCwxMSArNTM0LDExIEBAIHByaW50X3N5bWJvbCAodm9pZCAqYXJn cykKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3N5bW1pc2MuYwkyMDE0LTAyLTA2 IDE4OjA3OjU0LjM3NTkxMTEyOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3N5 bW1pc2MuYwkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyNzkxNjAyMSArMDEwMAorQEAgLTUyOSwxMSAr NTI5LDExIEBAIHByaW50X3N5bWJvbCAodm9pZCAqYXJncykKICAKICAJY2FzZSBMT0NfQ09OU1Rf QllURVM6CiAgCSAgewpAQCAtMzI1NSwxMSArMzIzNSwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL3N5bW1pc2MuYwogIAkgICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTEVO R1RIICh0eXBlKTsgaSsrKQogIAkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChvdXRmaWxlLCAiICUw MngiLAogIAkJCQkodW5zaWduZWQpIFNZTUJPTF9WQUxVRV9CWVRFUyAoc3ltYm9sKVtpXSk7Ci1J bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RhcmdldC5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy5vcmlnL2dkYi90YXJnZXQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ2MTI5MjIz NyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90YXJnZXQuYwkyMDEzLTA4 LTAyIDE2OjM4OjMyLjM3MjMwMDc1NSArMDIwMAotQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIHZv aWQgZGVmYXVsdF90ZXJtaW5hbF9pbmZvIChjb25zdAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvdGFyZ2V0LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNzY5MTExMzAgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90YXJnZXQuYwkyMDE0LTAyLTA2IDE4OjA3OjU4Ljky ODkxNjAyMiArMDEwMAorQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIHZvaWQgZGVmYXVsdF90ZXJt aW5hbF9pbmZvIChjb25zdAogIHN0YXRpYyBpbnQgZGVmYXVsdF93YXRjaHBvaW50X2FkZHJfd2l0 aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAogIAkJCQkJCSBDT1JFX0FERFIsIENPUkVf QUREUiwgaW50KTsKICAKQEAgLTMyNjgsNyArMzI0OCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvdGFyZ2V0LmMKICAKICBzdGF0aWMgdm9pZCB0Y29tcGxhaW4gKHZvaWQp IEFUVFJJQlVURV9OT1JFVFVSTjsKICAKLUBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIGludCBk ZWJ1Z190b19zdG9wcGVkX2RhdGFfYWRkcmVzcworQEAgLTExNiw3ICsxMTYsNyBAQCBzdGF0aWMg aW50IGRlYnVnX3RvX3N0b3BwZWRfZGF0YV9hZGRyZXNzCiAgc3RhdGljIGludCBkZWJ1Z190b193 YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAogIAkJCQkJ CSAgQ09SRV9BRERSLCBDT1JFX0FERFIsIGludCk7CiAgCkBAIC0zMjc3LDcgKzMyNTcsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RhcmdldC5jCiAgCiAgc3RhdGljIGlu dCBkZWJ1Z190b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24gKENPUkVfQUREUiwgaW50 LCBpbnQsCiAgCQkJCQkJICAgIHN0cnVjdCBleHByZXNzaW9uICopOwotQEAgLTM1ODYsNyArMzU4 Niw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoY29uc3QgY2hhcgorQEAgLTM1OTks NyArMzU5OSw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoY29uc3QgY2hhcgogIAog IAogIHN0YXRpYyBpbnQKQEAgLTMyODYsNyArMzI2Niw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvdGFyZ2V0LmMKICB7CiAgICByZXR1cm4gKGxlbiA8PSBnZGJhcmNoX3B0 cl9iaXQgKHRhcmdldF9nZGJhcmNoICgpKSAvIFRBUkdFVF9DSEFSX0JJVCk7CiAgfQotQEAgLTQ1 NDEsNyArNDU0MSw3IEBAIGRlYnVnX3RvX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50IHR5cGUK K0BAIC00NTY2LDcgKzQ1NjYsNyBAQCBkZWJ1Z190b19jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKGlu dCB0eXBlCiAgfQogIAogIHN0YXRpYyBpbnQKQEAgLTMyOTUsMTEgKzMyNzUsMTEgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90YXJnZXQuYwogIHsKICAgIENPUkVfQUREUiBy ZXR2YWw7CiAgCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RhcmdldC5oCitJ bmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi90YXJnZXQuaAkyMDEzLTA4LTAyIDE2OjM4 OjI2LjQ2MjI5MjIzOCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90YXJn ZXQuaAkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3MjMwMDc1NSArMDIwMAotQEAgLTM4OSw3ICszODks NyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv dGFyZ2V0LmgJMjAxNC0wMi0wNiAxODowNzo1NC4zNzc5MTExMzEgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi90YXJnZXQuaAkyMDE0LTAyLTA2IDE4OjA3OjU4LjkyOTkxNjAyMyAr MDEwMAorQEAgLTQyOCw3ICs0MjgsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogIAogICAgICAvKiBE b2N1bWVudGF0aW9uIG9mIHRoaXMgcm91dGluZSBpcyBwcm92aWRlZCB3aXRoIHRoZSBjb3JyZXNw b25kaW5nCiAgICAgICAgIHRhcmdldF8qIG1hY3JvLiAgKi8KQEAgLTMzMDgsMTEgKzMyODgsMTEg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90YXJnZXQuaAogIAogICAgICBp bnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pIChDT1JFX0FERFIsIGludCwg aW50LAogIAkJCQkJICAgICAgc3RydWN0IGV4cHJlc3Npb24gKik7Ci1JbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3RyYWNlcG9pbnQuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3RyYWNlcG9pbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzLm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ2NDI5MjI0MSAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMJMjAxMy0w OC0wMiAxNjo0MDo1My4wMTg0OTk3NjkgKzAyMDAKLUBAIC05NDAsMTMgKzk0MCwxMyBAQCBhZGRf cmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zNzk5MTExMzQg KzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90cmFjZXBvaW50LmMJMjAxNC0wMi0w NiAxODowNzo1OC45MzA5MTYwMjQgKzAxMDAKK0BAIC05MzUsMTMgKzkzNSwxMyBAQCBhZGRfcmVn aXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCiAgc3RhdGljIHZvaWQKICBhZGRfbWVt cmFuZ2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKm1lbXJhbmdlcywgCiAgCSAgICAgIGludCB0 eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLApAQCAtMzMyOCw3ICszMzA4LDcgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAgICAgfQogIAogICAgLyog dHlwZTogbWVtcmFuZ2VfYWJzb2x1dGUgPT0gbWVtb3J5LCBvdGhlciBuID09IGJhc2VyZWcgKi8K LUBAIC05NzYsNyArOTc2LDcgQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xp c3QgKgorQEAgLTk3MSw3ICs5NzEsNyBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rp b25fbGlzdCAqCiAgCQlDT1JFX0FERFIgc2NvcGUsCiAgCQlpbnQgdHJhY2Vfc3RyaW5nKQogIHsK QEAgLTMzMzcsNyArMzMxNyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv dHJhY2Vwb2ludC5jCiAgICB1bnNpZ25lZCBpbnQgcmVnOwogICAgYmZkX3NpZ25lZF92bWEgb2Zm c2V0OwogICAgaW50IHRyZWF0X2FzX2V4cHIgPSAwOwotQEAgLTEwMDAsOCArMTAwMCw4IEBAIGNv bGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05OTUsOCArOTk1LDgg QEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgogIAkgIGNoYXIgdG1w WzQwXTsKICAKICAJICBzcHJpbnRmX3ZtYSAodG1wLCBvZmZzZXQpOwpAQCAtMzM0OCw3ICszMzI4 LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAJ CQkgICB0bXAgLyogYWRkcmVzcyAqLyk7CiAgCX0KICAgICAgICAvKiBBIHN0cnVjdCBtYXkgYmUg YSBDKysgY2xhc3Mgd2l0aCBzdGF0aWMgZmllbGRzLCBnbyB0byBnZW5lcmFsCi1AQCAtMTAzMyw4 ICsxMDMzLDggQEAgY29sbGVjdF9zeW1ib2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgorQEAg LTEwMjgsOCArMTAyOCw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0 ICoKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7CiAg ICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzM1OSw3ICszMzM5LDcgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1h IChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIGZyYW1lIHB0ciByZWcgJWRc biIsIHJlZyk7CiAgCX0KLUBAIC0xMDQ1LDggKzEwNDUsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3Ry dWN0IGNvbGxlY3Rpb25fbGlzdCAqCitAQCAtMTA0MCw4ICsxMDQwLDggQEAgY29sbGVjdF9zeW1i b2wgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKgogICAgICAgIG9mZnNldCA9IDA7CiAgICAgICAg aWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzM3MCw3ICszMzUwLDcgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZz ZXQpOwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIHJlZyAlZFxuIiwgcmVnKTsKICAJfQot QEAgLTEwNTcsOCArMTA1Nyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9s aXN0ICoKK0BAIC0xMDUyLDggKzEwNTIsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxl Y3Rpb25fbGlzdCAqCiAgICAgICAgb2Zmc2V0ID0gZnJhbWVfb2Zmc2V0ICsgU1lNQk9MX1ZBTFVF IChzeW0pOwogICAgICAgIGlmIChpbmZvX3ZlcmJvc2UpCiAgCXsKQEAgLTMzODEsNyArMzM2MSw3 IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdHJhY2Vwb2ludC5jCiAgCSAg cHJpbnRmX3ZtYSAob2Zmc2V0KTsKICAJICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSBmcmFtZSBw dHIgcmVnICVkXG4iLCByZWcpOwogIAl9Ci1AQCAtMjcxNiw3ICsyNzE2LDggQEAgc2NvcGVfaW5m byAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorQEAgLTI3MTEsNyArMjcxMSw4IEBAIHNjb3Bl X2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7 CiAgICBjaGFyICpzYXZlX2FyZ3MgPSBhcmdzOwogICAgc3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0 ZXI7CkBAIC0zMzkxLDcgKzMzNzEsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL3RyYWNlcG9pbnQuYwogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7CiAgICBpbnQgcmVn bm87CiAgCi1AQCAtMjg1Miw4ICsyODUzLDExIEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGlu dCBmcm9tX3R0eSkKK0BAIC0yODQ3LDggKzI4NDgsMTEgQEAgc2NvcGVfaW5mbyAoY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQogIAkJfQogIAkgICAgfQogIAkgIGlmIChTWU1CT0xfVFlQRSAoc3lt KSkKQEAgLTM0MDUsMTAgKzMzODUsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi90cmFjZXBvaW50LmMKICAJfQogICAgICAgIGlmIChCTE9DS19GVU5DVElPTiAoYmxvY2sp KQogIAlicmVhazsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdHlwZXByaW50 LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90eXBlcHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3R5cGVwcmludC5jCTIwMTMt MDgtMDIgMTY6Mzg6MjYuNDY0MjkyMjQxICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3R5cGVwcmludC5jCTIwMTMtMDgtMDIgMTY6Mzg6MzIuMzc0MzAwNzU4ICswMjAwCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE0LTAyLTA2IDE4 OjA3OjU0LjM3OTkxMTEzNCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3R5cGVw cmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTMwOTE2MDI0ICswMTAwCiBAQCAtNDA5LDcgKzQw OSw3IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCiAgICBzdHJ1Y3QgdHlwZSAq cmVhbF90eXBlID0gTlVMTDsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwpAQCAtMzQxOCwxMCArMzM5 OCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3R5cGVwcmludC5jCiAg ICBpbnQgdXNpbmdfZW5jID0gMDsKICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7 CiAgICBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zIGZsYWdzID0gZGVmYXVsdF9wdHlwZV9mbGFn czsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsYXJpdGguYworSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbGFyaXRoLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTMtMDgtMDIgMTY6Mzg6 MjYuNDY1MjkyMjQzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbGFy aXRoLmMJMjAxMy0wOC0wMiAxNjozODozMi4zNzQzMDA3NTggKzAyMDAKKy0tLSBnZGItNy42Ljkw LjIwMTQwMTI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNC0wMi0wNiAxODowNzo1NC4zODA5MTEx MzUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi92YWxhcml0aC5jCTIwMTQtMDIt MDYgMTg6MDc6NTguOTMwOTE2MDI0ICswMTAwCiBAQCAtMTkwLDE1ICsxOTAsMTUgQEAgdmFsdWVf c3Vic2NyaXB0IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMTwogICAgIHRvIGRvdWJsZXMsIGJ1dCBu byBsb25nZXIgZG9lcy4gICovCiAgCkBAIC0zNDc1LDExICszNDU1LDExIEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsYXJpdGguYwogIAogICAgZm9yIChpID0gMDsgaSA8 IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Zh bG9wcy5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFsb3BzLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi92YWxvcHMuYwkyMDEzLTA4 LTAyIDE2OjM4OjI2LjQ2NzI5MjI0NiArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi92YWxvcHMuYwkyMDEzLTA4LTAyIDE2OjM4OjMyLjM3NTMwMDc1OSArMDIwMAotQEAgLTUz LDExICs1MywxMSBAQCBzdGF0aWMgaW50IHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQgdmFyCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWxvcHMuYwkyMDE0LTAyLTA2IDE4OjA3 OjU0LjM4MjkxMTEzNyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbG9wcy5j CTIwMTQtMDItMDYgMTg6MTE6MDkuMDcyMTE5OTE4ICswMTAwCitAQCAtNTEsMTEgKzUxLDExIEBA IHN0YXRpYyBpbnQgdHlwZWNtcCAoaW50IHN0YXRpY3AsIGludCB2YXIKICAJCSAgICBzdHJ1Y3Qg ZmllbGQgdDFbXSwgc3RydWN0IHZhbHVlICp0MltdKTsKICAKICBzdGF0aWMgc3RydWN0IHZhbHVl ICpzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICosIHN0cnVjdCB2YWx1ZSAqLCAKQEAg LTM0OTMsNyArMzQ3Myw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFs b3BzLmMKICAKICBzdGF0aWMgaW50IGZpbmRfb2xvYWRfY2hhbXBfbmFtZXNwYWNlIChzdHJ1Y3Qg dmFsdWUgKiosIGludCwKICAJCQkJICAgICAgIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLAot QEAgLTg1LDcgKzg1LDcgQEAgb2xvYWRfY2xhc3NpZmljYXRpb24gY2xhc3NpZnlfb2xvYWRfbWF0 YworQEAgLTgzLDcgKzgzLDcgQEAgb2xvYWRfY2xhc3NpZmljYXRpb24gY2xhc3NpZnlfb2xvYWRf bWF0YwogIAkJCQkJICAgaW50LCBpbnQpOwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVl X3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKiwKQEAgLTM1MDIsNyArMzQ4 Miw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICAJCQkJ CQkgICAgIGNoYXIgKiwKICAJCQkJCQkgICAgIHN0cnVjdCB0eXBlICosCiAgCQkJCQkJICAgICBp bnQsIGVudW0gbm9zaWRlKTsKLUBAIC0xMDIsOCArMTAyLDggQEAgc3RhdGljIENPUkVfQUREUiBh bGxvY2F0ZV9zcGFjZV9pbl9pbmZlcgorQEAgLTEwMCw4ICsxMDAsOCBAQCBzdGF0aWMgQ09SRV9B RERSIGFsbG9jYXRlX3NwYWNlX2luX2luZmVyCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqY2FzdF9p bnRvX2NvbXBsZXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsKICAKICBzdGF0aWMg c3RydWN0IGZuX2ZpZWxkICpmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiosIGNvbnN0 IGNoYXIgKiwKQEAgLTM1MTMsNyArMzQ5Myw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvdmFsb3BzLmMKICAKICB2b2lkIF9pbml0aWFsaXplX3ZhbG9wcyAodm9pZCk7CiAg Ci1AQCAtMTg4LDcgKzE4OCw3IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNo YXIgKm4KK0BAIC0xODYsNyArMTg2LDcgQEAgZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29u c3QgY2hhciAqbgogICAgIHNwYWNlLiAgKi8KICAKICBzdHJ1Y3QgdmFsdWUgKgpAQCAtMzUyMiw3 ICszNTAyLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwog IHsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmOwogICAgc3RydWN0IHZhbHVlICp2YWwgPSBmaW5k X2Z1bmN0aW9uX2luX2luZmVyaW9yICgibWFsbG9jIiwgJm9iamYpOwotQEAgLTI2MSw3ICsyNjEs OCBAQCB2YWx1ZV9jYXN0X3N0cnVjdHMgKHN0cnVjdCB0eXBlICp0eXBlLCBzCitAQCAtMjU5LDcg KzI1OSw4IEBAIHZhbHVlX2Nhc3Rfc3RydWN0cyAoc3RydWN0IHR5cGUgKnR5cGUsIHMKICAgIGlm IChUWVBFX05BTUUgKHQyKSAhPSBOVUxMKQogICAgICB7CiAgICAgICAgLyogVHJ5IGRvd25jYXN0 aW5nIHVzaW5nIHRoZSBydW4tdGltZSB0eXBlIG9mIHRoZSB2YWx1ZS4gICovCkBAIC0zNTMyLDcg KzM1MTIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAg ICAgICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKICAKICAgICAgICByZWFsX3R5cGUgPSB2YWx1 ZV9ydHRpX3R5cGUgKHYyLCAmZnVsbCwgJnRvcCwgJnVzaW5nX2VuYyk7Ci1AQCAtNDAwLDEyICs0 MDEsMTIgQEAgdmFsdWVfY2FzdCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2YQorQEAgLTM5 OCwxMiArMzk5LDEyIEBAIHZhbHVlX2Nhc3QgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmEK ICAgIGlmIChjb2RlMSA9PSBUWVBFX0NPREVfQVJSQVkpCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg dHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CkBAIC0zNTQ3LDcg KzM1MjcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAg CSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIG5ld19sZW5ndGg7CiAgCiAgCSAgaWYg KGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5k KSA8IDApCi1AQCAtNjM5LDcgKzY0MCw3IEBAIHZhbHVlX3JlaW50ZXJwcmV0X2Nhc3QgKHN0cnVj dCB0eXBlICp0eXAKK0BAIC02MzcsNyArNjM4LDcgQEAgdmFsdWVfcmVpbnRlcnByZXRfY2FzdCAo c3RydWN0IHR5cGUgKnR5cAogIHN0YXRpYyBpbnQKICBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3Ry dWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LApAQCAtMzU1Niw3ICszNTM2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi92YWxvcHMuYwogIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkgICAgICBzdHJ1Y3Qg dmFsdWUgKnZhbCwKICAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFyY2hfdHlwZSwKLUBAIC02NTEs OCArNjUyLDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgorQEAg LTY0OSw4ICs2NTAsOCBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2ly CiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChzZWFyY2hfdHlwZSkg JiYgcmVzdWx0X2NvdW50IDwgMjsgKytpKQogICAgICB7CkBAIC0zNTY3LDcgKzM1NDcsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYg KGNsYXNzX3R5cGVzX3NhbWVfcCAoZGVzaXJlZF90eXBlLCBUWVBFX0JBU0VDTEFTUyAoc2VhcmNo X3R5cGUsIGkpKSkKICAJewotQEAgLTY4Niw3ICs2ODcsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tf MSAoc3RydWN0IHR5cGUgKmRlc2lyCitAQCAtNjg0LDcgKzY4NSw3IEBAIGR5bmFtaWNfY2FzdF9j aGVja18xIChzdHJ1Y3QgdHlwZSAqZGVzaXIKICBzdGF0aWMgaW50CiAgZHluYW1pY19jYXN0X2No ZWNrXzIgKHN0cnVjdCB0eXBlICpkZXNpcmVkX3R5cGUsCiAgCQkgICAgICBjb25zdCBnZGJfYnl0 ZSAqdmFsYWRkciwKQEAgLTM1NzYsNyArMzU1Niw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvdmFsb3BzLmMKICAJCSAgICAgIENPUkVfQUREUiBhZGRyZXNzLAogIAkJICAg ICAgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgICBzdHJ1Y3QgdHlwZSAqc2VhcmNoX3R5cGUs Ci1AQCAtNjk2LDcgKzY5Nyw3IEBAIGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3QgdHlwZSAq ZGVzaXIKK0BAIC02OTQsNyArNjk1LDcgQEAgZHluYW1pY19jYXN0X2NoZWNrXzIgKHN0cnVjdCB0 eXBlICpkZXNpcgogIAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoc2Vh cmNoX3R5cGUpICYmIHJlc3VsdF9jb3VudCA8IDI7ICsraSkKICAgICAgewpAQCAtMzU4NSw3ICsz NTY1LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAog ICAgICAgIGlmICghIEJBU0VUWVBFX1ZJQV9QVUJMSUMgKHNlYXJjaF90eXBlLCBpKSkKICAJY29u dGludWU7Ci1AQCAtNzI3LDcgKzcyOCw4IEBAIGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3Qg dHlwZSAqZGVzaXIKK0BAIC03MjUsNyArNzI2LDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzIgKHN0 cnVjdCB0eXBlICpkZXNpcgogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZHluYW1pY19jYXN0IChz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICphcmcpCiAgewpAQCAtMzU5NSw3ICszNTc1 LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogICAgc3Ry dWN0IHR5cGUgKnJlc29sdmVkX3R5cGUgPSBjaGVja190eXBlZGVmICh0eXBlKTsKICAgIHN0cnVj dCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwogICAg c3RydWN0IHR5cGUgKmNsYXNzX3R5cGUsICpydHRpX3R5cGU7Ci1AQCAtMTAwNyw3ICsxMDA5LDcg QEAgdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQQorQEAgLTEwMDUsNyAr MTAwNyw3IEBAIHZhbHVlX2F0X2xhenkgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0EKICB9CiAg CiAgdm9pZApAQCAtMzYwNCw3ICszNTg0LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi92YWxvcHMuYwogIAkJICAgaW50IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRkciwKICAJ CSAgIGdkYl9ieXRlICpidWZmZXIsIHNpemVfdCBsZW5ndGgpCiAgewotQEAgLTExNTcsNyArMTE1 OSw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKK0BAIC0xMTU1 LDcgKzExNTcsNyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAqdG92YWwsIHN0cnVjCiAg ICAgICAgewogIAljb25zdCBnZGJfYnl0ZSAqZGVzdF9idWZmZXI7CiAgCUNPUkVfQUREUiBjaGFu Z2VkX2FkZHI7CkBAIC0zNjEzLDcgKzM1OTMsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL3ZhbG9wcy5jCiAgICAgICAgICBnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05H RVNUKV07CiAgCiAgCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi1AQCAtMTIzNiw3ICsxMjM4 LDcgQEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1YworQEAgLTEyMzQs NyArMTIzNiw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgc3RydWMKICAJ ICAgIGlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCiAgCSAgICAgIHsKICAJCXN0cnVjdCB2YWx1 ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh0b3ZhbCk7CkBAIC0zNjIyLDcgKzM2MDIsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgCQlpbnQgY2hhbmdl ZF9sZW47CiAgCQlnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNUKV07CiAgCQlpbnQgb3B0 aW0sIHVuYXZhaWw7Ci1AQCAtMTcxNiw3ICsxNzE4LDcgQEAgdmFsdWVfYXJyYXkgKGludCBsb3di b3VuZCwgaW50IGhpZ2hib3VuZAorQEAgLTE3MTUsNyArMTcxNyw3IEBAIHZhbHVlX2FycmF5IChp bnQgbG93Ym91bmQsIGludCBoaWdoYm91bmQKICB7CiAgICBpbnQgbmVsZW07CiAgICBpbnQgaWR4 OwpAQCAtMzYzMSw3ICszNjExLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi92YWxvcHMuYwogICAgc3RydWN0IHZhbHVlICp2YWw7CiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXl0 eXBlOwogIAotQEAgLTE4OTEsNyArMTg5Myw3IEBAIHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQg dmFyYXJncywgaW50IG4KK0BAIC0xODkwLDcgKzE4OTIsNyBAQCB0eXBlY21wIChpbnQgc3RhdGlj cCwgaW50IHZhcmFyZ3MsIGludCBuCiAgCiAgc3RhdGljIHZvaWQKICB1cGRhdGVfc2VhcmNoX3Jl c3VsdCAoc3RydWN0IHZhbHVlICoqcmVzdWx0X3B0ciwgc3RydWN0IHZhbHVlICp2LApAQCAtMzY0 MCw3ICszNjIwLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMu YwogIAkJICAgICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAg aWYgKHYgIT0gTlVMTCkKLUBAIC0xOTE1LDEwICsxOTE3LDEwIEBAIHVwZGF0ZV9zZWFyY2hfcmVz dWx0IChzdHJ1Y3QgdmFsdWUgKipyZXMKK0BAIC0xOTE0LDEwICsxOTE2LDEwIEBAIHVwZGF0ZV9z ZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXMKICAgICBsb29rdXAgaXMgYW1iaWd1b3Vz LiAgKi8KICAKICBzdGF0aWMgdm9pZApAQCAtMzY1Myw3ICszNjMzLDcgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAkJCXN0cnVjdCB0eXBlICpvdXRlcm1v c3RfdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC0xOTczLDcgKzE5NzUsNyBAQCBkb19zZWFyY2hf c3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCitAQCAtMTk2Niw3ICsxOTY4LDcgQEAgZG9f c2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZQogIAkJICAgPHZhcmlhbnQgZmll bGQ+LiAgKi8KICAKICAJCXN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7CkBAIC0zNjYyLDcgKzM2NDIs NyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgCiAgCQkv KiBUaGlzIGlzIHByZXR0eSBncm9zcy4gIEluIEcrKywgdGhlIG9mZnNldCBpbiBhbgogIAkJICAg YW5vbnltb3VzIHVuaW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlCi1AQCAt MjAxMiw3ICsyMDE0LDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFt ZQorQEAgLTIwMDUsNyArMjAwNyw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNo YXIgKm5hbWUKICAJCQkgICAgICYmIChzdHJjbXBfaXcgKG5hbWUsIAogIAkJCQkJICAgIFRZUEVf QkFTRUNMQVNTX05BTUUgKHR5cGUsIAogIAkJCQkJCQkJIGkpKSA9PSAwKSk7CkBAIC0zNjcxLDcg KzM2NTEsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAg CiAgICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKICAJewotQEAgLTIw ODcsMTEgKzIwODksMTEgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFt ZQorQEAgLTIwNzgsMTEgKzIwODAsMTEgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3Qg Y2hhciAqbmFtZQogICAgIGZpZWxkcywgbG9vayBmb3IgYSBiYXNlY2xhc3MgbmFtZWQgTkFNRS4g ICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0zNjg1LDcgKzM2NjUsNyBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgCiAgICBkb19zZWFyY2hf c3RydWN0X2ZpZWxkIChuYW1lLCBhcmcxLCBvZmZzZXQsIHR5cGUsIGxvb2tpbmdfZm9yX2Jhc2Vj bGFzcywKICAJCQkgICZyZXN1bHQsICZib2Zmc2V0LCB0eXBlKTsKLUBAIC0yMTA4LDcgKzIxMTAs NyBAQCBzZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzCitAQCAtMjA5OSw3 ICsyMTAxLDcgQEAgc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgcwogIAog IHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgogIHNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFy ICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKQEAgLTM2OTQsNyArMzY3NCw3IEBAIEluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICAJCSAgICAgIGludCAqc3Rh dGljX21lbWZ1bmNwLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC0yMTcy LDggKzIxNzQsOCBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFtZSwKK0BA IC0yMTYzLDggKzIxNjUsOCBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqbmFt ZSwKICAKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSkgLSAxOyBpID49IDA7 IGktLSkKICAgICAgewpAQCAtMzcwNSw3ICszNjg1LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVB TCAodHlwZSwgaSkpCiAgCXsKLUBAIC0yMzU1LDggKzIzNTcsOCBAQCB2YWx1ZV9zdHJ1Y3RfZWx0 IChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBzCitAQCAtMjM5MSw4ICsyMzkzLDggQEAgdmFsdWVfc3Ry dWN0X2VsdF9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKgogIAogIHN0YXRpYyBzdHJ1Y3QgZm5fZmll bGQgKgogIGZpbmRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGNvbnN0IGNoYXIg Km1ldGhvZCwKQEAgLTM3MTYsNyArMzY5Niw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvdmFsb3BzLmMKICB7CiAgICBpbnQgaTsKICAgIHN0cnVjdCBmbl9maWVsZCAqZjsK LUBAIC0yMzg5LDcgKzIzOTEsNyBAQCBmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiph cmdwLCBjCitAQCAtMjQyNSw3ICsyNDI3LDcgQEAgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZh bHVlICoqYXJncCwgYwogICAgLyogTm90IGZvdW5kIGluIG9iamVjdCwgY2hlY2sgaW4gYmFzZSBz dWJvYmplY3RzLiAgKi8KICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSkgLSAx OyBpID49IDA7IGktLSkKICAgICAgewpAQCAtMzcyNSw3ICszNzA1LDcgQEAgSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMuYwogIAogICAgICAgIGlmIChCQVNFVFlQRV9W SUFfVklSVFVBTCAodHlwZSwgaSkpCiAgCXsKLUBAIC0yNDI1LDcgKzI0MjcsNyBAQCBmaW5kX21l dGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLCBjCitAQCAtMjQ2MSw3ICsyNDYzLDcgQEAg ZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqYXJncCwgYwogIHN0YXRpYyBzdHJ1Y3Qg Zm5fZmllbGQgKgogIHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWx1ZSAq KmFyZ3AsIGNvbnN0IGNoYXIgKm1ldGhvZCwKICAJCQkgICAgICBpbnQgb2Zmc2V0LCBpbnQgKm51 bV9mbnMsIApAQCAtMzczNCw3ICszNzE0LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi92YWxvcHMuYwogIHsKICAgIHN0cnVjdCB0eXBlICp0OwogIAotQEAgLTI1MTUsNyAr MjUxNyw3IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB2YWx1ZSAqKmFyZ3MKK0BAIC0y NTUxLDcgKzI1NTMsNyBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdmFsdWUgKiphcmdz CiAgICAvKiBOdW1iZXIgb2Ygb3ZlcmxvYWRlZCBpbnN0YW5jZXMgYmVpbmcgY29uc2lkZXJlZC4g ICovCiAgICBpbnQgbnVtX2ZucyA9IDA7CiAgICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGUgPSBOVUxM OwpAQCAtMzc0Myw3ICszNzIzLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi92YWxvcHMuYwogIAogICAgc3RydWN0IGNsZWFudXAgKmFsbF9jbGVhbnVwcyA9IG1ha2VfY2xl YW51cCAobnVsbF9jbGVhbnVwLCBOVUxMKTsKICAKLUBAIC0zMTg1LDcgKzMxODcsNyBAQCBjb21w YXJlX3BhcmFtZXRlcnMgKHN0cnVjdCB0eXBlICp0MSwgc3RyCitAQCAtMzIyMSw3ICszMjIzLDcg QEAgY29tcGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlwZSAqdDEsIHN0cgogICAgIHRoZSBmb3Jt ICJET01BSU46Ok5BTUUiLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTM3NTIs MTYgKzM3MzIsMTYgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxvcHMu YwogIAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY2hhciAqbmFtZSwKICAJCQkJc3RydWN0IHR5 cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1AQCAtMzIyMiw3ICszMjI0LDcg QEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAorQEAgLTMyNTUsNyAr MzI1Nyw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKICAJICBp ZiAod2FudF9hZGRyZXNzKQogIAkgICAgcmV0dXJuIHZhbHVlX2Zyb21fbG9uZ2VzdAogIAkgICAg ICAobG9va3VwX21lbWJlcnB0cl90eXBlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLCBkb21haW4p LAogLQkgICAgICAgb2Zmc2V0ICsgKExPTkdFU1QpIChUWVBFX0ZJRUxEX0JJVFBPUyAodCwgaSkg Pj4gMykpOwogKwkgICAgICAgb2Zmc2V0ICsgKFRZUEVfRklFTERfQklUUE9TICh0LCBpKSA+PiAz KSk7Ci0gCSAgZWxzZSBpZiAobm9zaWRlID09IEVWQUxfQVZPSURfU0lERV9FRkZFQ1RTKQorIAkg IGVsc2UgaWYgKG5vc2lkZSAhPSBFVkFMX05PUk1BTCkKICAJICAgIHJldHVybiBhbGxvY2F0ZV92 YWx1ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSk7CiAgCSAgZWxzZQotQEAgLTMzNjUsNyArMzM2 Nyw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHQKK0BAIC0zNDIz LDcgKzM0MjUsNyBAQCB2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0CiAg ICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHQpIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAg IHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnY7CkBAIC0zNzcwLDcgKzM3NTAsNyBAQCBJbmRleDog Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VU WVBFX1ZJQV9WSVJUVUFMICh0LCBpKSkKICAJYmFzZV9vZmZzZXQgPSAwOwotQEAgLTM0NTUsNyAr MzQ1Nyw3IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdAorQEAgLTM1 MTMsNyArMzUxNSw3IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdAog IAogIHN0cnVjdCB0eXBlICoKICB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1 ZSAqdiwgaW50ICpmdWxsLCAKQEAgLTM3NzksNyArMzc1OSw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnRhcmdldDsK ICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmVhbF90eXBlLCAqdGFyZ2V0X3R5cGU7Ci1AQCAtMzUw NSwxMiArMzUwNywxMiBAQCB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAq CitAQCAtMzU2MywxMiArMzU2NSwxMiBAQCB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVj dCB2YWx1ZSAqCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mdWxsX29iamVjdCAoc3RydWN0IHZh bHVlICphcmdwLCAKICAJCSAgIHN0cnVjdCB0eXBlICpydHlwZSwgCkBAIC0zNzk0LDExICszNzc0 LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsb3BzLmMKICAgIGlu dCB1c2luZ19lbmMgPSAwOwogICAgc3RydWN0IHZhbHVlICpuZXdfdmFsOwogIAotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzLm9yaWcvZ2RiL3ZhbHByaW50LmMJMjAxMy0wOC0wMiAxNjozODoyNi40NjgyOTIyNDcg KzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFscHJpbnQuYwkyMDEzLTA4 LTAyIDE2OjM4OjMyLjM3NjMwMDc2MSArMDIwMAotQEAgLTMwMiw3ICszMDIsNyBAQCBzY2FsYXJf dHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL3ZhbHByaW50LmMJMjAxNC0wMi0wNiAxODowNzo1NC4zODM5MTExMzggKzAxMDAKKysrKyBn ZGItNy42LjkwLjIwMTQwMTI3L2dkYi92YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MDc6NTguOTMy OTE2MDI2ICswMTAwCitAQCAtMzAyLDcgKzMwMiw3IEBAIHZhbF9wcmludF9zY2FsYXJfdHlwZV9w IChzdHJ1Y3QgdHlwZSAqdHkKICBpbnQKICB2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0zODA3LDcgKzM3 ODcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmMKICAJ CQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCiAgewogICAgQ0hFQ0tfVFlQRURFRiAodHlwZSk7 Ci1AQCAtMzY2LDcgKzM2Niw3IEBAIHZhbF9wcmludF9pbnZhbGlkX2FkZHJlc3MgKHN0cnVjdCB1 aV9maWwKK0BAIC0zNzUsNyArMzc1LDcgQEAgdmFsX3ByaW50X2ludmFsaWRfYWRkcmVzcyAoc3Ry dWN0IHVpX2ZpbAogIAogIHZvaWQKICBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzgxNiw3ICszNzk2LDcgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCiAgCQkgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3Jp Z2luYWxfdmFsdWUsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucywKLUBAIC03MjgsNyArNzI4LDcgQEAgZ2VuZXJpY192YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICp0eXBlLCBjbworQEAgLTczNyw3ICs3MzcsNyBAQCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0 IHR5cGUgKnR5cGUsIGNvCiAgICAgUkVDVVJTRS4gICovCiAgCiAgdm9pZApAQCAtMzgyNSw3ICsz ODA1LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCiAg CSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCSAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTk0MCw3ICs5NDAsNyBAQCB2YWxfcHJpbnRf dHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqCitAQCAtOTU4LDcgKzk1OCw3IEBAIHZhbF9w cmludF90eXBlX2NvZGVfZmxhZ3MgKHN0cnVjdCB0eXBlICoKICAKICB2b2lkCiAgdmFsX3ByaW50 X3NjYWxhcl9mb3JtYXR0ZWQgKHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMzgzNCw3ICszODE0LDcg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCiAgCQkJICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucywKICAJCQkgICAgaW50IHNpemUsCi1AQCAtMTQ4MSw3ICsxNDgx LDcgQEAgcHJpbnRfZGVjaW1hbF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0cgorQEAgLTE0OTks NyArMTQ5OSw3IEBAIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9maWxlICpzdHIKICAK ICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM4NDMsNyArMzgyMyw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvdmFscHJpbnQuYwogIHsKICAgIGNvbnN0IGdkYl9ieXRlICpwOwog IAotQEAgLTE1OTgsMjMgKzE1OTgsMjMgQEAgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cnVj dCB0eXBlICppbgorQEAgLTE2MTYsMjMgKzE2MTYsMjMgQEAgbWF5YmVfcHJpbnRfYXJyYXlfaW5k ZXggKHN0cnVjdCB0eXBlICppbgogIAogIHZvaWQKICB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMg KHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMzg3Myw3ICszODUzLDcgQEAgSW5kZXg6IGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5jCiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGln aF9ib3VuZDsKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgQ09SRV9BRERSIHNhdmVk X2FkZHJlc3MgPSBhZGRyZXNzOwotQEAgLTE3MDksNyArMTcwOSw3IEBAIHZhbF9wcmludF9hcnJh eV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnQKK0BAIC0xNzI3LDcgKzE3MjcsNyBAQCB2YWxfcHJp bnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0CiAgCQkgICAgIGFkZHJlc3MsIHN0cmVh bSwgcmVjdXJzZSArIDEsIHZhbCwgb3B0aW9ucywKICAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7 CiAgCSAgYW5ub3RhdGVfZWx0X3JlcCAocmVwcyk7CkBAIC0zODgyLDcgKzM4NjIsNyBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmMKICAJICBhbm5vdGF0ZV9l bHRfcmVwX2VuZCAoKTsKICAKICAJICBpID0gcmVwMSAtIDE7Ci1AQCAtMjM2MCw3ICsyMzYwLDcg QEAgcHJpbnRfY29udmVydGVkX2NoYXJzX3RvX29ic3RhY2sgKHN0cnVjdAorQEAgLTIzODIsNyAr MjM4Miw3IEBAIHByaW50X2NvbnZlcnRlZF9jaGFyc190b19vYnN0YWNrIChzdHJ1Y3QKICAKICB2 b2lkCiAgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5 cGUgKnR5cGUsIApAQCAtMzg5MSwxMCArMzg3MSwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3ZhbHByaW50LmMKICAJCSAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBm b3JjZV9lbGxpcHNlcywKICAJCSAgaW50IHF1b3RlX2NoYXIsIGludCBjX3N0eWxlX3Rlcm1pbmF0 b3IsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5oCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxMy0wOC0wMiAxNjozODoyNi40Njky OTIyNDggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFscHJpbnQuaAky MDEzLTA4LTAyIDE2OjM4OjMyLjM3NjMwMDc2MSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE0LTAyLTA2IDE4OjA3OjU0LjM4NDkxMTEzOSArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbHByaW50LmgJMjAxNC0wMi0wNiAxODow Nzo1OC45MzI5MTYwMjYgKzAxMDAKIEBAIC0xMTUsMTEgKzExNSwxMSBAQCBleHRlcm4gdm9pZCBt YXliZV9wcmludF9hcnJheV9pbmRleCAoc3RyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCiAgCQkJCSAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CkBAIC0zOTI3LDcgKzM5MDcsNyBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmgKICAKICBleHRlcm4gdm9pZCBwcmlu dF9jaGFyX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCSAgICAg IGNvbnN0IGdkYl9ieXRlICosIHVuc2lnbmVkIGludCwgZW51bSBiZmRfZW5kaWFuKTsKLUBAIC0x OTAsNyArMTkwLDcgQEAgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlY29yYXRpb25zCitAQCAt MTk0LDcgKzE5NCw3IEBAIHN0cnVjdCBnZW5lcmljX3ZhbF9wcmludF9kZWNvcmF0aW9ucwogIAog IAogIGV4dGVybiB2b2lkIGdlbmVyaWNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0zOTM2LDcgKzM5MTYsNyBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICAgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq b3JpZ2luYWxfdmFsdWUsCiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotQEAgLTIwMCw3ICsyMDAsNyBAQCBleHRlcm4gdm9pZCBnZW5lcmljX2Vt aXRfY2hhciAoaW50IGMsIHN0CitAQCAtMjA0LDcgKzIwNCw3IEBAIGV4dGVybiB2b2lkIGdlbmVy aWNfZW1pdF9jaGFyIChpbnQgYywgc3QKICAJCQkgICAgICAgaW50IHF1b3RlciwgY29uc3QgY2hh ciAqZW5jb2RpbmcpOwogIAogIGV4dGVybiB2b2lkIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM5NDUsMTAgKzM5MjUsMTAg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWxwcmludC5oCiAgCQkJICAg ICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgICAgICBp bnQgcXVvdGVfY2hhciwgaW50IGNfc3R5bGVfdGVybWluYXRvciwKICAJCQkgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi92 YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIv dmFsdWUuYwkyMDEzLTA4LTAyIDE2OjM4OjI2LjQ3MTI5MjI1MSArMDIwMAotKysrIGdkYi03LjYu NTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5jCTIwMTMtMDgtMDIgMTY6NDE6MTMuMTA1NTI3NDgz ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWx1ZS5jCTIwMTQtMDIt MDYgMTg6MDc6NTQuMzg2OTExMTQxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv dmFsdWUuYwkyMDE0LTAyLTA2IDE4OjEwOjM5LjM3NjA4ODYyNSArMDEwMAogQEAgLTY5LDEwICs2 OSwxMCBAQCBzdHJ1Y3QgaW50ZXJuYWxfZnVuY3Rpb24KICBzdHJ1Y3QgcmFuZ2UKICB7CkBAIC0z OTgyLDcgKzM5NjIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVl LmMKICB7CiAgICByYW5nZV9zIHdoYXQ7CiAgICBpbnQgaTsKLUBAIC0yNDEsNyArMjQxLDcgQEAg c3RydWN0IHZhbHVlCitAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0cnVjdCB2YWx1ZQogICAgICAgbHZh bCA9PSBsdmFsX3JlZ2lzdGVyLCB0aGlzIGlzIGEgZnVydGhlciBvZmZzZXQgZnJvbQogICAgICAg bG9jYXRpb24uYWRkcmVzcyB3aXRoaW4gdGhlIHJlZ2lzdGVycyBzdHJ1Y3R1cmUuICBOb3RlIGFs c28gdGhlCiAgICAgICBtZW1iZXIgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KQEAgLTM5OTEs NyArMzk3MSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwog IAogICAgLyogT25seSB1c2VkIGZvciBiaXRmaWVsZHM7IG51bWJlciBvZiBiaXRzIGNvbnRhaW5l ZCBpbiB0aGVtLiAgKi8KICAgIGludCBiaXRzaXplOwotQEAgLTMxMSw4ICszMTEsOCBAQCBzdHJ1 Y3QgdmFsdWUKK0BAIC0zMTYsOCArMzE2LDggQEAgc3RydWN0IHZhbHVlCiAgICAgICBgdHlwZScs IGFuZCBgZW1iZWRkZWRfb2Zmc2V0JyBpcyB6ZXJvLCBzbyBldmVyeXRoaW5nIHdvcmtzCiAgICAg ICBub3JtYWxseS4gICovCiAgICBzdHJ1Y3QgdHlwZSAqZW5jbG9zaW5nX3R5cGU7CkBAIC00MDAy LDE3ICszOTgyLDE3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUu YwogIAogICAgLyogVmFsdWVzIGFyZSBzdG9yZWQgaW4gYSBjaGFpbiwgc28gdGhhdCB0aGV5IGNh biBiZSBkZWxldGVkIGVhc2lseQogICAgICAgb3ZlciBjYWxscyB0byB0aGUgaW5mZXJpb3IuICBW YWx1ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwKLUBAIC0zMzQsNyArMzM0LDggQEAgc3RydWN0IHZh bHVlCi0gfTsKK0BAIC0zNDgsNyArMzQ4LDggQEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0 IHN0cnVjdCB2YWx1ZQorIH0KICAKICBpbnQKIC12YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCiArdmFsdWVfYnl0 ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwK ICsJCSAgICAgICBMT05HRVNUIGxlbmd0aCkKICB7Ci0gICBnZGJfYXNzZXJ0ICghdmFsdWUtPmxh enkpOwotIAotQEAgLTM1NSw3ICszNTYsOCBAQCB2YWx1ZV9lbnRpcmVseV9hdmFpbGFibGUgKHN0 cnVjdCB2YWx1ZSAqCisgICByZXR1cm4gdmFsdWVfYml0c19hdmFpbGFibGUgKHZhbHVlLAorIAkJ CSAgICAgICBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCitAQCAtNTU1LDcgKzU1Niw4IEBAIG1h cmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHUKICB9CiAgCiAgdm9pZApAQCAt NDAyMCw5ICs0MDAwLDkgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1 ZS5jCiArbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwg TE9OR0VTVCBvZmZzZXQsCiArCQkJICAgICAgTE9OR0VTVCBsZW5ndGgpCiAgewotICAgcmFuZ2Vf cyBuZXdyOwotICAgaW50IGk7Ci1AQCAtNTI2LDcgKzUyOCw3IEBAIG1hcmtfdmFsdWVfYnl0ZXNf dW5hdmFpbGFibGUgKHN0cnVjdCB2YWwKKyAgIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAo dmFsdWUsCisgCQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKK0BAIC01NjksNyAr NTcxLDcgQEAgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbAogIAogIHN0 YXRpYyBpbnQKICBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZFQyhyYW5nZV9zKSAqcmFuZ2Vz LCBpbnQgcG9zLApAQCAtNDAzMSw3ICs0MDExLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3 MzEtY3ZzL2dkYi92YWx1ZS5jCiAgewogICAgcmFuZ2VfcyAqcjsKICAgIGludCBpOwotQEAgLTUz OSw5ICs1NDEsOSBAQCBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZFQyhyYW5nZV9zKSAqCitA QCAtNzYwLDkgKzc2Miw5IEBAIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19iaXRzX2VxIChjb25z dAogIH0KICAKICBpbnQKQEAgLTQwNDIsOSArNDAyMiw5IEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogKwkJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwy LCBMT05HRVNUIG9mZnNldDIsCiArCQkJICAgICBMT05HRVNUIGxlbmd0aCkKICB7Ci0gICBpbnQg aWR4MSA9IDAsIGlkeDIgPSAwOwotIAotQEAgLTc2NywxMyArNzY5LDEzIEBAIGRlcHJlY2F0ZWRf c2V0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZQorICAgcmV0dXJuIHZhbHVlX2F2YWlsYWJsZV9j b250ZW50c19iaXRzX2VxICh2YWwxLCBvZmZzZXQxICogVEFSR0VUX0NIQVJfQklULAorIAkJCQkJ ICAgdmFsMiwgb2Zmc2V0MiAqIFRBUkdFVF9DSEFSX0JJVCwKK0BAIC05MjcsMTMgKzkyOSwxMyBA QCBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsdWUKICAgIHZhbHVlLT50eXBl ID0gdHlwZTsKICB9CiAgCkBAIC00MDYwLDcgKzQwNDAsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKICB7CiAgICB2YWx1ZS0+b2Zmc2V0ID0gb2Zmc2V0Owog IH0KLUBAIC05MzIsOCArOTM0LDkgQEAgdmFsdWVfY29udGVudHNfYWxsIChzdHJ1Y3QgdmFsdWUg KnZhbHVlKQorQEAgLTExMDMsOCArMTEwNSw5IEBAIHZhbHVlX2NvbnRlbnRzX2FsbCAoc3RydWN0 IHZhbHVlICp2YWx1ZSkKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xseSBh dmFpbGFibGUuICAqLwogIAogIHZvaWQKQEAgLTQwNzIsNyArNDA1Miw3IEBAIEluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIHsKICAgIHJhbmdlX3MgKnI7CiAgICBp bnQgaTsKLUBAIC05ODEsOCArOTg0LDggQEAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0cnVj dCB2YWx1ZSAqZAorQEAgLTExNTYsOCArMTE1OSw4IEBAIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3 IChzdHJ1Y3QgdmFsdWUgKmQKICAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFuZ2UgYXJlIHdob2xs eSBhdmFpbGFibGUuICAqLwogIAogIHZvaWQKQEAgLTQwODMsNyArNDA2Myw3IEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIHsKICAgIHJlcXVpcmVfbm90X29w dGltaXplZF9vdXQgKHNyYyk7CiAgCi1AQCAtMTA4Nyw3ICsxMDkwLDcgQEAgdmFsdWVfZW50aXJl bHlfb3B0aW1pemVkX291dCAoY29uc3Qgc3RydQorQEAgLTEyNjIsNyArMTI2NSw3IEBAIHZhbHVl X2VudGlyZWx5X29wdGltaXplZF9vdXQgKGNvbnN0IHN0cnUKICB9CiAgCiAgaW50CkBAIC00MDky LDcgKzQwNzIsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMK ICB7CiAgICBpZiAoIXZhbHVlLT5vcHRpbWl6ZWRfb3V0KQogICAgICByZXR1cm4gMTsKLUBAIC0x MTAwLDcgKzExMDMsNyBAQCB2YWx1ZV9iaXRzX3ZhbGlkIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh CitAQCAtMTI3NSw3ICsxMjc4LDcgQEAgdmFsdWVfYml0c192YWxpZCAoY29uc3Qgc3RydWN0IHZh bHVlICp2YQogIAogIGludAogIHZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsdWUsCkBAIC00MTAxLDcgKzQwODEsNyBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKICB7CiAgICBpZiAodmFsdWUtPmx2YWwgIT0gbHZh bF9jb21wdXRlZAogICAgICAgIHx8ICF2YWx1ZS0+bG9jYXRpb24uY29tcHV0ZWQuZnVuY3MtPmNo ZWNrX3N5bnRoZXRpY19wb2ludGVyKQotQEAgLTExMTAsMjYgKzExMTMsMjYgQEAgdmFsdWVfYml0 c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQorQEAgLTEyODUsMjYgKzEyODgsMjYgQEAg dmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydQogIAkJCQkJCQkJICBsZW5n dGgpOwogIH0KICAKQEAgLTQxMzIsNyArNDExMiw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvdmFsdWUuYwogIHsKICAgIHZhbHVlLT5wb2ludGVkX3RvX29mZnNldCA9IHZh bDsKICB9Ci1AQCAtMTk4Miw3ICsxOTg1LDcgQEAgZ2V0X2ludGVybmFsdmFyX2Z1bmN0aW9uIChz dHJ1Y3QgaW50ZXJuYQorQEAgLTIxNTcsNyArMjE2MCw3IEBAIGdldF9pbnRlcm5hbHZhcl9mdW5j dGlvbiAoc3RydWN0IGludGVybmEKICB9CiAgCiAgdm9pZApAQCAtNDE0MSw3ICs0MTIxLDcgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5jCiAgCQkJICAgaW50IGJp dHNpemUsIHN0cnVjdCB2YWx1ZSAqbmV3dmFsKQogIHsKICAgIGdkYl9ieXRlICphZGRyOwotQEAg LTI2ODksNyArMjY5Miw3IEBAIHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAoc3RydWN0IHZhbHVl ICoKK0BAIC0yODYzLDcgKzI4NjYsNyBAQCBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHN0cnVj dCB2YWx1ZSAqCiAgICAgRklFTEROTyBzYXlzIHdoaWNoIGZpZWxkLiAgKi8KICAKICBzdHJ1Y3Qg dmFsdWUgKgpAQCAtNDE1MCw3ICs0MTMwLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi92YWx1ZS5jCiAgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICphcmdf dHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMjcxNyw3ICsyNzIwLDcgQEAgdmFs dWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAgLTI4OTEsNyArMjg5NCw3 IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAJIGJpdC4gIEFz c3VtZSB0aGF0IHRoZSBhZGRyZXNzLCBvZmZzZXQsIGFuZCBlbWJlZGRlZCBvZmZzZXQKICAJIGFy ZSBzdWZmaWNpZW50bHkgYWxpZ25lZC4gICovCiAgCkBAIC00MTU5LDcgKzQxMzksNyBAQCBJbmRl eDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKICAgICAgICBpbnQgY29udGFp bmVyX2JpdHNpemUgPSBUWVBFX0xFTkdUSCAodHlwZSkgKiA4OwogIAogICAgICAgIGlmIChhcmcx LT5vcHRpbWl6ZWRfb3V0KQotQEAgLTI3NDQsNyArMjc0Nyw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9m aWVsZCAoc3RydWN0IHZhbHVlICphcmcKK0BAIC0yOTE4LDcgKzI5MjEsNyBAQCB2YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnCiAgICAgICAgLyogVGhpcyBmaWVsZCBpcyBh Y3R1YWxseSBhIGJhc2Ugc3Vib2JqZWN0LCBzbyBwcmVzZXJ2ZSB0aGUKICAJIGVudGlyZSBvYmpl Y3QncyBjb250ZW50cyBmb3IgbGF0ZXIgcmVmZXJlbmNlcyB0byB2aXJ0dWFsCiAgCSBiYXNlcywg ZXRjLiAgKi8KQEAgLTQxNjgsNyArNDE0OCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvdmFsdWUuYwogIAogICAgICAgIC8qIExhenkgcmVnaXN0ZXIgdmFsdWVzIHdpdGgg b2Zmc2V0cyBhcmUgbm90IHN1cHBvcnRlZC4gICovCiAgICAgICAgaWYgKFZBTFVFX0xWQUwgKGFy ZzEpID09IGx2YWxfcmVnaXN0ZXIgJiYgdmFsdWVfbGF6eSAoYXJnMSkpCi1AQCAtMjgzNCw3ICsy ODM3LDcgQEAgdmFsdWVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IGZpZQorQEAgLTMw MDgsNyArMzAxMSw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBmaWUK ICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwg c3RydWN0IGZuX2ZpZWxkICpmLAogIAkJaW50IGosIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtNDE3 Nyw3ICs0MTU3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5j CiAgewogICAgc3RydWN0IHZhbHVlICp2OwogICAgc3RydWN0IHR5cGUgKmZ0eXBlID0gVFlQRV9G Tl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0yODk0LDggKzI4OTcsOCBAQCB2YWx1ZV9mbl9maWVs ZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0CitAQCAtMzA2OCw4ICszMDcxLDggQEAgdmFsdWVf Zm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdAogIAogIHN0YXRpYyBpbnQKICB1bnBh Y2tfdmFsdWVfYml0c19hc19sb25nXzEgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQxODgsNyArNDE2OCw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIAkJCSAgICAgTE9OR0VTVCAqcmVzdWx0KQogIHsK ICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRf dHlwZV9hcmNoIChmaWVsZF90eXBlKSk7Ci1AQCAtMjkwMyw3ICsyOTA2LDcgQEAgdW5wYWNrX3Zh bHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwZQorQEAgLTMwNzcsNyArMzA4MCw3IEBAIHVu cGFja192YWx1ZV9iaXRzX2FzX2xvbmdfMSAoc3RydWN0IHR5cGUKICAgIFVMT05HRVNUIHZhbG1h c2s7CiAgICBpbnQgbHNiY291bnQ7CiAgICBpbnQgYnl0ZXNfcmVhZDsKQEAgLTQxOTcsNyArNDE3 Nyw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuYwogIAogICAg LyogUmVhZCB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQ7IHRoZXJlIG1heSBu b3QgYmUKICAgICAgIGVub3VnaCBieXRlcyB0byByZWFkIGFuIGVudGlyZSBVTE9OR0VTVC4gICov Ci1AQCAtMjk3Myw3ICsyOTc2LDcgQEAgdW5wYWNrX3ZhbHVlX2JpdHNfYXNfbG9uZ18xIChzdHJ1 Y3QgdHlwZQorQEAgLTMxNDcsNyArMzE1MCw3IEBAIHVucGFja192YWx1ZV9iaXRzX2FzX2xvbmdf MSAoc3RydWN0IHR5cGUKICAKICBpbnQKICB1bnBhY2tfdmFsdWVfYml0c19hc19sb25nIChzdHJ1 Y3QgdHlwZSAqZmllbGRfdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC00MjA2LDcg KzQxODYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmMKICAJ CQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJCSAgIExPTkdFU1Qg KnJlc3VsdCkKICB7Ci1AQCAtMjk5MSwxMCArMjk5NCwxMCBAQCB1bnBhY2tfdmFsdWVfYml0c19h c19sb25nIChzdHJ1Y3QgdHlwZSAqCitAQCAtMzE2NSwxMCArMzE2OCwxMCBAQCB1bnBhY2tfdmFs dWVfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqCiAgCiAgc3RhdGljIGludAogIHVucGFja192 YWx1ZV9maWVsZF9hc19sb25nXzEgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKQEAgLTQyMTksNyArNDE5OSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvdmFsdWUuYwogICAgaW50IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5 cGUsIGZpZWxkbm8pOwogICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZ UEUgKHR5cGUsIGZpZWxkbm8pOwogIAotQEAgLTMwMTAsNyArMzAxMyw3IEBAIHVucGFja192YWx1 ZV9maWVsZF9hc19sb25nXzEgKHN0cnVjdCB0eXAKK0BAIC0zMTg0LDcgKzMxODcsNyBAQCB1bnBh Y2tfdmFsdWVfZmllbGRfYXNfbG9uZ18xIChzdHJ1Y3QgdHlwCiAgCiAgaW50CiAgdW5wYWNrX3Zh bHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKQEAgLTQyMjgsNyArNDIwOCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvdmFsdWUuYwogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCAq cmVzdWx0KQogIHsKICAgIGdkYl9hc3NlcnQgKHZhbCAhPSBOVUxMKTsKLUBAIC0zMDQyLDcgKzMw NDUsNyBAQCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMzIx Niw3ICszMjE5LDcgQEAgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLAog IHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBl LCBpbnQgZmllbGRubywKICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDIz Nyw3ICs0MjE3LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5j CiAgewogICAgTE9OR0VTVCBsOwogIAotQEAgLTMwNjksMTIgKzMwNzIsMTIgQEAgdmFsdWVfZmll bGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMyNDMsMTIgKzMyNDYsMTIgQEAg dmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAogIAogIHZvaWQKICBtb2Rp ZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRkciwKQEAgLTQyNTIsMTAg KzQyMzIsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5jCiAg CiAgICAvKiBOb3JtYWxpemUgQklUUE9TLiAgKi8KICAgIGFkZHIgKz0gYml0cG9zIC8gODsKLUlu ZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAorSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3ZhbHVlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi92YWx1ZS5oCTIwMTMtMDgtMDIgMTY6Mzg6MjYuNDcyMjkyMjUzICsw MjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgJMjAxMy0wOC0wMiAx NjozOToxNS43MjEzNjI1NzcgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L3ZhbHVlLmgJMjAxNC0wMi0wNiAxODowNzo1NC4zODc5MTExNDIgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi92YWx1ZS5oCTIwMTQtMDItMDYgMTg6MDk6MjMuMDY0MDA2MzYwICsw MTAwCiBAQCAtODIsOCArODIsOCBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfcGFyZW50IChzdHJ1 Y3QgdmFsCiAgICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAgTm90ZSBhbHNvIHRo ZSBtZW1iZXIKICAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwpAQCAtNDMxMCw3ICs0Mjkw LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5oCiAgCQkJCSAg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxs b2NhdGVfb3B0aW1pemVkX291dF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUpOwotQEAgLTQxNSwx MyArNDE2LDEzIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV9hcnJheSAoc3RydWMKK0BA IC00MjAsMTMgKzQyMSwxMyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpjb2VyY2VfYXJyYXkgKHN0 cnVjCiAgICAgYml0cyBpbiB0aGUgZ2l2ZW4gcmFuZ2UgYXJlIHZhbGlkLCB6ZXJvIGlmIGFueSBi aXQgaXMgaW52YWxpZC4gICovCiAgCiAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3ZhbGlkIChjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDMyNiwyNSArNDMwNiwyNSBAQCBJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgKICAKICAvKiBHaXZlbiBhIHZhbHVlLCBk ZXRlcm1pbmUgd2hldGhlciB0aGUgY29udGVudHMgYnl0ZXMgc3RhcnRpbmcgYXQKICAgICBPRkZT RVQgYW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJ5dGVzIGFyZSBhdmFpbGFibGUuICBUaGlzIHJl dHVybnMKLUBAIC00MjksNyArNDMwLDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9iaXRzX3N5bnRoZXRp Y19wb2ludGVyCitAQCAtNDM0LDcgKzQzNSw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYml0c19zeW50 aGV0aWNfcG9pbnRlcgogICAgIGJ5dGUgaXMgdW5hdmFpbGFibGUuICAqLwogIAogIGV4dGVybiBp bnQgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAogLQkJ CQkgIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwogKwkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05H RVNUIGxlbmd0aCk7CiAgCi0gLyogTGlrZSB2YWx1ZV9ieXRlc19hdmFpbGFibGUsIGJ1dCByZXR1 cm4gZmFsc2UgaWYgYW55IGJ5dGUgaW4gdGhlCi0gICAgd2hvbGUgb2JqZWN0IGlzIHVuYXZhaWxh YmxlLiAgKi8KLUBAIC00MzksNyArNDQwLDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9lbnRpcmVseV9h dmFpbGFibGUgKHN0cgorIC8qIEdpdmVuIGEgdmFsdWUsIGRldGVybWluZSB3aGV0aGVyIHRoZSBj b250ZW50cyBiaXRzIHN0YXJ0aW5nIGF0CisgICAgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yIExF TkdUSCBiaXRzIGFyZSBhdmFpbGFibGUuICBUaGlzIHJldHVybnMKK0BAIC00NTYsNyArNDU3LDcg QEAgZXh0ZXJuIGludCB2YWx1ZV9lbnRpcmVseV91bmF2YWlsYWJsZSAocwogICAgIExFTkdUSCBi eXRlcyBhcyB1bmF2YWlsYWJsZS4gICovCiAgCiAgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRl c191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwKIC0JCQkJCSAgaW50IG9mZnNldCwg aW50IGxlbmd0aCk7CiArCQkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CiAg Ci0gLyogQ29tcGFyZSBMRU5HVEggYnl0ZXMgb2YgVkFMMSdzIGNvbnRlbnRzIHN0YXJ0aW5nIGF0 IE9GRlNFVDEgd2l0aAotICAgIExFTkdUSCBieXRlcyBvZiBWQUwyJ3MgY29udGVudHMgc3RhcnRp bmcgYXQgT0ZGU0VUMi4KLUBAIC00NDksNyArNDUwLDcgQEAgZXh0ZXJuIHZvaWQgbWFya192YWx1 ZV9ieXRlc191bmF2YWlsYWJsZQorIC8qIE1hcmsgVkFMVUUncyBjb250ZW50IGJpdHMgc3RhcnRp bmcgYXQgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yCisgICAgTEVOR1RIIGJpdHMgYXMgdW5hdmFp bGFibGUuICAqLworQEAgLTQ3Miw3ICs0NzMsNyBAQCBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2Jp dHNfdW5hdmFpbGFibGUKICAgICBleGFtcGxlLCB0byBjb21wYXJlIGEgY29tcGxldGUgb2JqZWN0 IHZhbHVlIHdpdGggaXRzZWxmLCBpbmNsdWRpbmcKICAgICBpdHMgZW5jbG9zaW5nIHR5cGUgY2h1 bmssIHlvdSdkIGRvOgogIApAQCAtNDM1Myw3ICs0MzMzLDcgQEAgSW5kZXg6IGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzL2dkYi92YWx1ZS5oCiAgICAgICB2YWx1ZV9hdmFpbGFibGVfY29udGVudHMg KHZhbCwgMCwgdmFsLCAwLCBsZW4pOwogIAogICAgIFJldHVybnMgdHJ1ZSBpZmYgdGhlIHNldCBv ZiBhdmFpbGFibGUgY29udGVudHMgbWF0Y2guICBVbmF2YWlsYWJsZQotQEAgLTQ3Niw5ICs0Nzcs OSBAQCBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlCitAQCAtNDk5LDkg KzUwMCw5IEBAIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZQogICAgIGdv bmUsIGl0IHdvcmtzIHdpdGggY29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLCB0aGlzIHJvdXRpbmUg bXVzdCBub3QKICAgICBiZSBjYWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICovCiAgCkBAIC00MzY2 LDcgKzQzNDYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgK ICAKICAvKiBSZWFkIExFTkdUSCBieXRlcyBvZiBtZW1vcnkgc3RhcnRpbmcgYXQgTUVNQUREUiBp bnRvIEJVRkZFUiwgd2hpY2gKICAgICBpcyAob3Igd2lsbCBiZSBjb3BpZWQgdG8pIFZBTCdzIGNv bnRlbnRzIGJ1ZmZlciBvZmZzZXQgYnkKLUBAIC00ODcsNyArNDg4LDcgQEAgZXh0ZXJuIGludCB2 YWx1ZV9hdmFpbGFibGVfY29udGVudHNfZXEgKAorQEAgLTUxMCw3ICs1MTEsNyBAQCBleHRlcm4g aW50IHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSAoCiAgICAgbWVtb3J5IGlzIGxpa2V3aXNl IHVuYXZhaWxhYmxlLiAgU1RBQ0sgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIG1lbW9yeQogICAgIGlz IGtub3duIHRvIGJlIHN0YWNrIG1lbW9yeS4gICovCiAgCkBAIC00Mzc1LDcgKzQzNTUsNyBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3ZhbHVlLmgKICAJCQkgICAgICAgaW50 IHN0YWNrLCBDT1JFX0FERFIgbWVtYWRkciwKICAJCQkgICAgICAgZ2RiX2J5dGUgKmJ1ZmZlciwg c2l6ZV90IGxlbmd0aCk7CiAgCi1AQCAtNTIxLDcgKzUyMiw3IEBAIGV4dGVybiBDT1JFX0FERFIg dW5wYWNrX3BvaW50ZXIgKHN0cnVjdAorQEAgLTU0NCw3ICs1NDUsNyBAQCBleHRlcm4gQ09SRV9B RERSIHVucGFja19wb2ludGVyIChzdHJ1Y3QKICAKICBleHRlcm4gaW50IHVucGFja192YWx1ZV9i aXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLAogIAkJCQkgICAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQzODQsNyArNDM2NCw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAogIAkJCQkgICAgICBpbnQgYml0c2l6ZSwKICAJCQkJ ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCQkJICAgICAgTE9O R0VTVCAqcmVzdWx0KTsKLUBAIC01MzAsMTIgKzUzMSwxMiBAQCBleHRlcm4gTE9OR0VTVCB1bnBh Y2tfZmllbGRfYXNfbG9uZyAoc3RyCitAQCAtNTUzLDEyICs1NTQsMTIgQEAgZXh0ZXJuIExPTkdF U1QgdW5wYWNrX2ZpZWxkX2FzX2xvbmcgKHN0cgogIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLAogIAkJCQkgICAgIGludCBmaWVsZG5vKTsKICBleHRlcm4gaW50IHVucGFja192YWx1 ZV9maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCkBAIC00Mzk5LDEwICs0Mzc5LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvdmFsdWUuaAogIAkJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwogIAogIGV4 dGVybiB2b2lkIHBhY2tfbG9uZyAoZ2RiX2J5dGUgKmJ1Ziwgc3RydWN0IHR5cGUgKnR5cGUsIExP TkdFU1QgbnVtKTsKLUBAIC01OTQsMTIgKzU5NSwxMiBAQCBleHRlcm4gc3RydWN0IHZhbHVlICpk ZWZhdWx0X3JlYWRfdmFyX3ZhCitAQCAtNjE2LDEyICs2MTcsMTIgQEAgZXh0ZXJuIHN0cnVjdCB2 YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQorIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9j YXRlX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqYWxs b2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOwotIGV4dGVybiB2b2lkIGFsbG9j YXRlX3ZhbHVlX2NvbnRlbnRzIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKIC1leHRlcm4gdm9pZCB2 YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCiAt CQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNyY19vZmZzZXQsCiAtCQkJCSBpbnQgbGVuZ3Ro KTsKQEAgLTQ0MTgsNyArNDM5OCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvdmFsdWUuaAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3JlcGVhdF92YWx1 ZSAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBjb3VudCk7CiAgCi1AQCAtNjcxLDE2ICs2NzIsMTYg QEAgZXh0ZXJuIGludCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdgorQEAgLTY5OCwxNiAr Njk5LDE2IEBAIGV4dGVybiBpbnQgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHYKICAKICBl eHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBpbnQg ZmllbGRubyk7CiAgCkBAIC00NDM4LDcgKzQ0MTgsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9jYXN0 X3BvaW50ZXJzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgaW50KTsKICAKLUBAIC03 NzQsNyArNzc1LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X2ludGVybmFsdmFyX3N0cmluZyAoc3RydQor QEAgLTgwMiw3ICs4MDMsNyBAQCBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJfc3RyaW5nIChz dHJ1CiAgZXh0ZXJuIHZvaWQgY2xlYXJfaW50ZXJuYWx2YXIgKHN0cnVjdCBpbnRlcm5hbHZhciAq dmFyKTsKICAKICBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50IChzdHJ1Y3Qg aW50ZXJuYWx2YXIgKnZhciwKQEAgLTQ0NDcsNyArNDQyNyw3IEBAIEluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAogIAkJCQkgICAgICAgaW50IGJpdHBvcywgaW50IGJp dHNpemUsCiAgCQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsKICAKLUBAIC04NTYs NyArODU3LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfeF91bm9wIChzdHJ1YworQEAg LTg4Myw3ICs4ODQsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV94X3Vub3AgKHN0cnVj CiAgCQkJCSAgIGVudW0gbm9zaWRlIG5vc2lkZSk7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq dmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQgKmYs CkBAIC00NDU2LDcgKzQ0MzYsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3ZhbHVlLmgKICAKICBleHRlcm4gaW50IGJpbm9wX3R5cGVzX3VzZXJfZGVmaW5lZF9wIChlbnVt IGV4cF9vcGNvZGUgb3AsCiAgCQkJCSAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTEsCi1AQCAtODg0 LDcgKzg4NSw4IEBAIGV4dGVybiB2b2lkIHJlbGVhc2VfdmFsdWVfb3JfaW5jcmVmIChzdHIKK0BA IC05MTEsNyArOTEyLDggQEAgZXh0ZXJuIHZvaWQgcmVsZWFzZV92YWx1ZV9vcl9pbmNyZWYgKHN0 cgogIGV4dGVybiBpbnQgcmVjb3JkX2xhdGVzdF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwpOwog IAogIGV4dGVybiB2b2lkIG1vZGlmeV9maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGdkYl9ieXRl ICphZGRyLApAQCAtNDQ2Niw3ICs0NDQ2LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHZvaWQgdHlwZV9wcmludCAoc3RydWN0IHR5cGUg KnR5cGUsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywKICAJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgc2hvdyk7Ci1AQCAtOTE0LDcgKzkxNiw3IEBAIGV4dGVybiB2b2lkIHZhbHVlX3ByaW50 X2FycmF5X2VsZW1lbnRzICgKK0BAIC05NDEsNyArOTQzLDcgQEAgZXh0ZXJuIHZvaWQgdmFsdWVf cHJpbnRfYXJyYXlfZWxlbWVudHMgKAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3JlbGVh c2VfdG9fbWFyayAoc3RydWN0IHZhbHVlICptYXJrKTsKICAKICBleHRlcm4gdm9pZCB2YWxfcHJp bnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQ0NzUs NyArNDQ1NSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdmFsdWUuaAog IAkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTk2MywxMCArOTY1LDExIEBAIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhbHVlX2xpdGVyYWxfY29tcGwKK0BAIC05OTAsMTAgKzk5MiwxMSBAQCBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCiAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAogIAkJCQkJCXN0cnVj dCBvYmpmaWxlICoqKTsKICAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjFv ZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaAppbmRleCA4MTEy NGZiLi43ZDBiNmZlIDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBh dGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2gKQEAgLTUyLDEwICs1 MiwxMCBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Yml0 cG9zLWVuc3VyZS1zaXplX3QucGF0Y2gKIAotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2Ri L2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FscGhhLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvYWxwaGEtdGRl cC5jCTIwMTMtMDEtMTggMjM6MzM6NTkuMjc3MDQ3MzI0ICswMTAwCi0rKysgZ2RiLTcuNS41MC4y MDEzMDExOC9nZGIvYWxwaGEtdGRlcC5jCTIwMTMtMDEtMTggMjM6MzQ6MDIuNjc4MDUxODQ2ICsw MTAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNC0w Mi0wNiAxODoxODo1MS4wMDU2MTY2NzYgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi9hbHBoYS10ZGVwLmMJMjAxNC0wMi0wNiAxODoxODo1My42NzE2MjEzNDkgKzAxMDAKIEBAIC00 MTQsNiArNDE0LDEzIEBAIGFscGhhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcK ICAgICAgYWNjdW11bGF0ZV9zaXplID0gMDsKICAgIGVsc2UKQEAgLTcwLDExICs3MCwxMSBAQCBJ bmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvYWxwaGEtdGRlcC5jCiAgICBzcCAtPSBhY2N1 bXVsYXRlX3NpemU7CiAgCiAgICAvKiBLZWVwIHNwIGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiAx NiBhcyB0aGUgQUJJIHJlcXVpcmVzLiAgKi8KLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dk Yi9jcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY3AtdmFscHJp bnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvY3AtdmFs cHJpbnQuYwkyMDEzLTAxLTE4IDIzOjMzOjU5LjI3ODA0NzMyNiArMDEwMAotKysrIGdkYi03LjUu NTAuMjAxMzAxMTgvZ2RiL2NwLXZhbHByaW50LmMJMjAxMy0wMS0xOCAyMzozNDowMi42NzkwNTE4 NDggKzAxMDAKLUBAIC01NDAsNiArNTQwLDggQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1YworLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvY3AtdmFscHJp bnQuYwkyMDE0LTAyLTA2IDE4OjE4OjUxLjAwNjYxNjY3NyArMDEwMAorKysrIGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNC0wMi0wNiAxODoxODo1My42NzE2MjEzNDkg KzAxMDAKK0BAIC01MzcsNiArNTM3LDggQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0 eXBlLCBzdHJ1YwogIAkJICBnZGJfYnl0ZSAqYnVmOwogIAkJICBzdHJ1Y3QgY2xlYW51cCAqYmFj a190bzsKICAKQEAgLTgzLDExICs4MywxMSBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9n ZGIvY3AtdmFscHJpbnQuYwogIAkJICBidWYgPSB4bWFsbG9jIChUWVBFX0xFTkdUSCAoYmFzZWNs YXNzKSk7CiAgCQkgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCBidWYpOwogIAotSW5k ZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIw MTMwMTE4Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTMtMDEtMTggMjM6MzM6NTkuMjgwMDQ3MzMy ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvZHdhcmYybG9jLmMJMjAxMy0wMS0x OCAyMzozNDowMi42ODAwNTE4NTEgKzAxMDAKLUBAIC0xNzg0LDYgKzE3ODQsOCBAQCByZWFkX3Bp ZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvZHdhcmYybG9jLmMJMjAxNC0wMi0wNiAxODoxODo1MS4wMDc2MTY2NzggKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9kd2FyZjJsb2MuYwkyMDE0LTAyLTA2IDE4OjE4OjUz LjY3MjYyMTI5MyArMDEwMAorQEAgLTE4MjEsNiArMTgyMSw4IEBAIHJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCiAgCiAgICAgICAgdGhpc19zaXplID0gKHRoaXNfc2l6ZV9iaXRz ICsgc291cmNlX29mZnNldF9iaXRzICUgOCArIDcpIC8gODsKICAgICAgICBzb3VyY2Vfb2Zmc2V0 ID0gc291cmNlX29mZnNldF9iaXRzIC8gODsKQEAgLTk2LDcgKzk2LDcgQEAgSW5kZXg6IGdkYi03 LjUuNTAuMjAxMzAxMTgvZ2RiL2R3YXJmMmxvYy5jCiAgICAgICAgaWYgKGJ1ZmZlcl9zaXplIDwg dGhpc19zaXplKQogIAl7CiAgCSAgYnVmZmVyX3NpemUgPSB0aGlzX3NpemU7Ci1AQCAtMTk3NSw2 ICsxOTc3LDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAorQEAg LTIwMTIsNiArMjAxNCw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywg c3QKICAJfQogICAgICAgIGVsc2UKICAJewpAQCAtMTA0LDExICsxMDQsMTEgQEAgSW5kZXg6IGdk Yi03LjUuNTAuMjAxMzAxMTgvZ2RiL2R3YXJmMmxvYy5jCiAgCSAgaWYgKGJ1ZmZlcl9zaXplIDwg dGhpc19zaXplKQogIAkgICAgewogIAkgICAgICBidWZmZXJfc2l6ZSA9IHRoaXNfc2l6ZTsKLUlu ZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi9maW5kY21kLmMKK0luZGV4OiBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi9maW5kY21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMw MTE4Lm9yaWcvZ2RiL2ZpbmRjbWQuYwkyMDEzLTAxLTE4IDIzOjMzOjU5LjI4MDA0NzMzMiArMDEw MAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL2ZpbmRjbWQuYwkyMDEzLTAxLTE4IDIzOjM0 OjAyLjY4MDA1MTg1MSArMDEwMAotQEAgLTE4Nyw2ICsxODcsNyBAQCBwYXJzZV9maW5kX2FyZ3Mg KGNoYXIgKmFyZ3MsIFVMT05HRVNUICptCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9maW5kY21kLmMJMjAxNC0wMi0wNiAxODoxODo1MS4wMDg2MTY2NzkgKzAxMDAKKysrKyBnZGIt Ny42LjkwLjIwMTQwMTI3L2dkYi9maW5kY21kLmMJMjAxNC0wMi0wNiAxODoxODo1My42NzM2MjEy MzkgKzAxMDAKK0BAIC0xODUsNiArMTg1LDcgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdz LCBVTE9OR0VTVCAqbQogIAkgIHNpemVfdCBjdXJyZW50X29mZnNldCA9IHBhdHRlcm5fYnVmX2Vu ZCAtIHBhdHRlcm5fYnVmOwogIAogIAkgIHBhdHRlcm5fYnVmX3NpemUgPSBwYXR0ZXJuX2J1Zl9z aXplX25lZWQgKiAyOwpAQCAtMTE2LDExICsxMTYsMTEgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAx MzAxMTgvZ2RiL2ZpbmRjbWQuYwogIAkgIHBhdHRlcm5fYnVmID0geHJlYWxsb2MgKHBhdHRlcm5f YnVmLCBwYXR0ZXJuX2J1Zl9zaXplKTsKICAJICBwYXR0ZXJuX2J1Zl9lbmQgPSBwYXR0ZXJuX2J1 ZiArIGN1cnJlbnRfb2Zmc2V0OwogIAl9Ci1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIv cC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvcC12YWxwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi9wLXZhbHByaW50 LmMJMjAxMy0wMS0xOCAyMzozMzo1OS4yODEwNDczMzQgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIw MTMwMTE4L2dkYi9wLXZhbHByaW50LmMJMjAxMy0wMS0xOCAyMzozNDowMi42ODAwNTE4NTEgKzAx MDAKLUBAIC03OTcsNiArNzk3LDcgQEAgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0 IHR5cGUgKgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvcC12YWxwcmludC5jCTIw MTQtMDItMDYgMTg6MTg6NTEuMDA4NjE2Njc5ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvcC12YWxwcmludC5jCTIwMTQtMDItMDYgMTg6MTg6NTMuNjczNjIxMjM5ICswMTAwCitA QCAtNzk4LDYgKzc5OCw3IEBAIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBl ICoKICAJICAgICAgZ2RiX2J5dGUgKmJ1ZjsKICAJICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tf dG87CiAgCkBAIC0xMjgsMTEgKzEyOCwxMSBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9n ZGIvcC12YWxwcmludC5jCiAgCSAgICAgIGJ1ZiA9IHhtYWxsb2MgKFRZUEVfTEVOR1RIIChiYXNl Y2xhc3MpKTsKICAJICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1Zik7CiAg Ci1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdXRpbHMuYworSW5kZXg6IGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3V0aWxzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMw MTE4Lm9yaWcvZ2RiL3V0aWxzLmMJMjAxMy0wMS0xOCAyMzozMzo1OS4yODIwNDczMzYgKzAxMDAK LSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi91dGlscy5jCTIwMTMtMDEtMTggMjM6MzQ6MDIu NjgxMDUxODU0ICswMTAwCi1AQCAtMzIxOSw2ICszMjE5LDE4IEBAIGhvc3RfYWRkcmVzc190b19z dHJpbmcgKGNvbnN0IHZvaWQgKmFkZHIKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L3V0aWxzLmMJMjAxNC0wMi0wNiAxODoxODo1MS4wMDg2MTY2NzkgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi91dGlscy5jCTIwMTQtMDItMDYgMTg6MTg6NTMuNjc0NjIxMTg2ICsw MTAwCitAQCAtMzE2OSw2ICszMTY5LDE4IEBAIGhvc3RfYWRkcmVzc190b19zdHJpbmcgKGNvbnN0 IHZvaWQgKmFkZHIKICAgIHJldHVybiBzdHI7CiAgfQogIApAQCAtMTUxLDExICsxNTEsMTEgQEAg SW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3V0aWxzLmMKICBjaGFyICoKICBnZGJfcmVh bHBhdGggKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQogIHsKLUluZGV4OiBnZGItNy41LjUwLjIwMTMw MTE4L2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbG9wcy5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi92YWxvcHMuYwky MDEzLTAxLTE4IDIzOjMzOjU5LjI4MzA0NzMzOCArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAx MTgvZ2RiL3ZhbG9wcy5jCTIwMTMtMDEtMTggMjM6MzQ6MDIuNjgyMDUxODU2ICswMTAwCi1AQCAt MjM2OSw2ICsyMzY5LDcgQEAgc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUs CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWxvcHMuYwkyMDE0LTAyLTA2IDE4 OjE4OjUxLjAwOTYxNjY4MCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3ZhbG9w cy5jCTIwMTQtMDItMDYgMTg6MTg6NTMuNjc1NjIxMTM1ICswMTAwCitAQCAtMjE4NCw2ICsyMTg0 LDcgQEAgc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUsCiAgCSAgICAgIHN0 cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogIAkgICAgICBDT1JFX0FERFIgYWRkcmVzczsKICAKQEAg LTE2MywxMSArMTYzLDExIEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi92YWxvcHMu YwogIAkgICAgICB0bXAgPSB4bWFsbG9jIChUWVBFX0xFTkdUSCAoYmFzZWNsYXNzKSk7CiAgCSAg ICAgIGJhY2tfdG8gPSBtYWtlX2NsZWFudXAgKHhmcmVlLCB0bXApOwogIAkgICAgICBhZGRyZXNz ID0gdmFsdWVfYWRkcmVzcyAoKmFyZzFwKTsKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dk Yi92YWx1ZS5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFsdWUuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvdmFsdWUuYwkyMDEzLTAxLTE4 IDIzOjMzOjU5LjI4NTA0NzM0MiArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Zh bHVlLmMJMjAxMy0wMS0xOCAyMzozNDowMi42ODMwNTE4NTggKzAxMDAKLUBAIC02NjMsNiArNjYz LDcgQEAgYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpCistLS0gZ2RiLTcu Ni45MC4yMDE0MDEyNy5vcmlnL2dkYi92YWx1ZS5jCTIwMTQtMDItMDYgMTg6MTg6NTEuMDEwNjE2 NjgxICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmFsdWUuYwkyMDE0LTAyLTA2 IDE4OjE5OjEwLjI2MTYzNzM5OCArMDEwMAorQEAgLTgyMiw2ICs4MjIsNyBAQCBhbGxvY2F0ZV92 YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgIGRlc2NyaXB0aW9uIGNvcnJlY3Rs eS4gICovCiAgICBjaGVja190eXBlZGVmICh0eXBlKTsKICAKQEAgLTE3NSw4ICsxNzUsOCBAQCBJ bmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdmFsdWUuYwogICAgdmFsID0gKHN0cnVjdCB2 YWx1ZSAqKSB4emFsbG9jIChzaXplb2YgKHN0cnVjdCB2YWx1ZSkpOwogICAgdmFsLT5jb250ZW50 cyA9IE5VTEw7CiAgICB2YWwtPm5leHQgPSBhbGxfdmFsdWVzOwotQEAgLTY5NCw2ICs2OTUsOCBA QCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSB2b2lkCitAQCAtODUz LDYgKzg1NCw4IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKQorIHN0 YXRpYyB2b2lkCiAgYWxsb2NhdGVfdmFsdWVfY29udGVudHMgKHN0cnVjdCB2YWx1ZSAqdmFsKQog IHsKICsgIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5HVEggKHZhbC0+ZW5j bG9zaW5nX3R5cGUpKTsKQEAgLTE4NCw3ICsxODQsNyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvdmFsdWUuYwogICAgaWYgKCF2YWwtPmNvbnRlbnRzKQogICAgICB2YWwtPmNvbnRl bnRzID0gKGdkYl9ieXRlICopIHh6YWxsb2MgKFRZUEVfTEVOR1RIICh2YWwtPmVuY2xvc2luZ190 eXBlKSk7CiAgfQotQEAgLTI2NzIsOCArMjY3NSwxMiBAQCB2b2lkCitAQCAtMjg1NCw4ICsyODU3 LDEyIEBAIHZvaWQKICBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFs LCBzdHJ1Y3QgdHlwZSAqbmV3X2VuY2xfdHlwZSkKICB7CiAgICBpZiAoVFlQRV9MRU5HVEggKG5l d19lbmNsX3R5cGUpID4gVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKSkg CkBAIC0xOTksMTAgKzE5OSwxMCBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdmFs dWUuYwogIAogICAgdmFsLT5lbmNsb3NpbmdfdHlwZSA9IG5ld19lbmNsX3R5cGU7CiAgfQotSW5k ZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3ZheC10ZGVwLmMKK0luZGV4OiBnZGItNy42Ljkw LjIwMTQwMTI3L2dkYi92YXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEz MDExOC5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTMtMDEtMTggMjM6MzQ6MDIuNjgzMDUxODU4ICsw MTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdmF4LXRkZXAuYwkyMDEzLTAxLTE4IDIz OjM0OjM0Ljk1MDA5NDE5OCArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv dmF4LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjE4OjUxLjM3MDYxNzA2OCArMDEwMAorKysrIGdkYi03 LjYuOTAuMjAxNDAxMjcvZ2RiL3ZheC10ZGVwLmMJMjAxNC0wMi0wNiAxODoxODo1My42NzY2MjEw ODYgKzAxMDAKIEBAIC0yMjMsNiArMjIzLDcgQEAgdmF4X3JldHVybl92YWx1ZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyYwogIAkgIFVMT05HRVNUIGFkZHI7CiAgCkBAIC0yMTEsMTEgKzIxMSwxMSBA QCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdmF4LXRkZXAuYwogIAkgIHJlYWRfbWVt b3J5IChhZGRyLCByZWFkYnVmLCBsZW4pOwogIAl9CiAgCi1JbmRleDogZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvZGVmcy5oCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZGVmcy5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi9kZWZzLmgJMjAxMy0w MS0xOCAyMzozNDowMi42ODQwNTE4NjAgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIwMTMwMTE4L2dk Yi9kZWZzLmgJMjAxMy0wMS0xOCAyMzozNDoxNC4yMzgwNjcxOTMgKzAxMDAKLUBAIC04MDEsNCAr ODAxLDYgQEAgZW51bSBibG9ja19lbnVtCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dk Yi9kZWZzLmgJMjAxNC0wMi0wNiAxODoxODo1MS4zNzA2MTcwNjggKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9kZWZzLmgJMjAxNC0wMi0wNiAxODoxODo1My42Nzc2MjEwMzggKzAx MDAKK0BAIC03NjgsNCArNzY4LDYgQEAgZW51bSBibG9ja19lbnVtCiAgCiAgI2luY2x1ZGUgInV0 aWxzLmgiCiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRj aCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2gKaW5kZXggYzM5NjU1NC4uNTA4 MmI5ZiAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRjaAorKysg Yi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBhdGNoCkBAIC03MSw3ICs3MSw3IEBAIGdk Yi9DaGFuZ2VMb2c6CiAJKHJlbW90ZV9yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgogCShy ZW1vdGVfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVO R1RICiAJdG8gTE9OR0VTVC4KLQkqIHMzOTAtbmF0LmMgKHMzOTBfaW5zZXJ0X3dhdGNocG9pbnQp OiBFeHBhbmQgcGFyYW1ldGVyIExFTiB0bworCSogczM5MC1saW51eC1uYXQuYyAoczM5MF9pbnNl cnRfd2F0Y2hwb2ludCk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIHRvCiAJTE9OR0VTVC4KIAkoczM5 MF9yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3aXNlLgogCSogdGFyZ2V0LmMgKHVwZGF0ZV9jdXJy ZW50X3RhcmdldCk6IEV4cGFuZCBwYXJhbWV0ZXIgTEVOIGZvcgpAQCAtNDkzLDEwICs0OTMsMTAg QEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9yZW1vdGUuYwogICAgcHV0cGt0 IChycy0+YnVmKTsKICAgIGdldHBrdCAoJnJzLT5idWYsICZycy0+YnVmX3NpemUsIDApOwogIAot SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zMzkwLW5hdC5jCitJbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3MzOTAtbGludXgtbmF0LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zMzkwLW5hdC5jCTIwMTMtMDgtMDIg MTY6NDI6MjkuNTc4NjMyOTEzICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3MzOTAtbmF0LmMJMjAxMy0wOC0wMiAxNjo0MjozNC4xMDM2MzkxMTYgKzAyMDAKKy0tLSBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTMtMDgtMDIg MTY6NDI6MjkuNTc4NjMyOTEzICswMjAwCisrKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3MzOTAtbGludXgtbmF0LmMJMjAxMy0wOC0wMiAxNjo0MjozNC4xMDM2MzkxMTYgKzAyMDAKIEBA IC01MTYsNyArNTE2LDcgQEAgczM5MF9maXhfd2F0Y2hfcG9pbnRzIChzdHJ1Y3QgbHdwX2luZm8g KgogIH0KICAKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNo IGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaAppbmRleCA4MjdkNjRkLi4wZjgy OWE3IDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCisrKyBi L2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKQEAgLTk2LDcgKzk2LDcgQEAgZ2Ri L0NoYW5nZUxvZwogCUxFTiB0byBMT05HRVNULgogCShyYW5fb3V0X29mX3JlZ2lzdGVyc19mb3Jf YXJndW1lbnRzKTogRXhwYW5kIFNQQUNFLCBKSiB0bwogCUxPTkdFU1QuCi0JKiBzMzkwLXRkZXAu YyAoczM5MF92YWx1ZV9mcm9tX3JlZ2lzdGVyKTogRXhwYW5kIExFTiB0byBMT05HRVNULgorCSog czM5MC1saW51eC10ZGVwLmMgKHMzOTBfdmFsdWVfZnJvbV9yZWdpc3Rlcik6IEV4cGFuZCBMRU4g dG8gTE9OR0VTVC4KIAkoaXNfcG93ZXJfb2ZfdHdvKTogRXhwYW5kIHBhcmFtZXRlciBOIHRvIFVM T05HRVNULgogCShzMzkwX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBMRU5HVEggdG8gVUxPTkdF U1QuCiAJKiBzY29yZS10ZGVwLmMgKHNjb3JlX3B1c2hfZHVtbXlfY2FsbCk6IEV4cGFuZCBBUkdM RU4gdG8KQEAgLTEzNywxMCArMTM3LDEwIEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRh Y2htZW50OyBmaWxlbmFtZT1iaXRwb3MtdGRlcC5wYXRjaAogCi1JbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz Lm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjEyODY3NjA5NCArMDIw MAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hbHBoYS10ZGVwLmMJMjAxMy0wOC0w MiAxNjo0MzowNC43MjM2ODEwMDQgKzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcv Z2RiL2FscGhhLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk3MDc0NzcxNiArMDEwMAorKysr IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FscGhhLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3 LjI5NDc1MjM2MiArMDEwMAogQEAgLTI5OSwxOCArMjk5LDE4IEBAIGFscGhhX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl ciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC0xODQsMjIgKzE4NCwyMiBAQCBJ bmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2FscGhhLXRkZXAuYwogIAkgICAgICBt ZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxlbik7CiAgCSAgICAg IG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50cyArPSB0bGVuOwotSW5kZXg6IGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9hbWQ2NC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi9hbWQ2NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xMzA2NzYw OTcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW1kNjQtdGRlcC5jCTIw MTMtMDgtMDIgMTY6NDM6MDQuNzI0NjgxMDA2ICswMjAwCi1AQCAtNjE2LDcgKzYxNiw3IEBAIGFt ZDY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmEKKy0tLSBnZGItNy42LjkwLjIw MTQwMTI3Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk3Mjc0Nzcx OCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIxOjUxLjEwNjgxMDgxNCArMDEwMAorQEAgLTYzMyw3ICs2MzMsNyBAQCBhbWQ2NF9y ZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhCisgCQkgICAgZ2RiX2J5dGUgKnJlYWRi dWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7Ci0gICBzdHJ1Y3QgZ2RiYXJjaF90ZGVw ICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gYW1kNjRfcmVnX2NsYXNz IGNsYXNzWzJdOwogLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICsgIExPTkdFU1Qg bGVuID0gVFlQRV9MRU5HVEggKHR5cGUpOwogICAgc3RhdGljIGludCBpbnRlZ2VyX3JlZ251bVtd ID0geyBBTUQ2NF9SQVhfUkVHTlVNLCBBTUQ2NF9SRFhfUkVHTlVNIH07CiAgICBzdGF0aWMgaW50 IHNzZV9yZWdudW1bXSA9IHsgQU1ENjRfWE1NMF9SRUdOVU0sIEFNRDY0X1hNTTFfUkVHTlVNIH07 CiAgICBpbnQgaW50ZWdlcl9yZWcgPSAwOwotQEAgLTc2OSw4ICs3NjksOCBAQCBhbWQ2NF9wdXNo X2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCi0gICAgICB0aGF0IHJlZ2lzdGVyIG51bWJl ciAob3IgYSBuZWdhdGl2ZSB2YWx1ZSBvdGhlcndpc2UpLiAgKi8KLSAgIGludCAqYXJnX2FkZHJf cmVnbm8gPSBhbGxvY2EgKG5hcmdzICogc2l6ZW9mIChpbnQpKTsKK0BAIC03ODQsOCArNzg0LDgg QEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgorICAgfTsKKyAgIHN0 cnVjdCB2YWx1ZSAqKnN0YWNrX2FyZ3MgPSBhbGxvY2EgKG5hcmdzICogc2l6ZW9mIChzdHJ1Y3Qg dmFsdWUgKikpOwogICAgaW50IG51bV9zdGFja19hcmdzID0gMDsKIC0gIGludCBudW1fZWxlbWVu dHMgPSAwOwogLSAgaW50IGVsZW1lbnQgPSAwOwpAQCAtMjA4LDcgKzIwOCw3IEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYW1kNjQtdGRlcC5jCiAgICBpbnQgaW50ZWdlcl9y ZWcgPSAwOwogICAgaW50IHNzZV9yZWcgPSAwOwogICAgaW50IGk7Ci1AQCAtNzg0LDcgKzc4NCw3 IEBAIGFtZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKK0BAIC03OTcsNyAr Nzk3LDcgQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgogICAgZm9y IChpID0gMDsgaSA8IG5hcmdzOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlw ZSA9IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOwpAQCAtMjE3LDExICsyMTcsMTEgQEAgSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hbWQ2NC10ZGVwLmMKICAgICAgICBlbnVtIGFtZDY0 X3JlZ19jbGFzcyBjbGFzc1syXTsKICAgICAgICBpbnQgbmVlZGVkX2ludGVnZXJfcmVncyA9IDA7 CiAgICAgICAgaW50IG5lZWRlZF9zc2VfcmVncyA9IDA7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDEzLTA4LTAyIDE2 OjQzOjAxLjEzNTY3NjEwNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9h bWQ2NC13aW5kb3dzLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjcyNDY4MTAwNiArMDIwMAot QEAgLTc5LDcgKzc5LDcgQEAgYW1kNjRfd2luZG93c19yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJh cgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJ MjAxNC0wMi0wNiAxODoyMDo1Mi45NzM3NDc3MjAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjI5Njc1MjM2 NCArMDEwMAorQEAgLTI4OCw3ICsyODgsNyBAQCBhbWQ2NF93aW5kb3dzX3JldHVybl92YWx1ZSAo c3RydWN0IGdkYmFyCiAgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLAogIAkJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndy aXRlYnVmKQogIHsKQEAgLTIzMCwxMCArMjMwLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKICAgIGludCByZWdudW0gPSAtMTsKICAK ICAgIC8qIFNlZSBpZiBvdXIgdmFsdWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBhIHJlZ2lzdGVyLiAg SWYgaXQgaXMsIHRoZW4KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXJtLXRk ZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2FybS10ZGVwLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTMt MDgtMDIgMTY6NDM6MDEuMTQwNjc2MTEwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2FybS10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43Mjc2ODEwMTAgKzAyMDAKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2FybS10ZGVwLmMJMjAxNC0wMi0wNiAxODoy MDo1Mi45Nzg3NDc3MjUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hcm0tdGRl cC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMjk5NzUyMzY3ICswMTAwCiBAQCAtMzQ5OCw3ICszNDk4 LDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19jaGFyIChlbnVtIGFybV92ZnBfY3ByYwogICAgIGFycmF5 KS4gIFZlY3RvcnMgYW5kIGNvbXBsZXggdHlwZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVk LAogICAgIG1hdGNoaW5nIHRoZSBnZW5lcmljIEFBUENTIHN1cHBvcnQuICAqLwpAQCAtMzA4LDEx ICszMDgsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hcm0tdGRlcC5j CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlOwogICAgICAgIHN0cnVjdCB0eXBlICp0YXJn ZXRfdHlwZTsKICAgICAgICBlbnVtIHR5cGVfY29kZSB0eXBlY29kZTsKLUluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvYXZyLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL2F2ci10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTQyNjc2MTEzICswMjAw Ci0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2F2ci10ZGVwLmMJMjAxMy0wOC0wMiAx Njo0MzowNC43Mjg2ODEwMTEgKzAyMDAKLUBAIC0xMTcwLDEzICsxMTcwLDE0IEBAIGF2cl9kdW1t eV9pZCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHMKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3 Lm9yaWcvZ2RiL2F2ci10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODA3NDc3MjcgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9hdnItdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6 NTcuMjk5NzUyMzY3ICswMTAwCitAQCAtMTE2NywxMyArMTE2NywxNCBAQCBhdnJfZHVtbXlfaWQg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzCiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KICB7CkBA IC0zMjksNyArMzI5LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hdnIt dGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNpOwogICAgc2kgPSB4bWFsbG9jIChz aXplb2YgKHN0cnVjdCBzdGFja19pdGVtKSk7Ci1AQCAtMTI2NSwxMiArMTI2NiwxMiBAQCBhdnJf cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAtMTI2MiwxMiArMTI2Mywx MiBAQCBhdnJfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgCiAgICBmb3Ig KGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewpAQCAtMzQ1LDEwICszNDUsMTAgQEAgSW5k ZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9hdnItdGRlcC5jCiAgCiAgICAgICAgLyog Q2FsY3VsYXRlIHRoZSBwb3RlbnRpYWwgbGFzdCByZWdpc3RlciBuZWVkZWQuICAqLwogICAgICAg IGxhc3RfcmVnbnVtID0gcmVnbnVtIC0gKGxlbiArIChsZW4gJiAxKSk7Ci1JbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2JmaW4tdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvYmZpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE0MjY3NjExMyAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9iZmluLXRkZXAuYwkyMDEzLTA4 LTAyIDE2OjQzOjA0LjcyODY4MTAxMSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIvYmZpbi10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODA3NDc3MjcgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9iZmluLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3 LjMwMDc1MjM2OCArMDEwMAogQEAgLTUwNiw3ICs1MDYsNyBAQCBiZmluX3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBnZGJfYnl0ZSBidWZbNF07CiAgICBpbnQgaTsKQEAg LTM2NywxMSArMzY3LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvYmZp bi10ZGVwLmMKICAKICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAgICAgIHdyaXRlX21l bW9yeSAoc3AsIHZhbHVlX2NvbnRlbnRzX3dyaXRlYWJsZSAoYXJnc1tpXSksIGNvbnRhaW5lcl9s ZW4pOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9jcmlzLXRkZXAuYworSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvY3Jpcy10ZGVwLmMJMjAxMy0wOC0wMiAx Njo0MzowNC43Mjk2ODEwMTIgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv Y3Jpcy10ZGVwLmMJMjAxMy0wOC0wMiAxNjo1MjoyOC4zMTY0OTE1NjEgKzAyMDAKLUBAIC02NzAs MTMgKzY3MCwxMyBAQCBzdGF0aWMgQ09SRV9BRERSIGNyaXNfdW53aW5kX3NwIChzdHJ1Y3QKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2NyaXMtdGRlcC5jCTIwMTQtMDItMDYgMTg6 MjA6NTIuOTgxNzQ3NzI4ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvY3Jpcy10 ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMDE3NTIzNjkgKzAxMDAKK0BAIC02NjUsMTMgKzY2 NSwxMyBAQCBzdGF0aWMgQ09SRV9BRERSIGNyaXNfdW53aW5kX3NwIChzdHJ1Y3QKICAKICBzdHJ1 Y3Qgc3RhY2tfaXRlbQogIHsKQEAgLTM4Nyw3ICszODcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL2NyaXMtdGRlcC5jCiAgewogICAgc3RydWN0IHN0YWNrX2l0ZW0gKnNp OwogICAgc2kgPSB4bWFsbG9jIChzaXplb2YgKHN0cnVjdCBzdGFja19pdGVtKSk7Ci1AQCAtODQ5 LDEzICs4NDksMTMgQEAgY3Jpc19wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAor QEAgLTg0NCwxMyArODQ0LDEzIEBAIGNyaXNfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKICAKICAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQog ICAgICB7CkBAIC00MDUsMTAgKzQwNSwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL2NyaXMtdGRlcC5jCiAgICAgICAgCiAgICAgICAgLyogSG93IG1heSByZWdpc3RlcnMg d29ydGggb2Ygc3RvcmFnZSBkbyB3ZSBuZWVkIGZvciB0aGlzIGFyZ3VtZW50PyAgKi8KICAgICAg ICByZWdfZGVtYW5kID0gKGxlbiAvIDQpICsgKGxlbiAlIDQgIT0gMCA/IDEgOiAwKTsKLUluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaDgzMDAtdGRlcC5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvaDgzMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvaDgzMDAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEu MTQ0Njc2MTE2ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2g4MzAwLXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczMDY4MTAxNCArMDIwMAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvaDgzMDAtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTgxNzQ3 NzI4ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaDgzMDAtdGRlcC5jCTIwMTQt MDItMDYgMTg6MjA6NTcuMzAxNzUyMzY5ICswMTAwCiBAQCAtNjQwLDcgKzY0MCw3IEBAIGg4MzAw X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAJCSAgICAgICBpbnQgc3RydWN0 X3JldHVybiwgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKQEAgLTQ0MSwxMCArNDQxLDEwIEBA IEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaDgzMDAtdGRlcC5jCiAgCiAgCSAg ICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgcGFkZGVkX2xlbjsgb2Zmc2V0ICs9IHdvcmRz aXplKQogIAkJewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ocHBhLXRkZXAu YworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2hwcGEtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvaHBwYS10ZGVwLmMJMjAxMy0w OC0wMiAxNjo0MzowMS4xNDU2NzYxMTcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvaHBwYS10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43MzE2ODEwMTUgKzAyMDAKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2hwcGEtdGRlcC5jCTIwMTQtMDItMDYgMTg6 MjA6NTIuOTgyNzQ3NzI5ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaHBwYS10 ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMDI3NTIzNzEgKzAxMDAKIEBAIC05NjEsNyArOTYx LDcgQEAgaHBwYTY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgICB7CiAg ICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwpAQCAtNDYzLDExICs0NjMsMTEgQEAg SW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ocHBhLXRkZXAuYwogICAgaW50IHJl Z251bSwgb2Zmc2V0OwogIAogICAgaWYgKGxlbiA+IDE2KQotSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQw MTI3L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0Mzow MS4xNDU2NzYxMTcgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni1k YXJ3aW4tdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzMxNjgxMDE1ICswMjAwCi1AQCAtMTY2 LDcgKzE2Niw3IEBAIGkzODZfZGFyd2luX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmEKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjUyLjk4Mjc0NzcyOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L2kzODYtZGFyd2luLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMwMjc1MjM3MSArMDEwMAor QEAgLTE2NCw3ICsxNjQsNyBAQCBpMzg2X2Rhcndpbl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBn ZGJhCiAgCiAgICBmb3IgKHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFz cysrKQogICAgICB7CkBAIC00NzYsMTEgKzQ3NiwxMSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2kzODYtZGFyd2luLXRkZXAuYwogICAgICAgIGludCBudW1fbTEyOCA9IDA7 CiAgCiAgICAgICAgaWYgKHN0cnVjdF9yZXR1cm4pCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL2kzODYtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4 Ni10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dk Yi9pMzg2LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE0NzY3NjEyMCArMDIwMAotKysrIGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pMzg2LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0 LjczMzY4MTAxOCArMDIwMAotQEAgLTI0MDcsNyArMjQwNyw3IEBAIGkzODZfcHVzaF9kdW1teV9j YWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2Ri L2kzODYtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTg1NzQ3NzMyICswMTAwCisrKysgZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvaTM4Ni10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMDM3 NTIzNzIgKzAxMDAKK0BAIC0yNDczLDcgKzI0NzMsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKmdkCiAgICBnZGJfYnl0ZSBidWZbNF07CiAgICBpbnQgaTsKICAgIGlu dCB3cml0ZV9wYXNzOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIERldGVybWluZSB0aGUgdG90YWwgc3Bh Y2UgcmVxdWlyZWQgZm9yIGFyZ3VtZW50cyBhbmQgc3RydWN0CiAgICAgICByZXR1cm4gYWRkcmVz cyBpbiBhIGZpcnN0IHBhc3MgKGFsbG93aW5nIGZvciAxNi1ieXRlLWFsaWduZWQKLUBAIC0yNDE1 LDcgKzI0MTUsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCitA QCAtMjQ4MSw3ICsyNDgxLDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICpnZAogIAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8IDI7IHdyaXRlX3Bh c3MrKykKICAgICAgewpAQCAtNDk4LDcgKzQ5OCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvaTM4Ni10ZGVwLmMKICAKICAgICAgICBpZiAoc3RydWN0X3JldHVybikKICAJ ewotQEAgLTI0MzIsNyArMjQzMiw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKK0BAIC0yNDk4LDcgKzI0OTgsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKmdkCiAgCiAgICAgICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBpKyspCiAg CXsKQEAgLTUwNyw3ICs1MDcsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L2kzODYtdGRlcC5jCiAgCiAgCSAgaWYgKHdyaXRlX3Bhc3MpCiAgCSAgICB7Ci1AQCAtMjYzOSw3 ICsyNjM5LDcgQEAgaTM4Nl9yZWdfc3RydWN0X3JldHVybl9wIChzdHJ1Y3QgZ2RiYXJjaAorQEAg LTI3MDUsNyArMjcwNSw3IEBAIGkzODZfcmVnX3N0cnVjdF9yZXR1cm5fcCAoc3RydWN0IGdkYmFy Y2gKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJh cmNoKTsKICAgIGVudW0gdHlwZV9jb2RlIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOwpAQCAtNTE2 LDcgKzUxNiw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni10ZGVw LmMKICAKICAgIGdkYl9hc3NlcnQgKGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVDVAogICAgICAgICAg ICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5JT04KLUBAIC0zMDk0LDcgKzMwOTQsNyBAQCBz dGF0aWMgaW50CitAQCAtMzI0OSw3ICszMjQ5LDcgQEAgc3RhdGljIGludAogIGkzODZfY29udmVy dF9yZWdpc3Rlcl9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAJCQkgaW50IHJlZ251bSwg c3RydWN0IHR5cGUgKnR5cGUpCiAgewpAQCAtNTI1LDcgKzUyNSw3IEBAIEluZGV4OiBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIFZhbHVlcyBtYXkgYmUg c3ByZWFkIGFjcm9zcyBtdWx0aXBsZSByZWdpc3RlcnMuICBNb3N0IGRlYnVnZ2luZwogICAgICAg Zm9ybWF0cyBhcmVuJ3QgZXhwcmVzc2l2ZSBlbm91Z2ggdG8gc3BlY2lmeSB0aGUgbG9jYXRpb25z LCBzbwotQEAgLTMxMjcsNyArMzEyNyw3IEBAIGkzODZfcmVnaXN0ZXJfdG9fdmFsdWUgKHN0cnVj dCBmcmFtZV9pbmYKK0BAIC0zMjgyLDcgKzMyODIsNyBAQCBpMzg2X3JlZ2lzdGVyX3RvX3ZhbHVl IChzdHJ1Y3QgZnJhbWVfaW5mCiAgCQkJaW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxl cCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFt ZSk7CkBAIC01MzQsNyArNTM0LDcgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9pMzg2LXRkZXAuYwogIAogICAgaWYgKGkzODZfZnBfcmVnbnVtX3AgKGdkYmFyY2gsIHJlZ251 bSkpCiAgICAgIHJldHVybiBpMzg3X3JlZ2lzdGVyX3RvX3ZhbHVlIChmcmFtZSwgcmVnbnVtLCB0 eXBlLCB0bywKLUBAIC0zMTYzLDcgKzMxNjMsNyBAQCBzdGF0aWMgdm9pZAorQEAgLTMzMTgsNyAr MzMxOCw3IEBAIHN0YXRpYyB2b2lkCiAgaTM4Nl92YWx1ZV90b19yZWdpc3RlciAoc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLAogIAkJCXN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqZnJvbSkKICB7CkBAIC01NDMsMTEgKzU0MywxMSBAQCBJbmRleDogZ2RiLTcu Ni41MC4yMDEzMDczMS1jdnMvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICBpZiAoaTM4Nl9mcF9yZWdu dW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwgcmVnbnVtKSkKICAgICAgewotSW5kZXg6IGdk Yi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pYTY0LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAu MjAxNDAxMjcvZ2RiL2lhNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMub3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNDg2NzYx MjEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaWE2NC10ZGVwLmMJMjAx My0wOC0wMiAxNjo0MzowNC43MzQ2ODEwMTkgKzAyMDAKLUBAIC0zOTc0LDggKzM5NzQsMTAgQEAg aWE2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvaWE2NC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODY3NDc3 MzMgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9pYTY0LXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjU3LjMwNDc1MjM3MyArMDEwMAorQEAgLTM4NTEsOCArMzg1MSwxMCBAQCBpYTY0 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBpbnQgYXJnbm87CiAgICBz dHJ1Y3QgdmFsdWUgKmFyZzsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwpAQCAtNTYwLDEwICs1NjAs MTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pYTY0LXRkZXAuYwogICAg aW50IGZsb2F0cmVnOwogICAgVUxPTkdFU1QgYnNwOwogICAgQ09SRV9BRERSIGZ1bmNkZXNjYWRk ciwgcGMsIGdsb2JhbF9wb2ludGVyOwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9pcTIwMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvaXEyMDAwLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL2lx MjAwMC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNDk2NzYxMjMgKzAyMDAKLSsrKyBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvaXEyMDAwLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0 LjczNDY4MTAxOSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvaXEyMDAw LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk4Njc0NzczMyArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL2lxMjAwMC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMDQ3NTIz NzMgKzAxMDAKIEBAIC02NTQsOCArNjU0LDkgQEAgaXEyMDAwX3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKgogICAgY29uc3QgYmZkX2J5dGUgKnZhbDsKICAgIGJmZF9ieXRlIGJ1Zls0 XTsKQEAgLTU3NiwxMCArNTc2LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvaXEyMDAwLXRkZXAuYwogICAgLyogVXNlZCB0byBjb3B5IHN0cnVjdCBhcmd1bWVudHMgaW50 byB0aGUgc3RhY2suICAqLwogICAgQ09SRV9BRERSIHN0cnVjdF9wdHI7CiAgCi1JbmRleDogZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL20zMnItdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4y MDE0MDEyNy9nZGIvbTMyci10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi9tMzJyLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE0OTY3NjEy MyArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tMzJyLXRkZXAuYwkyMDEz LTA4LTAyIDE2OjQzOjA0LjczNDY4MTAxOSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcu b3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODY3NDc3MzMgKzAxMDAK KysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tMzJyLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIw OjU3LjMwNDc1MjM3MyArMDEwMAogQEAgLTY4OSw3ICs2ODksNyBAQCBtMzJyX3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBDT1JFX0FERFIgcmVndmFsOwogICAgZ2RiX2J5 dGUgKnZhbDsKQEAgLTU4OSwxMCArNTg5LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvbTMyci10ZGVwLmMKICAKICAgIC8qIEZpcnN0IGZvcmNlIHNwIHRvIGEgNC1ieXRl IGFsaWdubWVudC4gICovCiAgICBzcCA9IHNwICYgfjM7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL202OGstdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIv bTY4ay10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmln L2dkYi9tNjhrLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE0OTY3NjEyMyArMDIwMAotKysr IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tNjhrLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQz OjA0LjczNTY4MTAyMSArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvbTY4 ay10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Mi45ODc3NDc3MzUgKzAxMDAKKysrKyBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi9tNjhrLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMwNTc1MjM3 NCArMDEwMAogQEAgLTM4NCw3ICszODQsNyBAQCBtNjhrX3JlZ19zdHJ1Y3RfcmV0dXJuX3AgKHN0 cnVjdCBnZGJhcmNoCiAgewogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hf dGRlcCAoZ2RiYXJjaCk7CkBAIC02MTUsMTAgKzYxNSwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL202OGstdGRlcC5jCiAgCiAgICAgICAgLyogTm9uLXNjYWxhcnMgYmln Z2VyIHRoYW4gNCBieXRlcyBhcmUgbGVmdCBhbGlnbmVkLCBvdGhlcnMgYXJlCiAgCSByaWdodCBh bGlnbmVkLiAgKi8KLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbTg4ay10ZGVw LmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tODhrLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL204OGstdGRlcC5jCTIwMTMt MDgtMDIgMTY6NDM6MDEuMTUwNjc2MTI0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL204OGstdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM1NjgxMDIxICswMjAwCist LS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9tODhrLXRkZXAuYwkyMDE0LTAyLTA2IDE4 OjIwOjUyLjk4Nzc0NzczNSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL204OGst dGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA1NzUyMzc0ICswMTAwCiBAQCAtMjYwLDEzICsy NjAsMTMgQEAgbTg4a19zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgogIHsKICAg IHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsK QEAgLTY0NiwxMCArNjQ2LDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIv bTg4ay10ZGVwLmMKICAKICAgICAgICBpZiAobTg4a19pbl9yZWdpc3Rlcl9wICh0eXBlKSkKICAJ ewotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tZXAtdGRlcC5jCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvbWVwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0Mzow MS4xNTA2NzYxMjQgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWVwLXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczNTY4MTAyMSArMDIwMAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk4Nzc0Nzcz NSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21lcC10ZGVwLmMJMjAxNC0wMi0w NiAxODoyMDo1Ny4zMDY3NTIzNzUgKzAxMDAKIEBAIC0yMjcyLDcgKzIyNzIsNyBAQCBwdXNoX2xh cmdlX2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKICAKICAgIGZvciAoaSA9IDA7IGkgPCBh cmdjOyBpKyspCkBAIC02NTksMTAgKzY1OSwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL21lcC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnX2xlbiA+IE1FUF9HUFJfU0la RSkKICAgICAgICAgIHsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWlwcy10 ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9taXBzLXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIw MTMtMDgtMDIgMTY6NDM6MDEuMTUzNjc2MTI4ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL21pcHMtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM3NjgxMDIzICswMjAw CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9taXBzLXRkZXAuYwkyMDE0LTAyLTA2 IDE4OjIwOjUyLjk5MDc0NzczOCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL21p cHMtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA3NzUyMzc2ICswMTAwCiBAQCAtNDAyLDcg KzQwMiw3IEBAIHN0YXRpYyB2b2lkCiAgbWlwc194ZmVyX3JlZ2lzdGVyIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICBpbnQgcmVnX251 bSwgaW50IGxlbmd0aCwKQEAgLTgwOCwxMSArODA4LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvbWlwcy10ZGVwLmMKICAKICAgICAgICB2YWwgPSB2YWx1ZV9jb250ZW50 cyAoYXJnKTsKICAKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbW4xMDMwMC10 ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9tbjEwMzAwLXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL21uMTAzMDAtdGRl cC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM3NjgxMDIzICswMjAwCi0rKysgZ2RiLTcuNi41MC4y MDEzMDczMS1jdnMvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NTA6MzQuMjEyMzIw Njk4ICswMjAwCi1AQCAtMTIyOCw3ICsxMjI4LDcgQEAgbW4xMDMwMF9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9tbjEwMzAw LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5MTc0NzczOSArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA4NzUy Mzc3ICswMTAwCitAQCAtMTIyNyw3ICsxMjI3LDcgQEAgbW4xMDMwMF9wdXNoX2R1bW15X2NhbGwg KHN0cnVjdCBnZGJhcmNoCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hf Ynl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBjb25zdCBpbnQgcHVzaF9zaXplID0gcmVnaXN0ZXJf c2l6ZSAoZ2RiYXJjaCwgRV9QQ19SRUdOVU0pOwogICAgaW50IHJlZ3NfdXNlZDsKQEAgLTgyMSwx MCArODIxLDEwIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbW4xMDMwMC10 ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgaW50IGFyZ251bTsKICAgIGNvbnN0 IGdkYl9ieXRlICp2YWw7Ci1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL210LXRk ZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL210LXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL210LXRkZXAuYwkyMDEzLTA4 LTAyIDE2OjQzOjAxLjE1NDY3NjEzMCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9tdC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43Mzc2ODEwMjMgKzAyMDAKKy0tLSBn ZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL210LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUy Ljk5MTc0NzczOSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL210LXRkZXAuYwky MDE0LTAyLTA2IDE4OjIwOjU3LjMwODc1MjM3NyArMDEwMAogQEAgLTc4Myw5ICs3ODMsOSBAQCBt dF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGJhCiAgICBnZGJfYnl0ZSBidWZb TVRfTUFYX1NUUlVDVF9TSVpFXTsKICAgIGludCBhcmdyZWcgPSBNVF8xU1RfQVJHUkVHOwpAQCAt ODM3LDEwICs4MzcsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9tdC10 ZGVwLmMKICAgIGludCBpLCBqOwogIAogICAgLyogRmlyc3QgaGFuZGxlIGhvd2V2ZXIgbWFueSBh cmdzIHdlIGNhbiBmaXQgaW50byBNVF8xU1RfQVJHUkVHIHRocnUKLUluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIvcHBjLXN5c3YtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMub3JpZy9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTU1 Njc2MTMxICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3BwYy1zeXN2LXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczODY4MTAyNSArMDIwMAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTky NzQ3NzQwICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvcHBjLXN5c3YtdGRlcC5j CTIwMTQtMDItMDYgMTg6MjA6NTcuMzA4NzUyMzc3ICswMTAwCiBAQCAtNjgsNyArNjgsNyBAQCBw cGNfc3lzdl9hYmlfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiCiAgICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgb3Bl bmNsX2FiaSA9IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBlIChmdW5jdGlvbikp OwpAQCAtODk3LDExICs4OTcsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi9wcGMtc3lzdi10ZGVwLmMKICAJCSAgaWYgKGxlbiA8IHRkZXAtPndvcmRzaXplKQogIAkJICAg IHdyaXRlX21lbW9yeSAoZ3BhcmFtICsgdGRlcC0+d29yZHNpemUgLSBsZW4sIHZhbCwgbGVuKTsK ICAJCSAgZWxzZQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ybDc4LXRkZXAu YworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3JsNzgtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxMy0w OC0wMiAxNjo0MzowMS4xNTU2NzYxMzEgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvcmw3OC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43Mzg2ODEwMjUgKzAyMDAKLUBA IC0xMDMwLDggKzEwMzAsOCBAQCBybDc4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KmdkCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9ybDc4LXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjUyLjk5Mjc0Nzc0MCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3JsNzgtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzA5NzUyMzc4ICswMTAwCitAQCAtMTA1 Miw4ICsxMDUyLDggQEAgcmw3OF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAog ICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVj dCB0eXBlICp2YWx1ZV90eXBlID0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKGFyZ3NbaV0pOwpAQCAt OTEyLDEwICs5MTIsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9ybDc4 LXRkZXAuYwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAgICAgICAgd3JpdGVfbWVt b3J5IChybDc4X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1JbmRleDogZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE1 NTY3NjEzMSArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9yczYwMDAtYWl4 LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczODY4MTAyNSArMDIwMAorLS0tIGdkYi03LjYu OTAuMjAxNDAxMjcub3JpZy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1 Mi45OTM3NDc3NDEgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9yczYwMDAtYWl4 LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMwOTc1MjM3OCArMDEwMAogQEAgLTE5Niw5ICsx OTYsOSBAQCByczYwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICBzdHJ1 Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0g YmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAg LTkzNywxMSArOTM3LDExIEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvcnM2 MDAwLWFpeC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJnYnl0ZXMpCiAgCXsKLUluZGV4OiBnZGIt Ny42LjUwLjIwMTMwNzMxLWN2cy9nZGIvczM5MC10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIw MTQwMTI3L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3MzOTAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTU2 Njc2MTMyICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3MzOTAtdGRlcC5j CTIwMTMtMDgtMDIgMTY6NDM6MDQuNzM5NjgxMDI2ICswMjAwCi1AQCAtMjQ4Myw3ICsyNDgzLDcg QEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5Mzc0 Nzc0MSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3MzOTAtbGludXgtdGRlcC5j CTIwMTQtMDItMDYgMTg6MjI6MTcuMzMwODM4Mzg5ICswMTAwCitAQCAtMjUyNiw3ICsyNTI2LDcg QEAgaXNfZmxvYXRfbGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgCiAgc3RhdGljIGludApA QCAtOTUwLDE5ICs5NTAsMTkgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9z MzkwLXRkZXAuYwogIHsKICAgIHJldHVybiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKICB9Ci1AQCAt MjY2OSw3ICsyNjY5LDcgQEAgczM5MF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZAorQEAgLTI3MTIsNyArMjcxMiw3IEBAIHMzOTBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKICAgICAgICB7Ci0gICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07 Ci0gICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOwotLSAgICAgICAgdW5zaWduZWQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOwot KyAgICAgICAgVUxPTkdFU1QgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOworIAlzdHJ1Y3Qg dmFsdWUgKmFyZyA9IGFyZ3NbaV07CisgCXN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAoYXJnKSk7CistCXVuc2lnbmVkIGxlbmd0aCA9IFRZUEVfTEVOR1RIICh0 eXBlKTsKKysJVUxPTkdFU1QgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOwogIAogIAlpZiAo czM5MF9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UgKHR5cGUpKQogIAkgIHsKLUluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc2NvcmUtdGRlcC5jCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvc2NvcmUtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEu MTU3Njc2MTM0ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Njb3JlLXRk ZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0LjczOTY4MTAyNiArMDIwMAorLS0tIGdkYi03LjYuOTAu MjAxNDAxMjcub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTk0NzQ3 NzQyICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc2NvcmUtdGRlcC5jCTIwMTQt MDItMDYgMTg6MjA6NTcuMzEwNzUyMzc5ICswMTAwCiBAQCAtNTE1LDcgKzUxNSw3IEBAIHNjb3Jl X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmcKICAgIGVudW0gYmZkX2VuZGlhbiBi eXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBhcmdudW07 CkBAIC05NzIsMTAgKzk3MiwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2Ri L3Njb3JlLXRkZXAuYwogICAgQ09SRV9BRERSIHN0YWNrX29mZnNldCA9IDA7CiAgICBDT1JFX0FE RFIgYWRkciA9IDA7CiAgCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NoLXRk ZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3NoLXRkZXAuYwkyMDEzLTA4 LTAyIDE2OjQzOjAxLjE1NzY3NjEzNCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9zaC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo1MToyOS42MDQ0MDQ1NTMgKzAyMDAKKy0tLSBn ZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3NoLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUy Ljk5NTc0Nzc0MyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3NoLXRkZXAuYwky MDE0LTAyLTA2IDE4OjIwOjU3LjMxMDc1MjM3OSArMDEwMAogQEAgLTgwNyw3ICs4MDcsNyBAQCBz aF9za2lwX3Byb2xvZ3VlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCiAgc3RhdGljIGludAogIHNo X3VzZV9zdHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3QgdHlwZSAqdHlw ZSkKQEAgLTEwMTQsMTAgKzEwMTQsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9zaC10ZGVwLmMKICAgIGludCBwYXNzX29uX3N0YWNrID0gMDsKICAgIGludCBsYXN0X3Jl Z19hcmcgPSBJTlRfTUFYOwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9z aDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3NoNjQtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIvc2g2NC10ZGVw LmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNTg2NzYxMzUgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIw MTMwNzMxLWN2cy9nZGIvc2g2NC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo1MDo0OS43NDAzNDQxMjUg KzAyMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3NoNjQtdGRlcC5jCTIwMTQt MDItMDYgMTg6MjA6NTIuOTk1NzQ3NzQzICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9n ZGIvc2g2NC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTE3NTIzODAgKzAxMDAKIEBAIC0x MDU4LDcgKzEwNTgsNyBAQCBzaDY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdk CiAgCQkgICAgICBDT1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewpAQCAtMTAzNiwxMSArMTAzNiwx MSBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3NoNjQtdGRlcC5jCiAgICBp bnQgYXJncmVnX3NpemU7CiAgICBpbnQgZnBfYXJnc1sxMl07CiAgCi1JbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3NwYXJjLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3NwYXJjLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzLm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE1OTY3NjEzNiAr MDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zcGFyYy10ZGVwLmMJMjAxMy0w OC0wMiAxNjo0MzowNC43NDA2ODEwMjcgKzAyMDAKLUBAIC00NzEsNyArNDcxLDcgQEAgc3BhcmMz Ml9zdG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZQorLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvc3BhcmMtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTIuOTk2NzQ3NzQ0ICsw MTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvc3BhcmMtdGRlcC5jCTIwMTQtMDItMDYg MTg6MjA6NTcuMzExNzUyMzgwICswMTAwCitAQCAtNTAyLDcgKzUwMiw3IEBAIHNwYXJjMzJfc3Rv cmVfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsg aSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmdz W2ldKTsKQEAgLTEwNDksMTAgKzEwNDksMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEt Y3ZzL2dkYi9zcGFyYy10ZGVwLmMKICAKICAgICAgICBpZiAoc3BhcmNfc3RydWN0dXJlX29yX3Vu aW9uX3AgKHR5cGUpCiAgCSAgfHwgKHNwYXJjX2Zsb2F0aW5nX3AgKHR5cGUpICYmIGxlbiA9PSAx NikKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvc3BhcmM2NC10ZGVwLmMKK0lu ZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zcGFyYzY0LXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTMt MDgtMDIgMTY6NDM6MDEuMTU5Njc2MTM2ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzQxNjgxMDI5ICswMjAw CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE0LTAy LTA2IDE4OjIwOjUyLjk5Njc0Nzc0NCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3NwYXJjNjQtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTcuMzExNzUyMzgwICswMTAwCiBAQCAt NjM5LDcgKzYzOSw4IEBAIHNwYXJjNjRfMTZfYnl0ZV9hbGlnbl9wIChzdHJ1Y3QgdHlwZSAqdHkK ICAKICBzdGF0aWMgdm9pZApAQCAtMTEwOCwxMCArMTEwOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMvZ2RiL3NwYXJjNjQtdGRlcC5jCiAgICAgICAgaW50IHJlZ251bSA9IC0x OwogICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07CiAgCi1JbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL3NwdS10ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9zcHUt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMub3JpZy9nZGIv c3B1LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjAxLjE2MDY3NjEzOCArMDIwMAotKysrIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zcHUtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzQx NjgxMDI5ICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi9zcHUtdGRlcC5j CTIwMTQtMDItMDYgMTg6MjA6NTIuOTk3NzQ3NzQ1ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0 MDEyNy9nZGIvc3B1LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjU3LjMxMjc1MjM4MSArMDEwMAog QEAgLTEzNzYsNyArMTM3Niw3IEBAIHNwdV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNo ICpnZGIKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3RydWN0 IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTExMzAs MTAgKzExMzAsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zcHUtdGRl cC5jCiAgCSAgaW50IHByZWZlcnJlZF9zbG90OwogIAkgIAogIAkgIGlmIChzcHVfc2NhbGFyX3Zh bHVlX3AgKHR5cGUpKQotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90aWM2eC10 ZGVwLmMKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90aWM2eC10ZGVwLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi90aWM2eC10ZGVwLmMJ MjAxMy0wOC0wMiAxNjo0MzowMS4xNjA2NzYxMzggKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvdGljNngtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDQuNzQyNjgxMDMwICsw MjAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90aWM2eC10ZGVwLmMJMjAxNC0w Mi0wNiAxODoyMDo1Mi45OTc3NDc3NDUgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dk Yi90aWM2eC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTI3NTIzODEgKzAxMDAKIEBAIC04 OTYsNyArODk2LDcgQEAgdGljNnhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqZwog ICAgaW50IGFyZ3JlZyA9IDA7CiAgICBpbnQgYXJnbnVtOwpAQCAtMTE3MSwxMSArMTE3MSwxMSBA QCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3RpYzZ4LXRkZXAuYwogIAogIAkg IGFkZHIgPSBzcCArIHN0YWNrX29mZnNldDsKICAJICB3cml0ZV9tZW1vcnkgKGFkZHIsIHZhbCwg bGVuKTsKLUluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGlsZWd4LXRkZXAuYwor SW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTMt MDgtMDIgMTY6NDM6MDEuMTYxNjc2MTM5ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1j dnMvZ2RiL3RpbGVneC10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowNC43NDI2ODEwMzAgKzAyMDAK LUBAIC0yOTEsNyArMjkxLDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy Y2ggKgorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdGlsZWd4LXRkZXAuYwkyMDE0 LTAyLTA2IDE4OjIwOjUyLjk5ODc0Nzc0NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcv Z2RiL3RpbGVneC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTI3NTIzODEgKzAxMDAKK0BA IC0yOTAsNyArMjkwLDcgQEAgdGlsZWd4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2gg KgogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKICAgIGludCBhcmdyZWcgPSBUSUxFR1hf UjBfUkVHTlVNOwogICAgaW50IGksIGo7CkBAIC0xMTg0LDEwICsxMTg0LDEwIEBAIEluZGV4OiBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGlsZWd4LXRkZXAuYwogICAgc3RhdGljIGNvbnN0 IGdkYl9ieXRlIGZvdXJfemVyb193b3Jkc1sxNl0gPSB7IDAgfTsKICAKICAgIC8qIElmIHN0cnVj dF9yZXR1cm4gaXMgMSwgdGhlbiB0aGUgc3RydWN0IHJldHVybiBhZGRyZXNzIHdpbGwKLUluZGV4 OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdjg1MC10ZGVwLmMKK0luZGV4OiBnZGItNy42 LjkwLjIwMTQwMTI3L2dkYi92ODUwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAu MjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTYx Njc2MTM5ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Y4NTAtdGRlcC5j CTIwMTMtMDgtMDIgMTY6NTI6NTUuMjE5NTMxMTAxICswMjAwCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi92ODUwLXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5ODc0Nzc0NiAr MDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTQtMDItMDYg MTg6MjA6NTcuMzEzNzUyMzgzICswMTAwCiBAQCAtMTAyMSw3ICsxMDIxLDcgQEAgdjg1MF9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ3JlZzsKQEAg LTEyMDYsMTAgKzEyMDYsMTAgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92 ODUwLXRkZXAuYwogICAgICAgIGdkYl9ieXRlICp2YWw7CiAgICAgICAgZ2RiX2J5dGUgdmFsYnVm W3Y4NTBfcmVnX3NpemVdOwogIAotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi92 YXgtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdmF4LXRkZXAuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcvZ2RiL3ZheC10ZGVwLmMJ MjAxMy0wOC0wMiAxNjo0MzowMS4xNjE2NzYxMzkgKzAyMDAKLSsrKyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvdmF4LXRkZXAuYwkyMDEzLTA4LTAyIDE2OjQzOjA0Ljc0MjY4MTAzMCArMDIw MAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIvdmF4LXRkZXAuYwkyMDE0LTAyLTA2 IDE4OjIwOjUyLjk5ODc0Nzc0NiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Zh eC10ZGVwLmMJMjAxNC0wMi0wNiAxODoyMDo1Ny4zMTM3NTIzODMgKzAxMDAKIEBAIC0xMTUsNyAr MTE1LDcgQEAgdmF4X3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyZQogICAgc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwogICAg ZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gp OwpAQCAtMTIyOCwxMCArMTIyOCwxMCBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMv Z2RiL3ZheC10ZGVwLmMKICAKICAgICAgICBzcCAtPSAobGVuICsgMykgJiB+MzsKICAgICAgICBj b3VudCArPSAobGVuICsgMykgLyA0OwotSW5kZXg6IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dk Yi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIveHN0b3Jt eTE2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLm9yaWcv Z2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxMy0wOC0wMiAxNjo0MzowMS4xNjI2NzYxNDEgKzAyMDAK LSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDEzLTA4 LTAyIDE2OjQzOjA0Ljc0MzY4MTAzMiArMDIwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3Jp Zy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE0LTAyLTA2IDE4OjIwOjUyLjk5OTc0Nzc0OCArMDEw MAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3hzdG9ybXkxNi10ZGVwLmMJMjAxNC0wMi0w NiAxODoyMDo1Ny4zMTM3NTIzODMgKzAxMDAKIEBAIC0yMzUsOCArMjM1LDkgQEAgeHN0b3JteTE2 X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyYwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVf b3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIHN0YWNr X2Rlc3QgPSBzcDsKQEAgLTEyNDQsMTEgKzEyNDQsMTEgQEAgSW5kZXg6IGdkYi03LjYuNTAuMjAx MzA3MzEtY3ZzL2dkYi94c3Rvcm15MTYtdGRlcC5jCiAgICBjb25zdCBnZGJfYnl0ZSAqdmFsOwog ICAgZ2RiX2J5dGUgYnVmW3hzdG9ybXkxNl9wY19zaXplXTsKICAKLUluZGV4OiBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy9nZGIveHRlbnNhLXRkZXAuYworSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAx MjcvZ2RiL3h0ZW5zYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTMtMDgtMDIgMTY6NDM6MDEuMTYzNjc2MTQy ICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAx My0wOC0wMiAxNjo0MzowNC43NDM2ODEwMzIgKzAyMDAKLUBAIC0xNjUzLDggKzE2NTMsNyBAQCB4 dGVuc2Ffc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCistLS0gZ2RiLTcuNi45MC4y MDE0MDEyNy5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTQtMDItMDYgMTg6MjA6NTMuMDAwNzQ3 NzQ5ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIveHRlbnNhLXRkZXAuYwkyMDE0 LTAyLTA2IDE4OjIwOjU3LjMxNDc1MjM4NCArMDEwMAorQEAgLTE2NTIsOCArMTY1Miw3IEBAIHh0 ZW5zYV9zdG9yZV9yZXR1cm5fdmFsdWUgKHN0cnVjdCB0eXBlICoKICAKICAgICAgICBpZiAobGVu ID4gKGNhbGxzaXplID4gOCA/IDggOiAxNikpCiAgCWludGVybmFsX2Vycm9yIChfX0ZJTEVfXywg X19MSU5FX18sCkBAIC0xMjU4LDcgKzEyNTgsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDcz MS1jdnMvZ2RiL3h0ZW5zYS10ZGVwLmMKICAgICAgICBhcmVnID0gYXJyZWdfbnVtYmVyIChnZGJh cmNoLAogIAkJCSAgIGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCktPmEwX2Jhc2UgKyAyICsgY2FsbHNp emUsIHdiKTsKICAKLUBAIC0xNzI4LDE4ICsxNzI3LDE4IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhcmNoICoKK0BAIC0xNzI3LDE4ICsxNzI2LDE4IEBAIHh0ZW5zYV9wdXNo X2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICoKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgaTsKQEAgLTEy ODAsNyArMTI4MCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIveHRlbnNh LXRkZXAuYwogICAgICAgIGludCByZWdubzsJCS8qIHJlZ25vIGlmIGluIHJlZ2lzdGVyLiAgKi8K ICAgICAgfSB1OwogICAgfTsKLUBAIC0xNzYzLDkgKzE3NjIsMTAgQEAgeHRlbnNhX3B1c2hfZHVt bXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgorQEAgLTE3NjIsOSArMTc2MSwxMCBAQCB4dGVuc2Ff cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICAgICAgICB7CiAgCSAgc3RydWN0 IHZhbHVlICphcmcgPSBhcmdzW2ldOwogIAkgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtMTI5NCw3ICsxMjk0LDcgQEAgSW5kZXg6 IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi94dGVuc2EtdGRlcC5jCiAgCSAgc3dpdGNoIChU WVBFX0NPREUgKGFyZ190eXBlKSkKICAJICAgIHsKICAJICAgIGNhc2UgVFlQRV9DT0RFX0lOVDoK LUBAIC0xODM1LDggKzE4MzUsOCBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2Ri YXJjaCAqCitAQCAtMTgzNCw4ICsxODM0LDggQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3Ry dWN0IGdkYmFyY2ggKgogIAkgIGluZm8tPmFsaWduID0gVFlQRV9MRU5HVEggKGJ1aWx0aW5fdHlw ZSAoZ2RiYXJjaCktPmJ1aWx0aW5fbG9uZyk7CiAgCSAgYnJlYWs7CiAgCX0KQEAgLTEzMDQsNyAr MTMwNCw3IEBAIEluZGV4OiBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIveHRlbnNhLXRkZXAu YwogIAogICAgICAgIC8qIEFsaWduIHNpemUgYW5kIG9uc3RhY2tfc2l6ZS4gICovCiAgICAgICAg c2l6ZSA9IChzaXplICsgaW5mby0+YWxpZ24gLSAxKSAmIH4oaW5mby0+YWxpZ24gLSAxKTsKLUBA IC0xODgxLDcgKzE4ODEsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqCitAQCAtMTg4MCw3ICsxODgwLDcgQEAgeHRlbnNhX3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0 IGdkYmFyY2ggKgogIAogICAgICAgIGlmIChpbmZvLT5vbnN0YWNrKQogIAl7CkBAIC0xMzEzLDcg KzEzMTMsNyBAQCBJbmRleDogZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3h0ZW5zYS10ZGVw LmMKICAJICBDT1JFX0FERFIgb2Zmc2V0ID0gc3AgKyBpbmZvLT51Lm9mZnNldDsKICAKICAJICAv KiBPZGQtc2l6ZWQgc3RydWN0cyBhcmUgYWxpZ25lZCB0byB0aGUgbG93ZXIgc2lkZSBvZiBhIG1l bW9yeQotQEAgLTE4OTcsNyArMTg5Nyw3IEBAIHh0ZW5zYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVj dCBnZGJhcmNoICoKK0BAIC0xODk2LDcgKzE4OTYsNyBAQCB4dGVuc2FfcHVzaF9kdW1teV9jYWxs IChzdHJ1Y3QgZ2RiYXJjaCAqCiAgCX0KICAgICAgICBlbHNlCiAgCXsKCmRpZmYgLS1naXQgYS9n ZGItcmhlbDUtZ2NjNDQucGF0Y2ggYi9nZGItcmhlbDUtZ2NjNDQucGF0Y2gKaW5kZXggMTcyZDA2 Ny4uNmZmYmIyYSAxMDA2NDQKLS0tIGEvZ2RiLXJoZWw1LWdjYzQ0LnBhdGNoCisrKyBiL2dkYi1y aGVsNS1nY2M0NC5wYXRjaApAQCAtMSwxMCArMSwxMCBAQAogU29tZSBmdW5jdGlvbmFsaXR5IGlz IGF2YWlsYWJsZSBvbiBSSEVMLTUuNCsgb25seSB3aXRoIGdjYzQ0IGFuZCBnZm9ydHJhbjQ0IGFz CiB0aGUgZGVmYXVsdCBnY2MgYW5kIGdmb3J0cmFuIGJpbmFyaWVzIGFyZSBmcm9tIGdjYy00LjEu CiAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92 bGEuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1NTc1NjM2MiArMDEw MAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuZXhw CTIwMTMtMDEtMTggMjM6NDM6MDguMDgyNzYxMTY0ICswMTAwCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDE0LTAyLTA2IDE4OjI2 OjA1LjExNTA4MzA3NyArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS92bGEuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDYuNjg5MDg0NzY1ICswMTAwCiBA QCAtMTYsNyArMTYsMjUgQEAKICBzZXQgdGVzdGZpbGUgdmxhCiAgc2V0IHNyY2ZpbGUgJHt0ZXN0 ZmlsZX0uYwpAQCAtMzIsMTAgKzMyLDEwIEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAogICAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29t cGlsZSB0ZXN0IHByb2dyYW0iCiAgICAgIHJldHVybiAtMQogIH0KLUluZGV4OiBnZGItNy41LjUw LjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cAorSW5kZXg6 IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYnJlYWstaW50ZXJwLmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1Njc1NjM2 NSArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9i cmVhay1pbnRlcnAuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgyNzYxMTY0ICswMTAwCistLS0g Z2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYnJlYWstaW50 ZXJwLmV4cAkyMDE0LTAyLTA2IDE4OjI2OjA1LjExNjA4MzA3OCArMDEwMAorKysrIGdkYi03LjYu OTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9icmVhay1pbnRlcnAuZXhwCTIwMTQt MDItMDYgMTg6MjY6MDYuNjg5MDg0NzY1ICswMTAwCiBAQCAtMzQsOSArMzQsMjkgQEAgaWYgW2dl dF9jb21waWxlcl9pbmZvXSB7CiAgICAgIHJldHVybiAtMQogIH0KQEAgLTY3LDEwICs2NywxMCBA QCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2JyZWFr LWludGVycC5leHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUuNTAuMjAx MzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCitJbmRleDog Z2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9j ay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgy NzYxMTY0ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2NvbW1vbi1ibG9jay5leHAJMjAxMy0wMS0xOCAyMzo0NDoyMy4wNDc4NTYxODIgKzAx MDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9jb21tb24tYmxvY2suZXhwCTIwMTQtMDItMDYgMTg6MjY6MDUuMTE2MDgzMDc4ICswMTAwCisr KysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1i bG9jay5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTAwODQ3NjAgKzAxMDAKIEBAIC0yMiw4ICsy MiwyNSBAQCBpZiB7W3NraXBfZm9ydHJhbl90ZXN0c119IHsKICAKICBzdGFuZGFyZF90ZXN0Zmls ZSAuZjkwCkBAIC05OSwxMCArOTksMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCiAgICAgIHJldHVybiAtMQog IH0KICAKLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHdhcmYtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu NS41MC4yMDEzMDExOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRl LmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1Njc1NjM2NSArMDEwMAotKysrIGdkYi03LjUuNTAu MjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCTIwMTMt MDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAkyMDE0LTAyLTA2 IDE4OjI2OjA1LjExNzA4MzA3OSArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDYu NjkwMDg0NzYwICswMTAwCiBAQCAtMjcsNyArMjcsMjUgQEAKICBzZXQgdGVzdGZpbGUgZHdhcmYt c3RyaWRlCiAgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uZjkwCkBAIC0xMzAsMTAgKzEzMCwxMCBA QCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3 YXJmLXN0cmlkZS5leHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUuNTAu MjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAorSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDQuNDU3NzU2MzY3ICswMTAw Ci0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFt aWMuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCistLS0gZ2RiLTcuNi45 MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAx NC0wMi0wNiAxODoyNjowNS4xMTcwODMwNzkgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNC0wMi0wNiAxODoyNjow Ni42OTAwODQ3NjAgKzAxMDAKIEBAIC0yNSw3ICsyNSwyNSBAQCBzZXQgdGVzdGZpbGUgImR5bmFt aWMiCiAgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uZjkwCiAgc2V0IGJpbmZpbGUgJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQpAQCAtMTYxLDEwICsxNjEsMTAgQEAgSW5kZXg6IGdkYi03 LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogICAg ICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGlsZSAke3NyY2ZpbGV9IgogICAgICByZXR1cm4gLTEK ICB9Ci1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2xpYnJhcnktbW9kdWxlLmV4cAorSW5kZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9saWJyYXJ5LW1vZHVsZS5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9saWJyYXJ5LW1v ZHVsZS5leHAJMjAxMy0wMS0xOCAyMzo0MzowNC40NTc3NTYzNjcgKzAxMDAKLSsrKyBnZGItNy41 LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbGlicmFyeS1tb2R1bGUuZXhw CTIwMTMtMDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCistLS0gZ2RiLTcuNi45MC4yMDE0 MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbGlicmFyeS1tb2R1bGUuZXhwCTIw MTQtMDItMDYgMTg6MjY6MDUuMTE3MDgzMDc5ICswMTAwCisrKysgZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJhcnktbW9kdWxlLmV4cAkyMDE0LTAyLTA2 IDE4OjI2OjA2LjY5MDA4NDc2MCArMDEwMAogQEAgLTIzLDE2ICsyMywzNCBAQCBpZiBbZ2V0X2Nv bXBpbGVyX2luZm9dIHsKICAgICByZXR1cm4gLTEKICB9CkBAIC0yMDQsMTAgKzIwNCwxMCBAQCBJ bmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2xpYnJh cnktbW9kdWxlLmV4cAogICAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGlsZSAke3NyY2ZpbGV9 IgogICAgICByZXR1cm4gLTEKICB9Ci1JbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL21vZHVsZS5leHAKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjUuNTAuMjAxMzAxMTgub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL21vZHVsZS5l eHAJMjAxMy0wMS0xOCAyMzo0MzowNC40NTc3NTYzNjcgKzAxMDAKLSsrKyBnZGItNy41LjUwLjIw MTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vbW9kdWxlLmV4cAkyMDEzLTAxLTE4IDIz OjQzOjA4LjA4Mzc2MTE0OCArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL21vZHVsZS5leHAJMjAxNC0wMi0wNiAxODoyNjowNS4xMTgw ODMwODAgKzAxMDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vbW9kdWxlLmV4cAkyMDE0LTAyLTA2IDE4OjI2OjA2LjY5MDA4NDc2MCArMDEwMAogQEAg LTE1LDcgKzE1LDI1IEBACiAgCiAgc3RhbmRhcmRfdGVzdGZpbGUgLmY5MApAQCAtMjM1LDEwICsy MzUsMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9tb2R1bGUuZXhwCiAgICAgIHJldHVybiAtMQogIH0KICAKLUluZGV4OiBnZGItNy41LjUw LjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAorSW5kZXg6IGdk Yi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuNS41MC4yMDEzMDExOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3RyaW5nLmV4cAkyMDEzLTAxLTE4IDIzOjQzOjA0LjQ1Nzc1NjM2NyArMDEwMAot KysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcu ZXhwCTIwMTMtMDEtMTggMjM6NDM6MDguMDgzNzYxMTQ4ICswMTAwCistLS0gZ2RiLTcuNi45MC4y MDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDE0LTAy LTA2IDE4OjI2OjA1LjExODA4MzA4MCArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDYuNjkx MDg0NzYzICswMTAwCiBAQCAtMjMsNyArMjMsMjUgQEAgc2V0IHRlc3RmaWxlICJzdHJpbmciCiAg c2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uZjkwCiAgc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3Vi ZGlyfS8ke3Rlc3RmaWxlfQpAQCAtMjY2LDEwICsyNjYsMTAgQEAgSW5kZXg6IGdkYi03LjUuNTAu MjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiAgICAgIHVudGVz dGVkICJDb3VsZG4ndCBjb21waWxlICR7c3JjZmlsZX0iCiAgICAgIHJldHVybiAtMQogIH0KLUlu ZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vb21wLXN0 ZXAuZXhwCitJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL29tcC1zdGVwLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjUuNTAuMjAxMzAxMTgub3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL29tcC1zdGVwLmV4cAkyMDEzLTAxLTE4IDIzOjQz OjA0LjQ1ODc1NjM2OSArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9vbXAtc3RlcC5leHAJMjAxMy0wMS0xOCAyMzo0MzowOC4wODM3NjExNDgg KzAxMDAKKy0tLSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9vbXAtc3RlcC5leHAJMjAxNC0wMi0wNiAxODoyNjowNS4xMTgwODMwODAgKzAxMDAKKysr KyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vb21wLXN0ZXAu ZXhwCTIwMTQtMDItMDYgMTg6MjY6MDYuNjkxMDg0NzYzICswMTAwCiBAQCAtMTUsNyArMTUsMjYg QEAKICAKICBzZXQgdGVzdGZpbGUgIm9tcC1zdGVwIgpAQCAtMjk4LDEwICsyOTgsMTAgQEAgSW5k ZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9vbXAtc3Rl cC5leHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kZXJpdmVkLXR5cGUuZXhwCitJbmRleDogZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9kZXJpdmVkLXR5cGUuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDQuNDU4NzU2MzY5 ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2Rlcml2ZWQtdHlwZS5leHAJMjAxMy0wMS0xOCAyMzo0MzowOC4wODQ3NjExMzUgKzAxMDAKKy0t LSBnZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kZXJp dmVkLXR5cGUuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDUuMTE5MDgzMDgyICswMTAwCisrKysgZ2Ri LTcuNi45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS5l eHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTEwODQ3NjMgKzAxMDAKIEBAIC0yMiw3ICsyMiwyNSBA QCBpZiB7IFtza2lwX2ZvcnRyYW5fdGVzdHNdIH0geyByZXR1cm4gLTEKICAKICBzdGFuZGFyZF90 ZXN0ZmlsZSAuZjkwCkBAIC0zMjksMTAgKzMyOSwxMCBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2Rlcml2ZWQtdHlwZS5leHAKICAgICAgcmV0 dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9zdWJhcnJheS5leHAKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3ViYXJyYXkuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu NS41MC4yMDEzMDExOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3ViYXJyYXkuZXhw CTIwMTMtMDEtMTggMjM6NDM6MDQuNDU4NzU2MzY5ICswMTAwCi0rKysgZ2RiLTcuNS41MC4yMDEz MDExOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YmFycmF5LmV4cAkyMDEzLTAxLTE4IDIz OjQzOjA4LjA4NDc2MTEzNSArMDEwMAorLS0tIGdkYi03LjYuOTAuMjAxNDAxMjcub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YmFycmF5LmV4cAkyMDE0LTAyLTA2IDE4OjI2OjA1LjEx OTA4MzA4MiArMDEwMAorKysrIGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9zdWJhcnJheS5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTEwODQ3NjMgKzAxMDAK IEBAIC0yMiw3ICsyMiwyNSBAQCBpZiB7IFtza2lwX2ZvcnRyYW5fdGVzdHNdIH0geyByZXR1cm4g LTEKICAKICBzdGFuZGFyZF90ZXN0ZmlsZSAuZgpAQCAtMzYwLDEwICszNjAsMTAgQEAgSW5kZXg6 IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJhcnJheS5l eHAKICAgICAgcmV0dXJuIC0xCiAgfQogIAotSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAxMTgvZ2Ri L3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90bHMtc2VwZGVidWcuZXhwCitJbmRleDogZ2RiLTcuNi45 MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Rscy1zZXBkZWJ1Zy5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy41LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIu dGhyZWFkcy90bHMtc2VwZGVidWcuZXhwCTIwMTMtMDEtMTggMjM6NDM6MDQuNDU5NzU2MzcxICsw MTAwCi0rKysgZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Rs cy1zZXBkZWJ1Zy5leHAJMjAxMy0wMS0xOCAyMzo0MzowOC4wODQ3NjExMzUgKzAxMDAKKy0tLSBn ZGItNy42LjkwLjIwMTQwMTI3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90bHMtc2Vw ZGVidWcuZXhwCTIwMTQtMDItMDYgMTg6MjY6MDUuMTE5MDgzMDgyICswMTAwCisrKysgZ2RiLTcu Ni45MC4yMDE0MDEyNy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3Rscy1zZXBkZWJ1Zy5leHAJ MjAxNC0wMi0wNiAxODoyNjowNi42OTEwODQ3NjMgKzAxMDAKIEBAIC0zMiw3ICszMiwyNSBAQCBz ZXQgYmluc2hhcmVkZGVidWdmaWxlICR7b2JqZGlyfS8ke3N1YmRpCiAgCiAgIyBGSVhNRTogZ2Nj IGRlcGVuZGVuY3kgKC1XbCwtc29uYW1lKS4KQEAgLTM5MSwxMyArMzkxLDEzIEBAIEluZGV4OiBn ZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvdGxzLXNlcGRlYnVn LmV4cAogICAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGlsZSB0ZXN0IGxpYnJhcnkiCiAgICAg IHJldHVybiAtMQogIH0KLUluZGV4OiBnZGItNy41LjUwLjIwMTMwMTE4L2dkYi90ZXN0c3VpdGUv bGliL3ByZWxpbmstc3VwcG9ydC5leHAKK0luZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90 ZXN0c3VpdGUvbGliL3ByZWxpbmstc3VwcG9ydC5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy41 LjUwLjIwMTMwMTE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvcHJlbGluay1zdXBwb3J0LmV4cAky MDEzLTAxLTE4IDIzOjQzOjA0LjQ1OTc1NjM3MSArMDEwMAotKysrIGdkYi03LjUuNTAuMjAxMzAx MTgvZ2RiL3Rlc3RzdWl0ZS9saWIvcHJlbGluay1zdXBwb3J0LmV4cAkyMDEzLTAxLTE4IDIzOjQz OjA4LjA4NDc2MTEzNSArMDEwMAotQEAgLTExOSw5ICsxMTksMzEgQEAgcHJvYyBmaWxlX2NvcHkg e3NyYyBkZXN0fSB7CistLS0gZ2RiLTcuNi45MC4yMDE0MDEyNy5vcmlnL2dkYi90ZXN0c3VpdGUv bGliL3ByZWxpbmstc3VwcG9ydC5leHAJMjAxNC0wMi0wNiAxODoyNjowNi42OTIwODQ3NjcgKzAx MDAKKysrKyBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi90ZXN0c3VpdGUvbGliL3ByZWxpbmstc3Vw cG9ydC5leHAJMjAxNC0wMi0wNiAxODoyNzo0NC45NjAxOTAxOTIgKzAxMDAKK0BAIC0xMTgsOSAr MTE4LDMxIEBAIHByb2MgZmlsZV9jb3B5IHtzcmMgZGVzdH0gewogIHByb2MgYnVpbGRfZXhlY3V0 YWJsZV9vd25fbGlicyB7dGVzdG5hbWUgZXhlY3V0YWJsZSBzb3VyY2VzIG9wdGlvbnMge2ludGVy cCAiIn0ge2RpciAiIn19IHsKLSAgICAgZ2xvYmFsIG9iamRpciBzdWJkaXIKKyAgICAgZ2xvYmFs IHN1YmRpcgogIAogLSAgICBpZiB7W2J1aWxkX2V4ZWN1dGFibGUgJHRlc3RuYW1lICRleGVjdXRh YmxlICRzb3VyY2VzICRvcHRpb25zXSA9PSAtMX0gewogLQlyZXR1cm4gIiIKQEAgLTQyNiw2ICs0 MjYsNiBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDExOC9nZGIvdGVzdHN1aXRlL2xpYi9wcmVs aW5rLXN1cHBvcnQuZXhwCiArCXJldHVybiAiIiAgIAogKyAgICB9CiArCi0gICAgIHNldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorICAgICBzZXQgYmluZmlsZSBb c3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfV0KICAKLSAgICAgc2V0IGNvbW1hbmQg ImxkZCAkYmluZmlsZSIKKyAgICAgc2V0IGxkZCBbZ2RiX2ZpbmRfbGRkXQoKZGlmZiAtLWdpdCBh L2dkYi10ZXN0LWJ0LWNmaS13aXRob3V0LWRpZS5wYXRjaCBiL2dkYi10ZXN0LWJ0LWNmaS13aXRo b3V0LWRpZS5wYXRjaAppbmRleCA1ZjFmOTY3Li44MmY5ZDJkIDEwMDY0NAotLS0gYS9nZGItdGVz dC1idC1jZmktd2l0aG91dC1kaWUucGF0Y2gKKysrIGIvZ2RiLXRlc3QtYnQtY2ZpLXdpdGhvdXQt ZGllLnBhdGNoCkBAIC03MCwxMSArNzAsMTAgQEAgZ2RiL3Rlc3RzdWl0ZS8KICBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1kaWUtbWFpbi5jCiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQtZGll LmV4cAogCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1k aWUtY2FsbGVyLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NmaS13aXRob3V0LWRpZS1jYWxs ZXIuYwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmFmZGZkNTMKLS0tLSAv ZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQtZGllLWNh bGxlci5jCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NmaS13aXRob3V0 LWRpZS1jYWxsZXIuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j Zmktd2l0aG91dC1kaWUtY2FsbGVyLmMJMjAxNC0wMi0wNiAxOTozNToyMy40ODU4NjM4MTkgKzAx MDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTA0LDExICsxMDMsMTAgQEAgaW5kZXggMDAwMDAwMC4u YWZkZmQ1MwogKyAgLyogTW9kaWZ5IHRoZSByZXR1cm4gdmFsdWUgdG8gcHJldmVudCBhbnkgdGFp bC1jYWxsIG9wdGltaXphdGlvbi4gICovCiArICByZXR1cm4gKCpjYWxsYmFjaykgKCkgLSBvbmU7 CiArfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQtZGll LW1haW4uYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQtZGllLW1haW4uYwot bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjg0NTFjNGIKLS0tLSAvZGV2L251 bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2ZpLXdpdGhvdXQtZGllLW1haW4uYwor SW5kZXg6IGdkYi03LjcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1kaWUtbWFp bi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NmaS13aXRob3V0 LWRpZS1tYWluLmMJMjAxNC0wMi0wNiAxOTozNToyMy40ODU4NjM4MTkgKzAxMDAKIEBAIC0wLDAg KzEsMzIgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVn Z2VyLgogKwpAQCAtMTQyLDExICsxNDAsMTAgQEAgaW5kZXggMDAwMDAwMC4uODQ1MWM0YgogK3sK ICsgIHJldHVybiBjYWxsZXIgKGNhbGxiYWNrKTsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9jZmktd2l0aG91dC1kaWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9jZmktd2l0aG91dC1kaWUuZXhwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MC4uZGI2ZDI0OAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j Zmktd2l0aG91dC1kaWUuZXhwCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2NmaS13aXRob3V0LWRpZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy43L2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvY2ZpLXdpdGhvdXQtZGllLmV4cAkyMDE0LTAyLTA2IDIwOjI2OjAwLjc3NTIwODg0NyAr MDEwMAogQEAgLTAsMCArMSw2NyBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNjksOSArMTY2LDkgQEAgaW5kZXggMDAwMDAwMC4uZGI2 ZDI0OAogK3NldCBzcmNtYWluZmlsZSAke3Rlc3RmaWxlfS1tYWluLmMKICtzZXQgc3JjY2FsbGVy ZmlsZSAke3Rlc3RmaWxlfS1jYWxsZXIuYwogK3NldCBleGVjdXRhYmxlICR7dGVzdGZpbGV9Ci0r c2V0IG9iam1haW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tbWFpbi5vCi0r c2V0IG9iamNhbGxlcmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS1jYWxsZXIu bwotK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtleGVjdXRhYmxlfQorK3NldCBv YmptYWluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHt0ZXN0ZmlsZX0tbWFpbi5vXQorK3Nl dCBvYmpjYWxsZXJmaWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfS1jYWxsZXIu b10KKytzZXQgYmluZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfV0KICsK ICtpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2NhbGxlcmZpbGV9 IiAke29iamNhbGxlcmZpbGV9IFwKICsgICAgICBvYmplY3QgW2xpc3Qge2FkZGl0aW9uYWxfZmxh Z3M9LWZvbWl0LWZyYW1lLXBvaW50ZXIgLWZuby11bndpbmQtdGFibGVzIC1mbm8tYXN5bmNocm9u b3VzLXVud2luZC10YWJsZXN9XV0gIT0gIiIKQEAgLTIxNSw2ICsyMTIsMyBAQCBpbmRleCAwMDAw MDAwLi5kYjZkMjQ4CiArIyAjMSAgMHgwMDAwMDAwMDAwNDAwNGU5IGluIGNhbGxlciAoKQogKyMg IzIgIDB4MDAwMDAwMDAwMDQwMDRjZCBpbiBtYWluICgpIGF0IC4uLgogK2dkYl90ZXN0ICJidCIg IiMwICtjYWxsYmFjayBcW15cclxuXF0rXHJcbiMxIFxbXlxyXG5cXSsgaW4gY2FsbGVyIFxbXlxy XG5cXStcclxuIzIgXFteXHJcblxdKyBpbiBtYWluIFxbXlxyXG5cXSsiICJ2ZXJpZnkgdW53aW5k aW4gd29ya3MgZm9yIENGSSB3aXRob3V0IERJRXMiCi0tLSAKLTEuNy4xLjEKLQoKZGlmZiAtLWdp dCBhL2dkYi10ZXN0LWR3Mi1hcmFuZ2VzLnBhdGNoIGIvZ2RiLXRlc3QtZHcyLWFyYW5nZXMucGF0 Y2gKaW5kZXggNWRkY2Y5ZC4uM2QwZjQyOSAxMDA2NDQKLS0tIGEvZ2RiLXRlc3QtZHcyLWFyYW5n ZXMucGF0Y2gKKysrIGIvZ2RiLXRlc3QtZHcyLWFyYW5nZXMucGF0Y2gKQEAgLTIwLDExICsyMCwx MCBAQCBEYXRlOiAgIFNhdCBBdWcgMTUgMTU6MDU6NTQgMjAwOSArMDIwMAogICAgIAogICAgIAkq IGdkYi5kd2FyZjIvZHcyLWFyYW5nZXMuZXhwLCBnZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLlM6IE5l dyBmaWxlcy4KIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYXJh bmdlcy5TIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLlMKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5kNWI5Y2E1YQotLS0tIC9kZXYvbnVsbAotKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLlMKK0luZGV4OiBnZGItNy43 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYXJhbmdlcy5TCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcu Ny9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWFyYW5nZXMuUwkyMDE0LTAyLTA2IDIyOjAy OjIyLjA4NzQ0OTY2MCArMDEwMAogQEAgLTAsMCArMSwxNDAgQEAKICsvKiBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTY2LDExICsxNjUsMTAg QEAgaW5kZXggMDAwMDAwMC4uZDViOWNhNWEKICsJLmJ5dGUJCTAJCQkvKiBhcmFuZ2VzIHNlZ21l bnRfc2l6ZSAqLwogKwogKy5MYXJhbmdlc19lbmQ6Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL2R3Mi1hcmFuZ2VzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItYXJhbmdlcy5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4zOTYz MmQ1Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWFy YW5nZXMuZXhwCitJbmRleDogZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWFy YW5nZXMuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuNy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcy LWFyYW5nZXMuZXhwCTIwMTQtMDItMDYgMjI6MDk6MDguMzIyODUyNzcxICswMTAwCiBAQCAtMCww ICsxLDQwIEBACiArIyBDb3B5cmlnaHQgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCwgMjAwOSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIwMiw3ICsyMDAsNyBAQCBpbmRleCAw MDAwMDAwLi4zOTYzMmQ1CiArCiArc2V0IHRlc3RmaWxlICJkdzItYXJhbmdlcyIKICtzZXQgc3Jj ZmlsZSAke3Rlc3RmaWxlfS5TCi0rc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rl c3RmaWxlfQorK3NldCBiaW5maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke3Rlc3RmaWxlfV0K ICsKICtpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIg IiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge25vZGVidWd9XSAhPSAiIiB9IHsKICsgICAgcmV0dXJu IC0xCgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1ub2hvc3RpZC5wYXRjaCBiL2dkYi10ZXN0 c3VpdGUtbm9ob3N0aWQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZGM4ODBhOAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi10ZXN0c3VpdGUtbm9ob3N0aWQucGF0Y2gK QEAgLTAsMCArMSw1MCBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIw MTQtMDIvbXNnMDAxNTguaHRtbAorU3ViamVjdDogW3BhdGNoXSB0ZXN0c3VpdGU6IEZpeCAiRVJS T1I6IG5vIGZpbGVpZCBmb3IiCisKKworLS1hekxIRk55TjMyWUNRR0NVCitDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGlu ZQorCitIaSwKKworYTM1Y2ZiNDAwN2NlZThjYjg0MTA2NDEyY2QxN2Y0ZTEyZjEzMzQ1YiBpcyB0 aGUgZmlyc3QgYmFkIGNvbW1pdAorY29tbWl0IGEzNWNmYjQwMDdjZWU4Y2I4NDEwNjQxMmNkMTdm NGUxMmYxMzM0NWIKK0F1dGhvcjogTWFjaWVqIFcuIFJvenlja2kgPG1hY3JvQGNvZGVzb3VyY2Vy eS5jb20+CitEYXRlOiAgIFRodSBPY3QgMjQgMjM6MzI6MzAgMjAxMyArMDEwMAorCiskIHJ1bnRl c3QgZ2RiLmJhc2Uvc29saWItZGlzYy5leHAKK1J1bm5pbmcgLi9nZGIuYmFzZS9zb2xpYi1kaXNj LmV4cCAuLi4KK0VSUk9SOiBubyBmaWxlaWQgZm9yIGhvc3QxCitbLi4uXQorCisKK0phbgorCist LWF6TEhGTnlOMzJZQ1FHQ1UKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1h c2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0iZ2RiZmluaXNoLnBh dGNoIgorCitnZGIvdGVzdHN1aXRlLworMjAxNC0wMi0wNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJRml4ICJFUlJPUjogbm8gZmlsZWlkIGZvciIgaW4g dGhlIHRlc3RzdWl0ZS4KKwkqIGxpYi9nZGIuZXhwIChnZGJfZmluaXNoKTogQ2hlY2sgZ2RiX3Nw YXduX2lkLgorCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cCBiL2dkYi90 ZXN0c3VpdGUvbGliL2dkYi5leHAKK2luZGV4IDUzM2I4MWIuLjVjNTNjZGYgMTAwNjQ0CistLS0g YS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCitAQCAtMzcwOCw3ICszNzA4LDggQEAgcHJvYyBnZGJfZmluaXNoIHsgfSB7CisgICAgIGds b2JhbCBjbGVhbmZpbGVzCisgCisgICAgICMgR2l2ZSBwZXJzaXN0ZW50IGdkYnNlcnZlciBhIGNo YW5jZSB0byB0ZXJtaW5hdGUgYmVmb3JlIEdEQiBpcyBraWxsZWQuCistICAgIGlmIHtbaW5mbyBl eGlzdHMgZ2Ric2VydmVyX3JlY29ubmVjdF9wXSAmJiAkZ2Ric2VydmVyX3JlY29ubmVjdF9wfSB7 CisrICAgIGlmIHtbaW5mbyBleGlzdHMgZ2Ric2VydmVyX3JlY29ubmVjdF9wXSAmJiAkZ2Ric2Vy dmVyX3JlY29ubmVjdF9wCisrCSYmIFtpbmZvIGV4aXN0cyBnZGJfc3Bhd25faWRdfSB7CisgCXNl bmRfZ2RiICJraWxsXG4iOworIAlnZGJfZXhwZWN0IDEwIHsKKyAJICAgIC1yZSAieSBvciBuIiB7 CisKKy0tYXpMSEZOeU4zMllDUUdDVS0tCisKCmRpZmYgLS1naXQgYS9nZGItdXBzdHJlYW0ucGF0 Y2ggYi9nZGItdXBzdHJlYW0ucGF0Y2gKaW5kZXggNzJiY2NlNC4uMDkzNmUxYyAxMDA2NDQKLS0t IGEvZ2RiLXVwc3RyZWFtLnBhdGNoCisrKyBiL2dkYi11cHN0cmVhbS5wYXRjaApAQCAtMSwxMDYx ICsxLDY2IEBACi1jb21taXQgMWFhNGNkNzc0Y2E2NzRlZTYwNjFlMjA2OGE0MTBiYjY3YzhiYzgx MgotQXV0aG9yOiBBbmRyZXcgUGluc2tpIDxhcGluc2tpQGNhdml1bS5jb20+Ci1EYXRlOiAgIFRo dSBTZXAgMTIgMDc6MTQ6MzcgMjAxMyArMDAwMAotCi0gICAgMjAxMy0wOS0xMiAgQW5kcmV3IFBp bnNraSAgPGFwaW5za2lAY2F2aXVtLmNvbT4KLSAgICAKLSAgICAJKiBhYXJjaDY0LWxpbnV4LW5h dC5jIChhYXJjaDY0X2xpbnV4X3NldF9kZWJ1Z19yZWdzKTogWmVybyBvdXQgcmVncy4KLQotZGlm ZiAtLWdpdCBhL2dkYi9DaGFuZ2VMb2cgYi9nZGIvQ2hhbmdlTG9nCi1pbmRleCBmYTNkZTE2Li45 MDNkY2JhIDEwMDY0NAotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxvZwot IyMgLTEsMyArMSw3IEBACi0rMjAxMy0wOS0xMiAgQW5kcmV3IFBpbnNraSAgPGFwaW5za2lAY2F2 aXVtLmNvbT4KLSsKLSsJKiBhYXJjaDY0LWxpbnV4LW5hdC5jIChhYXJjaDY0X2xpbnV4X3NldF9k ZWJ1Z19yZWdzKTogWmVybyBvdXQgcmVncy4KLSsKLSAyMDEzLTA5LTEwICBBbmRyZWFzIEFybmV6 ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgotIAotIAkqIGNvbmZpZy9zMzkwL3MzOTAubWgg KE5BVERFUEZJTEVTKTogQWRkIGxpbnV4LXdhaXRwaWQuby4KLWRpZmYgLS1naXQgYS9nZGIvYWFy Y2g2NC1saW51eC1uYXQuYyBiL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCi1pbmRleCA4NDZmMTU2 Li5mNjg1NjE5IDEwMDY0NAotLS0tIGEvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKLSsrKyBiL2dk Yi9hYXJjaDY0LWxpbnV4LW5hdC5jCi1AQCAtMzEyLDYgKzMxMiw3IEBAIGFhcmNoNjRfbGludXhf c2V0X2RlYnVnX3JlZ3MgKGNvbnN0IHN0cnVjdCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3Rh dGUsCi0gICBjb25zdCBDT1JFX0FERFIgKmFkZHI7Ci0gICBjb25zdCB1bnNpZ25lZCBpbnQgKmN0 cmw7Ci0gCi0rICBtZW1zZXQgKCZyZWdzLCAwLCBzaXplb2YgKHJlZ3MpKTsKLSAgIGlvdi5pb3Zf YmFzZSA9ICZyZWdzOwotICAgaW92Lmlvdl9sZW4gPSBzaXplb2YgKHJlZ3MpOwotICAgY291bnQg PSB3YXRjaHBvaW50ID8gYWFyY2g2NF9udW1fd3BfcmVncyA6IGFhcmNoNjRfbnVtX2JwX3JlZ3M7 Ci0KLQotCi1jb21taXQgMDVmZWIxOTMzZjgwZjJkNTVlMTMyYWRjNjU3ZDMxNTI5NDdhZjNkMQot QXV0aG9yOiBXaWxsIE5ld3RvbiA8d2lsbG5ld3RvbkBzb3VyY2V3YXJlLm9yZz4KLURhdGU6ICAg VGh1IE9jdCAxMCAxMDo0MDo0MiAyMDEzICswMDAwCi0KLSAgICBnZGIvYWFyY2g2NC1saW51eC10 ZGVwLmM6IENhbGwgbGludXhfaW5pdF9hYmkuCi0gICAgCi0gICAgSWYgd2UgYXJlIHJ1bm5pbmcg b24gYSBMaW51eCBwbGF0Zm9ybSB3ZSBzaG91bGQgY2FsbCBsaW51eF9pbml0X2FiaQotICAgIGlu IG9yZGVyIHRvIGdldCBhbGwgdGhlIHVzZWZ1bCBob29rcyBpdCBlbmFibGVzLgotICAgIAotICAg IGdkYi9DaGFuZ2VMb2c6Ci0gICAgCi0gICAgMjAxMy0xMC0xMCAgV2lsbCBOZXd0b24gIDx3aWxs Lm5ld3RvbkBsaW5hcm8ub3JnPgotICAgIAotICAgIAkqIGFhcmNoNjQtbGludXgtdGRlcC5jIChh YXJjaDY0X2xpbnV4X2luaXRfYWJpKTogQ2FsbAotICAgIAlsaW51eF9pbml0X2FiaS4KLQotZGlm ZiAtLWdpdCBhL2dkYi9DaGFuZ2VMb2cgYi9nZGIvQ2hhbmdlTG9nCi1pbmRleCA0MzcyNTc5Li43 YTQxOTY3IDEwMDY0NAotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxvZwot IyMgLTEsMyArMSw4IEBACi0rMjAxMy0xMC0xMCAgV2lsbCBOZXd0b24gIDx3aWxsLm5ld3RvbkBs aW5hcm8ub3JnPgotKwotKwkqIGFhcmNoNjQtbGludXgtdGRlcC5jIChhYXJjaDY0X2xpbnV4X2lu aXRfYWJpKTogQ2FsbAotKwlsaW51eF9pbml0X2FiaS4KLSsKLSAyMDEzLTEwLTEwICBKb2VsIEJy b2JlY2tlciAgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KLSAKLSAJKiBjbGkvY2xpLWNtZHMuYyAo c2hvd19iYXVkX3JhdGUpOiBNb3ZlZCB0byBzZXJpYWwuYyBhcwotZGlmZiAtLWdpdCBhL2dkYi9h YXJjaDY0LWxpbnV4LXRkZXAuYyBiL2dkYi9hYXJjaDY0LWxpbnV4LXRkZXAuYwotaW5kZXggOGU2 NjQyNS4uYmNmY2NlMiAxMDA2NDQKLS0tLSBhL2dkYi9hYXJjaDY0LWxpbnV4LXRkZXAuYwotKysr IGIvZ2RiL2FhcmNoNjQtbGludXgtdGRlcC5jCi1AQCAtMjcwLDYgKzI3MCw4IEBAIGFhcmNoNjRf bGludXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gpCi0gCi0gICB0ZGVwLT5sb3dlc3RfcGMgPSAweDgwMDA7Ci0gCi0rICBsaW51eF9p bml0X2FiaSAoaW5mbywgZ2RiYXJjaCk7Ci0rCi0gICBzZXRfc29saWJfc3ZyNF9mZXRjaF9saW5r X21hcF9vZmZzZXRzIChnZGJhcmNoLAotIAkJCQkJIHN2cjRfbHA2NF9mZXRjaF9saW5rX21hcF9v ZmZzZXRzKTsKLSAKLQotCi0KLXByZS1yZXEgZm9yOgotW1BBVENILCBBQXJjaDY0XSBGaXggYnVn IGluIGhhcmR3YXJlIHdhdGNocG9pbnQvYnJlYWtwb2ludCBoYW5kbGluZwotY29tbWl0IGM2MjNh NmVmNzJhOGQ3ZGJiYjY0NjM0NWY3NTY0NjcxMGNiOWJiNjgKLUF1dGhvcjogV2lsbCBOZXd0b24g PHdpbGxuZXd0b25Ac291cmNld2FyZS5vcmc+Ci1EYXRlOiAgIE1vbiBTZXAgMTYgMTQ6MjI6MTkg MjAxMyArMDAwMAotCi0gICAgZ2Ric2VydmVyLCBhYXJjaDY0OiBaZXJvIG91dCByZWdzIGluIGFh cmNoNjRfbGludXhfc2V0X2RlYnVnX3JlZ3MuCi0gICAgCi0gICAgQXBwbHkgdGhlIHNhbWUgZml4 IHRoYXQgd2FzIGFwcGxpZWQgdG8gYWFyY2g2NC1saW51eC1uYXQuYy4KLSAgICAKLSAgICAyMDEz LTA5LTE2ICBXaWxsIE5ld3RvbiAgPHdpbGwubmV3dG9uQGxpbmFyby5vcmc+Ci0gICAgCi0gICAg CSogbGludXgtYWFyY2g2NC1sb3cuYyAoYWFyY2g2NF9saW51eF9zZXRfZGVidWdfcmVncyk6IFpl cm8KLSAgICAJb3V0IHJlZ3MuCi0KLWRpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL0NoYW5nZUxv ZyBiL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi1pbmRleCA3MzE5MWY0Li4xMDgyZTc4IDEwMDY0 NAotIyMjIGEvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9nZGJzZXJ2ZXIvQ2hh bmdlTG9nCi0jIyAtMSwzICsxLDggQEAKLSsyMDEzLTA5LTE2ICBXaWxsIE5ld3RvbiAgPHdpbGwu bmV3dG9uQGxpbmFyby5vcmc+Ci0rCi0rCSogbGludXgtYWFyY2g2NC1sb3cuYyAoYWFyY2g2NF9s aW51eF9zZXRfZGVidWdfcmVncyk6IFplcm8KLSsJb3V0IHJlZ3MuCi0rCi0gMjAxMy0wOS0wNiAg UGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJKiBNYWtlZmlsZS5pbiAoZ2Ri X3Byb2Nfc2VydmljZV9oLCByZWdkZWZfaCwgcmVnY2FjaGVfaCkKLWRpZmYgLS1naXQgYS9nZGIv Z2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMgYi9nZGIvZ2Ric2VydmVyL2xpbnV4LWFhcmNo NjQtbG93LmMKLWluZGV4IGUzN2Y2MDIuLjkzMjQ2YjMgMTAwNjQ0Ci0tLS0gYS9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWFhcmNoNjQtbG93LmMKLSsrKyBiL2dkYi9nZGJzZXJ2ZXIvbGludXgtYWFyY2g2 NC1sb3cuYwotQEAgLTYwMCw2ICs2MDAsNyBAQCBhYXJjaDY0X2xpbnV4X3NldF9kZWJ1Z19yZWdz IChjb25zdCBzdHJ1Y3QgYWFyY2g2NF9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLAotICAgY29uc3Qg Q09SRV9BRERSICphZGRyOwotICAgY29uc3QgdW5zaWduZWQgaW50ICpjdHJsOwotIAotKyAgbWVt c2V0ICgmcmVncywgMCwgc2l6ZW9mIChyZWdzKSk7Ci0gICBpb3YuaW92X2Jhc2UgPSAmcmVnczsK LSAgIGlvdi5pb3ZfbGVuID0gc2l6ZW9mIChyZWdzKTsKLSAgIGNvdW50ID0gd2F0Y2hwb2ludCA/ IGFhcmNoNjRfbnVtX3dwX3JlZ3MgOiBhYXJjaDY0X251bV9icF9yZWdzOwotCi0KLQotW1BBVENI LCBBQXJjaDY0XSBGaXggYnVnIGluIGhhcmR3YXJlIHdhdGNocG9pbnQvYnJlYWtwb2ludCBoYW5k bGluZwotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEzLTEyL21zZzAw NzA3Lmh0bWwKLWNvbW1pdCBmNDVjODJkYTM4MWUwY2U1Y2U1MWI3ZmIyNGQwZDI4NjExZDI2NmI4 Ci1BdXRob3I6IFl1ZmVuZyBaaGFuZyA8eXVmZW5nLnpoYW5nQGFybS5jb20+Ci1EYXRlOiAgIFdl ZCBEZWMgMTggMTY6NDc6MzMgMjAxMyArMDAwMAotCi0gICAgZ2RiLwotICAgIAotICAgIAkqIGFh cmNoNjQtbGludXgtbmF0LmMgKGFhcmNoNjRfbGludXhfc2V0X2RlYnVnX3JlZ3MpOiBTZXQKLSAg ICAJaW92Lmlvdl9sZW4gd2l0aCB0aGUgcmVhbCBsZW5ndGggaW4gdXNlLgotICAgIAotICAgIGdk Yi9nZGJzZXJ2ZXIvCi0gICAgCi0gICAgCSogbGludXgtYWFyY2g2NC1sb3cuYyAoYWFyY2g2NF9s aW51eF9zZXRfZGVidWdfcmVncyk6IFNldAotICAgIAlpb3YuaW92X2xlbiB3aXRoIHRoZSByZWFs IGxlbmd0aCBpbiB1c2UuCi0KLWRpZmYgLS1naXQgYS9nZGIvQ2hhbmdlTG9nIGIvZ2RiL0NoYW5n ZUxvZwotaW5kZXggN2Q5MzA4Zi4uNTEzYzU5MyAxMDA2NDQKLSMjIyBhL2dkYi9DaGFuZ2VMb2cK LSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOCBAQAotKzIwMTMtMTItMTggIFl1ZmVu ZyBaaGFuZyAgPHl1ZmVuZy56aGFuZ0Bhcm0uY29tPgotKwotKwkqIGFhcmNoNjQtbGludXgtbmF0 LmMgKGFhcmNoNjRfbGludXhfc2V0X2RlYnVnX3JlZ3MpOiBTZXQKLSsJaW92Lmlvdl9sZW4gd2l0 aCB0aGUgcmVhbCBsZW5ndGggaW4gdXNlLgotKwotIDIwMTMtMTItMTggIFlhbyBRaSAgPHlhb0Bj b2Rlc291cmNlcnkuY29tPgotIAotIAkqIHRhcmdldC5oICh0YXJnZXRfeGZlcl9wYXJ0aWFsX2Z0 eXBlKTogTmV3IHR5cGVkZWYuCi1kaWZmIC0tZ2l0IGEvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMg Yi9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwotaW5kZXggMjU2NzI1Yi4uN2Q3NjgzMyAxMDA2NDQK LS0tLSBhL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCi0rKysgYi9nZGIvYWFyY2g2NC1saW51eC1u YXQuYwotQEAgLTMxNCwxMCArMzE0LDEzIEBAIGFhcmNoNjRfbGludXhfc2V0X2RlYnVnX3JlZ3Mg KGNvbnN0IHN0cnVjdCBhYXJjaDY0X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCi0gCi0gICBtZW1z ZXQgKCZyZWdzLCAwLCBzaXplb2YgKHJlZ3MpKTsKLSAgIGlvdi5pb3ZfYmFzZSA9ICZyZWdzOwot LSAgaW92Lmlvdl9sZW4gPSBzaXplb2YgKHJlZ3MpOwotICAgY291bnQgPSB3YXRjaHBvaW50ID8g YWFyY2g2NF9udW1fd3BfcmVncyA6IGFhcmNoNjRfbnVtX2JwX3JlZ3M7Ci0gICBhZGRyID0gd2F0 Y2hwb2ludCA/IHN0YXRlLT5kcl9hZGRyX3dwIDogc3RhdGUtPmRyX2FkZHJfYnA7Ci0gICBjdHJs ID0gd2F0Y2hwb2ludCA/IHN0YXRlLT5kcl9jdHJsX3dwIDogc3RhdGUtPmRyX2N0cmxfYnA7Ci0r ICBpZiAoY291bnQgPT0gMCkKLSsgICAgcmV0dXJuOwotKyAgaW92Lmlvdl9sZW4gPSAob2Zmc2V0 b2YgKHN0cnVjdCB1c2VyX2h3ZGVidWdfc3RhdGUsIGRiZ19yZWdzW2NvdW50IC0gMV0pCi0rCQkg KyBzaXplb2YgKHJlZ3MuZGJnX3JlZ3MgW2NvdW50IC0gMV0pKTsKLSAKLSAgIGZvciAoaSA9IDA7 IGkgPCBjb3VudDsgaSsrKQotICAgICB7Ci1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9DaGFu Z2VMb2cgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwotaW5kZXggYzczODQwZi4uMjg0Nzc5NiAx MDA2NDQKLSMjIyBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0jIyMgYi9nZGIvZ2Ric2VydmVy L0NoYW5nZUxvZwotIyMgLTEsMyArMSw4IEBACi0rMjAxMy0xMi0xOCAgWXVmZW5nIFpoYW5nICA8 eXVmZW5nLnpoYW5nQGFybS5jb20+Ci0rCi0rCSogbGludXgtYWFyY2g2NC1sb3cuYyAoYWFyY2g2 NF9saW51eF9zZXRfZGVidWdfcmVncyk6IFNldAotKwlpb3YuaW92X2xlbiB3aXRoIHRoZSByZWFs IGxlbmd0aCBpbiB1c2UuCi0rCi0gMjAxMy0xMi0xMyAgSm9lbCBCcm9iZWNrZXIgIDxicm9iZWNr ZXJAYWRhY29yZS5jb20+Ci0gCi0gCSogTWFrZWZpbGUuaW4gKHNhZmUtY3R5cGUubywgbGJhc2Vu YW1lLm8pOiBOZXcgcnVsZXMuCi1kaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9saW51eC1hYXJj aDY0LWxvdy5jIGIvZ2RiL2dkYnNlcnZlci9saW51eC1hYXJjaDY0LWxvdy5jCi1pbmRleCA5MzI0 NmIzLi5jMmQyNzFhIDEwMDY0NAotLS0tIGEvZ2RiL2dkYnNlcnZlci9saW51eC1hYXJjaDY0LWxv dy5jCi0rKysgYi9nZGIvZ2Ric2VydmVyL2xpbnV4LWFhcmNoNjQtbG93LmMKLUBAIC02MDIsMTAg KzYwMiwxMyBAQCBhYXJjaDY0X2xpbnV4X3NldF9kZWJ1Z19yZWdzIChjb25zdCBzdHJ1Y3QgYWFy Y2g2NF9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLAotIAotICAgbWVtc2V0ICgmcmVncywgMCwgc2l6 ZW9mIChyZWdzKSk7Ci0gICBpb3YuaW92X2Jhc2UgPSAmcmVnczsKLS0gIGlvdi5pb3ZfbGVuID0g c2l6ZW9mIChyZWdzKTsKLSAgIGNvdW50ID0gd2F0Y2hwb2ludCA/IGFhcmNoNjRfbnVtX3dwX3Jl Z3MgOiBhYXJjaDY0X251bV9icF9yZWdzOwotICAgYWRkciA9IHdhdGNocG9pbnQgPyBzdGF0ZS0+ ZHJfYWRkcl93cCA6IHN0YXRlLT5kcl9hZGRyX2JwOwotICAgY3RybCA9IHdhdGNocG9pbnQgPyBz dGF0ZS0+ZHJfY3RybF93cCA6IHN0YXRlLT5kcl9jdHJsX2JwOwotKyAgaWYgKGNvdW50ID09IDAp Ci0rICAgIHJldHVybjsKLSsgIGlvdi5pb3ZfbGVuID0gKG9mZnNldG9mIChzdHJ1Y3QgdXNlcl9o d2RlYnVnX3N0YXRlLCBkYmdfcmVnc1tjb3VudCAtIDFdKQotKwkJICsgc2l6ZW9mIChyZWdzLmRi Z19yZWdzIFtjb3VudCAtIDFdKSk7Ci0gCi0gICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykK LSAgICAgewotCitodHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wMi9t c2cwMDE3OS5odG1sCitTdWJqZWN0OiBbb2J2XSB0ZXN0c3VpdGU6IEZpeCBpMzg2LXNzZS1zdGFj ay1hbGlnbi5leHAgcmVncmVzc2lvbiBzaW5jZSBHREJfUEFSQUxMRUwKIAogCi1jb21taXQgOWE5 NWU3NWVlOTk0NGNiZTZmZTMwMjFiOTJhN2M0ZGU4N2JlNmZlMQotQXV0aG9yOiBZYW8gUWkgPHlh b0Bjb2Rlc291cmNlcnkuY29tPgotRGF0ZTogICBXZWQgQXVnIDE0IDExOjUzOjExIDIwMTMgKzAw MDAKLQotICAgIGdkYi8KLSAgICAKLSAgICAJUFIgZ2RiLzE1ODM3OgotICAgIAkqIGZyYW1lLmgg KHJlYWRfZnJhbWVfbG9jYWwpOiBEZWNsYXJlLgotICAgIAkqIG1pL21pLWNtZC1zdGFjay5jIChs aXN0X2FyZ3Nfb3JfbG9jYWxzKTogQ2FsbAotICAgIAlyZWFkX2ZyYW1lX2xvY2FsLgotICAgIAkq IHN0YWNrLmMgKHJlYWRfZnJhbWVfbG9jYWwpOiBOZXcuCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cK LSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTEgQEAKLSsyMDEzLTA4LTE0ICBZYW8g UWkgIDx5YW9AY29kZXNvdXJjZXJ5LmNvbT4KLSsKLSsJUFIgZ2RiLzE1ODM3OgotKwkqIGZyYW1l LmggKHJlYWRfZnJhbWVfbG9jYWwpOiBEZWNsYXJlLgotKwkqIG1pL21pLWNtZC1zdGFjay5jIChs aXN0X2FyZ3Nfb3JfbG9jYWxzKTogQ2FsbAotKwlyZWFkX2ZyYW1lX2xvY2FsLgotKwkqIHN0YWNr LmMgKHJlYWRfZnJhbWVfbG9jYWwpOiBOZXcuCi0rCi0gMjAxMy0wNi0yOCAgUGVkcm8gQWx2ZXMg IDxwYWx2ZXNAcmVkaGF0LmNvbT4KLSAKLSAJUFIgdHVpLzE0ODgwCi0tLS0gYS9nZGIvZnJhbWUu aAotKysrIGIvZ2RiL2ZyYW1lLmgKLUBAIC03MTQsNiArNzE0LDggQEAgc3RydWN0IGZyYW1lX2Fy ZwotIGV4dGVybiB2b2lkIHJlYWRfZnJhbWVfYXJnIChzdHJ1Y3Qgc3ltYm9sICpzeW0sIHN0cnVj dCBmcmFtZV9pbmZvICpmcmFtZSwKLSAJCQkgICAgc3RydWN0IGZyYW1lX2FyZyAqYXJncCwKLSAJ CQkgICAgc3RydWN0IGZyYW1lX2FyZyAqZW50cnlhcmdwKTsKLStleHRlcm4gdm9pZCByZWFkX2Zy YW1lX2xvY2FsIChzdHJ1Y3Qgc3ltYm9sICpzeW0sIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwK LSsJCQkgICAgICBzdHJ1Y3QgZnJhbWVfYXJnICphcmdwKTsKLSAKLSBleHRlcm4gdm9pZCBhcmdz X2luZm8gKGNoYXIgKiwgaW50KTsKLSAKLS0tLSBhL2dkYi9taS9taS1jbWQtc3RhY2suYwotKysr IGIvZ2RiL21pL21pLWNtZC1zdGFjay5jCi1AQCAtNDE3LDcgKzQxNywxMCBAQCBsaXN0X2FyZ3Nf b3JfbG9jYWxzIChlbnVtIHdoYXRfdG9fbGlzdCB3aGF0LCBlbnVtIHByaW50X3ZhbHVlcyB2YWx1 ZXMsCi0gCQkgICAgICAmJiBUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9VTklPTikKLSAJ CSAgICB7Ci0gCQljYXNlIFBSSU5UX0FMTF9WQUxVRVM6Ci0tCQkgICAgICByZWFkX2ZyYW1lX2Fy ZyAoc3ltMiwgZmksICZhcmcsICZlbnRyeWFyZyk7Ci0rCQkgIGlmIChTWU1CT0xfSVNfQVJHVU1F TlQgKHN5bSkpCi0rCQkgICAgcmVhZF9mcmFtZV9hcmcgKHN5bTIsIGZpLCAmYXJnLCAmZW50cnlh cmcpOwotKwkJICBlbHNlCi0rCQkgICAgcmVhZF9mcmFtZV9sb2NhbCAoc3ltMiwgZmksICZhcmcp OwotIAkJICAgIH0KLSAJCSAgYnJlYWs7Ci0gCQl9Ci0tLS0gYS9nZGIvc3RhY2suYwotKysrIGIv Z2RiL3N0YWNrLmMKLUBAIC0yOTYsNiArMjk2LDI3IEBAIHByaW50X2ZyYW1lX2FyZyAoY29uc3Qg c3RydWN0IGZyYW1lX2FyZyAqYXJnKQotICAgYW5ub3RhdGVfYXJnX2VuZCAoKTsKLSB9Ci0gCi0r LyogUmVhZCBpbiBpbmZlcmlvciBmdW5jdGlvbiBsb2NhbCBTWU0gYXQgRlJBTUUgaW50byBBUkdQ LiAgQ2FsbGVyIGlzCi0rICAgcmVzcG9uc2libGUgZm9yIHhmcmVlIG9mIEFSR1AtPkVSUk9SLiAg VGhpcyBmdW5jdGlvbiBuZXZlciB0aHJvd3MgYW4KLSsgICBleGNlcHRpb24uICAqLwotKwotK3Zv aWQKLStyZWFkX2ZyYW1lX2xvY2FsIChzdHJ1Y3Qgc3ltYm9sICpzeW0sIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSwKLSsJCSAgc3RydWN0IGZyYW1lX2FyZyAqYXJncCkKLSt7Ci0rICB2b2xhdGls ZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7Ci0rICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5V TEw7Ci0rCi0rICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfRVJST1IpCi0rICAgIHsK LSsgICAgICB2YWwgPSByZWFkX3Zhcl92YWx1ZSAoc3ltLCBmcmFtZSk7Ci0rICAgIH0KLSsKLSsg IGFyZ3AtPmVycm9yID0gKHZhbCA9PSBOVUxMKSA/IHhzdHJkdXAgKGV4Y2VwdC5tZXNzYWdlKSA6 IE5VTEw7Ci0rICBhcmdwLT5zeW0gPSBzeW07Ci0rICBhcmdwLT52YWwgPSB2YWw7Ci0rfQotKwot IC8qIFJlYWQgaW4gaW5mZXJpb3IgZnVuY3Rpb24gcGFyYW1ldGVyIFNZTSBhdCBGUkFNRSBpbnRv IEFSR1AuICBDYWxsZXIgaXMKLSAgICByZXNwb25zaWJsZSBmb3IgeGZyZWUgb2YgQVJHUC0+RVJS T1IuICBUaGlzIGZ1bmN0aW9uIG5ldmVyIHRocm93cyBhbgotICAgIGV4Y2VwdGlvbi4gICovCi0K LQotCi1jb21taXQgNGIwZjVmYmIyNTNmYmJlOWMyZjQ1NzhlYmQ3ZGQ5NDIwNGE0NjQ3NwotQXV0 aG9yOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6ICAg VGh1IEF1ZyAyOSAxNDoyNDoxNiAyMDEzICswMDAwCi0KLSAgICBQUiBzZXJ2ZXIvMTU2MDQKLSAg ICAKLSAgICBnZGIvZ2Ric2VydmVyLwotICAgIDIwMTMtMDgtMjkgIEphbiBLcmF0b2NodmlsICA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgc2VydmVyLzE1NjA0Ci0g ICAgCSogbGludXgtbG93LmMKLSAgICAJKGxpbnV4X2NyZWF0ZV9pbmZlcmlvcikgPHBpZCA9PSAw ICYmICFyZW1vdGVfY29ubmVjdGlvbl9pc19zdGRpbyAoKT46Ci0gICAgCUNsb3NlIExJU1RFTl9E RVNDIGFuZCBvcHRpb25hbGx5IFJFTU9URV9ERVNDLgotICAgIAkobHlueF9jcmVhdGVfaW5mZXJp b3IpIDxwaWQgPT0gMCAmJiAhcmVtb3RlX2Nvbm5lY3Rpb25faXNfc3RkaW8gKCk+OgotICAgIAlD bG9zZSBMSVNURU5fREVTQyBhbmQgb3B0aW9uYWxseSBSRU1PVEVfREVTQy4KLSAgICAJKiByZW1v dGUtdXRpbHMuYyAocmVtb3RlX2Rlc2MsIGxpc3Rlbl9kZXNjKTogUmVtb3ZlIHN0YXRpYyBxdWFs aWZpZXIuCi0gICAgCSogc2VydmVyLmggKHJlbW90ZV9kZXNjLCBsaXN0ZW5fZGVzYyk6IE5ldyBk ZWNsYXJhdGlvbi4KLSAgICAJKiBzcHUtbG93LmMKLSAgICAJKHNwdV9jcmVhdGVfaW5mZXJpb3Ip IDxwaWQgPT0gMCAmJiAhcmVtb3RlX2Nvbm5lY3Rpb25faXNfc3RkaW8gKCk+OgotICAgIAlDbG9z ZSBMSVNURU5fREVTQyBhbmQgb3B0aW9uYWxseSBSRU1PVEVfREVTQy4KLQotIyMjIGEvZ2RiL2dk YnNlcnZlci9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCi0jIyAtMSwz ICsxLDE3IEBACi0rMjAxMy0wOC0yOSAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgotKwotKwlQUiBzZXJ2ZXIvMTU2MDQKLSsJKiBsaW51eC1sb3cuYwotKwkobGlu dXhfY3JlYXRlX2luZmVyaW9yKSA8cGlkID09IDAgJiYgIXJlbW90ZV9jb25uZWN0aW9uX2lzX3N0 ZGlvICgpPjoKLSsJQ2xvc2UgTElTVEVOX0RFU0MgYW5kIG9wdGlvbmFsbHkgUkVNT1RFX0RFU0Mu Ci0rCShseW54X2NyZWF0ZV9pbmZlcmlvcikgPHBpZCA9PSAwICYmICFyZW1vdGVfY29ubmVjdGlv bl9pc19zdGRpbyAoKT46Ci0rCUNsb3NlIExJU1RFTl9ERVNDIGFuZCBvcHRpb25hbGx5IFJFTU9U RV9ERVNDLgotKwkqIHJlbW90ZS11dGlscy5jIChyZW1vdGVfZGVzYywgbGlzdGVuX2Rlc2MpOiBS ZW1vdmUgc3RhdGljIHF1YWxpZmllci4KLSsJKiBzZXJ2ZXIuaCAocmVtb3RlX2Rlc2MsIGxpc3Rl bl9kZXNjKTogTmV3IGRlY2xhcmF0aW9uLgotKwkqIHNwdS1sb3cuYwotKwkoc3B1X2NyZWF0ZV9p bmZlcmlvcikgPHBpZCA9PSAwICYmICFyZW1vdGVfY29ubmVjdGlvbl9pc19zdGRpbyAoKT46Ci0r CUNsb3NlIExJU1RFTl9ERVNDIGFuZCBvcHRpb25hbGx5IFJFTU9URV9ERVNDLgotKwotIDIwMTMt MDUtMzEgIERvdWcgRXZhbnMgIDxkamVAZ29vZ2xlLmNvbT4KLSAKLSAJUFIgc2VydmVyLzE1NTk0 Ci0tLS0gYS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCi0rKysgYi9nZGIvZ2Ric2VydmVyL2xp bnV4LWxvdy5jCi1AQCAtNjY4LDYgKzY2OCwxMiBAQCBsaW51eF9jcmVhdGVfaW5mZXJpb3IgKGNo YXIgKnByb2dyYW0sIGNoYXIgKiphbGxhcmdzKQotIAkgICAgICAvKiBFcnJvcnMgaWdub3JlZC4g ICovOwotIAkgICAgfQotIAl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgY2xvc2UgKGxpc3Rlbl9k ZXNjKTsKLSsJICBpZiAoZ2RiX2Nvbm5lY3RlZCAoKSkKLSsJICAgIGNsb3NlIChyZW1vdGVfZGVz Yyk7Ci0rCX0KLSAKLSAgICAgICBleGVjdiAocHJvZ3JhbSwgYWxsYXJncyk7Ci0gICAgICAgaWYg KGVycm5vID09IEVOT0VOVCkKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvbHlueC1sb3cuYwotKysrIGIv Z2RiL2dkYnNlcnZlci9seW54LWxvdy5jCi1AQCAtMjE4LDYgKzIxOCwxMiBAQCBseW54X2NyZWF0 ZV9pbmZlcmlvciAoY2hhciAqcHJvZ3JhbSwgY2hhciAqKmFsbGFyZ3MpCi0gICAgICAgcGdycCA9 IGdldHBpZCgpOwotICAgICAgIHNldHBnaWQgKDAsIHBncnApOwotICAgICAgIGlvY3RsICgwLCBU SU9DU1BHUlAsICZwZ3JwKTsKLSsgICAgICBpZiAoIXJlbW90ZV9jb25uZWN0aW9uX2lzX3N0ZGlv ICgpKQotKwl7Ci0rCSAgY2xvc2UgKGxpc3Rlbl9kZXNjKTsKLSsJICBpZiAoZ2RiX2Nvbm5lY3Rl ZCAoKSkKLSsJICAgIGNsb3NlIChyZW1vdGVfZGVzYyk7Ci0rCX0KLSAgICAgICBseW54X3B0cmFj ZSAoUFRSQUNFX1RSQUNFTUUsIG51bGxfcHRpZCwgMCwgMCwgMCk7Ci0gICAgICAgZXhlY3YgKHBy b2dyYW0sIGFsbGFyZ3MpOwotICAgICAgIGZwcmludGYgKHN0ZGVyciwgIkNhbm5vdCBleGVjICVz OiAlcy5cbiIsIHByb2dyYW0sIHN0cmVycm9yIChlcnJubykpOwotLS0tIGEvZ2RiL2dkYnNlcnZl ci9yZW1vdGUtdXRpbHMuYwotKysrIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotQEAg LTEwOCw4ICsxMDgsOCBAQCBzdHJ1Y3QgdWlfZmlsZSAqZ2RiX3N0ZGxvZzsKLSAKLSBzdGF0aWMg aW50IHJlbW90ZV9pc19zdGRpbyA9IDA7Ci0gCi0tc3RhdGljIGdkYl9maWxkZXNfdCByZW1vdGVf ZGVzYyA9IElOVkFMSURfREVTQ1JJUFRPUjsKLS1zdGF0aWMgZ2RiX2ZpbGRlc190IGxpc3Rlbl9k ZXNjID0gSU5WQUxJRF9ERVNDUklQVE9SOwotK2dkYl9maWxkZXNfdCByZW1vdGVfZGVzYyA9IElO VkFMSURfREVTQ1JJUFRPUjsKLStnZGJfZmlsZGVzX3QgbGlzdGVuX2Rlc2MgPSBJTlZBTElEX0RF U0NSSVBUT1I7Ci0gCi0gLyogRklYTUUgaGVhZGVyaXplPyAqLwotIGV4dGVybiBpbnQgdXNpbmdf dGhyZWFkczsKLS0tLSBhL2dkYi9nZGJzZXJ2ZXIvc2VydmVyLmgKLSsrKyBiL2dkYi9nZGJzZXJ2 ZXIvc2VydmVyLmgKLUBAIC0yNzQsNiArMjc0LDggQEAgZXh0ZXJuIHZvaWQgaG9zdGlvX2xhc3Rf ZXJyb3JfZnJvbV9lcnJubyAoY2hhciAqb3duX2J1Zik7Ci0gLyogRnJvbSByZW1vdGUtdXRpbHMu YyAqLwotIAotIGV4dGVybiBpbnQgcmVtb3RlX2RlYnVnOwotK2V4dGVybiBnZGJfZmlsZGVzX3Qg cmVtb3RlX2Rlc2M7Ci0rZXh0ZXJuIGdkYl9maWxkZXNfdCBsaXN0ZW5fZGVzYzsKLSBleHRlcm4g aW50IG5vYWNrX21vZGU7Ci0gZXh0ZXJuIGludCB0cmFuc3BvcnRfaXNfcmVsaWFibGU7Ci0gCi0t LS0gYS9nZGIvZ2Ric2VydmVyL3NwdS1sb3cuYwotKysrIGIvZ2RiL2dkYnNlcnZlci9zcHUtbG93 LmMKLUBAIC0yNzMsNiArMjczLDEyIEBAIHNwdV9jcmVhdGVfaW5mZXJpb3IgKGNoYXIgKnByb2dy YW0sIGNoYXIgKiphbGxhcmdzKQotIAotICAgaWYgKHBpZCA9PSAwKQotICAgICB7Ci0rICAgICAg aWYgKCFyZW1vdGVfY29ubmVjdGlvbl9pc19zdGRpbyAoKSkKLSsJewotKwkgIGNsb3NlIChsaXN0 ZW5fZGVzYyk7Ci0rCSAgaWYgKGdkYl9jb25uZWN0ZWQgKCkpCi0rCSAgICBjbG9zZSAocmVtb3Rl X2Rlc2MpOwotKwl9Ci0gICAgICAgcHRyYWNlIChQVFJBQ0VfVFJBQ0VNRSwgMCwgMCwgMCk7Ci0g Ci0gICAgICAgc2V0cGdpZCAoMCwgMCk7CistLXUzL3JaUm14TDZNbWtLMjQKK0NvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogaW5s aW5lCiAKK0hpIFRvbSwKIAorJCBtYWtlIGNoZWNrLy91bml4Ly1tMzIgUlVOVEVTVEZMQUdTPSJn ZGIuYXJjaC9pMzg2LXNzZS1zdGFjay1hbGlnbi5leHAgR0RCX1BBUkFMTEVMPTEiCitbLi4uXQor UnVubmluZyAvaG9tZS9qa3JhdG9jaC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gvaTM4Ni1zc2Utc3RhY2stYWxpZ24uZXhwIC4uLgorRVJST1I6ICgvaG9tZS9qa3JhdG9j aC9yZWRoYXQvZ2RiLWNsZWFuL2dkYi90ZXN0c3VpdGUudW5peC4tbTMyL291dHB1dHMvZ2RiLmFy Y2gvaTM4Ni1zc2Utc3RhY2stYWxpZ24vaTM4Ni1zc2Utc3RhY2stYWxpZ24pIE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKIAotY29tbWl0IDUxMDYwNGVlZTc4OTJjNTRkOThlZWZhMjg5M2FmYjgy M2M3MjE0MDYKLUF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci1EYXRlOiAgIFdlZCBBdWcgMjggMTc6NTU6NTYgMjAxMyArMDAwMAogCi0gICAgUFIgZ2Ri LzE1NDE1Ci0gICAgCi0gICAgZ2RiLwotICAgIDIwMTMtMDgtMjcgIEphbiBLcmF0b2NodmlsICA8 amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgZ2RiLzE1NDE1Ci0gICAg CSogY29yZWZpbGUuYyAoZ2V0X2V4ZWNfZmlsZSk6IFVzZSBleGVjX2ZpbGVuYW1lLgotICAgIAkq IGRlZnMuaCAoT1BGX0RJU0FCTEVfUkVBTFBBVEgpOiBOZXcgZGVmaW5pdGlvbi4gIEFkZCBuZXcg Y29tbWVudC4KLSAgICAJKiBleGVjLmMgKGV4ZWNfY2xvc2UpOiBGcmVlIEVYRUNfRklMRU5BTUUu Ci0gICAgCShleGVjX2ZpbGVfYXR0YWNoKTogTmV3IHZhcmlhYmxlIGNhbm9uaWNhbF9wYXRobmFt ZS4gIFVzZQotICAgIAlPUEZfRElTQUJMRV9SRUFMUEFUSC4gIENhbGwgZ2RiX3JlYWxwYXRoIGV4 cGxpY2l0bHkuICBTZXQKLSAgICAJRVhFQ19GSUxFTkFNRS4KLSAgICAJKiBleGVjLmggKGV4ZWNf ZmlsZW5hbWUpOiBOZXcuCi0gICAgCSogaW5mZXJpb3IuYyAocHJpbnRfaW5mZXJpb3IsIGluZmVy aW9yX2NvbW1hbmQpOiBVc2UKLSAgICAJUFNQQUNFX0VYRUNfRklMRU5BTUUuCi0gICAgCSogbWkv bWktbWFpbi5jIChwcmludF9vbmVfaW5mZXJpb3IpOiBMaWtld2lzZS4KLSAgICAJKiBwcm9nc3Bh Y2UuYyAoY2xvbmVfcHJvZ3JhbV9zcGFjZSwgcHJpbnRfcHJvZ3JhbV9zcGFjZSk6IExpa2V3aXNl LgotICAgIAkqIHByb2dzcGFjZS5oIChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSk6IE5ldyBmaWVsZCBw c3BhY2VfZXhlY19maWxlbmFtZS4KLSAgICAJKiBzb3VyY2UuYyAob3BlbnApOiBEZXNjcmliZSBP UEZfRElTQUJMRV9SRUFMUEFUSC4gIE5ldyB2YXJpYWJsZQotICAgIAlyZWFscGF0aF9mcHRyLCBp bml0aWFsaXplIGl0IGZyb20gT1BGX0RJU0FCTEVfUkVBTFBBVEgsIHVzZSBpdC4KLSAgICAKLSAg ICBnZGIvdGVzdHN1aXRlLwotICAgIDIwMTMtMDgtMjcgIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAgICAKLSAgICAJUFIgZ2RiLzE1NDE1Ci0gICAgCSogZ2Ri LmJhc2UvYXJndjAtc3ltbGluay5jOiBOZXcgZmlsZS4KLSAgICAJKiBnZGIuYmFzZS9hcmd2MC1z eW1saW5rLmV4cDogTmV3IGZpbGUuCitDaGVja2VkIGluLgogCi1kaWZmIC1kdXAgLXJ1TnAgZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvY29yZWZpbGUuYyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvY29yZWZpbGUuYwotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcv Z2RiL2NvcmVmaWxlLmMJMjAxMy0wNy0zMSAyMTo0MTo1NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvY29yZWZpbGUuYwkyMDE0LTAxLTE5IDE2OjI0OjQ2 LjIzODMyMzA1NCArMDEwMAotQEAgLTE4Miw4ICsxODIsOCBAQCB2YWxpZGF0ZV9maWxlcyAodm9p ZCkKLSBjaGFyICoKLSBnZXRfZXhlY19maWxlIChpbnQgZXJyKQotIHsKLS0gIGlmIChleGVjX2Jm ZCkKLS0gICAgcmV0dXJuIGJmZF9nZXRfZmlsZW5hbWUgKGV4ZWNfYmZkKTsKLSsgIGlmIChleGVj X2ZpbGVuYW1lKQotKyAgICByZXR1cm4gZXhlY19maWxlbmFtZTsKLSAgIGlmICghZXJyKQotICAg ICByZXR1cm4gTlVMTDsKLSAKLWRpZmYgLWR1cCAtcnVOcCBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy1vcmlnL2dkYi9kZWZzLmggZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2RlZnMuaAotLS0t IGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL2RlZnMuaAkyMDEzLTA3LTMxIDIxOjQx OjU0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9kZWZz LmgJMjAxNC0wMS0xOSAxNjoyNDo0Ni4yMzkzMjMwNTQgKzAxMDAKLUBAIC0zNDYsOCArMzQ2LDEw IEBAIGV4dGVybiBjb25zdCBjaGFyICpwY19wcmVmaXggKENPUkVfQUREUikKLSAKLSAvKiBGcm9t IHNvdXJjZS5jICovCi0gCi0rLyogU2VlIG9wZW5wIGZ1bmN0aW9uIGRlZmluaXRpb24gZm9yIHRo ZWlyIGRlc2NyaXB0aW9uLiAgKi8KLSAjZGVmaW5lIE9QRl9UUllfQ1dEX0ZJUlNUICAgICAweDAx Ci0gI2RlZmluZSBPUEZfU0VBUkNIX0lOX1BBVEggICAgMHgwMgotKyNkZWZpbmUgT1BGX0RJU0FC TEVfUkVBTFBBVEggIDB4MDQKLSAKLSBleHRlcm4gaW50IG9wZW5wIChjb25zdCBjaGFyICosIGlu dCwgY29uc3QgY2hhciAqLCBpbnQsIGNoYXIgKiopOwotIAotZGlmZiAtZHVwIC1ydU5wIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL2V4ZWMuYyBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvZXhlYy5jCi0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvZXhlYy5j CTIwMTMtMDctMzEgMjE6NDE6NTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEz MDczMS1jdnMvZ2RiL2V4ZWMuYwkyMDE0LTAxLTE5IDE2OjI1OjE4LjYxNjMxNTM1NCArMDEwMAot QEAgLTEwMiw2ICsxMDIsOSBAQCBleGVjX2Nsb3NlICh2b2lkKQotICAgICAgIGV4ZWNfYmZkX210 aW1lID0gMDsKLSAKLSAgICAgICByZW1vdmVfdGFyZ2V0X3NlY3Rpb25zICgmZXhlY19iZmQpOwot KwotKyAgICAgIHhmcmVlIChleGVjX2ZpbGVuYW1lKTsKLSsgICAgICBleGVjX2ZpbGVuYW1lID0g TlVMTDsKLSAgICAgfQotIH0KLSAKLUBAIC0xNzksMTIgKzE4MiwxMyBAQCBleGVjX2ZpbGVfYXR0 YWNoIChjaGFyICpmaWxlbmFtZSwgaW50IGZyCi0gICBlbHNlCi0gICAgIHsKLSAgICAgICBzdHJ1 Y3QgY2xlYW51cCAqY2xlYW51cHM7Ci0tICAgICAgY2hhciAqc2NyYXRjaF9wYXRobmFtZTsKLSsg ICAgICBjaGFyICpzY3JhdGNoX3BhdGhuYW1lLCAqY2Fub25pY2FsX3BhdGhuYW1lOwotICAgICAg IGludCBzY3JhdGNoX2NoYW47Ci0gICAgICAgc3RydWN0IHRhcmdldF9zZWN0aW9uICpzZWN0aW9u cyA9IE5VTEwsICpzZWN0aW9uc19lbmQgPSBOVUxMOwotICAgICAgIGNoYXIgKiptYXRjaGluZzsK LSAKLS0gICAgICBzY3JhdGNoX2NoYW4gPSBvcGVucCAoZ2V0ZW52ICgiUEFUSCIpLCBPUEZfVFJZ X0NXRF9GSVJTVCwgZmlsZW5hbWUsCi0rICAgICAgc2NyYXRjaF9jaGFuID0gb3BlbnAgKGdldGVu diAoIlBBVEgiKSwKLSsJCQkgICAgT1BGX1RSWV9DV0RfRklSU1QgfCBPUEZfRElTQUJMRV9SRUFM UEFUSCwgZmlsZW5hbWUsCi0gCQkgICB3cml0ZV9maWxlcyA/IE9fUkRXUiB8IE9fQklOQVJZIDog T19SRE9OTFkgfCBPX0JJTkFSWSwKLSAJCQkgICAgJnNjcmF0Y2hfcGF0aG5hbWUpOwotICNpZiBk ZWZpbmVkKF9fR08zMl9fKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9f KQotQEAgLTE5Myw3ICsxOTcsOSBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwg aW50IGZyCi0gCSAgY2hhciAqZXhlbmFtZSA9IGFsbG9jYSAoc3RybGVuIChmaWxlbmFtZSkgKyA1 KTsKLSAKLSAJICBzdHJjYXQgKHN0cmNweSAoZXhlbmFtZSwgZmlsZW5hbWUpLCAiLmV4ZSIpOwot LQkgIHNjcmF0Y2hfY2hhbiA9IG9wZW5wIChnZXRlbnYgKCJQQVRIIiksIE9QRl9UUllfQ1dEX0ZJ UlNULCBleGVuYW1lLAotKwkgIHNjcmF0Y2hfY2hhbiA9IG9wZW5wIChnZXRlbnYgKCJQQVRIIiks Ci0rCQkJCU9QRl9UUllfQ1dEX0ZJUlNUIHwgT1BGX0RJU0FCTEVfUkVBTFBBVEgsCi0rCQkJCWV4 ZW5hbWUsCi0gCSAgICAgd3JpdGVfZmlsZXMgPyBPX1JEV1IgfCBPX0JJTkFSWSA6IE9fUkRPTkxZ IHwgT19CSU5BUlksCi0gCSAgICAgJnNjcmF0Y2hfcGF0aG5hbWUpOwotIAl9Ci1AQCAtMjAzLDEx ICsyMDksMTYgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmlsZW5hbWUsIGludCBmcgotIAot ICAgICAgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgc2NyYXRjaF9wYXRobmFtZSk7 Ci0gCi0rICAgICAgLyogZ2RiX2JmZF9vcGVuIChhbmQgaXRzIHZhcmlhbnRzKSBwcmVmZXJzIGNh bm9uaWNhbGl6ZWQgcGF0aG5hbWUgZm9yCi0rCSBiZXR0ZXIgQkZEIGNhY2hpbmcuICAqLwotKyAg ICAgIGNhbm9uaWNhbF9wYXRobmFtZSA9IGdkYl9yZWFscGF0aCAoc2NyYXRjaF9wYXRobmFtZSk7 Ci0rICAgICAgbWFrZV9jbGVhbnVwICh4ZnJlZSwgY2Fub25pY2FsX3BhdGhuYW1lKTsKLSsKLSAg ICAgICBpZiAod3JpdGVfZmlsZXMpCi0tCWV4ZWNfYmZkID0gZ2RiX2JmZF9mb3BlbiAoc2NyYXRj aF9wYXRobmFtZSwgZ251dGFyZ2V0LAotKwlleGVjX2JmZCA9IGdkYl9iZmRfZm9wZW4gKGNhbm9u aWNhbF9wYXRobmFtZSwgZ251dGFyZ2V0LAotIAkJCQkgIEZPUEVOX1JVQiwgc2NyYXRjaF9jaGFu KTsKLSAgICAgICBlbHNlCi0tCWV4ZWNfYmZkID0gZ2RiX2JmZF9vcGVuIChzY3JhdGNoX3BhdGhu YW1lLCBnbnV0YXJnZXQsIHNjcmF0Y2hfY2hhbik7Ci0rCWV4ZWNfYmZkID0gZ2RiX2JmZF9vcGVu IChjYW5vbmljYWxfcGF0aG5hbWUsIGdudXRhcmdldCwgc2NyYXRjaF9jaGFuKTsKLSAKLSAgICAg ICBpZiAoIWV4ZWNfYmZkKQotIAl7Ci1AQCAtMjE1LDYgKzIyNiw5IEBAIGV4ZWNfZmlsZV9hdHRh Y2ggKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnIKLSAJCSBzY3JhdGNoX3BhdGhuYW1lLCBiZmRfZXJy bXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7Ci0gCX0KLSAKLSsgICAgICBnZGJfYXNzZXJ0IChleGVj X2ZpbGVuYW1lID09IE5VTEwpOwotKyAgICAgIGV4ZWNfZmlsZW5hbWUgPSB4c3RyZHVwIChzY3Jh dGNoX3BhdGhuYW1lKTsKLSsKLSAgICAgICBpZiAoIWJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyAo ZXhlY19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCi0gCXsKLSAJICAvKiBNYWtlIHN1cmUg dG8gY2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5IHRvIHVzZQotZGlmZiAt ZHVwIC1ydU5wIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL2V4ZWMuaCBnZGItNy42 LjUwLjIwMTMwNzMxLWN2cy9nZGIvZXhlYy5oCi0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMt b3JpZy9nZGIvZXhlYy5oCTIwMTMtMDctMzEgMjE6NDE6NTQuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL2V4ZWMuaAkyMDE0LTAxLTE5IDE2OjI0OjQ2LjI2 MjMyMzA0OSArMDEwMAotQEAgLTMyLDYgKzMyLDcgQEAgZXh0ZXJuIHN0cnVjdCB0YXJnZXRfb3Bz IGV4ZWNfb3BzOwotIAotICNkZWZpbmUgZXhlY19iZmQgY3VycmVudF9wcm9ncmFtX3NwYWNlLT5l YmZkCi0gI2RlZmluZSBleGVjX2JmZF9tdGltZSBjdXJyZW50X3Byb2dyYW1fc3BhY2UtPmViZmRf bXRpbWUKLSsjZGVmaW5lIGV4ZWNfZmlsZW5hbWUgY3VycmVudF9wcm9ncmFtX3NwYWNlLT5wc3Bh Y2VfZXhlY19maWxlbmFtZQotIAotIC8qIEJ1aWxkcyBhIHNlY3Rpb24gdGFibGUsIGdpdmVuIGFy Z3MgQkZELCBTRUNUQUJMRV9QVFIsIFNFQ0VORF9QVFIuCi0gICAgUmV0dXJucyAwIGlmIE9LLCAx IG9uIGVycm9yLiAgKi8KLWRpZmYgLWR1cCAtcnVOcCBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy1v cmlnL2dkYi9pbmZlcmlvci5jIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9pbmZlcmlvci5j Ci0tLS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvaW5mZXJpb3IuYwkyMDEzLTA3 LTMxIDIxOjQxOjU0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjYuNTAuMjAxMzA3MzEtY3Zz L2dkYi9pbmZlcmlvci5jCTIwMTQtMDEtMTkgMTY6MjQ6NDYuMjY0MzIzMDQ4ICswMTAwCi1AQCAt NTg4LDkgKzU4OCw4IEBAIHByaW50X2luZmVyaW9yIChzdHJ1Y3QgdWlfb3V0ICp1aW91dCwgY2gK LSAgICAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInRhcmdldC1pZCIsCi0gCQkJICAg aW5mZXJpb3JfcGlkX3RvX3N0ciAoaW5mLT5waWQpKTsKLSAKLS0gICAgICBpZiAoaW5mLT5wc3Bh Y2UtPmViZmQpCi0tCXVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiZXhlYyIsCi0tCQkJICAg ICBiZmRfZ2V0X2ZpbGVuYW1lIChpbmYtPnBzcGFjZS0+ZWJmZCkpOwotKyAgICAgIGlmIChpbmYt PnBzcGFjZS0+cHNwYWNlX2V4ZWNfZmlsZW5hbWUgIT0gTlVMTCkKLSsJdWlfb3V0X2ZpZWxkX3N0 cmluZyAodWlvdXQsICJleGVjIiwgaW5mLT5wc3BhY2UtPnBzcGFjZV9leGVjX2ZpbGVuYW1lKTsK LSAgICAgICBlbHNlCi0gCXVpX291dF9maWVsZF9za2lwICh1aW91dCwgImV4ZWMiKTsKLSAKLUBA IC03MDQsOCArNzAzLDggQEAgaW5mZXJpb3JfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21f dAotICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJbU3dpdGNoaW5nIHRvIGluZmVyaW9yICVkIFslc10g KCVzKV1cbiIpLAotIAkJICAgaW5mLT5udW0sCi0gCQkgICBpbmZlcmlvcl9waWRfdG9fc3RyIChp bmYtPnBpZCksCi0tCQkgICAoaW5mLT5wc3BhY2UtPmViZmQKLS0JCSAgICA/IGJmZF9nZXRfZmls ZW5hbWUgKGluZi0+cHNwYWNlLT5lYmZkKQotKwkJICAgKGluZi0+cHNwYWNlLT5wc3BhY2VfZXhl Y19maWxlbmFtZSAhPSBOVUxMCi0rCQkgICAgPyBpbmYtPnBzcGFjZS0+cHNwYWNlX2V4ZWNfZmls ZW5hbWUKLSAJCSAgICA6IF8oIjxub2V4ZWM+IikpKTsKLSAKLSAgIGlmIChpbmYtPnBpZCAhPSAw KQotZGlmZiAtZHVwIC1ydU5wIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL21pL21p LW1haW4uYyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvbWkvbWktbWFpbi5jCi0tLS0gZ2Ri LTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvbWkvbWktbWFpbi5jCTIwMTMtMDctMzEgMjE6 NDE6NTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL21p L21pLW1haW4uYwkyMDE0LTAxLTE5IDE2OjI0OjQ2LjI3MzMyMzA0NiArMDEwMAotQEAgLTU3Mywx MCArNTczLDEwIEBAIHByaW50X29uZV9pbmZlcmlvciAoc3RydWN0IGluZmVyaW9yICppbmYKLSAg ICAgICBpZiAoaW5mZXJpb3ItPnBpZCAhPSAwKQotIAl1aV9vdXRfZmllbGRfaW50ICh1aW91dCwg InBpZCIsIGluZmVyaW9yLT5waWQpOwotIAotLSAgICAgIGlmIChpbmZlcmlvci0+cHNwYWNlLT5l YmZkKQotKyAgICAgIGlmIChpbmZlcmlvci0+cHNwYWNlLT5wc3BhY2VfZXhlY19maWxlbmFtZSAh PSBOVUxMKQotIAl7Ci0gCSAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJleGVjdXRhYmxl IiwKLS0JCQkgICAgICAgYmZkX2dldF9maWxlbmFtZSAoaW5mZXJpb3ItPnBzcGFjZS0+ZWJmZCkp OwotKwkJCSAgICAgICBpbmZlcmlvci0+cHNwYWNlLT5wc3BhY2VfZXhlY19maWxlbmFtZSk7Ci0g CX0KLSAKLSAgICAgICBkYXRhLmNvcmVzID0gMDsKLWRpZmYgLWR1cCAtcnVOcCBnZGItNy42LjUw LjIwMTMwNzMxLWN2cy1vcmlnL2dkYi9wcm9nc3BhY2UuYyBnZGItNy42LjUwLjIwMTMwNzMxLWN2 cy9nZGIvcHJvZ3NwYWNlLmMKLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy1vcmlnL2dkYi9w cm9nc3BhY2UuYwkyMDEzLTAxLTAyIDAyOjU0OjU2LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9wcm9nc3BhY2UuYwkyMDE0LTAxLTE5IDE2OjI0OjQ2LjI3 NTMyMzA0NSArMDEwMAotQEAgLTE5Niw4ICsxOTYsOCBAQCBjbG9uZV9wcm9ncmFtX3NwYWNlIChz dHJ1Y3QgcHJvZ3JhbV9zcGFjCi0gCi0gICBzZXRfY3VycmVudF9wcm9ncmFtX3NwYWNlIChkZXN0 KTsKLSAKLS0gIGlmIChzcmMtPmViZmQgIT0gTlVMTCkKLS0gICAgZXhlY19maWxlX2F0dGFjaCAo YmZkX2dldF9maWxlbmFtZSAoc3JjLT5lYmZkKSwgMCk7Ci0rICBpZiAoc3JjLT5wc3BhY2VfZXhl Y19maWxlbmFtZSAhPSBOVUxMKQotKyAgICBleGVjX2ZpbGVfYXR0YWNoIChzcmMtPnBzcGFjZV9l eGVjX2ZpbGVuYW1lLCAwKTsKLSAKLSAgIGlmIChzcmMtPnN5bWZpbGVfb2JqZWN0X2ZpbGUgIT0g TlVMTCkKLSAgICAgc3ltYm9sX2ZpbGVfYWRkX21haW4gKHNyYy0+c3ltZmlsZV9vYmplY3RfZmls ZS0+bmFtZSwgMCk7Ci1AQCAtMzM2LDkgKzMzNiw4IEBAIHByaW50X3Byb2dyYW1fc3BhY2UgKHN0 cnVjdCB1aV9vdXQgKnVpb3UKLSAKLSAgICAgICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgImlk IiwgcHNwYWNlLT5udW0pOwotIAotLSAgICAgIGlmIChwc3BhY2UtPmViZmQpCi0tCXVpX291dF9m aWVsZF9zdHJpbmcgKHVpb3V0LCAiZXhlYyIsCi0tCQkJICAgICBiZmRfZ2V0X2ZpbGVuYW1lIChw c3BhY2UtPmViZmQpKTsKLSsgICAgICBpZiAocHNwYWNlLT5wc3BhY2VfZXhlY19maWxlbmFtZSkK LSsJdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJleGVjIiwgcHNwYWNlLT5wc3BhY2VfZXhl Y19maWxlbmFtZSk7Ci0gICAgICAgZWxzZQotIAl1aV9vdXRfZmllbGRfc2tpcCAodWlvdXQsICJl eGVjIik7Ci0gCi1kaWZmIC1kdXAgLXJ1TnAgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9n ZGIvcHJvZ3NwYWNlLmggZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMvZ2RiL3Byb2dzcGFjZS5oCi0t LS0gZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvcHJvZ3NwYWNlLmgJMjAxMy0wMS0w MiAwMjo1NDo1Ni4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9n ZGIvcHJvZ3NwYWNlLmgJMjAxNC0wMS0xOSAxNjoyNDo0Ni4yNzYzMjMwNDUgKzAxMDAKLUBAIC0x NDgsNiArMTQ4LDEwIEBAIHN0cnVjdCBwcm9ncmFtX3NwYWNlCi0gICAgIGJmZCAqZWJmZDsKLSAg ICAgLyogVGhlIGxhc3QtbW9kaWZpZWQgdGltZSwgZnJvbSB3aGVuIHRoZSBleGVjIHdhcyBicm91 Z2h0IGluLiAgKi8KLSAgICAgbG9uZyBlYmZkX210aW1lOwotKyAgICAvKiBTaW1pbGFyIHRvIGJm ZF9nZXRfZmlsZW5hbWUgKGV4ZWNfYmZkKSBidXQgaW4gb3JpZ2luYWwgZm9ybSBnaXZlbgotKyAg ICAgICBieSB1c2VyLCB3aXRob3V0IHN5bWJvbGljIGxpbmtzIGFuZCBwYXRobmFtZSByZXNvbHZl ZC4KLSsgICAgICAgSXQgbmVlZHMgdG8gYmUgZnJlZWQgYnkgeGZyZWUuICBJdCBpcyBub3QgTlVM TCBpZmYgRUJGRCBpcyBub3QgTlVMTC4gICovCi0rICAgIGNoYXIgKnBzcGFjZV9leGVjX2ZpbGVu YW1lOwotIAotICAgICAvKiBUaGUgYWRkcmVzcyBzcGFjZSBhdHRhY2hlZCB0byB0aGlzIHByb2dy YW0gc3BhY2UuICBNb3JlIHRoYW4gb25lCi0gICAgICAgIHByb2dyYW0gc3BhY2UgbWF5IGJlIGJv dW5kIHRvIHRoZSBzYW1lIGFkZHJlc3Mgc3BhY2UuICBJbiB0aGUKLWRpZmYgLWR1cCAtcnVOcCBn ZGItNy42LjUwLjIwMTMwNzMxLWN2cy1vcmlnL2dkYi9zb3VyY2UuYyBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy9nZGIvc291cmNlLmMKLS0tLSBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy1vcmlnL2dk Yi9zb3VyY2UuYwkyMDEzLTA3LTMxIDIxOjQxOjU0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03 LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi9zb3VyY2UuYwkyMDE0LTAxLTE5IDE2OjI0OjQ2LjI3ODMy MzA0NSArMDEwMAotQEAgLTY5Miw2ICs2OTIsMTEgQEAgaXNfcmVndWxhcl9maWxlIChjb25zdCBj aGFyICpuYW1lKQotICAgIGFuZCB0aGUgZmlsZSwgc2lnaCEgIEVtYWNzIGdldHMgY29uZnV6emVk IGJ5IHRoaXMgd2hlbiB3ZSBwcmludCB0aGUKLSAgICBzb3VyY2UgZmlsZSBuYW1lISEhIAotIAot KyAgIElmIE9QVFMgZG9lcyBub3QgaGF2ZSBPUEZfRElTQUJMRV9SRUFMUEFUSCBzZXQgcmV0dXJu IEZJTEVOQU1FX09QRU5FRAotKyAgIHJlc29sdmVkIGJ5IGdkYl9yZWFscGF0aC4gIEV2ZW4gd2l0 aCBPUEZfRElTQUJMRV9SRUFMUEFUSCB0aGlzIGZ1bmN0aW9uCi0rICAgc3RpbGwgcmV0dXJucyBm aWxlbmFtZSBzdGFydGluZyB3aXRoICIvIi4gIElmIEZJTEVOQU1FX09QRU5FRCBpcyBOVUxMCi0r ICAgdGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdC4KLSsKLSAgICBJZiBhIGZpbGUgaXMgZm91bmQs IHJldHVybiB0aGUgZGVzY3JpcHRvci4KLSAgICBPdGhlcndpc2UsIHJldHVybiAtMSwgd2l0aCBl cnJubyBzZXQgZm9yIHRoZSBsYXN0IG5hbWUgd2UgdHJpZWQgdG8gb3Blbi4gICovCi0gCi1AQCAt ODUxLDE5ICs4NTYsMjcgQEAgZG9uZToKLSAgICAgICAvKiBJZiBhIGZpbGUgd2FzIG9wZW5lZCwg Y2Fub25pY2FsaXplIGl0cyBmaWxlbmFtZS4gICovCi0gICAgICAgaWYgKGZkIDwgMCkKLSAJKmZp bGVuYW1lX29wZW5lZCA9IE5VTEw7Ci0tICAgICAgZWxzZSBpZiAoSVNfQUJTT0xVVEVfUEFUSCAo ZmlsZW5hbWUpKQotLQkqZmlsZW5hbWVfb3BlbmVkID0gZ2RiX3JlYWxwYXRoIChmaWxlbmFtZSk7 Ci0gICAgICAgZWxzZQotIAl7Ci0tCSAgLyogQmV3YXJlIHRoZSAvLyBteSBzb24sIHRoZSBFbWFj cyBiYXJmcywgdGhlIGJvdGNoIHRoYXQgY2F0Y2guLi4gICovCi0rCSAgY2hhciAqKCpyZWFscGF0 aF9mcHRyKSAoY29uc3QgY2hhciAqKTsKLSAKLS0JICBjaGFyICpmID0gY29uY2F0IChjdXJyZW50 X2RpcmVjdG9yeSwKLS0JCQkgICAgSVNfRElSX1NFUEFSQVRPUiAoY3VycmVudF9kaXJlY3Rvcnlb c3RybGVuIChjdXJyZW50X2RpcmVjdG9yeSkgLSAxXSkKLS0JCQkgICAgPyAiIiA6IFNMQVNIX1NU UklORywKLS0JCQkgICAgZmlsZW5hbWUsIChjaGFyICopTlVMTCk7Ci0rCSAgcmVhbHBhdGhfZnB0 ciA9ICgob3B0cyAmIE9QRl9ESVNBQkxFX1JFQUxQQVRIKSAhPSAwCi0rCQkJICAgPyB4c3RyZHVw IDogZ2RiX3JlYWxwYXRoKTsKLSAKLS0JICAqZmlsZW5hbWVfb3BlbmVkID0gZ2RiX3JlYWxwYXRo IChmKTsKLS0JICB4ZnJlZSAoZik7Ci0rCSAgaWYgKElTX0FCU09MVVRFX1BBVEggKGZpbGVuYW1l KSkKLSsJICAgICpmaWxlbmFtZV9vcGVuZWQgPSByZWFscGF0aF9mcHRyIChmaWxlbmFtZSk7Ci0r CSAgZWxzZQotKwkgICAgewotKwkgICAgICAvKiBCZXdhcmUgdGhlIC8vIG15IHNvbiwgdGhlIEVt YWNzIGJhcmZzLCB0aGUgYm90Y2ggdGhhdCBjYXRjaC4uLiAgKi8KLSsKLSsJICAgICAgY2hhciAq ZiA9IGNvbmNhdCAoY3VycmVudF9kaXJlY3RvcnksCi0rCQkJCUlTX0RJUl9TRVBBUkFUT1IgKGN1 cnJlbnRfZGlyZWN0b3J5W3N0cmxlbiAoY3VycmVudF9kaXJlY3RvcnkpIC0gMV0pCi0rCQkJCT8g IiIgOiBTTEFTSF9TVFJJTkcsCi0rCQkJCWZpbGVuYW1lLCAoY2hhciAqKU5VTEwpOwotKwotKwkg ICAgICAqZmlsZW5hbWVfb3BlbmVkID0gcmVhbHBhdGhfZnB0ciAoZik7Ci0rCSAgICAgIHhmcmVl IChmKTsKLSsJICAgIH0KLSAJfQotICAgICB9Ci0gCi1kaWZmIC1kdXAgLXJ1TnAgZ2RiLTcuNi41 MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsu YyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5 bWxpbmsuYwotLS0tIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLW9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hcmd2MC1zeW1saW5rLmMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMxLWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy Z3YwLXN5bWxpbmsuYwkyMDE0LTAxLTE5IDE2OjI0OjQ2LjI4NjMyMzA0MyArMDEwMAotQEAgLTAs MCArMSwyMiBAQAotKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVi dWdnZXIuCi0rCi0rICAgQ29weXJpZ2h0IDIwMTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0r ICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsg ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotK2lu dAotK21haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKLSt7Ci0rICByZXR1cm4gMDsKLSt9Ci1k aWZmIC1kdXAgLXJ1TnAgZ2RiLTcuNi41MC4yMDEzMDczMS1jdnMtb3JpZy9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAKLS0tLSBnZGItNy42LjUwLjIwMTMw NzMxLWN2cy1vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy42LjUwLjIwMTMwNzMx LWN2cy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCTIwMTQtMDEtMTkg MTY6MjQ6NDYuMjg3MzIzMDQzICswMTAwCi1AQCAtMCwwICsxLDYyIEBACi0rIyBDb3B5cmlnaHQg MjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0r IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUKLSsKLStpZiB7IFtidWlsZF9leGVj dXRhYmxlICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9XSA9PSAtMSB9IHsK LSsgICAgcmV0dXJuIC0xCi0rfQotKwotK3NldCB0ZXN0ICJrZXB0IGZpbGUgc3ltYm9saWMgbGlu ayBuYW1lIgotK3NldCBmaWxlbGluayAiJHt0ZXN0ZmlsZX0tZmlsZWxpbmsiCi0rCi0rcmVtb3Rl X2ZpbGUgaG9zdCBkZWxldGUgW3N0YW5kYXJkX291dHB1dF9maWxlICRmaWxlbGlua10KLStzZXQg c3RhdHVzIFtyZW1vdGVfZXhlYyBob3N0ICJsbiAtc2YgJHt0ZXN0ZmlsZX0gW3N0YW5kYXJkX291 dHB1dF9maWxlICRmaWxlbGlua10iXQotK2lmIHtbbGluZGV4ICRzdGF0dXMgMF0gIT0gMH0gewot KyAgICB1bnN1cHBvcnRlZCAiJHRlc3QgKGhvc3QgZG9lcyBub3Qgc3VwcG9ydCBzeW1ib2xpYyBs aW5rcykiCi0rICAgIHJldHVybiAwCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQgIiRmaWxlbGluayIK LSsKLStpZiAhW3J1bnRvX21haW5dIHsKLSsgICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8g bWFpbiIKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2dkYl90ZXN0IHtwcmludCBhcmd2WzBdfSAi LyRmaWxlbGlua1wiIiAkdGVzdAotKwotKwotK3NldCB0ZXN0ICJrZXB0IGRpcmVjdG9yeSBzeW1i b2xpYyBsaW5rIG5hbWUiCi0rc2V0IGRpcmxpbmsgIiR7dGVzdGZpbGV9LWRpcmxpbmsiCi0rCi0r IyAnbG4gLXNmJyBkb2VzIG5vdCBvdmVyd3JpdGUgc3ltYm9sIGxpbmsgdG8gYSBkaXJlY3Rvcnku Ci0rIyAncmVtb3RlX2ZpbGUgaG9zdCBkZWxldGUnIHVzZXMgc3RhdCAobm90IGxzdGF0KSwgdGhl cmVmb3JlIGl0IHJlZnVzZXMgdG8KLSsjIGRlbGV0ZSBhIGRpcmVjdG9yeS4KLStyZW1vdGVfZXhl YyBob3N0ICJybSAtZiBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJGRpcmxpbmtdIgotK3NldCBzdGF0 dXMgW3JlbW90ZV9leGVjIGhvc3QgImxuIC1zZiAuIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkZGly bGlua10iXQotK2lmIHtbbGluZGV4ICRzdGF0dXMgMF0gIT0gMH0gewotKyAgICB1bnN1cHBvcnRl ZCAiJHRlc3QgKGhvc3QgZG9lcyBub3Qgc3VwcG9ydCBzeW1ib2xpYyBsaW5rcykiCi0rICAgIHJl dHVybiAwCi0rfQotKwotK2NsZWFuX3Jlc3RhcnQgIiRkaXJsaW5rLyRmaWxlbGluayIKLSsKLStp ZiAhW3J1bnRvX21haW5dIHsKLSsgICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiIK LSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2dkYl90ZXN0IHtwcmludCBhcmd2WzBdfSAiLyRkaXJs aW5rLyRmaWxlbGlua1wiIiAkdGVzdAogCitKYW4KIAorLS11My9yWlJteEw2TW1rSzI0CitDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRp b246IGlubGluZTsgZmlsZW5hbWU9MQogCi1jb21taXQgNDg1NmI2YmM4MzVlMjVhYjBmNDg0NjIx MDQxNTI3MDFjODY0ODU4YworY29tbWl0IDNjNzdmYWYzM2RjNGM3YmI2OTNmMDVmNDQwNzdlZDY4 N2U5ZjgyMTcKIEF1dGhvcjogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+Ci1EYXRlOiAgIFN1biBPY3QgMTMgMTY6MTE6MDggMjAxMyArMDAwMAorRGF0ZTogICBUaHUg RmViIDYgMjM6MTQ6MjAgMjAxNCArMDEwMAogCi0gICAgSW1wcm92ZSBFeGVjdXRhYmxlIGRpc3Bs YXllZCBwYXRoIChQUiAxNTQxNSByZWdyZXNzaW9uIGtpbmQgIzIpCi0gICAgCi0gICAgZ2RiLwot ICAgIDIwMTMtMTAtMTMgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KLSAgICAKLSAgICAJQ2Fub25pY2FsaXplIGRpcmVjdG9yaWVzIGZvciBFWEVDX0ZJTEVOQU1F LgotICAgIAkqIGV4ZWMuYyAoZXhlY19maWxlX2F0dGFjaCk6IFVzZSBnZGJfcmVhbHBhdGhfa2Vl cGZpbGUgZm9yCi0gICAgCWV4ZWNfZmlsZW5hbWUuCi0gICAgCSogdXRpbHMuYyAoZ2RiX3JlYWxw YXRoX2tlZXBmaWxlKTogTmV3IGZ1bmN0aW9uLgotICAgIAkqIHV0aWxzLmggKGdkYl9yZWFscGF0 aF9rZWVwZmlsZSk6IE5ldyBkZWNsYXJhdGlvbi4KKyAgICBGaXggaTM4Ni1zc2Utc3RhY2stYWxp Z24uZXhwIHJlZ3Jlc3Npb24gc2luY2UgR0RCX1BBUkFMTEVMLgogICAgIAogICAgIGdkYi90ZXN0 c3VpdGUvCi0gICAgMjAxMy0xMC0xMyAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEBy ZWRoYXQuY29tPgorICAgIDIwMTQtMDItMDYgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KICAgICAKLSAgICAJQ2Fub25pY2FsaXplIGRpcmVjdG9yaWVzIGZvciBF WEVDX0ZJTEVOQU1FLgotICAgIAkqIGdkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi0gICAgCShr ZXB0IGZpbGUgc3ltYm9saWMgbGluayBuYW1lIGZvciBpbmZvIGluZmVyaW9ycyk6IE5ldy4KLSAg ICAJKGtlcHQgZGlyZWN0b3J5IHN5bWJvbGljIGxpbmsgbmFtZSk6IFNldHVwIGtmYWlsLgotICAg IAkoa2VwdCBkaXJlY3Rvcnkgc3ltYm9saWMgbGluayBuYW1lIGZvciBpbmZvIGluZmVyaW9ycyk6 IE5ldy4KKyAgICAJRml4IGkzODYtc3NlLXN0YWNrLWFsaWduLmV4cCByZWdyZXNzaW9uIHNpbmNl IEdEQl9QQVJBTExFTC4KKyAgICAJKiBnZGIuYXJjaC9pMzg2LXNzZS1zdGFjay1hbGlnbi5leHA6 IFVzZSBzdGFuZGFyZF9vdXRwdXRfZmlsZS4KIAotIyMjIGEvZ2RiL0NoYW5nZUxvZwotIyMjIGIv Z2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMSBAQAotKzIwMTMtMTAtMTMgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJQ2Fub25pY2FsaXplIGRpcmVj dG9yaWVzIGZvciBFWEVDX0ZJTEVOQU1FLgotKwkqIGV4ZWMuYyAoZXhlY19maWxlX2F0dGFjaCk6 IFVzZSBnZGJfcmVhbHBhdGhfa2VlcGZpbGUgZm9yCi0rCWV4ZWNfZmlsZW5hbWUuCi0rCSogdXRp bHMuYyAoZ2RiX3JlYWxwYXRoX2tlZXBmaWxlKTogTmV3IGZ1bmN0aW9uLgotKwkqIHV0aWxzLmgg KGdkYl9yZWFscGF0aF9rZWVwZmlsZSk6IE5ldyBkZWNsYXJhdGlvbi4KLSsKLSAyMDEzLTEwLTEx ICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+Ci0gCi0gCSogTWFrZWZpbGUuaW4gKEdEQkZM QUdTKTogTmV3IHZhcmlhYmxlLgotLS0tIGEvZ2RiL2V4ZWMuYwotKysrIGIvZ2RiL2V4ZWMuYwot QEAgLTIyNCw3ICsyMjQsNyBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50 IGZyb21fdHR5KQotIAl9Ci0gCi0gICAgICAgZ2RiX2Fzc2VydCAoZXhlY19maWxlbmFtZSA9PSBO VUxMKTsKLS0gICAgICBleGVjX2ZpbGVuYW1lID0geHN0cmR1cCAoc2NyYXRjaF9wYXRobmFtZSk7 Ci0rICAgICAgZXhlY19maWxlbmFtZSA9IGdkYl9yZWFscGF0aF9rZWVwZmlsZSAoc2NyYXRjaF9w YXRobmFtZSk7Ci0gCi0gICAgICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0X21hdGNoZXMgKGV4ZWNf YmZkLCBiZmRfb2JqZWN0LCAmbWF0Y2hpbmcpKQotIAl7CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9DaGFuZ2VMb2cgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworaW5kZXggOGM4NDZiOC4u MTNjY2FmMyAxMDA2NDQKICMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCiAjIyMgYi9nZGIv dGVzdHN1aXRlL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMSBAQAotKzIwMTMtMTAtMTMgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJQ2Fub25pY2FsaXpl IGRpcmVjdG9yaWVzIGZvciBFWEVDX0ZJTEVOQU1FLgotKwkqIGdkYi5iYXNlL2FyZ3YwLXN5bWxp bmsuZXhwCi0rCShrZXB0IGZpbGUgc3ltYm9saWMgbGluayBuYW1lIGZvciBpbmZvIGluZmVyaW9y cyk6IE5ldy4KLSsJKGtlcHQgZGlyZWN0b3J5IHN5bWJvbGljIGxpbmsgbmFtZSk6IFNldHVwIGtm YWlsLgotKwkoa2VwdCBkaXJlY3Rvcnkgc3ltYm9saWMgbGluayBuYW1lIGZvciBpbmZvIGluZmVy aW9ycyk6IE5ldy4KLSsKLSAyMDEzLTEwLTExICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgu dm5ldC5pYm0uY29tPgotIAotIAkqIGdkYi5hcmNoL3MzOTAtbXVsdGlhcmNoLmV4cDogTmV3IGZp bGUuCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi0rKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi1AQCAtMzcsNiArMzcs NyBAQCBpZiAhW3J1bnRvX21haW5dIHsKLSB9Ci0gCi0gZ2RiX3Rlc3Qge3ByaW50IGFyZ3ZbMF19 ICIvJGZpbGVsaW5rXCIiICR0ZXN0Ci0rZ2RiX3Rlc3QgImluZm8gaW5mZXJpb3JzIiAiLyRzdWJk aXIvJGZpbGVsaW5rICoiICIkdGVzdCBmb3IgaW5mbyBpbmZlcmlvcnMiCi0gCi0gCi0gc2V0IHRl c3QgImtlcHQgZGlyZWN0b3J5IHN5bWJvbGljIGxpbmsgbmFtZSIKLUBAIC01OSw0ICs2MCw5IEBA IGlmICFbcnVudG9fbWFpbl0gewotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0rIyBnZGJzZXJ2ZXIg ZG9lcyBub3QgaGF2ZSB0aGlzIGlzc3VlLgotK2lmICFbaXNfcmVtb3RlIHRhcmdldF0gewotKyAg ICBzZXR1cF9rZmFpbCAiKi0qLSoiIGdkYi8xNTkzNAotK30KLSBnZGJfdGVzdCB7cHJpbnQgYXJn dlswXX0gIi8kZGlybGluay8kZmlsZWxpbmtcIiIgJHRlc3QKLStnZGJfdGVzdCAiaW5mbyBpbmZl cmlvcnMiICIvJHN1YmRpci8kZmlsZWxpbmsgKiIgIiR0ZXN0IGZvciBpbmZvIGluZmVyaW9ycyIK LS0tLSBhL2dkYi91dGlscy5jCi0rKysgYi9nZGIvdXRpbHMuYwotQEAgLTMyMzMsNiArMzIzMyw1 MiBAQCBnZGJfcmVhbHBhdGggKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQotICAgcmV0dXJuIHhzdHJk dXAgKGZpbGVuYW1lKTsKLSB9Ci0gCi0rLyogUmV0dXJuIGEgY29weSBvZiBGSUxFTkFNRSwgd2l0 aCBpdHMgZGlyZWN0b3J5IHByZWZpeCBjYW5vbmljYWxpemVkCi0rICAgYnkgZ2RiX3JlYWxwYXRo LiAgKi8KLSsKLStjaGFyICoKLStnZGJfcmVhbHBhdGhfa2VlcGZpbGUgKGNvbnN0IGNoYXIgKmZp bGVuYW1lKQotK3sKLSsgIGNvbnN0IGNoYXIgKmJhc2VfbmFtZSA9IGxiYXNlbmFtZSAoZmlsZW5h bWUpOwotKyAgY2hhciAqZGlyX25hbWU7Ci0rICBjaGFyICpyZWFsX3BhdGg7Ci0rICBjaGFyICpy ZXN1bHQ7Ci0rCi0rICAvKiBFeHRyYWN0IHRoZSBiYXNlbmFtZSBvZiBmaWxlbmFtZSwgYW5kIHJl dHVybiBpbW1lZGlhdGVseSAKLSsgICAgIGEgY29weSBvZiBmaWxlbmFtZSBpZiBpdCBkb2VzIG5v dCBjb250YWluIGFueSBkaXJlY3RvcnkgcHJlZml4LiAgKi8KLSsgIGlmIChiYXNlX25hbWUgPT0g ZmlsZW5hbWUpCi0rICAgIHJldHVybiB4c3RyZHVwIChmaWxlbmFtZSk7Ci0rCi0rICBkaXJfbmFt ZSA9IGFsbG9jYSAoKHNpemVfdCkgKGJhc2VfbmFtZSAtIGZpbGVuYW1lICsgMikpOwotKyAgLyog QWxsb2NhdGUgZW5vdWdoIHNwYWNlIHRvIHN0b3JlIHRoZSBkaXJfbmFtZSArIHBsdXMgb25lIGV4 dHJhCi0rICAgICBjaGFyYWN0ZXIgc29tZXRpbWVzIG5lZWRlZCB1bmRlciBXaW5kb3dzIChzZWUg YmVsb3cpLCBhbmQKLSsgICAgIHRoZW4gdGhlIGNsb3NpbmcgXDAwMCBjaGFyYWN0ZXIuICAqLwot KyAgc3RybmNweSAoZGlyX25hbWUsIGZpbGVuYW1lLCBiYXNlX25hbWUgLSBmaWxlbmFtZSk7Ci0r ICBkaXJfbmFtZVtiYXNlX25hbWUgLSBmaWxlbmFtZV0gPSAnXDAwMCc7Ci0rCi0rI2lmZGVmIEhB VkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNCi0rICAvKiBXZSBuZWVkIHRvIGJlIGNhcmVmdWwgd2hl biBmaWxlbmFtZSBpcyBvZiB0aGUgZm9ybSAnZDpmb28nLCB3aGljaAotKyAgICAgaXMgZXF1aXZh bGVudCBvZiBkOi4vZm9vLCB3aGljaCBpcyB0b3RhbGx5IGRpZmZlcmVudCBmcm9tIGQ6L2Zvby4g ICovCi0rICBpZiAoc3RybGVuIChkaXJfbmFtZSkgPT0gMiAmJiBpc2FscGhhIChkaXJfbmFtZVsw XSkgJiYgZGlyX25hbWVbMV0gPT0gJzonKQotKyAgICB7Ci0rICAgICAgZGlyX25hbWVbMl0gPSAn Lic7Ci0rICAgICAgZGlyX25hbWVbM10gPSAnXDAwMCc7Ci0rICAgIH0KLSsjZW5kaWYKLSsKLSsg IC8qIENhbm9uaWNhbGl6ZSB0aGUgZGlyZWN0b3J5IHByZWZpeCwgYW5kIGJ1aWxkIHRoZSByZXN1 bHRpbmcKLSsgICAgIGZpbGVuYW1lLiAgSWYgdGhlIGRpcm5hbWUgcmVhbHBhdGggYWxyZWFkeSBj b250YWlucyBhbiBlbmRpbmcKLSsgICAgIGRpcmVjdG9yeSBzZXBhcmF0b3IsIGF2b2lkIGRvdWJs aW5nIGl0LiAgKi8KLSsgIHJlYWxfcGF0aCA9IGdkYl9yZWFscGF0aCAoZGlyX25hbWUpOwotKyAg aWYgKElTX0RJUl9TRVBBUkFUT1IgKHJlYWxfcGF0aFtzdHJsZW4gKHJlYWxfcGF0aCkgLSAxXSkp Ci0rICAgIHJlc3VsdCA9IGNvbmNhdCAocmVhbF9wYXRoLCBiYXNlX25hbWUsIChjaGFyICopIE5V TEwpOwotKyAgZWxzZQotKyAgICByZXN1bHQgPSBjb25jYXQgKHJlYWxfcGF0aCwgU0xBU0hfU1RS SU5HLCBiYXNlX25hbWUsIChjaGFyICopIE5VTEwpOwotKwotKyAgeGZyZWUgKHJlYWxfcGF0aCk7 Ci0rICByZXR1cm4gcmVzdWx0OwotK30KLSsKLSBVTE9OR0VTVAotIGFsaWduX3VwIChVTE9OR0VT VCB2LCBpbnQgbikKLSB7Ci0tLS0gYS9nZGIvdXRpbHMuaAotKysrIGIvZ2RiL3V0aWxzLmgKLUBA IC0xMjgsNiArMTI4LDggQEAgZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICptYWtlX2Jwc3RhdF9jbGVh cl9hY3Rpb25zX2NsZWFudXAgKHZvaWQpOwotIAotIGV4dGVybiBjaGFyICpnZGJfcmVhbHBhdGgg KGNvbnN0IGNoYXIgKik7Ci0gCi0rZXh0ZXJuIGNoYXIgKmdkYl9yZWFscGF0aF9rZWVwZmlsZSAo Y29uc3QgY2hhciAqKTsKLSsKLSBleHRlcm4gaW50IGdkYl9maWxlbmFtZV9mbm1hdGNoIChjb25z dCBjaGFyICpwYXR0ZXJuLCBjb25zdCBjaGFyICpzdHJpbmcsCi0gCQkJCSBpbnQgZmxhZ3MpOwot IAotCi0KLQotY29tbWl0IDI0ODkwZWZkYWJiZDlkODI3Y2RkMjA4OGIwMjJmMDcwZGEwNGIxNGYK LUF1dGhvcjogVG9tIFRyb21leSA8dHJvbWV5QHJlZGhhdC5jb20+Ci1EYXRlOiAgIEZyaSBPY3Qg MTggMTM6MTI6MzIgMjAxMyAtMDYwMAotCi0gICAgZml4IGFyZ3YwLXN5bWxpbmsuZXhwIGZvciBw YXJhbGxlbCBtb2RlCi0gICAgCi0gICAgYXJndjAtc3ltbGluay5leHAgZG9lc24ndCB3b3JrIHBy b3Blcmx5IGlmIHN0YW5kYXJkX291dHB1dF9maWxlIHB1dHMKLSAgICBmaWxlcyBpbnRvIGEgcGVy LXRlc3Qgc3ViZGlyZWN0b3J5LiAgVGhhdCdzIGJlY2F1c2UgaXQgYXNzdW1lcyB0aGF0Ci0gICAg ZmlsZXMgYXBwZWFyIGluICRzdWJkaXIsIHdoaWNoIGlzIG5vIGxvbmdlciB0cnVlLgotICAgIAot ICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gYnkgY29tcHV0aW5nIHRoZSBjb3JyZWN0 IGRpcmVjdG9yeSBhdAotICAgIHJ1bnRpbWUuCi0gICAgCi0gICAgVGVzdGVkIGJvdGggd2l0aCBh bmQgd2l0aG91dCBHREJfUEFSQUxMRUwgb24geDg2LTY0IEZlZG9yYSAxOC4KLSAgICAKLSAgICAy MDEzLTExLTA0ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+Ci0gICAgCi0gICAgCSog Z2RiLmJhc2UvYXJndjAtc3ltbGluay5leHA6IENvbXB1dGUgZXhlY3V0YWJsZSdzIGRpcmVjdG9y eQotICAgIAlkeW5hbWljYWxseS4KLQotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMj IyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSw1ICsxLDEwIEBACi0gMjAxMy0xMS0w NCAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgotIAotKwkqIGdkYi5iYXNlL2FyZ3Yw LXN5bWxpbmsuZXhwOiBDb21wdXRlIGV4ZWN1dGFibGUncyBkaXJlY3RvcnkKLSsJZHluYW1pY2Fs bHkuCi0rCi0rMjAxMy0xMS0wNCAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29tPgotKwot IAkqIGdkYi5hc20vYXNtLXNvdXJjZS5leHA6IFVzZSBzdGFuZGFyZF9vdXRwdXRfZmlsZS4KLSAK LSAyMDEzLTExLTA0ICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+Ci0tLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwCi1AQCAtMzcsNyArMzcsMTQgQEAgaWYgIVtydW50 b19tYWluXSB7Ci0gfQotIAotIGdkYl90ZXN0IHtwcmludCBhcmd2WzBdfSAiLyRmaWxlbGlua1wi IiAkdGVzdAotLWdkYl90ZXN0ICJpbmZvIGluZmVyaW9ycyIgIi8kc3ViZGlyLyRmaWxlbGluayAq IiAiJHRlc3QgZm9yIGluZm8gaW5mZXJpb3JzIgorIyMgLTEsMyArMSw4IEBACisrMjAxNC0wMi0w NiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgogKwotKyMgRm9y IGEgbGluayBuYW1lZCAvUEFUSC9UTy9ESVIvTElOSywgd2Ugd2FudCB0byBjaGVjayB0aGUgb3V0 cHV0Ci0rIyBhZ2FpbnN0ICIvRElSL0xJTksiLCBidXQgY29tcHV0ZWQgaW4gYSB3YXkgdGhhdCBk b2Vzbid0IG1ha2UKLSsjIGFzc3VtcHRpb25zIGFib3V0IHRoZSB0ZXN0IGRpcmVjdG9yeSBsYXlv dXQuCi0rc2V0IGZ1bGxfZmlsZWxpbmsgW3N0YW5kYXJkX291dHB1dF9maWxlICRmaWxlbGlua10K LStzZXQgbGFzdGRpciBbZmlsZSB0YWlsIFtmaWxlIGRpcm5hbWUgJGZ1bGxfZmlsZWxpbmtdXQor KwlGaXggaTM4Ni1zc2Utc3RhY2stYWxpZ24uZXhwIHJlZ3Jlc3Npb24gc2luY2UgR0RCX1BBUkFM TEVMLgorKwkqIGdkYi5hcmNoL2kzODYtc3NlLXN0YWNrLWFsaWduLmV4cDogVXNlIHN0YW5kYXJk X291dHB1dF9maWxlLgogKwotK2dkYl90ZXN0ICJpbmZvIGluZmVyaW9ycyIgIi8kbGFzdGRpci8k ZmlsZWxpbmsgKiIgIiR0ZXN0IGZvciBpbmZvIGluZmVyaW9ycyIKKyAyMDE0LTAyLTA2ICBEb3Vn IEV2YW5zICA8eGRqZTQyQGdtYWlsLmNvbT4KICAKKyAJKiBnZGIucHl0aG9uL3B5LWJyZWFrcG9p bnQuZXhwICh0ZXN0X2JrcHRfZXZhbF9mdW5jcyk6IFVwZGF0ZSBleHBlY3RlZAorZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni1zc2Utc3RhY2stYWxpZ24uZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXNzZS1zdGFjay1hbGlnbi5leHAKK2luZGV4IGI1YTdl MWUuLjQ2MmRmMWYgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtc3Nl LXN0YWNrLWFsaWduLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXNzZS1z dGFjay1hbGlnbi5leHAKK0BAIC0yMiw3ICsyMiw3IEBAIHNldCB0ZXN0ZmlsZSAiaTM4Ni1zc2Ut c3RhY2stYWxpZ24iCisgc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uUworIHNldCBjc3JjZmlsZSAk e3Rlc3RmaWxlfS5jCisgc2V0IGV4ZWN1dGFibGUgJHt0ZXN0ZmlsZX0KKy1zZXQgYmluZmlsZSAk e29iamRpcn0vJHtzdWJkaXJ9LyR7ZXhlY3V0YWJsZX0KKytzZXQgYmluZmlsZSBbc3RhbmRhcmRf b3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfV0KKyBzZXQgb3B0cyB7fQogIAotIHNldCB0ZXN0ICJr ZXB0IGRpcmVjdG9yeSBzeW1ib2xpYyBsaW5rIG5hbWUiCi1AQCAtNjUsNCArNzIsNCBAQCBpZiAh W2lzX3JlbW90ZSB0YXJnZXRdIHsKLSAgICAgc2V0dXBfa2ZhaWwgIiotKi0qIiBnZGIvMTU5MzQK LSB9Ci0gZ2RiX3Rlc3Qge3ByaW50IGFyZ3ZbMF19ICIvJGRpcmxpbmsvJGZpbGVsaW5rXCIiICR0 ZXN0Ci0tZ2RiX3Rlc3QgImluZm8gaW5mZXJpb3JzIiAiLyRzdWJkaXIvJGZpbGVsaW5rICoiICIk dGVzdCBmb3IgaW5mbyBpbmZlcmlvcnMiCi0rZ2RiX3Rlc3QgImluZm8gaW5mZXJpb3JzIiAiLyRs YXN0ZGlyLyRmaWxlbGluayAqIiAiJHRlc3QgZm9yIGluZm8gaW5mZXJpb3JzIgotCi0KLQotaHR0 cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDEvbXNnMDA3MjIuaHRtbAot U3ViamVjdDogW3BhdGNoXSBGaXggZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAgRkFJTCBpbiBs b25nIGRpcnBhdGgKLQotCi0tLVZiSmtuOVl4QnZudUNINUoKLUNvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD11cy1hc2NpaQotQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCi0KLUhp LAotCi13aGVuIHlvdSBidWlsZCBHREIgaW4gYSB2ZXJ5IGxvbmcgZGlyZWN0b3J5IHBhdGhuYW1l IGl0IHdpbGw6Ci0KLShnZGIpIHByaW50IGFyZ3ZbMF0KLSQxID0gMHg3ZmZmZmZmZmRiMDcgIi9o b21lL2prcmF0b2NoL3JlZGhhdC8iLCAneCcgPHJlcGVhdHMgMTc4IHRpbWVzPi4uLgotKGdkYikg RkFJTDogZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHA6IGtlcHQgZmlsZSBzeW1ib2xpYyBsaW5r IG5hbWUKLQotV2l0aCB0aGUgZml4OgotCi0oZ2RiKSBwcmludCBhcmd2WzBdCi0kMSA9IDB4N2Zm ZmZmZmZkYjA3ICIvaG9tZS9qa3JhdG9jaC9yZWRoYXQveHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4 L2dkYi10ZXN0L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay1maWxlbGluayIK LShnZGIpIFBBU1M6IGdkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwOiBrZXB0IGZpbGUgc3ltYm9s aWMgbGluayBuYW1lCi0KLVRoZSAic2V0IHByaW50IHJlcGVhdHMgdW5saW1pdGVkIiBwYXJ0IGlz IHRoZXJlIHRvIHByZXZlbnQgdGhlIGZvbGxvd2luZwotb3V0cHV0LCBpdCB3b3VsZCBzdGlsbCBQ QVNTIChhcyBvbmx5IGl0cyB0YWlsIGlzIG1hdGNoZWQpIGJ1dCBpdCBpcyBub3QgbXVjaAotY29y cmVjdC4KLQotKGdkYikgcHJpbnQgYXJndlswXQotJDEgPSAweDdmZmZmZmZmZGIwNyAiL2hvbWUv amtyYXRvY2gvcmVkaGF0LyIsICd4JyA8cmVwZWF0cyAxOTUgdGltZXM+LCAiL2dkYi10ZXN0L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay1maWxlbGluayIKLShnZGIpIFBBU1M6 IGdkYi5iYXNlL2FyZ3YwLXN5bWxpbmsuZXhwOiBrZXB0IGZpbGUgc3ltYm9saWMgbGluayBuYW1l Ci0KLUkgd2lsbCBjaGVjayBpdCBpbi4KLQotVGVzdGVkIG9uIHg4Nl82NC1mZWRvcmEyMC1saW51 eC1nbnUuCi0KLQotSmFuCi0KLS0tVmJKa245WXhCdm51Q0g1SgotQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZp bGVuYW1lPSJhcmd2MC5wYXRjaCIKLQotZ2RiL3Rlc3RzdWl0ZS8KLTIwMTQtMDEtMTkgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCUZpeCBnZGIuYmFzZS9h cmd2MC1zeW1saW5rLmV4cCBGQUlMIGluIGxvbmcgZGlycGF0aC4KLQkqIGdkYi5iYXNlL2FyZ3Yw LXN5bWxpbmsuZXhwIChlbGVtZW50cyBmaXJzdCwgcmVwZWF0cyBmaXJzdCkKLQkoZWxlbWVudHMg c2Vjb25kLCByZXBlYXRzIHNlY29uZCk6IE5ldy4KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvYXJndjAtc3ltbGluay5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Fy Z3YwLXN5bWxpbmsuZXhwCi1pbmRleCAwZTAyMDJkLi43YmY1YzJmIDEwMDY0NAotLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9hcmd2MC1zeW1saW5rLmV4cAotQEAgLTM2LDYgKzM2LDEwIEBAIGlmICFbcnVu dG9fbWFpbl0gewotICAgICByZXR1cm4gLTEKLSB9Ci0gCi0rIyBWZXJ5IGxvbmcgZGlyZWN0b3J5 IHBhdGhzIGNvdWxkIGJlIGN1dCBiZWxvdy4KLStnZGJfdGVzdF9ub19vdXRwdXQgInNldCBwcmlu dCBlbGVtZW50cyB1bmxpbWl0ZWQiICJlbGVtZW50cyBmaXJzdCIKLStnZGJfdGVzdF9ub19vdXRw dXQgInNldCBwcmludCByZXBlYXRzIHVubGltaXRlZCIgInJlcGVhdHMgZmlyc3QiCi0rCi0gZ2Ri X3Rlc3Qge3ByaW50IGFyZ3ZbMF19ICIvJGZpbGVsaW5rXCIiICR0ZXN0Ci0gCi0gIyBGb3IgYSBs aW5rIG5hbWVkIC9QQVRIL1RPL0RJUi9MSU5LLCB3ZSB3YW50IHRvIGNoZWNrIHRoZSBvdXRwdXQK LUBAIC02Nyw2ICs3MSwxMCBAQCBpZiAhW3J1bnRvX21haW5dIHsKLSAgICAgcmV0dXJuIC0xCi0g fQotIAotKyMgVmVyeSBsb25nIGRpcmVjdG9yeSBwYXRocyBjb3VsZCBiZSBjdXQgYmVsb3cuCi0r Z2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgcHJpbnQgZWxlbWVudHMgdW5saW1pdGVkIiAiZWxlbWVu dHMgc2Vjb25kIgotK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHByaW50IHJlcGVhdHMgdW5saW1p dGVkIiAicmVwZWF0cyBzZWNvbmQiCi0rCi0gIyBnZGJzZXJ2ZXIgZG9lcyBub3QgaGF2ZSB0aGlz IGlzc3VlLgotIGlmICFbaXNfcmVtb3RlIHRhcmdldF0gewotICAgICBzZXR1cF9rZmFpbCAiKi0q LSoiIGdkYi8xNTkzNAorIGlmIFtpbmZvIGV4aXN0cyBDT01QSUxFXSB7CiAKLS0tVmJKa245WXhC dm51Q0g1Si0tCistLXUzL3JaUm14TDZNbWtLMjQtLQogCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMg Yi9nZGIuc3BlYwppbmRleCA0ZDVhMzBlLi4xYjhmYzRmIDEwMDY0NAotLS0gYS9nZGIuc3BlYwor KysgYi9nZGIuc3BlYwpAQCAtMSw1ICsxLDYgQEAKICMgcnBtYnVpbGQgcGFyYW1ldGVyczoKICMg LS13aXRoIHRlc3RzdWl0ZTogUnVuIHRoZSB0ZXN0c3VpdGUgKGJpYXJjaCBpZiBwb3NzaWJsZSku ICBEZWZhdWx0IGlzIHdpdGhvdXQuCisjIC0td2l0aCBhc2FuOiBnY2MgLWZzYW5pdGl6ZT1hZGRy ZXNzCiAjIC0td2l0aG91dCBweXRob246IE5vIHB5dGhvbiBzdXBwb3J0LgogIyAtLXdpdGggcHJv ZmlsZTogZ2NjIC1mcHJvZmlsZS1nZW5lcmF0ZSAvIC1mcHJvZmlsZS11c2U6IEJlZm9yZSBiZXR0 ZXIKICMgICAgICAgICAgICAgICAgIHdvcmtsb2FkIGdldHMgcnVuIGl0IGRlY3JlYXNlcyB0aGUg Z2VuZXJhbCBwZXJmb3JtYW5jZSBub3cuCkBAIC0yOSwyMiArMzAsMjIgQEAgU3VtbWFyeTogQSBH TlUgc291cmNlLWxldmVsIGRlYnVnZ2VyIGZvciBDLCBDKyssIEZvcnRyYW4sIEdvIGFuZCBvdGhl ciBsYW5ndWFnZXMKIE5hbWU6ICV7P3NjbF9wcmVmaXh9Z2RiCiAKICMgNmU1Yzk1ZTZjZjFlM2Mz N2JkM2E4MjJjYTllNjcyMWNhYWI5N2E4NQotJWdsb2JhbCBzbmFwICAgICAgIDIwMTMwNzMxCisj Z2xvYmFsIHNuYXAgICAgICAgMjAxNDAxMjcKICMgRnJlZXplIGl0IHdoZW4gR0RCIGdldHMgYnJh bmNoZWQKLSVnbG9iYWwgc25hcHNyYyAgICAyMDEzMDczMQorJWdsb2JhbCBzbmFwc3JjICAgIDIw MTQwMTA4CiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291cmNlIGdudWxpYiBpbnN0YWxsZWQgaW50byBn ZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVsaWIgMjAxMjEyMTMKLVZlcnNpb246IDcuNi41 MC4le3NuYXB9CitWZXJzaW9uOiA3LjcKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMg YSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBp cyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29t cGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiAyMCV7P2Rpc3R9CitSZWxlYXNlOiAx JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFu ZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2Misg YW5kIEJTRCBhbmQgUHVibGljIERvbWFpbgogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2Vycwog IyBEbyBub3QgcHJvdmlkZSBVUkwgZm9yIHNuYXBzaG90cyBhcyB0aGUgZmlsZSBsYXN0cyB0aGVy ZSBvbmx5IGZvciAyIGRheXMuCiAjIGZ0cDovL3NvdXJjZXdhcmUub3JnL3B1Yi9nZGIvcmVsZWFz ZXMvZ2RiLSV7dmVyc2lvbn0udGFyLmJ6MgotU291cmNlOiBnZGItJXt2ZXJzaW9ufS1jdnMudGFy LmJ6MgorU291cmNlOiBnZGItJXt2ZXJzaW9ufS50YXIuYnoyCiBCdWlsZHJvb3Q6ICUobWt0ZW1w IC11ZCAle190bXBwYXRofS8le25hbWV9LSV7dmVyc2lvbn0tJXtyZWxlYXNlfS1YWFhYWFgpCiBV Ukw6IGh0dHA6Ly9nbnUub3JnL3NvZnR3YXJlL2dkYi8KIApAQCAtNTMsNyArNTQsNyBAQCBPYnNv bGV0ZXM6IGRldnRvb2xzZXQtMS4wLSV7cGtnX25hbWV9CiAlZW5kaWYKIAogIyBGb3Igb3VyIGNv bnZlbmllbmNlCi0lZ2xvYmFsIGdkYl9zcmMgJXtwa2dfbmFtZX0tJXt2ZXJzaW9ufS1jdnMKKyVn bG9iYWwgZ2RiX3NyYyAle3BrZ19uYW1lfS0le3ZlcnNpb259CiAlZ2xvYmFsIGdkYl9idWlsZCBi dWlsZC0le190YXJnZXRfcGxhdGZvcm19CiAKICMgTWFrZSBzdXJlIHdlIGdldCByaWQgb2YgdGhl IG9sZCBwYWNrYWdlIGdkYjY0LCBub3cgdGhhdCB3ZSBoYXZlIHVuaWZpZWQKQEAgLTI5NywxMCAr Mjk4LDYgQEAgUGF0Y2gyODI6IGdkYi02LjctY2hhcnNpZ24tdGVzdC5wYXRjaAogIz1mZWRvcmF0 ZXN0K3BwYwogUGF0Y2gyODQ6IGdkYi02LjctcHBjLWNsb2JiZXJlZC1yZWdpc3RlcnMtTzItdGVz dC5wYXRjaAogCi0jIFRlc3RzdWl0ZSBmaXhlcyBmb3IgbW9yZSBzdGFibGUvY29tcGFyYWJsZSBy ZXN1bHRzLgotIz1mZWRvcmF0ZXN0Ci1QYXRjaDI4NzogZ2RiLTYuNy10ZXN0c3VpdGUtc3RhYmxl LXJlc3VsdHMucGF0Y2gKLQogIyBUZXN0IGlhNjQgbWVtb3J5IGxlYWtzIG9mIHRoZSBjb2RlIHVz aW5nIGxpYnVud2luZC4KICM9ZmVkb3JhdGVzdAogUGF0Y2gyODk6IGdkYi02LjUtaWE2NC1saWJ1 bndpbmQtbGVhay10ZXN0LnBhdGNoCkBAIC01MjQsMTMgKzUyMSwxMSBAQCBQYXRjaDgzMjogZ2Ri LXJoYno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJhbWUtZmFpbGVkLXRlc3RjYXNlLnBhdGNo CiAjIEZpeCBjcmFzaCBvbiAnZW5hYmxlIGNvdW50JyAoU2ltb24gTWFyY2hpLCBCWiA5OTMxMTgp LgogUGF0Y2g4NDM6IGdkYi1lbmFibGUtY291bnQtY3Jhc2gucGF0Y2gKIAotIyBGaXggdGhlIGNh c2Ugd2hlbiBHREIgbGVha3MgbWVtb3J5IGJlY2F1c2UgdmFsdWVfc3RydWN0X2VsdAotIyBkb2Vz IG5vdCBjYWxsIGNoZWNrX3R5cGVkZWYuICAoRG91ZyBFdmFucywgQlogMTU2OTUsIGZpbGVkIGFz Ci0jIFJIIEJaIDEwMTM0NTMpLgotUGF0Y2g4NDQ6IGdkYi1yaGJ6MTAxMzQ1My12YWx1ZS1zdHJ1 Y3QtZWx0LW1lbW9yeS1sZWFrLnBhdGNoCisjIEZpeCB0ZXN0c3VpdGUgIkVSUk9SOiBubyBmaWxl aWQgZm9yIi4KK1BhdGNoODQ2OiBnZGItdGVzdHN1aXRlLW5vaG9zdGlkLnBhdGNoCiAKLSMgRml4 IGV4cGxpY2l0IENsYXNzOjogaW5zaWRlIGNsYXNzIHNjb3BlIChCWiA4NzQ4MTcsIEtlaXRoIFNl aXR6KS4KLVBhdGNoODQ1OiBnZGItaW1wbGljaXQtdGhpcy5wYXRjaAorIyBGaXggUHl0aG9uIHN0 YWNrIGNvcnJ1cHRpb24uCitQYXRjaDg0NzogZ2RiLXB5dGhvbi1zdGFja3NtYXNoLnBhdGNoCiAK ICVpZiAwJXshP3JoZWw6MX0gfHwgMCV7P3JoZWx9ID4gNgogIyBSTF9TVEFURV9GRURPUkFfR0RC IHdvdWxkIG5vdCBiZSBmb3VuZCBmb3I6CkBAIC03NzEsNyArNzY2LDYgQEAgZmluZCAtbmFtZSAi Ki5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDI3NiAtcDEKICVwYXRjaDI4MiAtcDEKICVwYXRj aDI4NCAtcDEKLSVwYXRjaDI4NyAtcDEKICVwYXRjaDI4OSAtcDEKICVwYXRjaDI5MCAtcDEKICVw YXRjaDI5NCAtcDEKQEAgLTgyNiw4ICs4MjAsOCBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJn cyBybSAtZgogJXBhdGNoODE4IC1wMQogJXBhdGNoODMyIC1wMQogJXBhdGNoODQzIC1wMQotJXBh dGNoODQ0IC1wMQotJXBhdGNoODQ1IC1wMQorJXBhdGNoODQ2IC1wMQorJXBhdGNoODQ3IC1wMQog CiAlcGF0Y2gzOTMgLXAxCiAlaWYgMCV7IT9lbDU6MX0gfHwgMCV7P3NjbDoxfQpAQCAtODkzLDgg Kzg4Nyw4IEBAIGRvCiBta2RpciAle2dkYl9idWlsZH0kZnByb2ZpbGUKIGNkICV7Z2RiX2J1aWxk fSRmcHJvZmlsZQogCi1leHBvcnQgQ0ZMQUdTPSIkUlBNX09QVF9GTEFHUyIKLWV4cG9ydCBMREZM QUdTPSIlez9fX2dsb2JhbF9sZGZsYWdzfSIKK2V4cG9ydCBDRkxBR1M9IiRSUE1fT1BUX0ZMQUdT ICV7P193aXRoX2FzYW46LWZzYW5pdGl6ZT1hZGRyZXNzfSIKK2V4cG9ydCBMREZMQUdTPSIlez9f X2dsb2JhbF9sZGZsYWdzfSAlez9fd2l0aF9hc2FuOi1mc2FuaXRpemU9YWRkcmVzc30iCiAKICMg LS1odG1sZGlyIGFuZCAtLXBkZmRpciBhcmUgbm90IHVzZWQgYXMgdGhleSBhcmUgdXNlZCBmcm9t ICV7Z2RiX2J1aWxkfS4KIC4uL2NvbmZpZ3VyZQkJCQkJCQlcCkBAIC0xMzQ2LDYgKzEzNDAsMTAg QEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1fSIgPT0gIm5vYXJj aCIKIAogJWNoYW5nZWxvZworKiBGcmkgRmViICA3IDIwMTQgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy43LTEuZmMyMQorLSBSZWJhc2UgdG8gRlNGIEdEQiA3 LjcuCistIE5ldyBycG1idWlsZCBvcHRpb246IC0td2l0aCBhc2FuCisKICogVGh1IEphbiAyMyAy MDE0IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuNi41MC4y MDE0MDExOS0yMC5mYzIwCiAtIFtzMzkwKixwcGMqXSBFbmFibGUgc2Vjb25kYXJ5IHRhcmdldHMg czM5MCogYW5kIHBwYyogKEJaIDEwNTYyNTkpLgogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3Nv dXJjZXMKaW5kZXggMjA1NTE2NC4uMjU2NjBjZiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9z b3VyY2VzCkBAIC0xLDMgKzEsMiBAQAogNDk4MTMwN2FhOTYxOWJiZWM1YjczMjYxZTRlNDFjOGQg IGdkYi1saWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotOGNlNGU3NTc3OTAxMzll M2YwNzY1MmEyYjQ5ZDc5ZmYgIGdkYi03LjYuNTAuMjAxMzA2MjQudGFyLmJ6MgotZjE2YzMzYmRk OWQwMDMwZDBjMmE0MmQ1ZjMxOWY4NDEgIGdkYi03LjYuNTAuMjAxMzA3MzEtY3ZzLnRhci5iejIK KzI3MWExOGY0MTg1OGE3ZTk4YjI4YWU0ZWI5MTI4N2M5ICBnZGItNy43LnRhci5iejIK