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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Delete upstreamed ibus-HEAD.patch Date: Sun, 31 May 2026 02:07:30 GMT Message-ID: <178019325006.1.2493224813599113829.rpms-ibus-1ddc1a0b4155@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 1ddc1a0b4155a77a54415a88ed4895f96d3264d6 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiAxZGRjMWEwYjQxNTVhNzdhNTQ0MTVhODhlZDQ4OTVmOTZkMzI2 NGQ2CkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDIwLTA5LTI5VDIxOjA4OjMxKzA5OjAwClN0YXRzICA6ICswLy0yNjU4IGluIDEgZmlsZShz KQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy8xZGRj MWEwYjQxNTVhNzdhNTQ0MTVhODhlZDQ4OTVmOTZkMzI2NGQ2P2JyYW5jaD1hdXRvdG9vbAoKTG9n OgpEZWxldGUgdXBzdHJlYW1lZCBpYnVzLUhFQUQucGF0Y2gKCi0tLQpkaWZmIC0tZ2l0IGEvaWJ1 cy1IRUFELnBhdGNoIGIvaWJ1cy1IRUFELnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBhMGY2ZTNhLi4wMDAwMDAwCi0tLSBhL2lidXMtSEVBRC5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDI2NTggKzAsMCBAQAotRnJvbSA3YjBkMDkxODM5YTRmMTMxNWJhMjE2MTc1ZmIyNzg3 ZTg2ZjdmYTMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVHVlLCAzIE1hciAyMDIwIDE3OjA4OjMwICsw OTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNyYy90ZXN0czogRGVsZXRlIGdyYXZlcyBpbiBzdWJzdGl0 dXRpb24gaW4KLSBpYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIKLQotRGVsZXRlIHRoZSBzaW5n bGUgcXVvdGF0aW9ucyB0byBlbmNsb3NlIGdyYXZlIGNocmFjdGVycyBiZWNhdXNlCi1EQVNIIHNh dmVzIHRoZSBzaW5nbGUgcXVvdGVkICdgaWQgLXVgJyBhcyB0aGUgcmF3IHN0cmluZyBpbiB0aGUg Y29tbWFuZAotc3Vic3RpdHV0aW9uIG5vdCB0byBiZSBleHRyYWN0ZWQuCi0KLUJVRz1odHRwczov L2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yMTg5Ci0tLS0KLSBzcmMvdGVzdHMvaWJ1cy1k ZXNrdG9wLXRlc3RpbmctcnVubmVyLmluIHwgNyArKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9p YnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIuaW4gYi9zcmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRl c3RpbmctcnVubmVyLmluCi1pbmRleCAwZDlhODQ3Yy4uZjkyMzhlNjkgMTAwNzU1Ci0tLS0gYS9z cmMvdGVzdHMvaWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyLmluCi0rKysgYi9zcmMvdGVzdHMv aWJ1cy1kZXNrdG9wLXRlc3RpbmctcnVubmVyLmluCi1AQCAtNCw3ICs0LDcgQEAKLSAjCi0gIyBp YnVzIC0gVGhlIElucHV0IEJ1cwotICMKLS0jIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyMgQ29weXJpZ2h0IChjKSAy MDE4LTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0gIyBD b3B5cmlnaHQgKGMpIDIwMTggUmVkIEhhdCwgSW5jLgotICMKLSAjIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci1AQCAt MzEsNyArMzEsOCBAQAotICMgUE9TSVggc2ggaGFzIG5vICdlY2hvIC1lJwotIDogJHtFQ0hPOj0n L3Vzci9iaW4vZWNobyd9Ci0gIyBQT1NJWCBzaCBoYXMgJFVJRAotLTogJHtVSUQ6PSdgaWQgLXVg J30KLSsjIERBU0ggc2F2ZXMgdGhlIGdyYXZlcyBpbiAnYGAnIGFzIGNoYXJhY3RlcnMgbm90IHRv IGJlIGV4dHJhY3RlZAotKzogJHtVSUQ6PWBpZCAtdWB9Ci0gCi0gCi0gUFJPR05BTUU9YGJhc2Vu YW1lICQwYAotQEAgLTE3MCw3ICsxNzEsNyBAQCBfRU9GCi0gcnVuX2RidXNfZGFlbW9uKCkKLSB7 Ci0gICAgICMgVXNlIGRidXMtbGF1bmNoIC0tZXhpdC13aXRoLXNlc3Npb24gbGF0ZXIgaW5zdGVh ZCBvZiAtLXNoLXN5bnRheAotLSAgICBleHBvcnQgREJVU19TRVNTSU9OX0JVU19BRERSRVNTPXVu aXg6cGF0aD0vcnVuL3VzZXIvJFVJRC9idXMKLSsgICAgZXhwb3J0IERCVVNfU0VTU0lPTl9CVVNf QUREUkVTUz0idW5peDpwYXRoPS9ydW4vdXNlci8kVUlEL2J1cyIKLSB9Ci0gCi0gcnVuX2Rlc2t0 b3AoKQotLS0gCi0yLjI0LjEKLQotRnJvbSA4Y2UyNTIwOGMzZjRhZGZkMjkwYTAzMmM2YWE3Mzlk MmI3NTgwZWIxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQ2FybG9zIEdhcm5hY2hv IDxjYXJsb3NnQGdub21lLm9yZz4KLURhdGU6IFRodSwgMTIgTWFyIDIwMjAgMTY6MDI6MTYgKzA5 MDAKLVN1YmplY3Q6IFtQQVRDSF0gc3JjOiBVc2UgV0FZTEFORF9ESVNQTEFZIG9uIFdheWxhbmQg c2Vzc2lvbnMgdG8gbWFrZSB1cAotIElCdXMgc29ja2V0IG5hbWUKLQotSW4gV2F5bGFuZCBzZXNz aW9ucywgR05PTUUgU2hlbGwgMy4zNiBpcyBsZXZlcmFnaW5nIDIgWDExIERpc3BsYXkKLWNvbm5l Y3Rpb25zIHNvIG9uZSBpcyB1c2VkIHRvIHNldCB1cCBhbGwgc2VydmljZXMgZm9yIGEgIlgxMSBz ZXNzaW9uIgotYmVmb3JlIHVzZXIgYXBwbGljYXRpb25zIGNvbm5lY3RlZCB0byB0aGUgb3RoZXIg ZGlzcGxheSBtaWdodCByZXF1aXJlIGl0LgotVGhpcyBhbGxvd3Mgc2VhbWxlc3NseSBzdGFydGlu ZyBYd2F5bGFuZCBvbiBkZW1hbmQgdG8gWDExIHVzZXIgYXBwbGljYXRpb25zLgotCi1JQnVzIGhl cmUgYmVsb25ncyB0byB0aGUgZmlyc3QgZGVzY3JpYmVkIGNvbm5lY3Rpb24sIGl0IGlzIHN0YXJ0 ZWQKLWV4cGxpY2l0bHkgb24gdGhhdCBkaXNwbGF5IGJ5IEdOT01FIFNoZWxsIGFzIGl0IGlzIG5l Y2Vzc2FyeSB0byBzZXQgdXAKLWlidXMteDExIGJlZm9yZSBhbnkgb3RoZXIgWDExIGNsaWVudCBt aWdodCB3YW50IHRvIHVzZSBpdC4KLQotSG93ZXZlciB0aGUgdXNlIG9mIHRoaXMgInNlY29uZGFy eSIgZGlzcGxheSByZXN1bHRzIGluIElCdXMgZGFlbW9uIGxlZnQKLXVuYWJsZSB0byB0YWxrIHRv IGFwcGxpY2F0aW9ucywgYXMgdGhlIHNvY2tldCBuYW1lIGlzIGRlcGVuZGVudCBvbiB0aGUKLURJ U1BMQVkgZW52dmFyIGFuZCBpYnVzL2FwcGxpY2F0aW9ucyBkb24ndCBhZ3JlZSBvbiBpdHMgY29u dGVudC4KLQotRm9yIHdheWxhbmQgc2Vzc2lvbnMsIG1ha2UgaXQgbG9vayBmb3IgV0FZTEFORF9E SVNQTEFZLCBhcyB0aGF0J2xsIGhhdmUKLXRoZSBzaW1pbGFyICJwZXIgc2Vzc2lvbiBidXMiIGJl aGF2aW9yIHRoYXQgdGhpcyBzZWVtcyB0byBsb29rIGFmdGVyLgotCi1CVUc9aHR0cHM6Ly9naXRs YWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsL2lzc3Vlcy8yMzQxCi0tLS0KLSBzcmMvaWJ1 c3NoYXJlLmMgfCAxMSArKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvaWJ1c3NoYXJlLmMgYi9zcmMv aWJ1c3NoYXJlLmMKLWluZGV4IDBkNTBkM2Y1Li5lMGVmMmNlMCAxMDA2NDQKLS0tLSBhL3NyYy9p YnVzc2hhcmUuYwotKysrIGIvc3JjL2lidXNzaGFyZS5jCi1AQCAtMTAwLDYgKzEwMCw3IEBAIGli dXNfZ2V0X3NvY2tldF9wYXRoICh2b2lkKQotICAgICAgICAgZ2NoYXIgKmRpc3BsYXk7Ci0gICAg ICAgICBnY2hhciAqZGlzcGxheW51bWJlciA9ICIwIjsKLSAgICAgICAgIC8qIGdjaGFyICpzY3Jl ZW5udW1iZXIgPSAiMCI7ICovCi0rICAgICAgICBnYm9vbGVhbiBpc193YXlsYW5kID0gRkFMU0U7 Ci0gICAgICAgICBnY2hhciAqcDsKLSAKLSAgICAgICAgIHBhdGggPSBnX3N0cmR1cCAoZ19nZXRl bnYgKCJJQlVTX0FERFJFU1NfRklMRSIpKTsKLUBAIC0xMDgsMTMgKzEwOSwxOSBAQCBpYnVzX2dl dF9zb2NrZXRfcGF0aCAodm9pZCkKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIGlmIChfZGlzcGxh eSA9PSBOVUxMKSB7Ci0tICAgICAgICAgICAgZGlzcGxheSA9IGdfc3RyZHVwIChnX2dldGVudiAo IkRJU1BMQVkiKSk7Ci0rICAgICAgICAgICAgZGlzcGxheSA9IGdfc3RyZHVwIChnX2dldGVudiAo IldBWUxBTkRfRElTUExBWSIpKTsKLSsgICAgICAgICAgICBpZiAoZGlzcGxheSkKLSsgICAgICAg ICAgICAgICAgaXNfd2F5bGFuZCA9IFRSVUU7Ci0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAg ICAgICAgICBkaXNwbGF5ID0gZ19zdHJkdXAgKGdfZ2V0ZW52ICgiRElTUExBWSIpKTsKLSAgICAg ICAgIH0KLSAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgIGRpc3BsYXkgPSBnX3N0cmR1cCAo X2Rpc3BsYXkpOwotICAgICAgICAgfQotIAotLSAgICAgICAgaWYgKGRpc3BsYXkpIHsKLSsgICAg ICAgIGlmIChpc193YXlsYW5kKSB7Ci0rICAgICAgICAgICAgZGlzcGxheW51bWJlciA9IGRpc3Bs YXk7Ci0rICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXkpIHsKLSAgICAgICAgICAgICBwID0gZGlz cGxheTsKLSAgICAgICAgICAgICBob3N0bmFtZSA9IGRpc3BsYXk7Ci0gICAgICAgICAgICAgZm9y ICg7ICpwICE9ICc6JyAmJiAqcCAhPSAnXDAnOyBwKyspOwotLS0gCi0yLjI0LjEKLQotRnJvbSA1 NzY1YmZkNjlmYjJhYjExNzQzNzhmYmIwZDhjYWM3ZjJiZDI2MTBmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogQ2hhbmd3b28gUnl1IDxjd3J5dUBkZWJpYW4ub3JnPgotRGF0ZTogV2Vk LCAxNSBBcHIgMjAyMCAxNzo0MzoxNCArMDkwMAotU3ViamVjdDogW1BBVENIXSBjbGllbnQvZ3Rr MjogUmVtb3ZlIGdsaWJfY2hlY2tfdmVyc2lvbigpIGluIGd0ayBpbW1vZHVsZQotCi1JbiB0aGUg Z3RrMi9ndGszIGltbW9kdWxlLCBnbGliX2NoZWNrX3ZlcnNpb24oKSBpcyBiZWluZyB1c2VkIHRv IG1ha2Ugc3VyZQotdGhhdCB0aGUgaW5zdGFsbGVkIGdsaWIgdmVyc2lvbiBpcyBub3Qgb2xkZXIg dGhhbiB0aGUgZ2xpYiB2ZXJzaW9uIHdoaWNoIGlidXMKLWlzIGJ1aWx0IHdpdGguCi0KLUJ1dCB0 aGVyZSBpcyBubyByZWFzb24gd2h5IGdsaWIgdmVyc2lvbiBpcyBjaGVja2VkIGluIHJ1bnRpbWUu IExpYnJhcnkKLWNvbXBhdGliaWxpdHkgaXMgYWxyZWFkeSBiZWluZyBjaGVja2VkIG1vcmUgcHJl Y2lzZWx5IGJ5IHBhY2thZ2luZyBzeXN0ZW1zIGFuZAotbGlua2Vycy4KLQotVGhpcyB2ZXJzaW9u IGNoZWNrIGNhbiBicmVhayB0aGUgaWJ1cyBndGsgaW1tb2R1bGUgd2hlbiB1c2VkIHdpdGggYW4g b2xkZXIgYnV0Ci1jb21wYXRpYmxlIHZlcnNpb24gb2YgZ2xpYiwgc3VjaCBhcyBnbGliIDIuNjIu eCB3aGljaCBpcyBjb21wYXRpYmxlIHdpdGgKLTIuNjQueC4KLQotQlVHPWh0dHBzOi8vZ2l0aHVi LmNvbS9pYnVzL2lidXMvaXNzdWVzLzIyMDAKLS0tLQotIGNsaWVudC9ndGsyL2lidXNpbS5jIHwg NCArLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAzIGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIvaWJ1c2ltLmMgYi9jbGllbnQvZ3RrMi9pYnVzaW0u YwotaW5kZXggYmZhY2QwZjAuLmQ3MDgwMGQzIDEwMDY0NAotLS0tIGEvY2xpZW50L2d0azIvaWJ1 c2ltLmMKLSsrKyBiL2NsaWVudC9ndGsyL2lidXNpbS5jCi1AQCAtNDEsOSArNDEsNyBAQCBzdGF0 aWMgY29uc3QgR3RrSU1Db250ZXh0SW5mbyAqaW5mb19saXN0W10gPSB7Ci0gR19NT0RVTEVfRVhQ T1JUIGNvbnN0IGdjaGFyKgotIGdfbW9kdWxlX2NoZWNrX2luaXQgKEdNb2R1bGUgKm1vZHVsZSkK LSB7Ci0tICAgIHJldHVybiBnbGliX2NoZWNrX3ZlcnNpb24gKEdMSUJfTUFKT1JfVkVSU0lPTiwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xJQl9NSU5PUl9WRVJTSU9OLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKLSsgICAgcmV0dXJuIG51bGw7Ci0gfQot IAotIEdfTU9EVUxFX0VYUE9SVCB2b2lkCi0tLSAKLTIuMjQuMQotCi1Gcm9tIDhkYTAxNjc2NGNl ZTk2MTZjY2E0NjU4ZDFmYjMxMWQ2YjNiZmMwZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDE1 IEFwciAyMDIwIDE3OjU1OjAzICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNyYy90ZXN0czogRml4 IHRvIGdldCBmb2N1cyBldmVudHMgd2l0aCBzdSBpbgotIGlidXMtZGVza3RvcC10ZXN0aW5nLXJ1 bm5lcgotCi1HdGtXaW5kb3cgaGF2ZW4ndCByZWNlaXZlZCBmb2N1cyBldmVudHMgaW4gYW55IHRl c3QgY2FzZXMgc2luY2UgRmVkb3JhIDMxCi13aGVuZXZlciBBbnNpYmxlIHJ1bnMgaWJ1cy1kZXNr dG9wLXRlc3RpbmctcnVubmVyIGFmdGVyIGBzdSByb290YC4KLVNlZW1zIHN1IGNvbW1hbmQgZG9l cyBub3QgcnVuIHN5c3RlbWQgYXV0b21hdGljYWxseSBhbmQgbm93IHN5c3RlbWQKLXJlcXVpcmVz IFhER19SVU5USU1FX0RJUiBhbmQgQW5zaWJsZSByZXF1aXJlcyByb290IGFjY2VzcyB3aXRoIHNz aC4KLVRoaXMgZml4IHJlcXVpcmVzIHRvIHJlc3RhcnQgc3NoZCB3aXRoIG1vZGlmaWVkIC9ldGMv c3NoL3NzaGRfY29uZmlnCi13aXRoICJQZXJtaXRSb290TG9naW4geWVzIiBpbiBvcmRlciB0byBy dW4gd2l0aCBzdSBjb21tYW5kLgotCi1BbnNpYmxlIHdpdGggaWJ1cy1kZXNrdG9wLXRlc3Rpbi1y dW5uZXIgaGFzIHdvcmtlZCBmaW5lIGlmIHJvb3QgY29uc29sZQotbG9naW4gaXMgdXNlZCB3aXRo b3V0IHRoaXMgcGF0Y2ggYmVjYXVzZSBQQU0gcnVucyBzeXN0ZW1kIGJ5IGxvZ2luLgotLS0tCi0g c3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbiB8IDM2ICsrKysrKysrKysr KysrKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1 bm5lci5pbiBiL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1ydW5uZXIuaW4KLWluZGV4 IGY5MjM4ZTY5Li5mNzYwZmQ1YiAxMDA3NTUKLS0tLSBhL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3At dGVzdGluZy1ydW5uZXIuaW4KLSsrKyBiL3NyYy90ZXN0cy9pYnVzLWRlc2t0b3AtdGVzdGluZy1y dW5uZXIuaW4KLUBAIC00OSw2ICs0OSw3IEBAIFBJRF9YT1JHPTAKLSBQSURfR05PTUVfU0VTU0lP Tj0wCi0gVEVTVElOR19SVU5ORVI9ImRlZmF1bHQiCi0gVEVTVFM9IiIKLStUSU1FT1VUPTMwMAot IEdSRUVOPSdcMDMzWzA7MzJtJwotIFJFRD0nXDAzM1swOzMxbScKLSBOQz0nXDAzM1swbScKLUBA IC04NCw2ICs4NSw3IEBAIHVzYWdlKCkKLSAiLXIsIC0tcnVubmVyPVJVTk5FUiAgICAgICAgICAg ICAgUnVuIFRFU1RTIHByb2dyYW1zIHdpdGggYSB0ZXN0IFJVTk5FUi5cbiIgICAgXAotICIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVU5OREVSID0gZ25vbWUgb3IgZGVmYXVsdC5c biIgICAgICAgICAgICAgICBcCi0gIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl ZmF1bHQgaXMgYW4gZW1iZWRkZWQgcnVubmVyLlxuIiAgICAgICAgICAgIFwKLSsiLVQsIC0tdGlt ZW91dD1USU1FT1VUICAgICAgICAgICAgU2V0IHRpbWVvdXQgKGRlZmF1bHQgVElNRU9VVCBpcyAz MDAgc2VjKS5cbiIgXAotICItbywgLS1vdXRwdXQ9T1VUUFVUX0ZJTEUgICAgICAgICBPVXRwdXQg dGhlIGxvZyB0byBPVVRQVVRfRklMRVxuIiAgICAgICAgICAgICBcCi0gIi1PLCAtLXJlc3VsdD1S RVNVTFRfRklMRSAgICAgICAgIE9VdHB1dCB0aGUgcmVzdWx0IHRvIFJFU1VMVF9GSUxFXG4iICAg ICAgICAgIFwKLSAiIgotQEAgLTkyLDggKzk0LDggQEAgdXNhZ2UoKQotIHBhcnNlX2FyZ3MoKQot IHsKLSAgICAgIyBUaGlzIGlzIEdOVSBnZXRvcHQuICJzdWRvIHBvcnQgZ2V0b3B0IiBpbiBCU0Q/ Ci0tICAgIEFSR1M9YGdldG9wdCAtbyBodmI6czpjZDp0OnI6bzpPOiAtLWxvbmcgXAotLSAgICAg ICAgICBoZWxwLHZlcnNpb24sYnVpbGRkaXI6LHNyY2Rpcjosbm8tZ3JhcGhpY3MsZGVza3RvcDos dGVzdHM6LHJ1bm5lcjosb3V0cHV0OixyZXN1bHQ6XAotKyAgICBBUkdTPWBnZXRvcHQgLW8gaHZi OnM6Y2Q6dDpyOlQ6bzpPOiAtLWxvbmcgXAotKyAgICAgICAgICBoZWxwLHZlcnNpb24sYnVpbGRk aXI6LHNyY2Rpcjosbm8tZ3JhcGhpY3MsZGVza3RvcDosdGVzdHM6LHJ1bm5lcjosdGltZW91dDos b3V0cHV0OixyZXN1bHQ6XAotICAgICAgICAgLS0gIiRAImA7Ci0gICAgIGV2YWwgc2V0IC0tICIk QVJHUyIKLSAgICAgd2hpbGUgWyAxIF0gOyBkbwotQEAgLTEwNiw2ICsxMDgsNyBAQCBwYXJzZV9h cmdzKCkKLSAgICAgICAgIC1kIHwgLS1kZXNrdG9wICkgICAgIERFU0tUT1BfQ09NTUFORD0iJDIi OyBzaGlmdCAyOzsKLSAgICAgICAgIC10IHwgLS10ZXN0cyApICAgICAgIFRFU1RTPSIkMiI7IHNo aWZ0IDI7OwotICAgICAgICAgLXIgfCAtLXJ1bm5lciApICAgICAgVEVTVElOR19SVU5ORVI9IiQy Ijsgc2hpZnQgMjs7Ci0rICAgICAgICAtVCB8IC0tdGltZW91dCApICAgICBUSU1FT1VUPSIkMiI7 IHNoaWZ0IDI7OwotICAgICAgICAgLW8gfCAtLW91dHB1dCApICAgICAgVEVTVF9MT0c9IiQyIjsg c2hpZnQgMjs7Ci0gICAgICAgICAtTyB8IC0tcmVzdWx0ICkgICAgICBSRVNVTFRfTE9HPSIkMiI7 IHNoaWZ0IDI7OwotICAgICAgICAgLS0gKSAgICAgICAgICAgICAgICAgc2hpZnQ7IGJyZWFrOzsK LUBAIC0xNjYsMTEgKzE2OSwzNyBAQCBfRU9GCi0gICAgIGZpCi0gICAgICMgYHN1YCBjb21tYW5k IGRvZXMgbm90IHJ1biBsb2dpbmN0bAotICAgICBleHBvcnQgWERHX1NFU1NJT05fVFlQRT0neDEx JwotKyAgICBleHBvcnQgWERHX1NFU1NJT05fQ0xBU1M9dXNlcgotKyAgICAjIGBzdWAgY29tbWFu ZCBkb2VzIG5vdCBnZXQgZm9jdXMgaW4gZXZlbnRzIHdpdGhvdXQgdGhpcyB2YXJpYWJsZS4KLSsg ICAgIyBOZWVkIHRvIHJlc3RhcnQgc3NoZCBhZnRlciBzZXQgIlBlcm1pdFJvb3RMb2dpbiB5ZXMi IGluIHNzaGRfY29uZmlnCi0rICAgIGlmIFsgIngkWERHX1JVTlRJTUVfRElSIiA9IHggXSA7IHRo ZW4KLSsgICAgICAgIGV4cG9ydCBYREdfUlVOVElNRV9ESVI9L3J1bi91c2VyLyRVSUQKLSsgICAg ICAgIGlzX3Jvb3RfbG9naW49YGdyZXAgIl5QZXJtaXRSb290TG9naW4iIC9ldGMvc3NoL3NzaGRf Y29uZmlnIHwgZ3JlcCB5ZXNgCi0rICAgICAgICBpZiBbICJ4JEFOU0lCTEUiICE9IHggXSAmJiBb ICJ4JGlzX3Jvb3RfbG9naW4iID0geCBdIDsgdGhlbgotKyAgICAgICAgICAgIHByaW50X2xvZyAt ZSAiJHtSRUR9RkFJTCR7TkN9OiBObyBwZXJtaXNzaW9uIHRvIGdldCBmb2N1cy1pbiBldmVudHMg aW4gR3RrV2luZG93IHdpdGggYW5zaWJsZSIKLSsgICAgICAgICAgICBlY2hvICJzdSBjb21tYW5k IGRvZXMgbm90IGNvbmZpZ3VyZSBuZWNlc3NhcnkgbG9naW4gaW5mbyAiICAgICAgICAgXAotKyAg ICAgICAgICAgICAgICAgIndpdGggc3lzdGVtZCBhbmQgR3RrV2luZG93IGNhbm5vdCByZWNlaXZl IGZvY3VzLWV2ZW50cyAiICAgICBcCi0rICAgICAgICAgICAgICAgICAid2hlbiBpYnVzLWRlc2t0 b3AtdGVzdGluZy1ydW5uZXIgaXMgZXhlY3V0ZWQgYnkgIiAgICAgICAgICAgIFwKLSsgICAgICAg ICAgICAgICAgICJhbnNpYmxlLXBsYXlib29rLiIgPj4gJFRFU1RfTE9HCi0rICAgICAgICAgICAg ZWNobyAiRW5hYmxpbmcgcm9vdCBsb2dpbiB2aWEgc3NoZCwgcmVzdGFydGluZyBzc2hkLCBzZXQg IiAgICAgICAgIFwKLSsgICAgICAgICAgICAgICAgICJYREdfUlVOVElNRV9ESVIgY2FuIHJlc29s dmUgdGhlIHByb2JsZW0gdW5kZXIgIiAgICAgICAgICAgICAgXAotKyAgICAgICAgICAgICAgICAg ImFuc2libGUtcGxheWJvb2suIiA+PiAkVEVTVF9MT0cKLSsgICAgICAgICAgICBleGl0IDI1NQot KyAgICAgICAgZmkKLSsgICAgZmkKLSsgICAgIyAgRG8gd2UgbmVlZCBYREdfU0VTU0lPTl9JRCBh bmQgWERHX1NFQVQ/Ci0rICAgICNleHBvcnQgWERHX0NPTkZJR19ESVJTPS9ldGMveGRnCi0rICAg ICNleHBvcnQgWERHX1NFU1NJT05fSUQ9MTAKLSsgICAgI2V4cG9ydCBYREdfU0VTU0lPTl9ERVNL VE9QPWdub21lCi0rICAgICNleHBvcnQgWERHX1NFQVQ9c2VhdDAKLSB9Ci0gCi0gcnVuX2RidXNf ZGFlbW9uKCkKLSB7Ci0gICAgICMgVXNlIGRidXMtbGF1bmNoIC0tZXhpdC13aXRoLXNlc3Npb24g bGF0ZXIgaW5zdGVhZCBvZiAtLXNoLXN5bnRheAotKyAgICAjIEdOT01FIHVzZXMgYSB1bml4OmFi c3RyYWN0IGFkZHJlc3MgYW5kIGl0IGVmZmVjdHMgZ3NldHRpbmdzIHNldCB2YWx1ZXMKLSsgICAg IyBpbiBlYWNoIHRlc3QgY2FzZS4KLSsgICAgIyBUT0RPOiBTaG91bGQgd2UgY29tbWVudCBvdXQg dGhpcyBsaW5lPwotICAgICBleHBvcnQgREJVU19TRVNTSU9OX0JVU19BRERSRVNTPSJ1bml4OnBh dGg9L3J1bi91c2VyLyRVSUQvYnVzIgotIH0KLSAKLUBAIC0yODgsNyArMzE3LDggQEAgcnVuX2du b21lX2Rlc2t0b3BfdGVzdGluZ19ydW5uZXIoKQotICAgICAgICAgICAgIGZhaWw9MQotICAgICAg ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICBmaQotLSAgICAgICAgZ25vbWUtZGVza3RvcC10ZXN0 aW5nLXJ1bm5lciAkdHN0IDI+PiRURVNUX0xPRyAxPj4kVEVTVF9MT0cKLSsgICAgICAgIGdub21l LWRlc2t0b3AtdGVzdGluZy1ydW5uZXIgLS10aW1lb3V0PSRUSU1FT1VUICR0c3QgXAotKyAgICAg ICAgICAgICAgICAyPj4kVEVTVF9MT0cgMT4+JFRFU1RfTE9HCi0gICAgICAgICByZXR2YWw9JD8K LSAgICAgICAgIHJlYWQgcGFzcyBmYWlsIDw8IEVPRgotICAgICAgICAgYGNvdW50X2Nhc2VfcmVz dWx0ICRyZXR2YWwgJHBhc3MgJGZhaWxgCi0tLSAKLTIuMjQuMQotCi1Gcm9tIDBiOWQ5MzY1OTg4 YTk2YTJiYzMxYzQ4NjI0ZjljMmI4MDgxNjAxYjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDIy IEFwciAyMDIwIDIwOjE3OjEyICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGNsaWVudC9ndGsyOiBG aXggdHlwbwotCi0tLS0KLSBjbGllbnQvZ3RrMi9pYnVzaW0uYyAgICAgICAgICAgICAgICAgICAg IHwgNCArKy0tCi0gc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbiB8IDIg Ky0KLSAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL2NsaWVudC9ndGsyL2lidXNpbS5jIGIvY2xpZW50L2d0azIvaWJ1c2ltLmMK LWluZGV4IGQ3MDgwMGQzLi41NTYwOWNlNyAxMDA2NDQKLS0tLSBhL2NsaWVudC9ndGsyL2lidXNp bS5jCi0rKysgYi9jbGllbnQvZ3RrMi9pYnVzaW0uYwotQEAgLTIsNyArMiw3IEBACi0gLyogdmlt OnNldCBldCB0cz00OiAqLwotIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0 IChDKSAyMDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICog Q29weXJpZ2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykg MjAwOC0yMDIwIFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNDEsNyAr NDEsNyBAQCBzdGF0aWMgY29uc3QgR3RrSU1Db250ZXh0SW5mbyAqaW5mb19saXN0W10gPSB7Ci0g R19NT0RVTEVfRVhQT1JUIGNvbnN0IGdjaGFyKgotIGdfbW9kdWxlX2NoZWNrX2luaXQgKEdNb2R1 bGUgKm1vZHVsZSkKLSB7Ci0tICAgIHJldHVybiBudWxsOwotKyAgICByZXR1cm4gTlVMTDsKLSB9 Ci0gCi0gR19NT0RVTEVfRVhQT1JUIHZvaWQKLWRpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1k ZXNrdG9wLXRlc3RpbmctcnVubmVyLmluIGIvc3JjL3Rlc3RzL2lidXMtZGVza3RvcC10ZXN0aW5n LXJ1bm5lci5pbgotaW5kZXggZjc2MGZkNWIuLjQyMzJjNTQ5IDEwMDc1NQotLS0tIGEvc3JjL3Rl c3RzL2lidXMtZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbgotKysrIGIvc3JjL3Rlc3RzL2lidXMt ZGVza3RvcC10ZXN0aW5nLXJ1bm5lci5pbgotQEAgLTE3Myw3ICsxNzMsNyBAQCBfRU9GCi0gICAg ICMgYHN1YCBjb21tYW5kIGRvZXMgbm90IGdldCBmb2N1cyBpbiBldmVudHMgd2l0aG91dCB0aGlz IHZhcmlhYmxlLgotICAgICAjIE5lZWQgdG8gcmVzdGFydCBzc2hkIGFmdGVyIHNldCAiUGVybWl0 Um9vdExvZ2luIHllcyIgaW4gc3NoZF9jb25maWcKLSAgICAgaWYgWyAieCRYREdfUlVOVElNRV9E SVIiID0geCBdIDsgdGhlbgotLSAgICAgICAgZXhwb3J0IFhER19SVU5USU1FX0RJUj0vcnVuL3Vz ZXIvJFVJRAotKyAgICAgICAgZXhwb3J0IFhER19SVU5USU1FX0RJUj0iL3J1bi91c2VyLyRVSUQi Ci0gICAgICAgICBpc19yb290X2xvZ2luPWBncmVwICJeUGVybWl0Um9vdExvZ2luIiAvZXRjL3Nz aC9zc2hkX2NvbmZpZyB8IGdyZXAgeWVzYAotICAgICAgICAgaWYgWyAieCRBTlNJQkxFIiAhPSB4 IF0gJiYgWyAieCRpc19yb290X2xvZ2luIiA9IHggXSA7IHRoZW4KLSAgICAgICAgICAgICBwcmlu dF9sb2cgLWUgIiR7UkVEfUZBSUwke05DfTogTm8gcGVybWlzc2lvbiB0byBnZXQgZm9jdXMtaW4g ZXZlbnRzIGluIEd0a1dpbmRvdyB3aXRoIGFuc2libGUiCi0tLSAKLTIuMjQuMQotCi1Gcm9tIDhj NDEyNWJjNzhjZTM1MDJiNWFlYjA1M2U3MDI5Y2MyNTk0ZjgzZjIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiBDaGFuZ3dvbyBSeXUgPGN3cnl1QGRlYmlhbi5vcmc+Ci1EYXRlOiBTdW4s IDEyIEFwciAyMDIwIDA1OjI4OjE1ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNyYzogQnVpbGQg dGhlIEVtb2ppIGRpY3Rpb25hcmllcyBpbiBwYXJhbGxlbAotCi1JbnN0ZWFkIG9mIGJ1aWxkaW5n IEVtb2ppIGRpY3Rpb25hcmllcyBzcmMvZGljdHMvZW1vamktKi5kaWN0IGluIHNlcXVlbmNlLCBh Ci1wYXR0ZXJuIHJ1bGUgaXMgc3BlY2lmaWVkIGZvciB0aGVtLiBUaGUgbWFrZSAtak4gb3B0aW9u IGJ1aWxkcyB0aGUKLWRpY3Rpb25hcmllcyBpbiBwYXJhbGxlbC4KLQotVGhlIEdOVSBtYWtlIGV4 dGVuc2lvbnMgbGlrZSBwYXR0ZXJuIHJ1bGUgYW5kIHBhdHN1YnN0IGZ1bmN0aW9uIGFyZSB1c2Vk IGZvcgotaXQuIEJ1dCBzcmMvTWFrZWZpbGUuYW0gaGFzIGhhZCBvdGhlciBHTlUgbWFrZSBleHRl bnNpb25zIGZvciBhIHdoaWxlLCBzbwotdXNpbmcgbW9yZSBleHRlbnNpb25zIHNob3VsZCBub3Qg bWFrZSBwb3J0YWJpbGl0eSB3b3JzZS4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2li dXMvcHVsbC8yMjA5Ci0tLS0KLSBzcmMvTWFrZWZpbGUuYW0gfCA1NSArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDI3IGlu c2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxl LmFtIGIvc3JjL01ha2VmaWxlLmFtCi1pbmRleCBhOGUzZDA3ZC4uOTlkZTFhYjcgMTAwNjQ0Ci0t LS0gYS9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQotQEAgLTI0Niw0MiAr MjQ2LDQxIEBAIGlmIEVOQUJMRV9FTU9KSV9ESUNUCi0gQU1fQ1BQRkxBR1MgKz0gLURFTkFCTEVf RU1PSklfRElDVAotIAotIGRpY3RkaXIgPSAkKHBrZ2RhdGFkaXIpL2RpY3RzCi0tZGljdF9EQVRB ID0gZGljdHMvZW1vamktZW4uZGljdAotIExBTkdfRklMRVMgPSAkKGJhc2VuYW1lICQobm90ZGly ICQod2lsZGNhcmQgJChFTU9KSV9BTk5PVEFUSU9OX0RJUikvKi54bWwpKSkKLStFTU9KSV9ESUNU X0ZJTEVTID0gJChwYXRzdWJzdCAlLGRpY3RzL2Vtb2ppLSUuZGljdCwkKExBTkdfRklMRVMpKQot K2RpY3RfREFUQSA9ICQoRU1PSklfRElDVF9GSUxFUykKLSAKLSBub2luc3RfUFJPR1JBTVMgKz0g ZW1vamktcGFyc2VyCi0gCi0tZGljdHMvZW1vamktZW4uZGljdDogZW1vamktcGFyc2VyCi0rZGlj dHMvZW1vamktJS5kaWN0OiBlbW9qaS1wYXJzZXIKLSAJJChBTV9WX2F0KWlmIHRlc3QgeCIkKExB TkdfRklMRVMpIiA9IHggOyB0aGVuIFwKLSAJICAgIGVjaG8gIldBUk5JTkc6IE5vdCBmb3VuZCAk KEVNT0pJX0FOTk9UQVRJT05fRElSKS9lbi54bWwiIDE+JjI7IFwKLSAJZmk7IFwKLS0JZm9yIGYg aW4gJChMQU5HX0ZJTEVTKSA7IGRvIFwKLS0JICAgIGlmIHRlc3QgLWYgZGljdHMvZW1vamktJCRm LmRpY3Q7IHRoZW4gXAotLQkgICAgICAgIGVjaG8gIkFscmVhZHkgZXhpc3RzIGRpY3RzL2Vtb2pp LSQkZi5kaWN0IjsgXAotLQkgICAgICAgIGNvbnRpbnVlOyBcCi0tCSAgICBmaTsgXAotLQkgICAg aWYgdGVzdCAtZiBcCi0tCSAgICAiJChFTU9KSV9BTk5PVEFUSU9OX0RJUikvLi4vYW5ub3RhdGlv bnNEZXJpdmVkLyQkZi54bWwiIDsgdGhlbiBcCi0tCSAgICAgICAgeG1sX2Rlcml2ZWRfb3B0aW9u PSItLXhtbC1kZXJpdmVkICQoRU1PSklfQU5OT1RBVElPTl9ESVIpLy4uL2Fubm90YXRpb25zRGVy aXZlZC8kJGYueG1sIjsgXAotKwlpZiB0ZXN0IC1mICRAOyB0aGVuIFwKLSsJICAgIGVjaG8gIkFs cmVhZHkgZXhpc3RzICRAIjsgXAotKwkgICAgZXhpdCAwOyBcCi0rCWZpOyBcCi0rCWlmIHRlc3Qg LWYgXAotKwkgICAgIiQoRU1PSklfQU5OT1RBVElPTl9ESVIpLy4uL2Fubm90YXRpb25zRGVyaXZl ZC8kKi54bWwiIDsgdGhlbiBcCi0rCSAgICAgICAgeG1sX2Rlcml2ZWRfb3B0aW9uPSItLXhtbC1k ZXJpdmVkICQoRU1PSklfQU5OT1RBVElPTl9ESVIpLy4uL2Fubm90YXRpb25zRGVyaXZlZC8kKi54 bWwiOyBcCi0gCSAgICAgICAgcGx1c19jb21tZW50PSJkZXJpdmVkIjsgXAotLQkgICAgZmk7IFwK LS0JICAgIGlmIHRlc3QgeCIkJGYiID0geGVuIDsgdGhlbiBcCi0tCSAgICAgICAgJChidWlsZGRp cikvZW1vamktcGFyc2VyIFwKLS0JICAgICAgICAgICAgLS11bmljb2RlLWVtb2ppLWRpciAkKFVO SUNPREVfRU1PSklfRElSKSBcCi0tCSAgICAgICAgICAgIC0teG1sICQoRU1PSklfQU5OT1RBVElP Tl9ESVIpLyQkZi54bWwgXAotLQkgICAgICAgICAgICAkJHhtbF9kZXJpdmVkX29wdGlvbiBcCi0t CSAgICAgICAgICAgIC0teG1sLWFzY2lpICQodG9wX3NyY2RpcikvZGF0YS9hbm5vdGF0aW9ucy9l bl9hc2NpaS54bWwgXAotLQkgICAgICAgICAgICAtLW91dC1jYXRlZ29yeSBpYnVzZW1vamlnZW4u aCBcCi0tCSAgICAgICAgICAgIC0tb3V0ICRAOyBcCi0tCSAgICBlbHNlIFwKLS0JICAgICAgICAk KGJ1aWxkZGlyKS9lbW9qaS1wYXJzZXIgXAotLQkgICAgICAgICAgICAtLXVuaWNvZGUtZW1vamkt ZGlyICQoVU5JQ09ERV9FTU9KSV9ESVIpIFwKLS0JICAgICAgICAgICAgLS14bWwgJChFTU9KSV9B Tk5PVEFUSU9OX0RJUikvJCRmLnhtbCBcCi0tCSAgICAgICAgICAgICQkeG1sX2Rlcml2ZWRfb3B0 aW9uIFwKLS0JICAgICAgICAgICAgLS1vdXQgZGljdHMvZW1vamktJCRmLmRpY3Q7IFwKLS0JICAg IGZpOyBcCi0tCSAgICBlY2hvICJHZW5lcmF0ZWQgJCRwbHVzX2NvbW1lbnQgZGljdHMvZW1vamkt JCRmLmRpY3QiOyBcCi0tCWRvbmUKLSsJZmk7IFwKLSsJaWYgdGVzdCB4IiQqIiA9IHhlbiA7IHRo ZW4gXAotKwkgICAgJChidWlsZGRpcikvZW1vamktcGFyc2VyIFwKLSsJICAgICAgICAtLXVuaWNv ZGUtZW1vamktZGlyICQoVU5JQ09ERV9FTU9KSV9ESVIpIFwKLSsJICAgICAgICAtLXhtbCAkKEVN T0pJX0FOTk9UQVRJT05fRElSKS8kKi54bWwgXAotKwkgICAgICAgICQkeG1sX2Rlcml2ZWRfb3B0 aW9uIFwKLSsJICAgICAgICAtLXhtbC1hc2NpaSAkKHRvcF9zcmNkaXIpL2RhdGEvYW5ub3RhdGlv bnMvZW5fYXNjaWkueG1sIFwKLSsJICAgICAgICAtLW91dC1jYXRlZ29yeSBpYnVzZW1vamlnZW4u aCBcCi0rCSAgICAgICAgLS1vdXQgJEA7IFwKLSsJZWxzZSBcCi0rCSAgICAkKGJ1aWxkZGlyKS9l bW9qaS1wYXJzZXIgXAotKwkgICAgICAgIC0tdW5pY29kZS1lbW9qaS1kaXIgJChVTklDT0RFX0VN T0pJX0RJUikgXAotKwkgICAgICAgIC0teG1sICQoRU1PSklfQU5OT1RBVElPTl9ESVIpLyQqLnht bCBcCi0rCSAgICAgICAgJCR4bWxfZGVyaXZlZF9vcHRpb24gXAotKwkgICAgICAgIC0tb3V0ICRA OyBcCi0rCWZpOyBcCi0rCWVjaG8gIkdlbmVyYXRlZCAkJHBsdXNfY29tbWVudCAkQCIKLSAKLSBp YnVzZW1vamlnZW4uaDogZGljdHMvZW1vamktZW4uZGljdAotIAkkKE5VTEwpCi0tLSAKLTIuMjMu MC5yYzEKLQotRnJvbSAwMjEwNWM0ZDQ4NjI4M2U2YjU2MTE4MWQ5YzkzNGQ0ZDIzZjJkNjVlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotRGF0ZTogVGh1LCAxNCBNYXkgMjAyMCAxNTo0ODozNCArMDkwMAotU3ViamVj dDogW1BBVENIXSBidXM6IEZpeCBTRUdWIGluIGJ1c19wYW5lbF9wcm94eV9mb2N1c19pbigpCi0K LVNFR1YgaW4gQlVTX0lTX1BBTkVMX1BST1hZKCkgaW4gYnVzX3BhbmVsX3Byb3h5X2ZvY3VzX2lu KCkKLUNoZWNrIGlmIEdEQnVzQ29ubmVjdCBpcyBjbG9zZWQgYmVmb3JlIGJ1c19wYW5lbF9wcm94 eV9uZXcoKSBpcyBjYWxsZWQuCi0KLUJVRz1yaGJ6IzEzNDkxNDgKLUJVRz1yaGJ6IzEzODUzNDkK LS0tLQotIGJ1cy9pYnVzaW1wbC5jIHwgMjUgKysrKysrKysrKysrKysrKysrKystLS0tLQotIDEg ZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvYnVzL2lidXNpbXBsLmMgYi9idXMvaWJ1c2ltcGwuYwotaW5kZXggODU3NjFkMzAuLmU0 MzJlODQ5IDEwMDY0NAotLS0tIGEvYnVzL2lidXNpbXBsLmMKLSsrKyBiL2J1cy9pYnVzaW1wbC5j Ci1AQCAtMiw4ICsyLDggQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwotIC8qIGlidXMgLSBU aGUgSW5wdXQgQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hh d24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTkgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAy MDA4LTIwMTkgUmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIwIFRha2Fv IEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykg MjAwOC0yMDIwIFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNDY0LDEz ICs0NjQsMTYgQEAgX2RidXNfbmFtZV9vd25lcl9jaGFuZ2VkX2NiIChCdXNEQnVzSW1wbCAgICpk YnVzLAotICAgICBlbHNlIGlmICghZ19zdHJjbXAwIChuYW1lLCBJQlVTX1NFUlZJQ0VfUEFORUxf RVhURU5TSU9OX0VNT0pJKSkKLSAgICAgICAgIHBhbmVsX3R5cGUgPSBQQU5FTF9UWVBFX0VYVEVO U0lPTl9FTU9KSTsKLSAKLS0gICAgaWYgKHBhbmVsX3R5cGUgIT0gUEFORUxfVFlQRV9OT05FKSB7 Ci0rICAgIGRvIHsKLSsgICAgICAgIGlmIChwYW5lbF90eXBlID09IFBBTkVMX1RZUEVfTk9ORSkK LSsgICAgICAgICAgICBicmVhazsKLSAgICAgICAgIGlmIChnX3N0cmNtcDAgKG5ld19uYW1lLCAi IikgIT0gMCkgewotICAgICAgICAgICAgIC8qIGEgUGFuZWwgcHJvY2VzcyBpcyBzdGFydGVkLiAq LwotICAgICAgICAgICAgIEJ1c0Nvbm5lY3Rpb24gKmNvbm5lY3Rpb247Ci0gICAgICAgICAgICAg QnVzSW5wdXRDb250ZXh0ICpjb250ZXh0ID0gTlVMTDsKLSAgICAgICAgICAgICBCdXNQYW5lbFBy b3h5ICAgKipwYW5lbCA9IChwYW5lbF90eXBlID09IFBBTkVMX1RZUEVfUEFORUwpID8KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpYnVzLT5wYW5lbCA6ICZpYnVzLT5l bW9qaV9leHRlbnNpb247Ci0rICAgICAgICAgICAgR0RCdXNDb25uZWN0aW9uICpkYnVzX2Nvbm5l Y3Rpb24gPSBOVUxMOwotIAotICAgICAgICAgICAgIGlmICgqcGFuZWwgIT0gTlVMTCkgewotICAg ICAgICAgICAgICAgICBpYnVzX3Byb3h5X2Rlc3Ryb3kgKChJQnVzUHJveHkgKikoKnBhbmVsKSk7 Ci1AQCAtNDc5LDkgKzQ4MiwyMSBAQCBfZGJ1c19uYW1lX293bmVyX2NoYW5nZWRfY2IgKEJ1c0RC dXNJbXBsICAgKmRidXMsCi0gICAgICAgICAgICAgICAgIGdfYXNzZXJ0ICgqcGFuZWwgPT0gTlVM TCk7Ci0gICAgICAgICAgICAgfQotIAotLSAgICAgICAgICAgIGNvbm5lY3Rpb24gPSBidXNfZGJ1 c19pbXBsX2dldF9jb25uZWN0aW9uX2J5X25hbWUgKEJVU19ERUZBVUxUX0RCVVMsIG5ld19uYW1l KTsKLSsgICAgICAgICAgICBjb25uZWN0aW9uID0gYnVzX2RidXNfaW1wbF9nZXRfY29ubmVjdGlv bl9ieV9uYW1lIChCVVNfREVGQVVMVF9EQlVTLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19uYW1lKTsKLSAgICAgICAg ICAgICBnX3JldHVybl9pZl9mYWlsIChjb25uZWN0aW9uICE9IE5VTEwpOwotIAotKyAgICAgICAg ICAgIGRidXNfY29ubmVjdGlvbiA9IGJ1c19jb25uZWN0aW9uX2dldF9kYnVzX2Nvbm5lY3Rpb24g KGNvbm5lY3Rpb24pOwotKyAgICAgICAgICAgIC8qIHJoYnojMTM0OTE0OCByaGJ6IzEzODUzNDkK LSsgICAgICAgICAgICAgKiBBdm9pZCBTRUdWIG9mIEJVU19JU19QQU5FTF9QUk9YWSAoaWJ1cy0+ cGFuZWwpCi0rICAgICAgICAgICAgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZHVyaW5nIGRl c3Ryb3lpbmcgdGhlIGNvbm5lY3Rpb24KLSsgICAgICAgICAgICAgKiBpbiB0aGlzIGNhc2U/ICov Ci0rICAgICAgICAgICAgaWYgKGRidXNfY29ubmVjdGlvbiA9PSBOVUxMIHx8Ci0rICAgICAgICAg ICAgICAgIGdfZGJ1c19jb25uZWN0aW9uX2lzX2Nsb3NlZCAoZGJ1c19jb25uZWN0aW9uKSkgewot KyAgICAgICAgICAgICAgICBuZXdfbmFtZSA9ICIiOwotKyAgICAgICAgICAgICAgICBicmVhazsK LSsgICAgICAgICAgICB9Ci0rCi0gICAgICAgICAgICAgKnBhbmVsID0gYnVzX3BhbmVsX3Byb3h5 X25ldyAoY29ubmVjdGlvbiwgcGFuZWxfdHlwZSk7Ci0gICAgICAgICAgICAgaWYgKHBhbmVsX3R5 cGUgPT0gUEFORUxfVFlQRV9FWFRFTlNJT05fRU1PSkkpCi0gICAgICAgICAgICAgICAgIGlidXMt PmVuYWJsZV9lbW9qaV9leHRlbnNpb24gPSBGQUxTRTsKLUBAIC01MzUsNyArNTUwLDcgQEAgX2Ri dXNfbmFtZV9vd25lcl9jaGFuZ2VkX2NiIChCdXNEQnVzSW1wbCAgICpkYnVzLAotICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotLSAgICB9Ci0rICAgIH0gd2hp bGUgKDApOwotIAotICAgICBidXNfaWJ1c19pbXBsX2NvbXBvbmVudF9uYW1lX293bmVyX2NoYW5n ZWQgKGlidXMsIG5hbWUsIG9sZF9uYW1lLCBuZXdfbmFtZSk7Ci0gfQotLS0gCi0yLjI0LjEKLQot RnJvbSBmNTkxMzgxZTNjODkyOTQ3ZWNhZmZlOTEzMWI5MDM5YWI5MDE0NDk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29t PgotRGF0ZTogVGh1LCAxNCBNYXkgMjAyMCAxNjowMjowMCArMDkwMAotU3ViamVjdDogW1BBVENI XSBidXM6IEZpeCBTRUdWIGluIGJ1c19kYnVzX2ltcGxfbmFtZV9vd25lcl9jaGFuZ2VkKCkKLQot cmhieiMxNDA2Njk5IFNFR1YgaW4gbmV3X293bmVyIT1OVUxMIGluIGJ1c19kYnVzX2ltcGxfbmFt ZV9vd25lcl9jaGFuZ2VkKCkKLXdoaWNoIGlzIGNhbGxlZCBieSBidXNfbmFtZV9zZXJ2aWNlX3Jl bW92ZV9vd25lcigpCi1JZiBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25hbWUoKT09TlVMTCwg c2V0IG5ld19vd25lcj0iIiBpbgotYnVzX25hbWVfc2VydmljZV9yZW1vdmVfb3duZXIoKQotCi1y aGJ6IzE0MzIyNTIgU0VHViBpbiBvbGRfb3duZXIhPU5VTEwgaW4gYnVzX2RidXNfaW1wbF9uYW1l X293bmVyX2NoYW5nZWQoKQotd2hpY2ggaXMgY2FsbGVkIGJ5IGJ1c19uYW1lX3NlcnZpY2Vfc2V0 X3ByaW1hcnlfb3duZXIoKQotSWYgYnVzX2Nvbm5lY3Rpb25fZ2V0X3VuaXF1ZV9uYW1lKCk9PU5V TEwsIHNldCBvbGRfb3duZXI9IiIgaW4KLWJ1c19uYW1lX3NlcnZpY2Vfc2V0X3ByaW1hcnlfb3du ZXIoKQotCi1CVUc9cmhieiMxNDA2Njk5Ci1CVUc9cmhieiMxNDMyMjUyCi0tLS0KLSBidXMvZGJ1 c2ltcGwuYyB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLQotIDEgZmlsZSBjaGFuZ2Vk LCAyMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvYnVzL2Ri dXNpbXBsLmMgYi9idXMvZGJ1c2ltcGwuYwotaW5kZXggYjU0ZWY4MTcuLjU5Nzg3YTgwIDEwMDY0 NAotLS0tIGEvYnVzL2RidXNpbXBsLmMKLSsrKyBiL2J1cy9kYnVzaW1wbC5jCi1AQCAtMiw3ICsy LDggQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00OiAqLwotIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVz Ci0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0Bn bWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUmVkIEhhdCwgSW5jLgotKyAq IENvcHlyaWdodCAoQykgMjAxNS0yMDIwIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIwIFJlZCBIYXQsIEluYy4KLSAg KgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCi1AQCAtMzQ0LDYgKzM0NSw4IEBAIGJ1c19uYW1lX3NlcnZpY2Vf c2V0X3ByaW1hcnlfb3duZXIgKEJ1c05hbWVTZXJ2aWNlICAgICAqc2VydmljZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdXNDb25uZWN0aW9uT3duZXIgKm93bmVyLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c0RCdXNJbXBsICAgICAgICAq ZGJ1cykKLSB7Ci0rICAgIGdib29sZWFuIGhhc19vbGRfb3duZXIgPSBGQUxTRTsKLSsKLSAgICAg Z19hc3NlcnQgKHNlcnZpY2UgIT0gTlVMTCk7Ci0gICAgIGdfYXNzZXJ0IChvd25lciAhPSBOVUxM KTsKLSAgICAgZ19hc3NlcnQgKGRidXMgIT0gTlVMTCk7Ci1AQCAtMzUxLDYgKzM1NCwxMyBAQCBi dXNfbmFtZV9zZXJ2aWNlX3NldF9wcmltYXJ5X293bmVyIChCdXNOYW1lU2VydmljZSAgICAgKnNl cnZpY2UsCi0gICAgIEJ1c0Nvbm5lY3Rpb25Pd25lciAqb2xkID0gc2VydmljZS0+b3duZXJzICE9 IE5VTEwgPwotICAgICAgICAgICAgIChCdXNDb25uZWN0aW9uT3duZXIgKilzZXJ2aWNlLT5vd25l cnMtPmRhdGEgOiBOVUxMOwotIAotKyAgICAvKiByaGJ6IzE0MzIyNTIgSWYgYnVzX2Nvbm5lY3Rp b25fZ2V0X3VuaXF1ZV9uYW1lKCkgPT0gTlVMTCwKLSsgICAgICogIkhlbGxvIiBtZXRob2QgaXMg bm90IHJlY2VpdmVkIHlldC4KLSsgICAgICovCi0rICAgIGlmIChvbGQgIT0gTlVMTCAmJiBidXNf Y29ubmVjdGlvbl9nZXRfdW5pcXVlX25hbWUgKG9sZC0+Y29ubikgIT0gTlVMTCkgewotKyAgICAg ICAgaGFzX29sZF9vd25lciA9IFRSVUU7Ci0rICAgIH0KLSsKLSAgICAgaWYgKG9sZCAhPSBOVUxM KSB7Ci0gICAgICAgICBnX3NpZ25hbF9lbWl0IChkYnVzLAotICAgICAgICAgICAgICAgICAgICAg ICAgZGJ1c19zaWduYWxzW05BTUVfTE9TVF0sCi1AQCAtMzcwLDcgKzM4MCw4IEBAIGJ1c19uYW1l X3NlcnZpY2Vfc2V0X3ByaW1hcnlfb3duZXIgKEJ1c05hbWVTZXJ2aWNlICAgICAqc2VydmljZSwK LSAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgb3duZXItPmNvbm4s Ci0gICAgICAgICAgICAgICAgICAgIHNlcnZpY2UtPm5hbWUsCi0tICAgICAgICAgICAgICAgICAg IG9sZCAhPSBOVUxMID8gYnVzX2Nvbm5lY3Rpb25fZ2V0X3VuaXF1ZV9uYW1lIChvbGQtPmNvbm4p IDogIiIsCi0rICAgICAgICAgICAgICAgICAgIGhhc19vbGRfb3duZXIgPyBidXNfY29ubmVjdGlv bl9nZXRfdW5pcXVlX25hbWUgKG9sZC0+Y29ubikgOgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICIiLAotICAgICAgICAgICAgICAgICAgICBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25h bWUgKG93bmVyLT5jb25uKSk7Ci0gCi0gICAgIGlmIChvbGQgIT0gTlVMTCAmJiBvbGQtPmRvX25v dF9xdWV1ZSAhPSAwKSB7Ci1AQCAtNDI3LDYgKzQzOCw3IEBAIGJ1c19uYW1lX3NlcnZpY2VfcmVt b3ZlX293bmVyIChCdXNOYW1lU2VydmljZSAgICAgKnNlcnZpY2UsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJ1c0RCdXNJbXBsICAgICAgICAqZGJ1cykKLSB7Ci0gICAgIEdTTGlz dCAqb3duZXJzOwotKyAgICBnYm9vbGVhbiBoYXNfbmV3X293bmVyID0gRkFMU0U7Ci0gCi0gICAg IGdfYXNzZXJ0IChzZXJ2aWNlICE9IE5VTEwpOwotICAgICBnX2Fzc2VydCAob3duZXIgIT0gTlVM TCk7Ci1AQCAtNDM5LDYgKzQ1MSwxMyBAQCBidXNfbmFtZV9zZXJ2aWNlX3JlbW92ZV9vd25lciAo QnVzTmFtZVNlcnZpY2UgICAgICpzZXJ2aWNlLAotICAgICAgICAgQnVzQ29ubmVjdGlvbk93bmVy ICpfbmV3ID0gTlVMTDsKLSAgICAgICAgIGlmIChvd25lcnMtPm5leHQgIT0gTlVMTCkgewotICAg ICAgICAgICAgIF9uZXcgPSAoQnVzQ29ubmVjdGlvbk93bmVyICopb3duZXJzLT5uZXh0LT5kYXRh OwotKyAgICAgICAgICAgIC8qIHJoYnojMTQwNjY5OSBJZiBidXNfY29ubmVjdGlvbl9nZXRfdW5p cXVlX25hbWUoKSA9PSBOVUxMLAotKyAgICAgICAgICAgICAqICJIZWxsbyIgbWV0aG9kIGlzIG5v dCByZWNlaXZlZCB5ZXQuCi0rICAgICAgICAgICAgICovCi0rICAgICAgICAgICAgaWYgKF9uZXcg IT0gTlVMTCAmJgotKyAgICAgICAgICAgICAgICBidXNfY29ubmVjdGlvbl9nZXRfdW5pcXVlX25h bWUgKF9uZXctPmNvbm4pICE9IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgaGFzX25ld19vd25l ciA9IFRSVUU7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgfQotIAotICAgICAgICAgaWYgKGRi dXMgIT0gTlVMTCkgewotQEAgLTQ0Nyw3ICs0NjYsNyBAQCBidXNfbmFtZV9zZXJ2aWNlX3JlbW92 ZV9vd25lciAoQnVzTmFtZVNlcnZpY2UgICAgICpzZXJ2aWNlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3duZXItPmNvbm4sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmljZS0+bmFtZSk7Ci0tICAgICAgICAgICAg aWYgKF9uZXcgIT0gTlVMTCkgewotKyAgICAgICAgICAgIGlmIChoYXNfbmV3X293bmVyKSB7Ci0g ICAgICAgICAgICAgICAgIGdfc2lnbmFsX2VtaXQgKGRidXMsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRidXNfc2lnbmFsc1tOQU1FX0FDUVVJUkVEXSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCwKLUBAIC00NjAsNyArNDc5LDcgQEAgYnVzX25hbWVfc2Vydmlj ZV9yZW1vdmVfb3duZXIgKEJ1c05hbWVTZXJ2aWNlICAgICAqc2VydmljZSwKLSAgICAgICAgICAg ICAgICAgICAgIF9uZXcgIT0gTlVMTCA/IF9uZXctPmNvbm4gOiBOVUxMLAotICAgICAgICAgICAg ICAgICAgICAgc2VydmljZS0+bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgIGJ1c19jb25uZWN0 aW9uX2dldF91bmlxdWVfbmFtZSAob3duZXItPmNvbm4pLAotLSAgICAgICAgICAgICAgICAgICAg X25ldyAhPSBOVUxMID8gYnVzX2Nvbm5lY3Rpb25fZ2V0X3VuaXF1ZV9uYW1lIChfbmV3LT5jb25u KSA6ICIiKTsKLSsgICAgICAgICAgICAgICAgICAgIGhhc19uZXdfb3duZXIgPyBidXNfY29ubmVj dGlvbl9nZXRfdW5pcXVlX25hbWUgKF9uZXctPmNvbm4pIDogIiIpOwotIAotICAgICAgICAgfQot ICAgICB9Ci0tLSAKLTIuMjQuMQotCi1Gcm9tIDBkYTNjZWNlODhjOGI5NGMwNzIxYWE3YWNhNGYy ZDQyN2FhMjIwNjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBOZWlsIFNoZXBwZXJk IDxuc2hlcHBlcmRAZ21haWwuY29tPgotRGF0ZTogV2VkLCAyMiBKdWwgMjAyMCAxNTozMToyOSAr MDkwMAotU3ViamVjdDogW1BBVENIIDEvOV0gc3JjOiBTa2lwIHBhcnNpbmcgb2YgY29tcG9zZSBz ZXF1ZW5jZSB3aXRoIGludmFsaWQKLSBrZXlzeW1zCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVu dC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiA4Yml0Ci0KLUluc3RlYWQgb2YgY29udGludWluZyB3aXRoIHRoZSBrZXlzeW0gZGVmYXVs dGVkIHRvIDxEZWxldGU+LCBwcmludCBhCi13YXJuaW5nIGFuZCBza2lwIHRoZSBicm9rZW4gWENv bXBvc2UgcnVsZSBlbnRpcmVseS4gRml4ZXMgYSBidWcgd2hlcmUKLWFuIH4vLlhDb21wb3NlIGZp bGUgd2l0aCBhIGVycm9yIGJyZWFrcyB0aGUgZGVsZXRlIGtleS4KLQotVGVzdGVkIGxvY2FsbHkg d2l0aCB0aGUgZXhhbXBsZSBmcm9tIGxhdW5jaHBhZCBidWcgYmVsb3c6Ci0KLQkgICA8XD4gPCk+ IDogIuKYrSIgIyBIQU1NRVIgQU5EIFNJQ0tMRQotCi1UaGlzIGlzIGluY29ycmVjdCBzeW50YXgg YXMgbmVpdGhlciA8XD4gbm9yIDwpPiBhcmUgY29ycmVjdCBrZXlzeW0KLW5hbWVzLiBCZWZvcmUg dGhpcyBwYXRjaCwgaWJ1cy1kYWVtb24gLXYgcHJpbnRzIGEgd2FybmluZywgYnV0Ci1wcmVzc2lu ZyBkZWxldGUgdHdpY2UgcHJvZHVjZXMg4pitIGluc3RlYWQgb2YgaXRzIG5vcm1hbCBmdW5jdGlv bi4gQWZ0ZXIKLXRoaXMgcGF0Y2gsIGlidXMtZGFlbW9uIC12IHByaW50cyBhIHNsaWdodGx5IGJl dHRlciB3YXJuaW5nLCBhbmQgdGhlCi1kZWxldGUga2V5IGlzIHVuYWZmZWN0ZWQuCi0KLUJVRz1o dHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yMTMwCi1CVUc9aHR0cHM6Ly9idWdz LmxhdW5jaHBhZC5uZXQvdWJ1bnR1Lytzb3VyY2UvaWJ1cy8rYnVnLzE4NDkzOTkKLS0tLQotIHNy Yy9pYnVzY29tcG9zZXRhYmxlLmMgfCA4ICsrKysrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pYnVzY29tcG9z ZXRhYmxlLmMgYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi1pbmRleCAzZjQzOTEzNC4uYzUwYmUy YjMgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jCi0rKysgYi9zcmMvaWJ1c2Nv bXBvc2V0YWJsZS5jCi1AQCAtMjE2LDggKzIxNiwxMiBAQCBwYXJzZV9jb21wb3NlX3NlcXVlbmNl IChJQnVzQ29tcG9zZURhdGEgKmNvbXBvc2VfZGF0YSwKLSAgICAgICAgICAgICBjb21wb3NlX2Rh dGEtPnNlcXVlbmNlW25dID0gY29kZXBvaW50OwotICAgICAgICAgfQotIAotLSAgICAgICAgaWYg KGNvZGVwb2ludCA9PSBJQlVTX0tFWV9Wb2lkU3ltYm9sKQotLSAgICAgICAgICAgIGdfd2Fybmlu ZyAoIkNvdWxkIG5vdCBnZXQgY29kZSBwb2ludCBvZiBrZXlzeW0gJXMiLCBtYXRjaCk7Ci0rICAg ICAgICBpZiAoY29kZXBvaW50ID09IElCVVNfS0VZX1ZvaWRTeW1ib2wpIHsKLSsgICAgICAgICAg ICBnX3dhcm5pbmcgKCJDb3VsZCBub3QgZ2V0IGNvZGUgcG9pbnQgb2Yga2V5c3ltICVzOiAlcyIs Ci0rICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCwgbGluZSk7Ci0rICAgICAgICAgICAgZ19m cmVlIChtYXRjaCk7Ci0rICAgICAgICAgICAgZ290byBmYWlsOwotKyAgICAgICAgfQotICAgICAg ICAgZ19mcmVlIChtYXRjaCk7Ci0gICAgICAgICBuKys7Ci0gICAgIH0KLS0tIAotMi4yNC4xCi0K LUZyb20gMGFkNWU5YTZiNjYxMWI1M2M2M2U2MzVlODliNDJlMzBlNDNhYzcwMSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNv bT4KLURhdGU6IFdlZCwgNSBBdWcgMjAyMCAxOTo1MDowMiArMDkwMAotU3ViamVjdDogW1BBVENI IDIvOV0gc2V0dXA6IERlbGV0ZSBhdXRvc3RhcnQgc2V0dGluZwotCi1CVUc9aHR0cHM6Ly9naXRo dWIuY29tL2lidXMvaWJ1cy9wdWxsLzIyMjQKLS0tLQotIHNldHVwL21haW4ucHkgIHwgMzggLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBzZXR1cC9zZXR1cC51aSB8IDU5IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBj aGFuZ2VkLCA5NyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NldHVwL21haW4ucHkgYi9z ZXR1cC9tYWluLnB5Ci1pbmRleCBmNmFkYjA5OC4uZDVlMjA3OGMgMTAwNjQ0Ci0tLS0gYS9zZXR1 cC9tYWluLnB5Ci0rKysgYi9zZXR1cC9tYWluLnB5Ci1AQCAtMzk4LDEzICszOTgsNiBAQCBjbGFz cyBTZXR1cChvYmplY3QpOgotICAgICAgICAgc2VsZi5fX2J1dHRvbl9jbG9zZSA9IHNlbGYuX19i dWlsZGVyLmdldF9vYmplY3QoImJ1dHRvbl9jbG9zZSIpCi0gICAgICAgICBzZWxmLl9fYnV0dG9u X2Nsb3NlLmNvbm5lY3QoImNsaWNrZWQiLCBHdGsubWFpbl9xdWl0KQotIAotLSAgICAgICAgIyBh dXRvIHN0YXJ0IGlidXMKLS0gICAgICAgIHNlbGYuX19jaGVja2J1dHRvbl9hdXRvX3N0YXJ0ID0g c2VsZi5fX2J1aWxkZXIuZ2V0X29iamVjdCgKLS0gICAgICAgICAgICAgICAgImNoZWNrYnV0dG9u X2F1dG9fc3RhcnQiKQotLSAgICAgICAgc2VsZi5fX2NoZWNrYnV0dG9uX2F1dG9fc3RhcnQuc2V0 X2FjdGl2ZShzZWxmLl9faXNfYXV0b19zdGFydCgpKQotLSAgICAgICAgc2VsZi5fX2NoZWNrYnV0 dG9uX2F1dG9fc3RhcnQuY29ubmVjdCgidG9nZ2xlZCIsCi0tICAgICAgICAgICAgICAgIHNlbGYu X19jaGVja2J1dHRvbl9hdXRvX3N0YXJ0X3RvZ2dsZWRfY2IpCi0tCi0gICAgICAgICBzZWxmLl9f aW5pdF9ob3RrZXlzKCkKLSAgICAgICAgIHNlbGYuX19pbml0X3BhbmVsKCkKLSAgICAgICAgIHNl bGYuX19pbml0X2dlbmVyYWwoKQotQEAgLTY0NywzNyArNjQwLDYgQEAgY2xhc3MgU2V0dXAob2Jq ZWN0KToKLSAgICAgICAgICMgc2V0IG5ldyB2YWx1ZQotICAgICAgICAgbW9kZWwuc2V0KGl0ZXIs IENPTFVNTl9QUkVMT0FELCBkYXRhW0RBVEFfUFJFTE9BRF0pCi0gCi0tICAgIGRlZiBfX2lzX2F1 dG9fc3RhcnQoc2VsZik6Ci0tICAgICAgICBsaW5rX2ZpbGUgPSBwYXRoLmpvaW4oR0xpYi5nZXRf dXNlcl9jb25maWdfZGlyKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF1dG9z dGFydC9pYnVzLmRlc2t0b3AiKQotLSAgICAgICAgaWJ1c19kZXNrdG9wID0gcGF0aC5qb2luKG9z LmdldGVudigiSUJVU19QUkVGSVgiKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAic2hhcmUvYXBwbGljYXRpb25zL2lidXMuZGVza3RvcCIpCi0tCi0tICAgICAgICBpZiBub3Qg cGF0aC5leGlzdHMobGlua19maWxlKToKLS0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLS0gICAg ICAgIGlmIG5vdCBwYXRoLmlzbGluayhsaW5rX2ZpbGUpOgotLSAgICAgICAgICAgIHJldHVybiBG YWxzZQotLSAgICAgICAgaWYgcGF0aC5yZWFscGF0aChsaW5rX2ZpbGUpICE9IGlidXNfZGVza3Rv cDoKLS0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLS0gICAgICAgIHJldHVybiBUcnVlCi0tCi0t ICAgIGRlZiBfX2NoZWNrYnV0dG9uX2F1dG9fc3RhcnRfdG9nZ2xlZF9jYihzZWxmLCBidXR0b24p OgotLSAgICAgICAgYXV0b19zdGFydF9kaXIgPSBwYXRoLmpvaW4oR0xpYi5nZXRfdXNlcl9jb25m aWdfZGlyKCksICJhdXRvc3RhcnQiKQotLSAgICAgICAgaWYgbm90IHBhdGguaXNkaXIoYXV0b19z dGFydF9kaXIpOgotLSAgICAgICAgICAgIG9zLm1ha2VkaXJzKGF1dG9fc3RhcnRfZGlyKQotLQot LSAgICAgICAgbGlua19maWxlID0gcGF0aC5qb2luKEdMaWIuZ2V0X3VzZXJfY29uZmlnX2Rpcigp LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdXRvc3RhcnQvaWJ1cy5kZXNrdG9w IikKLS0gICAgICAgIGlidXNfZGVza3RvcCA9IHBhdGguam9pbihvcy5nZXRlbnYoIklCVVNfUFJF RklYIiksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNoYXJlL2FwcGxpY2F0 aW9ucy9pYnVzLmRlc2t0b3AiKQotLSAgICAgICAgIyB1bmxpbmsgZmlsZQotLSAgICAgICAgdHJ5 OgotLSAgICAgICAgICAgIG9zLnVubGluayhsaW5rX2ZpbGUpCi0tICAgICAgICBleGNlcHQ6Ci0t ICAgICAgICAgICAgcGFzcwotLSAgICAgICAgaWYgc2VsZi5fX2NoZWNrYnV0dG9uX2F1dG9fc3Rh cnQuZ2V0X2FjdGl2ZSgpOgotLSAgICAgICAgICAgIG9zLnN5bWxpbmsoaWJ1c19kZXNrdG9wLCBs aW5rX2ZpbGUpCi0tCi0gICAgIGRlZiBfX3NpZ3VzcjFfY2Ioc2VsZiwgKmFyZ3MpOgotICAgICAg ICAgc2VsZi5fX3dpbmRvdy5wcmVzZW50KCkKLSAKLWRpZmYgLS1naXQgYS9zZXR1cC9zZXR1cC51 aSBiL3NldHVwL3NldHVwLnVpCi1pbmRleCA1NjQ1MzA1NC4uMjUwZjQzYTAgMTAwNjQ0Ci0tLS0g YS9zZXR1cC9zZXR1cC51aQotKysrIGIvc2V0dXAvc2V0dXAudWkKLUBAIC0xMzA3LDY1ICsxMzA3 LDYgQEAKLSAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im9yaWVudGF0aW9uIj52ZXJ0 aWNhbDwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9j dXMiPkZhbHNlPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im5v X3Nob3dfYWxsIj5UcnVlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgPGNoaWxkPgotLSAg ICAgICAgICAgICAgICAgIDxwbGFjZWhvbGRlci8+Ci0tICAgICAgICAgICAgICAgIDwvY2hpbGQ+ Ci0tICAgICAgICAgICAgICAgIDxjaGlsZD4KLS0gICAgICAgICAgICAgICAgICA8b2JqZWN0IGNs YXNzPSJHdGtMYWJlbCIgaWQ9ImxhYmVsNSI+Ci0tICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0idmlzaWJsZSI+VHJ1ZTwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgICA8 cHJvcGVydHkgbmFtZT0iY2FuX2ZvY3VzIj5GYWxzZTwvcHJvcGVydHk+Ci0tICAgICAgICAgICAg ICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFiZWwiIHRyYW5zbGF0YWJsZT0ieWVzIj4mbHQ7Ymln Jmd0OyZsdDtiJmd0O0lCdXMmbHQ7L2ImZ3Q7Jmx0Oy9iaWcmZ3Q7Ci0tJmx0O3NtYWxsJmd0O1Ro ZSBpbnRlbGxpZ2VudCBpbnB1dCBidXMmbHQ7L3NtYWxsJmd0OwotLUhvbWVwYWdlOiBodHRwczov L2dpdGh1Yi5jb20vaWJ1cy9pYnVzL3dpa2kKLS0KLS0KLS0KLS08L3Byb3BlcnR5PgotLSAgICAg ICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InVzZV9tYXJrdXAiPlRydWU8L3Byb3BlcnR5 PgotLSAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Imp1c3RpZnkiPmNlbnRlcjwv cHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgPC9vYmplY3Q+Ci0tICAgICAgICAgICAgICAg ICAgPHBhY2tpbmc+Ci0tICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iZXhwYW5k Ij5UcnVlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJm aWxsIj5UcnVlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJwb3NpdGlvbiI+MTwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgPC9wYWNraW5nPgot LSAgICAgICAgICAgICAgICA8L2NoaWxkPgotLSAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci0tICAg ICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrRnJhbWUiIGlkPSJmcmFtZTEiPgotLSAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNhbl9mb2N1cyI+RmFsc2U8L3Byb3Bl cnR5PgotLSAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im5vX3Nob3dfYWxsIj5U cnVlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJsYWJl bF94YWxpZ24iPjA8L3Byb3BlcnR5PgotLSAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9InNoYWRvd190eXBlIj5ub25lPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgIDxj aGlsZD4KLS0gICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrQ2hlY2tCdXR0 b24iIGlkPSJjaGVja2J1dHRvbl9hdXRvX3N0YXJ0Ij4KLS0gICAgICAgICAgICAgICAgICAgICAg ICA8cHJvcGVydHkgbmFtZT0ibGFiZWwiIHRyYW5zbGF0YWJsZT0ieWVzIj5TdGFydCBpYnVzIG9u IGxvZ2luPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFt ZT0idXNlX2FjdGlvbl9hcHBlYXJhbmNlIj5GYWxzZTwvcHJvcGVydHk+Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgotLSAg ICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPlRydWU8L3By b3BlcnR5PgotLSAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyZWNlaXZl c19kZWZhdWx0Ij5GYWxzZTwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9InVzZV9hY3Rpb25fYXBwZWFyYW5jZSI+RmFsc2U8L3Byb3BlcnR5PgotLSAg ICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ1c2VfdW5kZXJsaW5lIj5UcnVl PC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iaGFs aWduIj5zdGFydDwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5 IG5hbWU9ImRyYXdfaW5kaWNhdG9yIj5UcnVlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAg ICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWFyZ2luX3RvcCI+NjwvcHJvcGVydHk+Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im1hcmdpbl9zdGFydCI+MTI8L3Byb3Bl cnR5PgotLSAgICAgICAgICAgICAgICAgICAgICA8L29iamVjdD4KLS0gICAgICAgICAgICAgICAg ICAgIDwvY2hpbGQ+Ci0tICAgICAgICAgICAgICAgICAgICA8Y2hpbGQgdHlwZT0ibGFiZWwiPgot LSAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJHdGtMYWJlbCIgaWQ9ImxhYmVs NCI+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRy dWU8L3Byb3BlcnR5PgotLSAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJj YW5fZm9jdXMiPkZhbHNlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0ibGFiZWwiIHRyYW5zbGF0YWJsZT0ieWVzIj4mbHQ7YiZndDtTdGFydHVwJmx0 Oy9iJmd0OzwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9InVzZV9tYXJrdXAiPlRydWU8L3Byb3BlcnR5PgotLSAgICAgICAgICAgICAgICAgICAgICA8 L29iamVjdD4KLS0gICAgICAgICAgICAgICAgICAgIDwvY2hpbGQ+Ci0tICAgICAgICAgICAgICAg ICAgPC9vYmplY3Q+Ci0tICAgICAgICAgICAgICAgICAgPHBhY2tpbmc+Ci0tICAgICAgICAgICAg ICAgICAgICA8cHJvcGVydHkgbmFtZT0iZXhwYW5kIj5GYWxzZTwvcHJvcGVydHk+Ci0tICAgICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iZmlsbCI+RmFsc2U8L3Byb3BlcnR5PgotLSAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InBvc2l0aW9uIj4yPC9wcm9wZXJ0eT4K LS0gICAgICAgICAgICAgICAgICA8L3BhY2tpbmc+Ci0tICAgICAgICAgICAgICAgIDwvY2hpbGQ+ Ci0gICAgICAgICAgICAgICA8L29iamVjdD4KLSAgICAgICAgICAgICAgIDxwYWNraW5nPgotICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0icG9zaXRpb24iPjQ8L3Byb3BlcnR5PgotLS0g Ci0yLjI0LjEKLQotRnJvbSAzZjA5OGRjNTFhNzE4ZjNiZDQyNzg3MzYwN2RjZDQ3ODY1NTIzZGNl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWFyb24gTXVpciBIYW1pbHRvbiA8YWFy b25AY29ycmVzcG9uZHdpdGgubWU+Ci1EYXRlOiBUdWUsIDE4IEF1ZyAyMDIwIDEzOjQ1OjMyICsw OTAwCi1TdWJqZWN0OiBbUEFUQ0ggMy85XSB1aS9ndGszOiBUZWxsIFBhbmdvIGFib3V0IHRoZSBl bmdpbmUgbGFuZ3VhZ2UgaW4gdGhlCi0gY2FuZGlkYXRlIHBhbmVsCi0KLVRoaXMgaGVscHMgUGFu Z28gc2VsZWN0IHRoZSBjb3JyZWN0IGZvbnQgdmFyaWFudHMgZm9yIHRoZSBlbmdpbmUKLWxhbmd1 YWdlLCB3aGljaCBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCBiZXR3ZWVuIGxhbmd1YWdlcyBiYXNl ZCBvbiBoYW4KLWNoYXJhY3RlcnMgd2hpY2ggaGF2ZSB3aWxkbHkgZGlmZmVyZW50IGZvcm1zIG9m IHRoZSBzYW1lIGNoYXJhY3Rlci4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMv aXNzdWVzLzIyMzgKLS0tLQotIHVpL2d0azMvY2FuZGlkYXRlYXJlYS52YWxhICB8IDcgKysrKysr KwotIHVpL2d0azMvY2FuZGlkYXRlcGFuZWwudmFsYSB8IDkgKysrKysrKysrCi0gdWkvZ3RrMy9w YW5lbC52YWxhICAgICAgICAgIHwgMiArKwotIDMgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9u cygrKQotCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9jYW5kaWRhdGVhcmVhLnZhbGEgYi91aS9ndGsz L2NhbmRpZGF0ZWFyZWEudmFsYQotaW5kZXggYjIyYWI1ZGEuLjBhYjQxMjE3IDEwMDY0NAotLS0t IGEvdWkvZ3RrMy9jYW5kaWRhdGVhcmVhLnZhbGEKLSsrKyBiL3VpL2d0azMvY2FuZGlkYXRlYXJl YS52YWxhCi1AQCAtMzIsNiArMzIsOCBAQCBjbGFzcyBDYW5kaWRhdGVBcmVhIDogR3RrLkJveCB7 Ci0gICAgIHByaXZhdGUgYm9vbCBtX3Nob3dfY3Vyc29yOwotICAgICBwcml2YXRlIFRoZW1lZFJH QkEgbV9yZ2JhOwotIAotKyAgICBwcml2YXRlIFBhbmdvLkF0dHJpYnV0ZSBtX2xhbmd1YWdlX2F0 dHJpYnV0ZTsKLSsKLSAgICAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgTEFCRUxTW10gPSB7Ci0gICAg ICAgICAiMS4iLCAiMi4iLCAiMy4iLCAiNC4iLCAiNS4iLCAiNi4iLCAiNy4iLCAiOC4iLAotICAg ICAgICAgIjkuIiwgIjAuIiwgImEuIiwgImIuIiwgImMuIiwgImQuIiwgImUuIiwgImYuIgotQEAg LTEwMiw2ICsxMDQsMTAgQEAgY2xhc3MgQ2FuZGlkYXRlQXJlYSA6IEd0ay5Cb3ggewotICAgICAg ICAgICAgIG1fbGFiZWxzW2ldLnNldF90ZXh0KExBQkVMU1tpXSk7Ci0gICAgIH0KLSAKLSsgICAg cHVibGljIHZvaWQgc2V0X2xhbmd1YWdlKFBhbmdvLkF0dHJpYnV0ZSBsYW5ndWFnZV9hdHRyaWJ1 dGUpIHsKLSsgICAgICAgIG1fbGFuZ3VhZ2VfYXR0cmlidXRlID0gbGFuZ3VhZ2VfYXR0cmlidXRl LmNvcHkoKTsKLSsgICAgfQotKwotICAgICBwdWJsaWMgdm9pZCBzZXRfY2FuZGlkYXRlcyhJQnVz LlRleHRbXSBjYW5kaWRhdGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 IGZvY3VzX2NhbmRpZGF0ZSA9IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgc2hvd19jdXJzb3IgPSB0cnVlKSB7Ci1AQCAtMTE1LDYgKzEyMSw3IEBAIGNsYXNzIENhbmRp ZGF0ZUFyZWEgOiBHdGsuQm94IHsKLSAgICAgICAgICAgICBib29sIHZpc2libGUgPSBmYWxzZTsK LSAgICAgICAgICAgICBpZiAoaSA8IGNhbmRpZGF0ZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAg ICAgIFBhbmdvLkF0dHJMaXN0IGF0dHJzID0gZ2V0X3BhbmdvX2F0dHJfbGlzdF9mcm9tX2lidXNf dGV4dChjYW5kaWRhdGVzW2ldKTsKLSsgICAgICAgICAgICAgICAgYXR0cnMuY2hhbmdlKG1fbGFu Z3VhZ2VfYXR0cmlidXRlLmNvcHkoKSk7Ci0gICAgICAgICAgICAgICAgIGlmIChpID09IGZvY3Vz X2NhbmRpZGF0ZSAmJiBzaG93X2N1cnNvcikgewotICAgICAgICAgICAgICAgICAgICAgUGFuZ28u QXR0cmlidXRlIHBhbmdvX2F0dHIgPSBQYW5nby5hdHRyX2ZvcmVncm91bmRfbmV3KAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAodWludDE2KShtX3JnYmEuc2VsZWN0ZWRfZmcucmVkICog dWludDE2Lk1BWCksCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9jYW5kaWRhdGVwYW5lbC52YWxhIGIv dWkvZ3RrMy9jYW5kaWRhdGVwYW5lbC52YWxhCi1pbmRleCA4OTk0Y2RiOS4uNTc1NDRkZjMgMTAw NjQ0Ci0tLS0gYS91aS9ndGszL2NhbmRpZGF0ZXBhbmVsLnZhbGEKLSsrKyBiL3VpL2d0azMvY2Fu ZGlkYXRlcGFuZWwudmFsYQotQEAgLTM0LDYgKzM0LDggQEAgcHVibGljIGNsYXNzIENhbmRpZGF0 ZVBhbmVsIDogR3RrLkJveHsKLSAKLSAgICAgcHJpdmF0ZSBHZGsuUmVjdGFuZ2xlIG1fY3Vyc29y X2xvY2F0aW9uOwotIAotKyAgICBwcml2YXRlIFBhbmdvLkF0dHJpYnV0ZSBtX2xhbmd1YWdlX2F0 dHJpYnV0ZTsKLSsKLSAgICAgcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl91cCgpOwotICAgICBw dWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2Rvd24oKTsKLSAgICAgcHVibGljIHNpZ25hbCB2b2lk IHBhZ2VfdXAoKTsKLUBAIC0xMTIsOCArMTE0LDE0IEBAIHB1YmxpYyBjbGFzcyBDYW5kaWRhdGVQ YW5lbCA6IEd0ay5Cb3h7Ci0gICAgICAgICBtX2NhbmRpZGF0ZV9hcmVhLnNldF9sYWJlbHMobGFi ZWxzKTsKLSAgICAgfQotIAotKyAgICBwdWJsaWMgdm9pZCBzZXRfbGFuZ3VhZ2UoUGFuZ28uQXR0 cmlidXRlIGxhbmd1YWdlX2F0dHJpYnV0ZSkgewotKyAgICAgICAgbV9jYW5kaWRhdGVfYXJlYS5z ZXRfbGFuZ3VhZ2UobGFuZ3VhZ2VfYXR0cmlidXRlKTsKLSsgICAgICAgIG1fbGFuZ3VhZ2VfYXR0 cmlidXRlID0gbGFuZ3VhZ2VfYXR0cmlidXRlLmNvcHkoKTsKLSsgICAgfQotKwotICAgICBwcml2 YXRlIHZvaWQgc2V0X2F0dHJpYnV0ZXMoR3RrLkxhYmVsIGxhYmVsLCBJQnVzLlRleHQgdGV4dCkg ewotICAgICAgICAgUGFuZ28uQXR0ckxpc3QgYXR0cnMgPSBnZXRfcGFuZ29fYXR0cl9saXN0X2Zy b21faWJ1c190ZXh0KHRleHQpOwotKyAgICAgICAgYXR0cnMuY2hhbmdlKG1fbGFuZ3VhZ2VfYXR0 cmlidXRlLmNvcHkoKSk7Ci0gCi0gICAgICAgICBHdGsuU3R5bGVDb250ZXh0IGNvbnRleHQgPSBs YWJlbC5nZXRfc3R5bGVfY29udGV4dCgpOwotICAgICAgICAgR2RrLlJHQkEgY29sb3I7Ci1AQCAt MTU0LDYgKzE2Miw3IEBAIHB1YmxpYyBjbGFzcyBDYW5kaWRhdGVQYW5lbCA6IEd0ay5Cb3h7Ci0g ICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7Ci0gICAgICAgICAgICAgbV9hdXhfbGFiZWwuc2V0 X3RleHQodGV4dC5nZXRfdGV4dCgpKTsKLSAgICAgICAgICAgICBQYW5nby5BdHRyTGlzdCBhdHRy cyA9IGdldF9wYW5nb19hdHRyX2xpc3RfZnJvbV9pYnVzX3RleHQodGV4dCk7Ci0rICAgICAgICAg ICAgYXR0cnMuY2hhbmdlKG1fbGFuZ3VhZ2VfYXR0cmlidXRlLmNvcHkoKSk7Ci0gICAgICAgICAg ICAgbV9hdXhfbGFiZWwuc2V0X2F0dHJpYnV0ZXMoYXR0cnMpOwotICAgICAgICAgICAgIG1fYXV4 X2xhYmVsLnNob3coKTsKLSAgICAgICAgIH0gZWxzZSB7Ci1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9w YW5lbC52YWxhIGIvdWkvZ3RrMy9wYW5lbC52YWxhCi1pbmRleCA2ODBjODZlZC4uOGQ5ZjVjYzAg MTAwNjQ0Ci0tLS0gYS91aS9ndGszL3BhbmVsLnZhbGEKLSsrKyBiL3VpL2d0azMvcGFuZWwudmFs YQotQEAgLTgyMiw2ICs4MjIsOCBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsK LSAgICAgICAgIGlmICghbV91c2Vfc3lzdGVtX2tleWJvYXJkX2xheW91dCkKLSAgICAgICAgICAg ICBtX3hrYmxheW91dC5zZXRfbGF5b3V0KGVuZ2luZSk7Ci0gCi0rICAgICAgICBtX2NhbmRpZGF0 ZV9wYW5lbC5zZXRfbGFuZ3VhZ2UobmV3IFBhbmdvLkF0dHJMYW5ndWFnZShQYW5nby5MYW5ndWFn ZS5mcm9tX3N0cmluZyhlbmdpbmUuZ2V0X2xhbmd1YWdlKCkpKSk7Ci0rCi0gICAgICAgICBlbmdp bmVfY29udGV4dHNfaW5zZXJ0KGVuZ2luZSk7Ci0gICAgIH0KLSAKLS0tIAotMi4yNC4xCi0KLUZy b20gNzlhMDlmMWU3NTM1N2E5ZjFiMzhlODA3MTdhNTljMTljY2ExNjQ1ZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4K LURhdGU6IFR1ZSwgMTggQXVnIDIwMjAgMTM6NDU6MzggKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCA0 LzldIHNldHVwOiBBZGQgdXNlLWdseXBoLWZyb20tZW5naW5lLWxhbmcKLQotVGhlIHNldHRpbmcg Y2FuIHJldmVydCB0aGUgcHJldmlvdXMgc2V0dGluZyB0byBjaG9vc2UgZ2xweWhzCi13aXRoIHRo ZSBjdXJyZW50IGxvY2FsZSBvbiBsb29rdXAgd2luZG93IGluc3RlYWQgb2YgdGhlIGVuZ2luZSdz IGxhbmd1YWdlLgotCi1CVUc9aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy9pc3N1ZXMvMjIz OAotLS0tCi0gZGF0YS9kY29uZi9vcmcuZnJlZWRlc2t0b3AuaWJ1cy5nc2NoZW1hLnhtbCB8ICA5 ICsrKysKLSBzZXR1cC9tYWluLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcg KysrCi0gc2V0dXAvc2V0dXAudWkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ5ICsr KysrKysrKysrKysrKysrKysrKwotIHVpL2d0azMvcGFuZWwudmFsYSAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyNiArKysrKysrKysrLQotIDQgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RhdGEvZGNvbmYvb3JnLmZyZWVk ZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwgYi9kYXRhL2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVz LmdzY2hlbWEueG1sCi1pbmRleCA3YWU4ZjBmNi4uMTFhMTc5YTYgMTAwNjQ0Ci0tLS0gYS9kYXRh L2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sCi0rKysgYi9kYXRhL2Rjb25m L29yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sCi1AQCAtMTY1LDYgKzE2NSwxNSBAQAot ICAgICAgIDxzdW1tYXJ5PkN1c3RvbSBmb250PC9zdW1tYXJ5PgotICAgICAgIDxkZXNjcmlwdGlv bj5DdXN0b20gZm9udCBuYW1lIGZvciBsYW5ndWFnZSBwYW5lbDwvZGVzY3JpcHRpb24+Ci0gICAg IDwva2V5PgotKyAgICA8a2V5IG5hbWU9InVzZS1nbHlwaC1mcm9tLWVuZ2luZS1sYW5nIiB0eXBl PSJiIj4KLSsgICAgICA8ZGVmYXVsdD50cnVlPC9kZWZhdWx0PgotKyAgICAgIDxzdW1tYXJ5PkNo b29zZSBnbHlwaHMgd2l0aCBpbnB1dCBtZXRob2QncyBsYW5ndWFnZSBvbiBjYW5kaWRhdGUgd2lu ZG93PC9zdW1tYXJ5PgotKyAgICAgIDxkZXNjcmlwdGlvbj5Tb21lIGNvZGUgcG9pbnRzIGhhdmUg dGhlIGRpZmZlcmVudCBnbHlwaHMgYW5kIFBhbmdvCi0rICAgICAgICAgICAgICAgICAgIGRldGVy bWluZXMgdGhlIGdseXBocyBmcm9tIHRoZSBsYW5ndWFnZSBhdHRyaWJ1dGUuCi0rICAgICAgICAg ICAgICAgICAgIFBhbmdvIGNob29zZXMgZ2x5cGhzIGZyb20gdGhlIElCdXMgZW5naW5lJ3MgbGFu Z3VhZ2UKLSsgICAgICAgICAgICAgICAgICAgaWYgdGhlIHZhbHVlIGlzIHRydWUgYW5kIGNob29z ZSB0aGVtIGZyb20gdGhlIGRlc2t0b3AKLSsgICAgICAgICAgICAgICAgICAgbG9jYWxlIGlmIHRo ZSB2YWx1ZSBpcyBmYWxzZS48L2Rlc2NyaXB0aW9uPgotKyAgICA8L2tleT4KLSAgICAgPGNoaWxk IG5hbWU9ImVtb2ppIiBzY2hlbWE9Im9yZy5mcmVlZGVza3RvcC5pYnVzLnBhbmVsLmVtb2ppIi8+ Ci0gICA8L3NjaGVtYT4KLSAgIDxzY2hlbWEgaWQ9Im9yZy5mcmVlZGVza3RvcC5pYnVzLnBhbmVs LmVtb2ppIiBwYXRoPSIvZGVza3RvcC9pYnVzL3BhbmVsL2Vtb2ppLyI+Ci1kaWZmIC0tZ2l0IGEv c2V0dXAvbWFpbi5weSBiL3NldHVwL21haW4ucHkKLWluZGV4IGQ1ZTIwNzhjLi44YzhkN2E0NyAx MDA2NDQKLS0tLSBhL3NldHVwL21haW4ucHkKLSsrKyBiL3NldHVwL21haW4ucHkKLUBAIC0yMTIs NiArMjEyLDEzIEBAIGNsYXNzIFNldHVwKG9iamVjdCk6Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnYWN0aXZlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdpby5TZXR0aW5nc0JpbmRGbGFncy5ERUZBVUxUKQotIAotKyAgICAgICAgc2VsZi5fX2No ZWNrYnV0dG9uX2dseXBoX2Zyb21fZW5naW5lX2xhbmcgPSBzZWxmLl9fYnVpbGRlci5nZXRfb2Jq ZWN0KAotKyAgICAgICAgICAgICAgICAiY2hlY2tidXR0b25fdXNlX2dseXBoX2Zyb21fZW5naW5l X2xhbmciKQotKyAgICAgICAgc2VsZi5fX3NldHRpbmdzX3BhbmVsLmJpbmQoJ3VzZS1nbHlwaC1m cm9tLWVuZ2luZS1sYW5nJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuX19jaGVja2J1dHRvbl9nbHlwaF9mcm9tX2VuZ2luZV9sYW5nLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2ZScsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHaW8uU2V0dGluZ3NCaW5kRmxhZ3MuREVGQVVMVCkKLSsKLSAgICAgZGVmIF9f aW5pdF9nZW5lcmFsKHNlbGYpOgotICAgICAgICAgIyBlbWJlZCBwcmVlZGl0IHRleHQKLSAgICAg ICAgIHNlbGYuX19jaGVja2J1dHRvbl9lbWJlZF9wcmVlZGl0X3RleHQgPSBzZWxmLl9fYnVpbGRl ci5nZXRfb2JqZWN0KAotZGlmZiAtLWdpdCBhL3NldHVwL3NldHVwLnVpIGIvc2V0dXAvc2V0dXAu dWkKLWluZGV4IDI1MGY0M2EwLi5hMTViOTA4MyAxMDA2NDQKLS0tLSBhL3NldHVwL3NldHVwLnVp Ci0rKysgYi9zZXR1cC9zZXR1cC51aQotQEAgLTEyODYsNiArMTI4Niw1NSBAQAotICAgICAgICAg ICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InBvc2l0aW9uIj4xPC9wcm9wZXJ0eT4KLSAgICAg ICAgICAgICAgICAgICA8L3BhY2tpbmc+Ci0gICAgICAgICAgICAgICAgIDwvY2hpbGQ+Ci0rICAg ICAgICAgICAgICAgIDxjaGlsZD4KLSsgICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJH dGtGcmFtZSIgaWQ9ImZyYW1lMSI+Ci0rICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFt ZT0idmlzaWJsZSI+VHJ1ZTwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0iY2FuX2ZvY3VzIj5GYWxzZTwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAg ICA8cHJvcGVydHkgbmFtZT0ibGFiZWxfeGFsaWduIj4wPC9wcm9wZXJ0eT4KLSsgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzaGFkb3dfdHlwZSI+bm9uZTwvcHJvcGVydHk+Ci0r ICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgIDxvYmpl Y3QgY2xhc3M9Ikd0a0JveCIgaWQ9InZib3gxMCI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9Im9yaWVudGF0aW9uIj52ZXJ0aWNhbDwvcHJvcGVydHk+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5 PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPkZh bHNlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0i c3BhY2luZyI+NjwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5 IG5hbWU9Im1hcmdpbl90b3AiPjY8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJtYXJnaW5fc3RhcnQiPjI0PC9wcm9wZXJ0eT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICA8Y2hpbGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0 IGNsYXNzPSJHdGtDaGVja0J1dHRvbiIgaWQ9ImNoZWNrYnV0dG9uX3VzZV9nbHlwaF9mcm9tX2Vu Z2luZV9sYW5nIj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9 ImxhYmVsIiB0cmFuc2xhdGFibGU9InllcyI+Q2hvb3NlIGdseXBocyB3aXRoIGlucHV0IG1ldGhv ZCdzIGxhbmd1YWdlIG9uIGNhbmRpZGF0ZSB3aW5kb3c8L3Byb3BlcnR5PgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idXNlX2FjdGlvbl9hcHBlYXJhbmNlIj5G YWxzZTwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9ImNhbl9mb2N1cyI+VHJ1ZTwvcHJvcGVydHk+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyZWNlaXZlc19kZWZhdWx0Ij5GYWxz ZTwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJ0b29sdGlwX3RleHQiIHRyYW5zbGF0YWJsZT0ieWVzIj5DaG9vc2UgZ2x5cGhzIHdpdGggdGhl IGlucHV0IG1ldGhvZCdzIGxhbmd1YWdlIG9uIHRoZSBjYW5kaWRhdGUgd2luZG93IGZvciB0aGUg ZHVwbGljYXRlZCBjb2RlIHBvaW50czwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ1c2VfYWN0aW9uX2FwcGVhcmFuY2UiPkZhbHNlPC9wcm9w ZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImhhbGln biI+c3RhcnQ8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0iZHJhd19pbmRpY2F0b3IiPlRydWU8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9vYmplY3Q+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICA8cGFja2lu Zz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImV4cGFuZCI+ RmFsc2U8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkg bmFtZT0iZmlsbCI+RmFsc2U8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8cHJvcGVydHkgbmFtZT0icG9zaXRpb24iPjA8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9wYWNraW5nPgotKyAgICAgICAgICAgICAgICAgICAgICAgIDwvY2hpbGQ+ Ci0rICAgICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0PgotKyAgICAgICAgICAgICAgICAgICAg PC9jaGlsZD4KLSsgICAgICAgICAgICAgICAgICAgIDxjaGlsZCB0eXBlPSJsYWJlbCI+Ci0rICAg ICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0xhYmVsIiBpZD0ibGFiZWwyMCI+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8 L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5f Zm9jdXMiPkZhbHNlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0ibGFiZWwiIHRyYW5zbGF0YWJsZT0ieWVzIj4mbHQ7YiZndDtGb250cyZsdDsvYiZn dDs8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ1 c2VfbWFya3VwIj5UcnVlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgPC9vYmpl Y3Q+Ci0rICAgICAgICAgICAgICAgICAgICA8L2NoaWxkPgotKyAgICAgICAgICAgICAgICAgIDwv b2JqZWN0PgotKyAgICAgICAgICAgICAgICAgIDxwYWNraW5nPgotKyAgICAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9ImV4cGFuZCI+RmFsc2U8L3Byb3BlcnR5PgotKyAgICAgICAgICAg ICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImZpbGwiPkZhbHNlPC9wcm9wZXJ0eT4KLSsgICAgICAg ICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJwb3NpdGlvbiI+MjwvcHJvcGVydHk+Ci0rICAg ICAgICAgICAgICAgICAgPC9wYWNraW5nPgotKyAgICAgICAgICAgICAgICA8L2NoaWxkPgotICAg ICAgICAgICAgICAgPC9vYmplY3Q+Ci0gICAgICAgICAgICAgICA8cGFja2luZz4KLSAgICAgICAg ICAgICAgICAgPHByb3BlcnR5IG5hbWU9InBvc2l0aW9uIj4zPC9wcm9wZXJ0eT4KLWRpZmYgLS1n aXQgYS91aS9ndGszL3BhbmVsLnZhbGEgYi91aS9ndGszL3BhbmVsLnZhbGEKLWluZGV4IDhkOWY1 Y2MwLi5kYzk4ZTcyMiAxMDA2NDQKLS0tLSBhL3VpL2d0azMvcGFuZWwudmFsYQotKysrIGIvdWkv Z3RrMy9wYW5lbC52YWxhCi1AQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFu ZWxTZXJ2aWNlIHsKLSAgICAgcHJpdmF0ZSBzdHJpbmcgbV9jdXJyZW50X2NvbnRleHRfcGF0aCA9 ICIiOwotICAgICBwcml2YXRlIHN0cmluZyBtX3JlYWxfY3VycmVudF9jb250ZXh0X3BhdGggPSAi IjsKLSAgICAgcHJpdmF0ZSBib29sIG1fdXNlX2dsb2JhbF9lbmdpbmUgPSB0cnVlOwotKyAgICBw cml2YXRlIGJvb2wgbV91c2VfZW5naW5lX2xhbmcgPSB0cnVlOwotICAgICBwcml2YXRlIENhbmRp ZGF0ZVBhbmVsIG1fY2FuZGlkYXRlX3BhbmVsOwotICAgICBwcml2YXRlIFN3aXRjaGVyIG1fc3dp dGNoZXI7Ci0gICAgIHByaXZhdGUgdWludCBtX3N3aXRjaGVyX2ZvY3VzX3NldF9lbmdpbmVfaWQ7 Ci1AQCAtMTk3LDYgKzE5OCwxNSBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmIG1fY3Nz X3Byb3ZpZGVyKTsKLSAgICAgICAgIH0pOwotIAotKyAgICAgICAgbV9zZXR0aW5nc19wYW5lbC5j aGFuZ2VkWyJ1c2UtZ2x5cGgtZnJvbS1lbmdpbmUtbGFuZyJdLmNvbm5lY3QoKGtleSkgPT4KLSsg ICAgICAgIHsKLSsgICAgICAgICAgICAgICAgbV91c2VfZW5naW5lX2xhbmcgPSBtX3NldHRpbmdz X3BhbmVsLmdldF9ib29sZWFuKAotKyAgICAgICAgICAgICAgICAgICAgICAgICJ1c2UtZ2x5cGgt ZnJvbS1lbmdpbmUtbGFuZyIpOwotKyAgICAgICAgICAgICAgICB2YXIgZW5naW5lID0gbV9idXMu Z2V0X2dsb2JhbF9lbmdpbmUoKTsKLSsgICAgICAgICAgICAgICAgaWYgKGVuZ2luZSAhPSBudWxs KQotKyAgICAgICAgICAgICAgICAgICAgc2V0X2xhbmd1YWdlX2Zyb21fZW5naW5lKGVuZ2luZSk7 Ci0rICAgICAgICB9KTsKLSsKLSAgICAgICAgIG1fc2V0dGluZ3NfcGFuZWwuY2hhbmdlZFsic2hv dy1pY29uLW9uLXN5c3RyYXkiXS5jb25uZWN0KChrZXkpID0+IHsKLSAgICAgICAgICAgICAgICAg c2V0X3Nob3dfaWNvbl9vbl9zeXN0cmF5KCk7Ci0gICAgICAgICB9KTsKLUBAIC03MzIsNiArNzQy LDggQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7Ci0gICAgICAgICBzZXRfdXNl X3N5c3RlbV9rZXlib2FyZF9sYXlvdXQoKTsKLSAgICAgICAgIHNldF91c2VfZ2xvYmFsX2VuZ2lu ZSgpOwotICAgICAgICAgc2V0X3VzZV94bW9kbWFwKCk7Ci0rICAgICAgICBtX3VzZV9lbmdpbmVf bGFuZyA9IG1fc2V0dGluZ3NfcGFuZWwuZ2V0X2Jvb2xlYW4oCi0rICAgICAgICAgICAgICAgICAg ICAgICAgInVzZS1nbHlwaC1mcm9tLWVuZ2luZS1sYW5nIik7Ci0gICAgICAgICB1cGRhdGVfZW5n aW5lcyhtX3NldHRpbmdzX2dlbmVyYWwuZ2V0X3N0cnYoInByZWxvYWQtZW5naW5lcyIpLAotICAg ICAgICAgICAgICAgICAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLmdldF9zdHJ2KCJlbmdpbmVz LW9yZGVyIikpOwotICAgICAgICAgQmluZGluZ0NvbW1vbi51bmJpbmRfc3dpdGNoX3Nob3J0Y3V0 KAotQEAgLTgwMSw2ICs4MTMsMTcgQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7 Ci0gICAgICAgICBtX2VuZ2luZV9jb250ZXh0cy5yZXBsYWNlKG1fY3VycmVudF9jb250ZXh0X3Bh dGgsIGVuZ2luZSk7Ci0gICAgIH0KLSAKLSsgICAgcHJpdmF0ZSB2b2lkIHNldF9sYW5ndWFnZV9m cm9tX2VuZ2luZShJQnVzLkVuZ2luZURlc2MgZW5naW5lKSB7Ci0rICAgICAgICBpZiAobV91c2Vf ZW5naW5lX2xhbmcpIHsKLSsgICAgICAgICAgICBtX2NhbmRpZGF0ZV9wYW5lbC5zZXRfbGFuZ3Vh Z2UobmV3IFBhbmdvLkF0dHJMYW5ndWFnZSgKLSsgICAgICAgICAgICAgICAgICAgIFBhbmdvLkxh bmd1YWdlLmZyb21fc3RyaW5nKGVuZ2luZS5nZXRfbGFuZ3VhZ2UoKSkpKTsKLSsgICAgICAgIH0g ZWxzZSB7Ci0rICAgICAgICAgICAgbV9jYW5kaWRhdGVfcGFuZWwuc2V0X2xhbmd1YWdlKG5ldyBQ YW5nby5BdHRyTGFuZ3VhZ2UoCi0rICAgICAgICAgICAgICAgICAgICBQYW5nby5MYW5ndWFnZS5m cm9tX3N0cmluZyhudWxsKSkpOwotKyAgICAgICAgfQotKwotKyAgICB9Ci0rCi0gICAgIHByaXZh dGUgdm9pZCBzZXRfZW5naW5lKElCdXMuRW5naW5lRGVzYyBlbmdpbmUpIHsKLSAgICAgICAgIGlm IChtX3Byb3BlcnR5X2ljb25fZGVsYXlfdGltZV9pZCA+IDApIHsKLSAgICAgICAgICAgICBHTGli LlNvdXJjZS5yZW1vdmUobV9wcm9wZXJ0eV9pY29uX2RlbGF5X3RpbWVfaWQpOwotQEAgLTgyMiw4 ICs4NDUsNyBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAgICAgIGlm ICghbV91c2Vfc3lzdGVtX2tleWJvYXJkX2xheW91dCkKLSAgICAgICAgICAgICBtX3hrYmxheW91 dC5zZXRfbGF5b3V0KGVuZ2luZSk7Ci0gCi0tICAgICAgICBtX2NhbmRpZGF0ZV9wYW5lbC5zZXRf bGFuZ3VhZ2UobmV3IFBhbmdvLkF0dHJMYW5ndWFnZShQYW5nby5MYW5ndWFnZS5mcm9tX3N0cmlu ZyhlbmdpbmUuZ2V0X2xhbmd1YWdlKCkpKSk7Ci0tCi0rICAgICAgICBzZXRfbGFuZ3VhZ2VfZnJv bV9lbmdpbmUoZW5naW5lKTsKLSAgICAgICAgIGVuZ2luZV9jb250ZXh0c19pbnNlcnQoZW5naW5l KTsKLSAgICAgfQotIAotLS0gCi0yLjI0LjEKLQotRnJvbSA1MDg1MjdkYWFmOTA5MDFiNmE3ZmEw NjIzNzI1MTY2NDBmODhhYTc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdh cmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAyMSBBdWcgMjAyMCAw OTowNzozOSArMDkwMAotU3ViamVjdDogW1BBVENIIDYvOV0gZW5naW5lOiBHZW5lcmF0ZSBzaW1w bGUueG1sIHdpdGggZGVueWxpc3QKLQotc2ltcGxlLnhtbCB3YXMgZ2VuZXJhdGVkIGJ5IGFsbG93 bGlzdCAod2hpdGVsaXN0KSBhbmQgaXQgd2lsbCBiZQotZG9uZSBieSBkZW55bGlzdCAoYmxhY2ts aXN0KS4KLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIxNTMKLS0t LQotIGVuZ2luZS9NYWtlZmlsZS5hbSAgfCAgMjAgKystCi0gZW5naW5lL2RlbnlsaXN0LnR4dCB8 ICAyNyArKysrCi0gZW5naW5lL2dlbnNpbXBsZS5weSB8IDM2NyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwotIDMgZmlsZXMgY2hhbmdlZCwgNDA3IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGVuZ2luZS9kZW55bGlz dC50eHQKLSBjcmVhdGUgbW9kZSAxMDA3NTUgZW5naW5lL2dlbnNpbXBsZS5weQotCi1kaWZmIC0t Z2l0IGEvZW5naW5lL01ha2VmaWxlLmFtIGIvZW5naW5lL01ha2VmaWxlLmFtCi1pbmRleCA4NmYw ZTJiOC4uY2E0MDU0OTYgMTAwNjQ0Ci0tLS0gYS9lbmdpbmUvTWFrZWZpbGUuYW0KLSsrKyBiL2Vu Z2luZS9NYWtlZmlsZS5hbQotQEAgLTQsNiArNCw3IEBACi0gIwotICMgQ29weXJpZ2h0IChjKSAy MDEwLTIwMTYsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gIyBDb3B5cmlnaHQg KGMpIDIwMDctMjAxNiBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLSsjIENv cHlyaWdodCAoYykgMjAxMy0yMDIwIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21h aWwuY29tPgotICMKLSAjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC03OCwyMCArNzksMjUgQEAgY29tcG9uZW50 X0RBVEEgPSBcCi0gCi0gY29tcG9uZW50ZGlyID0gJChwa2dkYXRhZGlyKS9jb21wb25lbnQKLSAK LS1DTEVBTkZJTEVTID0gXAotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gXAotIAlzaW1wbGUueG1s IFwKLSAJJChOVUxMKQotIAotIEVYVFJBX0RJU1QgPSBcCi0rCWdlbnNpbXBsZS5weSBcCi0gCWlz bzYzOWNvbnZlcnRlci5weSBcCi0tCXNpbXBsZS54bWwuaW4gXAotKwlzaW1wbGUueG1sIFwKLSAJ JChOVUxMKQotIAotLXNpbXBsZS54bWw6IHNpbXBsZS54bWwuaW4KLS0JJChBTV9WX0dFTikgc2Vk IFwKLS0JCS1lICdzfEBWRVJTSU9OW0BdfCQoVkVSU0lPTil8ZycgXAotLQkJLWUgJ3N8QGxpYmV4 ZWNkaXJbQF18JChsaWJleGVjZGlyKXxnJyAkPCA+ICRALnRtcCAmJiBcCi0tCQltdiAkQC50bXAg JEAKLStzaW1wbGUueG1sOgotKwkkKHNyY2RpcikvZ2Vuc2ltcGxlLnB5IFwKLSsJICAgIC0taW5w dXQ9JChkYXRhcm9vdGRpcikvWDExL3hrYi9ydWxlcy9ldmRldi54bWwgXAotKwkgICAgLS1vdXRw dXQ9JEAgXAotKwkgICAgLS12ZXJzaW9uPSQoVkVSU0lPTikuYGRhdGUgJyslWSVtJWQnYCBcCi0r CSAgICAtLWV4ZWMtcGF0aD0kKGxpYmV4ZWNkaXIpL2lidXMtZW5naW5lLXNpbXBsZSBcCi0rCSAg ICAtLWlzby1wYXRoPSQoZGF0YXJvb3RkaXIpL3htbC9pc28tY29kZXMvaXNvXzYzOS54bWwgXAot KwkgICAgLS1maXJzdC1sYW5ndWFnZSBcCi0rCSQoTlVMTCkKLSAKLSAkKGxpYmlidXMpOgotIAkk KE1BS0UpIC1DICQodG9wX2J1aWxkZGlyKS9zcmMKLWRpZmYgLS1naXQgYS9lbmdpbmUvZGVueWxp c3QudHh0IGIvZW5naW5lL2RlbnlsaXN0LnR4dAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwLi5lNGNkMDQ3MwotLS0tIC9kZXYvbnVsbAotKysrIGIvZW5naW5lL2RlbnlsaXN0 LnR4dAotQEAgLTAsMCArMSwyNyBAQAotKyMgdmltOnNldCBmaWxlZW5jb2Rpbmc9dXRmLTggZXQg c3RzPTQgc3c9NDoKLSsjCi0rIyBpYnVzIC0gSW50ZWxsaWdlbnQgSW5wdXQgQnVzIGZvciBMaW51 eCAvIFVuaXggT1MKLSsjCi0rIyBDb3B5cmlnaHQgwqkgMjAyMCBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsjCi0rIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rIyBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rIyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsjIHZl cnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgotKyMKLSsjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0rIyBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK LSsjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnkuIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsjIFRoaXMgZmlsZSBpcyBhIGRlbnkgbGlzdCAo YmxhY2sgbGlzdCkgYW5kIHVzZWQgYnkgZ2Vuc2ltcGxlLnB5LgotKyMgZ2Vuc2ltcGxlLnB5IGdl bmVyYXRlcyB0aGUgZW5naW5lIGxpc3Qgd2l0aCBldmRldi54bWwgYW5kIGlmIGFuIGVuZ2luZSBu YW1lCi0rIyBpcyBtYXRjaGVkIHdpdGggYW55IGVudHJpZXMgaW4gdGhpcyBmaWxlLCB0aGUgZW5n aW5lIGlzIGV4Y2x1ZGVkIGZyb20gdGhlCi0rIyBlbmdpbmUgbGlzdC4KLSsjIEFzdGVyaXNrKCop IGNoYXJhY3RlciBjYW4gYmUgdXNlZCB0byBtYXRjaCBhbnkgZW5naW5lcy4KLSsjIEUuZy4geGti OmNuOio6KiBleGNsdWRlcyB4a2I6Y246OnpobyBhbmQgeGtiOmNuOm1vbl90cmFkOm12ZgotK3hr YjpjbjoqOioKLSt4a2I6bmVjX3ZuZHIvanA6KjoqCi1kaWZmIC0tZ2l0IGEvZW5naW5lL2dlbnNp bXBsZS5weSBiL2VuZ2luZS9nZW5zaW1wbGUucHkKLW5ldyBmaWxlIG1vZGUgMTAwNzU1Ci1pbmRl eCAwMDAwMDAwMC4uZGM0Y2NmMTIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2VuZ2luZS9nZW5zaW1w bGUucHkKLUBAIC0wLDAgKzEsMzY3IEBACi0rIyEvdXNyL2Jpbi9weXRob24KLSsjIHZpbTpzZXQg ZmlsZWVuY29kaW5nPXV0Zi04IGV0IHN0cz00IHN3PTQ6Ci0rIwotKyMgaWJ1cyAtIEludGVsbGln ZW50IElucHV0IEJ1cyBmb3IgTGludXggLyBVbml4IE9TCi0rIwotKyMgQ29weXJpZ2h0IMKpIDIw MjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIwotKyMgVGhp cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgotKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYwotKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCi0rIyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIGxpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0r IyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQotKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCi0rIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5 LiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rCi0rIyBU aGlzIHNjcmlwdCBnZW5lcmF0ZXMgc2ltcGxlLnhtbCB3aXRoIC91c3Ivc2hhcmUvWDExL3hrYi9y dWxlcy9ldmRldi54bWwsCi0rIyAvdXNyL3NoYXJlL3htbC9pc28tY29kZXMvaXNvXzYzOS54bWwg YW5kIGRlbnlsaXN0LnR4dAotKwotKwotK2Zyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbQotK2Zy b20geG1sLnNheCBpbXBvcnQgbWFrZV9wYXJzZXIgYXMgc2F4X21ha2VfcGFyc2VyCi0rZnJvbSB4 bWwuc2F4LmhhbmRsZXIgaW1wb3J0IGZlYXR1cmVfbmFtZXNwYWNlcyBhcyBzYXhfZmVhdHVyZV9u YW1lc3BhY2VzCi0rZnJvbSB4bWwuc2F4LnNheHV0aWxzIGltcG9ydCBYTUxGaWx0ZXJCYXNlLCBY TUxHZW5lcmF0b3IsIGVzY2FwZQotK2Zyb20geG1sLnNheC54bWxyZWFkZXIgaW1wb3J0IEF0dHJp YnV0ZXNJbXBsCi0rZnJvbSB4bWwuc2F4Ll9leGNlcHRpb25zIGltcG9ydCBTQVhQYXJzZUV4Y2Vw dGlvbgotKwotK2ltcG9ydCBjb2RlY3MKLStpbXBvcnQgZ2V0b3B0Ci0raW1wb3J0IGlvCi0raW1w b3J0IG9zCi0raW1wb3J0IHN5cwotKwotK1ZFUlNJT049JzAuMScKLStFVkRFVl9YTUwgPSAnL3Vz ci9zaGFyZS9YMTEveGtiL3J1bGVzL2V2ZGV2LnhtbCcKLStFWEVDX1BBVEg9Jy91c3IvbGliL2li dXMtZW5naW5lLXNpbXBsZScKLStJU09fUEFUSD0nL3Vzci9zaGFyZS94bWwvaXNvLWNvZGVzL2lz b182MzkueG1sJwotK1BZM0sgPSBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKQotKwotK2lmIFBZ M0s6Ci0rICAgIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lPCi0rZWxzZToKLSsgICAgIyBpby5TdHJp bmdJTyBkb2VzIG5vdCB3b3JrIHdpdGggWE1MR2VuZXJhdG9yCi0rICAgIGZyb20gY1N0cmluZ0lP IGltcG9ydCBTdHJpbmdJTwotKyAgICAjIGlzb182MzkueG1sIGluY2x1ZGVzIFVURi04Ci0rICAg IHJlbG9hZChzeXMpCi0rICAgIHN5cy5zZXRkZWZhdWx0ZW5jb2RpbmcoJ3V0Zi04JykKLSsKLStk ZWYgdXNhZ2UocHJnbmFtZSk6Ci0rICAgIHByaW50KCcnJ1wKLSslcyBWZXJzaW9uICVzCi0rVXNh Z2U6Ci0rICAlcyBbT1BUSU9OLi4uXQotKwotK09wdGlvbnM6Ci0rICAtaCwgLS1oZWxwICAgICAg ICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBtZXNzYWdlCi0rICAtaSwgLS1pbnB1dD1FVkRF Vl9YTUwgICAgICAgICAgICAgIExvYWQgRVZERVZfWE1MIGZpbGUgKGRlZmF1bHQgaXM6Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlcykKLSsgIC1vLCAtLW91dHB1 dD1GSUxFICAgICAgICAgICAgICAgICAgT3V0cHV0IEZJTEUgKGRlZmF1bHQgaXMgc3Rkb3V0KQot KyAgLVYsIC0tdmVyc2lvbj1WRVJTSU9OICAgICAgICAgICAgICBTZXQgSUJ1cyBWRVJTSU9OIChk ZWZhdWx0IGlzICVzKQotKyAgLWUsIC0tZXhlYy1wYXRoPUVYRUNfUEFUSCAgICAgICAgICBTZXQg RVhFQ19QQVRIIGZpbGUgKGRlZmF1bHQgaXM6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAlcykKLSsgIC1JLCAtLWlzby1wYXRoPUlTT19QQVRIICAgICAgICAgICAg TG9hZCBJU09fUEFUSCBmaWxlIChkZWZhdWx0IGlzOgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJXMpCi0rICAtMSwgLS1maXJzdC1sYW5ndWFnZSAgICAgICAgICAg ICAgIFB1bGwgZmlyc3QgbGFuZ3VhZ2Ugb25seSBpbiBsYW5ndWFnZSBsaXN0Ci0rJycnICUgKHBy Z25hbWUsIFZFUlNJT04sIHByZ25hbWUsIEVWREVWX1hNTCwgVkVSU0lPTiwgRVhFQ19QQVRILCBJ U09fUEFUSCkpCi0rCi0rCi0rY2xhc3MgRXZkZXZYTUwoWE1MRmlsdGVyQmFzZSk6Ci0rICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBwYXJzZXI9Tm9uZSwgZG93bnN0cmVhbT1Ob25lLCBpc282Mzk9Tm9u ZSwKLSsgICAgICAgICAgICAgICAgIGRlbnlsaXN0PU5vbmUsIGF1dGhvcj1Ob25lLCBmaXJzdD1G YWxzZSk6Ci0rICAgICAgICBYTUxGaWx0ZXJCYXNlLl9faW5pdF9fKHNlbGYsIHBhcnNlcikKLSsg ICAgICAgIHNlbGYuX19kb3duc3RyZWFtID0gZG93bnN0cmVhbQotKyAgICAgICAgc2VsZi5fX2lz bzYzOSA9IGlzbzYzOQotKyAgICAgICAgc2VsZi5fX2RlbnlsaXN0ID0gZGVueWxpc3QKLSsgICAg ICAgIHNlbGYuX19hdXRob3IgPSBhdXRob3IKLSsgICAgICAgIHNlbGYuX19maXJzdCA9IGZpcnN0 Ci0rICAgICAgICBzZWxmLl9faXNfbGF5b3V0ID0gRmFsc2UKLSsgICAgICAgIHNlbGYuX19pc19k ZXNjcmlwdGlvbiA9IEZhbHNlCi0rICAgICAgICBzZWxmLl9faXNfY29uZmlnX2l0ZW0gPSBGYWxz ZQotKyAgICAgICAgc2VsZi5fX2lzX3ZhcmlhbnQgPSBGYWxzZQotKyAgICAgICAgc2VsZi5fX2lz X2lzbzYzOSA9IEZhbHNlCi0rICAgICAgICBzZWxmLl9faXNfbmFtZSA9IEZhbHNlCi0rICAgICAg ICBzZWxmLl9fbGF5b3V0ID0gJycKLSsgICAgICAgIHNlbGYuX19kZXNjcmlwdGlvbiA9ICcnCi0r ICAgICAgICBzZWxmLl9fdmFyaWFudCA9ICcnCi0rICAgICAgICBzZWxmLl9fbGlzdF9pc282Mzkg PSBbXQotKyAgICBkZWYgc3RhcnREb2N1bWVudChzZWxmKToKLSsgICAgICAgIGlmIHNlbGYuX19k b3duc3RyZWFtOgotKyAgICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFtLnN0YXJ0RG9jdW1lbnQo KQotKyAgICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFtLnN0YXJ0RWxlbWVudCgnZW5naW5lcycs IEF0dHJpYnV0ZXNJbXBsKHt9KSkKLSsgICAgZGVmIGVuZERvY3VtZW50KHNlbGYpOgotKyAgICAg ICAgaWYgc2VsZi5fX2Rvd25zdHJlYW06Ci0rICAgICAgICAgICAgc2VsZi5fX2Rvd25zdHJlYW0u ZW5kRWxlbWVudCgnZW5naW5lcycpCi0rICAgICAgICAgICAgc2VsZi5fX2Rvd25zdHJlYW0uZW5k RG9jdW1lbnQoKQotKyAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIG5hbWUsIGF0dHJzKToKLSsg ICAgICAgIGlmIG5hbWUgPT0gJ2xheW91dCc6Ci0rICAgICAgICAgICAgc2VsZi5fX2lzX2xheW91 dCA9IFRydWUKLSsgICAgICAgIGVsaWYgbmFtZSA9PSAnZGVzY3JpcHRpb24nOgotKyAgICAgICAg ICAgIHNlbGYuX19pc19kZXNjcmlwdGlvbiA9IFRydWUKLSsgICAgICAgIGVsaWYgbmFtZSA9PSAn Y29uZmlnSXRlbSc6Ci0rICAgICAgICAgICAgc2VsZi5fX2lzX2NvbmZpZ19pdGVtID0gVHJ1ZQot KyAgICAgICAgZWxpZiBuYW1lID09ICdsYW5ndWFnZUxpc3QnOgotKyAgICAgICAgICAgIHNlbGYu X19saXN0X2lzbzYzOSA9IFtdCi0rICAgICAgICBlbGlmIG5hbWUgPT0gJ2lzbzYzOUlkJzoKLSsg ICAgICAgICAgICBzZWxmLl9faXNfaXNvNjM5ID0gVHJ1ZQotKyAgICAgICAgZWxpZiBuYW1lID09 ICd2YXJpYW50JzoKLSsgICAgICAgICAgICBzZWxmLl9faXNfdmFyaWFudCA9IFRydWUKLSsgICAg ICAgIGVsaWYgbmFtZSA9PSAnbmFtZSc6Ci0rICAgICAgICAgICAgc2VsZi5fX2lzX25hbWUgPSBU cnVlCi0rICAgIGRlZiBlbmRFbGVtZW50KHNlbGYsIG5hbWUpOgotKyAgICAgICAgaWYgbmFtZSA9 PSAnbGF5b3V0JzoKLSsgICAgICAgICAgICBzZWxmLl9faXNfbGF5b3V0ID0gRmFsc2UKLSsgICAg ICAgICAgICBzZWxmLl9fbGF5b3V0ID0gJycKLSsgICAgICAgICAgICBzZWxmLl9fZGVzY3JpcHRp b24gPSAnJwotKyAgICAgICAgICAgIHNlbGYuX192YXJpYW50ID0gJycKLSsgICAgICAgICAgICBz ZWxmLl9fbGlzdF9pc282MzkgPSBbXQotKyAgICAgICAgZWxpZiBuYW1lID09ICdkZXNjcmlwdGlv bic6Ci0rICAgICAgICAgICAgc2VsZi5fX2lzX2Rlc2NyaXB0aW9uID0gRmFsc2UKLSsgICAgICAg IGVsaWYgbmFtZSA9PSAnY29uZmlnSXRlbSc6Ci0rICAgICAgICAgICAgc2VsZi5zYXZlKCkKLSsg ICAgICAgICAgICBzZWxmLl9faXNfY29uZmlnX2l0ZW0gPSBGYWxzZQotKyAgICAgICAgZWxpZiBu YW1lID09ICdpc282MzlJZCc6Ci0rICAgICAgICAgICAgc2VsZi5fX2lzX2lzbzYzOSA9IEZhbHNl Ci0rICAgICAgICBlbGlmIG5hbWUgPT0gJ3ZhcmlhbnQnOgotKyAgICAgICAgICAgIHNlbGYuX19p c192YXJpYW50ID0gRmFsc2UKLSsgICAgICAgIGVsaWYgbmFtZSA9PSAnbmFtZSc6Ci0rICAgICAg ICAgICAgc2VsZi5fX2lzX25hbWUgPSBGYWxzZQotKyAgICBkZWYgY2hhcmFjdGVycyhzZWxmLCB0 ZXh0KToKLSsgICAgICAgIGlmIHNlbGYuX19pc19kZXNjcmlwdGlvbjoKLSsgICAgICAgICAgICBz ZWxmLl9fZGVzY3JpcHRpb24gPSB0ZXh0Ci0rICAgICAgICBlbGlmIHNlbGYuX19pc19uYW1lOgot KyAgICAgICAgICAgIGlmIHNlbGYuX19pc192YXJpYW50IGFuZCBzZWxmLl9faXNfY29uZmlnX2l0 ZW06Ci0rICAgICAgICAgICAgICAgIHNlbGYuX192YXJpYW50ID0gdGV4dAotKyAgICAgICAgICAg IGVsaWYgc2VsZi5fX2lzX2xheW91dCBhbmQgc2VsZi5fX2lzX2NvbmZpZ19pdGVtOgotKyAgICAg ICAgICAgICAgICBzZWxmLl9fbGF5b3V0ID0gdGV4dAotKyAgICAgICAgZWxpZiBzZWxmLl9faXNf aXNvNjM5OgotKyAgICAgICAgICAgICAgICBzZWxmLl9fbGlzdF9pc282MzkuYXBwZW5kKHRleHQp Ci0rICAgIGRlZiBzYXZlKHNlbGYpOgotKyAgICAgICAgaWYgbm90IHNlbGYuX19kb3duc3RyZWFt OgotKyAgICAgICAgICAgIHJldHVybgotKyAgICAgICAgZm9yIGlzbyBpbiBzZWxmLl9fbGlzdF9p c282Mzk6Ci0rICAgICAgICAgICAgZG9fZGVueSA9IEZhbHNlCi0rICAgICAgICAgICAgZm9yIFt4 a2IsIGxheW91dCwgdmFyaWFudCwgbGFuZ10gaW4gc2VsZi5fX2RlbnlsaXN0OgotKyAgICAgICAg ICAgICAgICBpZiB4a2IgPT0gJ3hrYicgXAotKyAgICAgICAgICAgICAgICAgICBhbmQgKCBsYXlv dXQgPT0gc2VsZi5fX2xheW91dCBvciBsYXlvdXQgPT0gJyonICkgXAotKyAgICAgICAgICAgICAg ICAgICBhbmQgKCB2YXJpYW50ID09IHNlbGYuX192YXJpYW50IG9yIHZhcmlhbnQgPT0gJyonICkg XAotKyAgICAgICAgICAgICAgICAgICBhbmQgKCBsYW5nID09IGlzbyBvciB2YXJpYW50ID09ICcq JyApOgotKyAgICAgICAgICAgICAgICAgICAgZG9fZGVueSA9IFRydWUKLSsgICAgICAgICAgICAg ICAgICAgIGJyZWFrCi0rICAgICAgICAgICAgaWYgZG9fZGVueToKLSsgICAgICAgICAgICAgICAg Y29udGludWUKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5zdGFydEVsZW1lbnQoJ2Vu Z2luZScsIEF0dHJpYnV0ZXNJbXBsKHt9KSkKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVh bS5zdGFydEVsZW1lbnQoJ25hbWUnLCBBdHRyaWJ1dGVzSW1wbCh7fSkpCi0rICAgICAgICAgICAg bmFtZSA9ICd4a2I6JXM6JXM6JXMnICUgKAotKyAgICAgICAgICAgICAgICBzZWxmLl9fbGF5b3V0 LAotKyAgICAgICAgICAgICAgICBzZWxmLl9fdmFyaWFudCwKLSsgICAgICAgICAgICAgICAgaXNv Ci0rICAgICAgICAgICAgKQotKyAgICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFtLmNoYXJhY3Rl cnMobmFtZSkKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5lbmRFbGVtZW50KCduYW1l JykKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5zdGFydEVsZW1lbnQoJ2xhbmd1YWdl JywgQXR0cmlidXRlc0ltcGwoe30pKQotKyAgICAgICAgICAgIGlzbzYzOV8xID0gc2VsZi5fX2lz bzYzOS5jb2RlMnRvMShpc28pCi0rICAgICAgICAgICAgaWYgaXNvNjM5XzEgIT0gTm9uZToKLSsg ICAgICAgICAgICAgICAgaXNvID0gaXNvNjM5XzEKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0 cmVhbS5jaGFyYWN0ZXJzKGlzbykKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5lbmRF bGVtZW50KCdsYW5ndWFnZScpCi0rICAgICAgICAgICAgc2VsZi5fX2Rvd25zdHJlYW0uc3RhcnRF bGVtZW50KCdsaWNlbnNlJywgQXR0cmlidXRlc0ltcGwoe30pKQotKyAgICAgICAgICAgIHNlbGYu X19kb3duc3RyZWFtLmNoYXJhY3RlcnMoJ0dQTCcpCi0rICAgICAgICAgICAgc2VsZi5fX2Rvd25z dHJlYW0uZW5kRWxlbWVudCgnbGljZW5zZScpCi0rICAgICAgICAgICAgaWYgc2VsZi5fX2F1dGhv ciAhPSBOb25lOgotKyAgICAgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5zdGFydEVsZW1l bnQoJ2F1dGhvcicsIEF0dHJpYnV0ZXNJbXBsKHt9KSkKLSsgICAgICAgICAgICAgICAgc2VsZi5f X2Rvd25zdHJlYW0uY2hhcmFjdGVycyhzZWxmLl9fYXV0aG9yKQotKyAgICAgICAgICAgICAgICBz ZWxmLl9fZG93bnN0cmVhbS5lbmRFbGVtZW50KCdhdXRob3InKQotKyAgICAgICAgICAgIHNlbGYu X19kb3duc3RyZWFtLnN0YXJ0RWxlbWVudCgnbGF5b3V0JywgQXR0cmlidXRlc0ltcGwoe30pKQot KyAgICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFtLmNoYXJhY3RlcnMoc2VsZi5fX2xheW91dCkK LSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5lbmRFbGVtZW50KCdsYXlvdXQnKQotKyAg ICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFtLnN0YXJ0RWxlbWVudCgnbG9uZ25hbWUnLCBBdHRy aWJ1dGVzSW1wbCh7fSkpCi0rICAgICAgICAgICAgc2VsZi5fX2Rvd25zdHJlYW0uY2hhcmFjdGVy cyhzZWxmLl9fZGVzY3JpcHRpb24pCi0rICAgICAgICAgICAgc2VsZi5fX2Rvd25zdHJlYW0uZW5k RWxlbWVudCgnbG9uZ25hbWUnKQotKyAgICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFtLnN0YXJ0 RWxlbWVudCgnZGVzY3JpcHRpb24nLCBBdHRyaWJ1dGVzSW1wbCh7fSkpCi0rICAgICAgICAgICAg c2VsZi5fX2Rvd25zdHJlYW0uY2hhcmFjdGVycyhzZWxmLl9fZGVzY3JpcHRpb24pCi0rICAgICAg ICAgICAgc2VsZi5fX2Rvd25zdHJlYW0uZW5kRWxlbWVudCgnZGVzY3JpcHRpb24nKQotKyAgICAg ICAgICAgIHNlbGYuX19kb3duc3RyZWFtLnN0YXJ0RWxlbWVudCgnaWNvbicsIEF0dHJpYnV0ZXNJ bXBsKHt9KSkKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5jaGFyYWN0ZXJzKCdpYnVz LWtleWJvYXJkJykKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5lbmRFbGVtZW50KCdp Y29uJykKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5zdGFydEVsZW1lbnQoJ3Jhbmsn LCBBdHRyaWJ1dGVzSW1wbCh7fSkpCi0rICAgICAgICAgICAgaWYgc2VsZi5fX3ZhcmlhbnQgPT0g Jyc6Ci0rICAgICAgICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFtLmNoYXJhY3RlcnMoJzUwJykK LSsgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5j aGFyYWN0ZXJzKCcxJykKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5lbmRFbGVtZW50 KCdyYW5rJykKLSsgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5lbmRFbGVtZW50KCdlbmdp bmUnKQotKyAgICAgICAgICAgIGlmIHNlbGYuX19maXJzdDoKLSsgICAgICAgICAgICAgICAgYnJl YWsKLSsKLSsKLStjbGFzcyBHZW5lcmF0ZUVuZ2luZVhNTCgpOgotKyAgICBfTkFNRSA9ICdvcmcu ZnJlZWRlc2t0b3AuSUJ1cy5TaW1wbGUnCi0rICAgIF9ERVNDUklQVElPTiA9ICdBIHRhYmxlIGJh c2VkIHNpbXBsZSBlbmdpbmUnCi0rICAgIF9BVVRIT1IgPSAnUGVuZyBIdWFuZyA8c2hhd24ucC5o dWFuZ0BnbWFpbC5jb20+JwotKyAgICBfSE9NRVBBR0UgPSAnaHR0cHM6Ly9naXRodWIuY29tL2li dXMvaWJ1cy93aWtpJwotKyAgICBfRE9NQUlOID0gJ2lidXMnCi0rICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXRoLCBpc282Mzk9Tm9uZSwgZGVueWxpc3Q9JycsIHZlcnNpb249JycsIGV4ZWM9Jycs Ci0rICAgICAgICAgICAgICAgICBmaXJzdD1GYWxzZSk6Ci0rICAgICAgICBzZWxmLl9fcGF0aCA9 IHBhdGgKLSsgICAgICAgIHNlbGYuX19pc282MzkgPSBpc282MzkKLSsgICAgICAgIHNlbGYuX19k ZW55bGlzdCA9IGRlbnlsaXN0Ci0rICAgICAgICBzZWxmLl9fdmVyc2lvbiA9IHZlcnNpb24KLSsg ICAgICAgIHNlbGYuX19leGVjID0gZXhlYwotKyAgICAgICAgc2VsZi5fX2ZpcnN0ID0gZmlyc3QK LSsgICAgICAgIHNlbGYuX19yZXN1bHQgPSBTdHJpbmdJTygpCi0rICAgICAgICBkb3duc3RyZWFt ID0gWE1MR2VuZXJhdG9yKHNlbGYuX19yZXN1bHQsICd1dGYtOCcpCi0rICAgICAgICBzZWxmLl9f bG9hZChkb3duc3RyZWFtKQotKwotKyAgICBkZWYgX19sb2FkKHNlbGYsIGRvd25zdHJlYW09Tm9u ZSk6Ci0rICAgICAgICBwYXJzZXIgPSBzYXhfbWFrZV9wYXJzZXIoKQotKyAgICAgICAgcGFyc2Vy LnNldEZlYXR1cmUoc2F4X2ZlYXR1cmVfbmFtZXNwYWNlcywgMCkKLSsgICAgICAgIHNlbGYuX19o YW5kbGVyID0gRXZkZXZYTUwocGFyc2VyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb3duc3RyZWFtLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9faXNvNjM5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fZGVu eWxpc3QsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0FVVEhPUiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2ZpcnN0KQotKyAgICAg ICAgcGFyc2VyLnNldENvbnRlbnRIYW5kbGVyKHNlbGYuX19oYW5kbGVyKQotKyAgICAgICAgZiA9 IGNvZGVjcy5vcGVuKHNlbGYuX19wYXRoLCAncicsIGVuY29kaW5nPSd1dGYtOCcpCi0rICAgICAg ICB0cnk6Ci0rICAgICAgICAgICAgcGFyc2VyLnBhcnNlKGYpCi0rICAgICAgICBleGNlcHQgU0FY UGFyc2VFeGNlcHRpb246Ci0rICAgICAgICAgICAgcHJpbnQoJ0Vycm9yOiBJbnZhbGlkIGZpbGUg Zm9ybWF0OiAlcycgJSBwYXRoKQotKyAgICAgICAgZmluYWxseToKLSsgICAgICAgICAgICBmLmNs b3NlKCkKLSsgICAgZGVmIHdyaXRlKHNlbGYsIG91dHB1dD1Ob25lKToKLSsgICAgICAgIGlmIG91 dHB1dCAhPSBOb25lOgotKyAgICAgICAgICAgIG9kID0gY29kZWNzLm9wZW4ob3V0cHV0LCAndycs IGVuY29kaW5nPSd1dGYtOCcpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIGlmIFBZM0s6 Ci0rICAgICAgICAgICAgICAgIG9kID0gaW8uVGV4dElPV3JhcHBlcihzeXMuc3Rkb3V0LmJ1ZmZl ciwgZW5jb2Rpbmc9J3V0Zi04JykKLSsgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAg ICBvZCA9IGNvZGVjcy5nZXR3cml0ZXIoJ3V0Zi04Jykoc3lzLnN0ZG91dCkKLSsgICAgICAgIGNv bnRlbnRzID0gc2VsZi5fX3Jlc3VsdC5nZXR2YWx1ZSgpCi0rICAgICAgICBpbmRleCA9IGNvbnRl bnRzLmZpbmQoJzxlbmdpbmVzPicpCi0rICAgICAgICBpZiBpbmRleCA+PSAwOgotKyAgICAgICAg ICAgIGF1dGhvciA9IGVzY2FwZShzZWxmLl9BVVRIT1IpCi0rICAgICAgICAgICAgY29udGVudHMg PSAnJXM8Y29tcG9uZW50PjxuYW1lPiVzPC9uYW1lPlwKLSs8ZGVzY3JpcHRpb24+JXM8L2Rlc2Ny aXB0aW9uPjxleGVjPiVzPC9leGVjPjx2ZXJzaW9uPiVzPC92ZXJzaW9uPlwKLSs8YXV0aG9yPiVz PC9hdXRob3I+PGxpY2Vuc2U+JXM8L2xpY2Vuc2U+PGhvbWVwYWdlPiVzPC9ob21lcGFnZT5cCi0r PHRleHRkb21haW4+JXM8L3RleHRkb21haW4+JXM8L2NvbXBvbmVudD4nICUgKAotKyAgICAgICAg Y29udGVudHNbOmluZGV4XSwKLSsgICAgICAgIHNlbGYuX05BTUUsIHNlbGYuX0RFU0NSSVBUSU9O LAotKyAgICAgICAgc2VsZi5fX2V4ZWMsIHNlbGYuX192ZXJzaW9uLCBhdXRob3IsICdHUEwnLAot KyAgICAgICAgc2VsZi5fSE9NRVBBR0UsIHNlbGYuX0RPTUFJTiwgY29udGVudHNbaW5kZXg6XSAp Ci0rICAgICAgICBwYXJzZWQgPSBtaW5pZG9tLnBhcnNlU3RyaW5nKGNvbnRlbnRzKQotKyAgICAg ICAgIyBmb3JtYXQgd2l0aCBpbmRlbnQgYW5kIGVuY29kaW5nIGF0dHJpYnV0ZSBpbiBoZWFkZXIK LSsgICAgICAgIHhtbCA9IHBhcnNlZC50b3ByZXR0eXhtbChpbmRlbnQ9JyAgICAnLCBlbmNvZGlu Zz0ndXRmLTgnKQotKyAgICAgICAgIyBjb252ZXJ0IGJ5dGUgdG8gc3RyCi0rICAgICAgICBvZC53 cml0ZShzdHIoeG1sLCAndXRmLTgnKSkKLSsgICAgICAgICNvZC53cml0ZShjb250ZW50cykKLSsK LSsKLStjbGFzcyBJU082MzlYTUwoWE1MRmlsdGVyQmFzZSk6Ci0rICAgIGRlZiBfX2luaXRfXyhz ZWxmLCBwYXJzZXI9Tm9uZSk6Ci0rICAgICAgICBzZWxmLl9fY29kZTJ0bzEgPSB7fQotKyAgICAg ICAgc2VsZi5fX2NvZGV0b25hbWUgPSB7fQotKyAgICAgICAgWE1MRmlsdGVyQmFzZS5fX2luaXRf XyhzZWxmLCBwYXJzZXIpCi0rICAgIGRlZiBzdGFydEVsZW1lbnQoc2VsZiwgbmFtZSwgYXR0cnMp OgotKyAgICAgICAgaWYgbmFtZSAhPSAnaXNvXzYzOV9lbnRyeSc6Ci0rICAgICAgICAgICAgcmV0 dXJuCi0rICAgICAgICBuID0gYXR0cnMuZ2V0KCduYW1lJykKLSsgICAgICAgIGlzbzYzOV8xID0g YXR0cnMuZ2V0KCdpc29fNjM5XzFfY29kZScpCi0rICAgICAgICBpc282MzlfMmIgPSBhdHRycy5n ZXQoJ2lzb182MzlfMkJfY29kZScpCi0rICAgICAgICBpc282MzlfMnQgPSBhdHRycy5nZXQoJ2lz b182MzlfMlRfY29kZScpCi0rICAgICAgICBpZiBpc282MzlfMSAhPSBOb25lOgotKyAgICAgICAg ICAgIHNlbGYuX19jb2RldG9uYW1lW2lzbzYzOV8xXSA9IG4KLSsgICAgICAgICAgICBpZiBpc282 MzlfMmIgIT0gTm9uZToKLSsgICAgICAgICAgICAgICAgc2VsZi5fX2NvZGUydG8xW2lzbzYzOV8y Yl0gPSBpc282MzlfMQotKyAgICAgICAgICAgICAgICBzZWxmLl9fY29kZXRvbmFtZVtpc282Mzlf MmJdID0gbgotKyAgICAgICAgICAgIGlmIGlzbzYzOV8ydCAhPSBOb25lIGFuZCBpc282MzlfMmIg IT0gaXNvNjM5XzJ0OgotKyAgICAgICAgICAgICAgICBzZWxmLl9fY29kZTJ0bzFbaXNvNjM5XzJ0 XSA9IGlzbzYzOV8xCi0rICAgICAgICAgICAgICAgIHNlbGYuX19jb2RldG9uYW1lW2lzbzYzOV8y dF0gPSBuCi0rICAgIGRlZiBjb2RlMnRvMShzZWxmLCBpc282MzlfMik6Ci0rICAgICAgICB0cnk6 Ci0rICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19jb2RlMnRvMVtpc282MzlfMl0KLSsgICAgICAg IGV4Y2VwdCBLZXlFcnJvcjoKLSsgICAgICAgICAgICByZXR1cm4gTm9uZQotKwotKwotK2RlZiBw YXJzZV9pc282MzkocGF0aCk6Ci0rICAgIGYgPSBjb2RlY3Mub3BlbihwYXRoLCAncicsIGVuY29k aW5nPSd1dGYtOCcpCi0rICAgIHBhcnNlciA9IHNheF9tYWtlX3BhcnNlcigpCi0rICAgIHBhcnNl ci5zZXRGZWF0dXJlKHNheF9mZWF0dXJlX25hbWVzcGFjZXMsIDApCi0rICAgIGhhbmRsZXIgPSBJ U082MzlYTUwocGFyc2VyKQotKyAgICBwYXJzZXIuc2V0Q29udGVudEhhbmRsZXIoaGFuZGxlcikK LSsgICAgdHJ5OgotKyAgICAgICAgcGFyc2VyLnBhcnNlKGYpCi0rICAgIGV4Y2VwdCBTQVhQYXJz ZUV4Y2VwdGlvbjoKLSsgICAgICAgIHByaW50KCdFcnJvcjogSW52YWxpZCBmaWxlIGZvcm1hdDog JXMnICUgcGF0aCkKLSsgICAgZmluYWxseToKLSsgICAgICAgIGYuY2xvc2UoKQotKyAgICByZXR1 cm4gaGFuZGxlcgotKwotKwotK2RlZiBwYXJzZV9kZW55bGlzdChkZW55ZmlsZSk6Ci0rICAgIGRl bnlsaXN0ID0gW10KLSsgICAgZiA9IGNvZGVjcy5vcGVuKGRlbnlmaWxlLCAncicsIGVuY29kaW5n PSd1dGYtOCcpCi0rICAgIGZvciBsaW5lIGluIGYucmVhZGxpbmVzKCk6Ci0rICAgICAgICBpZiBs aW5lID09ICdcbicgb3IgbGluZVswXSA9PSAnIyc6Ci0rICAgICAgICAgICAgY29udGludWUKLSsg ICAgICAgIGxpbmUgPSBsaW5lLnJzdHJpcCgpCi0rICAgICAgICBlbnRyeSA9IGxpbmUuc3BsaXQo JzonKQotKyAgICAgICAgaWYgbGVuKGVudHJ5KSAhPSA0OgotKyAgICAgICAgICAgIHByaW50KCdX QVJOSU5HOiBmb3JtYXQgZXJyb3I6IFwnJXNcJyBhZ2FpbnN0IFwnJXNcJycgXAotKyAgICAgICAg ICAgICAgICAgICUgKGxpbmUsICd4a2I6bGF5b3V0OnZhcmlhbnQ6bGFuZycpKQotKyAgICAgICAg ICAgIGNvbnRpbnVlCi0rICAgICAgICBkZW55bGlzdC5hcHBlbmQoZW50cnkpCi0rICAgIGYuY2xv c2UoKQotKyAgICByZXR1cm4gZGVueWxpc3QKLSsKLSsKLStpZiBfX25hbWVfXyA9PSAnX19tYWlu X18nOgotKyAgICBwcmduYW1lID0gb3MucGF0aC5iYXNlbmFtZShzeXMuYXJndlswXSkKLSsgICAg bXlkaXIgPSBvcy5wYXRoLmRpcm5hbWUoc3lzLmFyZ3ZbMF0pCi0rICAgIHRyeToKLSsgICAgICAg IG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0KHN5cy5hcmd2WzE6XSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdoaTpvOlY6ZTpJOjEnLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWydoZWxwJywgJ2lucHV0PScsICdvdXRwdXQ9JywgJ3ZlcnNpb249 JywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhlYy1wYXRoPScsICdp c28tcGF0aD0nLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdC1s YW5ndWFnZSddKQotKyAgICBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yIGFzIGVycjoKLSsgICAg ICAgIHByaW50KGVycikKLSsgICAgICAgIHVzYWdlKHByZ25hbWUpCi0rICAgICAgICBzeXMuZXhp dCgyKQotKyAgICBpZiBsZW4oYXJncykgPiAwOgotKyAgICAgICAgdXNhZ2UocHJnbmFtZSkKLSsg ICAgICAgIHN5cy5leGl0KDIpCi0rICAgIGlucHV0ID0gRVZERVZfWE1MCi0rICAgIG91dHB1dCA9 IE5vbmUKLSsgICAgdmVyc2lvbj1WRVJTSU9OCi0rICAgIGV4ZWNfcGF0aD1FWEVDX1BBVEgKLSsg ICAgaXNvX3BhdGg9SVNPX1BBVEgKLSsgICAgZmlyc3Q9RmFsc2UKLSsgICAgZm9yIG9wdCwgYXJn IGluIG9wdHM6Ci0rICAgICAgICBpZiBvcHQgaW4gKCctaCcsICctLWhlbHAnKToKLSsgICAgICAg ICAgICB1c2FnZShwcmduYW1lKQotKyAgICAgICAgICAgIHN5cy5leGl0KCkKLSsgICAgICAgIGVs aWYgb3B0IGluICgnLWknLCAnLS1pbnB1dCcpOgotKyAgICAgICAgICAgIGlucHV0ID0gYXJnCi0r ICAgICAgICBlbGlmIG9wdCBpbiAoJy1vJywgJy0tb3V0cHV0Jyk6Ci0rICAgICAgICAgICAgb3V0 cHV0ID0gYXJnCi0rICAgICAgICBlbGlmIG9wdCBpbiAoJy1WJywgJy0tdmVyc2lvbicpOgotKyAg ICAgICAgICAgIHZlcnNpb24gPSBhcmcKLSsgICAgICAgIGVsaWYgb3B0IGluICgnLWUnLCAnLS1l eGVjLXBhdGgnKToKLSsgICAgICAgICAgICBleGVjX3BhdGggPSBhcmcKLSsgICAgICAgIGVsaWYg b3B0IGluICgnLUknLCAnLS1pc28tcGF0aCcpOgotKyAgICAgICAgICAgIGlzb19wYXRoID0gYXJn Ci0rICAgICAgICBlbGlmIG9wdCBpbiAoJy0xJywgJy0tZmlyc3QtbGFuZ2F1Z2UnKToKLSsgICAg ICAgICAgICBmaXJzdD1UcnVlCi0rCi0rICAgIGlzbzYzOSA9IHBhcnNlX2lzbzYzOShpc29fcGF0 aCkKLSsgICAgZGVueWxpc3QgPSBwYXJzZV9kZW55bGlzdCgnJXMvJXMnICUgKCBteWRpciwgJ2Rl bnlsaXN0LnR4dCcpKQotKyAgICB4bWwgPSBHZW5lcmF0ZUVuZ2luZVhNTChpbnB1dCwgaXNvNjM5 LCBkZW55bGlzdCwgdmVyc2lvbiwgZXhlY19wYXRoLCBmaXJzdCkKLSsgICAgeG1sLndyaXRlKG91 dHB1dCkKLS0tIAotMi4yNC4xCi0KLUZyb20gNjg3OTg3OTAwMmFmNDdkNDlkODc0MGNhMzgzYTA0 OGQyYWM4ZTkwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjEgQXVnIDIwMjAgMDk6MTU6MTQg KzA5MDAKLVN1YmplY3Q6IFtQQVRDSCA4LzldIHNyYy90ZXN0czogRml4IHJ1bnRlc3Qgd2l0aCBz aW1wbGUueG1sCi0KLU5vdyBzaW1wbGUueG1sLmluIGlzIHJlcGxhY2VkIHdpdGggc2ltcGxlLnht bCBhbmQgbW9kaWZ5IHJ1bnRlc3QKLXRvIGNvcHkgc2ltcGxlLnhtbC4KLQotQlVHPWh0dHBzOi8v Z2l0aHViLmNvbS9pYnVzL2lidXMvaXNzdWVzLzIxNTMKLS0tLQotIHNyYy90ZXN0cy9ydW50ZXN0 IHwgMTUgKysrKysrKysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9ydW50ZXN0IGIvc3JjL3Rl c3RzL3J1bnRlc3QKLWluZGV4IGE2ZTQxOTRiLi4xMWJjYzZjMiAxMDA3NTUKLS0tLSBhL3NyYy90 ZXN0cy9ydW50ZXN0Ci0rKysgYi9zcmMvdGVzdHMvcnVudGVzdAotQEAgLTkxLDYgKzkxLDE5IEBA IGZ1bmNfY29weV9jb21wb25lbnQgKCkgewotICAgICBmaQotIH0KLSAKLStmdW5jX2NvcHlfc2lt cGxlX3htbCAoKSB7Ci0rICAgIGZpbGU9JDEKLSsgICAgYmFzZT1gZnVuY19iYXNlbmFtZSAkZmls ZWAKLSsgICAgbGliZXhlY2Rpcj1gZnVuY19kaXJuYW1lICRmaWxlYAotKyAgICAjIHRvcF9zcmNk aXIgIT0gdG9wX2J1aWxkZGlyIGluIG1ha2UgZGlzdAotKyAgICBsaWJleGVjZGlyPWBlY2hvICIk bGliZXhlY2RpciIgfCBzZWQgLWUgInN8JHRvcF9zcmNkaXJ8JHRvcF9idWlsZGRpcnwiYAotKyAg ICBpZiB0ZXN0IC1mICRmaWxlOyB0aGVuCi0rICAgICAgICBta2RpciAtcCBjb21wb25lbnRzCi0r ICAgICAgICBzZWQgInN8XCg8ZXhlYz5cKS4qXCgvaWJ1cy1lbmdpbmUtc2ltcGxlPC9leGVjPlwp fFwxJGxpYmV4ZWNkaXJcMnwiIFwKLSsgICAgICAgICAgICAgICAgPCAkZmlsZSA+IGNvbXBvbmVu dHMvJGJhc2UKLSsgICAgZmkKLSt9Ci0rCi0gdHJhcCAnZnVuY19jbGVhbnVwICR0c3RkaXInIDEg MiAzIDE1Ci0gCi0gdHN0PSQxOyBzaGlmdAotQEAgLTEyNyw3ICsxNDAsNyBAQCBydW5fdGVzdF9j YXNlKCkKLSAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICBmaQotICAgICAgICAgIyBmdW5j X2NvcHlfY29tcG9uZW50IHJlcGxhY2VzIHMvJHRvcF9zcmNkaXIvJXRvcF9idWlsZGRpci8KLS0g ICAgICAgIGZ1bmNfY29weV9jb21wb25lbnQgIi4uLyR0b3Bfc3JjZGlyL2VuZ2luZS9zaW1wbGUu eG1sIgotKyAgICAgICAgZnVuY19jb3B5X3NpbXBsZV94bWwgIi4uLyR0b3Bfc3JjZGlyL2VuZ2lu ZS9zaW1wbGUueG1sIgotICAgICAgICAgZnVuY19jb3B5X2NvbXBvbmVudCAiLi4vJHRvcF9zcmNk aXIvY29uZi9tZW1jb25mL21lbWNvbmYueG1sIgotIAotICAgICAgICAgSUJVU19DT01QT05FTlRf UEFUSD0kUFdEL2NvbXBvbmVudHMKLS0tIAotMi4yNC4xCi0KLUZyb20gNTliOTAyYTgwOWVkNjI4 YmI0ZDViYmFkMmI4YmNiNzlhOGEyMzIwOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjEgQXVn IDIwMjAgMDk6NDY6NDYgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSCA5LzldIHNyYzogQWRkIGZpbGUg bGlzdCBpbiByZWdpc3RyeSBmaWxlCi0KLVVuZGVyIEZlZG9yYSBTaWx2ZXJibHVlLCBzdF9tdGlt ZSBpbiAvdXNyL3NoYXJlL2lidXMvY29tcG9uZW50IGlzCi0xIEphbiAxOTcwIGV2ZW4gaWYgaWJ1 cyBlbmdpbmVzIGFyZSBpbnN0YWxsZWQgYW5kIGlidXMtZGFlbW9uCi1jYW5ub3QgZGV0ZWN0IG5l dyBlbmdpbmVzLgotTm93IElCdXNPYnNlcnZlZFBhdGggc2F2ZXMgaGFzaGVkIGZpbGUgbGlzdCBi ZXNpZGVzIHN0X210aW1lIG9mCi10aGUgY29tcG5lbnQgZGlyZWN0b3J5IHRvIGRldGVjdCB0aGUg aW5zdGFsbGVkIGVuZ2luZXMgbmV3bHkuCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9p YnVzL2lzc3Vlcy8yMTMyCi0tLS0KLSBzcmMvaWJ1c2NvbXBvbmVudC5jICAgIHwgICA5ICstCi0g c3JjL2lidXNvYnNlcnZlZHBhdGguYyB8IDI3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLQotIHNyYy9pYnVzcmVnaXN0cnkuYyAgICAgfCAgIDYgKy0KLSAzIGZpbGVz IGNoYW5nZWQsIDI1NCBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL3NyYy9pYnVzY29tcG9uZW50LmMgYi9zcmMvaWJ1c2NvbXBvbmVudC5jCi1pbmRleCA5ODM3 ZjQ3Yy4uMTQwNGFkYTAgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2NvbXBvbmVudC5jCi0rKysgYi9z cmMvaWJ1c2NvbXBvbmVudC5jCi1AQCAtMiw3ICsyLDggQEAKLSAvKiB2aW06c2V0IGV0IHN0cz00 OiAqLwotIC8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAx MCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMp IDIwMDgtMjAxOSBSZWQgSGF0LCBJbmMuCi0rICogQ29weXJpZ2h0IChDKSAyMDIwIFRha2FvIEZ1 aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAw OC0yMDIwIFJlZCBIYXQsIEluYy4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNDk5LDExICs1 MDAsNyBAQCBpYnVzX2NvbXBvbmVudF9vdXRwdXQgKElCdXNDb21wb25lbnQgKmNvbXBvbmVudCwK LSAKLSAgICAgICAgIGZvciAocCA9IGNvbXBvbmVudC0+cHJpdi0+b2JzZXJ2ZWRfcGF0aHM7IHAg IT0gTlVMTDsgcCA9IHAtPm5leHQgKSB7Ci0gICAgICAgICAgICAgSUJ1c09ic2VydmVkUGF0aCAq cGF0aCA9IChJQnVzT2JzZXJ2ZWRQYXRoICopIHAtPmRhdGE7Ci0tCi0tICAgICAgICAgICAgZ19z dHJpbmdfYXBwZW5kX2luZGVudCAob3V0cHV0LCBpbmRlbnQgKyAyKTsKLS0gICAgICAgICAgICBn X3N0cmluZ19hcHBlbmRfcHJpbnRmIChvdXRwdXQsICI8cGF0aCBtdGltZT1cIiVsZFwiID4lczwv cGF0aD5cbiIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC0+bXRp bWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC0+cGF0aCk7Ci0r ICAgICAgICAgICAgaWJ1c19vYnNlcnZlZF9wYXRoX291dHB1dCAocGF0aCwgb3V0cHV0LCBpbmRl bnQgKyAyKTsKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9pbmRlbnQg KG91dHB1dCwgaW5kZW50ICsgMSk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNvYnNlcnZlZHBhdGgu YyBiL3NyYy9pYnVzb2JzZXJ2ZWRwYXRoLmMKLWluZGV4IDViNzlmMWZlLi40MjE5MjQzMSAxMDA2 NDQKLS0tLSBhL3NyYy9pYnVzb2JzZXJ2ZWRwYXRoLmMKLSsrKyBiL3NyYy9pYnVzb2JzZXJ2ZWRw YXRoLmMKLUBAIC0yLDcgKzIsOCBAQAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogaWJ1 cyAtIFRoZSBJbnB1dCBJQnVzCi0gICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTUgUGVuZyBIdWFu ZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0tICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkg UmVkIEhhdCwgSW5jLgotKyAqIENvcHlyaWdodCAoQykgMjAyMCBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAyMCBSZWQg SGF0LCBJbmMuCi0gICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTMwLDkgKzMxLDkgQEAgZW51bSB7 Ci0gfTsKLSAKLSAKLS0vKiBJQnVzT2JzZXJ2ZWRQYXRoUHJpdiAqLwotKy8qIElCdXNPYnNlcnZl ZFBhdGhQcml2YXRlICovCi0gc3RydWN0IF9JQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSB7Ci0tICAg IGdwb2ludGVyIHBhZDsKLSsgICAgZ3VpbnQgICAqZmlsZV9oYXNoX2xpc3Q7Ci0gfTsKLSB0eXBl ZGVmIHN0cnVjdCBfSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgSUJ1c09ic2VydmVkUGF0aFByaXZh dGU7Ci0gCi1AQCAtNTIsNyArNTMsOSBAQCBzdGF0aWMgZ2Jvb2xlYW4gIGlidXNfb2JzZXJ2ZWRf cGF0aF9jb3B5ICAgICAgICAgICAgKElCdXNPYnNlcnZlZFBhdGggICAgICAgKmRlcwotIHN0YXRp YyBnYm9vbGVhbiAgaWJ1c19vYnNlcnZlZF9wYXRoX3BhcnNlX3htbF9ub2RlICAoSUJ1c09ic2Vy dmVkUGF0aCAgICAgICAqcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFhNTE5vZGUgICAgICAgICAgICAgICAgKm5vZGUpOwotIAotLUdf REVGSU5FX1RZUEUgKElCdXNPYnNlcnZlZFBhdGgsIGlidXNfb2JzZXJ2ZWRfcGF0aCwgSUJVU19U WVBFX1NFUklBTElaQUJMRSkKLStHX0RFRklORV9UWVBFX1dJVEhfUFJJVkFURSAoSUJ1c09ic2Vy dmVkUGF0aCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c19vYnNlcnZlZF9wYXRo LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQot IAotIHN0YXRpYyB2b2lkCi0gaWJ1c19vYnNlcnZlZF9wYXRoX2NsYXNzX2luaXQgKElCdXNPYnNl cnZlZFBhdGhDbGFzcyAqY2xhc3MpCi1AQCAtODQsNyArODcsOSBAQCBzdGF0aWMgZ2Jvb2xlYW4K LSBpYnVzX29ic2VydmVkX3BhdGhfc2VyaWFsaXplIChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50QnVpbGRlciAgKmJ1aWxkZXIp Ci0gewotKyAgICBJQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSAqcHJpdiA9IElCVVNfT0JTRVJWRURf UEFUSF9HRVRfUFJJVkFURSAocGF0aCk7Ci0gICAgIGdib29sZWFuIHJldHZhbDsKLSsgICAgZ3Vp bnQgaTsKLSAKLSAgICAgcmV0dmFsID0gSUJVU19TRVJJQUxJWkFCTEVfQ0xBU1MgKGlidXNfb2Jz ZXJ2ZWRfcGF0aF9wYXJlbnRfY2xhc3MpLT4KLSAgICAgICAgICAgICBzZXJpYWxpemUgKChJQnVz U2VyaWFsaXphYmxlICopcGF0aCwgYnVpbGRlcik7Ci1AQCAtOTMsNiArOTgsMTUgQEAgaWJ1c19v YnNlcnZlZF9wYXRoX3NlcmlhbGl6ZSAoSUJ1c09ic2VydmVkUGF0aCAqcGF0aCwKLSAgICAgZ192 YXJpYW50X2J1aWxkZXJfYWRkIChidWlsZGVyLCAicyIsIHBhdGgtPnBhdGgpOwotICAgICBnX3Zh cmlhbnRfYnVpbGRlcl9hZGQgKGJ1aWxkZXIsICJ4IiwgcGF0aC0+bXRpbWUpOwotIAotKyAgICBp ZiAoIXByaXYtPmZpbGVfaGFzaF9saXN0KSB7Ci0rICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9h ZGQgKGJ1aWxkZXIsICJ1IiwgMCk7Ci0rICAgICAgICByZXR1cm4gVFJVRTsKLSsgICAgfQotKyAg ICBmb3IgKGkgPSAwOyBwcml2LT5maWxlX2hhc2hfbGlzdFtpXTsgaSsrKTsKLSsgICAgZ192YXJp YW50X2J1aWxkZXJfYWRkIChidWlsZGVyLCAidSIsIGkpOwotKyAgICBmb3IgKGkgPSAwOyBwcml2 LT5maWxlX2hhc2hfbGlzdFtpXTsgaSsrKQotKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRk IChidWlsZGVyLCAidSIsIHByaXYtPmZpbGVfaGFzaF9saXN0W2ldKTsKLSsKLSAgICAgcmV0dXJu IFRSVUU7Ci0gfQotIAotQEAgLTEwMCw3ICsxMTQsOSBAQCBzdGF0aWMgZ2ludAotIGlidXNfb2Jz ZXJ2ZWRfcGF0aF9kZXNlcmlhbGl6ZSAoSUJ1c09ic2VydmVkUGF0aCAqcGF0aCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgKnZhcmlhbnQpCi0gewot KyAgICBJQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSAqcHJpdiA9IElCVVNfT0JTRVJWRURfUEFUSF9H RVRfUFJJVkFURSAocGF0aCk7Ci0gICAgIGdpbnQgcmV0dmFsOwotKyAgICBndWludCBpLCBsZW5n dGggPSAwOwotIAotICAgICByZXR2YWwgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoaWJ1c19v YnNlcnZlZF9wYXRoX3BhcmVudF9jbGFzcyktPgotICAgICAgICAgICAgIGRlc2VyaWFsaXplICgo SUJ1c1NlcmlhbGl6YWJsZSAqKXBhdGgsIHZhcmlhbnQpOwotQEAgLTEwOSw2ICsxMjUsMTUgQEAg aWJ1c19vYnNlcnZlZF9wYXRoX2Rlc2VyaWFsaXplIChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAot ICAgICBpYnVzX2dfdmFyaWFudF9nZXRfY2hpbGRfc3RyaW5nICh2YXJpYW50LCByZXR2YWwrKywg JnBhdGgtPnBhdGgpOwotICAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkICh2YXJpYW50LCByZXR2YWwr KywgIngiLCAmcGF0aC0+bXRpbWUpOwotIAotKyAgICBpZiAoZ192YXJpYW50X25fY2hpbGRyZW4g KHZhcmlhbnQpIDwgcmV0dmFsICsgMikKLSsgICAgICAgIHJldHVybiByZXR2YWw7Ci0rICAgIGdf dmFyaWFudF9nZXRfY2hpbGQgKHZhcmlhbnQsIHJldHZhbCsrLCAidSIsICZsZW5ndGgpOwotKyAg ICBpZiAoIWxlbmd0aCkKLSsgICAgICAgIHJldHVybiByZXR2YWw7Ci0rICAgIHByaXYtPmZpbGVf aGFzaF9saXN0ID0gZ19uZXcwIChndWludCwgbGVuZ3RoICsgMSk7Ci0rICAgIGZvciAoaSA9IDA7 IGkgPCBsZW5ndGg7IGkrKykKLSsgICAgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQgKHZhcmlhbnQs IHJldHZhbCsrLCAidSIsICZwcml2LT5maWxlX2hhc2hfbGlzdFtpXSk7Ci0rCi0gICAgIHJldHVy biByZXR2YWw7Ci0gfQotIAotQEAgLTExNiwxNCArMTQxLDI3IEBAIHN0YXRpYyBnYm9vbGVhbgot IGlidXNfb2JzZXJ2ZWRfcGF0aF9jb3B5IChJQnVzT2JzZXJ2ZWRQYXRoICAgICAgICpkZXN0LAot ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJQnVzT2JzZXJ2ZWRQYXRoICpzcmMpCi0g ewotKyAgICBJQnVzT2JzZXJ2ZWRQYXRoUHJpdmF0ZSAqZGVzdF9wcml2ID0gSUJVU19PQlNFUlZF RF9QQVRIX0dFVF9QUklWQVRFIChkZXN0KTsKLSsgICAgSUJ1c09ic2VydmVkUGF0aFByaXZhdGUg KnNyY19wcml2ID0KLSsgICAgICAgICAgICBJQlVTX09CU0VSVkVEX1BBVEhfR0VUX1BSSVZBVEUg KChJQnVzT2JzZXJ2ZWRQYXRoICopc3JjKTsKLSAgICAgZ2Jvb2xlYW4gcmV0dmFsOwotKyAgICBn dWludCBpOwotIAotLSAgICByZXR2YWwgPSBJQlVTX1NFUklBTElaQUJMRV9DTEFTUyAoaWJ1c19v YnNlcnZlZF9wYXRoX3BhcmVudF9jbGFzcyktPmNvcHkgKChJQnVzU2VyaWFsaXphYmxlICopZGVz dCwgKElCdXNTZXJpYWxpemFibGUgKilzcmMpOwotKyAgICByZXR2YWwgPSBJQlVTX1NFUklBTEla QUJMRV9DTEFTUyAoaWJ1c19vYnNlcnZlZF9wYXRoX3BhcmVudF9jbGFzcyktPgotKyAgICAgICAg ICAgIGNvcHkgKChJQnVzU2VyaWFsaXphYmxlICopZGVzdCwgKElCdXNTZXJpYWxpemFibGUgKilz cmMpOwotICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAocmV0dmFsLCBGQUxTRSk7Ci0gCi0gICAg IGRlc3QtPnBhdGggPSBnX3N0cmR1cCAoc3JjLT5wYXRoKTsKLSAgICAgZGVzdC0+bXRpbWUgPSBz cmMtPm10aW1lOwotIAotKyAgICBnX2NsZWFyX3BvaW50ZXIgKCZkZXN0X3ByaXYtPmZpbGVfaGFz aF9saXN0LCBnX2ZyZWUpOwotKyAgICBpZiAoIXNyY19wcml2LT5maWxlX2hhc2hfbGlzdCkKLSsg ICAgICAgIHJldHVybiBUUlVFOwotKyAgICBmb3IgKGkgPSAwOyBzcmNfcHJpdi0+ZmlsZV9oYXNo X2xpc3RbaV07IGkrKyk7Ci0rICAgIGRlc3RfcHJpdi0+ZmlsZV9oYXNoX2xpc3QgPSBnX25ldzAg KGd1aW50LCBpICsgMSk7Ci0rICAgIGZvciAoaSA9IDA7IHNyY19wcml2LT5maWxlX2hhc2hfbGlz dFtpXTsgaSsrKQotKyAgICAgICAgZGVzdF9wcml2LT5maWxlX2hhc2hfbGlzdFtpXSA9IHNyY19w cml2LT5maWxlX2hhc2hfbGlzdFtpXTsKLSsKLSAgICAgcmV0dXJuIFRSVUU7Ci0gfQotIAotQEAg LTEzNywyMyArMTc1LDQ4IEBAIGlidXNfb2JzZXJ2ZWRfcGF0aF9jb3B5IChJQnVzT2JzZXJ2ZWRQ YXRoICAgICAgICpkZXN0LAotIAotIHZvaWQKLSBpYnVzX29ic2VydmVkX3BhdGhfb3V0cHV0IChJ QnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgR1N0cmlu ZyAgICAgICAgICpvdXRwdXQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAg ICAgICAgIGluZGVudCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBHU3RyaW5nICAgICAg ICAgICpvdXRwdXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAg ICAgaW5kZW50KQotIHsKLSsgICAgSUJ1c09ic2VydmVkUGF0aFByaXZhdGUgKnByaXYgPSBJQlVT X09CU0VSVkVEX1BBVEhfR0VUX1BSSVZBVEUgKHBhdGgpOwotKyAgICBndWludCBpOwotKwotICAg ICBnX2Fzc2VydCAoSUJVU19JU19PQlNFUlZFRF9QQVRIIChwYXRoKSk7Ci0gICAgIGdfYXNzZXJ0 IChvdXRwdXQpOwotIAotLSAgICBnX3N0cmluZ19hcHBlbmRfaW5kZW50IChvdXRwdXQsIGluZGVu dCk7Ci0tICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKG91dHB1dCwgIjxwYXRoIG10aW1lPVwi JWxkXCIgPiVzPC9wYXRoPlxuIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYXRoLT5tdGltZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRo LT5wYXRoKTsKLSsgICAgaWYgKCFwcml2LT5maWxlX2hhc2hfbGlzdCkgewotKyAgICAgICAgZ19z dHJpbmdfYXBwZW5kX2luZGVudCAob3V0cHV0LCBpbmRlbnQpOwotKyAgICAgICAgZ19zdHJpbmdf YXBwZW5kX3ByaW50ZiAob3V0cHV0LCAiPHBhdGggbXRpbWU9XCIlbGRcIiA+JXM8L3BhdGg+XG4i LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC0+bXRpbWUsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLT5wYXRoKTsKLSsgICAgfSBlbHNlIHsKLSsg ICAgICAgIGdfc3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwgaW5kZW50KTsKLSsgICAgICAg IGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKAotKyAgICAgICAgICAgICAgICBvdXRwdXQsCi0rICAg ICAgICAgICAgICAgICI8cGF0aCBtdGltZT1cIiVsZFwiIHR5cGU9XCJkaXJcIiBwYXRoPVwiJXNc Ij5cbiIsCi0rICAgICAgICAgICAgICAgIHBhdGgtPm10aW1lLAotKyAgICAgICAgICAgICAgICBw YXRoLT5wYXRoKTsKLSsgICAgICAgIGZvciAoaSA9IDA7IHByaXYtPmZpbGVfaGFzaF9saXN0W2ld OyBpKyspIHsKLSsgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmRfaW5kZW50IChvdXRwdXQsIGlu ZGVudCArIDEpOwotKyAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKG91dHB1dCwg IjxmaWxlIGhhc2g9XCIldVwiIC8+XG4iLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHByaXYtPmZpbGVfaGFzaF9saXN0W2ldKTsKLSsgICAgICAgIH0KLSsgICAgICAgIGdf c3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwgaW5kZW50KTsKLSsgICAgICAgIGdfc3RyaW5n X2FwcGVuZF9wcmludGYgKG91dHB1dCwgIjwvcGF0aD5cbiIpOwotKyAgICB9Ci0gfQotIAotIGdi b29sZWFuCi0gaWJ1c19vYnNlcnZlZF9wYXRoX2NoZWNrX21vZGlmaWNhdGlvbiAoSUJ1c09ic2Vy dmVkUGF0aCAqcGF0aCkKLSB7Ci0rICAgIElCdXNPYnNlcnZlZFBhdGhQcml2YXRlICpwcml2ID0g SUJVU19PQlNFUlZFRF9QQVRIX0dFVF9QUklWQVRFIChwYXRoKTsKLSAgICAgZ2NoYXIgKnJlYWxf cGF0aCA9IE5VTEw7Ci0gICAgIHN0cnVjdCBzdGF0IGJ1ZjsKLSsgICAgZ2Jvb2xlYW4gcmV0dmFs ID0gRkFMU0U7Ci0rICAgIEdEaXIgKmRpciA9IE5VTEw7Ci0rICAgIGNvbnN0IGdjaGFyICpuYW1l OwotKyAgICBndWludCBpID0gMDsKLSsgICAgZ3VpbnQgZmlsZV9udW0gPSAwOwotIAotICAgICBn X2Fzc2VydCAoSUJVU19JU19PQlNFUlZFRF9QQVRIIChwYXRoKSk7Ci0gCi1AQCAtMTY5LDExICsy MzIsNzEgQEAgaWJ1c19vYnNlcnZlZF9wYXRoX2NoZWNrX21vZGlmaWNhdGlvbiAoSUJ1c09ic2Vy dmVkUGF0aCAqcGF0aCkKLSAgICAgICAgIGJ1Zi5zdF9tdGltZSA9IDA7Ci0gICAgIH0KLSAKLS0g ICAgZ19mcmVlIChyZWFsX3BhdGgpOwotIAotLSAgICBpZiAocGF0aC0+bXRpbWUgPT0gYnVmLnN0 X210aW1lKQotLSAgICAgICAgcmV0dXJuIEZBTFNFOwotLSAgICByZXR1cm4gVFJVRTsKLSsgICAg aWYgKHBhdGgtPm10aW1lICE9IGJ1Zi5zdF9tdGltZSkgewotKyAgICAgICAgcmV0dmFsID0gVFJV RTsKLSsgICAgICAgIGdvdG8gZW5kX2NoZWNrX21vZGlmaWNhdGlvbjsKLSsgICAgfQotKwotKyAg ICAvKiBJZiBhbiBpYnVzIGVuZ2luZSBpcyBpbnN0YWxsZWQsIG5vcm1hbCBmaWxlIHN5c3RlbSB1 cGRhdGVzCi0rICAgICAqIHRoZSBkaXJlY3RvcnkgbXRpbWUgb2YgIi91c3Ivc2hhcmUvaWJ1cy9j b21wb25lbnQiIGFuZAotKyAgICAgKiBwYXRoLT5tdGltZSBvZiB0aGUgY2FjaGUgZmlsZSBhbmQg YnVmLnN0X210aW1lIG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeQotKyAgICAgKiBjb3VsZCBoYXZl IHRoZSBkaWZmZXJlbnQgdmFsdWVzLgotKyAgICAgKgotKyAgICAgKiBCdXQgdW5kZXIgYSBzcGVj aWFsIGZpbGUgc3lzdGVtLCB0aGUgYnVmLnN0X210aW1lIGlzIG5vdCB1cGRhdGVkCi0rICAgICAq IGV2ZW4gaWYgYW4gaWJ1cyBlbmdpbmUgaXMgaW5zdGFsbGVkLCBsaWtlcyBGZWRvcmEgU2lsdmVy Ymx1ZQotKyAgICAgKiBhbmQgaWJ1c19vYnNlcnZlZF9wYXRoX2NoZWNrX21vZGlmaWNhdGlvbigp IGNvdWxkIG5vdCBkZXRlY3QKLSsgICAgICogdGhlIGluc3RhbGxlZCBpYnVzIGVuZ2luZXMuCi0r ICAgICAqIE5vdyBwYXRoLT5wcml2LT5maWxlX2hhc2hfbGlzdCByZXNlcnZlcyB0aGUgaGFzaCBs aXN0IG9mIHRoZSBmaWxlcwotKyAgICAgKiBpbiB0aGUgb2JzZXJ2ZWQgZGlyZWN0b3J5IGFuZCBp ZiBhIG5ldyBpYnVzIGVuZ2luZSBpcyBpbnN0YWxsZWQsCi0rICAgICAqIHRoZSBoYXNoIG9mIHRo ZSBjb21wb3NlIGZpbGUgZG9lcyBub3QgZXhpc3RzIGluIHRoZSBjYWNoZSdzCi0rICAgICAqIGZp bGVfaGFzaF9saXN0IGFuZCBpYnVzLWRhZW1vbiByZWdlbmVyYXRlIHRoZSBjYWNoZSBzdWNjZXNz ZnVsbHkuCi0rICAgICAqLwotKyAgICBpZiAoIXByaXYtPmZpbGVfaGFzaF9saXN0KSB7Ci0rICAg ICAgICAvKiBJZiB0aGUgY2FjaGUgdmVyc2lvbiBpcyBvbGQsIGlidXNfcmVnaXN0cnlfbG9hZF9j YWNoZSgpIHJldHVybnMKLSsgICAgICAgICAqIEZBTFNFIGFuZCBpYnVzX3JlZ2lzdHJ5X2NoZWNr X21vZGlmaWNhdGlvbigpIGFuZCB0aGlzIGFyZSBub3QKLSsgICAgICAgICAqIGNhbGxlZC4KLSsg ICAgICAgICAqIElmIHRoZSBjYWNoZSB2ZXJzaW9uIGlzIHRoZSBsYXRlc3QsIHRoZSBjYWNoZSBm aWxlIGluY2x1ZGVzIHRoZQotKyAgICAgICAgICogZmlsbGVkIGZpbGVfaGFzaF9saXN0IGZvciBk aXJlY3RvcmllcyB3aXRoIGlidXNfb2JzZXJ2ZWRfcGF0aF9uZXcoKQotKyAgICAgICAgICogd2hl biB0aGUgY2FjaGUgd2FzIGdlbmVyYXRlZC4KLSsgICAgICAgICAqIFRoZW4gaWYgZmlsZV9oYXNo X2xpc3QgaXMgbnVsbCwgaXQncyBhIHNpbXBsZSBmaWxlIGluIGlidXMKLSsgICAgICAgICAqIGNv bXBvbmVudHMgYW5kIHJldHVybiBoZXJlIHNpbXBseS4KLSsgICAgICAgICAqLwotKyAgICAgICAg Z290byBlbmRfY2hlY2tfbW9kaWZpY2F0aW9uOwotKyAgICB9Ci0rICAgIGRpciA9IGdfZGlyX29w ZW4gKHJlYWxfcGF0aCwgMCwgTlVMTCk7Ci0rICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChkaXIs IEZBTFNFKTsKLSsKLSsgICAgd2hpbGUgKChuYW1lID0gZ19kaXJfcmVhZF9uYW1lIChkaXIpKSAh PSBOVUxMKSB7Ci0rICAgICAgICBndWludCBjdXJyZW50X2hhc2g7Ci0rICAgICAgICBnYm9vbGVh biBoYXNfZmlsZSA9IEZBTFNFOwotKwotKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4IChu YW1lLCAiLnhtbCIpKQotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgY3VycmVudF9o YXNoID0gZ19zdHJfaGFzaCAobmFtZSk7Ci0rICAgICAgICBmb3IgKGkgPSAwOyBwcml2LT5maWxl X2hhc2hfbGlzdFtpXTsgaSsrKSB7Ci0rICAgICAgICAgICAgaWYgKGN1cnJlbnRfaGFzaCA9PSBw cml2LT5maWxlX2hhc2hfbGlzdFtpXSkgewotKyAgICAgICAgICAgICAgICBoYXNfZmlsZSA9IFRS VUU7Ci0rICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0K LSsgICAgICAgIGlmICghaGFzX2ZpbGUpIHsKLSsgICAgICAgICAgICByZXR2YWwgPSBUUlVFOwot KyAgICAgICAgICAgIGdvdG8gZW5kX2NoZWNrX21vZGlmaWNhdGlvbjsKLSsgICAgICAgIH0KLSsg ICAgICAgIGZpbGVfbnVtKys7Ci0rICAgIH0KLSsgICAgaWYgKCFyZXR2YWwpIHsKLSsgICAgICAg IGZvciAoaSA9IDA7IHByaXYtPmZpbGVfaGFzaF9saXN0W2ldOyBpKyspOwotKyAgICAgICAgaWYg KGZpbGVfbnVtICE9IGkpCi0rICAgICAgICAgICAgcmV0dmFsID0gVFJVRTsKLSsgICAgfQotKwot K2VuZF9jaGVja19tb2RpZmljYXRpb246Ci0rICAgIGlmIChkaXIpCi0rICAgICAgICBnX2Rpcl9j bG9zZSAoZGlyKTsKLSsgICAgZ19mcmVlIChyZWFsX3BhdGgpOwotKyAgICByZXR1cm4gcmV0dmFs OwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTIyNCw3ICszNDcsNyBAQCBpYnVzX29ic2VydmVk X3BhdGhfdHJhdmVyc2UgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgsCi0gICAgICAgICAgICAgcGF0 aHMgPSBnX2xpc3RfYXBwZW5kIChwYXRocywgc3ViKTsKLSAgICAgICAgICAgICBwYXRocyA9IGdf bGlzdF9jb25jYXQgKHBhdGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWJ1c19vYnNlcnZlZF9wYXRoX3RyYXZlcnNlIChzdWIsIGRpcl9vbmx5KSk7Ci0tICAgICAgICB9 IGVsc2UgaWYgKCFkaXJfb25seSkgewotKyAgICAgICAgfSBlbHNlIGlmIChzdWItPmlzX2V4aXN0 ICYmICFkaXJfb25seSkgewotICAgICAgICAgICAgIHBhdGhzID0gZ19saXN0X2FwcGVuZCAocGF0 aHMsIHN1Yik7Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC0yMzMsMzYgKzM1NiwxMDIgQEAgaWJ1 c19vYnNlcnZlZF9wYXRoX3RyYXZlcnNlIChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAotICAgICBy ZXR1cm4gcGF0aHM7Ci0gfQotIAotKwotK3N0YXRpYyBnYm9vbGVhbgotK2lidXNfb2JzZXJ2ZWRf cGF0aF9wYXJzZV9maWxlIChJQnVzT2JzZXJ2ZWRQYXRoICpwYXRoLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBYTUxOb2RlICAgICAgICAgICpub2RlLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICpudGgpCi0rewotKyAgICBJQnVzT2Jz ZXJ2ZWRQYXRoUHJpdmF0ZSAqcHJpdiA9IElCVVNfT0JTRVJWRURfUEFUSF9HRVRfUFJJVkFURSAo cGF0aCk7Ci0rICAgIGdjaGFyICoqYXR0cjsKLSsKLSsgICAgZm9yIChhdHRyID0gbm9kZS0+YXR0 cmlidXRlczsgYXR0clswXTsgYXR0ciArPSAyKSB7Ci0rICAgICAgICBndWludCBoYXNoID0gMDsK LSsKLSsgICAgICAgIGlmIChnX3N0cmNtcDAgKCphdHRyLCAiaGFzaCIpID09IDApCi0rICAgICAg ICAgICAgaGFzaCA9IGF0b2wgKGF0dHJbMV0pOwotKyAgICAgICAgZWxzZSBpZiAoZ19zdHJjbXAw ICgqYXR0ciwgIm5hbWUiKSA9PSAwKQotKyAgICAgICAgICAgIGhhc2ggPSBnX3N0cl9oYXNoIChh dHRyWzFdKTsKLSsgICAgICAgIGlmIChoYXNoKSB7Ci0rICAgICAgICAgICAgaWYgKCFwcml2LT5m aWxlX2hhc2hfbGlzdCkgewotKyAgICAgICAgICAgICAgICAqbnRoID0gMDsKLSsgICAgICAgICAg ICAgICAgcHJpdi0+ZmlsZV9oYXNoX2xpc3QgPSBnX25ldzAgKGd1aW50LCAqbnRoICsgMik7Ci0r ICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgcHJpdi0+ZmlsZV9oYXNoX2xp c3QgPSBnX3JlbmV3IChndWludCwgcHJpdi0+ZmlsZV9oYXNoX2xpc3QsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm50aCArIDIpOwotKyAgICAgICAg ICAgIH0KLSsgICAgICAgICAgICBwcml2LT5maWxlX2hhc2hfbGlzdFsqbnRoXSA9IGhhc2g7Ci0r ICAgICAgICAgICAgcHJpdi0+ZmlsZV9oYXNoX2xpc3RbKm50aCArIDFdID0gMDsKLSsgICAgICAg ICAgICAqbnRoICs9IDE7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAg ICAgICBnX3dhcm5pbmcgKCJVbmtvbnduIGF0dHJpYnV0ZSAlcyIsIGF0dHJbMF0pOwotKyAgICB9 Ci0rCi0rICAgIHJldHVybiBUUlVFOwotK30KLSsKLSsKLSBzdGF0aWMgZ2Jvb2xlYW4KLSBpYnVz X29ic2VydmVkX3BhdGhfcGFyc2VfeG1sX25vZGUgKElCdXNPYnNlcnZlZFBhdGggKnBhdGgsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxOb2RlICAgICAgICAgICpub2Rl KQotIHsKLSsgICAgZ2NoYXIgKiphdHRyOwotKyAgICBjb25zdCBnY2hhciAqZnVsbF9wYXRoID0g bm9kZS0+dGV4dDsKLSsgICAgR0xpc3QgKnA7Ci0rICAgIGludCBpID0gMDsKLSsKLSAgICAgZ19h c3NlcnQgKElCVVNfSVNfT0JTRVJWRURfUEFUSCAocGF0aCkpOwotICAgICBnX2Fzc2VydCAobm9k ZSk7Ci0gCi0tICAgIGlmIChHX1VOTElLRUxZIChnX3N0cmNtcDAgKG5vZGUtPm5hbWUsICJwYXRo IikgIT0gMCkpIHsKLSsgICAgaWYgKEdfVU5MSUtFTFkgKGdfc3RyY21wMCAobm9kZS0+bmFtZSwg InBhdGgiKSAhPSAwKSkKLSAgICAgICAgIHJldHVybiBGQUxTRTsKLSsKLSsgICAgZm9yIChhdHRy ID0gbm9kZS0+YXR0cmlidXRlczsgYXR0clswXTsgYXR0ciArPSAyKSB7Ci0rICAgICAgICBpZiAo Z19zdHJjbXAwICgqYXR0ciwgIm10aW1lIikgPT0gMCkgewotKyAgICAgICAgICAgIHBhdGgtPm10 aW1lID0gYXRvbCAoYXR0clsxXSk7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9 Ci0rICAgICAgICBpZiAoZ19zdHJjbXAwICgqYXR0ciwgInBhdGgiKSA9PSAwKSB7Ci0rICAgICAg ICAgICAgZnVsbF9wYXRoID0gYXR0clsxXTsKLSsgICAgICAgICAgICBjb250aW51ZTsKLSsgICAg ICAgIH0KLSsgICAgICAgIGlmIChnX3N0cmNtcDAgKCphdHRyLCAidHlwZSIpID09IDApIHsKLSsg ICAgICAgICAgICBpZiAoIWdfc3RyY21wMCAoYXR0clsxXSwgImRpciIpKQotKyAgICAgICAgICAg ICAgICBwYXRoLT5pc19kaXIgPSBUUlVFOwotKyAgICAgICAgICAgIGVsc2UgaWYgKCFnX3N0cmNt cDAgKGF0dHJbMV0sICJmaWxlIikpCi0rICAgICAgICAgICAgICAgIHBhdGgtPmlzX2RpciA9IEZB TFNFOwotKyAgICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICAgICAgZ193YXJuaW5nICgiVGhl IHR5cGUgYXR0cmlidXRlIGNhbiBiZSBcImRpclwiIG9yIFwiZmlsZVwiLiIpOwotKyAgICAgICAg ICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAgZ193YXJuaW5nICgiVW5rb253biBh dHRyaWJ1dGUgJXMiLCBhdHRyWzBdKTsKLSAgICAgfQotIAotLSAgICBpZiAobm9kZS0+dGV4dFsw XSA9PSAnficgJiYgbm9kZS0+dGV4dFsxXSAhPSBHX0RJUl9TRVBBUkFUT1IpIHsKLS0gICAgICAg IGdfd2FybmluZyAoIkludmFsaWQgcGF0aCBcIiVzXCIiLCBub2RlLT50ZXh0KTsKLSsgICAgaWYg KGZ1bGxfcGF0aFswXSA9PSAnficgJiYgZnVsbF9wYXRoWzFdICE9IEdfRElSX1NFUEFSQVRPUikg ewotKyAgICAgICAgZ193YXJuaW5nICgiSW52YWxpZCBwYXRoIFwiJXNcIiIsIGZ1bGxfcGF0aCk7 Ci0gICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLSAKLS0gICAgcGF0aC0+cGF0aCA9IGdf c3RyZHVwIChub2RlLT50ZXh0KTsKLSsgICAgcGF0aC0+cGF0aCA9IGdfc3RyZHVwIChmdWxsX3Bh dGgpOwotIAotLSAgICBnY2hhciAqKmF0dHI7Ci0tICAgIGZvciAoYXR0ciA9IG5vZGUtPmF0dHJp YnV0ZXM7IGF0dHJbMF07IGF0dHIgKz0gMikgewotLSAgICAgICAgaWYgKGdfc3RyY21wMCAoKmF0 dHIsICJtdGltZSIpID09IDApIHsKLS0gICAgICAgICAgICBwYXRoLT5tdGltZSA9IGF0b2wgKGF0 dHJbMV0pOwotKyAgICBpZiAoIXBhdGgtPmlzX2RpcikKLSsgICAgICAgIHJldHVybiBUUlVFOwot KwotKyAgICBmb3IgKGkgPSAwLCBwID0gbm9kZS0+c3ViX25vZGVzOyBwICE9IE5VTEw7IHAgPSBw LT5uZXh0KSB7Ci0rICAgICAgICBYTUxOb2RlICpzdWJfbm9kZSA9IChYTUxOb2RlICopcC0+ZGF0 YTsKLSsKLSsgICAgICAgIGlmIChHX1VOTElLRUxZIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5uYW1l LCAiZmlsZSIpICE9IDApKSB7Ci0rICAgICAgICAgICAgZ193YXJuaW5nICgiVW5rb253biB0YWcg JXMiLCBzdWJfbm9kZS0+bmFtZSk7Ci0gICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICB9 Ci0tICAgICAgICBnX3dhcm5pbmcgKCJVbmtvbnduIGF0dHJpYnV0ZSAlcyIsIGF0dHJbMF0pOwot KyAgICAgICAgaWJ1c19vYnNlcnZlZF9wYXRoX3BhcnNlX2ZpbGUgKHBhdGgsIHN1Yl9ub2RlLCAm aSk7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIFRSVUU7Ci0gfQotIAotKwotIElCdXNPYnNlcnZl ZFBhdGggKgotIGlidXNfb2JzZXJ2ZWRfcGF0aF9uZXdfZnJvbV94bWxfbm9kZSAoWE1MTm9kZSAq bm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gZmls bF9zdGF0KQotQEAgLTI4OCwxNiArNDc3LDQ2IEBAIElCdXNPYnNlcnZlZFBhdGggKgotIGlidXNf b2JzZXJ2ZWRfcGF0aF9uZXcgKGNvbnN0IGdjaGFyICpwYXRoLAotICAgICAgICAgICAgICAgICAg ICAgICAgIGdib29sZWFuICAgICBmaWxsX3N0YXQpCi0gewotLSAgICBnX2Fzc2VydCAocGF0aCk7 Ci0tCi0gICAgIElCdXNPYnNlcnZlZFBhdGggKm9wOwotKyAgICBJQnVzT2JzZXJ2ZWRQYXRoUHJp dmF0ZSAqcHJpdjsKLSsgICAgR0xpc3QgKmZpbGVfbGlzdCwgKmw7Ci0rICAgIGd1aW50IGkgPSAw OwotIAotKyAgICBnX2Fzc2VydCAocGF0aCk7Ci0gICAgIG9wID0gKElCdXNPYnNlcnZlZFBhdGgg KikgZ19vYmplY3RfbmV3IChJQlVTX1RZUEVfT0JTRVJWRURfUEFUSCwgTlVMTCk7Ci0gICAgIG9w LT5wYXRoID0gZ19zdHJkdXAgKHBhdGgpOwotIAotLSAgICBpZiAoZmlsbF9zdGF0KSB7Ci0tICAg ICAgICBpYnVzX29ic2VydmVkX3BhdGhfZmlsbF9zdGF0IChvcCk7Ci0rICAgIHByaXYgPSBJQlVT X09CU0VSVkVEX1BBVEhfR0VUX1BSSVZBVEUgKG9wKTsKLSsgICAgbCA9IGZpbGVfbGlzdCA9IGli dXNfb2JzZXJ2ZWRfcGF0aF90cmF2ZXJzZSAob3AsIEZBTFNFKTsKLSsgICAgZm9yICg7IGw7IGwg PSBsLT5uZXh0KSB7Ci0rICAgICAgICBJQnVzT2JzZXJ2ZWRQYXRoICpzdWIgPSBsLT5kYXRhOwot KyAgICAgICAgY29uc3QgZ2NoYXIgKmZpbGUgPSBOVUxMOwotKwotKyAgICAgICAgZ19yZXR1cm5f dmFsX2lmX2ZhaWwgKHN1YiAmJiBzdWItPnBhdGgsIG9wKTsKLSsKLSsgICAgICAgIGZpbGUgPSBz dWItPnBhdGg7Ci0rICAgICAgICBpZiAoIWdfc3RyX2hhc19zdWZmaXggKGZpbGUsICIueG1sIikp Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICBpZiAoZ19zdHJfaGFzX3ByZWZpeCAo ZmlsZSwgcGF0aCkpIHsKLSsgICAgICAgICAgICBmaWxlICs9IHN0cmxlbiAocGF0aCk7Ci0rICAg ICAgICAgICAgaWYgKCpmaWxlID09ICcvJykKLSsgICAgICAgICAgICAgICAgZmlsZSsrOwotKyAg ICAgICAgICAgIC8qIElnbm9yZSBzdWIgZGlyZWN0b3JpZXMgKi8KLSsgICAgICAgICAgICBpZiAo c3RyY2hyIChmaWxlLCAnLycpKQotKyAgICAgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAg IH0KLSsgICAgICAgIGlmICghaSkKLSsgICAgICAgICAgICBwcml2LT5maWxlX2hhc2hfbGlzdCA9 IGdfbmV3MCAoZ3VpbnQsIGkgKyAyKTsKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBwcml2 LT5maWxlX2hhc2hfbGlzdCA9IGdfcmVuZXcgKGd1aW50LCBwcml2LT5maWxlX2hhc2hfbGlzdCwg aSArIDIpOwotKyAgICAgICAgcHJpdi0+ZmlsZV9oYXNoX2xpc3RbaV0gPSBnX3N0cl9oYXNoIChm aWxlKTsKLSsgICAgICAgIHByaXYtPmZpbGVfaGFzaF9saXN0W2kgKyAxXSA9IDA7Ci0rICAgICAg ICArK2k7Ci0gICAgIH0KLSsgICAgZ19saXN0X2ZyZWVfZnVsbCAoZmlsZV9saXN0LCAoR0Rlc3Ry b3lOb3RpZnkpaWJ1c19vYnNlcnZlZF9wYXRoX2Rlc3Ryb3kpOwotKwotKyAgICBpZiAoZmlsbF9z dGF0KQotKyAgICAgICAgaWJ1c19vYnNlcnZlZF9wYXRoX2ZpbGxfc3RhdCAob3ApOwotIAotICAg ICByZXR1cm4gb3A7Ci0gfQotZGlmZiAtLWdpdCBhL3NyYy9pYnVzcmVnaXN0cnkuYyBiL3NyYy9p YnVzcmVnaXN0cnkuYwotaW5kZXggNDM5OTBkNWYuLjMzODZhNWQxIDEwMDY0NAotLS0tIGEvc3Jj L2lidXNyZWdpc3RyeS5jCi0rKysgYi9zcmMvaWJ1c3JlZ2lzdHJ5LmMKLUBAIC0yLDggKzIsOCBA QAotIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCi0gLyogYnVzIC0gVGhlIElucHV0IEJ1cwotICAq IENvcHlyaWdodCAoQykgMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4K LS0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdh cmExQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBSZWQgSGF0LCBJbmMu Ci0rICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgUmVkIEhhdCwgSW5j LgotICAqCi0gICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgotICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yOSw3ICsyOSw3IEBACi0gI2luY2x1ZGUgImli dXNyZWdpc3RyeS5oIgotIAotICNkZWZpbmUgSUJVU19DQUNIRV9NQUdJQyAweDQ5NDI1NTUzIC8q ICJJQlVTIiAqLwotLSNkZWZpbmUgSUJVU19DQUNIRV9WRVJTSU9OIDB4MDAwMTA1MTIKLSsjZGVm aW5lIElCVVNfQ0FDSEVfVkVSU0lPTiAweDAwMDEwNTIyCi0gCi0gZW51bSB7Ci0gICAgIENIQU5H RUQsCi0tLSAKLTIuMjQuMQotCi1Gcm9tIDU2OGQ1OGRmYWRlZmE4MDFiOTYwNThjMTE1NWRhZWNm ZjNkNTE2MDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2Fv LmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDIxIEF1ZyAyMDIwIDIyOjA3OjMxICsw OTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGVuZ2luZTogQWRkIGxheW91dF92YXJpYW50IGluIGdlbnNp bXBsZS5weQotCi1NaXNzZWQgdG8gaGFuZGxlIGxheW91dF92YXJpYW50IGFuZCBhbHNvIGFkZCBs YXRhbSBsYXlvdXRzIHRvIGRlbnlsaXN0Ci0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9p YnVzL2lzc3Vlcy8yMTUzCi0tLS0KLSBlbmdpbmUvZGVueWxpc3QudHh0IHwgMSArCi0gZW5naW5l L2dlbnNpbXBsZS5weSB8IDUgKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KQotCi1kaWZmIC0tZ2l0IGEvZW5naW5lL2RlbnlsaXN0LnR4dCBiL2VuZ2luZS9kZW55bGlzdC50 eHQKLWluZGV4IGU0Y2QwNDczLi45Y2JjN2ZjMyAxMDA2NDQKLS0tLSBhL2VuZ2luZS9kZW55bGlz dC50eHQKLSsrKyBiL2VuZ2luZS9kZW55bGlzdC50eHQKLUBAIC0yNCw0ICsyNCw1IEBACi0gIyBB c3RlcmlzaygqKSBjaGFyYWN0ZXIgY2FuIGJlIHVzZWQgdG8gbWF0Y2ggYW55IGVuZ2luZXMuCi0g IyBFLmcuIHhrYjpjbjoqOiogZXhjbHVkZXMgeGtiOmNuOjp6aG8gYW5kIHhrYjpjbjptb25fdHJh ZDptdmYKLSB4a2I6Y246KjoqCi0reGtiOmxhdGFtOio6KgotIHhrYjpuZWNfdm5kci9qcDoqOioK LWRpZmYgLS1naXQgYS9lbmdpbmUvZ2Vuc2ltcGxlLnB5IGIvZW5naW5lL2dlbnNpbXBsZS5weQot aW5kZXggZGM0Y2NmMTIuLjE4ZjdkYzhjIDEwMDc1NQotLS0tIGEvZW5naW5lL2dlbnNpbXBsZS5w eQotKysrIGIvZW5naW5lL2dlbnNpbXBsZS5weQotQEAgLTE4MCw2ICsxODAsMTEgQEAgY2xhc3Mg RXZkZXZYTUwoWE1MRmlsdGVyQmFzZSk6Ci0gICAgICAgICAgICAgc2VsZi5fX2Rvd25zdHJlYW0u c3RhcnRFbGVtZW50KCdsYXlvdXQnLCBBdHRyaWJ1dGVzSW1wbCh7fSkpCi0gICAgICAgICAgICAg c2VsZi5fX2Rvd25zdHJlYW0uY2hhcmFjdGVycyhzZWxmLl9fbGF5b3V0KQotICAgICAgICAgICAg IHNlbGYuX19kb3duc3RyZWFtLmVuZEVsZW1lbnQoJ2xheW91dCcpCi0rICAgICAgICAgICAgaWYg c2VsZi5fX3ZhcmlhbnQgIT0gJyc6Ci0rICAgICAgICAgICAgICAgIHNlbGYuX19kb3duc3RyZWFt LnN0YXJ0RWxlbWVudCgnbGF5b3V0X3ZhcmlhbnQnLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlc0ltcGwoe30pKQotKyAgICAgICAgICAg ICAgICBzZWxmLl9fZG93bnN0cmVhbS5jaGFyYWN0ZXJzKHNlbGYuX192YXJpYW50KQotKyAgICAg ICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5lbmRFbGVtZW50KCdsYXlvdXRfdmFyaWFudCcp Ci0gICAgICAgICAgICAgc2VsZi5fX2Rvd25zdHJlYW0uc3RhcnRFbGVtZW50KCdsb25nbmFtZScs IEF0dHJpYnV0ZXNJbXBsKHt9KSkKLSAgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVhbS5jaGFy YWN0ZXJzKHNlbGYuX19kZXNjcmlwdGlvbikKLSAgICAgICAgICAgICBzZWxmLl9fZG93bnN0cmVh bS5lbmRFbGVtZW50KCdsb25nbmFtZScpCi0tLSAKLTIuMjQuMQotCi1Gcm9tIDU5NTlkNmYxZDQw YzA2ZjU3YmQ4OTVjZDg0ZDJiODRkZWI2YjZkOGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDI3 IEF1ZyAyMDIwIDEwOjMwOjQzICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIGRhdGEvZGNvbmY6IEZp eCBybSAkVE1QRElSIGluIG1ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2gKLQotZGJ1cy1sYXVuY2gg YW5kIGdzZXR0aW5ncyBydW4gL3Vzci9saWIqL2d2ZnNkLWZ1c2UgJFRNUERJUi9jYWNoZS9ndmZz IC1mCi12aWEgc3lzdGVtZCBzaW5jZSBndmZzIDEuNDUuOTAgaW4gRmVkb3JhIDMzCi0tLS0KLSBk YXRhL2Rjb25mL21ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2ggfCA0ICsrKysKLSAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9kYXRhL2Rjb25mL21ha2UtZGNv bmYtb3ZlcnJpZGUtZGIuc2ggYi9kYXRhL2Rjb25mL21ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2gK LWluZGV4IDljNjUwZTk3Li40OGRkOGZhYyAxMDA3NTUKLS0tLSBhL2RhdGEvZGNvbmYvbWFrZS1k Y29uZi1vdmVycmlkZS1kYi5zaAotKysrIGIvZGF0YS9kY29uZi9tYWtlLWRjb25mLW92ZXJyaWRl LWRiLnNoCi1AQCAtNDUsNiArNDUsMTAgQEAgZm9yIHNjaGVtYSBpbiAkc2NoZW1hczsgZG8KLSAg IGRvbmUKLSBkb25lCi0gCi0rIyBkYnVzLWxhdW5jaCBhbmQgZ3NldHRpbmdzIHJ1biAvdXNyL2xp YiovZ3Zmc2QtZnVzZSAkVE1QRElSL2NhY2hlL2d2ZnMgLWYKLSsjIHZpYSBzeXN0ZW1kIHNpbmNl IGd2ZnMgMS40NS45MCBpbiBGZWRvcmEgMzMKLSsjIGFuZCBybSAkVE1QRElSIGNvdWxkIGJlIGZh aWxlZCB1bnRpbCB1bW91bnQgd291bGQgYmUgY2FsbGVkLgotK3Vtb3VudCAkVE1QRElSL2NhY2hl L2d2ZnMKLSBybSAtcmYgJFRNUERJUgotIAotIGtpbGwgJERCVVNfU0VTU0lPTl9CVVNfUElECi0t LSAKLTIuMjQuMQotCi1Gcm9tIGUxMGZjODljNWFmYTE5NDE4MDE0MjliM2E2NTNiM2Y4M2I1ZDM4 MDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDI3IEF1ZyAyMDIwIDEwOjMxOjEwICswOTAwCi1T dWJqZWN0OiBbUEFUQ0hdIHNyYzogVXBkYXRlIGlidXN1bmljb2RlZ2VuLmggd2l0aCB1bmljb2Rl LXVjZCAxMy4wLjAKLQotLS0tCi0gc3JjL2lidXN1bmljb2RlZ2VuLmggfCAgMzIgKysrKwotIDIg ZmlsZXMgY2hhbmdlZCwgMjYyIGluc2VydGlvbnMoKyksIDE3MCBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL3NyYy9pYnVzdW5pY29kZWdlbi5oIGIvc3JjL2lidXN1bmljb2RlZ2VuLmgKLWlu ZGV4IDZhNjBhNWE5Li5jODkxZDBlMyAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzdW5pY29kZWdlbi5o Ci0rKysgYi9zcmMvaWJ1c3VuaWNvZGVnZW4uaAotQEAgLTg0Nyw2ICs4NDcsMTAgQEAgY29uc3Qg c3RhdGljIGNoYXIgKnVuaWNvZGVfYmxvY2tzW10gPSB7Ci0gICAgICAgICAgICAgICAgICAgICB0 aGUgZm9sbG93aW5nIGNvbW1hbmQ6Ci0gICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBp YnVzLnBvIGlidXMucG90ICovCi0gICAgIE5fKCJSdW1pIE51bWVyYWwgU3ltYm9scyIpLAotKyAg ICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBn dWNoYXJtYXAgd2l0aAotKyAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5k OgotKyAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwot KyAgICBOXygiWWV6aWRpIiksCi0gICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIg dGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCi0gICAgICAgICAgICAgICAgICAg ICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Ci0gICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5w byBpYnVzLnBvIGlidXMucG90ICovCi1AQCAtODU1LDYgKzg1OSwxMCBAQCBjb25zdCBzdGF0aWMg Y2hhciAqdW5pY29kZV9ibG9ja3NbXSA9IHsKLSAgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xs b3dpbmcgY29tbWFuZDoKLSAgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8g aWJ1cy5wb3QgKi8KLSAgICAgTl8oIlNvZ2RpYW4iKSwKLSsgICAgLyogVFJBTlNMQVRPUlM6IFlv dSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKLSsgICAg ICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKLSsgICAgICAgbXNnbWVyZ2Ug LUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KLSsgICAgTl8oIkNob3Jhc21pYW4i KSwKLSAgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25z IGZyb20gZ3VjaGFybWFwIHdpdGgKLSAgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcg Y29tbWFuZDoKLSAgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5w b3QgKi8KLUBAIC05MzksNiArOTQ3LDEwIEBAIGNvbnN0IHN0YXRpYyBjaGFyICp1bmljb2RlX2Js b2Nrc1tdID0gewotICAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgot ICAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwotICAg ICBOXygiV2FyYW5nIENpdGkiKSwKLSsgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZl ciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKLSsgICAgICAgICAgICAgICAg ICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKLSsgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFw LnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KLSsgICAgTl8oIkRpdmVzIEFrdXJ1IiksCi0gICAgIC8q IFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hh cm1hcCB3aXRoCi0gICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Ci0g ICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCi1AQCAt OTc1LDYgKzk4NywxMCBAQCBjb25zdCBzdGF0aWMgY2hhciAqdW5pY29kZV9ibG9ja3NbXSA9IHsK LSAgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKLSAgICAgICAgbXNn bWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KLSAgICAgTl8oIk1ha2Fz YXIiKSwKLSsgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRp b25zIGZyb20gZ3VjaGFybWFwIHdpdGgKLSsgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dp bmcgY29tbWFuZDoKLSsgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1 cy5wb3QgKi8KLSsgICAgTl8oIkxpc3UgU3VwcGxlbWVudCIpLAotICAgICAvKiBUUkFOU0xBVE9S UzogWW91IG1pZ2h0IHJlZmVyIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAot ICAgICAgICAgICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgotICAgICAgICBtc2dt ZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwotQEAgLTEwMzksNiArMTA1 NSwxNCBAQCBjb25zdCBzdGF0aWMgY2hhciAqdW5pY29kZV9ibG9ja3NbXSA9IHsKLSAgICAgICAg ICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKLSAgICAgICAgbXNnbWVyZ2UgLUMg Z3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KLSAgICAgTl8oIlRhbmd1dCBDb21wb25l bnRzIiksCi0rICAgIC8qIFRSQU5TTEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0 aW9ucyBmcm9tIGd1Y2hhcm1hcCB3aXRoCi0rICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93 aW5nIGNvbW1hbmQ6Ci0rICAgICAgIG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGli dXMucG90ICovCi0rICAgIE5fKCJLaGl0YW4gU21hbGwgU2NyaXB0IiksCi0rICAgIC8qIFRSQU5T TEFUT1JTOiBZb3UgbWlnaHQgcmVmZXIgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIGd1Y2hhcm1hcCB3 aXRoCi0rICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Ci0rICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCi0rICAgIE5fKCJU YW5ndXQgU3VwcGxlbWVudCIpLAotICAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVy IHRoZSB0cmFuc2xhdGlvbnMgZnJvbSBndWNoYXJtYXAgd2l0aAotICAgICAgICAgICAgICAgICAg ICAgdGhlIGZvbGxvd2luZyBjb21tYW5kOgotICAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAu cG8gaWJ1cy5wbyBpYnVzLnBvdCAqLwotQEAgLTExODcsNiArMTIxMSwxMCBAQCBjb25zdCBzdGF0 aWMgY2hhciAqdW5pY29kZV9ibG9ja3NbXSA9IHsKLSAgICAgICAgICAgICAgICAgICAgIHRoZSBm b2xsb3dpbmcgY29tbWFuZDoKLSAgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMu cG8gaWJ1cy5wb3QgKi8KLSAgICAgTl8oIlN5bWJvbHMgYW5kIFBpY3RvZ3JhcGhzIEV4dGVuZGVk LUEiKSwKLSsgICAgLyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRp b25zIGZyb20gZ3VjaGFybWFwIHdpdGgKLSsgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dp bmcgY29tbWFuZDoKLSsgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1 cy5wb3QgKi8KLSsgICAgTl8oIlN5bWJvbHMgZm9yIExlZ2FjeSBDb21wdXRpbmciKSwKLSAgICAg LyogVFJBTlNMQVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3Vj aGFybWFwIHdpdGgKLSAgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoK LSAgICAgICAgbXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KLUBA IC0xMjExLDYgKzEyMzksMTAgQEAgY29uc3Qgc3RhdGljIGNoYXIgKnVuaWNvZGVfYmxvY2tzW10g PSB7Ci0gICAgICAgICAgICAgICAgICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6Ci0gICAgICAg IG1zZ21lcmdlIC1DIGd1Y2hhcm1hcC5wbyBpYnVzLnBvIGlidXMucG90ICovCi0gICAgIE5fKCJD SksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIFN1cHBsZW1lbnQiKSwKLSsgICAgLyogVFJBTlNM QVRPUlM6IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdp dGgKLSsgICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKLSsgICAgICAg bXNnbWVyZ2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KLSsgICAgTl8oIkNK SyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEciKSwKLSAgICAgLyogVFJBTlNMQVRPUlM6 IFlvdSBtaWdodCByZWZlciB0aGUgdHJhbnNsYXRpb25zIGZyb20gZ3VjaGFybWFwIHdpdGgKLSAg ICAgICAgICAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKLSAgICAgICAgbXNnbWVy Z2UgLUMgZ3VjaGFybWFwLnBvIGlidXMucG8gaWJ1cy5wb3QgKi8KLS0tIAotMi4yNC4xCi0KLUZy b20gMzk0ZDlhODM5NjIyMjViZmY0YzM5ZWQzZTlkZGQ1YzMwMTlhMzkzNiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4K LURhdGU6IFRodSwgMjcgQXVnIDIwMjAgMTE6NTI6MTYgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0g ZGF0YS9kY29uZjogRml4IHJlZ3Jlc3Npb24gaW4gbWFrZS1kY29uZi1vdmVycmlkZS1kYi5zaAot Ci0tLS0KLSBkYXRhL2Rjb25mL21ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2ggfCA0ICsrKy0KLSAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1n aXQgYS9kYXRhL2Rjb25mL21ha2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2ggYi9kYXRhL2Rjb25mL21h a2UtZGNvbmYtb3ZlcnJpZGUtZGIuc2gKLWluZGV4IDQ4ZGQ4ZmFjLi42MDFjMWMzZiAxMDA3NTUK LS0tLSBhL2RhdGEvZGNvbmYvbWFrZS1kY29uZi1vdmVycmlkZS1kYi5zaAotKysrIGIvZGF0YS9k Y29uZi9tYWtlLWRjb25mLW92ZXJyaWRlLWRiLnNoCi1AQCAtNDgsNyArNDgsOSBAQCBkb25lCi0g IyBkYnVzLWxhdW5jaCBhbmQgZ3NldHRpbmdzIHJ1biAvdXNyL2xpYiovZ3Zmc2QtZnVzZSAkVE1Q RElSL2NhY2hlL2d2ZnMgLWYKLSAjIHZpYSBzeXN0ZW1kIHNpbmNlIGd2ZnMgMS40NS45MCBpbiBG ZWRvcmEgMzMKLSAjIGFuZCBybSAkVE1QRElSIGNvdWxkIGJlIGZhaWxlZCB1bnRpbCB1bW91bnQg d291bGQgYmUgY2FsbGVkLgotLXVtb3VudCAkVE1QRElSL2NhY2hlL2d2ZnMKLStpZiBbIC1kICRU TVBESVIvY2FjaGUvZ3ZmcyBdIDsgdGhlbgotKyAgICB1bW91bnQgJFRNUERJUi9jYWNoZS9ndmZz Ci0rZmkKLSBybSAtcmYgJFRNUERJUgotIAotIGtpbGwgJERCVVNfU0VTU0lPTl9CVVNfUElECi0t LSAKLTIuMjQuMQotCi1Gcm9tIGU5Mzg4NDZiMTYyNGE5NDU1MTI4ZWRiNjRmMTQ0YjBhMTE4MTcz NmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3 YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUaHUsIDI3IEF1ZyAyMDIwIDIyOjQwOjIzICswOTAwCi1T dWJqZWN0OiBbUEFUQ0hdIGVuZ2luZTogR2VuYXJhdGUgc2ltcGxlLnhtbCBhdCBidWlsZCB0aW1l Ci0KLVRoZSBlbmdpbmUgcGF0aCBvZiBpYnVzLWVuZ2luZS1zaW1wbGUgc2hvdWxkIGJlIGRlY2lk ZWQgaW4KLWJ1aWxkIHRpbWUgYW5kIHNpbXBsZS54bWwgaXMgcmVuYW1lZCB0byBzaW1wbGUueG1s LmluCi1BbHNvIFJldmVydCA2ODc5ODc5MDAyYWY0N2Q0OWQ4NzQwY2EzODNhMDQ4ZDJhYzhlOTA0 Ci0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yMTUzCi0tLS0KLSBl bmdpbmUvTWFrZWZpbGUuYW0gfCAxNSArKysrKysrKysrKystLS0KLSBzcmMvdGVzdHMvcnVudGVz dCAgfCAxNSArLS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KyksIDE3IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZW5naW5lL01ha2VmaWxlLmFtIGIv ZW5naW5lL01ha2VmaWxlLmFtCi1pbmRleCBjYTQwNTQ5Ni4uZDgxMDcwNGIgMTAwNjQ0Ci0tLS0g YS9lbmdpbmUvTWFrZWZpbGUuYW0KLSsrKyBiL2VuZ2luZS9NYWtlZmlsZS5hbQotQEAgLTgwLDIx ICs4MCwzMCBAQCBjb21wb25lbnRfREFUQSA9IFwKLSBjb21wb25lbnRkaXIgPSAkKHBrZ2RhdGFk aXIpL2NvbXBvbmVudAotIAotIE1BSU5UQUlORVJDTEVBTkZJTEVTID0gXAotKwlzaW1wbGUueG1s LmluIFwKLSsJJChOVUxMKQotKwotK0NMRUFORklMRVMgPSBcCi0gCXNpbXBsZS54bWwgXAotIAkk KE5VTEwpCi0gCi0gRVhUUkFfRElTVCA9IFwKLSAJZ2Vuc2ltcGxlLnB5IFwKLSAJaXNvNjM5Y29u dmVydGVyLnB5IFwKLS0Jc2ltcGxlLnhtbCBcCi0rCXNpbXBsZS54bWwuaW4gXAotIAkkKE5VTEwp Ci0gCi0tc2ltcGxlLnhtbDoKLStzaW1wbGUueG1sOiBzaW1wbGUueG1sLmluCi0rCSQoQU1fVl9H RU4pIHNlZCBcCi0rCSAgICAtZSAnc3xAbGliZXhlY2RpcltAXXwkKGxpYmV4ZWNkaXIpfGcnICQ8 ID4gJEAudG1wICYmIFwKLSsJICAgIG12ICRALnRtcCAkQAotKwotK3NpbXBsZS54bWwuaW46Ci0g CSQoc3JjZGlyKS9nZW5zaW1wbGUucHkgXAotIAkgICAgLS1pbnB1dD0kKGRhdGFyb290ZGlyKS9Y MTEveGtiL3J1bGVzL2V2ZGV2LnhtbCBcCi0gCSAgICAtLW91dHB1dD0kQCBcCi0gCSAgICAtLXZl cnNpb249JChWRVJTSU9OKS5gZGF0ZSAnKyVZJW0lZCdgIFwKLS0JICAgIC0tZXhlYy1wYXRoPSQo bGliZXhlY2RpcikvaWJ1cy1lbmdpbmUtc2ltcGxlIFwKLSsJICAgIC0tZXhlYy1wYXRoPUBsaWJl eGVjZGlyXEAvaWJ1cy1lbmdpbmUtc2ltcGxlIFwKLSAJICAgIC0taXNvLXBhdGg9JChkYXRhcm9v dGRpcikveG1sL2lzby1jb2Rlcy9pc29fNjM5LnhtbCBcCi0gCSAgICAtLWZpcnN0LWxhbmd1YWdl IFwKLSAJJChOVUxMKQotZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9ydW50ZXN0IGIvc3JjL3Rlc3Rz L3J1bnRlc3QKLWluZGV4IDExYmNjNmMyLi5hNmU0MTk0YiAxMDA3NTUKLS0tLSBhL3NyYy90ZXN0 cy9ydW50ZXN0Ci0rKysgYi9zcmMvdGVzdHMvcnVudGVzdAotQEAgLTkxLDE5ICs5MSw2IEBAIGZ1 bmNfY29weV9jb21wb25lbnQgKCkgewotICAgICBmaQotIH0KLSAKLS1mdW5jX2NvcHlfc2ltcGxl X3htbCAoKSB7Ci0tICAgIGZpbGU9JDEKLS0gICAgYmFzZT1gZnVuY19iYXNlbmFtZSAkZmlsZWAK LS0gICAgbGliZXhlY2Rpcj1gZnVuY19kaXJuYW1lICRmaWxlYAotLSAgICAjIHRvcF9zcmNkaXIg IT0gdG9wX2J1aWxkZGlyIGluIG1ha2UgZGlzdAotLSAgICBsaWJleGVjZGlyPWBlY2hvICIkbGli ZXhlY2RpciIgfCBzZWQgLWUgInN8JHRvcF9zcmNkaXJ8JHRvcF9idWlsZGRpcnwiYAotLSAgICBp ZiB0ZXN0IC1mICRmaWxlOyB0aGVuCi0tICAgICAgICBta2RpciAtcCBjb21wb25lbnRzCi0tICAg ICAgICBzZWQgInN8XCg8ZXhlYz5cKS4qXCgvaWJ1cy1lbmdpbmUtc2ltcGxlPC9leGVjPlwpfFwx JGxpYmV4ZWNkaXJcMnwiIFwKLS0gICAgICAgICAgICAgICAgPCAkZmlsZSA+IGNvbXBvbmVudHMv JGJhc2UKLS0gICAgZmkKLS19Ci0tCi0gdHJhcCAnZnVuY19jbGVhbnVwICR0c3RkaXInIDEgMiAz IDE1Ci0gCi0gdHN0PSQxOyBzaGlmdAotQEAgLTE0MCw3ICsxMjcsNyBAQCBydW5fdGVzdF9jYXNl KCkKLSAgICAgICAgICAgICBleGl0IC0xCi0gICAgICAgICBmaQotICAgICAgICAgIyBmdW5jX2Nv cHlfY29tcG9uZW50IHJlcGxhY2VzIHMvJHRvcF9zcmNkaXIvJXRvcF9idWlsZGRpci8KLS0gICAg ICAgIGZ1bmNfY29weV9zaW1wbGVfeG1sICIuLi8kdG9wX3NyY2Rpci9lbmdpbmUvc2ltcGxlLnht bCIKLSsgICAgICAgIGZ1bmNfY29weV9jb21wb25lbnQgIi4uLyR0b3Bfc3JjZGlyL2VuZ2luZS9z aW1wbGUueG1sIgotICAgICAgICAgZnVuY19jb3B5X2NvbXBvbmVudCAiLi4vJHRvcF9zcmNkaXIv Y29uZi9tZW1jb25mL21lbWNvbmYueG1sIgotIAotICAgICAgICAgSUJVU19DT01QT05FTlRfUEFU SD0kUFdEL2NvbXBvbmVudHMKLS0tIAotMi4yNC4xCi0KLUZyb20gMDBhZGVhNmQxNjkzOWUyZGEz NWVkZTdmMmVjZjNmZTBhMjE1NmZhNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206ICJu dGZzLmhhcmQiIDxudGZzLmhhcmRAZ21haWwuY29tPgotRGF0ZTogVGh1LCAzIFNlcCAyMDIwIDE0 OjU5OjM1ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEZpeCBmb3Igc2V2ZXJhbCBlcnJvciBzcG90 dGVkIGJ5IHN0YXRpYyBhbmFseXplcgotCi0tIGlidXNjb21wb3NldGFibGUuYywgaWJ1c3htbC5j OgotQ2hlY2sgc2l6ZSBiZWZvcmUgbWVtb3J5IGFjY2VzcwotCi0tIGlucHV0Y29udGV4dC5jOgot VXNlIGxvZ2ljYWwgb3BlcmF0b3IgZm9yIGJvb2wgdHlwZSB2YXJpYWJsZXMKLQotLSBjb25maWcu YzoKLUV4dHJhIGJyZWFrIHJlbW92ZWQKLQotQlVHPWh0dHBzOi8vZ2l0aHViLmNvbS9pYnVzL2li dXMvcHVsbC8yMjQyCi0tLS0KLSBidXMvaW5wdXRjb250ZXh0LmMgICAgIHwgNiArKystLS0KLSBz cmMvaWJ1c2NvbXBvc2V0YWJsZS5jIHwgMiArLQotIHNyYy9pYnVzeG1sLmMgICAgICAgICAgfCAy ICstCi0gNCBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9idXMvaW5wdXRjb250ZXh0LmMgYi9idXMvaW5wdXRjb250ZXh0LmMKLWlu ZGV4IGNlZWE0YjYwLi44ZDg0ZmQwNSAxMDA2NDQKLS0tLSBhL2J1cy9pbnB1dGNvbnRleHQuYwot KysrIGIvYnVzL2lucHV0Y29udGV4dC5jCi1AQCAtMjg0MiwxMSArMjg0MiwxMSBAQCBidXNfaW5w dXRfY29udGV4dF91cGRhdGVfcHJlZWRpdF90ZXh0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQs Ci0gICAgIGNvbnRleHQtPnByZWVkaXRfdGV4dCA9IChJQnVzVGV4dCAqKSBnX29iamVjdF9yZWZf c2luayAodGV4dCA/IHRleHQgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRfZW1wdHkpOwotICAgICBjb250ZXh0LT5wcmVl ZGl0X2N1cnNvcl9wb3MgPSBjdXJzb3JfcG9zOwotLSAgICBpZiAodXNlX2V4dGVuc2lvbikKLSsg ICAgaWYgKHVzZV9leHRlbnNpb24pIHsKLSAgICAgICAgIGNvbnRleHQtPnByZWVkaXRfdmlzaWJs ZSA9IHZpc2libGU7Ci0tICAgIGlmICh1c2VfZXh0ZW5zaW9uKQotICAgICAgICAgY29udGV4dC0+ cHJlZWRpdF9tb2RlID0gbW9kZTsKLS0gICAgZXh0ZW5zaW9uX3Zpc2libGUgPSBjb250ZXh0LT5w cmVlZGl0X3Zpc2libGUgfAotKyAgICB9Ci0rICAgIGV4dGVuc2lvbl92aXNpYmxlID0gY29udGV4 dC0+cHJlZWRpdF92aXNpYmxlIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRleHQt PmVtb2ppX2V4dGVuc2lvbiAhPSBOVUxMKTsKLSAKLSAgICAgaWYgKHVzZV9leHRlbnNpb24gJiYg Y29udGV4dC0+ZW1vamlfZXh0ZW5zaW9uKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNjb21wb3Nl dGFibGUuYyBiL3NyYy9pYnVzY29tcG9zZXRhYmxlLmMKLWluZGV4IGM1MGJlMmIzLi5lZjIwNDY5 YyAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzY29tcG9zZXRhYmxlLmMKLSsrKyBiL3NyYy9pYnVzY29t cG9zZXRhYmxlLmMKLUBAIC0zODIsNyArMzgyLDcgQEAgaWJ1c19jb21wb3NlX2xpc3RfY2hlY2tf ZHVwbGljYXRlZCAoR0xpc3QgKmNvbXBvc2VfbGlzdCwKLSAgICAgICAgICAgICAKLSAgICAgICAg ICAgICBpZiAobl9vdXRwdXRzID09IHVuaWNoYXJfbGVuZ3RoIChvdXRwdXRfY2hhcnMpKSB7Ci0g ICAgICAgICAgICAgICAgIGludCBqID0gMDsKLS0gICAgICAgICAgICAgICAgd2hpbGUgKGNvbXBv c2VfZGF0YS0+dmFsdWVzW2pdICYmIGogPCBuX291dHB1dHMpIHsKLSsgICAgICAgICAgICAgICAg d2hpbGUgKGogPCBuX291dHB1dHMgJiYgY29tcG9zZV9kYXRhLT52YWx1ZXNbal0pIHsKLSAgICAg ICAgICAgICAgICAgICAgIGlmIChjb21wb3NlX2RhdGEtPnZhbHVlc1tqXSAhPSBvdXRwdXRfY2hh cnNbal0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg ICAgICArK2o7Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXN4bWwuYyBiL3NyYy9pYnVzeG1sLmMKLWlu ZGV4IDI2NmE4MjA3Li5iNmQwZmViOCAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzeG1sLmMKLSsrKyBi L3NyYy9pYnVzeG1sLmMKLUBAIC0xNDgsNyArMTQ4LDcgQEAgX2lzX3NwYWNlIChjb25zdCBnY2hh ciAqdGV4dCwKLSB7Ci0gICAgIGdzaXplIGkgPSAwOwotIAotLSAgICBmb3IgKGkgPSAwOyB0ZXh0 W2ldICE9ICdcMCcgJiYgaSA8IHRleHRfbGVuOyBpKyspIHsKLSsgICAgZm9yIChpID0gMDsgaSA8 IHRleHRfbGVuICYmIHRleHRbaV0gIT0gJ1wwJzsgaSsrKSB7Ci0gICAgICAgICBzd2l0Y2ggKHRl eHRbaV0pIHsKLSAgICAgICAgIGNhc2UgJ1x0JzoKLSAgICAgICAgIGNhc2UgJyAnOgotLS0gCi0y LjI0LjEKLQotRnJvbSA3Y2FlYWQxMGQzNjk4ZWYxZWNhYTk3ZTZlMTIyZTI3YTcyMGQ2MTJlIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPgotRGF0ZTogVGh1LCAzIFNlcCAyMDIwIDIxOjIxOjMxICswOTAwCi1TdWJqZWN0 OiBbUEFUQ0hdIEZpeCBzdHJpbmcgZm9ybWF0cyBpbiB0cmFuc2xhdGFibGUgc3RyaW5ncwotCi0t LS0KLSBkYXRhL2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sIHwgIDIgKy0K LSBzZXR1cC9lbmdpbmV0cmVldmlldy5weSAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0t Ci0gc2V0dXAvbWFpbi5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0t LQotIHRvb2xzL21haW4udmFsYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0t Ci0gNiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL2RhdGEvZGNvbmYvb3JnLmZyZWVkZXNrdG9wLmlidXMuZ3NjaGVtYS54bWwg Yi9kYXRhL2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVzLmdzY2hlbWEueG1sCi1pbmRleCAxMWEx NzlhNi4uYTc5ZTkyOTYgMTAwNjQ0Ci0tLS0gYS9kYXRhL2Rjb25mL29yZy5mcmVlZGVza3RvcC5p YnVzLmdzY2hlbWEueG1sCi0rKysgYi9kYXRhL2Rjb25mL29yZy5mcmVlZGVza3RvcC5pYnVzLmdz Y2hlbWEueG1sCi1AQCAtMTk1LDcgKzE5NSw3IEBACi0gICAgIDxrZXkgbmFtZT0ibGFuZyIgdHlw ZT0icyI+Ci0gICAgICAgPGRlZmF1bHQ+J2VuJzwvZGVmYXVsdD4KLSAgICAgICA8c3VtbWFyeT5E ZWZhdWx0IGxhbmd1YWdlIGZvciBlbW9qaSBkaWN0aW9uYXJ5PC9zdW1tYXJ5PgotLSAgICAgIDxk ZXNjcmlwdGlvbj5DaG9vc2UgYSBkZWZhdWx0IGxhbmd1YWdlIG9mIGVtb2ppIGRpY3Rpb25hcmll cyBvbiB0aGUgZW1vamkgZGlhbG9nLiBUaGUgdmFsdWUgJGxhbmcgaXMgYXBwbGllZCB0byAvdXNy L3NoYXJlL2lidXMvZGljdHMvZW1vamktJGxhbmcuZGljdDwvZGVzY3JpcHRpb24+Ci0rICAgICAg PGRlc2NyaXB0aW9uPkNob29zZSBhIGRlZmF1bHQgbGFuZ3VhZ2Ugb2YgZW1vamkgZGljdGlvbmFy aWVzIG9uIHRoZSBlbW9qaSBkaWFsb2cuIFRoZSB2YWx1ZSAkbGFuZyBpcyBhcHBsaWVkIHRvIC91 c3Ivc2hhcmUvaWJ1cy9kaWN0cy9lbW9qaS0kbGFuZy5kaWN0IC48L2Rlc2NyaXB0aW9uPgotICAg ICA8L2tleT4KLSAgICAgPGtleSBuYW1lPSJmYXZvcml0ZXMiIHR5cGU9ImFzIj4KLSAgICAgICA8 ZGVmYXVsdD5bXTwvZGVmYXVsdD4KLWRpZmYgLS1naXQgYS9zZXR1cC9lbmdpbmV0cmVldmlldy5w eSBiL3NldHVwL2VuZ2luZXRyZWV2aWV3LnB5Ci1pbmRleCBhZWE4NDU5My4uODUzNGRlNWUgMTAw NjQ0Ci0tLS0gYS9zZXR1cC9lbmdpbmV0cmVldmlldy5weQotKysrIGIvc2V0dXAvZW5naW5ldHJl ZXZpZXcucHkKLUBAIC0zLDggKzMsOCBAQAotICMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAjCi0g IyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWls LmNvbT4KLS0jIENvcHlyaWdodCAoYykgMjAxNC0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgotLSMgQ29weXJpZ2h0IChjKSAyMDA3LTIwMTggUmVkIEhhdCwg SW5jLgotKyMgQ29weXJpZ2h0IChjKSAyMDE0LTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAyMCBSZWQgSGF0LCBJ bmMuCi0gIwotICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vcgotICMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgRW5naW5lVHJl ZVZpZXcoR3RrLlRyZWVWaWV3KToKLSAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgiaGFz LWVudHJ5IiwgRmFsc2UpCi0gICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoImVkaXRhYmxl IiwgVHJ1ZSkKLSAKLS0gICAgICAgIGNvbHVtbiA9IEd0ay5UcmVlVmlld0NvbHVtbihfKCJLYmQi KSkKLSsgICAgICAgIGNvbHVtbiA9IEd0ay5UcmVlVmlld0NvbHVtbigiS2JkIikKLSAgICAgICAg IGNvbHVtbi5zZXRfZXhwYW5kKEZhbHNlKQotICAgICAgICAgY29sdW1uLnNldF9maXhlZF93aWR0 aCgzMikKLSAgICAgICAgIGNvbHVtbi5zZXRfc2l6aW5nKEd0ay5UcmVlVmlld0NvbHVtblNpemlu Zy5GSVhFRCkKLWRpZmYgLS1naXQgYS9zZXR1cC9tYWluLnB5IGIvc2V0dXAvbWFpbi5weQotaW5k ZXggOGM4ZDdhNDcuLjY3M2M4Y2RlIDEwMDY0NAotLS0tIGEvc2V0dXAvbWFpbi5weQotKysrIGIv c2V0dXAvbWFpbi5weQotQEAgLTQsOCArNCw4IEBACi0gIyBpYnVzIC0gVGhlIElucHV0IEJ1cwot ICMKLSAjIENvcHlyaWdodCAoYykgMjAwNy0yMDE2IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdA Z21haWwuY29tPgotLSMgQ29weXJpZ2h0IChjKSAyMDEwLTIwMTggVGFrYW8gRnVqaXdhcmEgPHRh a2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0tIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxNiBSZWQg SGF0LCBJbmMuCi0rIyBDb3B5cmlnaHQgKGMpIDIwMTAtMjAyMCBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsjIENvcHlyaWdodCAoYykgMjAwNy0yMDIwIFJlZCBI YXQsIEluYy4KLSAjCi0gIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1AQCAtNTQ3LDcgKzU0Nyw3IEBAIGNsYXNzIFNl dHVwKG9iamVjdCk6Ci0gICAgICAgICAgICAgc2VsZi5fX2ZsdXNoX2d0a19ldmVudHMoKQotICAg ICAgICAgZWxzZToKLSAgICAgICAgICAgICAjIFRyYW5zbGF0b3JzOiAlZCA9PSA1IGN1cnJlbnRs eQotLSAgICAgICAgICAgIG1lc3NhZ2UgPSBfKCJJQnVzIGRhZW1vbiBjb3VsZCBub3QgYmUgc3Rh cnRlZCBpbiAlZCBzZWNvbmRzIikKLSsgICAgICAgICAgICBtZXNzYWdlID0gXygiSUJ1cyBkYWVt b24gY291bGQgbm90IGJlIHN0YXJ0ZWQgaW4gJWQgc2Vjb25kcy4iKQotICAgICAgICAgICAgIGRs ZyA9IEd0ay5NZXNzYWdlRGlhbG9nKG1lc3NhZ2VfdHlwZSA9IEd0ay5NZXNzYWdlVHlwZS5JTkZP LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMgPSBHdGsuQnV0 dG9uc1R5cGUuT0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9 IG1lc3NhZ2UgJSB0aW1lb3V0KQotZGlmZiAtLWdpdCBhL3Rvb2xzL21haW4udmFsYSBiL3Rvb2xz L21haW4udmFsYQotaW5kZXggYmY5YzBmYzkuLjI2ZTdmZDg4IDEwMDY0NAotLS0tIGEvdG9vbHMv bWFpbi52YWxhCi0rKysgYi90b29scy9tYWluLnZhbGEKLUBAIC0zLDcgKzMsNyBAQAotICAqIGli dXMgLSBUaGUgSW5wdXQgQnVzCi0gICoKLSAgKiBDb3B5cmlnaHQoYykgMjAxMyBQZW5nIEh1YW5n IDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLS0gKiBDb3B5cmlnaHQoYykgMjAxNS0yMDE4IFRh a2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodChj KSAyMDE1LTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0g ICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTQ1Myw3ICs0NTMsNyBAQCBjb25zdCBDb21tYW5kRW50 cnkgY29tbWFuZHNbXSAgPSB7Ci0gICAgIHsgInJlYWQtY29uZmlnIiwgTl8oIlNob3cgdGhlIGNv bmZpZ3VyYXRpb24gdmFsdWVzIiksIHJlYWRfY29uZmlnIH0sCi0gICAgIHsgInJlc2V0LWNvbmZp ZyIsIE5fKCJSZXNldCB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZXMiKSwgcmVzZXRfY29uZmlnIH0s Ci0gI2lmIEVNT0pJX0RJQ1QKLS0gICAgeyAiZW1vamkiLCBOXygiU2F2ZSBlbW9qaSBvbiBkaWFs b2cgdG8gY2xpcGJvYXJkICIpLCBlbW9qaV9kaWFsb2cgfSwKLSsgICAgeyAiZW1vamkiLCBOXygi U2F2ZSBlbW9qaSBvbiBkaWFsb2cgdG8gY2xpcGJvYXJkIiksIGVtb2ppX2RpYWxvZyB9LAotICNl bmRpZgotICAgICB7ICJoZWxwIiwgTl8oIlNob3cgdGhpcyBpbmZvcm1hdGlvbiIpLCBwcmludF9o ZWxwIH0KLSB9OwotLS0gCi0yLjI0LjEKLQotRnJvbSBhNDQwOTQyYTYyYzQ2NTc4Mzc3YTg2Nzlj NDgxNDZmNTk3ZTMzOGE0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0 IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogV2VkLCA5IFNlcCAyMDIwIDE4OjM2 OjE4ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHVpL2d0azM6IEFjY2VwdCB4ZGlnaXRzIG9ubHkg Zm9yIFVuaWNvZGUgdHlwaW5nCi0KLUN0cmwtU2hpZnQtdSBiZWhhdmlvciBub3cgZm9sbG93cyBH VEsncyBvbmUuCi0KLUJVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yMjQ5 Ci0tLS0KLSB1aS9ndGszL3BhbmVsYmluZGluZy52YWxhIHwgOCArKysrKy0tLQotIDEgZmlsZSBj aGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS91 aS9ndGszL3BhbmVsYmluZGluZy52YWxhIGIvdWkvZ3RrMy9wYW5lbGJpbmRpbmcudmFsYQotaW5k ZXggMDFjNDNiMGQuLjg2MTI1NWIxIDEwMDY0NAotLS0tIGEvdWkvZ3RrMy9wYW5lbGJpbmRpbmcu dmFsYQotKysrIGIvdWkvZ3RrMy9wYW5lbGJpbmRpbmcudmFsYQotQEAgLTMsNyArMyw3IEBACi0g ICogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSAgKgotICAqIENvcHlyaWdodChjKSAyMDE4IFBlbmcg SHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotLSAqIENvcHlyaWdodChjKSAyMDE4IFRh a2FvIEZ1andpYXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodChj KSAyMDE4LTIwMjAgVGFrYW8gRnVqd2lhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0g ICoKLSAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCi0gICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYwotQEAgLTE5MCw3ICsxOTAsNyBAQCBjbGFzcyBQcmVlZGl0IDog R3RrLldpbmRvdyB7Ci0gCi0gICAgIHB1YmxpYyBJQnVzLlRleHQgZ2V0X2NvbW1pdF90ZXh0KCkg ewotICAgICAgICAgc3RyaW5nIGV4dGVuc2lvbl90ZXh0ID0gbV9leHRlbnNpb25fcHJlZWRpdF9l bW9qaS5nZXRfdGV4dCgpOwotLSAgICAgICAgaWYgKGV4dGVuc2lvbl90ZXh0Lmxlbmd0aCA9PSAw KQotKyAgICAgICAgaWYgKGV4dGVuc2lvbl90ZXh0Lmxlbmd0aCA9PSAwICYmIG1fcHJlZml4ICE9 ICJ1IikKLSAgICAgICAgICAgICBleHRlbnNpb25fdGV4dCA9IG1fZXh0ZW5zaW9uX3ByZWVkaXRf dGV4dC5nZXRfdGV4dCgpOwotICAgICAgICAgcmV0dXJuIG5ldyBJQnVzLlRleHQuZnJvbV9zdHJp bmcoZXh0ZW5zaW9uX3RleHQpOwotICAgICB9Ci1AQCAtNTU2LDggKzU1NiwxMCBAQCBjbGFzcyBQ YW5lbEJpbmRpbmcgOiBJQnVzLlBhbmVsU2VydmljZSB7Ci0gCi0gICAgIHByaXZhdGUgYm9vbCBr ZXlfcHJlc3Nfa2V5dmFsKHVpbnQga2V5dmFsKSB7Ci0gICAgICAgICB1bmljaGFyIGNoID0gSUJ1 cy5rZXl2YWxfdG9fdW5pY29kZShrZXl2YWwpOwotKyAgICAgICAgaWYgKG1fZXh0ZW5zaW9uX25h bWUgPT0gInVuaWNvZGUiICYmICFjaC5pc3hkaWdpdCgpKQotKyAgICAgICAgICAgIHJldHVybiBm YWxzZTsKLSAgICAgICAgIGlmIChjaC5pc2NudHJsKCkpCi0tICAgICAgICAgICAgICAgIHJldHVy biBmYWxzZTsKLSsgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICBzdHJpbmcgc3Ry ID0gY2gudG9fc3RyaW5nKCk7Ci0gICAgICAgICBtX3ByZWVkaXQuYXBwZW5kX3RleHQoc3RyKTsK LSAgICAgICAgIHN0cmluZyBhbm5vdGF0aW9uID0gbV9wcmVlZGl0LmdldF90ZXh0KCk7Ci0tLSAK LTIuMjQuMQotCi1Gcm9tIDNhYTY3MGU5ZjgzMTlmZTA2NGNlN2M0NWNlNTYzMDRjYTVhZjk0ZGMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+Ci1EYXRlOiBXZWQsIDkgU2VwIDIwMjAgMTg6NDI6MTAgKzA5MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gZW5naW5lOiBGaXggdG8gcHVsbCB0aGUgY29ycmVjdCBsYW5ndWFnZSB3aXRo IG5vIGlzbzYzOQotIHZhcmlhbnRzCi0KLVNvbWUgdmFyaWFudHMgaGF2ZSBpc282MzkgYnV0IG90 aGVycyBkbyBub3QgaW4gZXZkZXYueG1sIGFuZAotZ2Vuc2ltcGxlLnB5IGhhdmUgdG8gZmFsbGJh Y2sgdG8gdGhlIGxheW91dCBpc282MzkuCi0KLUJVRz1yaGJ6IzE4NzY4NzcKLS0tLQotIGVuZ2lu ZS9nZW5zaW1wbGUucHkgfCAxOSArKysrKysrKysrKysrKysrKy0tCi0gMSBmaWxlIGNoYW5nZWQs IDE3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9lbmdpbmUv Z2Vuc2ltcGxlLnB5IGIvZW5naW5lL2dlbnNpbXBsZS5weQotaW5kZXggMThmN2RjOGMuLmRlNmQ3 ZmY1IDEwMDc1NQotLS0tIGEvZW5naW5lL2dlbnNpbXBsZS5weQotKysrIGIvZW5naW5lL2dlbnNp bXBsZS5weQotQEAgLTkwLDYgKzkwLDcgQEAgY2xhc3MgRXZkZXZYTUwoWE1MRmlsdGVyQmFzZSk6 Ci0gICAgICAgICBzZWxmLl9fZGVzY3JpcHRpb24gPSAnJwotICAgICAgICAgc2VsZi5fX3Zhcmlh bnQgPSAnJwotICAgICAgICAgc2VsZi5fX2xpc3RfaXNvNjM5ID0gW10KLSsgICAgICAgIHNlbGYu X19saXN0X2lzbzYzOV9mb3JfdmFyaWFudCA9IFtdCi0gICAgIGRlZiBzdGFydERvY3VtZW50KHNl bGYpOgotICAgICAgICAgaWYgc2VsZi5fX2Rvd25zdHJlYW06Ci0gICAgICAgICAgICAgc2VsZi5f X2Rvd25zdHJlYW0uc3RhcnREb2N1bWVudCgpCi1AQCAtMTA2LDcgKzEwNywxMCBAQCBjbGFzcyBF dmRldlhNTChYTUxGaWx0ZXJCYXNlKToKLSAgICAgICAgIGVsaWYgbmFtZSA9PSAnY29uZmlnSXRl bSc6Ci0gICAgICAgICAgICAgc2VsZi5fX2lzX2NvbmZpZ19pdGVtID0gVHJ1ZQotICAgICAgICAg ZWxpZiBuYW1lID09ICdsYW5ndWFnZUxpc3QnOgotLSAgICAgICAgICAgIHNlbGYuX19saXN0X2lz bzYzOSA9IFtdCi0rICAgICAgICAgICAgaWYgc2VsZi5fX2lzX3ZhcmlhbnQgYW5kIHNlbGYuX19p c19jb25maWdfaXRlbToKLSsgICAgICAgICAgICAgICAgc2VsZi5fX2xpc3RfaXNvNjM5X2Zvcl92 YXJpYW50ID0gW10KLSsgICAgICAgICAgICBlbGlmIHNlbGYuX19pc19sYXlvdXQgYW5kIHNlbGYu X19pc19jb25maWdfaXRlbToKLSsgICAgICAgICAgICAgICAgc2VsZi5fX2xpc3RfaXNvNjM5ID0g W10KLSAgICAgICAgIGVsaWYgbmFtZSA9PSAnaXNvNjM5SWQnOgotICAgICAgICAgICAgIHNlbGYu X19pc19pc282MzkgPSBUcnVlCi0gICAgICAgICBlbGlmIG5hbWUgPT0gJ3ZhcmlhbnQnOgotQEAg LTEyOSw2ICsxMzMsNyBAQCBjbGFzcyBFdmRldlhNTChYTUxGaWx0ZXJCYXNlKToKLSAgICAgICAg ICAgICBzZWxmLl9faXNfaXNvNjM5ID0gRmFsc2UKLSAgICAgICAgIGVsaWYgbmFtZSA9PSAndmFy aWFudCc6Ci0gICAgICAgICAgICAgc2VsZi5fX2lzX3ZhcmlhbnQgPSBGYWxzZQotKyAgICAgICAg ICAgIHNlbGYuX19saXN0X2lzbzYzOV9mb3JfdmFyaWFudCA9IFtdCi0gICAgICAgICBlbGlmIG5h bWUgPT0gJ25hbWUnOgotICAgICAgICAgICAgIHNlbGYuX19pc19uYW1lID0gRmFsc2UKLSAgICAg ZGVmIGNoYXJhY3RlcnMoc2VsZiwgdGV4dCk6Ci1AQCAtMTQwLDExICsxNDUsMjEgQEAgY2xhc3Mg RXZkZXZYTUwoWE1MRmlsdGVyQmFzZSk6Ci0gICAgICAgICAgICAgZWxpZiBzZWxmLl9faXNfbGF5 b3V0IGFuZCBzZWxmLl9faXNfY29uZmlnX2l0ZW06Ci0gICAgICAgICAgICAgICAgIHNlbGYuX19s YXlvdXQgPSB0ZXh0Ci0gICAgICAgICBlbGlmIHNlbGYuX19pc19pc282Mzk6Ci0rICAgICAgICAg ICAgaWYgc2VsZi5fX2lzX3ZhcmlhbnQgYW5kIHNlbGYuX19pc19jb25maWdfaXRlbToKLSsgICAg ICAgICAgICAgICAgc2VsZi5fX2xpc3RfaXNvNjM5X2Zvcl92YXJpYW50LmFwcGVuZCh0ZXh0KQot KyAgICAgICAgICAgIGVsaWYgc2VsZi5fX2lzX2xheW91dCBhbmQgc2VsZi5fX2lzX2NvbmZpZ19p dGVtOgotICAgICAgICAgICAgICAgICBzZWxmLl9fbGlzdF9pc282MzkuYXBwZW5kKHRleHQpCi0g ICAgIGRlZiBzYXZlKHNlbGYpOgotICAgICAgICAgaWYgbm90IHNlbGYuX19kb3duc3RyZWFtOgot ICAgICAgICAgICAgIHJldHVybgotLSAgICAgICAgZm9yIGlzbyBpbiBzZWxmLl9fbGlzdF9pc282 Mzk6Ci0rICAgICAgICBsaXN0X2lzbzYzOSA9IFtdCi0rICAgICAgICBpZiBzZWxmLl9faXNfdmFy aWFudCBhbmQgc2VsZi5fX2lzX2NvbmZpZ19pdGVtOgotKyAgICAgICAgICAgIGxpc3RfaXNvNjM5 ID0gc2VsZi5fX2xpc3RfaXNvNjM5X2Zvcl92YXJpYW50Ci0rICAgICAgICAgICAgaWYgbGVuKGxp c3RfaXNvNjM5KSA9PSAwOgotKyAgICAgICAgICAgICAgICBsaXN0X2lzbzYzOSA9IHNlbGYuX19s aXN0X2lzbzYzOQotKyAgICAgICAgZWxpZiBzZWxmLl9faXNfbGF5b3V0IGFuZCBzZWxmLl9faXNf Y29uZmlnX2l0ZW06Ci0rICAgICAgICAgICAgbGlzdF9pc282MzkgPSBzZWxmLl9fbGlzdF9pc282 MzkKLSsgICAgICAgIGZvciBpc28gaW4gbGlzdF9pc282Mzk6Ci0gICAgICAgICAgICAgZG9fZGVu eSA9IEZhbHNlCi0gICAgICAgICAgICAgZm9yIFt4a2IsIGxheW91dCwgdmFyaWFudCwgbGFuZ10g aW4gc2VsZi5fX2RlbnlsaXN0OgotICAgICAgICAgICAgICAgICBpZiB4a2IgPT0gJ3hrYicgXAot LS0gCi0yLjI0LjEKLQo=