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: Matthias Clasen To: git-commits@fedoraproject.org Subject: [rpms/glib2] cve-2026-58016-f44: 2.17.6 Date: Tue, 11 Aug 2026 10:33:52 GMT Message-ID: <178644443239.1.14745375028420012240.rpms-glib2-aa1cbaa92609@fedoraproject.org> List-ID: X-Git-Repo: rpms/glib2 X-Git-Branch: cve-2026-58016-f44 X-Git-Rev: aa1cbaa926095b38b588b0abb251b4cffb73f5a7 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xpYjIKQnJhbmNo IDogY3ZlLTIwMjYtNTgwMTYtZjQ0CkNvbW1pdCA6IGFhMWNiYWE5MjYwOTViMzhiNTg4YjBhYmIy NTFiNGNmZmI3M2Y1YTcKQXV0aG9yIDogTWF0dGhpYXMgQ2xhc2VuIDxtY2xhc2VuQGZlZG9yYXBy b2plY3Qub3JnPgpEYXRlICAgOiAyMDA4LTA4LTA0VDE4OjU2OjM4KzAwOjAwClN0YXRzICA6ICs0 Ly05ODcgaW4gOSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3Jn L3JwbXMvZ2xpYjIvYy9hYTFjYmFhOTI2MDk1YjM4YjU4OGIwYWJiMjUxYjRjZmZiNzNmNWE3P2Jy YW5jaD1jdmUtMjAyNi01ODAxNi1mNDQKCkxvZzoKMi4xNy42CgotLS0KZGlmZiAtLWdpdCBhLy5j dnNpZ25vcmUgYi8uY3ZzaWdub3JlCmluZGV4IDdmYjA2MGEuLjgxZmU4MmIgMTAwNjQ0Ci0tLSBh Ly5jdnNpZ25vcmUKKysrIGIvLmN2c2lnbm9yZQpAQCAtMSArMSBAQAotZ2xpYi0yLjE3LjQudGFy LmJ6MgorZ2xpYi0yLjE3LjYudGFyLmJ6MgoKZGlmZiAtLWdpdCBhL2FwcGluZm8ucGF0Y2ggYi9h cHBpbmZvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjc4YTg3Li4wMDAw MDAwCi0tLSBhL2FwcGluZm8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1k aWZmIC11cCBnbGliLTIuMTYuMy9naW8vZ2Rlc2t0b3BhcHBpbmZvLmMuYXBwaW5mbyBnbGliLTIu MTYuMy9naW8vZ2Rlc2t0b3BhcHBpbmZvLmMKLS0tLSBnbGliLTIuMTYuMy9naW8vZ2Rlc2t0b3Bh cHBpbmZvLmMuYXBwaW5mbwkyMDA4LTA0LTA5IDEwOjU3OjMxLjAwMDAwMDAwMCAtMDQwMAotKysr IGdsaWItMi4xNi4zL2dpby9nZGVza3RvcGFwcGluZm8uYwkyMDA4LTA0LTA5IDEwOjU3OjQzLjAw MDAwMDAwMCAtMDQwMAotQEAgLTE1MTQsNyArMTUxNCw2IEBAIGdfYXBwX2luZm9fY3JlYXRlX2Zy b21fY29tbWFuZGxpbmUgKGNvbnMKLSAgICAgaW5mby0+ZXhlYyA9IGdfc3RyY29uY2F0IChjb21t YW5kbGluZSwgIiAldSIsIE5VTEwpOwotICAgZWxzZQotICAgICBpbmZvLT5leGVjID0gZ19zdHJj b25jYXQgKGNvbW1hbmRsaW5lLCAiICVmIiwgTlVMTCk7Ci0tICBpbmZvLT5jb21tZW50ID0gZ19z dHJkdXBfcHJpbnRmIChfKCJDdXN0b20gZGVmaW5pdGlvbiBmb3IgJXMiKSwgaW5mby0+bmFtZSk7 Ci0gICBpbmZvLT5ub2Rpc3BsYXkgPSBUUlVFOwotICAgaW5mby0+YmluYXJ5ID0gYmluYXJ5X2Zy b21fZXhlYyAoaW5mby0+ZXhlYyk7Ci0gICAKLUBAIC0xNTMwLDYgKzE1MjksNyBAQCBnX2FwcF9p bmZvX2NyZWF0ZV9mcm9tX2NvbW1hbmRsaW5lIChjb25zCi0gICAgICAgaWYgKGluZm8tPm5hbWUg PT0gTlVMTCkKLSAJaW5mby0+bmFtZSA9IGdfc3RyZHVwICgiY3VzdG9tIik7Ci0gICAgIH0KLSsg IGluZm8tPmNvbW1lbnQgPSBnX3N0cmR1cF9wcmludGYgKF8oIkN1c3RvbSBkZWZpbml0aW9uIGZv ciAlcyIpLCBpbmZvLT5uYW1lKTsKLSAgIAotICAgcmV0dXJuIEdfQVBQX0lORk8gKGluZm8pOwot IH0KCmRpZmYgLS1naXQgYS9jcmFzaC5wYXRjaCBiL2NyYXNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBiYTg5NDYyLi4wMDAwMDAwCi0tLSBhL2NyYXNoLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotZGlmZiAtdXAgZ2xpYi0yLjE3LjMvZ2lvL2dkZXNr dG9wYXBwaW5mby5jLmNyYXNoIGdsaWItMi4xNy4zL2dpby9nZGVza3RvcGFwcGluZm8uYwotLS0t IGdsaWItMi4xNy4zL2dpby9nZGVza3RvcGFwcGluZm8uYy5jcmFzaAkyMDA4LTA3LTAzIDE4OjU3 OjQxLjAwMDAwMDAwMCAtMDQwMAotKysrIGdsaWItMi4xNy4zL2dpby9nZGVza3RvcGFwcGluZm8u YwkyMDA4LTA3LTAzIDE4OjU3OjQ3LjAwMDAwMDAwMCAtMDQwMAotQEAgLTI0MSw3ICsyNDEsNiBA QCBnX2Rlc2t0b3BfYXBwX2luZm9fbmV3X2Zyb21fa2V5ZmlsZSAoR0tlCi0gCX0KLSAgICAgICBn X2ZyZWUgKHQpOwotICAgICB9Ci0tICBnX2ZyZWUgKHRyeV9leGVjKTsKLSAKLSAgIGluZm8gPSBn X29iamVjdF9uZXcgKEdfVFlQRV9ERVNLVE9QX0FQUF9JTkZPLCBOVUxMKTsKLSAgIGluZm8tPmZp bGVuYW1lID0gTlVMTDsKCmRpZmYgLS1naXQgYS9nbGliMi5zcGVjIGIvZ2xpYjIuc3BlYwppbmRl eCA1NGFkOGM1Li42OGFiY2FlIDEwMDY0NAotLS0gYS9nbGliMi5zcGVjCisrKyBiL2dsaWIyLnNw ZWMKQEAgLTIsOCArMiw4IEBACiAKIFN1bW1hcnk6IEEgbGlicmFyeSBvZiBoYW5keSB1dGlsaXR5 IGZ1bmN0aW9ucwogTmFtZTogZ2xpYjIKLVZlcnNpb246IDIuMTcuNAotUmVsZWFzZTogNSV7P2Rp c3R9CitWZXJzaW9uOiAyLjE3LjYKK1JlbGVhc2U6IDElez9kaXN0fQogTGljZW5zZTogTEdQTHYy KwogR3JvdXA6IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKIFVSTDogaHR0cDovL3d3dy5n dGsub3JnCkBAIC0yMiwxNiArMjIsNyBAQCBCdWlsZFJlcXVpcmVzOiBnbGliYy1kZXZlbAogIyBo dHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTQ0MjgzNQogUGF0Y2gy OiBnaW8tMi4xNi1vbmx5LXBhc3MtdXJpLXRvLWdpby1hcHBzLnBhdGNoCiAKLSMgaHR0cHM6Ly9i dWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTUyOTY5NAotUGF0Y2gzOiBnaW8tMi4x Ni1zZWxpbnV4LXNldC1zdXBwb3J0LmRpZmYKIAotIyBmaXhlZCBpbiBzdm4KLVBhdGNoNDogc3Rh dGZzLWNoZWNrLnBhdGNoCi0KLSMgaHR0cDovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9NTQ0NTk5ICh1cHN0cmVhbSkgKwotIyBidW1wIHZlcnNpb24gdG8gMi4xNy41IHNpbmNl IGd2ZnMgd2lsbCByZXF1aXJlIHRoaXMgdmVyc2lvbgotIwotUGF0Y2g1OiBnbGliLTIuMTcuNC1n aW8tZ3Vlc3MtY29udGVudC1zeW5jLnBhdGNoCiAjIHRoaXMgcGF0Y2ggcmVxdWlyZXMgYXV0b3Jl Y29uZgogQnVpbGRSZXF1aXJlczogYXV0b2NvbmYgYXV0b21ha2UgbGlidG9vbCBnZXR0ZXh0LWRl dmVsIGd0ay1kb2MKIApAQCAtNjcsOSArNTgsNiBAQCBvZiB2ZXJzaW9uIDIgb2YgdGhlIEdMaWIg bGlicmFyeS4KICVwcmVwCiAlc2V0dXAgLXEgLW4gZ2xpYi0le3ZlcnNpb259CiAlcGF0Y2gyIC1w MSAtYiAub25seS1wYXNzLXVyaS10by1naW8tYXBwcwotJXBhdGNoMyAtcDAgLWIgLnNlbGludXgK LSVwYXRjaDQgLXAxIC1iIC5zdGF0ZnMtY2hlY2sKLSVwYXRjaDUgLXAxIC1iIC5ndWVzcy1jb250 ZW50LXR5cGUtc3luYwogCiAlYnVpbGQKIGF1dG9yZWNvbmYKCmRpZmYgLS1naXQgYS9pbmxpbmUu cGF0Y2ggYi9pbmxpbmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzOGE5 NWMuLjAwMDAwMDAKLS0tIGEvaW5saW5lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAs MCBAQAotZGlmZiAtdXAgZ2xpYi0yLjE1LjYvZ2xpYi9ndXRpbHMuaC5pbmxpbmUgZ2xpYi0yLjE1 LjYvZ2xpYi9ndXRpbHMuaAotLS0tIGdsaWItMi4xNS42L2dsaWIvZ3V0aWxzLmguaW5saW5lCTIw MDgtMDMtMDMgMDk6NDY6NDQuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2xpYi0yLjE1LjYvZ2xpYi9n dXRpbHMuaAkyMDA4LTAzLTAzIDA5OjQ2OjUyLjAwMDAwMDAwMCAtMDUwMAotQEAgLTk3LDcgKzk3 LDExIEBAIEdfQkVHSU5fREVDTFMKLSAjICBkZWZpbmUgR19JTkxJTkVfRlVOQwotICMgIHVuZGVm ICBHX0NBTl9JTkxJTkUKLSAjZWxpZiBkZWZpbmVkIChfX0dOVUNfXykgCi0tIyAgZGVmaW5lIEdf SU5MSU5FX0ZVTkMgc3RhdGljIF9faW5saW5lIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKQotKyMg IGlmZGVmIF9fR05VQ19TVERDX0lOTElORV9fCi0rIyAgIGRlZmluZSBHX0lOTElORV9GVU5DIGV4 dGVybiBpbmxpbmUgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fKSkKLSsjICBlbHNlCi0r IyAgIGRlZmluZSBHX0lOTElORV9GVU5DIGV4dGVybiBpbmxpbmUKLSsjICBlbmRpZgotICNlbGlm IGRlZmluZWQgKEdfQ0FOX0lOTElORSkgCi0gIyAgZGVmaW5lIEdfSU5MSU5FX0ZVTkMgc3RhdGlj IGlubGluZQotICNlbHNlIC8qIGNhbid0IGlubGluZSAqLwoKZGlmZiAtLWdpdCBhL3BjcmU3Ni5w YXRjaCBiL3BjcmU3Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTBkNjJi OC4uMDAwMDAwMAotLS0gYS9wY3JlNzYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4OTUgKzAs MCBAQAotZGlmZiAtdXAgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2V0LmMucHJjZS03LjYg Z2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2V0LmMKLS0tLSBnbGliLTIuMTUuNC9nbGliL3Bj cmUvcGNyZV9nZXQuYy5wcmNlLTcuNgkyMDA4LTAyLTA3IDA5OjMyOjA5LjAwMDAwMDAwMCAtMDUw MAotKysrIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2dldC5jCTIwMDgtMDItMDcgMDk6MzI6 NDYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNiw3ICs2LDcgQEAKLSBhbmQgc2VtYW50aWNzIGFyZSBh cyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgotIAot ICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLS0gICAgICAg ICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0rICAg ICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQot IAotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1kaWZmIC11cCBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV92YWxpZF91dGY4LmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3BjcmVfdmFsaWRfdXRmOC5jCi1kaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNy ZV90YWJsZXMuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV90YWJsZXMuYwot LS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3RhYmxlcy5jLnByY2UtNy42CTIwMDgtMDIt MDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3Bj cmVfdGFibGVzLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKLUBAIC02LDcg KzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3Nl IG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0gCi0gICAgICAgICAgICAgICAgICAgICAgICBXcml0 dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcg VW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0y MDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBS ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQKLWRpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX21ha2V0YWJsZXMu Yy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9tYWtldGFibGVzLmMKLS0tLSBn bGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9tYWtldGFibGVzLmMucHJjZS03LjYJMjAwOC0wMi0w NyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKLSsrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNy ZV9tYWtldGFibGVzLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKLUBAIC02 LDcgKzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRo b3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0gCi0gICAgICAgICAgICAgICAgICAgICAgICBX cml0dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIw MDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5 Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo IG9yIHdpdGhvdXQKLWRpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3N0dWR5LmMu cHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfc3R1ZHkuYwotLS0tIGdsaWItMi4x NS40L2dsaWIvcGNyZS9wY3JlX3N0dWR5LmMucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4w MDAwMDAwMDAgLTA1MDAKLSsrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9zdHVkeS5jCTIw MDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNiw3ICs2LDcgQEAKLSBhbmQg c2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1 IGxhbmd1YWdlLgotIAotICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAg SGF6ZWwKLS0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2Yg Q2FtYnJpZGdlCi0rICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5 IG9mIENhbWJyaWRnZQotIAotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1kaWZm IC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvdWNwaW50ZXJuYWwuaC5wcmNlLTcuNiBnbGliLTIu MTUuNC9nbGliL3BjcmUvdWNwaW50ZXJuYWwuaAotZGlmZiAtdXAgZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3BjcmVfZGZhX2V4ZWMuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9k ZmFfZXhlYy5jCi0tLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZGZhX2V4ZWMuYy5wcmNl LTcuNgkyMDA4LTAyLTA3IDA5OjMyOjA5LjAwMDAwMDAwMCAtMDUwMAotKysrIGdsaWItMi4xNS40 L2dsaWIvcGNyZS9wY3JlX2RmYV9leGVjLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAg LTA1MDAKLUBAIC02LDcgKzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBv c3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0gCi0gICAgICAgICAgICAg ICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAgICAgICAgQ29weXJpZ2h0 IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsgICAgICAgICAgIENvcHly aWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLWRpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9w Y3JlX2NvbXBpbGUuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jb21waWxl LmMKLS0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jb21waWxlLmMucHJjZS03LjYJMjAw OC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKLSsrKyBnbGliLTIuMTUuNC9nbGliL3Bj cmUvcGNyZV9jb21waWxlLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKLUBA IC02LDcgKzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRv IHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0gCi0gICAgICAgICAgICAgICAgICAgICAg ICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3 LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsgICAgICAgICAgIENvcHlyaWdodCAoYykg MTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3 aXRoIG9yIHdpdGhvdXQKLUBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgZXJy b3JfdGV4dHNbXSA9Ci0gICAvKiAxMCAqLwotICAgIm9wZXJhbmQgb2YgdW5saW1pdGVkIHJlcGVh dCBjb3VsZCBtYXRjaCB0aGUgZW1wdHkgc3RyaW5nXDAiICAvKiogREVBRCAqKi8KLSAgICJpbnRl cm5hbCBlcnJvcjogdW5leHBlY3RlZCByZXBlYXRcMCIKLS0gICJ1bnJlY29nbml6ZWQgY2hhcmFj dGVyIGFmdGVyICg/XDAiCi0rICAidW5yZWNvZ25pemVkIGNoYXJhY3RlciBhZnRlciAoPyBvciAo Py1cMCIKLSAgICJQT1NJWCBuYW1lZCBjbGFzc2VzIGFyZSBzdXBwb3J0ZWQgb25seSB3aXRoaW4g YSBjbGFzc1wwIgotICAgIm1pc3NpbmcgKVwwIgotICAgLyogMTUgKi8KLUBAIC0zMDAsNyArMzAw LDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JfdGV4dHNbXSA9Ci0gICAiKCpWRVJCKSB3aXRo IGFuIGFyZ3VtZW50IGlzIG5vdCBzdXBwb3J0ZWRcMCIKLSAgIC8qIDYwICovCi0gICAiKCpWRVJC KSBub3QgcmVjb2duaXplZFwwIgotLSAgIm51bWJlciBpcyB0b28gYmlnIjsKLSsgICJudW1iZXIg aXMgdG9vIGJpZ1wwIgotKyAgInN1YnBhdHRlcm4gbmFtZSBleHBlY3RlZFwwIgotKyAgImRpZ2l0 IGV4cGVjdGVkIGFmdGVyICg/KyI7Ci0gCi0gCi0gLyogRGVmaW5pdGlvbiB0byBhbGxvdyBtdXR1 YWwgcmVjdXJzaW9uICovCi1AQCAtMzcyLDE5ICszNzQsMTMgQEAgcHRyLS07ICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIFNldAotIAotIGlmIChjID09IDApICplcnJvcmNvZGVwdHIgPSBF UlIxOwotIAotLS8qIE5vbi1hbHBoYW1lcmljcyBhcmUgbGl0ZXJhbHMuIEZvciBkaWdpdHMgb3Ig bGV0dGVycywgZG8gYW4gaW5pdGlhbCBsb29rdXAgaW4KLS1hIHRhYmxlLiBBIG5vbi16ZXJvIHJl c3VsdCBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW1tZWRpYXRlbHkuCi0rLyog Tm9uLWFscGhhbnVtZXJpY3MgYXJlIGxpdGVyYWxzLiBGb3IgZGlnaXRzIG9yIGxldHRlcnMsIGRv IGFuIGluaXRpYWwgbG9va3VwCi0raW4gYSB0YWJsZS4gQSBub24temVybyByZXN1bHQgaXMgc29t ZXRoaW5nIHRoYXQgY2FuIGJlIHJldHVybmVkIGltbWVkaWF0ZWx5LgotIE90aGVyd2lzZSBmdXJ0 aGVyIHByb2Nlc3NpbmcgbWF5IGJlIHJlcXVpcmVkLiAqLwotIAotLSNpZm5kZWYgRUJDRElDICAv KiBBU0NJSSBjb2RpbmcgKi8KLS1lbHNlIGlmIChjIDwgJzAnIHx8IGMgPiAneicpIHt9ICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogTm90IGFscGhhbWVyaWMgKi8KLStlbHNlIGlmIChjIDwg JzAnIHx8IGMgPiAneicpIHt9ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTm90IGFscGhh bnVtZXJpYyAqLwotIGVsc2UgaWYgKChpID0gZXNjYXBlc1tjIC0gJzAnXSkgIT0gMCkgYyA9IGk7 Ci0gCi0tI2Vsc2UgICAgICAgICAgIC8qIEVCQ0RJQyBjb2RpbmcgKi8KLS1lbHNlIGlmIChjIDwg J2EnIHx8IChlYmNkaWNfY2hhcnRhYltjXSAmIDB4MEUpID09IDApIHt9ICAgLyogTm90IGFscGhh bWVyaWMgKi8KLS1lbHNlIGlmICgoaSA9IGVzY2FwZXNbYyAtIDB4NDhdKSAhPSAwKSAgYyA9IGk7 Ci0tI2VuZGlmCi0tCi0gLyogRXNjYXBlcyB0aGF0IG5lZWQgZnVydGhlciBwcm9jZXNzaW5nLCBv ciBhcmUgaWxsZWdhbC4gKi8KLSAKLSBlbHNlCi1AQCAtNTk4LDEwICs1OTQsMTAgQEAgZWxzZQot ICAgICBicmVhazsKLSAKLSAgICAgLyogUENSRV9FWFRSQSBlbmFibGVzIGV4dGVuc2lvbnMgdG8g UGVybCBpbiB0aGUgbWF0dGVyIG9mIGVzY2FwZXMuIEFueQotLSAgICBvdGhlciBhbHBoYW1lcmlj IGZvbGxvd2luZyBcIGlzIGFuIGVycm9yIGlmIFBDUkVfRVhUUkEgd2FzIHNldDsgb3RoZXJ3aXNl LAotLSAgICBmb3IgUGVybCBjb21wYXRpYmlsaXR5LCBpdCBpcyBhIGxpdGVyYWwuIFRoaXMgY29k ZSBsb29rcyBhIGJpdCBvZGQsIGJ1dAotLSAgICB0aGVyZSB1c2VkIHRvIGJlIHNvbWUgY2FzZXMg b3RoZXIgdGhhbiB0aGUgZGVmYXVsdCwgYW5kIHRoZXJlIG1heSBiZSBhZ2FpbgotLSAgICBpbiBm dXR1cmUsIHNvIEkgaGF2ZW4ndCAib3B0aW1pemVkIiBpdC4gKi8KLSsgICAgb3RoZXIgYWxwaGFu dW1lcmljIGZvbGxvd2luZyBcIGlzIGFuIGVycm9yIGlmIFBDUkVfRVhUUkEgd2FzIHNldDsKLSsg ICAgb3RoZXJ3aXNlLCBmb3IgUGVybCBjb21wYXRpYmlsaXR5LCBpdCBpcyBhIGxpdGVyYWwuIFRo aXMgY29kZSBsb29rcyBhIGJpdAotKyAgICBvZGQsIGJ1dCB0aGVyZSB1c2VkIHRvIGJlIHNvbWUg Y2FzZXMgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCwgYW5kIHRoZXJlIG1heQotKyAgICBiZSBhZ2Fp biBpbiBmdXR1cmUsIHNvIEkgaGF2ZW4ndCAib3B0aW1pemVkIiBpdC4gKi8KLSAKLSAgICAgZGVm YXVsdDoKLSAgICAgaWYgKChvcHRpb25zICYgUENSRV9FWFRSQSkgIT0gMCkgc3dpdGNoKGMpCi1A QCAtMTM4Miw4ICsxMzc4LDkgQEAgZm9yICg7OykKLSBjYW4gbWF0Y2ggdGhlIGVtcHR5IHN0cmlu ZyBvciBub3QuIEl0IGlzIGNhbGxlZCBmcm9tIGNvdWxkX2JlX2VtcHR5KCkKLSBiZWxvdyBhbmQg ZnJvbSBjb21waWxlX2JyYW5jaCgpIHdoZW4gY2hlY2tpbmcgZm9yIGFuIHVubGltaXRlZCByZXBl YXQgb2YgYQotIGdyb3VwIHRoYXQgY2FuIG1hdGNoIG5vdGhpbmcuIE5vdGUgdGhhdCBmaXJzdF9z aWduaWZpY2FudF9jb2RlKCkgc2tpcHMgb3ZlcgotLWFzc2VydGlvbnMuIElmIHdlIGhpdCBhbiB1 bmNsb3NlZCBicmFja2V0LCB3ZSByZXR1cm4gImVtcHR5IiAtIHRoaXMgbWVhbnMgd2UndmUKLS1z dHJ1Y2sgYW4gaW5uZXIgYnJhY2tldCB3aG9zZSBjdXJyZW50IGJyYW5jaCB3aWxsIGFscmVhZHkg aGF2ZSBiZWVuIHNjYW5uZWQuCi0rYmFja3dhcmQgYW5kIG5lZ2F0aXZlIGZvcndhcmQgYXNzZXJ0 aW9ucyB3aGVuIGl0cyBmaW5hbCBhcmd1bWVudCBpcyBUUlVFLiBJZiB3ZQotK2hpdCBhbiB1bmNs b3NlZCBicmFja2V0LCB3ZSByZXR1cm4gImVtcHR5IiAtIHRoaXMgbWVhbnMgd2UndmUgc3RydWNr IGFuIGlubmVyCi0rYnJhY2tldCB3aG9zZSBjdXJyZW50IGJyYW5jaCB3aWxsIGFscmVhZHkgaGF2 ZSBiZWVuIHNjYW5uZWQuCi0gCi0gQXJndW1lbnRzOgotICAgY29kZSAgICAgICAgcG9pbnRzIHRv IHN0YXJ0IG9mIHNlYXJjaAotQEAgLTE0MDUsNiArMTQwMiwxNiBAQCBmb3IgKGNvZGUgPSBmaXJz dF9zaWduaWZpY2FudF9jb2RlKGNvZGUgCi0gCi0gICBjID0gKmNvZGU7Ci0gCi0rICAvKiBTa2lw IG92ZXIgZm9yd2FyZCBhc3NlcnRpb25zOyB0aGUgb3RoZXIgYXNzZXJ0aW9ucyBhcmUgc2tpcHBl ZCBieQotKyAgZmlyc3Rfc2lnbmlmaWNhbnRfY29kZSgpIHdpdGggYSBUUlVFIGZpbmFsIGFyZ3Vt ZW50LiAqLwotKwotKyAgaWYgKGMgPT0gT1BfQVNTRVJUKQotKyAgICB7Ci0rICAgIGRvIGNvZGUg Kz0gR0VUKGNvZGUsIDEpOyB3aGlsZSAoKmNvZGUgPT0gT1BfQUxUKTsKLSsgICAgYyA9ICpjb2Rl OwotKyAgICBjb250aW51ZTsKLSsgICAgfQotKwotICAgLyogR3JvdXBzIHdpdGggemVybyByZXBl YXRzIGNhbiBvZiBjb3Vyc2UgYmUgZW1wdHk7IHNraXAgdGhlbS4gKi8KLSAKLSAgIGlmIChjID09 IE9QX0JSQVpFUk8gfHwgYyA9PSBPUF9CUkFNSU5aRVJPKQotQEAgLTE2MDAsMjkgKzE2MDcsNDgg QEAgcmV0dXJuIFRSVUU7Ci0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KLSAKLSAvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHRoZSBzZXF1 ZW5jZSAiWzoiIG9yICJbLiIgb3IgIls9IiBpcwotLWVuY291bnRlcmVkIGluIGEgY2hhcmFjdGVy IGNsYXNzLiBJdCBjaGVja3Mgd2hldGhlciB0aGlzIGlzIGZvbGxvd2VkIGJ5IGFuCi0tb3B0aW9u YWwgXiBhbmQgdGhlbiBhIHNlcXVlbmNlIG9mIGxldHRlcnMsIHRlcm1pbmF0ZWQgYnkgYSBtYXRj aGluZyAiOl0iIG9yCi0tIi5dIiBvciAiPV0iLgotK2VuY291bnRlcmVkIGluIGEgY2hhcmFjdGVy IGNsYXNzLiBJdCBjaGVja3Mgd2hldGhlciB0aGlzIGlzIGZvbGxvd2VkIGJ5IGEKLStzZXF1ZW5j ZSBvZiBjaGFyYWN0ZXJzIHRlcm1pbmF0ZWQgYnkgYSBtYXRjaGluZyAiOl0iIG9yICIuXSIgb3Ig Ij1dIi4gSWYgd2UKLStyZWFjaCBhbiB1bmVzY2FwZWQgJ10nIHdpdGhvdXQgdGhlIHNwZWNpYWwg cHJlY2VkaW5nIGNoYXJhY3RlciwgcmV0dXJuIEZBTFNFLgotKwotK09yaWdpbmFsbHksIHRoaXMg ZnVuY3Rpb24gb25seSByZWNvZ25pemVkIGEgc2VxdWVuY2Ugb2YgbGV0dGVycyBiZXR3ZWVuIHRo ZQotK3Rlcm1pbmF0b3JzLCBidXQgaXQgc2VlbXMgdGhhdCBQZXJsIHJlY29nbml6ZXMgYW55IHNl cXVlbmNlIG9mIGNoYXJhY3RlcnMsCi0rdGhvdWdoIG9mIGNvdXJzZSB1bmtub3duIFBPU0lYIG5h bWVzIGFyZSBzdWJzZXF1ZW50bHkgcmVqZWN0ZWQuIFBlcmwgZ2l2ZXMgYW4KLSsiVW5rbm93biBQ T1NJWCBjbGFzcyIgZXJyb3IgZm9yIFs6ZlxvbzpdIGZvciBleGFtcGxlLCB3aGVyZSBwcmV2aW91 c2x5IFBDUkUKLStkaWRuJ3QgY29uc2lkZXIgdGhpcyB0byBiZSBhIFBPU0lYIGNsYXNzLiBMaWtl d2lzZSBmb3IgWzoxMjM0Ol0uCi0rCi0rVGhlIHByb2JsZW0gaW4gdHJ5aW5nIHRvIGJlIGV4YWN0 bHkgbGlrZSBQZXJsIGlzIGluIHRoZSBoYW5kbGluZyBvZiBlc2NhcGVzLiBXZQotK2hhdmUgdG8g YmUgc3VyZSB0aGF0IFthYmNbOnhcXXBxcl0gaXMgKm5vdCogdHJlYXRlZCBhcyBjb250YWluaW5n IGEgUE9TSVgKLStjbGFzcywgYnV0IFthYmNbOnhcXXBxcjpdXSBpcyAoc28gdGhhdCBhbiBlcnJv ciBjYW4gYmUgZ2VuZXJhdGVkKS4gVGhlIGNvZGUKLStiZWxvdyBoYW5kbGVzIHRoZSBzcGVjaWFs IGNhc2Ugb2YgXF0sIGJ1dCBkb2VzIG5vdCB0cnkgdG8gZG8gYW55IG90aGVyIGVzY2FwZQotK3By b2Nlc3NpbmcuIFRoaXMgbWFrZXMgaXQgZGlmZmVyZW50IGZyb20gUGVybCBmb3IgY2FzZXMgc3Vj aCBhcyBbOmxcb3dlcjpdCi0rd2hlcmUgUGVybCByZWNvZ25pemVzIGl0IGFzIHRoZSBQT1NJWCBj bGFzcyAibG93ZXIiIGJ1dCBQQ1JFIGRvZXMgbm90IHJlY29nbml6ZQotKyJsXG93ZXIiLiBUaGlz IGlzIGEgbGVzc2VyIGV2aWwgdGhhdCBub3QgZGlhZ25vc2luZyBiYWQgY2xhc3NlcyB3aGVuIFBl cmwgZG9lcywKLStJIHRoaW5rLgotIAotLUFyZ3VtZW50OgotK0FyZ3VtZW50czoKLSAgIHB0ciAg ICAgIHBvaW50ZXIgdG8gdGhlIGluaXRpYWwgWwotICAgZW5kcHRyICAgd2hlcmUgdG8gcmV0dXJu IHRoZSBlbmQgcG9pbnRlcgotLSAgY2QgICAgICAgcG9pbnRlciB0byBjb21waWxlIGRhdGEKLSAK LSBSZXR1cm5zOiAgIFRSVUUgb3IgRkFMU0UKLSAqLwotIAotIHN0YXRpYyBCT09MCi0tY2hlY2tf cG9zaXhfc3ludGF4KGNvbnN0IHVzY2hhciAqcHRyLCBjb25zdCB1c2NoYXIgKiplbmRwdHIsIGNv bXBpbGVfZGF0YSAqY2QpCi0rY2hlY2tfcG9zaXhfc3ludGF4KGNvbnN0IHVzY2hhciAqcHRyLCBj b25zdCB1c2NoYXIgKiplbmRwdHIpCi0gewotIGludCB0ZXJtaW5hdG9yOyAgICAgICAgICAvKiBE b24ndCBjb21iaW5lIHRoZXNlIGxpbmVzOyB0aGUgU29sYXJpcyBjYyAqLwotIHRlcm1pbmF0b3Ig PSAqKCsrcHRyKTsgICAvKiBjb21waWxlciB3YXJucyBhYm91dCAibm9uLWNvbnN0YW50IiBpbml0 aWFsaXplci4gKi8KLS1pZiAoKigrK3B0cikgPT0gJ14nKSBwdHIrKzsKLS13aGlsZSAoKGNkLT5j dHlwZXNbKnB0cl0gJiBjdHlwZV9sZXR0ZXIpICE9IDApIHB0cisrOwotLWlmICgqcHRyID09IHRl cm1pbmF0b3IgJiYgcHRyWzFdID09ICddJykKLStmb3IgKCsrcHRyOyAqcHRyICE9IDA7IHB0cisr KQotICAgewotLSAgKmVuZHB0ciA9IHB0cjsKLS0gIHJldHVybiBUUlVFOwotKyAgaWYgKCpwdHIg PT0gJ1xcJyAmJiBwdHJbMV0gPT0gJ10nKSBwdHIrKzsgZWxzZQotKyAgICB7Ci0rICAgIGlmICgq cHRyID09ICddJykgcmV0dXJuIEZBTFNFOwotKyAgICBpZiAoKnB0ciA9PSB0ZXJtaW5hdG9yICYm IHB0clsxXSA9PSAnXScpCi0rICAgICAgewotKyAgICAgICplbmRwdHIgPSBwdHI7Ci0rICAgICAg cmV0dXJuIFRSVUU7Ci0rICAgICAgfQotKyAgICB9Ci0gICB9Ci0gcmV0dXJuIEZBTFNFOwotIH0K LUBAIC0yMjIwLDYgKzIyNDYsNyBAQCB1c2NoYXIgY2xhc3NiaXRzWzMyXTsKLSBCT09MIGNsYXNz X3V0Zjg7Ci0gQk9PTCB1dGY4ID0gKG9wdGlvbnMgJiBQQ1JFX1VURjgpICE9IDA7Ci0gdXNjaGFy ICpjbGFzc191dGY4ZGF0YTsKLSt1c2NoYXIgKmNsYXNzX3V0ZjhkYXRhX2Jhc2U7Ci0gdXNjaGFy IHV0ZjhfY2hhcls2XTsKLSAjZWxzZQotIEJPT0wgdXRmOCA9IEZBTFNFOwotQEAgLTIyNTksNiAr MjI4Niw3IEBAIHJlcV9jYXNlb3B0ID0gKChvcHRpb25zICYgUENSRV9DQVNFTEVTUykKLSBmb3Ig KDs7IHB0cisrKQotICAgewotICAgQk9PTCBuZWdhdGVfY2xhc3M7Ci0rICBCT09MIHNob3VsZF9m bGlwX25lZ2F0aW9uOwotICAgQk9PTCBwb3NzZXNzaXZlX3F1YW50aWZpZXI7Ci0gICBCT09MIGlz X3F1YW50aWZpZXI7Ci0gICBCT09MIGlzX3JlY3Vyc2U7Ci1AQCAtMjQ4Miw3ICsyNTEwLDcgQEAg Zm9yICg7OyBwdHIrKykKLSAgICAgdGhleSBhcmUgZW5jb3VudGVyZWQgYXQgdGhlIHRvcCBsZXZl bCwgc28gd2UnbGwgZG8gdGhhdCB0b28uICovCi0gCi0gICAgIGlmICgocHRyWzFdID09ICc6JyB8 fCBwdHJbMV0gPT0gJy4nIHx8IHB0clsxXSA9PSAnPScpICYmCi0tICAgICAgICBjaGVja19wb3Np eF9zeW50YXgocHRyLCAmdGVtcHB0ciwgY2QpKQotKyAgICAgICAgY2hlY2tfcG9zaXhfc3ludGF4 KHB0ciwgJnRlbXBwdHIpKQotICAgICAgIHsKLSAgICAgICAqZXJyb3Jjb2RlcHRyID0gKHB0clsx XSA9PSAnOicpPyBFUlIxMyA6IEVSUjMxOwotICAgICAgIGdvdG8gRkFJTEVEOwotQEAgLTI1MDcs NiArMjUzNSwxMiBAQCBmb3IgKDs7IHB0cisrKQotICAgICAgIGVsc2UgYnJlYWs7Ci0gICAgICAg fQotIAotKyAgICAvKiBJZiBhIGNsYXNzIGNvbnRhaW5zIGEgbmVnYXRpdmUgc3BlY2lhbCBzdWNo IGFzIFxTLCB3ZSBuZWVkIHRvIGZsaXAgdGhlCi0rICAgIG5lZ2F0aW9uIGZsYWcgYXQgdGhlIGVu ZCwgc28gdGhhdCBzdXBwb3J0IGZvciBjaGFyYWN0ZXJzID4gMjU1IHdvcmtzCi0rICAgIGNvcnJl Y3RseSAodGhleSBhcmUgYWxsIGluY2x1ZGVkIGluIHRoZSBjbGFzcykuICovCi0rCi0rICAgIHNo b3VsZF9mbGlwX25lZ2F0aW9uID0gRkFMU0U7Ci0rCi0gICAgIC8qIEtlZXAgYSBjb3VudCBvZiBj aGFycyB3aXRoIHZhbHVlcyA8IDI1NiBzbyB0aGF0IHdlIGNhbiBvcHRpbWl6ZSB0aGUgY2FzZQot ICAgICBvZiBqdXN0IGEgc2luZ2xlIGNoYXJhY3RlciAoYXMgbG9uZyBhcyBpdCdzIDwgMjU2KS4g SG93ZXZlciwgRm9yIGhpZ2hlcgotICAgICB2YWx1ZWQgVVRGLTggY2hhcmFjdGVycywgd2UgZG9u J3QgeWV0IGRvIGFueSBvcHRpbWl6YXRpb24uICovCi1AQCAtMjUyNCw2ICsyNTU4LDcgQEAgZm9y ICg7OyBwdHIrKykKLSAjaWZkZWYgU1VQUE9SVF9VVEY4Ci0gICAgIGNsYXNzX3V0ZjggPSBGQUxT RTsgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vIGNoYXJzID49IDI1NiAqLwotICAgICBjbGFz c191dGY4ZGF0YSA9IGNvZGUgKyBMSU5LX1NJWkUgKyAyOyAgICAvKiBGb3IgVVRGLTggaXRlbXMg Ki8KLSsgICAgY2xhc3NfdXRmOGRhdGFfYmFzZSA9IGNsYXNzX3V0ZjhkYXRhOyAgICAgLyogRm9y IHJlc2V0dGluZyBpbiBwYXNzIDEgKi8KLSAjZW5kaWYKLSAKLSAgICAgLyogUHJvY2VzcyBjaGFy YWN0ZXJzIHVudGlsIF0gaXMgcmVhY2hlZC4gQnkgd3JpdGluZyB0aGlzIGFzIGEgImRvIiBpdAot QEAgLTI1MzksNiArMjU3NCwxOCBAQCBmb3IgKDs7IHB0cisrKQotICAgICAgICAgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIEJyYWNlcyBhcmUgcmVxdWlyZWQgYmVjYXVzZSB0aGUgKi8K LSAgICAgICAgIEdFVENIQVJMRU4oYywgcHRyLCBwdHIpOyAgICAvKiBtYWNybyBnZW5lcmF0ZXMg bXVsdGlwbGUgc3RhdGVtZW50cyAqLwotICAgICAgICAgfQotKwotKyAgICAgIC8qIEluIHRoZSBw cmUtY29tcGlsZSBwaGFzZSwgYWNjdW11bGF0ZSB0aGUgbGVuZ3RoIG9mIGFueSBVVEYtOCBleHRy YQotKyAgICAgIGRhdGEgYW5kIHJlc2V0IHRoZSBwb2ludGVyLiBUaGlzIGlzIHNvIHRoYXQgdmVy eSBsYXJnZSBjbGFzc2VzIHRoYXQKLSsgICAgICBjb250YWluIGEgemlsbGlvbiBVVEYtOCBjaGFy YWN0ZXJzIG5vIGxvbmdlciBvdmVyd3JpdGUgdGhlIHdvcmsgc3BhY2UKLSsgICAgICAod2hpY2gg aXMgb24gdGhlIHN0YWNrKS4gKi8KLSsKLSsgICAgICBpZiAobGVuZ3RocHRyICE9IE5VTEwpCi0r ICAgICAgICB7Ci0rICAgICAgICAqbGVuZ3RocHRyICs9IGNsYXNzX3V0ZjhkYXRhIC0gY2xhc3Nf dXRmOGRhdGFfYmFzZTsKLSsgICAgICAgIGNsYXNzX3V0ZjhkYXRhID0gY2xhc3NfdXRmOGRhdGFf YmFzZTsKLSsgICAgICAgIH0KLSsKLSAjZW5kaWYKLSAKLSAgICAgICAvKiBJbnNpZGUgXFEuLi5c RSBldmVyeXRoaW5nIGlzIGxpdGVyYWwgZXhjZXB0IFxFICovCi1AQCAtMjU2Miw3ICsyNjA5LDcg QEAgZm9yICg7OyBwdHIrKykKLSAKLSAgICAgICBpZiAoYyA9PSAnWycgJiYKLSAgICAgICAgICAg KHB0clsxXSA9PSAnOicgfHwgcHRyWzFdID09ICcuJyB8fCBwdHJbMV0gPT0gJz0nKSAmJgotLSAg ICAgICAgICBjaGVja19wb3NpeF9zeW50YXgocHRyLCAmdGVtcHB0ciwgY2QpKQotKyAgICAgICAg ICBjaGVja19wb3NpeF9zeW50YXgocHRyLCAmdGVtcHB0cikpCi0gICAgICAgICB7Ci0gICAgICAg ICBCT09MIGxvY2FsX25lZ2F0ZSA9IEZBTFNFOwotICAgICAgICAgaW50IHBvc2l4X2NsYXNzLCB0 YWJvZmZzZXQsIHRhYm9wdDsKLUBAIC0yNTc5LDYgKzI2MjYsNyBAQCBmb3IgKDs7IHB0cisrKQot ICAgICAgICAgaWYgKCpwdHIgPT0gJ14nKQotICAgICAgICAgICB7Ci0gICAgICAgICAgIGxvY2Fs X25lZ2F0ZSA9IFRSVUU7Ci0rICAgICAgICAgIHNob3VsZF9mbGlwX25lZ2F0aW9uID0gVFJVRTsg IC8qIE5vdGUgbmVnYXRpdmUgc3BlY2lhbCAqLwotICAgICAgICAgICBwdHIrKzsKLSAgICAgICAg ICAgfQotIAotQEAgLTI2NTMsNyArMjcwMSw3IEBAIGZvciAoOzsgcHRyKyspCi0gICAgICAgICBj ID0gY2hlY2tfZXNjYXBlKCZwdHIsIGVycm9yY29kZXB0ciwgY2QtPmJyYWNvdW50LCBvcHRpb25z LCBUUlVFKTsKLSAgICAgICAgIGlmICgqZXJyb3Jjb2RlcHRyICE9IDApIGdvdG8gRkFJTEVEOwot IAotLSAgICAgICAgaWYgKC1jID09IEVTQ19iKSBjID0gJ1xiJzsgICAgICAgLyogXGIgaXMgYmFj a3NsYXNoIGluIGEgY2xhc3MgKi8KLSsgICAgICAgIGlmICgtYyA9PSBFU0NfYikgYyA9ICdcYic7 ICAgICAgIC8qIFxiIGlzIGJhY2tzcGFjZSBpbiBhIGNsYXNzICovCi0gICAgICAgICBlbHNlIGlm ICgtYyA9PSBFU0NfWCkgYyA9ICdYJzsgICAvKiBcWCBpcyBsaXRlcmFsIFggaW4gYSBjbGFzcyAq LwotICAgICAgICAgZWxzZSBpZiAoLWMgPT0gRVNDX1IpIGMgPSAnUic7ICAgLyogXFIgaXMgbGl0 ZXJhbCBSIGluIGEgY2xhc3MgKi8KLSAgICAgICAgIGVsc2UgaWYgKC1jID09IEVTQ19RKSAgICAg ICAgICAgIC8qIEhhbmRsZSBzdGFydCBvZiBxdW90ZWQgc3RyaW5nICovCi1AQCAtMjY4MSw2ICsy NzI5LDcgQEAgZm9yICg7OyBwdHIrKykKLSAgICAgICAgICAgICBjb250aW51ZTsKLSAKLSAgICAg ICAgICAgICBjYXNlIEVTQ19EOgotKyAgICAgICAgICAgIHNob3VsZF9mbGlwX25lZ2F0aW9uID0g VFJVRTsKLSAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykgY2xhc3NiaXRzW2Nd IHw9IH5jYml0c1tjK2NiaXRfZGlnaXRdOwotICAgICAgICAgICAgIGNvbnRpbnVlOwotIAotQEAg LTI2ODksNiArMjczOCw3IEBAIGZvciAoOzsgcHRyKyspCi0gICAgICAgICAgICAgY29udGludWU7 Ci0gCi0gICAgICAgICAgICAgY2FzZSBFU0NfVzoKLSsgICAgICAgICAgICBzaG91bGRfZmxpcF9u ZWdhdGlvbiA9IFRSVUU7Ci0gICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKyspIGNs YXNzYml0c1tjXSB8PSB+Y2JpdHNbYytjYml0X3dvcmRdOwotICAgICAgICAgICAgIGNvbnRpbnVl OwotIAotQEAgLTI2OTgsMTMgKzI3NDgsMTEgQEAgZm9yICg7OyBwdHIrKykKLSAgICAgICAgICAg ICBjb250aW51ZTsKLSAKLSAgICAgICAgICAgICBjYXNlIEVTQ19TOgotKyAgICAgICAgICAgIHNo b3VsZF9mbGlwX25lZ2F0aW9uID0gVFJVRTsKLSAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwg MzI7IGMrKykgY2xhc3NiaXRzW2NdIHw9IH5jYml0c1tjK2NiaXRfc3BhY2VdOwotICAgICAgICAg ICAgIGNsYXNzYml0c1sxXSB8PSAweDA4OyAgICAvKiBQZXJsIDUuMDA0IG9ud2FyZHMgb21pdHMg VlQgZnJvbSBccyAqLwotICAgICAgICAgICAgIGNvbnRpbnVlOwotIAotLSAgICAgICAgICAgIGNh c2UgRVNDX0U6IC8qIFBlcmwgaWdub3JlcyBhbiBvcnBoYW4gXEUgKi8KLS0gICAgICAgICAgICBj b250aW51ZTsKLS0KLSAgICAgICAgICAgICBkZWZhdWx0OiAgICAvKiBOb3QgcmVjb2duaXplZDsg ZmFsbCB0aHJvdWdoICovCi0gICAgICAgICAgICAgYnJlYWs7ICAgICAgLyogTmVlZCAiZGVmYXVs dCIgc2V0dGluZyB0byBzdG9wIGNvbXBpbGVyIHdhcm5pbmcuICovCi0gICAgICAgICAgICAgfQot QEAgLTI5MzksNyArMjk4Nyw3IEBAIGZvciAoOzsgcHRyKyspCi0gICAgICAgICAgIGQgPSBjaGVj a19lc2NhcGUoJnB0ciwgZXJyb3Jjb2RlcHRyLCBjZC0+YnJhY291bnQsIG9wdGlvbnMsIFRSVUUp OwotICAgICAgICAgICBpZiAoKmVycm9yY29kZXB0ciAhPSAwKSBnb3RvIEZBSUxFRDsKLSAKLS0g ICAgICAgICAgLyogXGIgaXMgYmFja3NsYXNoOyBcWCBpcyBsaXRlcmFsIFg7IFxSIGlzIGxpdGVy YWwgUjsgYW55IG90aGVyCi0rICAgICAgICAgIC8qIFxiIGlzIGJhY2tzcGFjZTsgXFggaXMgbGl0 ZXJhbCBYOyBcUiBpcyBsaXRlcmFsIFI7IGFueSBvdGhlcgotICAgICAgICAgICBzcGVjaWFsIG1l YW5zIHRoZSAnLScgd2FzIGxpdGVyYWwgKi8KLSAKLSAgICAgICAgICAgaWYgKGQgPCAwKQotQEAg LTMyMDMsMTEgKzMyNTEsMTQgQEAgd2Ugc2V0IHRoZSBmbGFnIG9ubHkgaWYgdGhlcmUgaXMgYSBs aXRlcgotICAgICB6ZXJvcmVxYnl0ZSA9IHJlcWJ5dGU7Ci0gCi0gICAgIC8qIElmIHRoZXJlIGFy ZSBjaGFyYWN0ZXJzIHdpdGggdmFsdWVzID4gMjU1LCB3ZSBoYXZlIHRvIGNvbXBpbGUgYW4KLS0g ICAgZXh0ZW5kZWQgY2xhc3MsIHdpdGggaXRzIG93biBvcGNvZGUuIElmIHRoZXJlIGFyZSBubyBj aGFyYWN0ZXJzIDwgMjU2LAotLSAgICB3ZSBjYW4gb21pdCB0aGUgYml0bWFwIGluIHRoZSBhY3R1 YWwgY29tcGlsZWQgY29kZS4gKi8KLSsgICAgZXh0ZW5kZWQgY2xhc3MsIHdpdGggaXRzIG93biBv cGNvZGUsIHVubGVzcyB0aGVyZSB3YXMgYSBuZWdhdGVkIHNwZWNpYWwKLSsgICAgc3VjaCBhcyBc UyBpbiB0aGUgY2xhc3MsIGJlY2F1c2UgaW4gdGhhdCBjYXNlIGFsbCBjaGFyYWN0ZXJzID4gMjU1 IGFyZSBpbgotKyAgICB0aGUgY2xhc3MsIHNvIGFueSB0aGF0IHdlcmUgZXhwbGljaXRseSBnaXZl biBhcyB3ZWxsIGNhbiBiZSBpZ25vcmVkLiBJZgotKyAgICAod2hlbiB0aGVyZSBhcmUgZXhwbGlj aXQgY2hhcmFjdGVycyA+IDI1NSB0aGF0IG11c3QgYmUgbGlzdGVkKSB0aGVyZSBhcmUgbm8KLSsg ICAgY2hhcmFjdGVycyA8IDI1Niwgd2UgY2FuIG9taXQgdGhlIGJpdG1hcCBpbiB0aGUgYWN0dWFs IGNvbXBpbGVkIGNvZGUuICovCi0gCi0gI2lmZGVmIFNVUFBPUlRfVVRGOAotLSAgICBpZiAoY2xh c3NfdXRmOCkKLSsgICAgaWYgKGNsYXNzX3V0ZjggJiYgIXNob3VsZF9mbGlwX25lZ2F0aW9uKQot ICAgICAgIHsKLSAgICAgICAqY2xhc3NfdXRmOGRhdGErKyA9IFhDTF9FTkQ7ICAgIC8qIE1hcmtz IHRoZSBlbmQgb2YgZXh0cmEgZGF0YSAqLwotICAgICAgICpjb2RlKysgPSBPUF9YQ0xBU1M7Ci1A QCAtMzIzMywyMCArMzI4NCwxOSBAQCB3ZSBzZXQgdGhlIGZsYWcgb25seSBpZiB0aGVyZSBpcyBh IGxpdGVyCi0gICAgICAgfQotICNlbmRpZgotIAotLSAgICAvKiBJZiB0aGVyZSBhcmUgbm8gY2hh cmFjdGVycyA+IDI1NSwgbmVnYXRlIHRoZSAzMi1ieXRlIG1hcCBpZiBuZWNlc3NhcnksCi0tICAg IGFuZCBjb3B5IGl0IGludG8gdGhlIGNvZGUgdmVjdG9yLiBJZiB0aGlzIGlzIHRoZSBmaXJzdCB0 aGluZyBpbiB0aGUgYnJhbmNoLAotLSAgICB0aGVyZSBjYW4gYmUgbm8gZmlyc3QgY2hhciBzZXR0 aW5nLCB3aGF0ZXZlciB0aGUgcmVwZWF0IGNvdW50LiBBbnkgcmVxYnl0ZQotLSAgICBzZXR0aW5n IG11c3QgcmVtYWluIHVuY2hhbmdlZCBhZnRlciBhbnkga2luZCBvZiByZXBlYXQuICovCi0rICAg IC8qIElmIHRoZXJlIGFyZSBubyBjaGFyYWN0ZXJzID4gMjU1LCBzZXQgdGhlIG9wY29kZSB0byBP UF9DTEFTUyBvcgotKyAgICBPUF9OQ0xBU1MsIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB3aG9s ZSBjbGFzcyB3YXMgbmVnYXRlZCBhbmQgd2hldGhlcgotKyAgICB0aGVyZSB3ZXJlIG5lZ2F0aXZl IHNwZWNpYWxzIHN1Y2ggYXMgXFMgaW4gdGhlIGNsYXNzLiBUaGVuIGNvcHkgdGhlIDMyLWJ5dGUK LSsgICAgbWFwIGludG8gdGhlIGNvZGUgdmVjdG9yLCBuZWdhdGluZyBpdCBpZiBuZWNlc3Nhcnku ICovCi0gCi0rICAgICpjb2RlKysgPSAobmVnYXRlX2NsYXNzID09IHNob3VsZF9mbGlwX25lZ2F0 aW9uKSA/IE9QX0NMQVNTIDogT1BfTkNMQVNTOwotICAgICBpZiAobmVnYXRlX2NsYXNzKQotICAg ICAgIHsKLS0gICAgICAqY29kZSsrID0gT1BfTkNMQVNTOwotICAgICAgIGlmIChsZW5ndGhwdHIg PT0gTlVMTCkgICAgLyogU2F2ZSB0aW1lIGluIHRoZSBwcmUtY29tcGlsZSBwaGFzZSAqLwotICAg ICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKyspIGNvZGVbY10gPSB+Y2xhc3NiaXRzW2NdOwot ICAgICAgIH0KLSAgICAgZWxzZQotICAgICAgIHsKLS0gICAgICAqY29kZSsrID0gT1BfQ0xBU1M7 Ci0gICAgICAgbWVtY3B5KGNvZGUsIGNsYXNzYml0cywgMzIpOwotICAgICAgIH0KLSAgICAgY29k ZSArPSAzMjsKLUBAIC0zODgyLDcgKzM5MzIsOSBAQCB3ZSBzZXQgdGhlIGZsYWcgb25seSBpZiB0 aGVyZSBpcyBhIGxpdGVyCi0gICAgICAgaW50IGxlbjsKLSAgICAgICBpZiAoKnRlbXBjb2RlID09 IE9QX0VYQUNUIHx8ICp0ZW1wY29kZSA9PSBPUF9UWVBFRVhBQ1QgfHwKLSAgICAgICAgICAgKnRl bXBjb2RlID09IE9QX05PVEVYQUNUKQotLSAgICAgICAgdGVtcGNvZGUgKz0gX3BjcmVfT1BfbGVu Z3Roc1sqdGVtcGNvZGVdOwotKyAgICAgICAgdGVtcGNvZGUgKz0gX3BjcmVfT1BfbGVuZ3Roc1sq dGVtcGNvZGVdICsKLSsgICAgICAgICAgKCgqdGVtcGNvZGUgPT0gT1BfVFlQRUVYQUNUICYmCi0r ICAgICAgICAgICAgICh0ZW1wY29kZVszXSA9PSBPUF9QUk9QIHx8IHRlbXBjb2RlWzNdID09IE9Q X05PVFBST1ApKT8gMjowKTsKLSAgICAgICBsZW4gPSBjb2RlIC0gdGVtcGNvZGU7Ci0gICAgICAg aWYgKGxlbiA+IDApIHN3aXRjaCAoKnRlbXBjb2RlKQotICAgICAgICAgewotQEAgLTQxMDksMTYg KzQxNjEsMTMgQEAgd2Ugc2V0IHRoZSBmbGFnIG9ubHkgaWYgdGhlcmUgaXMgYSBsaXRlcgotICAg ICAgICAgICAgICplcnJvcmNvZGVwdHIgPSBFUlI1ODsKLSAgICAgICAgICAgICBnb3RvIEZBSUxF RDsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgIGlmIChyZWZzaWduID09ICctJykKLSsgICAg ICAgICAgcmVjbm8gPSAocmVmc2lnbiA9PSAnLScpPwotKyAgICAgICAgICAgIGNkLT5icmFjb3Vu dCAtIHJlY25vICsgMSA6IHJlY25vICtjZC0+YnJhY291bnQ7Ci0rICAgICAgICAgIGlmIChyZWNu byA8PSAwIHx8IHJlY25vID4gY2QtPmZpbmFsX2JyYWNvdW50KQotICAgICAgICAgICAgIHsKLS0g ICAgICAgICAgICByZWNubyA9IGNkLT5icmFjb3VudCAtIHJlY25vICsgMTsKLS0gICAgICAgICAg ICBpZiAocmVjbm8gPD0gMCkKLS0gICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICplcnJv cmNvZGVwdHIgPSBFUlIxNTsKLS0gICAgICAgICAgICAgIGdvdG8gRkFJTEVEOwotLSAgICAgICAg ICAgICAgfQotKyAgICAgICAgICAgICplcnJvcmNvZGVwdHIgPSBFUlIxNTsKLSsgICAgICAgICAg ICBnb3RvIEZBSUxFRDsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgIGVsc2UgcmVjbm8gKz0g Y2QtPmJyYWNvdW50OwotICAgICAgICAgICBQVVQyKGNvZGUsIDIrTElOS19TSVpFLCByZWNubyk7 Ci0gICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICB9Ci1AQCAtNDE5MCw5ICs0MjM5LDEwIEBA IHdlIHNldCB0aGUgZmxhZyBvbmx5IGlmIHRoZXJlIGlzIGEgbGl0ZXIKLSAgICAgICAgICAgc2tp cGJ5dGVzID0gMTsKLSAgICAgICAgICAgfQotIAotLSAgICAgICAgLyogQ2hlY2sgZm9yIHRoZSAi bmFtZSIgYWN0dWFsbHkgYmVpbmcgYSBzdWJwYXR0ZXJuIG51bWJlci4gKi8KLSsgICAgICAgIC8q IENoZWNrIGZvciB0aGUgIm5hbWUiIGFjdHVhbGx5IGJlaW5nIGEgc3VicGF0dGVybiBudW1iZXIu IFdlIGFyZQotKyAgICAgICAgaW4gdGhlIHNlY29uZCBwYXNzIGhlcmUsIHNvIGZpbmFsX2JyYWNv dW50IGlzIHNldC4gKi8KLSAKLS0gICAgICAgIGVsc2UgaWYgKHJlY25vID4gMCkKLSsgICAgICAg IGVsc2UgaWYgKHJlY25vID4gMCAmJiByZWNubyA8PSBjZC0+ZmluYWxfYnJhY291bnQpCi0gICAg ICAgICAgIHsKLSAgICAgICAgICAgUFVUMihjb2RlLCAyK0xJTktfU0laRSwgcmVjbm8pOwotICAg ICAgICAgICB9Ci1AQCAtNDM4Niw3ICs0NDM2LDkgQEAgd2Ugc2V0IHRoZSBmbGFnIG9ubHkgaWYg dGhlcmUgaXMgYSBsaXRlcgotIAotICAgICAgICAgLyogV2UgY29tZSBoZXJlIGZyb20gdGhlIFB5 dGhvbiBzeW50YXggYWJvdmUgdGhhdCBoYW5kbGVzIGJvdGgKLSAgICAgICAgIHJlZmVyZW5jZXMg KD9QPW5hbWUpIGFuZCByZWN1cnNpb24gKD9QPm5hbWUpLCBhcyB3ZWxsIGFzIGZhbGxpbmcKLS0g ICAgICAgIHRocm91Z2ggZnJvbSB0aGUgUGVybCByZWN1cnNpb24gc3ludGF4ICg/Jm5hbWUpLiAq LwotKyAgICAgICAgdGhyb3VnaCBmcm9tIHRoZSBQZXJsIHJlY3Vyc2lvbiBzeW50YXggKD8mbmFt ZSkuIFdlIGFsc28gY29tZSBoZXJlIGZyb20KLSsgICAgICAgIHRoZSBQZXJsIFxrPG5hbWU+IG9y IFxrJ25hbWUnIGJhY2sgcmVmZXJlbmNlIHN5bnRheCBhbmQgdGhlIFxre25hbWV9Ci0rICAgICAg ICAuTkVUIHN5bnRheC4gKi8KLSAKLSAgICAgICAgIE5BTUVEX1JFRl9PUl9SRUNVUlNFOgotICAg ICAgICAgbmFtZSA9ICsrcHRyOwotQEAgLTQzOTgsNiArNDQ1MCwxMSBAQCB3ZSBzZXQgdGhlIGZs YWcgb25seSBpZiB0aGVyZSBpcyBhIGxpdGVyCi0gCi0gICAgICAgICBpZiAobGVuZ3RocHRyICE9 IE5VTEwpCi0gICAgICAgICAgIHsKLSsgICAgICAgICAgaWYgKG5hbWVsZW4gPT0gMCkKLSsgICAg ICAgICAgICB7Ci0rICAgICAgICAgICAgKmVycm9yY29kZXB0ciA9IEVSUjYyOwotKyAgICAgICAg ICAgIGdvdG8gRkFJTEVEOwotKyAgICAgICAgICAgIH0KLSAgICAgICAgICAgaWYgKCpwdHIgIT0g dGVybWluYXRvcikKLSAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgKmVycm9yY29kZXB0ciA9 IEVSUjQyOwotQEAgLTQ0MTEsMTQgKzQ0NjgsMTkgQEAgd2Ugc2V0IHRoZSBmbGFnIG9ubHkgaWYg dGhlcmUgaXMgYSBsaXRlcgotICAgICAgICAgICByZWNubyA9IDA7Ci0gICAgICAgICAgIH0KLSAK LS0gICAgICAgIC8qIEluIHRoZSByZWFsIGNvbXBpbGUsIHNlZWsgdGhlIG5hbWUgaW4gdGhlIHRh YmxlICovCi0rICAgICAgICAvKiBJbiB0aGUgcmVhbCBjb21waWxlLCBzZWVrIHRoZSBuYW1lIGlu IHRoZSB0YWJsZS4gV2UgY2hlY2sgdGhlIG5hbWUKLSsgICAgICAgIGZpcnN0LCBhbmQgdGhlbiBj aGVjayB0aGF0IHdlIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBuYW1lIGluIHRoZQotKyAg ICAgICAgdGFibGUuIFRoYXQgd2F5LCBpZiB0aGUgbmFtZSB0aGF0IGlzIGxvbmdlciB0aGFuIGFu eSBpbiB0aGUgdGFibGUsCi0rICAgICAgICB0aGUgY29tcGFyaXNvbiB3aWxsIGZhaWwgd2l0aG91 dCByZWFkaW5nIGJleW9uZCB0aGUgdGFibGUgZW50cnkuICovCi0gCi0gICAgICAgICBlbHNlCi0g ICAgICAgICAgIHsKLSAgICAgICAgICAgc2xvdCA9IGNkLT5uYW1lX3RhYmxlOwotICAgICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgY2QtPm5hbWVzX2ZvdW5kOyBpKyspCi0gICAgICAgICAgICAgewot LSAgICAgICAgICAgIGlmIChzdHJuY21wKChjaGFyICopbmFtZSwgKGNoYXIgKilzbG90KzIsIG5h bWVsZW4pID09IDApIGJyZWFrOwotKyAgICAgICAgICAgIGlmIChzdHJuY21wKChjaGFyICopbmFt ZSwgKGNoYXIgKilzbG90KzIsIG5hbWVsZW4pID09IDAgJiYKLSsgICAgICAgICAgICAgICAgc2xv dFsyK25hbWVsZW5dID09IDApCi0rICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICBz bG90ICs9IGNkLT5uYW1lX2VudHJ5X3NpemU7Ci0gICAgICAgICAgICAgfQotIAotQEAgLTQ0NTUs NyArNDUxNywxNSBAQCB3ZSBzZXQgdGhlIGZsYWcgb25seSBpZiB0aGVyZSBpcyBhIGxpdGVyCi0g ICAgICAgICAgIHsKLSAgICAgICAgICAgY29uc3QgdXNjaGFyICpjYWxsZWQ7Ci0gCi0tICAgICAg ICAgIGlmICgocmVmc2lnbiA9ICpwdHIpID09ICcrJykgcHRyKys7Ci0rICAgICAgICAgIGlmICgo cmVmc2lnbiA9ICpwdHIpID09ICcrJykKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgcHRy Kys7Ci0rICAgICAgICAgICAgaWYgKGdfYXNjaWlfaXNkaWdpdCgqcHRyKSA9PSAwKQotKyAgICAg ICAgICAgICAgewotKyAgICAgICAgICAgICAgKmVycm9yY29kZXB0ciA9IEVSUjYzOwotKyAgICAg ICAgICAgICAgZ290byBGQUlMRUQ7Ci0rICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgfQot ICAgICAgICAgICBlbHNlIGlmIChyZWZzaWduID09ICctJykKLSAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgaWYgKGdfYXNjaWlfaXNkaWdpdChwdHJbMV0pID09IDApCi1AQCAtNTYyMSw3ICs1 NjkxLDYgQEAgdG8gZmlsbCBpbiBmb3J3YXJkIHJlZmVyZW5jZXMgdG8gc3VicGF0dAotIAotIHVz Y2hhciBjd29ya3NwYWNlW0NPTVBJTEVfV09SS19TSVpFXTsKLSAKLS0KLSAvKiBTZXQgdGhpcyBl YXJseSBzbyB0aGF0IGVhcmx5IGVycm9ycyBnZXQgb2Zmc2V0IDAuICovCi0gCi0gcHRyID0gKGNv bnN0IHVzY2hhciAqKXBhdHRlcm47Ci1AQCAtNTc4Miw3ICs1ODUxLDcgQEAgdG8gY29tcGlsZSBw YXJ0cyBvZiB0aGUgcGF0dGVybiBpbnRvOyB0aAotIG5vIGxvbmdlciBuZWVkZWQsIHNvIGhvcGVm dWxseSB0aGlzIHdvcmtzcGFjZSB3aWxsIG5ldmVyIG92ZXJmbG93LCB0aG91Z2ggdGhlcmUKLSBp cyBhIHRlc3QgZm9yIGl0cyBkb2luZyBzby4gKi8KLSAKLS1jZC0+YnJhY291bnQgPSAwOwotK2Nk LT5icmFjb3VudCA9IGNkLT5maW5hbF9icmFjb3VudCA9IDA7Ci0gY2QtPm5hbWVzX2ZvdW5kID0g MDsKLSBjZC0+bmFtZV9lbnRyeV9zaXplID0gMDsKLSBjZC0+bmFtZV90YWJsZSA9IE5VTEw7Ci1A QCAtNTg1OSw2ICs1OTI4LDcgQEAgZmllbGQuIFJlc2V0IHRoZSBicmFja2V0IGNvdW50IGFuZCB0 aGUgbgotIGZpZWxkOyB0aGlzIHRpbWUgaXQncyB1c2VkIGZvciByZW1lbWJlcmluZyBmb3J3YXJk IHJlZmVyZW5jZXMgdG8gc3VicGF0dGVybnMuCi0gKi8KLSAKLStjZC0+ZmluYWxfYnJhY291bnQg PSBjZC0+YnJhY291bnQ7ICAvKiBTYXZlIGZvciBjaGVja2luZyBmb3J3YXJkIHJlZmVyZW5jZXMg Ki8KLSBjZC0+YnJhY291bnQgPSAwOwotIGNkLT5uYW1lc19mb3VuZCA9IDA7Ci0gY2QtPm5hbWVf dGFibGUgPSAodXNjaGFyICopcmUgKyByZS0+bmFtZV90YWJsZV9vZmZzZXQ7Ci1kaWZmIC11cCBn bGliLTIuMTUuNC9nbGliL3BjcmUvbWFrZWZpbGUubXNjLnByY2UtNy42IGdsaWItMi4xNS40L2ds aWIvcGNyZS9tYWtlZmlsZS5tc2MKLS0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUvbWFrZWZpbGUu bXNjLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL21ha2VmaWxlLm1zYwkyMDA4LTAyLTA3IDA5OjMyOjQ2LjAwMDAw MDAwMCAtMDUwMAotQEAgLTEsNDkgKzEsMzUgQEAKLSBUT1AgPSAuLlwuLlwuLgotICFJTkNMVURF IC4uXC4uXGJ1aWxkXHdpbjMyXG1ha2UubXNjCi0gCi0tSU5DTFVERVMgPSBcCi0tCS1JIC4uXC4u IFwKLS0JLUkgLi4KLS0JCi0tREVGSU5FUyA9IFwKLS0JLURQQ1JFX1NUQVRJQyBcCi0tCS1ESEFW RV9DT05GSUdfSCBcCi0tCS1ESEFWRV9MT05HX0xPTkdfRk9STUFUIFwKLS0JLURTVVBQT1JUX1VD UCBcCi0tCS1EU1VQUE9SVF9VVEY4IFwKLS0JLURORVdMSU5FPS0xIFwKLS0JLURNQVRDSF9MSU1J VD0xMDAwMDAwMCBcCi0tCS1ETUFUQ0hfTElNSVRfUkVDVVJTSU9OPTEwMDAwMDAwIFwKLS0JLURN QVhfTkFNRV9TSVpFPTMyIFwKLS0JLURNQVhfTkFNRV9DT1VOVD0xMDAwMCBcCi0tCS1ETUFYX0RV UExFTkdUSD0zMDAwMCBcCi0tCS1ETElOS19TSVpFPTIgXAotLQktVUVCQ0RJQyBcCi0tCS1EUE9T SVhfTUFMTE9DX1RIUkVTSE9MRD0xMAotK0lOQ0xVREVTID0gXFwKLSsgICAgICAgIC1JIC4uXC4u IFxcCi0rICAgICAgICAtSSAuLgotKyAgICAgICAgCi0rREVGSU5FUyA9IFxcCi0rICAgICAgICAt RFBDUkVfU1RBVElDIFxcCi0rICAgICAgICAtREhBVkVfQ09ORklHX0ggXFwKLSsgICAgICAgIC1E SEFWRV9MT05HX0xPTkdfRk9STUFUIFxcCi0rICAgICAgICAtRFNVUFBPUlRfVUNQIFxcCi0rICAg ICAgICAtRFNVUFBPUlRfVVRGOCBcXAotKyAgICAgICAgLURORVdMSU5FPS0xIFxcCi0rICAgICAg ICAtRE1BVENIX0xJTUlUPTEwMDAwMDAwIFxcCi0rICAgICAgICAtRE1BVENIX0xJTUlUX1JFQ1VS U0lPTj0xMDAwMDAwMCBcXAotKyAgICAgICAgLURNQVhfTkFNRV9TSVpFPTMyIFxcCi0rICAgICAg ICAtRE1BWF9OQU1FX0NPVU5UPTEwMDAwIFxcCi0rICAgICAgICAtRE1BWF9EVVBMRU5HVEg9MzAw MDAgXFwKLSsgICAgICAgIC1ETElOS19TSVpFPTIgXFwKLSsgICAgICAgIC1ERUJDRElDPTAgXFwK LSsgICAgICAgIC1EUE9TSVhfTUFMTE9DX1RIUkVTSE9MRD0xMAotIAotLU9CSkVDVFMgPSBcCi0t CXBjcmVfY2hhcnRhYmxlcy5vYmogXAotLQlwY3JlX2NvbXBpbGUub2JqIFwKLS0JcGNyZV9jb25m aWcub2JqIFwKLS0JcGNyZV9kZmFfZXhlYy5vYmogXAotLQlwY3JlX2V4ZWMub2JqIFwKLS0JcGNy ZV9mdWxsaW5mby5vYmogXAotLQlwY3JlX2dldC5vYmogXAotLQlwY3JlX2dsb2JhbHMub2JqIFwK LS0JcGNyZV9pbmZvLm9iaiBcCi0tCXBjcmVfbWFrZXRhYmxlcy5vYmogXAotLQlwY3JlX25ld2xp bmUub2JqIFwKLS0JcGNyZV9vcmQydXRmOC5vYmogXAotLQlwY3JlX3JlZmNvdW50Lm9iaiBcCi0t CXBjcmVfc3R1ZHkub2JqIFwKLS0JcGNyZV90YWJsZXMub2JqIFwKLS0JcGNyZV90cnlfZmxpcHBl ZC5vYmogXAotLQlwY3JlX3VjcF9zZWFyY2hmdW5jcy5vYmogXAotLQlwY3JlX3ZhbGlkX3V0Zjgu b2JqIFwKLS0JcGNyZV92ZXJzaW9uLm9iaiBcCi0tCXBjcmVfeGNsYXNzLm9iaiBcCi0rT0JKRUNU UyA9IFxcCi0rYAotK2ZvciBmIGluICRhbGxfZmlsZXM7IGRvCi0rICAgIGVjaG8gIiAgICAgICRm Lm9iaiBcXFxcIgotK2RvbmUKLStgCi0gCi0gYWxsIDogcGNyZS5saWIKLSAKLS1wY3JlLmxpYiA6 ICQoT0JKRUNUUykKLS0JbGliIC1vdXQ6cGNyZS5saWIgJChPQkpFQ1RTKQotK3BjcmUubGliIDog XCQoT0JKRUNUUykKLSsgICAgICAgIGxpYiAtb3V0OnBjcmUubGliIFwkKE9CSkVDVFMpCi0rCi1k aWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9nbG9iYWxzLmMucHJjZS03LjYgZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2xvYmFscy5jCi0tLS0gZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3BjcmVfZ2xvYmFscy5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAw IC0wNTAwCi0rKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZ2xvYmFscy5jCTIwMDgtMDIt MDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNiw3ICs2LDcgQEAKLSBhbmQgc2VtYW50 aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1 YWdlLgotIAotICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwK LS0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJp ZGdlCi0rICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENh bWJyaWRnZQotIAotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gUmVkaXN0cmlidXRpb24gYW5kIHVz ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1kaWZmIC11cCBn bGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9mdWxsaW5mby5jLnByY2UtNy42IGdsaWItMi4xNS40 L2dsaWIvcGNyZS9wY3JlX2Z1bGxpbmZvLmMKLS0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNy ZV9mdWxsaW5mby5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAw Ci0rKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZnVsbGluZm8uYwkyMDA4LTAyLTA3IDA5 OjMyOjQ2LjAwMDAwMDAwMCAtMDUwMAotQEAgLTIsMTEgKzIsMTEgQEAKLSAqICAgICAgUGVybC1D b21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgotICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gCi0tLypQQ1JFIGlzIGEgbGlicmFy eSBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Npb25zIHdob3NlIHN5bnRh eAotKy8qIFBDUkUgaXMgYSBsaWJyYXJ5IG9mIGZ1bmN0aW9ucyB0byBzdXBwb3J0IHJlZ3VsYXIg ZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4Ci0gYW5kIHNlbWFudGljcyBhcmUgYXMgY2xvc2UgYXMg cG9zc2libGUgdG8gdGhvc2Ugb2YgdGhlIFBlcmwgNSBsYW5ndWFnZS4KLSAKLSAgICAgICAgICAg ICAgICAgICAgICAgIFdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0tICAgICAgICAgICBDb3B5cmln aHQgKGMpIDE5OTctMjAwNyBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotKyAgICAgICAgICAgQ29w eXJpZ2h0IChjKSAxOTk3LTIwMDggVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSAKLSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotZGlmZiAtdXAgZ2xpYi0yLjE1LjQvZ2xpYi9wY3Jl L3BjcmVfb3JkMnV0ZjguYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9vcmQy dXRmOC5jCi0tLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfb3JkMnV0ZjguYy5wcmNlLTcu NgkyMDA4LTAyLTA3IDA5OjMyOjA5LjAwMDAwMDAwMCAtMDUwMAotKysrIGdsaWItMi4xNS40L2ds aWIvcGNyZS9wY3JlX29yZDJ1dGY4LmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1 MDAKLUBAIC02LDcgKzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3Np YmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0gCi0gICAgICAgICAgICAgICAg ICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAgICAgICAgQ29weXJpZ2h0IChj KSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsgICAgICAgICAgIENvcHlyaWdo dCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv cm1zLCB3aXRoIG9yIHdpdGhvdXQKLWRpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3Jl X3RyeV9mbGlwcGVkLmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfdHJ5X2Zs aXBwZWQuYwotLS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3RyeV9mbGlwcGVkLmMucHJj ZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKLSsrKyBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV90cnlfZmxpcHBlZC5jCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAw MDAwIC0wNTAwCi1AQCAtNiw3ICs2LDcgQEAKLSBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBh cyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgotIAotICAgICAgICAg ICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLS0gICAgICAgICAgIENvcHly aWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0rICAgICAgICAgICBD b3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotIAotIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1kaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3Bj cmUvcGNyZV9pbmZvLmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfaW5mby5j Ci0tLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfaW5mby5jLnByY2UtNy42CTIwMDgtMDIt MDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3Bj cmVfaW5mby5jCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNiw3ICs2 LDcgQEAKLSBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBv ZiB0aGUgUGVybCA1IGxhbmd1YWdlLgotIAotICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRl biBieSBQaGlsaXAgSGF6ZWwKLS0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVu aXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0rICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAw OCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotIAotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gUmVk aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3 aXRob3V0Ci1kaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvQ09QWUlORy5wcmNlLTcuNiBn bGliLTIuMTUuNC9nbGliL3BjcmUvQ09QWUlORwotZGlmZiAtdXAgZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3BjcmVfcmVmY291bnQuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9y ZWZjb3VudC5jCi0tLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfcmVmY291bnQuYy5wcmNl LTcuNgkyMDA4LTAyLTA3IDA5OjMyOjA5LjAwMDAwMDAwMCAtMDUwMAotKysrIGdsaWItMi4xNS40 L2dsaWIvcGNyZS9wY3JlX3JlZmNvdW50LmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAg LTA1MDAKLUBAIC02LDcgKzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBv c3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0gCi0gICAgICAgICAgICAg ICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAgICAgICAgQ29weXJpZ2h0 IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsgICAgICAgICAgIENvcHly aWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLWRpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9w Y3JlLmgucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmUuaAotLS0tIGdsaWItMi4x NS40L2dsaWIvcGNyZS9wY3JlLmgucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAw MDAgLTA1MDAKLSsrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZS5oCTIwMDgtMDItMDcgMDk6 MzI6NDYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNSw3ICs1LDcgQEAKLSAvKiBUaGlzIGlzIHRoZSBw dWJsaWMgaGVhZGVyIGZpbGUgZm9yIHRoZSBQQ1JFIGxpYnJhcnksIHRvIGJlICNpbmNsdWRlZCBi eQotIGFwcGxpY2F0aW9ucyB0aGF0IGNhbGwgdGhlIFBDUkUgZnVuY3Rpb25zLgotIAotLSAgICAg ICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsg ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl Ci0gCi0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLUBAIC00Miw5ICs0Miw5IEBA IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotIC8qIFRoZSBjdXJyZW50IFBDUkUgdmVyc2lv biBpbmZvcm1hdGlvbi4gKi8KLSAKLSAjZGVmaW5lIFBDUkVfTUFKT1IgICAgICAgICAgNwotLSNk ZWZpbmUgUENSRV9NSU5PUiAgICAgICAgICA0Ci0rI2RlZmluZSBQQ1JFX01JTk9SICAgICAgICAg IDYKLSAjZGVmaW5lIFBDUkVfUFJFUkVMRUFTRSAgICAgCi0tI2RlZmluZSBQQ1JFX0RBVEUgICAg ICAgICAgIDIwMDctMDktMjEKLSsjZGVmaW5lIFBDUkVfREFURSAgICAgICAgICAgMjAwOC0wMS0y OAotIAotIC8qIFdoZW4gYW4gYXBwbGljYXRpb24gbGlua3MgdG8gYSBQQ1JFIERMTCBpbiBXaW5k b3dzLCB0aGUgc3ltYm9scyB0aGF0IGFyZQotIGltcG9ydGVkIGhhdmUgdG8gYmUgaWRlbnRpZmll ZCBhcyBzdWNoLiBXaGVuIGJ1aWxkaW5nIFBDUkUsIHRoZSBhcHByb3ByaWF0ZQotQEAgLTI0Miwx MyArMjQyLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgcGNyZV9jYWxsb3V0X2Jsb2NrIHsKLSAgIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAqLwotIH0gcGNyZV9jYWxsb3V0X2Jsb2NrOwotIAotLQotLS8qIEluZGlyZWN0aW9u IGZvciBzdG9yZSBnZXQgYW5kIGZyZWUgZnVuY3Rpb25zLiBUaGVzZSBjYW4gYmUgc2V0IHRvCi0t YWx0ZXJuYXRpdmUgbWFsbG9jL2ZyZWUgZnVuY3Rpb25zIGlmIHJlcXVpcmVkLiBTcGVjaWFsIG9u ZXMgYXJlIHVzZWQgaW4gdGhlCi0tbm9uLXJlY3Vyc2l2ZSBjYXNlIGZvciAiZnJhbWVzIi4gVGhl cmUgaXMgYWxzbyBhbiBvcHRpb25hbCBjYWxsb3V0IGZ1bmN0aW9uCi0tdGhhdCBpcyB0cmlnZ2Vy ZWQgYnkgdGhlICg/KSByZWdleCBpdGVtLiBGb3IgVmlydHVhbCBQYXNjYWwsIHRoZXNlIGRlZmlu aXRpb25zCi0taGF2ZSB0byB0YWtlIGFub3RoZXIgZm9ybS4gKi8KLS0KLSAjaW5jbHVkZSAiZ2xp Yi5oIgotICNpbmNsdWRlICJnYWxpYXMuaCIKLSAKLWRpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIv cGNyZS9wY3JlX2NoYXJ0YWJsZXMuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNy ZV9jaGFydGFibGVzLmMKLS0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jaGFydGFibGVz LmMucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAKLSsrKyBnbGli LTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jaGFydGFibGVzLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4w MDAwMDAwMDAgLTA1MDAKLUBAIC0xLDYgKzEsMyBAQAotLS8qIFRoaXMgZmlsZSBpcyBhdXRvZ2Vu ZXJhdGVkIGJ5IC4uL3VwZGF0ZS1wY3JlL3VwZGF0ZS5zaCBkdXJpbmcKLS0gKiB0aGUgdXBkYXRl IG9mIHRoZSBsb2NhbCBjb3B5IG9mIFBDUkUuCi0tICovCi0gLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqICAgICAgUGVybC1Db21wYXRpYmxlIFJl Z3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCi1kaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNy ZV9jb25maWcuYy5wcmNlLTcuNiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9jb25maWcuYwot LS0tIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2NvbmZpZy5jLnByY2UtNy42CTIwMDgtMDIt MDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3Bj cmVfY29uZmlnLmMJMjAwOC0wMi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKLUBAIC02LDcg KzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3Nl IG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0gCi0gICAgICAgICAgICAgICAgICAgICAgICBXcml0 dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcg VW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0y MDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBS ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQKLWRpZmYgLXVwIGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX2ludGVybmFsLmgu cHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfaW50ZXJuYWwuaAotLS0tIGdsaWIt Mi4xNS40L2dsaWIvcGNyZS9wY3JlX2ludGVybmFsLmgucHJjZS03LjYJMjAwOC0wMi0wNyAwOToz MjowOS4wMDAwMDAwMDAgLTA1MDAKLSsrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9pbnRl cm5hbC5oCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNyw3ICs3LDcg QEAKLSBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0 aGUgUGVybCA1IGxhbmd1YWdlLgotIAotICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBi eSBQaGlsaXAgSGF6ZWwKLS0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZl cnNpdHkgb2YgQ2FtYnJpZGdlCi0rICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBV bml2ZXJzaXR5IG9mIENhbWJyaWRnZQotIAotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gUmVkaXN0 cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo b3V0Ci1AQCAtMzYzLDYgKzM2Myw3IEBAIG5ldmVyIGJlIGNhbGxlZCBpbiBieXRlIG1vZGUuIFRv IG1ha2Ugc3UKLSBzdXBwb3J0IGlzIG9taXR0ZWQsIHdlIGRvbid0IGV2ZW4gZGVmaW5lIGl0LiAq LwotIAotICNpZm5kZWYgU1VQUE9SVF9VVEY4Ci0rI2RlZmluZSBORVhUQ0hBUihwKSBwKys7Ci0g I2RlZmluZSBHRVRDSEFSKGMsIGVwdHIpIGMgPSAqZXB0cjsKLSAjZGVmaW5lIEdFVENIQVJURVNU KGMsIGVwdHIpIGMgPSAqZXB0cjsKLSAjZGVmaW5lIEdFVENIQVJJTkMoYywgZXB0cikgYyA9ICpl cHRyKys7Ci1AQCAtMzcyLDYgKzM3MywxMyBAQCBzdXBwb3J0IGlzIG9taXR0ZWQsIHdlIGRvbid0 IGV2ZW4gZGVmaW5lCi0gCi0gI2Vsc2UgICAvKiBTVVBQT1JUX1VURjggKi8KLSAKLSsvKiBBZHZh bmNlIGEgY2hhcmFjdGVyIHBvaW50ZXIgb25lIGJ5dGUgaW4gbm9uLVVURi04IG1vZGUgYW5kIGJ5 IG9uZSBjaGFyYWN0ZXIKLStpbiBVVEYtOCBtb2RlLiAqLwotKwotKyNkZWZpbmUgTkVYVENIQVIo cCkgXAotKyAgcCsrOyBcCi0rICBpZiAodXRmOCkgeyB3aGlsZSgoKnAgJiAweGMwKSA9PSAweDgw KSBwKys7IH0KLSsKLSAvKiBHZXQgdGhlIG5leHQgVVRGLTggY2hhcmFjdGVyLCBub3QgYWR2YW5j aW5nIHRoZSBwb2ludGVyLiBUaGlzIGlzIGNhbGxlZCB3aGVuCi0gd2Uga25vdyB3ZSBhcmUgaW4g VVRGLTggbW9kZS4gKi8KLSAKLUBAIC04NjgsNyArODc2LDcgQEAgZW51bSB7IEVSUjAsICBFUlIx LCAgRVJSMiwgIEVSUjMsICBFUlI0LAotICAgICAgICBFUlIzMCwgRVJSMzEsIEVSUjMyLCBFUlIz MywgRVJSMzQsIEVSUjM1LCBFUlIzNiwgRVJSMzcsIEVSUjM4LCBFUlIzOSwKLSAgICAgICAgRVJS NDAsIEVSUjQxLCBFUlI0MiwgRVJSNDMsIEVSUjQ0LCBFUlI0NSwgRVJSNDYsIEVSUjQ3LCBFUlI0 OCwgRVJSNDksCi0gICAgICAgIEVSUjUwLCBFUlI1MSwgRVJSNTIsIEVSUjUzLCBFUlI1NCwgRVJS NTUsIEVSUjU2LCBFUlI1NywgRVJSNTgsIEVSUjU5LAotLSAgICAgICBFUlI2MCwgRVJSNjEgfTsK LSsgICAgICAgRVJSNjAsIEVSUjYxLCBFUlI2MiwgRVJSNjMgfTsKLSAKLSAvKiBUaGUgcmVhbCBm b3JtYXQgb2YgdGhlIHN0YXJ0IG9mIHRoZSBwY3JlIGJsb2NrOyB0aGUgaW5kZXggb2YgbmFtZXMg YW5kIHRoZQotIGNvZGUgdmVjdG9yIHJ1biBvbiBhcyBsb25nIGFzIG5lY2Vzc2FyeSBhZnRlciB0 aGUgZW5kLiBXZSBzdG9yZSBhbiBleHBsaWNpdAotQEAgLTkzMSw3ICs5MzksOCBAQCB0eXBlZGVm IHN0cnVjdCBjb21waWxlX2RhdGEgewotICAgdXNjaGFyICpuYW1lX3RhYmxlOyAgICAgICAgICAg LyogVGhlIG5hbWUvbnVtYmVyIHRhYmxlICovCi0gICBpbnQgIG5hbWVzX2ZvdW5kOyAgICAgICAg ICAgICAvKiBOdW1iZXIgb2YgZW50cmllcyBzbyBmYXIgKi8KLSAgIGludCAgbmFtZV9lbnRyeV9z aXplOyAgICAgICAgIC8qIFNpemUgb2YgZWFjaCBlbnRyeSAqLwotLSAgaW50ICBicmFjb3VudDsg ICAgICAgICAgICAgICAgLyogQ291bnQgb2YgY2FwdHVyaW5nIHBhcmVucyAqLwotKyAgaW50ICBi cmFjb3VudDsgICAgICAgICAgICAgICAgLyogQ291bnQgb2YgY2FwdHVyaW5nIHBhcmVucyBhcyB3 ZSBjb21waWxlICovCi0rICBpbnQgIGZpbmFsX2JyYWNvdW50OyAgICAgICAgICAvKiBTYXZlZCB2 YWx1ZSBhZnRlciBmaXJzdCBwYXNzICovCi0gICBpbnQgIHRvcF9iYWNrcmVmOyAgICAgICAgICAg ICAvKiBNYXhpbXVtIGJhY2sgcmVmZXJlbmNlICovCi0gICB1bnNpZ25lZCBpbnQgYmFja3JlZl9t YXA7ICAgICAvKiBCaXRtYXAgb2YgbG93IGJhY2sgcmVmcyAqLwotICAgaW50ICBleHRlcm5hbF9v cHRpb25zOyAgICAgICAgLyogRXh0ZXJuYWwgKGluaXRpYWwpIG9wdGlvbnMgKi8KLUBAIC0xMDMz LDcgKzEwNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBkZmFfbWF0Y2hfZGF0YSB7Ci0gI2RlZmluZSBj dHlwZV9sZXR0ZXIgIDB4MDIKLSAjZGVmaW5lIGN0eXBlX2RpZ2l0ICAgMHgwNAotICNkZWZpbmUg Y3R5cGVfeGRpZ2l0ICAweDA4Ci0tI2RlZmluZSBjdHlwZV93b3JkICAgIDB4MTAgICAvKiBhbHBo YW1lcmljIG9yICdfJyAqLwotKyNkZWZpbmUgY3R5cGVfd29yZCAgICAweDEwICAgLyogYWxwaGFu dW1lcmljIG9yICdfJyAqLwotICNkZWZpbmUgY3R5cGVfbWV0YSAgICAweDgwICAgLyogcmVnZXhw IG1ldGEgY2hhciBvciB6ZXJvIChlbmQgcGF0dGVybikgKi8KLSAKLSAvKiBPZmZzZXRzIGZvciB0 aGUgYml0bWFwIHRhYmxlcyBpbiBwY3JlX2NiaXRzLiBFYWNoIHRhYmxlIGNvbnRhaW5zIGEgc2V0 Ci1kaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvTWFrZWZpbGUuYW0ucHJjZS03LjYgZ2xp Yi0yLjE1LjQvZ2xpYi9wY3JlL01ha2VmaWxlLmFtCi1kaWZmIC11cCBnbGliLTIuMTUuNC9nbGli L3BjcmUvTWFrZWZpbGUuaW4ucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL01ha2VmaWxl LmluCi1kaWZmIC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV94Y2xhc3MuYy5wcmNlLTcu NiBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV94Y2xhc3MuYwotLS0tIGdsaWItMi4xNS40L2ds aWIvcGNyZS9wY3JlX3hjbGFzcy5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAw MDAwIC0wNTAwCi0rKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfeGNsYXNzLmMJMjAwOC0w Mi0wNyAwOTozMjo0Ni4wMDAwMDAwMDAgLTA1MDAKLUBAIC02LDcgKzYsNyBAQAotIGFuZCBzZW1h bnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFu Z3VhZ2UuCi0gCi0gICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXpl bAotLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1i cmlkZ2UKLSsgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2Yg Q2FtYnJpZGdlCi0gCi0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBSZWRpc3RyaWJ1dGlvbiBhbmQg dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLWRpZmYgLXVw IGdsaWItMi4xNS40L2dsaWIvcGNyZS9wY3JlX3ZlcnNpb24uYy5wcmNlLTcuNiBnbGliLTIuMTUu NC9nbGliL3BjcmUvcGNyZV92ZXJzaW9uLmMKLS0tLSBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNy ZV92ZXJzaW9uLmMucHJjZS03LjYJMjAwOC0wMi0wNyAwOTozMjowOS4wMDAwMDAwMDAgLTA1MDAK LSsrKyBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV92ZXJzaW9uLmMJMjAwOC0wMi0wNyAwOToz Mjo0Ni4wMDAwMDAwMDAgLTA1MDAKLUBAIC02LDcgKzYsNyBAQAotIGFuZCBzZW1hbnRpY3MgYXJl IGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0g Ci0gICAgICAgICAgICAgICAgICAgICAgICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAotLSAgICAg ICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDcgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSsg ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA4IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl Ci0gCi0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLWRpZmYgLXVwIGdsaWItMi4x NS40L2dsaWIvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jLnByY2UtNy42IGdsaWItMi4xNS40 L2dsaWIvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jCi1kaWZmIC11cCBnbGliLTIuMTUuNC9n bGliL3BjcmUvdWNwLmgucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3VjcC5oCi1kaWZm IC11cCBnbGliLTIuMTUuNC9nbGliL3BjcmUvcGNyZV9uZXdsaW5lLmMucHJjZS03LjYgZ2xpYi0y LjE1LjQvZ2xpYi9wY3JlL3BjcmVfbmV3bGluZS5jCi0tLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3Jl L3BjcmVfbmV3bGluZS5jLnByY2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0w NTAwCi0rKysgZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfbmV3bGluZS5jCTIwMDgtMDItMDcg MDk6MzI6NDYuMDAwMDAwMDAwIC0wNTAwCi1AQCAtNiw3ICs2LDcgQEAKLSBhbmQgc2VtYW50aWNz IGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdl LgotIAotICAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLS0g ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl Ci0rICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJy aWRnZQotIAotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1kaWZmIC11cCBnbGli LTIuMTUuNC9nbGliL3BjcmUvcGNyZV9leGVjLmMucHJjZS03LjYgZ2xpYi0yLjE1LjQvZ2xpYi9w Y3JlL3BjcmVfZXhlYy5jCi0tLS0gZ2xpYi0yLjE1LjQvZ2xpYi9wY3JlL3BjcmVfZXhlYy5jLnBy Y2UtNy42CTIwMDgtMDItMDcgMDk6MzI6MDkuMDAwMDAwMDAwIC0wNTAwCi0rKysgZ2xpYi0yLjE1 LjQvZ2xpYi9wY3JlL3BjcmVfZXhlYy5jCTIwMDgtMDItMDcgMDk6MzI6NDYuMDAwMDAwMDAwIC0w NTAwCi1AQCAtNiw3ICs2LDcgQEAKLSBhbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3Nz aWJsZSB0byB0aG9zZSBvZiB0aGUgUGVybCA1IGxhbmd1YWdlLgotIAotICAgICAgICAgICAgICAg ICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLS0gICAgICAgICAgIENvcHlyaWdodCAo YykgMTk5Ny0yMDA3IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0rICAgICAgICAgICBDb3B5cmln aHQgKGMpIDE5OTctMjAwOCBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotIAotIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm b3Jtcywgd2l0aCBvciB3aXRob3V0Ci1AQCAtNDY3MCwxMCArNDY3MCwxMCBAQCBmb3IoOzspCi0g ICAgIGlmIChmaXJzdF9ieXRlX2Nhc2VsZXNzKQotICAgICAgIHdoaWxlIChzdGFydF9tYXRjaCA8 IGVuZF9zdWJqZWN0ICYmCi0gICAgICAgICAgICAgIG1kLT5sY2NbKnN0YXJ0X21hdGNoXSAhPSBm aXJzdF9ieXRlKQotLSAgICAgICAgc3RhcnRfbWF0Y2grKzsKLSsgICAgICAgIHsgTkVYVENIQVIo c3RhcnRfbWF0Y2gpOyB9Ci0gICAgIGVsc2UKLSAgICAgICB3aGlsZSAoc3RhcnRfbWF0Y2ggPCBl bmRfc3ViamVjdCAmJiAqc3RhcnRfbWF0Y2ggIT0gZmlyc3RfYnl0ZSkKLS0gICAgICAgIHN0YXJ0 X21hdGNoKys7Ci0rICAgICAgICB7IE5FWFRDSEFSKHN0YXJ0X21hdGNoKTsgfQotICAgICB9Ci0g Ci0gICAvKiBPciB0byBqdXN0IGFmdGVyIGEgbGluZWJyZWFrIGZvciBhIG11bHRpbGluZSBtYXRj aCBpZiBwb3NzaWJsZSAqLwotQEAgLTQ2ODMsNyArNDY4Myw3IEBAIGZvcig7OykKLSAgICAgaWYg KHN0YXJ0X21hdGNoID4gbWQtPnN0YXJ0X3N1YmplY3QgKyBzdGFydF9vZmZzZXQpCi0gICAgICAg ewotICAgICAgIHdoaWxlIChzdGFydF9tYXRjaCA8PSBlbmRfc3ViamVjdCAmJiAhV0FTX05FV0xJ TkUoc3RhcnRfbWF0Y2gpKQotLSAgICAgICAgc3RhcnRfbWF0Y2grKzsKLSsgICAgICAgIHsgTkVY VENIQVIoc3RhcnRfbWF0Y2gpOyB9Ci0gCi0gICAgICAgLyogSWYgd2UgaGF2ZSBqdXN0IHBhc3Nl ZCBhIENSIGFuZCB0aGUgbmV3bGluZSBvcHRpb24gaXMgQU5ZIG9yIEFOWUNSTEYsCi0gICAgICAg YW5kIHdlIGFyZSBub3cgYXQgYSBMRiwgYWR2YW5jZSB0aGUgbWF0Y2ggcG9zaXRpb24gYnkgb25l IG1vcmUgY2hhcmFjdGVyLgotQEAgLTQ3MDQsNyArNDcwNCw5IEBAIGZvcig7OykKLSAgICAgd2hp bGUgKHN0YXJ0X21hdGNoIDwgZW5kX3N1YmplY3QpCi0gICAgICAgewotICAgICAgIHJlZ2lzdGVy IHVuc2lnbmVkIGludCBjID0gKnN0YXJ0X21hdGNoOwotLSAgICAgIGlmICgoc3RhcnRfYml0c1tj LzhdICYgKDEgPDwgKGMmNykpKSA9PSAwKSBzdGFydF9tYXRjaCsrOyBlbHNlIGJyZWFrOwotKyAg ICAgIGlmICgoc3RhcnRfYml0c1tjLzhdICYgKDEgPDwgKGMmNykpKSA9PSAwKQotKyAgICAgICAg eyBORVhUQ0hBUihzdGFydF9tYXRjaCk7IH0KLSsgICAgICBlbHNlIGJyZWFrOwotICAgICAgIH0K LSAgICAgfQotIAoKZGlmZiAtLWdpdCBhL3JldmVydC0zMTYyMjEucGF0Y2ggYi9yZXZlcnQtMzE2 MjIxLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzU1MjY2Li4wMDAwMDAw Ci0tLSBhL3JldmVydC0zMTYyMjEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBA Ci0tLS0gdHJ1bmsvZ2xpYi9ndGhyZWFkLmgJMjAwNy8xMC8yMSAxNzowMToyOQk1NzkyCi0rKysg dHJ1bmsvZ2xpYi9ndGhyZWFkLmgJMjAwOC8wMy8xMiAxNTozNjozOAk2NjkxCi1AQCAtMTQwLDkg KzE0MCwxNSBAQAotIC8qIGludGVybmFsIGZ1bmN0aW9uIGZvciBmYWxsYmFjayBzdGF0aWMgbXV0 ZXggaW1wbGVtZW50YXRpb24gKi8KLSBHTXV0ZXgqIGdfc3RhdGljX211dGV4X2dldF9tdXRleF9p bXBsICAgKEdNdXRleCAqKm11dGV4KTsKLSAKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSAjZGVmaW5l IGdfc3RhdGljX211dGV4X2dldF9tdXRleF9pbXBsX3Nob3J0Y3V0KG11dGV4KSBcCi0gICAoZ19h dG9taWNfcG9pbnRlcl9nZXQgKChncG9pbnRlciopKHZvaWQqKW11dGV4KSA/ICoobXV0ZXgpIDog XAotICAgIGdfc3RhdGljX211dGV4X2dldF9tdXRleF9pbXBsIChtdXRleCkpCi0rI2Vsc2UKLSsj ZGVmaW5lIGdfc3RhdGljX211dGV4X2dldF9tdXRleF9pbXBsX3Nob3J0Y3V0KG11dGV4KSBcCi0r ICAoZ19hdG9taWNfcG9pbnRlcl9nZXQgKG11dGV4KSA/ICoobXV0ZXgpIDogXAotKyAgIGdfc3Rh dGljX211dGV4X2dldF9tdXRleF9pbXBsIChtdXRleCkpCi0rI2VuZGlmCi0gCi0gLyogc2hvcnRo YW5kcyBmb3IgY29uZGl0aW9uYWwgYW5kIHVuY29uZGl0aW9uYWwgZnVuY3Rpb24gY2FsbHMgKi8K LSAKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCBhNWM2MDIyLi41MTg0N2Yy IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEgKzEgQEAKLTk2OTIxMTZk MzljMmJkMDBjNTNhOWI0Njk3MTFlM2ZjICBnbGliLTIuMTcuNC50YXIuYnoyCitiNTk2YjgwZWM4 OWJiY2M3ZGRiNzdmYmYwZTRkYjA1NiAgZ2xpYi0yLjE3LjYudGFyLmJ6MgoKZGlmZiAtLWdpdCBh L3RpbWVvdXQtd3JhcC5wYXRjaCBiL3RpbWVvdXQtd3JhcC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggYjA1OTQ3Yi4uMDAwMDAwMAotLS0gYS90aW1lb3V0LXdyYXAucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1kaWZmIC11cCBnbGliLTIuMTYuMi9nbGli L2dtYWluLmMudGltZW91dC13cmFwIGdsaWItMi4xNi4yL2dsaWIvZ21haW4uYwotLS0tIGdsaWIt Mi4xNi4yL2dsaWIvZ21haW4uYy50aW1lb3V0LXdyYXAJMjAwOC0wNC0wMyAwMTozOTo0Ni4wMDAw MDAwMDAgLTA0MDAKLSsrKyBnbGliLTIuMTYuMi9nbGliL2dtYWluLmMJMjAwOC0wNC0wMyAwMTo0 MDowOC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0zMzIwLDcgKzMzMjAsNyBAQCBnX3RpbWVvdXRfc2V0 X2V4cGlyYXRpb24gKEdUaW1lb3V0U291cmNlCi0gICAgICAgaWYgKCFzZXNzaW9uX2J1c19hZGRy ZXNzKQotICAgICAgICAgc2Vzc2lvbl9idXNfYWRkcmVzcyA9IGdfZ2V0ZW52ICgiSE9TVE5BTUUi KTsKLSAgICAgICBpZiAoc2Vzc2lvbl9idXNfYWRkcmVzcykKLS0gICAgICAgIHRpbWVyX3BlcnR1 cmIgPSBnX3N0cl9oYXNoIChzZXNzaW9uX2J1c19hZGRyZXNzKTsKLSsgICAgICAgIHRpbWVyX3Bl cnR1cmIgPSBBQlMgKGdfc3RyX2hhc2ggKHNlc3Npb25fYnVzX2FkZHJlc3MpKTsKLSAgICAgICBl bHNlCi0gICAgICAgICB0aW1lcl9wZXJ0dXJiID0gMDsKLSAgICAgfQo=