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: Sandro Mani To: git-commits@fedoraproject.org Subject: [rpms/mingw-python3] rawhide: Update to 3.14.7 Date: Wed, 23 Sep 2026 16:12:22 GMT Message-ID: <179017994285.1.3033290796824066764.rpms-mingw-python3-60d707afd579@fedoraproject.org> List-ID: X-Git-Repo: rpms/mingw-python3 X-Git-Branch: rawhide X-Git-Rev: 60d707afd5797ccbf360cb9eb351834b4caeccf2 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbWluZ3ctcHl0aG9u MwpCcmFuY2ggOiByYXdoaWRlCkNvbW1pdCA6IDYwZDcwN2FmZDU3OTdjY2JmMzYwY2I5ZWIzNTE4 MzRiNGNhZWNjZjIKQXV0aG9yIDogU2FuZHJvIE1hbmkgPG1hbmlzYW5kcm9AZ21haWwuY29tPgpE YXRlICAgOiAyMDI2LTA5LTIzVDE4OjExOjUzKzAyOjAwClN0YXRzICA6ICs1NDg2Ly0yMDMzIGlu IDEyNCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv bWluZ3ctcHl0aG9uMy9jLzYwZDcwN2FmZDU3OTdjY2JmMzYwY2I5ZWIzNTE4MzRiNGNhZWNjZjI/ YnJhbmNoPXJhd2hpZGUKCkxvZzoKVXBkYXRlIHRvIDMuMTQuNwoKLS0tCmRpZmYgLS1naXQgYS8u Z2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCA4ZGY1ZTEwLi40YTAxOTk5IDEwMDY0NAotLS0g YS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTQ3LDMgKzQ3LDQgQEAKIC9QeXRob24t My4xMS4xNC50YXIueHoKIC9QeXRob24tMy4xMS4xNS50YXIueHoKIC9QeXRob24tMy4xMS4xNi50 YXIueHoKKy9QeXRob24tMy4xNC43LnRhci54egoKZGlmZiAtLWdpdCBhLzAwMDEtYnVpbGQtYWRk LXdpdGgtbnQtdGhyZWFkcy1hbmQtbWFrZS1pdC1kZWZhdWx0LW9uLW1pbi5wYXRjaCBiLzAwMDEt YnVpbGQtYWRkLXdpdGgtbnQtdGhyZWFkcy1hbmQtbWFrZS1pdC1kZWZhdWx0LW9uLW1pbi5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGNhZTU4Ci0tLSAvZGV2L251 bGwKKysrIGIvMDAwMS1idWlsZC1hZGQtd2l0aC1udC10aHJlYWRzLWFuZC1tYWtlLWl0LWRlZmF1 bHQtb24tbWluLnBhdGNoCkBAIC0wLDAgKzEsMjY1IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZl cmVuY2UgUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmln dXJlLmFjCistLS0gUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMJMjAyNi0wOC0wNSAxMjoyOTo0 OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAy Ni0wOS0yMiAwOTowNjoyOS45OTk5NzAyOTggKzAyMDAKK0BAIC0yOTAzLDYgKzI5MDMsNTMgQEAg dGhlbgorIAlCQVNFQ0ZMQUdTPSIkQkFTRUNGTEFHUyAkYWNfYXJjaF9mbGFncyIKKyBmaQorIAor K2RubCBOT1RFOgorK2RubCAtIEdDQyA0LjQrIGZvciBtaW5ndyogcmVxdWlyZSBhbmQgdXNlIHBv c2l4IHRocmVhZHMocHRocmVhZHMtdzMyKQorK2RubCAtIEhvc3QgbWF5IGNvbnRhaW4gaW5zdGFs bGVkIHB0aHJlYWRzLXczMi4KKytkbmwgLSBPbiB3aW5kb3dzIHBsYXRmb3JtIG9ubHkgTlQtdGhy ZWFkIG1vZGVsIGlzIHN1cHBvcnRlZC4gCisrZG5sIFRvIGF2b2lkIG1pc3MgZGV0ZWN0aW9uIHNj aXB0IGZpcnN0IHdpbGwgY2hlY2sgZm9yIE5ULXRocmVhZCBtb2RlbAorK2RubCBhbmQgaWYgaXMg bm90IGZvdW5kIHdpbGwgdHJ5IHRvIGRldGVjdCBidWlsZCBvcHRpb25zIGZvciBwdGhyZWFkCisr ZG5sIG1vZGVsLiBBdXRvZGV0ZWN0aW9uIGNvdWxkIGJlIG92ZXJpZGVuIGlmIHZhcmlhYmxlIHdp dGhfbnRfdGhyZWFkcworK2RubCBpcyBzZXQgaW4gIlNpdGUgQ29uZmlndXJhdGlvbiIgKHNlZSBh dXRvY29uZiBtYW51YWwpLgorK2RubCBJZiBOVC10aHJlYWQgbW9kZWwgaXMgZW5hYmxlZCBzY3Jp cHQgc2tpcHMgc29tZSBjaGVja3MgdGhhdAorK2RubCBpbXBhY3QgYnVpbGQgcHJvY2Vzcy4gV2hl biBhIG5ldyBmdW5jdGlvbmFsaXR5IGlzIGFkZGVkLCBkZXZlbG9wZXJzCisrZG5sIGFyZSByZXNw b25zaWJsZSB0byB1cGRhdGUgY29uZmlndXJlIHNjcmlwdCB0byBhdm9pZCB0aHJlYWQgbW9kZWxz CisrZG5sIHRvIGJlIG1peGVkLgorKworK0FDX01TR19DSEVDS0lORyhbZm9yIC0td2l0aC1udC10 aHJlYWRzXSkKKytBQ19BUkdfV0lUSChudC10aHJlYWRzLAorKyAgICAgICAgICAgIEFTX0hFTFBf U1RSSU5HKFstLXdpdGgtbnQtdGhyZWFkc10sIFtidWlsZCB3aXRoIHdpbmRvd3MgdGhyZWFkcyAo ZGVmYXVsdCBpcyBzeXN0ZW0tZGVwZW5kZW50KV0pLAorK1sKKysJY2FzZSAkd2l0aHZhbCBpbgor KwlubykJd2l0aF9udF90aHJlYWRzPW5vOzsKKysJeWVzKQl3aXRoX250X3RocmVhZHM9eWVzOzsK KysJKikJd2l0aF9udF90aHJlYWRzPXllczs7CisrCWVzYWMKKytdLCBbCisrCWNhc2UgJGhvc3Qg aW4KKysJCSotKi1taW5ndyopIHdpdGhfbnRfdGhyZWFkcz15ZXM7OworKwkJKikgd2l0aF9udF90 aHJlYWRzPW5vOzsKKysJZXNhYworK10pCisrQUNfTVNHX1JFU1VMVChbJHdpdGhfbnRfdGhyZWFk c10pCisrCisraWYgdGVzdCAkd2l0aF9udF90aHJlYWRzID0geWVzIDsgdGhlbgorK0FDX01TR19D SEVDS0lORyhbd2hldGhlciBsaW5raW5nIHdpdGggbnQtdGhyZWFkcyB3b3JrXSkKKytBQ19MSU5L X0lGRUxTRShbCisrICAgIEFDX0xBTkdfUFJPR1JBTShbWyNpbmNsdWRlIDxwcm9jZXNzLmg+XV0s W1tfYmVnaW50aHJlYWQoMCwgMCwgMCk7XV0pCisrICBdLAorKyAgW0FDX01TR19SRVNVTFQoW3ll c10pXSwKKysgIFtBQ19NU0dfRVJST1IoW2ZhaWxlZCB0byBsaW5rIHdpdGggbnQtdGhyZWFkc10p XSkKKytmaQorKworK2lmIHRlc3QgJHdpdGhfbnRfdGhyZWFkcyA9IHllcyA7IHRoZW4KKysgIGRu bCB0ZW1wb3JhcnkgZGVmYXVsdCBmbGFnIHRvIGF2b2lkIGFkZGl0aW9uYWwgcHRocmVhZCBjaGVj a3MKKysgIGRubCBhbmQgaW5pdGlsaXplIG90aGVyIGFjLi50aHJlYWQgZmxhZ3MgdG8gbm8KKysg IGFjX2N2X3B0aHJlYWRfaXNfZGVmYXVsdD1ubworKyAgYWNfY3Zfa3RocmVhZD1ubworKyAgYWNf Y3ZfcHRocmVhZD1ubworKyAgZG5sIGFjX2N2X2twdGhyZWFkIGlzIHNldCB0byBubyBpZiBkZWZh dWx0IGlzIHllcyAoc2VlIGJlbG93KQorK2Vsc2UKKyAjIE9uIHNvbWUgY29tcGlsZXJzLCBwdGhy ZWFkcyBhcmUgYXZhaWxhYmxlIHdpdGhvdXQgZnVydGhlciBvcHRpb25zCisgIyAoZS5nLiBNYWNP UyBYKS4gT24gc29tZSBvZiB0aGVzZSBzeXN0ZW1zLCB0aGUgY29tcGlsZXIgd2lsbCBub3QKKyAj IGNvbXBsYWluIGlmIHVuYWNjZXB0ZWQgb3B0aW9ucyBhcmUgcGFzc2VkIChlLmcuIGdjYyBvbiBN YWMgT1MgWCkuCitAQCAtMzAxNCw2ICszMDYxLDggQEAgaW50IG1haW4odm9pZCl7CisgQ0M9IiRh Y19zYXZlX2NjIl0pCisgZmkKKyAKKytmaQorKworICMgSWYgd2UgaGF2ZSBzZXQgYSBDQyBjb21w aWxlciBmbGFnIGZvciB0aHJlYWQgc3VwcG9ydCB0aGVuCisgIyBjaGVjayBpZiBpdCB3b3JrcyBm b3IgQ1hYLCB0b28uCisgaWYgdGVzdCAhIC16ICIkQ1hYIgorQEAgLTMwMzMsNiArMzA4MiwxMCBA QCBlbGlmIHRlc3QgIiRhY19jdl9wdGhyZWFkIiA9ICJ5ZXMiCisgdGhlbgorICAgQ1hYPSIkQ1hY IC1wdGhyZWFkIgorICAgYWNfY3ZfY3h4X3RocmVhZD15ZXMKKytlbGlmIHRlc3QgIiR3aXRoX250 X3RocmVhZHMiID0gInllcyIKKyt0aGVuCisrICBkbmwgc2V0IHRvIGFsd2F5cyB0byBza2lwIGV4 dHJhIHB0aHJlYWQgY2hlY2sgYmVsb3cKKysgIGFjX2N2X2N4eF90aHJlYWQ9YWx3YXlzCisgZWxz ZQorICAgYWNfY3ZfY3h4X3RocmVhZD1ubworIGZpCitAQCAtMzA3NCw4ICszMTI3LDggQEAgQUNf Q0hFQ0tfSEVBREVSUyhbIFwKKyAgIGFsbG9jYS5oIGFzbS90eXBlcy5oIGJsdWV0b290aC5oIGNv bmlvLmggZGlyZWN0LmggZGxmY24uaCBlbmRpYW4uaCBlcnJuby5oIGZjbnRsLmggZ3JwLmggXAor ICAgaW8uaCBsYW5naW5mby5oIGxpYmludGwuaCBsaWJ1dGlsLmggbGludXgvYXV4dmVjLmggc3lz L2F1eHYuaCBsaW51eC9mcy5oIGxpbnV4L2xpbWl0cy5oIGxpbnV4L21lbWZkLmggXAorICAgbGlu dXgvbmV0ZmlsdGVyX2lwdjQuaCBsaW51eC9yYW5kb20uaCBsaW51eC9zb3VuZGNhcmQuaCBsaW51 eC9zY2hlZC5oIFwKKy0gIGxpbnV4L3RpcGMuaCBsaW51eC93YWl0LmggbmV0ZGIuaCBuZXQvZXRo ZXJuZXQuaCBuZXRpbmV0L2luLmggbmV0cGFja2V0L3BhY2tldC5oIHBvbGwuaCBwcm9jZXNzLmgg cHRocmVhZC5oIHB0eS5oIFwKKy0gIHNjaGVkLmggc2V0am1wLmggc2hhZG93Lmggc2lnbmFsLmgg c3Bhd24uaCBzdHJvcHRzLmggc3lzL2F1ZGlvaW8uaCBzeXMvYnNkdHR5Lmggc3lzL2RldnBvbGwu aCBcCisrICBsaW51eC90aXBjLmggbGludXgvd2FpdC5oIG5ldGRiLmggbmV0L2V0aGVybmV0Lmgg bmV0aW5ldC9pbi5oIG5ldHBhY2tldC9wYWNrZXQuaCBwb2xsLmggcHJvY2Vzcy5oIHB0eS5oIFwK KysgIHNldGptcC5oIHNoYWRvdy5oIHNpZ25hbC5oIHNwYXduLmggc3Ryb3B0cy5oIHN5cy9hdWRp b2lvLmggc3lzL2JzZHR0eS5oIHN5cy9kZXZwb2xsLmggXAorICAgc3lzL2VuZGlhbi5oIHN5cy9l cG9sbC5oIHN5cy9ldmVudC5oIHN5cy9ldmVudGZkLmggc3lzL2ZpbGUuaCBzeXMvaW9jdGwuaCBz eXMva2Vybl9jb250cm9sLmggXAorICAgc3lzL2xvYWRhdmcuaCBzeXMvbG9jay5oIHN5cy9tZW1m ZC5oIHN5cy9ta2Rldi5oIHN5cy9tbWFuLmggc3lzL21vZGVtLmggc3lzL3BhcmFtLmggc3lzL3Bp ZGZkLmggc3lzL3BvbGwuaCBcCisgICBzeXMvcmFuZG9tLmggc3lzL3Jlc291cmNlLmggc3lzL3Nl bGVjdC5oIHN5cy9zZW5kZmlsZS5oIHN5cy9zb2NrZXQuaCBzeXMvc291bmRjYXJkLmggc3lzL3N0 YXQuaCBcCitAQCAtMzA4Nyw2ICszMTQwLDE0IEBAIEFDX0NIRUNLX0hFQURFUlMoWyBcCisgQUNf SEVBREVSX0RJUkVOVAorIEFDX0hFQURFUl9NQUpPUgorIAorKyMgSWYgdXNpbmcgbnQgdGhyZWFk cywgZG9uJ3QgbG9vayBmb3IgcHRocmVhZC5oIG9yIHRocmVhZC5oCisraWYgdGVzdCAieCR3aXRo X250X3RocmVhZHMiID0geG5vIDsgdGhlbgorK0FDX0hFQURFUl9TVERDCisrQUNfQ0hFQ0tfSEVB REVSUyhwdGhyZWFkLmggc2NoZWQuaCB0aHJlYWQuaCkKKytBQ19IRUFERVJfRElSRU5UCisrQUNf SEVBREVSX01BSk9SCisrZmkKKysKKyAjIGJsdWV0b290aC9ibHVldG9vdGguaCBoYXMgYmVlbiBr bm93biB0byBub3QgY29tcGlsZSB3aXRoIC1zdGQ9Yzk5LgorICMgaHR0cDovL3Blcm1hbGluay5n bWFuZS5vcmcvZ21hbmUubGludXguYmx1ZXoua2VybmVsLzIyMjk0CisgU0FWRV9DRkxBR1M9JENG TEFHUworQEAgLTMyOTAsNiArMzM1MSwxMCBAQCBlbGlmIHRlc3QgIiRhY19jdl9wdGhyZWFkIiA9 ICJ5ZXMiCisgdGhlbiBDQz0iJENDIC1wdGhyZWFkIgorIGZpCisgCisraWYgdGVzdCAkd2l0aF9u dF90aHJlYWRzID0geWVzIDsgdGhlbgorKyAgZG5sIHNraXAgY2hlY2sgZm9yIHB0aHJlYWRfdCBp ZiBOVC10aHJlYWQgbW9kZWwgaXMgZW5hYmxlZAorKyAgYWNfY3ZfaGF2ZV9wdGhyZWFkX3Q9c2tp cAorK2Vsc2UKKyBBQ19DQUNIRV9DSEVDSyhbZm9yIHB0aHJlYWRfdF0sIFthY19jdl9oYXZlX3B0 aHJlYWRfdF0sIFsKKyBBQ19DT01QSUxFX0lGRUxTRShbCisgICBBQ19MQU5HX1BST0dSQU0oW1tA JTpAaW5jbHVkZSA8cHRocmVhZC5oPl1dLCBbW3B0aHJlYWRfdCB4OyB4ID0gKihwdGhyZWFkX3Qq KTA7XV0pCitAQCAtMzMyMSw3ICszMzg2LDcgQEAgQVNfVkFSX0lGKFthY19jdl9wdGhyZWFkX2tl eV90X2lzX2FyaXRobQorICAgICBBQ19ERUZJTkUoW1BUSFJFQURfS0VZX1RfSVNfQ09NUEFUSUJM RV9XSVRIX0lOVF0sIFsxXSwKKyAgICAgICAgICAgICAgIFtEZWZpbmUgaWYgcHRocmVhZF9rZXlf dCBpcyBjb21wYXRpYmxlIHdpdGggaW50Ll0pCisgXSkKKy0KKytmaQorIENDPSIkYWNfc2F2ZV9j YyIKKyAKKyBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAtLWVuYWJsZS1mcmFtZXdvcmtdKQorQEAgLTM5 NjYsMTAgKzQwMzEsMTUgQEAgdGhlbgorICAgZmkKKyBmaQorIAorK2lmIHRlc3QgJHdpdGhfbnRf dGhyZWFkcyA9IHllcyA7IHRoZW4KKysgIGRubCBkbyBub3Qgc2VhcmNoIGZvciBzZW1faW5pdCBp ZiBOVC10aHJlYWQgbW9kZWwgaXMgZW5hYmxlZAorKyAgOgorK2Vsc2UKKyAjICdSZWFsIFRpbWUn IGZ1bmN0aW9ucyBvbiBTb2xhcmlzCisgIyBwb3NpeDQgb24gU29sYXJpcyAyLjYKKyAjIHB0aHJl YWQgKGZpcnN0ISkgb24gTGludXgKKyBBQ19TRUFSQ0hfTElCUyhbc2VtX2luaXRdLCBbcHRocmVh ZCBydCBwb3NpeDRdKQorK2ZpCisgCisgIyBjaGVjayBpZiB3ZSBuZWVkIGxpYmludGwgZm9yIGxv Y2FsZSBmdW5jdGlvbnMKKyBBQ19DSEVDS19MSUIoW2ludGxdLCBbdGV4dGRvbWFpbl0sCitAQCAt NDczNyw2ICs0ODA3LDExIEBAIHRoZW4KKyAgICAgICAgIENYWD0iJENYWCAtcHRocmVhZCIKKyAg ICAgZmkKKyAgICAgcG9zaXhfdGhyZWFkcz15ZXMKKytlbGlmIHRlc3QgJHdpdGhfbnRfdGhyZWFk cyA9IHllcworK3RoZW4KKysgICAgcG9zaXhfdGhyZWFkcz1ubworKyAgICBBQ19ERUZJTkUoTlRf VEhSRUFEUywgMSwKKysgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB5b3Ugd2FudCB0byB1c2UgbmF0 aXZlIE5UIHRocmVhZHNdKQorIGVsc2UKKyAgICAgaWYgdGVzdCAhIC16ICIkd2l0aHZhbCIgLWEg LWQgIiR3aXRodmFsIgorICAgICB0aGVuIExERkxBR1M9IiRMREZMQUdTIC1MJHdpdGh2YWwiCitA QCAtNTMxOCw2ICs1MzkzLDE1IEBAIGlmIHRlc3QgIiRhY19zeXNfc3lzdGVtIiA9ICJMaW51eC1h bmRyb2kKKyBmaQorIAorICMgY2hlY2tzIGZvciBsaWJyYXJ5IGZ1bmN0aW9ucworK2lmIHRlc3Qg JHdpdGhfbnRfdGhyZWFkcyA9IHllcyA7IHRoZW4KKysgIGRubCBHQ0MobWluZ3cpIDQuNCsgcmVx dWlyZSBhbmQgdXNlIHBvc2l4IHRocmVhZHMocHRocmVhZHMtdzMyKQorKyAgZG5sIGFuZCBob3N0 IG1heSBjb250YWluIGluc3RhbGxlZCBwdGhyZWFkcy13MzIuCisrICBkbmwgU2tpcCBjaGVja3Mg Zm9yIHNvbWUgZnVuY3Rpb25zIGRlY2xhcmVkIGluIHB0aHJlYWRzLXczMiBpZgorKyAgZG5sIE5U LXRocmVhZCBtb2RlbCBpcyBlbmFibGVkLgorKyAgYWNfY3ZfZnVuY19wdGhyZWFkX2tpbGw9c2tp cAorKyAgYWNfY3ZfZnVuY19zZW1fb3Blbj1za2lwCisrICBhY19jdl9mdW5jX3NjaGVkX3NldHNj aGVkdWxlcj1za2lwCisrZmkKKyBBQ19DSEVDS19GVU5DUyhbIFwKKyAgIGFjY2VwdDQgYWxhcm0g YmluZF90ZXh0ZG9tYWluX2NvZGVzZXQgY2htb2QgY2hvd24gY2xvY2sgY2xvc2Vmcm9tIGNsb3Nl X3JhbmdlIGNvbmZzdHIgXAorICAgY29weV9maWxlX3JhbmdlIGN0ZXJtaWQgZGxhZGRyIGR1cCBl eGVjdiBleHBsaWNpdF9iemVybyBleHBsaWNpdF9tZW1zZXQgXAorQEAgLTYyNTQsNiArNjMzOCwx MCBAQCBkbmwgYWN0dWFsbHkgd29ya3MuICBGb3IgRnJlZUJTRCB2ZXJzaW9uCisgZG5sIHRoZSBr ZXJuZWwgbW9kdWxlIHRoYXQgcHJvdmlkZXMgUE9TSVggc2VtYXBob3JlcworIGRubCBpc24ndCBs b2FkZWQgYnkgZGVmYXVsdCwgc28gYW4gYXR0ZW1wdCB0byBjYWxsCisgZG5sIHNlbV9vcGVuIHJl c3VsdHMgaW4gYSAnU2lnbmFsIDEyJyBlcnJvci4KKytpZiB0ZXN0ICR3aXRoX250X3RocmVhZHMg PSB5ZXMgOyB0aGVuCisrICBkbmwgc2tpcCBwb3NpeCBzZW1hcGhvcmVzIHRlc3QgaWYgTlQtdGhy ZWFkIG1vZGVsIGlzIGVuYWJsZWQKKysgIGFjX2N2X3Bvc2l4X3NlbWFwaG9yZXNfZW5hYmxlZD1u bworK2ZpCisgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgUE9TSVggc2VtYXBob3JlcyBhcmUgZW5h YmxlZF0sIFthY19jdl9wb3NpeF9zZW1hcGhvcmVzX2VuYWJsZWRdLAorICAgQUNfUlVOX0lGRUxT RShbCisgICAgIEFDX0xBTkdfU09VUkNFKFsKK0BAIC02Mjg3LDYgKzYzNzUsMTQgQEAgQVNfVkFS X0lGKFthY19jdl9wb3NpeF9zZW1hcGhvcmVzX2VuYWJsZQorIF0pCisgCisgZG5sIE11bHRpcHJv Y2Vzc2luZyBjaGVjayBmb3IgYnJva2VuIHNlbV9nZXR2YWx1ZQorK2lmIHRlc3QgJHdpdGhfbnRf dGhyZWFkcyA9IHllcyA7IHRoZW4KKysgIGRubCBTa2lwIHRlc3QgaWYgTlQtdGhyZWFkIG1vZGVs IGlzIGVuYWJsZWQuCisrICBkbmwgTk9URSB0aGUgdGVzdCBjYXNlIGJlbG93IGZhaWwgZm9yIHB0 aHJlYWRzLXczMiBhczoKKysgIGRubCAtIFNFTV9GQUlMRUQgaXMgbm90IGRlZmluZWQ7CisrICBk bmwgLSBzZW1fb3BlbiBpcyBhIHN0dWI7CisrICBkbmwgLSBzZW1fZ2V0dmFsdWUgd29yayghKS4K KysgIGFjX2N2X2Jyb2tlbl9zZW1fZ2V0dmFsdWU9c2tpcAorK2ZpCisgQUNfQ0FDSEVfQ0hFQ0so W2ZvciBicm9rZW4gc2VtX2dldHZhbHVlXSwgW2FjX2N2X2Jyb2tlbl9zZW1fZ2V0dmFsdWVdLAor ICAgQUNfUlVOX0lGRUxTRShbCisgICAgIEFDX0xBTkdfU09VUkNFKFsKK2RpZmYgLXJ1cE4gLS1u by1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L0luY2x1ZGUvaW50ZXJuYWwvcHljb3JlX2NvbmR2 YXIuaCBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL2ludGVybmFsL3B5Y29yZV9jb25kdmFyLmgK Ky0tLSBQeXRob24tMy4xNC43L0luY2x1ZGUvaW50ZXJuYWwvcHljb3JlX2NvbmR2YXIuaAkyMDI2 LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0lu Y2x1ZGUvaW50ZXJuYWwvcHljb3JlX2NvbmR2YXIuaAkyMDI2LTA5LTIyIDA5OjA2OjI5Ljk5ODc5 NDUwNyArMDIwMAorQEAgLTM1LDYgKzM1LDEwIEBACisgIyAgZGVmaW5lIFdJTjMyX0xFQU5fQU5E X01FQU4KKyAjZW5kaWYKKyAjaW5jbHVkZSA8d2luZG93cy5oPiAgICAgICAgICAgICAgLy8gQ1JJ VElDQUxfU0VDVElPTgorKy8qIHdpbnB0aHJlYWRzIGFyZSBpbnZvbHZlZCB2aWEgd2luZG93cyBo ZWFkZXIsIHNvIG5lZWQgdW5kZWYgX1BPU0lYX1RIUkVBRFMgYWZ0ZXIgaGVhZGVyIGluY2x1ZGUg Ki8KKysjaWYgZGVmaW5lZChfUE9TSVhfVEhSRUFEUykKKysjdW5kZWYgX1BPU0lYX1RIUkVBRFMK KysjZW5kaWYKKyAKKyAvKiBvcHRpb25zICovCisgLyogZW11bGF0ZWQgY29uZGl0aW9uIHZhcmlh YmxlcyBhcmUgcHJvdmlkZWQgZm9yIHRob3NlIHRoYXQgd2FudAorZGlmZiAtcnVwTiAtLW5vLWRl cmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvSW5jbHVkZS9pbnRlcm5hbC9weWNvcmVfcHl0aHJlYWQu aCBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL2ludGVybmFsL3B5Y29yZV9weXRocmVhZC5oCist LS0gUHl0aG9uLTMuMTQuNy9JbmNsdWRlL2ludGVybmFsL3B5Y29yZV9weXRocmVhZC5oCTIwMjYt MDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvSW5j bHVkZS9pbnRlcm5hbC9weWNvcmVfcHl0aHJlYWQuaAkyMDI2LTA5LTIyIDA5OjA2OjI5Ljk5OTAz Mzk1MyArMDIwMAorQEAgLTE2LDYgKzE2LDEyIEBAIGV4dGVybiAiQyIgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmJiAhZGVmaW5lZChfUE9TSVhfU0VNQVBIT1JFUykpCisgIyAgaW5j bHVkZSA8dW5pc3RkLmg+ICAgICAgICAgICAgIC8vIF9QT1NJWF9USFJFQURTLCBfUE9TSVhfU0VN QVBIT1JFUworICNlbmRpZgorKyNpZmRlZiBfX01JTkdXMzJfXworKyMgaWYgIWRlZmluZWQoSEFW RV9QVEhSRUFEX0gpIHx8IGRlZmluZWQoTlRfVEhSRUFEUykKKysjICB1bmRlZiBfUE9TSVhfVEhS RUFEUworKyMgZW5kaWYKKysjZW5kaWYKKysKKyAjaWYgKGRlZmluZWQoSEFWRV9QVEhSRUFEX0gp ICYmICFkZWZpbmVkKF9QT1NJWF9USFJFQURTKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmJiAhZGVmaW5lZChfUE9TSVhfU0VNQVBIT1JFUykpCisgICAgLy8gVGhpcyBtZWFucyBw dGhyZWFkcyBhcmUgbm90IGltcGxlbWVudGVkIGluIGxpYmMgaGVhZGVycywgaGVuY2UgdGhlIG1h Y3JvCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9JbmNsdWRlL3B5 dGhyZWFkLmggUHl0aG9uLTMuMTQuNy1uZXcvSW5jbHVkZS9weXRocmVhZC5oCistLS0gUHl0aG9u LTMuMTQuNy9JbmNsdWRlL3B5dGhyZWFkLmgJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAg KzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL3B5dGhyZWFkLmgJMjAyNi0wOS0y MiAwOTowNjoyOS45OTkyMTgyMjMgKzAyMDAKK0BAIC03LDYgKzcsMTIgQEAgdHlwZWRlZiB2b2lk ICpQeVRocmVhZF90eXBlX2xvY2s7CisgZXh0ZXJuICJDIiB7CisgI2VuZGlmCisgCisrI2lmZGVm IF9fTUlOR1czMl9fCisrIyBpZiAhZGVmaW5lZChIQVZFX1BUSFJFQURfSCkgfHwgZGVmaW5lZChO VF9USFJFQURTKQorKyMgIHVuZGVmIF9QT1NJWF9USFJFQURTCisrIyBlbmRpZgorKyNlbmRpZgor KworIC8qIFJldHVybiBzdGF0dXMgY29kZXMgZm9yIFB5dGhvbiBsb2NrIGFjcXVpc2l0aW9uLiAg Q2hvc2VuIGZvciBtYXhpbXVtCisgICogYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGllIGZhaWx1 cmUgLT4gMCwgc3VjY2VzcyAtPiAxLiAgKi8KKyB0eXBlZGVmIGVudW0gUHlMb2NrU3RhdHVzIHsK K2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvX211bHRp cHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuaCBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL19t dWx0aXByb2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmgKKy0tLSBQeXRob24tMy4xNC43L01vZHVs ZXMvX211bHRpcHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuaAkyMDI2LTA4LTA1IDEyOjI5OjQ5 LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvX211bHRpcHJv Y2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuaAkyMDI2LTA5LTIyIDA5OjA2OjI5Ljk5OTQ1NjYzMCAr MDIwMAorQEAgLTMxLDYgKzMxLDkgQEAKKyAjICBkZWZpbmUgU0VNX0hBTkRMRSBIQU5ETEUKKyAj ICBkZWZpbmUgU0VNX1ZBTFVFX01BWCBMT05HX01BWAorICMgIGRlZmluZSBIQVZFX01QX1NFTUFQ SE9SRQorKyMgIGlmIGRlZmluZWQoSEFWRV9TRU1fT1BFTikgJiYgZGVmaW5lZChfUE9TSVhfVEhS RUFEUykKKysjICAgIGluY2x1ZGUgPHNlbWFwaG9yZS5oPgorKyMgIGVuZGlmCisgI2Vsc2UKKyAj ICBpbmNsdWRlIDxmY250bC5oPiAgICAgICAgICAgICAgICAgLyogT19DUkVBVCBhbmQgT19FWENM ICovCisgIyAgaWYgZGVmaW5lZChIQVZFX1NFTV9PUEVOKSAmJiAhZGVmaW5lZChQT1NJWF9TRU1B UEhPUkVTX05PVF9FTkFCTEVEKQorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0z LjE0LjcvcHljb25maWcuaC5pbiBQeXRob24tMy4xNC43LW5ldy9weWNvbmZpZy5oLmluCistLS0g UHl0aG9uLTMuMTQuNy9weWNvbmZpZy5oLmluCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAw ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvcHljb25maWcuaC5pbgkyMDI2LTA5LTIyIDA5 OjA2OjMwLjAwMDgzMzI5MyArMDIwMAorQEAgLTE2OTMsNiArMTY5Myw5IEBACisgLyogRGVmaW5l IGlmIG12d2RlbGNoIGluIGN1cnNlcy5oIGlzIGFuIGV4cHJlc3Npb24uICovCisgI3VuZGVmIE1W V0RFTENIX0lTX0VYUFJFU1NJT04KKyAKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3Ugd2FudCB0byB1 c2UgbmF0aXZlIE5UIHRocmVhZHMgKi8KKysjdW5kZWYgTlRfVEhSRUFEUworKworIC8qIERlZmlu ZSB0byB0aGUgYWRkcmVzcyB3aGVyZSBidWcgcmVwb3J0cyBmb3IgdGhpcyBwYWNrYWdlIHNob3Vs ZCBiZSBzZW50LiAqLworICN1bmRlZiBQQUNLQUdFX0JVR1JFUE9SVAorIAoKZGlmZiAtLWdpdCBh LzAwMDItYnVpbGQtRGVmaW5lLU1TX1dJTkRPV1MtYW5kLW90aGVycy13aGVuLWNvbXBpbGluZy13 aS5wYXRjaCBiLzAwMDItYnVpbGQtRGVmaW5lLU1TX1dJTkRPV1MtYW5kLW90aGVycy13aGVuLWNv bXBpbGluZy13aS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGNm NGJjCi0tLSAvZGV2L251bGwKKysrIGIvMDAwMi1idWlsZC1EZWZpbmUtTVNfV0lORE9XUy1hbmQt b3RoZXJzLXdoZW4tY29tcGlsaW5nLXdpLnBhdGNoCkBAIC0wLDAgKzEsNDggQEAKK2RpZmYgLXJ1 cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L0luY2x1ZGUvcHlwb3J0LmggUHl0aG9u LTMuMTQuNy1uZXcvSW5jbHVkZS9weXBvcnQuaAorLS0tIFB5dGhvbi0zLjE0LjcvSW5jbHVkZS9w eXBvcnQuaAkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0z LjE0LjctbmV3L0luY2x1ZGUvcHlwb3J0LmgJMjAyNi0wOS0yMiAwOTowNjozMC4zMDk5NTc1MTgg KzAyMDAKK0BAIC03OCw2ICs3OCw0NCBAQAorICNlbmRpZgorIAorIAorKyNpZmRlZiBfX01JTkdX MzJfXworKy8qIFRyYW5zbGF0ZSBHQ0NbbWluZ3cqXSBwbGF0Zm9ybSBzcGVjaWZpYyBkZWZpbmVz IHRvIHRob3NlCisrICogdXNlZCBpbiBweXRob24gY29kZS4KKysgKi8KKysjaWYgIWRlZmluZWQo TVNfV0lONjQpICYmIGRlZmluZWQoX1dJTjY0KQorKyMgIGRlZmluZSBNU19XSU42NAorKyNlbmRp ZgorKyNpZiAhZGVmaW5lZChNU19XSU4zMikgJiYgZGVmaW5lZChfV0lOMzIpCisrIyAgZGVmaW5l IE1TX1dJTjMyCisrI2VuZGlmCisrI2lmICFkZWZpbmVkKE1TX1dJTkRPV1MpICYmIGRlZmluZWQo TVNfV0lOMzIpCisrIyAgZGVmaW5lIE1TX1dJTkRPV1MKKysjZW5kaWYKKysKKysjaWYgZGVmaW5l ZChQeV9CVUlMRF9DT1JFKSB8fCBkZWZpbmVkKFB5X0JVSUxEX0NPUkVfQlVJTFRJTikgfHwgZGVm aW5lZChQeV9CVUlMRF9DT1JFX01PRFVMRSkKKysjaW5jbHVkZSA8d2luYXBpZmFtaWx5Lmg+Cisr CisrI2lmIFdJTkFQSV9GQU1JTFlfUEFSVElUSU9OKFdJTkFQSV9QQVJUSVRJT05fREVTS1RPUCkK KysjZGVmaW5lIE1TX1dJTkRPV1NfREVTS1RPUAorKyNlbmRpZgorKyNpZiBXSU5BUElfRkFNSUxZ X1BBUlRJVElPTihXSU5BUElfUEFSVElUSU9OX0FQUCkKKysjZGVmaW5lIE1TX1dJTkRPV1NfQVBQ CisrI2VuZGlmCisrI2lmIFdJTkFQSV9GQU1JTFlfUEFSVElUSU9OKFdJTkFQSV9QQVJUSVRJT05f U1lTVEVNKQorKyNkZWZpbmUgTVNfV0lORE9XU19TWVNURU0KKysjZW5kaWYKKysjaWYgV0lOQVBJ X0ZBTUlMWV9QQVJUSVRJT04oV0lOQVBJX1BBUlRJVElPTl9HQU1FUykKKysjZGVmaW5lIE1TX1dJ TkRPV1NfR0FNRVMKKysjZW5kaWYKKysKKysvKiBEZWZpbmUgdG8gMSBpZiB5b3Ugc3VwcG9ydCB3 aW5kb3dzIGNvbnNvbGUgaW8gKi8KKysjaWYgZGVmaW5lZChNU19XSU5ET1dTX0RFU0tUT1ApIHx8 IGRlZmluZWQoTVNfV0lORE9XU19BUFApIHx8IGRlZmluZWQoTVNfV0lORE9XU19TWVNURU0pCisr I2RlZmluZSBIQVZFX1dJTkRPV1NfQ09OU09MRV9JTyAxCisrI2VuZGlmCisrI2VuZGlmIC8qIFB5 X0JVSUxEX0NPUkUgfHwgUHlfQlVJTERfQ09SRV9CVUlMVElOIHx8IFB5X0JVSUxEX0NPUkVfTU9E VUxFICovCisrCisrI2VuZGlmIC8qIF9fTUlOR1czMl9fKi8KKysKKyAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKyBTeW1ib2xzIGFuZCBtYWNyb3MgdG8gc3VwcGx5IHBsYXRmb3JtLWluZGVwZW5kZW50IGlu dGVyZmFjZXMgdG8gYmFzaWMKKyBDIGxhbmd1YWdlICYgbGlicmFyeSBvcGVyYXRpb25zIHdob3Nl IHNwZWxsaW5ncyB2YXJ5IGFjcm9zcyBwbGF0Zm9ybXMuCgpkaWZmIC0tZ2l0IGEvMDAwMy1zeXNt b2R1bGUtSW1wbGVtZW50LWZsYWdzLV9pc19taW5ndy1pc19taW5nd191Y3J0LWFuLnBhdGNoIGIv MDAwMy1zeXNtb2R1bGUtSW1wbGVtZW50LWZsYWdzLV9pc19taW5ndy1pc19taW5nd191Y3J0LWFu LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NmE2MDMKLS0tIC9k ZXYvbnVsbAorKysgYi8wMDAzLXN5c21vZHVsZS1JbXBsZW1lbnQtZmxhZ3MtX2lzX21pbmd3LWlz X21pbmd3X3VjcnQtYW4ucGF0Y2gKQEAgLTAsMCArMSw1MyBAQAorZGlmZiAtcnVwTiAtLW5vLWRl cmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvUHl0aG9uL3N5c21vZHVsZS5jIFB5dGhvbi0zLjE0Ljct bmV3L1B5dGhvbi9zeXNtb2R1bGUuYworLS0tIFB5dGhvbi0zLjE0LjcvUHl0aG9uL3N5c21vZHVs ZS5jCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQu Ny1uZXcvUHl0aG9uL3N5c21vZHVsZS5jCTIwMjYtMDktMjIgMDk6MDY6MzAuNjAyOTUyODYwICsw MjAwCitAQCAtMTY2LDYgKzE2NiwzOCBAQCBQeVN5c19HZXRPYmplY3QoY29uc3QgY2hhciAqbmFt ZSkKKyB9CisgCisgc3RhdGljIGludAorK3VzZV9hbHRfc2VwKHZvaWQpCisreworKyNpZmRlZiBN U19XSU5ET1dTCisrICAgIGNoYXIqIG1zeXN0ZW0gPSBnZXRlbnYoIk1TWVNURU0iKTsKKysgICAg aWYgKG1zeXN0ZW0gIT0gTlVMTCAmJiBzdHJjbXAobXN5c3RlbSwgIiIpICE9IDApIHsKKysgICAg ICAgIHJldHVybiAxOworKyAgICB9CisrI2VuZGlmCisrICAgIHJldHVybiAwOworK30KKysKKytz dGF0aWMgaW50CisraXNfbWluZ3codm9pZCkKKyt7CisrI2lmZGVmIF9fTUlOR1czMl9fCisrICAg IHJldHVybiAxOworKyNlbHNlCisrICAgIHJldHVybiAwOworKyNlbmRpZgorK30KKysKKytzdGF0 aWMgaW50CisraXNfbWluZ3dfdWNydCh2b2lkKQorK3sKKysjaWYgZGVmaW5lZChfX01JTkdXMzJf XykgJiYgZGVmaW5lZChfVUNSVCkKKysgICAgcmV0dXJuIDE7CisrI2Vsc2UKKysgICAgcmV0dXJu IDA7CisrI2VuZGlmCisrfQorKworK3N0YXRpYyBpbnQKKyBzeXNfc2V0X29iamVjdChQeUludGVy cHJldGVyU3RhdGUgKmludGVycCwgUHlPYmplY3QgKmtleSwgUHlPYmplY3QgKnYpCisgeworICAg ICBpZiAoa2V5ID09IE5VTEwpIHsKK0BAIC0zODg5LDYgKzM5MjEsMTAgQEAgX1B5U3lzX0luaXRD b3JlKFB5VGhyZWFkU3RhdGUgKnRzdGF0ZSwgUAorICAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJi eXRlb3JkZXIiLCAibGl0dGxlIik7CisgI2VuZGlmCisgCisrICAgIFNFVF9TWVMoIl9pc19taW5n dyIsIFB5TG9uZ19Gcm9tTG9uZyhpc19taW5ndygpKSk7CisrICAgIFNFVF9TWVMoIl9pc19taW5n d191Y3J0IiwgUHlMb25nX0Zyb21Mb25nKGlzX21pbmd3X3VjcnQoKSkpOworKyAgICBTRVRfU1lT KCJfdXNlX2FsdF9zZXAiLCBQeUxvbmdfRnJvbUxvbmcodXNlX2FsdF9zZXAoKSkpOworKworICNp ZmRlZiBNU19DT1JFRExMCisgICAgIFNFVF9TWVMoImRsbGhhbmRsZSIsIFB5TG9uZ19Gcm9tVm9p ZFB0cihQeVdpbl9ETExoTW9kdWxlKSk7CisgICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoIndpbnZl ciIsIFB5V2luX0RMTFZlcnNpb25TdHJpbmcpOwoKZGlmZiAtLWdpdCBhLzAwMDQtY29uZmlndXJl LWFkZC1NQUNIREVQLWFuZC1wbGF0Zm9ybS1vbi1NSU5HVy5wYXRjaCBiLzAwMDQtY29uZmlndXJl LWFkZC1NQUNIREVQLWFuZC1wbGF0Zm9ybS1vbi1NSU5HVy5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi43ZjJjNzc5Ci0tLSAvZGV2L251bGwKKysrIGIvMDAwNC1jb25m aWd1cmUtYWRkLU1BQ0hERVAtYW5kLXBsYXRmb3JtLW9uLU1JTkdXLnBhdGNoCkBAIC0wLDAgKzEs MzEgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3Vy ZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2Nv bmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMwLjMwMjc3MzgyNCArMDIwMAorKysrIFB5dGhv bi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMwLjg5MTkxMTUyNyAr MDIwMAorQEAgLTMyNyw2ICszMjcsOSBAQCB0aGVuCisgCSotKi1jeWd3aW4qKQorIAkJYWNfc3lz X3N5c3RlbT1DeWd3aW4KKyAJCTs7CisrCSotKi1taW5ndyopCisrCQlhY19zeXNfc3lzdGVtPU1J TkdXCisrCQk7OworIAkqLWFwcGxlLWlvcyopCisgCQlhY19zeXNfc3lzdGVtPWlPUworIAkJOzsK K0BAIC0zNzAsNiArMzczLDcgQEAgdGhlbgorIAlsaW51eCopIE1BQ0hERVA9ImxpbnV4Ijs7Cisg CWN5Z3dpbiopIE1BQ0hERVA9ImN5Z3dpbiI7OworIAlkYXJ3aW4qKSBNQUNIREVQPSJkYXJ3aW4i OzsKKysJbWluZ3cqKSBNQUNIREVQPSJ3aW4zMiI7OworIAknJykJTUFDSERFUD0idW5rbm93biI7 OworICAgICBlc2FjCisgCitAQCAtODEyLDYgKzgxNiw5IEBAIGlmIHRlc3QgIiRjcm9zc19jb21w aWxpbmciID0geWVzOyB0aGVuCisgCXdhc20zMi0qLSogfCB3YXNtNjQtKi0qKQorIAkJX2hvc3Rf aWRlbnQ9JGhvc3RfY3B1CisgCQk7OworKwkqLSotbWluZ3cqKQorKwkJX2hvc3RfY3B1PQorKwkJ OzsKKyAJKikKKyAJCSMgZm9yIG5vdywgbGltaXQgY3Jvc3MgYnVpbGRzIHRvIGtub3duIGNvbmZp Z3VyYXRpb25zCisgCQlNQUNIREVQPSJ1bmtub3duIgoKZGlmZiAtLWdpdCBhLzAwMDUtYnVpbGQt QWRkLWRlZmF1bHQtY3Jvc3MtY29uZmlndXJhdGlvbi1mb3ItTUlOR1cucGF0Y2ggYi8wMDA1LWJ1 aWxkLUFkZC1kZWZhdWx0LWNyb3NzLWNvbmZpZ3VyYXRpb24tZm9yLU1JTkdXLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MzcyZjIKLS0tIC9kZXYvbnVsbAorKysg Yi8wMDA1LWJ1aWxkLUFkZC1kZWZhdWx0LWNyb3NzLWNvbmZpZ3VyYXRpb24tZm9yLU1JTkdXLnBh dGNoCkBAIC0wLDAgKzEsNjcgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24t My4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQ eXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMxLjE4ODg0MzgyOCAr MDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2 OjMxLjE5NDEwMzQ3NCArMDIwMAorQEAgLTEyNzAsNiArMTI3MCwyOCBAQCBBQ19DQUNIRV9DSEVD SyhbZm9yIC1XbCwtLW5vLWFzLW5lZWRlZF0sCisgXSkKKyBBQ19TVUJTVChbTk9fQVNfTkVFREVE XSkKKyAKKysjIGluaXRpYWxpemUgZGVmYXVsdCBjb25maWd1cmF0aW9uCisrcHlfY29uZmlnPQor K2Nhc2UgJGhvc3QgaW4KKysgICotKi1taW5ndyopIHB5X2NvbmZpZz1taW5ndyA7OworK2VzYWMK KytpZiB0ZXN0IC1uICIkcHlfY29uZmlnIiA7IHRoZW4KKysgIEFDX01TR19OT1RJQ0UoW2xvYWRp bmcgY29uZmlndXJlIGRlZmF1bHRzIGZyb20gLi4uL01pc2MvY29uZmlnXyRweV9jb25maWciXSkK KysgIC4gIiRzcmNkaXIvTWlzYy9jb25maWdfJHB5X2NvbmZpZyIKKytmaQorKworKyMgaW5pdGlh bGl6ZSBkZWZhdWx0cyBmb3IgY3Jvc3MtYnVpbGRzCisraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGlu ZyIgPSB5ZXM7IHRoZW4KKysgIHB5X2NvbmZpZz0kaG9zdF9vcworKyAgY2FzZSAkcHlfY29uZmln IGluCisrICAgIG1pbmd3MzIqKSBweV9jb25maWc9bWluZ3czMiA7OworKyAgZXNhYworKyAgaWYg dGVzdCAtZiAiJHNyY2Rpci9NaXNjL2Nyb3NzXyRweV9jb25maWciIDsgdGhlbgorKyAgICBBQ19N U0dfTk9USUNFKFtsb2FkaW5nIGNyb3NzIGRlZmF1bHRzIGZyb20gLi4uL01pc2MvY3Jvc3NfJHB5 X2NvbmZpZyJdKQorKyAgICAuICIkc3JjZGlyL01pc2MvY3Jvc3NfJHB5X2NvbmZpZyIKKysgIGZp CisrZmkKKysKKyBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciB0aGUgQW5kcm9pZCBBUEkgbGV2ZWxdKQor IGNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKKyAjaWZkZWYgX19BTkRST0lEX18KK2RpZmYgLXJ1cE4g LS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01pc2MvY29uZmlnX21pbmd3IFB5dGhvbi0z LjE0LjctbmV3L01pc2MvY29uZmlnX21pbmd3CistLS0gUHl0aG9uLTMuMTQuNy9NaXNjL2NvbmZp Z19taW5ndwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIFB5dGhvbi0z LjE0LjctbmV3L01pc2MvY29uZmlnX21pbmd3CTIwMjYtMDktMjIgMDk6MDY6MzEuMTkzNDgzNDQ2 ICswMjAwCitAQCAtMCwwICsxLDE1IEBACisrIyBjb25maWd1cmUgZGVmYXVsdHMgZm9yIG1pbmd3 KiBob3N0cworKworKyMgbWluZ3cgZnVuY3Rpb25zIHRvIGlnbm9yZQorK2FjX2N2X2Z1bmNfZnRy dW5jYXRlPWlnbm9yZQkjIGltcGxlbWVudCBpdCBhcyBfY2hzaXplCisrCisrIyBtaW5ndy13NjQg ZnVuY3Rpb25zIHRvIGlnbm9yZQorK2FjX2N2X2Z1bmNfdHJ1bmNhdGU9aWdub3JlCisrYWNfY3Zf ZnVuY19hbGFybT1pZ25vcmUKKysKKysjIGZpbGVzIHRvIGlnbm9yZQorK2FjX2N2X2ZpbGVfX2Rl dl9wdG14PWlnbm9yZSAjTk9URTogdW5kZXIgTVNZUyBlbnZpcm9ubWVudCBkZXZpY2UgZXhpc3QK KythY19jdl9maWxlX19kZXZfcHRjPW5vCisrCisrIyBmb3JjZSBkZXRlY3Rpb24gb2Ygd2luc29j azIgZnVuY3Rpb25hbGl0eSAtIHJlcXVpcmUgd3hwIG9yIG5ld2VyCisrYWNfY3ZfZnVuY19nZXRw ZWVybmFtZT15ZXMKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtcnVwTiAtLW5v LWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTWlzYy9jcm9zc19taW5ndzMyIFB5dGhvbi0zLjE0 LjctbmV3L01pc2MvY3Jvc3NfbWluZ3czMgorLS0tIFB5dGhvbi0zLjE0LjcvTWlzYy9jcm9zc19t aW5ndzMyCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgUHl0aG9uLTMu MTQuNy1uZXcvTWlzYy9jcm9zc19taW5ndzMyCTIwMjYtMDktMjIgMDk6MDY6MzEuMTkzNTc2NTI0 ICswMjAwCitAQCAtMCwwICsxLDExIEBACisrIyBjb25maWd1cmUgZGVmYXVsdHMgZm9yIG1pbmd3 MzIgaG9zdCBpZiBjcm9zcy1idWlsZAorKworK2FjX2N2X2xpdHRsZV9lbmRpYW5fZG91YmxlPXll cworK2FjX2N2X2JpZ19lbmRpYW5fZG91YmxlPW5vCisrYWNfY3ZfbWl4ZWRfZW5kaWFuX2RvdWJs ZT1ubworKworK2FjX2N2X3RhbmhfcHJlc2VydmVzX3plcm9fc2lnbj15ZXMKKysKKythY19jdl93 Y2hhcl90X3NpZ25lZD1ubworKworK2FjX2N2X2hhdmVfc2l6ZV90X2Zvcm1hdD1ubwoKZGlmZiAt LWdpdCBhLzAwMDYtY29uZmlndXJlLWVuYWJsZS1sYXJnZWZpbGUtc3VwcG9ydC1ieS1kZWZhdWx0 LWZvci1NaS5wYXRjaCBiLzAwMDYtY29uZmlndXJlLWVuYWJsZS1sYXJnZWZpbGUtc3VwcG9ydC1i eS1kZWZhdWx0LWZvci1NaS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5hMGUxMTdhCi0tLSAvZGV2L251bGwKKysrIGIvMDAwNi1jb25maWd1cmUtZW5hYmxlLWxhcmdl ZmlsZS1zdXBwb3J0LWJ5LWRlZmF1bHQtZm9yLU1pLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKK2Rp ZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRo b24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5h YwkyMDI2LTA5LTIyIDA5OjA2OjMxLjQ4MzY5MTQ3NSArMDIwMAorKysrIFB5dGhvbi0zLjE0Ljct bmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMxLjQ4ODY5MTEyNiArMDIwMAorQEAg LTMzNTAsNiArMzM1MCwxMCBAQCBpZiB0ZXN0ICIkYWNfY3Zfc2l6ZW9mX29mZl90IiAtZ3QgIiRh Y19jCisgZWxzZQorICAgaGF2ZV9sYXJnZWZpbGVfc3VwcG9ydD0ibm8iCisgZmkKKytkbmwgQWN0 aXZhdGUgb24gd2luZG93cyBwbGF0Zm9ybXMgKDMyJjY0LWJpdCkgd2hlcmUgb2ZmX3QoNCkgPCBm cG9zX3QoOCkKKytBU19DQVNFKFskYWNfc3lzX3N5c3RlbV0sCisrICBbTUlOR1ddLCBbaGF2ZV9s YXJnZWZpbGVfc3VwcG9ydD0ieWVzIl0KKyspCisgQVNfVkFSX0lGKFtoYXZlX2xhcmdlZmlsZV9z dXBwb3J0XSwgW3llc10sIFsKKyAgIEFDX0RFRklORShbSEFWRV9MQVJHRUZJTEVfU1VQUE9SVF0s IFsxXSwKKyAgIFtEZWZpbmVkIHRvIGVuYWJsZSBsYXJnZSBmaWxlIHN1cHBvcnQgd2hlbiBhbiBv ZmZfdCBpcyBiaWdnZXIgdGhhbiBhIGxvbmcKCmRpZmYgLS1naXQgYS8wMDA3LWJ1aWxkLUFkZC1Q Qy10by1DUFBGTEFHUy1hbmQtdG8tU1JDRElSUy1vbi1NaW5ndy5wYXRjaCBiLzAwMDctYnVpbGQt QWRkLVBDLXRvLUNQUEZMQUdTLWFuZC10by1TUkNESVJTLW9uLU1pbmd3LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNmVjMjEKLS0tIC9kZXYvbnVsbAorKysgYi8w MDA3LWJ1aWxkLUFkZC1QQy10by1DUFBGTEFHUy1hbmQtdG8tU1JDRElSUy1vbi1NaW5ndy5wYXRj aApAQCAtMCwwICsxLDMyIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMu MTQuNy9jb25maWd1cmUuYWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCistLS0gUHl0 aG9uLTMuMTQuNy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjozMS43Nzk2NzA4MzUgKzAy MDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjoz MS43ODQ2NzA0ODYgKzAyMDAKK0BAIC03NDQ5LDYgKzc0NDksMTYgQEAgZG8KKyAgIFRIUkVBREhF QURFUlM9IiRUSFJFQURIRUFERVJTIFwkKHNyY2RpcikvJGgiCisgZG9uZQorIAorK2Nhc2UgJGhv c3QgaW4KKysgICotKi1taW5ndyopCisrICAgIGRubCBSZXF1aXJlZCBmb3Igd2luZG93cyBidWls ZHMgYXMgT2JqZWN0cy9leGNlcHRpb25zLmMgcmVxdWlyZQorKyAgICBkbmwgImVycm1hcC5oIiBm cm9tICRzcmNkaXIvUEMuCisrICAgIGRubCBOb3RlIHdlIGNhbm5vdCB1c2UgQkFTRUNQUEZMQUdT IGFzIGF1dG9nZW5lcmF0ZWQgcHljb25maWcuaAorKyAgICBkbmwgaGFzIHRvIGJlIGJlZm9yZSBj dXN0b21pemVkIGxvY2F0ZWQgaW4gLi4vUEMuCisrICAgIENQUEZMQUdTPSItSVwkKHNyY2Rpcikv UEMgJENQUEZMQUdTIgorKyAgICA7OworK2VzYWMKKysKKyBBQ19TVUJTVChbU1JDRElSU10pCisg U1JDRElSUz0iXAorICAgTW9kdWxlcyBcCitAQCAtNzQ3Niw2ICs3NDg2LDExIEBAIFNSQ0RJUlM9 IlwKKyAgIFByb2dyYW1zIFwKKyAgIFB5dGhvbiBcCisgICBQeXRob24vZnJvemVuX21vZHVsZXMi CisrCisrY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3KikgU1JDRElSUz0iJFNSQ0RJUlMgUEMi OzsKKytlc2FjCisrCisgQUNfTVNHX0NIRUNLSU5HKFtmb3IgYnVpbGQgZGlyZWN0b3JpZXNdKQor IGZvciBkaXIgaW4gJFNSQ0RJUlM7IGRvCisgICAgIGlmIHRlc3QgISAtZCAkZGlyOyB0aGVuCgpk aWZmIC0tZ2l0IGEvMDAwOC1idWlsZC1hZGQtTUlOR1ctc3VwcG9ydC1mb3ItcG9zaXhtb2R1bGUu cGF0Y2ggYi8wMDA4LWJ1aWxkLWFkZC1NSU5HVy1zdXBwb3J0LWZvci1wb3NpeG1vZHVsZS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjljZDE2Ci0tLSAvZGV2L251 bGwKKysrIGIvMDAwOC1idWlsZC1hZGQtTUlOR1ctc3VwcG9ydC1mb3ItcG9zaXhtb2R1bGUucGF0 Y2gKQEAgLTAsMCArMSw3OCBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0z LjE0LjcvY29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5 dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6MzIuMDcwNjUwNTQ0ICsw MjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6 MzIuMDc5MjkxMjMyICswMjAwCitAQCAtOTQzLDYgKzk0MywxNCBAQCB0aGVuCisgICAgICAgICAg ICAgW0RlZmluZSB0byBpbmNsdWRlIG1ic3RhdGVfdCBmb3IgbWJydG93Y10pCisgZmkKKyAKKytB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBwb3NpeG1vZHVsZSBuYW1lXSkKKytBQ19TVUJTVChNT0RVTEVf UE9TSVhNT0RVTEVfTkFNRSkKKytjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQlNT0RVTEVf UE9TSVhNT0RVTEVfTkFNRT1udDs7CisrICAqKQkJTU9EVUxFX1BPU0lYTU9EVUxFX05BTUU9cG9z aXg7OworK2VzYWMKKytBQ19NU0dfUkVTVUxUKFskTU9EVUxFX1BPU0lYTU9EVUxFX05BTUVdKQor KworICMgUmVjb3JkIHRoZSBjb25maWd1cmUtdGltZSB2YWx1ZSBvZiBNQUNPU1hfREVQTE9ZTUVO VF9UQVJHRVQsCisgIyBpdCBtYXkgaW5mbHVlbmNlIHRoZSB3YXkgd2UgY2FuIGJ1aWxkIGV4dGVu c2lvbnMsIHNvIGRpc3R1dGlscworICMgbmVlZHMgdG8gY2hlY2sgaXQKK2RpZmYgLXJ1cE4gLS1u by1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvcG9zaXhtb2R1bGUuYyBQeXRob24t My4xNC43LW5ldy9Nb2R1bGVzL3Bvc2l4bW9kdWxlLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVs ZXMvcG9zaXhtb2R1bGUuYwkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysr IFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvcG9zaXhtb2R1bGUuYwkyMDI2LTA5LTIyIDA5OjA2 OjMyLjA3NzY1MDA1NiArMDIwMAorQEAgLTI5Niw2ICsyOTYsMzIgQEAKKyAjICBkZWZpbmUgSEFW RV9QSVBFICAgICAgIDEKKyAjICBkZWZpbmUgSEFWRV9GU1lOQyAgICAgIDEKKyAjICBkZWZpbmUg ZnN5bmMgX2NvbW1pdAorKyNlbGlmIGRlZmluZWQoX19NSU5HVzMyX18pCS8qIEdDQyBmb3Igd2lu ZG93cyBob3N0cyAqLworKy8qIGdldGxvZ2luIGlzIGRldGVjdGVkIGJ5IGNvbmZpZ3VyZSBvbiBt aW5ndy13NjQgKi8KKysjICB1bmRlZiBIQVZFX0dFVExPR0lOCisrLyogb3BlbmRpciBpcyBkZXRl Y3RlZCBieSBjb25maWd1cmUgb24gbWluZ3ctdzY0LCBhbmQgZm9yIHNvbWUgcmVhc29uCisrdGhp bmdzIGRvbid0IHdvcmsgYXMgZXhwZWN0ZWQuIEZvciBleGFtcGxlLCBvcy5saXN0ZGlyIGFsd2F5 cyByZXR1cm5zCisrdGhlIGN3ZCdzIGRpcmVjdG9yeSBsaXN0aW5nIGluc3RlYWQgb2YgdGhlIG9u ZSBzcGVjaWZpZWQuIEJ5IAorK3VuLWRlZmluaW5nLCB0aGlzLCBvcy5saXN0ZGlyIHdpbGwgdXNl IHRoZSBvbmUgd2hpY2ggdXNlcyBuYXRpdmUKKyt3aW5kb3dzIEFQSS4gKi8KKysjICB1bmRlZiBI QVZFX09QRU5ESVIKKysvKiMgICAgZGVmaW5lIEhBVkVfR0VUQ1dEICAgICAxIC0gZGV0ZWN0ZWQg YnkgY29uZmlndXJlKi8KKysjICBkZWZpbmUgSEFWRV9HRVRQUElEICAgIDEKKysjICBkZWZpbmUg SEFWRV9HRVRMT0dJTiAgIDEKKysjICBkZWZpbmUgSEFWRV9TUEFXTlYgICAgIDEKKysjICBkZWZp bmUgSEFWRV9XU1BBV05WICAgIDEKKysjICBkZWZpbmUgSEFWRV9XRVhFQ1YgICAgIDEKKysvKiMg ICAgZGVmaW5lIEhBVkVfRVhFQ1YJICAgICAxIC0gZGV0ZWN0ZWQgYnkgY29uZmlndXJlKi8KKysj ICBkZWZpbmUgSEFWRV9QSVBFCSAgICAgMQorKyMgIGRlZmluZSBIQVZFX1BPUEVOCSAgICAgMQor KyMgIGRlZmluZSBIQVZFX1NZU1RFTQkgICAxCisrIyAgZGVmaW5lIEhBVkVfQ1dBSVQgICAgICAx CisrIyAgZGVmaW5lIEhBVkVfRlNZTkMgICAgICAxCisrIyAgZGVmaW5lIGZzeW5jIF9jb21taXQK KysjICBpbmNsdWRlIDx3aW5pb2N0bC5oPgorKyMgIGlmbmRlZiBfTUFYX0VOVgorKyMgICAgZGVm aW5lIF9NQVhfRU5WCTMyNzY3CisrIyAgZW5kaWYKKyAjZW5kaWYKKyAKKyAKK0BAIC0xNzQ1LDkg KzE3NzEsOSBAQCBlcnJvcjoKKyAqLworICNpbmNsdWRlIDxjcnRfZXh0ZXJucy5oPgorICNkZWZp bmUgVVNFX0RBUldJTl9OU19HRVRfRU5WSVJPTiAxCistI2VsaWYgIWRlZmluZWQoX01TQ19WRVIp ICYmICghZGVmaW5lZChfX1dBVENPTUNfXykgfHwgZGVmaW5lZChfX1FOWF9fKSB8fCBkZWZpbmVk KF9fVlhXT1JLU19fKSkKKysjZWxpZiAhZGVmaW5lZChNU19XSU5ET1dTKSAmJiAoIWRlZmluZWQo X19XQVRDT01DX18pIHx8IGRlZmluZWQoX19RTlhfXykgfHwgZGVmaW5lZChfX1ZYV09SS1NfXykp CisgZXh0ZXJuIGNoYXIgKiplbnZpcm9uOworLSNlbmRpZiAvKiAhX01TQ19WRVIgKi8KKysjZW5k aWYgLyogIU1TX1dJTkRPV1MgKi8KKyAKKyBzdGF0aWMgUHlPYmplY3QgKgorIGNvbnZlcnRlbnZp cm9uKHZvaWQpCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Nb2R1 bGVzL1NldHVwLmJvb3RzdHJhcC5pbiBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL1NldHVwLmJv b3RzdHJhcC5pbgorLS0tIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4J MjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5l dy9Nb2R1bGVzL1NldHVwLmJvb3RzdHJhcC5pbgkyMDI2LTA5LTIyIDA5OjA2OjMyLjA3NjQwMjg1 OSArMDIwMAorQEAgLTgsNyArOCw3IEBACisgIyBtb2R1bGUgQyBBUElzIGFyZSB1c2VkIGluIGNv cmUKKyBhdGV4aXQgYXRleGl0bW9kdWxlLmMKKyBmYXVsdGhhbmRsZXIgZmF1bHRoYW5kbGVyLmMK Ky1wb3NpeCBwb3NpeG1vZHVsZS5jCisrQE1PRFVMRV9QT1NJWE1PRFVMRV9OQU1FQCBwb3NpeG1v ZHVsZS5jCisgX3NpZ25hbCBzaWduYWxtb2R1bGUuYworIF90cmFjZW1hbGxvYyBfdHJhY2VtYWxs b2MuYworIF9zdWdnZXN0aW9ucyBfc3VnZ2VzdGlvbnMuYwoKZGlmZiAtLWdpdCBhLzAwMDktZXhw b3J0cy5oLUFkZC1zdXBwb3J0LWZvci1NSU5HVy5wYXRjaCBiLzAwMDktZXhwb3J0cy5oLUFkZC1z dXBwb3J0LWZvci1NSU5HVy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mNjBjZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvMDAwOS1leHBvcnRzLmgtQWRkLXN1cHBvcnQt Zm9yLU1JTkdXLnBhdGNoCkBAIC0wLDAgKzEsNDkgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVy ZW5jZSBQeXRob24tMy4xNC43L0luY2x1ZGUvZXhwb3J0cy5oIFB5dGhvbi0zLjE0LjctbmV3L0lu Y2x1ZGUvZXhwb3J0cy5oCistLS0gUHl0aG9uLTMuMTQuNy9JbmNsdWRlL2V4cG9ydHMuaAkyMDI2 LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0lu Y2x1ZGUvZXhwb3J0cy5oCTIwMjYtMDktMjIgMDk6MDY6MzIuMzc4MjgwOTEyICswMjAwCitAQCAt MTUsMTIgKzE1LDEyIEBACisgKi8KKyAKKyAvKgorLSAgQWxsIHdpbmRvd3MgcG9ydHMsIGV4Y2Vw dCBjeWd3aW4sIGFyZSBoYW5kbGVkIGluIFBDL3B5Y29uZmlnLmguCisrICBPbmx5IE1TVkMgd2lu ZG93cyBwb3J0cyBpcyBoYW5kbGVkIGluIFBDL3B5Y29uZmlnLmguCisgCistICBDeWd3aW4gaXMg dGhlIG9ubHkgb3RoZXIgYXV0b2NvbmYgcGxhdGZvcm0gcmVxdWlyaW5nIHNwZWNpYWwKKysgIEN5 Z3dpbiBhbmQgTWluZ3cgaXMgdGhlIG9ubHkgb3RoZXIgYXV0b2NvbmYgcGxhdGZvcm0gcmVxdWly aW5nIHNwZWNpYWwKKyAgIGxpbmthZ2UgaGFuZGxpbmcgYW5kIGl0IHVzZXMgX19kZWNsc3BlYygp LgorICovCistI2lmIGRlZmluZWQoX19DWUdXSU5fXykKKysjaWYgZGVmaW5lZChfX0NZR1dJTl9f KSB8fCBkZWZpbmVkKF9fTUlOR1czMl9fKQorICMgICAgICAgZGVmaW5lIEhBVkVfREVDTFNQRUNf RExMCisgI2VuZGlmCisgCitAQCAtNjAsMjEgKzYwLDIzIEBACisgIyAgICAgICAgICAgICAgICAg ICAgICAgZGVmaW5lIFB5QVBJX0ZVTkMoUlRZUEUpIFB5X0VYUE9SVEVEX1NZTUJPTCBSVFlQRQor ICMgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZSBQeUFQSV9EQVRBKFJUWVBFKSBleHRlcm4g UHlfRVhQT1JURURfU1lNQk9MIFJUWVBFCisgICAgICAgICAvKiBtb2R1bGUgaW5pdCBmdW5jdGlv bnMgaW5zaWRlIHRoZSBjb3JlIG5lZWQgbm8gZXh0ZXJuYWwgbGlua2FnZSAqLworLSAgICAgICAg LyogZXhjZXB0IGZvciBDeWd3aW4gdG8gaGFuZGxlIGVtYmVkZGluZyAqLworLSMgICAgICAgICAg ICAgICAgICAgICAgIGlmIGRlZmluZWQoX19DWUdXSU5fXykKKysgICAgICAgIC8qIGV4Y2VwdCBm b3IgQ3lnd2luL01pbmd3IHRvIGhhbmRsZSBlbWJlZGRpbmcgKi8KKysjICAgICAgICAgICAgICAg ICAgICAgICBpZiBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pCisg IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgUHlNT0RJTklUX0ZVTkMgUHlf RVhQT1JURURfU1lNQk9MIFB5T2JqZWN0KgorLSMgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug LyogX19DWUdXSU5fXyAqLworKyMgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgLyogX19DWUdX SU5fXyB8fCBfX01JTkdXMzJfXyovCisgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk ZWZpbmUgUHlNT0RJTklUX0ZVTkMgUHlPYmplY3QqCistIyAgICAgICAgICAgICAgICAgICAgICAg ZW5kaWYgLyogX19DWUdXSU5fXyAqLworKyMgICAgICAgICAgICAgICAgICAgICAgIGVuZGlmIC8q IF9fQ1lHV0lOX18gfHwgX19NSU5HVzMyX18qLworICMgICAgICAgICAgICAgICBlbHNlIC8qIFB5 X0JVSUxEX0NPUkUgKi8KKyAgICAgICAgIC8qIEJ1aWxkaW5nIGFuIGV4dGVuc2lvbiBtb2R1bGUs IG9yIGFuIGVtYmVkZGVkIHNpdHVhdGlvbiAqLworICAgICAgICAgLyogcHVibGljIFB5dGhvbiBm dW5jdGlvbnMgYW5kIGRhdGEgYXJlIGltcG9ydGVkICovCisgICAgICAgICAvKiBVbmRlciBDeWd3 aW4sIGF1dG8taW1wb3J0IGZ1bmN0aW9ucyB0byBwcmV2ZW50IGNvbXBpbGF0aW9uICovCisgICAg ICAgICAvKiBmYWlsdXJlcyBzaW1pbGFyIHRvIHRob3NlIGRlc2NyaWJlZCBhdCB0aGUgYm90dG9t IG9mIDQuMTogKi8KKyAgICAgICAgIC8qIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvZXh0ZW5kaW5n L3dpbmRvd3MuaHRtbCNhLWNvb2tib29rLWFwcHJvYWNoICovCistIyAgICAgICAgICAgICAgICAg ICAgICAgaWYgIWRlZmluZWQoX19DWUdXSU5fXykKKysjICAgICAgICAgICAgICAgICAgICAgICBp ZiBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX19NSU5HVzMyX18pCisrIyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgUHlBUElfRlVOQyhSVFlQRSkgUlRZUEUKKysj ICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgIyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZWZpbmUgUHlBUElfRlVOQyhSVFlQRSkgUHlfSU1QT1JURURfU1lNQk9MIFJUWVBFCist IyAgICAgICAgICAgICAgICAgICAgICAgZW5kaWYgLyogIV9fQ1lHV0lOX18gKi8KKysjICAgICAg ICAgICAgICAgICAgICAgICBlbmRpZiAvKiBfX0NZR1dJTl9fIHx8IF9fTUlOR1czMl9fKi8KKyAj ICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmUgUHlBUElfREFUQShSVFlQRSkgZXh0ZXJuIFB5 X0lNUE9SVEVEX1NZTUJPTCBSVFlQRQorICAgICAgICAgLyogbW9kdWxlIGluaXQgZnVuY3Rpb25z IG91dHNpZGUgdGhlIGNvcmUgbXVzdCBiZSBleHBvcnRlZCAqLworICMgICAgICAgICAgICAgICAg ICAgICAgIGlmIGRlZmluZWQoX19jcGx1c3BsdXMpCgpkaWZmIC0tZ2l0IGEvMDAxMC1jb25maWd1 cmUtYWRkLW9wdGlvbnMtc28tdGhhdC1zaGFyZWQtYnVpbGQtaXMtcG9zc2liLnBhdGNoIGIvMDAx MC1jb25maWd1cmUtYWRkLW9wdGlvbnMtc28tdGhhdC1zaGFyZWQtYnVpbGQtaXMtcG9zc2liLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjNDQ4ZGQKLS0tIC9kZXYv bnVsbAorKysgYi8wMDEwLWNvbmZpZ3VyZS1hZGQtb3B0aW9ucy1zby10aGF0LXNoYXJlZC1idWls ZC1pcy1wb3NzaWIucGF0Y2gKQEAgLTAsMCArMSw2MSBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVm ZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZp Z3VyZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6 MzIuMzY5NjI5Njk0ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIw MjYtMDktMjIgMDk6MDY6MzIuNjY0NjA5MTI0ICswMjAwCitAQCAtMTYwNCw2ICsxNjA0LDExIEBA IGlmIHRlc3QgJGVuYWJsZV9zaGFyZWQgPSAieWVzIjsgdGhlbgorICAgICAgIEJMRExJQlJBUlk9 Jy1MLiAtbHB5dGhvbiQoTERWRVJTSU9OKScKKyAgICAgICBETExMSUJSQVJZPSdsaWJweXRob24k KExEVkVSU0lPTikuZGxsJworICAgICAgIDs7CisrICAgIE1JTkdXKikKKysgICAgICBMRExJQlJB Ulk9J2xpYnB5dGhvbiQoTERWRVJTSU9OKS5kbGwuYScKKysgICAgICBETExMSUJSQVJZPSdsaWJw eXRob24kKExEVkVSU0lPTikuZGxsJworKyAgICAgIEJMRExJQlJBUlk9Jy1MLiAtbHB5dGhvbiQo TERWRVJTSU9OKScKKysgICAgICA7OworICAgICBTdW5PUyopCisgICAgICAgTERMSUJSQVJZPSds aWJweXRob24kKExEVkVSU0lPTikuc28nCisgICAgICAgQkxETElCUkFSWT0nLVdsLC1SLCQoTElC RElSKSAtTC4gLWxweXRob24kKExEVkVSU0lPTiknCitAQCAtMTY2Myw2ICsxNjY4LDkgQEAgZWxz ZSAjIHNoYXJlZCBpcyBkaXNhYmxlZAorICAgICAgIEJMRExJQlJBUlk9JyQoTElCUkFSWSknCisg ICAgICAgTERMSUJSQVJZPSdsaWJweXRob24kKExEVkVSU0lPTikuZGxsLmEnCisgICAgICAgOzsK KysgICAgTUlOR1cqKQorKyAgICAgIExETElCUkFSWT0nbGlicHl0aG9uJChMRFZFUlNJT04pLmEn CisrICAgICAgOzsKKyAgIGVzYWMKKyBmaQorIEFDX01TR19SRVNVTFQoWyRMRExJQlJBUlldKQor QEAgLTM3MTYsNiArMzcyNCwxMCBAQCB0aGVuCisgCUNZR1dJTiopCisgCQlMRFNIQVJFRD0iZ2Nj IC1zaGFyZWQgLVdsLC0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSIKKyAJCUxEQ1hYU0hBUkVEPSJn KysgLXNoYXJlZCAtV2wsLS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIjs7CisrCU1JTkdXKikKKysJ CUxEU0hBUkVEPSckKENDKSAtc2hhcmVkIC1XbCwtLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UnCisr CQlMRENYWFNIQVJFRD0nJChDWFgpIC1zaGFyZWQgLVdsLC0tZW5hYmxlLWF1dG8taW1hZ2UtYmFz ZScKKysJCTs7CisgCSopCUxEU0hBUkVEPSJsZCI7OworIAllc2FjCisgZmkKK0BAIC02NjAzLDcg KzY2MTUsNyBAQCBMSUJQWVRIT049JycKKyAjIExJQlBZVEhPTiBpcyB1c2VkIGJ5IHB5dGhvbi1j b25maWcsIHB5dGhvbjMucGMsIHRoZSBjb21tYW5kcyBmb3IgYnVpbGRpbmcgdGhlCisgIyBzdGRs aWIncyBvd24gZXh0ZW5zaW9uIG1vZHVsZXMsIGFuZCBleHRlcm5hbCBwYWNrYWdlIGJ1aWxkIHN5 c3RlbXMgdmlhCisgIyBzeXNjb25maWcsIHNvIGl0cyB2YWx1ZSBtdXN0IGJlIHN1aXRhYmxlIGZv ciBhbGwgdGhvc2UgY29udGV4dHMuCistaWYgdGVzdCAiJFBZX0VOQUJMRV9TSEFSRUQiID0gIjEi ICYmICggdGVzdCAtbiAiJEFORFJPSURfQVBJX0xFVkVMIiB8fCB0ZXN0ICIkTUFDSERFUCIgPSAi Y3lnd2luIik7IHRoZW4KKytpZiB0ZXN0ICIkUFlfRU5BQkxFX1NIQVJFRCIgPSAiMSIgJiYgKCB0 ZXN0IC1uICIkQU5EUk9JRF9BUElfTEVWRUwiIHx8IHRlc3QgIiRNQUNIREVQIiA9ICJjeWd3aW4i IHx8IHRlc3QgIiRNQUNIREVQIiA9ICJ3aW4zMiIpOyB0aGVuCisgICBNT0RVTEVfREVQU19TSEFS RUQ9IiRNT0RVTEVfREVQU19TSEFSRUQgXCQoTERMSUJSQVJZKSIKKyAgIExJQlBZVEhPTj0iLWxw eXRob24ke1ZFUlNJT059JHtBQklGTEFHU30iCisgZmkKK0BAIC03NTA3LDYgKzc1MTksMTUgQEAg Zm9yIGRpciBpbiAkU1JDRElSUzsgZG8KKyBkb25lCisgQUNfTVNHX1JFU1VMVChbZG9uZV0pCisg CisrIyBGb3IgbWluZ3cgYnVpbGQgbmVlZCBhZGRpdGlvbmFsIGxpYnJhcnkgZm9yIGxpbmtpbmcK KytjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICBMSUJTPSIkTElCUyAtbHZlcnNp b24gLWxzaGx3YXBpIC1scGF0aGNjaCAtbGJjcnlwdCIKKysgIDs7CisrICAqKQorKyAgOzsKKytl c2FjCisrCisgIyBBdmFpbGFiaWxpdHkgb2YgLU8yOgorIEFDX0NBQ0hFX0NIRUNLKFtmb3IgLU8y XSwgW2FjX2N2X2NvbXBpbGVfbzJdLCBbCisgc2F2ZWRfY2ZsYWdzPSIkQ0ZMQUdTIgoKZGlmZiAt LWdpdCBhLzAwMTEtYnVpbGQtQWRkLVBZRF9QTEFURk9STV9UQUcucGF0Y2ggYi8wMDExLWJ1aWxk LUFkZC1QWURfUExBVEZPUk1fVEFHLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjA4NGI2M2IKLS0tIC9kZXYvbnVsbAorKysgYi8wMDExLWJ1aWxkLUFkZC1QWURfUExB VEZPUk1fVEFHLnBhdGNoCkBAIC0wLDAgKzEsNzYgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVy ZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1 cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMy Ljk1NDU4ODkwMiArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2 LTA5LTIyIDA5OjA2OjMyLjk2MDkyNTgzNiArMDIwMAorQEAgLTY1NjIsNiArNjU2Miw2MSBAQCBl c2FjCisgIyBjaGVjayBmb3IgZW5kaWFubmVzcworIEFDX0NfQklHRU5ESUFOCisgCisrQUNfU1VC U1QoUFlEX1BMQVRGT1JNX1RBRykKKysjIFNwZWNpYWwgY2FzZSBvZiBQWURfUExBVEZPUk1fVEFH IHdpdGggcHl0aG9uIGJ1aWxkIHdpdGggbWluZ3cuCisrIyBQeXRob24gY2FuIHdpdGggZGlmZmVy ZW50IGNwdSBhcmNoIGFuZCBjIHJ1bnRpbWUgYXMgd2VsbCBhcyBkaWZmZXJlbnQKKysjIHRvb2xj aGFpbi4gV2UgZm9sbG93IHRoaXNgbWluZ3dfPGNwdV9hcmNoPl88Y19ydW50aW1lPl88dG9vbGNo YWluPmAKKysjIGNvbnZlbnRpb24gZm9yIFBZRF9QTEFURk9STV9UQUcuIFdoZXJlOgorKyMgYGNw dV9hcmNoYCA9IGB4ODZfNjRgLCBgYWFyY2g2NGAgb3IgYGk2ODZgCisrIyBgY19ydW50aW1lYCA9 IGBtc3ZjcnRgIG9yIGB1Y3J0YAorKyMgYHRvb2xjaGFpbmAgPSBgZ251YCBvciBgbGx2bWAKKytQ WURfUExBVEZPUk1fVEFHPSIiCisrY2FzZSAkaG9zdCBpbgorKyAgKi0qLW1pbmd3KikKKysgICAg IyBjaGVjayBpZiB3ZSBhcmUgbGlua2luZyB0byB1Y3J0CisrICAgIEFDX01TR19DSEVDS0lORyh3 aGV0aGVyIGxpbmtpbmcgdG8gdWNydCkKKysgICAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdf U09VUkNFKFtbCisrICAgICNpbmNsdWRlIDxzdGRpby5oPgorKyAgICAjaWZuZGVmIF9VQ1JUCisr ICAgICAgICAjZXJyb3Igbm8gdWNydAorKyAgICAjZW5kaWYKKysgICAgaW50IG1haW4oKXsgcmV0 dXJuIDA7IH0KKysgICAgXV0pXSxbbGlua2luZ190b191Y3J0PXllc10sW2xpbmtpbmdfdG9fdWNy dD1ub10pCisrICAgIEFDX01TR19SRVNVTFQoJGxpbmtpbmdfdG9fdWNydCkKKysgICAgOzsKKytl c2FjCisrY2FzZSAkaG9zdF9vcyBpbgorKyAgICBtaW5ndyopCisrICBBQ19NU0dfQ0hFQ0tJTkco UFlEX1BMQVRGT1JNX1RBRykKKysgIFBZRF9QTEFURk9STV9UQUc9Im1pbmd3IgorKyAgY2FzZSAk aG9zdCBpbgorKyAgaTY4Ni0qLW1pbmd3KikKKysgICAgUFlEX1BMQVRGT1JNX1RBRys9Il9pNjg2 IgorKyAgICA7OworKyAgeDg2XzY0LSotbWluZ3cqKQorKyAgICBQWURfUExBVEZPUk1fVEFHKz0i X3g4Nl82NCIKKysgICAgOzsKKysgIGFhcmNoNjQtKi1taW5ndyopCisrICAgIFBZRF9QTEFURk9S TV9UQUcrPSJfYWFyY2g2NCIKKysgICAgOzsKKysgIGFybXY3LSotbWluZ3cqKQorKyAgICBQWURf UExBVEZPUk1fVEFHKz0iX2FybXY3IgorKyAgICA7OworKyAgZXNhYworKyAgaWYgdGVzdCAkbGlu a2luZ190b191Y3J0ID0gbm87IHRoZW4KKysgICAgUFlEX1BMQVRGT1JNX1RBRys9Il9tc3ZjcnQi CisrICBlbHNlCisrICAgIFBZRF9QTEFURk9STV9UQUcrPSJfdWNydCIKKysgIGZpCisrICBpZiB0 ZXN0ICIkYWNfY3ZfY2NfbmFtZSIgPSAiY2xhbmciOyB0aGVuCisrICAgICMgaXQgaXMgQ0xBTkcz MgorKyAgICBQWURfUExBVEZPUk1fVEFHKz0iX2xsdm0iCisrICBlbHNlCisrICAgIFBZRF9QTEFU Rk9STV9UQUcrPSJfZ251IgorKyAgZmkKKysgIEFDX01TR19SRVNVTFQoJFBZRF9QTEFURk9STV9U QUcpCisrZXNhYworKworICMgQUJJIHZlcnNpb24gc3RyaW5nIGZvciBQeXRob24gZXh0ZW5zaW9u IG1vZHVsZXMuICBUaGlzIGFwcGVhcnMgYmV0d2VlbiB0aGUKKyAjIHBlcmlvZHMgaW4gc2hhcmVk IGxpYnJhcnkgZmlsZSBuYW1lcywgZS5nLiBmb28uPFNPQUJJPi5zby4gIEl0IGlzIGNhbGN1bGF0 ZWQKKyAjIGZyb20gdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHdoaWNoIGFmZmVjdCB0aGUgQUJJ IG9mIHRoaXMgUHl0aG9uIGJ1aWxkIChpbgorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5 dGhvbi0zLjE0LjcvTWFrZWZpbGUucHJlLmluIFB5dGhvbi0zLjE0LjctbmV3L01ha2VmaWxlLnBy ZS5pbgorLS0tIFB5dGhvbi0zLjE0LjcvTWFrZWZpbGUucHJlLmluCTIwMjYtMDgtMDUgMTI6Mjk6 NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTWFrZWZpbGUucHJlLmlu CTIwMjYtMDktMjIgMDk6MDY6MzIuOTYwMDkyNjYzICswMjAwCitAQCAtMTc1LDYgKzE3NSw3IEBA IENPTkZJTkNMVURFUFk9CSQoQ09ORklOQ0xVREVESVIpL3B5dGhvbiQKKyAjIFN5bWJvbHMgdXNl ZCBmb3IgdXNpbmcgc2hhcmVkIGxpYnJhcmllcworIFNITElCX1NVRkZJWD0JQFNITElCX1NVRkZJ WEAKKyBFWFRfU1VGRklYPQlARVhUX1NVRkZJWEAKKytQWURfUExBVEZPUk1fVEFHID0gQFBZRF9Q TEFURk9STV9UQUdACisgTERTSEFSRUQ9CUBMRFNIQVJFREAgJChQWV9MREZMQUdTKQorIEJMRFNI QVJFRD0JQEJMRFNIQVJFREAgJChQWV9DT1JFX0xERkxBR1MpCisgTERDWFhTSEFSRUQ9CUBMRENY WFNIQVJFREAgJChQWV9MREZMQUdTKQoKZGlmZiAtLWdpdCBhLzAwMTItYnVpbGQtQWRkLWR5bmxv YWRfd2luLXN1cHBvcnQtZm9yLU1pbkdXLnBhdGNoIGIvMDAxMi1idWlsZC1BZGQtZHlubG9hZF93 aW4tc3VwcG9ydC1mb3ItTWluR1cucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uY2QyZGE3YwotLS0gL2Rldi9udWxsCisrKyBiLzAwMTItYnVpbGQtQWRkLWR5bmxvYWRf d2luLXN1cHBvcnQtZm9yLU1pbkdXLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK2RpZmYgLXJ1cE4g LS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43 LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5 LTIyIDA5OjA2OjMzLjI0MzEyMzA5NSArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZp Z3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMzLjI0OTE0MjUzMCArMDIwMAorQEAgLTUzOTcsNiAr NTM5NywxMiBAQCB0aGVuCisgCWZpCisgCTs7CisgCWVzYWMKKysJY2FzZSAkaG9zdCBpbgorKwkq LSotbWluZ3cqKQorKyAgICBEWU5MT0FERklMRT0iZHlubG9hZF93aW4ubyIKKysgICAgZXh0cmFf bWFjaGRlcF9vYmpzPSIkZXh0cmFfbWFjaGRlcF9vYmpzIFBDL2RsX250Lm8iCisrICAgIDs7Cisr CWVzYWMKKyBmaQorIEFDX01TR19SRVNVTFQoWyREWU5MT0FERklMRV0pCisgaWYgdGVzdCAiJERZ TkxPQURGSUxFIiAhPSAiZHlubG9hZF9zdHViLm8iCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVu Y2UgUHl0aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4gUHl0aG9uLTMuMTQuNy1uZXcvTWFrZWZp bGUucHJlLmluCistLS0gUHl0aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAw OTowNjozMy4yNDQxMjE3MTQgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5w cmUuaW4JMjAyNi0wOS0yMiAwOTowNjozMy4yNDc1Njg0NzEgKzAyMDAKK0BAIC0xOTcxLDYgKzE5 NzEsMTIgQEAgUHl0aG9uL2R5bmxvYWRfaHB1eC5vOiAkKHNyY2RpcikvUHl0aG9uLworIAkJLURT SExJQl9FWFQ9JyIkKEVYVF9TVUZGSVgpIicgXAorIAkJLW8gJEAgJChzcmNkaXIpL1B5dGhvbi9k eW5sb2FkX2hwdXguYworIAorK1B5dGhvbi9keW5sb2FkX3dpbi5vOiAkKHNyY2RpcikvUHl0aG9u L2R5bmxvYWRfd2luLmMgTWFrZWZpbGUKKysJJChDQykgLWMgJChQWV9DT1JFX0NGTEFHUykgXAor KwkJLURQWURfUExBVEZPUk1fVEFHPSciJChQWURfUExBVEZPUk1fVEFHKSInIFwKKysJCS1EUFkz X0RMTE5BTUU9J0wiJChETExMSUJSQVJZKSInIFwKKysJCS1vICRAICQoc3JjZGlyKS9QeXRob24v ZHlubG9hZF93aW4uYworKworIFB5dGhvbi9zeXNtb2R1bGUubzogJChzcmNkaXIpL1B5dGhvbi9z eXNtb2R1bGUuYyBNYWtlZmlsZSAkKHNyY2RpcikvSW5jbHVkZS9weWR0cmFjZS5oCisgCSQoQ0Mp IC1jICQoUFlfQ09SRV9DRkxBR1MpIFwKKyAJCS1EQUJJRkxBR1M9JyIkKEFCSUZMQUdTKSInIFwK CmRpZmYgLS1naXQgYS8wMDEzLWJ1aWxkLVVzZS0ucHlkLWV4dGVuc2lvbi1zdWZmaXgtZml4LWlt cG9ydC1saWItaW5zdGEucGF0Y2ggYi8wMDEzLWJ1aWxkLVVzZS0ucHlkLWV4dGVuc2lvbi1zdWZm aXgtZml4LWltcG9ydC1saWItaW5zdGEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZDZmZDliOAotLS0gL2Rldi9udWxsCisrKyBiLzAwMTMtYnVpbGQtVXNlLS5weWQt ZXh0ZW5zaW9uLXN1ZmZpeC1maXgtaW1wb3J0LWxpYi1pbnN0YS5wYXRjaApAQCAtMCwwICsxLDI3 IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9jb25maWd1cmUu YWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCistLS0gUHl0aG9uLTMuMTQuNy9jb25m aWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjozMy41NDU1NDc2OTEgKzAyMDAKKysrKyBQeXRob24t My4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjozMy41NTI2NTg5MzMgKzAy MDAKK0BAIC0zNTkwLDYgKzM1OTAsOSBAQCBpZiB0ZXN0IC16ICIkU0hMSUJfU1VGRklYIjsgdGhl bgorIAlDWUdXSU4qKSAgIFNITElCX1NVRkZJWD0uZGxsOzsKKyAJKikJICAgU0hMSUJfU1VGRklY PS5zbzs7CisgCWVzYWMKKysJY2FzZSAkaG9zdF9vcyBpbgorKwltaW5ndyopICAgIFNITElCX1NV RkZJWD0ucHlkOzsKKysJZXNhYworIGZpCisgQUNfTVNHX1JFU1VMVChbJFNITElCX1NVRkZJWF0p CisgCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9NYWtlZmlsZS5w cmUuaW4gUHl0aG9uLTMuMTQuNy1uZXcvTWFrZWZpbGUucHJlLmluCistLS0gUHl0aG9uLTMuMTQu Ny9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAwOTowNjozMy41NDc3NTIzMjEgKzAyMDAKKysr KyBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAwOTowNjozMy41 NTE4MjA1MDEgKzAyMDAKK0BAIC0yOTQ3LDggKzI5NDcsOCBAQCBsaWJhaW5zdGFsbDogYWxsIHNj cmlwdHMKKyAJQGlmIHRlc3QgIiQoU1RBVElDX0xJQlBZVEhPTikiID0gMTsgdGhlbiBcCisgCQlp ZiB0ZXN0IC1kICQoTElCUkFSWSk7IHRoZW4gOjsgZWxzZSBcCisgCQkJaWYgdGVzdCAiJChQWVRI T05GUkFNRVdPUktESVIpIiA9IG5vLWZyYW1ld29yazsgdGhlbiBcCistCQkJCWlmIHRlc3QgIiQo U0hMSUJfU1VGRklYKSIgPSAuZGxsOyB0aGVuIFwKKy0JCQkJCSQoSU5TVEFMTF9EQVRBKSAkKExE TElCUkFSWSkgJChERVNURElSKSQoTElCUEwpIDsgXAorKwkJCQlpZiB0ZXN0ICIkKFNITElCX1NV RkZJWCkiID0gLmRsbCAtbyAiJChTSExJQl9TVUZGSVgpIiA9IC5weWQ7IHRoZW4gXAorKwkJCQkJ JChJTlNUQUxMX0RBVEEpICQoTERMSUJSQVJZKSAkKERFU1RESVIpJChMSUJESVIpIDsgXAorIAkJ CQllbHNlIFwKKyAJCQkJCSQoSU5TVEFMTF9EQVRBKSAkKExJQlJBUlkpICQoREVTVERJUikkKExJ QlBMKS8kKExJQlJBUlkpIDsgXAorIAkJCQlmaTsgXAoKZGlmZiAtLWdpdCBhLzAwMTQtYnVpbGQt Q29uZmlndXJlLVNPQUJJLWFuZC1FWFRfU1VGRklYLWZvci1NSU5HVy5wYXRjaCBiLzAwMTQtYnVp bGQtQ29uZmlndXJlLVNPQUJJLWFuZC1FWFRfU1VGRklYLWZvci1NSU5HVy5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDg0ZWUwCi0tLSAvZGV2L251bGwKKysrIGIv MDAxNC1idWlsZC1Db25maWd1cmUtU09BQkktYW5kLUVYVF9TVUZGSVgtZm9yLU1JTkdXLnBhdGNo CkBAIC0wLDAgKzEsNDEgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x NC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRo b24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMzLjgzNzE3MzUyNCArMDIw MAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjMz Ljg0MTUyNzA1MSArMDIwMAorQEAgLTY2NDYsNyArNjY0NiwxMCBAQCBBQ19TVUJTVChbU09BQkld KQorIEFDX01TR19DSEVDS0lORyhbQUJJRkxBR1NdKQorIEFDX01TR19SRVNVTFQoWyRBQklGTEFH U10pCisgQUNfTVNHX0NIRUNLSU5HKFtTT0FCSV0pCistU09BQkk9J2NweXRob24tJ2BlY2hvICRW RVJTSU9OIHwgdHIgLWQgLmAke0FCSUZMQUdTfSR7U09BQklfUExBVEZPUk06Ky0kU09BQklfUExB VEZPUk19CisrY2FzZSAkaG9zdF9vcyBpbgorKyAgICBtaW5ndyopIFNPQUJJPSdjcCdgZWNobyAk VkVSU0lPTiB8IHRyIC1kIC5gJHtBQklfVEhSRUFEfS0ke1BZRF9QTEFURk9STV9UQUd9OzsKKysg ICAgKikgU09BQkk9J2NweXRob24tJ2BlY2hvICRWRVJTSU9OIHwgdHIgLWQgLmAke0FCSUZMQUdT fSR7U09BQklfUExBVEZPUk06Ky0kU09BQklfUExBVEZPUk19OzsKKytlc2FjCisgQUNfTVNHX1JF U1VMVChbJFNPQUJJXSkKKyAKKyAjIFJlbGVhc2UgYnVpbGQsIGRlYnVnIGJ1aWxkIChQeV9ERUJV RyksIGFuZCB0cmFjZSByZWZzIGJ1aWxkIChQeV9UUkFDRV9SRUZTKQorQEAgLTY2NTQsMTMgKzY2 NTcsMjMgQEAgQUNfTVNHX1JFU1VMVChbJFNPQUJJXSkKKyBpZiB0ZXN0ICIkUHlfREVCVUciID0g J3RydWUnOyB0aGVuCisgICAjIFNpbWlsYXIgdG8gU09BQkkgYnV0IHJlbW92ZSAiZCIgZmxhZyBm cm9tIEFCSUZMQUdTCisgICBBQ19TVUJTVChbQUxUX1NPQUJJXSkKKy0gIEFMVF9TT0FCST0nY3B5 dGhvbi0nYGVjaG8gJFZFUlNJT04gfCB0ciAtZCAuYGBlY2hvICRBQklGTEFHUyB8IHRyIC1kIGRg JHtTT0FCSV9QTEFURk9STTorLSRTT0FCSV9QTEFURk9STX0KKysgIGNhc2UgJGhvc3Rfb3MgaW4K KysgICAgICBtaW5ndyopIEFMVF9TT0FCST0nY3AnYGVjaG8gJFZFUlNJT04gfCB0ciAtZCAuYCR7 QUJJX1RIUkVBRH0tJHtQWURfUExBVEZPUk1fVEFHfTs7CisrICAgICAgKikgQUxUX1NPQUJJPSdj cHl0aG9uLSdgZWNobyAkVkVSU0lPTiB8IHRyIC1kIC5gYGVjaG8gJEFCSUZMQUdTIHwgdHIgLWQg ZGAke1NPQUJJX1BMQVRGT1JNOistJFNPQUJJX1BMQVRGT1JNfTs7CisrICBlc2FjCisgICBBQ19E RUZJTkVfVU5RVU9URUQoW0FMVF9TT0FCSV0sIFsiJHtBTFRfU09BQkl9Il0sCisgICAgICAgICAg ICAgW0FsdGVybmF0aXZlIFNPQUJJIHVzZWQgaW4gZGVidWcgYnVpbGQgdG8gbG9hZCBDIGV4dGVu c2lvbnMgYnVpbHQgaW4gcmVsZWFzZSBtb2RlXSkKKyBmaQorIAorIEFDX1NVQlNUKFtFWFRfU1VG RklYXSkKKy1FWFRfU1VGRklYPS4ke1NPQUJJfSR7U0hMSUJfU1VGRklYfQorK1BZRF9ERUJVR19T VUZGSVg9IiIKKytpZiB0ZXN0ICIkUHlfREVCVUciID0gInRydWUiOyB0aGVuCisrICBQWURfREVC VUdfU1VGRklYPSJfZCIKKytmaQorK2Nhc2UgJGhvc3Rfb3MgaW4KKysgICAgbWluZ3cqKSBFWFRf U1VGRklYPSR7UFlEX0RFQlVHX1NVRkZJWH0uJHtTT0FCSX0ke1NITElCX1NVRkZJWH07OworKyAg ICAqKSBFWFRfU1VGRklYPS4ke1NPQUJJfSR7U0hMSUJfU1VGRklYfTs7CisrZXNhYworIAorIEFD X01TR19DSEVDS0lORyhbTERWRVJTSU9OXSkKKyBMRFZFUlNJT049JyQoVkVSU0lPTikkKEFCSUZM QUdTKScKCmRpZmYgLS1naXQgYS8wMDE1LWJ1aWxkLURlZmluZS1NU19ETExfSUQtZm9yLXN5cy53 aW52ZXItb24tTUlOR1cucGF0Y2ggYi8wMDE1LWJ1aWxkLURlZmluZS1NU19ETExfSUQtZm9yLXN5 cy53aW52ZXItb24tTUlOR1cucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMTQ3MjA3MQotLS0gL2Rldi9udWxsCisrKyBiLzAwMTUtYnVpbGQtRGVmaW5lLU1TX0RMTF9J RC1mb3Itc3lzLndpbnZlci1vbi1NSU5HVy5wYXRjaApAQCAtMCwwICsxLDMwIEBACitkaWZmIC1y dXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMgUHl0aG9uLTMu MTQuNy1uZXcvY29uZmlndXJlLmFjCistLS0gUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMJMjAy Ni0wOS0yMiAwOTowNjozNC4xNDMxOTYxNjUgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9j b25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjozNC4xNDgxNjY1MzMgKzAyMDAKK0BAIC01NDE0 LDYgKzU0MTQsMjYgQEAgdGhlbgorICAgICAgICAgW0RlZmluZWQgd2hlbiBhbnkgZHluYW1pYyBt b2R1bGUgbG9hZGluZyBpcyBlbmFibGVkLl0pCisgZmkKKyAKKysjIE1TX0RMTF9JRCBpcyB1c2Vk IGZvciBzeXMud2ludmVyIGFuZCBXaW5kb3dzIHJlZ2lzdHJ5IGtleXMuCisrY2FzZSAkaG9zdCBp bgorKyotKi1taW5ndyopCisrCWNhc2UgJGhvc3QgaW4KKysJaTY4NiopCisrCQlDRkxBR1NfTk9E SVNUPSIkQ0ZMQUdTX05PRElTVCAtRE1TX0RMTF9JRD0nXCIke1ZFUlNJT059LTMyXCInIgorKwkJ OzsKKysJYXJtdjcqKQorKwkJQ0ZMQUdTX05PRElTVD0iJENGTEFHU19OT0RJU1QgLURNU19ETExf SUQ9J1wiJHtWRVJTSU9OfS1hcm0zMlwiJyIKKysJCTs7CisrCWFhcmNoNjQqKQorKwkJQ0ZMQUdT X05PRElTVD0iJENGTEFHU19OT0RJU1QgLURNU19ETExfSUQ9J1wiJHtWRVJTSU9OfS1hcm02NFwi JyIKKysJCTs7CisrCSopCisrCQlDRkxBR1NfTk9ESVNUPSIkQ0ZMQUdTX05PRElTVCAtRE1TX0RM TF9JRD0nXCIkVkVSU0lPTlwiJyIKKysJCTs7CisrCWVzYWMKKysJOzsKKytlc2FjCisrCisgIyBN QUNIREVQX09CSlMgY2FuIGJlIHNldCB0byBwbGF0Zm9ybS1zcGVjaWZpYyBvYmplY3QgZmlsZXMg bmVlZGVkIGJ5IFB5dGhvbgorIAorIEFDX1NVQlNUKFtNQUNIREVQX09CSlNdKQoKZGlmZiAtLWdp dCBhLzAwMTYtYnVpbGQtSWdub3JlLW1haW4tcHJvZ3JhbS1mb3ItZnJvemVuLXNjcmlwdHMtb24t TUlORy5wYXRjaCBiLzAwMTYtYnVpbGQtSWdub3JlLW1haW4tcHJvZ3JhbS1mb3ItZnJvemVuLXNj cmlwdHMtb24tTUlORy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w ZmU5M2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvMDAxNi1idWlsZC1JZ25vcmUtbWFpbi1wcm9ncmFt LWZvci1mcm96ZW4tc2NyaXB0cy1vbi1NSU5HLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK2RpZmYg LXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24t My4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwky MDI2LTA5LTIyIDA5OjA2OjM0LjQzNDQ4NTY5OSArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3 L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjM0LjQ0MTQ5NzkxOCArMDIwMAorQEAgLTc1 NzYsNiArNzU3NiwxNiBAQCBjYXNlICRob3N0IGluCisgICAgIDs7CisgZXNhYworIAorK2RubCBQ eXRob24gaW50ZXJwcmV0ZXIgbWFpbiBwcm9ncmFtIGZvciBmcm96ZW4gc2NyaXB0cworK0FDX1NV QlNUKFBZVEhPTl9PQkpTX0ZST1pFTk1BSU4pCisrUFlUSE9OX09CSlNfRlJPWkVOTUFJTj0iUHl0 aG9uL2Zyb3plbm1haW4ubyIKKytjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKQorKyAgICBk bmwgJ1BDL2Zyb3plbl9kbGxtYWluLmMnIC0gbm90IHlldAorKyAgICBQWVRIT05fT0JKU19GUk9a RU5NQUlOPQorKyAgICA7OworK2VzYWMKKysKKyBBQ19TVUJTVChbU1JDRElSU10pCisgU1JDRElS Uz0iXAorICAgTW9kdWxlcyBcCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMu MTQuNy9NYWtlZmlsZS5wcmUuaW4gUHl0aG9uLTMuMTQuNy1uZXcvTWFrZWZpbGUucHJlLmluCist LS0gUHl0aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAwOTowNjozMy44Mzgy NDQ2MTkgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4JMjAyNi0w OS0yMiAwOTowNjozNC40Mzk0ODUzNTEgKzAyMDAKK0BAIC00NDUsNyArNDQ1LDcgQEAgUFlUSE9O X09CSlM9CVwKKyAJCVB5dGhvbi9lcnJvcnMubyBcCisgCQlQeXRob24vZmxvd2dyYXBoLm8gXAor IAkJUHl0aG9uL2ZyYW1lLm8gXAorLQkJUHl0aG9uL2Zyb3plbm1haW4ubyBcCisrCQlAUFlUSE9O X09CSlNfRlJPWkVOTUFJTkAgXAorIAkJUHl0aG9uL2Z1dHVyZS5vIFwKKyAJCVB5dGhvbi9nYy5v IFwKKyAJCVB5dGhvbi9nY19mcmVlX3RocmVhZGluZy5vIFwKCmRpZmYgLS1naXQgYS8wMDE3LXNv Y2tldG1vZHVsZS1hZGQtTUlOR1ctc3VwcG9ydC5wYXRjaCBiLzAwMTctc29ja2V0bW9kdWxlLWFk ZC1NSU5HVy1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmE0NzdhNTcKLS0tIC9kZXYvbnVsbAorKysgYi8wMDE3LXNvY2tldG1vZHVsZS1hZGQtTUlOR1ct c3VwcG9ydC5wYXRjaApAQCAtMCwwICsxLDEzOSBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJl bmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3Vy ZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6MzQu NzM0OTk0NTg0ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYt MDktMjIgMDk6MDY6MzQuNzQyOTI2MDU3ICswMjAwCitAQCAtNDUyMyw2ICs0NTIzLDEyIEBAIEFD X1NVQlNUKFtMSUJNUERFQ19DRkxBR1NdKQorIEFDX1NVQlNUKFtMSUJNUERFQ19JTlRFUk5BTF0p CisgCisgCisrZG5sIE9uIE1JTkdXLCB5b3UgbmVlZCB0byBsaW5rIGFnYWluc3Qgd3MyXzMyIGFu ZCBpcGhscGFwaSBmb3Igc29ja2V0cyB0byB3b3JrCisrQVNfQ0FTRShbJE1BQ0hERVBdLAorKyAg W3dpbjMyXSwgW1NPQ0tFVF9MSUJTPSItbHdzMl8zMiAtbGlwaGxwYXBpIC1scnBjcnQ0Il0sCisr ICBbU09DS0VUX0xJQlM9IiJdCisrKQorKworIGRubCBkZXRlY3Qgc3FsaXRlMyBmcm9tIEVtc2Ny aXB0ZW4gZW1wb3J0CisgUFlfQ0hFQ0tfRU1TQ1JJUFRFTl9QT1JUKFtMSUJTUUxJVEUzXSwgWy1z VVNFX1NRTElURTNdKQorIAorQEAgLTYwOTMsMTggKzYwOTksMzMgQEAgaWYgdGVzdCAkYWNfY3Zf aGVhZGVyX3RpbWVfYWx0em9uZSA9IHllcworICAgICBbRGVmaW5lIHRoaXMgaWYgeW91ciB0aW1l LmggZGVmaW5lcyBhbHR6b25lLl0pCisgZmkKKyAKKytBQ19DSEVDS19IRUFERVJTKFt3czJ0Y3Bp cC5oXSkKKyBBQ19DQUNIRV9DSEVDSyhbZm9yIGFkZHJpbmZvXSwgW2FjX2N2X3N0cnVjdF9hZGRy aW5mb10sCistQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRl IDxuZXRkYi5oPl1dLCBbW3N0cnVjdCBhZGRyaW5mbyBhXV0pXSwKKytBQ19DT01QSUxFX0lGRUxT RShbQUNfTEFOR19QUk9HUkFNKFtbCisrI2lmZGVmIEhBVkVfV1MyVENQSVBfSAorKyMgIGluY2x1 ZGUgPHdzMnRjcGlwLmg+CisrI2Vsc2UKKysjICBpbmNsdWRlIDxuZXRkYi5oPgorKyNlbmRpZl1d LAorKyAgICBbW3N0cnVjdCBhZGRyaW5mbyBhXV0pXSwKKyAgIFthY19jdl9zdHJ1Y3RfYWRkcmlu Zm89eWVzXSwKKyAgIFthY19jdl9zdHJ1Y3RfYWRkcmluZm89bm9dKSkKKyBpZiB0ZXN0ICRhY19j dl9zdHJ1Y3RfYWRkcmluZm8gPSB5ZXM7IHRoZW4KKy0JQUNfREVGSU5FKFtIQVZFX0FERFJJTkZP XSwgWzFdLCBbc3RydWN0IGFkZHJpbmZvIChuZXRkYi5oKV0pCisrCUFDX0RFRklORShbSEFWRV9B RERSSU5GT10sIFsxXSwgW3N0cnVjdCBhZGRyaW5mb10pCisgZmkKKyAKKyBBQ19DQUNIRV9DSEVD SyhbZm9yIHNvY2thZGRyX3N0b3JhZ2VdLCBbYWNfY3Zfc3RydWN0X3NvY2thZGRyX3N0b3JhZ2Vd LAorIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKy0jCQlpbmNsdWRlIDxz eXMvdHlwZXMuaD4KKy1AJTpACQlpbmNsdWRlIDxzeXMvc29ja2V0Lmg+XV0sIFtbc3RydWN0IHNv Y2thZGRyX3N0b3JhZ2Ugc11dKV0sCisrI2lmZGVmIEhBVkVfV1MyVENQSVBfSAorKyNpbmNsdWRl IDx3czJ0Y3BpcC5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NZU19UWVBFU19ICisrI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgorKyNlbmRpZgorKyNpZmRlZiBIQVZFX1NZU19TT0NLRVRfSAorKyNp bmNsdWRlIDxzeXMvc29ja2V0Lmg+CisrI2VuZGlmXV0sCisrICAgIFtbc3RydWN0IHNvY2thZGRy X3N0b3JhZ2Ugc11dKV0sCisgICBbYWNfY3Zfc3RydWN0X3NvY2thZGRyX3N0b3JhZ2U9eWVzXSwK KyAgIFthY19jdl9zdHJ1Y3Rfc29ja2FkZHJfc3RvcmFnZT1ub10pKQorIGlmIHRlc3QgJGFjX2N2 X3N0cnVjdF9zb2NrYWRkcl9zdG9yYWdlID0geWVzOyB0aGVuCitAQCAtNzQyOSw3ICs3NDUwLDEw IEBAIGZpCisgCisgQUNfQ0hFQ0tfVFlQRVMoW3NvY2tsZW5fdF0sIFtdLAorICAgICAgICAgICAg ICAgIFtBQ19ERUZJTkUoW3NvY2tsZW5fdF0sIFtpbnRdLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgW0RlZmluZSB0byAnaW50JyBpZiA8c3lzL3NvY2tldC5oPiBkb2VzIG5vdCBkZWZpbmUu XSldLCBbCisrICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmaW5lIHRvIGBpbnQnIGlmIDxz eXMvc29ja2V0Lmg+IG9yIDx3czJ0Y3BpcC5oPiBkb2VzIG5vdCBkZWZpbmUuXSldLCBbCisrI2lm ZGVmIEhBVkVfV1MyVENQSVBfSAorKyNpbmNsdWRlIDx3czJ0Y3BpcC5oPgorKyNlbmRpZgorICNp ZmRlZiBIQVZFX1NZU19UWVBFU19ICisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorICNlbmRpZgor QEAgLTgzNzcsNyArODQwMSw4IEBAIFBZX1NURExJQl9NT0QoW21tYXBdLAorIFBZX1NURExJQl9N T0QoW19zb2NrZXRdLAorICAgW10sIG00X2ZsYXR0ZW4oW3Rlc3QgIiRhY19jdl9oZWFkZXJfc3lz X3NvY2tldF9oIiA9ICJ5ZXMiCisgICAgICAgICAgICAgICAgICAgICAtYSAiJGFjX2N2X2hlYWRl cl9zeXNfdHlwZXNfaCIgPSAieWVzIgorLSAgICAgICAgICAgICAgICAgICAgLWEgIiRhY19jdl9o ZWFkZXJfbmV0aW5ldF9pbl9oIiA9ICJ5ZXMiXSksIFtdLCBbJFNPQ0tFVF9MSUJTXSkKKysgICAg ICAgICAgICAgICAgICAgIC1hICIkYWNfY3ZfaGVhZGVyX25ldGluZXRfaW5faCIgPSAieWVzIgor KyAgICAgICAgICAgICAgICAgICAgLW8gIiRNQUNIREVQIiA9ICJ3aW4zMiJdKSwgW10sIFskU09D S0VUX0xJQlNdKQorIAorIGRubCBwbGF0Zm9ybSBzcGVjaWZpYyBleHRlbnNpb25zCisgUFlfU1RE TElCX01PRChbZ3JwXSwgW10sCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMu MTQuNy9Nb2R1bGVzL3NvY2tldG1vZHVsZS5jIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvc29j a2V0bW9kdWxlLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvc29ja2V0bW9kdWxlLmMJMjAy Ni0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9N b2R1bGVzL3NvY2tldG1vZHVsZS5jCTIwMjYtMDktMjIgMDk6MDY6MzQuNzQwNDY0MzYxICswMjAw CitAQCAtMjg5LDYgKzI4OSw3IEBAIHNodXRkb3duKGhvdykgLS0gc2h1dCBkb3duIHRyYWZmaWMg aW4gb24KKyAjIGluY2x1ZGUgPFJwYy5oPgorIAorIC8qIE1hY3JvcyBiYXNlZCBvbiB0aGUgSVBQ Uk9UTyBlbnVtLCBzZWU6IGh0dHBzOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjk1MTUgKi8KKysj aWZkZWYgX01TQ19WRVIKKyAjZGVmaW5lIElQUFJPVE9fSUNNUCBJUFBST1RPX0lDTVAKKyAjZGVm aW5lIElQUFJPVE9fSUdNUCBJUFBST1RPX0lHTVAKKyAjZGVmaW5lIElQUFJPVE9fR0dQIElQUFJP VE9fR0dQCitAQCAtMzE5LDYgKzMyMCw3IEBAIHNodXRkb3duKGhvdykgLS0gc2h1dCBkb3duIHRy YWZmaWMgaW4gb24KKyAjZGVmaW5lIElQUFJPVE9fUEdNIElQUFJPVE9fUEdNICAvLyBXaW5Tb2Nr MiBvbmx5CisgI2RlZmluZSBJUFBST1RPX0wyVFAgSVBQUk9UT19MMlRQICAvLyBXaW5Tb2NrMiBv bmx5CisgI2RlZmluZSBJUFBST1RPX1NDVFAgSVBQUk9UT19TQ1RQICAvLyBXaW5Tb2NrMiBvbmx5 CisrI2VuZGlmIC8qIF9NU0NfVkVSICovCisgCisgLyogUHJvdmlkZXMgdGhlIElzV2luZG93czdT UDFPckdyZWF0ZXIoKSBmdW5jdGlvbiAqLworICNpbmNsdWRlIDx2ZXJzaW9uaGVscGVycy5oPgor QEAgLTQxNyw3ICs0MTksNyBAQCByZW1vdmVfdW51c2FibGVfZmxhZ3MoUHlPYmplY3QgKm0pCisg ICAgKiBfU1NfQUxJR05TSVpFIGlzIGRlZmluZWQgaW4gc3lzL3NvY2tldC5oIGJ5IDYuNS4yMSwK KyAgICAqIGZvciBleGFtcGxlLCBidXQgbm90IGJ5IDYuNS4xMC4KKyAgICAqLworLSNlbGlmIGRl ZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSPjEyMDEKKysjZWxpZiAoZGVmaW5lZChfTVNDX1ZF UikgJiYgX01TQ19WRVI+MTIwMSkgfHwgZGVmaW5lZChfX01JTkdXMzJfXykKKyAgIC8qIERvIG5v dCBpbmNsdWRlIGFkZHJpbmZvLmggZm9yIE1TVkM3IG9yIGdyZWF0ZXIuICdhZGRyaW5mbycgYW5k CisgICAgKiBFQUlfKiBjb25zdGFudHMgYXJlIGRlZmluZWQgaW4gKHRoZSBhbHJlYWR5IGluY2x1 ZGVkKSB3czJ0Y3BpcC5oLgorICAgICovCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0 aG9uLTMuMTQuNy9Nb2R1bGVzL3NvY2tldG1vZHVsZS5oIFB5dGhvbi0zLjE0LjctbmV3L01vZHVs ZXMvc29ja2V0bW9kdWxlLmgKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvc29ja2V0bW9kdWxl LmgJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43 LW5ldy9Nb2R1bGVzL3NvY2tldG1vZHVsZS5oCTIwMjYtMDktMjIgMDk6MDY6MzQuNzQyMzkyNTI4 ICswMjAwCitAQCAtNzUsOCArNzUsMTAgQEAgc3RydWN0IFNPQ0tBRERSX0JUSF9SRURFRiB7Cisg ICovCisgIyBpZmRlZiBTSU9fR0VUX01VTFRJQ0FTVF9GSUxURVIKKyAjICBpbmNsdWRlIDxtc3Rj cGlwLmg+IC8qIGZvciBTSU9fUkNWQUxMICovCisrI2lmbmRlZiBfX01JTkdXMzJfXyAvKiByZXNv bHZlIGJ5IGNvbmZpZ3VyZSAqLworICMgIGRlZmluZSBIQVZFX0FERFJJTkZPCisgIyAgZGVmaW5l IEhBVkVfU09DS0FERFJfU1RPUkFHRQorKyNlbmRpZgorICMgIGRlZmluZSBIQVZFX0dFVEFERFJJ TkZPCisgIyAgZGVmaW5lIEhBVkVfR0VUTkFNRUlORk8KKyAjICBkZWZpbmUgRU5BQkxFX0lQVjYK K2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L3B5Y29uZmlnLmguaW4g UHl0aG9uLTMuMTQuNy1uZXcvcHljb25maWcuaC5pbgorLS0tIFB5dGhvbi0zLjE0LjcvcHljb25m aWcuaC5pbgkyMDI2LTA5LTIyIDA5OjA2OjMwLjMwNTgyNDI2NiArMDIwMAorKysrIFB5dGhvbi0z LjE0LjctbmV3L3B5Y29uZmlnLmguaW4JMjAyNi0wOS0yMiAwOTowNjozNC43NDM2NTY3NjYgKzAy MDAKK0BAIC01OSw3ICs1OSw3IEBACisgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlICdh Y29zaCcgZnVuY3Rpb24uICovCisgI3VuZGVmIEhBVkVfQUNPU0gKKyAKKy0vKiBzdHJ1Y3QgYWRk cmluZm8gKG5ldGRiLmgpICovCisrLyogc3RydWN0IGFkZHJpbmZvICovCisgI3VuZGVmIEhBVkVf QUREUklORk8KKyAKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgJ2FsYXJtJyBmdW5j dGlvbi4gKi8KK0BAIC0yMTAxLDcgKzIxMDEsNyBAQAorIC8qIERlZmluZSBhcyAndW5zaWduZWQg aW50JyBpZiA8c3RkZGVmLmg+IGRvZXNuJ3QgZGVmaW5lLiAqLworICN1bmRlZiBzaXplX3QKKyAK Ky0vKiBEZWZpbmUgdG8gJ2ludCcgaWYgPHN5cy9zb2NrZXQuaD4gZG9lcyBub3QgZGVmaW5lLiAq LworKy8qIERlZmluZSB0byBgaW50JyBpZiA8c3lzL3NvY2tldC5oPiBvciA8d3MydGNwaXAuaD4g ZG9lcyBub3QgZGVmaW5lLiAqLworICN1bmRlZiBzb2NrbGVuX3QKKyAKKyAvKiBEZWZpbmUgYXMg J2ludCcgaWYgPHN5cy90eXBlcy5oPiBkb2Vzbid0IGRlZmluZS4gKi8KCmRpZmYgLS1naXQgYS8w MDE4LWJ1aWxkLWVuYWJsZS13aW5yZWctbXN2Y3J0LV93aW5hcGktd2luc291bmQtYW5kLV9vdmUu cGF0Y2ggYi8wMDE4LWJ1aWxkLWVuYWJsZS13aW5yZWctbXN2Y3J0LV93aW5hcGktd2luc291bmQt YW5kLV9vdmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIyYmYy MQotLS0gL2Rldi9udWxsCisrKyBiLzAwMTgtYnVpbGQtZW5hYmxlLXdpbnJlZy1tc3ZjcnQtX3dp bmFwaS13aW5zb3VuZC1hbmQtX292ZS5wYXRjaApAQCAtMCwwICsxLDg1IEBACitkaWZmIC1ydXBO IC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMgUHl0aG9uLTMuMTQu Ny1uZXcvY29uZmlndXJlLmFjCistLS0gUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMJMjAyNi0w OS0yMiAwOTowNjozNS4wMzI0NDM5OTkgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9jb25m aWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjozNS4wNDIzMDA4OTAgKzAyMDAKK0BAIC04NjM5LDYg Kzg2MzksMTUgQEAgUFlfU1RETElCX01PRChbX3NzbF0sIFtdLCBbdGVzdCAiJGFjX2N2XworIFBZ X1NURExJQl9NT0QoW19oYXNobGliXSwgW10sIFt0ZXN0ICIkYWNfY3Zfd29ya2luZ19vcGVuc3Ns X2hhc2hsaWIiID0geWVzXSwKKyAgIFskT1BFTlNTTF9JTkNMVURFU10sIFskT1BFTlNTTF9MREZM QUdTICRPUEVOU1NMX0xERkxBR1NfUlBBVEggJExJQkNSWVBUT19MSUJTXSkKKyAKKytkbmwgd2lu ZG93cyBzcGVjaWZpYyBtb2R1bGVzCisrUFlfU1RETElCX01PRChbd2lucmVnXSwgW3Rlc3QgIiRN QUNIREVQIiA9ICJ3aW4zMiJdKQorK1BZX1NURExJQl9NT0QoW21zdmNydF0sIFt0ZXN0ICIkTUFD SERFUCIgPSAid2luMzIiXSkKKytQWV9TVERMSUJfTU9EKFtfd2luYXBpXSwgW3Rlc3QgIiRNQUNI REVQIiA9ICJ3aW4zMiJdKQorK1BZX1NURExJQl9NT0QoW3dpbnNvdW5kXSwgW3Rlc3QgIiRNQUNI REVQIiA9ICJ3aW4zMiJdLCBbXSwgW10sCisrICBbLWx3aW5tbV0pCisrUFlfU1RETElCX01PRChb X292ZXJsYXBwZWRdLCBbdGVzdCAiJE1BQ0hERVAiID0gIndpbjMyIl0sIFtdLCBbXSwKKysgIFst bHdzMl8zMl0pCisrCisgZG5sIHRlc3QgbW9kdWxlcworIFBZX1NURExJQl9NT0QoW190ZXN0Y2Fw aV0sCisgICAgIFt0ZXN0ICIkVEVTVF9NT0RVTEVTIiA9IHllc10sCitkaWZmIC1ydXBOIC0tbm8t ZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL1NldHVwLmJvb3RzdHJhcC5pbiBQeXRo b24tMy4xNC43LW5ldy9Nb2R1bGVzL1NldHVwLmJvb3RzdHJhcC5pbgorLS0tIFB5dGhvbi0zLjE0 LjcvTW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4JMjAyNi0wOS0yMiAwOTowNjozMi4zNzM3NzA1 MjYgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL1NldHVwLmJvb3RzdHJhcC5p bgkyMDI2LTA5LTIyIDA5OjA2OjM1LjA0MDY1Mzg0MyArMDIwMAorQEAgLTQwLDMgKzQwLDggQEAg X3N5bXRhYmxlIHN5bXRhYmxlbW9kdWxlLmMKKyAKKyAjIGZvciBzeXN0ZW1zIHdpdGhvdXQgJEhP TUUgZW52LCB1c2VkIGJ5IHNpdGUuX2dldHVzZXJiYXNlKCkKKyBATU9EVUxFX1BXRF9UUlVFQHB3 ZCBwd2Rtb2R1bGUuYworKworKyMgYnVpbGQtaW4gbW9kdWxlcyBmb3Igd2luZG93cyBwbGF0Zm9y bToKKytATU9EVUxFX1dJTlJFR19UUlVFQHdpbnJlZyAuLi9QQy93aW5yZWcuYworK0BNT0RVTEVf TVNWQ1JUX1RSVUVAbXN2Y3J0IC1EUHlfQlVJTERfQ09SRSAuLi9QQy9tc3ZjcnRtb2R1bGUuYwor K0BNT0RVTEVfX1dJTkFQSV9UUlVFQF93aW5hcGkgX3dpbmFwaS5jCitkaWZmIC1ydXBOIC0tbm8t ZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL1NldHVwLnN0ZGxpYi5pbiBQeXRob24t My4xNC43LW5ldy9Nb2R1bGVzL1NldHVwLnN0ZGxpYi5pbgorLS0tIFB5dGhvbi0zLjE0LjcvTW9k dWxlcy9TZXR1cC5zdGRsaWIuaW4JMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAK KysrKyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL1NldHVwLnN0ZGxpYi5pbgkyMDI2LTA5LTIy IDA5OjA2OjM1LjA0MDg4Nzg4OSArMDIwMAorQEAgLTE2Nyw2ICsxNjcsMTIgQEAKKyAjIF9zY3By b3h5IG5lZWRzIFN5c3RlbUNvbmZpZ3VyYXRpb24gYW5kIENvcmVGb3VuZGF0aW9uIGZyYW1ld29y aworIEBNT0RVTEVfX1NDUFJPWFlfVFJVRUBfc2Nwcm94eSBfc2Nwcm94eS5jCisgCisrIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworKyMgV2luZG93cyBzcGVjaWZpYyBtb2R1bGVzCisrCisrQE1PRFVMRV9f T1ZFUkxBUFBFRF9UUlVFQF9vdmVybGFwcGVkIG92ZXJsYXBwZWQuYworK0BNT0RVTEVfV0lOU09V TkRfVFJVRUB3aW5zb3VuZCAuLi9QQy93aW5zb3VuZC5jCisrCisgCisgIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworICMgVGVzdCBtb2R1bGVzCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9u LTMuMTQuNy9Nb2R1bGVzL193aW5hcGkuYyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL193aW5h cGkuYworLS0tIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9fd2luYXBpLmMJMjAyNi0wOC0wNSAxMjoy OTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL193aW5h cGkuYwkyMDI2LTA5LTIyIDA5OjA2OjM1LjA0MTE5OTU5OSArMDIwMAorQEAgLTQ2LDcgKzQ2LDkg QEAKKyAjZW5kaWYKKyAjaW5jbHVkZSA8d2luZG93cy5oPgorICNpbmNsdWRlIDx3aW5pb2N0bC5o PgorKyNpZiBkZWZpbmVkKFB5X0RFQlVHKQorICNpbmNsdWRlIDxjcnRkYmcuaD4KKysjZW5kaWYK KyAjaW5jbHVkZSAid2lucmVwYXJzZS5oIgorIAorICNpZiBkZWZpbmVkKE1TX1dJTjMyKSAmJiAh ZGVmaW5lZChNU19XSU42NCkKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x NC43L1BDL21zdmNydG1vZHVsZS5jIFB5dGhvbi0zLjE0LjctbmV3L1BDL21zdmNydG1vZHVsZS5j CistLS0gUHl0aG9uLTMuMTQuNy9QQy9tc3ZjcnRtb2R1bGUuYwkyMDI2LTA4LTA1IDEyOjI5OjQ5 LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L1BDL21zdmNydG1vZHVsZS5j CTIwMjYtMDktMjIgMDk6MDY6MzUuMDQxNTcyMjI2ICswMjAwCitAQCAtMjIsNyArMjIsOSBAQAor ICNpbmNsdWRlIDxpby5oPgorICNpbmNsdWRlIDxjb25pby5oPgorICNpbmNsdWRlIDxzeXMvbG9j a2luZy5oPgorKyNpZmRlZiBfREVCVUcKKyAjaW5jbHVkZSA8Y3J0ZGJnLmg+CisrI2VuZGlmCisg I2luY2x1ZGUgPHdpbmRvd3MuaD4KKyAKKyAjaWZkZWYgX01TQ19WRVIKK2RpZmYgLXJ1cE4gLS1u by1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L1B5dGhvbi9keW5hbWljX2Fubm90YXRpb25zLmMg UHl0aG9uLTMuMTQuNy1uZXcvUHl0aG9uL2R5bmFtaWNfYW5ub3RhdGlvbnMuYworLS0tIFB5dGhv bi0zLjE0LjcvUHl0aG9uL2R5bmFtaWNfYW5ub3RhdGlvbnMuYwkyMDI2LTA4LTA1IDEyOjI5OjQ5 LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9keW5hbWljX2Fu bm90YXRpb25zLmMJMjAyNi0wOS0yMiAwOTowNjozNS4wNDE3NTQyNjYgKzAyMDAKK0BAIC0yNyw3 ICsyNyw3IEBACisgICogQXV0aG9yOiBLb3N0eWEgU2VyZWJyeWFueQorICAqLworIAorLSNpZmRl ZiBfTVNDX1ZFUgorKyNpZmRlZiBNU19XSU5ET1dTCisgIyBpbmNsdWRlIDx3aW5kb3dzLmg+Cisg I2VuZGlmCisgCgpkaWZmIC0tZ2l0IGEvMDAxOS1zeXNjb25maWctbWFrZS1fc3lzY29uZmlnZGF0 YS5weS1yZWxvY2F0YWJsZS5wYXRjaCBiLzAwMTktc3lzY29uZmlnLW1ha2UtX3N5c2NvbmZpZ2Rh dGEucHktcmVsb2NhdGFibGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNWNlYmMxNwotLS0gL2Rldi9udWxsCisrKyBiLzAwMTktc3lzY29uZmlnLW1ha2UtX3N5c2Nv bmZpZ2RhdGEucHktcmVsb2NhdGFibGUucGF0Y2gKQEAgLTAsMCArMSw0NCBAQAorZGlmZiAtcnVw TiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTGliL3N5c2NvbmZpZy9fX21haW5fXy5w eSBQeXRob24tMy4xNC43LW5ldy9MaWIvc3lzY29uZmlnL19fbWFpbl9fLnB5CistLS0gUHl0aG9u LTMuMTQuNy9MaWIvc3lzY29uZmlnL19fbWFpbl9fLnB5CTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAw MDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3N5c2NvbmZpZy9fX21haW5f Xy5weQkyMDI2LTA5LTIyIDA5OjA2OjM1LjMzOTU4OTE5NCArMDIwMAorQEAgLTIsNiArMiw3IEBA IGltcG9ydCBqc29uCisgaW1wb3J0IG9zCisgaW1wb3J0IHN5cworIGltcG9ydCB0eXBlcworK2lt cG9ydCB0ZXh0d3JhcAorIGZyb20gc3lzY29uZmlnIGltcG9ydCAoCisgICAgIF9BTFdBWVNfU1RS LAorICAgICBfUFlUSE9OX0JVSUxELAorQEAgLTIyNCwxMSArMjI1LDMyIEBAIGRlZiBfZ2VuZXJh dGVfcG9zaXhfdmFycygpOgorICAgICBvcy5tYWtlZGlycyhweWJ1aWxkZGlyLCBleGlzdF9vaz1U cnVlKQorICAgICBkZXN0ZmlsZSA9IG9zLnBhdGguam9pbihweWJ1aWxkZGlyLCBuYW1lICsgJy5w eScpCisgCisrICAgIHJlcGxhY2VtZW50ID0gIiIiCisrICAgICAgICBrZXlzX3RvX3JlcGxhY2Ug PSBbCisrICAgICAgICAgICAgJ0JJTkRJUicsICdCSU5MSUJERVNUJywgJ0NPTkZJTkNMVURFRElS JywKKysgICAgICAgICAgICAnQ09ORklOQ0xVREVQWScsICdERVNURElSUycsICdERVNUTElCJywg J0RFU1RTSEFSRUQnLAorKyAgICAgICAgICAgICdJTkNMRElSU1RPTUFLRScsICdJTkNMVURFRElS JywgJ0lOQ0xVREVQWScsCisrICAgICAgICAgICAgJ0xJQkRFU1QnLCAnTElCRElSJywgJ0xJQlBD JywgJ0xJQlBMJywgJ01BQ0hERVNUTElCJywKKysgICAgICAgICAgICAnTUFORElSJywgJ1NDUklQ VERJUicsICdkYXRhcm9vdGRpcicsICdleGVjX3ByZWZpeCcsCisrICAgICAgICAgICAgJ1RaUEFU SCcsICdBUicsICdFWEVOQU1FJywgJ0xMVk1fUFJPRl9NRVJHRVInLAorKyAgICAgICAgICAgICdW RU5WTEFVTkNIRVJESVInLAorKyAgICAgICAgXQorKworKyAgICAgICAgcHJlZml4ID0gYnVpbGRf dGltZV92YXJzWydCSU5ESVInXVs6LTRdCisrICAgICAgICBidWlsZF90aW1lX3ZhcnNbJ3ByZWZp eCddID0gc3lzLmJhc2VfcHJlZml4CisrCisrICAgICAgICBmb3Iga2V5IGluIGtleXNfdG9fcmVw bGFjZToKKysgICAgICAgICAgICB2YWx1ZSA9IGJ1aWxkX3RpbWVfdmFyc1trZXldCisrICAgICAg ICAgICAgYnVpbGRfdGltZV92YXJzW2tleV0gPSB2YWx1ZS5yZXBsYWNlKHByZWZpeCwgc3lzLmJh c2VfcHJlZml4KQorKyAgICAiIiIKKysKKyAgICAgd2l0aCBvcGVuKGRlc3RmaWxlLCAndycsIGVu Y29kaW5nPSd1dGY4JykgYXMgZjoKKysgICAgICAgIGYud3JpdGUoJ2ltcG9ydCBzeXNcbicpCisg ICAgICAgICBmLndyaXRlKCcjIHN5c3RlbSBjb25maWd1cmF0aW9uIGdlbmVyYXRlZCBhbmQgdXNl ZCBieScKKyAgICAgICAgICAgICAgICAgJyB0aGUgc3lzY29uZmlnIG1vZHVsZVxuJykKKyAgICAg ICAgIGYud3JpdGUoJ2J1aWxkX3RpbWVfdmFycyA9ICcpCisgICAgICAgICBfcHJpbnRfY29uZmln X2RpY3QodmFycywgc3RyZWFtPWYpCisrICAgICAgICBmLndyaXRlKCdcbiVzJyAlIHRleHR3cmFw LmRlZGVudChyZXBsYWNlbWVudCkpCisgCisgICAgIHByaW50KGYnV3JpdHRlbiB7ZGVzdGZpbGV9 JykKKyAKCmRpZmYgLS1naXQgYS8wMDIwLXN5c2NvbmZpZy10cmVhdC1NSU5HVy1idWlsZHMtYXMt UE9TSVgtYnVpbGRzLnBhdGNoIGIvMDAyMC1zeXNjb25maWctdHJlYXQtTUlOR1ctYnVpbGRzLWFz LVBPU0lYLWJ1aWxkcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k MmJiZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvMDAyMC1zeXNjb25maWctdHJlYXQtTUlOR1ctYnVp bGRzLWFzLVBPU0lYLWJ1aWxkcy5wYXRjaApAQCAtMCwwICsxLDY2IEBACitkaWZmIC1ydXBOIC0t bm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvc3lzY29uZmlnL19faW5pdF9fLnB5IFB5 dGhvbi0zLjE0LjctbmV3L0xpYi9zeXNjb25maWcvX19pbml0X18ucHkKKy0tLSBQeXRob24tMy4x NC43L0xpYi9zeXNjb25maWcvX19pbml0X18ucHkJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAw MDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9MaWIvc3lzY29uZmlnL19faW5pdF9fLnB5 CTIwMjYtMDktMjIgMDk6MDY6MzUuNjIzNDAyNzg3ICswMjAwCitAQCAtMTAxLDcgKzEwMSw3IEBA IF9JTlNUQUxMX1NDSEVNRVMgPSB7CisgICAgIH0KKyAKKyAjIEZvciB0aGUgT1MtbmF0aXZlIHZl bnYgc2NoZW1lLCB3ZSBlc3NlbnRpYWxseSBwcm92aWRlIGFuIGFsaWFzOgorLWlmIG9zLm5hbWUg PT0gJ250JzoKKytpZiBvcy5uYW1lID09ICdudCcgYW5kIG5vdCBzeXMuX2lzX21pbmd3OgorICAg ICBfSU5TVEFMTF9TQ0hFTUVTWyd2ZW52J10gPSBfSU5TVEFMTF9TQ0hFTUVTWydudF92ZW52J10K KyBlbHNlOgorICAgICBfSU5TVEFMTF9TQ0hFTUVTWyd2ZW52J10gPSBfSU5TVEFMTF9TQ0hFTUVT Wydwb3NpeF92ZW52J10KK0BAIC0xMjUsNyArMTI1LDcgQEAgZGVmIF9nZXR1c2VyYmFzZSgpOgor ICAgICBkZWYgam9pbnVzZXIoKmFyZ3MpOgorICAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhwYW5k dXNlcihvcy5wYXRoLmpvaW4oKmFyZ3MpKQorIAorLSAgICBpZiBvcy5uYW1lID09ICJudCI6Cisr ICAgIGlmIG9zLm5hbWUgPT0gIm50IiBhbmQgbm90IHN5cy5faXNfbWluZ3c6CisgICAgICAgICBi YXNlID0gb3MuZW52aXJvbi5nZXQoIkFQUERBVEEiKSBvciAifiIKKyAgICAgICAgIHJldHVybiBq b2ludXNlcihiYXNlLCAgX2dldF9pbXBsZW1lbnRhdGlvbigpKQorIAorQEAgLTI4Nyw3ICsyODcs NyBAQCBkZWYgX2V4cGFuZF92YXJzKHNjaGVtZSwgdmFycyk6CisgCisgCisgZGVmIF9nZXRfcHJl ZmVycmVkX3NjaGVtZXMoKToKKy0gICAgaWYgb3MubmFtZSA9PSAnbnQnOgorKyAgICBpZiBvcy5u YW1lID09ICdudCcgYW5kIG5vdCBzeXMuX2lzX21pbmd3OgorICAgICAgICAgcmV0dXJuIHsKKyAg ICAgICAgICAgICAncHJlZml4JzogJ250JywKKyAgICAgICAgICAgICAnaG9tZSc6ICdwb3NpeF9o b21lJywKK0BAIC00NjcsNyArNDY3LDcgQEAgZGVmIHBhcnNlX2NvbmZpZ19oKGZwLCB2YXJzPU5v bmUpOgorIGRlZiBnZXRfY29uZmlnX2hfZmlsZW5hbWUoKToKKyAgICAgIiIiUmV0dXJuIHRoZSBw YXRoIG9mIHB5Y29uZmlnLmguIiIiCisgICAgIGlmIF9QWVRIT05fQlVJTEQ6CistICAgICAgICBp ZiBvcy5uYW1lID09ICJudCI6CisrICAgICAgICBpZiBvcy5uYW1lID09ICJudCIgYW5kIG5vdCBz eXMuX2lzX21pbmd3OgorICAgICAgICAgICAgIGluY19kaXIgPSBvcy5wYXRoLmpvaW4oX1BST0pF Q1RfQkFTRSwgJ1BDJykKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgaW5jX2RpciA9IF9Q Uk9KRUNUX0JBU0UKK0BAIC01MjAsNyArNTIwLDcgQEAgZGVmIF9pbml0X2NvbmZpZ192YXJzKCk6 CisgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgIGFiaWZsYWdzID0gJycKKyAK Ky0gICAgaWYgb3MubmFtZSA9PSAncG9zaXgnOgorKyAgICBpZiBvcy5uYW1lID09ICdwb3NpeCcg b3Igc3lzLl9pc19taW5ndzoKKyAgICAgICAgIF9pbml0X3Bvc2l4KF9DT05GSUdfVkFSUykKKyAg ICAgICAgICMgSWYgd2UgYXJlIGNyb3NzLWNvbXBpbGluZywgbG9hZCB0aGUgcHJlZml4ZXMgZnJv bSB0aGUgTWFrZWZpbGUgaW5zdGVhZC4KKyAgICAgICAgIGlmICdfUFlUSE9OX1BST0pFQ1RfQkFT RScgaW4gb3MuZW52aXJvbjoKK0BAIC01NTIsNyArNTUyLDcgQEAgZGVmIF9pbml0X2NvbmZpZ192 YXJzKCk6CisgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgIF9DT05GSUdfVkFS U1sncHlfdmVyc2lvbl9ub2RvdF9wbGF0J10gPSAnJworIAorLSAgICBpZiBvcy5uYW1lID09ICdu dCc6CisrICAgIGlmIG9zLm5hbWUgPT0gJ250JyBhbmQgbm90IHN5cy5faXNfbWluZ3c6CisgICAg ICAgICBfaW5pdF9ub25fcG9zaXgoX0NPTkZJR19WQVJTKQorICAgICAgICAgX0NPTkZJR19WQVJT WydWUEFUSCddID0gc3lzLl92cGF0aAorICAgICBpZiBfSEFTX1VTRVJfQkFTRToKK0BAIC01NjYs NyArNTY2LDcgQEAgZGVmIF9pbml0X2NvbmZpZ192YXJzKCk6CisgCisgICAgICMgQWx3YXlzIGNv bnZlcnQgc3JjZGlyIHRvIGFuIGFic29sdXRlIHBhdGgKKyAgICAgc3JjZGlyID0gX0NPTkZJR19W QVJTLmdldCgnc3JjZGlyJywgX1BST0pFQ1RfQkFTRSkKKy0gICAgaWYgb3MubmFtZSA9PSAncG9z aXgnOgorKyAgICBpZiBvcy5uYW1lID09ICdwb3NpeCcgb3Igc3lzLl9pc19taW5ndzoKKyAgICAg ICAgIGlmIF9QWVRIT05fQlVJTEQ6CisgICAgICAgICAgICAgIyBJZiBzcmNkaXIgaXMgYSByZWxh dGl2ZSBwYXRoICh0eXBpY2FsbHkgJy4nIG9yICcuLicpCisgICAgICAgICAgICAgIyB0aGVuIGl0 IHNob3VsZCBiZSBpbnRlcnByZXRlZCByZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5CgpkaWZmIC0t Z2l0IGEvMDAyMS1zeXNjb25maWctQ2hhbmdlLXRoZS1nZXRfcGxhdGZvcm0tbWV0aG9kLWluLXN5 c2NvbmZpLnBhdGNoIGIvMDAyMS1zeXNjb25maWctQ2hhbmdlLXRoZS1nZXRfcGxhdGZvcm0tbWV0 aG9kLWluLXN5c2NvbmZpLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu Ljg0MTk2ODkKLS0tIC9kZXYvbnVsbAorKysgYi8wMDIxLXN5c2NvbmZpZy1DaGFuZ2UtdGhlLWdl dF9wbGF0Zm9ybS1tZXRob2QtaW4tc3lzY29uZmkucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAorZGlm ZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTGliL3N5c2NvbmZpZy9fX2lu aXRfXy5weSBQeXRob24tMy4xNC43LW5ldy9MaWIvc3lzY29uZmlnL19faW5pdF9fLnB5CistLS0g UHl0aG9uLTMuMTQuNy9MaWIvc3lzY29uZmlnL19faW5pdF9fLnB5CTIwMjYtMDktMjIgMDk6MDY6 MzUuOTA4NzgzMzExICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3N5c2NvbmZpZy9f X2luaXRfXy5weQkyMDI2LTA5LTIyIDA5OjA2OjM1LjkxMzAzMzI0NCArMDIwMAorQEAgLTY0MCw2 ICs2NDAsNyBAQCBkZWYgZ2V0X2NvbmZpZ192YXIobmFtZSk6CisgICAgIHJldHVybiBnZXRfY29u ZmlnX3ZhcnMoKS5nZXQobmFtZSkKKyAKKyAKKysjIG1ha2Ugc3VyZSB0byBjaGFuZ2Ugc2l0ZS5f Z2V0X3BsYXRmb3JtKCkgd2hlbiBjaGFuZ2luZyB0aGlzIGZ1bmN0aW9uCisgZGVmIGdldF9wbGF0 Zm9ybSgpOgorICAgICAiIiJSZXR1cm4gYSBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBjdXJy ZW50IHBsYXRmb3JtLgorIAorQEAgLTY2Nyw2ICs2NjgsMjggQEAgZGVmIGdldF9wbGF0Zm9ybSgp OgorIAorICAgICBGb3Igb3RoZXIgbm9uLVBPU0lYIHBsYXRmb3JtcywgY3VycmVudGx5IGp1c3Qg cmV0dXJucyA6ZGF0YTpgc3lzLnBsYXRmb3JtYC4iIiIKKyAgICAgaWYgb3MubmFtZSA9PSAnbnQn OgorKyAgICAgICAgaWYgc3lzLl9pc19taW5ndzoKKysgICAgICAgICAgICBwbGF0Zm9ybSA9ICdt aW5ndycKKysgICAgICAgICAgICBpZiAnYW1kNjQnIGluIHN5cy52ZXJzaW9uLmxvd2VyKCk6Cisr ICAgICAgICAgICAgICAgIHBsYXRmb3JtICs9ICdfeDg2XzY0JworKyAgICAgICAgICAgIGVsaWYg J2FybTY0JyBpbiBzeXMudmVyc2lvbi5sb3dlcigpOgorKyAgICAgICAgICAgICAgICBwbGF0Zm9y bSArPSAnX2FhcmNoNjQnCisrICAgICAgICAgICAgZWxpZiAnYXJtJyBpbiBzeXMudmVyc2lvbi5s b3dlcigpOgorKyAgICAgICAgICAgICAgICBwbGF0Zm9ybSArPSAnX2FybXY3JworKyAgICAgICAg ICAgIGVsc2U6CisrICAgICAgICAgICAgICAgIHBsYXRmb3JtICs9ICdfaTY4NicKKysKKysgICAg ICAgICAgICBpZiAndWNydCcgaW4gc3lzLnZlcnNpb24ubG93ZXIoKToKKysgICAgICAgICAgICAg ICAgcGxhdGZvcm0gKz0gJ191Y3J0JworKyAgICAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAg ICAgIHBsYXRmb3JtICs9ICJfbXN2Y3J0IgorKworKyAgICAgICAgICAgIGlmICdjbGFuZycgaW4g c3lzLnZlcnNpb24ubG93ZXIoKToKKysgICAgICAgICAgICAgICAgcGxhdGZvcm0gKz0gIl9sbHZt IgorKyAgICAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgICAgIHBsYXRmb3JtICs9ICJfZ251 IgorKworKyAgICAgICAgICAgIHJldHVybiBwbGF0Zm9ybQorICAgICAgICAgaWYgJ2FtZDY0JyBp biBzeXMudmVyc2lvbi5sb3dlcigpOgorICAgICAgICAgICAgIHJldHVybiAnd2luLWFtZDY0Jwor ICAgICAgICAgaWYgJyhhcm0pJyBpbiBzeXMudmVyc2lvbi5sb3dlcigpOgoKZGlmZiAtLWdpdCBh LzAwMjItYnVpbGQtc2VtaS1uYXRpdmUtYnVpbGQtc3lzY29uZmlnLnBhdGNoIGIvMDAyMi1idWls ZC1zZW1pLW5hdGl2ZS1idWlsZC1zeXNjb25maWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMzA4NDc0ZgotLS0gL2Rldi9udWxsCisrKyBiLzAwMjItYnVpbGQtc2Vt aS1uYXRpdmUtYnVpbGQtc3lzY29uZmlnLnBhdGNoCkBAIC0wLDAgKzEsOTUgQEAKK2RpZmYgLXJ1 cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4x NC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2 LTA5LTIyIDA5OjA2OjM1LjMzMjQyMzA3OSArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2Nv bmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjM2LjIwMzE4NTY4OCArMDIwMAorQEAgLTk0Myw2 ICs5NDMsNTcgQEAgdGhlbgorICAgICAgICAgICAgIFtEZWZpbmUgdG8gaW5jbHVkZSBtYnN0YXRl X3QgZm9yIG1icnRvd2NdKQorIGZpCisgCisrIyBPbiAnc2VtaS1uYXRpdmUnIGJ1aWxkIHN5c3Rl bXMgKE1TWVMqL0N5Z3dpbiB0YXJnZXRpbmcgTWluR1ctdzY0KQorKyMgX3N5c2NvbmZpZ2RhdGEu cHkgd2lsbCBjb250YWluIHBhdGhzIHRoYXQgYXJlIGNvcnJlY3Qgb25seSBpbiB0aGUKKysjIGJ1 aWxkIGVudmlyb25tZW50LiBUaGlzIG1lYW5zIGV4dGVybmFsIG1vZHVsZXMgd2lsbCBmYWlsIHRv IGJ1aWxkCisrIyB3aXRob3V0IHNldHRpbmcgdXAgdGhlIHNhbWUgZW52IGFuZCBhbHNvIHRoYXQg dGhlIGJ1aWxkIG9mIFB5dGhvbgorKyMgaXRzZWxmIHdpbGwgZmFpbCBhcyB0aGUgcGF0aHMgYXJl IG5vdCBjb3JyZWN0IGZvciB0aGUgaG9zdCB0b29scy4KKysjCisrIyBUbyB3b3JrIGFyb3VuZCB0 aGVzZSBpc3N1ZXMgYSBzZXQgb2YgX2IyaCB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQ6CisrIyBwcmVm aXhfYjJoLCBzcmNkaXJfYjJoLCBhYnNfc3JjZGlyX2IyaAorKyMgYW5kIGFic19idWlsZGRpcl9i MmgKKysjIC4uIHdoZXJlIGIyaCBzdGFuZHMgZm9yIGJ1aWxkIHRvIGhvc3QuIHN5c2NvbmZpZy5w eSByZXBsYWNlcyBwYXRoCisrIyBwcmVmaXhlcyBtYXRjaGluZyB0aGUgbm9uLWIyaCB2ZXJzaW9u cyB3aXRoIHRoZSBiMmggZXF1aXZhbGVudHMuCisrIworKyMgKG5vdGUgdGhpcyBhc3N1bWVzIHRo ZSBob3N0IGNvbXBpbGVycyBhcmUgbmF0aXZlIGFuZCAqbm90KiBjcm9zcworKyMgIC0gaW4gdGhl ICdzZW1pLW5hdGl2ZScgc2NlbmFyaW8gb25seSB0aGF0IGlzLikKKysKKytBQ19ERUZVTihbQUJT X1BBVEhfSE9TVF0sCisrWyQxPSQoY2QgJCQyICYmIHB3ZCkKKysgIGNhc2UgJGJ1aWxkX29zIGlu CisrICAgIG1pbmd3KikKKysgICAgICBjYXNlICRob3N0X29zIGluCisrICAgICAgICBtaW5ndyop ICQxPSQoY2QgJCQyICYmIHB3ZCAtVykgOzsKKysgICAgICAgICopIDs7CisrICAgICAgZXNhYwor KyAgICAgIDs7CisrICAgIGN5Z3dpbiopCisrICAgICAgY2FzZSAkaG9zdF9vcyBpbgorKyAgICAg ICAgbWluZ3cqKSAkMT0kKGN5Z3BhdGggLXcgLW0gJCQyKSA7OworKyAgICAgICAgKikgOzsKKysg ICAgICBlc2FjCisrICAgICAgOzsKKysgIGVzYWMKKytBQ19TVUJTVChbJDFdKQorK10pCisrCisr QUNfTVNHX0NIRUNLSU5HKGFic29sdXRlIGhvc3QgbG9jYXRpb24gb2YgcHJlZml4KQorK0FCU19Q QVRIX0hPU1QoW3ByZWZpeF9iMmhdLFtwcmVmaXhdKQorK0FDX01TR19SRVNVTFQoWyRwcmVmaXhf YjJoXSkKKysKKytBQ19NU0dfQ0hFQ0tJTkcoYWJzb2x1dGUgaG9zdCBsb2NhdGlvbiBvZiBzcmNk aXIpCisrQUJTX1BBVEhfSE9TVChbc3JjZGlyX2IyaF0sW3NyY2Rpcl0pCisrQUNfTVNHX1JFU1VM VChbJHNyY2Rpcl9iMmhdKQorKworK0FDX01TR19DSEVDS0lORyhhYnNvbHV0ZSBob3N0IGxvY2F0 aW9uIG9mIGFic19zcmNkaXIpCisrQUJTX1BBVEhfSE9TVChbYWJzX3NyY2Rpcl9iMmhdLFtzcmNk aXJdKQorK0FDX01TR19SRVNVTFQoWyRhYnNfc3JjZGlyX2IyaF0pCisrCisrbXlfYnVpbGRkaXI9 LgorK0FDX01TR19DSEVDS0lORyhBYnNvbHV0ZSBob3N0IGxvY2F0aW9uIG9mIGFic19idWlsZGRp cikKKytBQlNfUEFUSF9IT1NUKFthYnNfYnVpbGRkaXJfYjJoXSxbbXlfYnVpbGRkaXJdKQorK0FD X01TR19SRVNVTFQoWyRhYnNfYnVpbGRkaXJfYjJoXSkKKysKKyBBQ19NU0dfQ0hFQ0tJTkcoW2Zv ciBwb3NpeG1vZHVsZSBuYW1lXSkKKyBBQ19TVUJTVChNT0RVTEVfUE9TSVhNT0RVTEVfTkFNRSkK KyBjYXNlICRob3N0IGluCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQu Ny9MaWIvc3lzY29uZmlnL19fbWFpbl9fLnB5IFB5dGhvbi0zLjE0LjctbmV3L0xpYi9zeXNjb25m aWcvX19tYWluX18ucHkKKy0tLSBQeXRob24tMy4xNC43L0xpYi9zeXNjb25maWcvX19tYWluX18u cHkJMjAyNi0wOS0yMiAwOTowNjozNS42MjA2MTU5NTEgKzAyMDAKKysrKyBQeXRob24tMy4xNC43 LW5ldy9MaWIvc3lzY29uZmlnL19fbWFpbl9fLnB5CTIwMjYtMDktMjIgMDk6MDY6MzYuMjAyMDQz NTY2ICswMjAwCitAQCAtMTQ5LDYgKzE0OSwxNCBAQCBkZWYgX3BhcnNlX21ha2VmaWxlKGZpbGVu YW1lLCB2YXJzPU5vbmUsCisgICAgICAgICBpZiBpc2luc3RhbmNlKHYsIHN0cik6CisgICAgICAg ICAgICAgZG9uZVtrXSA9IHYuc3RyaXAoKQorIAorKyAgICAjIGFueSBrZXlzIHRoYXQgaGF2ZSBv bmUgd2l0aCB0aGUgc2FtZSBuYW1lIHN1ZmZpeGVkIHdpdGggX2IyaAorKyAgICAjIG5lZWQgdG8g YmUgcmVwbGFjZWQgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIF9iMmgga2V5LgorKyAgICAjIFRoaXMg Y29udmVydHMgZnJvbSBNU1lTKi9DeWd3aW4gcGF0aHMgdG8gV2luZG93cyBwYXRocy4KKysgICAg Zm9yIGssIHYgaW4gZGljdChkb25lKS5pdGVtcygpOgorKyAgICAgICAgaWYgaXNpbnN0YW5jZShr LCBzdHIpOgorKyAgICAgICAgICAgIGlmIGsuZW5kc3dpdGgoIl9iMmgiKToKKysgICAgICAgICAg ICAgICAgZG9uZVtrWzotNF1dPXYKKysgCisgICAgICMgc2F2ZSB0aGUgcmVzdWx0cyBpbiB0aGUg Z2xvYmFsIGRpY3Rpb25hcnkKKyAgICAgdmFycy51cGRhdGUoZG9uZSkKKyAgICAgcmV0dXJuIHZh cnMKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01ha2VmaWxlLnBy ZS5pbiBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4KKy0tLSBQeXRob24tMy4xNC43 L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjM0LjczNjAwOTkzNCArMDIwMAorKysr IFB5dGhvbi0zLjE0LjctbmV3L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjM2LjIw MjQ0Mzc1MyArMDIwMAorQEAgLTE1Myw2ICsxNTMsMTIgQEAgaG9zdF9leGVjX3ByZWZpeD0gCUBo b3N0X2V4ZWNfcHJlZml4QAorICMgSW5zdGFsbCBwcmVmaXggZm9yIGRhdGEgZmlsZXMKKyBkYXRh cm9vdGRpcj0gICAgQGRhdGFyb290ZGlyQAorIAorKyMgTG9jYXRpb25zIG5lZWRlZCBmb3Igc2Vt aS1uYXRpdmUgZml4dXAgb2Ygc3lzY29uZmlnLgorK3NyY2Rpcl9iMmg9CQlAc3JjZGlyX2IyaEAK KythYnNfc3JjZGlyX2IyaD0JCUBhYnNfc3JjZGlyX2IyaEAKKythYnNfYnVpbGRkaXJfYjJoPQlA YWJzX2J1aWxkZGlyX2IyaEAKKytwcmVmaXhfYjJoPQkJQHByZWZpeF9iMmhACisrCisgIyBFeHBh bmRlZCBkaXJlY3RvcmllcworIEJJTkRJUj0JCUBiaW5kaXJACisgTElCRElSPQkJQGxpYmRpckAK CmRpZmYgLS1naXQgYS8wMDIzLWN0eXBlcy1BZGQtc3VwcG9ydC1mb3Itc3RkY2FsbC13aXRob3V0 LXVuZGVyc2NvcmUucGF0Y2ggYi8wMDIzLWN0eXBlcy1BZGQtc3VwcG9ydC1mb3Itc3RkY2FsbC13 aXRob3V0LXVuZGVyc2NvcmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNWVmMjUwZQotLS0gL2Rldi9udWxsCisrKyBiLzAwMjMtY3R5cGVzLUFkZC1zdXBwb3J0LWZv ci1zdGRjYWxsLXdpdGhvdXQtdW5kZXJzY29yZS5wYXRjaApAQCAtMCwwICsxLDM0IEBACitkaWZm IC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL19jdHlwZXMvX2N0 eXBlcy5jIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvX2N0eXBlcy9fY3R5cGVzLmMKKy0tLSBQ eXRob24tMy4xNC43L01vZHVsZXMvX2N0eXBlcy9fY3R5cGVzLmMJMjAyNi0wOC0wNSAxMjoyOTo0 OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL19jdHlwZXMv X2N0eXBlcy5jCTIwMjYtMDktMjIgMDk6MDY6MzYuNDkzMzQyMTE5ICswMjAwCitAQCAtMzg3MSwx MSArMzg3MSwzMCBAQCBzdGF0aWMgUFBST0MgRmluZEFkZHJlc3Modm9pZCAqaGFuZGxlLCBjCisg ICAgIG1hbmdsZWRfbmFtZSA9IGFsbG9jYShzdHJsZW4obmFtZSkgKyAxICsgMSArIDEgKyAzKTsg LyogXDAgXyBAICVkICovCisgICAgIGlmICghbWFuZ2xlZF9uYW1lKQorICAgICAgICAgcmV0dXJu IE5VTEw7CisrICAgIC8qIElzc3VlOiBmb3Igc3RkY2FsbCBkZWNvcmF0ZWQgZXhwb3J0IGZ1bmN0 aW9ucyBNU1ZDIGNvbXBpbGVyIGFkZHMKKysgICAgICogdW5kZXJzY29yZSwgYnV0IEdDQyBjb21w aWxlciBjcmVhdGUgdGhlbSB3aXRob3V0LiBUaGlzIGlzCisrICAgICAqIHZpc2libGUgYnkgZXhh bXBsZSBmb3IgX2N0eXBlc190ZXN0LnB5ZCBtb2R1bGUuCisrICAgICAqIEFzIHdlbGwgZnVuY3Rp b25zIGZyb20gc3lzdGVtIGxpYnJhcmllcyBhcmUgd2l0aG91dCB1bmRlcnNjb3JlLgorKyAgICAg KiBTb2x1dGlvbnM6CisrICAgICAqIC0gSWYgYSBweXRob24gbW9kdWxlIGlzIGJ1aWxkIHdpdGgg Z2NjIG9wdGlvbiAtLWFkZC1zdGRjYWxsLWFsaWFzCisrICAgICAqIHRoZSBtb2R1bGUgd2lsbCBj b250YWluIFhYWCBhcyBhbGlhcyBmb3IgZnVuY3Rpb24gWFhYQCBhcyByZXN1bHQKKysgICAgICog Zmlyc3Qgc2VhcmNoIGluIHRoaXMgbWV0aG9kIHdpbGwgc3VjY2VlZC4KKysgICAgICogLSBEaXN0 dXRpbCBtYXkgdXNlIGNvbXBpbGVyIHRvIGNyZWF0ZSBkZWYtZmlsZSwgdG8gbW9kaWZ5IGl0IGFz CisrICAgICAqIGFkZCB1bmRlcnNjb3JlIGFsaWFzIGFuZCB3aXRoIG5ldyBkZWYgZmlsZSB0byBj cmVhdGUgbW9kdWxlLgorKyAgICAgKiAtIE9yIG1heSBiZSBqdXN0IHRvIHNlYXJjaCBmb3IgZnVu Y3Rpb24gd2l0aG91dCB1bmRlcnNjb3JlLgorKyAgICAgKi8KKyAgICAgZm9yIChpID0gMDsgaSA8 IDMyOyArK2kpIHsKKyAgICAgICAgIHNwcmludGYobWFuZ2xlZF9uYW1lLCAiXyVzQCVkIiwgbmFt ZSwgaSo0KTsKKyAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgIGFkZHJl c3MgPSAoUFBST0MpR2V0UHJvY0FkZHJlc3MoaGFuZGxlLCBtYW5nbGVkX25hbWUpOworICAgICAg ICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKysgICAgICAgIGlmIChhZGRyZXNzKQorKyAgICAgICAg ICAgIHJldHVybiBhZGRyZXNzOworKyAgICAgICAgLyogc2VhcmNoIGZvciBmdW5jdGlvbiB3aXRo b3V0IHVuZGVyc2NvcmUgYXMgd2VlbCAqLworKyAgICAgICAgc3ByaW50ZihtYW5nbGVkX25hbWUs ICIlc0AlZCIsIG5hbWUsIGkqNCk7CisrICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisr ICAgICAgICBhZGRyZXNzID0gKFBQUk9DKUdldFByb2NBZGRyZXNzKGhhbmRsZSwgbWFuZ2xlZF9u YW1lKTsKKysgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgICAgICBpZiAoYWRkcmVz cykKKyAgICAgICAgICAgICByZXR1cm4gYWRkcmVzczsKKyAgICAgfQoKZGlmZiAtLWdpdCBhLzAw MjQtY3R5cGVzLWFkZC1zdXBwb3ItZm9yLWN0eXBlcy5weXRob25hcGktdW5kZXItTUlOR1cucGF0 Y2ggYi8wMDI0LWN0eXBlcy1hZGQtc3VwcG9yLWZvci1jdHlwZXMucHl0aG9uYXBpLXVuZGVyLU1J TkdXLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5ZjY2OTcKLS0t IC9kZXYvbnVsbAorKysgYi8wMDI0LWN0eXBlcy1hZGQtc3VwcG9yLWZvci1jdHlwZXMucHl0aG9u YXBpLXVuZGVyLU1JTkdXLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKK2RpZmYgLXJ1cE4gLS1uby1k ZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L0xpYi9jdHlwZXMvX19pbml0X18ucHkgUHl0aG9uLTMu MTQuNy1uZXcvTGliL2N0eXBlcy9fX2luaXRfXy5weQorLS0tIFB5dGhvbi0zLjE0LjcvTGliL2N0 eXBlcy9fX2luaXRfXy5weQkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysr IFB5dGhvbi0zLjE0LjctbmV3L0xpYi9jdHlwZXMvX19pbml0X18ucHkJMjAyNi0wOS0yMiAwOTow NjozNi43ODEzMjIwMzUgKzAyMDAKK0BAIC01NTgsNyArNTU4LDkgQEAgY2xhc3MgTGlicmFyeUxv YWRlcihvYmplY3QpOgorIGNkbGwgPSBMaWJyYXJ5TG9hZGVyKENETEwpCisgcHlkbGwgPSBMaWJy YXJ5TG9hZGVyKFB5RExMKQorIAorLWlmIF9vcy5uYW1lID09ICJudCI6CisraWYgX29zLm5hbWUg PT0gIm50IiBhbmQgX3N5cy5faXNfbWluZ3c6CisrICAgIHB5dGhvbmFwaSA9IFB5RExMKCJsaWJw eXRob24lZC4lZCVzLmRsbCIgJSAoX3N5cy52ZXJzaW9uX2luZm9bOjJdICsgKF9zeXMuYWJpZmxh Z3MsKSksIE5vbmUpCisrZWxpZiBfb3MubmFtZSA9PSAibnQiOgorICAgICBweXRob25hcGkgPSBQ eURMTCgicHl0aG9uIGRsbCIsIE5vbmUsIF9zeXMuZGxsaGFuZGxlKQorIGVsaWYgX3N5cy5wbGF0 Zm9ybSBpbiBbImFuZHJvaWQiLCAiY3lnd2luIl06CisgICAgICMgVGhlc2UgYXJlIFVuaXgtbGlr ZSBwbGF0Zm9ybXMgd2hpY2ggdXNlIGEgZHluYW1pY2FsbHktbGlua2VkIGxpYnB5dGhvbi4KCmRp ZmYgLS1naXQgYS8wMDI1LWN0eXBlcy1maW5kX2xpYnJhcnktYy1zaG91bGQtcmV0dXJuLU5vbmUt d2l0aC11Y3J0LnBhdGNoIGIvMDAyNS1jdHlwZXMtZmluZF9saWJyYXJ5LWMtc2hvdWxkLXJldHVy bi1Ob25lLXdpdGgtdWNydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mYjNjMTIyCi0tLSAvZGV2L251bGwKKysrIGIvMDAyNS1jdHlwZXMtZmluZF9saWJyYXJ5LWMt c2hvdWxkLXJldHVybi1Ob25lLXdpdGgtdWNydC5wYXRjaApAQCAtMCwwICsxLDE0IEBACitkaWZm IC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvY3R5cGVzL3V0aWwucHkg UHl0aG9uLTMuMTQuNy1uZXcvTGliL2N0eXBlcy91dGlsLnB5CistLS0gUHl0aG9uLTMuMTQuNy9M aWIvY3R5cGVzL3V0aWwucHkJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysr KyBQeXRob24tMy4xNC43LW5ldy9MaWIvY3R5cGVzL3V0aWwucHkJMjAyNi0wOS0yMiAwOTowNjoz Ny4wNzI5Nzg2MjggKzAyMDAKK0BAIC01NCw2ICs1NCwxMCBAQCBpZiBvcy5uYW1lID09ICJudCI6 CisgCisgICAgIGRlZiBmaW5kX2xpYnJhcnkobmFtZSk6CisgICAgICAgICBpZiBuYW1lIGluICgn YycsICdtJyk6CisrICAgICAgICAgICAgaWYgc3lzLl9pc19taW5ndzoKKysgICAgICAgICAgICAg ICAgaWYgc3lzLl9pc19taW5nd191Y3J0OgorKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5v bmUKKysgICAgICAgICAgICAgICAgcmV0dXJuICdtc3ZjcnQuZGxsJworICAgICAgICAgICAgIHJl dHVybiBmaW5kX21zdmNydCgpCisgICAgICAgICAjIFNlZSBNU0ROIGZvciB0aGUgUkVBTCBzZWFy Y2ggb3JkZXIuCisgICAgICAgICBmb3IgZGlyZWN0b3J5IGluIG9zLmVudmlyb25bJ1BBVEgnXS5z cGxpdChvcy5wYXRoc2VwKToKCmRpZmYgLS1naXQgYS8wMDI2LXNpdGUtQ3VzdG9taXplLWZvci1N SU5HVy5wYXRjaCBiLzAwMjYtc2l0ZS1DdXN0b21pemUtZm9yLU1JTkdXLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MDU0YzgKLS0tIC9kZXYvbnVsbAorKysgYi8w MDI2LXNpdGUtQ3VzdG9taXplLWZvci1NSU5HVy5wYXRjaApAQCAtMCwwICsxLDM5IEBACitkaWZm IC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvc2l0ZS5weSBQeXRob24t My4xNC43LW5ldy9MaWIvc2l0ZS5weQorLS0tIFB5dGhvbi0zLjE0LjcvTGliL3NpdGUucHkJMjAy Ni0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9M aWIvc2l0ZS5weQkyMDI2LTA5LTIyIDA5OjA2OjM3LjM2MzA1NDA1MSArMDIwMAorQEAgLTMwNSw3 ICszMDUsNyBAQCBkZWYgX2dldHVzZXJiYXNlKCk6CisgICAgIGRlZiBqb2ludXNlcigqYXJncyk6 CisgICAgICAgICByZXR1cm4gb3MucGF0aC5leHBhbmR1c2VyKG9zLnBhdGguam9pbigqYXJncykp CisgCistICAgIGlmIG9zLm5hbWUgPT0gIm50IjoKKysgICAgaWYgb3MubmFtZSA9PSAibnQiIGFu ZCBub3Qgc3lzLl9pc19taW5ndzoKKyAgICAgICAgIGJhc2UgPSBvcy5lbnZpcm9uLmdldCgiQVBQ REFUQSIpIG9yICJ+IgorICAgICAgICAgcmV0dXJuIGpvaW51c2VyKGJhc2UsIF9nZXRfaW1wbGVt ZW50YXRpb24oKSkKKyAKK0BAIC0zMjYsNyArMzI2LDcgQEAgZGVmIF9nZXRfcGF0aCh1c2VyYmFz ZSk6CisgCisgICAgIGltcGxlbWVudGF0aW9uID0gX2dldF9pbXBsZW1lbnRhdGlvbigpCisgICAg IGltcGxlbWVudGF0aW9uX2xvd2VyID0gaW1wbGVtZW50YXRpb24ubG93ZXIoKQorLSAgICBpZiBv cy5uYW1lID09ICdudCc6CisrICAgIGlmIG9zLm5hbWUgPT0gJ250JyBhbmQgbm90IHN5cy5faXNf bWluZ3c6CisgICAgICAgICB2ZXJfbm9kb3QgPSBzeXMud2ludmVyLnJlcGxhY2UoJy4nLCAnJykK KyAgICAgICAgIHJldHVybiBmJ3t1c2VyYmFzZX1cXHtpbXBsZW1lbnRhdGlvbn17dmVyX25vZG90 fVxcc2l0ZS1wYWNrYWdlcycKKyAKK0BAIC00MDUsNyArNDA1LDcgQEAgZGVmIGdldHNpdGVwYWNr YWdlcyhwcmVmaXhlcz1Ob25lKToKKyAgICAgICAgICAgICBhYmlfdGhyZWFkID0gJ3QnCisgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgIGFiaV90aHJlYWQgPSAnJworLSAgICAgICAgaWYgb3Mu c2VwID09ICcvJzoKKysgICAgICAgIGlmIG9zLm5hbWUgPT0gJ3Bvc2l4JyBvciBzeXMuX2lzX21p bmd3OgorICAgICAgICAgICAgIGxpYmRpcnMgPSBbc3lzLnBsYXRsaWJkaXJdCisgICAgICAgICAg ICAgaWYgc3lzLnBsYXRsaWJkaXIgIT0gImxpYiI6CisgICAgICAgICAgICAgICAgIGxpYmRpcnMu YXBwZW5kKCJsaWIiKQorQEAgLTQzNiw3ICs0MzYsNyBAQCBkZWYgc2V0cXVpdCgpOgorICAgICBU aGUgcmVwciBvZiBlYWNoIG9iamVjdCBjb250YWlucyBhIGhpbnQgYXQgaG93IGl0IHdvcmtzLgor IAorICAgICAiIiIKKy0gICAgaWYgb3Muc2VwID09ICdcXCc6CisrICAgIGlmIHN5cy5wbGF0Zm9y bSA9PSAnd2luMzInOgorICAgICAgICAgZW9mID0gJ0N0cmwtWiBwbHVzIFJldHVybicKKyAgICAg ZWxzZToKKyAgICAgICAgIGVvZiA9ICdDdHJsLUQgKGkuZS4gRU9GKScKCmRpZmYgLS1naXQgYS8w MDI3LXNpdGUtQ2hhbmdlLXVzZXItc2l0ZS1wYWNrYWdlcy1wYXRoLXRvLWluY2x1ZGUtdGhlLWUu cGF0Y2ggYi8wMDI3LXNpdGUtQ2hhbmdlLXVzZXItc2l0ZS1wYWNrYWdlcy1wYXRoLXRvLWluY2x1 ZGUtdGhlLWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU5YjQy YwotLS0gL2Rldi9udWxsCisrKyBiLzAwMjctc2l0ZS1DaGFuZ2UtdXNlci1zaXRlLXBhY2thZ2Vz LXBhdGgtdG8taW5jbHVkZS10aGUtZS5wYXRjaApAQCAtMCwwICsxLDc5IEBACitkaWZmIC1ydXBO IC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvc2l0ZS5weSBQeXRob24tMy4xNC43 LW5ldy9MaWIvc2l0ZS5weQorLS0tIFB5dGhvbi0zLjE0LjcvTGliL3NpdGUucHkJMjAyNi0wOS0y MiAwOTowNjozNy42NDU1NDQ5NDIgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9MaWIvc2l0 ZS5weQkyMDI2LTA5LTIyIDA5OjA2OjM3LjY0OTUzNDEwNSArMDIwMAorQEAgLTMxNSw2ICszMTUs MzIgQEAgZGVmIF9nZXR1c2VyYmFzZSgpOgorIAorICAgICByZXR1cm4gam9pbnVzZXIoIn4iLCAi LmxvY2FsIikKKyAKKysjIENvcHkgb2Ygc3lzY29uZmlnLmdldF9wbGF0Zm9ybSgpIGJ1dCBvbmx5 IGZvciBNaW5HVworK2RlZiBfZ2V0X3BsYXRmb3JtKCk6CisrICAgIGlmIG9zLm5hbWUgPT0gJ250 JzoKKysgICAgICAgIGlmIHN5cy5faXNfbWluZ3c6CisrICAgICAgICAgICAgcGxhdGZvcm0gPSAn bWluZ3cnCisrICAgICAgICAgICAgaWYgJ2FtZDY0JyBpbiBzeXMudmVyc2lvbi5sb3dlcigpOgor KyAgICAgICAgICAgICAgICBwbGF0Zm9ybSArPSAnX3g4Nl82NCcKKysgICAgICAgICAgICBlbGlm ICdhcm02NCcgaW4gc3lzLnZlcnNpb24ubG93ZXIoKToKKysgICAgICAgICAgICAgICAgcGxhdGZv cm0gKz0gJ19hYXJjaDY0JworKyAgICAgICAgICAgIGVsaWYgJ2FybScgaW4gc3lzLnZlcnNpb24u bG93ZXIoKToKKysgICAgICAgICAgICAgICAgcGxhdGZvcm0gKz0gJ19hcm12NycKKysgICAgICAg ICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBwbGF0Zm9ybSArPSAnX2k2ODYnCisrCisrICAg ICAgICAgICAgaWYgJ3VjcnQnIGluIHN5cy52ZXJzaW9uLmxvd2VyKCk6CisrICAgICAgICAgICAg ICAgIHBsYXRmb3JtICs9ICdfdWNydCcKKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAg ICAgICBwbGF0Zm9ybSArPSAiX21zdmNydCIKKysKKysgICAgICAgICAgICBpZiAnY2xhbmcnIGlu IHN5cy52ZXJzaW9uLmxvd2VyKCk6CisrICAgICAgICAgICAgICAgIHBsYXRmb3JtICs9ICJfbGx2 bSIKKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBwbGF0Zm9ybSArPSAiX2du dSIKKysKKysgICAgICAgICAgICByZXR1cm4gcGxhdGZvcm0KKysgICAgcmV0dXJuIHN5cy5wbGF0 Zm9ybQorIAorICMgU2FtZSB0byBzeXNjb25maWcuZ2V0X3BhdGgoJ3B1cmVsaWInLCBvcy5uYW1l KydfdXNlcicpCisgZGVmIF9nZXRfcGF0aCh1c2VyYmFzZSk6CitAQCAtMzI2LDcgKzM1MiwxMCBA QCBkZWYgX2dldF9wYXRoKHVzZXJiYXNlKToKKyAKKyAgICAgaW1wbGVtZW50YXRpb24gPSBfZ2V0 X2ltcGxlbWVudGF0aW9uKCkKKyAgICAgaW1wbGVtZW50YXRpb25fbG93ZXIgPSBpbXBsZW1lbnRh dGlvbi5sb3dlcigpCistICAgIGlmIG9zLm5hbWUgPT0gJ250JyBhbmQgbm90IHN5cy5faXNfbWlu Z3c6CisrICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKKysgICAgICAgIGlmIHN5cy5faXNfbWluZ3c6 CisrICAgICAgICAgICAgcmV0dXJuIGYne3VzZXJiYXNlfS9saWIve2ltcGxlbWVudGF0aW9uX2xv d2VyfXt2ZXJzaW9uWzBdfS57dmVyc2lvblsxXX0te19nZXRfcGxhdGZvcm0oKX17YWJpX3RocmVh ZH0vc2l0ZS1wYWNrYWdlcycKKysKKyAgICAgICAgIHZlcl9ub2RvdCA9IHN5cy53aW52ZXIucmVw bGFjZSgnLicsICcnKQorICAgICAgICAgcmV0dXJuIGYne3VzZXJiYXNlfVxce2ltcGxlbWVudGF0 aW9ufXt2ZXJfbm9kb3R9XFxzaXRlLXBhY2thZ2VzJworIAorZGlmZiAtcnVwTiAtLW5vLWRlcmVm ZXJlbmNlIFB5dGhvbi0zLjE0LjcvTGliL3N5c2NvbmZpZy9fX2luaXRfXy5weSBQeXRob24tMy4x NC43LW5ldy9MaWIvc3lzY29uZmlnL19faW5pdF9fLnB5CistLS0gUHl0aG9uLTMuMTQuNy9MaWIv c3lzY29uZmlnL19faW5pdF9fLnB5CTIwMjYtMDktMjIgMDk6MDY6MzYuMTk4MjMwMTA2ICswMjAw CisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3N5c2NvbmZpZy9fX2luaXRfXy5weQkyMDI2LTA5 LTIyIDA5OjA2OjM3LjY0OTgwMDI4NSArMDIwMAorQEAgLTE1MCwxMSArMTUwLDExIEBAIGlmIF9I QVNfVVNFUl9CQVNFOgorICAgICAgICAgICAgICdkYXRhJzogJ3t1c2VyYmFzZX0nLAorICAgICAg ICAgICAgIH0sCisgICAgICAgICAncG9zaXhfdXNlcic6IHsKKy0gICAgICAgICAgICAnc3RkbGli JzogJ3t1c2VyYmFzZX0ve3BsYXRsaWJkaXJ9L3tpbXBsZW1lbnRhdGlvbl9sb3dlcn17cHlfdmVy c2lvbl9zaG9ydH17YWJpX3RocmVhZH0nLAorLSAgICAgICAgICAgICdwbGF0c3RkbGliJzogJ3t1 c2VyYmFzZX0ve3BsYXRsaWJkaXJ9L3tpbXBsZW1lbnRhdGlvbl9sb3dlcn17cHlfdmVyc2lvbl9z aG9ydH17YWJpX3RocmVhZH0nLAorLSAgICAgICAgICAgICdwdXJlbGliJzogJ3t1c2VyYmFzZX0v bGliL3tpbXBsZW1lbnRhdGlvbl9sb3dlcn17cHlfdmVyc2lvbl9zaG9ydH17YWJpX3RocmVhZH0v c2l0ZS1wYWNrYWdlcycsCistICAgICAgICAgICAgJ3BsYXRsaWInOiAne3VzZXJiYXNlfS9saWIv e2ltcGxlbWVudGF0aW9uX2xvd2VyfXtweV92ZXJzaW9uX3Nob3J0fXthYmlfdGhyZWFkfS9zaXRl LXBhY2thZ2VzJywKKy0gICAgICAgICAgICAnaW5jbHVkZSc6ICd7dXNlcmJhc2V9L2luY2x1ZGUv e2ltcGxlbWVudGF0aW9uX2xvd2VyfXtweV92ZXJzaW9uX3Nob3J0fXthYmlfdGhyZWFkfScsCisr ICAgICAgICAgICAgJ3N0ZGxpYic6ICd7dXNlcmJhc2V9L3twbGF0bGliZGlyfS97aW1wbGVtZW50 YXRpb25fbG93ZXJ9e3B5X3ZlcnNpb25fc2hvcnRfcGxhdH17YWJpX3RocmVhZH0nLAorKyAgICAg ICAgICAgICdwbGF0c3RkbGliJzogJ3t1c2VyYmFzZX0ve3BsYXRsaWJkaXJ9L3tpbXBsZW1lbnRh dGlvbl9sb3dlcn17cHlfdmVyc2lvbl9zaG9ydF9wbGF0fXthYmlfdGhyZWFkfScsCisrICAgICAg ICAgICAgJ3B1cmVsaWInOiAne3VzZXJiYXNlfS9saWIve2ltcGxlbWVudGF0aW9uX2xvd2VyfXtw eV92ZXJzaW9uX3Nob3J0X3BsYXR9e2FiaV90aHJlYWR9L3NpdGUtcGFja2FnZXMnLAorKyAgICAg ICAgICAgICdwbGF0bGliJzogJ3t1c2VyYmFzZX0vbGliL3tpbXBsZW1lbnRhdGlvbl9sb3dlcn17 cHlfdmVyc2lvbl9zaG9ydF9wbGF0fXthYmlfdGhyZWFkfS9zaXRlLXBhY2thZ2VzJywKKysgICAg ICAgICAgICAnaW5jbHVkZSc6ICd7dXNlcmJhc2V9L2luY2x1ZGUve2ltcGxlbWVudGF0aW9uX2xv d2VyfXtweV92ZXJzaW9uX3Nob3J0X3BsYXR9e2FiaV90aHJlYWR9JywKKyAgICAgICAgICAgICAn c2NyaXB0cyc6ICd7dXNlcmJhc2V9L2JpbicsCisgICAgICAgICAgICAgJ2RhdGEnOiAne3VzZXJi YXNlfScsCisgICAgICAgICAgICAgfSwKK0BAIC01NTEsNiArNTUxLDEwIEBAIGRlZiBfaW5pdF9j b25maWdfdmFycygpOgorICAgICAgICAgX0NPTkZJR19WQVJTWydweV92ZXJzaW9uX25vZG90X3Bs YXQnXSA9IHN5cy53aW52ZXIucmVwbGFjZSgnLicsICcnKQorICAgICBleGNlcHQgQXR0cmlidXRl RXJyb3I6CisgICAgICAgICBfQ09ORklHX1ZBUlNbJ3B5X3ZlcnNpb25fbm9kb3RfcGxhdCddID0g JycKKysgICAgaWYgb3MubmFtZSA9PSAnbnQnIGFuZCBzeXMuX2lzX21pbmd3OgorKyAgICAgICAg X0NPTkZJR19WQVJTWydweV92ZXJzaW9uX3Nob3J0X3BsYXQnXSA9IGYne19QWV9WRVJTSU9OX1NI T1JUfS17Z2V0X3BsYXRmb3JtKCl9JworKyAgICBlbHNlOgorKyAgICAgICAgX0NPTkZJR19WQVJT WydweV92ZXJzaW9uX3Nob3J0X3BsYXQnXSA9IF9QWV9WRVJTSU9OX1NIT1JUCisgCisgICAgIGlm IG9zLm5hbWUgPT0gJ250JyBhbmQgbm90IHN5cy5faXNfbWluZ3c6CisgICAgICAgICBfaW5pdF9u b25fcG9zaXgoX0NPTkZJR19WQVJTKQoKZGlmZiAtLWdpdCBhLzAwMjgtcHl0aG9uLWNvbmZpZy1v dXRwdXQtV2luZG93cy1wYXRocy1mb3ItdGhlLXNoZWxsLXZhci5wYXRjaCBiLzAwMjgtcHl0aG9u LWNvbmZpZy1vdXRwdXQtV2luZG93cy1wYXRocy1mb3ItdGhlLXNoZWxsLXZhci5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWUwY2IxCi0tLSAvZGV2L251bGwKKysr IGIvMDAyOC1weXRob24tY29uZmlnLW91dHB1dC1XaW5kb3dzLXBhdGhzLWZvci10aGUtc2hlbGwt dmFyLnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQ eXRob24tMy4xNC43L01pc2MvcHl0aG9uLWNvbmZpZy5zaC5pbiBQeXRob24tMy4xNC43LW5ldy9N aXNjL3B5dGhvbi1jb25maWcuc2guaW4KKy0tLSBQeXRob24tMy4xNC43L01pc2MvcHl0aG9uLWNv bmZpZy5zaC5pbgkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhv bi0zLjE0LjctbmV3L01pc2MvcHl0aG9uLWNvbmZpZy5zaC5pbgkyMDI2LTA5LTIyIDA5OjA2OjM3 LjkzNzYxMjkyMyArMDIwMAorQEAgLTI3LDYgKzI3LDEyIEBAIGluc3RhbGxlZF9wcmVmaXggKCkK KyAgICAgICAgICAgUkVTVUxUPSQocmVhZGxpbmsgLWYgIiRSRVNVTFQiKQorICAgICAgICAgZmkK KyAgICAgZmkKKysgICAgIyBTaW5jZSB3ZSBkb24ndCBrbm93IHdoZXJlIHRoZSBvdXRwdXQgZnJv bSB0aGlzIHNjcmlwdCB3aWxsIGVuZCB1cAorKyAgICAjIHdlIGtlZXAgYWxsIHBhdGhzIGluIFdp bmRvd3MtbGFuZCBzaW5jZSBNU1lTMiBjYW4gaGFuZGxlIHRoYXQKKysgICAgIyB3aGlsZSBuYXRp dmUgdG9vbHMgY2FuJ3QgaGFuZGxlIHBhdGhzIGluIE1TWVMyLWxhbmQuCisrICAgIGlmIFsgIiRP U1RZUEUiID0gImN5Z3dpbiIgXSB8fCBbICIkT1NUWVBFIiA9ICJtc3lzIiBdIDsgdGhlbgorKyAg ICAgICAgUkVTVUxUPSQoY2QgIiRSRVNVTFQiICYmIHB3ZCAtVykKKysgICAgZmkKKyAgICAgZWNo byAkUkVTVUxUCisgfQorIAoKZGlmZiAtLWdpdCBhLzAwMjktcHl0aG9uLWNvbmZpZy11c2UtdGhl LVB5dGhvbi12YXJpYW50LW9mLXB5dGhvbi1jb25maS5wYXRjaCBiLzAwMjktcHl0aG9uLWNvbmZp Zy11c2UtdGhlLVB5dGhvbi12YXJpYW50LW9mLXB5dGhvbi1jb25maS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWUzZDgzCi0tLSAvZGV2L251bGwKKysrIGIvMDAy OS1weXRob24tY29uZmlnLXVzZS10aGUtUHl0aG9uLXZhcmlhbnQtb2YtcHl0aG9uLWNvbmZpLnBh dGNoCkBAIC0wLDAgKzEsMTQgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24t My4xNC43L01ha2VmaWxlLnByZS5pbiBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4K Ky0tLSBQeXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjM2LjQ4 OTc1MTQ4NiArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01ha2VmaWxlLnByZS5pbgkyMDI2 LTA5LTIyIDA5OjA2OjM4LjIyOTIyMTA1OSArMDIwMAorQEAgLTI4NTcsNiArMjg1NywxMCBAQCBw eXRob24tY29uZmlnOiAkKHNyY2RpcikvTWlzYy9weXRob24tY29uCisgCUBpZiB0ZXN0IGB1bmFt ZSAtc2AgPSBEYXJ3aW47IHRoZW4gXAorIAkJY3AgcHl0aG9uLWNvbmZpZy5weSBweXRob24tY29u ZmlnOyBcCisgCWZpCisrCUAgIyBPbiBXaW5kb3dzLCB1c2UgdGhlIHB5dGhvbiB2ZXJzaW9uIG9m IHRoZSBzY3JpcHQgc28gbm8gYmFzaCBpcyByZXF1aXJlZAorKwlAaWYgdGVzdCAiJChNQUNIREVQ KSIgPSAid2luMzIiOyB0aGVuIFwKKysJCWNwIHB5dGhvbi1jb25maWcucHkgcHl0aG9uLWNvbmZp ZzsgXAorKwlmaQorIAorICMgbWFjT1MnIG1ha2Ugc2VlbXMgdG8gaWdub3JlIGEgZGVwZW5kZW5j eSBvbiBhCisgIyAiJChCVUlMRF9TQ1JJUFRTX0RJUik6ICQoTUtESVJfUCkgJEAiIHJ1bGUuCgpk aWZmIC0tZ2l0IGEvMDAzMC1taW5ndy1wcmVmZXItdW5peC1zZXAtaWYtTVNZU1RFTS1lbnZpcm9u bWVudC12YXJpYWJsLnBhdGNoIGIvMDAzMC1taW5ndy1wcmVmZXItdW5peC1zZXAtaWYtTVNZU1RF TS1lbnZpcm9ubWVudC12YXJpYWJsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjg1YzI3NzEKLS0tIC9kZXYvbnVsbAorKysgYi8wMDMwLW1pbmd3LXByZWZlci11bml4 LXNlcC1pZi1NU1lTVEVNLWVudmlyb25tZW50LXZhcmlhYmwucGF0Y2gKQEAgLTAsMCArMSw0Nzgg QEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L0luY2x1ZGUvcHls aWZlY3ljbGUuaCBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL3B5bGlmZWN5Y2xlLmgKKy0tLSBQ eXRob24tMy4xNC43L0luY2x1ZGUvcHlsaWZlY3ljbGUuaAkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAw MDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0luY2x1ZGUvcHlsaWZlY3ljbGUu aAkyMDI2LTA5LTIyIDA5OjA2OjM4LjUzNDA1MjExNyArMDIwMAorQEAgLTIxLDYgKzIxLDEyIEBA IFB5QVBJX0ZVTkMoaW50KSBQeV9Jc0luaXRpYWxpemVkKHZvaWQpOworIFB5QVBJX0ZVTkMoUHlU aHJlYWRTdGF0ZSAqKSBQeV9OZXdJbnRlcnByZXRlcih2b2lkKTsKKyBQeUFQSV9GVU5DKHZvaWQp IFB5X0VuZEludGVycHJldGVyKFB5VGhyZWFkU3RhdGUgKik7CisgCisrUHlBUElfRlVOQyh3Y2hh cl90KSBQeV9HZXRTZXBXKGNvbnN0IHdjaGFyX3QgKik7CisrUHlBUElfRlVOQyhjaGFyKSBQeV9H ZXRTZXBBKGNvbnN0IGNoYXIgKik7CisrCisrUHlBUElfRlVOQyh2b2lkKSBQeV9Ob3JtYWxpemVT ZXBzVyh3Y2hhcl90ICopOworK1B5QVBJX0ZVTkModm9pZCkgUHlfTm9ybWFsaXplU2Vwc0EoY2hh ciAqKTsKKysKKyAKKyAvKiBQeV9QeUF0RXhpdCBpcyBmb3IgdGhlIGF0ZXhpdCBtb2R1bGUsIFB5 X0F0RXhpdCBpcyBmb3IgbG93LWxldmVsCisgICogZXhpdCBmdW5jdGlvbnMuCitkaWZmIC1ydXBO IC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvbnRwYXRoLnB5IFB5dGhvbi0zLjE0 LjctbmV3L0xpYi9udHBhdGgucHkKKy0tLSBQeXRob24tMy4xNC43L0xpYi9udHBhdGgucHkJMjAy Ni0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9M aWIvbnRwYXRoLnB5CTIwMjYtMDktMjIgMDk6MDY6MzguNTM0MzczMTgzICswMjAwCitAQCAtMTEs MTQgKzExLDIyIEBAIG1vZHVsZSBhcyBvcy5wYXRoLgorIGN1cmRpciA9ICcuJworIHBhcmRpciA9 ICcuLicKKyBleHRzZXAgPSAnLicKKy1zZXAgPSAnXFwnCisgcGF0aHNlcCA9ICc7JworLWFsdHNl cCA9ICcvJworIGRlZnBhdGggPSAnLjtDOlxcYmluJworIGRldm51bGwgPSAnbnVsJworIAorLWlt cG9ydCBvcworIGltcG9ydCBzeXMKKysKKytpZiBzeXMuX3VzZV9hbHRfc2VwOgorKyAgICBzZXAg PSAnLycKKysgICAgYWx0c2VwID0gJ1xcJworK2Vsc2U6CisrICAgIHNlcCA9ICdcXCcKKysgICAg YWx0c2VwID0gJy8nCisrYnNlcCA9IHN0ci5lbmNvZGUoc2VwKQorK2JhbHRzZXAgPSBzdHIuZW5j b2RlKGFsdHNlcCkKKysKKytpbXBvcnQgb3MKKyBpbXBvcnQgZ2VuZXJpY3BhdGgKKyBmcm9tIGdl bmVyaWNwYXRoIGltcG9ydCAqCisgCitAQCAtMzMsOSArNDEsMzkgQEAgX19hbGxfXyA9IFsibm9y bWNhc2UiLCJpc2FicyIsImpvaW4iLCJzcAorIAorIGRlZiBfZ2V0X2JvdGhzZXBzKHBhdGgpOgor ICAgICBpZiBpc2luc3RhbmNlKHBhdGgsIGJ5dGVzKToKKy0gICAgICAgIHJldHVybiBiJ1xcLycK KysgICAgICAgIHJldHVybiBic2VwK2JhbHRzZXAKKysgICAgZWxzZToKKysgICAgICAgIHJldHVy biBzZXArYWx0c2VwCisrCisrZGVmIF9nZXRfc2VwKHBhdGgpOgorKyAgICBpZiBpc2luc3RhbmNl KHBhdGgsIGJ5dGVzKToKKysgICAgICAgIHJldHVybiBic2VwCisgICAgIGVsc2U6CistICAgICAg ICByZXR1cm4gJ1xcLycKKysgICAgICAgIHJldHVybiBzZXAKKysKKytkZWYgX2dldF9hbHRzZXAo cGF0aCk6CisrICAgIGlmIGlzaW5zdGFuY2UocGF0aCwgYnl0ZXMpOgorKyAgICAgICAgcmV0dXJu IGJhbHRzZXAKKysgICAgZWxzZToKKysgICAgICAgIHJldHVybiBhbHRzZXAKKysKKytkZWYgX2dl dF9jb2xvbihwYXRoKToKKysgICAgaWYgaXNpbnN0YW5jZShwYXRoLCBieXRlcyk6CisrICAgICAg ICByZXR1cm4gYic6JworKyAgICBlbHNlOgorKyAgICAgICAgcmV0dXJuICc6JworKworK2RlZiBf Z2V0X2NvbG9uX3NlcHMocGF0aCk6CisrICAgIGlmIGlzaW5zdGFuY2UocGF0aCwgYnl0ZXMpOgor KyAgICAgICAgcmV0dXJuIGInOicrYnNlcCtiYWx0c2VwCisrICAgIGVsc2U6CisrICAgICAgICBy ZXR1cm4gJzonK3NlcCthbHRzZXAKKysKKytkZWYgX2dldF91bmNfcHJlZml4KHBhdGgpOgorKyAg ICBpZiBpc2luc3RhbmNlKHBhdGgsIGJ5dGVzKToKKysgICAgICAgIHJldHVybiBiJ1xcXFw/XFxV TkNcXCcKKysgICAgZWxzZToKKysgICAgICAgIHJldHVybiAnXFxcXD9cXFVOQ1xcJworIAorICMg Tm9ybWFsaXplIHRoZSBjYXNlIG9mIGEgcGF0aG5hbWUgYW5kIG1hcCBzbGFzaGVzIHRvIGJhY2tz bGFzaGVzLgorICMgT3RoZXIgbm9ybWFsaXphdGlvbnMgKHN1Y2ggYXMgb3B0aW1pemluZyAnLi4v JyBhd2F5KSBhcmUgbm90IGRvbmUKK0BAIC01NywxNCArOTUsMTQgQEAgdHJ5OgorICAgICAgICAg ICAgIHJldHVybiBzCisgICAgICAgICBpZiBpc2luc3RhbmNlKHMsIGJ5dGVzKToKKyAgICAgICAg ICAgICBlbmNvZGluZyA9IHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKQorLSAgICAgICAgICAg IHMgPSBzLmRlY29kZShlbmNvZGluZywgJ3N1cnJvZ2F0ZWVzY2FwZScpLnJlcGxhY2UoJy8nLCAn XFwnKQorKyAgICAgICAgICAgIHMgPSBzLmRlY29kZShlbmNvZGluZywgJ3N1cnJvZ2F0ZWVzY2Fw ZScpLnJlcGxhY2UoYWx0c2VwLCBzZXApCisgICAgICAgICAgICAgcyA9IF9MQ01hcFN0cmluZ0V4 KF9MT0NBTEVfTkFNRV9JTlZBUklBTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF9MQ01BUF9MT1dFUkNBU0UsIHMpCisgICAgICAgICAgICAgcmV0dXJuIHMuZW5jb2RlKGVuY29k aW5nLCAnc3Vycm9nYXRlZXNjYXBlJykKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0 dXJuIF9MQ01hcFN0cmluZ0V4KF9MT0NBTEVfTkFNRV9JTlZBUklBTlQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9MQ01BUF9MT1dFUkNBU0UsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHMucmVwbGFjZSgnLycsICdcXCcpKQorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzLnJlcGxhY2UoYWx0c2VwLCBzZXApKQorIGV4Y2VwdCBJbXBv cnRFcnJvcjoKKyAgICAgZGVmIG5vcm1jYXNlKHMpOgorICAgICAgICAgIiIiTm9ybWFsaXplIGNh c2Ugb2YgcGF0aG5hbWUuCitAQCAtNzMsMjMgKzExMSwxNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHMgPSBvcy5mc3BhdGgocykKKyAgICAgICAgIGlmIGlz aW5zdGFuY2UocywgYnl0ZXMpOgorLSAgICAgICAgICAgIHJldHVybiBvcy5mc2VuY29kZShvcy5m c2RlY29kZShzKS5yZXBsYWNlKCcvJywgJ1xcJykubG93ZXIoKSkKKy0gICAgICAgIHJldHVybiBz LnJlcGxhY2UoJy8nLCAnXFwnKS5sb3dlcigpCisrICAgICAgICAgICAgcmV0dXJuIG9zLmZzZW5j b2RlKG9zLmZzZGVjb2RlKHMpLnJlcGxhY2UoYWx0c2VwLCBzZXApLmxvd2VyKCkpCisrICAgICAg ICByZXR1cm4gcy5yZXBsYWNlKGFsdHNlcCwgc2VwKS5sb3dlcigpCisgCisgCisgZGVmIGlzYWJz KHMpOgorICAgICAiIiJUZXN0IHdoZXRoZXIgYSBwYXRoIGlzIGFic29sdXRlIiIiCisgICAgIHMg PSBvcy5mc3BhdGgocykKKy0gICAgaWYgaXNpbnN0YW5jZShzLCBieXRlcyk6CistICAgICAgICBz ZXAgPSBiJ1xcJworLSAgICAgICAgYWx0c2VwID0gYicvJworLSAgICAgICAgY29sb25fc2VwID0g Yic6XFwnCistICAgICAgICBkb3VibGVfc2VwID0gYidcXFxcJworLSAgICBlbHNlOgorLSAgICAg ICAgc2VwID0gJ1xcJworLSAgICAgICAgYWx0c2VwID0gJy8nCistICAgICAgICBjb2xvbl9zZXAg PSAnOlxcJworLSAgICAgICAgZG91YmxlX3NlcCA9ICdcXFxcJworKyAgICBzZXAgPSBfZ2V0X3Nl cChzKQorKyAgICBhbHRzZXAgPSBfZ2V0X2FsdHNlcChzKQorKyAgICBjb2xvbl9zZXAgPSBfZ2V0 X2NvbG9uKHMpICsgc2VwCisrICAgIGRvdWJsZV9zZXAgPSBzZXAgKyBzZXAKKyAgICAgcyA9IHNb OjNdLnJlcGxhY2UoYWx0c2VwLCBzZXApCisgICAgICMgQWJzb2x1dGU6IFVOQywgZGV2aWNlLCBh bmQgcGF0aHMgd2l0aCBhIGRyaXZlIGFuZCByb290LgorICAgICByZXR1cm4gcy5zdGFydHN3aXRo KGNvbG9uX3NlcCwgMSkgb3Igcy5zdGFydHN3aXRoKGRvdWJsZV9zZXApCitAQCAtOTgsMTQgKzEz MCw5IEBAIGRlZiBpc2FicyhzKToKKyAjIEpvaW4gdHdvIChvciBtb3JlKSBwYXRocy4KKyBkZWYg am9pbihwYXRoLCAqcGF0aHMpOgorICAgICBwYXRoID0gb3MuZnNwYXRoKHBhdGgpCistICAgIGlm IGlzaW5zdGFuY2UocGF0aCwgYnl0ZXMpOgorLSAgICAgICAgc2VwID0gYidcXCcKKy0gICAgICAg IHNlcHMgPSBiJ1xcLycKKy0gICAgICAgIGNvbG9uX3NlcHMgPSBiJzpcXC8nCistICAgIGVsc2U6 CistICAgICAgICBzZXAgPSAnXFwnCistICAgICAgICBzZXBzID0gJ1xcLycKKy0gICAgICAgIGNv bG9uX3NlcHMgPSAnOlxcLycKKysgICAgc2VwID0gX2dldF9zZXAocGF0aCkKKysgICAgc2VwcyA9 IF9nZXRfYm90aHNlcHMocGF0aCkKKysgICAgY29sb25fc2VwcyA9IF9nZXRfY29sb25fc2Vwcyhw YXRoKQorICAgICB0cnk6CisgICAgICAgICByZXN1bHRfZHJpdmUsIHJlc3VsdF9yb290LCByZXN1 bHRfcGF0aCA9IHNwbGl0cm9vdChwYXRoKQorICAgICAgICAgZm9yIHAgaW4gcGF0aHM6CitAQCAt MTc2LDE4ICsyMDMsMTIgQEAgZXhjZXB0IEltcG9ydEVycm9yOgorIAorICAgICAgICAgVGhlIHRh aWwgY29udGFpbnMgYW55dGhpbmcgYWZ0ZXIgdGhlIHJvb3QuIiIiCisgICAgICAgICBwID0gb3Mu ZnNwYXRoKHApCistICAgICAgICBpZiBpc2luc3RhbmNlKHAsIGJ5dGVzKToKKy0gICAgICAgICAg ICBzZXAgPSBiJ1xcJworLSAgICAgICAgICAgIGFsdHNlcCA9IGInLycKKy0gICAgICAgICAgICBj b2xvbiA9IGInOicKKy0gICAgICAgICAgICB1bmNfcHJlZml4ID0gYidcXFxcP1xcVU5DXFwnCist ICAgICAgICAgICAgZW1wdHkgPSBiJycKKy0gICAgICAgIGVsc2U6CistICAgICAgICAgICAgc2Vw ID0gJ1xcJworLSAgICAgICAgICAgIGFsdHNlcCA9ICcvJworLSAgICAgICAgICAgIGNvbG9uID0g JzonCistICAgICAgICAgICAgdW5jX3ByZWZpeCA9ICdcXFxcP1xcVU5DXFwnCistICAgICAgICAg ICAgZW1wdHkgPSAnJworKyAgICAgICAgc2VwID0gX2dldF9zZXAocCkKKysgICAgICAgIGFsdHNl cCA9IF9nZXRfYWx0c2VwKHApCisrICAgICAgICBjb2xvbiA9IF9nZXRfY29sb24ocCkKKysgICAg ICAgIHVuY19wcmVmaXggPSBfZ2V0X3VuY19wcmVmaXgocCkKKysgICAgICAgIGVtcHR5ID0gYicn IGlmIGlzaW5zdGFuY2UocCwgYnl0ZXMpIGVsc2UgJycKKysKKyAgICAgICAgIG5vcm1wID0gcC5y ZXBsYWNlKGFsdHNlcCwgc2VwKQorICAgICAgICAgaWYgbm9ybXBbOjFdID09IHNlcDoKKyAgICAg ICAgICAgICBpZiBub3JtcFsxOjJdID09IHNlcDoKK0BAIC0yNDUsOSArMjY2LDkgQEAgZGVmIHNw bGl0KHApOgorIGRlZiBzcGxpdGV4dChwKToKKyAgICAgcCA9IG9zLmZzcGF0aChwKQorICAgICBp ZiBpc2luc3RhbmNlKHAsIGJ5dGVzKToKKy0gICAgICAgIHJldHVybiBnZW5lcmljcGF0aC5fc3Bs aXRleHQocCwgYidcXCcsIGInLycsIGInLicpCisrICAgICAgICByZXR1cm4gZ2VuZXJpY3BhdGgu X3NwbGl0ZXh0KHAsIGJzZXAsIGJhbHRzZXAsIGInLicpCisgICAgIGVsc2U6CistICAgICAgICBy ZXR1cm4gZ2VuZXJpY3BhdGguX3NwbGl0ZXh0KHAsICdcXCcsICcvJywgJy4nKQorKyAgICAgICAg cmV0dXJuIGdlbmVyaWNwYXRoLl9zcGxpdGV4dChwLCBzZXAsIGFsdHNlcCwgJy4nKQorIHNwbGl0 ZXh0Ll9fZG9jX18gPSBnZW5lcmljcGF0aC5fc3BsaXRleHQuX19kb2NfXworIAorIAorQEAgLTM2 Miw3ICszODMsNyBAQCBkZWYgZXhwYW5kdXNlcihwYXRoKToKKyAgICAgaWYgJ1VTRVJQUk9GSUxF JyBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgdXNlcmhvbWUgPSBvcy5lbnZpcm9uWydVU0VSUFJP RklMRSddCisgICAgIGVsaWYgJ0hPTUVQQVRIJyBub3QgaW4gb3MuZW52aXJvbjoKKy0gICAgICAg IHJldHVybiBwYXRoCisrICAgICAgICByZXR1cm4gb3MucGF0aC5ub3JtcGF0aChwYXRoKQorICAg ICBlbHNlOgorICAgICAgICAgZHJpdmUgPSBvcy5lbnZpcm9uLmdldCgnSE9NRURSSVZFJywgJycp CisgICAgICAgICB1c2VyaG9tZSA9IGpvaW4oZHJpdmUsIG9zLmVudmlyb25bJ0hPTUVQQVRIJ10p CitAQCAtMzg2LDcgKzQwNyw3IEBAIGRlZiBleHBhbmR1c2VyKHBhdGgpOgorICAgICBpZiBpc2lu c3RhbmNlKHBhdGgsIGJ5dGVzKToKKyAgICAgICAgIHVzZXJob21lID0gb3MuZnNlbmNvZGUodXNl cmhvbWUpCisgCistICAgIHJldHVybiB1c2VyaG9tZSArIHBhdGhbaTpdCisrICAgIHJldHVybiBv cy5wYXRoLm5vcm1wYXRoKHVzZXJob21lKSArIHBhdGhbaTpdCisgCisgCisgIyBFeHBhbmQgcGF0 aHMgY29udGFpbmluZyBzaGVsbCB2YXJpYWJsZSBzdWJzdGl0dXRpb25zLgorQEAgLTQ3NywxNCAr NDk4LDEyIEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgZGVmIG5vcm1wYXRoKHBhdGgpOgor ICAgICAgICAgIiIiTm9ybWFsaXplIHBhdGgsIGVsaW1pbmF0aW5nIGRvdWJsZSBzbGFzaGVzLCBl dGMuIiIiCisgICAgICAgICBwYXRoID0gb3MuZnNwYXRoKHBhdGgpCisrICAgICAgICBzZXAgPSBf Z2V0X3NlcChwYXRoKQorKyAgICAgICAgYWx0c2VwID0gX2dldF9hbHRzZXAocGF0aCkKKyAgICAg ICAgIGlmIGlzaW5zdGFuY2UocGF0aCwgYnl0ZXMpOgorLSAgICAgICAgICAgIHNlcCA9IGInXFwn CistICAgICAgICAgICAgYWx0c2VwID0gYicvJworICAgICAgICAgICAgIGN1cmRpciA9IGInLicK KyAgICAgICAgICAgICBwYXJkaXIgPSBiJy4uJworICAgICAgICAgZWxzZToKKy0gICAgICAgICAg ICBzZXAgPSAnXFwnCistICAgICAgICAgICAgYWx0c2VwID0gJy8nCisgICAgICAgICAgICAgY3Vy ZGlyID0gJy4nCisgICAgICAgICAgICAgcGFyZGlyID0gJy4uJworICAgICAgICAgcGF0aCA9IHBh dGgucmVwbGFjZShhbHRzZXAsIHNlcCkKK0BAIC01MzEsNyArNTUwLDcgQEAgZWxzZTogICMgdXNl IG5hdGl2ZSBXaW5kb3dzIG1ldGhvZCBvbiBXaQorICAgICBkZWYgYWJzcGF0aChwYXRoKToKKyAg ICAgICAgICIiIlJldHVybiB0aGUgYWJzb2x1dGUgdmVyc2lvbiBvZiBhIHBhdGguIiIiCisgICAg ICAgICB0cnk6CistICAgICAgICAgICAgcmV0dXJuIF9nZXRmdWxscGF0aG5hbWUobm9ybXBhdGgo cGF0aCkpCisrICAgICAgICAgICAgcmV0dXJuIG5vcm1wYXRoKF9nZXRmdWxscGF0aG5hbWUobm9y bXBhdGgocGF0aCkpKQorICAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBWYWx1ZUVycm9yKToKKyAg ICAgICAgICAgICAjIFNlZSBnaC03NTIzMCwgaGFuZGxlIG91dHNpZGUgZm9yIGNsZWFuZXIgdHJh Y2ViYWNrCisgICAgICAgICAgICAgcGFzcworQEAgLTczMCw2ICs3NDksNyBAQCBlbHNlOgorICAg ICAgICAgICAgICAgICAjIHN0cmlwIHRoZSBwcmVmaXggYW55d2F5LgorICAgICAgICAgICAgICAg ICBpZiBleC53aW5lcnJvciA9PSBpbml0aWFsX3dpbmVycm9yOgorICAgICAgICAgICAgICAgICAg ICAgcGF0aCA9IHNwYXRoCisrICAgICAgICBwYXRoID0gbm9ybXBhdGgocGF0aCkKKyAgICAgICAg IHJldHVybiBwYXRoCisgCisgCitAQCAtNzQyLDEyICs3NjIsMTEgQEAgZGVmIHJlbHBhdGgocGF0 aCwgc3RhcnQ9Tm9uZSk6CisgICAgIGlmIG5vdCBwYXRoOgorICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigibm8gcGF0aCBzcGVjaWZpZWQiKQorIAorKyAgICBzZXAgPSBfZ2V0X3NlcChwYXRoKQor ICAgICBpZiBpc2luc3RhbmNlKHBhdGgsIGJ5dGVzKToKKy0gICAgICAgIHNlcCA9IGInXFwnCisg ICAgICAgICBjdXJkaXIgPSBiJy4nCisgICAgICAgICBwYXJkaXIgPSBiJy4uJworICAgICBlbHNl OgorLSAgICAgICAgc2VwID0gJ1xcJworICAgICAgICAgY3VyZGlyID0gJy4nCisgICAgICAgICBw YXJkaXIgPSAnLi4nCisgCitAQCAtNzk5LDEzICs4MTgsMTEgQEAgZGVmIGNvbW1vbnBhdGgocGF0 aHMpOgorICAgICBpZiBub3QgcGF0aHM6CisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdjb21t b25wYXRoKCkgYXJnIGlzIGFuIGVtcHR5IGl0ZXJhYmxlJykKKyAKKysgICAgc2VwID0gX2dldF9z ZXAocGF0aHNbMF0pCisrICAgIGFsdHNlcCA9IF9nZXRfYWx0c2VwKHBhdGhzWzBdKQorICAgICBp ZiBpc2luc3RhbmNlKHBhdGhzWzBdLCBieXRlcyk6CistICAgICAgICBzZXAgPSBiJ1xcJworLSAg ICAgICAgYWx0c2VwID0gYicvJworICAgICAgICAgY3VyZGlyID0gYicuJworICAgICBlbHNlOgor LSAgICAgICAgc2VwID0gJ1xcJworLSAgICAgICAgYWx0c2VwID0gJy8nCisgICAgICAgICBjdXJk aXIgPSAnLicKKyAKKyAgICAgdHJ5OgorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhv bi0zLjE0LjcvTW9kdWxlcy9wb3NpeG1vZHVsZS5jIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMv cG9zaXhtb2R1bGUuYworLS0tIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9wb3NpeG1vZHVsZS5jCTIw MjYtMDktMjIgMDk6MDY6MzIuMzcxNjI5NTU1ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcv TW9kdWxlcy9wb3NpeG1vZHVsZS5jCTIwMjYtMDktMjIgMDk6MDY6MzguNTM2MTk5NjQ5ICswMjAw CitAQCAtNDI2NSw2ICs0MjY1LDcgQEAgcG9zaXhfZ2V0Y3dkKGludCB1c2VfYnl0ZXMpCisgICAg ICAgICByZXR1cm4gTlVMTDsKKyAgICAgfQorIAorKyAgICBQeV9Ob3JtYWxpemVTZXBzVyh3YnVm Mik7CisgICAgIFB5T2JqZWN0ICpyZXNvYmogPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHdidWYy LCBsZW4pOworICAgICBpZiAod2J1ZjIgIT0gd2J1ZikgeworICAgICAgICAgUHlNZW1fUmF3RnJl ZSh3YnVmMik7CitAQCAtNTE0Niw2ICs1MTQ3LDcgQEAgb3NfX2dldGZpbmFscGF0aG5hbWVfaW1w bChQeU9iamVjdCAqbW9kdQorICAgICAgICAgdGFyZ2V0X3BhdGggPSB0bXA7CisgICAgIH0KKyAK KysgICAgUHlfTm9ybWFsaXplU2Vwc1codGFyZ2V0X3BhdGgpOworICAgICByZXN1bHQgPSBQeVVu aWNvZGVfRnJvbVdpZGVDaGFyKHRhcmdldF9wYXRoLCByZXN1bHRfbGVuZ3RoKTsKKyAgICAgaWYg KHJlc3VsdCAmJiBQeUJ5dGVzX0NoZWNrKHBhdGgtPm9iamVjdCkpIHsKKyAgICAgICAgIFB5X1NF VFJFRihyZXN1bHQsIFB5VW5pY29kZV9FbmNvZGVGU0RlZmF1bHQocmVzdWx0KSk7CitkaWZmIC1y dXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QeXRob24vaW5pdGNvbmZpZy5jIFB5 dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9pbml0Y29uZmlnLmMKKy0tLSBQeXRob24tMy4xNC43L1B5 dGhvbi9pbml0Y29uZmlnLmMJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysr KyBQeXRob24tMy4xNC43LW5ldy9QeXRob24vaW5pdGNvbmZpZy5jCTIwMjYtMDktMjIgMDk6MDY6 MzguNTM3MTk5NTgwICswMjAwCitAQCAtNDc3LDcgKzQ3Nyw3IEBAIHN0YXRpYyBjb25zdCBjaGFy IHVzYWdlX2VudnZhcnNbXSA9CisgIlBZVEhPTldBUk5JTkdTICA6IHdhcm5pbmcgY29udHJvbCAo LVcpXG4iCisgOworIAorLSNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpCisrI2lmIGRlZmluZWQoX01T Q19WRVIpCisgIyAgZGVmaW5lIFBZVEhPTkhPTUVIRUxQICI8cHJlZml4PlxccHl0aG9ue21ham9y fXttaW5vcn0iCisgI2Vsc2UKKyAjICBkZWZpbmUgUFlUSE9OSE9NRUhFTFAgIjxwcmVmaXg+L2xp Yi9weXRob25YLlgiCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Q eXRob24vcGF0aGNvbmZpZy5jIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9wYXRoY29uZmlnLmMK Ky0tLSBQeXRob24tMy4xNC43L1B5dGhvbi9wYXRoY29uZmlnLmMJMjAyNi0wOC0wNSAxMjoyOTo0 OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9QeXRob24vcGF0aGNvbmZp Zy5jCTIwMjYtMDktMjIgMDk6MDY6MzguNTM3NTcwOTY5ICswMjAwCitAQCAtOCw3ICs4LDcgQEAK KyAjaW5jbHVkZSA8d2NoYXIuaD4KKyAKKyAjaW5jbHVkZSAibWFyc2hhbC5oIiAgICAgICAgICAg ICAgLy8gUHlNYXJzaGFsX1JlYWRPYmplY3RGcm9tU3RyaW5nCistI2luY2x1ZGUgIm9zZGVmcy5o IiAgICAgICAgICAgICAgIC8vIERFTElNCisrI2luY2x1ZGUgIm9zZGVmcy5oIiAgICAgICAgICAg ICAgIC8vIERFTElNLCBTRVAKKyAKKyAjaWZkZWYgTVNfV0lORE9XUworICMgIGluY2x1ZGUgPHdp bmRvd3MuaD4gICAgICAgICAgICAvLyBHZXRGdWxsUGF0aE5hbWVXKCksIE1BWF9QQVRICitAQCAt MTYsNiArMTYsMTQyIEBACisgIyAgaW5jbHVkZSA8c2hsd2FwaS5oPgorICNlbmRpZgorIAorKyNp ZmRlZiBfX01JTkdXMzJfXworKyNkZWZpbmUgd2NzdG9rICB3Y3N0b2tfcworKyNpbmNsdWRlIDx3 aW5kb3dzLmg+CisrI2VuZGlmCisrCisrc3RhdGljIGludAorK1B5X1N0YXJ0c1dpdGhBKGNvbnN0 IGNoYXIgKiBzdHIsIGNvbnN0IGNoYXIgKiBwcmVmaXgpCisreworKyAgICB3aGlsZSgqcHJlZml4 KQorKyAgICB7CisrICAgICAgICBpZigqcHJlZml4KysgIT0gKnN0cisrKQorKyAgICAgICAgICAg IHJldHVybiAwOworKyAgICB9CisrCisrICAgIHJldHVybiAxOworK30KKysKKytzdGF0aWMgaW50 CisrUHlfU3RhcnRzV2l0aFcoY29uc3Qgd2NoYXJfdCAqIHN0ciwgY29uc3Qgd2NoYXJfdCAqIHBy ZWZpeCkKKyt7CisrICAgIHdoaWxlKCpwcmVmaXgpCisrICAgIHsKKysgICAgICAgIGlmKCpwcmVm aXgrKyAhPSAqc3RyKyspCisrICAgICAgICAgICAgcmV0dXJuIDA7CisrICAgIH0KKysKKysgICAg cmV0dXJuIDE7CisrfQorKworK2NoYXIKKytQeV9HZXRTZXBBKGNvbnN0IGNoYXIgKm5hbWUpCisr eworKyAgICBzdGF0aWMgY2hhciBzZXAgPSAnXDAnOworKyNpZmRlZiBfV0lOMzIKKysgICAgLyog aHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tZ2IvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3Av YWEzNjUyNDclMjh2PXZzLjg1JTI5LmFzcHgKKysgICAgICogVGhlICJcXD9cIiBwcmVmaXggLi4g aW5kaWNhdGUgdGhhdCB0aGUgcGF0aCBzaG91bGQgYmUgcGFzc2VkIHRvIHRoZSBzeXN0ZW0gd2l0 aCBtaW5pbWFsCisrICAgICAqIG1vZGlmaWNhdGlvbiwgd2hpY2ggbWVhbnMgdGhhdCB5b3UgY2Fu bm90IHVzZSBmb3J3YXJkIHNsYXNoZXMgdG8gcmVwcmVzZW50IHBhdGggc2VwYXJhdG9ycworKyAg ICAgKi8KKysgICAgaWYgKG5hbWUgIT0gTlVMTCAmJiBQeV9TdGFydHNXaXRoQShuYW1lLCAiXFxc XD9cXCIpICE9IDApCisrICAgIHsKKysgICAgICAgIHJldHVybiAnXFwnOworKyAgICB9CisrI2Vu ZGlmCisrICAgIGlmIChzZXAgIT0gJ1wwJykKKysgICAgICAgIHJldHVybiBzZXA7CisrI2lmIGRl ZmluZWQoX19NSU5HVzMyX18pCisrICAgIGNoYXIqIG1zeXN0ZW0gPSBnZXRlbnYoIk1TWVNURU0i KTsKKysgICAgaWYgKG1zeXN0ZW0gIT0gTlVMTCAmJiBzdHJjbXAobXN5c3RlbSwgIiIpICE9IDAp CisrICAgICAgICBzZXAgPSAnLyc7CisrICAgIGVsc2UKKysgICAgICAgIHNlcCA9ICdcXCc7Cisr I2Vsc2UKKysgICAgc2VwID0gU0VQOworKyNlbmRpZgorKyAgICByZXR1cm4gc2VwOworK30KKysK KytzdGF0aWMgY2hhcgorK1B5X0dldEFsdFNlcEEoY29uc3QgY2hhciAqbmFtZSkKKyt7CisrICAg IGNoYXIgc2VwID0gUHlfR2V0U2VwQShuYW1lKTsKKysgICAgaWYgKHNlcCA9PSAnLycpCisrICAg ICAgICByZXR1cm4gJ1xcJzsKKysgICAgcmV0dXJuICcvJzsKKyt9CisrCisrdm9pZAorK1B5X05v cm1hbGl6ZVNlcHNBKGNoYXIgKm5hbWUpCisreworKyAgICBhc3NlcnQobmFtZSAhPSBOVUxMKTsK KysgICAgY2hhciBzZXAgPSBQeV9HZXRTZXBBKG5hbWUpOworKyAgICBjaGFyIGFsdHNlcCA9IFB5 X0dldEFsdFNlcEEobmFtZSk7CisrICAgIGNoYXIqIHNlcHM7CisrICAgIGlmIChuYW1lWzBdICE9 ICdcMCcgJiYgbmFtZVsxXSA9PSAnOicpIHsKKysgICAgICAgIG5hbWVbMF0gPSB0b3VwcGVyKG5h bWVbMF0pOworKyAgICB9CisrICAgIHNlcHMgPSBzdHJjaHIobmFtZSwgYWx0c2VwKTsKKysgICAg d2hpbGUoc2VwcykgeworKyAgICAgICAgKnNlcHMgPSBzZXA7CisrICAgICAgICBzZXBzID0gc3Ry Y2hyKHNlcHMsIGFsdHNlcCk7CisrICAgIH0KKyt9CisrCisrd2NoYXJfdAorK1B5X0dldFNlcFco Y29uc3Qgd2NoYXJfdCAqbmFtZSkKKyt7CisrICAgIHN0YXRpYyB3Y2hhcl90IHNlcCA9IEwnXDAn OworKyNpZmRlZiBfV0lOMzIKKysgICAgLyogaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4t Z2IvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvYWEzNjUyNDclMjh2PXZzLjg1JTI5LmFzcHgKKysg ICAgICogVGhlICJcXD9cIiBwcmVmaXggLi4gaW5kaWNhdGUgdGhhdCB0aGUgcGF0aCBzaG91bGQg YmUgcGFzc2VkIHRvIHRoZSBzeXN0ZW0gd2l0aCBtaW5pbWFsCisrICAgICAqIG1vZGlmaWNhdGlv biwgd2hpY2ggbWVhbnMgdGhhdCB5b3UgY2Fubm90IHVzZSBmb3J3YXJkIHNsYXNoZXMgdG8gcmVw cmVzZW50IHBhdGggc2VwYXJhdG9ycworKyAgICAgKi8KKysgICAgaWYgKG5hbWUgIT0gTlVMTCAm JiBQeV9TdGFydHNXaXRoVyhuYW1lLCBMIlxcXFw/XFwiKSAhPSAwKQorKyAgICB7CisrICAgICAg ICByZXR1cm4gTCdcXCc7CisrICAgIH0KKysjZW5kaWYKKysgICAgaWYgKHNlcCAhPSBMJ1wwJykK KysgICAgICAgIHJldHVybiBzZXA7CisrI2lmIGRlZmluZWQoX19NSU5HVzMyX18pCisrICAgIGNo YXIqIG1zeXN0ZW0gPSBnZXRlbnYoIk1TWVNURU0iKTsKKysgICAgaWYgKG1zeXN0ZW0gIT0gTlVM TCAmJiBzdHJjbXAobXN5c3RlbSwgIiIpICE9IDApCisrICAgICAgICBzZXAgPSBMJy8nOworKyAg ICBlbHNlCisrICAgICAgICBzZXAgPSBMJ1xcJzsKKysjZWxzZQorKyAgICBzZXAgPSBTRVA7Cisr I2VuZGlmCisrICAgIHJldHVybiBzZXA7CisrfQorKworK3N0YXRpYyB3Y2hhcl90CisrUHlfR2V0 QWx0U2VwVyhjb25zdCB3Y2hhcl90ICpuYW1lKQorK3sKKysgICAgY2hhciBzZXAgPSBQeV9HZXRT ZXBXKG5hbWUpOworKyAgICBpZiAoc2VwID09IEwnLycpCisrICAgICAgICByZXR1cm4gTCdcXCc7 CisrICAgIHJldHVybiBMJy8nOworK30KKysKKyt2b2lkCisrUHlfTm9ybWFsaXplU2Vwc1cod2No YXJfdCAqbmFtZSkKKyt7CisrICAgIGFzc2VydChuYW1lICE9IE5VTEwpOworKyAgICB3Y2hhcl90 IHNlcCA9IFB5X0dldFNlcFcobmFtZSk7CisrICAgIHdjaGFyX3QgYWx0c2VwID0gUHlfR2V0QWx0 U2VwVyhuYW1lKTsKKysgICAgd2NoYXJfdCogc2VwczsKKysgICAgaWYgKG5hbWVbMF0gIT0gTCdc MCcgJiYgbmFtZVsxXSA9PSBMJzonKSB7CisrICAgICAgICBuYW1lWzBdID0gdG93dXBwZXIobmFt ZVswXSk7CisrICAgIH0KKysgICAgc2VwcyA9IHdjc2NocihuYW1lLCBhbHRzZXApOworKyAgICB3 aGlsZShzZXBzKSB7CisrICAgICAgICAqc2VwcyA9IHNlcDsKKysgICAgICAgIHNlcHMgPSB3Y3Nj aHIoc2VwcywgYWx0c2VwKTsKKysgICAgfQorK30KKyAKKyAvKiBFeHRlcm5hbCBpbnRlcmZhY2Ug Ki8KKyAKK0BAIC00NjEsNyArNTk3LDcgQEAgX1B5UGF0aENvbmZpZ19Db21wdXRlU3lzUGF0aDAo Y29uc3QgUHlXaQorICAgICB9CisgI2VuZGlmIC8qIEFsbCBvdGhlcnMgKi8KKyAKKy0gICAgUHlP YmplY3QgKnBhdGgwX29iaiA9IFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIocGF0aDAsIG4pOworKyAg ICBQeU9iamVjdCAqcGF0aDBfb2JqID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihfUHlfbm9ybXBh dGgocGF0aDAsIC0xKSwgbik7CisgICAgIGlmIChwYXRoMF9vYmogPT0gTlVMTCkgeworICAgICAg ICAgcmV0dXJuIC0xOworICAgICB9CitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9u LTMuMTQuNy9QeXRob24vdHJhY2ViYWNrLmMgUHl0aG9uLTMuMTQuNy1uZXcvUHl0aG9uL3RyYWNl YmFjay5jCistLS0gUHl0aG9uLTMuMTQuNy9QeXRob24vdHJhY2ViYWNrLmMJMjAyNi0wOC0wNSAx MjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9QeXRob24vdHJh Y2ViYWNrLmMJMjAyNi0wOS0yMiAwOTowNjozOC41Mzc3OTkwOTggKzAyMDAKK0BAIC0zOTgsNyAr Mzk4LDcgQEAgX1B5X0ZpbmRTb3VyY2VGaWxlKFB5T2JqZWN0ICpmaWxlbmFtZSwgYworICAgICBm aWxlcGF0aCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGZpbGVieXRlcyk7CisgCisgICAgIC8qIFNlYXJj aCB0YWlsIG9mIGZpbGVuYW1lIGluIHN5cy5wYXRoIGJlZm9yZSBnaXZpbmcgdXAgKi8KKy0gICAg dGFpbCA9IHN0cnJjaHIoZmlsZXBhdGgsIFNFUCk7CisrICAgIHRhaWwgPSBzdHJyY2hyKGZpbGVw YXRoLCBQeV9HZXRTZXBBKGZpbGVwYXRoKSk7CisgICAgIGlmICh0YWlsID09IE5VTEwpCisgICAg ICAgICB0YWlsID0gZmlsZXBhdGg7CisgICAgIGVsc2UKCmRpZmYgLS1naXQgYS8wMDMxLWJ1aWxk LVJlbW92ZS1NQVhQQVRITEVOLWRlZmF1bHQucGF0Y2ggYi8wMDMxLWJ1aWxkLVJlbW92ZS1NQVhQ QVRITEVOLWRlZmF1bHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YjUxNzU4NAotLS0gL2Rldi9udWxsCisrKyBiLzAwMzEtYnVpbGQtUmVtb3ZlLU1BWFBBVEhMRU4t ZGVmYXVsdC5wYXRjaApAQCAtMCwwICsxLDExIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVu Y2UgUHl0aG9uLTMuMTQuNy9JbmNsdWRlL29zZGVmcy5oIFB5dGhvbi0zLjE0LjctbmV3L0luY2x1 ZGUvb3NkZWZzLmgKKy0tLSBQeXRob24tMy4xNC43L0luY2x1ZGUvb3NkZWZzLmgJMjAyNi0wOC0w NSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRl L29zZGVmcy5oCTIwMjYtMDktMjIgMDk6MDY6MzguODQyMDg3MzU1ICswMjAwCitAQCAtMTYsNyAr MTYsNiBAQCBleHRlcm4gIkMiIHsKKyAjaWZkZWYgTVNfV0lORE9XUworICMgIGRlZmluZSBTRVAg TCdcXCcKKyAjICBkZWZpbmUgQUxUU0VQIEwnLycKKy0jICBkZWZpbmUgTUFYUEFUSExFTiAyNTYK KyAjICBkZWZpbmUgREVMSU0gTCc7JworICNlbmRpZgorIAoKZGlmZiAtLWdpdCBhLzAwMzItYnVp bGQtZG9udC1saW5rLXdpdGgtZ2V0dGV4dC5wYXRjaCBiLzAwMzItYnVpbGQtZG9udC1saW5rLXdp dGgtZ2V0dGV4dC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzI2 OTUxCi0tLSAvZGV2L251bGwKKysrIGIvMDAzMi1idWlsZC1kb250LWxpbmstd2l0aC1nZXR0ZXh0 LnBhdGNoCkBAIC0wLDAgKzEsNDEgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRo b24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0t LSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjM2LjQ4NzM0MjUz NyArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5 OjA2OjM5LjE0MjE1NzM4OSArMDIwMAorQEAgLTQxNDksMTAgKzQxNDksMTkgQEAgQUNfU0VBUkNI X0xJQlMoW3NlbV9pbml0XSwgW3B0aHJlYWQgcnQgcAorIGZpCisgCisgIyBjaGVjayBpZiB3ZSBu ZWVkIGxpYmludGwgZm9yIGxvY2FsZSBmdW5jdGlvbnMKKytjYXNlICRob3N0IGluCisrICAqLSot bWluZ3cqKQorKyAgZG5sIE5hdGl2ZSB3aW5kb3dzIGJ1aWxkIGRvbid0IHVzZSBsaWJpbnRsIChz ZWUgX2xvY2FsZW1vZHVsZS5jKS4KKysgIGRubCBBbHNvIHdlIGRvbid0IGxpa2Ugc2V0dXAucHkg dG8gYWRkICJpbnRsIiBsaWJyYXJ5IHRvIHRoZSBsaXN0CisrICBkbmwgd2hlbiBidWlsZCBfbG9j YWxlIG1vZHVsZS4KKysgIDs7CisrICAqKQorIEFDX0NIRUNLX0xJQihbaW50bF0sIFt0ZXh0ZG9t YWluXSwKKyAJW0FDX0RFRklORShbV0lUSF9MSUJJTlRMXSwgWzFdLAorIAlbRGVmaW5lIHRvIDEg aWYgbGliaW50bCBpcyBuZWVkZWQgZm9yIGxvY2FsZSBmdW5jdGlvbnMuXSkKKyAgICAgICAgIExJ QlM9Ii1saW50bCAkTElCUyJdKQorKyAgOzsKKytlc2FjCisgCisgIyBjaGVja3MgZm9yIHN5c3Rl bSBkZXBlbmRlbnQgQysrIGV4dGVuc2lvbnMgc3VwcG9ydAorIGNhc2UgIiRhY19zeXNfc3lzdGVt IiBpbgorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9f bG9jYWxlbW9kdWxlLmMgUHl0aG9uLTMuMTQuNy1uZXcvTW9kdWxlcy9fbG9jYWxlbW9kdWxlLmMK Ky0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvX2xvY2FsZW1vZHVsZS5jCTIwMjYtMDgtMDUgMTI6 Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTW9kdWxlcy9fbG9j YWxlbW9kdWxlLmMJMjAyNi0wOS0yMiAwOTowNjozOS4xNDE1NzQyNDMgKzAyMDAKK0BAIC0xMyw2 ICsxMywxNCBAQCBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggbm8gd2FycmFudHkuIFVzCisgI2lu Y2x1ZGUgInB5Y29yZV9maWxldXRpbHMuaCIgICAgIC8vIF9QeV9HZXRMb2NhbGVjb252TnVtZXJp YygpCisgI2luY2x1ZGUgInB5Y29yZV9weW1lbS5oIiAgICAgICAgIC8vIF9QeU1lbV9TdHJkdXAo KQorIAorKyNpZmRlZiBfX01JTkdXMzJfXworKy8qIFRoZSBoZWFkZXIgbGliaW50bC5oIGFuZCBs aWJyYXJ5IGxpYmludGwgbWF5IGV4aXN0IG9uIG1pbmd3IGhvc3QuCisrICogVG8gYmUgY29tcGF0 aWJsZSB3aXRoIE1TVkMgYnVpbGQgd2UgaGFzIHRvIHVuZGVmIHNvbWUgZGVmaW5lcy4KKysgKi8K KysjdW5kZWYgSEFWRV9MSUJJTlRMX0gKKysjdW5kZWYgSEFWRV9CSU5EX1RFWFRET01BSU5fQ09E RVNFVAorKyNlbmRpZgorKworICNpbmNsdWRlIDxsb2NhbGUuaD4gICAgICAgICAgICAgICAvLyBz ZXRsb2NhbGUoKQorICNpbmNsdWRlIDxzdHJpbmcuaD4gICAgICAgICAgICAgICAvLyBzdHJsZW4o KQorICNpZmRlZiBIQVZFX0VSUk5PX0gKCmRpZmYgLS1naXQgYS8wMDMzLXVzZS1nbnVfcHJpbnRm LWluLWZvcm1hdC5wYXRjaCBiLzAwMzMtdXNlLWdudV9wcmludGYtaW4tZm9ybWF0LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYzRkZDYKLS0tIC9kZXYvbnVsbAor KysgYi8wMDMzLXVzZS1nbnVfcHJpbnRmLWluLWZvcm1hdC5wYXRjaApAQCAtMCwwICsxLDYxIEBA CitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9JbmNsdWRlL2J5dGVz b2JqZWN0LmggUHl0aG9uLTMuMTQuNy1uZXcvSW5jbHVkZS9ieXRlc29iamVjdC5oCistLS0gUHl0 aG9uLTMuMTQuNy9JbmNsdWRlL2J5dGVzb2JqZWN0LmgJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAw MDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL2J5dGVzb2JqZWN0LmgJ MjAyNi0wOS0yMiAwOTowNjozOS40Mzg2NTMwOTMgKzAyMDAKK0BAIC0zMiw5ICszMiw5IEBAIFB5 QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlCeXRlc19Gcm9tU3RyaW4KKyBQeUFQSV9GVU5DKFB5T2Jq ZWN0ICopIFB5Qnl0ZXNfRnJvbVN0cmluZyhjb25zdCBjaGFyICopOworIFB5QVBJX0ZVTkMoUHlP YmplY3QgKikgUHlCeXRlc19Gcm9tT2JqZWN0KFB5T2JqZWN0ICopOworIFB5QVBJX0ZVTkMoUHlP YmplY3QgKikgUHlCeXRlc19Gcm9tRm9ybWF0Vihjb25zdCBjaGFyKiwgdmFfbGlzdCkKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0dDQ19BVFRSSUJVVEUoKGZvcm1hdChwcmlu dGYsIDEsIDApKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9QUklOVEYo MSwgMCk7CisgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUJ5dGVzX0Zyb21Gb3JtYXQoY29uc3Qg Y2hhciosIC4uLikKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0dDQ19BVFRS SUJVVEUoKGZvcm1hdChwcmludGYsIDEsIDIpKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQeV9QUklOVEYoMSwgMik7CisgUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBQeUJ5dGVz X1NpemUoUHlPYmplY3QgKik7CisgUHlBUElfRlVOQyhjaGFyICopIFB5Qnl0ZXNfQXNTdHJpbmco UHlPYmplY3QgKik7CisgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUJ5dGVzX1JlcHIoUHlPYmpl Y3QgKiwgaW50KTsKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L0lu Y2x1ZGUvcHllcnJvcnMuaCBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL3B5ZXJyb3JzLmgKKy0t LSBQeXRob24tMy4xNC43L0luY2x1ZGUvcHllcnJvcnMuaAkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAw MDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0luY2x1ZGUvcHllcnJvcnMuaAky MDI2LTA5LTIyIDA5OjA2OjM5LjQzODg3ODE3MSArMDIwMAorQEAgLTMxOSw5ICszMTksOSBAQCBQ eUFQSV9GVU5DKGludCkgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfCisgICAgICk7CisgCisgUHlB UElfRlVOQyhpbnQpIFB5T1Nfc25wcmludGYoY2hhciAqc3RyLCBzaXplX3Qgc2l6ZSwgY29uc3Qg Y2hhciAgKmZvcm1hdCwgLi4uKQorLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X0dDQ19BVFRS SUJVVEUoKGZvcm1hdChwcmludGYsIDMsIDQpKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAg UHlfUFJJTlRGKDMsIDQpOworIFB5QVBJX0ZVTkMoaW50KSBQeU9TX3ZzbnByaW50ZihjaGFyICpz dHIsIHNpemVfdCBzaXplLCBjb25zdCBjaGFyICAqZm9ybWF0LCB2YV9saXN0IHZhKQorLSAgICAg ICAgICAgICAgICAgICAgICAgIFB5X0dDQ19BVFRSSUJVVEUoKGZvcm1hdChwcmludGYsIDMsIDAp KSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgUHlfUFJJTlRGKDMsIDApOworIAorICNpZm5k ZWYgUHlfTElNSVRFRF9BUEkKKyAjICBkZWZpbmUgUHlfQ1BZVEhPTl9FUlJPUlNfSAorZGlmZiAt cnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvSW5jbHVkZS9weXBvcnQuaCBQeXRo b24tMy4xNC43LW5ldy9JbmNsdWRlL3B5cG9ydC5oCistLS0gUHl0aG9uLTMuMTQuNy9JbmNsdWRl L3B5cG9ydC5oCTIwMjYtMDktMjIgMDk6MDY6MzAuNTk4OTU1ODU4ICswMjAwCisrKysgUHl0aG9u LTMuMTQuNy1uZXcvSW5jbHVkZS9weXBvcnQuaAkyMDI2LTA5LTIyIDA5OjA2OjM5LjQzOTA4OTE1 OSArMDIwMAorQEAgLTUwNyw2ICs1MDcsMTIgQEAgZXh0ZXJuICJDIiB7CisgCisgI2RlZmluZSBQ eV9WQV9DT1BZIHZhX2NvcHkKKyAKKysjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKChfX0dOVUNf XyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fPj0gNCkgfHwgX19HTlVDX18gPiA0KQorKyMgIGRlZmlu ZSBQeV9QUklOVEYoWCxZKSBQeV9HQ0NfQVRUUklCVVRFKChmb3JtYXQoZ251X3ByaW50ZixYLFkp KSkKKysjZWxzZQorKyMgIGRlZmluZSBQeV9QUklOVEYoWCxZKSBQeV9HQ0NfQVRUUklCVVRFKChm b3JtYXQocHJpbnRmLFgsWSkpKQorKyNlbmRpZgorKworIC8qCisgICogQ29udmVuaWVudCBtYWNy b3MgdG8gZGVhbCB3aXRoIGVuZGlhbm5lc3Mgb2YgdGhlIHBsYXRmb3JtLiBXT1JEU19CSUdFTkRJ QU4gaXMKKyAgKiBkZXRlY3RlZCBieSBjb25maWd1cmUgYW5kIGRlZmluZWQgaW4gcHljb25maWcu aC4gVGhlIGNvZGUgaW4gcHljb25maWcuaAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5 dGhvbi0zLjE0LjcvSW5jbHVkZS9zeXNtb2R1bGUuaCBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRl L3N5c21vZHVsZS5oCistLS0gUHl0aG9uLTMuMTQuNy9JbmNsdWRlL3N5c21vZHVsZS5oCTIwMjYt MDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvSW5j bHVkZS9zeXNtb2R1bGUuaAkyMDI2LTA5LTIyIDA5OjA2OjM5LjQzOTMwMzY5OCArMDIwMAorQEAg LTExLDkgKzExLDkgQEAgUHlfREVQUkVDQVRFRCgzLjExKSBQeUFQSV9GVU5DKHZvaWQpIFB5Uwor IFB5X0RFUFJFQ0FURUQoMy4xMSkgUHlBUElfRlVOQyh2b2lkKSBQeVN5c19TZXRBcmd2RXgoaW50 LCB3Y2hhcl90ICoqLCBpbnQpOworIAorIFB5QVBJX0ZVTkModm9pZCkgUHlTeXNfV3JpdGVTdGRv dXQoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCistICAgICAgICAgICAgICAgICBQeV9HQ0NfQVRU UklCVVRFKChmb3JtYXQocHJpbnRmLCAxLCAyKSkpOworKyAgICAgICAgICAgICAgICAgUHlfUFJJ TlRGKDEsIDIpOworIFB5QVBJX0ZVTkModm9pZCkgUHlTeXNfV3JpdGVTdGRlcnIoY29uc3QgY2hh ciAqZm9ybWF0LCAuLi4pCistICAgICAgICAgICAgICAgICBQeV9HQ0NfQVRUUklCVVRFKChmb3Jt YXQocHJpbnRmLCAxLCAyKSkpOworKyAgICAgICAgICAgICAgICAgUHlfUFJJTlRGKDEsIDIpOwor IFB5QVBJX0ZVTkModm9pZCkgUHlTeXNfRm9ybWF0U3Rkb3V0KGNvbnN0IGNoYXIgKmZvcm1hdCwg Li4uKTsKKyBQeUFQSV9GVU5DKHZvaWQpIFB5U3lzX0Zvcm1hdFN0ZGVycihjb25zdCBjaGFyICpm b3JtYXQsIC4uLik7CisgCgpkaWZmIC0tZ2l0IGEvMDAzNC1idWlsZC1yZW1vdmUtdXNhZ2Utb2Yt TVNfQ09SRURMTC5wYXRjaCBiLzAwMzQtYnVpbGQtcmVtb3ZlLXVzYWdlLW9mLU1TX0NPUkVETEwu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI3NWM5YwotLS0gL2Rl di9udWxsCisrKyBiLzAwMzQtYnVpbGQtcmVtb3ZlLXVzYWdlLW9mLU1TX0NPUkVETEwucGF0Y2gK QEAgLTAsMCArMSwzOCBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0 LjcvUHl0aG9uL3N5c21vZHVsZS5jIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9zeXNtb2R1bGUu YworLS0tIFB5dGhvbi0zLjE0LjcvUHl0aG9uL3N5c21vZHVsZS5jCTIwMjYtMDktMjIgMDk6MDY6 MzAuODg3MTc4NTQ0ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvUHl0aG9uL3N5c21vZHVs ZS5jCTIwMjYtMDktMjIgMDk6MDY6MzkuNzQzMTE1NDc3ICswMjAwCitAQCAtNTMsNyArNTMsNyBA QCBEYXRhIG1lbWJlcnM6CisgIyAgaW5jbHVkZSA8d2luZG93cy5oPgorICNlbmRpZiAvKiBNU19X SU5ET1dTICovCisgCistI2lmZGVmIE1TX0NPUkVETEwKKysjaWYgZGVmaW5lZChNU19XSU5ET1dT KSAmJiBkZWZpbmVkKFB5X0VOQUJMRV9TSEFSRUQpCisgZXh0ZXJuIHZvaWQgKlB5V2luX0RMTGhN b2R1bGU7CisgLyogQSBzdHJpbmcgbG9hZGVkIGZyb20gdGhlIERMTCBhdCBzdGFydHVwOiAqLwor IGV4dGVybiBjb25zdCBjaGFyICpQeVdpbl9ETExWZXJzaW9uU3RyaW5nOworQEAgLTMzNjgsMTQg KzMzNjgsMTQgQEAgdmVyc2lvbiAtLSB0aGUgdmVyc2lvbiBvZiB0aGlzIGludGVycHJldAorIHZl cnNpb25faW5mbyAtLSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFzIGEgbmFtZWQgdHVwbGVcblwKKyAi CisgKQorLSNpZmRlZiBNU19DT1JFRExMCisrI2lmIGRlZmluZWQoTVNfV0lORE9XUykgJiYgZGVm aW5lZChQeV9FTkFCTEVfU0hBUkVEKQorIC8qIGNvbmNhdGVuYXRpbmcgc3RyaW5nIGhlcmUgKi8K KyBQeURvY19TVFIoCisgImRsbGhhbmRsZSAtLSBbV2luZG93cyBvbmx5XSBpbnRlZ2VyIGhhbmRs ZSBvZiB0aGUgUHl0aG9uIERMTFxuXAorIHdpbnZlciAtLSBbV2luZG93cyBvbmx5XSB2ZXJzaW9u IG51bWJlciBvZiB0aGUgUHl0aG9uIERMTFxuXAorICIKKyApCistI2VuZGlmIC8qIE1TX0NPUkVE TEwgKi8KKysjZW5kaWYgLyogZGVmaW5lZChNU19XSU5ET1dTKSAmJiBkZWZpbmVkKFB5X0VOQUJM RV9TSEFSRUQpICovCisgI2lmZGVmIE1TX1dJTkRPV1MKKyAvKiBjb25jYXRlbmF0aW5nIHN0cmlu ZyBoZXJlICovCisgUHlEb2NfU1RSKAorQEAgLTM5MjUsNyArMzkyNSw3IEBAIF9QeVN5c19Jbml0 Q29yZShQeVRocmVhZFN0YXRlICp0c3RhdGUsIFAKKyAgICAgU0VUX1NZUygiX2lzX21pbmd3X3Vj cnQiLCBQeUxvbmdfRnJvbUxvbmcoaXNfbWluZ3dfdWNydCgpKSk7CisgICAgIFNFVF9TWVMoIl91 c2VfYWx0X3NlcCIsIFB5TG9uZ19Gcm9tTG9uZyh1c2VfYWx0X3NlcCgpKSk7CisgCistI2lmZGVm IE1TX0NPUkVETEwKKysjaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiBkZWZpbmVkKFB5X0VOQUJM RV9TSEFSRUQpCisgICAgIFNFVF9TWVMoImRsbGhhbmRsZSIsIFB5TG9uZ19Gcm9tVm9pZFB0cihQ eVdpbl9ETExoTW9kdWxlKSk7CisgICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoIndpbnZlciIsIFB5 V2luX0RMTFZlcnNpb25TdHJpbmcpOworICNlbmRpZgoKZGlmZiAtLWdpdCBhLzAwMzUtZ2V0Y29t cGlsZXItZXhwb3NlLU1JTkdXLXRvb2xjaGFpbi1yZWxhdGVkLWluZm9ybWF0aS5wYXRjaCBiLzAw MzUtZ2V0Y29tcGlsZXItZXhwb3NlLU1JTkdXLXRvb2xjaGFpbi1yZWxhdGVkLWluZm9ybWF0aS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzM3N2UxCi0tLSAvZGV2 L251bGwKKysrIGIvMDAzNS1nZXRjb21waWxlci1leHBvc2UtTUlOR1ctdG9vbGNoYWluLXJlbGF0 ZWQtaW5mb3JtYXRpLnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJl ZmVyZW5jZSBQeXRob24tMy4xNC43L1B5dGhvbi9nZXRjb21waWxlci5jIFB5dGhvbi0zLjE0Ljct bmV3L1B5dGhvbi9nZXRjb21waWxlci5jCistLS0gUHl0aG9uLTMuMTQuNy9QeXRob24vZ2V0Y29t cGlsZXIuYwkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0z LjE0LjctbmV3L1B5dGhvbi9nZXRjb21waWxlci5jCTIwMjYtMDktMjIgMDk6MDY6NDAuMDYwOTY3 NjkwICswMjAwCitAQCAtNywxMCArNyw1MSBAQAorIAorIC8vIE5vdGUgdGhlIF9fY2xhbmdfXyBj b25kaXRpb25hbCBoYXMgdG8gY29tZSBiZWZvcmUgdGhlIF9fR05VQ19fIG9uZSBiZWNhdXNlCisg Ly8gY2xhbmcgcHJldGVuZHMgdG8gYmUgR0NDLgorLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKysj aWYgZGVmaW5lZChfX2NsYW5nX18pICYmICFkZWZpbmVkKF9XSU4zMikKKyAjZGVmaW5lIENPTVBJ TEVSICJbQ2xhbmcgIiBfX2NsYW5nX3ZlcnNpb25fXyAiXSIKKyAjZWxpZiBkZWZpbmVkKF9fR05V Q19fKQorLSNkZWZpbmUgQ09NUElMRVIgIltHQ0MgIiBfX1ZFUlNJT05fXyAiXSIKKysvKiBUbyBu b3QgYnJlYWsgY29tcGF0aWJpbGl0eSB3aXRoIHRoaW5ncyB0aGF0IGRldGVybWluZQorKyAgIENQ VSBhcmNoIGJ5IGNhbGxpbmcgZ2V0X2J1aWxkX3ZlcnNpb24gaW4gbXN2Y2NvbXBpbGVyLnB5Cisr ICAgKHN1Y2ggYXMgTnVtUHkpIGFkZCAiMzIgYml0IiBvciAiNjQgYml0IChBTUQ2NCkiIG9uIFdp bmRvd3MKKysgICBhbmQgYWxzbyB1c2UgYSBzcGFjZSBhcyBhIHNlcGFyYXRvciByYXRoZXIgdGhh biBhIG5ld2xpbmUuICovCisrI2lmIGRlZmluZWQoX1dJTjMyKQorKyMgIGRlZmluZSBDT01QX1NF UCAiICIKKysjICBpZiBkZWZpbmVkKF9feDg2XzY0X18pCisrIyAgICBkZWZpbmUgQVJDSF9TVUZG SVggIiA2NCBiaXQgKEFNRDY0KSIKKysjICBlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisrIyAg ICBkZWZpbmUgQVJDSF9TVUZGSVggIiA2NCBiaXQgKEFSTTY0KSIKKysjICBlbGlmIGRlZmluZWQo X19hcm1fXykKKysjICAgIGRlZmluZSBBUkNIX1NVRkZJWCAiIDMyIGJpdCAoQVJNKSIKKysjICBl bHNlCisrIyAgICBkZWZpbmUgQVJDSF9TVUZGSVggIiAzMiBiaXQiCisrIyAgZW5kaWYKKysjZWxz ZQorKyMgIGRlZmluZSBDT01QX1NFUCAiXG4iCisrIyAgZGVmaW5lIEFSQ0hfU1VGRklYICIiCisr I2VuZGlmCisrCisrI2lmIGRlZmluZWQgX19NSU5HVzMyX18KKysjICBkZWZpbmUgQVJDSF9QUkVG SVggIk1JTkdXICIKKysjZWxzZQorKyMgIGRlZmluZSBBUkNIX1BSRUZJWCAiIgorKyNlbmRpZgor KworKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKysjZGVmaW5lIENMQU5HX1ZFUlNJT05fU1RSSU5H IFB5X1NUUklOR0lGWShfX2NsYW5nX21ham9yX18pICIuIiBQeV9TVFJJTkdJRlkoX19jbGFuZ19t aW5vcl9fKSAiLiIgUHlfU1RSSU5HSUZZKF9fY2xhbmdfcGF0Y2hsZXZlbF9fKQorKyMgIGlmIGRl ZmluZWQoX1VDUlQpCisrLy8gU29tZSBjb2RlIGNoZWNrcyBmb3IgIkdDQyIgaW4gdGhlIGNvbXBp bGVyIHN0cmluZywgc28gd2UgaW5jbHVkZSBpdCBoZXJlLgorKyMgICAgZGVmaW5lIENPTVBJTEVS IENPTVBfU0VQICJbIiBBUkNIX1BSRUZJWCAiQ2xhbmcgVUNSVCAiIENMQU5HX1ZFUlNJT05fU1RS SU5HIEFSQ0hfU1VGRklYICIgKEdDQyldIgorKyMgIGVsc2UKKysjICAgIGRlZmluZSBDT01QSUxF UiBDT01QX1NFUCAiWyIgQVJDSF9QUkVGSVggIkNsYW5nICIgQ0xBTkdfVkVSU0lPTl9TVFJJTkcg QVJDSF9TVUZGSVggIiAoR0NDKV0iCisrIyAgZW5kaWYKKysjZWxzZQorKyMgIGlmIGRlZmluZWQo X1VDUlQpCisrIyAgICBkZWZpbmUgQ09NUElMRVIgQ09NUF9TRVAgIlsiIEFSQ0hfUFJFRklYICJH Q0MgVUNSVCAiIF9fVkVSU0lPTl9fIEFSQ0hfU1VGRklYICJdIgorKyMgIGVsc2UKKysjICAgIGRl ZmluZSBDT01QSUxFUiBDT01QX1NFUCAiWyIgQVJDSF9QUkVGSVggIkdDQyAiIF9fVkVSU0lPTl9f IEFSQ0hfU1VGRklYICJdIgorKyMgIGVuZGlmCisrI2VuZGlmCisrCisgLy8gR2VuZXJpYyBmYWxs YmFja3MuCisgI2VsaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyAjZGVmaW5lIENPTVBJTEVSICJb QysrXSIKCmRpZmYgLS1naXQgYS8wMDM2LWJ1aWxkLWZpeC1zaWduYWwtbW9kdWxlLWJ1aWxkLnBh dGNoIGIvMDAzNi1idWlsZC1maXgtc2lnbmFsLW1vZHVsZS1idWlsZC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTQwMDgzCi0tLSAvZGV2L251bGwKKysrIGIvMDAz Ni1idWlsZC1maXgtc2lnbmFsLW1vZHVsZS1idWlsZC5wYXRjaApAQCAtMCwwICsxLDEyIEBACitk aWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL1NldHVwLmJv b3RzdHJhcC5pbiBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL1NldHVwLmJvb3RzdHJhcC5pbgor LS0tIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4JMjAyNi0wOS0yMiAw OTowNjozNS4zMzQ1MTc4MjkgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL1Nl dHVwLmJvb3RzdHJhcC5pbgkyMDI2LTA5LTIyIDA5OjA2OjQwLjM3Mjk4MTM0MCArMDIwMAorQEAg LTksNyArOSw3IEBACisgYXRleGl0IGF0ZXhpdG1vZHVsZS5jCisgZmF1bHRoYW5kbGVyIGZhdWx0 aGFuZGxlci5jCisgQE1PRFVMRV9QT1NJWE1PRFVMRV9OQU1FQCBwb3NpeG1vZHVsZS5jCistX3Np Z25hbCBzaWduYWxtb2R1bGUuYworK19zaWduYWwgc2lnbmFsbW9kdWxlLmMgLWx3czJfMzIKKyBf dHJhY2VtYWxsb2MgX3RyYWNlbWFsbG9jLmMKKyBfc3VnZ2VzdGlvbnMgX3N1Z2dlc3Rpb25zLmMK KyAjIG5lZWRzIGxpYm0gYW5kIG9uIHNvbWUgcGxhdGZvcm1zIGxpYnJ0CgpkaWZmIC0tZ2l0IGEv MDAzNy1idWlsZC1idWlsZC13aW5jb25zb2xlaW8tYW5kLV90ZXN0Y29uc29sZS5wYXRjaCBiLzAw MzctYnVpbGQtYnVpbGQtd2luY29uc29sZWlvLWFuZC1fdGVzdGNvbnNvbGUucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBkNWFkYwotLS0gL2Rldi9udWxsCisrKyBi LzAwMzctYnVpbGQtYnVpbGQtd2luY29uc29sZWlvLWFuZC1fdGVzdGNvbnNvbGUucGF0Y2gKQEAg LTAsMCArMSwzNCBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0Ljcv Y29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0z LjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6MzkuNDMzMTM3MDk1ICswMjAwCisr KysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NDAuNjY0 MDUxMjQ4ICswMjAwCitAQCAtODcyMyw2ICs4NzIzLDcgQEAgUFlfU1RETElCX01PRChbX3Rlc3Rt dWx0aXBoYXNlXSwgW3Rlc3QgIgorIFBZX1NURExJQl9NT0QoW190ZXN0c2luZ2xlcGhhc2VdLCBb dGVzdCAiJFRFU1RfTU9EVUxFUyIgPSB5ZXNdLCBbdGVzdCAiJGFjX2N2X2Z1bmNfZGxvcGVuIiA9 IHllc10pCisgUFlfU1RETElCX01PRChbeHhzdWJ0eXBlXSwgW3Rlc3QgIiRURVNUX01PRFVMRVMi ID0geWVzXSkKKyBQWV9TVERMSUJfTU9EKFtfeHh0ZXN0ZnV6el0sIFt0ZXN0ICIkVEVTVF9NT0RV TEVTIiA9IHllc10pCisrUFlfU1RETElCX01PRChbX3Rlc3Rjb25zb2xlXSwgW3Rlc3QgIiRURVNU X01PRFVMRVMiID0geWVzIC1hICIkTUFDSERFUCIgPSAid2luMzIiXSkKKyBkbmwgQ2hlY2sgaGF2 ZV9saWJmZmkgc28gX2N0eXBlc190ZXN0IGlzIG9ubHkgYnVpbHQgaWYgX2N0eXBlcyBpcyBidWls dC4KKyBkbmwgX2N0eXBlc190ZXN0IGRvZXNuJ3QgdXNlIGxpYmZmaSBkaXJlY3RseS4KKyBQWV9T VERMSUJfTU9EKFtfY3R5cGVzX3Rlc3RdLAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5 dGhvbi0zLjE0LjcvTW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4gUHl0aG9uLTMuMTQuNy1uZXcv TW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4KKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvU2V0 dXAuYm9vdHN0cmFwLmluCTIwMjYtMDktMjIgMDk6MDY6NDAuNjU5NDE5NDk2ICswMjAwCisrKysg UHl0aG9uLTMuMTQuNy1uZXcvTW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4JMjAyNi0wOS0yMiAw OTowNjo0MC42NjMxMTQ4NzIgKzAyMDAKK0BAIC0xOSw3ICsxOSw3IEBAIF9kYXRldGltZSBfZGF0 ZXRpbWVtb2R1bGUuYworIF9jb2RlY3MgX2NvZGVjc21vZHVsZS5jCisgX2NvbGxlY3Rpb25zIF9j b2xsZWN0aW9uc21vZHVsZS5jCisgZXJybm8gZXJybm9tb2R1bGUuYworLV9pbyBfaW8vX2lvbW9k dWxlLmMgX2lvL2lvYmFzZS5jIF9pby9maWxlaW8uYyBfaW8vYnl0ZXNpby5jIF9pby9idWZmZXJl ZGlvLmMgX2lvL3RleHRpby5jIF9pby9zdHJpbmdpby5jCisrX2lvIF9pby9faW9tb2R1bGUuYyBf aW8vaW9iYXNlLmMgX2lvL2ZpbGVpby5jIF9pby9ieXRlc2lvLmMgX2lvL2J1ZmZlcmVkaW8uYyBf aW8vdGV4dGlvLmMgX2lvL3N0cmluZ2lvLmMgX2lvL3dpbmNvbnNvbGVpby5jCisgaXRlcnRvb2xz IGl0ZXJ0b29sc21vZHVsZS5jCisgX3NyZSBfc3JlL3NyZS5jCisgX3N5c2NvbmZpZyBfc3lzY29u ZmlnLmMKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMv U2V0dXAuc3RkbGliLmluIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvU2V0dXAuc3RkbGliLmlu CistLS0gUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL1NldHVwLnN0ZGxpYi5pbgkyMDI2LTA5LTIyIDA5 OjA2OjM1LjMzNDczMjA1NyArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvU2V0 dXAuc3RkbGliLmluCTIwMjYtMDktMjIgMDk6MDY6NDAuNjYzMzg1ODI3ICswMjAwCitAQCAtMTky LDYgKzE5Miw3IEBACisgQE1PRFVMRV9fVEVTVE1VTFRJUEhBU0VfVFJVRUBfdGVzdG11bHRpcGhh c2UgX3Rlc3RtdWx0aXBoYXNlLmMKKyBATU9EVUxFX19URVNUU0lOR0xFUEhBU0VfVFJVRUBfdGVz dHNpbmdsZXBoYXNlIF90ZXN0c2luZ2xlcGhhc2UuYworIEBNT0RVTEVfX0NUWVBFU19URVNUX1RS VUVAX2N0eXBlc190ZXN0IF9jdHlwZXMvX2N0eXBlc190ZXN0LmMKKytATU9EVUxFX19URVNUQ09O U09MRV9UUlVFQF90ZXN0Y29uc29sZSAuLi9QQy9fdGVzdGNvbnNvbGUuYworIAorICMgTGltaXRl ZCBBUEkgdGVtcGxhdGUgbW9kdWxlczsgbXVzdCBiZSBidWlsdCBhcyBzaGFyZWQgbW9kdWxlcy4K KyBATU9EVUxFX1hYTElNSVRFRF9UUlVFQHh4bGltaXRlZCB4eGxpbWl0ZWQuYwoKZGlmZiAtLWdp dCBhLzAwMzgtbXVsdGlwcm9jZXNzaW5nLWV4cG9zZS1zZW1fdW5saW5rLXRvLWZpeC1tdWx0aXBy b2Nlcy5wYXRjaCBiLzAwMzgtbXVsdGlwcm9jZXNzaW5nLWV4cG9zZS1zZW1fdW5saW5rLXRvLWZp eC1tdWx0aXByb2Nlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x MWQ2YzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvMDAzOC1tdWx0aXByb2Nlc3NpbmctZXhwb3NlLXNl bV91bmxpbmstdG8tZml4LW11bHRpcHJvY2VzLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKK2RpZmYg LXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvX211bHRpcHJvY2Vz c2luZy9tdWx0aXByb2Nlc3NpbmcuYyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL19tdWx0aXBy b2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvX211 bHRpcHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuYwkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAw MDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvX211bHRpcHJvY2Vzc2lu Zy9tdWx0aXByb2Nlc3NpbmcuYwkyMDI2LTA5LTIyIDA5OjA2OjQwLjk1OTUwODUxMyArMDIwMAor QEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMgUHlNZXRob2REZWYgbW9kdWxlX21ldGhvZHNbXSA9 IHsKKyAgICAgX01VTFRJUFJPQ0VTU0lOR19SRUNWX01FVEhPRERFRgorICAgICBfTVVMVElQUk9D RVNTSU5HX1NFTkRfTUVUSE9EREVGCisgI2VuZGlmCistI2lmICFkZWZpbmVkKFBPU0lYX1NFTUFQ SE9SRVNfTk9UX0VOQUJMRUQpCisrI2lmIGRlZmluZWQoTVNfV0lORE9XUykgfHwgIWRlZmluZWQo UE9TSVhfU0VNQVBIT1JFU19OT1RfRU5BQkxFRCkKKyAgICAgX01VTFRJUFJPQ0VTU0lOR19TRU1f VU5MSU5LX01FVEhPRERFRgorICNlbmRpZgorICAgICB7TlVMTH0KCmRpZmYgLS1naXQgYS8wMDM5 LWJ1aWxkLWxpbmstd2luLXJlc291cmNlLWZpbGVzLWFuZC1idWlsZC1weXRob253LnBhdGNoIGIv MDAzOS1idWlsZC1saW5rLXdpbi1yZXNvdXJjZS1maWxlcy1hbmQtYnVpbGQtcHl0aG9udy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTJlYTM2Ci0tLSAvZGV2L251 bGwKKysrIGIvMDAzOS1idWlsZC1saW5rLXdpbi1yZXNvdXJjZS1maWxlcy1hbmQtYnVpbGQtcHl0 aG9udy5wYXRjaApAQCAtMCwwICsxLDE1NCBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNl IFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5h YworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NDAuOTUz MDMxMDkzICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDkt MjIgMDk6MDY6NDEuMjYxMDA5NjE0ICswMjAwCitAQCAtMTc4NCw2ICsxNzg0LDEwIEBAIEFDX1NV QlNUKFtMSU5LX1BZVEhPTl9PQkpTXSkKKyBBQ19TVUJTVChbQVJdKQorIEFDX0NIRUNLX1RPT0xT KFtBUl0sIFthciBhYWxdLCBbYXJdKQorIAorKyMgd2luZHJlcyBwcm9ncmFtCisrQUNfU1VCU1Qo V0lORFJFUykKKytBQ19DSEVDS19UT09MKFdJTkRSRVMsIHdpbmRyZXMpCisrCisgIyB0d2VhayBB UkZMQUdTIG9ubHkgaWYgdGhlIHVzZXIgZGlkbid0IHNldCBpdCBvbiB0aGUgY29tbWFuZCBsaW5l CisgQUNfU1VCU1QoW0FSRkxBR1NdKQorIGlmIHRlc3QgLXogIiRBUkZMQUdTIgorQEAgLTc3MTQs MTAgKzc3MTgsMzMgQEAgQUNfTVNHX1JFU1VMVChbZG9uZV0pCisgY2FzZSAkaG9zdCBpbgorICAg Ki0qLW1pbmd3KikKKyAgICAgTElCUz0iJExJQlMgLWx2ZXJzaW9uIC1sc2hsd2FwaSAtbHBhdGhj Y2ggLWxiY3J5cHQiCisrICAgIEFDX1BST0dfQVdLCisrICAgIGlmIHRlc3QgIiRBV0siID0gImdh d2siOyB0aGVuCisrICAgICAgYXdrX2V4dHJhX2ZsYWc9Ii0tbm9uLWRlY2ltYWwtZGF0YSIKKysg ICAgZmkKKysgICAgQUNfTVNHX0NIRUNLSU5HKFtGSUVMRDNdKQorKyAgICBGSUVMRDM9JCgkQVdL ICRhd2tfZXh0cmFfZmxhZyAnXAorKyAgICAgIC9eI2RlZmluZSBQWV9SRUxFQVNFX0xFVkVMXy8g ICAgICAgICAgICAge2xldmVsc1skMl09JDN9ICAgIFwKKysgICAgICAvXiNkZWZpbmUgUFlfTUlD Uk9fVkVSU0lPTltbOnNwYWNlOl1dKy8gIHttaWNybz0kM30gICAgICAgICBcCisrICAgICAgL14j ZGVmaW5lIFBZX1JFTEVBU0VfTEVWRUxbWzpzcGFjZTpdXSsvICB7bGV2ZWw9bGV2ZWxzWyQzXX0g XAorKyAgICAgIC9eI2RlZmluZSBQWV9SRUxFQVNFX1NFUklBTFtbOnNwYWNlOl1dKy8ge3Nlcmlh bD0kM30gICAgICAgIFwKKysgICAgICBFTkQge3ByaW50IG1pY3JvICogMTAwMCArIGxldmVsICog MTAgKyBzZXJpYWx9JyBcCisrICAgICAgJHNyY2Rpci9JbmNsdWRlL3BhdGNobGV2ZWwuaAorKyAg ICApCisrICAgIAorKyAgICBBQ19NU0dfUkVTVUxUKFske0ZJRUxEM31dKQorKyAgICBSQ0ZMQUdT PSIkUkNGTEFHUyAtREZJRUxEMz0kRklFTEQzIC1PIENPRkYiCisrCisrICAgIGNhc2UgJGhvc3Qg aW4KKysgICAgICBpNjg2KikgIFJDRkxBR1M9IiRSQ0ZMQUdTIC0tdGFyZ2V0PXBlLWkzODYiIDs7 CisrICAgICAgeDg2XzY0KikgIFJDRkxBR1M9IiRSQ0ZMQUdTIC0tdGFyZ2V0PXBlLXg4Ni02NCIg OzsKKysgICAgICAqKSA7OworKyAgICBlc2FjCisgICA7OworICAgKikKKyAgIDs7CisgZXNhYwor K0FDX1NVQlNUKFJDRkxBR1MpCisgCisgIyBBdmFpbGFiaWxpdHkgb2YgLU8yOgorIEFDX0NBQ0hF X0NIRUNLKFtmb3IgLU8yXSwgW2FjX2N2X2NvbXBpbGVfbzJdLCBbCitkaWZmIC1ydXBOIC0tbm8t ZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4gUHl0aG9uLTMuMTQuNy1u ZXcvTWFrZWZpbGUucHJlLmluCistLS0gUHl0aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4JMjAy Ni0wOS0yMiAwOTowNjozOC41MjkyMDAxMzggKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9N YWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAwOTowNjo0MS4yNjAwMDk2ODMgKzAyMDAKK0BAIC0z OCw2ICszOCw3IEBAIENDPQkJQENDQAorIENYWD0JCUBDWFhACisgTElOS0NDPQkJQExJTktDQ0AK KyBBUj0JCUBBUkAKKytXSU5EUkVTPQlAV0lORFJFU0AKKyBSRUFERUxGPQlAUkVBREVMRkAKKyBT T0FCST0JCUBTT0FCSUAKKyBBQklGTEFHUz0JQEFCSUZMQUdTQAorQEAgLTEyOCw2ICsxMjksNyBA QCBQWV9DT1JFX0xERkxBR1M9JChQWV9MREZMQUdTKSAkKFBZX0xERkxBCisgQ0ZMQUdTX0FMSUFT SU5HPUBDRkxBR1NfQUxJQVNJTkdACisgIyBDb21waWxhdGlvbiBmbGFncyBvbmx5IGZvciBjZXZh bC5jLgorIENGTEFHU19DRVZBTD1AQ0ZMQUdTX0NFVkFMQAorK1JDRkxBR1M9QFJDRkxBR1NACisg CisgCisgIyBNYWNoaW5lLWRlcGVuZGVudCBzdWJkaXJlY3RvcmllcworQEAgLTMxMiw2ICszMTQs NyBAQCBMSUJPQkpTPQlATElCT0JKU0AKKyAKKyBQWVRIT049CQlweXRob24kKEVYRSkKKyBCVUlM RFBZVEhPTj0JcHl0aG9uJChCVUlMREVYRSkKKytCVUlMRFBZVEhPTlc9CXB5dGhvbnckKEJVSUxE RVhFKQorIAorIEhPU1RSVU5ORVI9IEBIT1NUUlVOTkVSQAorIAorQEAgLTgwOSw3ICs4MTIsNyBA QCBsaXN0LXRhcmdldHM6CisgCUBncmVwIC1FICdeW0EtWmEtel1bLUEtWmEtejAtOV0rOicgTWFr ZWZpbGUgfCBhd2sgLUYgOiAne3ByaW50ICQkMX0nCisgCisgLlBIT05ZOiBidWlsZF9hbGwKKy1i dWlsZF9hbGw6CWNoZWNrLWNsZWFuLXNyYyBjaGVjay1hcHAtc3RvcmUtY29tcGxpYW5jZSAkKEJV SUxEUFlUSE9OKSBwbGF0Zm9ybSBzaGFyZWRtb2RzIFwKKytidWlsZF9hbGw6CWNoZWNrLWNsZWFu LXNyYyBjaGVjay1hcHAtc3RvcmUtY29tcGxpYW5jZSAkKEJVSUxEUFlUSE9OKSAkKEJVSUxEUFlU SE9OVykgcGxhdGZvcm0gc2hhcmVkbW9kcyBcCisgCQlnZGJob29rcyBQcm9ncmFtcy9fdGVzdGVt YmVkIHNjcmlwdHMgY2hlY2tzaGFyZWRtb2RzIHJ1bmRzeW11dGlsIGJ1aWxkLWRldGFpbHMuanNv bgorIAorIC5QSE9OWTogYnVpbGRfd2FzbQorQEAgLTk5Myw5ICs5OTYsMjEgQEAgY2xpbmljOiBj aGVjay1jbGVhbi1zcmMKKyBjbGluaWMtdGVzdHM6IGNoZWNrLWNsZWFuLXNyYyAkKHNyY2Rpcikv TGliL3Rlc3QvY2xpbmljLnRlc3QuYworIAkkKFBZVEhPTl9GT1JfUkVHRU4pICQoc3JjZGlyKS9U b29scy9jbGluaWMvY2xpbmljLnB5IC1mICQoc3JjZGlyKS9MaWIvdGVzdC9jbGluaWMudGVzdC5j CisgCisrcHl0aG9uX2V4ZS5vOiAkKHNyY2RpcikvUEMvcHl0aG9uX2V4ZS5yYworKwkkKFdJTkRS RVMpICQoUkNGTEFHUykgLUkkKHNyY2RpcikvSW5jbHVkZSAtSSQoc3JjZGlyKS9QQyAtSS4gJChz cmNkaXIpL1BDL3B5dGhvbl9leGUucmMgJEAKKysKKytweXRob253X2V4ZS5vOiAkKHNyY2Rpcikv UEMvcHl0aG9ud19leGUucmMKKysJJChXSU5EUkVTKSAkKFJDRkxBR1MpIC1JJChzcmNkaXIpL0lu Y2x1ZGUgLUkkKHNyY2RpcikvUEMgLUkuICQoc3JjZGlyKS9QQy9weXRob253X2V4ZS5yYyAkQAor KworK3B5dGhvbl9udC5vOiAkKHNyY2RpcikvUEMvcHl0aG9uX250LnJjCisrCSQoV0lORFJFUykg JChSQ0ZMQUdTKSAtRE9SSUdJTkFMX0ZJTEVOQU1FPVxcXCIkKERMTExJQlJBUlkpXFxcIiAtSSQo c3JjZGlyKS9JbmNsdWRlIC1JJChzcmNkaXIpL1BDIC1JLiAkKHNyY2RpcikvUEMvcHl0aG9uX250 LnJjICRACisrCisrJChCVUlMRFBZVEhPTlcpOiBQcm9ncmFtcy9weXRob24ubyAkKExJQlJBUlkp ICQoTERMSUJSQVJZKSAkKFBZM0xJQlJBUlkpIHB5dGhvbndfZXhlLm8KKysJJChMSU5LQ0MpICQo UFlfQ09SRV9MREZMQUdTKSAkKExJTktGT1JTSEFSRUQpIC1tdW5pY29kZSAtbXdpbmRvd3MgLW8g JEAgUHJvZ3JhbXMvcHl0aG9uLm8gJChCTERMSUJSQVJZKSAkKExJQlMpICQoTU9ETElCUykgJChT WVNMSUJTKSBweXRob253X2V4ZS5vCisrCisgIyBCdWlsZCB0aGUgaW50ZXJwcmV0ZXIKKy0kKEJV SUxEUFlUSE9OKToJUHJvZ3JhbXMvcHl0aG9uLm8gJChMSU5LX1BZVEhPTl9ERVBTKQorLQkkKExJ TktDQykgJChQWV9DT1JFX0xERkxBR1MpICQoTElOS0ZPUlNIQVJFRCkgLW8gJEAgUHJvZ3JhbXMv cHl0aG9uLm8gJChMSU5LX1BZVEhPTl9PQkpTKSAkKExJQlMpICQoTU9ETElCUykgJChTWVNMSUJT KQorKyQoQlVJTERQWVRIT04pOglQcm9ncmFtcy9weXRob24ubyAkKExJTktfUFlUSE9OX0RFUFMp IHB5dGhvbl9leGUubworKwkkKExJTktDQykgJChQWV9DT1JFX0xERkxBR1MpICQoTElOS0ZPUlNI QVJFRCkgLW11bmljb2RlIC1vICRAIFByb2dyYW1zL3B5dGhvbi5vICQoTElOS19QWVRIT05fT0JK UykgJChMSUJTKSAkKE1PRExJQlMpICQoU1lTTElCUykgcHl0aG9uX2V4ZS5vCisgCisgcGxhdGZv cm06ICQoUFlUSE9OX0ZPUl9CVUlMRF9ERVBTKSBweWJ1aWxkZGlyLnR4dAorIAkkKFJVTlNIQVJF RCkgJChQWVRIT05fRk9SX0JVSUxEKSAtYyAnaW1wb3J0IHN5cyA7IGZyb20gc3lzY29uZmlnIGlt cG9ydCBnZXRfcGxhdGZvcm0gOyBwcmludCgiJXMtJWQuJWQiICUgKGdldF9wbGF0Zm9ybSgpLCAq c3lzLnZlcnNpb25faW5mb1s6Ml0pKScgPnBsYXRmb3JtCitAQCAtMTA5OSwxMCArMTExNCwxMCBA QCAkKFBZVEhPTkZSQU1FV09SS0RJUikvJChQWVRIT05GUkFNRVdPUkspCisgCisgIyBUaGlzIHJ1 bGUgYnVpbGRzIHRoZSBDeWd3aW4gUHl0aG9uIERMTCBhbmQgaW1wb3J0IGxpYnJhcnkgaWYgY29u ZmlndXJlZAorICMgZm9yIGEgc2hhcmVkIGNvcmUgbGlicmFyeTsgb3RoZXJ3aXNlLCB0aGlzIHJ1 bGUgaXMgYSBub29wLgorLSQoRExMTElCUkFSWSkgbGlicHl0aG9uJChMRFZFUlNJT04pLmRsbC5h OiAkKExJQlJBUllfT0JKUykKKyskKERMTExJQlJBUlkpIGxpYnB5dGhvbiQoTERWRVJTSU9OKS5k bGwuYTogJChMSUJSQVJZX09CSlMpIHB5dGhvbl9udC5vCisgCWlmIHRlc3QgLW4gIiQoRExMTElC UkFSWSkiOyB0aGVuIFwKKyAJCSQoTERTSEFSRUQpIC1XbCwtLW91dC1pbXBsaWI9JEAgLW8gJChE TExMSUJSQVJZKSAkXiBcCistCQkJJChMSUJTKSAkKE1PRExJQlMpICQoU1lTTElCUyk7IFwKKysJ CQkkKExJQlMpICQoTERGTEFHU19OT0RJU1QpICQoTU9ETElCUykgJChTWVNMSUJTKTsgXAorIAll bHNlIHRydWU7IFwKKyAJZmkKKyAKK0BAIC0yNDQ4LDYgKzI0NjMsOCBAQCBhbHRiaW5pbnN0YWxs OiAkKEJVSUxEUFlUSE9OKSBARlJBTUVXT1JLCisgCWRvbmUKKyAJaWYgdGVzdCAiJChQWVRIT05G UkFNRVdPUktESVIpIiA9ICJuby1mcmFtZXdvcmsiIDsgdGhlbiBcCisgCQkkKElOU1RBTExfUFJP R1JBTSkgJChCVUlMRFBZVEhPTikgJChERVNURElSKSQoQklORElSKS9weXRob24kKExEVkVSU0lP TikkKEVYRSk7IFwKKysJCSQoSU5TVEFMTF9QUk9HUkFNKSAkKEJVSUxEUFlUSE9OVykgJChERVNU RElSKSQoQklORElSKS9weXRob24zdyQoRVhFKTsgXAorKwkJJChJTlNUQUxMX1BST0dSQU0pICQo QlVJTERQWVRIT05XKSAkKERFU1RESVIpJChCSU5ESVIpL3B5dGhvbiQoTERWRVJTSU9OKXckKEVY RSk7IFwKKyAJZWxzZSBcCisgCQkkKElOU1RBTExfUFJPR1JBTSkgJChTVFJJUEZMQUcpIE1hYy9w eXRob253ICQoREVTVERJUikkKEJJTkRJUikvcHl0aG9uJChMRFZFUlNJT04pJChFWEUpOyBcCisg CWZpCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QQy9weXRob25f ZXhlLnJjIFB5dGhvbi0zLjE0LjctbmV3L1BDL3B5dGhvbl9leGUucmMKKy0tLSBQeXRob24tMy4x NC43L1BDL3B5dGhvbl9leGUucmMJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAK KysrKyBQeXRob24tMy4xNC43LW5ldy9QQy9weXRob25fZXhlLnJjCTIwMjYtMDktMjIgMDk6MDY6 NDEuMjYwODA2MTk2ICswMjAwCitAQCAtMTIsNyArMTIsNyBAQAorIC8vIGN1cnJlbnQgdmVyc2lv bnMgb2YgV2luZG93cy4KKyAxIFJUX01BTklGRVNUICJweXRob24ubWFuaWZlc3QiCisgCistMSBJ Q09OIERJU0NBUkRBQkxFICJpY29uc1xweXRob24uaWNvIiAKKysxIElDT04gRElTQ0FSREFCTEUg Imljb25zL3B5dGhvbi5pY28iIAorIAorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitkaWZmIC1y dXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QQy9weXRob253X2V4ZS5yYyBQeXRo b24tMy4xNC43LW5ldy9QQy9weXRob253X2V4ZS5yYworLS0tIFB5dGhvbi0zLjE0LjcvUEMvcHl0 aG9ud19leGUucmMJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRo b24tMy4xNC43LW5ldy9QQy9weXRob253X2V4ZS5yYwkyMDI2LTA5LTIyIDA5OjA2OjQxLjI2MDk0 NTk2NiArMDIwMAorQEAgLTEyLDcgKzEyLDcgQEAKKyAvLyBjdXJyZW50IHZlcnNpb25zIG9mIFdp bmRvd3MuCisgMSBSVF9NQU5JRkVTVCAicHl0aG9uLm1hbmlmZXN0IgorIAorLTEgSUNPTiBESVND QVJEQUJMRSAiaWNvbnNccHl0aG9udy5pY28iIAorKzEgSUNPTiBESVNDQVJEQUJMRSAiaWNvbnMv cHl0aG9udy5pY28iIAorIAorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpkaWZmIC0tZ2l0IGEv MDA0MC1weWNvcmVfZmlsZXV0aWxzLWFkZC1NSU5HVy1zdXBwb3J0LnBhdGNoIGIvMDA0MC1weWNv cmVfZmlsZXV0aWxzLWFkZC1NSU5HVy1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmQ5ZmY1Y2YKLS0tIC9kZXYvbnVsbAorKysgYi8wMDQwLXB5Y29yZV9m aWxldXRpbHMtYWRkLU1JTkdXLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAt cnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvSW5jbHVkZS9pbnRlcm5hbC9weWNv cmVfZmlsZXV0aWxzLmggUHl0aG9uLTMuMTQuNy1uZXcvSW5jbHVkZS9pbnRlcm5hbC9weWNvcmVf ZmlsZXV0aWxzLmgKKy0tLSBQeXRob24tMy4xNC43L0luY2x1ZGUvaW50ZXJuYWwvcHljb3JlX2Zp bGV1dGlscy5oCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9u LTMuMTQuNy1uZXcvSW5jbHVkZS9pbnRlcm5hbC9weWNvcmVfZmlsZXV0aWxzLmgJMjAyNi0wOS0y MiAwOTowNjo0MS41NjA2NzQ0NzMgKzAyMDAKK0BAIC0xMyw3ICsxMyw3IEBAIGV4dGVybiAiQyIg eworIAorIAorIC8qIEEgcm91dGluZSB0byBjaGVjayBpZiBhIGZpbGUgZGVzY3JpcHRvciBjYW4g YmUgc2VsZWN0KCktZWQuICovCistI2lmZGVmIF9NU0NfVkVSCisrI2lmZGVmIE1TX1dJTkRPV1MK KyAgICAgLyogT24gV2luZG93cywgYW55IHNvY2tldCBmZCBjYW4gYmUgc2VsZWN0KCktZWQsIG5v IG1hdHRlciBob3cgaGlnaCAqLworICAgICAjZGVmaW5lIF9QeUlzU2VsZWN0YWJsZV9mZChGRCkg KDEpCisgI2Vsc2UKCmRpZmYgLS1naXQgYS8wMDQxLWNvbmZpZ3VyZS1maXgtaW5ldF9wdG9uLWNo ZWNrLnBhdGNoIGIvMDA0MS1jb25maWd1cmUtZml4LWluZXRfcHRvbi1jaGVjay5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjI1N2NlCi0tLSAvZGV2L251bGwKKysr IGIvMDA0MS1jb25maWd1cmUtZml4LWluZXRfcHRvbi1jaGVjay5wYXRjaApAQCAtMCwwICsxLDE4 IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9jb25maWd1cmUu YWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCistLS0gUHl0aG9uLTMuMTQuNy9jb25m aWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo0MS41NTQ5ODkxMTAgKzAyMDAKKysrKyBQeXRob24t My4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo0MS44NDk5Njg1MzcgKzAy MDAKK0BAIC01ODU2LDEwICs1ODU2LDE0IEBAIFBZX0NIRUNLX05FVERCX0ZVTkMoW2dldHByb3Rv YnluYW1lXSkKKyAKKyBkbmwgUFlfQ0hFQ0tfU09DS0VUX0ZVTkMoRlVOQ1RJT04pCisgQUNfREVG VU4oW1BZX0NIRUNLX1NPQ0tFVF9GVU5DXSwgW1BZX0NIRUNLX0ZVTkMoWyQxXSwgWworKyNpZmRl ZiBfV0lOMzIKKysjaW5jbHVkZSA8d3MydGNwaXAuaD4KKysjZWxzZQorICNpbmNsdWRlIDxzeXMv dHlwZXMuaD4KKyAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorICNpbmNsdWRlIDxuZXRpbmV0L2lu Lmg+CisgI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorKyNlbmRpZgorIF0pXSkKKyAKKyBQWV9DSEVD S19TT0NLRVRfRlVOQyhbaW5ldF9hdG9uXSkKCmRpZmYgLS1naXQgYS8wMDQyLWltcG9ydGxpYi1i b290c3RyYXAtcGF0aC1zZXAucGF0Y2ggYi8wMDQyLWltcG9ydGxpYi1ib290c3RyYXAtcGF0aC1z ZXAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAxZWRhNwotLS0g L2Rldi9udWxsCisrKyBiLzAwNDItaW1wb3J0bGliLWJvb3RzdHJhcC1wYXRoLXNlcC5wYXRjaApA QCAtMCwwICsxLDE0IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQu Ny9MaWIvaW1wb3J0bGliL19ib290c3RyYXBfZXh0ZXJuYWwucHkgUHl0aG9uLTMuMTQuNy1uZXcv TGliL2ltcG9ydGxpYi9fYm9vdHN0cmFwX2V4dGVybmFsLnB5CistLS0gUHl0aG9uLTMuMTQuNy9M aWIvaW1wb3J0bGliL19ib290c3RyYXBfZXh0ZXJuYWwucHkJMjAyNi0wOC0wNSAxMjoyOTo0OS4w MDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9MaWIvaW1wb3J0bGliL19ib290 c3RyYXBfZXh0ZXJuYWwucHkJMjAyNi0wOS0yMiAwOTowNjo0Mi4xNDIxMjQwMzQgKzAyMDAKK0BA IC00Miw2ICs0MiwxMCBAQCBpZiBfTVNfV0lORE9XUzoKKyAgICAgcGF0aF9zZXBhcmF0b3JzID0g WydcXCcsICcvJ10KKyBlbHNlOgorICAgICBwYXRoX3NlcGFyYXRvcnMgPSBbJy8nXQorKworK2lm IHN5cy5fdXNlX2FsdF9zZXA6CisrICAgIHBhdGhfc2VwYXJhdG9ycyA9IHBhdGhfc2VwYXJhdG9y c1s6Oi0xXQorKworICMgQXNzdW1wdGlvbiBtYWRlIGluIF9wYXRoX2pvaW4oKQorIGFzc2VydCBh bGwobGVuKHNlcCkgPT0gMSBmb3Igc2VwIGluIHBhdGhfc2VwYXJhdG9ycykKKyBwYXRoX3NlcCA9 IHBhdGhfc2VwYXJhdG9yc1swXQoKZGlmZiAtLWdpdCBhLzAwNDMtY29uZmlndXJlLXNldC1NSU5H Vy1zdGFjay1yZXNlcnZlLnBhdGNoIGIvMDA0My1jb25maWd1cmUtc2V0LU1JTkdXLXN0YWNrLXJl c2VydmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzYyZGJiNgot LS0gL2Rldi9udWxsCisrKyBiLzAwNDMtY29uZmlndXJlLXNldC1NSU5HVy1zdGFjay1yZXNlcnZl LnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRo b24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0t LSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjQyLjEzNjk0ODUy MiArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5 OjA2OjQyLjQzMjkyNzg3OSArMDIwMAorQEAgLTM5MTIsNiArMzkxMiwxMSBAQCB0aGVuCisgCVZ4 V29ya3MqKQorIAkJTElOS0ZPUlNIQVJFRD0nLVdsLC1leHBvcnQtZHluYW1pYyc7OworIAllc2Fj CisrCWNhc2UgJGhvc3QgaW4KKysJKi0qLW1pbmd3KikKKysJCSMgZm9yIGh0dHBzOi8vYnVncy5w eXRob24ub3JnL2lzc3VlNDA0NTggb24gTUlOR1cKKysJCUxJTktGT1JTSEFSRUQ9Ii1XbCwtLXN0 YWNrLDQxOTQzMDQiOzsKKysJZXNhYworIGZpCisgQUNfTVNHX1JFU1VMVChbJExJTktGT1JTSEFS RURdKQorIAoKZGlmZiAtLWdpdCBhLzAwNDM2LWN2ZS0yMDI0LTgwODgtZ2gtMTIyOTA1LXNhbml0 aXplLW5hbWVzLWluLXppcGZpbGUtcGF0aC5wYXRjaCBiLzAwNDM2LWN2ZS0yMDI0LTgwODgtZ2gt MTIyOTA1LXNhbml0aXplLW5hbWVzLWluLXppcGZpbGUtcGF0aC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDk4YzhhZi4uMDAwMDAwMAotLS0gYS8wMDQzNi1jdmUtMjAyNC04 MDg4LWdoLTEyMjkwNS1zYW5pdGl6ZS1uYW1lcy1pbi16aXBmaWxlLXBhdGgucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxMjggKzAsMCBAQAotRnJvbSAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogIkphc29uIFIu IENvb21icyIgPGphcmFjb0BqYXJhY28uY29tPgotRGF0ZTogTW9uLCAxOSBBdWcgMjAyNCAxOToy ODoyMCAtMDQwMAotU3ViamVjdDogW1BBVENIXSAwMDQzNjogW0NWRS0yMDI0LTgwODhdIGdoLTEy MjkwNTogU2FuaXRpemUgbmFtZXMgaW4KLSB6aXBmaWxlLlBhdGguCi0KLUNvLWF1dGhvcmVkLWJ5 OiBKYXNvbiBSLiBDb29tYnMgPGphcmFjb0BqYXJhY28uY29tPgotLS0tCi0gTGliL3Rlc3QvdGVz dF96aXBmaWxlLnB5ICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrCi0gTGliL3ppcGZp bGUucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjEgKysrKysrKysrKysrKysr KysrLQotIC4uLi0wOC0xMS0xNC0wOC0wNC5naC1pc3N1ZS0xMjI5MDUuN3REc3hBLnJzdCB8ICAx ICsKLSAzIGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLSBj cmVhdGUgbW9kZSAxMDA2NDQgTWlzYy9ORVdTLmQvbmV4dC9MaWJyYXJ5LzIwMjQtMDgtMTEtMTQt MDgtMDQuZ2gtaXNzdWUtMTIyOTA1Ljd0RHN4QS5yc3QKLQotZGlmZiAtLWdpdCBhL0xpYi90ZXN0 L3Rlc3RfemlwZmlsZS5weSBiL0xpYi90ZXN0L3Rlc3RfemlwZmlsZS5weQotaW5kZXggNGRlNmYz NzlhNC4uOGJkYzdhMWI3ZCAxMDA2NDQKLS0tLSBhL0xpYi90ZXN0L3Rlc3RfemlwZmlsZS5weQot KysrIGIvTGliL3Rlc3QvdGVzdF96aXBmaWxlLnB5Ci1AQCAtMzY1MSw2ICszNjUxLDIzIEBAIGRl ZiB0ZXN0X2V4dHJhY3Rfb3JpZ193aXRoX2ltcGxpZWRfZGlycyhzZWxmLCBhbHBoYXJlcCk6Ci0g ICAgICAgICB6aXBmaWxlLlBhdGgoemYpCi0gICAgICAgICB6Zi5leHRyYWN0YWxsKHNvdXJjZV9w YXRoLnBhcmVudCkKLSAKLSsgICAgZGVmIHRlc3RfbWFsZm9ybWVkX3BhdGhzKHNlbGYpOgotKyAg ICAgICAgIiIiCi0rICAgICAgICBQYXRoIHNob3VsZCBoYW5kbGUgbWFsZm9ybWVkIHBhdGhzLgot KyAgICAgICAgIiIiCi0rICAgICAgICBkYXRhID0gaW8uQnl0ZXNJTygpCi0rICAgICAgICB6ZiA9 IHppcGZpbGUuWmlwRmlsZShkYXRhLCAidyIpCi0rICAgICAgICB6Zi53cml0ZXN0cigiL29uZS1z bGFzaC50eHQiLCBiImNvbnRlbnQiKQotKyAgICAgICAgemYud3JpdGVzdHIoIi8vdHdvLXNsYXNo LnR4dCIsIGIiY29udGVudCIpCi0rICAgICAgICB6Zi53cml0ZXN0cigiLi4vcGFyZW50LnR4dCIs IGIiY29udGVudCIpCi0rICAgICAgICB6Zi5maWxlbmFtZSA9ICcnCi0rICAgICAgICByb290ID0g emlwZmlsZS5QYXRoKHpmKQotKyAgICAgICAgYXNzZXJ0IGxpc3QobWFwKHN0ciwgcm9vdC5pdGVy ZGlyKCkpKSA9PSBbCi0rICAgICAgICAgICAgJ29uZS1zbGFzaC50eHQnLAotKyAgICAgICAgICAg ICd0d28tc2xhc2gudHh0JywKLSsgICAgICAgICAgICAncGFyZW50LnR4dCcsCi0rICAgICAgICBd Ci0rCi0gCi0gY2xhc3MgRW5jb2RlZE1ldGFkYXRhVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgot ICAgICBmaWxlX25hbWVzID0gWydcdTRlMDAnLCAnXHU0ZThjJywgJ1x1NGUwOSddICAjIEhhbiAn b25lJywgJ3R3bycsICd0aHJlZScKLWRpZmYgLS1naXQgYS9MaWIvemlwZmlsZS5weSBiL0xpYi96 aXBmaWxlLnB5Ci1pbmRleCA4NjgyOWFiY2U0Li5iN2JmOWVmN2UzIDEwMDY0NAotLS0tIGEvTGli L3ppcGZpbGUucHkKLSsrKyBiL0xpYi96aXBmaWxlLnB5Ci1AQCAtOSw2ICs5LDcgQEAKLSBpbXBv cnQgaXRlcnRvb2xzCi0gaW1wb3J0IG9zCi0gaW1wb3J0IHBvc2l4cGF0aAotK2ltcG9ydCByZQot IGltcG9ydCBzaHV0aWwKLSBpbXBvcnQgc3RhdAotIGltcG9ydCBzdHJ1Y3QKLUBAIC0yMjQzLDcg KzIyNDQsNjUgQEAgZGVmIF9kaWZmZXJlbmNlKG1pbnVlbmQsIHN1YnRyYWhlbmQpOgotICAgICBy ZXR1cm4gaXRlcnRvb2xzLmZpbHRlcmZhbHNlKHNldChzdWJ0cmFoZW5kKS5fX2NvbnRhaW5zX18s IG1pbnVlbmQpCi0gCi0gCi0tY2xhc3MgQ29tcGxldGVEaXJzKFppcEZpbGUpOgotK2NsYXNzIFNh bml0aXplZE5hbWVzOgotKyAgICAiIiIKLSsgICAgWmlwRmlsZSBtaXgtaW4gdG8gZW5zdXJlIG5h bWVzIGFyZSBzYW5pdGl6ZWQuCi0rICAgICIiIgotKwotKyAgICBkZWYgbmFtZWxpc3Qoc2VsZik6 Ci0rICAgICAgICByZXR1cm4gbGlzdChtYXAoc2VsZi5fc2FuaXRpemUsIHN1cGVyKCkubmFtZWxp c3QoKSkpCi0rCi0rICAgIEBzdGF0aWNtZXRob2QKLSsgICAgZGVmIF9zYW5pdGl6ZShuYW1lKToK LSsgICAgICAgIHIiIiIKLSsgICAgICAgIEVuc3VyZSBhIHJlbGF0aXZlIHBhdGggd2l0aCBwb3Np eCBzZXBhcmF0b3JzIGFuZCBubyBkb3QgbmFtZXMuCi0rICAgICAgICBNb2RlbGVkIGFmdGVyCi0r ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2NweXRob24vYmxvYi9iY2MxYmUzOWNi MWQwNGFkOWZjMGJkMWI5MTkzZDM5NzI4MzVhNTdjL0xpYi96aXBmaWxlL19faW5pdF9fLnB5I0wx Nzk5LUwxODEzCi0rICAgICAgICBidXQgcHJvdmlkZXMgY29uc2lzdGVudCBjcm9zcy1wbGF0Zm9y bSBiZWhhdmlvci4KLSsgICAgICAgID4+PiBzYW4gPSBTYW5pdGl6ZWROYW1lcy5fc2FuaXRpemUK LSsgICAgICAgID4+PiBzYW4oJy9mb28vYmFyJykKLSsgICAgICAgICdmb28vYmFyJwotKyAgICAg ICAgPj4+IHNhbignLy9mb28udHh0JykKLSsgICAgICAgICdmb28udHh0JwotKyAgICAgICAgPj4+ IHNhbignZm9vLy4uLy4vYmFyLnR4dCcpCi0rICAgICAgICAnZm9vL2Jhci50eHQnCi0rICAgICAg ICA+Pj4gc2FuKCdmb28uLi8uYmFyLnR4dCcpCi0rICAgICAgICAnZm9vLi4vLmJhci50eHQnCi0r ICAgICAgICA+Pj4gc2FuKCdcXGZvb1xcYmFyLnR4dCcpCi0rICAgICAgICAnZm9vL2Jhci50eHQn Ci0rICAgICAgICA+Pj4gc2FuKCdEOlxcZm9vLnR4dCcpCi0rICAgICAgICAnRC9mb28udHh0Jwot KyAgICAgICAgPj4+IHNhbignXFxcXHNlcnZlclxcc2hhcmVcXGZpbGUudHh0JykKLSsgICAgICAg ICdzZXJ2ZXIvc2hhcmUvZmlsZS50eHQnCi0rICAgICAgICA+Pj4gc2FuKCdcXFxcP1xcR0xPQkFM Uk9PVFxcVm9sdW1lMycpCi0rICAgICAgICAnPy9HTE9CQUxST09UL1ZvbHVtZTMnCi0rICAgICAg ICA+Pj4gc2FuKCdcXFxcLlxcUGh5c2ljYWxEcml2ZTFcXHJvb3QnKQotKyAgICAgICAgJ1BoeXNp Y2FsRHJpdmUxL3Jvb3QnCi0rICAgICAgICBSZXRhaW4gYW55IHRyYWlsaW5nIHNsYXNoLgotKyAg ICAgICAgPj4+IHNhbignYWJjLycpCi0rICAgICAgICAnYWJjLycKLSsgICAgICAgIFJhaXNlcyBh IFZhbHVlRXJyb3IgaWYgdGhlIHJlc3VsdCBpcyBlbXB0eS4KLSsgICAgICAgID4+PiBzYW4oJy4u Ly4uJykKLSsgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKLSsgICAg ICAgIC4uLgotKyAgICAgICAgVmFsdWVFcnJvcjogRW1wdHkgZmlsZW5hbWUKLSsgICAgICAgICIi IgotKwotKyAgICAgICAgZGVmIGFsbG93ZWQocGFydCk6Ci0rICAgICAgICAgICAgcmV0dXJuIHBh cnQgYW5kIHBhcnQgbm90IGluIHsnLi4nLCAnLid9Ci0rCi0rICAgICAgICAjIFJlbW92ZSB0aGUg ZHJpdmUgbGV0dGVyLgotKyAgICAgICAgIyBEb24ndCB1c2UgbnRwYXRoLnNwbGl0ZHJpdmUsIGJl Y2F1c2UgdGhhdCBhbHNvIHN0cmlwcyBVTkMgcGF0aHMKLSsgICAgICAgIGJhcmUgPSByZS5zdWIo J14oW0EtWl0pOicsIHInXDEnLCBuYW1lLCBmbGFncz1yZS5JR05PUkVDQVNFKQotKyAgICAgICAg Y2xlYW4gPSBiYXJlLnJlcGxhY2UoJ1xcJywgJy8nKQotKyAgICAgICAgcGFydHMgPSBjbGVhbi5z cGxpdCgnLycpCi0rICAgICAgICBqb2luZWQgPSAnLycuam9pbihmaWx0ZXIoYWxsb3dlZCwgcGFy dHMpKQotKyAgICAgICAgaWYgbm90IGpvaW5lZDoKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCJFbXB0eSBmaWxlbmFtZSIpCi0rICAgICAgICByZXR1cm4gam9pbmVkICsgJy8nICogbmFt ZS5lbmRzd2l0aCgnLycpCi0rCi0rCi0rY2xhc3MgQ29tcGxldGVEaXJzKFNhbml0aXplZE5hbWVz LCBaaXBGaWxlKToKLSAgICAgIiIiCi0gICAgIEEgWmlwRmlsZSBzdWJjbGFzcyB0aGF0IGVuc3Vy ZXMgdGhhdCBpbXBsaWVkIGRpcmVjdG9yaWVzCi0gICAgIGFyZSBhbHdheXMgaW5jbHVkZWQgaW4g dGhlIG5hbWVsaXN0LgotZGlmZiAtLWdpdCBhL01pc2MvTkVXUy5kL25leHQvTGlicmFyeS8yMDI0 LTA4LTExLTE0LTA4LTA0LmdoLWlzc3VlLTEyMjkwNS43dERzeEEucnN0IGIvTWlzYy9ORVdTLmQv bmV4dC9MaWJyYXJ5LzIwMjQtMDgtMTEtMTQtMDgtMDQuZ2gtaXNzdWUtMTIyOTA1Ljd0RHN4QS5y c3QKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAwLi4xYmU0NGM5MDZjCi0t LS0gL2Rldi9udWxsCi0rKysgYi9NaXNjL05FV1MuZC9uZXh0L0xpYnJhcnkvMjAyNC0wOC0xMS0x NC0wOC0wNC5naC1pc3N1ZS0xMjI5MDUuN3REc3hBLnJzdAotQEAgLTAsMCArMSBAQAotKzpjbGFz czpgemlwZmlsZS5QYXRoYCBvYmplY3RzIG5vdyBzYW5pdGl6ZSBuYW1lcyBmcm9tIHRoZSB6aXBm aWxlLgoKZGlmZiAtLWdpdCBhLzAwNDQtdGVzdHMtZml4LXRlc3RfYnl0ZXMucGF0Y2ggYi8wMDQ0 LXRlc3RzLWZpeC10ZXN0X2J5dGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjFjZWIxMTAKLS0tIC9kZXYvbnVsbAorKysgYi8wMDQ0LXRlc3RzLWZpeC10ZXN0X2J5 dGVzLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQ eXRob24tMy4xNC43L0xpYi90ZXN0L3Rlc3RfYnl0ZXMucHkgUHl0aG9uLTMuMTQuNy1uZXcvTGli L3Rlc3QvdGVzdF9ieXRlcy5weQorLS0tIFB5dGhvbi0zLjE0LjcvTGliL3Rlc3QvdGVzdF9ieXRl cy5weQkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0 LjctbmV3L0xpYi90ZXN0L3Rlc3RfYnl0ZXMucHkJMjAyNi0wOS0yMiAwOTowNjo0Mi43MzM5MDY4 ODcgKzAyMDAKK0BAIC0xMjQ1LDcgKzEyNDUsNyBAQCBjbGFzcyBCeXRlc1Rlc3QoQmFzZUJ5dGVz VGVzdCwgdW5pdHRlc3QuCisgCisgICAgICAgICBpZiBvcy5uYW1lID09ICdudCc6CisgICAgICAg ICAgICAgIyBXaW5kb3dzIChNU0NSVCkKKy0gICAgICAgICAgICBwdHJfZm9ybWF0ID0gJzB4JTB7 fVgnLmZvcm1hdCgyICogc2l6ZW9mX3B0cikKKysgICAgICAgICAgICBwdHJfZm9ybWF0ID0gJzB4 JTB7fXgnLmZvcm1hdCgyICogc2l6ZW9mX3B0cikKKyAgICAgICAgICAgICBkZWYgcHRyX2Zvcm1h dHRlcihwdHIpOgorICAgICAgICAgICAgICAgICByZXR1cm4gKHB0cl9mb3JtYXQgJSBwdHIpCisg ICAgICAgICBlbHNlOgoKZGlmZiAtLWdpdCBhLzAwNDUtdGltZW1vZHVsZS1hZGQtTUlOR1ctc3Vw cG9ydC5wYXRjaCBiLzAwNDUtdGltZW1vZHVsZS1hZGQtTUlOR1ctc3VwcG9ydC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjBkMGQwCi0tLSAvZGV2L251bGwKKysr IGIvMDA0NS10aW1lbW9kdWxlLWFkZC1NSU5HVy1zdXBwb3J0LnBhdGNoCkBAIC0wLDAgKzEsMjEg QEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvdGlt ZW1vZHVsZS5jIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvdGltZW1vZHVsZS5jCistLS0gUHl0 aG9uLTMuMTQuNy9Nb2R1bGVzL3RpbWVtb2R1bGUuYwkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAw MDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvdGltZW1vZHVsZS5jCTIw MjYtMDktMjIgMDk6MDY6NDMuMDI4NjgxMjk3ICswMjAwCitAQCAtNDEsNyArNDEsNyBAQAorICMg IGluY2x1ZGUgPHNhbml0aXplci9tc2FuX2ludGVyZmFjZS5oPgorICNlbmRpZgorIAorLSNpZmRl ZiBfTVNDX1ZFUgorKyNpZmRlZiBNU19XSU5ET1dTCisgIyAgZGVmaW5lIF9QeV90aW1lem9uZSBf dGltZXpvbmUKKyAjICBkZWZpbmUgX1B5X2RheWxpZ2h0IF9kYXlsaWdodAorICMgIGRlZmluZSBf UHlfdHpuYW1lIF90em5hbWUKK0BAIC04OTgsNyArODk4LDcgQEAgdGltZV9zdHJmdGltZShQeU9i amVjdCAqbW9kdWxlLCBQeU9iamVjdAorIC8vCisgLy8gQW5kcm9pZCB3b3JrcyB3aXRoIG5lZ2F0 aXZlIHllYXJzIG9uIHRoZSBlbXVsYXRvciwgYnV0IGZhaWxzIG9uIHNvbWUKKyAvLyBwaHlzaWNh bCBkZXZpY2VzICgjMTIzMDE3KS4KKy0jaWYgZGVmaW5lZChfTVNDX1ZFUikgfHwgKGRlZmluZWQo X19zdW4pICYmIGRlZmluZWQoX19TVlI0KSkgfHwgZGVmaW5lZChfQUlYKSBcCisrI2lmIGRlZmlu ZWQoTVNfV0lORE9XUykgfHwgKGRlZmluZWQoX19zdW4pICYmIGRlZmluZWQoX19TVlI0KSkgfHwg ZGVmaW5lZChfQUlYKSBcCisgICAgIHx8IGRlZmluZWQoX19WWFdPUktTX18pIHx8IGRlZmluZWQo X19BTkRST0lEX18pCisgICAgIGlmIChidWYudG1feWVhciArIDE5MDAgPCAxIHx8IDk5OTkgPCBi dWYudG1feWVhciArIDE5MDApIHsKKyAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1 ZUVycm9yLAoKZGlmZiAtLWdpdCBhLzAwNDYtY29uZmlndXJlLURpc2FibGUtY2hlY2tzLWZvci1k bG9wZW4tZGxmY24ucGF0Y2ggYi8wMDQ2LWNvbmZpZ3VyZS1EaXNhYmxlLWNoZWNrcy1mb3ItZGxv cGVuLWRsZmNuLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0OTc1 MzQKLS0tIC9kZXYvbnVsbAorKysgYi8wMDQ2LWNvbmZpZ3VyZS1EaXNhYmxlLWNoZWNrcy1mb3It ZGxvcGVuLWRsZmNuLnBhdGNoCkBAIC0wLDAgKzEsNTEgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJl ZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25m aWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2 OjQyLjcyODkwNzIzNSArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwky MDI2LTA5LTIyIDA5OjA2OjQzLjMzMDg2NTI1MSArMDIwMAorQEAgLTMyMjQsNyArMzIyNCw3IEBA IEFDX0RFRklORShbU1REQ19IRUFERVJTXSwgWzFdLAorIAorICMgY2hlY2tzIGZvciBoZWFkZXIg ZmlsZXMKKyBBQ19DSEVDS19IRUFERVJTKFsgXAorLSAgYWxsb2NhLmggYXNtL3R5cGVzLmggYmx1 ZXRvb3RoLmggY29uaW8uaCBkaXJlY3QuaCBkbGZjbi5oIGVuZGlhbi5oIGVycm5vLmggZmNudGwu aCBncnAuaCBcCisrICBhbGxvY2EuaCBhc20vdHlwZXMuaCBibHVldG9vdGguaCBjb25pby5oIGRp cmVjdC5oIGVuZGlhbi5oIGVycm5vLmggZmNudGwuaCBncnAuaCBcCisgICBpby5oIGxhbmdpbmZv LmggbGliaW50bC5oIGxpYnV0aWwuaCBsaW51eC9hdXh2ZWMuaCBzeXMvYXV4di5oIGxpbnV4L2Zz LmggbGludXgvbGltaXRzLmggbGludXgvbWVtZmQuaCBcCisgICBsaW51eC9uZXRmaWx0ZXJfaXB2 NC5oIGxpbnV4L3JhbmRvbS5oIGxpbnV4L3NvdW5kY2FyZC5oIGxpbnV4L3NjaGVkLmggXAorICAg bGludXgvdGlwYy5oIGxpbnV4L3dhaXQuaCBuZXRkYi5oIG5ldC9ldGhlcm5ldC5oIG5ldGluZXQv aW4uaCBuZXRwYWNrZXQvcGFja2V0LmggcG9sbC5oIHByb2Nlc3MuaCBwdHkuaCBcCitAQCAtMzIz Nyw2ICszMjM3LDEyIEBAIEFDX0NIRUNLX0hFQURFUlMoWyBcCisgICBzeXMvdHlwZXMuaCBzeXMv dWlvLmggc3lzL3VuLmggc3lzL3V0c25hbWUuaCBzeXMvd2FpdC5oIHN5cy94YXR0ci5oIHN5c2V4 aXRzLmggc3lzbG9nLmggXAorICAgdGVybWlvcy5oIHV0aWwuaCB1dGltZS5oIHV0bXAuaCBcCisg XSkKKysKKytjYXNlICRob3N0IGluCisrICAqLSotbWluZ3cqKSA7OworKyAgKikgQUNfQ0hFQ0tf SEVBREVSUyhbZGxmY24uaF0pOzsKKytlc2FjCisrCisgQUNfSEVBREVSX0RJUkVOVAorIEFDX0hF QURFUl9NQUpPUgorIAorQEAgLTM5ODEsNyArMzk4NywxMiBAQCBBQ19TVUJTVChbUEVSRl9UUkFN UE9MSU5FX09CSl0pCisgCisgIyBjaGVja3MgZm9yIGxpYnJhcmllcworIEFDX0NIRUNLX0xJQihb c2VuZGZpbGVdLCBbc2VuZGZpbGVdKQorLUFDX0NIRUNLX0xJQihbZGxdLCBbZGxvcGVuXSkgICAg ICAgIyBEeW5hbWljIGxpbmtpbmcgZm9yIFN1bk9TL1NvbGFyaXMgYW5kIFNZU1YKKysKKytjYXNl ICRob3N0IGluCisrICAqLSotbWluZ3cqKSA7OworKyAgKikgQUNfQ0hFQ0tfTElCKFtkbF0sIFtk bG9wZW5dKSA7OwkjIER5bmFtaWMgbGlua2luZyBmb3IgU3VuT1MvU29sYXJpcyBhbmQgU1lTVgor K2VzYWMKKysKKyBBQ19DSEVDS19MSUIoW2RsZF0sIFtzaGxfbG9hZF0pICAgICMgRHluYW1pYyBs aW5raW5nIGZvciBIUC1VWAorIAorIAorQEAgLTY1OTUsNyArNjYwNiwxMCBAQCBBU19WQVJfSUYo W2FjX2N2X2Jyb2tlbl9zZW1fZ2V0dmFsdWVdLCBbCisgICApCisgXSkKKyAKKy1BQ19DSEVDS19E RUNMUyhbUlRMRF9MQVpZLCBSVExEX05PVywgUlRMRF9HTE9CQUwsIFJUTERfTE9DQUwsIFJUTERf Tk9ERUxFVEUsIFJUTERfTk9MT0FELCBSVExEX0RFRVBCSU5ELCBSVExEX01FTUJFUl0sIFtdLCBb XSwgW1tAJTpAaW5jbHVkZSA8ZGxmY24uaD5dXSkKKytjYXNlICRob3N0IGluCisrICAqLSotbWlu Z3cqKSA7OworKyAgKikgQUNfQ0hFQ0tfREVDTFMoW1JUTERfTEFaWSwgUlRMRF9OT1csIFJUTERf R0xPQkFMLCBSVExEX0xPQ0FMLCBSVExEX05PREVMRVRFLCBSVExEX05PTE9BRCwgUlRMRF9ERUVQ QklORCwgUlRMRF9NRU1CRVJdLCBbXSwgW10sIFtbQCU6QGluY2x1ZGUgPGRsZmNuLmg+XV0pCisr ZXNhYworIAorICMgZGV0ZXJtaW5lIHdoYXQgc2l6ZSBkaWdpdCB0byB1c2UgZm9yIFB5dGhvbidz IGxvbmdzCisgQUNfTVNHX0NIRUNLSU5HKFtkaWdpdCBzaXplIGZvciBQeXRob24ncyBsb25nc10p CgpkaWZmIC0tZ2l0IGEvMDA0Ny12ZW52bGF1bmNoZXItQnVpbGQtdmVudmxhdW5jaGVyLmV4ZS1m cm9tLVBDLWxhdW5jaGVyLnBhdGNoIGIvMDA0Ny12ZW52bGF1bmNoZXItQnVpbGQtdmVudmxhdW5j aGVyLmV4ZS1mcm9tLVBDLWxhdW5jaGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmM1ZThlNjkKLS0tIC9kZXYvbnVsbAorKysgYi8wMDQ3LXZlbnZsYXVuY2hlci1C dWlsZC12ZW52bGF1bmNoZXIuZXhlLWZyb20tUEMtbGF1bmNoZXIucGF0Y2gKQEAgLTAsMCArMSwx NjcgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01ha2VmaWxl LnByZS5pbiBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4KKy0tLSBQeXRob24tMy4x NC43L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjQxLjU1NjAxMDg1OCArMDIwMAor KysrIFB5dGhvbi0zLjE0LjctbmV3L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjQz LjYzNzUzNjgzMiArMDIwMAorQEAgLTE3OSw2ICsxNzksNyBAQCBCSU5MSUJERVNUPQlAQklOTElC REVTVEAKKyBMSUJERVNUPQkkKFNDUklQVERJUikvcHl0aG9uJChWRVJTSU9OKSQoQUJJX1RIUkVB RCkKKyBJTkNMVURFUFk9CSQoSU5DTFVERURJUikvcHl0aG9uJChMRFZFUlNJT04pCisgQ09ORklO Q0xVREVQWT0JJChDT05GSU5DTFVERURJUikvcHl0aG9uJChMRFZFUlNJT04pCisrVkVOVkxBVU5D SEVSRElSPQkkKEJJTkxJQkRFU1QpL3ZlbnYvc2NyaXB0cy9udAorIAorICMgU3ltYm9scyB1c2Vk IGZvciB1c2luZyBzaGFyZWQgbGlicmFyaWVzCisgU0hMSUJfU1VGRklYPQlAU0hMSUJfU1VGRklY QAorQEAgLTMxNSw2ICszMTYsOCBAQCBMSUJPQkpTPQlATElCT0JKU0AKKyBQWVRIT049CQlweXRo b24kKEVYRSkKKyBCVUlMRFBZVEhPTj0JcHl0aG9uJChCVUlMREVYRSkKKyBCVUlMRFBZVEhPTlc9 CXB5dGhvbnckKEJVSUxERVhFKQorK0JVSUxEVkVOVkxBVU5DSEVSPQl2ZW52bGF1bmNoZXIkKEJV SUxERVhFKQorK0JVSUxEVkVOVldMQVVOQ0hFUj0JdmVudndsYXVuY2hlciQoQlVJTERFWEUpCisg CisgSE9TVFJVTk5FUj0gQEhPU1RSVU5ORVJACisgCitAQCAtODEyLDcgKzgxNSw3IEBAIGxpc3Qt dGFyZ2V0czoKKyAJQGdyZXAgLUUgJ15bQS1aYS16XVstQS1aYS16MC05XSs6JyBNYWtlZmlsZSB8 IGF3ayAtRiA6ICd7cHJpbnQgJCQxfScKKyAKKyAuUEhPTlk6IGJ1aWxkX2FsbAorLWJ1aWxkX2Fs bDoJY2hlY2stY2xlYW4tc3JjIGNoZWNrLWFwcC1zdG9yZS1jb21wbGlhbmNlICQoQlVJTERQWVRI T04pICQoQlVJTERQWVRIT05XKSBwbGF0Zm9ybSBzaGFyZWRtb2RzIFwKKytidWlsZF9hbGw6CWNo ZWNrLWNsZWFuLXNyYyBjaGVjay1hcHAtc3RvcmUtY29tcGxpYW5jZSAkKEJVSUxEUFlUSE9OKSAk KEJVSUxEUFlUSE9OVykgJChCVUlMRFZFTlZMQVVOQ0hFUikgJChCVUlMRFZFTlZXTEFVTkNIRVIp IHBsYXRmb3JtIHNoYXJlZG1vZHMgXAorIAkJZ2RiaG9va3MgUHJvZ3JhbXMvX3Rlc3RlbWJlZCBz Y3JpcHRzIGNoZWNrc2hhcmVkbW9kcyBydW5kc3ltdXRpbCBidWlsZC1kZXRhaWxzLmpzb24KKyAK KyAuUEhPTlk6IGJ1aWxkX3dhc20KK0BAIC0xMDA1LDYgKzEwMDgsMTIgQEAgcHl0aG9ud19leGUu bzogJChzcmNkaXIpL1BDL3B5dGhvbndfZXhlLgorIHB5dGhvbl9udC5vOiAkKHNyY2RpcikvUEMv cHl0aG9uX250LnJjCisgCSQoV0lORFJFUykgJChSQ0ZMQUdTKSAtRE9SSUdJTkFMX0ZJTEVOQU1F PVxcXCIkKERMTExJQlJBUlkpXFxcIiAtSSQoc3JjZGlyKS9JbmNsdWRlIC1JJChzcmNkaXIpL1BD IC1JLiAkKHNyY2RpcikvUEMvcHl0aG9uX250LnJjICRACisgCisrdmVudmxhdW5jaGVyLm86ICQo c3JjZGlyKS9QQy9weWxhdW5jaGVyLnJjCisrCSQoV0lORFJFUykgJChSQ0ZMQUdTKSAtRFBZX0lD T04gLUkkKHNyY2RpcikvSW5jbHVkZSAtSSQoc3JjZGlyKS9QQyAtSS4gJChzcmNkaXIpL1BDL3B5 bGF1bmNoZXIucmMgJEAKKysKKyt2ZW52d2xhdW5jaGVyLm86ICQoc3JjZGlyKS9QQy9weWxhdW5j aGVyLnJjCisrCSQoV0lORFJFUykgJChSQ0ZMQUdTKSAtRFBZV19JQ09OIC1JJChzcmNkaXIpL0lu Y2x1ZGUgLUkkKHNyY2RpcikvUEMgLUkuICQoc3JjZGlyKS9QQy9weWxhdW5jaGVyLnJjICRACisr CisgJChCVUlMRFBZVEhPTlcpOiBQcm9ncmFtcy9weXRob24ubyAkKExJQlJBUlkpICQoTERMSUJS QVJZKSAkKFBZM0xJQlJBUlkpIHB5dGhvbndfZXhlLm8KKyAJJChMSU5LQ0MpICQoUFlfQ09SRV9M REZMQUdTKSAkKExJTktGT1JTSEFSRUQpIC1tdW5pY29kZSAtbXdpbmRvd3MgLW8gJEAgUHJvZ3Jh bXMvcHl0aG9uLm8gJChCTERMSUJSQVJZKSAkKExJQlMpICQoTU9ETElCUykgJChTWVNMSUJTKSBw eXRob253X2V4ZS5vCisgCitAQCAtMTAxMiw2ICsxMDIxLDEyIEBAICQoQlVJTERQWVRIT05XKTog UHJvZ3JhbXMvcHl0aG9uLm8gJChMSUIKKyAkKEJVSUxEUFlUSE9OKToJUHJvZ3JhbXMvcHl0aG9u Lm8gJChMSU5LX1BZVEhPTl9ERVBTKSBweXRob25fZXhlLm8KKyAJJChMSU5LQ0MpICQoUFlfQ09S RV9MREZMQUdTKSAkKExJTktGT1JTSEFSRUQpIC1tdW5pY29kZSAtbyAkQCBQcm9ncmFtcy9weXRo b24ubyAkKExJTktfUFlUSE9OX09CSlMpICQoTElCUykgJChNT0RMSUJTKSAkKFNZU0xJQlMpIHB5 dGhvbl9leGUubworIAorKyQoQlVJTERWRU5WTEFVTkNIRVIpOiAkKEJVSUxEUFlUSE9OKSB2ZW52 bGF1bmNoZXIubyAgJChzcmNkaXIpL1BDL2xhdW5jaGVyLmMKKysJJChMSU5LQ0MpIC1EX0NPTlNP TEUgLURWRU5WX1JFRElSRUNUICQoUFlfU1RETU9EVUxFX0NGTEFHUykgLW11bmljb2RlIC1zdGF0 aWMgLXN0YXRpYy1saWJnY2MgLXN0YXRpYy1saWJzdGRjKysgdmVudmxhdW5jaGVyLm8gJChzcmNk aXIpL1BDL2xhdW5jaGVyLmMgLW8gJEAgLWx2ZXJzaW9uCisrCisrJChCVUlMRFZFTlZXTEFVTkNI RVIpOiAkKEJVSUxEUFlUSE9OVykgdmVudndsYXVuY2hlci5vICAkKHNyY2RpcikvUEMvbGF1bmNo ZXIuYworKwkkKExJTktDQykgLURfV0lORE9XUyAtRFZFTlZfUkVESVJFQ1QgJChQWV9TVERNT0RV TEVfQ0ZMQUdTKSAtbXdpbmRvd3MgLW11bmljb2RlIC1zdGF0aWMgLXN0YXRpYy1saWJnY2MgLXN0 YXRpYy1saWJzdGRjKysgdmVudndsYXVuY2hlci5vICQoc3JjZGlyKS9QQy9sYXVuY2hlci5jIC1v ICRAIC1sdmVyc2lvbgorKworIHBsYXRmb3JtOiAkKFBZVEhPTl9GT1JfQlVJTERfREVQUykgcHli dWlsZGRpci50eHQKKyAJJChSVU5TSEFSRUQpICQoUFlUSE9OX0ZPUl9CVUlMRCkgLWMgJ2ltcG9y dCBzeXMgOyBmcm9tIHN5c2NvbmZpZyBpbXBvcnQgZ2V0X3BsYXRmb3JtIDsgcHJpbnQoIiVzLSVk LiVkIiAlIChnZXRfcGxhdGZvcm0oKSwgKnN5cy52ZXJzaW9uX2luZm9bOjJdKSknID5wbGF0Zm9y bQorIAorQEAgLTI0NTMsNyArMjQ2OCw3IEBAIHNoYXJlZGluc3RhbGw6IGFsbAorICMgVGhpcyBn b2VzIGludG8gJChleGVjX3ByZWZpeCkKKyAuUEhPTlk6IGFsdGJpbmluc3RhbGwKKyBhbHRiaW5p bnN0YWxsOiAkKEJVSUxEUFlUSE9OKSBARlJBTUVXT1JLUFlUSE9OV0AKKy0JQGZvciBpIGluICQo QklORElSKSAkKExJQkRJUik7IFwKKysJQGZvciBpIGluICQoQklORElSKSAkKExJQkRJUikgJChW RU5WTEFVTkNIRVJESVIpOyBcCisgCWRvIFwKKyAJCWlmIHRlc3QgISAtZCAkKERFU1RESVIpJCRp OyB0aGVuIFwKKyAJCQllY2hvICJDcmVhdGluZyBkaXJlY3RvcnkgJCRpIjsgXAorQEAgLTI0NjUs NiArMjQ4MCw4IEBAIGFsdGJpbmluc3RhbGw6ICQoQlVJTERQWVRIT04pIEBGUkFNRVdPUksKKyAJ CSQoSU5TVEFMTF9QUk9HUkFNKSAkKEJVSUxEUFlUSE9OKSAkKERFU1RESVIpJChCSU5ESVIpL3B5 dGhvbiQoTERWRVJTSU9OKSQoRVhFKTsgXAorIAkJJChJTlNUQUxMX1BST0dSQU0pICQoQlVJTERQ WVRIT05XKSAkKERFU1RESVIpJChCSU5ESVIpL3B5dGhvbjN3JChFWEUpOyBcCisgCQkkKElOU1RB TExfUFJPR1JBTSkgJChCVUlMRFBZVEhPTlcpICQoREVTVERJUikkKEJJTkRJUikvcHl0aG9uJChM RFZFUlNJT04pdyQoRVhFKTsgXAorKwkJJChJTlNUQUxMX1BST0dSQU0pICQoQlVJTERWRU5WTEFV TkNIRVIpICQoREVTVERJUikkKFZFTlZMQVVOQ0hFUkRJUikvJChCVUlMRFZFTlZMQVVOQ0hFUik7 IFwKKysJCSQoSU5TVEFMTF9QUk9HUkFNKSAkKEJVSUxEVkVOVldMQVVOQ0hFUikgJChERVNURElS KSQoVkVOVkxBVU5DSEVSRElSKS8kKEJVSUxEVkVOVldMQVVOQ0hFUik7IFwKKyAJZWxzZSBcCisg CQkkKElOU1RBTExfUFJPR1JBTSkgJChTVFJJUEZMQUcpIE1hYy9weXRob253ICQoREVTVERJUikk KEJJTkRJUikvcHl0aG9uJChMRFZFUlNJT04pJChFWEUpOyBcCisgCWZpCitAQCAtMjYxMyw3ICsy NjMwLDcgQEAgTElCU1VCRElSUz0JYXN5bmNpbyBcCisgCQl0dXJ0bGVkZW1vIFwKKyAJCXVuaXR0 ZXN0IFwKKyAJCXVybGxpYiBcCistCQl2ZW52IHZlbnYvc2NyaXB0cyB2ZW52L3NjcmlwdHMvY29t bW9uIHZlbnYvc2NyaXB0cy9wb3NpeCBcCisrCQl2ZW52IHZlbnYvc2NyaXB0cyB2ZW52L3Njcmlw dHMvY29tbW9uIHZlbnYvc2NyaXB0cy9wb3NpeCB2ZW52L3NjcmlwdHMvbnQgXAorIAkJd3NnaXJl ZiBcCisgCQkkKFhNTExJQlNVQkRJUlMpIFwKKyAJCXhtbHJwYyBcCitkaWZmIC1ydXBOIC0tbm8t ZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QQy9sYXVuY2hlci5jIFB5dGhvbi0zLjE0LjctbmV3 L1BDL2xhdW5jaGVyLmMKKy0tLSBQeXRob24tMy4xNC43L1BDL2xhdW5jaGVyLmMJMjAyNi0wOC0w NSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9QQy9sYXVu Y2hlci5jCTIwMjYtMDktMjIgMDk6MDY6NDMuNjM4MDg0NjM2ICswMjAwCitAQCAtOTI0LDcgKzky NCw3IEBAIHN0YXRpYyBDT01NQU5EIHBhdGhfY29tbWFuZDsKKyBzdGF0aWMgQ09NTUFORCAqIGZp bmRfb25fcGF0aCh3Y2hhcl90ICogbmFtZSkKKyB7CisgICAgIHdjaGFyX3QgKiBwYXRoZXh0Owor LSAgICBzaXplX3QgICAgdmFyc2l6ZTsKKysgICAgc2l6ZV90ICAgIHJlcXVpcmVkU2l6ZTsKKyAg ICAgd2NoYXJfdCAqIGNvbnRleHQgPSBOVUxMOworICAgICB3Y2hhcl90ICogZXh0ZW5zaW9uOwor ICAgICBDT01NQU5EICogcmVzdWx0ID0gTlVMTDsKK0BAIC05NDEsMTggKzk0MSwyMyBAQCBzdGF0 aWMgQ09NTUFORCAqIGZpbmRfb25fcGF0aCh3Y2hhcl90ICoKKyAgICAgfQorICAgICBlbHNlIHsK KyAgICAgICAgIC8qIE5vIGV4dGVuc2lvbiAtIHNlYXJjaCB1c2luZyByZWdpc3RlcmVkIGV4dGVu c2lvbnMuICovCistICAgICAgICByYyA9IF93ZHVwZW52X3MoJnBhdGhleHQsICZ2YXJzaXplLCBM IlBBVEhFWFQiKTsKKy0gICAgICAgIGlmIChyYyA9PSAwKSB7CistICAgICAgICAgICAgZXh0ZW5z aW9uID0gd2NzdG9rX3MocGF0aGV4dCwgTCI7IiwgJmNvbnRleHQpOworLSAgICAgICAgICAgIHdo aWxlIChleHRlbnNpb24pIHsKKy0gICAgICAgICAgICAgICAgbGVuID0gU2VhcmNoUGF0aFcoTlVM TCwgbmFtZSwgZXh0ZW5zaW9uLCBNU0dTSVpFLCBwYXRoX2NvbW1hbmQudmFsdWUsIE5VTEwpOwor LSAgICAgICAgICAgICAgICBpZiAobGVuKSB7CistICAgICAgICAgICAgICAgICAgICByZXN1bHQg PSAmcGF0aF9jb21tYW5kOworLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBf d2dldGVudl9zKCZyZXF1aXJlZFNpemUsIE5VTEwsIDAsIEwiUEFUSEVYVCIpOworKyAgICAgICAg aWYgKHJlcXVpcmVkU2l6ZSA+IDApIHsKKysgICAgICAgICAgICBwYXRoZXh0ID0gKHdjaGFyX3Qg KiltYWxsb2MocmVxdWlyZWRTaXplICogc2l6ZW9mKHdjaGFyX3QpKTsKKysgICAgICAgICAgICAv KiBObyBleHRlbnNpb24gLSBzZWFyY2ggdXNpbmcgcmVnaXN0ZXJlZCBleHRlbnNpb25zLiAqLwor KyAgICAgICAgICAgIHJjID0gX3dnZXRlbnZfcygmcmVxdWlyZWRTaXplLCBwYXRoZXh0LCByZXF1 aXJlZFNpemUsIEwiUEFUSEVYVCIpOworKyAgICAgICAgICAgIGlmIChyYyA9PSAwKSB7CisrICAg ICAgICAgICAgICAgIGV4dGVuc2lvbiA9IHdjc3Rva19zKHBhdGhleHQsIEwiOyIsICZjb250ZXh0 KTsKKysgICAgICAgICAgICAgICAgd2hpbGUgKGV4dGVuc2lvbikgeworKyAgICAgICAgICAgICAg ICAgICAgbGVuID0gU2VhcmNoUGF0aFcoTlVMTCwgbmFtZSwgZXh0ZW5zaW9uLCBNU0dTSVpFLCBw YXRoX2NvbW1hbmQudmFsdWUsIE5VTEwpOworKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbikg eworKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICZwYXRoX2NvbW1hbmQ7CisrICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgICAgICB9CisrICAg ICAgICAgICAgICAgICAgICBleHRlbnNpb24gPSB3Y3N0b2tfcyhOVUxMLCBMIjsiLCAmY29udGV4 dCk7CisgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gd2Nz dG9rX3MoTlVMTCwgTCI7IiwgJmNvbnRleHQpOworKyAgICAgICAgICAgICAgICBmcmVlKHBhdGhl eHQpOworICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBmcmVlKHBhdGhleHQpOworICAgICAg ICAgfQorICAgICB9CisgICAgIHJldHVybiByZXN1bHQ7CitAQCAtMTkxNCw3ICsxOTE5LDcgQEAg cHJvY2VzcyhpbnQgYXJnYywgd2NoYXJfdCAqKiBhcmd2KQorICAgICAgICAgaWYgKF93Zm9wZW5f cygmZiwgdmVudl9jZmdfcGF0aCwgTCJyIikpIHsKKyAgICAgICAgICAgICBlcnJvcihSQ19CQURf VkVOVl9DRkcsIEwiQ2Fubm90IHJlYWQgJyVscyciLCB2ZW52X2NmZ19wYXRoKTsKKyAgICAgICAg IH0KKy0gICAgICAgIGNiID0gZnJlYWRfcyhidWZmZXIsIHNpemVvZihidWZmZXIpLCBzaXplb2Yo YnVmZmVyWzBdKSwKKysgICAgICAgIGNiID0gZnJlYWQoYnVmZmVyLCBzaXplb2YoYnVmZmVyWzBd KSwKKyAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoYnVmZmVyKSAvIHNpemVvZihidWZmZXJb MF0pLCBmKTsKKyAgICAgICAgIGZjbG9zZShmKTsKKyAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVy ZW5jZSBQeXRob24tMy4xNC43L1BDL3B5bGF1bmNoZXIucmMgUHl0aG9uLTMuMTQuNy1uZXcvUEMv cHlsYXVuY2hlci5yYworLS0tIFB5dGhvbi0zLjE0LjcvUEMvcHlsYXVuY2hlci5yYwkyMDI2LTA4 LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L1BDL3B5 bGF1bmNoZXIucmMJMjAyNi0wOS0yMiAwOTowNjo0My42Mzg0NDQxODUgKzAyMDAKK0BAIC0xMiwx NyArMTIsMTcgQEAKKyAxIFJUX01BTklGRVNUICJweXRob24ubWFuaWZlc3QiCisgCisgI2lmIGRl ZmluZWQoUFlfSUNPTikKKy0xIElDT04gRElTQ0FSREFCTEUgImljb25zXHB5dGhvbi5pY28iCisr MSBJQ09OIERJU0NBUkRBQkxFICJpY29ucy9weXRob24uaWNvIgorICNlbGlmIGRlZmluZWQoUFlX X0lDT04pCistMSBJQ09OIERJU0NBUkRBQkxFICJpY29uc1xweXRob253LmljbyIKKysxIElDT04g RElTQ0FSREFCTEUgImljb25zL3B5dGhvbncuaWNvIgorICNlbHNlCistMSBJQ09OIERJU0NBUkRB QkxFICJpY29uc1xsYXVuY2hlci5pY28iIAorLTIgSUNPTiBESVNDQVJEQUJMRSAiaWNvbnNccHku aWNvIiAKKy0zIElDT04gRElTQ0FSREFCTEUgImljb25zXHB5Yy5pY28iIAorLTQgSUNPTiBESVND QVJEQUJMRSAiaWNvbnNccHlkLmljbyIgCistNSBJQ09OIERJU0NBUkRBQkxFICJpY29uc1xweXRo b24uaWNvIgorLTYgSUNPTiBESVNDQVJEQUJMRSAiaWNvbnNccHl0aG9udy5pY28iCistNyBJQ09O IERJU0NBUkRBQkxFICJpY29uc1xzZXR1cC5pY28iIAorKzEgSUNPTiBESVNDQVJEQUJMRSAiaWNv bnMvbGF1bmNoZXIuaWNvIgorKzIgSUNPTiBESVNDQVJEQUJMRSAiaWNvbnMvcHkuaWNvIiAKKysz IElDT04gRElTQ0FSREFCTEUgImljb25zL3B5Yy5pY28iIAorKzQgSUNPTiBESVNDQVJEQUJMRSAi aWNvbnMvcHlkLmljbyIgCisrNSBJQ09OIERJU0NBUkRBQkxFICJpY29ucy9weXRob24uaWNvIgor KzYgSUNPTiBESVNDQVJEQUJMRSAiaWNvbnMvcHl0aG9udy5pY28iCisrNyBJQ09OIERJU0NBUkRB QkxFICJpY29ucy9zZXR1cC5pY28iIAorICNlbmRpZgorIAorIDEgVVNBR0UgImxhdW5jaGVyLXVz YWdlLnR4dCIKCmRpZmYgLS1naXQgYS8wMDQ4LXZlbnZsYXVuY2hlci10cnktbG9va2luZy1mb3It dGhlLXZlcnNpb25lZC0uZXhlLWZpcnMucGF0Y2ggYi8wMDQ4LXZlbnZsYXVuY2hlci10cnktbG9v a2luZy1mb3ItdGhlLXZlcnNpb25lZC0uZXhlLWZpcnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uODgwYjYzMQotLS0gL2Rldi9udWxsCisrKyBiLzAwNDgtdmVudmxh dW5jaGVyLXRyeS1sb29raW5nLWZvci10aGUtdmVyc2lvbmVkLS5leGUtZmlycy5wYXRjaApAQCAt MCwwICsxLDU0IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9N YWtlZmlsZS5wcmUuaW4gUHl0aG9uLTMuMTQuNy1uZXcvTWFrZWZpbGUucHJlLmluCistLS0gUHl0 aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAwOTowNjo0My45MzA5MjA2Mjgg KzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAw OTowNjo0My45MzU5NTIyOTkgKzAyMDAKK0BAIC0xMDIyLDEwICsxMDIyLDEwIEBAICQoQlVJTERQ WVRIT04pOglQcm9ncmFtcy9weXRob24ubyAkKExJTksKKyAJJChMSU5LQ0MpICQoUFlfQ09SRV9M REZMQUdTKSAkKExJTktGT1JTSEFSRUQpIC1tdW5pY29kZSAtbyAkQCBQcm9ncmFtcy9weXRob24u byAkKExJTktfUFlUSE9OX09CSlMpICQoTElCUykgJChNT0RMSUJTKSAkKFNZU0xJQlMpIHB5dGhv bl9leGUubworIAorICQoQlVJTERWRU5WTEFVTkNIRVIpOiAkKEJVSUxEUFlUSE9OKSB2ZW52bGF1 bmNoZXIubyAgJChzcmNkaXIpL1BDL2xhdW5jaGVyLmMKKy0JJChMSU5LQ0MpIC1EX0NPTlNPTEUg LURWRU5WX1JFRElSRUNUICQoUFlfU1RETU9EVUxFX0NGTEFHUykgLW11bmljb2RlIC1zdGF0aWMg LXN0YXRpYy1saWJnY2MgLXN0YXRpYy1saWJzdGRjKysgdmVudmxhdW5jaGVyLm8gJChzcmNkaXIp L1BDL2xhdW5jaGVyLmMgLW8gJEAgLWx2ZXJzaW9uCisrCSQoTElOS0NDKSAtRF9DT05TT0xFIC1E VkVOVl9SRURJUkVDVCAtRFBZVEhPTl9FWEVDVVRBQkxFX1dJVEhfVkVSU0lPTj0iTFwicHl0aG9u JChMRFZFUlNJT04pJChFWEUpXCIiICQoUFlfU1RETU9EVUxFX0NGTEFHUykgLW11bmljb2RlIC1z dGF0aWMgLXN0YXRpYy1saWJnY2MgLXN0YXRpYy1saWJzdGRjKysgdmVudmxhdW5jaGVyLm8gJChz cmNkaXIpL1BDL2xhdW5jaGVyLmMgLW8gJEAgLWx2ZXJzaW9uCisgCisgJChCVUlMRFZFTlZXTEFV TkNIRVIpOiAkKEJVSUxEUFlUSE9OVykgdmVudndsYXVuY2hlci5vICAkKHNyY2RpcikvUEMvbGF1 bmNoZXIuYworLQkkKExJTktDQykgLURfV0lORE9XUyAtRFZFTlZfUkVESVJFQ1QgJChQWV9TVERN T0RVTEVfQ0ZMQUdTKSAtbXdpbmRvd3MgLW11bmljb2RlIC1zdGF0aWMgLXN0YXRpYy1saWJnY2Mg LXN0YXRpYy1saWJzdGRjKysgdmVudndsYXVuY2hlci5vICQoc3JjZGlyKS9QQy9sYXVuY2hlci5j IC1vICRAIC1sdmVyc2lvbgorKwkkKExJTktDQykgLURfV0lORE9XUyAtRFZFTlZfUkVESVJFQ1Qg LURQWVRIT05fRVhFQ1VUQUJMRV9XSVRIX1ZFUlNJT049IkxcInB5dGhvbnckKExEVkVSU0lPTikk KEVYRSlcIiIgJChQWV9TVERNT0RVTEVfQ0ZMQUdTKSAtbXdpbmRvd3MgLW11bmljb2RlIC1zdGF0 aWMgLXN0YXRpYy1saWJnY2MgLXN0YXRpYy1saWJzdGRjKysgdmVudndsYXVuY2hlci5vICQoc3Jj ZGlyKS9QQy9sYXVuY2hlci5jIC1vICRAIC1sdmVyc2lvbgorIAorIHBsYXRmb3JtOiAkKFBZVEhP Tl9GT1JfQlVJTERfREVQUykgcHlidWlsZGRpci50eHQKKyAJJChSVU5TSEFSRUQpICQoUFlUSE9O X0ZPUl9CVUlMRCkgLWMgJ2ltcG9ydCBzeXMgOyBmcm9tIHN5c2NvbmZpZyBpbXBvcnQgZ2V0X3Bs YXRmb3JtIDsgcHJpbnQoIiVzLSVkLiVkIiAlIChnZXRfcGxhdGZvcm0oKSwgKnN5cy52ZXJzaW9u X2luZm9bOjJdKSknID5wbGF0Zm9ybQorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhv bi0zLjE0LjcvUEMvbGF1bmNoZXIuYyBQeXRob24tMy4xNC43LW5ldy9QQy9sYXVuY2hlci5jCist LS0gUHl0aG9uLTMuMTQuNy9QQy9sYXVuY2hlci5jCTIwMjYtMDktMjIgMDk6MDY6NDMuOTMxNjI5 MjExICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvUEMvbGF1bmNoZXIuYwkyMDI2LTA5LTIy IDA5OjA2OjQzLjkzNjQ5NjUyNCArMDIwMAorQEAgLTE5MzIsNyArMTkzMiw4IEBAIHByb2Nlc3Mo aW50IGFyZ2MsIHdjaGFyX3QgKiogYXJndikKKyAgICAgICAgIGlmICghY2NoKSB7CisgICAgICAg ICAgICAgZXJyb3IoMCwgTCJDYW5ub3QgZGV0ZXJtaW5lIG1lbW9yeSBmb3IgaG9tZSBwYXRoIik7 CisgICAgICAgICB9CistICAgICAgICBjY2ggKz0gKERXT1JEKXdjc2xlbihQWVRIT05fRVhFQ1VU QUJMRSkgKyA0OyAvKiBpbmNsdWRlIHNlcCwgbnVsbCBhbmQgcXVvdGVzICovCisrICAgICAgICBj Y2ggKz0gKERXT1JEKW1heCh3Y3NsZW4oUFlUSE9OX0VYRUNVVEFCTEVfV0lUSF9WRVJTSU9OKSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgIHdjc2xlbihQWVRIT05fRVhFQ1VUQUJMRSkpICsg NDsgLyogaW5jbHVkZSBzZXAsIG51bGwgYW5kIHF1b3RlcyAqLworICAgICAgICAgZXhlY3V0YWJs ZSA9ICh3Y2hhcl90ICopbWFsbG9jKGNjaCAqIHNpemVvZih3Y2hhcl90KSk7CisgICAgICAgICBp ZiAoZXhlY3V0YWJsZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgZXJyb3IoUkNfTk9fTUVNT1JZ LCBMIkEgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIik7CitAQCAtMTk1MCwxMyArMTk1MSwyMiBA QCBwcm9jZXNzKGludCBhcmdjLCB3Y2hhcl90ICoqIGFyZ3YpCisgICAgICAgICAgICAgZXhlY3V0 YWJsZVtjY2hfYWN0dWFsKytdID0gTCdcXCc7CisgICAgICAgICAgICAgZXhlY3V0YWJsZVtjY2hf YWN0dWFsXSA9IEwnXDAnOworICAgICAgICAgfQorLSAgICAgICAgaWYgKHdjc2NhdF9zKCZleGVj dXRhYmxlWzFdLCBjY2ggLSAxLCBQWVRIT05fRVhFQ1VUQUJMRSkpIHsKKysgICAgICAgIGlmICh3 Y3NjYXRfcygmZXhlY3V0YWJsZVsxXSwgY2NoIC0gMSwgUFlUSE9OX0VYRUNVVEFCTEVfV0lUSF9W RVJTSU9OKSkgeworICAgICAgICAgICAgIGVycm9yKFJDX0JBRF9WRU5WX0NGRywgTCJDYW5ub3Qg Y3JlYXRlIGV4ZWN1dGFibGUgcGF0aCBmcm9tICclbHMnIiwKKyAgICAgICAgICAgICAgICAgICB2 ZW52X2NmZ19wYXRoKTsKKyAgICAgICAgIH0KKyAgICAgICAgIC8qIHRoZXJlJ3Mgbm8gdHJhaWxp bmcgcXVvdGUsIHNvIHdlIG9ubHkgaGF2ZSB0byBza2lwIG9uZSBjaGFyYWN0ZXIgZm9yIHRoZSB0 ZXN0ICovCisrICAgICAgICAvLyBDaGVjayBpZiB0aGUgdmVyc2lvbmVkIGV4ZWN1dGFibGUgKFBZ VEhPTl9FWEVDVVRBQkxFX1dJVEhfVkVSU0lPTikgZXhpc3RzIGZpcnN0CisgICAgICAgICBpZiAo R2V0RmlsZUF0dHJpYnV0ZXNXKCZleGVjdXRhYmxlWzFdKSA9PSBJTlZBTElEX0ZJTEVfQVRUUklC VVRFUykgeworLSAgICAgICAgICAgIGVycm9yKFJDX05PX1BZVEhPTiwgTCJObyBQeXRob24gYXQg JyVscyciLCBleGVjdXRhYmxlKTsKKysgICAgICAgICAgICAvLyBJZiBub3QgZm91bmQsIHRyeSBQ WVRIT05fRVhFQ1VUQUJMRQorKyAgICAgICAgICAgIGV4ZWN1dGFibGVbY2NoX2FjdHVhbF0gPSBM J1wwJzsgIC8vIFJlc2V0IHRoZSBwYXRoCisrICAgICAgICAgICAgaWYgKHdjc2NhdF9zKCZleGVj dXRhYmxlWzFdLCBjY2ggLSAxLCBQWVRIT05fRVhFQ1VUQUJMRSkpIHsKKysgICAgICAgICAgICAg ICAgZXJyb3IoUkNfQkFEX1ZFTlZfQ0ZHLCBMIkNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZSBwYXRo IGZyb20gJyVscyciLAorKyAgICAgICAgICAgICAgICAgICAgICB2ZW52X2NmZ19wYXRoKTsKKysg ICAgICAgICAgICB9CisrICAgICAgICAgICAgaWYgKEdldEZpbGVBdHRyaWJ1dGVzVygmZXhlY3V0 YWJsZVsxXSkgPT0gSU5WQUxJRF9GSUxFX0FUVFJJQlVURVMpIHsKKysgICAgICAgICAgICAgICAg ZXJyb3IoUkNfTk9fUFlUSE9OLCBMIk5vIFB5dGhvbiBhdCAnJWxzJyIsIGV4ZWN1dGFibGUpOwor KyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIC8qIG5vdyBhcHBlbmQgdGhlIGZp bmFsIHF1b3RlICovCisgICAgICAgICB3Y3NjYXRfcyhleGVjdXRhYmxlLCBjY2gsIEwiXCIiKTsK CmRpZmYgLS1naXQgYS8wMDQ5LXZlbnZsYXVuY2hlci1Ta2lwLWZpbmQtcHl0aG9uLWluLVJlZ2lz dHJ5LWZvci1taW5ndy0ucGF0Y2ggYi8wMDQ5LXZlbnZsYXVuY2hlci1Ta2lwLWZpbmQtcHl0aG9u LWluLVJlZ2lzdHJ5LWZvci1taW5ndy0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZTRmY2ZlNwotLS0gL2Rldi9udWxsCisrKyBiLzAwNDktdmVudmxhdW5jaGVyLVNr aXAtZmluZC1weXRob24taW4tUmVnaXN0cnktZm9yLW1pbmd3LS5wYXRjaApAQCAtMCwwICsxLDE5 IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QQy9sYXVuY2hl ci5jIFB5dGhvbi0zLjE0LjctbmV3L1BDL2xhdW5jaGVyLmMKKy0tLSBQeXRob24tMy4xNC43L1BD L2xhdW5jaGVyLmMJMjAyNi0wOS0yMiAwOTowNjo0NC4yMjkzMTE1NzQgKzAyMDAKKysrKyBQeXRo b24tMy4xNC43LW5ldy9QQy9sYXVuY2hlci5jCTIwMjYtMDktMjIgMDk6MDY6NDQuMjMyODAyMzQ1 ICswMjAwCitAQCAtNDk5LDYgKzQ5OSw3IEBAIGxvY2F0ZV9hbGxfcHl0aG9ucyh2b2lkKQorIHsK KyAgICAgLyogdmVudiBQeXRob24gaXMgaGlnaGVzdCBwcmlvcml0eSAqLworICAgICBsb2NhdGVf dmVudl9weXRob24oKTsKKysjaWZuZGVmIF9fTUlOR1czMl9fCisgI2lmIGRlZmluZWQoX01fWDY0 KQorICAgICAvKiBJZiB3ZSBhcmUgYSA2NGJpdCBwcm9jZXNzLCBmaXJzdCBoaXQgdGhlIDMyYml0 IGtleXMuICovCisgICAgIGRlYnVnKEwibG9jYXRpbmcgUHl0aG9ucyBpbiAzMmJpdCByZWdpc3Ry eVxuIik7CitAQCAtNTE5LDYgKzUyMCw3IEBAIGxvY2F0ZV9hbGxfcHl0aG9ucyh2b2lkKQorICAg ICBsb2NhdGVfcHl0aG9uc19mb3Jfa2V5KEhLRVlfTE9DQUxfTUFDSElORSwgS0VZX1JFQUQpOwor ICAgICAvKiBTdG9yZS1pbnN0YWxsZWQgUHl0aG9uIGlzIGxvd2VzdCBwcmlvcml0eSAqLworICAg ICBsb2NhdGVfc3RvcmVfcHl0aG9ucygpOworKyNlbmRpZgorICAgICBxc29ydChpbnN0YWxsZWRf cHl0aG9ucywgbnVtX2luc3RhbGxlZF9weXRob25zLCBzaXplb2YoSU5TVEFMTEVEX1BZVEhPTiks CisgICAgICAgICAgIGNvbXBhcmVfcHl0aG9ucyk7CisgfQoKZGlmZiAtLWdpdCBhLzAwNTAtY29u ZmlndXJlLWRvbi10LWNoZWNrLWZvci1jbG9ja18tZnVuY3Rpb25zLnBhdGNoIGIvMDA1MC1jb25m aWd1cmUtZG9uLXQtY2hlY2stZm9yLWNsb2NrXy1mdW5jdGlvbnMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQzNjAzMAotLS0gL2Rldi9udWxsCisrKyBiLzAwNTAt Y29uZmlndXJlLWRvbi10LWNoZWNrLWZvci1jbG9ja18tZnVuY3Rpb25zLnBhdGNoCkBAIC0wLDAg KzEsMjIgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZp Z3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43 L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjQzLjYzMjg0NDE5MCArMDIwMAorKysrIFB5 dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjQ0LjUyODc4MTcw MSArMDIwMAorQEAgLTU5NTUsNiArNTk1NSw5IEBAIEFDX0NIRUNLX0ZVTkNTKFtzZXRwZ3JwXSwK KyAjIGNoZWNrIGZvciBuYW1lc3BhY2UgZnVuY3Rpb25zCisgQUNfQ0hFQ0tfRlVOQ1MoW3NldG5z IHVuc2hhcmVdKQorIAorK2Nhc2UgJGhvc3QgaW4KKysgICotKi1taW5ndyopIDs7CisrICAqKQor IEFDX0NIRUNLX0ZVTkNTKFtjbG9ja19nZXR0aW1lXSwgW10sIFsKKyAgICAgQUNfQ0hFQ0tfTElC KFtydF0sIFtjbG9ja19nZXR0aW1lXSwgWworICAgICAgICAgTElCUz0iJExJQlMgLWxydCIKK0BA IC01OTgxLDYgKzU5ODQsOCBAQCB0aGVuCisgICAgICAgXSkKKyAgIF0pCisgZmkKKysgIDs7Cisr ZXNhYworIAorICMgT24gQW5kcm9pZCBiZWZvcmUgQVBJIGxldmVsIDIzLCBjbG9ja19uYW5vc2xl ZXAgcmV0dXJucyB0aGUgd3JvbmcgdmFsdWUgd2hlbgorICMgaW50ZXJydXB0ZWQgYnkgYSBzaWdu YWwgKGh0dHBzOi8vaXNzdWV0cmFja2VyLmdvb2dsZS5jb20vaXNzdWVzLzIxNjQ5NTc3MCkuCgpk aWZmIC0tZ2l0IGEvMDA1MS1DSS10ZXN0LXRoZS1idWlsZC1hbmQtYWRkLXNvbWUtbWluZ3ctc3Bl Y2lmaWMtdGVzdHMucGF0Y2ggYi8wMDUxLUNJLXRlc3QtdGhlLWJ1aWxkLWFuZC1hZGQtc29tZS1t aW5ndy1zcGVjaWZpYy10ZXN0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5hMjU4YTczCi0tLSAvZGV2L251bGwKKysrIGIvMDA1MS1DSS10ZXN0LXRoZS1idWlsZC1h bmQtYWRkLXNvbWUtbWluZ3ctc3BlY2lmaWMtdGVzdHMucGF0Y2gKQEAgLTAsMCArMSw0MjcgQEAK K2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L21pbmd3X2lnbm9yZWZp bGVfbXN2Y3J0LnR4dCBQeXRob24tMy4xNC43LW5ldy9taW5nd19pZ25vcmVmaWxlX21zdmNydC50 eHQKKy0tLSBQeXRob24tMy4xNC43L21pbmd3X2lnbm9yZWZpbGVfbXN2Y3J0LnR4dAkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L21pbmd3 X2lnbm9yZWZpbGVfbXN2Y3J0LnR4dAkyMDI2LTA5LTIyIDA5OjA2OjQ0LjgyNzI0OTU1NCArMDIw MAorQEAgLTAsMCArMSwyNCBAQAorK3Rlc3QuZGF0ZXRpbWV0ZXN0ZXIuVGVzdERhdGVfRmFzdC4q CisrdGVzdC5kYXRldGltZXRlc3Rlci5UZXN0RGF0ZV9QdXJlLioKKyt0ZXN0LmRhdGV0aW1ldGVz dGVyLlRlc3REYXRlVGltZV9GYXN0LioKKyt0ZXN0LmRhdGV0aW1ldGVzdGVyLlRlc3REYXRlVGlt ZV9QdXJlLioKKyt0ZXN0LmRhdGV0aW1ldGVzdGVyLlRlc3REYXRlVGltZVRaX0Zhc3QuKgorK3Rl c3QuZGF0ZXRpbWV0ZXN0ZXIuVGVzdERhdGVUaW1lVFpfUHVyZS4qCisrdGVzdC5kYXRldGltZXRl c3Rlci5UZXN0VGltZV9GYXN0LioKKyt0ZXN0LmRhdGV0aW1ldGVzdGVyLlRlc3RUaW1lX1B1cmUu KgorK3Rlc3QuZGF0ZXRpbWV0ZXN0ZXIuVGVzdFRpbWVUWl9GYXN0LioKKyt0ZXN0LmRhdGV0aW1l dGVzdGVyLlRlc3RUaW1lVFpfUHVyZS4qCisrdGVzdC5kYXRldGltZXRlc3Rlci5UZXN0U3ViY2xh c3NEYXRlVGltZV9GYXN0LioKKyt0ZXN0LmRhdGV0aW1ldGVzdGVyLlRlc3RTdWJjbGFzc0RhdGVU aW1lX1B1cmUuKgorK3Rlc3QudGVzdF9jbWF0aC5DTWF0aFRlc3RzLnRlc3Rfc3BlY2lmaWNfdmFs dWVzCisrdGVzdC50ZXN0X21hdGguTWF0aFRlc3RzLioKKyt0ZXN0LnRlc3RfbG9jYWxlLlRlc3RS ZWFsTG9jYWxlcy50ZXN0X3NldGxvY2FsZV9sb25nX2VuY29kaW5nCisrdGVzdC50ZXN0X21hdGgu Rk1BVGVzdHMudGVzdF9mbWFfaW5maW5pdGllcworK3Rlc3QudGVzdF9tYXRoLkZNQVRlc3RzLnRl c3RfZm1hX292ZXJmbG93CisrdGVzdC50ZXN0X21hdGguRk1BVGVzdHMudGVzdF9mbWFfemVyb19y ZXN1bHQKKyt0ZXN0LnRlc3RfbWF0aC5GTUFUZXN0cy50ZXN0X3JhbmRvbQorK3Rlc3QudGVzdF9z dHJmdGltZS5ZMTkwMFRlc3RzLnRlc3RfeV9iZWZvcmVfMTkwMAorK3Rlc3QudGVzdF9zdHJwdGlt ZS5DYWxjdWxhdGlvblRlc3RzLioKKyt0ZXN0LnRlc3Rfc3RycHRpbWUuU3RycHRpbWVUZXN0cy50 ZXN0X3dlZWtkYXkKKyt0ZXN0LnRlc3Rfc3RycHRpbWUuVGltZVJFVGVzdHMudGVzdF9jb21waWxl CisrdGVzdC50ZXN0X3Rvb2xzLnRlc3RfaTE4bi5UZXN0X3B5Z2V0dGV4dC50ZXN0X1BPVF9DcmVh dGlvbl9EYXRlCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLXJ1cE4gLS1uby1k ZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L21pbmd3X2lnbm9yZWZpbGUudHh0IFB5dGhvbi0zLjE0 LjctbmV3L21pbmd3X2lnbm9yZWZpbGUudHh0CistLS0gUHl0aG9uLTMuMTQuNy9taW5nd19pZ25v cmVmaWxlLnR4dAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIFB5dGhv bi0zLjE0LjctbmV3L21pbmd3X2lnbm9yZWZpbGUudHh0CTIwMjYtMDktMjIgMDk6MDY6NDQuODI3 MTI0MzU1ICswMjAwCitAQCAtMCwwICsxLDM2IEBACisrdGVzdC50ZXN0X2N0eXBlcy50ZXN0X2xv YWRpbmcuTG9hZGVyVGVzdC50ZXN0X2xvYWRfZGxsX3dpdGhfZmxhZ3MKKyt0ZXN0LnRlc3RfaW1w b3J0LkltcG9ydFRlc3RzLnRlc3RfZGxsX2RlcGVuZGVuY3lfaW1wb3J0CisrdGVzdC50ZXN0X3Np dGUuQ29tbWFuZExpbmVUZXN0cy50ZXN0X25vX2FyZ3MKKyt0ZXN0LnRlc3Rfc2l0ZS5IZWxwZXJG dW5jdGlvbnNUZXN0cy50ZXN0X2dldHNpdGVwYWNrYWdlcworK3Rlc3QudGVzdF9yZWdydGVzdC5Q cm9ncmFtc1Rlc3RDYXNlLnRlc3RfcGNidWlsZF9ydAorK3Rlc3QudGVzdF9yZWdydGVzdC5Qcm9n cmFtc1Rlc3RDYXNlLnRlc3RfdG9vbHNfYnVpbGRib3RfdGVzdAorK3Rlc3QudGVzdF92ZW52LkJh c2ljVGVzdC50ZXN0X2FjdGl2YXRlX3NoZWxsX3NjcmlwdF9oYXNfbm9fZG9zX25ld2xpbmVzCisr dGVzdC50ZXN0X3ZlbnYuQmFzaWNUZXN0LnRlc3RfZGVmYXVsdHNfd2l0aF9wYXRobGlrZQorK3Rl c3QudGVzdF92ZW52LkJhc2ljVGVzdC50ZXN0X2RlZmF1bHRzX3dpdGhfc3RyX3BhdGgKKyt0ZXN0 LnRlc3RfdmVudi5CYXNpY1Rlc3QudGVzdF9leGVjdXRhYmxlCisrdGVzdC50ZXN0X3ZlbnYuQmFz aWNUZXN0LnRlc3RfZXhlY3V0YWJsZV9zeW1saW5rcworK3Rlc3QudGVzdF92ZW52LkJhc2ljVGVz dC50ZXN0X2ZhaWxlZF9zeW1saW5rCisrdGVzdC50ZXN0X3ZlbnYuQmFzaWNUZXN0LnRlc3RfbXVs dGlwcm9jZXNzaW5nCisrdGVzdC50ZXN0X3ZlbnYuQmFzaWNUZXN0LnRlc3RfbXVsdGlwcm9jZXNz aW5nX3JlY3Vyc2lvbgorK3Rlc3QudGVzdF92ZW52LkJhc2ljVGVzdC50ZXN0X3ByZWZpeGVzCisr dGVzdC50ZXN0X3ZlbnYuQmFzaWNUZXN0LnRlc3Rfc3BlY2lhbF9jaGFyc193aW5kb3dzCisrdGVz dC50ZXN0X3ZlbnYuQmFzaWNUZXN0LnRlc3Rfc3ltbGlua2luZworK3Rlc3QudGVzdF92ZW52LkJh c2ljVGVzdC50ZXN0X3N5c2NvbmZpZworK3Rlc3QudGVzdF92ZW52LkJhc2ljVGVzdC50ZXN0X3N5 c2NvbmZpZ19zeW1saW5rcworK3Rlc3QudGVzdF92ZW52LkJhc2ljVGVzdC50ZXN0X3VuaWNvZGVf aW5fYmF0Y2hfZmlsZQorK3Rlc3QudGVzdF92ZW52LkJhc2ljVGVzdC50ZXN0X3Vub3ZlcndyaXRh YmxlX2ZhaWxzCisrdGVzdC50ZXN0X3ZlbnYuQmFzaWNUZXN0LnRlc3RfdXBncmFkZQorK3Rlc3Qu dGVzdF92ZW52LkJhc2ljVGVzdC50ZXN0X3VwZ3JhZGVfZGVwZW5kZW5jaWVzCisrdGVzdC50ZXN0 X3ZlbnYuQmFzaWNUZXN0LnRlc3RfdmVudndsYXVuY2hlcgorK3Rlc3QudGVzdF92ZW52LkJhc2lj VGVzdC50ZXN0X2FjdGl2YXRlX2JhdF9wcmVmaXhlc19wcm9tcHRfYnlfZGVmYXVsdAorK3Rlc3Qu dGVzdF92ZW52LkJhc2ljVGVzdC50ZXN0X2FjdGl2YXRlX2JhdF9yZXNwZWN0c19kaXNhYmxlX3By b21wdAorK3Rlc3QudGVzdF92ZW52LkVuc3VyZVBpcFRlc3QudGVzdF9leHBsaWNpdF9ub19waXAK Kyt0ZXN0LnRlc3RfdmVudi5FbnN1cmVQaXBUZXN0LnRlc3Rfbm9fcGlwX2J5X2RlZmF1bHQKKyt0 ZXN0LnRlc3RfbXVsdGlwcm9jZXNzaW5nX3NwYXduLnRlc3RfbWFuYWdlci5XaXRoTWFuYWdlclRl c3RNeU1hbmFnZXIuKgorK3Rlc3QudGVzdF9leHRlcm5hbF9pbnNwZWN0aW9uLioKKyt0ZXN0LnRl c3RfY2FwaS50ZXN0X29iamVjdC5DQVBJVGVzdC50ZXN0X2lzX3VuaXF1ZV90ZW1wb3JhcnkKKyt0 ZXN0LnRlc3RfY21kX2xpbmUuQ21kTGluZVRlc3QudGVzdF9kdW1wX3BhdGhfY29uZmlnCisrdGVz dC50ZXN0X2F1ZGl0LkF1ZGl0VGVzdC50ZXN0X3N5c19yZW1vdGVfZXhlYworK3Rlc3QudGVzdF9y ZW1vdGVfcGRiLlBkYkF0dGFjaFRlc3RDYXNlLnRlc3RfYXR0YWNoX3RvX3Byb2Nlc3Nfd2l0aF9j b2xvcnMKKyt0ZXN0LnRlc3RfcmVtb3RlX3BkYi5QZGJBdHRhY2hUZXN0Q2FzZS50ZXN0X2F0dGFj aF90b19wcm9jZXNzX3dpdGhvdXRfY29sb3JzCisrdGVzdC50ZXN0X3N5cy5UZXN0UmVtb3RlRXhl Yy4qCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVy ZW5jZSBQeXRob24tMy4xNC43L21pbmd3X3Ntb2tldGVzdHMucHkgUHl0aG9uLTMuMTQuNy1uZXcv bWluZ3dfc21va2V0ZXN0cy5weQorLS0tIFB5dGhvbi0zLjE0LjcvbWluZ3dfc21va2V0ZXN0cy5w eQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIFB5dGhvbi0zLjE0Ljct bmV3L21pbmd3X3Ntb2tldGVzdHMucHkJMjAyNi0wOS0yMiAwOTowNjo0NC44Mjc0NDM5NTIgKzAy MDAKK0BAIC0wLDAgKzEsMzUzIEBACisrIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworKyMgQ29weXJp Z2h0IDIwMTcgQ2hyaXN0b3BoIFJlaXRlcgorKyMKKysjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZworKyMgYSBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl CisrIyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmlj dGlvbiwgaW5jbHVkaW5nCisrIyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisrIyBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKysjIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0bworKyMgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKyMKKysjIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk CisrIyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2Fy ZS4KKysjCisrIyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwKKysjIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKyMgTUVSQ0hBTlRBQklMSVRZLCBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULgorKyMgSU4g Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkKKysjIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCisrIyBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQorKyMgU09GVFdBUkUgT1IgVEhF IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrCisrIiIiVGhlIGdvYWwg b2YgdGhpcyB0ZXN0IHN1aXRlIGlzIGNvbGxlY3QgdGVzdHMgZm9yIHVwZGF0ZSByZWdyZXNzaW9u cworK2FuZCB0byB0ZXN0IG1zeXMyIHJlbGF0ZWQgbW9kaWZpY2F0aW9ucyBsaWtlIGZvciBwYXRo IGhhbmRsaW5nLgorK0ZlZWwgZnJlZSB0byBleHRlbmQuCisrIiIiCisrCisraW1wb3J0IHN5cwor K2ltcG9ydCBvcworK2ltcG9ydCB1bml0dGVzdAorK2ltcG9ydCBzeXNjb25maWcKKysKKytpZiBz eXMuX3VzZV9hbHRfc2VwOgorKyAgICBTRVAgPSAiLyIKKytlbHNlOgorKyAgICBTRVAgPSAiXFwi CisrCisrX1VDUlQgPSAndWNydCcgaW4gc3lzY29uZmlnLmdldF9wbGF0Zm9ybSgpCisrCisrCisr Y2xhc3MgVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorKworKyAgICBkZWYgdGVzdF96b25laW5m byhzZWxmKToKKysgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL21zeXMyLWNvbnRyaWIvY3B5 dGhvbi1taW5ndy9pc3N1ZXMvMzIKKysgICAgICAgIGltcG9ydCB6b25laW5mbworKyAgICAgICAg c2VsZi5hc3NlcnRUcnVlKGFueShvcy5wYXRoLmV4aXN0cyhwKSBmb3IgcCBpbiB6b25laW5mby5U WlBBVEgpKQorKyAgICAgICAgem9uZWluZm8uWm9uZUluZm8oIkFtZXJpY2EvU2FvX1BhdWxvIikK KysKKysgICAgZGVmIHRlc3RfdXNlcmRpcl9wYXRoX3NlcChzZWxmKToKKysgICAgICAgICMgTWFr ZSBzdXJlIG9zLnBhdGggYW5kIHBhdGhsaWIgdXNlIHRoZSBzYW1lIHBhdGggc2VwYXJhdG9ycwor KyAgICAgICAgZnJvbSB1bml0dGVzdCBpbXBvcnQgbW9jaworKyAgICAgICAgZnJvbSBvcy5wYXRo IGltcG9ydCBleHBhbmR1c2VyCisrICAgICAgICBmcm9tIHBhdGhsaWIgaW1wb3J0IFBhdGgKKysK KysgICAgICAgIHByb2ZpbGVzID0gWyJDOlxcZm9vIiwgIkM6L2ZvbyJdCisrICAgICAgICBmb3Ig cHJvZmlsZSBpbiBwcm9maWxlczoKKysgICAgICAgICAgICB3aXRoIG1vY2sucGF0Y2guZGljdChv cy5lbnZpcm9uLCB7IlVTRVJQUk9GSUxFIjogcHJvZmlsZX0pOgorKyAgICAgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKGV4cGFuZHVzZXIoIn4iKSwgb3MucGF0aC5ub3JtcGF0aChleHBhbmR1 c2VyKCJ+IikpKQorKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihQYXRoKCJ+ IikuZXhwYW5kdXNlcigpKSwgZXhwYW5kdXNlcigifiIpKQorKyAgICAgICAgICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHN0cihQYXRoLmhvbWUoKSksIGV4cGFuZHVzZXIoIn4iKSkKKysKKysgICAg ZGVmIHRlc3RfY3R5cGVzX2ZpbmRfbGlicmFyeShzZWxmKToKKysgICAgICAgIGZyb20gY3R5cGVz LnV0aWwgaW1wb3J0IGZpbmRfbGlicmFyeQorKyAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0IGNk bGwKKysgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjZGxsLm1zdmNydCkKKysgICAgICAgIGlmIF9V Q1JUOgorKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGZpbmRfbGlicmFyeSgnYycpKQor KyAgICAgICAgZWxzZToKKysgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbmRfbGlicmFy eSgnYycpLCAnbXN2Y3J0LmRsbCcpCisrCisrICAgIGRlZiB0ZXN0X2N0eXBlc19kbG9wZW4oc2Vs Zik6CisrICAgICAgICBpbXBvcnQgY3R5cGVzCisrICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGN0 eXBlcy5SVExEX0dMT0JBTCwgMCkKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY3R5cGVzLlJU TERfR0xPQkFMLCAgY3R5cGVzLlJUTERfTE9DQUwpCisrICAgICAgICBzZWxmLmFzc2VydEZhbHNl KGhhc2F0dHIoc3lzLCAnc2V0ZGxvcGVuZmxhZ3MnKSkKKysgICAgICAgIHNlbGYuYXNzZXJ0RmFs c2UoaGFzYXR0cihzeXMsICdnZXRkbG9wZW5mbGFncycpKQorKyAgICAgICAgc2VsZi5hc3NlcnRG YWxzZShbbiBmb3IgbiBpbiBkaXIob3MpIGlmIG4uc3RhcnRzd2l0aCgiUlRMRF8iKV0pCisrCisr ICAgIGRlZiB0ZXN0X3RpbWVfbm9fdW5peF9zdHVmZihzZWxmKToKKysgICAgICAgIGltcG9ydCB0 aW1lCisrICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFtuIGZvciBuIGluIGRpcih0aW1lKSBpZiBu LnN0YXJ0c3dpdGgoImNsb2NrXyIpXSkKKysgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoW24gZm9y IG4gaW4gZGlyKHRpbWUpIGlmIG4uc3RhcnRzd2l0aCgiQ0xPQ0tfIildKQorKyAgICAgICAgc2Vs Zi5hc3NlcnRGYWxzZShbbiBmb3IgbiBpbiBkaXIodGltZSkgaWYgbi5zdGFydHN3aXRoKCJwdGhy ZWFkXyIpXSkKKysgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cih0aW1lLCAndHpzZXQn KSkKKysKKysgICAgZGVmIHRlc3Rfc3RyZnRpbWUoc2VsZik6CisrICAgICAgICBpbXBvcnQgdGlt ZQorKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKysgICAgICAg ICAgICB0aW1lLnN0cmZ0aW1lKCclWScsICgxMjM0NSwpICsgKDAsKSAqIDgpCisrCisrICAgIGRl ZiB0ZXN0X3NlcChzZWxmKToKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3Muc2VwLCBTRVAp CisrCisrICAgIGRlZiB0ZXN0X21vZHVsZV9maWxlX3BhdGgoc2VsZik6CisrICAgICAgICBpbXBv cnQgYXN5bmNpbworKyAgICAgICAgaW1wb3J0IHpsaWIKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoemxpYi5fX2ZpbGVfXywgb3MucGF0aC5ub3JtcGF0aCh6bGliLl9fZmlsZV9fKSkKKysgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXN5bmNpby5fX2ZpbGVfXywgb3MucGF0aC5ub3JtcGF0aChh c3luY2lvLl9fZmlsZV9fKSkKKysKKysgICAgZGVmIHRlc3RfaW1wb3J0bGliX2Zyb3plbl9wYXRo X3NlcChzZWxmKToKKysgICAgICAgIGltcG9ydCBpbXBvcnRsaWIuX2Jvb3RzdHJhcF9leHRlcm5h bAorKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbXBvcnRsaWIuX2Jvb3RzdHJhcF9leHRlcm5h bC5wYXRoX3NlcCwgU0VQKQorKworKyAgICBkZWYgdGVzdF9vc19jb21tb25wYXRoKHNlbGYpOgor KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKysgICAgICAgICAgICBvcy5wYXRoLmNvbW1vbnBh dGgoCisrICAgICAgICAgICAgICAgIFtvcy5wYXRoLmpvaW4oIkM6Iiwgb3Muc2VwLCAiZm9vIiwg ImJhciIpLAorKyAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKCJDOiIsIG9zLnNlcCwgImZv byIpXSksCisrICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oIkM6Iiwgb3Muc2VwLCAiZm9v IikpCisrCisrICAgIGRlZiB0ZXN0X3BhdGhsaWIoc2VsZik6CisrICAgICAgICBpbXBvcnQgcGF0 aGxpYgorKworKyAgICAgICAgcCA9IHBhdGhsaWIuUGF0aCgiZm9vIikgLyBwYXRobGliLlBhdGgo ImZvbyIpCisrICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgb3MucGF0aC5ub3JtcGF0 aChwKSkKKysKKysgICAgZGVmIHRlc3RfbW9kdWxlc19pbXBvcnQoc2VsZik6CisrICAgICAgICBp bXBvcnQgc3FsaXRlMworKyAgICAgICAgaW1wb3J0IHNzbAorKyAgICAgICAgaW1wb3J0IGN0eXBl cworKyAgICAgICAgaW1wb3J0IGN1cnNlcworKworKyAgICBkZWYgdGVzdF9jX21vZHVsZXNfaW1w b3J0KHNlbGYpOgorKyAgICAgICAgaW1wb3J0IF9kZWNpbWFsCisrCisrICAgIGRlZiB0ZXN0X3Nv Y2tldF9pbmV0X250b3Aoc2VsZik6CisrICAgICAgICBpbXBvcnQgc29ja2V0CisrICAgICAgICBz ZWxmLmFzc2VydFRydWUoaGFzYXR0cihzb2NrZXQsICJpbmV0X250b3AiKSkKKysKKysgICAgZGVm IHRlc3Rfc29ja2V0X2luZXRfcHRvbihzZWxmKToKKysgICAgICAgIGltcG9ydCBzb2NrZXQKKysg ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHNvY2tldCwgImluZXRfcHRvbiIpKQorKwor KyAgICBkZWYgdGVzdF9tdWx0aXByb2Nlc3NpbmdfcXVldWUoc2VsZik6CisrICAgICAgICBmcm9t IG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKKysgICAgICAgIFF1ZXVlKDApCisrCisrICAg ICNkZWYgdGVzdF9zb2NrZXRfdGltb3V0X25vcm1hbF9lcnJvcihzZWxmKToKKysgICAgIyAgICBp bXBvcnQgdXJsbGliLnJlcXVlc3QKKysgICAgIyAgICBmcm9tIHVybGxpYi5lcnJvciBpbXBvcnQg VVJMRXJyb3IKKysKKysgICAgIyAgICB0cnk6CisrICAgICMgICAgICAgIHVybGxpYi5yZXF1ZXN0 LnVybG9wZW4oCisrICAgICMgICAgICAgICAgICAnaHR0cDovL2xvY2FsaG9zdCcsIHRpbWVvdXQ9 MC4wMDAxKS5jbG9zZSgpCisrICAgICMgICAgZXhjZXB0IFVSTEVycm9yOgorKyAgICAjICAgICAg ICBwYXNzCisrCisrICAgIGRlZiB0ZXN0X3RocmVhZHMoc2VsZik6CisrICAgICAgICBmcm9tIGNv bmN1cnJlbnQuZnV0dXJlcyBpbXBvcnQgVGhyZWFkUG9vbEV4ZWN1dG9yCisrCisrICAgICAgICB3 aXRoIFRocmVhZFBvb2xFeGVjdXRvcigxKSBhcyBwb29sOgorKyAgICAgICAgICAgIGZvciByZXMg aW4gcG9vbC5tYXAobGFtYmRhICp4OiBOb25lLCByYW5nZSgxMDAwMCkpOgorKyAgICAgICAgICAg ICAgICBwYXNzCisrCisrICAgIGRlZiB0ZXN0X3N5c2NvbmZpZyhzZWxmKToKKysgICAgICAgICMg VGhpcyBzaG91bGQgYmUgYWJsZSB0byBleGVjdXRlIHdpdGhvdXQgZXhjZXB0aW9ucworKyAgICAg ICAgc3lzY29uZmlnLmdldF9jb25maWdfdmFycygpCisrCisrICAgIGRlZiB0ZXN0X3NxbGl0ZV9l bmFibGVfbG9hZF9leHRlbnNpb24oc2VsZik6CisrICAgICAgICAjIE1ha2Ugc3VyZSAtLWVuYWJs ZS1sb2FkYWJsZS1zcWxpdGUtZXh0ZW5zaW9ucyBpcyB1c2VkCisrICAgICAgICBpbXBvcnQgc3Fs aXRlMworKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNxbGl0ZTMuQ29ubmVjdGlvbi5lbmFibGVf bG9hZF9leHRlbnNpb24pCisrCisrICAgIGRlZiB0ZXN0X3ZlbnZfY3JlYXRpb24oc2VsZik6Cisr ICAgICAgICBpbXBvcnQgdGVtcGZpbGUKKysgICAgICAgIGltcG9ydCB2ZW52CisrICAgICAgICBp bXBvcnQgc3VicHJvY2VzcworKyAgICAgICAgaW1wb3J0IHNodXRpbAorKyAgICAgICAgd2l0aCB0 ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyB0bXA6CisrICAgICAgICAgICAgYnVpbGRl ciA9IHZlbnYuRW52QnVpbGRlcigpCisrICAgICAgICAgICAgYnVpbGRlci5jcmVhdGUodG1wKQor KyAgICAgICAgICAgIGFiaWZsYWdzID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdBQklGTEFH UycpCisrICAgICAgICAgICAgYXNzZXJ0IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbih0bXAs ICJiaW4iLCAiYWN0aXZhdGUiKSkKKysgICAgICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMo b3MucGF0aC5qb2luKHRtcCwgImJpbiIsICJweXRob24iICsgYWJpZmxhZ3MgKyAiLmV4ZSIpKQor KyAgICAgICAgICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4odG1wLCAiYmlu IiwgInB5dGhvbnciICsgYWJpZmxhZ3MgKyAiLmV4ZSIpKQorKyAgICAgICAgICAgIHN1YnByb2Nl c3MuY2hlY2tfY2FsbChbc2h1dGlsLndoaWNoKCJiYXNoLmV4ZSIpLCBvcy5wYXRoLmpvaW4odG1w LCAiYmluIiwgImFjdGl2YXRlIildKQorKworKyAgICAgICAgICAgICMgVGhpcyB3aWxsIG5vdCB3 b3JrIGluIGluLXRyZWUgYnVpbGQKKysgICAgICAgICAgICBpZiBub3Qgc3lzY29uZmlnLmlzX3B5 dGhvbl9idWlsZCgpOgorKyAgICAgICAgICAgICAgICBvcCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0 cHV0KAorKyAgICAgICAgICAgICAgICAgICAgWworKyAgICAgICAgICAgICAgICAgICAgICAgIG9z LnBhdGguam9pbih0bXAsICJiaW4iLCAicHl0aG9uIiArIGFiaWZsYWdzICsgIi5leGUiKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAiLWMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICJw cmludCgnSGVsbG8gV29ybGQnKSIKKysgICAgICAgICAgICAgICAgICAgIF0sCisrICAgICAgICAg ICAgICAgICAgICBjd2Q9dG1wLAorKyAgICAgICAgICAgICAgICApCisrICAgICAgICAgICAgICAg IGFzc2VydCBvcC5kZWNvZGUoKS5zdHJpcCgpID09ICJIZWxsbyBXb3JsZCIKKysKKysgICAgZGVm IHRlc3RfaGFzX21rdGltZShzZWxmKToKKysgICAgICAgIGZyb20gdGltZSBpbXBvcnQgbWt0aW1l LCBnbXRpbWUKKysgICAgICAgIG1rdGltZShnbXRpbWUoKSkKKysKKysgICAgZGVmIHRlc3RfcGxh dGZvcm1fdGhpbmdzKHNlbGYpOgorKyAgICAgICAgaW1wb3J0IHBsYXRmb3JtCisrICAgICAgICBp bXBvcnQgaW1wb3J0bGliLm1hY2hpbmVyeQorKyAgICAgICAgaW1wb3J0IHRlbXBmaWxlCisrICAg ICAgICBpbXBvcnQgdmVudgorKyAgICAgICAgaW1wb3J0IHN1YnByb2Nlc3MKKysgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoc3lzLmltcGxlbWVudGF0aW9uLm5hbWUsICJjcHl0aG9uIikKKysgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLnBsYXRmb3JtLCAid2luMzIiKQorKyAgICAgICAgc2Vs Zi5hc3NlcnRUcnVlKHN5c2NvbmZpZy5nZXRfcGxhdGZvcm0oKS5zdGFydHN3aXRoKCJtaW5ndyIp KQorKyAgICAgICAgc29hYmkgPSBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1NPQUJJJykKKysg ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzb2FiaS5zdGFydHN3aXRoKCJjcCIgKyBmJ3tzeXMudmVy c2lvbl9pbmZvLm1ham9yfXtzeXMudmVyc2lvbl9pbmZvLm1pbm9yfScpKQorKyAgICAgICAgZXh0 X3N1ZmZpeCA9IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignRVhUX1NVRkZJWCcpCisrICAgICAg ICBhYmlmbGFncyA9IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignQUJJRkxBR1MnKQorKyAgICAg ICAgc2VsZi5hc3NlcnRUcnVlKCIuIiArIHNvYWJpICsgIi4iIGluIGV4dF9zdWZmaXgpCisrICAg ICAgICBzZWxmLmFzc2VydFRydWUoZXh0X3N1ZmZpeC5lbmRzd2l0aCgiLnB5ZCIpKQorKyAgICAg ICAgc2VsZi5hc3NlcnRUcnVlKCJtaW5ndyIgaW4gZXh0X3N1ZmZpeCkKKysgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdTSExJQl9TVUZGSVgnKSwgIi5w eWQiKQorKyAgICAgICAgZXh0X3N1ZmZpeGVzID0gaW1wb3J0bGliLm1hY2hpbmVyeS5FWFRFTlNJ T05fU1VGRklYRVMKKysgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleHRfc3VmZml4IGluIGV4dF9z dWZmaXhlcykKKysgICAgICAgIHVudGFnZ2VkX2V4dCA9IGFiaWZsYWdzICsgJy5weWQnCisrICAg ICAgICBzZWxmLmFzc2VydFRydWUodW50YWdnZWRfZXh0IGluIGV4dF9zdWZmaXhlcykKKysgICAg ICAgIGlmIHN5c2NvbmZpZy5nZXRfcGxhdGZvcm0oKS5zdGFydHN3aXRoKCdtaW5nd19pNjg2Jyk6 CisrICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLndpbnZlciwgIi4iLmpvaW4obWFw KHN0ciwgc3lzLnZlcnNpb25faW5mb1s6Ml0pKSArICctMzInKQorKyAgICAgICAgZWxpZiBzeXNj b25maWcuZ2V0X3BsYXRmb3JtKCkuc3RhcnRzd2l0aCgnbWluZ3dfYWFyY2g2NCcpOgorKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLndpbnZlciwgIi4iLmpvaW4obWFwKHN0ciwgc3lz LnZlcnNpb25faW5mb1s6Ml0pKSArICctYXJtNjQnKQorKyAgICAgICAgZWxpZiBzeXNjb25maWcu Z2V0X3BsYXRmb3JtKCkuc3RhcnRzd2l0aCgnbWluZ3dfYXJtdjcnKToKKysgICAgICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKHN5cy53aW52ZXIsICIuIi5qb2luKG1hcChzdHIsIHN5cy52ZXJzaW9u X2luZm9bOjJdKSkgKyAnLWFybTMyJykKKysgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChzeXMud2ludmVyLCAiLiIuam9pbihtYXAoc3RyLCBzeXMudmVyc2lvbl9p bmZvWzoyXSkpKQorKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwbGF0Zm9ybS5weXRob25faW1w bGVtZW50YXRpb24oKSwgIkNQeXRob24iKQorKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwbGF0 Zm9ybS5zeXN0ZW0oKSwgIldpbmRvd3MiKQorKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5z dGFuY2Uoc3lzLmFwaV92ZXJzaW9uLCBpbnQpIGFuZCBzeXMuYXBpX3ZlcnNpb24gPiAwKQorKwor KyAgICAgICAgd2l0aCB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyB0bXA6CisrICAg ICAgICAgICAgYnVpbGRlciA9IHZlbnYuRW52QnVpbGRlcigpCisrICAgICAgICAgICAgYnVpbGRl ci5jcmVhdGUodG1wKQorKyAgICAgICAgICAgICMgVGhpcyB3aWxsIG5vdCB3b3JrIGluIGluLXRy ZWUgYnVpbGQKKysgICAgICAgICAgICBpZiBub3Qgc3lzY29uZmlnLmlzX3B5dGhvbl9idWlsZCgp OgorKyAgICAgICAgICAgICAgICBvcCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KAorKyAgICAg ICAgICAgICAgICAgICAgWworKyAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbih0 bXAsICJiaW4iLCAncHl0aG9uJyArIGFiaWZsYWdzICsgJy5leGUnKSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAiLWMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICJpbXBvcnQgc3lzY29u ZmlnOyBwcmludChzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ0xJQkRJUicpKSIKKysgICAgICAg ICAgICAgICAgICAgIF0sCisrICAgICAgICAgICAgICAgICAgICBjd2Q9dG1wLAorKyAgICAgICAg ICAgICAgICApCisrICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcC5kZWNvZGUoKS5z dHJpcCgpLnN0YXJ0c3dpdGgoc3lzLmJhc2VfcHJlZml4KSkKKysKKysgICAgZGVmIHRlc3Rfc3lz X2dldHBhdGgoc2VsZik6CisrICAgICAgICAjIGV2ZXJ5dGhpbmcgc291cmNlZCBmcm9tIGdldHBh dGgucHkKKysKKysgICAgICAgIGRlZiBhc3NlcnROb3JtcGF0aChwYXRoKToKKysgICAgICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKHBhdGgsIG9zLnBhdGgubm9ybXBhdGgocGF0aCkpCisrCisrICAg ICAgICBhc3NlcnROb3JtcGF0aChzeXMuZXhlY3V0YWJsZSkKKysgICAgICAgIGFzc2VydE5vcm1w YXRoKHN5cy5fYmFzZV9leGVjdXRhYmxlKQorKyAgICAgICAgYXNzZXJ0Tm9ybXBhdGgoc3lzLnBy ZWZpeCkKKysgICAgICAgIGFzc2VydE5vcm1wYXRoKHN5cy5iYXNlX3ByZWZpeCkKKysgICAgICAg IGFzc2VydE5vcm1wYXRoKHN5cy5leGVjX3ByZWZpeCkKKysgICAgICAgIGFzc2VydE5vcm1wYXRo KHN5cy5iYXNlX2V4ZWNfcHJlZml4KQorKyAgICAgICAgYXNzZXJ0Tm9ybXBhdGgoc3lzLnBsYXRs aWJkaXIpCisrICAgICAgICBhc3NlcnROb3JtcGF0aChzeXMuX3N0ZGxpYl9kaXIpCisrICAgICAg ICBmb3IgcCBpbiBzeXMucGF0aDoKKysgICAgICAgICAgICBhc3NlcnROb3JtcGF0aChwKQorKwor KyAgICBkZWYgdGVzdF9zaXRlKHNlbGYpOgorKyAgICAgICAgaW1wb3J0IHNpdGUKKysKKysgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNpdGUuZ2V0c2l0ZXBhY2thZ2VzKCkpLCAxKQorKwor KyAgICBkZWYgdGVzdF9jX2V4dF9idWlsZChzZWxmKToKKysgICAgICAgIGltcG9ydCB0ZW1wZmls ZQorKyAgICAgICAgaW1wb3J0IHN1YnByb2Nlc3MKKysgICAgICAgIGltcG9ydCB0ZXh0d3JhcAor KyAgICAgICAgaW1wb3J0IHZlbnYKKysgICAgICAgIGZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAor KworKyAgICAgICAgaWYgc3lzY29uZmlnLmlzX3B5dGhvbl9idWlsZCgpOgorKyAgICAgICAgICAg IHB5ZGlyID0gb3MucGF0aC5kaXJuYW1lKHN5cy5fYmFzZV9leGVjdXRhYmxlKS5yZXBsYWNlKCdc XCcsICcvJykKKysgICAgICAgICAgICBvcy5lbnZpcm9uWyJMREZMQUdTIl0gPSAiLUwgIiArIHB5 ZGlyCisrCisrICAgICAgICB3aXRoIHRlbXBmaWxlLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIHRt cHBybzoKKysgICAgICAgICAgICBidWlsZGVyID0gdmVudi5FbnZCdWlsZGVyKHdpdGhfcGlwPVRy dWUpCisrICAgICAgICAgICAgYnVpbGRlci5jcmVhdGUodG1wcHJvKQorKyAgICAgICAgICAgIHZl bnZfZXhlID0gb3MucGF0aC5qb2luKHRtcHBybywgImJpbiIsIG9zLnBhdGguYmFzZW5hbWUoc3lz LmV4ZWN1dGFibGUpKQorKworKyAgICAgICAgICAgIHdpdGggUGF0aCh0bXBwcm8sICJzZXR1cC5w eSIpLm9wZW4oInciKSBhcyBmOgorKyAgICAgICAgICAgICAgICBmLndyaXRlKAorKyAgICAgICAg ICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KAorKyAgICAgICAgICAgICAgICAgICAgICAgICIi IlwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHNldHVwdG9vbHMg aW1wb3J0IHNldHVwLCBFeHRlbnNpb24KKysKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXR1cCgKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmFtZT0nY3dyYXBwZXInLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ZXJzaW9uPScxLjAnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBleHRfbW9kdWxlcz1bCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFeHRlbnNpb24oCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2N3cmFwcGVyJywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb3VyY2VzPVsnY3dyYXBwZXIuYyddKSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiIKKysgICAgICAg ICAgICAgICAgICAgICkKKysgICAgICAgICAgICAgICAgKQorKyAgICAgICAgICAgIHdpdGggUGF0 aCh0bXBwcm8sICJjd3JhcHBlci5jIikub3BlbigidyIpIGFzIGY6CisrICAgICAgICAgICAgICAg IGYud3JpdGUoCisrICAgICAgICAgICAgICAgICAgICB0ZXh0d3JhcC5kZWRlbnQoCisrICAgICAg ICAgICAgICAgICAgICAgICAgIiIiXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICNpbmNsdWRlIDxQeXRob24uaD4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdGF0aWMgUHlPYmplY3QgKgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGhlbGxvd29ybGQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJpbnRmKCJIZWxsbyBXb3JsZFxcbiIpOworKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9SRVRVUk5fTk9ORTsKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RhdGljIFB5TWV0aG9kRGVmCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbXlNZXRob2RzW10gPSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsgImhlbGxvd29ybGQiLCBoZWxsb3dvcmxkLCBNRVRIX05PQVJHUywgIlByaW50cyBI ZWxsbyBXb3JsZCIgfSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eyBOVUxMLCBOVUxMLCAwLCBOVUxMIH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9OworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpYyBzdHJ1 Y3QgUHlNb2R1bGVEZWYgY3dyYXBwZXIgPSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImN3cmFwcGVyIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIlRlc3QgTW9kdWxlIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLTEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG15TWV0aG9kcworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07 CisrCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlNT0RJTklUX0ZVTkMK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUluaXRfY3dyYXBwZXIodm9p ZCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQeU1vZHVsZV9DcmVhdGUoJmN3cmFw cGVyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiIiIKKysgICAgICAgICAgICAgICAgICAgICkKKysgICAg ICAgICAgICAgICAgKQorKyAgICAgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgKKysgICAg ICAgICAgICAgICAgW3ZlbnZfZXhlLCAiLWMiLCAiaW1wb3J0IHN0cnVjdCJdLAorKyAgICAgICAg ICAgICkKKysgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoCisrICAgICAgICAgICAg ICAgIFsKKysgICAgICAgICAgICAgICAgICAgIHZlbnZfZXhlLAorKyAgICAgICAgICAgICAgICAg ICAgIi1tIiwKKysgICAgICAgICAgICAgICAgICAgICJwaXAiLAorKyAgICAgICAgICAgICAgICAg ICAgImluc3RhbGwiLAorKyAgICAgICAgICAgICAgICAgICAgdG1wcHJvLAorKyAgICAgICAgICAg ICAgICBdLAorKyAgICAgICAgICAgICkKKysgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2Nh bGwoCisrICAgICAgICAgICAgICAgIFt2ZW52X2V4ZSwgIi1jIiwgImltcG9ydCBjd3JhcHBlciJd LAorKyAgICAgICAgICAgICkKKysKKysKKysKKytkZWYgc3VpdGUoKToKKysgICAgcmV0dXJuIHVu aXR0ZXN0LlRlc3RMb2FkZXIoKS5sb2FkVGVzdHNGcm9tTmFtZShfX25hbWVfXykKKysKKysKKytp ZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorKyAgICB1bml0dGVzdC5tYWluKGRlZmF1bHRUZXN0 PSdzdWl0ZScpCgpkaWZmIC0tZ2l0IGEvMDA1Mi1jb25maWd1cmUtRGVmYXVsdC10by13aXRob3V0 LWMtbG9jYWxlLWNvZXJjaW9uLW9uLVdpLnBhdGNoIGIvMDA1Mi1jb25maWd1cmUtRGVmYXVsdC10 by13aXRob3V0LWMtbG9jYWxlLWNvZXJjaW9uLW9uLVdpLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjU4ZjJlMWIKLS0tIC9kZXYvbnVsbAorKysgYi8wMDUyLWNvbmZp Z3VyZS1EZWZhdWx0LXRvLXdpdGhvdXQtYy1sb2NhbGUtY29lcmNpb24tb24tV2kucGF0Y2gKQEAg LTAsMCArMSwyMCBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0Ljcv Y29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0z LjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NDQuODIxNzYxMjY2ICswMjAwCisr KysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NDUuMTIz ODU4NDM4ICswMjAwCitAQCAtNTM1NywxMSArNTM1NywxNCBAQCBBQ19NU0dfUkVTVUxUKFskd2l0 aF9weW1hbGxvY10pCisgQUNfTVNHX0NIRUNLSU5HKFtmb3IgLS13aXRoLWMtbG9jYWxlLWNvZXJj aW9uXSkKKyBBQ19BUkdfV0lUSCgKKyAgIFtjLWxvY2FsZS1jb2VyY2lvbl0sCistICBbQVNfSEVM UF9TVFJJTkcoWy0td2l0aC1jLWxvY2FsZS1jb2VyY2lvbl0sIFtlbmFibGUgQyBsb2NhbGUgY29l cmNpb24gdG8gYSBVVEYtOCBiYXNlZCBsb2NhbGUgKGRlZmF1bHQgaXMgeWVzKV0pXSkKKysgIFtB U19IRUxQX1NUUklORyhbLS13aXRoLWMtbG9jYWxlLWNvZXJjaW9uXSwgW2VuYWJsZSBDIGxvY2Fs ZSBjb2VyY2lvbiB0byBhIFVURi04IGJhc2VkIGxvY2FsZSAoZGVmYXVsdCBpcyB5ZXMgb24gVW5p eCwgbm8gb24gV2luZG93cyldKV0pCisgCisgaWYgdGVzdCAteiAiJHdpdGhfY19sb2NhbGVfY29l cmNpb24iCisgdGhlbgorLSAgICB3aXRoX2NfbG9jYWxlX2NvZXJjaW9uPSJ5ZXMiCisrICAgIGNh c2UgJGhvc3QgaW4KKysgICAgICAqLSotbWluZ3cqKSB3aXRoX2NfbG9jYWxlX2NvZXJjaW9uPSJu byI7OworKyAgICAgICopIHdpdGhfY19sb2NhbGVfY29lcmNpb249InllcyI7OworKyAgICBlc2Fj CisgZmkKKyBpZiB0ZXN0ICIkd2l0aF9jX2xvY2FsZV9jb2VyY2lvbiIgIT0gIm5vIgorIHRoZW4K CmRpZmYgLS1naXQgYS8wMDUzLXRlc3RzLUZpeC1zb21lLWZhaWxpbmctdGVzdHMucGF0Y2ggYi8w MDUzLXRlc3RzLUZpeC1zb21lLWZhaWxpbmctdGVzdHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMjZlNmQ4ZQotLS0gL2Rldi9udWxsCisrKyBiLzAwNTMtdGVzdHMt Rml4LXNvbWUtZmFpbGluZy10ZXN0cy5wYXRjaApAQCAtMCwwICsxLDgzIEBACitkaWZmIC1ydXBO IC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvdGVzdC90ZXN0X2dldHBhdGgucHkg UHl0aG9uLTMuMTQuNy1uZXcvTGliL3Rlc3QvdGVzdF9nZXRwYXRoLnB5CistLS0gUHl0aG9uLTMu MTQuNy9MaWIvdGVzdC90ZXN0X2dldHBhdGgucHkJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAw MDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9MaWIvdGVzdC90ZXN0X2dldHBhdGgucHkJ MjAyNi0wOS0yMiAwOTowNjo0NS40MTI3OTUxODggKzAyMDAKK0BAIC05MDQsNiArOTA0LDcgQEAg REVGQVVMVF9OQU1FU1BBQ0UgPSBkaWN0KAorICAgICBFTlZfUFlUSE9OSE9NRT0iIiwKKyAgICAg RU5WX1BZVEhPTkVYRUNVVEFCTEU9IiIsCisgICAgIEVOVl9fX1BZVkVOVl9MQVVOQ0hFUl9fPSIi LAorKyAgICBFTlZfTVNZU1RFTT0iIiwKKyAgICAgYXJndjA9IiIsCisgICAgIHB5X3NldHBhdGg9 IiIsCisgICAgIHJlYWxfZXhlY3V0YWJsZT0iIiwKK0BAIC05NDMsNiArOTQ0LDcgQEAgY2xhc3Mg TW9ja05UTmFtZXNwYWNlKGRpY3QpOgorICAgICAgICAgc2VsZi51cGRhdGUoREVGQVVMVF9OQU1F U1BBQ0UpCisgICAgICAgICBzZWxmWyJjb25maWciXSA9IERFRkFVTFRfQ09ORklHLmNvcHkoKQor ICAgICAgICAgc2VsZlsib3NfbmFtZSJdID0gIm50IgorKyAgICAgICAgc2VsZlsiaXNfbWluZ3ci XSA9IDAKKyAgICAgICAgIHNlbGZbIlBMQVRMSUJESVIiXSA9ICJETExzIgorICAgICAgICAgc2Vs ZlsiUFlXSU5WRVIiXSA9ICI5LjgtWFkiCisgICAgICAgICBzZWxmWyJWUEFUSCJdID0gciIuLlwu LiIKK0BAIC0xMTE5LDYgKzExMjEsNyBAQCBjbGFzcyBNb2NrUG9zaXhOYW1lc3BhY2UoZGljdCk6 CisgICAgICAgICBzZWxmLnVwZGF0ZShERUZBVUxUX05BTUVTUEFDRSkKKyAgICAgICAgIHNlbGZb ImNvbmZpZyJdID0gREVGQVVMVF9DT05GSUcuY29weSgpCisgICAgICAgICBzZWxmWyJvc19uYW1l Il0gPSAicG9zaXgiCisrICAgICAgICBzZWxmWyJpc19taW5ndyJdID0gMAorICAgICAgICAgc2Vs ZlsiUExBVExJQkRJUiJdID0gImxpYiIKKyAgICAgICAgIHNlbGZbIldJVEhfTkVYVF9GUkFNRVdP UksiXSA9IDAKKyAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKmEsICoqa3cpCitkaWZmIC1ydXBO IC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi90 ZXN0X3dpbmRvd3MucHkgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3Rlc3QvdGVzdF9pbXBvcnRsaWIv dGVzdF93aW5kb3dzLnB5CistLS0gUHl0aG9uLTMuMTQuNy9MaWIvdGVzdC90ZXN0X2ltcG9ydGxp Yi90ZXN0X3dpbmRvd3MucHkJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysr KyBQeXRob24tMy4xNC43LW5ldy9MaWIvdGVzdC90ZXN0X2ltcG9ydGxpYi90ZXN0X3dpbmRvd3Mu cHkJMjAyNi0wOS0yMiAwOTowNjo0NS40MTMwNzczOTcgKzAyMDAKK0BAIC0yNCw2ICsyNCwyOSBA QCBkZWYgZ2V0X3BsYXRmb3JtKCk6CisgICAgICAgICAgICAgJ3g2NCcgOiAnd2luLWFtZDY0JywK KyAgICAgICAgICAgICAnYXJtJyA6ICd3aW4tYXJtMzInLAorICAgICAgICAgfQorKyAgICBpZiBv cy5uYW1lID09ICdudCc6CisrICAgICAgICBpZiBzeXMuX2lzX21pbmd3OgorKyAgICAgICAgICAg IHBsYXRmb3JtID0gIm1pbmd3IgorKyAgICAgICAgICAgIGlmICJhbWQ2NCIgaW4gc3lzLnZlcnNp b24ubG93ZXIoKToKKysgICAgICAgICAgICAgICAgcGxhdGZvcm0gKz0gIl94ODZfNjQiCisrICAg ICAgICAgICAgZWxpZiAiYXJtNjQiIGluIHN5cy52ZXJzaW9uLmxvd2VyKCk6CisrICAgICAgICAg ICAgICAgIHBsYXRmb3JtICs9ICJfYWFyY2g2NCIKKysgICAgICAgICAgICBlbGlmICJhcm0iIGlu IHN5cy52ZXJzaW9uLmxvd2VyKCk6CisrICAgICAgICAgICAgICAgIHBsYXRmb3JtICs9ICJfYXJt djciCisrICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgcGxhdGZvcm0gKz0gIl9p Njg2IgorKworKyAgICAgICAgICAgIGlmICJ1Y3J0IiBpbiBzeXMudmVyc2lvbi5sb3dlcigpOgor KyAgICAgICAgICAgICAgICBwbGF0Zm9ybSArPSAiX3VjcnQiCisrICAgICAgICAgICAgZWxzZToK KysgICAgICAgICAgICAgICAgcGxhdGZvcm0gKz0gIl9tc3ZjcnQiCisrCisrICAgICAgICAgICAg aWYgImNsYW5nIiBpbiBzeXMudmVyc2lvbi5sb3dlcigpOgorKyAgICAgICAgICAgICAgICBwbGF0 Zm9ybSArPSAiX2xsdm0iCisrICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgcGxh dGZvcm0gKz0gIl9nbnUiCisrCisrICAgICAgICAgICAgcmV0dXJuIHBsYXRmb3JtCisgICAgIGlm ICgnVlNDTURfQVJHX1RHVF9BUkNIJyBpbiBvcy5lbnZpcm9uIGFuZAorICAgICAgICAgb3MuZW52 aXJvblsnVlNDTURfQVJHX1RHVF9BUkNIJ10gaW4gVEFSR0VUX1RPX1BMQVQpOgorICAgICAgICAg cmV0dXJuIFRBUkdFVF9UT19QTEFUW29zLmVudmlyb25bJ1ZTQ01EX0FSR19UR1RfQVJDSCddXQor ZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTGliL3Rlc3QvdGVzdF9z eXNjb25maWcucHkgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3Rlc3QvdGVzdF9zeXNjb25maWcucHkK Ky0tLSBQeXRob24tMy4xNC43L0xpYi90ZXN0L3Rlc3Rfc3lzY29uZmlnLnB5CTIwMjYtMDgtMDUg MTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3Rlc3Qv dGVzdF9zeXNjb25maWcucHkJMjAyNi0wOS0yMiAwOTowNjo0NS40MTMyODIwODMgKzAyMDAKK0BA IC0yMTAsNyArMjEwLDcgQEAgY2xhc3MgVGVzdFN5c0NvbmZpZyh1bml0dGVzdC5UZXN0Q2FzZSwg VgorICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaWJwYXRoLCBzeXNjb25maWcuZ2V0X3BhdGgo J3B1cmVsaWInLCBzY2hlbWU9J250X3ZlbnYnLCB2YXJzPXZhcnMpKQorIAorICAgICBkZWYgdGVz dF92ZW52X3NjaGVtZShzZWxmKToKKy0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzIn OgorKyAgICAgICAgaWYgbm90IHN5cy5faXNfbWluZ3cgYW5kIHN5cy5wbGF0Zm9ybSA9PSAnd2lu MzInOgorICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgIHN5 c2NvbmZpZy5nZXRfcGF0aCgnc2NyaXB0cycsIHNjaGVtZT0ndmVudicpLAorICAgICAgICAgICAg ICAgICBzeXNjb25maWcuZ2V0X3BhdGgoJ3NjcmlwdHMnLCBzY2hlbWU9J250X3ZlbnYnKQorQEAg LTQzMiw2ICs0MzIsMTAgQEAgY2xhc3MgVGVzdFN5c0NvbmZpZyh1bml0dGVzdC5UZXN0Q2FzZSwg VgorICAgICAgICAgICAgIGlmIEhBU19VU0VSX0JBU0U6CisgICAgICAgICAgICAgICAgIHVzZXJf cGF0aCA9IGdldF9wYXRoKG5hbWUsICdwb3NpeF91c2VyJykKKyAgICAgICAgICAgICAgICAgZXhw ZWN0ZWQgPSBvcy5wYXRoLm5vcm1wYXRoKGdsb2JhbF9wYXRoLnJlcGxhY2UoYmFzZSwgdXNlciwg MSkpCisrICAgICAgICAgICAgICAgIGlmIG9zLm5hbWUgPT0gJ250JyBhbmQgc3lzLl9pc19taW5n dzoKKysgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQucmVwbGFjZSgKKysg ICAgICAgICAgICAgICAgICAgICAgICBmJ3B5dGhvbntzeXNjb25maWcuZ2V0X3B5dGhvbl92ZXJz aW9uKCl9JywKKysgICAgICAgICAgICAgICAgICAgICAgICBmJ3B5dGhvbntzeXNjb25maWcuZ2V0 X3B5dGhvbl92ZXJzaW9uKCl9LXtnZXRfcGxhdGZvcm0oKX0nKQorICAgICAgICAgICAgICAgICAj IGJwby00NDg2MDogcGxhdGxpYiBvZiBwb3NpeF91c2VyIGRvZXNuJ3QgdXNlIHN5cy5wbGF0bGli ZGlyLAorICAgICAgICAgICAgICAgICAjIHdoZXJlYXMgcG9zaXhfcHJlZml4IGRvZXMuCisgICAg ICAgICAgICAgICAgIGlmIG5hbWUgPT0gJ3BsYXRsaWInOgoKZGlmZiAtLWdpdCBhLzAwNTQtYnVp bGQtZGVmLVZQQVRILXdoZW4tY29tcGlsaW5nLVB5dGhvbi1zeXNtb2R1bGUuYy5wYXRjaCBiLzAw NTQtYnVpbGQtZGVmLVZQQVRILXdoZW4tY29tcGlsaW5nLVB5dGhvbi1zeXNtb2R1bGUuYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjc5ZWNlCi0tLSAvZGV2L251 bGwKKysrIGIvMDA1NC1idWlsZC1kZWYtVlBBVEgtd2hlbi1jb21waWxpbmctUHl0aG9uLXN5c21v ZHVsZS5jLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5j ZSBQeXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbiBQeXRob24tMy4xNC43LW5ldy9NYWtlZmls ZS5wcmUuaW4KKy0tLSBQeXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5 OjA2OjQ0LjIyODY0MTgxNyArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01ha2VmaWxlLnBy ZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjQ1LjcxMTc5OTc1OSArMDIwMAorQEAgLTIwMTYsNiArMjAx Niw3IEBAIFB5dGhvbi9keW5sb2FkX3dpbi5vOiAkKHNyY2RpcikvUHl0aG9uL2QKKyBQeXRob24v c3lzbW9kdWxlLm86ICQoc3JjZGlyKS9QeXRob24vc3lzbW9kdWxlLmMgTWFrZWZpbGUgJChzcmNk aXIpL0luY2x1ZGUvcHlkdHJhY2UuaAorIAkkKENDKSAtYyAkKFBZX0NPUkVfQ0ZMQUdTKSBcCisg CQktREFCSUZMQUdTPSciJChBQklGTEFHUykiJyBcCisrCQktRFZQQVRIPSciJChWUEFUSCkiJyBc CisgCQkkKE1VTFRJQVJDSF9DUFBGTEFHUykgXAorIAkJLW8gJEAgJChzcmNkaXIpL1B5dGhvbi9z eXNtb2R1bGUuYworIAoKZGlmZiAtLWdpdCBhLzAwNTUtY29uZmlndXJlLWNvcnJlY3RseS1maW5k LW5hdGl2ZS1weXRob24ucGF0Y2ggYi8wMDU1LWNvbmZpZ3VyZS1jb3JyZWN0bHktZmluZC1uYXRp dmUtcHl0aG9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkZjg5 MTgKLS0tIC9kZXYvbnVsbAorKysgYi8wMDU1LWNvbmZpZ3VyZS1jb3JyZWN0bHktZmluZC1uYXRp dmUtcHl0aG9uLnBhdGNoCkBAIC0wLDAgKzEsMTYgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVy ZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1 cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjQ1 LjQwNzcyMDM5NyArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2 LTA5LTIyIDA5OjA2OjQ2LjAwMjY3ODg5OSArMDIwMAorQEAgLTIwNCw5ICsyMDQsMTEgQEAgQUNf U1VCU1QoW0ZSRUVaRV9NT0RVTEVdKQorIEFDX1NVQlNUKFtGUkVFWkVfTU9EVUxFX0RFUFNdKQor IEFDX1NVQlNUKFtQWVRIT05fRk9SX0JVSUxEX0RFUFNdKQorIAorK05BVElWRV9QWVRIT05fU0VB UkNIX1BBVEhfTUlOR1c9YGVjaG8gJGhvc3QgfCBncmVwIC1FcSAnbWluZ3cqJyAmJiBlY2hvICIk TUlOR1dfUFJFRklYL2JpbiIgfHwgZWNobyAkUEFUSGAKKyBBQ19DSEVDS19QUk9HUyhbUFlUSE9O X0ZPUl9SRUdFTl0sCisgICBbcHl0aG9uJFBBQ0tBR0VfVkVSU0lPTiBweXRob24zLjE1IHB5dGhv bjMuMTQgcHl0aG9uMy4xMyBweXRob24zLjEyIHB5dGhvbjMuMTEgcHl0aG9uMy4xMCBweXRob24z IHB5dGhvbl0sCistICBbcHl0aG9uM10pCisrICBbcHl0aG9uM10sCisrICBbJE5BVElWRV9QWVRI T05fU0VBUkNIX1BBVEhfTUlOR1ddKQorIEFDX1NVQlNUKFtQWVRIT05fRk9SX1JFR0VOXSkKKyAK KyBBQ19NU0dfQ0hFQ0tJTkcoW1B5dGhvbiBmb3IgcmVnZW4gdmVyc2lvbl0pCgpkaWZmIC0tZ2l0 IGEvMDA1Ni1idWlsZC1BZGQtZXh0cmEtZmxhZ3MtZm9yLV9ib290c3RyYXBfcHl0aG9uLnBhdGNo IGIvMDA1Ni1idWlsZC1BZGQtZXh0cmEtZmxhZ3MtZm9yLV9ib290c3RyYXBfcHl0aG9uLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNDhlN2QKLS0tIC9kZXYvbnVs bAorKysgYi8wMDU2LWJ1aWxkLUFkZC1leHRyYS1mbGFncy1mb3ItX2Jvb3RzdHJhcF9weXRob24u cGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhv bi0zLjE0LjcvTWFrZWZpbGUucHJlLmluIFB5dGhvbi0zLjE0LjctbmV3L01ha2VmaWxlLnByZS5p bgorLS0tIFB5dGhvbi0zLjE0LjcvTWFrZWZpbGUucHJlLmluCTIwMjYtMDktMjIgMDk6MDY6NDUu OTk4NzQ3OTk3ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTWFrZWZpbGUucHJlLmluCTIw MjYtMDktMjIgMDk6MDY6NDYuMjkxNjU4NzQzICswMjAwCitAQCAtMTcxOCw3ICsxNzE4LDcgQEAg Qk9PVFNUUkFQX0hFQURFUlMgPSBcCisgUHJvZ3JhbXMvX2Jvb3RzdHJhcF9weXRob24ubzogUHJv Z3JhbXMvX2Jvb3RzdHJhcF9weXRob24uYyAkKEJPT1RTVFJBUF9IRUFERVJTKSAkKFBZVEhPTl9I RUFERVJTKQorIAorIF9ib290c3RyYXBfcHl0aG9uOiAkKExJQlJBUllfT0JKU19PTUlUX0ZST1pF TikgUHJvZ3JhbXMvX2Jvb3RzdHJhcF9weXRob24ubyBNb2R1bGVzL2dldHBhdGgubyBNb2R1bGVz L1NldHVwLmxvY2FsCistCSQoTElOS0NDKSAkKFBZX0xERkxBR1NfTk9MVE8pIC1vICRAICQoTElC UkFSWV9PQkpTX09NSVRfRlJPWkVOKSBcCisrCSQoTElOS0NDKSAkKFBZX0xERkxBR1NfTk9MVE8p IC1vICRAIC1tdW5pY29kZSAtbXdpbmRvd3MgJChMSUJSQVJZX09CSlNfT01JVF9GUk9aRU4pIFwK KyAJCVByb2dyYW1zL19ib290c3RyYXBfcHl0aG9uLm8gTW9kdWxlcy9nZXRwYXRoLm8gJChMSUJT KSAkKE1PRExJQlMpICQoU1lTTElCUykKKyAJIyBEdW1teSBweWJ1aWxkZGlyLnR4dCAgaXMgbmVl ZGVkIGZvciBfYm9vdHN0cmFwX3B5dGhvbiB0byBiZSBydW5uYWJsZQorIAlAZWNobyAibm9uZSIg PiAuL3B5YnVpbGRkaXIudHh0CgpkaWZmIC0tZ2l0IGEvMDA1Ny1nZXRwYXRoLWFkZC1zdXBwb3J0 LWZvci1taW5ndy5wYXRjaCBiLzAwNTctZ2V0cGF0aC1hZGQtc3VwcG9ydC1mb3ItbWluZ3cucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNkYjM3MAotLS0gL2Rldi9u dWxsCisrKyBiLzAwNTctZ2V0cGF0aC1hZGQtc3VwcG9ydC1mb3ItbWluZ3cucGF0Y2gKQEAgLTAs MCArMSw0NjAgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L0lu Y2x1ZGUvcHlsaWZlY3ljbGUuaCBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL3B5bGlmZWN5Y2xl LmgKKy0tLSBQeXRob24tMy4xNC43L0luY2x1ZGUvcHlsaWZlY3ljbGUuaAkyMDI2LTA5LTIyIDA5 OjA2OjM4LjgzMzU1MDYyNCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0luY2x1ZGUvcHls aWZlY3ljbGUuaAkyMDI2LTA5LTIyIDA5OjA2OjQ2LjU3NzUwMDUxMiArMDIwMAorQEAgLTIxLDYg KzIxLDcgQEAgUHlBUElfRlVOQyhpbnQpIFB5X0lzSW5pdGlhbGl6ZWQodm9pZCk7CisgUHlBUElf RlVOQyhQeVRocmVhZFN0YXRlICopIFB5X05ld0ludGVycHJldGVyKHZvaWQpOworIFB5QVBJX0ZV TkModm9pZCkgUHlfRW5kSW50ZXJwcmV0ZXIoUHlUaHJlYWRTdGF0ZSAqKTsKKyAKKytQeUFQSV9G VU5DKHdjaGFyX3QpIFB5X0dldEFsdFNlcFcoY29uc3Qgd2NoYXJfdCAqKTsKKyBQeUFQSV9GVU5D KHdjaGFyX3QpIFB5X0dldFNlcFcoY29uc3Qgd2NoYXJfdCAqKTsKKyBQeUFQSV9GVU5DKGNoYXIp IFB5X0dldFNlcEEoY29uc3QgY2hhciAqKTsKKyAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5j ZSBQeXRob24tMy4xNC43L0xpYi90ZXN0L3Rlc3RfZ2V0cGF0aC5weSBQeXRob24tMy4xNC43LW5l dy9MaWIvdGVzdC90ZXN0X2dldHBhdGgucHkKKy0tLSBQeXRob24tMy4xNC43L0xpYi90ZXN0L3Rl c3RfZ2V0cGF0aC5weQkyMDI2LTA5LTIyIDA5OjA2OjQ1LjcwNjYwMzM4NCArMDIwMAorKysrIFB5 dGhvbi0zLjE0LjctbmV3L0xpYi90ZXN0L3Rlc3RfZ2V0cGF0aC5weQkyMDI2LTA5LTIyIDA5OjA2 OjQ2LjU3Nzc5MTcxOCArMDIwMAorQEAgLTk4MCw2ICs5ODAsOSBAQCBjbGFzcyBNb2NrTlROYW1l c3BhY2UoZGljdCk6CisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAg ICAgcmFpc2UgS2V5RXJyb3Ioa2V5KSBmcm9tIE5vbmUKKyAKKysgICAgZGVmIG5vcm1wYXRoKHNl bGYsIHBhdGgpOgorKyAgICAgICAgcmV0dXJuIG50cGF0aC5ub3JtcGF0aChwYXRoKQorKworICAg ICBkZWYgYWJzcGF0aChzZWxmLCBwYXRoKToKKyAgICAgICAgIGlmIHNlbGYuaXNhYnMocGF0aCk6 CisgICAgICAgICAgICAgcmV0dXJuIHBhdGgKK0BAIC0xMTU4LDYgKzExNjEsOSBAQCBjbGFzcyBN b2NrUG9zaXhOYW1lc3BhY2UoZGljdCk6CisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6 CisgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3Ioa2V5KSBmcm9tIE5vbmUKKyAKKysgICAgZGVm IG5vcm1wYXRoKHNlbGYsIHBhdGgpOgorKyAgICAgICAgcmV0dXJuIHBhdGgKKysKKyAgICAgZGVm IGFic3BhdGgoc2VsZiwgcGF0aCk6CisgICAgICAgICBpZiBzZWxmLmlzYWJzKHBhdGgpOgorICAg ICAgICAgICAgIHJldHVybiBwYXRoCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9u LTMuMTQuNy9Nb2R1bGVzL2dldHBhdGguYyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL2dldHBh dGguYworLS0tIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9nZXRwYXRoLmMJMjAyNi0wOC0wNSAxMjoy OTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL2dldHBh dGguYwkyMDI2LTA5LTIyIDA5OjA2OjQ2LjU3ODA5MjA0MiArMDIwMAorQEAgLTYxLDYgKzYxLDI1 IEBACisgLyogSEVMUEVSIEZVTkNUSU9OUyBmb3IgZ2V0cGF0aC5weSAqLworIAorIHN0YXRpYyBQ eU9iamVjdCAqCisrZ2V0cGF0aF9ub3JtcGF0aChQeU9iamVjdCAqUHlfVU5VU0VEKHNlbGYpLCBQ eU9iamVjdCAqYXJncykKKyt7CisrICAgIFB5T2JqZWN0ICpyID0gTlVMTDsKKysgICAgUHlPYmpl Y3QgKnBhdGhvYmo7CisrICAgIHdjaGFyX3QgKnBhdGg7CisrICAgIGlmICghUHlBcmdfUGFyc2VU dXBsZShhcmdzLCAiVSIsICZwYXRob2JqKSkgeworKyAgICAgICAgcmV0dXJuIE5VTEw7CisrICAg IH0KKysgICAgUHlfc3NpemVfdCBsZW47CisrICAgIHdjaGFyX3QgKmJ1ZmZlciA9IFB5VW5pY29k ZV9Bc1dpZGVDaGFyU3RyaW5nKHBhdGhvYmosICZsZW4pOworKyAgICBpZiAoIWJ1ZmZlcikgewor KyAgICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKysgICAgciA9IFB5VW5pY29kZV9Gcm9tV2lk ZUNoYXIoX1B5X25vcm1wYXRoKGJ1ZmZlciwgbGVuKSwgLTEpOworKyAgICBQeU1lbV9GcmVlKGJ1 ZmZlcik7CisrICAgIHJldHVybiByOworK30KKysKKytzdGF0aWMgUHlPYmplY3QgKgorIGdldHBh dGhfYWJzcGF0aChQeU9iamVjdCAqUHlfVU5VU0VEKHNlbGYpLCBQeU9iamVjdCAqYXJncykKKyB7 CisgICAgIFB5T2JqZWN0ICpyID0gTlVMTDsKK0BAIC05NCw2ICsxMTMsMTIgQEAgZ2V0cGF0aF9i YXNlbmFtZShQeU9iamVjdCAqUHlfVU5VU0VEKHNlbAorICAgICB9CisgICAgIFB5X3NzaXplX3Qg ZW5kID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocGF0aCk7CisgICAgIFB5X3NzaXplX3QgcG9zID0g UHlVbmljb2RlX0ZpbmRDaGFyKHBhdGgsIFNFUCwgMCwgZW5kLCAtMSk7CisrI2lmZGVmIEFMVFNF UAorKyAgICBpZiAocG9zIDwgMCkgeworKyAgICAgICAgLy8gdHJ5IHVzaW5nIGFsdHNlcAorKyAg ICAgICAgcG9zID0gUHlVbmljb2RlX0ZpbmRDaGFyKHBhdGgsIEFMVFNFUCwgMCwgZW5kLCAtMSk7 CisrICAgIH0KKysjZW5kaWYKKyAgICAgaWYgKHBvcyA8IDApIHsKKyAgICAgICAgIHJldHVybiBQ eV9OZXdSZWYocGF0aCk7CisgICAgIH0KK0BAIC0xMTAsNiArMTM1LDEyIEBAIGdldHBhdGhfZGly bmFtZShQeU9iamVjdCAqUHlfVU5VU0VEKHNlbGYKKyAgICAgfQorICAgICBQeV9zc2l6ZV90IGVu ZCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHBhdGgpOworICAgICBQeV9zc2l6ZV90IHBvcyA9IFB5 VW5pY29kZV9GaW5kQ2hhcihwYXRoLCBTRVAsIDAsIGVuZCwgLTEpOworKyNpZmRlZiBBTFRTRVAK KysgICAgaWYgKHBvcyA8IDApIHsKKysgICAgICAgIC8vIHRyeSB1c2luZyBhbHRzZXAKKysgICAg ICAgIHBvcyA9IFB5VW5pY29kZV9GaW5kQ2hhcihwYXRoLCBBTFRTRVAsIDAsIGVuZCwgLTEpOwor KyAgICB9CisrI2VuZGlmCisgICAgIGlmIChwb3MgPCAwKSB7CisgICAgICAgICByZXR1cm4gUHlf R2V0Q29uc3RhbnQoUHlfQ09OU1RBTlRfRU1QVFlfU1RSKTsKKyAgICAgfQorQEAgLTU2NCw2ICs1 OTUsNyBAQCBkb25lOgorIAorIAorIHN0YXRpYyBQeU1ldGhvZERlZiBnZXRwYXRoX21ldGhvZHNb XSA9IHsKKysgICAgeyJub3JtcGF0aCIsIGdldHBhdGhfbm9ybXBhdGgsIE1FVEhfVkFSQVJHUywg TlVMTH0sCisgICAgIHsiYWJzcGF0aCIsIGdldHBhdGhfYWJzcGF0aCwgTUVUSF9WQVJBUkdTLCBO VUxMfSwKKyAgICAgeyJiYXNlbmFtZSIsIGdldHBhdGhfYmFzZW5hbWUsIE1FVEhfVkFSQVJHUywg TlVMTH0sCisgICAgIHsiZGlybmFtZSIsIGdldHBhdGhfZGlybmFtZSwgTUVUSF9WQVJBUkdTLCBO VUxMfSwKK0BAIC05MTksNiArOTUxLDExIEBAIF9QeUNvbmZpZ19Jbml0UGF0aENvbmZpZyhQeUNv bmZpZyAqY29uZmkKKyAjZWxzZQorICAgICAgICAgIWRlY29kZV90b19kaWN0KGRpY3QsICJvc19u YW1lIiwgInBvc2l4IikgfHwKKyAjZW5kaWYKKysjaWZkZWYgX19NSU5HVzMyX18KKysgICAgICAg ICFpbnRfdG9fZGljdChkaWN0LCAiaXNfbWluZ3ciLCAxKSB8fAorKyNlbHNlCisrICAgICAgICAh aW50X3RvX2RpY3QoZGljdCwgImlzX21pbmd3IiwgMCkgfHwKKysjZW5kaWYKKyAjaWZkZWYgV0lU SF9ORVhUX0ZSQU1FV09SSworICAgICAgICAgIWludF90b19kaWN0KGRpY3QsICJXSVRIX05FWFRf RlJBTUVXT1JLIiwgMSkgfHwKKyAjZWxzZQorQEAgLTk1MSw2ICs5ODgsOSBAQCBfUHlDb25maWdf SW5pdFBhdGhDb25maWcoUHlDb25maWcgKmNvbmZpCisgI2lmbmRlZiBNU19XSU5ET1dTCisgICAg ICAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkaWN0LCAid2lucmVnIiwgUHlfTm9uZSkgPCAwIHx8 CisgI2VuZGlmCisrI2lmZGVmIF9fTUlOR1czMl9fCisrICAgICAgICAhZW52X3RvX2RpY3QoZGlj dCwgIkVOVl9NU1lTVEVNIiwgMCkgfHwKKysjZW5kaWYKKyAgICAgICAgIFB5RGljdF9TZXRJdGVt U3RyaW5nKGRpY3QsICJfX2J1aWx0aW5zX18iLCBQeUV2YWxfR2V0QnVpbHRpbnMoKSkgPCAwCisg ICAgICkgeworICAgICAgICAgUHlfREVDUkVGKGNvKTsKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVy ZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvZ2V0cGF0aC5weSBQeXRob24tMy4xNC43LW5ldy9N b2R1bGVzL2dldHBhdGgucHkKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvZ2V0cGF0aC5weQky MDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3 L01vZHVsZXMvZ2V0cGF0aC5weQkyMDI2LTA5LTIyIDA5OjA2OjQ2LjU3ODM4MDY5MSArMDIwMAor QEAgLTMwLDYgKzMwLDcgQEAKKyAKKyAjICoqIFZhbHVlcyBrbm93biBhdCBjb21waWxlIHRpbWUg KioKKyAjIG9zX25hbWUgICAgICAgICAgIC0tIFtpbl0gb25lIG9mICdudCcsICdwb3NpeCcsICdk YXJ3aW4nCisrIyBpc19taW5ndyAgICAgICAgICAtLSBbaW5dIFRydWUgaWYgdGFyZ2V0aW5nIE1p bkdXCisgIyBQUkVGSVggICAgICAgICAgICAtLSBbaW5dIHN5c2NvbmZpZy5nZXRfY29uZmlnX3Zh ciguLi4pCisgIyBFWEVDX1BSRUZJWCAgICAgICAtLSBbaW5dIHN5c2NvbmZpZy5nZXRfY29uZmln X3ZhciguLi4pCisgIyBQWVRIT05QQVRIICAgICAgICAtLSBbaW5dIHN5c2NvbmZpZy5nZXRfY29u ZmlnX3ZhciguLi4pCitAQCAtNTIsNiArNTMsNyBAQAorICMgRU5WX1BZVEhPTkhPTUUgICAgICAg ICAgLS0gW2luXSBnZXRlbnYoLi4uKQorICMgRU5WX1BZVEhPTkVYRUNVVEFCTEUgICAgLS0gW2lu XSBnZXRlbnYoLi4uKQorICMgRU5WX19fUFlWRU5WX0xBVU5DSEVSX18gLS0gW2luXSBnZXRlbnYo Li4uKQorKyMgRU5WX01TWVNURU0gICAgICAgICAgICAgLS0gW2luXSBnZXRlbnYoLi4uKQorIAor ICMgKiogVmFsdWVzIGNhbGN1bGF0ZWQgYXQgcnVudGltZSAqKgorICMgY29uZmlnICAgICAgICAg ICAgLS0gW2luL291dF0gZGljdCBvZiB0aGUgUHlDb25maWcgc3RydWN0dXJlCitAQCAtMTg1LDgg KzE4NywyNyBAQCBpZiBvc19uYW1lID09ICdwb3NpeCcgb3Igb3NfbmFtZSA9PSAnZGFyCisgICAg IFpJUF9MQU5ETUFSSyA9IGYne3BsYXRsaWJkaXJ9L3B5dGhvbntWRVJTSU9OX01BSk9SfXtWRVJT SU9OX01JTk9SfXtBQklfVEhSRUFEfS56aXAnCisgICAgIERFTElNID0gJzonCisgICAgIFNFUCA9 ICcvJworKyAgICBBTFRTRVAgPSBOb25lCisgCistZWxpZiBvc19uYW1lID09ICdudCc6CisrZWxp ZiBvc19uYW1lID09ICdudCcgYW5kIGlzX21pbmd3OgorKyAgICBCVUlMRERJUl9UWFQgPSAncHli dWlsZGRpci50eHQnCisrICAgIEJVSUxEX0xBTkRNQVJLID0gJ01vZHVsZXMvU2V0dXAubG9jYWwn CisrICAgIERFRkFVTFRfUFJPR1JBTV9OQU1FID0gZidweXRob257VkVSU0lPTl9NQUpPUn0nCisr ICAgIFNURExJQl9TVUJESVIgPSBmJ3twbGF0bGliZGlyfS9weXRob257VkVSU0lPTl9NQUpPUn0u e1ZFUlNJT05fTUlOT1J9JworKyAgICBTVERMSUJfTEFORE1BUktTID0gW2Yne1NURExJQl9TVUJE SVJ9L29zLnB5JywgZid7U1RETElCX1NVQkRJUn0vb3MucHljJ10KKysgICAgUExBVFNURExJQl9M QU5ETUFSSyA9IGYne3BsYXRsaWJkaXJ9L3B5dGhvbntWRVJTSU9OX01BSk9SfS57VkVSU0lPTl9N SU5PUn0vbGliLWR5bmxvYWQnCisrICAgIEJVSUxEU1RETElCX0xBTkRNQVJLUyA9IFsnTGliL29z LnB5J10KKysgICAgVkVOVl9MQU5ETUFSSyA9ICdweXZlbnYuY2ZnJworKyAgICBaSVBfTEFORE1B UksgPSBmJ3twbGF0bGliZGlyfS9weXRob257VkVSU0lPTl9NQUpPUn17VkVSU0lPTl9NSU5PUn0u emlwJworKyAgICBERUxJTSA9ICc7JworKyAgICBpZiBFTlZfTVNZU1RFTToKKysgICAgICAgIFNF UCA9ICcvJworKyAgICAgICAgQUxUU0VQID0gJ1xcJworKyAgICBlbHNlOgorKyAgICAgICAgU0VQ ID0gJ1xcJworKyAgICAgICAgQUxUU0VQID0gJy8nCisrCisrZWxpZiBvc19uYW1lID09ICdudCc6 ICMgTVNWQworICAgICBCVUlMRERJUl9UWFQgPSAncHlidWlsZGRpci50eHQnCisgICAgIERFRkFV TFRfUFJPR1JBTV9OQU1FID0gZidweXRob24nCisgICAgIFNURExJQl9TVUJESVIgPSAnTGliJwor QEAgLTE5OCw2ICsyMTksNyBAQCBlbGlmIG9zX25hbWUgPT0gJ250JzoKKyAgICAgV0lOUkVHX0tF WSA9IGYnU09GVFdBUkVcXFB5dGhvblxcUHl0aG9uQ29yZVxce1BZV0lOVkVSfVxcUHl0aG9uUGF0 aCcKKyAgICAgREVMSU0gPSAnOycKKyAgICAgU0VQID0gJ1xcJworKyAgICBBTFRTRVAgPSAnLycK KyAKKyAKKyAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorQEAgLTIxMCw2ICsyMzIsOCBAQCBkZWYg c2VhcmNoX3VwKHByZWZpeCwgKmxhbmRtYXJrcywgdGVzdD1pCisgICAgICAgICAgICAgcmV0dXJu IHByZWZpeAorICAgICAgICAgcHJlZml4ID0gZGlybmFtZShwcmVmaXgpCisgCisrZGVmIF9ub3Jt cGF0aChwKToKKysgICAgcmV0dXJuIG5vcm1wYXRoKHApIGlmIHAgaXMgbm90IE5vbmUgZWxzZSBO b25lCisgCisgIyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAjIFJFQUQgVkFSSUFCTEVTIEZST00g Y29uZmlnCitAQCAtMjYxLDEwICsyODUsMTAgQEAgaWYgcHlfc2V0cGF0aDoKKyAgICAgaWYgbm90 IGV4ZWN1dGFibGU6CisgICAgICAgICBleGVjdXRhYmxlID0gcmVhbF9leGVjdXRhYmxlCisgCist aWYgbm90IGV4ZWN1dGFibGUgYW5kIFNFUCBpbiBwcm9ncmFtX25hbWU6CisraWYgbm90IGV4ZWN1 dGFibGUgYW5kIChTRVAgaW4gcHJvZ3JhbV9uYW1lIG9yIAorKyAgICAgICAgICAgICAgICAgICAg ICAgKEFMVFNFUCBhbmQgQUxUU0VQIGluIHByb2dyYW1fbmFtZSkpOgorICAgICAjIFJlc29sdmUg cGFydGlhbCBwYXRoIHByb2dyYW1fbmFtZSBhZ2FpbnN0IGN1cnJlbnQgZGlyZWN0b3J5CisgICAg IGV4ZWN1dGFibGUgPSBhYnNwYXRoKHByb2dyYW1fbmFtZSkKKy0KKyBpZiBub3QgZXhlY3V0YWJs ZToKKyAgICAgIyBBbGwgcGxhdGZvcm1zIGRlZmF1bHQgdG8gcmVhbF9leGVjdXRhYmxlIGlmIGtu b3duIGF0IHRoaXMKKyAgICAgIyBzdGFnZS4gUE9TSVggZG9lcyBub3Qgc2V0IHRoaXMgdmFsdWUu CitAQCAtNTE0LDggKzUzOCw4IEBAIGlmICgobm90IGhvbWVfd2FzX3NldCBhbmQgcmVhbF9leGVj dXRhYmwKKyAgICAgICAgIHBhc3MKKyAKKyAgICAgaWYgYnVpbGRfcHJlZml4OgorLSAgICAgICAg aWYgb3NfbmFtZSA9PSAnbnQnOgorLSAgICAgICAgICAgICMgUVVJUks6IE5vIHNlYXJjaGluZyBm b3IgbW9yZSBsYW5kbWFya3Mgb24gV2luZG93cworKyAgICAgICAgaWYgb3NfbmFtZSA9PSAnbnQn IGFuZCBub3QgaXNfbWluZ3c6CisrICAgICAgICAgICAgIyBRVUlSSzogTm8gc2VhcmNoaW5nIGZv ciBtb3JlIGxhbmRtYXJrcyBvbiBNU1ZDCisgICAgICAgICAgICAgYnVpbGRfc3RkbGliX3ByZWZp eCA9IGJ1aWxkX3ByZWZpeAorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBidWlsZF9zdGRs aWJfcHJlZml4ID0gc2VhcmNoX3VwKGJ1aWxkX3ByZWZpeCwgKkJVSUxEU1RETElCX0xBTkRNQVJL UykKK0BAIC01NjQsNiArNTg4LDkgQEAgZWxzZToKKyAgICAgIyBGaXJzdCB0cnkgdG8gZGV0ZWN0 IHByZWZpeCBieSBsb29raW5nIGFsb25nc2lkZSBvdXIgcnVudGltZSBsaWJyYXJ5LCBpZiBrbm93 bgorICAgICBpZiBsaWJyYXJ5IGFuZCBub3QgcHJlZml4OgorICAgICAgICAgbGlicmFyeV9kaXIg PSBkaXJuYW1lKGxpYnJhcnkpCisrICAgICAgICBpZiBvc19uYW1lID09ICdudCcgYW5kIGlzX21p bmd3OgorKyAgICAgICAgICAgICMgUVVJUks6IE9uIFdpbmRvd3MsIG1pbmd3IFB5dGhvbiBETExz IGFyZSBpbiB0aGUgYmluIGRpcmVjdG9yeQorKyAgICAgICAgICAgIGxpYnJhcnlfZGlyID0gam9p bnBhdGgobGlicmFyeV9kaXIsICcuLicpCisgICAgICAgICBpZiBaSVBfTEFORE1BUks6CisgICAg ICAgICAgICAgaWYgb3NfbmFtZSA9PSAnbnQnOgorICAgICAgICAgICAgICAgICAjIFFVSVJLOiBX aW5kb3dzIGRvZXMgbm90IHNlYXJjaCB1cCBmb3IgWklQIGZpbGUKK0BAIC02MTAsNyArNjM3LDcg QEAgZWxzZToKKyAKKyAgICAgIyBEZXRlY3QgZXhlY19wcmVmaXggYnkgc2VhcmNoaW5nIGZyb20g ZXhlY3V0YWJsZSBmb3IgdGhlIHBsYXRzdGRsaWJfZGlyCisgICAgIGlmIFBMQVRTVERMSUJfTEFO RE1BUksgYW5kIG5vdCBleGVjX3ByZWZpeDoKKy0gICAgICAgIGlmIG9zX25hbWUgPT0gJ250JzoK KysgICAgICAgIGlmIG9zX25hbWUgPT0gJ250JyBhbmQgKG5vdCBpc19taW5ndyk6CisgICAgICAg ICAgICAgIyBRVUlSSzogV2luZG93cyBhbHdheXMgYXNzdW1lZCB0aGVzZSB3ZXJlIHRoZSBzYW1l CisgICAgICAgICAgICAgIyBnaC0xMDAzMjA6IE91ciBQWURzIGFyZSBhc3N1bWVkIHRvIGJlIHJl bGF0aXZlIHRvIHRoZSBMaWIgZGlyZWN0b3J5CisgICAgICAgICAgICAgIyAodGhhdCBpcywgcHJl Zml4KSByYXRoZXIgdGhhbiB0aGUgZXhlY3V0YWJsZSAodGhhdCBpcywgZXhlY3V0YWJsZV9kaXIp CitAQCAtNjIyLDcgKzY0OSw3IEBAIGVsc2U6CisgICAgICAgICBpZiBub3QgZXhlY19wcmVmaXgg YW5kIEVYRUNfUFJFRklYOgorICAgICAgICAgICAgIGV4ZWNfcHJlZml4ID0gRVhFQ19QUkVGSVgK KyAgICAgICAgIGlmIG5vdCBleGVjX3ByZWZpeCBvciBub3QgaXNkaXIoam9pbnBhdGgoZXhlY19w cmVmaXgsIFBMQVRTVERMSUJfTEFORE1BUkspKToKKy0gICAgICAgICAgICBpZiBvc19uYW1lID09 ICdudCc6CisrICAgICAgICAgICAgaWYgb3NfbmFtZSA9PSAnbnQnIGFuZCAobm90IGlzX21pbmd3 KToKKyAgICAgICAgICAgICAgICAgIyBRVUlSSzogSWYgRExMcyBpcyBtaXNzaW5nIG9uIFdpbmRv d3MsIGRvbid0IHdhcm4sIGp1c3QgYXNzdW1lCisgICAgICAgICAgICAgICAgICMgdGhhdCB0aGV5 J3JlIGluIGV4ZWNfcHJlZml4CisgICAgICAgICAgICAgICAgIGlmIG5vdCBwbGF0c3RkbGliX2Rp cjoKK0BAIC02NjksNyArNjk2LDcgQEAgaWYgbm90IGJhc2VfZXhlY19wcmVmaXg6CisgCisgaWYg cHlfc2V0cGF0aDoKKyAgICAgIyBJZiBQeV9TZXRQYXRoIHdhcyBjYWxsZWQgdGhlbiBpdCBvdmVy cmlkZXMgYW55IGV4aXN0aW5nIHNlYXJjaCBwYXRoCistICAgIGNvbmZpZ1snbW9kdWxlX3NlYXJj aF9wYXRocyddID0gcHlfc2V0cGF0aC5zcGxpdChERUxJTSkKKysgICAgY29uZmlnWydtb2R1bGVf c2VhcmNoX3BhdGhzJ10gPSBbX25vcm1wYXRoKHApIGZvciBwIGluIHB5X3NldHBhdGguc3BsaXQo REVMSU0pXQorICAgICBjb25maWdbJ21vZHVsZV9zZWFyY2hfcGF0aHNfc2V0J10gPSAxCisgCisg ZWxpZiBub3QgcHl0aG9ucGF0aF93YXNfc2V0OgorQEAgLTY4NCw3ICs3MTEsNyBAQCBlbGlmIG5v dCBweXRob25wYXRoX3dhc19zZXQ6CisgICAgICAgICAgICAgcHl0aG9ucGF0aC5hcHBlbmQoYWJz cGF0aChwKSkKKyAKKyAgICAgIyBUaGVuIGFkZCB0aGUgZGVmYXVsdCB6aXAgZmlsZQorLSAgICBp ZiBvc19uYW1lID09ICdudCc6CisrICAgIGlmIG9zX25hbWUgPT0gJ250JyBhbmQgKG5vdCBpc19t aW5ndyk6CisgICAgICAgICAjIFFVSVJLOiBXaW5kb3dzIHVzZXMgdGhlIGxpYnJhcnkgZGlyZWN0 b3J5IHJhdGhlciB0aGFuIHRoZSBwcmVmaXgKKyAgICAgICAgIGlmIGxpYnJhcnk6CisgICAgICAg ICAgICAgbGlicmFyeV9kaXIgPSBkaXJuYW1lKGxpYnJhcnkpCitAQCAtNjk3LDcgKzcyNCw3IEBA IGVsaWYgbm90IHB5dGhvbnBhdGhfd2FzX3NldDoKKyAgICAgZWxzZToKKyAgICAgICAgIHB5dGhv bnBhdGguYXBwZW5kKGpvaW5wYXRoKGJhc2VfcHJlZml4LCBaSVBfTEFORE1BUkspKQorIAorLSAg ICBpZiBvc19uYW1lID09ICdudCcgYW5kIHVzZV9lbnZpcm9ubWVudCBhbmQgd2lucmVnOgorKyAg ICBpZiAobm90IGlzX21pbmd3KSBhbmQgb3NfbmFtZSA9PSAnbnQnIGFuZCB1c2VfZW52aXJvbm1l bnQgYW5kIHdpbnJlZzoKKyAgICAgICAgICMgUVVJUks6IFdpbmRvd3MgYWxzbyBsaXN0cyBwYXRo cyBpbiB0aGUgcmVnaXN0cnkuIFBhdGhzIGFyZSBzdG9yZWQKKyAgICAgICAgICMgYXMgdGhlIGRl ZmF1bHQgdmFsdWUgb2YgZWFjaCBzdWJrZXkgb2YKKyAgICAgICAgICMge0hLQ1UsSEtMTX1cU29m dHdhcmVcUHl0aG9uXFB5dGhvbkNvcmVce3dpbnZlcn1cUHl0aG9uUGF0aAorQEAgLTczOCw3ICs3 NjUsNyBAQCBlbGlmIG5vdCBweXRob25wYXRoX3dhc19zZXQ6CisgICAgIGlmIG5vdCBwbGF0c3Rk bGliX2RpciBhbmQgYmFzZV9leGVjX3ByZWZpeDoKKyAgICAgICAgIHBsYXRzdGRsaWJfZGlyID0g am9pbnBhdGgoYmFzZV9leGVjX3ByZWZpeCwgUExBVFNURExJQl9MQU5ETUFSSykKKyAKKy0gICAg aWYgb3NfbmFtZSA9PSAnbnQnOgorKyAgICBpZiBvc19uYW1lID09ICdudCcgYW5kIChub3QgaXNf bWluZ3cpOgorICAgICAgICAgIyBRVUlSSzogV2luZG93cyBnZW5lcmF0ZXMgcGF0aHMgZGlmZmVy ZW50bHkKKyAgICAgICAgIGlmIHBsYXRzdGRsaWJfZGlyOgorICAgICAgICAgICAgIHB5dGhvbnBh dGguYXBwZW5kKHBsYXRzdGRsaWJfZGlyKQorQEAgLTc1Niw3ICs3ODMsNyBAQCBlbGlmIG5vdCBw eXRob25wYXRoX3dhc19zZXQ6CisgICAgICAgICBpZiBwbGF0c3RkbGliX2RpcjoKKyAgICAgICAg ICAgICBweXRob25wYXRoLmFwcGVuZChwbGF0c3RkbGliX2RpcikKKyAKKy0gICAgY29uZmlnWydt b2R1bGVfc2VhcmNoX3BhdGhzJ10gPSBweXRob25wYXRoCisrICAgIGNvbmZpZ1snbW9kdWxlX3Nl YXJjaF9wYXRocyddID0gW19ub3JtcGF0aChwKSBmb3IgcCBpbiBweXRob25wYXRoXQorICAgICBj b25maWdbJ21vZHVsZV9zZWFyY2hfcGF0aHNfc2V0J10gPSAxCisgCisgCitAQCAtNzY3LDExICs3 OTQsMTEgQEAgZWxpZiBub3QgcHl0aG9ucGF0aF93YXNfc2V0OgorICMgUVVJUks6IE5vbi1XaW5k b3dzIHJlcGxhY2VzIHByZWZpeC9leGVjX3ByZWZpeCB3aXRoIGRlZmF1bHRzIHdoZW4gcnVubmlu ZworICMgaW4gYnVpbGQgZGlyZWN0b3J5LiBUaGlzIGhhcHBlbnMgYWZ0ZXIgcHl0aG9ucGF0aCBj YWxjdWxhdGlvbi4KKyAjIFZpcnR1YWwgZW52aXJvbm1lbnRzIHVzaW5nIHRoZSBidWlsZCBkaXJl Y3RvcnkgUHl0aG9uIHN0aWxsIGtlZXAgdGhlaXIgcHJlZml4LgorLWlmIG9zX25hbWUgIT0gJ250 JyBhbmQgYnVpbGRfcHJlZml4OgorK2lmIChvc19uYW1lICE9ICdudCcgb3IgaXNfbWluZ3cpIGFu ZCBidWlsZF9wcmVmaXg6CisgICAgIGlmIG5vdCB2ZW52X3ByZWZpeDoKKy0gICAgICAgIHByZWZp eCA9IGNvbmZpZy5nZXQoJ3ByZWZpeCcpIG9yIFBSRUZJWAorKyAgICAgICAgcHJlZml4ID0gY29u ZmlnLmdldCgncHJlZml4Jykgb3IgYWJzcGF0aChQUkVGSVgpCisgICAgICAgICBleGVjX3ByZWZp eCA9IGNvbmZpZy5nZXQoJ2V4ZWNfcHJlZml4Jykgb3IgRVhFQ19QUkVGSVggb3IgcHJlZml4Cist ICAgIGJhc2VfcHJlZml4ID0gY29uZmlnLmdldCgnYmFzZV9wcmVmaXgnKSBvciBQUkVGSVgKKysg ICAgYmFzZV9wcmVmaXggPSBjb25maWcuZ2V0KCdiYXNlX3ByZWZpeCcpIG9yIGFic3BhdGgoUFJF RklYKQorICAgICBiYXNlX2V4ZWNfcHJlZml4ID0gY29uZmlnLmdldCgnYmFzZV9leGVjX3ByZWZp eCcpIG9yIEVYRUNfUFJFRklYIG9yIGJhc2VfcHJlZml4CisgCisgCitAQCAtNzk1LDIzICs4MjIs MjMgQEAgaWYgcHRoOgorICAgICAgICAgICAgIHdhcm4oInVuc3VwcG9ydGVkICdpbXBvcnQnIGxp bmUgaW4gLl9wdGggZmlsZSIpCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHB5dGhvbnBh dGguYXBwZW5kKGpvaW5wYXRoKHB0aF9kaXIsIGxpbmUpKQorLSAgICBjb25maWdbJ21vZHVsZV9z ZWFyY2hfcGF0aHMnXSA9IHB5dGhvbnBhdGgKKysgICAgY29uZmlnWydtb2R1bGVfc2VhcmNoX3Bh dGhzJ10gPSBbX25vcm1wYXRoKHApIGZvciBwIGluIHB5dGhvbnBhdGhdCisgICAgIGNvbmZpZ1sn bW9kdWxlX3NlYXJjaF9wYXRoc19zZXQnXSA9IDEKKyAKKyAjICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorICMgVVBEQVRFIGNvbmZpZyBGUk9NIENBTENVTEFURUQgVkFMVUVTCisgIyAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKyAKKy1jb25maWdbJ3Byb2dyYW1fbmFtZSddID0gcHJvZ3JhbV9uYW1lCist Y29uZmlnWydob21lJ10gPSBob21lCistY29uZmlnWydleGVjdXRhYmxlJ10gPSBleGVjdXRhYmxl CistY29uZmlnWydiYXNlX2V4ZWN1dGFibGUnXSA9IGJhc2VfZXhlY3V0YWJsZQorLWNvbmZpZ1sn cHJlZml4J10gPSBwcmVmaXgKKy1jb25maWdbJ2V4ZWNfcHJlZml4J10gPSBleGVjX3ByZWZpeAor LWNvbmZpZ1snYmFzZV9wcmVmaXgnXSA9IGJhc2VfcHJlZml4CistY29uZmlnWydiYXNlX2V4ZWNf cHJlZml4J10gPSBiYXNlX2V4ZWNfcHJlZml4CisrY29uZmlnWydwcm9ncmFtX25hbWUnXSA9IF9u b3JtcGF0aChwcm9ncmFtX25hbWUpCisrY29uZmlnWydob21lJ10gPSBfbm9ybXBhdGgoaG9tZSkK Kytjb25maWdbJ2V4ZWN1dGFibGUnXSA9IF9ub3JtcGF0aChleGVjdXRhYmxlKQorK2NvbmZpZ1sn YmFzZV9leGVjdXRhYmxlJ10gPSBfbm9ybXBhdGgoYmFzZV9leGVjdXRhYmxlKQorK2NvbmZpZ1sn cHJlZml4J10gPSBfbm9ybXBhdGgocHJlZml4KQorK2NvbmZpZ1snZXhlY19wcmVmaXgnXSA9IF9u b3JtcGF0aChleGVjX3ByZWZpeCkKKytjb25maWdbJ2Jhc2VfcHJlZml4J10gPSBfbm9ybXBhdGgo YmFzZV9wcmVmaXgpCisrY29uZmlnWydiYXNlX2V4ZWNfcHJlZml4J10gPSBfbm9ybXBhdGgoYmFz ZV9leGVjX3ByZWZpeCkKKyAKKy1jb25maWdbJ3BsYXRsaWJkaXInXSA9IHBsYXRsaWJkaXIKKytj b25maWdbJ3BsYXRsaWJkaXInXSA9IF9ub3JtcGF0aChwbGF0bGliZGlyKQorICMgdGVzdF9lbWJl ZCBleHBlY3RzIGVtcHR5IHN0cmluZ3MsIG5vdCBOb25lCistY29uZmlnWydzdGRsaWJfZGlyJ10g PSBzdGRsaWJfZGlyIG9yICcnCistY29uZmlnWydwbGF0c3RkbGliX2RpciddID0gcGxhdHN0ZGxp Yl9kaXIgb3IgJycKKytjb25maWdbJ3N0ZGxpYl9kaXInXSA9IF9ub3JtcGF0aChzdGRsaWJfZGly IG9yICcnKQorK2NvbmZpZ1sncGxhdHN0ZGxpYl9kaXInXSA9IF9ub3JtcGF0aChwbGF0c3RkbGli X2RpciBvciAnJykKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L1B5 dGhvbi9maWxldXRpbHMuYyBQeXRob24tMy4xNC43LW5ldy9QeXRob24vZmlsZXV0aWxzLmMKKy0t LSBQeXRob24tMy4xNC43L1B5dGhvbi9maWxldXRpbHMuYwkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAw MDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9maWxldXRpbHMuYwky MDI2LTA5LTIyIDA5OjA2OjQ2LjU3ODgyMDIzMiArMDIwMAorQEAgLTIyMDEsNyArMjIwMSwxMSBA QCBfUHlfYWJzcGF0aChjb25zdCB3Y2hhcl90ICpwYXRoLCB3Y2hhcl90CisgICAgIH0KKyAKKyAj aWZkZWYgTVNfV0lORE9XUworLSAgICByZXR1cm4gX1B5T1NfZ2V0ZnVsbHBhdGhuYW1lKHBhdGgs IGFic3BhdGhfcCk7CisrICAgIGlmIChfUHlPU19nZXRmdWxscGF0aG5hbWUocGF0aCwgYWJzcGF0 aF9wKSA8IDApeworKyAgICAgICAgcmV0dXJuIC0xOworKyAgICB9CisrICAgICphYnNwYXRoX3Ag PSBfUHlfbm9ybXBhdGgoKmFic3BhdGhfcCwgLTEpOworKyAgICByZXR1cm4gMDsKKyAjZWxzZQor ICAgICB3Y2hhcl90IGN3ZFtNQVhQQVRITEVOICsgMV07CisgICAgIGN3ZFtQeV9BUlJBWV9MRU5H VEgoY3dkKSAtIDFdID0gMDsKK0BAIC0yNTA2LDExICsyNTEwLDE2IEBAIF9QeV9ub3JtcGF0aF9h bmRfc2l6ZSh3Y2hhcl90ICpwYXRoLCBQeV8KKyAgICAgd2NoYXJfdCAqbWluUDIgPSBwYXRoOyAg Ly8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZGVzdGluYXRpb24gcmFuZ2UKKyAgICAgd2NoYXJfdCBs YXN0QyA9IEwnXDAnOyAgLy8gdGhlIGxhc3QgbGp1c3RlZCBjaGFyYWN0ZXIsIHAyWy0xXSBpbiBt b3N0IGNhc2VzCisgCisrICAgIGNvbnN0IHdjaGFyX3Qgc2VwID0gUHlfR2V0U2VwVyhOVUxMKTsK KysjaWZkZWYgQUxUU0VQCisrICAgIGNvbnN0IHdjaGFyX3QgYWx0c2VwID0gUHlfR2V0QWx0U2Vw VyhOVUxMKTsKKysjZW5kaWYKKysKKyAjZGVmaW5lIElTX0VORCh4KSAocEVuZCA/ICh4KSA9PSBw RW5kIDogISooeCkpCisgI2lmZGVmIEFMVFNFUAorLSNkZWZpbmUgSVNfU0VQKHgpICgqKHgpID09 IFNFUCB8fCAqKHgpID09IEFMVFNFUCkKKysjZGVmaW5lIElTX1NFUCh4KSAoKih4KSA9PSBzZXAg fHwgKih4KSA9PSBhbHRzZXApCisgI2Vsc2UKKy0jZGVmaW5lIElTX1NFUCh4KSAoKih4KSA9PSBT RVApCisrI2RlZmluZSBJU19TRVAoeCkgKCooeCkgPT0gc2VwKQorICNlbmRpZgorICNkZWZpbmUg U0VQX09SX0VORCh4KSAoSVNfU0VQKHgpIHx8IElTX0VORCh4KSkKKyAKK0BAIC0yNTIzLDE1ICsy NTMyLDE1IEBAIF9QeV9ub3JtcGF0aF9hbmRfc2l6ZSh3Y2hhcl90ICpwYXRoLCBQeV8KKyAgICAg ICAgIHAyID0gcDE7CisgI2Vsc2UKKyAgICAgICAgIGZvciAoOyBwMiA8IHAxOyArK3AyKSB7Cist ICAgICAgICAgICAgaWYgKCpwMiA9PSBBTFRTRVApIHsKKy0gICAgICAgICAgICAgICAgKnAyID0g U0VQOworKyAgICAgICAgICAgIGlmICgqcDIgPT0gYWx0c2VwKSB7CisrICAgICAgICAgICAgICAg ICpwMiA9IHNlcDsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgI2VuZGlmCisgICAgICAg ICBtaW5QMiA9IHAyIC0gMTsKKyAgICAgICAgIGxhc3RDID0gKm1pblAyOworICNpZmRlZiBNU19X SU5ET1dTCistICAgICAgICBpZiAobGFzdEMgIT0gU0VQKSB7CisrICAgICAgICBpZiAobGFzdEMg IT0gc2VwKSB7CisgICAgICAgICAgICAgbWluUDIrKzsKKyAgICAgICAgIH0KKyAjZW5kaWYKK0BA IC0yNTQwLDggKzI1NDksOCBAQCBfUHlfbm9ybXBhdGhfYW5kX3NpemUod2NoYXJfdCAqcGF0aCwg UHlfCisgICAgICAgICAvLyBTa2lwIGxlYWRpbmcgJy5cJworICAgICAgICAgbGFzdEMgPSAqKytw MTsKKyAjaWZkZWYgQUxUU0VQCistICAgICAgICBpZiAobGFzdEMgPT0gQUxUU0VQKSB7CistICAg ICAgICAgICAgbGFzdEMgPSBTRVA7CisrICAgICAgICBpZiAobGFzdEMgPT0gYWx0c2VwKSB7Cisr ICAgICAgICAgICAgbGFzdEMgPSBzZXA7CisgICAgICAgICB9CisgI2VuZGlmCisgICAgICAgICB3 aGlsZSAoSVNfU0VQKHAxKSkgeworQEAgLTI1NTMsMTggKzI1NjIsMTggQEAgX1B5X25vcm1wYXRo X2FuZF9zaXplKHdjaGFyX3QgKnBhdGgsIFB5XworICAgICBmb3IgKDsgIUlTX0VORChwMSk7ICsr cDEpIHsKKyAgICAgICAgIHdjaGFyX3QgYyA9ICpwMTsKKyAjaWZkZWYgQUxUU0VQCistICAgICAg ICBpZiAoYyA9PSBBTFRTRVApIHsKKy0gICAgICAgICAgICBjID0gU0VQOworKyAgICAgICAgaWYg KGMgPT0gYWx0c2VwKSB7CisrICAgICAgICAgICAgYyA9IHNlcDsKKyAgICAgICAgIH0KKyAjZW5k aWYKKy0gICAgICAgIGlmIChsYXN0QyA9PSBTRVApIHsKKysgICAgICAgIGlmIChsYXN0QyA9PSBz ZXApIHsKKyAgICAgICAgICAgICBpZiAoYyA9PSBMJy4nKSB7CisgICAgICAgICAgICAgICAgIGlu dCBzZXBfYXRfMSA9IFNFUF9PUl9FTkQoJnAxWzFdKTsKKyAgICAgICAgICAgICAgICAgaW50IHNl cF9hdF8yID0gIXNlcF9hdF8xICYmIFNFUF9PUl9FTkQoJnAxWzJdKTsKKyAgICAgICAgICAgICAg ICAgaWYgKHNlcF9hdF8yICYmIHAxWzFdID09IEwnLicpIHsKKyAgICAgICAgICAgICAgICAgICAg IHdjaGFyX3QgKnAzID0gcDI7CistICAgICAgICAgICAgICAgICAgICB3aGlsZSAocDMgIT0gbWlu UDIgJiYgKi0tcDMgPT0gU0VQKSB7IH0KKy0gICAgICAgICAgICAgICAgICAgIHdoaWxlIChwMyAh PSBtaW5QMiAmJiAqKHAzIC0gMSkgIT0gU0VQKSB7IC0tcDM7IH0KKysgICAgICAgICAgICAgICAg ICAgIHdoaWxlIChwMyAhPSBtaW5QMiAmJiAqLS1wMyA9PSBzZXApIHsgfQorKyAgICAgICAgICAg ICAgICAgICAgd2hpbGUgKHAzICE9IG1pblAyICYmICoocDMgLSAxKSAhPSBzZXApIHsgLS1wMzsg fQorICAgICAgICAgICAgICAgICAgICAgaWYgKHAyID09IG1pblAyCisgICAgICAgICAgICAgICAg ICAgICAgICAgfHwgKHAzWzBdID09IEwnLicgJiYgcDNbMV0gPT0gTCcuJyAmJiBJU19TRVAoJnAz WzJdKSkpCisgICAgICAgICAgICAgICAgICAgICB7CitAQCAtMjU3Myw3ICsyNTgyLDcgQEAgX1B5 X25vcm1wYXRoX2FuZF9zaXplKHdjaGFyX3QgKnBhdGgsIFB5XworICAgICAgICAgICAgICAgICAg ICAgICAgICpwMisrID0gTCcuJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAqcDIrKyA9IEwn Lic7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEMgPSBMJy4nOworLSAgICAgICAgICAg ICAgICAgICAgfSBlbHNlIGlmIChwM1swXSA9PSBTRVApIHsKKysgICAgICAgICAgICAgICAgICAg IH0gZWxzZSBpZiAocDNbMF0gPT0gc2VwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgLy8g QWJzb2x1dGUgcGF0aCwgc28gYWJzb3JiIHNlZ21lbnQKKyAgICAgICAgICAgICAgICAgICAgICAg ICBwMiA9IHAzICsgMTsKKyAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CitAQCAtMjU4NCw3 ICsyNTkzLDcgQEAgX1B5X25vcm1wYXRoX2FuZF9zaXplKHdjaGFyX3QgKnBhdGgsIFB5XworICAg ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgKnAyKysgPSBsYXN0 QyA9IGM7CisgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0g U0VQKSB7CisrICAgICAgICAgICAgfSBlbHNlIGlmIChjID09IHNlcCkgeworICAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICpwMisrID0gbGFzdEMgPSBjOworICAgICAgICAg ICAgIH0KK0BAIC0yNTk0LDcgKzI2MDMsNyBAQCBfUHlfbm9ybXBhdGhfYW5kX3NpemUod2NoYXJf dCAqcGF0aCwgUHlfCisgICAgIH0KKyAgICAgKnAyID0gTCdcMCc7CisgICAgIGlmIChwMiAhPSBt aW5QMikgeworLSAgICAgICAgd2hpbGUgKC0tcDIgIT0gbWluUDIgJiYgKnAyID09IFNFUCkgewor KyAgICAgICAgd2hpbGUgKC0tcDIgIT0gbWluUDIgJiYgKnAyID09IHNlcCkgeworICAgICAgICAg ICAgICpwMiA9IEwnXDAnOworICAgICAgICAgfQorICAgICB9IGVsc2UgeworZGlmZiAtcnVwTiAt LW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvUHl0aG9uL3BhdGhjb25maWcuYyBQeXRob24t My4xNC43LW5ldy9QeXRob24vcGF0aGNvbmZpZy5jCistLS0gUHl0aG9uLTMuMTQuNy9QeXRob24v cGF0aGNvbmZpZy5jCTIwMjYtMDktMjIgMDk6MDY6MzguODM3MzkyMTg2ICswMjAwCisrKysgUHl0 aG9uLTMuMTQuNy1uZXcvUHl0aG9uL3BhdGhjb25maWcuYwkyMDI2LTA5LTIyIDA5OjA2OjQ2LjU3 OTIxODE5NCArMDIwMAorQEAgLTEyNyw3ICsxMjcsNyBAQCBQeV9HZXRTZXBXKGNvbnN0IHdjaGFy X3QgKm5hbWUpCisgICAgIHJldHVybiBzZXA7CisgfQorIAorLXN0YXRpYyB3Y2hhcl90Cisrd2No YXJfdAorIFB5X0dldEFsdFNlcFcoY29uc3Qgd2NoYXJfdCAqbmFtZSkKKyB7CisgICAgIGNoYXIg c2VwID0gUHlfR2V0U2VwVyhuYW1lKTsKCmRpZmYgLS1naXQgYS8wMDU4LWJ1aWxkLURvbi10LWJ1 aWxkLV9wb3NpeHN1YnByb2Nlc3Mtb24tV2luZG93cy5wYXRjaCBiLzAwNTgtYnVpbGQtRG9uLXQt YnVpbGQtX3Bvc2l4c3VicHJvY2Vzcy1vbi1XaW5kb3dzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmEwMDRlYjIKLS0tIC9kZXYvbnVsbAorKysgYi8wMDU4LWJ1aWxk LURvbi10LWJ1aWxkLV9wb3NpeHN1YnByb2Nlc3Mtb24tV2luZG93cy5wYXRjaApAQCAtMCwwICsx LDE5IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9jb25maWd1 cmUuYWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCistLS0gUHl0aG9uLTMuMTQuNy9j b25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo0Ni4yODc4MjkyNjMgKzAyMDAKKysrKyBQeXRo b24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo0Ni44NzI2MTgyMjIg KzAyMDAKK0BAIC04NDgzLDcgKzg0ODMsNiBAQCBQWV9TVERMSUJfTU9EX1NJTVBMRShbX2hlYXBx XSkKKyBQWV9TVERMSUJfTU9EX1NJTVBMRShbX2pzb25dKQorIFBZX1NURExJQl9NT0RfU0lNUExF KFtfbHNwcm9mXSkKKyBQWV9TVERMSUJfTU9EX1NJTVBMRShbX3BpY2tsZV0pCistUFlfU1RETElC X01PRF9TSU1QTEUoW19wb3NpeHN1YnByb2Nlc3NdKQorIFBZX1NURExJQl9NT0RfU0lNUExFKFtf cXVldWVdKQorIFBZX1NURExJQl9NT0RfU0lNUExFKFtfcmFuZG9tXSkKKyBQWV9TVERMSUJfTU9E X1NJTVBMRShbX3JlbW90ZV9kZWJ1Z2dpbmddKQorQEAgLTg1MzUsNiArODUzNCw3IEBAIFBZX1NU RExJQl9NT0QoW19zY3Byb3h5XSwKKyAgIFtdLCBbLWZyYW1ld29yayBTeXN0ZW1Db25maWd1cmF0 aW9uIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb25dKQorIFBZX1NURExJQl9NT0QoW3N5c2xvZ10s IFtdLCBbdGVzdCAiJGFjX2N2X2hlYWRlcl9zeXNsb2dfaCIgPSB5ZXNdKQorIFBZX1NURExJQl9N T0QoW3Rlcm1pb3NdLCBbXSwgW3Rlc3QgIiRhY19jdl9oZWFkZXJfdGVybWlvc19oIiA9IHllc10p CisrUFlfU1RETElCX01PRChbX3Bvc2l4c3VicHJvY2Vzc10sIFtdLCBbdGVzdCAiJE1BQ0hERVAi ICE9ICJ3aW4zMiJdKQorIAorIGRubCBfZWxlbWVudHRyZWUgbG9hZHMgbGliZXhwYXQgdmlhIENB UEkgaG9vayBpbiBweWV4cGF0CisgUFlfU1RETElCX01PRChbcHlleHBhdF0sCgpkaWZmIC0tZ2l0 IGEvMDA1OS1zc2wtbW9kdWxlLWFkZC1NSU5HVy1zdXBwb3J0LnBhdGNoIGIvMDA1OS1zc2wtbW9k dWxlLWFkZC1NSU5HVy1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjY1NTI3YjQKLS0tIC9kZXYvbnVsbAorKysgYi8wMDU5LXNzbC1tb2R1bGUtYWRkLU1J TkdXLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSw2NiBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVm ZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZp Z3VyZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6 NDcuMTU3NTk4MzQ1ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIw MjYtMDktMjIgMDk6MDY6NDcuMTY0OTY3Mjk3ICswMjAwCitAQCAtODc1NSw3ICs4NzU1LDcgQEAg UFlfU1RETElCX01PRChbX3pzdGRdLCBbXSwgW3Rlc3QgIiRoYXZlXworIAorIGRubCBPcGVuU1NM IGJpbmRpbmdzCisgUFlfU1RETElCX01PRChbX3NzbF0sIFtdLCBbdGVzdCAiJGFjX2N2X3dvcmtp bmdfb3BlbnNzbF9zc2wiID0geWVzXSwKKy0gIFskT1BFTlNTTF9JTkNMVURFU10sIFskT1BFTlNT TF9MREZMQUdTICRPUEVOU1NMX0xERkxBR1NfUlBBVEggJE9QRU5TU0xfTElCU10pCisrICBbJE9Q RU5TU0xfSU5DTFVERVNdLCBbJE9QRU5TU0xfTERGTEFHUyAkT1BFTlNTTF9MREZMQUdTX1JQQVRI ICRPUEVOU1NMX0xJQlMgLWx3czJfMzIgLWxjcnlwdDMyXSkKKyBQWV9TVERMSUJfTU9EKFtfaGFz aGxpYl0sIFtdLCBbdGVzdCAiJGFjX2N2X3dvcmtpbmdfb3BlbnNzbF9oYXNobGliIiA9IHllc10s CisgICBbJE9QRU5TU0xfSU5DTFVERVNdLCBbJE9QRU5TU0xfTERGTEFHUyAkT1BFTlNTTF9MREZM QUdTX1JQQVRIICRMSUJDUllQVE9fTElCU10pCisgCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVu Y2UgUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL2NsaW5pYy9fc3NsLmMuaCBQeXRob24tMy4xNC43LW5l dy9Nb2R1bGVzL2NsaW5pYy9fc3NsLmMuaAorLS0tIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9jbGlu aWMvX3NzbC5jLmgJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRo b24tMy4xNC43LW5ldy9Nb2R1bGVzL2NsaW5pYy9fc3NsLmMuaAkyMDI2LTA5LTIyIDA5OjA2OjQ3 LjE2NDI4NzI5MSArMDIwMAorQEAgLTI3MzYsNyArMjczNiw3IEBAIGV4aXQ6CisgICAgIHJldHVy biByZXR1cm5fdmFsdWU7CisgfQorIAorLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQorKyNpZiBkZWZp bmVkKF9XSU4zMikKKyAKKyBQeURvY19TVFJWQVIoX3NzbF9lbnVtX2NlcnRpZmljYXRlc19fZG9j X18sCisgImVudW1fY2VydGlmaWNhdGVzKCRtb2R1bGUsIC8sIHN0b3JlX25hbWUpXG4iCitAQCAt MjgxNiw5ICsyODE2LDkgQEAgZXhpdDoKKyAgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKKyB9Cisg CistI2VuZGlmIC8qIGRlZmluZWQoX01TQ19WRVIpICovCisrI2VuZGlmIC8qIGRlZmluZWQoX1dJ TjMyKSAqLworIAorLSNpZiBkZWZpbmVkKF9NU0NfVkVSKQorKyNpZiBkZWZpbmVkKF9XSU4zMikK KyAKKyBQeURvY19TVFJWQVIoX3NzbF9lbnVtX2NybHNfX2RvY19fLAorICJlbnVtX2NybHMoJG1v ZHVsZSwgLywgc3RvcmVfbmFtZSlcbiIKK0BAIC0yODk3LDcgKzI4OTcsNyBAQCBleGl0OgorICAg ICByZXR1cm4gcmV0dXJuX3ZhbHVlOworIH0KKyAKKy0jZW5kaWYgLyogZGVmaW5lZChfTVNDX1ZF UikgKi8KKysjZW5kaWYgLyogZGVmaW5lZChfV0lOMzIpICovCisgCisgI2lmbmRlZiBfU1NMX0VO VU1fQ0VSVElGSUNBVEVTX01FVEhPRERFRgorICAgICAjZGVmaW5lIF9TU0xfRU5VTV9DRVJUSUZJ Q0FURVNfTUVUSE9EREVGCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQu Ny9Nb2R1bGVzL19zc2wuYyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL19zc2wuYworLS0tIFB5 dGhvbi0zLjE0LjcvTW9kdWxlcy9fc3NsLmMJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAg KzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL19zc2wuYwkyMDI2LTA5LTIyIDA5 OjA2OjQ3LjE2MjU5Nzk5NiArMDIwMAorQEAgLTU5NzIsNyArNTk3Miw3IEBAIF9zc2xfbmlkMm9i al9pbXBsKFB5T2JqZWN0ICptb2R1bGUsIGludAorICAgICByZXR1cm4gcmVzdWx0OworIH0KKyAK Ky0jaWZkZWYgX01TQ19WRVIKKysjaWZkZWYgX1dJTjMyCisgCisgc3RhdGljIFB5T2JqZWN0Kgor IGNlcnRFbmNvZGluZ1R5cGUoRFdPUkQgZW5jb2RpbmdUeXBlKQorQEAgLTYyOTEsNyArNjI5MSw3 IEBAIF9zc2xfZW51bV9jcmxzX2ltcGwoUHlPYmplY3QgKm1vZHVsZSwgY28KKyAgICAgfQorIH0K KyAKKy0jZW5kaWYgLyogX01TQ19WRVIgKi8KKysjZW5kaWYgLyogX1dJTjMyICovCisgCisgLyog TGlzdCBvZiBmdW5jdGlvbnMgZXhwb3J0ZWQgYnkgdGhpcyBtb2R1bGUuICovCisgc3RhdGljIFB5 TWV0aG9kRGVmIFB5U1NMX21ldGhvZHNbXSA9IHsKCmRpZmYgLS1naXQgYS8wMDYwLWNvbmZpZ3Vy ZS1JbmNsdWRlLXdpbnNvY2suaC13aGVuLWNoZWNraW5nLWZvci1uZXRkYi0ucGF0Y2ggYi8wMDYw LWNvbmZpZ3VyZS1JbmNsdWRlLXdpbnNvY2suaC13aGVuLWNoZWNraW5nLWZvci1uZXRkYi0ucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk5NjBlZgotLS0gL2Rldi9u dWxsCisrKyBiLzAwNjAtY29uZmlndXJlLUluY2x1ZGUtd2luc29jay5oLXdoZW4tY2hlY2tpbmct Zm9yLW5ldGRiLS5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZl cmVuY2UgUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmln dXJlLmFjCistLS0gUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo0 Ny40NTY1Nzc0OTEgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAy Ni0wOS0yMiAwOTowNjo0Ny40NjI1NzcwNzMgKzAyMDAKK0BAIC01NTgxLDcgKzU1ODEsNyBAQCBB Q19DSEVDS19GVU5DUyhbIFwKKyAgIGZhY2Nlc3NhdCBmY2htb2QgZmNobW9kYXQgZmNob3duIGZj aG93bmF0IGZkb3BlbmRpciBmZHdhbGsgZmV4ZWN2ZSBcCisgICBmb3JrIGZvcmsxIGZwYXRoY29u ZiBmc3RhdGF0IGZ0aW1lIGZ0cnVuY2F0ZSBmdXRpbWVucyBmdXRpbWVzIGZ1dGltZXNhdCBcCisg ICBnYWlfc3RyZXJyb3IgZ2V0ZWdpZCBnZXRldWlkIGdldGdpZCBnZXRncmVudCBnZXRncmdpZCBn ZXRncmdpZF9yIFwKKy0gIGdldGdybmFtX3IgZ2V0Z3JvdXBsaXN0IGdldGhvc3RuYW1lIGdldGl0 aW1lciBnZXRsb2FkYXZnIGdldGxvZ2luIGdldGxvZ2luX3IgXAorKyAgZ2V0Z3JuYW1fciBnZXRn cm91cGxpc3QgZ2V0aXRpbWVyIGdldGxvYWRhdmcgZ2V0bG9naW4gZ2V0bG9naW5fciBcCisgICBn ZXRwZWVybmFtZSBnZXRwZ2lkIGdldHBpZCBnZXRwcGlkIGdldHByaW9yaXR5IF9nZXRwdHkgXAor ICAgZ2V0cHdlbnQgZ2V0cHduYW1fciBnZXRwd3VpZCBnZXRwd3VpZF9yIGdldHJlc2dpZCBnZXRy ZXN1aWQgZ2V0cnVzYWdlIGdldHNpZCBnZXRzcGVudCBcCisgICBnZXRzcG5hbSBnZXR1aWQgZ2V0 d2QgZ3JhbnRwdCBpZl9uYW1laW5kZXggaW5pdGdyb3VwcyBraWxsIGtpbGxwZyBsY2hvd24gbGlu a2F0IFwKK0BAIC01NTk4LDcgKzU1OTgsNyBAQCBBQ19DSEVDS19GVU5DUyhbIFwKKyAgIHNjaGVk X3NldHBhcmFtIHNjaGVkX3NldHNjaGVkdWxlciBzZW1fY2xvY2t3YWl0IHNlbV9nZXR2YWx1ZSBz ZW1fb3BlbiBcCisgICBzZW1fdGltZWR3YWl0IHNlbV91bmxpbmsgc2VuZGZpbGUgc2V0ZWdpZCBz ZXRldWlkIHNldGdpZCBzZXRob3N0bmFtZSBcCisgICBzZXRpdGltZXIgc2V0bG9jYWxlIHNldHBn aWQgc2V0cGdycCBzZXRwcmlvcml0eSBzZXRyZWdpZCBzZXRyZXNnaWQgXAorLSAgc2V0cmVzdWlk IHNldHJldWlkIHNldHNpZCBzZXR1aWQgc2V0dmJ1ZiBzaHV0ZG93biBzaWdhY3Rpb24gc2lnYWx0 c3RhY2sgXAorKyAgc2V0cmVzdWlkIHNldHJldWlkIHNldHNpZCBzZXR1aWQgc2V0dmJ1ZiBzaWdh Y3Rpb24gc2lnYWx0c3RhY2sgXAorICAgc2lnZmlsbHNldCBzaWdpbnRlcnJ1cHQgc2lncGVuZGlu ZyBzaWdyZWxzZSBzaWd0aW1lZHdhaXQgc2lnd2FpdCBcCisgICBzaWd3YWl0aW5mbyBzbnByaW50 ZiBzcGxpY2Ugc3RyZnRpbWUgc3RybGNweSBzdHJzaWduYWwgc3ltbGlua2F0IHN5bmMgXAorICAg c3lzY29uZiBzeXNjdGxieW5hbWUgdGNnZXRwZ3JwIHRjc2V0cGdycCB0ZW1wbmFtIHRpbWVnbSB0 aW1lcyB0bXBmaWxlIFwKK0BAIC01ODY1LDcgKzU4NjUsMTMgQEAgUEtHX0NIRUNLX01PRFVMRVMo W0xJQlpTVERdLCBbbGlienN0ZCA+PQorIF0pCisgCisgZG5sIFBZX0NIRUNLX05FVERCX0ZVTkMo RlVOQ1RJT04pCistQUNfREVGVU4oW1BZX0NIRUNLX05FVERCX0ZVTkNdLCBbUFlfQ0hFQ0tfRlVO QyhbJDFdLCBbQCU6QGluY2x1ZGUgPG5ldGRiLmg+XSldKQorK0FDX0RFRlVOKFtQWV9DSEVDS19O RVREQl9GVU5DXSwgW1BZX0NIRUNLX0ZVTkMoWyQxXSwgWworKyNpZmRlZiBfV0lOMzIKKysgICNp bmNsdWRlIDx3aW5zb2NrLmg+CisrI2Vsc2UKKysgICNpbmNsdWRlIDxuZXRkYi5oPgorKyNlbmRp ZgorK10pXSkKKyAKKyBQWV9DSEVDS19ORVREQl9GVU5DKFtoc3RyZXJyb3JdKQorIGRubCBub3Qg YXZhaWxhYmxlIGluIFdBU0kgeWV0CitAQCAtNTg3NCw2ICs1ODgwLDggQEAgUFlfQ0hFQ0tfTkVU REJfRlVOQyhbZ2V0c2VydmJ5cG9ydF0pCisgUFlfQ0hFQ0tfTkVUREJfRlVOQyhbZ2V0aG9zdGJ5 bmFtZV0pCisgUFlfQ0hFQ0tfTkVUREJfRlVOQyhbZ2V0aG9zdGJ5YWRkcl0pCisgUFlfQ0hFQ0tf TkVUREJfRlVOQyhbZ2V0cHJvdG9ieW5hbWVdKQorK1BZX0NIRUNLX05FVERCX0ZVTkMoW2dldGhv c3RuYW1lXSkKKytQWV9DSEVDS19ORVREQl9GVU5DKFtzaHV0ZG93bl0pCisgCisgZG5sIFBZX0NI RUNLX1NPQ0tFVF9GVU5DKEZVTkNUSU9OKQorIEFDX0RFRlVOKFtQWV9DSEVDS19TT0NLRVRfRlVO Q10sIFtQWV9DSEVDS19GVU5DKFskMV0sIFsKCmRpZmYgLS1naXQgYS8wMDYxLWNvbmZpZ3VyZS1h bHdheXMtYnVpbGQtX211bHRpcHJvY2Vzc2luZy1vbi1XaW5kb3dzLnBhdGNoIGIvMDA2MS1jb25m aWd1cmUtYWx3YXlzLWJ1aWxkLV9tdWx0aXByb2Nlc3Npbmctb24tV2luZG93cy5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDRjMTk1Ci0tLSAvZGV2L251bGwKKysr IGIvMDA2MS1jb25maWd1cmUtYWx3YXlzLWJ1aWxkLV9tdWx0aXByb2Nlc3Npbmctb24tV2luZG93 cy5wYXRjaApAQCAtMCwwICsxLDEyIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0 aG9uLTMuMTQuNy9jb25maWd1cmUuYWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCist LS0gUHl0aG9uLTMuMTQuNy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo0Ny43NDg1NTcx MjYgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAw OTowNjo0Ny43NTQxNjkyMzYgKzAyMDAKK0BAIC04NTA1LDcgKzg1MDUsNyBAQCBQWV9TVERMSUJf TU9EX1NJTVBMRShbX3pvbmVpbmZvXSkKKyAKKyBkbmwgbXVsdGlwcm9jZXNzaW5nIG1vZHVsZXMK KyBQWV9TVERMSUJfTU9EKFtfbXVsdGlwcm9jZXNzaW5nXSwKKy0gIFtdLCBbdGVzdCAiJGFjX2N2 X2Z1bmNfc2VtX3VubGluayIgPSAieWVzIl0sCisrICBbXSwgW3Rlc3QgIiRhY19jdl9mdW5jX3Nl bV91bmxpbmsiID0gInllcyIgLW8gIiRNQUNIREVQIiA9ICJ3aW4zMiJdLAorICAgWy1JXCQoc3Jj ZGlyKS9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmddKQorIFBZX1NURExJQl9NT0QoW19wb3NpeHNo bWVtXSwKKyAgIFtdLCBbdGVzdCAiJGhhdmVfcG9zaXhfc2htZW0iID0gInllcyJdLAoKZGlmZiAt LWdpdCBhLzAwNjItY29uZmlndXJlLWJ1aWxkLW1tYXAtbW9kdWxlLW9uLXdpbjMyLnBhdGNoIGIv MDA2Mi1jb25maWd1cmUtYnVpbGQtbW1hcC1tb2R1bGUtb24td2luMzIucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdlODY4MgotLS0gL2Rldi9udWxsCisrKyBiLzAw NjItY29uZmlndXJlLWJ1aWxkLW1tYXAtbW9kdWxlLW9uLXdpbjMyLnBhdGNoCkBAIC0wLDAgKzEs MTQgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3Vy ZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2Nv bmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjQ4LjA0NDE0Mjk4OCArMDIwMAorKysrIFB5dGhv bi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjQ4LjA0ODkzNTk1NSAr MDIwMAorQEAgLTg1MjQsNyArODUyNCw5IEBAIFBZX1NURExJQl9NT0QoW2ZjbnRsXSwKKyAgIFtd LCBbdGVzdCAiJGFjX2N2X2hlYWRlcl9zeXNfaW9jdGxfaCIgPSAieWVzIiAtYSAiJGFjX2N2X2hl YWRlcl9mY250bF9oIiA9ICJ5ZXMiXSwKKyAgIFtdLCBbJEZDTlRMX0xJQlNdKQorIFBZX1NURExJ Ql9NT0QoW21tYXBdLAorLSAgW10sIFt0ZXN0ICIkYWNfY3ZfaGVhZGVyX3N5c19tbWFuX2giID0g InllcyIgLWEgIiRhY19jdl9oZWFkZXJfc3lzX3N0YXRfaCIgPSAieWVzIl0pCisrICBbXSwgbTRf ZmxhdHRlbihbdGVzdCAiJGFjX2N2X2hlYWRlcl9zeXNfbW1hbl9oIiA9ICJ5ZXMiCisrICAgICAg ICAgICAgICAgICAgICAtYSAiJGFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oIiA9ICJ5ZXMiCisrICAg ICAgICAgICAgICAgICAgICAtbyAiJE1BQ0hERVAiID0gIndpbjMyIl0pKQorIFBZX1NURExJQl9N T0QoW19zb2NrZXRdLAorICAgW10sIG00X2ZsYXR0ZW4oW3Rlc3QgIiRhY19jdl9oZWFkZXJfc3lz X3NvY2tldF9oIiA9ICJ5ZXMiCisgICAgICAgICAgICAgICAgICAgICAtYSAiJGFjX2N2X2hlYWRl cl9zeXNfdHlwZXNfaCIgPSAieWVzIgoKZGlmZiAtLWdpdCBhLzAwNjMtY29uZmlndXJlLXNldC1C VUlMREVYRUVYVC1hbmQtRVhFRVhULnBhdGNoIGIvMDA2My1jb25maWd1cmUtc2V0LUJVSUxERVhF RVhULWFuZC1FWEVFWFQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YmQ4YWM4MAotLS0gL2Rldi9udWxsCisrKyBiLzAwNjMtY29uZmlndXJlLXNldC1CVUlMREVYRUVY VC1hbmQtRVhFRVhULnBhdGNoCkBAIC0wLDAgKzEsMjIgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJl ZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25m aWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2 OjQ4LjM0OTUxNTIwOCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwky MDI2LTA5LTIyIDA5OjA2OjQ4LjM1NTAzNDU3NSArMDIwMAorQEAgLTE0NDQsNiArMTQ0NCw3IEBA IEFDX0FSR19XSVRIKFtzdWZmaXhdLAorICAgQVNfQ0FTRShbJGFjX3N5c19zeXN0ZW1dLAorICAg ICBbRW1zY3JpcHRlbl0sIFtFWEVFWFQ9Lm1qc10sCisgICAgIFtXQVNJXSwgW0VYRUVYVD0ud2Fz bV0sCisrICAgIFtNSU5HVypdLCBbRVhFRVhUPS5leGVdLAorICAgICBbRVhFRVhUPV0KKyAgICkK KyBdKQorQEAgLTE0NzAsNiArMTQ3MSwxMCBAQCBlbHNlCisgZmkKKyBybWRpciBDYXNlU2Vuc2l0 aXZlVGVzdERpcgorIAorK0FTX0NBU0UoWyRhY19zeXNfc3lzdGVtXSwKKysgIFtNSU5HV10sIFtC VUlMREVYRUVYVD0iLmV4ZSJdCisrKQorKworIGNhc2UgJGFjX3N5c19zeXN0ZW0gaW4KKyBocCp8 SFAqKQorICAgICBjYXNlICRhY19jdl9jY19uYW1lIGluCgpkaWZmIC0tZ2l0IGEvMDA2NC1jb25m aWd1cmUtZml4LWJ1aWxkaW5nLXNvbWUtdGVzdC1tb2R1bGVzLnBhdGNoIGIvMDA2NC1jb25maWd1 cmUtZml4LWJ1aWxkaW5nLXNvbWUtdGVzdC1tb2R1bGVzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjU4MTBkZTcKLS0tIC9kZXYvbnVsbAorKysgYi8wMDY0LWNvbmZp Z3VyZS1maXgtYnVpbGRpbmctc29tZS10ZXN0LW1vZHVsZXMucGF0Y2gKQEAgLTAsMCArMSw0NCBA QAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFj IFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmln dXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NDguNjQxNDk0ODQzICswMjAwCisrKysgUHl0aG9uLTMu MTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NDguNjQ2OTUwOTEwICswMjAw CitAQCAtNTUwNiw4ICs1NTA2LDExIEBAIGZpCisgQUNfTVNHX1JFU1VMVChbJERZTkxPQURGSUxF XSkKKyBpZiB0ZXN0ICIkRFlOTE9BREZJTEUiICE9ICJkeW5sb2FkX3N0dWIubyIKKyB0aGVuCisr ICBoYXZlX2R5bmFtaWNfbG9hZGluZz15ZXMKKyAJQUNfREVGSU5FKFtIQVZFX0RZTkFNSUNfTE9B RElOR10sIFsxXSwKKyAgICAgICAgIFtEZWZpbmVkIHdoZW4gYW55IGR5bmFtaWMgbW9kdWxlIGxv YWRpbmcgaXMgZW5hYmxlZC5dKQorK2Vsc2UKKysgIGhhdmVfZHluYW1pY19sb2FkaW5nPW5vCisg ZmkKKyAKKyAjIE1TX0RMTF9JRCBpcyB1c2VkIGZvciBzeXMud2ludmVyIGFuZCBXaW5kb3dzIHJl Z2lzdHJ5IGtleXMuCitAQCAtODc5MywyMiArODc5NiwyMiBAQCBQWV9TVERMSUJfTU9EKFtfdGVz dGNsaW5pY19saW1pdGVkXSwgW3RlCisgUFlfU1RETElCX01PRChbX3Rlc3RsaW1pdGVkY2FwaV0s IFt0ZXN0ICIkVEVTVF9NT0RVTEVTIiA9IHllc10pCisgUFlfU1RETElCX01PRChbX3Rlc3RpbnRl cm5hbGNhcGldLCBbdGVzdCAiJFRFU1RfTU9EVUxFUyIgPSB5ZXNdKQorIFBZX1NURExJQl9NT0Qo W190ZXN0YnVmZmVyXSwgW3Rlc3QgIiRURVNUX01PRFVMRVMiID0geWVzXSkKKy1QWV9TVERMSUJf TU9EKFtfdGVzdGltcG9ydG11bHRpcGxlXSwgW3Rlc3QgIiRURVNUX01PRFVMRVMiID0geWVzXSwg W3Rlc3QgIiRhY19jdl9mdW5jX2Rsb3BlbiIgPSB5ZXNdKQorLVBZX1NURExJQl9NT0QoW190ZXN0 bXVsdGlwaGFzZV0sIFt0ZXN0ICIkVEVTVF9NT0RVTEVTIiA9IHllc10sIFt0ZXN0ICIkYWNfY3Zf ZnVuY19kbG9wZW4iID0geWVzXSkKKy1QWV9TVERMSUJfTU9EKFtfdGVzdHNpbmdsZXBoYXNlXSwg W3Rlc3QgIiRURVNUX01PRFVMRVMiID0geWVzXSwgW3Rlc3QgIiRhY19jdl9mdW5jX2Rsb3BlbiIg PSB5ZXNdKQorK1BZX1NURExJQl9NT0QoW190ZXN0aW1wb3J0bXVsdGlwbGVdLCBbdGVzdCAiJFRF U1RfTU9EVUxFUyIgPSB5ZXNdLCBbdGVzdCAiJGhhdmVfZHluYW1pY19sb2FkaW5nIiA9IHllc10p CisrUFlfU1RETElCX01PRChbX3Rlc3RtdWx0aXBoYXNlXSwgW3Rlc3QgIiRURVNUX01PRFVMRVMi ID0geWVzXSwgW3Rlc3QgIiRoYXZlX2R5bmFtaWNfbG9hZGluZyIgPSB5ZXNdKQorK1BZX1NURExJ Ql9NT0QoW190ZXN0c2luZ2xlcGhhc2VdLCBbdGVzdCAiJFRFU1RfTU9EVUxFUyIgPSB5ZXNdLCBb dGVzdCAiJGhhdmVfZHluYW1pY19sb2FkaW5nIiA9IHllc10pCisgUFlfU1RETElCX01PRChbeHhz dWJ0eXBlXSwgW3Rlc3QgIiRURVNUX01PRFVMRVMiID0geWVzXSkKKyBQWV9TVERMSUJfTU9EKFtf eHh0ZXN0ZnV6el0sIFt0ZXN0ICIkVEVTVF9NT0RVTEVTIiA9IHllc10pCisgUFlfU1RETElCX01P RChbX3Rlc3Rjb25zb2xlXSwgW3Rlc3QgIiRURVNUX01PRFVMRVMiID0geWVzIC1hICIkTUFDSERF UCIgPSAid2luMzIiXSkKKyBkbmwgQ2hlY2sgaGF2ZV9saWJmZmkgc28gX2N0eXBlc190ZXN0IGlz IG9ubHkgYnVpbHQgaWYgX2N0eXBlcyBpcyBidWlsdC4KKyBkbmwgX2N0eXBlc190ZXN0IGRvZXNu J3QgdXNlIGxpYmZmaSBkaXJlY3RseS4KKyBQWV9TVERMSUJfTU9EKFtfY3R5cGVzX3Rlc3RdLAor LSAgW3Rlc3QgIiRURVNUX01PRFVMRVMiID0geWVzXSwgW3Rlc3QgIiRoYXZlX2xpYmZmaSIgPSB5 ZXMgLWEgIiRhY19jdl9mdW5jX2Rsb3BlbiIgPSB5ZXNdLAorKyAgW3Rlc3QgIiRURVNUX01PRFVM RVMiID0geWVzXSwgW3Rlc3QgIiRoYXZlX2xpYmZmaSIgPSB5ZXMgLWEgIiRoYXZlX2R5bmFtaWNf bG9hZGluZyIgPSB5ZXNdLAorICAgW10sIFskTElCTV0pCisgCisgZG5sIExpbWl0ZWQgQVBJIHRl bXBsYXRlIG1vZHVsZXMuCisgZG5sIEVtc2NyaXB0ZW4gZG9lcyBub3Qgc3VwcG9ydCBzaGFyZWQg bGlicmFyaWVzIHlldC4KKy1QWV9TVERMSUJfTU9EKFt4eGxpbWl0ZWRdLCBbdGVzdCAiJFRFU1Rf TU9EVUxFUyIgPSB5ZXNdLCBbdGVzdCAiJGFjX2N2X2Z1bmNfZGxvcGVuIiA9IHllc10pCistUFlf U1RETElCX01PRChbeHhsaW1pdGVkXzM1XSwgW3Rlc3QgIiRURVNUX01PRFVMRVMiID0geWVzXSwg W3Rlc3QgIiRhY19jdl9mdW5jX2Rsb3BlbiIgPSB5ZXNdKQorK1BZX1NURExJQl9NT0QoW3h4bGlt aXRlZF0sIFt0ZXN0ICIkVEVTVF9NT0RVTEVTIiA9ICJ5ZXMiXSwgW3Rlc3QgIiRoYXZlX2R5bmFt aWNfbG9hZGluZyIgPSB5ZXNdKQorK1BZX1NURExJQl9NT0QoW3h4bGltaXRlZF8zNV0sIFt0ZXN0 ICIkVEVTVF9NT0RVTEVTIiA9ICJ5ZXMiXSwgW3Rlc3QgIiRoYXZlX2R5bmFtaWNfbG9hZGluZyIg PSB5ZXNdKQorIAorICMgc3Vic3RpdHV0ZSBtdWx0aWxpbmUgYmxvY2ssIG11c3QgY29tZSBhZnRl ciBsYXN0IFBZX1NURExJQl9NT0QoKQorIEFDX1NVQlNUKFtNT0RVTEVfQkxPQ0tdKQoKZGlmZiAt LWdpdCBhLzAwNjUtQWx3YXlzLWNvbnZlcnQtdG8tYmVmb3JlLXBhc3NpbmctdGhvdWdoLXBhdGhj Y2gtZnVuYy5wYXRjaCBiLzAwNjUtQWx3YXlzLWNvbnZlcnQtdG8tYmVmb3JlLXBhc3NpbmctdGhv dWdoLXBhdGhjY2gtZnVuYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4xYWM3OGI2Ci0tLSAvZGV2L251bGwKKysrIGIvMDA2NS1BbHdheXMtY29udmVydC10by1iZWZv cmUtcGFzc2luZy10aG91Z2gtcGF0aGNjaC1mdW5jLnBhdGNoCkBAIC0wLDAgKzEsODYgQEAKK2Rp ZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L0luY2x1ZGUvcHlsaWZlY3lj bGUuaCBQeXRob24tMy4xNC43LW5ldy9JbmNsdWRlL3B5bGlmZWN5Y2xlLmgKKy0tLSBQeXRob24t My4xNC43L0luY2x1ZGUvcHlsaWZlY3ljbGUuaAkyMDI2LTA5LTIyIDA5OjA2OjQ2Ljg2NzE3MTYy OSArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0luY2x1ZGUvcHlsaWZlY3ljbGUuaAkyMDI2 LTA5LTIyIDA5OjA2OjQ4Ljk0OTU3NzAxNCArMDIwMAorQEAgLTI4LDYgKzI4LDggQEAgUHlBUElf RlVOQyhjaGFyKSBQeV9HZXRTZXBBKGNvbnN0IGNoYXIgKgorIFB5QVBJX0ZVTkModm9pZCkgUHlf Tm9ybWFsaXplU2Vwc1cod2NoYXJfdCAqKTsKKyBQeUFQSV9GVU5DKHZvaWQpIFB5X05vcm1hbGl6 ZVNlcHNBKGNoYXIgKik7CisgCisrUHlBUElfRlVOQyh2b2lkKSBQeV9Ob3JtYWxpemVTZXBzUGF0 aGNjaFcod2NoYXJfdCAqKTsKKysKKyAKKyAvKiBQeV9QeUF0RXhpdCBpcyBmb3IgdGhlIGF0ZXhp dCBtb2R1bGUsIFB5X0F0RXhpdCBpcyBmb3IgbG93LWxldmVsCisgICogZXhpdCBmdW5jdGlvbnMu CitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QeXRob24vZmlsZXV0 aWxzLmMgUHl0aG9uLTMuMTQuNy1uZXcvUHl0aG9uL2ZpbGV1dGlscy5jCistLS0gUHl0aG9uLTMu MTQuNy9QeXRob24vZmlsZXV0aWxzLmMJMjAyNi0wOS0yMiAwOTowNjo0Ni44Njg5NTkwNjUgKzAy MDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9QeXRob24vZmlsZXV0aWxzLmMJMjAyNi0wOS0yMiAw OTowNjo0OC45NDk5MTkxNjMgKzAyMDAKK0BAIC0yMTU2LDE5ICsyMTU2LDMxIEBAIGludAorIF9Q eV9pc2Ficyhjb25zdCB3Y2hhcl90ICpwYXRoKQorIHsKKyAjaWZkZWYgTVNfV0lORE9XUworKyAg ICAvLyBjcmVhdGUgYSBjb3B5IG9mIHBhdGggYW5kIHJlcGxhY2UgYWxsIGZvcndhcmQgc2xhc2hl cyB3aXRoIGJhY2tzbGFzaGVzCisrICAgIC8vIHBhdGhjY3NraXByb290IGRvZXMgbm90IGhhbmRs ZSBmb3J3YXJkIHNsYXNoZXMKKysgICAgd2NoYXJfdCAqcGF0aF9jb3B5ID0gX3djc2R1cChwYXRo KTsKKysgICAgaWYgKHBhdGhfY29weSA9PSBOVUxMKSB7CisrICAgICAgICByZXR1cm4gMDsKKysg ICAgfQorKyAgICBQeV9Ob3JtYWxpemVTZXBzUGF0aGNjaFcocGF0aF9jb3B5KTsKKysKKyAgICAg Y29uc3Qgd2NoYXJfdCAqdGFpbDsKKy0gICAgSFJFU1VMVCBociA9IFBhdGhDY2hTa2lwUm9vdChw YXRoLCAmdGFpbCk7CistICAgIGlmIChGQUlMRUQoaHIpIHx8IHBhdGggPT0gdGFpbCkgeworKyAg ICBIUkVTVUxUIGhyID0gUGF0aENjaFNraXBSb290KHBhdGhfY29weSwgJnRhaWwpOworKyAgICBp ZiAoRkFJTEVEKGhyKSB8fCBwYXRoX2NvcHkgPT0gdGFpbCkgeworKyAgICAgICAgZnJlZShwYXRo X2NvcHkpOworICAgICAgICAgcmV0dXJuIDA7CisgICAgIH0KKy0gICAgaWYgKHRhaWwgPT0gJnBh dGhbMV0gJiYgKHBhdGhbMF0gPT0gU0VQIHx8IHBhdGhbMF0gPT0gQUxUU0VQKSkgeworKyAgICBp ZiAodGFpbCA9PSAmcGF0aF9jb3B5WzFdICYmIChwYXRoX2NvcHlbMF0gPT0gU0VQIHx8IHBhdGhf Y29weVswXSA9PSBBTFRTRVApKSB7CisgICAgICAgICAvLyBFeGNsdWRlIHBhdGhzIHdpdGggbGVh ZGluZyBTRVAKKysgICAgICAgIGZyZWUocGF0aF9jb3B5KTsKKyAgICAgICAgIHJldHVybiAwOwor ICAgICB9CistICAgIGlmICh0YWlsID09ICZwYXRoWzJdICYmIHBhdGhbMV0gPT0gTCc6Jykgewor KyAgICBpZiAodGFpbCA9PSAmcGF0aF9jb3B5WzJdICYmIHBhdGhfY29weVsxXSA9PSBMJzonKSB7 CisgICAgICAgICAvLyBFeGNsdWRlIGRyaXZlLXJlbGF0aXZlIHBhdGhzIChlLmcuIEM6ZmlsZW5h bWUuZXh0KQorKyAgICAgICAgZnJlZShwYXRoX2NvcHkpOworICAgICAgICAgcmV0dXJuIDA7Cisg ICAgIH0KKysgICAgZnJlZShwYXRoX2NvcHkpOworICAgICByZXR1cm4gMTsKKyAjZWxzZQorICAg ICByZXR1cm4gKHBhdGhbMF0gPT0gU0VQKTsKK0BAIC0yNDA4LDYgKzI0MjAsOCBAQCBqb2luX3Jl bGZpbGUod2NoYXJfdCAqYnVmZmVyLCBzaXplX3QgYnVmCisgICAgICAgICAgICAgIGNvbnN0IHdj aGFyX3QgKmRpcm5hbWUsIGNvbnN0IHdjaGFyX3QgKnJlbGZpbGUpCisgeworICNpZmRlZiBNU19X SU5ET1dTCisrICAgIFB5X05vcm1hbGl6ZVNlcHNQYXRoY2NoVyhkaXJuYW1lKTsKKysgICAgUHlf Tm9ybWFsaXplU2Vwc1BhdGhjY2hXKHJlbGZpbGUpOworICAgICBpZiAoRkFJTEVEKFBhdGhDY2hD b21iaW5lRXgoYnVmZmVyLCBidWZzaXplLCBkaXJuYW1lLCByZWxmaWxlLAorICAgICAgICAgUEFU SENDSF9BTExPV19MT05HX1BBVEhTKSkpIHsKKyAgICAgICAgIHJldHVybiAtMTsKK2RpZmYgLXJ1 cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L1B5dGhvbi9wYXRoY29uZmlnLmMgUHl0 aG9uLTMuMTQuNy1uZXcvUHl0aG9uL3BhdGhjb25maWcuYworLS0tIFB5dGhvbi0zLjE0LjcvUHl0 aG9uL3BhdGhjb25maWcuYwkyMDI2LTA5LTIyIDA5OjA2OjQ2Ljg2OTQ2OTk3MiArMDIwMAorKysr IFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9wYXRoY29uZmlnLmMJMjAyNi0wOS0yMiAwOTowNjo0 OC45NTAyNjAyNzYgKzAyMDAKK0BAIC0xNTMsNiArMTUzLDIyIEBAIFB5X05vcm1hbGl6ZVNlcHNX KHdjaGFyX3QgKm5hbWUpCisgICAgIH0KKyB9CisgCisrdm9pZAorK1B5X05vcm1hbGl6ZVNlcHNQ YXRoY2NoVyh3Y2hhcl90ICpuYW1lKQorK3sKKysjaWZkZWYgTVNfV0lORE9XUworKyAgICBhc3Nl cnQobmFtZSAhPSBOVUxMKTsKKysgICAgd2NoYXJfdCBzZXAgPSAnXFwnOworKyAgICB3Y2hhcl90 IGFsdHNlcCA9ICcvJzsKKysgICAgd2NoYXJfdCogc2VwczsKKysgICAgc2VwcyA9IHdjc2Nocihu YW1lLCBhbHRzZXApOworKyAgICB3aGlsZShzZXBzKSB7CisrICAgICAgICAqc2VwcyA9IHNlcDsK KysgICAgICAgIHNlcHMgPSB3Y3NjaHIoc2VwcywgYWx0c2VwKTsKKysgICAgfQorKyNlbmRpZgor K30KKysKKyAvKiBFeHRlcm5hbCBpbnRlcmZhY2UgKi8KKyAKKyAvKiBTdG9yZWQgdmFsdWVzIHNl dCBieSBDIEFQSSBmdW5jdGlvbnMgKi8KCmRpZmYgLS1naXQgYS8wMDY2LXB5bGlmZWN5Y2xlLmgt cmVtb3ZlLWNvbmZsaWN0aW5nLV9QeV9DaGVja1B5dGhvbjMtZGUucGF0Y2ggYi8wMDY2LXB5bGlm ZWN5Y2xlLmgtcmVtb3ZlLWNvbmZsaWN0aW5nLV9QeV9DaGVja1B5dGhvbjMtZGUucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVjMWU3YgotLS0gL2Rldi9udWxsCisr KyBiLzAwNjYtcHlsaWZlY3ljbGUuaC1yZW1vdmUtY29uZmxpY3RpbmctX1B5X0NoZWNrUHl0aG9u My1kZS5wYXRjaApAQCAtMCwwICsxLDEzIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2Ug UHl0aG9uLTMuMTQuNy9JbmNsdWRlL3B5bGlmZWN5Y2xlLmggUHl0aG9uLTMuMTQuNy1uZXcvSW5j bHVkZS9weWxpZmVjeWNsZS5oCistLS0gUHl0aG9uLTMuMTQuNy9JbmNsdWRlL3B5bGlmZWN5Y2xl LmgJMjAyNi0wOS0yMiAwOTowNjo0OS4yMzMwNTc1NjIgKzAyMDAKKysrKyBQeXRob24tMy4xNC43 LW5ldy9JbmNsdWRlL3B5bGlmZWN5Y2xlLmgJMjAyNi0wOS0yMiAwOTowNjo0OS4yMzc2OTM3OTIg KzAyMDAKK0BAIC01Myw5ICs1Myw2IEBAIFB5X0RFUFJFQ0FURUQoMy4xMykgUHlBUElfRlVOQyh3 Y2hhcl90ICoKKyBQeV9ERVBSRUNBVEVEKDMuMTMpIFB5QVBJX0ZVTkMod2NoYXJfdCAqKSBQeV9H ZXRQcmVmaXgodm9pZCk7CisgUHlfREVQUkVDQVRFRCgzLjEzKSBQeUFQSV9GVU5DKHdjaGFyX3Qg KikgUHlfR2V0RXhlY1ByZWZpeCh2b2lkKTsKKyBQeV9ERVBSRUNBVEVEKDMuMTMpIFB5QVBJX0ZV TkMod2NoYXJfdCAqKSBQeV9HZXRQYXRoKHZvaWQpOworLSNpZmRlZiBNU19XSU5ET1dTCistaW50 IF9QeV9DaGVja1B5dGhvbjModm9pZCk7CistI2VuZGlmCisgCisgLyogSW4gdGhlaXIgb3duIGZp bGVzICovCisgUHlBUElfRlVOQyhjb25zdCBjaGFyICopIFB5X0dldFZlcnNpb24odm9pZCk7Cgpk aWZmIC0tZ2l0IGEvMDA2Ny1keW5sb2FkX3dpbi1hZGQtZW52LXZhci1mb3ItcmV2ZXJ0aW5nLXRo ZS1sZWdhY3ktRExMLnBhdGNoIGIvMDA2Ny1keW5sb2FkX3dpbi1hZGQtZW52LXZhci1mb3ItcmV2 ZXJ0aW5nLXRoZS1sZWdhY3ktRExMLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmI2MWM1MWIKLS0tIC9kZXYvbnVsbAorKysgYi8wMDY3LWR5bmxvYWRfd2luLWFkZC1l bnYtdmFyLWZvci1yZXZlcnRpbmctdGhlLWxlZ2FjeS1ETEwucGF0Y2gKQEAgLTAsMCArMSw4MiBA QAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTGliL3Rlc3QvX19t YWluX18ucHkgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3Rlc3QvX19tYWluX18ucHkKKy0tLSBQeXRo b24tMy4xNC43L0xpYi90ZXN0L19fbWFpbl9fLnB5CTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAw MDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3Rlc3QvX19tYWluX18ucHkJMjAy Ni0wOS0yMiAwOTowNjo0OS41MjQ3NDkzOTggKzAyMDAKK0BAIC0xLDIgKzEsMTAgQEAKKytpbXBv cnQgb3MKKytpbXBvcnQgc3lzCisrCisgZnJvbSB0ZXN0LmxpYnJlZ3J0ZXN0Lm1haW4gaW1wb3J0 IG1haW4KKysKKytpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKKysgICAgIyBFbmFibGUgRExM IGxvYWRpbmcgZnJvbSBQQVRILgorKyAgICBvcy5lbnZpcm9uWyJQWVRIT05MRUdBQ1lXSU5ET1dT RExMTE9BRElORyJdID0gIjEiCisrCisgbWFpbihfYWRkX3B5dGhvbl9vcHRzPVRydWUpCitkaWZm IC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9taW5nd19zbW9rZXRlc3RzLnB5 IFB5dGhvbi0zLjE0LjctbmV3L21pbmd3X3Ntb2tldGVzdHMucHkKKy0tLSBQeXRob24tMy4xNC43 L21pbmd3X3Ntb2tldGVzdHMucHkJMjAyNi0wOS0yMiAwOTowNjo0NS4xMTk3OTgwNjEgKzAyMDAK KysrKyBQeXRob24tMy4xNC43LW5ldy9taW5nd19zbW9rZXRlc3RzLnB5CTIwMjYtMDktMjIgMDk6 MDY6NDkuNTI1NDY2ODU1ICswMjAwCitAQCAtMzUsNiArMzUsOSBAQCBpZiBzeXMuX3VzZV9hbHRf c2VwOgorIGVsc2U6CisgICAgIFNFUCA9ICJcXCIKKyAKKytpZiBzeXNjb25maWcuaXNfcHl0aG9u X2J1aWxkKCk6CisrICAgIG9zLmVudmlyb25bIlBZVEhPTkxFR0FDWVdJTkRPV1NETExMT0FESU5H Il0gPSAiMSIKKysKKyBfVUNSVCA9ICd1Y3J0JyBpbiBzeXNjb25maWcuZ2V0X3BsYXRmb3JtKCkK KyAKKyAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L1B5dGhvbi9k eW5sb2FkX3dpbi5jIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9keW5sb2FkX3dpbi5jCistLS0g UHl0aG9uLTMuMTQuNy9QeXRob24vZHlubG9hZF93aW4uYwkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAw MDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9keW5sb2FkX3dpbi5j CTIwMjYtMDktMjIgMDk6MDY6NDkuNTI0OTk2ODk0ICswMjAwCitAQCAtNiw2ICs2LDcgQEAKKyAj aW5jbHVkZSAicHljb3JlX2ltcG9ydGRsLmgiICAgICAgLy8gZGxfZnVuY3B0cgorICNpbmNsdWRl ICJweWNvcmVfaW50ZXJwLmgiICAgICAgICAvLyBfUHlJbnRlcnByZXRlclN0YXRlX0dldENvbmZp ZygpCisgI2luY2x1ZGUgInB5Y29yZV9weXN0YXRlLmgiICAgICAgIC8vIF9QeUludGVycHJldGVy U3RhdGVfR0VUKCkKKysjaW5jbHVkZSAicHljb3JlX2luaXRjb25maWcuaCIKKyAKKyAjaW5jbHVk ZSAicGF0Y2hsZXZlbC5oIiAgICAgICAgICAgLy8gUFlfTUFKT1JfVkVSU0lPTgorICNpbmNsdWRl IDx3aW5kb3dzLmg+CitAQCAtMjEyLDYgKzIxMywxOCBAQCBkbF9mdW5jcHRyIF9QeUltcG9ydF9G aW5kU2hhcmVkRnVuY3B0cldpCisgICAgIF9QeV9DaGVja1B5dGhvbjMoKTsKKyAjZW5kaWYgLyog UHlfRU5BQkxFX1NIQVJFRCAqLworIAorKyAgICBpbnQgdXNlX2xlZ2FjeSA9IDA7CisrICAgIERX T1JEIGxvYWRfbGlicmFyeV9mbGFncyA9IDA7CisrCisrICAgIF9QeV9nZXRfZW52X2ZsYWcoMSwg JnVzZV9sZWdhY3ksICJQWVRIT05MRUdBQ1lXSU5ET1dTRExMTE9BRElORyIpOworKworKyAgICBp ZiAodXNlX2xlZ2FjeSkgeworKyAgICAgICAgbG9hZF9saWJyYXJ5X2ZsYWdzID0gTE9BRF9XSVRI X0FMVEVSRURfU0VBUkNIX1BBVEg7CisrICAgIH0gZWxzZSB7CisrICAgICAgICBsb2FkX2xpYnJh cnlfZmxhZ3MgPSBMT0FEX0xJQlJBUllfU0VBUkNIX0RFRkFVTFRfRElSUyB8CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTE9BRF9MSUJSQVJZX1NFQVJDSF9ETExfTE9BRF9ESVI7Cisr ICAgIH0KKysKKyAgICAgd2NoYXJfdCAqd3BhdGhuYW1lID0gUHlVbmljb2RlX0FzV2lkZUNoYXJT dHJpbmcocGF0aG5hbWUsIE5VTEwpOworICAgICBpZiAod3BhdGhuYW1lID09IE5VTEwpCisgICAg ICAgICByZXR1cm4gTlVMTDsKK0BAIC0yMzIsOSArMjQ1LDcgQEAgZGxfZnVuY3B0ciBfUHlJbXBv cnRfRmluZFNoYXJlZEZ1bmNwdHJXaQorICAgICAgICAgICAgQWRkRGxsRGlyZWN0b3J5IGZ1bmN0 aW9uLiBXZSBhZGQgU0VBUkNIX0RMTF9MT0FEX0RJUiB0bworICAgICAgICAgICAgZW5zdXJlIERM THMgYWRqYWNlbnQgdG8gdGhlIFBZRCBhcmUgcHJlZmVycmVkLiAqLworICAgICAgICAgUHlfQkVH SU5fQUxMT1dfVEhSRUFEUworLSAgICAgICAgaERMTCA9IExvYWRMaWJyYXJ5RXhXKHdwYXRobmFt ZSwgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT0FEX0xJQlJBUllfU0VB UkNIX0RFRkFVTFRfRElSUyB8CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9BRF9M SUJSQVJZX1NFQVJDSF9ETExfTE9BRF9ESVIpOworKyAgICAgICAgaERMTCA9IExvYWRMaWJyYXJ5 RXhXKHdwYXRobmFtZSwgTlVMTCwgbG9hZF9saWJyYXJ5X2ZsYWdzKTsKKyAgICAgICAgIFB5X0VO RF9BTExPV19USFJFQURTCisgICAgICAgICBQeU1lbV9GcmVlKHdwYXRobmFtZSk7CisgCitkaWZm IC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Ub29scy9idWlsZC9jaGVja19l eHRlbnNpb25fbW9kdWxlcy5weSBQeXRob24tMy4xNC43LW5ldy9Ub29scy9idWlsZC9jaGVja19l eHRlbnNpb25fbW9kdWxlcy5weQorLS0tIFB5dGhvbi0zLjE0LjcvVG9vbHMvYnVpbGQvY2hlY2tf ZXh0ZW5zaW9uX21vZHVsZXMucHkJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAK KysrKyBQeXRob24tMy4xNC43LW5ldy9Ub29scy9idWlsZC9jaGVja19leHRlbnNpb25fbW9kdWxl cy5weQkyMDI2LTA5LTIyIDA5OjA2OjQ5LjUyNTIwMzk4MCArMDIwMAorQEAgLTY5LDYgKzY5LDEw IEBAIFdJTkRPV1NfTU9EVUxFUyA9IHsKKyAgICAgIndpbnNvdW5kIiwKKyB9CisgCisraWYgc3lz LnBsYXRmb3JtID09ICJ3aW4zMiI6CisrICAgICMgRW5hYmxlIERMTCBsb2FkaW5nIGZyb20gUEFU SC4KKysgICAgb3MuZW52aXJvblsiUFlUSE9OTEVHQUNZV0lORE9XU0RMTExPQURJTkciXSA9ICIx IgorKworIAorIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorIAoKZGlmZiAt LWdpdCBhLzAwNjgtZHlubG9hZF93aW4tUG9ydC1HZXRQeXRob25JbXBvcnQtdG8tTUlOR1cucGF0 Y2ggYi8wMDY4LWR5bmxvYWRfd2luLVBvcnQtR2V0UHl0aG9uSW1wb3J0LXRvLU1JTkdXLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYzg4NDQKLS0tIC9kZXYvbnVs bAorKysgYi8wMDY4LWR5bmxvYWRfd2luLVBvcnQtR2V0UHl0aG9uSW1wb3J0LXRvLU1JTkdXLnBh dGNoCkBAIC0wLDAgKzEsNjEgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24t My4xNC43L1B5dGhvbi9keW5sb2FkX3dpbi5jIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9keW5s b2FkX3dpbi5jCistLS0gUHl0aG9uLTMuMTQuNy9QeXRob24vZHlubG9hZF93aW4uYwkyMDI2LTA5 LTIyIDA5OjA2OjQ5LjgxNDA2MDM1OCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhv bi9keW5sb2FkX3dpbi5jCTIwMjYtMDktMjIgMDk6MDY6NDkuODE4MDUyNTg4ICswMjAwCitAQCAt MzgsNiArMzgsMTYgQEAgY29uc3QgY2hhciAqX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPQor ICNkZWZpbmUgRFdPUkRfQVQobWVtKSAoKihEV09SRCAqKShtZW0pKQorICNkZWZpbmUgV09SRF9B VChtZW0pICAoKihXT1JEICopKG1lbSkpCisgCisrI2lmZGVmIF9fTUlOR1czMl9fCisrI2RlZmlu ZSBETExfUFJFRklYICJsaWJweXRob24iCisrI2RlZmluZSBETExfUFJFRklYX0xFTiA5CisrI2Rl ZmluZSBETExfTkFNRV9GT1JNQVQgImxpYnB5dGhvbiVkLiVkIgorKyNlbHNlCisrI2RlZmluZSBE TExfUFJFRklYICJweXRob24iCisrI2RlZmluZSBETExfUFJFRklYX0xFTiA2CisrI2RlZmluZSBE TExfTkFNRV9GT1JNQVQgInB5dGhvbiVkJWQiCisrI2VuZGlmCisrCisgc3RhdGljIGNoYXIgKkdl dFB5dGhvbkltcG9ydCAoSElOU1RBTkNFIGhNb2R1bGUpCisgeworICAgICB1bnNpZ25lZCBjaGFy ICpkbGxiYXNlLCAqaW1wb3J0X2RhdGEsICppbXBvcnRfbmFtZTsKK0BAIC0xMDQsMTUgKzExNCwx NSBAQCBzdGF0aWMgY2hhciAqR2V0UHl0aG9uSW1wb3J0IChISU5TVEFOQ0UKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydF9vZmYpOworICAgICAgICAgd2hp bGUgKERXT1JEX0FUKGltcG9ydF9kYXRhKSkgeworICAgICAgICAgICAgIGltcG9ydF9uYW1lID0g ZGxsYmFzZSArIERXT1JEX0FUKGltcG9ydF9kYXRhKzEyKTsKKy0gICAgICAgICAgICBpZiAoc3Ry bGVuKGltcG9ydF9uYW1lKSA+PSA2ICYmCistICAgICAgICAgICAgICAgICFzdHJuY21wKGltcG9y dF9uYW1lLCJweXRob24iLDYpKSB7CisrICAgICAgICAgICAgaWYgKHN0cmxlbihpbXBvcnRfbmFt ZSkgPj0gRExMX1BSRUZJWF9MRU4gJiYKKysgICAgICAgICAgICAgICAgIXN0cm5jbXAoaW1wb3J0 X25hbWUsIERMTF9QUkVGSVgsIERMTF9QUkVGSVhfTEVOKSkgeworICAgICAgICAgICAgICAgICBj aGFyICpwY2g7CisgCisgICAgICAgICAgICAgICAgIC8qIERvbid0IGNsYWltIHRoYXQgcHl0aG9u My5kbGwgaXMgYSBQeXRob24gRExMLiAqLworICNpZmRlZiBfREVCVUcKKy0gICAgICAgICAgICAg ICAgaWYgKHN0cmNtcChpbXBvcnRfbmFtZSwgInB5dGhvbjNfZC5kbGwiKSA9PSAwKSB7CisrICAg ICAgICAgICAgICAgIGlmIChzdHJjbXAoaW1wb3J0X25hbWUsIERMTF9QUkVGSVggIjNfZC5kbGwi KSA9PSAwKSB7CisgI2Vsc2UKKy0gICAgICAgICAgICAgICAgaWYgKHN0cmNtcChpbXBvcnRfbmFt ZSwgInB5dGhvbjMuZGxsIikgPT0gMCkgeworKyAgICAgICAgICAgICAgICBpZiAoc3RyY21wKGlt cG9ydF9uYW1lLCBETExfUFJFRklYICIzLmRsbCIpID09IDApIHsKKyAjZW5kaWYKKyAgICAgICAg ICAgICAgICAgICAgIGltcG9ydF9kYXRhICs9IDIwOworICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7CitAQCAtMTIwLDcgKzEzMCw3IEBAIHN0YXRpYyBjaGFyICpHZXRQeXRob25JbXBvcnQg KEhJTlNUQU5DRQorIAorICAgICAgICAgICAgICAgICAvKiBFbnN1cmUgcHl0aG9uIHByZWZpeCBp cyBmb2xsb3dlZCBvbmx5CisgICAgICAgICAgICAgICAgICAgIGJ5IG51bWJlcnMgdG8gdGhlIGVu ZCBvZiB0aGUgYmFzZW5hbWUgKi8KKy0gICAgICAgICAgICAgICAgcGNoID0gaW1wb3J0X25hbWUg KyA2OworKyAgICAgICAgICAgICAgICBwY2ggPSBpbXBvcnRfbmFtZSArIERMTF9QUkVGSVhfTEVO OworICNpZmRlZiBfREVCVUcKKyAgICAgICAgICAgICAgICAgd2hpbGUgKCpwY2ggJiYgcGNoWzBd ICE9ICdfJyAmJiBwY2hbMV0gIT0gJ2QnICYmIHBjaFsyXSAhPSAnLicpIHsKKyAjZWxzZQorQEAg LTMxMiw5ICszMjIsOSBAQCBkbF9mdW5jcHRyIF9QeUltcG9ydF9GaW5kU2hhcmVkRnVuY3B0cldp CisgCisgICAgICAgICAgICAgUHlPU19zbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLAor ICNpZmRlZiBfREVCVUcKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICJweXRob24lZCVkX2Qu ZGxsIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIERMTF9OQU1FX0ZPUk1BVCAiX2QuZGxs IiwKKyAjZWxzZQorLSAgICAgICAgICAgICAgICAgICAgICAgICAgInB5dGhvbiVkJWQuZGxsIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgIERMTF9OQU1FX0ZPUk1BVCAiLmRsbCIsCisgI2Vu ZGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQWV9NQUpPUl9WRVJTSU9OLFBZX01JTk9S X1ZFUlNJT04pOworICAgICAgICAgICAgIGltcG9ydF9weXRob24gPSBHZXRQeXRob25JbXBvcnQo aERMTCk7CgpkaWZmIC0tZ2l0IGEvMDA2OS1keW5sb2FkX3dpbi1tYWtlLXN1cmUtdG8tb25seS11 c2UtYmFja3NsYXNoZXMtZm9yLXBhLnBhdGNoIGIvMDA2OS1keW5sb2FkX3dpbi1tYWtlLXN1cmUt dG8tb25seS11c2UtYmFja3NsYXNoZXMtZm9yLXBhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjcyNjhjYjMKLS0tIC9kZXYvbnVsbAorKysgYi8wMDY5LWR5bmxvYWRf d2luLW1ha2Utc3VyZS10by1vbmx5LXVzZS1iYWNrc2xhc2hlcy1mb3ItcGEucGF0Y2gKQEAgLTAs MCArMSwxOSBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvUHl0 aG9uL2R5bmxvYWRfd2luLmMgUHl0aG9uLTMuMTQuNy1uZXcvUHl0aG9uL2R5bmxvYWRfd2luLmMK Ky0tLSBQeXRob24tMy4xNC43L1B5dGhvbi9keW5sb2FkX3dpbi5jCTIwMjYtMDktMjIgMDk6MDY6 NTAuMTA1OTYxMzExICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvUHl0aG9uL2R5bmxvYWRf d2luLmMJMjAyNi0wOS0yMiAwOTowNjo1MC4xMTAyMTE1MjkgKzAyMDAKK0BAIC0yMzksNiArMjM5 LDE1IEBAIGRsX2Z1bmNwdHIgX1B5SW1wb3J0X0ZpbmRTaGFyZWRGdW5jcHRyV2kKKyAgICAgaWYg KHdwYXRobmFtZSA9PSBOVUxMKQorICAgICAgICAgcmV0dXJuIE5VTEw7CisgCisrICAgIC8vIExv YWRMaWJyYXJ5RXhXIG9ubHkgY29uc2lkZXJzIHBhdGhzIHVzaW5nIGJhY2tzbGFzaGVzIGFzICJm dWxseSBxdWFsaWZpZWQiLAorKyAgICAvLyBhbmQgZm9yIGV4YW1wbGUgTE9BRF9MSUJSQVJZX1NF QVJDSF9ETExfTE9BRF9ESVIgZG9lc24ndCB3b3JrIHdpdGggZm9yd2FyZCBzbGFzaGVzLgorKyAg ICAvLyBodHRwczovL2dpdGh1Yi5jb20vbXN5czItY29udHJpYi9jcHl0aG9uLW1pbmd3L2lzc3Vl cy8xNTEKKysgICAgZm9yIChzaXplX3QgaSA9IDA7IHdwYXRobmFtZVtpXSAhPSBMJ1wwJzsgKytp KSB7CisrICAgICAgICBpZiAod3BhdGhuYW1lW2ldID09IEwnLycpIHsKKysgICAgICAgICAgICB3 cGF0aG5hbWVbaV0gPSBMJ1xcJzsKKysgICAgICAgIH0KKysgICAgfQorKworICAgICBQeU9TX3Nu cHJpbnRmKGZ1bmNuYW1lLCBzaXplb2YoZnVuY25hbWUpLCAiJS4yMHNfJS4yMDBzIiwgcHJlZml4 LCBzaG9ydG5hbWUpOworIAorICAgICB7CgpkaWZmIC0tZ2l0IGEvMDA3MC1keW5sb2FkX3dpbi1k b24tdC1ydW4tX1B5X0NoZWNrUHl0aG9uMy1mb3ItTUlOR1ctYnVpLnBhdGNoIGIvMDA3MC1keW5s b2FkX3dpbi1kb24tdC1ydW4tX1B5X0NoZWNrUHl0aG9uMy1mb3ItTUlOR1ctYnVpLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjYzEyM2MKLS0tIC9kZXYvbnVsbAor KysgYi8wMDcwLWR5bmxvYWRfd2luLWRvbi10LXJ1bi1fUHlfQ2hlY2tQeXRob24zLWZvci1NSU5H Vy1idWkucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNl IFB5dGhvbi0zLjE0LjcvUHl0aG9uL2R5bmxvYWRfd2luLmMgUHl0aG9uLTMuMTQuNy1uZXcvUHl0 aG9uL2R5bmxvYWRfd2luLmMKKy0tLSBQeXRob24tMy4xNC43L1B5dGhvbi9keW5sb2FkX3dpbi5j CTIwMjYtMDktMjIgMDk6MDY6NTAuMzk0Nzg4MDE1ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1u ZXcvUHl0aG9uL2R5bmxvYWRfd2luLmMJMjAyNi0wOS0yMiAwOTowNjo1MC4zOTgzMjY0MjEgKzAy MDAKK0BAIC0yMTksOSArMjE5LDkgQEAgZGxfZnVuY3B0ciBfUHlJbXBvcnRfRmluZFNoYXJlZEZ1 bmNwdHJXaQorICAgICBkbF9mdW5jcHRyIHA7CisgICAgIGNoYXIgZnVuY25hbWVbMjU4XSwgKmlt cG9ydF9weXRob247CisgCistI2lmZGVmIFB5X0VOQUJMRV9TSEFSRUQKKysjaWYgZGVmaW5lZChQ eV9FTkFCTEVfU0hBUkVEKSAmJiBkZWZpbmVkKF9NU0NfVkVSKQorICAgICBfUHlfQ2hlY2tQeXRo b24zKCk7CistI2VuZGlmIC8qIFB5X0VOQUJMRV9TSEFSRUQgKi8KKysjZW5kaWYgLyogZGVmaW5l ZChQeV9FTkFCTEVfU0hBUkVEKSAmJiBkZWZpbmVkKF9NU0NfVkVSKSAqLworIAorICAgICBpbnQg dXNlX2xlZ2FjeSA9IDA7CisgICAgIERXT1JEIGxvYWRfbGlicmFyeV9mbGFncyA9IDA7CgpkaWZm IC0tZ2l0IGEvMDA3MS1idWlsZC1CdWlsZC1hbmQtaW5zdGFsbC1saWJweXRob24zLmRsbC1zdGFi bGUtQUJJLnBhdGNoIGIvMDA3MS1idWlsZC1CdWlsZC1hbmQtaW5zdGFsbC1saWJweXRob24zLmRs bC1zdGFibGUtQUJJLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4 NmM0ZmYKLS0tIC9kZXYvbnVsbAorKysgYi8wMDcxLWJ1aWxkLUJ1aWxkLWFuZC1pbnN0YWxsLWxp YnB5dGhvbjMuZGxsLXN0YWJsZS1BQkkucGF0Y2gKQEAgLTAsMCArMSw5MiBAQAorZGlmZiAtcnVw TiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTWFrZWZpbGUucHJlLmluIFB5dGhvbi0z LjE0LjctbmV3L01ha2VmaWxlLnByZS5pbgorLS0tIFB5dGhvbi0zLjE0LjcvTWFrZWZpbGUucHJl LmluCTIwMjYtMDktMjIgMDk6MDY6NDYuNTcyNjM5MTQ1ICswMjAwCisrKysgUHl0aG9uLTMuMTQu Ny1uZXcvTWFrZWZpbGUucHJlLmluCTIwMjYtMDktMjIgMDk6MDY6NTAuNjg5MTc2MTgxICswMjAw CitAQCAtMjk5LDYgKzI5OSw4IEBAIExJQlJBUllfREVQUz0JQExJQlJBUllfREVQU0AKKyBMSU5L X1BZVEhPTl9ERVBTPUBMSU5LX1BZVEhPTl9ERVBTQAorIFBZX0VOQUJMRV9TSEFSRUQ9CUBQWV9F TkFCTEVfU0hBUkVEQAorIFNUQVRJQ19MSUJQWVRIT049CUBTVEFUSUNfTElCUFlUSE9OQAorK0FC STNETExMSUJSQVJZPSBsaWJweXRob24zJChBQklGTEFHUykuZGxsCisrQUJJM0xETElCUkFSWT0g IGxpYnB5dGhvbjMkKEFCSUZMQUdTKS5kbGwuYQorIAorIAorIExJQlM9CQlATElCU0AKK0BAIC04 MTYsNyArODE4LDcgQEAgbGlzdC10YXJnZXRzOgorIAorIC5QSE9OWTogYnVpbGRfYWxsCisgYnVp bGRfYWxsOgljaGVjay1jbGVhbi1zcmMgY2hlY2stYXBwLXN0b3JlLWNvbXBsaWFuY2UgJChCVUlM RFBZVEhPTikgJChCVUlMRFBZVEhPTlcpICQoQlVJTERWRU5WTEFVTkNIRVIpICQoQlVJTERWRU5W V0xBVU5DSEVSKSBwbGF0Zm9ybSBzaGFyZWRtb2RzIFwKKy0JCWdkYmhvb2tzIFByb2dyYW1zL190 ZXN0ZW1iZWQgc2NyaXB0cyBjaGVja3NoYXJlZG1vZHMgcnVuZHN5bXV0aWwgYnVpbGQtZGV0YWls cy5qc29uCisrCQlnZGJob29rcyBQcm9ncmFtcy9fdGVzdGVtYmVkIHNjcmlwdHMgY2hlY2tzaGFy ZWRtb2RzIHJ1bmRzeW11dGlsIGJ1aWxkLWRldGFpbHMuanNvbiAkKEFCSTNETExMSUJSQVJZKSAk KEFCSTNMRExJQlJBUlkpCisgCisgLlBIT05ZOiBidWlsZF93YXNtCisgYnVpbGRfd2FzbTogY2hl Y2stY2xlYW4tc3JjICQoQlVJTERQWVRIT04pIHBsYXRmb3JtIHNoYXJlZG1vZHMgXAorQEAgLTEw MDgsNiArMTAxMCw5IEBAIHB5dGhvbndfZXhlLm86ICQoc3JjZGlyKS9QQy9weXRob253X2V4ZS4K KyBweXRob25fbnQubzogJChzcmNkaXIpL1BDL3B5dGhvbl9udC5yYworIAkkKFdJTkRSRVMpICQo UkNGTEFHUykgLURPUklHSU5BTF9GSUxFTkFNRT1cXFwiJChETExMSUJSQVJZKVxcXCIgLUkkKHNy Y2RpcikvSW5jbHVkZSAtSSQoc3JjZGlyKS9QQyAtSS4gJChzcmNkaXIpL1BDL3B5dGhvbl9udC5y YyAkQAorIAorK3B5dGhvbjNkbGxfbnQubzogJChzcmNkaXIpL1BDL3B5dGhvbl9udC5yYworKwkk KFdJTkRSRVMpICQoUkNGTEFHUykgLURPUklHSU5BTF9GSUxFTkFNRT1cXFwiJChBQkkzRExMTElC UkFSWSlcXFwiIC1JJChzcmNkaXIpL0luY2x1ZGUgLUkkKHNyY2RpcikvUEMgLUkuICQoc3JjZGly KS9QQy9weXRob25fbnQucmMgJEAKKysKKyB2ZW52bGF1bmNoZXIubzogJChzcmNkaXIpL1BDL3B5 bGF1bmNoZXIucmMKKyAJJChXSU5EUkVTKSAkKFJDRkxBR1MpIC1EUFlfSUNPTiAtSSQoc3JjZGly KS9JbmNsdWRlIC1JJChzcmNkaXIpL1BDIC1JLiAkKHNyY2RpcikvUEMvcHlsYXVuY2hlci5yYyAk QAorIAorQEAgLTExMzYsNiArMTE0MSwxMCBAQCAkKERMTExJQlJBUlkpIGxpYnB5dGhvbiQoTERW RVJTSU9OKS5kbGwuCisgCWVsc2UgdHJ1ZTsgXAorIAlmaQorIAorKyQoQUJJM0RMTExJQlJBUlkp ICQoQUJJM0xETElCUkFSWSk6IHB5dGhvbjNkbGxfbnQubyAkKHNyY2RpcikvUEMvbGF1bmNoZXIu YworKwkkKExEU0hBUkVEKSAtRFBZVEhPTl9ETExfTkFNRT1cIiQoRExMTElCUkFSWSlcIiAkKHNy Y2RpcikvUEMvcHl0aG9uM2RsbC5jIC1XbCwtLW91dC1pbXBsaWI9JChBQkkzTERMSUJSQVJZKSAt byAkKEFCSTNETExMSUJSQVJZKSBweXRob24zZGxsX250Lm8gXAorKwkJJChMREZMQUdTX05PRElT VCk7CisrCisgIyB3YXNtMzItZW1zY3JpcHRlbiBicm93c2VyIHdlYiBleGFtcGxlCisgCisgRU1T Q1JJUFRFTl9ESVI9JChzcmNkaXIpL1BsYXRmb3Jtcy9lbXNjcmlwdGVuCitAQCAtMjQ5Niw2ICsy NTA1LDcgQEAgYWx0YmluaW5zdGFsbDogJChCVUlMRFBZVEhPTikgQEZSQU1FV09SSworIAkJaWYg dGVzdCAtZiAkKExETElCUkFSWSkgJiYgdGVzdCAiJChQWVRIT05GUkFNRVdPUktESVIpIiA9ICJu by1mcmFtZXdvcmsiIDsgdGhlbiBcCisgCQkJaWYgdGVzdCAtbiAiJChETExMSUJSQVJZKSIgOyB0 aGVuIFwKKyAJCQkJJChJTlNUQUxMX1NIQVJFRCkgJChETExMSUJSQVJZKSAkKERFU1RESVIpJChC SU5ESVIpOyBcCisrCQkJCSQoSU5TVEFMTF9TSEFSRUQpICQoQUJJM0RMTExJQlJBUlkpICQoREVT VERJUikkKEJJTkRJUik7IFwKKyAJCQllbHNlIFwKKyAJCQkJJChJTlNUQUxMX1NIQVJFRCkgJChM RExJQlJBUlkpICQoREVTVERJUikkKExJQkRJUikvJChJTlNUU09OQU1FKTsgXAorIAkJCQlpZiB0 ZXN0ICQoTERMSUJSQVJZKSAhPSAkKElOU1RTT05BTUUpOyB0aGVuIFwKK0BAIC0yOTk0LDYgKzMw MDQsNyBAQCBsaWJhaW5zdGFsbDogYWxsIHNjcmlwdHMKKyAJCQlpZiB0ZXN0ICIkKFBZVEhPTkZS QU1FV09SS0RJUikiID0gbm8tZnJhbWV3b3JrOyB0aGVuIFwKKyAJCQkJaWYgdGVzdCAiJChTSExJ Ql9TVUZGSVgpIiA9IC5kbGwgLW8gIiQoU0hMSUJfU1VGRklYKSIgPSAucHlkOyB0aGVuIFwKKyAJ CQkJCSQoSU5TVEFMTF9EQVRBKSAkKExETElCUkFSWSkgJChERVNURElSKSQoTElCRElSKSA7IFwK KysJCQkJCSQoSU5TVEFMTF9EQVRBKSAkKEFCSTNMRExJQlJBUlkpICQoREVTVERJUikkKExJQkRJ UikgOyBcCisgCQkJCWVsc2UgXAorIAkJCQkJJChJTlNUQUxMX0RBVEEpICQoTElCUkFSWSkgJChE RVNURElSKSQoTElCUEwpLyQoTElCUkFSWSkgOyBcCisgCQkJCWZpOyBcCitAQCAtMzMyMCw3ICsz MzMxLDcgQEAgY2xlYW46IGNsZWFuLXByb2ZpbGUgY2xlYW4taml0LXN0ZW5jaWxzCisgCisgLlBI T05ZOiBjbG9iYmVyCisgY2xvYmJlcjogY2xlYW4KKy0JLXJtIC1mICQoQlVJTERQWVRIT04pICQo TElCUkFSWSkgJChMRExJQlJBUlkpICQoRExMTElCUkFSWSkgXAorKwktcm0gLWYgJChCVUlMRFBZ VEhPTikgJChMSUJSQVJZKSAkKExETElCUkFSWSkgJChETExMSUJSQVJZKSAkKEFCSTNMRExJQlJB UlkpICQoQUJJM0RMTExJQlJBUlkpIFwKKyAJCXRhZ3MgVEFHUyBcCisgCQljb25maWcuY2FjaGUg Y29uZmlnLmxvZyBweWNvbmZpZy5oIE1vZHVsZXMvY29uZmlnLmMKKyAJLXJtIC1yZiBidWlsZCBw bGF0Zm9ybQorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvUEMvcHl0 aG9uM2RsbC5jIFB5dGhvbi0zLjE0LjctbmV3L1BDL3B5dGhvbjNkbGwuYworLS0tIFB5dGhvbi0z LjE0LjcvUEMvcHl0aG9uM2RsbC5jCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAw CisrKysgUHl0aG9uLTMuMTQuNy1uZXcvUEMvcHl0aG9uM2RsbC5jCTIwMjYtMDktMjIgMDk6MDY6 NTAuNjg5NzEzMTU1ICswMjAwCitAQCAtMiw2ICsyLDcgQEAKKyAKKyAvKiBHZW5lcmF0ZWQgYnkg VG9vbHMvYnVpbGQvc3RhYmxlX2FiaS5weSAqLworIAorKyNpZmRlZiBfTVNDX1ZFUgorICNpZmRl ZiBfTV9JWDg2CisgI2RlZmluZSBERUNPUkFURSAiXyIKKyAjZWxzZQorQEAgLTEyLDYgKzEzLDEz IEBACisgICAgIF9fcHJhZ21hKGNvbW1lbnQobGlua2VyLCAiL0VYUE9SVDoiIERFQ09SQVRFICNu YW1lICI9IiBQWVRIT05fRExMX05BTUUgIi4iICNuYW1lKSkKKyAjZGVmaW5lIEVYUE9SVF9EQVRB KG5hbWUpIFwKKyAgICAgX19wcmFnbWEoY29tbWVudChsaW5rZXIsICIvRVhQT1JUOiIgREVDT1JB VEUgI25hbWUgIj0iIFBZVEhPTl9ETExfTkFNRSAiLiIgI25hbWUgIixEQVRBIikpCisrI2Vsc2UK KysvLyBYWFg6IFdoeSBkbyB3ZSBuZWVkIHRoZSAuZGxsIGV4dGVuc2lvbiBhbmQgbm8gREVDT1JB VEUgY29tcGFyZWQgdG8gdGhlIE1TVkMgY2FzZT8KKysjZGVmaW5lIEVYUE9SVF9GVU5DKG5hbWUp IFwKKysgICAgYXNtKCIuc2VjdGlvbiAuZHJlY3R2ZVxuXHQuYXNjaWkgXCIgLWV4cG9ydDoiICNu YW1lICI9XFxcIiIgUFlUSE9OX0RMTF9OQU1FICIuIiAjbmFtZSAiXFxcIiBcIiIpOworKyNkZWZp bmUgRVhQT1JUX0RBVEEobmFtZSkgXAorKyAgICBhc20oIi5zZWN0aW9uIC5kcmVjdHZlXG5cdC5h c2NpaSBcIiAtZXhwb3J0OiIgI25hbWUgIj1cXFwiIiBQWVRIT05fRExMX05BTUUgIi4iICNuYW1l ICJcXFwiLERBVEEgXCIiKTsKKysjZW5kaWYKKyAKKyBFWFBPUlRfRlVOQyhfUHlfQnVpbGRWYWx1 ZV9TaXplVCkKKyBFWFBPUlRfRlVOQyhfUHlfQ2hlY2tSZWN1cnNpdmVDYWxsKQoKZGlmZiAtLWdp dCBhLzAwNzItY29uZmlndXJlLWRlZmluZS1fREVCVUctZm9yLWEtZGVidWctYnVpbGQucGF0Y2gg Yi8wMDcyLWNvbmZpZ3VyZS1kZWZpbmUtX0RFQlVHLWZvci1hLWRlYnVnLWJ1aWxkLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZjNkMWIKLS0tIC9kZXYvbnVsbAor KysgYi8wMDcyLWNvbmZpZ3VyZS1kZWZpbmUtX0RFQlVHLWZvci1hLWRlYnVnLWJ1aWxkLnBhdGNo CkBAIC0wLDAgKzEsNDQgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x NC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRo b24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjQ4Ljk0NTE1ODEzNSArMDIw MAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjUw Ljk4NTI5NTA4NSArMDIwMAorQEAgLTI0MTQsNiArMjQxNCw3IEBAIF9SRVNUT1JFX1ZBUihbQ0ZM QUdTXSkKKyBQWURFQlVHX0NGTEFHUz0iLU8wIgorIEFTX1ZBUl9JRihbYWNfY3ZfY2Nfc3VwcG9y dHNfb2ddLCBbeWVzXSwKKyAgICAgICAgICAgW1BZREVCVUdfQ0ZMQUdTPSItT2ciXSkKKytQWURF QlVHX0NGTEFHUz0iLURfREVCVUcgJFBZREVCVUdfQ0ZMQUdTIgorIAorICMgZ2gtMTIwNjg4OiBX QVNJIHVzZXMgLU8zIGluIGRlYnVnIG1vZGUgdG8gc3VwcG9ydCBtb3JlIHJlY3Vyc2l2ZSBjYWxs cworIGlmIHRlc3QgIiRhY19zeXNfc3lzdGVtIiA9ICJXQVNJIjsgdGhlbgorZGlmZiAtcnVwTiAt LW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9fd2luYXBpLmMgUHl0aG9uLTMu MTQuNy1uZXcvTW9kdWxlcy9fd2luYXBpLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvX3dp bmFwaS5jCTIwMjYtMDktMjIgMDk6MDY6MzUuMzM1Mjk2NjU2ICswMjAwCisrKysgUHl0aG9uLTMu MTQuNy1uZXcvTW9kdWxlcy9fd2luYXBpLmMJMjAyNi0wOS0yMiAwOTowNjo1MC45ODMzMzE0OTQg KzAyMDAKK0BAIC0xNDk3LDcgKzE0OTcsNyBAQCBzdGF0aWMgUHlPYmplY3QgKgorIF93aW5hcGlf RXhpdFByb2Nlc3NfaW1wbChQeU9iamVjdCAqbW9kdWxlLCBVSU5UIEV4aXRDb2RlKQorIC8qW2Ns aW5pYyBlbmQgZ2VuZXJhdGVkIGNvZGU6IG91dHB1dD1hMzg3ZGViNjUxMTc1MzAxIGlucHV0PTRm MDU0NjZhOTQwNmM1NThdKi8KKyB7CistICAgICNpZiBkZWZpbmVkKFB5X0RFQlVHKQorKyAgICAj aWYgZGVmaW5lZChQeV9ERUJVRykgJiYgZGVmaW5lZChfTVNDX1ZFUikKKyAjaWZkZWYgTVNfV0lO RE9XU19ERVNLVE9QCisgICAgICAgICBTZXRFcnJvck1vZGUoU0VNX0ZBSUxDUklUSUNBTEVSUk9S U3xTRU1fTk9BTElHTk1FTlRGQVVMVEVYQ0VQVHwKKyAgICAgICAgICAgICAgICAgICAgICBTRU1f Tk9HUEZBVUxURVJST1JCT1h8U0VNX05PT1BFTkZJTEVFUlJPUkJPWCk7CitkaWZmIC1ydXBOIC0t bm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QQy9jbGluaWMvbXN2Y3J0bW9kdWxlLmMuaCBQ eXRob24tMy4xNC43LW5ldy9QQy9jbGluaWMvbXN2Y3J0bW9kdWxlLmMuaAorLS0tIFB5dGhvbi0z LjE0LjcvUEMvY2xpbmljL21zdmNydG1vZHVsZS5jLmgJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAw MDAwMDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9QQy9jbGluaWMvbXN2Y3J0bW9kdWxl LmMuaAkyMDI2LTA5LTIyIDA5OjA2OjUwLjk4NDcxMzczNyArMDIwMAorQEAgLTUxNyw3ICs1MTcs NyBAQCBleGl0OgorIAorICNlbmRpZiAvKiBkZWZpbmVkKE1TX1dJTkRPV1NfREVTS1RPUCkgKi8K KyAKKy0jaWYgZGVmaW5lZChfREVCVUcpCisrI2lmIGRlZmluZWQoX0RFQlVHKSAmJiBkZWZpbmVk KF9NU0NfVkVSKQorIAorIFB5RG9jX1NUUlZBUihtc3ZjcnRfQ3J0U2V0UmVwb3J0RmlsZV9fZG9j X18sCisgIkNydFNldFJlcG9ydEZpbGUoJG1vZHVsZSwgdHlwZSwgZmlsZSwgLylcbiIKK0BAIC01 NjQsNyArNTY0LDcgQEAgZXhpdDoKKyAKKyAjZW5kaWYgLyogZGVmaW5lZChfREVCVUcpICovCisg CistI2lmIGRlZmluZWQoX0RFQlVHKQorKyNpZiBkZWZpbmVkKF9ERUJVRykgJiYgZGVmaW5lZChf TVNDX1ZFUikKKyAKKyBQeURvY19TVFJWQVIobXN2Y3J0X0NydFNldFJlcG9ydE1vZGVfX2RvY19f LAorICJDcnRTZXRSZXBvcnRNb2RlKCRtb2R1bGUsIHR5cGUsIG1vZGUsIC8pXG4iCgpkaWZmIC0t Z2l0IGEvMDA3My1jb25maWd1cmUtZml4LW11bHRpcHJvY2Vzc2luZy1tb2R1bGUucGF0Y2ggYi8w MDczLWNvbmZpZ3VyZS1maXgtbXVsdGlwcm9jZXNzaW5nLW1vZHVsZS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2M5N2ZlCi0tLSAvZGV2L251bGwKKysrIGIvMDA3 My1jb25maWd1cmUtZml4LW11bHRpcHJvY2Vzc2luZy1tb2R1bGUucGF0Y2gKQEAgLTAsMCArMSwy NiBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJl LmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29u ZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTEuMjY5MDA0NjY4ICswMjAwCisrKysgUHl0aG9u LTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTEuMjc0MzExMTk3ICsw MjAwCitAQCAtNDYxNyw2ICs0NjE3LDEzIEBAIEFTX0NBU0UoWyRNQUNIREVQXSwKKyAgIFtTT0NL RVRfTElCUz0iIl0KKyApCisgCisrZG5sIE9uIE1JTkdXLCB5b3UgbmVlZCB0byBsaW5rIGFnYWlu dCB3czJfMzIgZm9yIF9tdWx0aXByb2Nlc3NpbmcKKytBU19DQVNFKFskTUFDSERFUF0sCisrICBb d2luMzJdLCBbTVVMVElQUk9DRVNTSU5HX0xJQlM9Ii1sd3MyXzMyIl0sCisrICBbTVVMVElQUk9D RVNTSU5HX0xJQlM9IiJdCisrKQorKworKworIGRubCBkZXRlY3Qgc3FsaXRlMyBmcm9tIEVtc2Ny aXB0ZW4gZW1wb3J0CisgUFlfQ0hFQ0tfRU1TQ1JJUFRFTl9QT1JUKFtMSUJTUUxJVEUzXSwgWy1z VVNFX1NRTElURTNdKQorIAorQEAgLTg1MTUsNyArODUyMiw3IEBAIFBZX1NURExJQl9NT0RfU0lN UExFKFtfem9uZWluZm9dKQorIGRubCBtdWx0aXByb2Nlc3NpbmcgbW9kdWxlcworIFBZX1NURExJ Ql9NT0QoW19tdWx0aXByb2Nlc3NpbmddLAorICAgW10sIFt0ZXN0ICIkYWNfY3ZfZnVuY19zZW1f dW5saW5rIiA9ICJ5ZXMiIC1vICIkTUFDSERFUCIgPSAid2luMzIiXSwKKy0gIFstSVwkKHNyY2Rp cikvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nXSkKKysgIFstSVwkKHNyY2RpcikvTW9kdWxlcy9f bXVsdGlwcm9jZXNzaW5nXSwgWyRNVUxUSVBST0NFU1NJTkdfTElCU10pCisgUFlfU1RETElCX01P RChbX3Bvc2l4c2htZW1dLAorICAgW10sIFt0ZXN0ICIkaGF2ZV9wb3NpeF9zaG1lbSIgPSAieWVz Il0sCisgICBbJFBPU0lYU0hNRU1fQ0ZMQUdTXSwgWyRQT1NJWFNITUVNX0xJQlNdKQoKZGlmZiAt LWdpdCBhLzAwNzQtYnVpbGQtYWRkLU1JTkdXLXN1cHBvcnQtZm9yLXNlbGVjdG1vZHVsZS5wYXRj aCBiLzAwNzQtYnVpbGQtYWRkLU1JTkdXLXN1cHBvcnQtZm9yLXNlbGVjdG1vZHVsZS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmRkOWQ2Ci0tLSAvZGV2L251bGwK KysrIGIvMDA3NC1idWlsZC1hZGQtTUlOR1ctc3VwcG9ydC1mb3Itc2VsZWN0bW9kdWxlLnBhdGNo CkBAIC0wLDAgKzEsNDggQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x NC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRo b24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjUxLjU2NDI5MDk3MCArMDIw MAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjUx LjU3MTA0MDc5MyArMDIwMAorQEAgLTQ2MjMsNiArNDYyMywxMSBAQCBBU19DQVNFKFskTUFDSERF UF0sCisgICBbTVVMVElQUk9DRVNTSU5HX0xJQlM9IiJdCisgKQorIAorK2RubCBPbiBNSU5HVywg eW91IG5lZWQgdG8gbGluayBhZ2FpbnQgd3MyXzMyIGZvciBzZWxlY3Rtb2R1bGUKKytBU19DQVNF KFskTUFDSERFUF0sCisrICBbd2luMzJdLCBbU0VMRUNUTU9EVUxFX0xJQlM9Ii1sd3MyXzMyIl0s CisrICBbU0VMRUNUTU9EVUxFX0xJQlM9IiJdCisrKQorIAorIGRubCBkZXRlY3Qgc3FsaXRlMyBm cm9tIEVtc2NyaXB0ZW4gZW1wb3J0CisgUFlfQ0hFQ0tfRU1TQ1JJUFRFTl9QT1JUKFtMSUJTUUxJ VEUzXSwgWy1zVVNFX1NRTElURTNdKQorQEAgLTg1MTAsNyArODUxNSw3IEBAIFBZX1NURExJQl9N T0RfU0lNUExFKFtfcGlja2xlXSkKKyBQWV9TVERMSUJfTU9EX1NJTVBMRShbX3F1ZXVlXSkKKyBQ WV9TVERMSUJfTU9EX1NJTVBMRShbX3JhbmRvbV0pCisgUFlfU1RETElCX01PRF9TSU1QTEUoW19y ZW1vdGVfZGVidWdnaW5nXSkKKy1QWV9TVERMSUJfTU9EX1NJTVBMRShbc2VsZWN0XSkKKytQWV9T VERMSUJfTU9EX1NJTVBMRShbc2VsZWN0XSwgW10sIFskU0VMRUNUTU9EVUxFX0xJQlNdKQorIFBZ X1NURExJQl9NT0RfU0lNUExFKFtfc3RydWN0XSkKKyBQWV9TVERMSUJfTU9EX1NJTVBMRShbX3R5 cGVzXSkKKyBQWV9TVERMSUJfTU9EX1NJTVBMRShbX3R5cGluZ10pCitkaWZmIC1ydXBOIC0tbm8t ZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL3NlbGVjdG1vZHVsZS5jIFB5dGhvbi0z LjE0LjctbmV3L01vZHVsZXMvc2VsZWN0bW9kdWxlLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVs ZXMvc2VsZWN0bW9kdWxlLmMJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysr KyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL3NlbGVjdG1vZHVsZS5jCTIwMjYtMDktMjIgMDk6 MDY6NTEuNTY5MjkwNjIyICswMjAwCitAQCAtMTY3LDkgKzE2Nyw5IEBAIHNlcTJzZXQoUHlPYmpl Y3QgKnNlcSwgZmRfc2V0ICpzZXQsIHB5bGkKKyAgICAgICAgIHYgPSBQeU9iamVjdF9Bc0ZpbGVE ZXNjcmlwdG9yKCBvICk7CisgICAgICAgICBpZiAodiA9PSAtMSkgZ290byBmaW5hbGx5OworIAor LSNpZiBkZWZpbmVkKF9NU0NfVkVSKQorKyNpZiBkZWZpbmVkKE1TX1dJTjMyKQorICAgICAgICAg bWF4ID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdCB1c2VkIGZvciBXaW4z MiAqLworLSNlbHNlICAvKiAhX01TQ19WRVIgKi8KKysjZWxzZSAgLyogIU1TX1dJTjMyICovCisg ICAgICAgICBpZiAoIV9QeUlzU2VsZWN0YWJsZV9mZCh2KSkgeworICAgICAgICAgICAgIFB5RXJy X1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJm aWxlZGVzY3JpcHRvciBvdXQgb2YgcmFuZ2UgaW4gc2VsZWN0KCkiKTsKK0BAIC0xNzcsNyArMTc3 LDcgQEAgc2VxMnNldChQeU9iamVjdCAqc2VxLCBmZF9zZXQgKnNldCwgcHlsaQorICAgICAgICAg fQorICAgICAgICAgaWYgKHYgPiBtYXgpCisgICAgICAgICAgICAgbWF4ID0gdjsKKy0jZW5kaWYg LyogX01TQ19WRVIgKi8KKysjZW5kaWYgLyogTVNfV0lOMzIgKi8KKyAgICAgICAgIEZEX1NFVCh2 LCBzZXQpOworIAorICAgICAgICAgLyogYWRkIG9iamVjdCBhbmQgaXRzIGZpbGUgZGVzY3JpcHRv ciB0byB0aGUgbGlzdCAqLwoKZGlmZiAtLWdpdCBhLzAwNzUtY29uZmlndXJlLWRpc2FibGUtdmFy aW91cy1tb2R1bGVzLW9uLU1JTkdXLnBhdGNoIGIvMDA3NS1jb25maWd1cmUtZGlzYWJsZS12YXJp b3VzLW1vZHVsZXMtb24tTUlOR1cucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uY2UwYzFiYwotLS0gL2Rldi9udWxsCisrKyBiLzAwNzUtY29uZmlndXJlLWRpc2FibGUt dmFyaW91cy1tb2R1bGVzLW9uLU1JTkdXLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2RpZmYgLXJ1 cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4x NC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2 LTA5LTIyIDA5OjA2OjUxLjg2MTE3MjUzMyArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2Nv bmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjUxLjg2NzI2OTgzNyArMDIwMAorQEAgLTgzNjMs NiArODM2MywyMCBAQCBBU19DQVNFKFskYWNfc3lzX3N5c3RlbV0sCisgICAgICkKKyAgIF0sCisg ICBbQ1lHV0lOKl0sIFtQWV9TVERMSUJfTU9EX1NFVF9OQShbX3NjcHJveHldKV0sCisrICBbTUlO R1cqXSwgWworKyAgICBQWV9TVERMSUJfTU9EX1NFVF9OQSgKKysgICAgICBbcmVhZGxpbmVdLAor KyAgICAgIFtfcG9zaXhzaG1lbV0sCisrICAgICAgW19wb3NpeHN1YnByb2Nlc3NdLAorKyAgICAg IFtmY250bF0sCisrICAgICAgW2dycF0sCisrICAgICAgW3B3ZF0sCisrICAgICAgW3Jlc291cmNl XSwKKysgICAgICBbc3lzbG9nXSwKKysgICAgICBbdGVybWlvc10sCisrICAgICAgW19zY3Byb3h5 XSwKKysgICAgKQorKyAgXSwKKyAgIFtRTlgqXSwgW1BZX1NURExJQl9NT0RfU0VUX05BKFtfc2Nw cm94eV0pXSwKKyAgIFtGcmVlQlNEKl0sIFtQWV9TVERMSUJfTU9EX1NFVF9OQShbX3NjcHJveHld KV0sCisgICBbRW1zY3JpcHRlbl0sIFsKCmRpZmYgLS1naXQgYS8wMDc2LWNvbmZpZ3VyZS1BZGQt bGlicmFyaWVzLXRvLWZpeC1jdHlwZXMtb24tTUlOR1cucGF0Y2ggYi8wMDc2LWNvbmZpZ3VyZS1B ZGQtbGlicmFyaWVzLXRvLWZpeC1jdHlwZXMtb24tTUlOR1cucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNjg4NjMxMwotLS0gL2Rldi9udWxsCisrKyBiLzAwNzYtY29u ZmlndXJlLUFkZC1saWJyYXJpZXMtdG8tZml4LWN0eXBlcy1vbi1NSU5HVy5wYXRjaApAQCAtMCww ICsxLDM0IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9jb25m aWd1cmUuYWMgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCistLS0gUHl0aG9uLTMuMTQu Ny9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo1Mi4xNTE0MTM4NzAgKzAyMDAKKysrKyBQ eXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMJMjAyNi0wOS0yMiAwOTowNjo1Mi4xNTYyNDk2 ODAgKzAyMDAKK0BAIC00NjI5LDYgKzQ2MjksMTIgQEAgQVNfQ0FTRShbJE1BQ0hERVBdLAorICAg W1NFTEVDVE1PRFVMRV9MSUJTPSIiXQorICkKKyAKKytkbmwgT24gTUlOR1csIHlvdSBuZWVkIHRv IGxpbmsgYWdhaW50IG9sZTMyLCBvbGVhdXQzMiBhbmQgdXVpZCBmb3IgY3R5cGVzCisrQVNfQ0FT RShbJE1BQ0hERVBdLAorKyAgW3dpbjMyXSwgW0NUWVBFU19MSUJTPSItbG9sZTMyIC1sb2xlYXV0 MzIgLWx1dWlkIl0sCisrICBbQ1RZUEVTX0xJQlM9IiJdCisrKQorKworIGRubCBkZXRlY3Qgc3Fs aXRlMyBmcm9tIEVtc2NyaXB0ZW4gZW1wb3J0CisgUFlfQ0hFQ0tfRU1TQ1JJUFRFTl9QT1JUKFtM SUJTUUxJVEUzXSwgWy1zVVNFX1NRTElURTNdKQorIAorQEAgLTg3NTQsNyArODc2MCw3IEBAIFBZ X0hBQ0xfQ1JFQVRFX01PRFVMRShbSE1BQ10sIFtfaG1hY10sIFsKKyAKKyBQWV9TVERMSUJfTU9E KFtfY3R5cGVzXSwKKyAgIFtdLCBbdGVzdCAiJGhhdmVfbGliZmZpIiA9IHllc10sCistICBbJE5P X1NUUklDVF9PVkVSRkxPV19DRkxBR1MgJExJQkZGSV9DRkxBR1NdLCBbJExJQkZGSV9MSUJTXSkK KysgIFskTk9fU1RSSUNUX09WRVJGTE9XX0NGTEFHUyAkTElCRkZJX0NGTEFHU10sIFskTElCRkZJ X0xJQlMgJENUWVBFU19MSUJTXSkKKyBQWV9TVERMSUJfTU9EKFtfY3Vyc2VzXSwKKyAgIFtdLCBb dGVzdCAiJGhhdmVfY3Vyc2VzIiA9ICJ5ZXMiXSwKKyAgIFskQ1VSU0VTX0NGTEFHU10sIFskQ1VS U0VTX0xJQlNdCitAQCAtODgzMyw3ICs4ODM5LDcgQEAgZG5sIENoZWNrIGhhdmVfbGliZmZpIHNv IF9jdHlwZXNfdGVzdCBpcworIGRubCBfY3R5cGVzX3Rlc3QgZG9lc24ndCB1c2UgbGliZmZpIGRp cmVjdGx5LgorIFBZX1NURExJQl9NT0QoW19jdHlwZXNfdGVzdF0sCisgICBbdGVzdCAiJFRFU1Rf TU9EVUxFUyIgPSB5ZXNdLCBbdGVzdCAiJGhhdmVfbGliZmZpIiA9IHllcyAtYSAiJGhhdmVfZHlu YW1pY19sb2FkaW5nIiA9IHllc10sCistICBbXSwgWyRMSUJNXSkKKysgIFtdLCBbJExJQk0gJENU WVBFU19MSUJTXSkKKyAKKyBkbmwgTGltaXRlZCBBUEkgdGVtcGxhdGUgbW9kdWxlcy4KKyBkbmwg RW1zY3JpcHRlbiBkb2VzIG5vdCBzdXBwb3J0IHNoYXJlZCBsaWJyYXJpZXMgeWV0LgoKZGlmZiAt LWdpdCBhLzAwNzctY29uZmlndXJlLUVuYWJsZS1fdXVpZC1vbi1NSU5HVy5wYXRjaCBiLzAwNzct Y29uZmlndXJlLUVuYWJsZS1fdXVpZC1vbi1NSU5HVy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zM2ZmZjVjCi0tLSAvZGV2L251bGwKKysrIGIvMDA3Ny1jb25maWd1 cmUtRW5hYmxlLV91dWlkLW9uLU1JTkdXLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKK2RpZmYgLXJ1 cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4x NC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRob24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2 LTA5LTIyIDA5OjA2OjUyLjQ0MjIyOTczMSArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2Nv bmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjUyLjQ0NzIyOTM4MiArMDIwMAorQEAgLTQ2MzUs NiArNDYzNSwxMiBAQCBBU19DQVNFKFskTUFDSERFUF0sCisgICBbQ1RZUEVTX0xJQlM9IiJdCisg KQorIAorK2RubCBPbiBNSU5HVywgeW91IG5lZWQgdG8gbGluayBhZ2FpbnQgcnBjcnQ0IGZvciBf dXVpZAorK0FTX0NBU0UoWyRNQUNIREVQXSwKKysgIFt3aW4zMl0sIFtVVUlEX0xJQlM9Ii1scnBj cnQ0Il0sCisrICBbVVVJRF9MSUJTPSIiXQorKykKKysKKyBkbmwgZGV0ZWN0IHNxbGl0ZTMgZnJv bSBFbXNjcmlwdGVuIGVtcG9ydAorIFBZX0NIRUNLX0VNU0NSSVBURU5fUE9SVChbTElCU1FMSVRF M10sIFstc1VTRV9TUUxJVEUzXSkKKyAKK0BAIC04Nzg5LDggKzg3OTUsOCBAQCBQWV9TVERMSUJf TU9EKFtfdGtpbnRlcl0sCisgICBbXSwgW3Rlc3QgIiRoYXZlX3RjbHRrIiA9ICJ5ZXMiXSwKKyAg IFskVENMVEtfQ0ZMQUdTXSwgWyRUQ0xUS19MSUJTXSkKKyBQWV9TVERMSUJfTU9EKFtfdXVpZF0s CistICBbXSwgW3Rlc3QgIiRoYXZlX3V1aWQiID0gInllcyJdLAorLSAgWyRMSUJVVUlEX0NGTEFH U10sIFskTElCVVVJRF9MSUJTXSkKKysgIFtdLCBbdGVzdCAiJGhhdmVfdXVpZCIgPSAieWVzIiAt byAiJE1BQ0hERVAiID0gIndpbjMyIl0sCisrICBbJExJQlVVSURfQ0ZMQUdTXSwgWyRMSUJVVUlE X0xJQlMgJFVVSURfTElCU10pCisgCisgZG5sIGNvbXByZXNzaW9uIGxpYnMKKyBQWV9TVERMSUJf TU9EKFt6bGliXSwgW10sIFt0ZXN0ICIkaGF2ZV96bGliIiA9IHllc10sCgpkaWZmIC0tZ2l0IGEv MDA3OC1jb25maWd1cmUtbWFrZS1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlcy1hLXdhcm5pbmcu cGF0Y2ggYi8wMDc4LWNvbmZpZ3VyZS1tYWtlLWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzLWEt d2FybmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTQ5ZWUy Ci0tLSAvZGV2L251bGwKKysrIGIvMDA3OC1jb25maWd1cmUtbWFrZS1pbmNvbXBhdGlibGUtcG9p bnRlci10eXBlcy1hLXdhcm5pbmcucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorZGlmZiAtcnVwTiAt LW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjIFB5dGhvbi0zLjE0Ljct bmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDkt MjIgMDk6MDY6NTIuNzM3MjA5MTU1ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmln dXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTIuNzQxMjA4ODc2ICswMjAwCitAQCAtMjY1Myw2ICsy NjUzLDE0IEBAIGZpCisgQVNfVkFSX0lGKFthY19jdl9nY2NfY29tcGF0XSwgW3llc10sIFsKKyAg ICAgQ0ZMQUdTX05PRElTVD0iJENGTEFHU19OT0RJU1QgLXN0ZD1jMTEiCisgCisrICAgICMgR0ND IDE0IGFuZCBsYXRlciBlcnJvciBvdXQgd2l0aCBpbmNvbXBhdGlibGUtcG9pbnRlci10eXBlcwor KyAgICAjIHRoaXMgb25seSBvY2N1ZXMgb24gbWluZ3cKKysgICAgY2FzZSAkaG9zdCBpbgorKyAg ICAqLSotbWluZ3cqKQorKyAgICAgICAgQ0ZMQUdTX05PRElTVD0iJENGTEFHU19OT0RJU1QgLVdu by1lcnJvcj1pbmNvbXBhdGlibGUtcG9pbnRlci10eXBlcyIKKysgICAgICA7OworKyAgICBlc2Fj CisrCisgICAgIFBZX0NIRUNLX0NDX1dBUk5JTkcoW2VuYWJsZV0sIFtleHRyYV0sIFtpZiB3ZSBj YW4gYWRkIC1XZXh0cmFdKQorICAgICBBU19WQVJfSUYoW2FjX2N2X2VuYWJsZV9leHRyYV93YXJu aW5nXSwgW3llc10sCisgICAgICAgICAgICAgICBbQ0ZMQUdTX05PRElTVD0iJENGTEFHU19OT0RJ U1QgLVdleHRyYSJdKQoKZGlmZiAtLWdpdCBhLzAwNzktdGVzdHMtdGVzdF9tYWtlZmlsZS1ub3Jt YWxpemUtcGF0aC5wYXRjaCBiLzAwNzktdGVzdHMtdGVzdF9tYWtlZmlsZS1ub3JtYWxpemUtcGF0 aC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmI4NWIxCi0tLSAv ZGV2L251bGwKKysrIGIvMDA3OS10ZXN0cy10ZXN0X21ha2VmaWxlLW5vcm1hbGl6ZS1wYXRoLnBh dGNoCkBAIC0wLDAgKzEsMTggQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24t My4xNC43L0xpYi90ZXN0L3Rlc3RfdG9vbHMvdGVzdF9tYWtlZmlsZS5weSBQeXRob24tMy4xNC43 LW5ldy9MaWIvdGVzdC90ZXN0X3Rvb2xzL3Rlc3RfbWFrZWZpbGUucHkKKy0tLSBQeXRob24tMy4x NC43L0xpYi90ZXN0L3Rlc3RfdG9vbHMvdGVzdF9tYWtlZmlsZS5weQkyMDI2LTA4LTA1IDEyOjI5 OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0xpYi90ZXN0L3Rlc3Rf dG9vbHMvdGVzdF9tYWtlZmlsZS5weQkyMDI2LTA5LTIyIDA5OjA2OjUzLjAzMjYzMjEyOSArMDIw MAorQEAgLTMzLDEyICszMywxMyBAQCBjbGFzcyBUZXN0TWFrZWZpbGUodW5pdHRlc3QuVGVzdENh c2UpOgorICAgICAgICAgICAgICAgICAgICAgaWYgJ1x0JyBub3QgaW4gbGluZToKKyAgICAgICAg ICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVu ZChsaW5lLnJlcGxhY2UoJ1xcJywgJycpLnN0cmlwKCkpCisrICAgICAgICByZXN1bHQgPSBbb3Mu cGF0aC5ub3JtcGF0aChkKSBmb3IgZCBpbiByZXN1bHQgaWYgZF0KKyAgICAgICAgIHJldHVybiBy ZXN1bHQKKyAKKyAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5URVNUX01PRFVMRVNf RU5BQkxFRCwgInJlcXVpcmVzIHRlc3QgbW9kdWxlcyIpCisgICAgIGRlZiB0ZXN0X21ha2VmaWxl X3Rlc3RfZm9sZGVycyhzZWxmKToKKyAgICAgICAgIHRlc3RfZGlycyA9IHNlbGYubGlzdF90ZXN0 X2RpcnMoKQorLSAgICAgICAgaWRsZV90ZXN0ID0gJ2lkbGVsaWIvaWRsZV90ZXN0JworKyAgICAg ICAgaWRsZV90ZXN0ID0gb3MucGF0aC5qb2luKCdpZGxlbGliJywgJ2lkbGVfdGVzdCcpCisgICAg ICAgICBzZWxmLmFzc2VydEluKGlkbGVfdGVzdCwgdGVzdF9kaXJzKQorIAorICAgICAgICAgdXNl ZCA9IHNldChbaWRsZV90ZXN0XSkKCmRpZmYgLS1naXQgYS8wMDgwLUZpeC1pbmNsdWRlLW5hbWlu Zy1mb3ItY3Jvc3MtYnVpbGQucGF0Y2ggYi8wMDgwLUZpeC1pbmNsdWRlLW5hbWluZy1mb3ItY3Jv c3MtYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVkNmMz ZAotLS0gL2Rldi9udWxsCisrKyBiLzAwODAtRml4LWluY2x1ZGUtbmFtaW5nLWZvci1jcm9zcy1i dWlsZC5wYXRjaApAQCAtMCwwICsxLDYzIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2Ug UHl0aG9uLTMuMTQuNy9Nb2R1bGVzL19jdHlwZXMvY3R5cGVzLmggUHl0aG9uLTMuMTQuNy1uZXcv TW9kdWxlcy9fY3R5cGVzL2N0eXBlcy5oCistLS0gUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL19jdHlw ZXMvY3R5cGVzLmgJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRo b24tMy4xNC43LW5ldy9Nb2R1bGVzL19jdHlwZXMvY3R5cGVzLmgJMjAyNi0wOS0yMiAwOTowNjo1 My4zMTk3MDU0NzkgKzAyMDAKK0BAIC01Niw3ICs1Niw3IEBACisgI2VuZGlmCisgCisgI2lmZGVm IE1TX1dJTjMyCistI2luY2x1ZGUgPFVua253bi5oPiAvLyBmb3IgSVVua25vd24gaW50ZXJmYWNl CisrI2luY2x1ZGUgPHVua253bi5oPiAvLyBmb3IgSVVua25vd24gaW50ZXJmYWNlCisgI2VuZGlm CisgCisgdHlwZWRlZiBzdHJ1Y3QgeworZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhv bi0zLjE0LjcvTW9kdWxlcy9wb3NpeG1vZHVsZS5jIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMv cG9zaXhtb2R1bGUuYworLS0tIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9wb3NpeG1vZHVsZS5jCTIw MjYtMDktMjIgMDk6MDY6MzguODM1MTc4Nzk4ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcv TW9kdWxlcy9wb3NpeG1vZHVsZS5jCTIwMjYtMDktMjIgMDk6MDY6NTMuMzIxMTY4NDIxICswMjAw CitAQCAtOTQ5OSw3ICs5NDk5LDcgQEAgb3Nfc2V0cGdycF9pbXBsKFB5T2JqZWN0ICptb2R1bGUp CisgCisgI2lmZGVmIE1TX1dJTkRPV1MKKyAjaW5jbHVkZSA8d2ludGVybmwuaD4KKy0jaW5jbHVk ZSA8UHJvY2Vzc1NuYXBzaG90Lmg+CisrI2luY2x1ZGUgPHByb2Nlc3NzbmFwc2hvdC5oPgorIAor IC8vIFRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbiBpbiB3aW50ZXJubC5oIG1heSBiZSBpbmNvbXBs ZXRlLgorIC8vIFRoaXMgc3RydWN0dXJlIGlzIHRoZSBmdWxsIHZlcnNpb24gZnJvbSB0aGUgTVNE TiBkb2N1bWVudGF0aW9uLgorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0 LjcvTW9kdWxlcy9zb2NrZXRtb2R1bGUuYyBQeXRob24tMy4xNC43LW5ldy9Nb2R1bGVzL3NvY2tl dG1vZHVsZS5jCistLS0gUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL3NvY2tldG1vZHVsZS5jCTIwMjYt MDktMjIgMDk6MDY6MzUuMDM1MDc1NjEyICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTW9k dWxlcy9zb2NrZXRtb2R1bGUuYwkyMDI2LTA5LTIyIDA5OjA2OjUzLjMyMjE5NzQ3MiArMDIwMAor QEAgLTI4Niw3ICsyODYsNyBAQCBzaHV0ZG93bihob3cpIC0tIHNodXQgZG93biB0cmFmZmljIGlu IG9uCisgIyBlbmRpZgorIAorIC8qIEhlbHBlcnMgbmVlZGVkIGZvciBBRl9IWVBFUlYgKi8KKy0j IGluY2x1ZGUgPFJwYy5oPgorKyMgaW5jbHVkZSA8cnBjLmg+CisgCisgLyogTWFjcm9zIGJhc2Vk IG9uIHRoZSBJUFBST1RPIGVudW0sIHNlZTogaHR0cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUy OTUxNSAqLworICNpZmRlZiBfTVNDX1ZFUgorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5 dGhvbi0zLjE0LjcvUEMvX3Rlc3Rjb25zb2xlLmMgUHl0aG9uLTMuMTQuNy1uZXcvUEMvX3Rlc3Rj b25zb2xlLmMKKy0tLSBQeXRob24tMy4xNC43L1BDL190ZXN0Y29uc29sZS5jCTIwMjYtMDgtMDUg MTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvUEMvX3Rlc3Rj b25zb2xlLmMJMjAyNi0wOS0yMiAwOTowNjo1My4zMjI4MjI2ODQgKzAyMDAKK0BAIC0xNDAsNyAr MTQwLDcgQEAgX3Rlc3Rjb25zb2xlX3JlYWRfb3V0cHV0X2ltcGwoUHlPYmplY3QgKgorIH0KKyAK KyAKKy0jaW5jbHVkZSAiY2xpbmljXF90ZXN0Y29uc29sZS5jLmgiCisrI2luY2x1ZGUgImNsaW5p Yy9fdGVzdGNvbnNvbGUuYy5oIgorIAorIFB5TWV0aG9kRGVmIHRlc3Rjb25zb2xlX21ldGhvZHNb XSA9IHsKKyAgICAgX1RFU1RDT05TT0xFX1dSSVRFX0lOUFVUX01FVEhPRERFRgorZGlmZiAtcnVw TiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvUEMvX3dtaW1vZHVsZS5jcHAgUHl0aG9u LTMuMTQuNy1uZXcvUEMvX3dtaW1vZHVsZS5jcHAKKy0tLSBQeXRob24tMy4xNC43L1BDL193bWlt b2R1bGUuY3BwCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9u LTMuMTQuNy1uZXcvUEMvX3dtaW1vZHVsZS5jcHAJMjAyNi0wOS0yMiAwOTowNjo1My4zMjI5OTk2 ODIgKzAyMDAKK0BAIC0xNCw5ICsxNCw5IEBACisgI2VuZGlmCisgCisgI2RlZmluZSBfV0lOMzJf RENPTQorLSNpbmNsdWRlIDxXaW5kb3dzLmg+CisrI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyAjaW5j bHVkZSA8Y29tZGVmLmg+CistI2luY2x1ZGUgPFdiZW1pZGwuaD4KKysjaW5jbHVkZSA8d2JlbWlk bC5oPgorICNpbmNsdWRlIDxwcm9wdmFydXRpbC5oPgorIAorICNpbmNsdWRlIDxQeXRob24uaD4K CmRpZmYgLS1naXQgYS8wMDgxLUZpeC1mb3JtYXQtd2FybmluZy5wYXRjaCBiLzAwODEtRml4LWZv cm1hdC13YXJuaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4 NzdjZTIKLS0tIC9kZXYvbnVsbAorKysgYi8wMDgxLUZpeC1mb3JtYXQtd2FybmluZy5wYXRjaApA QCAtMCwwICsxLDEyIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQu Ny9Nb2R1bGVzL19jdHlwZXMvX2N0eXBlcy5jIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvX2N0 eXBlcy9fY3R5cGVzLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvX2N0eXBlcy9fY3R5cGVz LmMJMjAyNi0wOS0yMiAwOTowNjozNi43Nzc5ODkyMzUgKzAyMDAKKysrKyBQeXRob24tMy4xNC43 LW5ldy9Nb2R1bGVzL19jdHlwZXMvX2N0eXBlcy5jCTIwMjYtMDktMjIgMDk6MDY6NTMuNjI2ODc3 NDY4ICswMjAwCitAQCAtNTM5MSw3ICs1MzkxLDcgQEAgUHlDQXJyYXlUeXBlX2Zyb21fY3R5cGUo Y3R5cGVzX3N0YXRlICpzdAorICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgIH0KKyAjaWZkZWYg TVNfV0lONjQKKy0gICAgc3ByaW50ZihuYW1lLCAiJS4yMDBzX0FycmF5XyVJZCIsCisrICAgIHNw cmludGYobmFtZSwgIiUuMjAwc19BcnJheV8lbGxkIiwKKyAgICAgICAgICgoUHlUeXBlT2JqZWN0 ICopaXRlbXR5cGUpLT50cF9uYW1lLCBsZW5ndGgpOworICNlbHNlCisgICAgIHNwcmludGYobmFt ZSwgIiUuMjAwc19BcnJheV8lbGQiLAoKZGlmZiAtLWdpdCBhLzAwODItRml4LXByYWdtYS13YXJu aW5ncy5wYXRjaCBiLzAwODItRml4LXByYWdtYS13YXJuaW5ncy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzE2YTE0Ci0tLSAvZGV2L251bGwKKysrIGIvMDA4Mi1G aXgtcHJhZ21hLXdhcm5pbmdzLnBhdGNoCkBAIC0wLDAgKzEsNDYgQEAKK2RpZmYgLXJ1cE4gLS1u by1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvX3dpbmFwaS5jIFB5dGhvbi0zLjE0 LjctbmV3L01vZHVsZXMvX3dpbmFwaS5jCistLS0gUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL193aW5h cGkuYwkyMDI2LTA5LTIyIDA5OjA2OjUxLjI3MDAyMTM1MCArMDIwMAorKysrIFB5dGhvbi0zLjE0 LjctbmV3L01vZHVsZXMvX3dpbmFwaS5jCTIwMjYtMDktMjIgMDk6MDY6NTMuOTQxMTI1MTc2ICsw MjAwCitAQCAtMTcyMiwxNCArMTcyMiwxOCBAQCBfd2luYXBpX0dldFZlcnNpb25faW1wbChQeU9i amVjdCAqbW9kdWxlCisgLyogRGlzYWJsZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBhYm91dCBHZXRW ZXJzaW9uRXggYXMgdGhlIHJlc3VsdCBpcworICAgIGJlaW5nIHBhc3NlZCBzdHJhaWdodCB0aHJv dWdoIHRvIHRoZSBjYWxsZXIsIHdobyBpcyByZXNwb25zaWJsZSBmb3IKKyAgICB1c2luZyBpdCBj b3JyZWN0bHkuICovCisrI2lmZGVmIF9NU0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisg I3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDk5NikKKysjZW5kaWYKKyAKKyB7CisgICAgIHJldHVy biBHZXRWZXJzaW9uKCk7CisgfQorIAorKyNpZmRlZiBfTVNDX1ZFUgorICNwcmFnbWEgd2Fybmlu Zyhwb3ApCisrI2VuZGlmCisgCisgLypbY2xpbmljIGlucHV0XQorIF93aW5hcGkuTWFwVmlld09m RmlsZSAtPiBMUFZPSUQKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43 L1B5dGhvbi9zeXNtb2R1bGUuYyBQeXRob24tMy4xNC43LW5ldy9QeXRob24vc3lzbW9kdWxlLmMK Ky0tLSBQeXRob24tMy4xNC43L1B5dGhvbi9zeXNtb2R1bGUuYwkyMDI2LTA5LTIyIDA5OjA2OjQw LjA1NjA5MzY0OSArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L1B5dGhvbi9zeXNtb2R1bGUu YwkyMDI2LTA5LTIyIDA5OjA2OjUzLjk0MTgyMTc2MSArMDIwMAorQEAgLTE3MjIsOCArMTcyMiwx MCBAQCBfc3lzX2dldHdpbmRvd3N2ZXJzaW9uX2Zyb21fa2VybmVsMzIodm9pCisgLyogRGlzYWJs ZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBhYm91dCBHZXRWZXJzaW9uRXggYXMgdGhlIHJlc3VsdCBp cworICAgIGJlaW5nIHBhc3NlZCBzdHJhaWdodCB0aHJvdWdoIHRvIHRoZSBjYWxsZXIsIHdobyBp cyByZXNwb25zaWJsZSBmb3IKKyAgICB1c2luZyBpdCBjb3JyZWN0bHkuICovCisrI2lmZGVmIF9N U0NfVkVSCisgI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisgI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6 NDk5NikKKysjZW5kaWYKKyAKKyAvKltjbGluaWMgaW5wdXRdCisgc3lzLmdldHdpbmRvd3N2ZXJz aW9uCitAQCAtMTgxNyw3ICsxODE5LDkgQEAgZXJyb3I6CisgICAgIHJldHVybiBOVUxMOworIH0K KyAKKysjaWZkZWYgX01TQ19WRVIKKyAjcHJhZ21hIHdhcm5pbmcocG9wKQorKyNlbmRpZgorIAor IC8qW2NsaW5pYyBpbnB1dF0KKyBzeXMuX2VuYWJsZWxlZ2FjeXdpbmRvd3Nmc2VuY29kaW5nCgpk aWZmIC0tZ2l0IGEvMDA4My1tYXRoLXB5aGFzaC1NSU5HVy1zdXBwb3J0LnBhdGNoIGIvMDA4My1t YXRoLXB5aGFzaC1NSU5HVy1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjhlNTllYTYKLS0tIC9kZXYvbnVsbAorKysgYi8wMDgzLW1hdGgtcHloYXNoLU1J TkdXLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwzMyBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVm ZXJlbmNlIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9tYXRobW9kdWxlLmMgUHl0aG9uLTMuMTQuNy1u ZXcvTW9kdWxlcy9tYXRobW9kdWxlLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvbWF0aG1v ZHVsZS5jCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMu MTQuNy1uZXcvTW9kdWxlcy9tYXRobW9kdWxlLmMJMjAyNi0wOS0yMiAwOTowNjo1NC4yMzg4ODMx MzUgKzAyMDAKK0BAIC0yMTY2LDcgKzIxNjYsNyBAQCBtYXRoX2xkZXhwX2ltcGwoUHlPYmplY3Qg Km1vZHVsZSwgZG91YmxlCisgICAgIH0gZWxzZSB7CisgICAgICAgICBlcnJubyA9IDA7CisgICAg ICAgICByID0gbGRleHAoeCwgKGludClleHApOworLSNpZmRlZiBfTVNDX1ZFUgorKyNpZmRlZiBf V0lOMzIKKyAgICAgICAgIGlmIChEQkxfTUlOID4gciAmJiByID4gLURCTF9NSU4pIHsKKyAgICAg ICAgICAgICAvKiBEZW5vcm1hbCAob3IgemVybykgcmVzdWx0cyBjYW4gYmUgaW5jb3JyZWN0bHkg cm91bmRlZCBoZXJlIChyYXRoZXIsCisgICAgICAgICAgICAgICAgdHJ1bmNhdGVkKS4gIEZpeGVk IGluIG5ld2VyIHZlcnNpb25zIG9mIHRoZSBDIHJ1bnRpbWUsIGluY2x1ZGVkCitAQCAtMjQwNiw3 ICsyNDA2LDcgQEAgbWF0aF9mbW9kX2ltcGwoUHlPYmplY3QgKm1vZHVsZSwgZG91YmxlCisgICAg ICAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKHgpOworICAgICBlcnJubyA9IDA7CisgICAg IHIgPSBmbW9kKHgsIHkpOworLSNpZmRlZiBfTVNDX1ZFUgorKyNpZmRlZiBfV0lOMzIKKyAgICAg LyogV2luZG93cyAoZS5nLiBXaW5kb3dzIDEwIHdpdGggTVNDIHYuMTkxNikgbG9vc2Ugc2lnbgor ICAgICAgICBmb3IgemVybyByZXN1bHQuICBCdXQgQzk5KyBzYXlzOiAiaWYgeSBpcyBub256ZXJv LCB0aGUgcmVzdWx0CisgICAgICAgIGhhcyB0aGUgc2FtZSBzaWduIGFzIHgiLgorZGlmZiAtcnVw TiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvUHl0aG9uL3B5aGFzaC5jIFB5dGhvbi0z LjE0LjctbmV3L1B5dGhvbi9weWhhc2guYworLS0tIFB5dGhvbi0zLjE0LjcvUHl0aG9uL3B5aGFz aC5jCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQu Ny1uZXcvUHl0aG9uL3B5aGFzaC5jCTIwMjYtMDktMjIgMDk6MDY6NTQuMjM5MzgwMzI0ICswMjAw CitAQCAtMjE4LDcgKzIxOCw3IEBAIFB5SGFzaF9HZXRGdW5jRGVmKHZvaWQpCisgfQorIAorIC8q IE9wdGltaXplZCBtZW1jcHkoKSBmb3IgV2luZG93cyAqLworLSNpZmRlZiBfTVNDX1ZFUgorKyNp ZmRlZiBfV0lOMzIKKyAjICBpZiBTSVpFT0ZfUFlfVUhBU0hfVCA9PSA0CisgIyAgICBkZWZpbmUg UFlfVUhBU0hfQ1BZKGRzdCwgc3JjKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICBkc3RbMF0gPSBzcmNbMF07IGRzdFsxXSA9IHNyY1sxXTsgZHN0WzJd ID0gc3JjWzJdOyBkc3RbM10gPSBzcmNbM107IFwKCmRpZmYgLS1naXQgYS8wMDg0LXRlc3RzLUZp eC10ZXN0LWZvci1saWJyYXJ5LW5hbWUucGF0Y2ggYi8wMDg0LXRlc3RzLUZpeC10ZXN0LWZvci1s aWJyYXJ5LW5hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNk ZGFmNgotLS0gL2Rldi9udWxsCisrKyBiLzAwODQtdGVzdHMtRml4LXRlc3QtZm9yLWxpYnJhcnkt bmFtZS5wYXRjaApAQCAtMCwwICsxLDE4IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2Ug UHl0aG9uLTMuMTQuNy9MaWIvdGVzdC90ZXN0X3N5c2NvbmZpZy5weSBQeXRob24tMy4xNC43LW5l dy9MaWIvdGVzdC90ZXN0X3N5c2NvbmZpZy5weQorLS0tIFB5dGhvbi0zLjE0LjcvTGliL3Rlc3Qv dGVzdF9zeXNjb25maWcucHkJMjAyNi0wOS0yMiAwOTowNjo0NS43MDc1MTE5NzMgKzAyMDAKKysr KyBQeXRob24tMy4xNC43LW5ldy9MaWIvdGVzdC90ZXN0X3N5c2NvbmZpZy5weQkyMDI2LTA5LTIy IDA5OjA2OjU0LjUzMDM4Mjg4NSArMDIwMAorQEAgLTQ3MSw4ICs0NzEsMTIgQEAgY2xhc3MgVGVz dFN5c0NvbmZpZyh1bml0dGVzdC5UZXN0Q2FzZSwgVgorICAgICAgICAgbWFqb3IsIG1pbm9yID0g c3lzLnZlcnNpb25faW5mb1s6Ml0KKyAgICAgICAgIGFiaWZsYWdzID0gc3lzY29uZmlnLmdldF9j b25maWdfdmFyKCdBQklGTEFHUycpCisgICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0 aCgnd2luJyk6CistICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaWJyYXJ5LCBmJ3B5dGhv bnttYWpvcn17bWlub3J9e2FiaWZsYWdzfS5kbGwnKQorLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwobGlicmFyeSwgbGRsaWJyYXJ5KQorKyAgICAgICAgICAgIGlmIHN5cy5faXNfbWluZ3c6 CisrICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlicmFyeSwgZidsaWJweXRob257 bWFqb3J9LnttaW5vcn17YWJpZmxhZ3N9LmEnKQorKyAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKGxkbGlicmFyeSwgZidsaWJweXRob257bWFqb3J9LnttaW5vcn17YWJpZmxhZ3N9LmRs bC5hJykKKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVx dWFsKGxpYnJhcnksIGYncHl0aG9ue21ham9yfXttaW5vcn17YWJpZmxhZ3N9LmRsbCcpCisrICAg ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlicmFyeSwgbGRsaWJyYXJ5KQorICAgICAg ICAgZWxpZiBpc19hcHBsZV9tb2JpbGU6CisgICAgICAgICAgICAgZnJhbWV3b3JrID0gc3lzY29u ZmlnLmdldF9jb25maWdfdmFyKCdQWVRIT05GUkFNRVdPUksnKQorICAgICAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwobGRsaWJyYXJ5LCBmIntmcmFtZXdvcmt9LmZyYW1ld29yay97ZnJhbWV3b3Jr fSIpCgpkaWZmIC0tZ2l0IGEvMDA4NS1kaWN0b2JqZWN0LU1JTkdXLXN1cHBvcnQucGF0Y2ggYi8w MDg1LWRpY3RvYmplY3QtTUlOR1ctc3VwcG9ydC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5lNWRlMGUwCi0tLSAvZGV2L251bGwKKysrIGIvMDA4NS1kaWN0b2JqZWN0 LU1JTkdXLXN1cHBvcnQucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtcnVwTiAtLW5vLWRl cmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvT2JqZWN0cy9kaWN0b2JqZWN0LmMgUHl0aG9uLTMuMTQu Ny1uZXcvT2JqZWN0cy9kaWN0b2JqZWN0LmMKKy0tLSBQeXRob24tMy4xNC43L09iamVjdHMvZGlj dG9iamVjdC5jCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9u LTMuMTQuNy1uZXcvT2JqZWN0cy9kaWN0b2JqZWN0LmMJMjAyNi0wOS0yMiAwOTowNjo1NC44Mjcw NjMzNzYgKzAyMDAKK0BAIC01NDksNyArNTQ5LDcgQEAgY2FsY3VsYXRlX2xvZzJfa2V5c2l6ZShQ eV9zc2l6ZV90IG1pbnNpegorICNpZiBTSVpFT0ZfTE9ORyA9PSBTSVpFT0ZfU0laRV9UCisgICAg IG1pbnNpemUgPSBQeV9NQVgobWluc2l6ZSwgUHlEaWN0X01JTlNJWkUpOworICAgICByZXR1cm4g X1B5X2JpdF9sZW5ndGgobWluc2l6ZSAtIDEpOworLSNlbGlmIGRlZmluZWQoX01TQ19WRVIpCisr I2VsaWYgZGVmaW5lZChNU19XSU5ET1dTKQorICAgICAvLyBPbiA2NGJpdCBXaW5kb3dzLCBzaXpl b2YobG9uZykgPT0gNC4gV2UgY2Fubm90IHVzZSBfUHlfYml0X2xlbmd0aC4KKyAgICAgbWluc2l6 ZSA9IFB5X01BWChtaW5zaXplLCBQeURpY3RfTUlOU0laRSk7CisgICAgIHVuc2lnbmVkIGxvbmcg bXNiOwoKZGlmZiAtLWdpdCBhLzAwODYtYnVpbGQtRml4LWV4cG9ydC1QeV9HZXRCdWlsZEluZm8t c3ltYm9sLnBhdGNoIGIvMDA4Ni1idWlsZC1GaXgtZXhwb3J0LVB5X0dldEJ1aWxkSW5mby1zeW1i b2wucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ0Zjk5ZQotLS0g L2Rldi9udWxsCisrKyBiLzAwODYtYnVpbGQtRml4LWV4cG9ydC1QeV9HZXRCdWlsZEluZm8tc3lt Ym9sLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQ eXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbiBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5w cmUuaW4KKy0tLSBQeXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2 OjUwLjk3OTk1OTkwMyArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01ha2VmaWxlLnByZS5p bgkyMDI2LTA5LTIyIDA5OjA2OjU1LjExNjc4NDY5NSArMDIwMAorQEAgLTE5NjEsOCArMTk2MSw5 IEBAIE1vZHVsZXMvZ2V0YnVpbGRpbmZvLm86ICQoUEFSU0VSX09CSlMpIFwKKyAJCSQoTU9EVUxF X09CSlMpIFwKKyAJCSQoTU9ET0JKUykgXAorIAkJJChEVFJBQ0VfT0JKUykgXAorLQkJJChzcmNk aXIpL01vZHVsZXMvZ2V0YnVpbGRpbmZvLmMKKy0JJChDQykgLWMgJChQWV9DT1JFX0NGTEFHUykg XAorKwkJJChzcmNkaXIpL01vZHVsZXMvZ2V0YnVpbGRpbmZvLmMgXAorKwkJJChQWVRIT05fSEVB REVSUykKKysJJChDQykgLWMgJChQWV9CVUlMVElOX01PRFVMRV9DRkxBR1MpIFwKKyAJICAgICAg LURHSVRWRVJTSU9OPSJcImBMQ19BTEw9QyAkKEdJVFZFUlNJT04pYFwiIiBcCisgCSAgICAgIC1E R0lUVEFHPSJcImBMQ19BTEw9QyAkKEdJVFRBRylgXCIiIFwKKyAJICAgICAgLURHSVRCUkFOQ0g9 IlwiYExDX0FMTD1DICQoR0lUQlJBTkNIKWBcIiIgXAoKZGlmZiAtLWdpdCBhLzAwODctYnVpbGQt QWxsb3ctcHJvZmlsZS10ZXN0cy1mYWlsdXJlLnBhdGNoIGIvMDA4Ny1idWlsZC1BbGxvdy1wcm9m aWxlLXRlc3RzLWZhaWx1cmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMTA2NTA1NQotLS0gL2Rldi9udWxsCisrKyBiLzAwODctYnVpbGQtQWxsb3ctcHJvZmlsZS10 ZXN0cy1mYWlsdXJlLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJl ZmVyZW5jZSBQeXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbiBQeXRob24tMy4xNC43LW5ldy9N YWtlZmlsZS5wcmUuaW4KKy0tLSBQeXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5 LTIyIDA5OjA2OjU1LjQwMjAyMzI2OCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01ha2Vm aWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjU1LjQwNjU4OTQxMSArMDIwMAorQEAgLTg3Nyw3 ICs4NzcsNyBAQCBwcm9maWxlLXJ1bi1zdGFtcDoKKyAJJChNQUtFKSBwcm9maWxlLWdlbi1zdGFt cAorIAkjIE5leHQsIHJ1biB0aGUgcHJvZmlsZSB0YXNrIHRvIGdlbmVyYXRlIHRoZSBwcm9maWxl IGluZm9ybWF0aW9uLgorIAlAICMgRklYTUU6IGNhbid0IHJ1biBmb3IgYSBjcm9zcyBidWlsZAor LQkkKExMVk1fUFJPRl9GSUxFKSAkKFJVTlNIQVJFRCkgLi8kKEJVSUxEUFlUSE9OKSAkKFBST0ZJ TEVfVEFTSykKKysJJChMTFZNX1BST0ZfRklMRSkgJChSVU5TSEFSRUQpIC4vJChCVUlMRFBZVEhP TikgJChQUk9GSUxFX1RBU0spIHx8IHRydWUKKyAJJChMTFZNX1BST0ZfTUVSR0VSKQorIAkjIFJl bW92ZSBwcm9maWxlIGdlbmVyYXRpb24gYmluYXJ5IHNpbmNlIHdlIGFyZSBkb25lIHdpdGggaXQu CisgCSQoTUFLRSkgY2xlYW4tcmV0YWluLXByb2ZpbGUKK0BAIC05MjYsNyArOTI2LDcgQEAgcHJv ZmlsZS1ib2x0LXN0YW1wOiAkKEJVSUxEUFlUSE9OKQorIAkgIG12ICIkJHtiaW59LmJvbHRfaW5z dCIgIiQke2Jpbn0iOyBcCisgCWRvbmUKKyAJIyBSdW4gaW5zdHJ1bWVudGVkIGJpbmFyaWVzIHRv IGNvbGxlY3QgZGF0YS4KKy0JJChSVU5TSEFSRUQpIC4vJChCVUlMRFBZVEhPTikgJChQUk9GSUxF X1RBU0spCisrCSQoUlVOU0hBUkVEKSAuLyQoQlVJTERQWVRIT04pICQoUFJPRklMRV9UQVNLKSB8 fCB0cnVlCisgCSMgTWVyZ2UgYWxsIHRoZSBkYXRhIGZpbGVzIHRvZ2V0aGVyLgorIAlmb3IgYmlu IGluICQoQk9MVF9CSU5BUklFUyk7IGRvIFwKKyAJICBATUVSR0VfRkRBVEFAICQke2Jpbn0uKi5m ZGF0YSA+ICIkJHtiaW59LmZkYXRhIjsgXAoKZGlmZiAtLWdpdCBhLzAwODgtYnVpbGQtYWRkLXN1 cHBvcnQtZm9yLWJ1aWxkaW5nLUMtbW9kdWxlcy5wYXRjaCBiLzAwODgtYnVpbGQtYWRkLXN1cHBv cnQtZm9yLWJ1aWxkaW5nLUMtbW9kdWxlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi43YWExNWIzCi0tLSAvZGV2L251bGwKKysrIGIvMDA4OC1idWlsZC1hZGQtc3Vw cG9ydC1mb3ItYnVpbGRpbmctQy1tb2R1bGVzLnBhdGNoCkBAIC0wLDAgKzEsNzIgQEAKK2RpZmYg LXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01ha2VmaWxlLnByZS5pbiBQeXRo b24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4KKy0tLSBQeXRob24tMy4xNC43L01ha2VmaWxl LnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjU1LjY5MzAwMjk3MCArMDIwMAorKysrIFB5dGhvbi0z LjE0LjctbmV3L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTIyIDA5OjA2OjU1LjY5Nzk3OTM0MyAr MDIwMAorQEAgLTEwNCw2ICsxMDQsNyBAQCBDT05GSUdVUkVfTERGTEFHUz0JQExERkxBR1NACisg IyB2YWx1ZXMuCisgUFlfQ0ZMQUdTPQkkKEJBU0VDRkxBR1MpICQoT1BUKSAkKENPTkZJR1VSRV9D RkxBR1MpICQoQ0ZMQUdTKSAkKEVYVFJBX0NGTEFHUykKKyBQWV9DRkxBR1NfTk9ESVNUPSQoQ09O RklHVVJFX0NGTEFHU19OT0RJU1QpICQoQ0ZMQUdTX05PRElTVCkgLUkkKHNyY2RpcikvSW5jbHVk ZS9pbnRlcm5hbCAtSSQoc3JjZGlyKS9JbmNsdWRlL2ludGVybmFsL21pbWFsbG9jCisrUFlfQ1hY RkxBR1NfTk9ESVNUPSQoZmlsdGVyLW91dCAtc3RkPWMxMSwkKFBZX0NGTEFHU19OT0RJU1QpKSAt c3RkPWMrKzIwCisgIyBCb3RoIENQUEZMQUdTIGFuZCBMREZMQUdTIG5lZWQgdG8gY29udGFpbiB0 aGUgc2hlbGwncyB2YWx1ZSBmb3Igc2V0dXAucHkgdG8KKyAjIGJlIGFibGUgdG8gYnVpbGQgZXh0 ZW5zaW9uIG1vZHVsZXMgdXNpbmcgdGhlIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBpbiB0aGUKKyAj IGVudmlyb25tZW50IHZhcmlhYmxlcworQEAgLTEyMSw3ICsxMjIsOSBAQCBBUkZMQUdTPQlAQVJG TEFHU0AKKyBDRkxBR1NGT1JTSEFSRUQ9QENGTEFHU0ZPUlNIQVJFREAKKyAjIEMgZmxhZ3MgdXNl ZCBmb3IgYnVpbGRpbmcgdGhlIGludGVycHJldGVyIG9iamVjdCBmaWxlcworIFBZX1NURE1PRFVM RV9DRkxBR1M9ICQoUFlfQ0ZMQUdTKSAkKFBZX0NGTEFHU19OT0RJU1QpICQoUFlfQ1BQRkxBR1Mp ICQoQ0ZMQUdTRk9SU0hBUkVEKQorK1BZX1NURE1PRFVMRV9DWFhGTEFHUz0gJChQWV9DRkxBR1Mp ICQoUFlfQ1hYRkxBR1NfTk9ESVNUKSAkKFBZX0NQUEZMQUdTKSAkKENGTEFHU0ZPUlNIQVJFRCkK KyBQWV9CVUlMVElOX01PRFVMRV9DRkxBR1M9ICQoUFlfU1RETU9EVUxFX0NGTEFHUykgLURQeV9C VUlMRF9DT1JFX0JVSUxUSU4KKytQWV9CVUlMVElOX01PRFVMRV9DWFhGTEFHUz0gJChQWV9TVERN T0RVTEVfQ1hYRkxBR1MpIC1EUHlfQlVJTERfQ09SRV9CVUlMVElOCisgUFlfQ09SRV9DRkxBR1M9 CSQoUFlfU1RETU9EVUxFX0NGTEFHUykgLURQeV9CVUlMRF9DT1JFCisgIyBMaW5rZXIgZmxhZ3Mg dXNlZCBmb3IgYnVpbGRpbmcgdGhlIGludGVycHJldGVyIG9iamVjdCBmaWxlcworIFBZX0NPUkVf TERGTEFHUz0kKFBZX0xERkxBR1MpICQoUFlfTERGTEFHU19OT0RJU1QpCitAQCAtMTg3LDcgKzE5 MCw3IEBAIEVYVF9TVUZGSVg9CUBFWFRfU1VGRklYQAorIFBZRF9QTEFURk9STV9UQUcgPSBAUFlE X1BMQVRGT1JNX1RBR0AKKyBMRFNIQVJFRD0JQExEU0hBUkVEQCAkKFBZX0xERkxBR1MpCisgQkxE U0hBUkVEPQlAQkxEU0hBUkVEQCAkKFBZX0NPUkVfTERGTEFHUykKKy1MRENYWFNIQVJFRD0JQExE Q1hYU0hBUkVEQCAkKFBZX0xERkxBR1MpCisrTERDWFhTSEFSRUQ9CUBMRENYWFNIQVJFREAgJChQ WV9DT1JFX0xERkxBR1MpCisgREVTVFNIQVJFRD0JJChCSU5MSUJERVNUKS9saWItZHlubG9hZAor IAorICMgTGlzdCBvZiBleHBvcnRlZCBzeW1ib2xzIGZvciBBSVgKK2RpZmYgLXJ1cE4gLS1uby1k ZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvbWFrZXNldHVwIFB5dGhvbi0zLjE0Ljct bmV3L01vZHVsZXMvbWFrZXNldHVwCistLS0gUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL21ha2VzZXR1 cAkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0Ljct bmV3L01vZHVsZXMvbWFrZXNldHVwCTIwMjYtMDktMjIgMDk6MDY6NTUuNjk4NDU2ODQxICswMjAw CitAQCAtMjI4LDEzICsyMjgsMTMgQEAgc2VkIC1lICdzL1sgCV0qIy4qLy8nIC1lICcvXlsgCV0q JC9kJyB8CisgCQlmb3Igc3JjIGluICRzcmNzCisgCQlkbworIAkJCWNhc2UgJHNyYyBpbgorLQkJ CSouYykgICBvYmo9YGJhc2VuYW1lICRzcmMgLmNgLm87IGNjPSckKENDKSc7OworLQkJCSouY2Mp ICBvYmo9YGJhc2VuYW1lICRzcmMgLmNjYC5vOyBjYz0nJChDWFgpJzs7CistCQkJKi5jKyspIG9i aj1gYmFzZW5hbWUgJHNyYyAuYysrYC5vOyBjYz0nJChDWFgpJzs7CistCQkJKi5DKSAgIG9iaj1g YmFzZW5hbWUgJHNyYyAuQ2AubzsgY2M9JyQoQ1hYKSc7OworLQkJCSouY3h4KSBvYmo9YGJhc2Vu YW1lICRzcmMgLmN4eGAubzsgY2M9JyQoQ1hYKSc7OworLQkJCSouY3BwKSBvYmo9YGJhc2VuYW1l ICRzcmMgLmNwcGAubzsgY2M9JyQoQ1hYKSc7OworLQkJCSoubSkgICBvYmo9YGJhc2VuYW1lICRz cmMgLm1gLm87IGNjPSckKENDKSc7OyAjIE9iai1DCisrCQkJKi5jKSAgIG9iaj1gYmFzZW5hbWUg JHNyYyAuY2AubzsgY2M9JyQoQ0MpJzsgY2NsZD0nJChCTERTSEFSRUQpJzsgY2NmbGFncz0nJChQ WV9TVERNT0RVTEVfQ0ZMQUdTKSc7OworKwkJCSouY2MpICBvYmo9YGJhc2VuYW1lICRzcmMgLmNj YC5vOyBjYz0nJChDWFgpJzsgY2NsZD0nJChMRENYWFNIQVJFRCknOyBjY2ZsYWdzPSckKFBZX1NU RE1PRFVMRV9DWFhGTEFHUyknOzsKKysJCQkqLmMrKykgb2JqPWBiYXNlbmFtZSAkc3JjIC5jKytg Lm87IGNjPSckKENYWCknOyBjY2xkPSckKExEQ1hYU0hBUkVEKSc7IGNjZmxhZ3M9JyQoUFlfU1RE TU9EVUxFX0NYWEZMQUdTKSc7OworKwkJCSouQykgICBvYmo9YGJhc2VuYW1lICRzcmMgLkNgLm87 IGNjPSckKENYWCknOyBjY2xkPSckKExEQ1hYU0hBUkVEKSc7IGNjZmxhZ3M9JyQoUFlfU1RETU9E VUxFX0NYWEZMQUdTKSc7OworKwkJCSouY3h4KSBvYmo9YGJhc2VuYW1lICRzcmMgLmN4eGAubzsg Y2M9JyQoQ1hYKSc7IGNjbGQ9JyQoTERDWFhTSEFSRUQpJzsgY2NmbGFncz0nJChQWV9TVERNT0RV TEVfQ1hYRkxBR1MpJzs7CisrCQkJKi5jcHApIG9iaj1gYmFzZW5hbWUgJHNyYyAuY3BwYC5vOyBj Yz0nJChDWFgpJzsgY2NsZD0nJChMRENYWFNIQVJFRCknOyBjY2ZsYWdzPSckKFBZX1NURE1PRFVM RV9DWFhGTEFHUyknOzsKKysJCQkqLm0pICAgb2JqPWBiYXNlbmFtZSAkc3JjIC5tYC5vOyBjYz0n JChDQyknOyBjY2xkPSckKEJMRFNIQVJFRCknOyBjY2ZsYWdzPSckKFBZX1NURE1PRFVMRV9DRkxB R1MpJzs7ICMgT2JqLUMKKyAJCQkqKSAgICAgY29udGludWU7OworIAkJCWVzYWMKKyAJCQljYXNl ICRzcmMgaW4KK0BAIC0yNTEsNyArMjUxLDcgQEAgc2VkIC1lICdzL1sgCV0qIy4qLy8nIC1lICcv XlsgCV0qJC9kJyB8CisgCQkJIyBjdXN0b20gZmxhZ3MgZmlyc3QsIFBZX1NURE1PRFVMRV9DRkxB R1MgbWF5IGNvbnRhaW4gLUkgd2l0aCBzeXN0ZW0gbGlibXBkZWMKKyAJCQljYXNlICRkb2NvbmZp ZyBpbgorIAkJCW5vKQorLQkJCQljYz0iJGNjICRjcHBzIFwkKFBZX1NURE1PRFVMRV9DRkxBR1Mp IFwkKENDU0hBUkVEKSIKKysJCQkJY2M9IiRjYyAkY3BwcyAkY2NmbGFncyBcJChDQ1NIQVJFRCki CisgCQkJCXJ1bGU9IiRvYmo6ICRzcmMgXCQoTU9EVUxFXyR7bW9kc191cHBlcn1fREVQUykgXCQo TU9EVUxFX0RFUFNfU0hBUkVEKSBcJChQWVRIT05fSEVBREVSUykiCisgCQkJCXJ1bGU9IiRydWxl OyAkY2MgLWMgJHNyYyAtbyAkb2JqIgorIAkJCQk7OworQEAgLTI3Niw3ICsyNzYsNyBAQCBzZWQg LWUgJ3MvWyAJXSojLiovLycgLWUgJy9eWyAJXSokL2QnIHwKKyAJCQkJOzsKKyAJCQllc2FjCisg CQkJcnVsZT0iJGZpbGU6ICRvYmpzIFwkKE1PRFVMRV8ke21vZHNfdXBwZXJ9X0xERVBTKSIKKy0J CQlydWxlPSIkcnVsZTsgXCQoQkxEU0hBUkVEKSAkb2JqcyAkbGlicyBcJChNT0RVTEVfTERGTEFH U19TSEFSRUQpIC1vICRmaWxlIgorKwkJCXJ1bGU9IiRydWxlOyAkY2NsZCAkb2JqcyAkbGlicyBc JChNT0RVTEVfTERGTEFHU19TSEFSRUQpIC1vICRmaWxlIgorIAkJCWVjaG8gIiRydWxlIiA+PiRy dWxlc2YKKyAJCWRvbmUKKyAJZG9uZQoKZGlmZiAtLWdpdCBhLzAwODktYnVpbGQtYnVpbGQtZml4 LXRoZS13bWktbW9kdWxlLnBhdGNoIGIvMDA4OS1idWlsZC1idWlsZC1maXgtdGhlLXdtaS1tb2R1 bGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJlNDUwNwotLS0g L2Rldi9udWxsCisrKyBiLzAwODktYnVpbGQtYnVpbGQtZml4LXRoZS13bWktbW9kdWxlLnBhdGNo CkBAIC0wLDAgKzEsNTcgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x NC43L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xNC43LW5ldy9jb25maWd1cmUuYWMKKy0tLSBQeXRo b24tMy4xNC43L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjUzLjAyODE4ODg1OCArMDIw MAorKysrIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTIyIDA5OjA2OjU1 Ljk4Nzk4MjM5NCArMDIwMAorQEAgLTg4MjgsNiArODgyOCw4IEBAIGRubCB3aW5kb3dzIHNwZWNp ZmljIG1vZHVsZXMKKyBQWV9TVERMSUJfTU9EKFt3aW5yZWddLCBbdGVzdCAiJE1BQ0hERVAiID0g IndpbjMyIl0pCisgUFlfU1RETElCX01PRChbbXN2Y3J0XSwgW3Rlc3QgIiRNQUNIREVQIiA9ICJ3 aW4zMiJdKQorIFBZX1NURExJQl9NT0QoW193aW5hcGldLCBbdGVzdCAiJE1BQ0hERVAiID0gIndp bjMyIl0pCisrUFlfU1RETElCX01PRChbX3dtaV0sIFt0ZXN0ICIkTUFDSERFUCIgPSAid2luMzIi XSwgW10sIFtdLAorKyAgWy1sd2JlbXV1aWQgLWxwcm9wc3lzIC1sb2xlMzIgLWxvbGVhdXQzMiAt bHV1aWRdKQorIFBZX1NURExJQl9NT0QoW3dpbnNvdW5kXSwgW3Rlc3QgIiRNQUNIREVQIiA9ICJ3 aW4zMiJdLCBbXSwgW10sCisgICBbLWx3aW5tbV0pCisgUFlfU1RETElCX01PRChbX292ZXJsYXBw ZWRdLCBbdGVzdCAiJE1BQ0hERVAiID0gIndpbjMyIl0sIFtdLCBbXSwKK2RpZmYgLXJ1cE4gLS1u by1kZXJlZmVyZW5jZSBQeXRob24tMy4xNC43L01vZHVsZXMvU2V0dXAuc3RkbGliLmluIFB5dGhv bi0zLjE0LjctbmV3L01vZHVsZXMvU2V0dXAuc3RkbGliLmluCistLS0gUHl0aG9uLTMuMTQuNy9N b2R1bGVzL1NldHVwLnN0ZGxpYi5pbgkyMDI2LTA5LTIyIDA5OjA2OjQwLjk1NDUyMzgwMSArMDIw MAorKysrIFB5dGhvbi0zLjE0LjctbmV3L01vZHVsZXMvU2V0dXAuc3RkbGliLmluCTIwMjYtMDkt MjIgMDk6MDY6NTUuOTg3NTA2Nzk5ICswMjAwCitAQCAtMTcxLDYgKzE3MSw3IEBACisgIyBXaW5k b3dzIHNwZWNpZmljIG1vZHVsZXMKKyAKKyBATU9EVUxFX19PVkVSTEFQUEVEX1RSVUVAX292ZXJs YXBwZWQgb3ZlcmxhcHBlZC5jCisrQE1PRFVMRV9fV01JX1RSVUVAX3dtaSAuLi9QQy9fd21pbW9k dWxlLmNwcAorIEBNT0RVTEVfV0lOU09VTkRfVFJVRUB3aW5zb3VuZCAuLi9QQy93aW5zb3VuZC5j CisgCisgCitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9QQy9fd21p bW9kdWxlLmNwcCBQeXRob24tMy4xNC43LW5ldy9QQy9fd21pbW9kdWxlLmNwcAorLS0tIFB5dGhv bi0zLjE0LjcvUEMvX3dtaW1vZHVsZS5jcHAJMjAyNi0wOS0yMiAwOTowNjo1My42MjIzODA2Mzkg KzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9QQy9fd21pbW9kdWxlLmNwcAkyMDI2LTA5LTIy IDA5OjA2OjU1Ljk4NzcyOTAxNyArMDIwMAorQEAgLTEwMCwxMCArMTAwLDEyIEBAIF9xdWVyeV90 aHJlYWQoTFBWT0lEIHBhcmFtKQorICAgICAgICAgaHIgPSBIUkVTVUxUX0ZST01fV0lOMzIoR2V0 TGFzdEVycm9yKCkpOworICAgICB9CisgICAgIGlmIChTVUNDRUVERUQoaHIpKSB7CisrICAgICAg ICBCU1RSIGJzdHJfd3FsID0gU3lzQWxsb2NTdHJpbmcoTCJST09UXFxDSU1WMiIpOworICAgICAg ICAgaHIgPSBsb2NhdG9yLT5Db25uZWN0U2VydmVyKAorLSAgICAgICAgICAgIGJzdHJfdChMIlJP T1RcXENJTVYyIiksCisrICAgICAgICAgICAgYnN0cl93cWwsCisgICAgICAgICAgICAgTlVMTCwg TlVMTCwgMCwgTlVMTCwgMCwgMCwgJnNlcnZpY2VzCisgICAgICAgICApOworKyAgICAgICAgU3lz RnJlZVN0cmluZyhic3RyX3dxbCk7CisgICAgIH0KKyAgICAgaWYgKFNVQ0NFRURFRChocikgJiYg IVNldEV2ZW50KGRhdGEuY29ubmVjdEV2ZW50KSkgeworICAgICAgICAgaHIgPSBIUkVTVUxUX0ZS T01fV0lOMzIoR2V0TGFzdEVycm9yKCkpOworQEAgLTExNiwxMyArMTE4LDE1IEBAIF9xdWVyeV90 aHJlYWQoTFBWT0lEIHBhcmFtKQorICAgICAgICAgKTsKKyAgICAgfQorICAgICBpZiAoU1VDQ0VF REVEKGhyKSkgeworKyAgICAgICAgQlNUUiBic3RyX3dxbCA9IFN5c0FsbG9jU3RyaW5nKEwiV1FM Iik7CisgICAgICAgICBociA9IHNlcnZpY2VzLT5FeGVjUXVlcnkoCistICAgICAgICAgICAgYnN0 cl90KCJXUUwiKSwKKysgICAgICAgICAgICBic3RyX3dxbCwKKyAgICAgICAgICAgICBic3RyUXVl cnksCisgICAgICAgICAgICAgV0JFTV9GTEFHX0ZPUldBUkRfT05MWSB8IFdCRU1fRkxBR19SRVRV Uk5fSU1NRURJQVRFTFksCisgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAmZW51bWVy YXRvcgorICAgICAgICAgKTsKKysgICAgICAgIFN5c0ZyZWVTdHJpbmcoYnN0cl93cWwpOworICAg ICB9CisgCisgICAgIC8vIE9rYXksIGFmdGVyIGFsbCB0aGF0LCBhdCB0aGlzIHN0YWdlIHdlIHNo b3VsZCBoYXZlIGFuIGVudW1lcmF0b3IKCmRpZmYgLS1naXQgYS8wMDkwLUZpeC1leHBvcnRzLWZv ci1fc3VnZ2VzdGlvbnMtbW9kdWxlLnBhdGNoIGIvMDA5MC1GaXgtZXhwb3J0cy1mb3ItX3N1Z2dl c3Rpb25zLW1vZHVsZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5j N2Q1OTk3Ci0tLSAvZGV2L251bGwKKysrIGIvMDA5MC1GaXgtZXhwb3J0cy1mb3ItX3N1Z2dlc3Rp b25zLW1vZHVsZS5wYXRjaApAQCAtMCwwICsxLDExIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZl cmVuY2UgUHl0aG9uLTMuMTQuNy9Nb2R1bGVzL19zdWdnZXN0aW9ucy5jIFB5dGhvbi0zLjE0Ljct bmV3L01vZHVsZXMvX3N1Z2dlc3Rpb25zLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvX3N1 Z2dlc3Rpb25zLmMJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBQeXRo b24tMy4xNC43LW5ldy9Nb2R1bGVzL19zdWdnZXN0aW9ucy5jCTIwMjYtMDktMjIgMDk6MDY6NTYu Mjc2NDUwNTk4ICswMjAwCitAQCAtMSwzICsxLDcgQEAKKysjaWZuZGVmIFB5X0JVSUxEX0NPUkVf QlVJTFRJTgorKyMgIGRlZmluZSBQeV9CVUlMRF9DT1JFX01PRFVMRSAxCisrI2VuZGlmCisrCisg I2luY2x1ZGUgIlB5dGhvbi5oIgorICNpbmNsdWRlICJweWNvcmVfcHllcnJvcnMuaCIKKyAjaW5j bHVkZSAiY2xpbmljL19zdWdnZXN0aW9ucy5jLmgiCgpkaWZmIC0tZ2l0IGEvMDA5MS1jb21waWxl YWxsLU5vcm1hbGl6ZS1wYXRocy5wYXRjaCBiLzAwOTEtY29tcGlsZWFsbC1Ob3JtYWxpemUtcGF0 aHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNkM2VjYQotLS0g L2Rldi9udWxsCisrKyBiLzAwOTEtY29tcGlsZWFsbC1Ob3JtYWxpemUtcGF0aHMucGF0Y2gKQEAg LTAsMCArMSwxNCBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0Ljcv TGliL2NvbXBpbGVhbGwucHkgUHl0aG9uLTMuMTQuNy1uZXcvTGliL2NvbXBpbGVhbGwucHkKKy0t LSBQeXRob24tMy4xNC43L0xpYi9jb21waWxlYWxsLnB5CTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAw MDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTGliL2NvbXBpbGVhbGwucHkJMjAy Ni0wOS0yMiAwOTowNjo1Ni41NjU1NjI2MjEgKzAyMDAKK0BAIC0xNjEsOCArMTYxLDggQEAgZGVm IGNvbXBpbGVfZmlsZShmdWxsbmFtZSwgZGRpcj1Ob25lLCBmbworICAgICAgICAgICAgICAgICAg ICAgICAgICAgImluIGNvbWJpbmF0aW9uIHdpdGggc3RyaXBkaXIgb3IgcHJlcGVuZGRpciIpKQor IAorICAgICBzdWNjZXNzID0gVHJ1ZQorLSAgICBmdWxsbmFtZSA9IG9zLmZzcGF0aChmdWxsbmFt ZSkKKy0gICAgc3RyaXBkaXIgPSBvcy5mc3BhdGgoc3RyaXBkaXIpIGlmIHN0cmlwZGlyIGlzIG5v dCBOb25lIGVsc2UgTm9uZQorKyAgICBmdWxsbmFtZSA9IG9zLnBhdGgubm9ybXBhdGgob3MuZnNw YXRoKGZ1bGxuYW1lKSkKKysgICAgc3RyaXBkaXIgPSBvcy5wYXRoLm5vcm1wYXRoKG9zLmZzcGF0 aChzdHJpcGRpcikpIGlmIHN0cmlwZGlyIGlzIG5vdCBOb25lIGVsc2UgTm9uZQorICAgICBuYW1l ID0gb3MucGF0aC5iYXNlbmFtZShmdWxsbmFtZSkKKyAKKyAgICAgZGZpbGUgPSBOb25lCgpkaWZm IC0tZ2l0IGEvMDA5Mi1jb25maWd1cmUtZW5hYmxlLTY0LWJpdC10aW1lLXN1cHBvcnQtZm9yLTMy LWJpdC1idWlsLnBhdGNoIGIvMDA5Mi1jb25maWd1cmUtZW5hYmxlLTY0LWJpdC10aW1lLXN1cHBv cnQtZm9yLTMyLWJpdC1idWlsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjYxZTJhZTYKLS0tIC9kZXYvbnVsbAorKysgYi8wMDkyLWNvbmZpZ3VyZS1lbmFibGUtNjQt Yml0LXRpbWUtc3VwcG9ydC1mb3ItMzItYml0LWJ1aWwucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAor ZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjIFB5 dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmlndXJl LmFjCTIwMjYtMDktMjIgMDk6MDY6NTYuMjcxMDYwOTM2ICswMjAwCisrKysgUHl0aG9uLTMuMTQu Ny1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTYuODU1OTIxODQ4ICswMjAwCitA QCAtMTAzNyw2ICsxMDM3LDEzIEBAIGlmIHRlc3QgLXogIiRDRkxBR1MiOyB0aGVuCisgICAgICAg ICBDRkxBR1M9CisgZmkKKyAKKytkbmwgQnVpbGQgMzItYml0IG1pbmd3LXc2NCBwbGF0Zm9ybSB3 aXRoIDY0LWJpdCB0aW1lIHN1cHBvcnQuCisrY2FzZSAkaG9zdCBpbgorKyAgaTY4Ni0qLW1pbmd3 KikKKysgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1EX19NSU5HV19VU0VfVkMyMDA1X0NPTVBBVCIKKysg ICAgOzsKKytlc2FjCisrCisgZG5sIEVtc2NyaXB0ZW4gU0RLIGFuZCBXQVNJIFNESyBkZWZhdWx0 IHRvIHdhc20zMi4KKyBkbmwgT24gRW1zY3JpcHRlbiB1c2UgTUVNT1JZNjQgc2V0dGluZyB0byBi dWlsZCB0YXJnZXQgd2FzbTY0LWVtc2NyaXB0ZW4uCisgZG5sIGZvciB3YXNtNjQuCgpkaWZmIC0t Z2l0IGEvMDA5My12ZW52LWFsc28taW5zdGFsbC10aGUtdmVyc2lvbmVkLWxhdW5jaGVycy5wYXRj aCBiLzAwOTMtdmVudi1hbHNvLWluc3RhbGwtdGhlLXZlcnNpb25lZC1sYXVuY2hlcnMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI5MzY3ZgotLS0gL2Rldi9udWxs CisrKyBiLzAwOTMtdmVudi1hbHNvLWluc3RhbGwtdGhlLXZlcnNpb25lZC1sYXVuY2hlcnMucGF0 Y2gKQEAgLTAsMCArMSwyMyBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0z LjE0LjcvTGliL3ZlbnYvX19pbml0X18ucHkgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3ZlbnYvX19p bml0X18ucHkKKy0tLSBQeXRob24tMy4xNC43L0xpYi92ZW52L19faW5pdF9fLnB5CTIwMjYtMDgt MDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTGliL3Zl bnYvX19pbml0X18ucHkJMjAyNi0wOS0yMiAwOTowNjo1Ny4xNDU3OTg4NTcgKzAyMDAKK0BAIC0z ODgsOCArMzg4LDE4IEBAIGNsYXNzIEVudkJ1aWxkZXI6CisgICAgICAgICAgICAgICAgICAgICBm J3B5dGhvbnd7ZXhlX3R9e2V4ZV9kfS5leGUnOiBweXRob253X2V4ZSwKKyAgICAgICAgICAgICAg ICAgfQorIAorKyAgICAgICAgICAgIGlmIHN5cy5faXNfbWluZ3c6CisrICAgICAgICAgICAgICAg IGZvciBrZXksIHZhbHVlIGluIGxpc3QobGlua19zb3VyY2VzLml0ZW1zKCkpOgorKyAgICAgICAg ICAgICAgICAgICAgaWYga2V5LnN0YXJ0c3dpdGgoJ3B5dGhvbicpOgorKyAgICAgICAgICAgICAg ICAgICAgICAgIGxpbmtfc291cmNlc1trZXkucmVwbGFjZSgncHl0aG9uJywgJ3B5dGhvbjMnKV0g PSB2YWx1ZQorKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtfc291cmNlc1trZXkucmVwbGFj ZSgncHl0aG9uJywgZidweXRob24zLntzeXMudmVyc2lvbl9pbmZvWzFdfScpXSA9IHZhbHVlCisr ICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGxpc3QoY29weV9zb3VyY2VzLml0ZW1z KCkpOgorKyAgICAgICAgICAgICAgICAgICAgaWYga2V5LnN0YXJ0c3dpdGgoJ3B5dGhvbicpOgor KyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlfc291cmNlc1trZXkucmVwbGFjZSgncHl0aG9u JywgJ3B5dGhvbjMnKV0gPSB2YWx1ZQorKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlfc291 cmNlc1trZXkucmVwbGFjZSgncHl0aG9uJywgZidweXRob24zLntzeXMudmVyc2lvbl9pbmZvWzFd fScpXSA9IHZhbHVlCisrCisgICAgICAgICAgICAgZG9fY29waWVzID0gVHJ1ZQorLSAgICAgICAg ICAgIGlmIHNlbGYuc3ltbGlua3M6CisrICAgICAgICAgICAgaWYgc2VsZi5zeW1saW5rcyBhbmQg bm90IHN5cy5faXNfbWluZ3c6CisgICAgICAgICAgICAgICAgIGRvX2NvcGllcyA9IEZhbHNlCisg ICAgICAgICAgICAgICAgICMgRm9yIHN5bWxpbmtpbmcsIHdlIG5lZWQgYWxsIHRoZSBETExzIHRv IGJlIGF2YWlsYWJsZSBhbG9uZ3NpZGUKKyAgICAgICAgICAgICAgICAgIyB0aGUgZXhlY3V0YWJs ZXMuCgpkaWZmIC0tZ2l0IGEvMDA5NC1jb25maWd1cmUtc2V0LV9XSU4zMl9XSU5OVC12ZXJzaW9u LnBhdGNoIGIvMDA5NC1jb25maWd1cmUtc2V0LV9XSU4zMl9XSU5OVC12ZXJzaW9uLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhOWVlNTYKLS0tIC9kZXYvbnVsbAor KysgYi8wMDk0LWNvbmZpZ3VyZS1zZXQtX1dJTjMyX1dJTk5ULXZlcnNpb24ucGF0Y2gKQEAgLTAs MCArMSwxNSBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29u ZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0zLjE0 LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTcuMTQxMTA1MTQ1ICswMjAwCisrKysg UHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTcuNDM1ODgx MzkwICswMjAwCitAQCAtNDk2Miw2ICs0OTYyLDExIEBAIGRvbmUKKyBJRlM9JGFzX3NhdmVfSUZT CisgQUNfTVNHX1JFU1VMVChbJERCTV9DRkxBR1MgJERCTV9MSUJTXSkKKyAKKytjYXNlICRob3N0 IGluCisrICAqLSotbWluZ3cqKQorKyAgICBDRkxBR1NfTk9ESVNUPSIkQ0ZMQUdTX05PRElTVCAt RF9XSU4zMl9XSU5OVD0weDA2MDIiOzsKKytlc2FjCisrCisgIyBUZW1wbGF0ZXMgZm9yIHRoaW5n cyBBQ19ERUZJTkVkIG1vcmUgdGhhbiBvbmNlLgorICMgRm9yIGEgc2luZ2xlIEFDX0RFRklORSwg bm8gdGVtcGxhdGUgaXMgbmVlZGVkLgorIEFIX1RFTVBMQVRFKFtfUkVFTlRSQU5UXSwKCmRpZmYg LS1naXQgYS8wMDk1LXRlc3RzLWZpeC1zeXNjb25maWcudGVzdF9nZXRfcGxhdGZvcm0ucGF0Y2gg Yi8wMDk1LXRlc3RzLWZpeC1zeXNjb25maWcudGVzdF9nZXRfcGxhdGZvcm0ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM5ZGNlNQotLS0gL2Rldi9udWxsCisrKyBi LzAwOTUtdGVzdHMtZml4LXN5c2NvbmZpZy50ZXN0X2dldF9wbGF0Zm9ybS5wYXRjaApAQCAtMCww ICsxLDIyIEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIv dGVzdC90ZXN0X3N5c2NvbmZpZy5weSBQeXRob24tMy4xNC43LW5ldy9MaWIvdGVzdC90ZXN0X3N5 c2NvbmZpZy5weQorLS0tIFB5dGhvbi0zLjE0LjcvTGliL3Rlc3QvdGVzdF9zeXNjb25maWcucHkJ MjAyNi0wOS0yMiAwOTowNjo1NC44MjMyMDY4MDUgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5l dy9MaWIvdGVzdC90ZXN0X3N5c2NvbmZpZy5weQkyMDI2LTA5LTIyIDA5OjA2OjU3LjczMDA5MTI2 NiArMDIwMAorQEAgLTI1MywxNCArMjUzLDE2IEBAIGNsYXNzIFRlc3RTeXNDb25maWcodW5pdHRl c3QuVGVzdENhc2UsIFYKKyAgICAgICAgIHN5cy52ZXJzaW9uID0gKCcyLjQuNCAoIzcxLCBPY3Qg MTggMjAwNiwgMDg6MzQ6NDMpICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdbTVNDIHYuMTMx MCAzMiBiaXQgKEludGVsKV0nKQorICAgICAgICAgc3lzLnBsYXRmb3JtID0gJ3dpbjMyJworLSAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfcGxhdGZvcm0oKSwgJ3dpbjMyJykKKysgICAgICAg IGlmIG5vdCBzeXMuX2lzX21pbmd3OgorKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0 X3BsYXRmb3JtKCksICd3aW4zMicpCisgCisgICAgICAgICAjIHdpbmRvd3MgWFAsIGFtZDY0Cisg ICAgICAgICBvcy5uYW1lID0gJ250JworICAgICAgICAgc3lzLnZlcnNpb24gPSAoJzIuNC40ICgj NzEsIE9jdCAxOCAyMDA2LCAwODozNDo0MykgJworICAgICAgICAgICAgICAgICAgICAgICAgJ1tN U0Mgdi4xMzEwIDMyIGJpdCAoQW1kNjQpXScpCisgICAgICAgICBzeXMucGxhdGZvcm0gPSAnd2lu MzInCistICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldF9wbGF0Zm9ybSgpLCAnd2luLWFtZDY0 JykKKysgICAgICAgIGlmIG5vdCBzeXMuX2lzX21pbmd3OgorKyAgICAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwoZ2V0X3BsYXRmb3JtKCksICd3aW4tYW1kNjQnKQorIAorICAgICAgICAgIyBtYWNi b29rCisgICAgICAgICBvcy5uYW1lID0gJ3Bvc2l4JwoKZGlmZiAtLWdpdCBhLzAwOTYtcHljb3Jl X3RpbWUtZml4LW1pc3NpbmctdGltZXZhbC5wYXRjaCBiLzAwOTYtcHljb3JlX3RpbWUtZml4LW1p c3NpbmctdGltZXZhbC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h YmU3MzJjCi0tLSAvZGV2L251bGwKKysrIGIvMDA5Ni1weWNvcmVfdGltZS1maXgtbWlzc2luZy10 aW1ldmFsLnBhdGNoCkBAIC0wLDAgKzEsMTIgQEAKK2RpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5j ZSBQeXRob24tMy4xNC43L0luY2x1ZGUvaW50ZXJuYWwvcHljb3JlX3RpbWUuaCBQeXRob24tMy4x NC43LW5ldy9JbmNsdWRlL2ludGVybmFsL3B5Y29yZV90aW1lLmgKKy0tLSBQeXRob24tMy4xNC43 L0luY2x1ZGUvaW50ZXJuYWwvcHljb3JlX3RpbWUuaAkyMDI2LTA4LTA1IDEyOjI5OjQ5LjAwMDAw MDAwMCArMDIwMAorKysrIFB5dGhvbi0zLjE0LjctbmV3L0luY2x1ZGUvaW50ZXJuYWwvcHljb3Jl X3RpbWUuaAkyMDI2LTA5LTIyIDA5OjA2OjU4LjAxODg0MDcyNCArMDIwMAorQEAgLTU5LDcgKzU5 LDcgQEAgZXh0ZXJuICJDIiB7CisgCisgI2luY2x1ZGUgInB5Y29yZV9ydW50aW1lX3N0cnVjdHMu aCIgLy8gX1B5VGltZUZyYWN0aW9uCisgCistI2lmZGVmIF9fY2xhbmdfXworKyNpZmRlZiBNU19X SU5ET1dTCisgc3RydWN0IHRpbWV2YWw7CisgI2VuZGlmCisgCgpkaWZmIC0tZ2l0IGEvMDA5Ny1t bWFwbW9kdWxlLWRlZmluZS1ET05UX1VTRV9TRUgucGF0Y2ggYi8wMDk3LW1tYXBtb2R1bGUtZGVm aW5lLURPTlRfVVNFX1NFSC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li44MjRjNDVlCi0tLSAvZGV2L251bGwKKysrIGIvMDA5Ny1tbWFwbW9kdWxlLWRlZmluZS1ET05U X1VTRV9TRUgucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJl bmNlIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9tbWFwbW9kdWxlLmMgUHl0aG9uLTMuMTQuNy1uZXcv TW9kdWxlcy9tbWFwbW9kdWxlLmMKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvbW1hcG1vZHVs ZS5jCTIwMjYtMDgtMDUgMTI6Mjk6NDkuMDAwMDAwMDAwICswMjAwCisrKysgUHl0aG9uLTMuMTQu Ny1uZXcvTW9kdWxlcy9tbWFwbW9kdWxlLmMJMjAyNi0wOS0yMiAwOTowNjo1OC4zMDY2MjY4NTAg KzAyMDAKK0BAIC02Miw2ICs2MiwxMyBAQCBteV9nZXRhbGxvY2F0aW9uZ3JhbnVsYXJpdHkgKHZv aWQpCisgCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoX0RFQlVHKSB8fCBkZWZpbmVkKF9fTUlO R1czMl9fKQorKy8qIERvbid0IHVzZSBzdHJ1Y3R1cmVkIGV4Y2VwdGlvbiBoYW5kbGluZyBvbiBX aW5kb3dzIGlmIHRoaXMgaXMgZGVmaW5lZC4KKysgICBNaW5nVywgQUZBSUssIGRvZXNuJ3Qgc3Vw cG9ydCBpdC4KKysqLworKyNkZWZpbmUgRE9OVF9VU0VfU0VICisrI2VuZGlmCisrCisgI2lmZGVm IFVOSVgKKyAjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KCmRp ZmYgLS1naXQgYS8wMDk4LWJ1aWxkLUFkZC1BQklGTEFHUy10by10YXJnZXRzLXdoZW4tbmVlZGVk LnBhdGNoIGIvMDA5OC1idWlsZC1BZGQtQUJJRkxBR1MtdG8tdGFyZ2V0cy13aGVuLW5lZWRlZC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTYzNDRlCi0tLSAvZGV2 L251bGwKKysrIGIvMDA5OC1idWlsZC1BZGQtQUJJRkxBR1MtdG8tdGFyZ2V0cy13aGVuLW5lZWRl ZC5wYXRjaApAQCAtMCwwICsxLDI5IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0 aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4gUHl0aG9uLTMuMTQuNy1uZXcvTWFrZWZpbGUucHJl LmluCistLS0gUHl0aG9uLTMuMTQuNy9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0yMiAwOTowNjo1 NS45ODI5ODI3NDIgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9NYWtlZmlsZS5wcmUuaW4J MjAyNi0wOS0yMiAwOTowNjo1OC41OTM5MTUyODQgKzAyMDAKK0BAIC0zMTgsMTEgKzMxOCwxMSBA QCBNQUNIREVQX09CSlM9CUBNQUNIREVQX09CSlNACisgTElCT0JKRElSPQlQeXRob24vCisgTElC T0JKUz0JQExJQk9CSlNACisgCistUFlUSE9OPQkJcHl0aG9uJChFWEUpCistQlVJTERQWVRIT049 CXB5dGhvbiQoQlVJTERFWEUpCistQlVJTERQWVRIT05XPQlweXRob253JChCVUlMREVYRSkKKy1C VUlMRFZFTlZMQVVOQ0hFUj0JdmVudmxhdW5jaGVyJChCVUlMREVYRSkKKy1CVUlMRFZFTlZXTEFV TkNIRVI9CXZlbnZ3bGF1bmNoZXIkKEJVSUxERVhFKQorK1BZVEhPTj0JCXB5dGhvbiQoQUJJRkxB R1MpJChFWEUpCisrQlVJTERQWVRIT049CXB5dGhvbiQoQUJJRkxBR1MpJChCVUlMREVYRSkKKytC VUlMRFBZVEhPTlc9CXB5dGhvbnckKEFCSUZMQUdTKSQoQlVJTERFWEUpCisrQlVJTERWRU5WTEFV TkNIRVI9CXZlbnZsYXVuY2hlciQoQUJJRkxBR1MpJChCVUlMREVYRSkKKytCVUlMRFZFTlZXTEFV TkNIRVI9CXZlbnZ3bGF1bmNoZXIkKEFCSUZMQUdTKSQoQlVJTERFWEUpCisgCisgSE9TVFJVTk5F Uj0gQEhPU1RSVU5ORVJACisgCitAQCAtMjQ5Miw3ICsyNDkyLDcgQEAgYWx0YmluaW5zdGFsbDog JChCVUlMRFBZVEhPTikgQEZSQU1FV09SSworIAlkb25lCisgCWlmIHRlc3QgIiQoUFlUSE9ORlJB TUVXT1JLRElSKSIgPSAibm8tZnJhbWV3b3JrIiA7IHRoZW4gXAorIAkJJChJTlNUQUxMX1BST0dS QU0pICQoQlVJTERQWVRIT04pICQoREVTVERJUikkKEJJTkRJUikvcHl0aG9uJChMRFZFUlNJT04p JChFWEUpOyBcCistCQkkKElOU1RBTExfUFJPR1JBTSkgJChCVUlMRFBZVEhPTlcpICQoREVTVERJ UikkKEJJTkRJUikvcHl0aG9uM3ckKEVYRSk7IFwKKysJCSQoSU5TVEFMTF9QUk9HUkFNKSAkKEJV SUxEUFlUSE9OVykgJChERVNURElSKSQoQklORElSKS9weXRob24zdyQoQUJJRkxBR1MpJChFWEUp OyBcCisgCQkkKElOU1RBTExfUFJPR1JBTSkgJChCVUlMRFBZVEhPTlcpICQoREVTVERJUikkKEJJ TkRJUikvcHl0aG9uJChMRFZFUlNJT04pdyQoRVhFKTsgXAorIAkJJChJTlNUQUxMX1BST0dSQU0p ICQoQlVJTERWRU5WTEFVTkNIRVIpICQoREVTVERJUikkKFZFTlZMQVVOQ0hFUkRJUikvJChCVUlM RFZFTlZMQVVOQ0hFUik7IFwKKyAJCSQoSU5TVEFMTF9QUk9HUkFNKSAkKEJVSUxEVkVOVldMQVVO Q0hFUikgJChERVNURElSKSQoVkVOVkxBVU5DSEVSRElSKS8kKEJVSUxEVkVOVldMQVVOQ0hFUik7 IFwKCmRpZmYgLS1naXQgYS8wMDk5LXN5c2NvbmZpZy1wYXRjaC1udC1zY2hlbWVzLWFnYWluLnBh dGNoIGIvMDA5OS1zeXNjb25maWctcGF0Y2gtbnQtc2NoZW1lcy1hZ2Fpbi5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDNkZGUzCi0tLSAvZGV2L251bGwKKysrIGIv MDA5OS1zeXNjb25maWctcGF0Y2gtbnQtc2NoZW1lcy1hZ2Fpbi5wYXRjaApAQCAtMCwwICsxLDE3 IEBACitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvc3lzY29u ZmlnL19faW5pdF9fLnB5IFB5dGhvbi0zLjE0LjctbmV3L0xpYi9zeXNjb25maWcvX19pbml0X18u cHkKKy0tLSBQeXRob24tMy4xNC43L0xpYi9zeXNjb25maWcvX19pbml0X18ucHkJMjAyNi0wOS0y MiAwOTowNjozNy45MzM4NzYxNTEgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9MaWIvc3lz Y29uZmlnL19faW5pdF9fLnB5CTIwMjYtMDktMjIgMDk6MDY6NTguODgxNDYyOTg4ICswMjAwCitA QCAtMTY5LDYgKzE2OSwxMyBAQCBpZiBfSEFTX1VTRVJfQkFTRToKKyAgICAgICAgICAgICB9LAor ICAgICB9CisgCisrIyBYWFg6IHNldHVwdG9vbHMgdXNlcyBvcy5uYW1lIHRvIHNlbGVjdCB0aGUg c2NoZW1lIGFuZCBkb2Vzbid0IHVzZQorKyMgc3lzY29uZmlnLCB3ZSBoYXZlIHRvIG1vbmtleSBw YXRjaCB0aGUgJ250JyBzY2hlbWUgZm9yIG1pbmd3IGJ1aWxkcworKyMgdW50aWwgdGhhdCBpcyBm aXhlZAorK2lmIG9zLm5hbWUgPT0gJ250JyBhbmQgIHN5cy5faXNfbWluZ3c6CisrICAgIF9JTlNU QUxMX1NDSEVNRVNbJ250J10gPSBfSU5TVEFMTF9TQ0hFTUVTWydwb3NpeF9wcmVmaXgnXQorKyAg ICBfSU5TVEFMTF9TQ0hFTUVTWydudF91c2VyJ10gPSBfSU5TVEFMTF9TQ0hFTUVTWydwb3NpeF91 c2VyJ10KKysKKyBfU0NIRU1FX0tFWVMgPSAoJ3N0ZGxpYicsICdwbGF0c3RkbGliJywgJ3B1cmVs aWInLCAncGxhdGxpYicsICdpbmNsdWRlJywKKyAgICAgICAgICAgICAgICAgJ3NjcmlwdHMnLCAn ZGF0YScpCisgCgpkaWZmIC0tZ2l0IGEvMDEwMC1jb25maWd1cmUtZGVmaW5lLV9QWVRIUkVBRF9O QU1FX01BWExFTi1mb3ItTUlOR1cucGF0Y2ggYi8wMTAwLWNvbmZpZ3VyZS1kZWZpbmUtX1BZVEhS RUFEX05BTUVfTUFYTEVOLWZvci1NSU5HVy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40MmNjM2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvMDEwMC1jb25maWd1cmUtZGVm aW5lLV9QWVRIUkVBRF9OQU1FX01BWExFTi1mb3ItTUlOR1cucGF0Y2gKQEAgLTAsMCArMSwxMSBA QAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFj IFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYworLS0tIFB5dGhvbi0zLjE0LjcvY29uZmln dXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTcuNzI0ODYxMjMxICswMjAwCisrKysgUHl0aG9uLTMu MTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTkuMTY5MDUwNjc0ICswMjAw CitAQCAtODM1MCw2ICs4MzUwLDcgQEAgY2FzZSAiJGFjX3N5c19zeXN0ZW0iIGluCisgICBpT1Mp IF9QWVRIUkVBRF9OQU1FX01BWExFTj02Mzs7CisgICBGcmVlQlNEKikgX1BZVEhSRUFEX05BTUVf TUFYTEVOPTE5OzsgIyBnaC0xMzEyNjgKKyAgIE9wZW5CU0QqKSBfUFlUSFJFQURfTkFNRV9NQVhM RU49MjM7OyAjIGdoLTEzMTI2OAorKyAgTUlOR1cqKSBfUFlUSFJFQURfTkFNRV9NQVhMRU49MzI3 NjY7OworICAgKikgX1BZVEhSRUFEX05BTUVfTUFYTEVOPTs7CisgZXNhYworIGlmIHRlc3QgLW4g IiRfUFlUSFJFQURfTkFNRV9NQVhMRU4iOyB0aGVuCgpkaWZmIC0tZ2l0IGEvMDEwMS1jb25maWd1 cmUtYWxsb3ctb2xkZXItYXV0b2NvbmYucGF0Y2ggYi8wMTAxLWNvbmZpZ3VyZS1hbGxvdy1vbGRl ci1hdXRvY29uZi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjAz MDE3Ci0tLSAvZGV2L251bGwKKysrIGIvMDEwMS1jb25maWd1cmUtYWxsb3ctb2xkZXItYXV0b2Nv bmYucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5 dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjIFB5dGhvbi0zLjE0LjctbmV3L2NvbmZpZ3VyZS5hYwor LS0tIFB5dGhvbi0zLjE0LjcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIgMDk6MDY6NTkuNDU0MTYw OTc2ICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvY29uZmlndXJlLmFjCTIwMjYtMDktMjIg MDk6MDY6NTkuNDU5MTk5MDgxICswMjAwCitAQCAtMTIsNyArMTIsNyBAQCBkbmwKKyAjIFNldCBW RVJTSU9OIHNvIHdlIG9ubHkgbmVlZCB0byBlZGl0IGluIG9uZSBwbGFjZSAoaS5lLiwgaGVyZSkK KyBtNF9kZWZpbmUoW1BZVEhPTl9WRVJTSU9OXSwgWzMuMTRdKQorIAorLUFDX1BSRVJFUShbMi43 Ml0pCisrQUNfUFJFUkVRKFsyLjcxXSkKKyAKKyBBQ19JTklUKFtweXRob25dLFtQWVRIT05fVkVS U0lPTl0sW2h0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vY3B5dGhvbi9pc3N1ZXMvXSkKKyAKCmRp ZmYgLS1naXQgYS8wMTAyLXRlc3RzLWFsbG93LXN5cy5hYmlmbGFncy10by1leGlzdC5wYXRjaCBi LzAxMDItdGVzdHMtYWxsb3ctc3lzLmFiaWZsYWdzLXRvLWV4aXN0LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMGE4YmMKLS0tIC9kZXYvbnVsbAorKysgYi8wMTAy LXRlc3RzLWFsbG93LXN5cy5hYmlmbGFncy10by1leGlzdC5wYXRjaApAQCAtMCwwICsxLDEyIEBA CitkaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTQuNy9MaWIvdGVzdC90ZXN0 X3N5cy5weSBQeXRob24tMy4xNC43LW5ldy9MaWIvdGVzdC90ZXN0X3N5cy5weQorLS0tIFB5dGhv bi0zLjE0LjcvTGliL3Rlc3QvdGVzdF9zeXMucHkJMjAyNi0wOC0wNSAxMjoyOTo0OS4wMDAwMDAw MDAgKzAyMDAKKysrKyBQeXRob24tMy4xNC43LW5ldy9MaWIvdGVzdC90ZXN0X3N5cy5weQkyMDI2 LTA5LTIyIDA5OjA2OjU5Ljc0NzcyMDExNyArMDIwMAorQEAgLTcyMCw3ICs3MjAsNyBAQCBjbGFz cyBTeXNNb2R1bGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgIHNlbGYuYXNzZXJ0 VHJ1ZSh2aSA+ICgxLDAsMCkpCisgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3lzLmZs b2F0X3JlcHJfc3R5bGUsIHN0cikKKyAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc3lzLmZsb2F0X3Jl cHJfc3R5bGUsICgnc2hvcnQnLCAnbGVnYWN5JykpCistICAgICAgICBpZiBub3Qgc3lzLnBsYXRm b3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgorKyAgICAgICAgaWYgc3lzY29uZmlnLmdldF9jb25maWdf dmFyKCJBQklGTEFHUyIpIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJ bnN0YW5jZShzeXMuYWJpZmxhZ3MsIHN0cikKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg c2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKHN5cywgJ2FiaWZsYWdzJykpCgpkaWZmIC0tZ2l0IGEv MDEwMy1tYWtlc2V0dXAtbWFrZS1zdXJlLXRvLWxpbmstdGhlLWJ1aWx0LWxpYnB5dGhvbi5wYXRj aCBiLzAxMDMtbWFrZXNldHVwLW1ha2Utc3VyZS10by1saW5rLXRoZS1idWlsdC1saWJweXRob24u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdkZDA0MgotLS0gL2Rl di9udWxsCisrKyBiLzAxMDMtbWFrZXNldHVwLW1ha2Utc3VyZS10by1saW5rLXRoZS1idWlsdC1s aWJweXRob24ucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJl bmNlIFB5dGhvbi0zLjE0LjcvTW9kdWxlcy9tYWtlc2V0dXAgUHl0aG9uLTMuMTQuNy1uZXcvTW9k dWxlcy9tYWtlc2V0dXAKKy0tLSBQeXRob24tMy4xNC43L01vZHVsZXMvbWFrZXNldHVwCTIwMjYt MDktMjIgMDk6MDY6NTUuOTgzOTM1NjcwICswMjAwCisrKysgUHl0aG9uLTMuMTQuNy1uZXcvTW9k dWxlcy9tYWtlc2V0dXAJMjAyNi0wOS0yMiAwOTowNzowMC4wNDc3Njg0NDMgKzAyMDAKK0BAIC0y NzYsNyArMjc2LDcgQEAgc2VkIC1lICdzL1sgCV0qIy4qLy8nIC1lICcvXlsgCV0qJC9kJyB8Cisg CQkJCTs7CisgCQkJZXNhYworIAkJCXJ1bGU9IiRmaWxlOiAkb2JqcyBcJChNT0RVTEVfJHttb2Rz X3VwcGVyfV9MREVQUykiCistCQkJcnVsZT0iJHJ1bGU7ICRjY2xkICRvYmpzICRsaWJzIFwkKE1P RFVMRV9MREZMQUdTX1NIQVJFRCkgLW8gJGZpbGUiCisrCQkJcnVsZT0iJHJ1bGU7ICRjY2xkICRv YmpzIFwkKE1PRFVMRV9MREZMQUdTX1NIQVJFRCkgJGxpYnMgLW8gJGZpbGUiCisgCQkJZWNobyAi JHJ1bGUiID4+JHJ1bGVzZgorIAkJZG9uZQorIAlkb25lCgpkaWZmIC0tZ2l0IGEvMTQ2MTM2LnBh dGNoIGIvMTQ2MTM2LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzgxZTgw Li4wMDAwMDAwCi0tLSBhLzE0NjEzNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAg QEAKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9MaWIvcGtndXRp bC5weSBQeXRob24tMy4xMS4xNi1uZXcvTGliL3BrZ3V0aWwucHkKLS0tLSBQeXRob24tMy4xMS4x Ni9MaWIvcGtndXRpbC5weQkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysr IFB5dGhvbi0zLjExLjE2LW5ldy9MaWIvcGtndXRpbC5weQkyMDI2LTA5LTE4IDE5OjIzOjA5Ljc0 NTQxNjQ3MCArMDIwMAotQEAgLTYzNSw2ICs2MzUsOSBAQCBkZWYgZ2V0X2RhdGEocGFja2FnZSwg cmVzb3VyY2UpOgotICAgICAjIHNpZ25hdHVyZSAtIGFuIG9zLnBhdGggZm9ybWF0ICJmaWxlbmFt ZSIgc3RhcnRpbmcgd2l0aCB0aGUgZGlybmFtZSBvZgotICAgICAjIHRoZSBwYWNrYWdlJ3MgX19m aWxlX18KLSAgICAgcGFydHMgPSByZXNvdXJjZS5zcGxpdCgnLycpCi0rICAgIGlmIG9zLnBhdGgu aXNhYnMocmVzb3VyY2UpIG9yICcuLicgaW4gcGFydHM6Ci0rICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCJyZXNvdXJjZSBtdXN0IGJlIGEgcmVsYXRpdmUgcGF0aCB3aXRoIG5vICIKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgInBhcmVudCBkaXJlY3RvcnkgY29tcG9uZW50cyIpCi0gICAgIHBh cnRzLmluc2VydCgwLCBvcy5wYXRoLmRpcm5hbWUobW9kLl9fZmlsZV9fKSkKLSAgICAgcmVzb3Vy Y2VfbmFtZSA9IG9zLnBhdGguam9pbigqcGFydHMpCi0gICAgIHJldHVybiBsb2FkZXIuZ2V0X2Rh dGEocmVzb3VyY2VfbmFtZSkKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x MS4xNi9MaWIvdGVzdC90ZXN0X3BrZ3V0aWwucHkgUHl0aG9uLTMuMTEuMTYtbmV3L0xpYi90ZXN0 L3Rlc3RfcGtndXRpbC5weQotLS0tIFB5dGhvbi0zLjExLjE2L0xpYi90ZXN0L3Rlc3RfcGtndXRp bC5weQkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjEx LjE2LW5ldy9MaWIvdGVzdC90ZXN0X3BrZ3V0aWwucHkJMjAyNi0wOS0xOCAxOToyMzowOS43NDU5 MTk0NDEgKzAyMDAKLUBAIC01Nyw2ICs1NywyNSBAQCBjbGFzcyBQa2d1dGlsVGVzdHModW5pdHRl c3QuVGVzdENhc2UpOgotIAotICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW3BrZ10KLSAKLSsgICAg ZGVmIHRlc3RfZ2V0ZGF0YV9wYXRoX3RyYXZlcnNhbChzZWxmKToKLSsgICAgICAgIHBrZyA9ICd0 ZXN0X2dldGRhdGFfdHJhdmVyc2FsJwotKwotKyAgICAgICAgIyBNYWtlIGEgcGFja2FnZSB3aXRo IHNvbWUgcmVzb3VyY2VzCi0rICAgICAgICBwYWNrYWdlX2RpciA9IG9zLnBhdGguam9pbihzZWxm LmRpcm5hbWUsIHBrZykKLSsgICAgICAgIG9zLm1rZGlyKHBhY2thZ2VfZGlyKQotKyAgICAgICAg IyBFbXB0eSBpbml0LnB5Ci0rICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4ocGFja2FnZV9k aXIsICdfX2luaXRfXy5weScpLCAid2IiKQotKyAgICAgICAgZi5jbG9zZSgpCi0rCi0rICAgICAg ICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotKyAgICAgICAgICAgIHBrZ3V0 aWwuZ2V0X2RhdGEocGtnLCAnLi4vLi4vLi4vZXRjL3Bhc3N3ZCcpCi0rICAgICAgICB3aXRoIHNl bGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgotKyAgICAgICAgICAgIHBrZ3V0aWwuZ2V0X2Rh dGEocGtnLCAnc3ViLy4uLy4uLy4uL2V0Yy9wYXNzd2QnKQotKyAgICAgICAgd2l0aCBzZWxmLmFz c2VydFJhaXNlcyhWYWx1ZUVycm9yKToKLSsgICAgICAgICAgICBwa2d1dGlsLmdldF9kYXRhKHBr Zywgb3MucGF0aC5hYnNwYXRoKCcvZXRjL3Bhc3N3ZCcpKQotKwotKyAgICAgICAgZGVsIHN5cy5t b2R1bGVzW3BrZ10KLSsKLSAgICAgZGVmIHRlc3RfZ2V0ZGF0YV96aXBmaWxlKHNlbGYpOgotICAg ICAgICAgemlwID0gJ3Rlc3RfZ2V0ZGF0YV96aXBmaWxlLnppcCcKLSAgICAgICAgIHBrZyA9ICd0 ZXN0X2dldGRhdGFfemlwZmlsZScKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24t My4xMS4xNi9NaXNjL05FV1MuZC9uZXh0L1NlY3VyaXR5LzIwMjYtMDMtMTYtMTgtMDctMDAuZ2gt aXNzdWUtMTQ2MTIxLnZSYmRyby5yc3QgUHl0aG9uLTMuMTEuMTYtbmV3L01pc2MvTkVXUy5kL25l eHQvU2VjdXJpdHkvMjAyNi0wMy0xNi0xOC0wNy0wMC5naC1pc3N1ZS0xNDYxMjEudlJiZHJvLnJz dAotLS0tIFB5dGhvbi0zLjExLjE2L01pc2MvTkVXUy5kL25leHQvU2VjdXJpdHkvMjAyNi0wMy0x Ni0xOC0wNy0wMC5naC1pc3N1ZS0xNDYxMjEudlJiZHJvLnJzdAkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9NaXNjL05FV1MuZC9uZXh0 L1NlY3VyaXR5LzIwMjYtMDMtMTYtMTgtMDctMDAuZ2gtaXNzdWUtMTQ2MTIxLnZSYmRyby5yc3QJ MjAyNi0wOS0xOCAxOToyMzowOS43NDYyODM0MTEgKzAyMDAKLUBAIC0wLDAgKzEsMyBAQAotKzpm dW5jOmBwa2d1dGlsLmdldF9kYXRhYCBub3cgcmFpc2VzIHJlamVjdHMgKnJlc291cmNlKiBhcmd1 bWVudHMgY29udGFpbmluZyB0aGUKLStwYXJlbnQgZGlyZWN0b3J5IGNvbXBvbmVudHMgb3IgdGhh dCBpcyBhbiBhYnNvbHV0ZSBwYXRoLgotK1RoaXMgYWRkcmVzc2VzIGBDVkUtMjAyNi0zNDc5IDxo dHRwczovL3d3dy5jdmUub3JnL0NWRVJlY29yZD9pZD1DVkUtMjAyNi0zNDc5PmBfLgoKZGlmZiAt LWdpdCBhL0NWRS0yMDI0LTQwMzIucGF0Y2ggYi9DVkUtMjAyNC00MDMyLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWM5ZjI3Li4wMDAwMDAwCi0tLSBhL0NWRS0yMDI0LTQw MzIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMjUgKzAsMCBAQAotZGlmZiAtcnVwTiAtLW5v LWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjkvRG9jL2xpYnJhcnkvaXBhZGRyZXNzLnJzdCBQeXRo b24tMy4xMS45LW5ldy9Eb2MvbGlicmFyeS9pcGFkZHJlc3MucnN0Ci0tLS0gUHl0aG9uLTMuMTEu OS9Eb2MvbGlicmFyeS9pcGFkZHJlc3MucnN0CTIwMjQtMDQtMDIgMTA6MjU6MDQuMDAwMDAwMDAw ICswMjAwCi0rKysgUHl0aG9uLTMuMTEuOS1uZXcvRG9jL2xpYnJhcnkvaXBhZGRyZXNzLnJzdAky MDI0LTA4LTI2IDEwOjEwOjQxLjA0MzY2ODcxOSArMDIwMAotQEAgLTE3OCwxOCArMTc4LDUzIEBA IHdyaXRlIGNvZGUgdGhhdCBoYW5kbGVzIGJvdGggSVAgdmVyc2lvbnMKLSAKLSAgICAuLiBhdHRy aWJ1dGU6OiBpc19wcml2YXRlCi0gCi0tICAgICAgYGBUcnVlYGAgaWYgdGhlIGFkZHJlc3MgaXMg YWxsb2NhdGVkIGZvciBwcml2YXRlIG5ldHdvcmtzLiAgU2VlCi0rICAgICAgYGBUcnVlYGAgaWYg dGhlIGFkZHJlc3MgaXMgZGVmaW5lZCBhcyBub3QgZ2xvYmFsbHkgcmVhY2hhYmxlIGJ5Ci0gICAg ICAgaWFuYS1pcHY0LXNwZWNpYWwtcmVnaXN0cnlfIChmb3IgSVB2NCkgb3IgaWFuYS1pcHY2LXNw ZWNpYWwtcmVnaXN0cnlfCi0tICAgICAgKGZvciBJUHY2KS4KLSsgICAgICAoZm9yIElQdjYpIHdp dGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOgotKwotKyAgICAgICogYGBpc19wcml2YXRlYGAg aXMgYGBGYWxzZWBgIGZvciB0aGUgc2hhcmVkIGFkZHJlc3Mgc3BhY2UgKGBgMTAwLjY0LjAuMC8x MGBgKQotKyAgICAgICogRm9yIElQdjQtbWFwcGVkIElQdjYtYWRkcmVzc2VzIHRoZSBgYGlzX3By aXZhdGVgYCB2YWx1ZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZQotKyAgICAgICAgc2VtYW50aWNzIG9m IHRoZSB1bmRlcmx5aW5nIElQdjQgYWRkcmVzc2VzIGFuZCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv biBob2xkcwotKyAgICAgICAgKHNlZSA6YXR0cjpgSVB2NkFkZHJlc3MuaXB2NF9tYXBwZWRgKTo6 Ci0rCi0rICAgICAgICAgICAgYWRkcmVzcy5pc19wcml2YXRlID09IGFkZHJlc3MuaXB2NF9tYXBw ZWQuaXNfcHJpdmF0ZQotKwotKyAgICAgIGBgaXNfcHJpdmF0ZWBgIGhhcyB2YWx1ZSBvcHBvc2l0 ZSB0byA6YXR0cjpgaXNfZ2xvYmFsYCwgZXhjZXB0IGZvciB0aGUgc2hhcmVkIGFkZHJlc3Mgc3Bh Y2UKLSsgICAgICAoYGAxMDAuNjQuMC4wLzEwYGAgcmFuZ2UpIHdoZXJlIHRoZXkgYXJlIGJvdGgg YGBGYWxzZWBgLgotKwotKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4xMS4xMAotKwotKyAg ICAgICAgIEZpeGVkIHNvbWUgZmFsc2UgcG9zaXRpdmVzIGFuZCBmYWxzZSBuZWdhdGl2ZXMuCi0r Ci0rICAgICAgICAgKiBgYDE5Mi4wLjAuMC8yNGBgIGlzIGNvbnNpZGVyZWQgcHJpdmF0ZSB3aXRo IHRoZSBleGNlcHRpb24gb2YgYGAxOTIuMC4wLjkvMzJgYCBhbmQKLSsgICAgICAgICAgIGBgMTky LjAuMC4xMC8zMmBgIChwcmV2aW91c2x5OiBvbmx5IHRoZSBgYDE5Mi4wLjAuMC8yOWBgIHN1Yi1y YW5nZSB3YXMgY29uc2lkZXJlZCBwcml2YXRlKS4KLSsgICAgICAgICAqIGBgNjQ6ZmY5YjoxOjov NDhgYCBpcyBjb25zaWRlcmVkIHByaXZhdGUuCi0rICAgICAgICAgKiBgYDIwMDI6Oi8xNmBgIGlz IGNvbnNpZGVyZWQgcHJpdmF0ZS4KLSsgICAgICAgICAqIFRoZXJlIGFyZSBleGNlcHRpb25zIHdp dGhpbiBgYDIwMDE6Oi8yM2BgIChvdGhlcndpc2UgY29uc2lkZXJlZCBwcml2YXRlKTogYGAyMDAx OjE6OjEvMTI4YGAsCi0rICAgICAgICAgICBgYDIwMDE6MTo6Mi8xMjhgYCwgYGAyMDAxOjM6Oi8z MmBgLCBgYDIwMDE6NDoxMTI6Oi80OGBgLCBgYDIwMDE6MjA6Oi8yOGBgLCBgYDIwMDE6MzA6Oi8y OGBgLgotKyAgICAgICAgICAgVGhlIGV4Y2VwdGlvbnMgYXJlIG5vdCBjb25zaWRlcmVkIHByaXZh dGUuCi0gCi0gICAgLi4gYXR0cmlidXRlOjogaXNfZ2xvYmFsCi0gCi0tICAgICAgYGBUcnVlYGAg aWYgdGhlIGFkZHJlc3MgaXMgYWxsb2NhdGVkIGZvciBwdWJsaWMgbmV0d29ya3MuICBTZWUKLSsg ICAgICBgYFRydWVgYCBpZiB0aGUgYWRkcmVzcyBpcyBkZWZpbmVkIGFzIGdsb2JhbGx5IHJlYWNo YWJsZSBieQotICAgICAgIGlhbmEtaXB2NC1zcGVjaWFsLXJlZ2lzdHJ5XyAoZm9yIElQdjQpIG9y IGlhbmEtaXB2Ni1zcGVjaWFsLXJlZ2lzdHJ5XwotLSAgICAgIChmb3IgSVB2NikuCi0rICAgICAg KGZvciBJUHY2KSB3aXRoIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOgotKwotKyAgICAgIEZvciBJ UHY0LW1hcHBlZCBJUHY2LWFkZHJlc3NlcyB0aGUgYGBpc19wcml2YXRlYGAgdmFsdWUgaXMgZGV0 ZXJtaW5lZCBieSB0aGUKLSsgICAgICBzZW1hbnRpY3Mgb2YgdGhlIHVuZGVybHlpbmcgSVB2NCBh ZGRyZXNzZXMgYW5kIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIGhvbGRzCi0rICAgICAgKHNlZSA6 YXR0cjpgSVB2NkFkZHJlc3MuaXB2NF9tYXBwZWRgKTo6Ci0rCi0rICAgICAgICAgYWRkcmVzcy5p c19nbG9iYWwgPT0gYWRkcmVzcy5pcHY0X21hcHBlZC5pc19nbG9iYWwKLSsKLSsgICAgICBgYGlz X2dsb2JhbGBgIGhhcyB2YWx1ZSBvcHBvc2l0ZSB0byA6YXR0cjpgaXNfcHJpdmF0ZWAsIGV4Y2Vw dCBmb3IgdGhlIHNoYXJlZCBhZGRyZXNzIHNwYWNlCi0rICAgICAgKGBgMTAwLjY0LjAuMC8xMGBg IHJhbmdlKSB3aGVyZSB0aGV5IGFyZSBib3RoIGBgRmFsc2VgYC4KLSAKLSAgICAgICAuLiB2ZXJz aW9uYWRkZWQ6OiAzLjQKLSAKLSsgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMTEuMTAKLSsK LSsgICAgICAgICBGaXhlZCBzb21lIGZhbHNlIHBvc2l0aXZlcyBhbmQgZmFsc2UgbmVnYXRpdmVz LCBzZWUgOmF0dHI6YGlzX3ByaXZhdGVgIGZvciBkZXRhaWxzLgotKwotICAgIC4uIGF0dHJpYnV0 ZTo6IGlzX3Vuc3BlY2lmaWVkCi0gCi0gICAgICAgYGBUcnVlYGAgaWYgdGhlIGFkZHJlc3MgaXMg dW5zcGVjaWZpZWQuICBTZWUgOlJGQzpgNTczNWAgKGZvciBJUHY0KQotZGlmZiAtcnVwTiAtLW5v LWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjkvRG9jL3doYXRzbmV3LzMuMTEucnN0IFB5dGhvbi0z LjExLjktbmV3L0RvYy93aGF0c25ldy8zLjExLnJzdAotLS0tIFB5dGhvbi0zLjExLjkvRG9jL3do YXRzbmV3LzMuMTEucnN0CTIwMjQtMDQtMDIgMTA6MjU6MDQuMDAwMDAwMDAwICswMjAwCi0rKysg UHl0aG9uLTMuMTEuOS1uZXcvRG9jL3doYXRzbmV3LzMuMTEucnN0CTIwMjQtMDgtMjYgMTA6MTA6 NDEuMDQzNjY4NzE5ICswMjAwCi1AQCAtMjcyNywzICsyNzI3LDEyIEBAIE9wZW5TU0wKLSAqIFdp bmRvd3MgYnVpbGRzIGFuZCBtYWNPUyBpbnN0YWxsZXJzIGZyb20gcHl0aG9uLm9yZyBub3cgdXNl IE9wZW5TU0wgMy4wLgotIAotIC4uIF9saWJiMjogaHR0cHM6Ly93d3cuYmxha2UyLm5ldC8KLSsK LStOb3RhYmxlIGNoYW5nZXMgaW4gMy4xMS4xMAotKz09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0rCi0raXBhZGRyZXNzCi0rLS0tLS0tLS0tCi0rCi0rKiBGaXhlZCBgYGlzX2dsb2JhbGBgIGFu ZCBgYGlzX3ByaXZhdGVgYCBiZWhhdmlvciBpbiBgYElQdjRBZGRyZXNzYGAsCi0rICBgYElQdjZB ZGRyZXNzYGAsIGBgSVB2NE5ldHdvcmtgYCBhbmQgYGBJUHY2TmV0d29ya2BgLgotZGlmZiAtcnVw TiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjkvTGliL2lwYWRkcmVzcy5weSBQeXRob24t My4xMS45LW5ldy9MaWIvaXBhZGRyZXNzLnB5Ci0tLS0gUHl0aG9uLTMuMTEuOS9MaWIvaXBhZGRy ZXNzLnB5CTIwMjQtMDQtMDIgMTA6MjU6MDQuMDAwMDAwMDAwICswMjAwCi0rKysgUHl0aG9uLTMu MTEuOS1uZXcvTGliL2lwYWRkcmVzcy5weQkyMDI0LTA4LTI2IDEwOjEwOjQxLjA0MzY2ODcxOSAr MDIwMAotQEAgLTEwODYsNyArMTA4NiwxMSBAQCBjbGFzcyBfQmFzZU5ldHdvcmsoX0lQQWRkcmVz c0Jhc2UpOgotICAgICAgICAgIiIiCi0gICAgICAgICByZXR1cm4gYW55KHNlbGYubmV0d29ya19h ZGRyZXNzIGluIHByaXZfbmV0d29yayBhbmQKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5icm9h ZGNhc3RfYWRkcmVzcyBpbiBwcml2X25ldHdvcmsKLS0gICAgICAgICAgICAgICAgICAgZm9yIHBy aXZfbmV0d29yayBpbiBzZWxmLl9jb25zdGFudHMuX3ByaXZhdGVfbmV0d29ya3MpCi0rICAgICAg ICAgICAgICAgICAgIGZvciBwcml2X25ldHdvcmsgaW4gc2VsZi5fY29uc3RhbnRzLl9wcml2YXRl X25ldHdvcmtzKSBhbmQgYWxsKAotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXR3b3JrX2Fk ZHJlc3Mgbm90IGluIG5ldHdvcmsgYW5kCi0rICAgICAgICAgICAgICAgICAgICBzZWxmLmJyb2Fk Y2FzdF9hZGRyZXNzIG5vdCBpbiBuZXR3b3JrCi0rICAgICAgICAgICAgICAgICAgICBmb3IgbmV0 d29yayBpbiBzZWxmLl9jb25zdGFudHMuX3ByaXZhdGVfbmV0d29ya3NfZXhjZXB0aW9ucwotKyAg ICAgICAgICAgICAgICApCi0gCi0gICAgIEBwcm9wZXJ0eQotICAgICBkZWYgaXNfZ2xvYmFsKHNl bGYpOgotQEAgLTEzMzMsMTggKzEzMzcsNDEgQEAgY2xhc3MgSVB2NEFkZHJlc3MoX0Jhc2VWNCwg X0Jhc2VBZGRyZXNzKQotICAgICBAcHJvcGVydHkKLSAgICAgQGZ1bmN0b29scy5scnVfY2FjaGUo KQotICAgICBkZWYgaXNfcHJpdmF0ZShzZWxmKToKLS0gICAgICAgICIiIlRlc3QgaWYgdGhpcyBh ZGRyZXNzIGlzIGFsbG9jYXRlZCBmb3IgcHJpdmF0ZSBuZXR3b3Jrcy4KLS0KLS0gICAgICAgIFJl dHVybnM6Ci0tICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBhZGRyZXNzIGlzIHJl c2VydmVkIHBlcgotLSAgICAgICAgICAgIGlhbmEtaXB2NC1zcGVjaWFsLXJlZ2lzdHJ5LgotLQot LSAgICAgICAgIiIiCi0tICAgICAgICByZXR1cm4gYW55KHNlbGYgaW4gbmV0IGZvciBuZXQgaW4g c2VsZi5fY29uc3RhbnRzLl9wcml2YXRlX25ldHdvcmtzKQotKyAgICAgICAgIiIiYGBUcnVlYGAg aWYgdGhlIGFkZHJlc3MgaXMgZGVmaW5lZCBhcyBub3QgZ2xvYmFsbHkgcmVhY2hhYmxlIGJ5Ci0r ICAgICAgICBpYW5hLWlwdjQtc3BlY2lhbC1yZWdpc3RyeV8gKGZvciBJUHY0KSBvciBpYW5hLWlw djYtc3BlY2lhbC1yZWdpc3RyeV8KLSsgICAgICAgIChmb3IgSVB2Nikgd2l0aCB0aGUgZm9sbG93 aW5nIGV4Y2VwdGlvbnM6Ci0rCi0rICAgICAgICAqIGBgaXNfcHJpdmF0ZWBgIGlzIGBgRmFsc2Vg YCBmb3IgYGAxMDAuNjQuMC4wLzEwYGAKLSsgICAgICAgICogRm9yIElQdjQtbWFwcGVkIElQdjYt YWRkcmVzc2VzIHRoZSBgYGlzX3ByaXZhdGVgYCB2YWx1ZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZQot KyAgICAgICAgICAgIHNlbWFudGljcyBvZiB0aGUgdW5kZXJseWluZyBJUHY0IGFkZHJlc3NlcyBh bmQgdGhlIGZvbGxvd2luZyBjb25kaXRpb24gaG9sZHMKLSsgICAgICAgICAgICAoc2VlIDphdHRy OmBJUHY2QWRkcmVzcy5pcHY0X21hcHBlZGApOjoKLSsKLSsgICAgICAgICAgICAgICAgYWRkcmVz cy5pc19wcml2YXRlID09IGFkZHJlc3MuaXB2NF9tYXBwZWQuaXNfcHJpdmF0ZQotKwotKyAgICAg ICAgYGBpc19wcml2YXRlYGAgaGFzIHZhbHVlIG9wcG9zaXRlIHRvIDphdHRyOmBpc19nbG9iYWxg LCBleGNlcHQgZm9yIHRoZSBgYDEwMC42NC4wLjAvMTBgYAotKyAgICAgICAgSVB2NCByYW5nZSB3 aGVyZSB0aGV5IGFyZSBib3RoIGBgRmFsc2VgYC4KLSsgICAgICAgICIiIgotKyAgICAgICAgcmV0 dXJuICgKLSsgICAgICAgICAgICBhbnkoc2VsZiBpbiBuZXQgZm9yIG5ldCBpbiBzZWxmLl9jb25z dGFudHMuX3ByaXZhdGVfbmV0d29ya3MpCi0rICAgICAgICAgICAgYW5kIGFsbChzZWxmIG5vdCBp biBuZXQgZm9yIG5ldCBpbiBzZWxmLl9jb25zdGFudHMuX3ByaXZhdGVfbmV0d29ya3NfZXhjZXB0 aW9ucykKLSsgICAgICAgICkKLSAKLSAgICAgQHByb3BlcnR5Ci0gICAgIEBmdW5jdG9vbHMubHJ1 X2NhY2hlKCkKLSAgICAgZGVmIGlzX2dsb2JhbChzZWxmKToKLSsgICAgICAgICIiImBgVHJ1ZWBg IGlmIHRoZSBhZGRyZXNzIGlzIGRlZmluZWQgYXMgZ2xvYmFsbHkgcmVhY2hhYmxlIGJ5Ci0rICAg ICAgICBpYW5hLWlwdjQtc3BlY2lhbC1yZWdpc3RyeV8gKGZvciBJUHY0KSBvciBpYW5hLWlwdjYt c3BlY2lhbC1yZWdpc3RyeV8KLSsgICAgICAgIChmb3IgSVB2Nikgd2l0aCB0aGUgZm9sbG93aW5n IGV4Y2VwdGlvbjoKLSsKLSsgICAgICAgIEZvciBJUHY0LW1hcHBlZCBJUHY2LWFkZHJlc3NlcyB0 aGUgYGBpc19wcml2YXRlYGAgdmFsdWUgaXMgZGV0ZXJtaW5lZCBieSB0aGUKLSsgICAgICAgIHNl bWFudGljcyBvZiB0aGUgdW5kZXJseWluZyBJUHY0IGFkZHJlc3NlcyBhbmQgdGhlIGZvbGxvd2lu ZyBjb25kaXRpb24gaG9sZHMKLSsgICAgICAgIChzZWUgOmF0dHI6YElQdjZBZGRyZXNzLmlwdjRf bWFwcGVkYCk6OgotKwotKyAgICAgICAgICAgIGFkZHJlc3MuaXNfZ2xvYmFsID09IGFkZHJlc3Mu aXB2NF9tYXBwZWQuaXNfZ2xvYmFsCi0rCi0rICAgICAgICBgYGlzX2dsb2JhbGBgIGhhcyB2YWx1 ZSBvcHBvc2l0ZSB0byA6YXR0cjpgaXNfcHJpdmF0ZWAsIGV4Y2VwdCBmb3IgdGhlIGBgMTAwLjY0 LjAuMC8xMGBgCi0rICAgICAgICBJUHY0IHJhbmdlIHdoZXJlIHRoZXkgYXJlIGJvdGggYGBGYWxz ZWBgLgotKyAgICAgICAgIiIiCi0gICAgICAgICByZXR1cm4gc2VsZiBub3QgaW4gc2VsZi5fY29u c3RhbnRzLl9wdWJsaWNfbmV0d29yayBhbmQgbm90IHNlbGYuaXNfcHJpdmF0ZQotIAotICAgICBA cHJvcGVydHkKLUBAIC0xNTQ4LDEzICsxNTc1LDE1IEBAIGNsYXNzIF9JUHY0Q29uc3RhbnRzOgot IAotICAgICBfcHVibGljX25ldHdvcmsgPSBJUHY0TmV0d29yaygnMTAwLjY0LjAuMC8xMCcpCi0g Ci0rICAgICMgTm90IGdsb2JhbGx5IHJlYWNoYWJsZSBhZGRyZXNzIGJsb2NrcyBsaXN0ZWQgb24K LSsgICAgIyBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9pYW5hLWlwdjQtc3BlY2lh bC1yZWdpc3RyeS9pYW5hLWlwdjQtc3BlY2lhbC1yZWdpc3RyeS54aHRtbAotICAgICBfcHJpdmF0 ZV9uZXR3b3JrcyA9IFsKLSAgICAgICAgIElQdjROZXR3b3JrKCcwLjAuMC4wLzgnKSwKLSAgICAg ICAgIElQdjROZXR3b3JrKCcxMC4wLjAuMC84JyksCi0gICAgICAgICBJUHY0TmV0d29yaygnMTI3 LjAuMC4wLzgnKSwKLSAgICAgICAgIElQdjROZXR3b3JrKCcxNjkuMjU0LjAuMC8xNicpLAotICAg ICAgICAgSVB2NE5ldHdvcmsoJzE3Mi4xNi4wLjAvMTInKSwKLS0gICAgICAgIElQdjROZXR3b3Jr KCcxOTIuMC4wLjAvMjknKSwKLSsgICAgICAgIElQdjROZXR3b3JrKCcxOTIuMC4wLjAvMjQnKSwK LSAgICAgICAgIElQdjROZXR3b3JrKCcxOTIuMC4wLjE3MC8zMScpLAotICAgICAgICAgSVB2NE5l dHdvcmsoJzE5Mi4wLjIuMC8yNCcpLAotICAgICAgICAgSVB2NE5ldHdvcmsoJzE5Mi4xNjguMC4w LzE2JyksCi1AQCAtMTU2NSw2ICsxNTk0LDExIEBAIGNsYXNzIF9JUHY0Q29uc3RhbnRzOgotICAg ICAgICAgSVB2NE5ldHdvcmsoJzI1NS4yNTUuMjU1LjI1NS8zMicpLAotICAgICAgICAgXQotIAot KyAgICBfcHJpdmF0ZV9uZXR3b3Jrc19leGNlcHRpb25zID0gWwotKyAgICAgICAgSVB2NE5ldHdv cmsoJzE5Mi4wLjAuOS8zMicpLAotKyAgICAgICAgSVB2NE5ldHdvcmsoJzE5Mi4wLjAuMTAvMzIn KSwKLSsgICAgXQotKwotICAgICBfcmVzZXJ2ZWRfbmV0d29yayA9IElQdjROZXR3b3JrKCcyNDAu MC4wLjAvNCcpCi0gCi0gICAgIF91bnNwZWNpZmllZF9hZGRyZXNzID0gSVB2NEFkZHJlc3MoJzAu MC4wLjAnKQotQEAgLTIwMTAsMjcgKzIwNDQsNDIgQEAgY2xhc3MgSVB2NkFkZHJlc3MoX0Jhc2VW NiwgX0Jhc2VBZGRyZXNzKQotICAgICBAcHJvcGVydHkKLSAgICAgQGZ1bmN0b29scy5scnVfY2Fj aGUoKQotICAgICBkZWYgaXNfcHJpdmF0ZShzZWxmKToKLS0gICAgICAgICIiIlRlc3QgaWYgdGhp cyBhZGRyZXNzIGlzIGFsbG9jYXRlZCBmb3IgcHJpdmF0ZSBuZXR3b3Jrcy4KLSsgICAgICAgICIi ImBgVHJ1ZWBgIGlmIHRoZSBhZGRyZXNzIGlzIGRlZmluZWQgYXMgbm90IGdsb2JhbGx5IHJlYWNo YWJsZSBieQotKyAgICAgICAgaWFuYS1pcHY0LXNwZWNpYWwtcmVnaXN0cnlfIChmb3IgSVB2NCkg b3IgaWFuYS1pcHY2LXNwZWNpYWwtcmVnaXN0cnlfCi0rICAgICAgICAoZm9yIElQdjYpIHdpdGgg dGhlIGZvbGxvd2luZyBleGNlcHRpb25zOgotKwotKyAgICAgICAgKiBgYGlzX3ByaXZhdGVgYCBp cyBgYEZhbHNlYGAgZm9yIGBgMTAwLjY0LjAuMC8xMGBgCi0rICAgICAgICAqIEZvciBJUHY0LW1h cHBlZCBJUHY2LWFkZHJlc3NlcyB0aGUgYGBpc19wcml2YXRlYGAgdmFsdWUgaXMgZGV0ZXJtaW5l ZCBieSB0aGUKLSsgICAgICAgICAgICBzZW1hbnRpY3Mgb2YgdGhlIHVuZGVybHlpbmcgSVB2NCBh ZGRyZXNzZXMgYW5kIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIGhvbGRzCi0rICAgICAgICAgICAg KHNlZSA6YXR0cjpgSVB2NkFkZHJlc3MuaXB2NF9tYXBwZWRgKTo6Ci0gCi0tICAgICAgICBSZXR1 cm5zOgotLSAgICAgICAgICAgIEEgYm9vbGVhbiwgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyByZXNl cnZlZCBwZXIKLS0gICAgICAgICAgICBpYW5hLWlwdjYtc3BlY2lhbC1yZWdpc3RyeSwgb3IgaXMg aXB2NF9tYXBwZWQgYW5kIGlzCi0tICAgICAgICAgICAgcmVzZXJ2ZWQgaW4gdGhlIGlhbmEtaXB2 NC1zcGVjaWFsLXJlZ2lzdHJ5LgotKyAgICAgICAgICAgICAgICBhZGRyZXNzLmlzX3ByaXZhdGUg PT0gYWRkcmVzcy5pcHY0X21hcHBlZC5pc19wcml2YXRlCi0gCi0rICAgICAgICBgYGlzX3ByaXZh dGVgYCBoYXMgdmFsdWUgb3Bwb3NpdGUgdG8gOmF0dHI6YGlzX2dsb2JhbGAsIGV4Y2VwdCBmb3Ig dGhlIGBgMTAwLjY0LjAuMC8xMGBgCi0rICAgICAgICBJUHY0IHJhbmdlIHdoZXJlIHRoZXkgYXJl IGJvdGggYGBGYWxzZWBgLgotICAgICAgICAgIiIiCi0gICAgICAgICBpcHY0X21hcHBlZCA9IHNl bGYuaXB2NF9tYXBwZWQKLSAgICAgICAgIGlmIGlwdjRfbWFwcGVkIGlzIG5vdCBOb25lOgotICAg ICAgICAgICAgIHJldHVybiBpcHY0X21hcHBlZC5pc19wcml2YXRlCi0tICAgICAgICByZXR1cm4g YW55KHNlbGYgaW4gbmV0IGZvciBuZXQgaW4gc2VsZi5fY29uc3RhbnRzLl9wcml2YXRlX25ldHdv cmtzKQotKyAgICAgICAgcmV0dXJuICgKLSsgICAgICAgICAgICBhbnkoc2VsZiBpbiBuZXQgZm9y IG5ldCBpbiBzZWxmLl9jb25zdGFudHMuX3ByaXZhdGVfbmV0d29ya3MpCi0rICAgICAgICAgICAg YW5kIGFsbChzZWxmIG5vdCBpbiBuZXQgZm9yIG5ldCBpbiBzZWxmLl9jb25zdGFudHMuX3ByaXZh dGVfbmV0d29ya3NfZXhjZXB0aW9ucykKLSsgICAgICAgICkKLSAKLSAgICAgQHByb3BlcnR5Ci0g ICAgIGRlZiBpc19nbG9iYWwoc2VsZik6Ci0tICAgICAgICAiIiJUZXN0IGlmIHRoaXMgYWRkcmVz cyBpcyBhbGxvY2F0ZWQgZm9yIHB1YmxpYyBuZXR3b3Jrcy4KLSsgICAgICAgICIiImBgVHJ1ZWBg IGlmIHRoZSBhZGRyZXNzIGlzIGRlZmluZWQgYXMgZ2xvYmFsbHkgcmVhY2hhYmxlIGJ5Ci0rICAg ICAgICBpYW5hLWlwdjQtc3BlY2lhbC1yZWdpc3RyeV8gKGZvciBJUHY0KSBvciBpYW5hLWlwdjYt c3BlY2lhbC1yZWdpc3RyeV8KLSsgICAgICAgIChmb3IgSVB2Nikgd2l0aCB0aGUgZm9sbG93aW5n IGV4Y2VwdGlvbjoKLSsKLSsgICAgICAgIEZvciBJUHY0LW1hcHBlZCBJUHY2LWFkZHJlc3NlcyB0 aGUgYGBpc19wcml2YXRlYGAgdmFsdWUgaXMgZGV0ZXJtaW5lZCBieSB0aGUKLSsgICAgICAgIHNl bWFudGljcyBvZiB0aGUgdW5kZXJseWluZyBJUHY0IGFkZHJlc3NlcyBhbmQgdGhlIGZvbGxvd2lu ZyBjb25kaXRpb24gaG9sZHMKLSsgICAgICAgIChzZWUgOmF0dHI6YElQdjZBZGRyZXNzLmlwdjRf bWFwcGVkYCk6OgotIAotLSAgICAgICAgUmV0dXJuczoKLS0gICAgICAgICAgICBBIGJvb2xlYW4s IHRydWUgaWYgdGhlIGFkZHJlc3MgaXMgbm90IHJlc2VydmVkIHBlcgotLSAgICAgICAgICAgIGlh bmEtaXB2Ni1zcGVjaWFsLXJlZ2lzdHJ5LgotKyAgICAgICAgICAgIGFkZHJlc3MuaXNfZ2xvYmFs ID09IGFkZHJlc3MuaXB2NF9tYXBwZWQuaXNfZ2xvYmFsCi0gCi0rICAgICAgICBgYGlzX2dsb2Jh bGBgIGhhcyB2YWx1ZSBvcHBvc2l0ZSB0byA6YXR0cjpgaXNfcHJpdmF0ZWAsIGV4Y2VwdCBmb3Ig dGhlIGBgMTAwLjY0LjAuMC8xMGBgCi0rICAgICAgICBJUHY0IHJhbmdlIHdoZXJlIHRoZXkgYXJl IGJvdGggYGBGYWxzZWBgLgotICAgICAgICAgIiIiCi0gICAgICAgICByZXR1cm4gbm90IHNlbGYu aXNfcHJpdmF0ZQotIAotQEAgLTIyNzEsMTkgKzIzMjAsMzEgQEAgY2xhc3MgX0lQdjZDb25zdGFu dHM6Ci0gCi0gICAgIF9tdWx0aWNhc3RfbmV0d29yayA9IElQdjZOZXR3b3JrKCdmZjAwOjovOCcp Ci0gCi0rICAgICMgTm90IGdsb2JhbGx5IHJlYWNoYWJsZSBhZGRyZXNzIGJsb2NrcyBsaXN0ZWQg b24KLSsgICAgIyBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9pYW5hLWlwdjYtc3Bl Y2lhbC1yZWdpc3RyeS9pYW5hLWlwdjYtc3BlY2lhbC1yZWdpc3RyeS54aHRtbAotICAgICBfcHJp dmF0ZV9uZXR3b3JrcyA9IFsKLSAgICAgICAgIElQdjZOZXR3b3JrKCc6OjEvMTI4JyksCi0gICAg ICAgICBJUHY2TmV0d29yaygnOjovMTI4JyksCi0gICAgICAgICBJUHY2TmV0d29yaygnOjpmZmZm OjA6MC85NicpLAotKyAgICAgICAgSVB2Nk5ldHdvcmsoJzY0OmZmOWI6MTo6LzQ4JyksCi0gICAg ICAgICBJUHY2TmV0d29yaygnMTAwOjovNjQnKSwKLSAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAx OjovMjMnKSwKLS0gICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOjI6Oi80OCcpLAotICAgICAgICAg SVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjovMzInKSwKLS0gICAgICAgIElQdjZOZXR3b3JrKCcyMDAx OjEwOjovMjgnKSwKLSsgICAgICAgICMgSUFOQSBzYXlzIE4vQSwgbGV0J3MgY29uc2lkZXIgaXQg bm90IGdsb2JhbGx5IHJlYWNoYWJsZSB0byBiZSBzYWZlCi0rICAgICAgICBJUHY2TmV0d29yaygn MjAwMjo6LzE2JyksCi0gICAgICAgICBJUHY2TmV0d29yaygnZmMwMDo6LzcnKSwKLSAgICAgICAg IElQdjZOZXR3b3JrKCdmZTgwOjovMTAnKSwKLSAgICAgICAgIF0KLSAKLSsgICAgX3ByaXZhdGVf bmV0d29ya3NfZXhjZXB0aW9ucyA9IFsKLSsgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOjE6OjEv MTI4JyksCi0rICAgICAgICBJUHY2TmV0d29yaygnMjAwMToxOjoyLzEyOCcpLAotKyAgICAgICAg SVB2Nk5ldHdvcmsoJzIwMDE6Mzo6LzMyJyksCi0rICAgICAgICBJUHY2TmV0d29yaygnMjAwMTo0 OjExMjo6LzQ4JyksCi0rICAgICAgICBJUHY2TmV0d29yaygnMjAwMToyMDo6LzI4JyksCi0rICAg ICAgICBJUHY2TmV0d29yaygnMjAwMTozMDo6LzI4JyksCi0rICAgIF0KLSsKLSAgICAgX3Jlc2Vy dmVkX25ldHdvcmtzID0gWwotICAgICAgICAgSVB2Nk5ldHdvcmsoJzo6LzgnKSwgSVB2Nk5ldHdv cmsoJzEwMDo6LzgnKSwKLSAgICAgICAgIElQdjZOZXR3b3JrKCcyMDA6Oi83JyksIElQdjZOZXR3 b3JrKCc0MDA6Oi82JyksCi1kaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEu OS9MaWIvdGVzdC90ZXN0X2lwYWRkcmVzcy5weSBQeXRob24tMy4xMS45LW5ldy9MaWIvdGVzdC90 ZXN0X2lwYWRkcmVzcy5weQotLS0tIFB5dGhvbi0zLjExLjkvTGliL3Rlc3QvdGVzdF9pcGFkZHJl c3MucHkJMjAyNC0wNC0wMiAxMDoyNTowNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBQeXRob24tMy4x MS45LW5ldy9MaWIvdGVzdC90ZXN0X2lwYWRkcmVzcy5weQkyMDI0LTA4LTI2IDEwOjEwOjQxLjA0 NDY2ODcxOCArMDIwMAotQEAgLTIyNjksNiArMjI2OSwxMCBAQCBjbGFzcyBJcGFkZHJVbml0VGVz dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlw YWRkcmVzcy5pcF9hZGRyZXNzKAotICAgICAgICAgICAgICAgICAnMTcyLjMxLjI1NS4yNTUnKS5p c19wcml2YXRlKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlw X2FkZHJlc3MoJzE3Mi4zMi4wLjAnKS5pc19wcml2YXRlKQotKyAgICAgICAgc2VsZi5hc3NlcnRG YWxzZShpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTkyLjAuMC4wJykuaXNfZ2xvYmFsKQotKyAgICAg ICAgc2VsZi5hc3NlcnRUcnVlKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxOTIuMC4wLjknKS5pc19n bG9iYWwpCi0rICAgICAgICBzZWxmLmFzc2VydFRydWUoaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzE5 Mi4wLjAuMTAnKS5pc19nbG9iYWwpCi0rICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlwYWRkcmVz cy5pcF9hZGRyZXNzKCcxOTIuMC4wLjI1NScpLmlzX2dsb2JhbCkKLSAKLSAgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoVHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlw X2FkZHJlc3MoJzE2OS4yNTQuMTAwLjIwMCcpLmlzX2xpbmtfbG9jYWwpCi1AQCAtMjI5NCw2ICsy Mjk4LDcgQEAgY2xhc3MgSXBhZGRyVW5pdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygiMTY5LjI1NC4w LjAvMTYiKS5pc19wcml2YXRlKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFk ZHJlc3MuaXBfbmV0d29yaygiMTcyLjE2LjAuMC8xMiIpLmlzX3ByaXZhdGUpCi0gICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCIxOTIuMC4wLjAvMjki KS5pc19wcml2YXRlKQotKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNz LmlwX25ldHdvcmsoIjE5Mi4wLjAuOS8zMiIpLmlzX3ByaXZhdGUpCi0gICAgICAgICBzZWxmLmFz c2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCIxOTIuMC4wLjE3MC8zMSIpLmlz X3ByaXZhdGUpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9u ZXR3b3JrKCIxOTIuMC4yLjAvMjQiKS5pc19wcml2YXRlKQotICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygiMTkyLjE2OC4wLjAvMTYiKS5pc19wcml2 YXRlKQotQEAgLTIzMTAsOCArMjMxNSw4IEBAIGNsYXNzIElwYWRkclVuaXRUZXN0KHVuaXR0ZXN0 LlRlc3RDYXNlKToKLSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlw X25ldHdvcmsoIjo6LzEyOCIpLmlzX3ByaXZhdGUpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFs KFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCI6OmZmZmY6MDowLzk2IikuaXNfcHJpdmF0ZSkK LSAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX25ldHdvcmsoIjEw MDo6LzY0IikuaXNfcHJpdmF0ZSkKLS0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBh ZGRyZXNzLmlwX25ldHdvcmsoIjIwMDE6Oi8yMyIpLmlzX3ByaXZhdGUpCi0gICAgICAgICBzZWxm LmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCIyMDAxOjI6Oi80OCIpLmlz X3ByaXZhdGUpCi0rICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBf bmV0d29yaygiMjAwMTozOjovNDgiKS5pc19wcml2YXRlKQotICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygiMjAwMTpkYjg6Oi8zMiIpLmlzX3ByaXZh dGUpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3Jr KCIyMDAxOjEwOjovMjgiKS5pc19wcml2YXRlKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChU cnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygiZmMwMDo6LzciKS5pc19wcml2YXRlKQotQEAgLTIz OTAsNiArMjM5NSwyMCBAQCBjbGFzcyBJcGFkZHJVbml0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6 Ci0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcw OjowJykuaXNfdW5zcGVjaWZpZWQpCi0gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBp cGFkZHJlc3MuaXBfYWRkcmVzcygnOjoxJykuaXNfdW5zcGVjaWZpZWQpCi0gCi0rICAgICAgICBz ZWxmLmFzc2VydEZhbHNlKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc2NDpmZjliOjE6OicpLmlzX2ds b2JhbCkKLSsgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIw MDE6OicpLmlzX2dsb2JhbCkKLSsgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcGFkZHJlc3MuaXBf YWRkcmVzcygnMjAwMToxOjoxJykuaXNfZ2xvYmFsKQotKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl KGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcyMDAxOjE6OjInKS5pc19nbG9iYWwpCi0rICAgICAgICBz ZWxmLmFzc2VydEZhbHNlKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcyMDAxOjI6OicpLmlzX2dsb2Jh bCkKLSsgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjAwMToz OjonKS5pc19nbG9iYWwpCi0rICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlwYWRkcmVzcy5pcF9h ZGRyZXNzKCcyMDAxOjQ6OicpLmlzX2dsb2JhbCkKLSsgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShp cGFkZHJlc3MuaXBfYWRkcmVzcygnMjAwMTo0OjExMjo6JykuaXNfZ2xvYmFsKQotKyAgICAgICAg c2VsZi5hc3NlcnRGYWxzZShpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjAwMToxMDo6JykuaXNfZ2xv YmFsKQotKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcyMDAx OjIwOjonKS5pc19nbG9iYWwpCi0rICAgICAgICBzZWxmLmFzc2VydFRydWUoaXBhZGRyZXNzLmlw X2FkZHJlc3MoJzIwMDE6MzA6OicpLmlzX2dsb2JhbCkKLSsgICAgICAgIHNlbGYuYXNzZXJ0RmFs c2UoaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIwMDE6NDA6OicpLmlzX2dsb2JhbCkKLSsgICAgICAg IHNlbGYuYXNzZXJ0RmFsc2UoaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIwMDI6OicpLmlzX2dsb2Jh bCkKLSsKLSAgICAgICAgICMgc29tZSBnZW5lcmljIElFVEYgcmVzZXJ2ZWQgYWRkcmVzc2VzCi0g ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxMDA6 OicpLmlzX3Jlc2VydmVkKQotICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJl c3MuaXBfbmV0d29yaygnNDAwMDo6MS8xMjgnKS5pc19yZXNlcnZlZCkKLWRpZmYgLXJ1cE4gLS1u by1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS45L01pc2MvTkVXUy5kL25leHQvTGlicmFyeS8yMDI0 LTAzLTE0LTAxLTM4LTQ0LmdoLWlzc3VlLTExMzE3MS5WRm5PYnoucnN0IFB5dGhvbi0zLjExLjkt bmV3L01pc2MvTkVXUy5kL25leHQvTGlicmFyeS8yMDI0LTAzLTE0LTAxLTM4LTQ0LmdoLWlzc3Vl LTExMzE3MS5WRm5PYnoucnN0Ci0tLS0gUHl0aG9uLTMuMTEuOS9NaXNjL05FV1MuZC9uZXh0L0xp YnJhcnkvMjAyNC0wMy0xNC0wMS0zOC00NC5naC1pc3N1ZS0xMTMxNzEuVkZuT2J6LnJzdAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIFB5dGhvbi0zLjExLjktbmV3L01p c2MvTkVXUy5kL25leHQvTGlicmFyeS8yMDI0LTAzLTE0LTAxLTM4LTQ0LmdoLWlzc3VlLTExMzE3 MS5WRm5PYnoucnN0CTIwMjQtMDgtMjYgMTA6MTA6NDEuMDQ0NjY4NzE4ICswMjAwCi1AQCAtMCww ICsxLDkgQEAKLStGaXhlZCB2YXJpb3VzIGZhbHNlIHBvc2l0aXZlcyBhbmQgZmFsc2UgbmVnYXRp dmVzIGluCi0rCi0rKiA6YXR0cjpgaXBhZGRyZXNzLklQdjRBZGRyZXNzLmlzX3ByaXZhdGVgIChz ZWUgdGhlc2UgZG9jcyBmb3IgZGV0YWlscykKLSsqIDphdHRyOmBpcGFkZHJlc3MuSVB2NEFkZHJl c3MuaXNfZ2xvYmFsYAotKyogOmF0dHI6YGlwYWRkcmVzcy5JUHY2QWRkcmVzcy5pc19wcml2YXRl YAotKyogOmF0dHI6YGlwYWRkcmVzcy5JUHY2QWRkcmVzcy5pc19nbG9iYWxgCi0rCi0rQWxzbyBp biB0aGUgY29ycmVzcG9uZGluZyA6Y2xhc3M6YGlwYWRkcmVzcy5JUHY0TmV0d29ya2AgYW5kIDpj bGFzczpgaXBhZGRyZXNzLklQdjZOZXR3b3JrYAotK2F0dHJpYnV0ZXMuCgpkaWZmIC0tZ2l0IGEv ZTA3OTkzNTI4MjMyODlmYWZiODEzMTM0MWFiZDc1MTkyM2VlOWMwOC5wYXRjaCBiL2UwNzk5MzUy ODIzMjg5ZmFmYjgxMzEzNDFhYmQ3NTE5MjNlZTljMDgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDk2NGY0NTAuLjAwMDAwMDAKLS0tIGEvZTA3OTkzNTI4MjMyODlmYWZiODEz MTM0MWFiZDc1MTkyM2VlOWMwOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNyArMCwwIEBA Ci1kaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvTWlzYy9ORVdTLmQv bmV4dC9MaWJyYXJ5LzIwMjQtMDYtMDQtMTktMDMtMjUuZ2gtaXNzdWUtMTEyNjcyLksyWGZaSC5y c3QgUHl0aG9uLTMuMTEuMTYtbmV3L01pc2MvTkVXUy5kL25leHQvTGlicmFyeS8yMDI0LTA2LTA0 LTE5LTAzLTI1LmdoLWlzc3VlLTExMjY3Mi5LMlhmWkgucnN0Ci0tLS0gUHl0aG9uLTMuMTEuMTYv TWlzYy9ORVdTLmQvbmV4dC9MaWJyYXJ5LzIwMjQtMDYtMDQtMTktMDMtMjUuZ2gtaXNzdWUtMTEy NjcyLksyWGZaSC5yc3QJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBQ eXRob24tMy4xMS4xNi1uZXcvTWlzYy9ORVdTLmQvbmV4dC9MaWJyYXJ5LzIwMjQtMDYtMDQtMTkt MDMtMjUuZ2gtaXNzdWUtMTEyNjcyLksyWGZaSC5yc3QJMjAyNi0wOS0xOCAxOToyMzowOS40OTI4 ODIwNjggKzAyMDAKLUBAIC0wLDAgKzEgQEAKLStTdXBwb3J0IGJ1aWxkaW5nIDptb2Q6YHRraW50 ZXJgIHdpdGggVGNsIDkuMC4KLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x MS4xNi9Nb2R1bGVzL190a2ludGVyLmMgUHl0aG9uLTMuMTEuMTYtbmV3L01vZHVsZXMvX3RraW50 ZXIuYwotLS0tIFB5dGhvbi0zLjExLjE2L01vZHVsZXMvX3RraW50ZXIuYwkyMDI2LTA4LTEzIDAx OjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9Nb2R1bGVzL190 a2ludGVyLmMJMjAyNi0wOS0xOCAxOToyMzowOS40OTMxODAwMzggKzAyMDAKLUBAIC02Niw2ICs2 NiwxMiBAQCBDb3B5cmlnaHQgKEMpIDE5OTQgU3RlZW4gTHVtaG9sdC4KLSAjZGVmaW5lIFVTRV9E RVBSRUNBVEVEX1RPTU1BVEhfQVBJIDEKLSAjZW5kaWYKLSAKLSsvLyBBcyBzdWdnZXN0ZWQgYnkg aHR0cHM6Ly9jb3JlLnRjbC1sYW5nLm9yZy90Y2wvd2lraT9uYW1lPU1pZ3JhdGluZytDK2V4dGVu c2lvbnMrdG8rVGNsKzkKLSsjaWZuZGVmIFRDTF9TSVpFX01BWAotK3R5cGVkZWYgaW50IFRjbF9T aXplOwotKyNkZWZpbmUgVENMX1NJWkVfTUFYIElOVF9NQVgKLSsjZW5kaWYKLSsKLSAjaWYgIShk ZWZpbmVkKE1TX1dJTkRPV1MpIHx8IGRlZmluZWQoX19DWUdXSU5fXykpCi0gI2RlZmluZSBIQVZF X0NSRUFURUZJTEVIQU5ETEVSCi0gI2VuZGlmCi1AQCAtNDkyLDcgKzQ5OCw3IEBAIHVuaWNvZGVG cm9tVGNsU3RyaW5nKGNvbnN0IGNoYXIgKnMpCi0gc3RhdGljIFB5T2JqZWN0ICoKLSB1bmljb2Rl RnJvbVRjbE9iaihUY2xfT2JqICp2YWx1ZSkKLSB7Ci0tICAgIGludCBsZW47Ci0rICAgIFRjbF9T aXplIGxlbjsKLSAjaWYgVVNFX1RDTF9VTklDT0RFCi0gICAgIGludCBieXRlb3JkZXIgPSBOQVRJ VkVfQllURU9SREVSOwotICAgICBjb25zdCBUY2xfVW5pQ2hhciAqdSA9IFRjbF9HZXRVbmljb2Rl RnJvbU9iaih2YWx1ZSwgJmxlbik7Ci1AQCAtNTIwLDYgKzUyNiwxMCBAQCBjbGFzcyBfdGtpbnRl ci50a3RpbWVydG9rZW4gIlRrdHRPYmplY3QKLSAKLSAvKioqKiBUa2FwcCBPYmplY3QgKioqKi8K LSAKLSsjaWYgVEtfTUFKT1JfVkVSU0lPTiA+PSA5Ci0raW50IFRjbF9BcHBJbml0KFRjbF9JbnRl cnAgKik7Ci0rI2VuZGlmCi0rCi0gI2lmbmRlZiBXSVRIX0FQUElOSVQKLSBpbnQKLSBUY2xfQXBw SW5pdChUY2xfSW50ZXJwICppbnRlcnApCi1AQCAtMTE1MCw3ICsxMTYwLDcgQEAgRnJvbU9iaihU a2FwcE9iamVjdCAqdGthcHAsIFRjbF9PYmogKnZhbAotICAgICB9Ci0gCi0gICAgIGlmICh2YWx1 ZS0+dHlwZVB0ciA9PSB0a2FwcC0+Qnl0ZUFycmF5VHlwZSkgewotLSAgICAgICAgaW50IHNpemU7 Ci0rICAgICAgICBUY2xfU2l6ZSBzaXplOwotICAgICAgICAgY2hhciAqZGF0YSA9IChjaGFyKilU Y2xfR2V0Qnl0ZUFycmF5RnJvbU9iaih2YWx1ZSwgJnNpemUpOwotICAgICAgICAgcmV0dXJuIFB5 Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoZGF0YSwgc2l6ZSk7Ci0gICAgIH0KLUBAIC0xMTg0LDgg KzExOTQsOCBAQCBGcm9tT2JqKFRrYXBwT2JqZWN0ICp0a2FwcCwgVGNsX09iaiAqdmFsCi0gICAg IH0KLSAKLSAgICAgaWYgKHZhbHVlLT50eXBlUHRyID09IHRrYXBwLT5MaXN0VHlwZSkgewotLSAg ICAgICAgaW50IHNpemU7Ci0tICAgICAgICBpbnQgaSwgc3RhdHVzOwotKyAgICAgICAgVGNsX1Np emUgaSwgc2l6ZTsKLSsgICAgICAgIGludCBzdGF0dXM7Ci0gICAgICAgICBQeU9iamVjdCAqZWxl bTsKLSAgICAgICAgIFRjbF9PYmogKnRjbF9lbGVtOwotIAotQEAgLTEyNTAsOSArMTI2MCw5IEBA IHR5cGVkZWYgc3RydWN0IFRrYXBwX0NhbGxFdmVudCB7Ci0gfSBUa2FwcF9DYWxsRXZlbnQ7Ci0g Ci0gc3RhdGljIHZvaWQKLS1Ua2FwcF9DYWxsRGVhbGxvY0FyZ3MoVGNsX09iaioqIG9ianYsIFRj bF9PYmoqKiBvYmpTdG9yZSwgaW50IG9iamMpCi0rVGthcHBfQ2FsbERlYWxsb2NBcmdzKFRjbF9P YmoqKiBvYmp2LCBUY2xfT2JqKiogb2JqU3RvcmUsIFRjbF9TaXplIG9iamMpCi0gewotLSAgICBp bnQgaTsKLSsgICAgVGNsX1NpemUgaTsKLSAgICAgZm9yIChpID0gMDsgaSA8IG9iamM7IGkrKykK LSAgICAgICAgIFRjbF9EZWNyUmVmQ291bnQob2JqdltpXSk7Ci0gICAgIGlmIChvYmp2ICE9IG9i alN0b3JlKQotQEAgLTEyNjMsNyArMTI3Myw3IEBAIFRrYXBwX0NhbGxEZWFsbG9jQXJncyhUY2xf T2JqKiogb2JqdiwgVGMKLSAgICBpbnRlcnByZXRlciB0aHJlYWQsIHdoaWNoIG1heSBvciBtYXkg bm90IGJlIHRoZSBjYWxsaW5nIHRocmVhZC4gKi8KLSAKLSBzdGF0aWMgVGNsX09iaioqCi0tVGth cHBfQ2FsbEFyZ3MoUHlPYmplY3QgKmFyZ3MsIFRjbF9PYmoqKiBvYmpTdG9yZSwgaW50ICpwb2Jq YykKLStUa2FwcF9DYWxsQXJncyhQeU9iamVjdCAqYXJncywgVGNsX09iaioqIG9ialN0b3JlLCBU Y2xfU2l6ZSAqcG9iamMpCi0gewotICAgICBUY2xfT2JqICoqb2JqdiA9IG9ialN0b3JlOwotICAg ICBQeV9zc2l6ZV90IG9iamMgPSAwLCBpOwotQEAgLTEzMTEsMTAgKzEzMjEsMTAgQEAgVGthcHBf Q2FsbEFyZ3MoUHlPYmplY3QgKmFyZ3MsIFRjbF9PYmoqKgotICAgICAgICAgICAgIFRjbF9JbmNy UmVmQ291bnQob2JqdltpXSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLS0gICAgKnBvYmpjID0gKGlu dClvYmpjOwotKyAgICAqcG9iamMgPSAoVGNsX1NpemUpb2JqYzsKLSAgICAgcmV0dXJuIG9ianY7 Ci0gZmluYWxseToKLS0gICAgVGthcHBfQ2FsbERlYWxsb2NBcmdzKG9ianYsIG9ialN0b3JlLCAo aW50KW9iamMpOwotKyAgICBUa2FwcF9DYWxsRGVhbGxvY0FyZ3Mob2Jqdiwgb2JqU3RvcmUsIChU Y2xfU2l6ZSlvYmpjKTsKLSAgICAgcmV0dXJuIE5VTEw7Ci0gfQotIAotQEAgLTEzNTcsNyArMTM2 Nyw3IEBAIFRrYXBwX0NhbGxQcm9jKFRrYXBwX0NhbGxFdmVudCAqZSwgaW50IGYKLSB7Ci0gICAg IFRjbF9PYmogKm9ialN0b3JlW0FSR1NaXTsKLSAgICAgVGNsX09iaiAqKm9ianY7Ci0tICAgIGlu dCBvYmpjOwotKyAgICBUY2xfU2l6ZSBvYmpjOwotICAgICBpbnQgaTsKLSAgICAgRU5URVJfUFlU SE9OCi0gICAgIG9ianYgPSBUa2FwcF9DYWxsQXJncyhlLT5hcmdzLCBvYmpTdG9yZSwgJm9iamMp OwotQEAgLTE0MDgsNyArMTQxOCw3IEBAIFRrYXBwX0NhbGwoUHlPYmplY3QgKnNlbGZwdHIsIFB5 T2JqZWN0ICoKLSB7Ci0gICAgIFRjbF9PYmogKm9ialN0b3JlW0FSR1NaXTsKLSAgICAgVGNsX09i aiAqKm9ianYgPSBOVUxMOwotLSAgICBpbnQgb2JqYywgaTsKLSsgICAgVGNsX1NpemUgb2JqYzsK LSAgICAgUHlPYmplY3QgKnJlcyA9IE5VTEw7Ci0gICAgIFRrYXBwT2JqZWN0ICpzZWxmID0gKFRr YXBwT2JqZWN0KilzZWxmcHRyOwotICAgICBpbnQgZmxhZ3MgPSBUQ0xfRVZBTF9ESVJFQ1QgfCBU Q0xfRVZBTF9HTE9CQUw7Ci1AQCAtMTQ1NCw2ICsxNDY0LDcgQEAgVGthcHBfQ2FsbChQeU9iamVj dCAqc2VsZnB0ciwgUHlPYmplY3QgKgotICAgICBlbHNlCi0gICAgIHsKLSAKLSsgICAgICAgIGlu dCBpOwotICAgICAgICAgb2JqdiA9IFRrYXBwX0NhbGxBcmdzKGFyZ3MsIG9ialN0b3JlLCAmb2Jq Yyk7Ci0gICAgICAgICBpZiAoIW9ianYpCi0gICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAt MjEzOSwxMyArMjE1MCwxMiBAQCBfdGtpbnRlcl90a2FwcF9zcGxpdGxpc3QoVGthcHBPYmplY3Qg KnNlCi0gLypbY2xpbmljIGVuZCBnZW5lcmF0ZWQgY29kZTogb3V0cHV0PTEzYjUxZDM0Mzg2ZDM2 ZmIgaW5wdXQ9MmIyZTEzMzUxZTNjMGI1M10qLwotIHsKLSAgICAgY2hhciAqbGlzdDsKLS0gICAg aW50IGFyZ2M7Ci0rICAgIFRjbF9TaXplIGFyZ2MsIGk7Ci0gICAgIGNvbnN0IGNoYXIgKiphcmd2 OwotICAgICBQeU9iamVjdCAqdjsKLS0gICAgaW50IGk7Ci0gCi0gICAgIGlmIChQeVRjbE9iamVj dF9DaGVjayhhcmcpKSB7Ci0tICAgICAgICBpbnQgb2JqYzsKLSsgICAgICAgIFRjbF9TaXplIG9i amM7Ci0gICAgICAgICBUY2xfT2JqICoqb2JqdjsKLSAgICAgICAgIGlmIChUY2xfTGlzdE9iakdl dEVsZW1lbnRzKFRrYXBwX0ludGVycChzZWxmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgoUHlUY2xPYmplY3QqKWFyZyktPnZhbHVlLAoKZGlmZiAtLWdpdCBhL21pbmd3 LXB5dGhvbjMuc3BlYyBiL21pbmd3LXB5dGhvbjMuc3BlYwppbmRleCBmYmZhNDlmLi5hZWFhODRi IDEwMDY0NAotLS0gYS9taW5ndy1weXRob24zLnNwZWMKKysrIGIvbWluZ3ctcHl0aG9uMy5zcGVj CkBAIC00LDggKzQsOCBAQAogJXVuZGVmaW5lIF9hdXRvX3NldF9idWlsZF9mbGFncwogCiAlZ2xv YmFsIHBrZ25hbWUgcHl0aG9uMwotJWdsb2JhbCBweV92ZXIgMy4xMQotJWdsb2JhbCBweV92ZXJf bm9kb3RzIDMxMQorJWdsb2JhbCBweV92ZXIgMy4xNAorJWdsb2JhbCBweV92ZXJfbm9kb3RzIDMx NAogJWdsb2JhbCBtaW5ndzMyX3B5M19saWJkaXIgICAgICAgJXttaW5ndzMyX2xpYmRpcn0vcHl0 aG9uJXtweV92ZXJ9CiAlZ2xvYmFsIG1pbmd3NjRfcHkzX2xpYmRpciAgICAgICAle21pbmd3NjRf bGliZGlyfS9weXRob24le3B5X3Zlcn0KICVnbG9iYWwgbWluZ3czMl9weTNfaG9zdGxpYmRpciAg ICV7X3ByZWZpeH0vJXttaW5ndzMyX3RhcmdldH0vbGliL3B5dGhvbiV7cHlfdmVyfQpAQCAtMjMs NyArMjMsNyBAQAogI2dsb2JhbCBwcmUgcmMyCiAKIE5hbWU6ICAgICAgICAgIG1pbmd3LSV7cGtn bmFtZX0KLVZlcnNpb246ICAgICAgIDMuMTEuMTYKK1ZlcnNpb246ICAgICAgIDMuMTQuNwogUmVs ZWFzZTogICAgICAgMSV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICBNaW5HVyBXaW5kb3dzICV7cGtn bmFtZX0KIApAQCAtMzgsNDAgKzM4LDExMCBAQCBTb3VyY2UzOiAgICAgICBtaW5ndzMyX3B5dGhv bjMuYXR0cgogU291cmNlNDogICAgICAgbWluZ3c2NF9weXRob24zLmF0dHIKIAogCi0jIEFkZCBz dXBwb3J0IGZvciBidWlsZGluZyB3aXRoIG1pbmd3Ci1QYXRjaDE6ICAgICAgICBtaW5ndy1weXRo b24zX3BsYXRmb3JtLW1pbmd3LnBhdGNoCi0jIEltcGxlbWVudCBzZXRlbnYgZm9yIG1pbmd3Ci1Q YXRjaDI6ICAgICAgICBtaW5ndy1weXRob24zX3NldGVudi5wYXRjaAotIyBJZ25vcmUgbWFpbiBw cm9ncmFtIGZvciBmcm96ZW4gc2NyaXB0cwotUGF0Y2gzOiAgICAgICAgbWluZ3ctcHl0aG9uM19m cm96ZW5tYWluLnBhdGNoCi0jIExpbmsgcmVzb3VyY2UgZmlsZXMgYW5kIGJ1aWxkIHB5dGhvbncu ZXhlCi1QYXRjaDQ6ICAgICAgICBtaW5ndy1weXRob24zX3B5dGhvbncucGF0Y2gKLSMgSW1wbGVt ZW50IFB5VGhyZWFkX2dldF90aHJlYWRfbmF0aXZlX2lkIGZvciBtaW5ndy13aW4tcHRocmVhZAot UGF0Y2g1OiAgICAgICAgbWluZ3ctcHl0aG9uM19wdGhyZWFkX3RocmVhZGlkLnBhdGNoCi0jIE91 dHB1dCBsaXN0IG9mIGZhaWxlZCBtb2R1bGVzIHRvIG1vZHNfZmFpbGVkLnR4dCBzbyB0aGF0IHdl IGNhbiBhYm9ydCB0aGUgYnVpbGQKLVBhdGNoNjogICAgICAgIG1pbmd3LXB5dGhvbjNfbW9kcy1m YWlsZWQucGF0Y2gKLSMgQWRhcHQgZGlzdHV0aWxzIGZvciBjcm9zcy1jb21waWxpbmcKLVBhdGNo NzogICAgICAgIG1pbmd3LXB5dGhvbjNfZGlzdHV0aWxzLnBhdGNoCi0jIE1ha2Ugc3lzY29uZmln ZGF0YS5weSByZWxvY2F0YWJsZQotUGF0Y2g4OiAgICAgICAgbWluZ3ctcHl0aG9uM19tYWtlLXN5 c2NvbmZpZ2RhdGEucHktcmVsb2NhdGFibGUucGF0Y2gKLSMgRml4IG1vZHVsZSBidWlsZHM6IHNl bGVjdCwgc3NsLCBtdWx0aXByb2Nlc3NpbmcKLSMgRGlzYWJsZSBtb2R1bGVzIHdoaWNoIGRvIG5v dCBidWlsZAotIyBGaXggYnJva2VuIHBhcmFsbGVsIG1ha2UKLVBhdGNoOTogICAgICAgIG1pbmd3 LXB5dGhvbjNfbW9kdWxlcy5wYXRjaAotIyBVc2UgUE9TSVggbGF5b3V0Ci1QYXRjaDEwOiAgICAg ICBtaW5ndy1weXRob24zX3Bvc2l4LWxheW91dC5wYXRjaAotIyBFbmFibGUgc29tZSBtb2R1bGVz IG5lZWRlZCBvbiBXaW5kb3dzCi1QYXRjaDExOiAgICAgICBtaW5ndy1weXRob24zX3dpbi1tb2R1 bGVzLnBhdGNoCi0jIEVuYWJsZSB0aGUgc29ja2V0IG1vZHVsZQotUGF0Y2gxMjogICAgICAgbWlu Z3ctcHl0aG9uM19tb2R1bGUtc29ja2V0LnBhdGNoCi0jIE1pbkdXIGZpeCBmb3Igc2VsZWN0IG1v ZHVsZQotUGF0Y2gxMzogICAgICAgbWluZ3ctcHl0aG9uM19tb2R1bGUtc2VsZWN0LnBhdGNoCi0j IEFkZCAtbHB5dGhvbjxWRVI+IHRvIExpYnM6IGluIHBrZ2NvbmZpZyAod2luZG93cyBleHRlbnNp b25zIG5lZWQgdG8gYmUgbGlua2VkIGFnYWluc3QgbGlicHl0aG9uKQotUGF0Y2gxNDogICAgICAg bWluZ3ctcHl0aG9uM19wa2djb25maWcucGF0Y2gKLSMgQmFja3BvcnQ6IEZpeCBidWlsZCB3aXRo IHRjbDkKLVBhdGNoMTU6ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vY3B5dGhvbi9j b21taXQvZTA3OTkzNTI4MjMyODlmYWZiODEzMTM0MWFiZDc1MTkyM2VlOWMwOC5wYXRjaAotIyBC YWNrcG9ydCBmaXggZm9yIENWRS0yMDI2LTM0NzkKLVBhdGNoMjQ6ICAgICAgIGh0dHBzOi8vZ2l0 aHViLmNvbS9weXRob24vY3B5dGhvbi9wdWxsLzE0NjEzNi5wYXRjaAorIyBGcm9tIGh0dHBzOi8v cGFja2FnZXMubXN5czIub3JnL3BhY2thZ2VzL21pbmd3LXc2NC14ODZfNjQtcHl0aG9uCitQYXRj aDogICAgICAgICAwMDAxLWJ1aWxkLWFkZC13aXRoLW50LXRocmVhZHMtYW5kLW1ha2UtaXQtZGVm YXVsdC1vbi1taW4ucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMDItYnVpbGQtRGVmaW5lLU1TX1dJ TkRPV1MtYW5kLW90aGVycy13aGVuLWNvbXBpbGluZy13aS5wYXRjaAorUGF0Y2g6ICAgICAgICAg MDAwMy1zeXNtb2R1bGUtSW1wbGVtZW50LWZsYWdzLV9pc19taW5ndy1pc19taW5nd191Y3J0LWFu LnBhdGNoCitQYXRjaDogICAgICAgICAwMDA0LWNvbmZpZ3VyZS1hZGQtTUFDSERFUC1hbmQtcGxh dGZvcm0tb24tTUlOR1cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMDUtYnVpbGQtQWRkLWRlZmF1 bHQtY3Jvc3MtY29uZmlndXJhdGlvbi1mb3ItTUlOR1cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAw MDYtY29uZmlndXJlLWVuYWJsZS1sYXJnZWZpbGUtc3VwcG9ydC1ieS1kZWZhdWx0LWZvci1NaS5w YXRjaAorUGF0Y2g6ICAgICAgICAgMDAwNy1idWlsZC1BZGQtUEMtdG8tQ1BQRkxBR1MtYW5kLXRv LVNSQ0RJUlMtb24tTWluZ3cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMDgtYnVpbGQtYWRkLU1J TkdXLXN1cHBvcnQtZm9yLXBvc2l4bW9kdWxlLnBhdGNoCitQYXRjaDogICAgICAgICAwMDA5LWV4 cG9ydHMuaC1BZGQtc3VwcG9ydC1mb3ItTUlOR1cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMTAt Y29uZmlndXJlLWFkZC1vcHRpb25zLXNvLXRoYXQtc2hhcmVkLWJ1aWxkLWlzLXBvc3NpYi5wYXRj aAorUGF0Y2g6ICAgICAgICAgMDAxMS1idWlsZC1BZGQtUFlEX1BMQVRGT1JNX1RBRy5wYXRjaAor UGF0Y2g6ICAgICAgICAgMDAxMi1idWlsZC1BZGQtZHlubG9hZF93aW4tc3VwcG9ydC1mb3ItTWlu R1cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMTMtYnVpbGQtVXNlLS5weWQtZXh0ZW5zaW9uLXN1 ZmZpeC1maXgtaW1wb3J0LWxpYi1pbnN0YS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDAxNC1idWls ZC1Db25maWd1cmUtU09BQkktYW5kLUVYVF9TVUZGSVgtZm9yLU1JTkdXLnBhdGNoCitQYXRjaDog ICAgICAgICAwMDE1LWJ1aWxkLURlZmluZS1NU19ETExfSUQtZm9yLXN5cy53aW52ZXItb24tTUlO R1cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMTYtYnVpbGQtSWdub3JlLW1haW4tcHJvZ3JhbS1m b3ItZnJvemVuLXNjcmlwdHMtb24tTUlORy5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDAxNy1zb2Nr ZXRtb2R1bGUtYWRkLU1JTkdXLXN1cHBvcnQucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMTgtYnVp bGQtZW5hYmxlLXdpbnJlZy1tc3ZjcnQtX3dpbmFwaS13aW5zb3VuZC1hbmQtX292ZS5wYXRjaAor UGF0Y2g6ICAgICAgICAgMDAxOS1zeXNjb25maWctbWFrZS1fc3lzY29uZmlnZGF0YS5weS1yZWxv Y2F0YWJsZS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDAyMC1zeXNjb25maWctdHJlYXQtTUlOR1ct YnVpbGRzLWFzLVBPU0lYLWJ1aWxkcy5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDAyMS1zeXNjb25m aWctQ2hhbmdlLXRoZS1nZXRfcGxhdGZvcm0tbWV0aG9kLWluLXN5c2NvbmZpLnBhdGNoCitQYXRj aDogICAgICAgICAwMDIyLWJ1aWxkLXNlbWktbmF0aXZlLWJ1aWxkLXN5c2NvbmZpZy5wYXRjaAor UGF0Y2g6ICAgICAgICAgMDAyMy1jdHlwZXMtQWRkLXN1cHBvcnQtZm9yLXN0ZGNhbGwtd2l0aG91 dC11bmRlcnNjb3JlLnBhdGNoCitQYXRjaDogICAgICAgICAwMDI0LWN0eXBlcy1hZGQtc3VwcG9y LWZvci1jdHlwZXMucHl0aG9uYXBpLXVuZGVyLU1JTkdXLnBhdGNoCitQYXRjaDogICAgICAgICAw MDI1LWN0eXBlcy1maW5kX2xpYnJhcnktYy1zaG91bGQtcmV0dXJuLU5vbmUtd2l0aC11Y3J0LnBh dGNoCitQYXRjaDogICAgICAgICAwMDI2LXNpdGUtQ3VzdG9taXplLWZvci1NSU5HVy5wYXRjaAor UGF0Y2g6ICAgICAgICAgMDAyNy1zaXRlLUNoYW5nZS11c2VyLXNpdGUtcGFja2FnZXMtcGF0aC10 by1pbmNsdWRlLXRoZS1lLnBhdGNoCitQYXRjaDogICAgICAgICAwMDI4LXB5dGhvbi1jb25maWct b3V0cHV0LVdpbmRvd3MtcGF0aHMtZm9yLXRoZS1zaGVsbC12YXIucGF0Y2gKK1BhdGNoOiAgICAg ICAgIDAwMjktcHl0aG9uLWNvbmZpZy11c2UtdGhlLVB5dGhvbi12YXJpYW50LW9mLXB5dGhvbi1j b25maS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDAzMC1taW5ndy1wcmVmZXItdW5peC1zZXAtaWYt TVNZU1RFTS1lbnZpcm9ubWVudC12YXJpYWJsLnBhdGNoCitQYXRjaDogICAgICAgICAwMDMxLWJ1 aWxkLVJlbW92ZS1NQVhQQVRITEVOLWRlZmF1bHQucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMzIt YnVpbGQtZG9udC1saW5rLXdpdGgtZ2V0dGV4dC5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDAzMy11 c2UtZ251X3ByaW50Zi1pbi1mb3JtYXQucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMzQtYnVpbGQt cmVtb3ZlLXVzYWdlLW9mLU1TX0NPUkVETEwucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwMzUtZ2V0 Y29tcGlsZXItZXhwb3NlLU1JTkdXLXRvb2xjaGFpbi1yZWxhdGVkLWluZm9ybWF0aS5wYXRjaAor UGF0Y2g6ICAgICAgICAgMDAzNi1idWlsZC1maXgtc2lnbmFsLW1vZHVsZS1idWlsZC5wYXRjaAor UGF0Y2g6ICAgICAgICAgMDAzNy1idWlsZC1idWlsZC13aW5jb25zb2xlaW8tYW5kLV90ZXN0Y29u c29sZS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDAzOC1tdWx0aXByb2Nlc3NpbmctZXhwb3NlLXNl bV91bmxpbmstdG8tZml4LW11bHRpcHJvY2VzLnBhdGNoCitQYXRjaDogICAgICAgICAwMDM5LWJ1 aWxkLWxpbmstd2luLXJlc291cmNlLWZpbGVzLWFuZC1idWlsZC1weXRob253LnBhdGNoCitQYXRj aDogICAgICAgICAwMDQwLXB5Y29yZV9maWxldXRpbHMtYWRkLU1JTkdXLXN1cHBvcnQucGF0Y2gK K1BhdGNoOiAgICAgICAgIDAwNDEtY29uZmlndXJlLWZpeC1pbmV0X3B0b24tY2hlY2sucGF0Y2gK K1BhdGNoOiAgICAgICAgIDAwNDItaW1wb3J0bGliLWJvb3RzdHJhcC1wYXRoLXNlcC5wYXRjaAor UGF0Y2g6ICAgICAgICAgMDA0My1jb25maWd1cmUtc2V0LU1JTkdXLXN0YWNrLXJlc2VydmUucGF0 Y2gKK1BhdGNoOiAgICAgICAgIDAwNDQtdGVzdHMtZml4LXRlc3RfYnl0ZXMucGF0Y2gKK1BhdGNo OiAgICAgICAgIDAwNDUtdGltZW1vZHVsZS1hZGQtTUlOR1ctc3VwcG9ydC5wYXRjaAorUGF0Y2g6 ICAgICAgICAgMDA0Ni1jb25maWd1cmUtRGlzYWJsZS1jaGVja3MtZm9yLWRsb3Blbi1kbGZjbi5w YXRjaAorUGF0Y2g6ICAgICAgICAgMDA0Ny12ZW52bGF1bmNoZXItQnVpbGQtdmVudmxhdW5jaGVy LmV4ZS1mcm9tLVBDLWxhdW5jaGVyLnBhdGNoCitQYXRjaDogICAgICAgICAwMDQ4LXZlbnZsYXVu Y2hlci10cnktbG9va2luZy1mb3ItdGhlLXZlcnNpb25lZC0uZXhlLWZpcnMucGF0Y2gKK1BhdGNo OiAgICAgICAgIDAwNDktdmVudmxhdW5jaGVyLVNraXAtZmluZC1weXRob24taW4tUmVnaXN0cnkt Zm9yLW1pbmd3LS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA1MC1jb25maWd1cmUtZG9uLXQtY2hl Y2stZm9yLWNsb2NrXy1mdW5jdGlvbnMucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNTEtQ0ktdGVz dC10aGUtYnVpbGQtYW5kLWFkZC1zb21lLW1pbmd3LXNwZWNpZmljLXRlc3RzLnBhdGNoCitQYXRj aDogICAgICAgICAwMDUyLWNvbmZpZ3VyZS1EZWZhdWx0LXRvLXdpdGhvdXQtYy1sb2NhbGUtY29l cmNpb24tb24tV2kucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNTMtdGVzdHMtRml4LXNvbWUtZmFp bGluZy10ZXN0cy5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA1NC1idWlsZC1kZWYtVlBBVEgtd2hl bi1jb21waWxpbmctUHl0aG9uLXN5c21vZHVsZS5jLnBhdGNoCitQYXRjaDogICAgICAgICAwMDU1 LWNvbmZpZ3VyZS1jb3JyZWN0bHktZmluZC1uYXRpdmUtcHl0aG9uLnBhdGNoCitQYXRjaDogICAg ICAgICAwMDU2LWJ1aWxkLUFkZC1leHRyYS1mbGFncy1mb3ItX2Jvb3RzdHJhcF9weXRob24ucGF0 Y2gKK1BhdGNoOiAgICAgICAgIDAwNTctZ2V0cGF0aC1hZGQtc3VwcG9ydC1mb3ItbWluZ3cucGF0 Y2gKK1BhdGNoOiAgICAgICAgIDAwNTgtYnVpbGQtRG9uLXQtYnVpbGQtX3Bvc2l4c3VicHJvY2Vz cy1vbi1XaW5kb3dzLnBhdGNoCitQYXRjaDogICAgICAgICAwMDU5LXNzbC1tb2R1bGUtYWRkLU1J TkdXLXN1cHBvcnQucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNjAtY29uZmlndXJlLUluY2x1ZGUt d2luc29jay5oLXdoZW4tY2hlY2tpbmctZm9yLW5ldGRiLS5wYXRjaAorUGF0Y2g6ICAgICAgICAg MDA2MS1jb25maWd1cmUtYWx3YXlzLWJ1aWxkLV9tdWx0aXByb2Nlc3Npbmctb24tV2luZG93cy5w YXRjaAorUGF0Y2g6ICAgICAgICAgMDA2Mi1jb25maWd1cmUtYnVpbGQtbW1hcC1tb2R1bGUtb24t d2luMzIucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNjMtY29uZmlndXJlLXNldC1CVUlMREVYRUVY VC1hbmQtRVhFRVhULnBhdGNoCitQYXRjaDogICAgICAgICAwMDY0LWNvbmZpZ3VyZS1maXgtYnVp bGRpbmctc29tZS10ZXN0LW1vZHVsZXMucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNjUtQWx3YXlz LWNvbnZlcnQtdG8tYmVmb3JlLXBhc3NpbmctdGhvdWdoLXBhdGhjY2gtZnVuYy5wYXRjaAorUGF0 Y2g6ICAgICAgICAgMDA2Ni1weWxpZmVjeWNsZS5oLXJlbW92ZS1jb25mbGljdGluZy1fUHlfQ2hl Y2tQeXRob24zLWRlLnBhdGNoCitQYXRjaDogICAgICAgICAwMDY3LWR5bmxvYWRfd2luLWFkZC1l bnYtdmFyLWZvci1yZXZlcnRpbmctdGhlLWxlZ2FjeS1ETEwucGF0Y2gKK1BhdGNoOiAgICAgICAg IDAwNjgtZHlubG9hZF93aW4tUG9ydC1HZXRQeXRob25JbXBvcnQtdG8tTUlOR1cucGF0Y2gKK1Bh dGNoOiAgICAgICAgIDAwNjktZHlubG9hZF93aW4tbWFrZS1zdXJlLXRvLW9ubHktdXNlLWJhY2tz bGFzaGVzLWZvci1wYS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA3MC1keW5sb2FkX3dpbi1kb24t dC1ydW4tX1B5X0NoZWNrUHl0aG9uMy1mb3ItTUlOR1ctYnVpLnBhdGNoCitQYXRjaDogICAgICAg ICAwMDcxLWJ1aWxkLUJ1aWxkLWFuZC1pbnN0YWxsLWxpYnB5dGhvbjMuZGxsLXN0YWJsZS1BQkku cGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNzItY29uZmlndXJlLWRlZmluZS1fREVCVUctZm9yLWEt ZGVidWctYnVpbGQucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNzMtY29uZmlndXJlLWZpeC1tdWx0 aXByb2Nlc3NpbmctbW9kdWxlLnBhdGNoCitQYXRjaDogICAgICAgICAwMDc0LWJ1aWxkLWFkZC1N SU5HVy1zdXBwb3J0LWZvci1zZWxlY3Rtb2R1bGUucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNzUt Y29uZmlndXJlLWRpc2FibGUtdmFyaW91cy1tb2R1bGVzLW9uLU1JTkdXLnBhdGNoCitQYXRjaDog ICAgICAgICAwMDc2LWNvbmZpZ3VyZS1BZGQtbGlicmFyaWVzLXRvLWZpeC1jdHlwZXMtb24tTUlO R1cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNzctY29uZmlndXJlLUVuYWJsZS1fdXVpZC1vbi1N SU5HVy5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA3OC1jb25maWd1cmUtbWFrZS1pbmNvbXBhdGli bGUtcG9pbnRlci10eXBlcy1hLXdhcm5pbmcucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwNzktdGVz dHMtdGVzdF9tYWtlZmlsZS1ub3JtYWxpemUtcGF0aC5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA4 MC1GaXgtaW5jbHVkZS1uYW1pbmctZm9yLWNyb3NzLWJ1aWxkLnBhdGNoCitQYXRjaDogICAgICAg ICAwMDgxLUZpeC1mb3JtYXQtd2FybmluZy5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA4Mi1GaXgt cHJhZ21hLXdhcm5pbmdzLnBhdGNoCitQYXRjaDogICAgICAgICAwMDgzLW1hdGgtcHloYXNoLU1J TkdXLXN1cHBvcnQucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwODQtdGVzdHMtRml4LXRlc3QtZm9y LWxpYnJhcnktbmFtZS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA4NS1kaWN0b2JqZWN0LU1JTkdX LXN1cHBvcnQucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwODYtYnVpbGQtRml4LWV4cG9ydC1QeV9H ZXRCdWlsZEluZm8tc3ltYm9sLnBhdGNoCitQYXRjaDogICAgICAgICAwMDg3LWJ1aWxkLUFsbG93 LXByb2ZpbGUtdGVzdHMtZmFpbHVyZS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA4OC1idWlsZC1h ZGQtc3VwcG9ydC1mb3ItYnVpbGRpbmctQy1tb2R1bGVzLnBhdGNoCitQYXRjaDogICAgICAgICAw MDg5LWJ1aWxkLWJ1aWxkLWZpeC10aGUtd21pLW1vZHVsZS5wYXRjaAorUGF0Y2g6ICAgICAgICAg MDA5MC1GaXgtZXhwb3J0cy1mb3ItX3N1Z2dlc3Rpb25zLW1vZHVsZS5wYXRjaAorUGF0Y2g6ICAg ICAgICAgMDA5MS1jb21waWxlYWxsLU5vcm1hbGl6ZS1wYXRocy5wYXRjaAorUGF0Y2g6ICAgICAg ICAgMDA5Mi1jb25maWd1cmUtZW5hYmxlLTY0LWJpdC10aW1lLXN1cHBvcnQtZm9yLTMyLWJpdC1i dWlsLnBhdGNoCitQYXRjaDogICAgICAgICAwMDkzLXZlbnYtYWxzby1pbnN0YWxsLXRoZS12ZXJz aW9uZWQtbGF1bmNoZXJzLnBhdGNoCitQYXRjaDogICAgICAgICAwMDk0LWNvbmZpZ3VyZS1zZXQt X1dJTjMyX1dJTk5ULXZlcnNpb24ucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAwOTUtdGVzdHMtZml4 LXN5c2NvbmZpZy50ZXN0X2dldF9wbGF0Zm9ybS5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA5Ni1w eWNvcmVfdGltZS1maXgtbWlzc2luZy10aW1ldmFsLnBhdGNoCitQYXRjaDogICAgICAgICAwMDk3 LW1tYXBtb2R1bGUtZGVmaW5lLURPTlRfVVNFX1NFSC5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDA5 OC1idWlsZC1BZGQtQUJJRkxBR1MtdG8tdGFyZ2V0cy13aGVuLW5lZWRlZC5wYXRjaAorUGF0Y2g6 ICAgICAgICAgMDA5OS1zeXNjb25maWctcGF0Y2gtbnQtc2NoZW1lcy1hZ2Fpbi5wYXRjaAorUGF0 Y2g6ICAgICAgICAgMDEwMC1jb25maWd1cmUtZGVmaW5lLV9QWVRIUkVBRF9OQU1FX01BWExFTi1m b3ItTUlOR1cucGF0Y2gKK1BhdGNoOiAgICAgICAgIDAxMDEtY29uZmlndXJlLWFsbG93LW9sZGVy LWF1dG9jb25mLnBhdGNoCitQYXRjaDogICAgICAgICAwMTAyLXRlc3RzLWFsbG93LXN5cy5hYmlm bGFncy10by1leGlzdC5wYXRjaAorUGF0Y2g6ICAgICAgICAgMDEwMy1tYWtlc2V0dXAtbWFrZS1z dXJlLXRvLWxpbmstdGhlLWJ1aWx0LWxpYnB5dGhvbi5wYXRjaAogCiAKIEJ1aWxkUmVxdWlyZXM6 IG1ha2UKQEAgLTE5Myw1NCArMjYzLDI3IEBAIGF1dG9yZWNvbmYgLXZmaQogCiAjIEVuc3VyZSB0 aGF0IHdlIGFyZSB1c2luZyB0aGUgc3lzdGVtIGNvcHkgb2YgdmFyaW91cyBsaWJyYXJpZXMgcmF0 aGVyIHRoYW4gY29waWVzIHNoaXBwZWQgaW4gdGhlIHRhcmJhbGwKIHJtIC1yIE1vZHVsZXMvZXhw YXQKLXJtIC1yIE1vZHVsZXMvX2N0eXBlcy97ZGFyd2luLGxpYmZmaX0qCi0KLSMgSnVzdCB0byBi ZSBzdXJlIHRoYXQgd2UgYXJlIHVzaW5nIHRoZSB3YW50ZWQgdGhyZWFkIG1vZGVsCi1ybSAtZiBQ eXRob24vdGhyZWFkX250LmgKIAogCiAlYnVpbGQKLSMgRklYTUU6IGF2b2lkIGluY29tcGF0aWJs ZS1wb2ludGVyLXR5cGVzIGVycm9ycwotZXhwb3J0IE1JTkdXMzJfQ0ZMQUdTPSIle21pbmd3MzJf Y2ZsYWdzfSAtZnBlcm1pc3NpdmUgLURUQ0xfTk9fVE9NTUFUSF9IIgotZXhwb3J0IE1JTkdXNjRf Q0ZMQUdTPSIle21pbmd3NjRfY2ZsYWdzfSAtZnBlcm1pc3NpdmUgLURUQ0xfTk9fVE9NTUFUSF9I IgogZXhwb3J0IE1JTkdXMzJfTUFLRV9BUkdTPSJXSU5EUkVTPSV7bWluZ3czMl90YXJnZXR9LXdp bmRyZXMgTEQ9JXttaW5ndzMyX3RhcmdldH0tbGQgRExMV1JBUD0le21pbmd3MzJfdGFyZ2V0fS1k bGx3cmFwIgogZXhwb3J0IE1JTkdXNjRfTUFLRV9BUkdTPSJXSU5EUkVTPSV7bWluZ3c2NF90YXJn ZXR9LXdpbmRyZXMgTEQ9JXttaW5ndzY0X3RhcmdldH0tbGQgRExMV1JBUD0le21pbmd3NjRfdGFy Z2V0fS1kbGx3cmFwIgogCi1DT05GSUdfU0lURT0kUFdEL2NvbmZpZy5zaXRlLW1pbmd3IFwKICVt aW5nd19jb25maWd1cmUgXAorLS13aXRoLWJ1aWxkLXB5dGhvbj0le19iaW5kaXJ9L3B5dGhvbiV7 cHlfdmVyfSBcCiAtLWVuYWJsZS1zaGFyZWQgXAotLS13aXRoLWJ1aWxkLXB5dGhvbj0le19iaW5k aXJ9L3B5dGhvbjMuMTEgXAogLS13aXRoLXN5c3RlbS1leHBhdCBcCi0tLXdpdGgtc3VmZml4PS5l eGUgXAotLS1lbmFibGUtbG9hZGFibGUtc3FsaXRlLWV4dGVuc2lvbnMgXAotLS13aXRoLWVuc3Vy ZXBpcD1ubwotCi0jIENyZWF0ZSBkaXJlY3RvcmllcyBuZWVkZWQgYnkgYnVpbGQKLW1rZGlyIC1w IGJ1aWxkX3dpbjMyL1BDL2ljb25zIGJ1aWxkX3dpbjY0L1BDL2ljb25zCistLXdpdGgtc3lzdGVt LWxpYm1wZGVjIFwKKy0td2l0aG91dC1lbnN1cmVwaXAgXAorLS13aXRoLXR6cGF0aD0le19kYXRh ZGlyfS9zaGFyZS96b25laW5mbyBcCistLWVuYWJsZS1vcHRpbWl6YXRpb25zCiAKICVtaW5nd19t YWtlX2J1aWxkCiAKLSMgQWJvcnQgYnVpbGQgaWYgbm90IGV4cGxpY2l0bHkgZGlzYWJsZWQgbW9k dWxlcyBmYWlsZWQgdG8gYnVpbGQKLWlmIFsgLWUgYnVpbGRfd2luMzIvbW9kc19mYWlsZWQudHh0 IF07IHRoZW4KLSAgICBlY2hvICJUaGUgZm9sbG93aW5nIG1vZHVsZXMgZmFpbGVkIHRvIGJ1aWxk IGZvciB3aW4zMiIKLSAgICBjYXQgYnVpbGRfd2luMzIvbW9kc19mYWlsZWQudHh0Ci1maQotaWYg WyAtZSBidWlsZF93aW42NC9tb2RzX2ZhaWxlZC50eHQgXTsgdGhlbgotICAgIGVjaG8gIlRoZSBm b2xsb3dpbmcgbW9kdWxlcyBmYWlsZWQgdG8gYnVpbGQgZm9yIHdpbjY0IgotICAgIGNhdCBidWls ZF93aW42NC9tb2RzX2ZhaWxlZC50eHQKLWZpCi1pZiBbIC1lIGJ1aWxkX3dpbjMyL21vZHNfZmFp bGVkLnR4dCBdIHx8IFsgLWUgYnVpbGRfd2luNjQvbW9kc19mYWlsZWQudHh0IF07IHRoZW4KLSAg ICBleGl0IDE7Ci1maQotCiAKICVpbnN0YWxsCiAlbWluZ3dfbWFrZV9pbnN0YWxsCiAKLSMgTGlu ayBpbXBvcnQgbGlicmFyeSB0byBsaWJkaXIKLWxuIC1zICV7bWluZ3czMl9weTNfbGliZGlyfS9j b25maWctJXtweV92ZXJ9L2xpYnB5dGhvbiV7cHlfdmVyfS5kbGwuYSAle2J1aWxkcm9vdH0le21p bmd3MzJfbGliZGlyfS9saWJweXRob24le3B5X3Zlcn0uZGxsLmEKLWxuIC1zICV7bWluZ3c2NF9w eTNfbGliZGlyfS9jb25maWctJXtweV92ZXJ9L2xpYnB5dGhvbiV7cHlfdmVyfS5kbGwuYSAle2J1 aWxkcm9vdH0le21pbmd3NjRfbGliZGlyfS9saWJweXRob24le3B5X3Zlcn0uZGxsLmEKLQogIyBD b3B5IHNvbWUgdXNlZnVsICJzdHVmZiIKIGluc3RhbGwgLWRtNzU1ICV7YnVpbGRyb290fSV7bWlu Z3czMl9weTNfbGliZGlyfS9Ub29scy97aTE4bixzY3JpcHRzfQogaW5zdGFsbCAtZG03NTUgJXti dWlsZHJvb3R9JXttaW5ndzY0X3B5M19saWJkaXJ9L1Rvb2xzL3tpMThuLHNjcmlwdHN9CkBAIC0y NDksNzQgKzI5MiwxNCBAQCBpbnN0YWxsIC1wbTc1NSBUb29scy9pMThuL3ttc2dmbXQscHlnZXR0 ZXh0fS5weSAle2J1aWxkcm9vdH0le21pbmd3NjRfcHkzX2xpYmRpcgogaW5zdGFsbCAtcG03NTUg VG9vbHMvc2NyaXB0cy97UkVBRE1FLCpweX0gJXtidWlsZHJvb3R9JXttaW5ndzMyX3B5M19saWJk aXJ9L1Rvb2xzL3NjcmlwdHMvCiBpbnN0YWxsIC1wbTc1NSBUb29scy9zY3JpcHRzL3tSRUFETUUs KnB5fSAle2J1aWxkcm9vdH0le21pbmd3NjRfcHkzX2xpYmRpcn0vVG9vbHMvc2NyaXB0cy8KIAot IyBDbGVhbnVwIHNoZWJhbmdzCi1maW5kICV7YnVpbGRyb290fSV7bWluZ3czMl9weTNfbGliZGly fS8gLW5hbWUgJyoucHknIHwgeGFyZ3Mgc2VkIC1pICJzfCNbIF0qIVsgXSovdXNyL2Jpbi9lbnYg cHl0aG9uJHwjIS91c3IvYmluL3B5dGhvbjN8IgotZmluZCAle2J1aWxkcm9vdH0le21pbmd3NjRf cHkzX2xpYmRpcn0vIC1uYW1lICcqLnB5JyB8IHhhcmdzIHNlZCAtaSAic3wjWyBdKiFbIF0qL3Vz ci9iaW4vZW52IHB5dGhvbiR8IyEvdXNyL2Jpbi9weXRob24zfCIKLQotIyBSZW1vdmUgcmVmZXJl bmNlcyB0byBidWlsZCBkaXJlY3RvcnkKLWZvciBmaWxlIGluIGNvbmZpZy0le3B5X3Zlcn0vTWFr ZWZpbGUgX3N5c2NvbmZpZ2RhdGFfX3dpbjMyXy5weTsgZG8KLSAgICBzZWQgLWkgInN8JXtfYnVp bGRkaXJ9fC9idWlsZHxnIiAle2J1aWxkcm9vdH0le21pbmd3MzJfcHkzX2xpYmRpcn0vJGZpbGUK LSAgICBzZWQgLWkgInN8JXtfYnVpbGRkaXJ9fC9idWlsZHxnIiAle2J1aWxkcm9vdH0le21pbmd3 NjRfcHkzX2xpYmRpcn0vJGZpbGUKLWRvbmUKLQogIyBGaXggcGVybWlzc29ucwogZmluZCAle2J1 aWxkcm9vdH0gLXR5cGUgZiB8IHhhcmdzIGNobW9kIDA2NDQKLWZpbmQgJXtidWlsZHJvb3R9IC10 eXBlIGYgXCggLW5hbWUgIiouZGxsIiAtbyAtbmFtZSAiKi5leGUiIFwpIHwgeGFyZ3MgY2htb2Qg MDc1NQorZmluZCAle2J1aWxkcm9vdH0gLXR5cGUgZiBcKCAtbmFtZSAiKi5kbGwiIC1vIC1uYW1l ICIqLmV4ZSIgLW8gLW5hbWUgIioucHlkIiBcKSB8IHhhcmdzIGNobW9kIDA3NTUKIAogIyBEb24n dCBzaGlwIG1hbnBhZ2VzCiBybSAtcmYgJXtidWlsZHJvb3R9JXttaW5ndzMyX21hbmRpcn0KIHJt IC1yZiAle2J1aWxkcm9vdH0le21pbmd3NjRfbWFuZGlyfQogCi0jIEhvc3Qgc2l0ZS1wYWNrYWdl cyBza2VsZXRvbgotbWtkaXIgLXAgJXtidWlsZHJvb3R9JXttaW5ndzMyX3B5M19ob3N0bGliZGly fS9zaXRlLXBhY2thZ2VzCi1ta2RpciAtcCAle2J1aWxkcm9vdH0le21pbmd3NjRfcHkzX2hvc3Rs aWJkaXJ9L3NpdGUtcGFja2FnZXMKLQotIyBIYWNraXNobHkgZmFrZWQgZGlzdHV0aWxzL3N5c2Nv bmZpZy5weQotbWtkaXIgLXAgJXtidWlsZHJvb3R9JXttaW5ndzMyX3B5M19ob3N0bGliZGlyfS9k aXN0dXRpbHMKLW1rZGlyIC1wICV7YnVpbGRyb290fSV7bWluZ3c2NF9weTNfaG9zdGxpYmRpcn0v ZGlzdHV0aWxzCi1wdXNoZCAle2J1aWxkcm9vdH0le21pbmd3MzJfbGliZGlyfS9weXRob24le3B5 X3Zlcn0vZGlzdHV0aWxzLwotZm9yIGZpbGUgaW4gKi5weTsgZG8KLSAgICBsbiAtcyAle21pbmd3 MzJfbGliZGlyfS9weXRob24le3B5X3Zlcn0vZGlzdHV0aWxzLyRmaWxlICV7YnVpbGRyb290fSV7 bWluZ3czMl9weTNfaG9zdGxpYmRpcn0vZGlzdHV0aWxzLyRmaWxlCi1kb25lCi1wb3BkCi1wdXNo ZCAle2J1aWxkcm9vdH0le21pbmd3NjRfbGliZGlyfS9weXRob24le3B5X3Zlcn0vZGlzdHV0aWxz LwotZm9yIGZpbGUgaW4gKi5weTsgZG8KLSAgICBsbiAtcyAle21pbmd3NjRfbGliZGlyfS9weXRo b24le3B5X3Zlcn0vZGlzdHV0aWxzLyRmaWxlICV7YnVpbGRyb290fSV7bWluZ3c2NF9weTNfaG9z dGxpYmRpcn0vZGlzdHV0aWxzLyRmaWxlCi1kb25lCi1wb3BkCi1sbiAtcyAle21pbmd3MzJfcHkz X2xpYmRpcn0vZGlzdHV0aWxzL2NvbW1hbmQgJXtidWlsZHJvb3R9JXttaW5ndzMyX3B5M19ob3N0 bGliZGlyfS9kaXN0dXRpbHMvY29tbWFuZAotbG4gLXMgJXttaW5ndzY0X3B5M19saWJkaXJ9L2Rp c3R1dGlscy9jb21tYW5kICV7YnVpbGRyb290fSV7bWluZ3c2NF9weTNfaG9zdGxpYmRpcn0vZGlz dHV0aWxzL2NvbW1hbmQKLXJtICV7YnVpbGRyb290fSV7bWluZ3czMl9weTNfaG9zdGxpYmRpcn0v ZGlzdHV0aWxzL3N5c2NvbmZpZy5weQotcm0gJXtidWlsZHJvb3R9JXttaW5ndzY0X3B5M19ob3N0 bGliZGlyfS9kaXN0dXRpbHMvc3lzY29uZmlnLnB5Ci0KLWNhdCA+ICV7YnVpbGRyb290fSV7bWlu Z3czMl9weTNfaG9zdGxpYmRpcn0vZGlzdHV0aWxzL3N5c2NvbmZpZy5weSA8PEVPRgotaW1wb3J0 IGltcAotaW1wb3J0IG9zCi1fc3lzY29uZmlnID0gaW1wLmxvYWRfc291cmNlKCdkaXN0dXRpbHMu c3lzY29uZmlnJywgJyV7bWluZ3czMl9weTNfbGliZGlyfS9kaXN0dXRpbHMvc3lzY29uZmlnLnB5 JykKLWZyb20gZGlzdHV0aWxzLnN5c2NvbmZpZyBpbXBvcnQgKgotIyBPdmVyd3JpdGUgbWV0aG9k cyBmcm9tIHN5c2NvbmZpZwotaWYgIm1pbmd3MzIiIGluIG9zLmdldGVudigiQ0MiKToKLSAgICBn ZXRfcHl0aG9uX2luYyA9IGxhbWJkYSBwbGF0X3NwZWNpZmljPTAsIHByZWZpeD1Ob25lOiAiJXtt aW5ndzMyX3B5M19pbmNkaXJ9IgotICAgIGdldF9weXRob25fbGliID0gbGFtYmRhIHBsYXRfc3Bl Y2lmaWM9MCwgc3RhbmRhcmRfbGliPTAsIHByZWZpeD1Ob25lOiAiJXttaW5ndzMyX3B5dGhvbjNf c2l0ZWFyY2h9IgotZWxzZToKLSAgICBnZXRfcHl0aG9uX2luYyA9IGxhbWJkYSBwbGF0X3NwZWNp ZmljPTAsIHByZWZpeD1Ob25lOiAiJXtfaW5jbHVkZWRpcn0vcHl0aG9uJXtweV92ZXJ9IgotICAg IGdldF9weXRob25fbGliID0gbGFtYmRhIHBsYXRfc3BlY2lmaWM9MCwgc3RhbmRhcmRfbGliPTAs IHByZWZpeD1Ob25lOiAiJXtfbGliZGlyfS9weXRob24le3B5X3Zlcn0vc2l0ZS1wYWNrYWdlcyIK LUVPRgotCi1jYXQgPiAle2J1aWxkcm9vdH0le21pbmd3NjRfcHkzX2hvc3RsaWJkaXJ9L2Rpc3R1 dGlscy9zeXNjb25maWcucHkgPDxFT0YKLWltcG9ydCBpbXAKLWltcG9ydCBvcwotX3N5c2NvbmZp ZyA9IGltcC5sb2FkX3NvdXJjZSgnZGlzdHV0aWxzLnN5c2NvbmZpZycsICcle21pbmd3NjRfcHkz X2xpYmRpcn0vZGlzdHV0aWxzL3N5c2NvbmZpZy5weScpCi1mcm9tIGRpc3R1dGlscy5zeXNjb25m aWcgaW1wb3J0ICoKLSMgT3ZlcndyaXRlIG1ldGhvZHMgZnJvbSBzeXNjb25maWcKLWlmICJtaW5n dzMyIiBpbiBvcy5nZXRlbnYoIkNDIik6Ci0gICAgZ2V0X3B5dGhvbl9pbmMgPSBsYW1iZGEgcGxh dF9zcGVjaWZpYz0wLCBwcmVmaXg9Tm9uZTogIiV7bWluZ3c2NF9weTNfaW5jZGlyfSIKLSAgICBn ZXRfcHl0aG9uX2xpYiA9IGxhbWJkYSBwbGF0X3NwZWNpZmljPTAsIHN0YW5kYXJkX2xpYj0wLCBw cmVmaXg9Tm9uZTogIiV7bWluZ3c2NF9weXRob24zX3NpdGVhcmNofSIKLWVsc2U6Ci0gICAgZ2V0 X3B5dGhvbl9pbmMgPSBsYW1iZGEgcGxhdF9zcGVjaWZpYz0wLCBwcmVmaXg9Tm9uZTogIiV7X2lu Y2x1ZGVkaXJ9L3B5dGhvbiV7cHlfdmVyfSIKLSAgICBnZXRfcHl0aG9uX2xpYiA9IGxhbWJkYSBw bGF0X3NwZWNpZmljPTAsIHN0YW5kYXJkX2xpYj0wLCBwcmVmaXg9Tm9uZTogIiV7X2xpYmRpcn0v cHl0aG9uJXtweV92ZXJ9L3NpdGUtcGFja2FnZXMiCi1FT0YKLQogIyBJbnN0YWxsIG1hY3Jvcwog aW5zdGFsbCAtRHBtIDA2NDQgJXtTT1VSQ0UxfSAle2J1aWxkcm9vdH0le19ycG1jb25maWdkaXJ9 L21hY3Jvcy5kL21hY3Jvcy5taW5ndzMyLXB5dGhvbjMKIGluc3RhbGwgLURwbSAwNjQ0ICV7U09V UkNFMn0gJXtidWlsZHJvb3R9JXtfcnBtY29uZmlnZGlyfS9tYWNyb3MuZC9tYWNyb3MubWluZ3c2 NC1weXRob24zCkBAIC0zNDcsMjIgKzMzMCw2IEBAIGNhdCA+ICV7YnVpbGRyb290fSV7X3ByZWZp eH0vJXttaW5ndzY0X3RhcmdldH0vYmluL3B5dGhvbjMgPDxFT0YKIEVPRgogY2htb2QgK3ggJXti dWlsZHJvb3R9JXtfcHJlZml4fS8le21pbmd3NjRfdGFyZ2V0fS9iaW4vcHl0aG9uMwogCi0jIFRP RE86IFRoZXNlIGNhdXNlIHVuc2F0aXNmeWFibGUgcmVxdWlyZXMgb24gbXN2Y3I3MS5kbGwKLXJt IC1mICV7YnVpbGRyb290fSV7bWluZ3czMl9weTNfbGliZGlyfS9kaXN0dXRpbHMvY29tbWFuZC93 aW5pbnN0LTcuMS5leGUKLXJtIC1mICV7YnVpbGRyb290fSV7bWluZ3c2NF9weTNfbGliZGlyfS9k aXN0dXRpbHMvY29tbWFuZC93aW5pbnN0LTcuMS5leGUKLQotIyBEcm9wIHVudmVyc2lvbmVkIDJ0 bzMKLXJtICV7YnVpbGRyb290fSV7bWluZ3czMl9iaW5kaXJ9LzJ0bzMKLXJtICV7YnVpbGRyb290 fSV7bWluZ3c2NF9iaW5kaXJ9LzJ0bzMKLQotIyBEcm9wIHBpcCBzdHVmZiBpbnN0YWxsZWQgdG8g bmF0aXZlIGRpcnMKLXJtIC1mICV7YnVpbGRyb290fSV7X2JpbmRpcn0vcGlwKgotcm0gLXJmICV7 YnVpbGRyb290fSV7X3ByZWZpeH0vbGliL3B5dGhvbiV7cHlfdmVyfS9zaXRlLXBhY2thZ2VzL3Bp cCoKLQotIyBFbnN1cmUgY29uZmlnIHNjcmlwdHMgYXJlIGV4ZWN1dGFibGUKLWNobW9kICt4ICV7 YnVpbGRyb290fSV7bWluZ3czMl9iaW5kaXJ9L3B5dGhvbjMtY29uZmlnCi1jaG1vZCAreCAle2J1 aWxkcm9vdH0le21pbmd3NjRfYmluZGlyfS9weXRob24zLWNvbmZpZwotCiAKICVmaWxlcyAtbiBt aW5ndzMyLSV7cGtnbmFtZX0KICVsaWNlbnNlIExJQ0VOU0UKQEAgLTM3MCw4ICszMzcsNiBAQCBj aG1vZCAreCAle2J1aWxkcm9vdH0le21pbmd3NjRfYmluZGlyfS9weXRob24zLWNvbmZpZwogJXtf cnBtY29uZmlnZGlyfS9tYWNyb3MuZC9tYWNyb3MubWluZ3czMi1weXRob24zCiAle19ycG1jb25m aWdkaXJ9L2ZpbGVhdHRycy9taW5ndzMyX3B5dGhvbjMuYXR0cgogJXtfcHJlZml4fS8le21pbmd3 MzJfdGFyZ2V0fS9iaW4vcHl0aG9uMwotJXttaW5ndzMyX3B5M19ob3N0bGliZGlyfS8KLSV7bWlu Z3czMl9iaW5kaXJ9LzJ0bzMtJXtweV92ZXJ9CiAle21pbmd3MzJfYmluZGlyfS9pZGxlMyoKICV7 bWluZ3czMl9iaW5kaXJ9L3B5ZG9jMyoKICV7bWluZ3czMl9iaW5kaXJ9L3B5dGhvbjMuZXhlCkBA IC0zNzksMTQgKzM0NCwxOSBAQCBjaG1vZCAreCAle2J1aWxkcm9vdH0le21pbmd3NjRfYmluZGly fS9weXRob24zLWNvbmZpZwogJXttaW5ndzMyX2JpbmRpcn0vcHl0aG9uJXtweV92ZXJ9LmV4ZQog JXttaW5ndzMyX2JpbmRpcn0vcHl0aG9uJXtweV92ZXJ9LWNvbmZpZwogJXttaW5ndzMyX2JpbmRp cn0vcHl0aG9uM3cuZXhlCisle21pbmd3MzJfYmluZGlyfS9weXRob24le3B5X3Zlcn13LmV4ZQor JXttaW5ndzMyX2JpbmRpcn0vbGlicHl0aG9uMy5kbGwKICV7bWluZ3czMl9iaW5kaXJ9L2xpYnB5 dGhvbiV7cHlfdmVyfS5kbGwKICV7bWluZ3czMl9weTNfaW5jZGlyfS8KKyV7bWluZ3czMl9saWJk aXJ9L2xpYnB5dGhvbjMuZGxsLmEKICV7bWluZ3czMl9saWJkaXJ9L2xpYnB5dGhvbiV7cHlfdmVy fS5kbGwuYQogJXttaW5ndzMyX3B5M19saWJkaXJ9LwogJXttaW5ndzMyX2xpYmRpcn0vcGtnY29u ZmlnLyoucGMKKyMgUGFydCBvZiBtaW5ndzMyLXB5dGhvbjMtdGVzdAorJWV4Y2x1ZGUgJXttaW5n dzMyX3B5M19saWJkaXJ9L3Rlc3QKICMgUGFydCBvZiBtaW5ndzMyLXB5dGhvbjMtdGtpbnRlcgog JWV4Y2x1ZGUgJXttaW5ndzMyX3B5M19saWJkaXJ9L3RraW50ZXIvCi0lZXhjbHVkZSAle21pbmd3 MzJfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQvX3RraW50ZXIuY3B5dGhvbi0le3B5X3Zlcl9ub2Rv dHN9LmRsbAorJWV4Y2x1ZGUgJXttaW5ndzMyX3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL190a2lu dGVyLmNwJXtweV92ZXJfbm9kb3RzfS1taW5nd19pNjg2X21zdmNydF9nbnUucHlkCiAlZXhjbHVk ZSAle21pbmd3MzJfcHkzX2xpYmRpcn0vdHVydGxlLnB5CiAlZXhjbHVkZSAle21pbmd3MzJfcHkz X2xpYmRpcn0vX19weWNhY2hlX18vdHVydGxlKgogJWV4Y2x1ZGUgJXttaW5ndzMyX3B5M19saWJk aXJ9L3R1cnRsZWRlbW8KQEAgLTM5NCw0MCArMzY0LDEzIEBAIGNobW9kICt4ICV7YnVpbGRyb290 fSV7bWluZ3c2NF9iaW5kaXJ9L3B5dGhvbjMtY29uZmlnCiAlZXhjbHVkZSAle21pbmd3MzJfYmlu ZGlyfS9pZGxlMwogJWV4Y2x1ZGUgJXttaW5ndzMyX2JpbmRpcn0vaWRsZSV7cHlfdmVyfQogJWV4 Y2x1ZGUgJXttaW5ndzMyX3B5M19saWJkaXJ9L2lkbGVsaWIvCi0jIFBhcnQgb2YgbWluZ3czMi1w eXRob24zLXRlc3QKLSVleGNsdWRlICV7bWluZ3czMl9weTNfbGliZGlyfS9jdHlwZXMvdGVzdC8K LSVleGNsdWRlICV7bWluZ3czMl9weTNfbGliZGlyfS9kaXN0dXRpbHMvdGVzdHMvCi0lZXhjbHVk ZSAle21pbmd3MzJfcHkzX2xpYmRpcn0vbGliMnRvMy90ZXN0cy8KLSVleGNsdWRlICV7bWluZ3cz Ml9weTNfbGliZGlyfS90ZXN0LwotJWV4Y2x1ZGUgJXttaW5ndzMyX3B5M19saWJkaXJ9L3RraW50 ZXIvdGVzdC8KLSVleGNsdWRlICV7bWluZ3czMl9weTNfbGliZGlyfS91bml0dGVzdC90ZXN0Lwot JWV4Y2x1ZGUgJXttaW5ndzMyX3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL19jdHlwZXNfdGVzdC5j cHl0aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0lZXhjbHVkZSAle21pbmd3MzJfcHkzX2xpYmRp cn0vbGliLWR5bmxvYWQvX3Rlc3RidWZmZXIuY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9LmRsbAot JWV4Y2x1ZGUgJXttaW5ndzMyX3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL190ZXN0Y2FwaS5jcHl0 aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0lZXhjbHVkZSAle21pbmd3MzJfcHkzX2xpYmRpcn0v bGliLWR5bmxvYWQvX3Rlc3RpbXBvcnRtdWx0aXBsZS5jcHl0aG9uLSV7cHlfdmVyX25vZG90c30u ZGxsCi0lZXhjbHVkZSAle21pbmd3MzJfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQvX3Rlc3RpbnRl cm5hbGNhcGkuY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9LmRsbAotJWV4Y2x1ZGUgJXttaW5ndzMy X3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL190ZXN0bXVsdGlwaGFzZS5jcHl0aG9uLSV7cHlfdmVy X25vZG90c30uZGxsCi0lZXhjbHVkZSAle21pbmd3MzJfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQv X3h4dGVzdGZ1enouY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9LmRsbAogCiAlZmlsZXMgLW4gbWlu Z3czMi0le3BrZ25hbWV9LXRlc3QKLSV7bWluZ3czMl9weTNfbGliZGlyfS9jdHlwZXMvdGVzdC8K LSV7bWluZ3czMl9weTNfbGliZGlyfS9kaXN0dXRpbHMvdGVzdHMvCi0le21pbmd3MzJfcHkzX2xp YmRpcn0vbGliMnRvMy90ZXN0cy8KLSV7bWluZ3czMl9weTNfbGliZGlyfS90ZXN0LwotJXttaW5n dzMyX3B5M19saWJkaXJ9L3RraW50ZXIvdGVzdC8KLSV7bWluZ3czMl9weTNfbGliZGlyfS91bml0 dGVzdC90ZXN0LwotJXttaW5ndzMyX3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL19jdHlwZXNfdGVz dC5jcHl0aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0le21pbmd3MzJfcHkzX2xpYmRpcn0vbGli LWR5bmxvYWQvX3Rlc3RidWZmZXIuY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9LmRsbAotJXttaW5n dzMyX3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL190ZXN0Y2FwaS5jcHl0aG9uLSV7cHlfdmVyX25v ZG90c30uZGxsCi0le21pbmd3MzJfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQvX3Rlc3RpbXBvcnRt dWx0aXBsZS5jcHl0aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0le21pbmd3MzJfcHkzX2xpYmRp cn0vbGliLWR5bmxvYWQvX3Rlc3RpbnRlcm5hbGNhcGkuY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9 LmRsbAotJXttaW5ndzMyX3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL190ZXN0bXVsdGlwaGFzZS5j cHl0aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0le21pbmd3MzJfcHkzX2xpYmRpcn0vbGliLWR5 bmxvYWQvX3h4dGVzdGZ1enouY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9LmRsbAorJXttaW5ndzMy X3B5M19saWJkaXJ9L3Rlc3QKIAogJWZpbGVzIC1uIG1pbmd3MzItJXtwa2duYW1lfS10a2ludGVy CiAle21pbmd3MzJfcHkzX2xpYmRpcn0vdGtpbnRlci8KLSVleGNsdWRlICV7bWluZ3czMl9weTNf bGliZGlyfS90a2ludGVyL3Rlc3QvCi0le21pbmd3MzJfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQv X3RraW50ZXIuY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9LmRsbAorJXttaW5ndzMyX3B5M19saWJk aXJ9L2xpYi1keW5sb2FkL190a2ludGVyLmNwJXtweV92ZXJfbm9kb3RzfS1taW5nd19pNjg2X21z dmNydF9nbnUucHlkCiAle21pbmd3MzJfcHkzX2xpYmRpcn0vdHVydGxlLnB5CiAle21pbmd3MzJf cHkzX2xpYmRpcn0vX19weWNhY2hlX18vdHVydGxlKgogJXttaW5ndzMyX3B5M19saWJkaXJ9L3R1 cnRsZWRlbW8KQEAgLTQ0Myw4ICszODYsNiBAQCBjaG1vZCAreCAle2J1aWxkcm9vdH0le21pbmd3 NjRfYmluZGlyfS9weXRob24zLWNvbmZpZwogJXtfcnBtY29uZmlnZGlyfS9tYWNyb3MuZC9tYWNy b3MubWluZ3c2NC1weXRob24zCiAle19ycG1jb25maWdkaXJ9L2ZpbGVhdHRycy9taW5ndzY0X3B5 dGhvbjMuYXR0cgogJXtfcHJlZml4fS8le21pbmd3NjRfdGFyZ2V0fS9iaW4vcHl0aG9uMwotJXtt aW5ndzY0X3B5M19ob3N0bGliZGlyfS8KLSV7bWluZ3c2NF9iaW5kaXJ9LzJ0bzMtJXtweV92ZXJ9 CiAle21pbmd3NjRfYmluZGlyfS9pZGxlMyoKICV7bWluZ3c2NF9iaW5kaXJ9L3B5ZG9jMyoKICV7 bWluZ3c2NF9iaW5kaXJ9L3B5dGhvbjMuZXhlCkBAIC00NTIsMTQgKzM5MywxOSBAQCBjaG1vZCAr eCAle2J1aWxkcm9vdH0le21pbmd3NjRfYmluZGlyfS9weXRob24zLWNvbmZpZwogJXttaW5ndzY0 X2JpbmRpcn0vcHl0aG9uJXtweV92ZXJ9LmV4ZQogJXttaW5ndzY0X2JpbmRpcn0vcHl0aG9uJXtw eV92ZXJ9LWNvbmZpZwogJXttaW5ndzY0X2JpbmRpcn0vcHl0aG9uM3cuZXhlCisle21pbmd3NjRf YmluZGlyfS9weXRob24le3B5X3Zlcn13LmV4ZQorJXttaW5ndzY0X2JpbmRpcn0vbGlicHl0aG9u My5kbGwKICV7bWluZ3c2NF9iaW5kaXJ9L2xpYnB5dGhvbiV7cHlfdmVyfS5kbGwKICV7bWluZ3c2 NF9weTNfaW5jZGlyfS8KKyV7bWluZ3c2NF9saWJkaXJ9L2xpYnB5dGhvbjMuZGxsLmEKICV7bWlu Z3c2NF9saWJkaXJ9L2xpYnB5dGhvbiV7cHlfdmVyfS5kbGwuYQogJXttaW5ndzY0X3B5M19saWJk aXJ9LwogJXttaW5ndzY0X2xpYmRpcn0vcGtnY29uZmlnLyoucGMKKyMgUGFydCBvZiBtaW5ndzY0 LXB5dGhvbjMtdGVzdAorJWV4Y2x1ZGUgJXttaW5ndzY0X3B5M19saWJkaXJ9L3Rlc3QKICMgUGFy dCBvZiBtaW5ndzY0LXB5dGhvbjMtdGtpbnRlcgogJWV4Y2x1ZGUgJXttaW5ndzY0X3B5M19saWJk aXJ9L3RraW50ZXIvCi0lZXhjbHVkZSAle21pbmd3NjRfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQv X3RraW50ZXIuY3B5dGhvbi0le3B5X3Zlcl9ub2RvdHN9LmRsbAorJWV4Y2x1ZGUgJXttaW5ndzY0 X3B5M19saWJkaXJ9L2xpYi1keW5sb2FkL190a2ludGVyLmNwJXtweV92ZXJfbm9kb3RzfS1taW5n d194ODZfNjRfbXN2Y3J0X2dudS5weWQKICVleGNsdWRlICV7bWluZ3c2NF9weTNfbGliZGlyfS90 dXJ0bGUucHkKICVleGNsdWRlICV7bWluZ3c2NF9weTNfbGliZGlyfS9fX3B5Y2FjaGVfXy90dXJ0 bGUqCiAlZXhjbHVkZSAle21pbmd3NjRfcHkzX2xpYmRpcn0vdHVydGxlZGVtbwpAQCAtNDY3LDQw ICs0MTMsMTMgQEAgY2htb2QgK3ggJXtidWlsZHJvb3R9JXttaW5ndzY0X2JpbmRpcn0vcHl0aG9u My1jb25maWcKICVleGNsdWRlICV7bWluZ3c2NF9iaW5kaXJ9L2lkbGUzCiAlZXhjbHVkZSAle21p bmd3NjRfYmluZGlyfS9pZGxlJXtweV92ZXJ9CiAlZXhjbHVkZSAle21pbmd3NjRfcHkzX2xpYmRp cn0vaWRsZWxpYi8KLSMgUGFydCBvZiBtaW5ndzY0LXB5dGhvbjMtdGVzdAotJWV4Y2x1ZGUgJXtt aW5ndzY0X3B5M19saWJkaXJ9L2N0eXBlcy90ZXN0LwotJWV4Y2x1ZGUgJXttaW5ndzY0X3B5M19s aWJkaXJ9L2Rpc3R1dGlscy90ZXN0cy8KLSVleGNsdWRlICV7bWluZ3c2NF9weTNfbGliZGlyfS9s aWIydG8zL3Rlc3RzLwotJWV4Y2x1ZGUgJXttaW5ndzY0X3B5M19saWJkaXJ9L3Rlc3QvCi0lZXhj bHVkZSAle21pbmd3NjRfcHkzX2xpYmRpcn0vdGtpbnRlci90ZXN0LwotJWV4Y2x1ZGUgJXttaW5n dzY0X3B5M19saWJkaXJ9L3VuaXR0ZXN0L3Rlc3QvCi0lZXhjbHVkZSAle21pbmd3NjRfcHkzX2xp YmRpcn0vbGliLWR5bmxvYWQvX2N0eXBlc190ZXN0LmNweXRob24tJXtweV92ZXJfbm9kb3RzfS5k bGwKLSVleGNsdWRlICV7bWluZ3c2NF9weTNfbGliZGlyfS9saWItZHlubG9hZC9fdGVzdGJ1ZmZl ci5jcHl0aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0lZXhjbHVkZSAle21pbmd3NjRfcHkzX2xp YmRpcn0vbGliLWR5bmxvYWQvX3Rlc3RjYXBpLmNweXRob24tJXtweV92ZXJfbm9kb3RzfS5kbGwK LSVleGNsdWRlICV7bWluZ3c2NF9weTNfbGliZGlyfS9saWItZHlubG9hZC9fdGVzdGltcG9ydG11 bHRpcGxlLmNweXRob24tJXtweV92ZXJfbm9kb3RzfS5kbGwKLSVleGNsdWRlICV7bWluZ3c2NF9w eTNfbGliZGlyfS9saWItZHlubG9hZC9fdGVzdGludGVybmFsY2FwaS5jcHl0aG9uLSV7cHlfdmVy X25vZG90c30uZGxsCi0lZXhjbHVkZSAle21pbmd3NjRfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQv X3Rlc3RtdWx0aXBoYXNlLmNweXRob24tJXtweV92ZXJfbm9kb3RzfS5kbGwKLSVleGNsdWRlICV7 bWluZ3c2NF9weTNfbGliZGlyfS9saWItZHlubG9hZC9feHh0ZXN0ZnV6ei5jcHl0aG9uLSV7cHlf dmVyX25vZG90c30uZGxsCiAKICVmaWxlcyAtbiBtaW5ndzY0LSV7cGtnbmFtZX0tdGVzdAotJXtt aW5ndzY0X3B5M19saWJkaXJ9L2N0eXBlcy90ZXN0LwotJXttaW5ndzY0X3B5M19saWJkaXJ9L2Rp c3R1dGlscy90ZXN0cy8KLSV7bWluZ3c2NF9weTNfbGliZGlyfS9saWIydG8zL3Rlc3RzLwotJXtt aW5ndzY0X3B5M19saWJkaXJ9L3Rlc3QvCi0le21pbmd3NjRfcHkzX2xpYmRpcn0vdGtpbnRlci90 ZXN0LwotJXttaW5ndzY0X3B5M19saWJkaXJ9L3VuaXR0ZXN0L3Rlc3QvCi0le21pbmd3NjRfcHkz X2xpYmRpcn0vbGliLWR5bmxvYWQvX2N0eXBlc190ZXN0LmNweXRob24tJXtweV92ZXJfbm9kb3Rz fS5kbGwKLSV7bWluZ3c2NF9weTNfbGliZGlyfS9saWItZHlubG9hZC9fdGVzdGJ1ZmZlci5jcHl0 aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0le21pbmd3NjRfcHkzX2xpYmRpcn0vbGliLWR5bmxv YWQvX3Rlc3RjYXBpLmNweXRob24tJXtweV92ZXJfbm9kb3RzfS5kbGwKLSV7bWluZ3c2NF9weTNf bGliZGlyfS9saWItZHlubG9hZC9fdGVzdGltcG9ydG11bHRpcGxlLmNweXRob24tJXtweV92ZXJf bm9kb3RzfS5kbGwKLSV7bWluZ3c2NF9weTNfbGliZGlyfS9saWItZHlubG9hZC9fdGVzdGludGVy bmFsY2FwaS5jcHl0aG9uLSV7cHlfdmVyX25vZG90c30uZGxsCi0le21pbmd3NjRfcHkzX2xpYmRp cn0vbGliLWR5bmxvYWQvX3Rlc3RtdWx0aXBoYXNlLmNweXRob24tJXtweV92ZXJfbm9kb3RzfS5k bGwKLSV7bWluZ3c2NF9weTNfbGliZGlyfS9saWItZHlubG9hZC9feHh0ZXN0ZnV6ei5jcHl0aG9u LSV7cHlfdmVyX25vZG90c30uZGxsCisle21pbmd3NjRfcHkzX2xpYmRpcn0vdGVzdAogCiAlZmls ZXMgLW4gbWluZ3c2NC0le3BrZ25hbWV9LXRraW50ZXIKICV7bWluZ3c2NF9weTNfbGliZGlyfS90 a2ludGVyLwotJWV4Y2x1ZGUgJXttaW5ndzY0X3B5M19saWJkaXJ9L3RraW50ZXIvdGVzdC8KLSV7 bWluZ3c2NF9weTNfbGliZGlyfS9saWItZHlubG9hZC9fdGtpbnRlci5jcHl0aG9uLSV7cHlfdmVy X25vZG90c30uZGxsCisle21pbmd3NjRfcHkzX2xpYmRpcn0vbGliLWR5bmxvYWQvX3RraW50ZXIu Y3Ale3B5X3Zlcl9ub2RvdHN9LW1pbmd3X3g4Nl82NF9tc3ZjcnRfZ251LnB5ZAogJXttaW5ndzY0 X3B5M19saWJkaXJ9L3R1cnRsZS5weQogJXttaW5ndzY0X3B5M19saWJkaXJ9L19fcHljYWNoZV9f L3R1cnRsZSoKICV7bWluZ3c2NF9weTNfbGliZGlyfS90dXJ0bGVkZW1vCkBAIC01MTIsNiArNDMx LDEyIEBAIGNobW9kICt4ICV7YnVpbGRyb290fSV7bWluZ3c2NF9iaW5kaXJ9L3B5dGhvbjMtY29u ZmlnCiAKIAogJWNoYW5nZWxvZworKiBUdWUgU2VwIDIyIDIwMjYgU2FuZHJvIE1hbmkgPG1hbmlz YW5kcm9AZ21haWwuY29tPiAtIDMuMTQuNy0xCistIFVwZGF0ZSB0byAzLjE0LjcKKworKiBUdWUg U2VwIDIyIDIwMjYgU2FuZHJvIE1hbmkgPG1hbmlzYW5kcm9AZ21haWwuY29tPiAtIDMuMTQtMQor LSBVcGRhdGUgdG8gMy4xNAorCiAqIEZyaSBTZXAgMTggMjAyNiBTYW5kcm8gTWFuaSA8bWFuaXNh bmRyb0BnbWFpbC5jb20+IC0gMy4xMS4xNi0xCiAtIFVwZGF0ZSB0byAzLjExLjE2CiAKCmRpZmYg LS1naXQgYS9taW5ndy1weXRob24zX2Rpc3R1dGlscy5wYXRjaCBiL21pbmd3LXB5dGhvbjNfZGlz dHV0aWxzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGU4MTZjLi4wMDAw MDAwCi0tLSBhL21pbmd3LXB5dGhvbjNfZGlzdHV0aWxzLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTcxICswLDAgQEAKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4x Ni9MaWIvZGlzdHV0aWxzL2Njb21waWxlci5weSBQeXRob24tMy4xMS4xNi1uZXcvTGliL2Rpc3R1 dGlscy9jY29tcGlsZXIucHkKLS0tLSBQeXRob24tMy4xMS4xNi9MaWIvZGlzdHV0aWxzL2Njb21w aWxlci5weQkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0z LjExLjE2LW5ldy9MaWIvZGlzdHV0aWxzL2Njb21waWxlci5weQkyMDI2LTA5LTE4IDE5OjIzOjA3 LjQwMjc5MTgyMCArMDIwMAotQEAgLTksNyArOSw3IEBAIGZyb20gZGlzdHV0aWxzLnNwYXduIGlt cG9ydCBzcGF3bgotIGZyb20gZGlzdHV0aWxzLmZpbGVfdXRpbCBpbXBvcnQgbW92ZV9maWxlCi0g ZnJvbSBkaXN0dXRpbHMuZGlyX3V0aWwgaW1wb3J0IG1rcGF0aAotIGZyb20gZGlzdHV0aWxzLmRl cF91dGlsIGltcG9ydCBuZXdlcl9ncm91cAotLWZyb20gZGlzdHV0aWxzLnV0aWwgaW1wb3J0IHNw bGl0X3F1b3RlZCwgZXhlY3V0ZQotK2Zyb20gZGlzdHV0aWxzLnV0aWwgaW1wb3J0IHNwbGl0X3F1 b3RlZCwgZXhlY3V0ZSwgZ2V0X3BsYXRmb3JtCi0gZnJvbSBkaXN0dXRpbHMgaW1wb3J0IGxvZwot IAotIGNsYXNzIENDb21waWxlcjoKLUBAIC05NDgsNiArOTQ4LDggQEAgZGVmIGdldF9kZWZhdWx0 X2NvbXBpbGVyKG9zbmFtZT1Ob25lLCBwbAotICAgICAgICAgb3NuYW1lID0gb3MubmFtZQotICAg ICBpZiBwbGF0Zm9ybSBpcyBOb25lOgotICAgICAgICAgcGxhdGZvcm0gPSBzeXMucGxhdGZvcm0K LSsgICAgaWYgZ2V0X3BsYXRmb3JtKCkuc3RhcnRzd2l0aCgnbWluZ3cnKToKLSsgICAgICAgIHJl dHVybiAnbWluZ3czMicKLSAgICAgZm9yIHBhdHRlcm4sIGNvbXBpbGVyIGluIF9kZWZhdWx0X2Nv bXBpbGVyczoKLSAgICAgICAgIGlmIHJlLm1hdGNoKHBhdHRlcm4sIHBsYXRmb3JtKSBpcyBub3Qg Tm9uZSBvciBcCi0gICAgICAgICAgICByZS5tYXRjaChwYXR0ZXJuLCBvc25hbWUpIGlzIG5vdCBO b25lOgotQEAgLTEwMDUsNiArMTAwNyw5IEBAIGRlZiBuZXdfY29tcGlsZXIocGxhdD1Ob25lLCBj b21waWxlcj1Ob24KLSAgICAgICAgIGlmIGNvbXBpbGVyIGlzIE5vbmU6Ci0gICAgICAgICAgICAg Y29tcGlsZXIgPSBnZXRfZGVmYXVsdF9jb21waWxlcihwbGF0KQotIAotKyAgICAgICAgaWYgIm1p bmd3MzIiIGluIG9zLmVudmlyb24uZ2V0KCJDQyIsICIiKToKLSsgICAgICAgICAgICBjb21waWxl ciA9ICJtaW5ndzMyIgotKwotICAgICAgICAgKG1vZHVsZV9uYW1lLCBjbGFzc19uYW1lLCBsb25n X2Rlc2NyaXB0aW9uKSA9IGNvbXBpbGVyX2NsYXNzW2NvbXBpbGVyXQotICAgICBleGNlcHQgS2V5 RXJyb3I6Ci0gICAgICAgICBtc2cgPSAiZG9uJ3Qga25vdyBob3cgdG8gY29tcGlsZSBDL0MrKyBj b2RlIG9uIHBsYXRmb3JtICclcyciICUgcGxhdAotZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNl IFB5dGhvbi0zLjExLjE2L0xpYi9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9leHQucHkgUHl0aG9u LTMuMTEuMTYtbmV3L0xpYi9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9leHQucHkKLS0tLSBQeXRo b24tMy4xMS4xNi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfZXh0LnB5CTIwMjYtMDgtMTMg MDE6MDM6MTkuMDAwMDAwMDAwICswMjAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L0xpYi9kaXN0 dXRpbHMvY29tbWFuZC9idWlsZF9leHQucHkJMjAyNi0wOS0xOCAxOToyMzowNy40MDMxODk2ODMg KzAyMDAKLUBAIC0xODYsNyArMTg2LDcgQEAgY2xhc3MgYnVpbGRfZXh0KENvbW1hbmQpOgotICAg ICAgICAgIyBmb3IgZXh0ZW5zaW9ucyB1bmRlciB3aW5kb3dzIHVzZSBkaWZmZXJlbnQgZGlyZWN0 b3JpZXMKLSAgICAgICAgICMgZm9yIFJlbGVhc2UgYW5kIERlYnVnIGJ1aWxkcy4KLSAgICAgICAg ICMgYWxzbyBQeXRob24ncyBsaWJyYXJ5IGRpcmVjdG9yeSBtdXN0IGJlIGFwcGVuZGVkIHRvIGxp YnJhcnlfZGlycwotLSAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnOgotKyAgICAgICAgaWYgb3Mu bmFtZSA9PSAnbnQnIGFuZCBub3Qgc2VsZi5wbGF0X25hbWUuc3RhcnRzd2l0aCgoJ21pbmd3Jykp OgotICAgICAgICAgICAgICMgdGhlICdsaWJzJyBkaXJlY3RvcnkgaXMgZm9yIGJpbmFyeSBpbnN0 YWxscyAtIHdlIGFzc3VtZSB0aGF0Ci0gICAgICAgICAgICAgIyBtdXN0IGJlIHRoZSAqbmF0aXZl KiBwbGF0Zm9ybS4gIEJ1dCB3ZSBkb24ndCByZWFsbHkgc3VwcG9ydAotICAgICAgICAgICAgICMg Y3Jvc3MtY29tcGlsaW5nIHZpYSBhIGJpbmFyeSBpbnN0YWxsIGFueXdheSwgc28gd2UgbGV0IGl0 IGdvLgotQEAgLTcxMiw2ICs3MTIsMjAgQEAgY2xhc3MgYnVpbGRfZXh0KENvbW1hbmQpOgotICAg ICAgICAgIyBweWNvbmZpZy5oIHRoYXQgTVNWQyBncm9rcy4gIFRoZSBvdGhlciBXaW5kb3dzIGNv bXBpbGVycyBhbGwgc2VlbQotICAgICAgICAgIyB0byBuZWVkIGl0IG1lbnRpb25lZCBleHBsaWNp dGx5LCB0aG91Z2gsIHNvIHRoYXQncyB3aGF0IHdlIGRvLgotICAgICAgICAgIyBBcHBlbmQgJ19k JyB0byB0aGUgcHl0aG9uIGltcG9ydCBsaWJyYXJ5IG9uIGRlYnVnIGJ1aWxkcy4KLSsKLSsgICAg ICAgICMgVXNlIHNlbGYucGxhdF9uYW1lIGFzIGl0IHdvcmtzIGV2ZW4gaW4gY2FzZSBvZgotKyAg ICAgICAgIyBjcm9zcy1jb21waWxhdGlvbiAoYXQgbGVhc3QgZm9yIG1pbmd3IGJ1aWxkKS4KLSsg ICAgICAgIGlmIHNlbGYucGxhdF9uYW1lLnN0YXJ0c3dpdGgoJ21pbmd3Jyk6Ci0rICAgICAgICAg ICAgZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZwotKyAgICAgICAgICAgIGV4dHJhID0g W10KLSsgICAgICAgICAgICBmb3IgbGliIGluICgKLSsgICAgICAgICAgICAgICAgc3lzY29uZmln LmdldF9jb25maWdfdmFyKCdCTERMSUJSQVJZJykuc3BsaXQoKQotKyAgICAgICAgICAgICAgICAr IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignU0hMSUJTJykuc3BsaXQoKQotKyAgICAgICAgICAg ICAgICApOgotKyAgICAgICAgICAgICAgICBpZiBsaWIuc3RhcnRzd2l0aCgnLWwnKToKLSsgICAg ICAgICAgICAgICAgICAgIGV4dHJhLmFwcGVuZChsaWJbMjpdKQotKyAgICAgICAgICAgIHJldHVy biBleHQubGlicmFyaWVzICsgZXh0cmEKLSsKLSAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAi d2luMzIiOgotICAgICAgICAgICAgIGZyb20gZGlzdHV0aWxzLl9tc3ZjY29tcGlsZXIgaW1wb3J0 IE1TVkNDb21waWxlcgotICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYuY29tcGls ZXIsIE1TVkNDb21waWxlcik6Ci1AQCAtNzQ0LDcgKzc1OCw3IEBAIGNsYXNzIGJ1aWxkX2V4dChD b21tYW5kKToKLSAgICAgICAgICAgICAgICAgICAgICMgV2UgYXJlIGNyb3NzLWNvbXBpbGluZyBm b3Igb25lIG9mIHRoZSByZWxldmFudCBwbGF0Zm9ybXMKLSAgICAgICAgICAgICAgICAgICAgIGlm IGdldF9jb25maWdfdmFyKCdBTkRST0lEX0FQSV9MRVZFTCcpICE9IDA6Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgbGlua19saWJweXRob24gPSBUcnVlCi0tICAgICAgICAgICAgICAgICAgICBl bGlmIGdldF9jb25maWdfdmFyKCdNQUNIREVQJykgPT0gJ2N5Z3dpbic6Ci0rICAgICAgICAgICAg ICAgICAgICBlbGlmIGdldF9jb25maWdfdmFyKCdNQUNIREVQJykgPT0gJ2N5Z3dpbicgb3IgZ2V0 X2NvbmZpZ192YXIoJ01BQ0hERVAnKSA9PSAnd2luMzInOgotICAgICAgICAgICAgICAgICAgICAg ICAgIGxpbmtfbGlicHl0aG9uID0gVHJ1ZQotIAotICAgICAgICAgICAgIGlmIGxpbmtfbGlicHl0 aG9uOgotZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L0xpYi9kaXN0 dXRpbHMvY3lnd2luY2NvbXBpbGVyLnB5IFB5dGhvbi0zLjExLjE2LW5ldy9MaWIvZGlzdHV0aWxz L2N5Z3dpbmNjb21waWxlci5weQotLS0tIFB5dGhvbi0zLjExLjE2L0xpYi9kaXN0dXRpbHMvY3ln d2luY2NvbXBpbGVyLnB5CTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICswMjAwCi0rKysg UHl0aG9uLTMuMTEuMTYtbmV3L0xpYi9kaXN0dXRpbHMvY3lnd2luY2NvbXBpbGVyLnB5CTIwMjYt MDktMTggMTk6MjM6MDcuNDAzNDk1NDk5ICswMjAwCi1AQCAtOTAsNyArOTAsOCBAQCBjbGFzcyBD eWd3aW5DQ29tcGlsZXIoVW5peENDb21waWxlcik6Ci0gICAgIGNvbXBpbGVyX3R5cGUgPSAnY3ln d2luJwotICAgICBvYmpfZXh0ZW5zaW9uID0gIi5vIgotICAgICBzdGF0aWNfbGliX2V4dGVuc2lv biA9ICIuYSIKLS0gICAgc2hhcmVkX2xpYl9leHRlbnNpb24gPSAiLmRsbCIKLSsgICAgc2hhcmVk X2xpYl9leHRlbnNpb24gPSAiLmRsbC5hIgotKyAgICBkeWxpYl9saWJfZXh0ZW5zaW9uID0gIi5k bGwuYSIKLSAgICAgc3RhdGljX2xpYl9mb3JtYXQgPSAibGliJXMlcyIKLSAgICAgc2hhcmVkX2xp Yl9mb3JtYXQgPSAiJXMlcyIKLSAgICAgZXhlX2V4dGVuc2lvbiA9ICIuZXhlIgotQEAgLTIzNSw4 ICsyMzYsOSBAQCBjbGFzcyBDeWd3aW5DQ29tcGlsZXIoVW5peENDb21waWxlcik6Ci0gICAgICAg ICAjIChPbiBteSBtYWNoaW5lOiAxMEtpQiA8IHN0cmlwcGVkX2ZpbGUgPCA/PzEwMEtpQgotICAg ICAgICAgIyAgIHVuc3RyaXBwZWRfZmlsZSA9IHN0cmlwcGVkX2ZpbGUgKyBYWFggS2lCCi0gICAg ICAgICAjICAoIFhYWD0yNTQgZm9yIGEgdHlwaWNhbCBweXRob24gZXh0ZW5zaW9uKSkKLS0gICAg ICAgIGlmIG5vdCBkZWJ1ZzoKLS0gICAgICAgICAgICBleHRyYV9wcmVhcmdzLmFwcGVuZCgiLXMi KQotKyAgICAgICAgIyA9PiBMZXQgbWluZ3ctZmluZC1kZWJ1Z2luZm8uc2ggc3RyaXAgdGhlIGJp bmFyaWVzCi0rICAgICAgICAjIGlmIG5vdCBkZWJ1ZzoKLSsgICAgICAgICMgICAgIGV4dHJhX3By ZWFyZ3MuYXBwZW5kKCItcyIpCi0gCi0gICAgICAgICBVbml4Q0NvbXBpbGVyLmxpbmsoc2VsZiwg dGFyZ2V0X2Rlc2MsIG9iamVjdHMsIG91dHB1dF9maWxlbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvdXRwdXRfZGlyLCBsaWJyYXJpZXMsIGxpYnJhcnlfZGlycywKLUBAIC0zMTMs NyArMzE1LDEwIEBAIGNsYXNzIE1pbmd3MzJDQ29tcGlsZXIoQ3lnd2luQ0NvbXBpbGVyKToKLSAK LSAgICAgICAgICMgSW5jbHVkZSB0aGUgYXBwcm9wcmlhdGUgTVNWQyBydW50aW1lIGxpYnJhcnkg aWYgUHl0aG9uIHdhcyBidWlsdAotICAgICAgICAgIyB3aXRoIE1TVkMgNy4wIG9yIGxhdGVyLgot LSAgICAgICAgc2VsZi5kbGxfbGlicmFyaWVzID0gZ2V0X21zdmNyKCkKLSsgICAgICAgIHNlbGYu ZGxsX2xpYnJhcmllcyA9IGdldF9tc3ZjcigpIG9yIFtdCi0rCi0rICAgIGRlZiBydW50aW1lX2xp YnJhcnlfZGlyX29wdGlvbihzZWxmLCBkaXIpOgotKyAgICAgICAgcmV0dXJuICItTCIgKyBkaXIK LSAKLSAjIEJlY2F1c2UgdGhlc2UgY29tcGlsZXJzIGFyZW4ndCBjb25maWd1cmVkIGluIFB5dGhv bidzIHB5Y29uZmlnLmggZmlsZSBieQotICMgZGVmYXVsdCwgd2Ugc2hvdWxkIGF0IGxlYXN0IHdh cm4gdGhlIHVzZXIgaWYgaGUgaXMgdXNpbmcgYW4gdW5tb2RpZmllZAotQEAgLTM2Niw3ICszNzEs NyBAQCBkZWYgY2hlY2tfY29uZmlnX2goKToKLSAgICAgICAgIHJldHVybiAoQ09ORklHX0hfVU5D RVJUQUlOLAotICAgICAgICAgICAgICAgICAiY291bGRuJ3QgcmVhZCAnJXMnOiAlcyIgJSAoZm4s IGV4Yy5zdHJlcnJvcikpCi0gCi0tUkVfVkVSU0lPTiA9IHJlLmNvbXBpbGUoYnInKFxkK1wuXGQr KFwuXGQrKSopJykKLStSRV9WRVJTSU9OID0gcmUuY29tcGlsZShicidbXERcc10qKFxkK1wuXGQr KFwuXGQrKSopLiokJykKLSAKLSBkZWYgX2ZpbmRfZXhlX3ZlcnNpb24oY21kKToKLSAgICAgIiIi RmluZCB0aGUgdmVyc2lvbiBvZiBhbiBleGVjdXRhYmxlIGJ5IHJ1bm5pbmcgYGNtZGAgaW4gdGhl IHNoZWxsLgotQEAgLTM5NCwxMCArMzk5LDE0IEBAIGRlZiBnZXRfdmVyc2lvbnMoKToKLSAKLSAg ICAgSWYgbm90IHBvc3NpYmxlIGl0IHJldHVybnMgTm9uZSBmb3IgaXQuCi0gICAgICIiIgotLSAg ICBjb21tYW5kcyA9IFsnZ2NjIC1kdW1wdmVyc2lvbicsICdsZCAtdicsICdkbGx3cmFwIC0tdmVy c2lvbiddCi0rICAgIGdjYyA9IG9zLmVudmlyb24uZ2V0KCdDQycpIG9yICdnY2MnCi0rICAgIGxk ID0gb3MuZW52aXJvbi5nZXQoJ0xEJykgb3IgJ2xkJwotKyAgICBkbGx3cmFwID0gb3MuZW52aXJv bi5nZXQoJ0RMTFdSQVAnKSBvciAnZGxsd3JhcCcKLSsgICAgY29tbWFuZHMgPSBbZ2NjKycgLWR1 bXBmdWxsdmVyc2lvbiAtZHVtcHZlcnNpb24nLCBsZCsnIC12JywgZGxsd3JhcCsnIC0tdmVyc2lv biddCi0gICAgIHJldHVybiB0dXBsZShbX2ZpbmRfZXhlX3ZlcnNpb24oY21kKSBmb3IgY21kIGlu IGNvbW1hbmRzXSkKLSAKLSBkZWYgaXNfY3lnd2luZ2NjKCk6Ci0gICAgICcnJ1RyeSB0byBkZXRl cm1pbmUgaWYgdGhlIGdjYyB0aGF0IHdvdWxkIGJlIHVzZWQgaXMgZnJvbSBjeWd3aW4uJycnCi0t ICAgIG91dF9zdHJpbmcgPSBjaGVja19vdXRwdXQoWydnY2MnLCAnLWR1bXBtYWNoaW5lJ10pCi0r ICAgIGdjYyA9IG9zLmVudmlyb24uZ2V0KCdDQycpIG9yICdnY2MnCi0rICAgIG91dF9zdHJpbmcg PSBjaGVja19vdXRwdXQoW2djYywgJy1kdW1wbWFjaGluZSddKQotICAgICByZXR1cm4gb3V0X3N0 cmluZy5zdHJpcCgpLmVuZHN3aXRoKGInY3lnd2luJykKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVy ZW5jZSBQeXRob24tMy4xMS4xNi9MaWIvZGlzdHV0aWxzL3N5c2NvbmZpZy5weSBQeXRob24tMy4x MS4xNi1uZXcvTGliL2Rpc3R1dGlscy9zeXNjb25maWcucHkKLS0tLSBQeXRob24tMy4xMS4xNi9M aWIvZGlzdHV0aWxzL3N5c2NvbmZpZy5weQkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCAr MDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9MaWIvZGlzdHV0aWxzL3N5c2NvbmZpZy5weQky MDI2LTA5LTE4IDE5OjIzOjA3LjQwMzc1NDc4OCArMDIwMAotQEAgLTE5Niw3ICsxOTYsNyBAQCBk ZWYgY3VzdG9taXplX2NvbXBpbGVyKGNvbXBpbGVyKToKLSAgICAgTWFpbmx5IG5lZWRlZCBvbiBV bml4LCBzbyB3ZSBjYW4gcGx1ZyBpbiB0aGUgaW5mb3JtYXRpb24gdGhhdAotICAgICB2YXJpZXMg YWNyb3NzIFVuaWNlcyBhbmQgaXMgc3RvcmVkIGluIFB5dGhvbidzIE1ha2VmaWxlLgotICAgICAi IiIKLS0gICAgaWYgY29tcGlsZXIuY29tcGlsZXJfdHlwZSA9PSAidW5peCI6Ci0rICAgIGlmIGNv bXBpbGVyLmNvbXBpbGVyX3R5cGUgaW4gWyJ1bml4IiwgImN5Z3dpbiIsICJtaW5ndzMyIl06Ci0g ICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gImRhcndpbiI6Ci0gICAgICAgICAgICAgIyBQZXJm b3JtIGZpcnN0LXRpbWUgY3VzdG9taXphdGlvbiBvZiBjb21waWxlci1yZWxhdGVkCi0gICAgICAg ICAgICAgIyBjb25maWcgdmFycyBvbiBPUyBYIG5vdyB0aGF0IHdlIGtub3cgd2UgbmVlZCBhIGNv bXBpbGVyLgotQEAgLTI1Nyw4ICsyNTcsOCBAQCBkZWYgY3VzdG9taXplX2NvbXBpbGVyKGNvbXBp bGVyKToKLSAgICAgICAgICAgICBsaW5rZXJfc289bGRzaGFyZWQsCi0gICAgICAgICAgICAgbGlu a2VyX2V4ZT1jYywKLSAgICAgICAgICAgICBhcmNoaXZlcj1hcmNoaXZlcikKLS0KLS0gICAgICAg IGNvbXBpbGVyLnNoYXJlZF9saWJfZXh0ZW5zaW9uID0gc2hsaWJfc3VmZml4Ci0rICAgICAgICAj IERvbid0IG92ZXJyaWRlIHZhbHVlIGJ1dCB1c2Ugd2hhdCBpcyBzZXQgaW4gZGVyaXZlZCBjb21w aWxlciBjbGFzcyBpdHNlbGYKLSsgICAgICAgICMgY29tcGlsZXIuc2hhcmVkX2xpYl9leHRlbnNp b24gPSBzaGxpYl9zdWZmaXgKLSAKLSAKLSBkZWYgZ2V0X3B5dGhvbl9pbmMocGxhdF9zcGVjaWZp Yz0wLCBwcmVmaXg9Tm9uZSk6Ci1kaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMu MTEuMTYvTGliL2Rpc3R1dGlscy91dGlsLnB5IFB5dGhvbi0zLjExLjE2LW5ldy9MaWIvZGlzdHV0 aWxzL3V0aWwucHkKLS0tLSBQeXRob24tMy4xMS4xNi9MaWIvZGlzdHV0aWxzL3V0aWwucHkJMjAy Ni0wOC0xMyAwMTowMzoxOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBQeXRob24tMy4xMS4xNi1uZXcv TGliL2Rpc3R1dGlscy91dGlsLnB5CTIwMjYtMDktMTggMTk6MjM6MDcuNDAzOTk1MTQwICswMjAw Ci1AQCAtMzcsNiArMzcsOCBAQCBkZWYgZ2V0X2hvc3RfcGxhdGZvcm0oKToKLSAKLSAgICAgIiIi Ci0gICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKLSsgICAgICAgIGlmICdHQ0MnIGluIHN5cy52ZXJz aW9uOgotKyAgICAgICAgICAgIHJldHVybiAnbWluZ3cnCi0gICAgICAgICBpZiAnYW1kNjQnIGlu IHN5cy52ZXJzaW9uLmxvd2VyKCk6Ci0gICAgICAgICAgICAgcmV0dXJuICd3aW4tYW1kNjQnCi0g ICAgICAgICBpZiAnKGFybSknIGluIHN5cy52ZXJzaW9uLmxvd2VyKCk6CgpkaWZmIC0tZ2l0IGEv bWluZ3ctcHl0aG9uM19mcm96ZW5tYWluLnBhdGNoIGIvbWluZ3ctcHl0aG9uM19mcm96ZW5tYWlu LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTJkNTA1Li4wMDAwMDAwCi0t LSBhL21pbmd3LXB5dGhvbjNfZnJvemVubWFpbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMy ICswLDAgQEAKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9jb25m aWd1cmUuYWMgUHl0aG9uLTMuMTEuMTYtbmV3L2NvbmZpZ3VyZS5hYwotLS0tIFB5dGhvbi0zLjEx LjE2L2NvbmZpZ3VyZS5hYwkyMDI2LTA5LTE4IDE5OjIzOjA2LjAyNDk3OTg4OCArMDIwMAotKysr IFB5dGhvbi0zLjExLjE2LW5ldy9jb25maWd1cmUuYWMJMjAyNi0wOS0xOCAxOToyMzowNi4zMTMz OTIxNjUgKzAyMDAKLUBAIC02NDExLDYgKzY0MTEsMTYgQEAgZG8KLSAgIFRIUkVBREhFQURFUlM9 IiRUSFJFQURIRUFERVJTIFwkKHNyY2RpcikvJGgiCi0gZG9uZQotIAotK2RubCBQeXRob24gaW50 ZXJwcmV0ZXIgbWFpbiBwcm9ncmFtIGZvciBmcm96ZW4gc2NyaXB0cwotK0FDX1NVQlNUKFBZVEhP Tl9PQkpTX0ZST1pFTk1BSU4pCi0rUFlUSE9OX09CSlNfRlJPWkVOTUFJTj0iUHl0aG9uL2Zyb3pl bm1haW4ubyIKLStjYXNlICRob3N0IGluCi0rICAqLSotbWluZ3cqKQotKyAgICBkbmwgJ1BDL2Zy b3plbl9kbGxtYWluLmMnIC0gbm90IHlldAotKyAgICBQWVRIT05fT0JKU19GUk9aRU5NQUlOPQot KyAgICA7OwotK2VzYWMKLSsKLSBBQ19TVUJTVChTUkNESVJTKQotIFNSQ0RJUlM9IlwKLSAgIE1v ZHVsZXMgXAotZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L01ha2Vm aWxlLnByZS5pbiBQeXRob24tMy4xMS4xNi1uZXcvTWFrZWZpbGUucHJlLmluCi0tLS0gUHl0aG9u LTMuMTEuMTYvTWFrZWZpbGUucHJlLmluCTIwMjYtMDktMTggMTk6MjM6MDYuMDI3ODgyMTk1ICsw MjAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTE4IDE5 OjIzOjA2LjMxMzk2MzYzOCArMDIwMAotQEAgLTM5MCw3ICszOTAsNyBAQCBQWVRIT05fT0JKUz0J XAotIAkJUHl0aG9uL2R5bmFtaWNfYW5ub3RhdGlvbnMubyBcCi0gCQlQeXRob24vZXJyb3JzLm8g XAotIAkJUHl0aG9uL2ZyYW1lLm8gXAotLQkJUHl0aG9uL2Zyb3plbm1haW4ubyBcCi0rCQlAUFlU SE9OX09CSlNfRlJPWkVOTUFJTkAgXAotIAkJUHl0aG9uL2Z1dHVyZS5vIFwKLSAJCVB5dGhvbi9n ZXRhcmdzLm8gXAotIAkJUHl0aG9uL2dldGNvbXBpbGVyLm8gXAoKZGlmZiAtLWdpdCBhL21pbmd3 LXB5dGhvbjNfbWFrZS1zeXNjb25maWdkYXRhLnB5LXJlbG9jYXRhYmxlLnBhdGNoIGIvbWluZ3ct cHl0aG9uM19tYWtlLXN5c2NvbmZpZ2RhdGEucHktcmVsb2NhdGFibGUucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MWNmODguLjAwMDAwMDAKLS0tIGEvbWluZ3ctcHl0aG9u M19tYWtlLXN5c2NvbmZpZ2RhdGEucHktcmVsb2NhdGFibGUucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0MSArMCwwIEBACi1kaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEu MTYvTGliL3N5c2NvbmZpZy5weSBQeXRob24tMy4xMS4xNi1uZXcvTGliL3N5c2NvbmZpZy5weQot LS0tIFB5dGhvbi0zLjExLjE2L0xpYi9zeXNjb25maWcucHkJMjAyNi0wOS0xOCAxOToyMzowNi4w MjczMzkyNDYgKzAyMDAKLSsrKyBQeXRob24tMy4xMS4xNi1uZXcvTGliL3N5c2NvbmZpZy5weQky MDI2LTA5LTE4IDE5OjIzOjA3LjY2MjA0MzQzMiArMDIwMAotQEAgLTIsNiArMiw3IEBACi0gCi0g aW1wb3J0IG9zCi0gaW1wb3J0IHN5cwotK2ltcG9ydCB0ZXh0d3JhcAotIGZyb20gb3MucGF0aCBp bXBvcnQgcGFyZGlyLCByZWFscGF0aAotIAotIF9fYWxsX18gPSBbCi1AQCAtNTE0LDExICs1MTUs MjkgQEAgZGVmIF9nZW5lcmF0ZV9wb3NpeF92YXJzKCk6Ci0gICAgIG9zLm1ha2VkaXJzKHB5YnVp bGRkaXIsIGV4aXN0X29rPVRydWUpCi0gICAgIGRlc3RmaWxlID0gb3MucGF0aC5qb2luKHB5YnVp bGRkaXIsIG5hbWUgKyAnLnB5JykKLSAKLSsgICAgcmVwbGFjZW1lbnQgPSAiIiIKLSsgICAgICAg IGtleXNfdG9fcmVwbGFjZSA9IFsKLSsgICAgICAgICAgICAnQklORElSJywgJ0JJTkxJQkRFU1Qn LCAnQ09ORklOQ0xVREVESVInLAotKyAgICAgICAgICAgICdDT05GSU5DTFVERVBZJywgJ0RFU1RE SVJTJywgJ0RFU1RMSUInLCAnREVTVFNIQVJFRCcsCi0rICAgICAgICAgICAgJ0lOQ0xESVJTVE9N QUtFJywgJ0lOQ0xVREVESVInLCAnSU5DTFVERVBZJywKLSsgICAgICAgICAgICAnTElCREVTVCcs ICdMSUJESVInLCAnTElCUEMnLCAnTElCUEwnLCAnTUFDSERFU1RMSUInLAotKyAgICAgICAgICAg ICdNQU5ESVInLCAnU0NSSVBURElSJywgJ2RhdGFyb290ZGlyJywgJ2V4ZWNfcHJlZml4JywKLSsg ICAgICAgIF0KLSsKLSsgICAgICAgIHByZWZpeCA9IGJ1aWxkX3RpbWVfdmFyc1snQklORElSJ11b Oi00XQotKwotKyAgICAgICAgZm9yIGtleSBpbiBrZXlzX3RvX3JlcGxhY2U6Ci0rICAgICAgICAg ICAgdmFsdWUgPSBidWlsZF90aW1lX3ZhcnNba2V5XQotKyAgICAgICAgICAgIGJ1aWxkX3RpbWVf dmFyc1trZXldID0gdmFsdWUucmVwbGFjZShwcmVmaXgsIHN5cy5wcmVmaXgpCi0rICAgICIiIgot KwotICAgICB3aXRoIG9wZW4oZGVzdGZpbGUsICd3JywgZW5jb2Rpbmc9J3V0ZjgnKSBhcyBmOgot KyAgICAgICAgZi53cml0ZSgnaW1wb3J0IHN5c1xuJykKLSAgICAgICAgIGYud3JpdGUoJyMgc3lz dGVtIGNvbmZpZ3VyYXRpb24gZ2VuZXJhdGVkIGFuZCB1c2VkIGJ5JwotICAgICAgICAgICAgICAg ICAnIHRoZSBzeXNjb25maWcgbW9kdWxlXG4nKQotICAgICAgICAgZi53cml0ZSgnYnVpbGRfdGlt ZV92YXJzID0gJykKLSAgICAgICAgIHBwcmludC5wcHJpbnQodmFycywgc3RyZWFtPWYpCi0rICAg ICAgICBmLndyaXRlKCdcbiVzJyAlIHRleHR3cmFwLmRlZGVudChyZXBsYWNlbWVudCkpCi0gCi0g ICAgICMgQ3JlYXRlIGZpbGUgdXNlZCBmb3Igc3lzLnBhdGggZml4dXAgLS0gc2VlIE1vZHVsZXMv Z2V0cGF0aC5jCi0gICAgIHdpdGggb3BlbigncHlidWlsZGRpci50eHQnLCAndycsIGVuY29kaW5n PSd1dGY4JykgYXMgZjoKCmRpZmYgLS1naXQgYS9taW5ndy1weXRob24zX21vZHMtZmFpbGVkLnBh dGNoIGIvbWluZ3ctcHl0aG9uM19tb2RzLWZhaWxlZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggOThkZDdmMi4uMDAwMDAwMAotLS0gYS9taW5ndy1weXRob24zX21vZHMtZmFp bGVkLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotZGlmZiAtcnVwTiAtLW5v LWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L3NldHVwLnB5IFB5dGhvbi0zLjExLjE2LW5ldy9z ZXR1cC5weQotLS0tIFB5dGhvbi0zLjExLjE2L3NldHVwLnB5CTIwMjYtMDgtMTMgMDE6MDM6MTku MDAwMDAwMDAwICswMjAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L3NldHVwLnB5CTIwMjYtMDkt MTggMTk6MjM6MDcuMTQ5MzQ2ODkyICswMjAwCi1AQCAtNTc3LDYgKzU3Nyw4IEBAIGNsYXNzIFB5 QnVpbGRFeHQoYnVpbGRfZXh0KToKLSAgICAgICAgICAgICBwcmludCgiRmFpbGVkIHRvIGJ1aWxk IHRoZXNlIG1vZHVsZXM6IikKLSAgICAgICAgICAgICBwcmludF90aHJlZV9jb2x1bW4oZmFpbGVk KQotICAgICAgICAgICAgIHByaW50KCkKLSsgICAgICAgICAgICB3aXRoIG9wZW4oJ21vZHNfZmFp bGVkLnR4dCcsICd3JykgYXMgZmg6Ci0rICAgICAgICAgICAgICAgIGZoLndyaXRlKCIsICIuam9p bihmYWlsZWQpICsgIlxuIikKLSAKLSAgICAgICAgIGlmIHNlbGYuZmFpbGVkX29uX2ltcG9ydDoK LSAgICAgICAgICAgICBmYWlsZWQgPSBzZWxmLmZhaWxlZF9vbl9pbXBvcnRbOl0KCmRpZmYgLS1n aXQgYS9taW5ndy1weXRob24zX21vZHVsZS1zZWxlY3QucGF0Y2ggYi9taW5ndy1weXRob24zX21v ZHVsZS1zZWxlY3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNTVjZTYu LjAwMDAwMDAKLS0tIGEvbWluZ3ctcHl0aG9uM19tb2R1bGUtc2VsZWN0LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjQgKzAsMCBAQAotZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhv bi0zLjExLjE2L01vZHVsZXMvc2VsZWN0bW9kdWxlLmMgUHl0aG9uLTMuMTEuMTYtbmV3L01vZHVs ZXMvc2VsZWN0bW9kdWxlLmMKLS0tLSBQeXRob24tMy4xMS4xNi9Nb2R1bGVzL3NlbGVjdG1vZHVs ZS5jCTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICswMjAwCi0rKysgUHl0aG9uLTMuMTEu MTYtbmV3L01vZHVsZXMvc2VsZWN0bW9kdWxlLmMJMjAyNi0wOS0xOCAxOToyMzowOC45NzIwNzM4 MjYgKzAyMDAKLUBAIC0xNDYsOSArMTQ2LDkgQEAgc2VxMnNldChQeU9iamVjdCAqc2VxLCBmZF9z ZXQgKnNldCwgcHlsaQotICAgICAgICAgdiA9IFB5T2JqZWN0X0FzRmlsZURlc2NyaXB0b3IoIG8g KTsKLSAgICAgICAgIGlmICh2ID09IC0xKSBnb3RvIGZpbmFsbHk7Ci0gCi0tI2lmIGRlZmluZWQo X01TQ19WRVIpCi0rI2lmIGRlZmluZWQoTVNfV0lORE9XUykKLSAgICAgICAgIG1heCA9IDA7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBub3QgdXNlZCBmb3IgV2luMzIgKi8KLS0jZWxz ZSAgLyogIV9NU0NfVkVSICovCi0rI2Vsc2UgIC8qIE1TX1dJTkRPV1MgKi8KLSAgICAgICAgIGlm ICghX1B5SXNTZWxlY3RhYmxlX2ZkKHYpKSB7Ci0gICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5n KFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgImZpbGVkZXNjcmlw dG9yIG91dCBvZiByYW5nZSBpbiBzZWxlY3QoKSIpOwotQEAgLTE1Niw3ICsxNTYsNyBAQCBzZXEy c2V0KFB5T2JqZWN0ICpzZXEsIGZkX3NldCAqc2V0LCBweWxpCi0gICAgICAgICB9Ci0gICAgICAg ICBpZiAodiA+IG1heCkKLSAgICAgICAgICAgICBtYXggPSB2OwotLSNlbmRpZiAvKiBfTVNDX1ZF UiAqLwotKyNlbmRpZiAvKiBNU19XSU5ET1dTICovCi0gICAgICAgICBGRF9TRVQodiwgc2V0KTsK LSAKLSAgICAgICAgIC8qIGFkZCBvYmplY3QgYW5kIGl0cyBmaWxlIGRlc2NyaXB0b3IgdG8gdGhl IGxpc3QgKi8KCmRpZmYgLS1naXQgYS9taW5ndy1weXRob24zX21vZHVsZS1zb2NrZXQucGF0Y2gg Yi9taW5ndy1weXRob24zX21vZHVsZS1zb2NrZXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGU3YjcwNmMuLjAwMDAwMDAKLS0tIGEvbWluZ3ctcHl0aG9uM19tb2R1bGUtc29j a2V0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotZGlmZiAtcnVwTiAtLW5v LWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L2NvbmZpZ3VyZS5hYyBQeXRob24tMy4xMS4xNi1u ZXcvY29uZmlndXJlLmFjCi0tLS0gUHl0aG9uLTMuMTEuMTYvY29uZmlndXJlLmFjCTIwMjYtMDkt MTggMTk6MjM6MDYuNjA0OTQ3Mjc2ICswMjAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L2NvbmZp Z3VyZS5hYwkyMDI2LTA5LTE4IDE5OjIzOjA4LjcxMTgyODk0NiArMDIwMAotQEAgLTQ2NDYsOCAr NDY0Niw4IEBAIEFDX0NIRUNLX0ZVTkNTKFsgXAotICAgZmFjY2Vzc2F0IGZjaG1vZCBmY2htb2Rh dCBmY2hvd24gZmNob3duYXQgZmRvcGVuZGlyIGZkd2FsayBmZXhlY3ZlIFwKLSAgIGZvcmsgZm9y azEgZnBhdGhjb25mIGZzdGF0YXQgZnRpbWUgZnRydW5jYXRlIGZ1dGltZW5zIGZ1dGltZXMgZnV0 aW1lc2F0IFwKLSAgIGdhaV9zdHJlcnJvciBnZXRlZ2lkIGdldGVudHJvcHkgZ2V0ZXVpZCBnZXRn aWQgZ2V0Z3JnaWQgZ2V0Z3JnaWRfciBcCi0tICBnZXRncm5hbV9yIGdldGdyb3VwbGlzdCBnZXRn cm91cHMgZ2V0aG9zdG5hbWUgZ2V0aXRpbWVyIGdldGxvYWRhdmcgZ2V0bG9naW4gXAotLSAgZ2V0 cGVlcm5hbWUgZ2V0cGdpZCBnZXRwaWQgZ2V0cHBpZCBnZXRwcmlvcml0eSBfZ2V0cHR5IFwKLSsg IGdldGdybmFtX3IgZ2V0Z3JvdXBsaXN0IGdldGdyb3VwcyBnZXRpdGltZXIgZ2V0bG9hZGF2ZyBn ZXRsb2dpbiBcCi0rICBnZXRwZ2lkIGdldHBpZCBnZXRwcGlkIGdldHByaW9yaXR5IF9nZXRwdHkg XAotICAgZ2V0cHdlbnQgZ2V0cHduYW1fciBnZXRwd3VpZCBnZXRwd3VpZF9yIGdldHJlc2dpZCBn ZXRyZXN1aWQgZ2V0cnVzYWdlIGdldHNpZCBnZXRzcGVudCBcCi0gICBnZXRzcG5hbSBnZXR1aWQg Z2V0d2QgaWZfbmFtZWluZGV4IGluaXRncm91cHMga2lsbCBraWxscGcgbGNob3duIGxpbmthdCBc Ci0gICBsb2NrZiBsc3RhdCBsdXRpbWVzIG1hZHZpc2UgbWJydG93YyBtZW1yY2hyIG1rZGlyYXQg bWtmaWZvIG1rZmlmb2F0IFwKLUBAIC00ODg5LDcgKzQ4ODksMTMgQEAgUEtHX0NIRUNLX01PRFVM RVMoW0xJQkxaTUFdLCBbbGlibHptYV0sCi0gXSkKLSAKLSBkbmwgUFlfQ0hFQ0tfTkVUREJfRlVO QyhGVU5DVElPTikKLS1BQ19ERUZVTihbUFlfQ0hFQ0tfTkVUREJfRlVOQ10sIFtQWV9DSEVDS19G VU5DKFskMV0sIFsjaW5jbHVkZSA8bmV0ZGIuaD5dKV0pCi0rQUNfREVGVU4oW1BZX0NIRUNLX05F VERCX0ZVTkNdLCBbUFlfQ0hFQ0tfRlVOQyhbJDFdLCBbCi0rI2lmZGVmIF9XSU4zMgotKyMgIGlu Y2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2Vsc2UKLSsjICBpbmNsdWRlIDxuZXRkYi5oPgotKyNlbmRp ZgotK10pXSkKLSAKLSBQWV9DSEVDS19ORVREQl9GVU5DKFtoc3RyZXJyb3JdKQotIGRubCBub3Qg YXZhaWxhYmxlIGluIFdBU0kgeWV0Ci1AQCAtNDg5OCwxMyArNDkwNCwxOCBAQCBQWV9DSEVDS19O RVREQl9GVU5DKFtnZXRzZXJ2Ynlwb3J0XSkKLSBQWV9DSEVDS19ORVREQl9GVU5DKFtnZXRob3N0 YnluYW1lXSkKLSBQWV9DSEVDS19ORVREQl9GVU5DKFtnZXRob3N0YnlhZGRyXSkKLSBQWV9DSEVD S19ORVREQl9GVU5DKFtnZXRwcm90b2J5bmFtZV0pCi0rUFlfQ0hFQ0tfTkVUREJfRlVOQyhbZ2V0 aG9zdG5hbWVdKQotIAotIGRubCBQWV9DSEVDS19TT0NLRVRfRlVOQyhGVU5DVElPTikKLSBBQ19E RUZVTihbUFlfQ0hFQ0tfU09DS0VUX0ZVTkNdLCBbUFlfQ0hFQ0tfRlVOQyhbJDFdLCBbCi0gI2lu Y2x1ZGUgPHN5cy90eXBlcy5oPgotLSNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0tI2luY2x1ZGUg PG5ldGluZXQvaW4uaD4KLS0jaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0rI2lmZGVmIF9XSU4zMgot KyMgIGluY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2Vsc2UKLSsjICBpbmNsdWRlIDxzeXMvc29ja2V0 Lmg+Ci0rIyAgaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgotKyMgIGluY2x1ZGUgPGFycGEvaW5ldC5o PgotKyNlbmRpZgotIF0pXSkKLSAKLSBQWV9DSEVDS19TT0NLRVRfRlVOQyhbaW5ldF9hdG9uXSkK LWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9Nb2R1bGVzL1NldHVw IFB5dGhvbi0zLjExLjE2LW5ldy9Nb2R1bGVzL1NldHVwCi0tLS0gUHl0aG9uLTMuMTEuMTYvTW9k dWxlcy9TZXR1cAkyMDI2LTA5LTE4IDE5OjIzOjA4LjcwNzMyNzc0NCArMDIwMAotKysrIFB5dGhv bi0zLjExLjE2LW5ldy9Nb2R1bGVzL1NldHVwCTIwMjYtMDktMTggMTk6MjM6MDguNzEzNDg4Mzg1 ICswMjAwCi1AQCAtMTQ0LDcgKzE0NCw3IEBAIFBZVEhPTlBBVEg9JChDT1JFUFlUSE9OUEFUSCkK LSAjX3BpY2tsZSBfcGlja2xlLmMKLSAjX3F1ZXVlIF9xdWV1ZW1vZHVsZS5jCi0gI19yYW5kb20g X3JhbmRvbW1vZHVsZS5jCi0tI19zb2NrZXQgc29ja2V0bW9kdWxlLmMKLStfc29ja2V0IHNvY2tl dG1vZHVsZS5jIC1sd3MyXzMyIC1saXBobHBhcGkKLSAjX3N0YXRpc3RpY3MgX3N0YXRpc3RpY3Nt b2R1bGUuYwotICNfc3RydWN0IF9zdHJ1Y3QuYwotICNfdHlwaW5nIF90eXBpbmdtb2R1bGUuYwot ZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L01vZHVsZXMvc29ja2V0 bW9kdWxlLmMgUHl0aG9uLTMuMTEuMTYtbmV3L01vZHVsZXMvc29ja2V0bW9kdWxlLmMKLS0tLSBQ eXRob24tMy4xMS4xNi9Nb2R1bGVzL3NvY2tldG1vZHVsZS5jCTIwMjYtMDgtMTMgMDE6MDM6MTku MDAwMDAwMDAwICswMjAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L01vZHVsZXMvc29ja2V0bW9k dWxlLmMJMjAyNi0wOS0xOCAxOToyMzowOC43MTQxODA5MDEgKzAyMDAKLUBAIC0yNzQsNyArMjc0 LDcgQEAgc2h1dGRvd24oaG93KSAtLSBzaHV0IGRvd24gdHJhZmZpYyBpbiBvbgotICMgZW5kaWYK LSAKLSAvKiBNYWNyb3MgYmFzZWQgb24gdGhlIElQUFJPVE8gZW51bSwgc2VlOiBodHRwczovL2J1 Z3MucHl0aG9uLm9yZy9pc3N1ZTI5NTE1ICovCi0tI2lmZGVmIE1TX1dJTkRPV1MKLSsjaWZkZWYg X01TQ19WRVIKLSAjZGVmaW5lIElQUFJPVE9fSUNNUCBJUFBST1RPX0lDTVAKLSAjZGVmaW5lIElQ UFJPVE9fSUdNUCBJUFBST1RPX0lHTVAKLSAjZGVmaW5lIElQUFJPVE9fR0dQIElQUFJPVE9fR0dQ Ci1AQCAtNDA0LDYgKzQwNCwxMCBAQCByZW1vdmVfdW51c2FibGVfZmxhZ3MoUHlPYmplY3QgKm0p Ci0gICAvKiBEbyBub3QgaW5jbHVkZSBhZGRyaW5mby5oIGZvciBNU1ZDNyBvciBncmVhdGVyLiAn YWRkcmluZm8nIGFuZAotICAgICogRUFJXyogY29uc3RhbnRzIGFyZSBkZWZpbmVkIGluICh0aGUg YWxyZWFkeSBpbmNsdWRlZCkgd3MydGNwaXAuaC4KLSAgICAqLwotKyNlbGlmIGRlZmluZWQoX19N SU5HVzMyX18pCi0rICAvKiBEbyBub3QgaW5jbHVkZSBhZGRyaW5mby5oIGFzIG1pbmltdW0gc3Vw cG9ydGVkIHZlcnNpb24gaXMKLSsgICAqIF9XSU4zMl9XSU5OVCA+PSBXaW5kb3dzWFAoMHgwNTAx KQotKyAgICovCi0gI2Vsc2UKLSAjICBpbmNsdWRlICJhZGRyaW5mby5oIgotICNlbmRpZgotQEAg LTgxMTIsNyArODExNiw3IEBAIFB5SW5pdF9fc29ja2V0KHZvaWQpCi0gICAgIFB5TW9kdWxlX0Fk ZEludE1hY3JvKG0sIElQUFJPVE9fTUFYKTsKLSAjZW5kaWYKLSAKLS0jaWZkZWYgIE1TX1dJTkRP V1MKLSsjaWZkZWYgIF9NU0NfVkVSCi0gICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJP VE9fSUNMRlhCTSk7Ci0gICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIElQUFJPVE9fU1QpOwot ICAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBJUFBST1RPX0NCVCk7CgpkaWZmIC0tZ2l0IGEv bWluZ3ctcHl0aG9uM19tb2R1bGVzLnBhdGNoIGIvbWluZ3ctcHl0aG9uM19tb2R1bGVzLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTIwNGQyLi4wMDAwMDAwCi0tLSBhL21p bmd3LXB5dGhvbjNfbW9kdWxlcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCwwIEBA Ci1kaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvTWFrZWZpbGUucHJl LmluIFB5dGhvbi0zLjExLjE2LW5ldy9NYWtlZmlsZS5wcmUuaW4KLS0tLSBQeXRob24tMy4xMS4x Ni9NYWtlZmlsZS5wcmUuaW4JMjAyNi0wOS0xOCAxOToyMzowNi44OTAxNDQ4NzAgKzAyMDAKLSsr KyBQeXRob24tMy4xMS4xNi1uZXcvTWFrZWZpbGUucHJlLmluCTIwMjYtMDktMTggMTk6MjM6MDcu OTQxODQ5MDA0ICswMjAwCi1AQCAtNzYxLDcgKzc2MSw3IEBAICQoc3JjZGlyKS9Nb2R1bGVzL19i bGFrZTIvYmxha2Uyc19pbXBsLmMKLSAjIC1zLCAtLXNpbGVudCBvciAtLXF1aWV0IGlzIGFsd2F5 cyB0aGUgZmlyc3QgY2hhci4KLSAjIFVuZGVyIEJTRCBtYWtlLCBNQUtFRkxBR1MgbWlnaHQgYmUg IiAtcyAtdiB4PXkiLgotICMgSWdub3JlIG1hY3JvcyBwYXNzZWQgYnkgR05VIG1ha2UsIHBhc3Nl ZCBhZnRlciAtLQotLXNoYXJlZG1vZHM6ICQoUFlUSE9OX0ZPUl9CVUlMRF9ERVBTKSBweWJ1aWxk ZGlyLnR4dCBATElCTVBERUNfSU5URVJOQUxAIEBMSUJFWFBBVF9JTlRFUk5BTEAKLStzaGFyZWRt b2RzOiAkKFBZVEhPTl9GT1JfQlVJTERfREVQUykgcHlidWlsZGRpci50eHQgQExJQk1QREVDX0lO VEVSTkFMQCBATElCRVhQQVRfSU5URVJOQUxAICQoQlVJTERQWVRIT04pCi0gCUBjYXNlICJgZWNo byBYICQkTUFLRUZMQUdTIHwgc2VkICdzL15YIC8vO3MvIC0tIC4qLy8nYCIgaW4gXAotIAkgICAg KlwgLXMqfHMqKSBxdWlldD0iLXEiOzsgXAotIAkgICAgKikgcXVpZXQ9IiI7OyBcCi1kaWZmIC1y dXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvTW9kdWxlcy9fY3R5cGVzL19jdHlw ZXMuYyBQeXRob24tMy4xMS4xNi1uZXcvTW9kdWxlcy9fY3R5cGVzL19jdHlwZXMuYwotLS0tIFB5 dGhvbi0zLjExLjE2L01vZHVsZXMvX2N0eXBlcy9fY3R5cGVzLmMJMjAyNi0wOC0xMyAwMTowMzox OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBQeXRob24tMy4xMS4xNi1uZXcvTW9kdWxlcy9fY3R5cGVz L19jdHlwZXMuYwkyMDI2LTA5LTE4IDE5OjIzOjA3Ljk0MjY4ODY4NyArMDIwMAotQEAgLTEwOSw2 ICsxMDksNyBAQCBieXRlcyhjZGF0YSkKLSAvLyB3aW5kb3dzLmggbXVzdCBiZSBpbmNsdWRlZCBi ZWZvcmUgcHljb3JlIGludGVybmFsIGhlYWRlcnMKLSAjaWZkZWYgTVNfV0lOMzIKLSAjICBpbmNs dWRlIDx3aW5kb3dzLmg+Ci0rIyAgaW5jbHVkZSA8ZGxmY24uaD4KLSAjZW5kaWYKLSAKLSAjaW5j bHVkZSAicHljb3JlX2NhbGwuaCIgICAgICAgICAgLy8gX1B5T2JqZWN0X0NhbGxOb0FyZ3MoKQot ZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L01vZHVsZXMvX211bHRp cHJvY2Vzc2luZy9zZW1hcGhvcmUuYyBQeXRob24tMy4xMS4xNi1uZXcvTW9kdWxlcy9fbXVsdGlw cm9jZXNzaW5nL3NlbWFwaG9yZS5jCi0tLS0gUHl0aG9uLTMuMTEuMTYvTW9kdWxlcy9fbXVsdGlw cm9jZXNzaW5nL3NlbWFwaG9yZS5jCTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICswMjAw Ci0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9zZW1hcGhv cmUuYwkyMDI2LTA5LTE4IDE5OjIzOjA3Ljk0MzM5NTkyOSArMDIwMAotQEAgLTgsNiArOCw5IEBA Ci0gICovCi0gCi0gI2luY2x1ZGUgIm11bHRpcHJvY2Vzc2luZy5oIgotKyNpZmRlZiBfX01JTkdX MzJfXwotKyNpbmNsdWRlIDxzZW1hcGhvcmUuaD4KLSsjZW5kaWYKLSAKLSAjaWZkZWYgSEFWRV9N UF9TRU1BUEhPUkUKLSAKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4x Ni9Nb2R1bGVzL1NldHVwIFB5dGhvbi0zLjExLjE2LW5ldy9Nb2R1bGVzL1NldHVwCi0tLS0gUHl0 aG9uLTMuMTEuMTYvTW9kdWxlcy9TZXR1cAkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCAr MDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9Nb2R1bGVzL1NldHVwCTIwMjYtMDktMTggMTk6 MjM6MDcuOTQzNzAwMDkxICswMjAwCi1AQCAtMTU0LDcgKzE1NCw3IEBAIFBZVEhPTlBBVEg9JChD T1JFUFlUSE9OUEFUSCkKLSAjYmluYXNjaWkgYmluYXNjaWkuYwotICNjbWF0aCBjbWF0aG1vZHVs ZS5jCi0gI21hdGggbWF0aG1vZHVsZS5jCi0tI21tYXAgbW1hcG1vZHVsZS5jCi0rbW1hcCBtbWFw bW9kdWxlLmMKLSAjc2VsZWN0IHNlbGVjdG1vZHVsZS5jCi0gCi0gIyBYTUwKLWRpZmYgLXJ1cE4g LS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9zZXR1cC5weSBQeXRob24tMy4xMS4xNi1u ZXcvc2V0dXAucHkKLS0tLSBQeXRob24tMy4xMS4xNi9zZXR1cC5weQkyMDI2LTA5LTE4IDE5OjIz OjA3LjM5OTAzOTcxNCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9zZXR1cC5weQkyMDI2 LTA5LTE4IDE5OjIzOjA3Ljk0Mzk5NTc1NCArMDIwMAotQEAgLTk3Nyw3ICs5NzcsMTAgQEAgY2xh c3MgUHlCdWlsZEV4dChidWlsZF9leHQpOgotICAgICAgICAgc2VsZi5hZGRleHQoRXh0ZW5zaW9u KCdzcHdkJywgWydzcHdkbW9kdWxlLmMnXSkpCi0gCi0gICAgICAgICAjIHNlbGVjdCgyKTsgbm90 IG9uIGFuY2llbnQgU3lzdGVtIFYKLS0gICAgICAgIHNlbGYuYWRkZXh0KEV4dGVuc2lvbignc2Vs ZWN0JywgWydzZWxlY3Rtb2R1bGUuYyddKSkKLSsgICAgICAgIHNlbGVjdF9saWJzID0gW10KLSsg ICAgICAgIGlmIEhPU1RfUExBVEZPUk0uc3RhcnRzd2l0aCgoJ21pbmd3JywgJ3dpbicpKToKLSsg ICAgICAgICAgICBzZWxlY3RfbGlicyArPSBbJ3dzMl8zMiddCi0rICAgICAgICBzZWxmLmFkZGV4 dChFeHRlbnNpb24oJ3NlbGVjdCcsIFsnc2VsZWN0bW9kdWxlLmMnXSwgbGlicmFyaWVzPXNlbGVj dF9saWJzKSkKLSAKLSAgICAgICAgICMgTWVtb3J5LW1hcHBlZCBmaWxlcyAoYWxzbyB3b3JrcyBv biBXaW4zMikuCi0gICAgICAgICBzZWxmLmFkZGV4dChFeHRlbnNpb24oJ21tYXAnLCBbJ21tYXBt b2R1bGUuYyddKSkKLUBAIC0xMDA5LDcgKzEwMTIsOCBAQCBjbGFzcyBQeUJ1aWxkRXh0KGJ1aWxk X2V4dCk6Ci0gICAgICAgICBzZWxmLmFkZGV4dChFeHRlbnNpb24oJ19jc3YnLCBbJ19jc3YuYydd KSkKLSAKLSAgICAgICAgICMgUE9TSVggc3VicHJvY2VzcyBtb2R1bGUgaGVscGVyLgotLSAgICAg ICAgc2VsZi5hZGRleHQoRXh0ZW5zaW9uKCdfcG9zaXhzdWJwcm9jZXNzJywgWydfcG9zaXhzdWJw cm9jZXNzLmMnXSkpCi0rICAgICAgICAjIEZJWE1FIEZvcmNlIGRpc2FibGVkCi0rICAgICAgICAj IHNlbGYuYWRkZXh0KEV4dGVuc2lvbignX3Bvc2l4c3VicHJvY2VzcycsIFsnX3Bvc2l4c3VicHJv Y2Vzcy5jJ10pKQotIAotICAgICBkZWYgZGV0ZWN0X3Rlc3RfZXh0ZW5zaW9ucyhzZWxmKToKLSAg ICAgICAgICMgUHl0aG9uIEMgQVBJIHRlc3QgbW9kdWxlCi1AQCAtMTEwNCw2ICsxMTA4LDggQEAg Y2xhc3MgUHlCdWlsZEV4dChidWlsZF9leHQpOgotICAgICAgICAgICAgICAgICAjIHJlYWRsaW5l IHBhY2thZ2UKLSAgICAgICAgICAgICAgICAgaWYgZmluZF9maWxlKCdyZWFkbGluZS9ybGNvbmYu aCcsIHNlbGYuaW5jX2RpcnMsIFtdKSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICAgZG9f cmVhZGxpbmUgPSBGYWxzZQotKyAgICAgICAgIyBGSVhNRSBGb3JjZSBkaXNhYmxlZAotKyAgICAg ICAgZG9fcmVhZGxpbmUgPSBGYWxzZQotICAgICAgICAgaWYgZG9fcmVhZGxpbmU6Ci0gICAgICAg ICAgICAgcmVhZGxpbmVfbGlicyA9IFtyZWFkbGluZV9saWJdCi0gICAgICAgICAgICAgaWYgcmVh ZGxpbmVfdGVybWNhcF9saWJyYXJ5OgotQEAgLTEzMjgsMTMgKzEzMzQsMTYgQEAgY2xhc3MgUHlC dWlsZEV4dChidWlsZF9leHQpOgotIAotICAgICBkZWYgZGV0ZWN0X211bHRpcHJvY2Vzc2luZyhz ZWxmKToKLSAgICAgICAgICMgUmljaGFyZCBPdWRrZXJrJ3MgbXVsdGlwcm9jZXNzaW5nIG1vZHVs ZQotKyAgICAgICAgbXVsdGlwcm9jX2xpYnMgPSBbXQotICAgICAgICAgbXVsdGlwcm9jZXNzaW5n X3NyY3MgPSBbJ19tdWx0aXByb2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmMnXQotICAgICAgICAg aWYgKAotICAgICAgICAgICAgIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignSEFWRV9TRU1fT1BF TicpIGFuZCBub3QKLSAgICAgICAgICAgICBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1BPU0lY X1NFTUFQSE9SRVNfTk9UX0VOQUJMRUQnKQotICAgICAgICAgKToKLSAgICAgICAgICAgICBtdWx0 aXByb2Nlc3Npbmdfc3Jjcy5hcHBlbmQoJ19tdWx0aXByb2Nlc3Npbmcvc2VtYXBob3JlLmMnKQot LSAgICAgICAgc2VsZi5hZGRleHQoRXh0ZW5zaW9uKCdfbXVsdGlwcm9jZXNzaW5nJywgbXVsdGlw cm9jZXNzaW5nX3NyY3MpKQotKyAgICAgICAgaWYgSE9TVF9QTEFURk9STS5zdGFydHN3aXRoKCgn bWluZ3cnLCAnd2luJykpOgotKyAgICAgICAgICAgIG11bHRpcHJvY19saWJzICs9IFsnd3MyXzMy J10KLSsgICAgICAgIHNlbGYuYWRkZXh0KEV4dGVuc2lvbignX211bHRpcHJvY2Vzc2luZycsIG11 bHRpcHJvY2Vzc2luZ19zcmNzLCBsaWJyYXJpZXM9bXVsdGlwcm9jX2xpYnMpKQotICAgICAgICAg c2VsZi5hZGRleHQoRXh0ZW5zaW9uKCdfcG9zaXhzaG1lbScsIFsnX211bHRpcHJvY2Vzc2luZy9w b3NpeHNobWVtLmMnXSkpCi0gCi0gICAgIGRlZiBkZXRlY3RfdXVpZChzZWxmKToKLUBAIC0xMzc0 LDcgKzEzODMsOCBAQCBjbGFzcyBQeUJ1aWxkRXh0KGJ1aWxkX2V4dCk6Ci0gICAgICAgICBzZWxm LmFkZGV4dChFeHRlbnNpb24oJ3h4bGltaXRlZF8zNScsIFsneHhsaW1pdGVkXzM1LmMnXSkpCi0g Ci0gICAgIGRlZiBkZXRlY3RfdGtpbnRlcihzZWxmKToKLS0gICAgICAgIHNlbGYuYWRkZXh0KEV4 dGVuc2lvbignX3RraW50ZXInLCBbJ190a2ludGVyLmMnLCAndGthcHBpbml0LmMnXSkpCi0rICAg ICAgICB0a2ludGVyX2xpYnMgPSBbJ3RjbCcsICd0ayddCi0rICAgICAgICBzZWxmLmFkZGV4dChF eHRlbnNpb24oJ190a2ludGVyJywgWydfdGtpbnRlci5jJywgJ3RrYXBwaW5pdC5jJ10sIGxpYnJh cmllcz10a2ludGVyX2xpYnMpKQotIAotICAgICBkZWYgY29uZmlndXJlX2N0eXBlcyhzZWxmLCBl eHQpOgotICAgICAgICAgcmV0dXJuIFRydWUKLUBAIC0xNDIxLDcgKzE0MzEsNyBAQCBjbGFzcyBQ eUJ1aWxkRXh0KGJ1aWxkX2V4dCk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlcz1z b3VyY2VzKQotICAgICAgICAgc2VsZi5hZGQoZXh0KQotICAgICAgICAgIyBmdW5jdGlvbiBteV9z cXJ0KCkgbmVlZHMgbGlibSBmb3Igc3FydCgpCi0tICAgICAgICBzZWxmLmFkZGV4dChFeHRlbnNp b24oJ19jdHlwZXNfdGVzdCcsIFsnX2N0eXBlcy9fY3R5cGVzX3Rlc3QuYyddKSkKLSsgICAgICAg IHNlbGYuYWRkZXh0KEV4dGVuc2lvbignX2N0eXBlc190ZXN0Jywgc291cmNlcz1bJ19jdHlwZXMv X2N0eXBlc190ZXN0LmMnXSwgbGlicmFyaWVzPVsnb2xlYXV0MzInXSkpCi0gCi0gICAgICAgICBm ZmlfaW5jID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCJMSUJGRklfSU5DTFVERURJUiIpCi0g ICAgICAgICBmZmlfbGliID0gTm9uZQotQEAgLTE0NzIsNiArMTQ4MiwxMCBAQCBjbGFzcyBQeUJ1 aWxkRXh0KGJ1aWxkX2V4dCk6Ci0gICAgICAgICAgICAgIyBmb3IgZGxvcGVuLCBzZWUgYnBvLTMy NjQ3Ci0gICAgICAgICAgICAgZXh0LmxpYnJhcmllcy5hcHBlbmQoJ2RsJykKLSAKLSsgICAgICAg IGV4dC5saWJyYXJpZXMuYXBwZW5kKCdvbGUzMicpCi0rICAgICAgICBleHQubGlicmFyaWVzLmFw cGVuZCgnb2xlYXV0MzInKQotKyAgICAgICAgZXh0LmxpYnJhcmllcy5hcHBlbmQoJ3V1aWQnKQot KwotICAgICBkZWYgZGV0ZWN0X2RlY2ltYWwoc2VsZik6Ci0gICAgICAgICAjIFN0ZWZhbiBLcmFo J3MgX2RlY2ltYWwgbW9kdWxlCi0gICAgICAgICBzZWxmLmFkZGV4dCgKLUBAIC0xNDg0LDcgKzE0 OTgsMTAgQEAgY2xhc3MgUHlCdWlsZEV4dChidWlsZF9leHQpOgotICAgICAgICAgKQotIAotICAg ICBkZWYgZGV0ZWN0X29wZW5zc2xfaGFzaGxpYihzZWxmKToKLS0gICAgICAgIHNlbGYuYWRkZXh0 KEV4dGVuc2lvbignX3NzbCcsIFsnX3NzbC5jJ10pKQotKyAgICAgICAgb3BlbnNzbF9saWJzPSBb XQotKyAgICAgICAgaWYgSE9TVF9QTEFURk9STS5zdGFydHN3aXRoKCgnbWluZ3cnLCAnd2luJykp OgotKyAgICAgICAgICAgIG9wZW5zc2xfbGlicyArPSBbJ3dzMl8zMiddCi0rICAgICAgICBzZWxm LmFkZGV4dChFeHRlbnNpb24oJ19zc2wnLCBbJ19zc2wuYyddLCBsaWJyYXJpZXM9b3BlbnNzbF9s aWJzKSkKLSAgICAgICAgIHNlbGYuYWRkZXh0KEV4dGVuc2lvbignX2hhc2hsaWInLCBbJ19oYXNo b3BlbnNzbC5jJ10pKQotIAotICAgICBkZWYgZGV0ZWN0X2hhc2hfYnVpbHRpbnMoc2VsZik6Cgpk aWZmIC0tZ2l0IGEvbWluZ3ctcHl0aG9uM19wa2djb25maWcucGF0Y2ggYi9taW5ndy1weXRob24z X3BrZ2NvbmZpZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzg2ZDVkOC4u MDAwMDAwMAotLS0gYS9taW5ndy1weXRob24zX3BrZ2NvbmZpZy5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDEwICswLDAgQEAKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4x MS4xNi9NaXNjL3B5dGhvbi5wYy5pbiBQeXRob24tMy4xMS4xNi1uZXcvTWlzYy9weXRob24ucGMu aW4KLS0tLSBQeXRob24tMy4xMS4xNi9NaXNjL3B5dGhvbi5wYy5pbgkyMDI2LTA4LTEzIDAxOjAz OjE5LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9NaXNjL3B5dGhvbi5w Yy5pbgkyMDI2LTA5LTE4IDE5OjIzOjA5LjIzMTI1NTAwMCArMDIwMAotQEAgLTksNSArOSw1IEBA IERlc2NyaXB0aW9uOiBCdWlsZCBhIEMgZXh0ZW5zaW9uIGZvciBQeXQKLSBSZXF1aXJlczoKLSBW ZXJzaW9uOiBAVkVSU0lPTkAKLSBMaWJzLnByaXZhdGU6IEBMSUJTQAotLUxpYnM6Ci0rTGliczog LWxweXRob25AVkVSU0lPTkBAQUJJRkxBR1NACi0gQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vcHl0 aG9uQFZFUlNJT05AQEFCSUZMQUdTQAoKZGlmZiAtLWdpdCBhL21pbmd3LXB5dGhvbjNfcGxhdGZv cm0tbWluZ3cucGF0Y2ggYi9taW5ndy1weXRob24zX3BsYXRmb3JtLW1pbmd3LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NGQ5ZTIzLi4wMDAwMDAwCi0tLSBhL21pbmd3LXB5 dGhvbjNfcGxhdGZvcm0tbWluZ3cucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMDMgKzAsMCBA QAotZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L2NvbmZpZy5zaXRl LW1pbmd3IFB5dGhvbi0zLjExLjE2LW5ldy9jb25maWcuc2l0ZS1taW5ndwotLS0tIFB5dGhvbi0z LjExLjE2L2NvbmZpZy5zaXRlLW1pbmd3CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L2NvbmZpZy5zaXRlLW1pbmd3CTIwMjYtMDktMTgg MTk6MjM6MDUuNzQ0ODEzOTAxICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLSthY19jdl9maWxlX19k ZXZfcHRteD1ubwotK2FjX2N2X2ZpbGVfX2Rldl9wdGM9bm8KLWRpZmYgLXJ1cE4gLS1uby1kZXJl ZmVyZW5jZSBQeXRob24tMy4xMS4xNi9jb25maWd1cmUuYWMgUHl0aG9uLTMuMTEuMTYtbmV3L2Nv bmZpZ3VyZS5hYwotLS0tIFB5dGhvbi0zLjExLjE2L2NvbmZpZ3VyZS5hYwkyMDI2LTA4LTEzIDAx OjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9jb25maWd1cmUu YWMJMjAyNi0wOS0xOCAxOToyMzowNS43NDUzNDQxOTggKzAyMDAKLUBAIC01MjgsNiArNTI4LDE1 IEBAIEFDX0RFRklORV9VTlFVT1RFRChfUFlUSE9ORlJBTUVXT1JLLCAiJHsKLSAjIFNldCBuYW1l IGZvciBtYWNoaW5lLWRlcGVuZGVudCBsaWJyYXJ5IGZpbGVzCi0gQUNfQVJHX1ZBUihbTUFDSERF UF0sIFtuYW1lIGZvciBtYWNoaW5lLWRlcGVuZGVudCBsaWJyYXJ5IGZpbGVzXSkKLSBBQ19NU0df Q0hFQ0tJTkcoTUFDSERFUCkKLStjYXNlICRob3N0IGluCi0rICAqLSotbWluZ3cqKQotKyAgICB0 ZXN0IC16ICIkTUFDSERFUCIgJiYgTUFDSERFUD13aW4zMgotKwotKyAgICBkbmwgQ29uZmlndXJh dGlvbiB3aWxsIGJlIGJhc2VkIG9ubHkgb24gImhvc3QgdHJpcGxldCIgYXMgYnVpbGQKLSsgICAg ZG5sIG11c3Qgbm90IGRlcGVuZCBmcm9tIHBvc2l4IGNvbXBhdGlibGUgZW52aXJvbmVtZW50Lgot KyAgICBhY19zeXNfc3lzdGVtPWlnbm9yZQotKyAgICA7OwotK2VzYWMKLSBpZiB0ZXN0IC16ICIk TUFDSERFUCIKLSB0aGVuCi0gICAgICMgYXZvaWQgdXNpbmcgdW5hbWUgZm9yIGNyb3NzIGJ1aWxk cwotQEAgLTU1NCw2ICs1NjMsOCBAQCB0aGVuCi0gCSotKi13YXNpKQotIAkgICAgYWNfc3lzX3N5 c3RlbT1XQVNJCi0gCSAgICA7OwotKyAgICAgICAgKi0qLW1pbmd3KikKLSsgICAgICAgICAgICA7 OwotIAkqKQotIAkJIyBmb3Igbm93LCBsaW1pdCBjcm9zcyBidWlsZHMgdG8ga25vd24gY29uZmln dXJhdGlvbnMKLSAJCU1BQ0hERVA9InVua25vd24iCi1AQCAtNjE0LDEyICs2MjUsMjMgQEAgaWYg dGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAJd2FzbTMyLSotKiB8IHdhc202 NC0qLSopCi0gCQlfaG9zdF9jcHU9JGhvc3RfY3B1Ci0gCQk7OwotKwkqLSotbWluZ3cqKQotKwkJ X2hvc3RfY3B1PQotKwkJOzsKLSAJKikKLSAJCSMgZm9yIG5vdywgbGltaXQgY3Jvc3MgYnVpbGRz IHRvIGtub3duIGNvbmZpZ3VyYXRpb25zCi0gCQlNQUNIREVQPSJ1bmtub3duIgotIAkJQUNfTVNH X0VSUk9SKFtjcm9zcyBidWlsZCBub3Qgc3VwcG9ydGVkIGZvciAkaG9zdF0pCi0gCWVzYWMKLSAJ X1BZVEhPTl9IT1NUX1BMQVRGT1JNPSIkTUFDSERFUCR7X2hvc3RfY3B1OistJF9ob3N0X2NwdX0i Ci0rCi0rCWNhc2UgIiRob3N0X29zIiBpbgotKwltaW5ndyopCi0rCSMgQXMgc3lzLnBsYXRmb3Jt KCkgcmV0dXJuICd3aW4zMicgdG8gYnVpbGQgcHl0aG9uIGFuZCBleHRhbnRpb25zCi0rCSMgd2Ug d2lsbCB1c2UgJ21pbmd3JyAoaW4gc2V0dXAucHkgYW5kIGV0Yy4pCi0rCV9QWVRIT05fSE9TVF9Q TEFURk9STT1taW5ndwotKwk7OwotKwllc2FjCi0gZmkKLSAKLSAjIFNvbWUgc3lzdGVtcyBjYW5u b3Qgc3RhbmQgX1hPUEVOX1NPVVJDRSBiZWluZyBkZWZpbmVkIGF0IGFsbDsgdGhleQotQEAgLTE1 MjYsNiArMTU0OCwxMyBAQCBpZiB0ZXN0ICRlbmFibGVfc2hhcmVkID0gInllcyI7IHRoZW4KLSAJ OzsKLSAKLSAgIGVzYWMKLSsgIGNhc2UgJGhvc3QgaW4KLSsgICAgKi0qLW1pbmd3KikKLSsgICAg ICAgIExETElCUkFSWT0nbGlicHl0aG9uJChMRFZFUlNJT04pLmRsbC5hJwotKyAgICAgICAgRExM TElCUkFSWT0nbGlicHl0aG9uJChMRFZFUlNJT04pLmRsbCcKLSsgICAgICAgIEJMRExJQlJBUlk9 Jy1MLiAtbHB5dGhvbiQoTERWRVJTSU9OKScKLSsgICAgICAgIDs7Ci0rICBlc2FjCi0gZWxzZSAj IHNoYXJlZCBpcyBkaXNhYmxlZAotICAgUFlfRU5BQkxFX1NIQVJFRD0wCi0gICBjYXNlICRhY19z eXNfc3lzdGVtIGluCi1AQCAtMTUzNCw2ICsxNTYzLDEwIEBAIGVsc2UgIyBzaGFyZWQgaXMgZGlz YWJsZWQKLSAgICAgICAgICAgTERMSUJSQVJZPSdsaWJweXRob24kKExEVkVSU0lPTikuZGxsLmEn Ci0gICAgICAgICAgIDs7Ci0gICBlc2FjCi0rICBjYXNlICRob3N0IGluCi0rICAgICotKi1taW5n dyopCi0rICAgICAgICAgIExETElCUkFSWT0nbGlicHl0aG9uJChMRFZFUlNJT04pLmEnOzsKLSsg IGVzYWMKLSBmaQotIAotIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi1A QCAtMzEwMSw2ICszMTM0LDkgQEAgaWYgdGVzdCAteiAiJFNITElCX1NVRkZJWCI7IHRoZW4KLSAJ Q1lHV0lOKikgICBTSExJQl9TVUZGSVg9LmRsbDs7Ci0gCSopCSAgIFNITElCX1NVRkZJWD0uc287 OwotIAllc2FjCi0rCWNhc2UgJGhvc3Rfb3MgaW4KLSsJbWluZ3cqKSAgICBTSExJQl9TVUZGSVg9 LmRsbDs7Ci0rCWVzYWMKLSBmaQotIEFDX01TR19SRVNVTFQoJFNITElCX1NVRkZJWCkKLSAKLUBA IC0zMjMyLDYgKzMyNjgsMTIgQEAgdGhlbgotIAkJTERDWFhTSEFSRUQ9ImcrKyAtc2hhcmVkIC1X bCwtLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UiOzsKLSAJKikJTERTSEFSRUQ9ImxkIjs7Ci0gCWVz YWMKLSsJY2FzZSAkaG9zdCBpbgotKwkqLSotbWluZ3cqKQotKwkJTERTSEFSRUQ9JyQoQ0MpIC1z aGFyZWQgLVdsLC0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZScKLSsJCUxEQ1hYU0hBUkVEPSckKENY WCkgLXNoYXJlZCAtV2wsLS1lbmFibGUtYXV0by1pbWFnZS1iYXNlJwotKwkJOzsKLSsJZXNhYwot IGZpCi0gCi0gZG5sIEVtc2NyaXB0ZW4ncyBlbWNvbmZpZ3VyZSBzZXRzIExEU0hBUkVELiBTZXQg QkxEU0hBUkVEIG91dHNpZGUgdGhlCi1AQCAtNDU2Nyw2ICs0NjA5LDEyIEBAIHRoZW4KLSAJZmkK LSAJOzsKLSAJZXNhYwotKwljYXNlICRob3N0IGluCi0rCSotKi1taW5ndyopCi0rCURZTkxPQURG SUxFPSJkeW5sb2FkX3dpbi5vIgotKwlleHRyYV9tYWNoZGVwX29ianM9IiRleHRyYV9tYWNoZGVw X29ianMgUEMvZGxfbnQubyIKLSsJOzsKLSsJZXNhYwotIGZpCi0gQUNfTVNHX1JFU1VMVCgkRFlO TE9BREZJTEUpCi0gaWYgdGVzdCAiJERZTkxPQURGSUxFIiAhPSAiZHlubG9hZF9zdHViLm8iCi1A QCAtNDU5Myw3ICs0NjQxLDcgQEAgZmkKLSAKLSAjIGNoZWNrcyBmb3IgbGlicmFyeSBmdW5jdGlv bnMKLSBBQ19DSEVDS19GVU5DUyhbIFwKLS0gIGFjY2VwdDQgYWxhcm0gYmluZF90ZXh0ZG9tYWlu X2NvZGVzZXQgY2htb2QgY2hvd24gY2xvY2sgY2xvc2VfcmFuZ2UgY29uZnN0ciBcCi0rICBhY2Nl cHQ0IGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0IGNobW9kIGNob3duIGNsb2NrIGNsb3NlX3Jhbmdl IGNvbmZzdHIgXAotICAgY29weV9maWxlX3JhbmdlIGN0ZXJtaWQgZHVwIGR1cDMgZXhlY3YgZXhw bGljaXRfYnplcm8gZXhwbGljaXRfbWVtc2V0IFwKLSAgIGZhY2Nlc3NhdCBmY2htb2QgZmNobW9k YXQgZmNob3duIGZjaG93bmF0IGZkb3BlbmRpciBmZHdhbGsgZmV4ZWN2ZSBcCi0gICBmb3JrIGZv cmsxIGZwYXRoY29uZiBmc3RhdGF0IGZ0aW1lIGZ0cnVuY2F0ZSBmdXRpbWVucyBmdXRpbWVzIGZ1 dGltZXNhdCBcCi1AQCAtNTcxNyw3ICs1NzY1LDcgQEAgQUNfTVNHX1JFU1VMVCgkTERWRVJTSU9O KQotIAotICMgT24gQW5kcm9pZCBhbmQgQ3lnd2luIHRoZSBzaGFyZWQgbGlicmFyaWVzIG11c3Qg YmUgbGlua2VkIHdpdGggbGlicHl0aG9uLgotIEFDX1NVQlNUKExJQlBZVEhPTikKLS1pZiB0ZXN0 IC1uICIkQU5EUk9JRF9BUElfTEVWRUwiIC1vICIkTUFDSERFUCIgPSAiY3lnd2luIjsgdGhlbgot K2lmIHRlc3QgLW4gIiRBTkRST0lEX0FQSV9MRVZFTCIgLW8gIiRNQUNIREVQIiA9ICJjeWd3aW4i IC1vICIkTUFDSERFUCIgPSAid2luMzIiOyB0aGVuCi0gICBMSUJQWVRIT049Ii1scHl0aG9uJHtW RVJTSU9OfSR7QUJJRkxBR1N9IgotIGVsc2UKLSAgIExJQlBZVEhPTj0nJwotQEAgLTYyNzcsNiAr NjMyNSw5IEBAIEFDX0NIRUNLX1RZUEUoc29ja2xlbl90LCwKLSAjaWZkZWYgSEFWRV9TWVNfU09D S0VUX0gKLSAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotICNlbmRpZgotKyNpZmRlZiBfX01JTkdX MzJfXwotKyNpbmNsdWRlIDx3czJ0Y3BpcC5oPgotKyNlbmRpZgotIF0pCi0gCi0gQUNfQ0FDSEVf Q0hFQ0soW2ZvciBicm9rZW4gbWJzdG93Y3NdLCBbYWNfY3ZfYnJva2VuX21ic3Rvd2NzXSwKLUBA IC02NzUwLDYgKzY4MDEsMTkgQEAgV0lUSF9TQVZFX0VOVihbCi0gICBdKQotIF0pCi0gCi0rIyBG b3IgbWluZ3cgYnVpbGQgbmVlZCBhZGRpdGlvbmFsIGxpYnJhcnkgZm9yIGxpbmtpbmcKLStjYXNl ICRob3N0IGluCi0rICAqLSotbWluZ3cqKQotKyAgICBMSUJTPSIkTElCUyAtbHZlcnNpb24gLWxz aGx3YXBpIC1scGF0aGNjaCAtbGJjcnlwdCIKLSsgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1ETVNfV0lO RE9XUyAtRE1TX1dJTjMyIgotKyAgOyYKLSsgIHg4Nl82NC0qLW1pbmd3KikKLSsgICAgQ0ZMQUdT PSIkQ0ZMQUdTIC1ETVNfV0lONjQiOwotKyAgOzsKLSsgICopCi0rICA7OwotK2VzYWMKLSsKLSAj IHNzbCBtb2R1bGUgZGVmYXVsdCBjaXBoZXIgc3VpdGUgc3RyaW5nCi0gQUhfVEVNUExBVEUoUFlf U1NMX0RFRkFVTFRfQ0lQSEVSUywKLSAgIFtEZWZhdWx0IGNpcGhlciBzdWl0ZXMgbGlzdCBmb3Ig c3NsIG1vZHVsZS4KLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9J bmNsdWRlL3B5cG9ydC5oIFB5dGhvbi0zLjExLjE2LW5ldy9JbmNsdWRlL3B5cG9ydC5oCi0tLS0g UHl0aG9uLTMuMTEuMTYvSW5jbHVkZS9weXBvcnQuaAkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAw MDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9JbmNsdWRlL3B5cG9ydC5oCTIwMjYt MDktMTggMTk6MjM6MDUuNzQ2MzExOTM0ICswMjAwCi1AQCAtMzQ3LDcgKzM0Nyw4IEBAIGV4dGVy biAiQyIgewotICAgICBfUHJhZ21hKCJjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zXCIiKQotICNkZWZpbmUgX1B5X0NPTVBfRElBR19QT1AgX1ByYWdt YSgiY2xhbmcgZGlhZ25vc3RpYyBwb3AiKQotICNlbGlmIGRlZmluZWQoX19HTlVDX18pIFwKLS0g ICAgJiYgKChfX0dOVUNfXyA+PSA1KSB8fCAoX19HTlVDX18gPT0gNCkgJiYgKF9fR05VQ19NSU5P Ul9fID49IDYpKQotKyAgICAmJiAoKF9fR05VQ19fID49IDUpIHx8IChfX0dOVUNfXyA9PSA0KSAm JiAoX19HTlVDX01JTk9SX18gPj0gNikpIFwKLSsgICAgJiYgIWRlZmluZWQoX19NSU5HVzMyX18p Ci0gI2RlZmluZSBfUHlfQ09NUF9ESUFHX1BVU0ggX1ByYWdtYSgiR0NDIGRpYWdub3N0aWMgcHVz aCIpCi0gI2RlZmluZSBfUHlfQ09NUF9ESUFHX0lHTk9SRV9ERVBSX0RFQ0xTIFwKLSAgICAgX1By YWdtYSgiR0NDIGRpYWdub3N0aWMgaWdub3JlZCBcIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNc IiIpCi1kaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvTGliL3N5c2Nv bmZpZy5weSBQeXRob24tMy4xMS4xNi1uZXcvTGliL3N5c2NvbmZpZy5weQotLS0tIFB5dGhvbi0z LjExLjE2L0xpYi9zeXNjb25maWcucHkJMjAyNi0wOC0xMyAwMTowMzoxOS4wMDAwMDAwMDAgKzAy MDAKLSsrKyBQeXRob24tMy4xMS4xNi1uZXcvTGliL3N5c2NvbmZpZy5weQkyMDI2LTA5LTE4IDE5 OjIzOjA1Ljc0NjY5OTY4OCArMDIwMAotQEAgLTczNyw2ICs3MzcsOCBAQCBkZWYgZ2V0X3BsYXRm b3JtKCk6Ci0gCi0gICAgICIiIgotICAgICBpZiBvcy5uYW1lID09ICdudCc6Ci0rICAgICAgICBp ZiAnR0NDJyBpbiBzeXMudmVyc2lvbjoKLSsgICAgICAgICAgICByZXR1cm4gJ21pbmd3JwotICAg ICAgICAgaWYgJ2FtZDY0JyBpbiBzeXMudmVyc2lvbi5sb3dlcigpOgotICAgICAgICAgICAgIHJl dHVybiAnd2luLWFtZDY0JwotICAgICAgICAgaWYgJyhhcm0pJyBpbiBzeXMudmVyc2lvbi5sb3dl cigpOgotZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L01ha2VmaWxl LnByZS5pbiBQeXRob24tMy4xMS4xNi1uZXcvTWFrZWZpbGUucHJlLmluCi0tLS0gUHl0aG9uLTMu MTEuMTYvTWFrZWZpbGUucHJlLmluCTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICswMjAw Ci0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTE4IDE5OjIz OjA1Ljc0NzEyNDI3NCArMDIwMAotQEAgLTExOCw3ICsxMTgsNyBAQCBDRkxBR1NGT1JTSEFSRUQ9 QENGTEFHU0ZPUlNIQVJFREAKLSAjIEMgZmxhZ3MgdXNlZCBmb3IgYnVpbGRpbmcgdGhlIGludGVy cHJldGVyIG9iamVjdCBmaWxlcwotIFBZX1NURE1PRFVMRV9DRkxBR1M9ICQoUFlfQ0ZMQUdTKSAk KFBZX0NGTEFHU19OT0RJU1QpICQoUFlfQ1BQRkxBR1MpICQoQ0ZMQUdTRk9SU0hBUkVEKQotIFBZ X0JVSUxUSU5fTU9EVUxFX0NGTEFHUz0gJChQWV9TVERNT0RVTEVfQ0ZMQUdTKSAtRFB5X0JVSUxE X0NPUkVfQlVJTFRJTgotLVBZX0NPUkVfQ0ZMQUdTPQkkKFBZX1NURE1PRFVMRV9DRkxBR1MpIC1E UHlfQlVJTERfQ09SRQotK1BZX0NPUkVfQ0ZMQUdTPQkkKFBZX1NURE1PRFVMRV9DRkxBR1MpIC1E UHlfQlVJTERfQ09SRSAtRE1TX1dJTkRPV1MgLURNU19DT1JFRExMIC1ETVNfRExMX0lEPVwiQFZF UlNJT05AXCIgLURQWTNfRExMTkFNRT1cIkBETExMSUJSQVJZQFwiCi0gIyBMaW5rZXIgZmxhZ3Mg dXNlZCBmb3IgYnVpbGRpbmcgdGhlIGludGVycHJldGVyIG9iamVjdCBmaWxlcwotIFBZX0NPUkVf TERGTEFHUz0kKFBZX0xERkxBR1MpICQoUFlfTERGTEFHU19OT0RJU1QpCi0gIyBTdHJpY3Qgb3Ig bm9uLXN0cmljdCBhbGlhc2luZyBmbGFncyB1c2VkIHRvIGNvbXBpbGUgZHRvYS5jLCBzZWUgYWJv dmUKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9Nb2R1bGVzL3Bv c2l4bW9kdWxlLmMgUHl0aG9uLTMuMTEuMTYtbmV3L01vZHVsZXMvcG9zaXhtb2R1bGUuYwotLS0t IFB5dGhvbi0zLjExLjE2L01vZHVsZXMvcG9zaXhtb2R1bGUuYwkyMDI2LTA4LTEzIDAxOjAzOjE5 LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9Nb2R1bGVzL3Bvc2l4bW9k dWxlLmMJMjAyNi0wOS0xOCAxOToyMzowNS43NDgyNjQ2MTYgKzAyMDAKLUBAIC0zNDMsNyArMzQz LDcgQEAgY29ycmVzcG9uZGluZyBVbml4IG1hbnVhbCBlbnRyaWVzIGZvciBtbwotICMgIGRlZmlu ZSBIQVZFX1NZU1RFTSAgICAgMQotICMgIGluY2x1ZGUgPHByb2Nlc3MuaD4KLSAjZWxzZQotLSMg IGlmZGVmIF9NU0NfVkVSCi0rIyAgaWZkZWYgTVNfV0lORE9XUwotICAgICAgLyogTWljcm9zb2Z0 IGNvbXBpbGVyICovCi0gIyAgICBkZWZpbmUgSEFWRV9HRVRQUElEICAgIDEKLSAjICAgIGRlZmlu ZSBIQVZFX0dFVExPR0lOICAgMQotQEAgLTM1Niw3ICszNTYsNyBAQCBjb3JyZXNwb25kaW5nIFVu aXggbWFudWFsIGVudHJpZXMgZm9yIG1vCi0gIyAgICBkZWZpbmUgSEFWRV9DV0FJVCAgICAgIDEK LSAjICAgIGRlZmluZSBIQVZFX0ZTWU5DICAgICAgMQotICMgICAgZGVmaW5lIGZzeW5jIF9jb21t aXQKLS0jICBlbmRpZiAgLyogX01TQ19WRVIgKi8KLSsjICBlbmRpZiAgLyogTVNfV0lORE9XUyAq LwotICNlbmRpZiAgLyogISBfX1dBVENPTUNfXyB8fCBfX1FOWF9fICovCi0gCi0gLypbY2xpbmlj IGlucHV0XQotQEAgLTQzNCw3ICs0MzQsNyBAQCBleHRlcm4gY2hhciAgICAgICAgKmN0ZXJtaWRf cihjaGFyICopOwotICMgIGVuZGlmCi0gI2VuZGlmCi0gCi0tI2lmZGVmIF9NU0NfVkVSCi0rI2lm ZGVmIE1TX1dJTkRPV1MKLSAjICBpZmRlZiBIQVZFX0RJUkVDVF9ICi0gIyAgICBpbmNsdWRlIDxk aXJlY3QuaD4KLSAjICBlbmRpZgotQEAgLTQwNTcsNyArNDA1Nyw3IEBAIG9zX2xpbmtfaW1wbChQ eU9iamVjdCAqbW9kdWxlLCBwYXRoX3QgKnMKLSAjZW5kaWYKLSAKLSAKLS0jaWYgZGVmaW5lZChN U19XSU5ET1dTKSAmJiAhZGVmaW5lZChIQVZFX09QRU5ESVIpCi0rI2lmIGRlZmluZWQoTVNfV0lO RE9XUykKLSBzdGF0aWMgUHlPYmplY3QgKgotIF9saXN0ZGlyX3dpbmRvd3Nfbm9fb3BlbmRpcihw YXRoX3QgKnBhdGgsIFB5T2JqZWN0ICpsaXN0KQotIHsKLUBAIC00Mjk4LDcgKzQyOTgsNyBAQCBv c19saXN0ZGlyX2ltcGwoUHlPYmplY3QgKm1vZHVsZSwgcGF0aF90Ci0gICAgICAgICAgICAgICAg ICAgICBwYXRoLT5vYmplY3QgPyBwYXRoLT5vYmplY3QgOiBQeV9Ob25lKSA8IDApIHsKLSAgICAg ICAgIHJldHVybiBOVUxMOwotICAgICB9Ci0tI2lmIGRlZmluZWQoTVNfV0lORE9XUykgJiYgIWRl ZmluZWQoSEFWRV9PUEVORElSKQotKyNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpCi0gICAgIHJldHVy biBfbGlzdGRpcl93aW5kb3dzX25vX29wZW5kaXIocGF0aCwgTlVMTCk7Ci0gI2Vsc2UKLSAgICAg cmV0dXJuIF9wb3NpeF9saXN0ZGlyKHBhdGgsIE5VTEwpOwotZGlmZiAtcnVwTiAtLW5vLWRlcmVm ZXJlbmNlIFB5dGhvbi0zLjExLjE2L09iamVjdHMvZXhjZXB0aW9ucy5jIFB5dGhvbi0zLjExLjE2 LW5ldy9PYmplY3RzL2V4Y2VwdGlvbnMuYwotLS0tIFB5dGhvbi0zLjExLjE2L09iamVjdHMvZXhj ZXB0aW9ucy5jCTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICswMjAwCi0rKysgUHl0aG9u LTMuMTEuMTYtbmV3L09iamVjdHMvZXhjZXB0aW9ucy5jCTIwMjYtMDktMTggMTk6MjM6MDUuNzQ5 ODYyNTcwICswMjAwCi1AQCAtMTY0OCw3ICsxNjQ4LDkgQEAgTWlkZGxpbmdFeHRlbmRzRXhjZXB0 aW9uKFB5RXhjX0ltcG9ydEVycgotICAqLwotIAotICNpZmRlZiBNU19XSU5ET1dTCi0tI2luY2x1 ZGUgImVycm1hcC5oIgotKyNpbmNsdWRlIDx3aW5zb2NrMi5oPgotKyNpbmNsdWRlIDx3aW5kb3dz Lmg+Ci0rI2luY2x1ZGUgIi4uL1BDL2Vycm1hcC5oIgotICNlbmRpZgotIAotIC8qIFdoZXJlIGEg ZnVuY3Rpb24gaGFzIGEgc2luZ2xlIGZpbGVuYW1lLCBzdWNoIGFzIG9wZW4oKSBvciBzb21lCi1k aWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvUHl0aG9uL2R5bmxvYWRf d2luLmMgUHl0aG9uLTMuMTEuMTYtbmV3L1B5dGhvbi9keW5sb2FkX3dpbi5jCi0tLS0gUHl0aG9u LTMuMTEuMTYvUHl0aG9uL2R5bmxvYWRfd2luLmMJMjAyNi0wOC0xMyAwMTowMzoxOS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBQeXRob24tMy4xMS4xNi1uZXcvUHl0aG9uL2R5bmxvYWRfd2luLmMJMjAy Ni0wOS0xOCAxOToyMzowNS43NTA0ODQ1NzEgKzAyMDAKLUBAIC0yMSw5ICsyMSw5IEBACi0gI2Vu ZGlmCi0gCi0gI2lmZGVmIFBZRF9QTEFURk9STV9UQUcKLS0jZGVmaW5lIFBZRF9UQUdHRURfU1VG RklYIFBZRF9ERUJVR19TVUZGSVggIi5jcCIgUHlfU1RSSU5HSUZZKFBZX01BSk9SX1ZFUlNJT04p IFB5X1NUUklOR0lGWShQWV9NSU5PUl9WRVJTSU9OKSAiLSIgUFlEX1BMQVRGT1JNX1RBRyAiLnB5 ZCIKLSsjZGVmaW5lIFBZRF9UQUdHRURfU1VGRklYIFBZRF9ERUJVR19TVUZGSVggIi5jcHl0aG9u LSIgUHlfU1RSSU5HSUZZKFBZX01BSk9SX1ZFUlNJT04pIFB5X1NUUklOR0lGWShQWV9NSU5PUl9W RVJTSU9OKSAiLSIgUFlEX1BMQVRGT1JNX1RBRyAiLmRsbCIKLSAjZWxzZQotLSNkZWZpbmUgUFlE X1RBR0dFRF9TVUZGSVggUFlEX0RFQlVHX1NVRkZJWCAiLmNwIiBQeV9TVFJJTkdJRlkoUFlfTUFK T1JfVkVSU0lPTikgUHlfU1RSSU5HSUZZKFBZX01JTk9SX1ZFUlNJT04pICIucHlkIgotKyNkZWZp bmUgUFlEX1RBR0dFRF9TVUZGSVggUFlEX0RFQlVHX1NVRkZJWCAiLmNweXRob24tIiBQeV9TVFJJ TkdJRlkoUFlfTUFKT1JfVkVSU0lPTikgUHlfU1RSSU5HSUZZKFBZX01JTk9SX1ZFUlNJT04pICIu ZGxsIgotICNlbmRpZgotIAotICNkZWZpbmUgUFlEX1VOVEFHR0VEX1NVRkZJWCBQWURfREVCVUdf U1VGRklYICIucHlkIgotQEAgLTE3MCw3ICsxNzAsNyBAQCBzdGF0aWMgY2hhciAqR2V0UHl0aG9u SW1wb3J0IChISU5TVEFOQ0UKLSAgICBSZXR1cm4gd2hldGhlciB0aGUgRExMIHdhcyBmb3VuZC4K LSAqLwotIGV4dGVybiBITU9EVUxFIFB5V2luX0RMTGhNb2R1bGU7Ci0tc3RhdGljIGludAotK2lu dAotIF9QeV9DaGVja1B5dGhvbjModm9pZCkKLSB7Ci0gICAgIHN0YXRpYyBpbnQgcHl0aG9uM19j aGVja2VkID0gMDsKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9Q eXRob24vc3lzbW9kdWxlLmMgUHl0aG9uLTMuMTEuMTYtbmV3L1B5dGhvbi9zeXNtb2R1bGUuYwot LS0tIFB5dGhvbi0zLjExLjE2L1B5dGhvbi9zeXNtb2R1bGUuYwkyMDI2LTA4LTEzIDAxOjAzOjE5 LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9QeXRob24vc3lzbW9kdWxl LmMJMjAyNi0wOS0xOCAxOToyMzowNS43NTA4NzE0NzcgKzAyMDAKLUBAIC0yOTgyLDcgKzI5ODIs OCBAQCBfUHlTeXNfSW5pdENvcmUoUHlUaHJlYWRTdGF0ZSAqdHN0YXRlLCBQCi0gICAgICAgICAg ICAgZ290byB0eXBlX2luaXRfZmFpbGVkOwotICAgICAgICAgfQotICAgICB9Ci0tCi0rLy8gRklY TUUgPz8/PyBXaGF0IGlzIFZQQVRIPwotKyNkZWZpbmUgVlBBVEggIi4uXFwuLiIKLSAgICAgU0VU X1NZU19GUk9NX1NUUklORygiX3ZwYXRoIiwgVlBBVEgpOwotICNlbmRpZgotIAoKZGlmZiAtLWdp dCBhL21pbmd3LXB5dGhvbjNfcG9zaXgtbGF5b3V0LnBhdGNoIGIvbWluZ3ctcHl0aG9uM19wb3Np eC1sYXlvdXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4YTc1OTIuLjAw MDAwMDAKLS0tIGEvbWluZ3ctcHl0aG9uM19wb3NpeC1sYXlvdXQucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwxMTEgKzAsMCBAQAotZGlmZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0z LjExLjE2L0xpYi9zaXRlLnB5IFB5dGhvbi0zLjExLjE2LW5ldy9MaWIvc2l0ZS5weQotLS0tIFB5 dGhvbi0zLjExLjE2L0xpYi9zaXRlLnB5CTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICsw MjAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L0xpYi9zaXRlLnB5CTIwMjYtMDktMTggMTk6MjM6 MDguMjA3MDI3MTUwICswMjAwCi1AQCAtMzcxLDcgKzM3MSw3IEBAIGRlZiBnZXRzaXRlcGFja2Fn ZXMocHJlZml4ZXM9Tm9uZSk6Ci0gICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIHNlZW4u YWRkKHByZWZpeCkKLSAKLS0gICAgICAgIGlmIG9zLnNlcCA9PSAnLyc6Ci0rICAgICAgICBpZiBU cnVlOiAjb3Muc2VwID09ICcvJzoKLSAgICAgICAgICAgICBsaWJkaXJzID0gW3N5cy5wbGF0bGli ZGlyXQotICAgICAgICAgICAgIGlmIHN5cy5wbGF0bGliZGlyICE9ICJsaWIiOgotICAgICAgICAg ICAgICAgICBsaWJkaXJzLmFwcGVuZCgibGliIikKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5j ZSBQeXRob24tMy4xMS4xNi9MaWIvc3lzY29uZmlnLnB5IFB5dGhvbi0zLjExLjE2LW5ldy9MaWIv c3lzY29uZmlnLnB5Ci0tLS0gUHl0aG9uLTMuMTEuMTYvTGliL3N5c2NvbmZpZy5weQkyMDI2LTA5 LTE4IDE5OjIzOjA3LjkzNzYxMzQ0OCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9MaWIv c3lzY29uZmlnLnB5CTIwMjYtMDktMTggMTk6MjM6MDguMjA3NTI1NjIyICswMjAwCi1AQCAtNDgs MTMgKzQ4LDEzIEBAIF9JTlNUQUxMX1NDSEVNRVMgPSB7Ci0gICAgICAgICAnZGF0YSc6ICd7YmFz ZX0nLAotICAgICAgICAgfSwKLSAgICAgJ250JzogewotLSAgICAgICAgJ3N0ZGxpYic6ICd7aW5z dGFsbGVkX2Jhc2V9L0xpYicsCi0tICAgICAgICAncGxhdHN0ZGxpYic6ICd7YmFzZX0vTGliJywK LS0gICAgICAgICdwdXJlbGliJzogJ3tiYXNlfS9MaWIvc2l0ZS1wYWNrYWdlcycsCi0tICAgICAg ICAncGxhdGxpYic6ICd7YmFzZX0vTGliL3NpdGUtcGFja2FnZXMnLAotLSAgICAgICAgJ2luY2x1 ZGUnOiAne2luc3RhbGxlZF9iYXNlfS9JbmNsdWRlJywKLS0gICAgICAgICdwbGF0aW5jbHVkZSc6 ICd7aW5zdGFsbGVkX2Jhc2V9L0luY2x1ZGUnLAotLSAgICAgICAgJ3NjcmlwdHMnOiAne2Jhc2V9 L1NjcmlwdHMnLAotKyAgICAgICAgJ3N0ZGxpYic6ICd7aW5zdGFsbGVkX2Jhc2V9L2xpYi9weXRo b257cHlfdmVyc2lvbl9zaG9ydH0nLAotKyAgICAgICAgJ3BsYXRzdGRsaWInOiAne2Jhc2V9L2xp Yi9weXRob257cHlfdmVyc2lvbl9zaG9ydH0nLAotKyAgICAgICAgJ3B1cmVsaWInOiAne2Jhc2V9 L2xpYi9weXRob257cHlfdmVyc2lvbl9zaG9ydH0vc2l0ZS1wYWNrYWdlcycsCi0rICAgICAgICAn cGxhdGxpYic6ICd7YmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fS9zaXRlLXBhY2th Z2VzJywKLSsgICAgICAgICdpbmNsdWRlJzogJ3tpbnN0YWxsZWRfYmFzZX0vaW5jbHVkZS9weXRo b257cHlfdmVyc2lvbl9zaG9ydH0nLAotKyAgICAgICAgJ3BsYXRpbmNsdWRlJzogJ3tpbnN0YWxs ZWRfYmFzZX0vaW5jbHVkZS9weXRob257cHlfdmVyc2lvbl9zaG9ydH0nLAotKyAgICAgICAgJ3Nj cmlwdHMnOiAne2Jhc2V9L2JpbicsCi0gICAgICAgICAnZGF0YSc6ICd7YmFzZX0nLAotICAgICAg ICAgfSwKLSAgICAgIyBEb3duc3RyZWFtIGRpc3RyaWJ1dG9ycyBjYW4gb3ZlcndyaXRlIHRoZSBk ZWZhdWx0IGluc3RhbGwgc2NoZW1lLgotQEAgLTEzNSwxMiArMTM1LDEyIEBAIGlmIF9IQVNfVVNF Ul9CQVNFOgotICAgICBfSU5TVEFMTF9TQ0hFTUVTIHw9IHsKLSAgICAgICAgICMgTk9URTogV2hl biBtb2RpZnlpbmcgInB1cmVsaWIiIHNjaGVtZSwgdXBkYXRlIHNpdGUuX2dldF9wYXRoKCkgdG9v LgotICAgICAgICAgJ250X3VzZXInOiB7Ci0tICAgICAgICAgICAgJ3N0ZGxpYic6ICd7dXNlcmJh c2V9L1B5dGhvbntweV92ZXJzaW9uX25vZG90X3BsYXR9JywKLS0gICAgICAgICAgICAncGxhdHN0 ZGxpYic6ICd7dXNlcmJhc2V9L1B5dGhvbntweV92ZXJzaW9uX25vZG90X3BsYXR9JywKLS0gICAg ICAgICAgICAncHVyZWxpYic6ICd7dXNlcmJhc2V9L1B5dGhvbntweV92ZXJzaW9uX25vZG90X3Bs YXR9L3NpdGUtcGFja2FnZXMnLAotLSAgICAgICAgICAgICdwbGF0bGliJzogJ3t1c2VyYmFzZX0v UHl0aG9ue3B5X3ZlcnNpb25fbm9kb3RfcGxhdH0vc2l0ZS1wYWNrYWdlcycsCi0tICAgICAgICAg ICAgJ2luY2x1ZGUnOiAne3VzZXJiYXNlfS9QeXRob257cHlfdmVyc2lvbl9ub2RvdF9wbGF0fS9J bmNsdWRlJywKLS0gICAgICAgICAgICAnc2NyaXB0cyc6ICd7dXNlcmJhc2V9L1B5dGhvbntweV92 ZXJzaW9uX25vZG90X3BsYXR9L1NjcmlwdHMnLAotKyAgICAgICAgICAgICdzdGRsaWInOiAne3Vz ZXJiYXNlfS9saWIvcHl0aG9ue3B5X3ZlcnNpb25fc2hvcnR9JywKLSsgICAgICAgICAgICAncGxh dHN0ZGxpYic6ICd7dXNlcmJhc2V9L2xpYi9weXRob257cHlfdmVyc2lvbl9zaG9ydH0nLAotKyAg ICAgICAgICAgICdwdXJlbGliJzogJ3t1c2VyYmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3No b3J0fS9zaXRlLXBhY2thZ2VzJywKLSsgICAgICAgICAgICAncGxhdGxpYic6ICd7dXNlcmJhc2V9 L2xpYi9weXRob257cHlfdmVyc2lvbl9zaG9ydH0vc2l0ZS1wYWNrYWdlcycsCi0rICAgICAgICAg ICAgJ2luY2x1ZGUnOiAne3VzZXJiYXNlfS9pbmNsdWRlL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0 fScsCi0rICAgICAgICAgICAgJ3NjcmlwdHMnOiAne3VzZXJiYXNlfS9iaW4nLAotICAgICAgICAg ICAgICdkYXRhJzogJ3t1c2VyYmFzZX0nLAotICAgICAgICAgICAgIH0sCi0gICAgICAgICAncG9z aXhfdXNlcic6IHsKLUBAIC01NjAsNyArNTYwLDcgQEAgZGVmIF9pbml0X25vbl9wb3NpeCh2YXJz KToKLSAgICAgdmFyc1snSU5DTFVERVBZJ10gPSBnZXRfcGF0aCgnaW5jbHVkZScpCi0gICAgIHZh cnNbJ0VYVF9TVUZGSVgnXSA9IF9pbXAuZXh0ZW5zaW9uX3N1ZmZpeGVzKClbMF0KLSAgICAgdmFy c1snRVhFJ10gPSAnLmV4ZScKLS0gICAgdmFyc1snVkVSU0lPTiddID0gX1BZX1ZFUlNJT05fU0hP UlRfTk9fRE9UCi0rICAgIHZhcnNbJ1ZFUlNJT04nXSA9IF9QWV9WRVJTSU9OX1NIT1JUCi0gICAg IHZhcnNbJ0JJTkRJUiddID0gb3MucGF0aC5kaXJuYW1lKF9zYWZlX3JlYWxwYXRoKHN5cy5leGVj dXRhYmxlKSkKLSAgICAgdmFyc1snVFpQQVRIJ10gPSAnJwotIAotZGlmZiAtcnVwTiAtLW5vLWRl cmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L01vZHVsZXMvZ2V0cGF0aC5jIFB5dGhvbi0zLjExLjE2 LW5ldy9Nb2R1bGVzL2dldHBhdGguYwotLS0tIFB5dGhvbi0zLjExLjE2L01vZHVsZXMvZ2V0cGF0 aC5jCTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICswMjAwCi0rKysgUHl0aG9uLTMuMTEu MTYtbmV3L01vZHVsZXMvZ2V0cGF0aC5jCTIwMjYtMDktMTggMTk6MjM6MDguMjA3ODYwNzU5ICsw MjAwCi1AQCAtODgzLDcgKzg4MywxMSBAQCBfUHlDb25maWdfSW5pdFBhdGhDb25maWcoUHlDb25m aWcgKmNvbmZpCi0gCi0gICAgIGlmICgKLSAjaWZkZWYgTVNfV0lORE9XUwotKyMgaWZkZWYgX19N SU5HVzMyX18KLSsgICAgICAgICFkZWNvZGVfdG9fZGljdChkaWN0LCAib3NfbmFtZSIsICJtaW5n dyIpIHx8Ci0rIyBlbHNlCi0gICAgICAgICAhZGVjb2RlX3RvX2RpY3QoZGljdCwgIm9zX25hbWUi LCAibnQiKSB8fAotKyMgZW5kaWYKLSAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKLSAgICAgICAg ICFkZWNvZGVfdG9fZGljdChkaWN0LCAib3NfbmFtZSIsICJkYXJ3aW4iKSB8fAotICNlbHNlCi1k aWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvTW9kdWxlcy9nZXRwYXRo LnB5IFB5dGhvbi0zLjExLjE2LW5ldy9Nb2R1bGVzL2dldHBhdGgucHkKLS0tLSBQeXRob24tMy4x MS4xNi9Nb2R1bGVzL2dldHBhdGgucHkJMjAyNi0wOC0xMyAwMTowMzoxOS4wMDAwMDAwMDAgKzAy MDAKLSsrKyBQeXRob24tMy4xMS4xNi1uZXcvTW9kdWxlcy9nZXRwYXRoLnB5CTIwMjYtMDktMTgg MTk6MjM6MDguMjA4MTQ5MzI2ICswMjAwCi1AQCAtMTg0LDYgKzE4NCwxOSBAQCBpZiBvc19uYW1l ID09ICdwb3NpeCcgb3Igb3NfbmFtZSA9PSAnZGFyCi0gICAgIERFTElNID0gJzonCi0gICAgIFNF UCA9ICcvJwotIAotK2VsaWYgb3NfbmFtZSA9PSAnbWluZ3cnOgotKyAgICBCVUlMRERJUl9UWFQg PSAncHlidWlsZGRpci50eHQnCi0rICAgIEJVSUxEX0xBTkRNQVJLID0gZidNb2R1bGVzXFxTZXR1 cC5sb2NhbCcKLSsgICAgREVGQVVMVF9QUk9HUkFNX05BTUUgPSBmJ3B5dGhvbntWRVJTSU9OX01B Sk9SfScKLSsgICAgU1RETElCX1NVQkRJUiA9IGYne3BsYXRsaWJkaXJ9XFxweXRob257VkVSU0lP Tl9NQUpPUn0ue1ZFUlNJT05fTUlOT1J9JwotKyAgICBTVERMSUJfTEFORE1BUktTID0gW2Yne1NU RExJQl9TVUJESVJ9XFxvcy5weScsIGYne1NURExJQl9TVUJESVJ9XFxvcy5weWMnXQotKyAgICBQ TEFUU1RETElCX0xBTkRNQVJLID0gZid7cGxhdGxpYmRpcn1cXHB5dGhvbntWRVJTSU9OX01BSk9S fS57VkVSU0lPTl9NSU5PUn1cXGxpYi1keW5sb2FkJwotKyAgICBCVUlMRFNURExJQl9MQU5ETUFS S1MgPSBbJ0xpYlxcb3MucHknXQotKyAgICBWRU5WX0xBTkRNQVJLID0gJ3B5dmVudi5jZmcnCi0r ICAgIFpJUF9MQU5ETUFSSyA9IGYne3BsYXRsaWJkaXJ9XFxweXRob257VkVSU0lPTl9NQUpPUn17 VkVSU0lPTl9NSU5PUn0uemlwJwotKyAgICBERUxJTSA9ICc7JwotKyAgICBTRVAgPSAnXFwnCi0r Ci0gZWxpZiBvc19uYW1lID09ICdudCc6Ci0gICAgIEJVSUxERElSX1RYVCA9ICdweWJ1aWxkZGly LnR4dCcKLSAgICAgREVGQVVMVF9QUk9HUkFNX05BTUUgPSBmJ3B5dGhvbicKLUBAIC00NTMsNyAr NDY2LDcgQEAgaWYgbm90IHB5X3NldHBhdGggYW5kIG5vdCBob21lX3dhc19zZXQ6Ci0gICAgICMg Ll9wdGggZmlsZSwgYnV0IGl0IGNhbm5vdCBvdmVycmlkZSB0aGUgbGlicmFyeSdzIG9uZS4KLSAg ICAgZm9yIHAgaW4gW2xpYnJhcnksIGV4ZWN1dGFibGUsIHJlYWxfZXhlY3V0YWJsZV06Ci0gICAg ICAgICBpZiBwOgotLSAgICAgICAgICAgIGlmIG9zX25hbWUgPT0gJ250JyBhbmQgKGhhc3N1ZmZp eChwLCAnZXhlJykgb3IgaGFzc3VmZml4KHAsICdkbGwnKSk6Ci0rICAgICAgICAgICAgaWYgKG9z X25hbWUgPT0gJ250JyBvciBvc19uYW1lID09ICdtaW5ndycpIGFuZCAoaGFzc3VmZml4KHAsICdl eGUnKSBvciBoYXNzdWZmaXgocCwgJ2RsbCcpKToKLSAgICAgICAgICAgICAgICAgcCA9IHAucnBh cnRpdGlvbignLicpWzBdCi0gICAgICAgICAgICAgcCArPSAnLl9wdGgnCi0gICAgICAgICAgICAg dHJ5OgoKZGlmZiAtLWdpdCBhL21pbmd3LXB5dGhvbjNfcHRocmVhZF90aHJlYWRpZC5wYXRjaCBi L21pbmd3LXB5dGhvbjNfcHRocmVhZF90aHJlYWRpZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNTdjMTdjYi4uMDAwMDAwMAotLS0gYS9taW5ndy1weXRob24zX3B0aHJlYWRf dGhyZWFkaWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC1ydXBO IC0tbm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvUHl0aG9uL3RocmVhZF9wdGhyZWFkLmgg UHl0aG9uLTMuMTEuMTYtbmV3L1B5dGhvbi90aHJlYWRfcHRocmVhZC5oCi0tLS0gUHl0aG9uLTMu MTEuMTYvUHl0aG9uL3RocmVhZF9wdGhyZWFkLmgJMjAyNi0wOC0xMyAwMTowMzoxOS4wMDAwMDAw MDAgKzAyMDAKLSsrKyBQeXRob24tMy4xMS4xNi1uZXcvUHl0aG9uL3RocmVhZF9wdGhyZWFkLmgJ MjAyNi0wOS0xOCAxOToyMzowNi44OTUzMzA3MjEgKzAyMDAKLUBAIC0zNTIsNiArMzUyLDkgQEAg UHlUaHJlYWRfZ2V0X3RocmVhZF9uYXRpdmVfaWQodm9pZCkKLSAjZWxpZiBkZWZpbmVkKF9fTmV0 QlNEX18pCi0gICAgIGx3cGlkX3QgbmF0aXZlX2lkOwotICAgICBuYXRpdmVfaWQgPSBfbHdwX3Nl bGYoKTsKLSsjZWxpZiBkZWZpbmVkKF9fTUlOR1czMl9fKQotKyAgICBwdGhyZWFkX3QgbmF0aXZl X2lkOwotKyAgICBuYXRpdmVfaWQgPSBwdGhyZWFkX3NlbGYoKTsKLSAjZW5kaWYKLSAgICAgcmV0 dXJuICh1bnNpZ25lZCBsb25nKSBuYXRpdmVfaWQ7Ci0gfQoKZGlmZiAtLWdpdCBhL21pbmd3LXB5 dGhvbjNfcHl0aG9udy5wYXRjaCBiL21pbmd3LXB5dGhvbjNfcHl0aG9udy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY4NjlhYy4uMDAwMDAwMAotLS0gYS9taW5ndy1weXRo b24zX3B5dGhvbncucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotZGlmZiAt cnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L01ha2VmaWxlLnByZS5pbiBQeXRo b24tMy4xMS4xNi1uZXcvTWFrZWZpbGUucHJlLmluCi0tLS0gUHl0aG9uLTMuMTEuMTYvTWFrZWZp bGUucHJlLmluCTIwMjYtMDktMTggMTk6MjM6MDYuNjA2OTQ3MTY0ICswMjAwCi0rKysgUHl0aG9u LTMuMTEuMTYtbmV3L01ha2VmaWxlLnByZS5pbgkyMDI2LTA5LTE4IDE5OjIzOjA2LjYxODIwMDUw MiArMDIwMAotQEAgLTI4NCw2ICsyODQsNyBAQCBMSUJPQkpTPQlATElCT0JKU0AKLSAKLSBQWVRI T049CQlweXRob24kKEVYRSkKLSBCVUlMRFBZVEhPTj0JcHl0aG9uJChCVUlMREVYRSkKLStCVUlM RFBZVEhPTlc9CXB5dGhvbnckKEJVSUxERVhFKQotIAotIEhPU1RSVU5ORVI9IEBIT1NUUlVOTkVS QAotIAotQEAgLTU4OCw3ICs1ODksNyBAQCBMSUJFWFBBVF9IRUFERVJTPSBcCi0gCi0gIyBEZWZh dWx0IHRhcmdldAotIGFsbDoJCUBERUZfTUFLRV9BTExfUlVMRUAKLS1idWlsZF9hbGw6CWNoZWNr LWNsZWFuLXNyYyAkKEJVSUxEUFlUSE9OKSBwbGF0Zm9ybSBvbGRzaGFyZWRtb2RzIHNoYXJlZG1v ZHMgXAotK2J1aWxkX2FsbDoJY2hlY2stY2xlYW4tc3JjICQoQlVJTERQWVRIT04pICQoQlVJTERQ WVRIT05XKSBwbGF0Zm9ybSBvbGRzaGFyZWRtb2RzIHNoYXJlZG1vZHMgXAotIAkJZ2RiaG9va3Mg UHJvZ3JhbXMvX3Rlc3RlbWJlZCBweXRob24tY29uZmlnCi0gYnVpbGRfd2FzbTogY2hlY2stY2xl YW4tc3JjICQoQlVJTERQWVRIT04pIHBsYXRmb3JtIG9sZHNoYXJlZG1vZHMgcHl0aG9uLWNvbmZp ZwotIAotQEAgLTcwNyw5ICs3MDgsMjkgQEAgY292ZXJhZ2UtcmVwb3J0OiByZWdlbi10b2tlbiBy ZWdlbi1mcm96ZQotIGNsaW5pYzogY2hlY2stY2xlYW4tc3JjICQoc3JjZGlyKS9Nb2R1bGVzL19i bGFrZTIvYmxha2Uyc19pbXBsLmMKLSAJJChQWVRIT05fRk9SX1JFR0VOKSAkKHNyY2RpcikvVG9v bHMvY2xpbmljL2NsaW5pYy5weSAtLW1ha2UgLS1zcmNkaXIgJChzcmNkaXIpCi0gCi0rcHl0aG9u bnRfcmMuaDoKLSsJIyBGSVhNRTogRklFTEQzIG5vdCBzZXQKLSsJQGVjaG8gJyNkZWZpbmUgRklF TEQzIDAnID4gJEAKLSsJQGVjaG8gJyNkZWZpbmUgTVNfRExMX0lEICIkKFZFUlNJT04pIicgPj4g JEAKLSsJQGVjaG8gJyNkZWZpbmUgUFlUSE9OX0RMTF9OQU1FICIkKERMTExJQlJBUlkpIicgPj4g JEAKLSsKLStweXRob25fZXhlLm86IHB5dGhvbm50X3JjLmggJChzcmNkaXIpL1BDL3B5dGhvbl9l eGUucmMKLSsJJChXSU5EUkVTKSAtSSQoc3JjZGlyKS9JbmNsdWRlIC1JJChzcmNkaXIpL1BDIC1J LiAkKHNyY2RpcikvUEMvcHl0aG9uX2V4ZS5yYyAkQAotKwotK3B5dGhvbndfZXhlLm86IHB5dGhv bm50X3JjLmggJChzcmNkaXIpL1BDL3B5dGhvbndfZXhlLnJjCi0rCSQoV0lORFJFUykgLUkkKHNy Y2RpcikvSW5jbHVkZSAtSSQoc3JjZGlyKS9QQyAtSS4gJChzcmNkaXIpL1BDL3B5dGhvbndfZXhl LnJjICRACi0rCi0rcHl0aG9uX250Lm86IHB5dGhvbm50X3JjLmggJChzcmNkaXIpL1BDL3B5dGhv bl9udC5yYwotKwkkKFdJTkRSRVMpIC1JJChzcmNkaXIpL0luY2x1ZGUgLUkkKHNyY2RpcikvUEMg LUkuICQoc3JjZGlyKS9QQy9weXRob25fbnQucmMgJEAKLSsKLSskKEJVSUxEUFlUSE9OVyk6IFBy b2dyYW1zL3B5dGhvbi5vICQoTElCUkFSWSkgJChMRExJQlJBUlkpICQoUFkzTElCUkFSWSkgcHl0 aG9ud19leGUubwotKwkkKExJTktDQykgJChQWV9DT1JFX0xERkxBR1MpICQoTElOS0ZPUlNIQVJF RCkgLW11bmljb2RlIC1td2luZG93cyAtbyAkQCBQcm9ncmFtcy9weXRob24ubyAkKEJMRExJQlJB UlkpICQoTElCUykgJChNT0RMSUJTKSAkKFNZU0xJQlMpICQoTERMQVNUKSBweXRob253X2V4ZS5v Ci0rCi0rCi0rCi0gIyBCdWlsZCB0aGUgaW50ZXJwcmV0ZXIKLS0kKEJVSUxEUFlUSE9OKToJUHJv Z3JhbXMvcHl0aG9uLm8gJChMSU5LX1BZVEhPTl9ERVBTKQotLQkkKExJTktDQykgJChQWV9DT1JF X0xERkxBR1MpICQoTElOS0ZPUlNIQVJFRCkgLW8gJEAgUHJvZ3JhbXMvcHl0aG9uLm8gJChMSU5L X1BZVEhPTl9PQkpTKSAkKExJQlMpICQoTU9ETElCUykgJChTWVNMSUJTKQotKyQoQlVJTERQWVRI T04pOglQcm9ncmFtcy9weXRob24ubyAkKExJTktfUFlUSE9OX0RFUFMpIHB5dGhvbl9leGUubwot KwkkKExJTktDQykgJChQWV9DT1JFX0xERkxBR1MpICQoTElOS0ZPUlNIQVJFRCkgLW8gJEAgUHJv Z3JhbXMvcHl0aG9uLm8gJChMSU5LX1BZVEhPTl9PQkpTKSAkKExJQlMpICQoTU9ETElCUykgJChT WVNMSUJTKSBweXRob25fZXhlLm8KLSAKLSBwbGF0Zm9ybTogJChQWVRIT05fRk9SX0JVSUxEX0RF UFMpIHB5YnVpbGRkaXIudHh0Ci0gCSQoUlVOU0hBUkVEKSAkKFBZVEhPTl9GT1JfQlVJTEQpIC1j ICdpbXBvcnQgc3lzIDsgZnJvbSBzeXNjb25maWcgaW1wb3J0IGdldF9wbGF0Zm9ybSA7IHByaW50 KCIlcy0lZC4lZCIgJSAoZ2V0X3BsYXRmb3JtKCksICpzeXMudmVyc2lvbl9pbmZvWzoyXSkpJyA+ cGxhdGZvcm0KLUBAIC04MTMsMTAgKzgzNCwxMCBAQCAkKFBZVEhPTkZSQU1FV09SS0RJUikvVmVy c2lvbnMvJChWRVJTSU9OCi0gCi0gIyBUaGlzIHJ1bGUgYnVpbGRzIHRoZSBDeWd3aW4gUHl0aG9u IERMTCBhbmQgaW1wb3J0IGxpYnJhcnkgaWYgY29uZmlndXJlZAotICMgZm9yIGEgc2hhcmVkIGNv cmUgbGlicmFyeTsgb3RoZXJ3aXNlLCB0aGlzIHJ1bGUgaXMgYSBub29wLgotLSQoRExMTElCUkFS WSkgbGlicHl0aG9uJChMRFZFUlNJT04pLmRsbC5hOiAkKExJQlJBUllfT0JKUykKLSskKERMTExJ QlJBUlkpIGxpYnB5dGhvbiQoTERWRVJTSU9OKS5kbGwuYTogJChMSUJSQVJZX09CSlMpIHB5dGhv bl9udC5vCi0gCWlmIHRlc3QgLW4gIiQoRExMTElCUkFSWSkiOyB0aGVuIFwKLSAJCSQoTERTSEFS RUQpIC1XbCwtLW91dC1pbXBsaWI9JEAgLW8gJChETExMSUJSQVJZKSAkXiBcCi0tCQkJJChMSUJT KSAkKE1PRExJQlMpICQoU1lTTElCUyk7IFwKLSsJCQkkKExJQlMpICQoTU9ETElCUykgJChTWVNM SUJTKSBweXRob25fbnQubzsgXAotIAllbHNlIHRydWU7IFwKLSAJZmkKLSAKLUBAIC0xODEwLDYg KzE4MzEsNyBAQCBhbHRiaW5pbnN0YWxsOiAkKEJVSUxEUFlUSE9OKSBARlJBTUVXT1JLCi0gCWRv bmUKLSAJaWYgdGVzdCAiJChQWVRIT05GUkFNRVdPUktESVIpIiA9ICJuby1mcmFtZXdvcmsiIDsg dGhlbiBcCi0gCQkkKElOU1RBTExfUFJPR1JBTSkgJChCVUlMRFBZVEhPTikgJChERVNURElSKSQo QklORElSKS9weXRob24kKExEVkVSU0lPTikkKEVYRSk7IFwKLSsJCSQoSU5TVEFMTF9QUk9HUkFN KSAkKEJVSUxEUFlUSE9OVykgJChERVNURElSKSQoQklORElSKS9weXRob24zdyQoRVhFKTsgXAot IAllbHNlIFwKLSAJCSQoSU5TVEFMTF9QUk9HUkFNKSAkKFNUUklQRkxBRykgTWFjL3B5dGhvbncg JChERVNURElSKSQoQklORElSKS9weXRob24kKExEVkVSU0lPTikkKEVYRSk7IFwKLSAJZmkKLWRp ZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9QQy9weXRob25fZXhlLnJj IFB5dGhvbi0zLjExLjE2LW5ldy9QQy9weXRob25fZXhlLnJjCi0tLS0gUHl0aG9uLTMuMTEuMTYv UEMvcHl0aG9uX2V4ZS5yYwkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysr IFB5dGhvbi0zLjExLjE2LW5ldy9QQy9weXRob25fZXhlLnJjCTIwMjYtMDktMTggMTk6MjM6MDYu NjE5NzI1MTY2ICswMjAwCi1AQCAtMTIsNyArMTIsNyBAQAotIC8vIGN1cnJlbnQgdmVyc2lvbnMg b2YgV2luZG93cy4KLSAxIFJUX01BTklGRVNUICJweXRob24ubWFuaWZlc3QiCi0gCi0tMSBJQ09O IERJU0NBUkRBQkxFICJpY29uc1xweXRob24uaWNvIiAKLSsxIElDT04gRElTQ0FSREFCTEUgImlj b25zL3B5dGhvbi5pY28iCi0gCi0gCi0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLWRpZmYgLXJ1cE4g LS1uby1kZXJlZmVyZW5jZSBQeXRob24tMy4xMS4xNi9QQy9weXRob25fbnQucmMgUHl0aG9uLTMu MTEuMTYtbmV3L1BDL3B5dGhvbl9udC5yYwotLS0tIFB5dGhvbi0zLjExLjE2L1BDL3B5dGhvbl9u dC5yYwkyMDI2LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjEx LjE2LW5ldy9QQy9weXRob25fbnQucmMJMjAyNi0wOS0xOCAxOToyMzowNi42MjAyOTM3MzQgKzAy MDAKLUBAIC0zOSw3ICszOSw3IEBAIEJFR0lOCi0gICAgICAgICAgICAgVkFMVUUgIkZpbGVWZXJz aW9uIiwgUFlUSE9OX1ZFUlNJT04KLSAgICAgICAgICAgICBWQUxVRSAiSW50ZXJuYWxOYW1lIiwg IlB5dGhvbiBETExcMCIKLSAgICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCBQWVRI T05fQ09QWVJJR0hUICJcMCIKLS0gICAgICAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIs IE9SSUdJTkFMX0ZJTEVOQU1FICJcMCIKLSsgICAgICAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxl bmFtZSIsIFBZVEhPTl9ETExfTkFNRSAiXDAiCi0gICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3RO YW1lIiwgIlB5dGhvblwwIgotICAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0VmVyc2lvbiIsIFBZ VEhPTl9WRVJTSU9OCi0gICAgICAgICBFTkQKLWRpZmYgLXJ1cE4gLS1uby1kZXJlZmVyZW5jZSBQ eXRob24tMy4xMS4xNi9QQy9weXRob25fdmVyX3JjLmggUHl0aG9uLTMuMTEuMTYtbmV3L1BDL3B5 dGhvbl92ZXJfcmMuaAotLS0tIFB5dGhvbi0zLjExLjE2L1BDL3B5dGhvbl92ZXJfcmMuaAkyMDI2 LTA4LTEzIDAxOjAzOjE5LjAwMDAwMDAwMCArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9Q Qy9weXRob25fdmVyX3JjLmgJMjAyNi0wOS0xOCAxOToyMzowNi42MjA4MjQ4MzYgKzAyMDAKLUBA IC0zLDYgKzMsNyBAQAotIC8vCi0gI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikKLSAjaW5jbHVkZSAi d2ludmVyLmgiCi0rI2luY2x1ZGUgInB5dGhvbm50X3JjLmgiCi0gCi0gI2RlZmluZSBQWVRIT05f Q09NUEFOWSAgICJQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiIKLSAjZGVmaW5lIFBZVEhPTl9D T1BZUklHSFQgIkNvcHlyaWdodCBceEE5IDIwMDEtMjAyMyBQeXRob24gU29mdHdhcmUgRm91bmRh dGlvbi4gQ29weXJpZ2h0IFx4QTkgMjAwMCBCZU9wZW4uY29tLiBDb3B5cmlnaHQgXHhBOSAxOTk1 LTIwMDEgQ05SSS4gQ29weXJpZ2h0IFx4QTkgMTk5MS0xOTk1IFNNQy4iCi1kaWZmIC1ydXBOIC0t bm8tZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvUEMvcHl0aG9ud19leGUucmMgUHl0aG9uLTMu MTEuMTYtbmV3L1BDL3B5dGhvbndfZXhlLnJjCi0tLS0gUHl0aG9uLTMuMTEuMTYvUEMvcHl0aG9u d19leGUucmMJMjAyNi0wOC0xMyAwMTowMzoxOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBQeXRob24t My4xMS4xNi1uZXcvUEMvcHl0aG9ud19leGUucmMJMjAyNi0wOS0xOCAxOToyMzowNi42MjEzNTA4 NzMgKzAyMDAKLUBAIC0xMiw3ICsxMiw3IEBACi0gLy8gY3VycmVudCB2ZXJzaW9ucyBvZiBXaW5k b3dzLgotIDEgUlRfTUFOSUZFU1QgInB5dGhvbi5tYW5pZmVzdCIKLSAKLS0xIElDT04gRElTQ0FS REFCTEUgImljb25zXHB5dGhvbncuaWNvIiAKLSsxIElDT04gRElTQ0FSREFCTEUgImljb25zL3B5 dGhvbncuaWNvIgotIAotIAotIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi1kaWZmIC1ydXBOIC0tbm8t ZGVyZWZlcmVuY2UgUHl0aG9uLTMuMTEuMTYvUHJvZ3JhbXMvcHl0aG9uLmMgUHl0aG9uLTMuMTEu MTYtbmV3L1Byb2dyYW1zL3B5dGhvbi5jCi0tLS0gUHl0aG9uLTMuMTEuMTYvUHJvZ3JhbXMvcHl0 aG9uLmMJMjAyNi0wOC0xMyAwMTowMzoxOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBQeXRob24tMy4x MS4xNi1uZXcvUHJvZ3JhbXMvcHl0aG9uLmMJMjAyNi0wOS0xOCAxOToyMzowNi42MjE5NDcxOTEg KzAyMDAKLUBAIC04LDEwICs4LDkgQEAgd21haW4oaW50IGFyZ2MsIHdjaGFyX3QgKiphcmd2KQot IHsKLSAgICAgcmV0dXJuIFB5X01haW4oYXJnYywgYXJndik7Ci0gfQotLSNlbHNlCi0rI2VuZGlm Ci0gaW50Ci0gbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi0gewotICAgICByZXR1cm4gUHlf Qnl0ZXNNYWluKGFyZ2MsIGFyZ3YpOwotIH0KLS0jZW5kaWYKCmRpZmYgLS1naXQgYS9taW5ndy1w eXRob24zX3NldGVudi5wYXRjaCBiL21pbmd3LXB5dGhvbjNfc2V0ZW52LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjhjMGNiLi4wMDAwMDAwCi0tLSBhL21pbmd3LXB5dGhv bjNfc2V0ZW52LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotZGlmZiAtcnVw TiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L1B5dGhvbi9weWxpZmVjeWNsZS5jIFB5 dGhvbi0zLjExLjE2LW5ldy9QeXRob24vcHlsaWZlY3ljbGUuYwotLS0tIFB5dGhvbi0zLjExLjE2 L1B5dGhvbi9weWxpZmVjeWNsZS5jCTIwMjYtMDgtMTMgMDE6MDM6MTkuMDAwMDAwMDAwICswMjAw Ci0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L1B5dGhvbi9weWxpZmVjeWNsZS5jCTIwMjYtMDktMTgg MTk6MjM6MDYuMDM2ODUxNjkwICswMjAwCi1AQCAtNjEsNiArNjEsMjcgQEAgZXh0ZXJuIHZvaWQg X1B5SU9fRmluaSh2b2lkKTsKLSAKLSAjZGVmaW5lIFBVVFMoZmQsIHN0cikgX1B5X3dyaXRlX25v cmFpc2UoZmQsIHN0ciwgKGludClzdHJsZW4oc3RyKSkKLSAKLSsjaWYgZGVmaW5lZChfX01JTkdX MzJfXykgJiYgZGVmaW5lZChQWV9DT0VSQ0VfQ19MT0NBTEUpCi0rI2luY2x1ZGUgPHdpbmRvd3Mu aD4KLSsKLStzdGF0aWMgaW50Ci0rc2V0ZW52IChjb25zdCBjaGFyICp2YXIsIGNvbnN0IGNoYXIg KnZhbCwgaW50IG92cikKLSt7Ci0rICBCT09MIGI7Ci0rICBjaGFyIGNbMl07Ci0rICBpZiAoIW92 cikKLSsgIHsKLSsgICAgRFdPUkQgZDsKLSsgICAgZCA9IEdldEVudmlyb25tZW50VmFyaWFibGVB ICh2YXIsIGMsIDIpOwotKyAgICBpZiAoMCAhPSBkICYmIEdldExhc3RFcnJvciAoKSAhPSBFUlJP Ul9FTlZWQVJfTk9UX0ZPVU5EKQotKyAgICAgIHJldHVybiAxOwotKyAgfQotKyAgYiA9IFNldEVu dmlyb25tZW50VmFyaWFibGVBICh2YXIsIHZhbCk7Ci0rICBpZiAoYikKLSsgICAgcmV0dXJuIDA7 Ci0rICByZXR1cm4gMTsKLSt9Ci0rI2VuZGlmCi0gCi0gI2lmZGVmIF9fY3BsdXNwbHVzCi0gZXh0 ZXJuICJDIiB7CgpkaWZmIC0tZ2l0IGEvbWluZ3ctcHl0aG9uM193aW4tbW9kdWxlcy5wYXRjaCBi L21pbmd3LXB5dGhvbjNfd2luLW1vZHVsZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDdiMjg0OGQuLjAwMDAwMDAKLS0tIGEvbWluZ3ctcHl0aG9uM193aW4tbW9kdWxlcy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLWRpZmYgLXJ1cE4gLS1uby1kZXJl ZmVyZW5jZSBQeXRob24tMy4xMS4xNi9Nb2R1bGVzL1NldHVwIFB5dGhvbi0zLjExLjE2LW5ldy9N b2R1bGVzL1NldHVwCi0tLS0gUHl0aG9uLTMuMTEuMTYvTW9kdWxlcy9TZXR1cAkyMDI2LTA5LTE4 IDE5OjIzOjA4LjIwMjgzMzgzNiArMDIwMAotKysrIFB5dGhvbi0zLjExLjE2LW5ldy9Nb2R1bGVz L1NldHVwCTIwMjYtMDktMTggMTk6MjM6MDguNDYwMTEzNzU1ICswMjAwCi1AQCAtMjcwLDYgKzI3 MCwxMiBAQCBtbWFwIG1tYXBtb2R1bGUuYwotICMgbWFjT1Mgc3BlY2lmaWMgbW9kdWxlLCBuZWVk cyBTeXN0ZW1Db25maWd1cmF0aW9uIGFuZCBDb3JlRm91bmRhdGlvbiBmcmFtZXdvcmsKLSAjIF9z Y3Byb3h5IF9zY3Byb3h5LmMKLSAKLSsjIFdpbmRvd3Mgc3BlY2lmaWMgbW9kdWxlcwotK21zdmNy dCAuLi9QQy9tc3ZjcnRtb2R1bGUuYwotK193aW5hcGkgX3dpbmFwaS5jCi0rd2luc291bmQgLi4v UEMvd2luc291bmQuYyAtbHdpbm1tCi0rX292ZXJsYXBwZWQgb3ZlcmxhcHBlZC5jCi0rCi0gIyBF eGFtcGxlcwotIAotICN4eCB4eG1vZHVsZS5jCi1kaWZmIC1ydXBOIC0tbm8tZGVyZWZlcmVuY2Ug UHl0aG9uLTMuMTEuMTYvTW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4gUHl0aG9uLTMuMTEuMTYt bmV3L01vZHVsZXMvU2V0dXAuYm9vdHN0cmFwLmluCi0tLS0gUHl0aG9uLTMuMTEuMTYvTW9kdWxl cy9TZXR1cC5ib290c3RyYXAuaW4JMjAyNi0wOC0xMyAwMTowMzoxOS4wMDAwMDAwMDAgKzAyMDAK LSsrKyBQeXRob24tMy4xMS4xNi1uZXcvTW9kdWxlcy9TZXR1cC5ib290c3RyYXAuaW4JMjAyNi0w OS0xOCAxOToyMzowOC40NjA1NjkzNzYgKzAyMDAKLUBAIC04LDE1ICs4LDE1IEBACi0gIyBtb2R1 bGUgQyBBUElzIGFyZSB1c2VkIGluIGNvcmUKLSBhdGV4aXQgYXRleGl0bW9kdWxlLmMKLSBmYXVs dGhhbmRsZXIgZmF1bHRoYW5kbGVyLmMKLS1wb3NpeCBwb3NpeG1vZHVsZS5jCi0tX3NpZ25hbCBz aWduYWxtb2R1bGUuYwotK250IHBvc2l4bW9kdWxlLmMKLStfc2lnbmFsIHNpZ25hbG1vZHVsZS5j IC1sd3MyXzMyCi0gX3RyYWNlbWFsbG9jIF90cmFjZW1hbGxvYy5jCi0gCi0gIyBtb2R1bGVzIHVz ZWQgYnkgaW1wb3J0bGliLCBkZWVwZnJlZXplLCBmcmVlemUsIHJ1bnB5LCBhbmQgc3lzY29uZmln Ci0gX2NvZGVjcyBfY29kZWNzbW9kdWxlLmMKLSBfY29sbGVjdGlvbnMgX2NvbGxlY3Rpb25zbW9k dWxlLmMKLSBlcnJubyBlcnJub21vZHVsZS5jCi0tX2lvIF9pby9faW9tb2R1bGUuYyBfaW8vaW9i YXNlLmMgX2lvL2ZpbGVpby5jIF9pby9ieXRlc2lvLmMgX2lvL2J1ZmZlcmVkaW8uYyBfaW8vdGV4 dGlvLmMgX2lvL3N0cmluZ2lvLmMKLStfaW8gX2lvL19pb21vZHVsZS5jIF9pby9pb2Jhc2UuYyBf aW8vZmlsZWlvLmMgX2lvL2J5dGVzaW8uYyBfaW8vYnVmZmVyZWRpby5jIF9pby90ZXh0aW8uYyBf aW8vc3RyaW5naW8uYyBfaW8vd2luY29uc29sZWlvLmMKLSBpdGVydG9vbHMgaXRlcnRvb2xzbW9k dWxlLmMKLSBfc3JlIF9zcmUvc3JlLmMKLSBfdGhyZWFkIF90aHJlYWRtb2R1bGUuYwotQEAgLTMz LDMgKzMzLDUgQEAgX3N5bXRhYmxlIHN5bXRhYmxlbW9kdWxlLmMKLSAKLSAjIGZvciBzeXN0ZW1z IHdpdGhvdXQgJEhPTUUgZW52LCB1c2VkIGJ5IHNpdGUuX2dldHVzZXJiYXNlKCkKLSBATU9EVUxF X1BXRF9UUlVFQHB3ZCBwd2Rtb2R1bGUuYwotKwotK3dpbnJlZyAuLi9QQy93aW5yZWcuYwotZGlm ZiAtcnVwTiAtLW5vLWRlcmVmZXJlbmNlIFB5dGhvbi0zLjExLjE2L3NldHVwLnB5IFB5dGhvbi0z LjExLjE2LW5ldy9zZXR1cC5weQotLS0tIFB5dGhvbi0zLjExLjE2L3NldHVwLnB5CTIwMjYtMDkt MTggMTk6MjM6MDguMjAzMTE5NzE0ICswMjAwCi0rKysgUHl0aG9uLTMuMTEuMTYtbmV3L3NldHVw LnB5CTIwMjYtMDktMTggMTk6MjM6MDguNDYwOTE4NDAyICswMjAwCi1AQCAtMTM4Miw2ICsxMzgy LDE1IEBAIGNsYXNzIFB5QnVpbGRFeHQoYnVpbGRfZXh0KToKLSAgICAgICAgIHNlbGYuYWRkZXh0 KEV4dGVuc2lvbigneHhsaW1pdGVkJywgWyd4eGxpbWl0ZWQuYyddKSkKLSAgICAgICAgIHNlbGYu YWRkZXh0KEV4dGVuc2lvbigneHhsaW1pdGVkXzM1JywgWyd4eGxpbWl0ZWRfMzUuYyddKSkKLSAK LSsgICAgICAgICMgTW9kdWxlcyB3aXRoIHNvbWUgV2luZG93cyBkZXBlbmRlbmNpZXM6Ci0rICAg ICAgICBpZiBIT1NUX1BMQVRGT1JNLnN0YXJ0c3dpdGgoKCdtaW5ndycsICd3aW4nKSk6Ci0rICAg ICAgICAgICAgc3JjZGlyID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdzcmNkaXInKQotKyAg ICAgICAgICAgIHBjX3NyY2RpciA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oc3JjZGly LCAnUEMnKSkKLSsKLSsgICAgICAgICAgICBzZWxmLmFkZChFeHRlbnNpb24oJ19tc2knLCBbb3Mu cGF0aC5qb2luKHBjX3NyY2RpciwgcCkKLSsgICAgICAgICAgICAgICAgZm9yIHAgaW4gWydfbXNp LmMnXV0sCi0rICAgICAgICAgICAgICAgIGxpYnJhcmllcz1bJ21zaScsJ2NhYmluZXQnLCdycGNy dDQnXSkgKSAjIFRvIGxpbmsgd2l0aCBsaWIobXNpfGNhYmluZXR8cnBjcnQ0KS5hCi0rCi0gICAg IGRlZiBkZXRlY3RfdGtpbnRlcihzZWxmKToKLSAgICAgICAgIHRraW50ZXJfbGlicyA9IFsndGNs JywgJ3RrJ10KLSAgICAgICAgIHNlbGYuYWRkZXh0KEV4dGVuc2lvbignX3RraW50ZXInLCBbJ190 a2ludGVyLmMnLCAndGthcHBpbml0LmMnXSwgbGlicmFyaWVzPXRraW50ZXJfbGlicykpCgpkaWZm IC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZDI3MGE1MC4uYjllY2FkZCAxMDA2NDQK LS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIgKFB5dGhvbi0z LjExLjE2LnRhci54eikgPSBmNGUxNjhkMzU1OTZjMmRmMDgwNjYzZDhlOGIzNDcyZjAzYmFjZTk4 N2Q0NmI0OWI4NDEwZjI0MjViYTE5MzIxNWI5ODgwYzdkMDNkNDY1M2VjMzFjODNiNzIyMDlkOTU4 NjZmYzFjYjZkNjY2Nzk5MTQ1MDc1YjA5MmY2NGE0OAorU0hBNTEyIChQeXRob24tMy4xNC43LnRh ci54eikgPSAzZDRlMmUyZjk4M2IzMjBkZWM0NzAwNWM0MDhkNzE3OGQzNjU2YTZkZTBjNDQzMGNl MjE1MTQ3OTcxNzRiOTcyZjQ2MTIwMDg5OGIyNWQzZGZhYzJhNDU1MDE5ZWY4N2U0NWQwZmIyYmI2 ZWMyY2E4ODcxMjRkMTAwMzdhMmEwNwo=