From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Moved language setting on IBusEmojier to ibus-setup. Date: Sun, 31 May 2026 02:06:31 GMT Message-ID: <178019319111.1.8952480201052495792.rpms-ibus-424038a8b92f@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 424038a8b92f724fba6e28b4f204f7b0ae00bef6 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiA0MjQwMzhhOGI5MmY3MjRmYmE2ZTI4YjRmMjA0ZjdiMGFlMDBiZWY2CiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDE3LTAzLTI3VDIwOjM2OjMyKzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsxOTA3Ly0xIGluIDIgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczov L3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy80MjQwMzhhOGI5MmY3MjRmYmE2ZTI4 YjRmMjA0ZjdiMGFlMDBiZWY2P2JyYW5jaD1hdXRvdG9vbAoKICAgICAgICAgICAgTG9nOgogICAg ICAgICAgICBNb3ZlZCBsYW5ndWFnZSBzZXR0aW5nIG9uIElCdXNFbW9qaWVyIHRvIGlidXMtc2V0 dXAuCgpFbmFibGVkIHN0cmNhc2VjbXAgdG8gbWF0Y2ggZW1vamkgYW5ub3RhdGlvbnMuCkFkZGVk IGEgYnVpbGQgZXJyb3IgbWVzc2FnZSBpZiBlbW9qaSB4bWwgZmlsZXMgYXJlIG5vdCBmb3VuZC4K Ci0tLQpkaWZmIC0tZ2l0IGEvaWJ1cy1IRUFELnBhdGNoIGIvaWJ1cy1IRUFELnBhdGNoCmluZGV4 IDU2YTc2MGMuLjk1ZGI3YzMgMTAwNjQ0Ci0tLSBhL2lidXMtSEVBRC5wYXRjaAorKysgYi9pYnVz LUhFQUQucGF0Y2gKQEAgLTE3NjgsMyArMTc2OCwxOTAzIEBAIGluZGV4IDVlMTI2ZTkuLjdkYTk2 YzcgMTAwNjQ0CiAtLSAKIDIuOS4zCiAKK0Zyb20gNTBlMzQ0YWZhZmZjMjllNjI2ZGJjMjc3NDdh MWFlZWU2Y2NjYWZkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KK0RhdGU6IEZyaSwgMTcgTWFyIDIwMTcgMTI6MDg6 NTAgKzA5MDAKK1N1YmplY3Q6IFtQQVRDSF0gdWkvZ3RrMzogRW5hYmxlIHN0cmNhc2VjbXAgdG8g bWF0Y2ggZW1vamkgYW5ub3RhdGlvbgorCitVc2VycyBjYW4gdHlwZSBjYXBpdGFsIGFubm90YXRp b25zLgorQWxzbyBzaG93cyBlbW9qaSBhbm5vdGF0aW9ucyBpbiB0aGUgc3RhdHVzIGJhciBpZiB0 aGUKK3R5cGluZyB1bmljb2RlIHBvaW50IG1hdGNoZXMgYSBlbW9qaSBjaGFyYWN0ZXIuCisKK1Jl dmlldyBVUkw6IGh0dHBzOi8vY29kZXJldmlldy5hcHBzcG90LmNvbS8zMTQ2NDAwNDMKKy0tLQor IHVpL2d0azMvZW1vamllci52YWxhIHwgOTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA2NSBpbnNlcnRpb25zKCsp LCAzMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3VpL2d0azMvZW1vamllci52YWxhIGIv dWkvZ3RrMy9lbW9qaWVyLnZhbGEKK2luZGV4IDdkYTk2YzcuLmIxZGM1MGMgMTAwNjQ0CistLS0g YS91aS9ndGszL2Vtb2ppZXIudmFsYQorKysrIGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKK0BAIC00 MzIsMTAgKzQzMiw0NSBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAg ICAgfQorICAgICB9CisgCisrICAgIHByaXZhdGUgc3RyaW5nIHV0ZjhfZG93bihzdHJpbmcgc3Ry KSB7CisrICAgICAgICBHTGliLlN0cmluZ0J1aWxkZXIgYnVmZiA9IG5ldyBHTGliLlN0cmluZ0J1 aWxkZXIoKTsKKysgICAgICAgIGludCBsZW5ndGggPSBzdHIuY2hhcl9jb3VudCgpOworKyAgICAg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworKyAgICAgICAgICAgIGJ1ZmYu YXBwZW5kX3VuaWNoYXIoc3RyLmdldF9jaGFyKDApLnRvbG93ZXIoKSk7CisrICAgICAgICAgICAg c3RyID0gc3RyLm5leHRfY2hhcigpOworKyAgICAgICAgfQorKyAgICAgICAgcmV0dXJuIGJ1ZmYu c3RyOworKyAgICB9CisrCisrICAgIHByaXZhdGUgc3RyaW5nIHV0ZjhfdGl0bGUoc3RyaW5nIHN0 cikgeworKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWZmID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsK KysgICAgICAgIGludCBsZW5ndGggPSBzdHIuY2hhcl9jb3VudCgpOworKyAgICAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworKyAgICAgICAgICAgIHVuaWNoYXIgY2ggPSBz dHIuZ2V0X2NoYXIoMCk7CisrICAgICAgICAgICAgaWYgKGkgPT0gMCkKKysgICAgICAgICAgICAg ICAgYnVmZi5hcHBlbmRfdW5pY2hhcihjaC50b3VwcGVyKCkpOworKyAgICAgICAgICAgIGVsc2UK KysgICAgICAgICAgICAgICAgYnVmZi5hcHBlbmRfdW5pY2hhcihjaCk7CisrICAgICAgICAgICAg c3RyID0gc3RyLm5leHRfY2hhcigpOworKyAgICAgICAgfQorKyAgICAgICAgcmV0dXJuIGJ1ZmYu c3RyOworKyAgICB9CisrCisgICAgIHByaXZhdGUgdm9pZCB1cGRhdGVfZW1vamlfdG9fZGF0YV9k aWN0KElCdXMuRW1vamlEYXRhIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cmluZyAgICAgICAgIGxhbmcpIHsKKyAgICAgICAgIHN0cmluZyBlbW9q aSA9IGRhdGEuZ2V0X2Vtb2ppKCk7CisgICAgICAgICBpZiAobGFuZyA9PSAiZW4iKSB7CisrICAg ICAgICAgICAgc3RyaW5nIGRlc2NyaXB0aW9uID0gdXRmOF9kb3duKGRhdGEuZ2V0X2Rlc2NyaXB0 aW9uKCkpOworKyAgICAgICAgICAgIHVub3duZWQgR0xpYi5TTGlzdDxzdHJpbmc+IGFubm90YXRp b25zID0gZGF0YS5nZXRfYW5ub3RhdGlvbnMoKTsKKysgICAgICAgICAgICB2YXIgd29yZHMgPSBk ZXNjcmlwdGlvbi5zcGxpdCgiICIpOworKyAgICAgICAgICAgIC8vIElmIHRoZSBkZXNjcmlwdGlv biBoYXMgbGVzcyB0aGFuIDMgd29yZHMsIGFkZCBpdCB0byBhbm5vdGF0aW9ucworKyAgICAgICAg ICAgIGlmICh3b3Jkcy5sZW5ndGggPCAzICYmCisrICAgICAgICAgICAgICAgIGFubm90YXRpb25z LmZpbmRfY3VzdG9tKAorKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLAorKyAg ICAgICAgICAgICAgICAgICAgICAgIChHTGliLkNvbXBhcmVGdW5jPHN0cmluZz4pR0xpYi5zdHJj bXApID09IG51bGwpIHsKKysgICAgICAgICAgICAgICAgYW5ub3RhdGlvbnMuYXBwZW5kKGRlc2Ny aXB0aW9uKTsKKysgICAgICAgICAgICAgICAgZGF0YS5zZXRfYW5ub3RhdGlvbnMoYW5ub3RhdGlv bnMuY29weV9kZWVwKEdMaWIuc3RyZHVwKSk7CisrICAgICAgICAgICAgfQorICAgICAgICAgICAg IG1fZW1vamlfdG9fZGF0YV9kaWN0LnJlcGxhY2UoZW1vamksIGRhdGEpOworICAgICAgICAgfSBl bHNlIHsKKyAgICAgICAgICAgICB1bm93bmVkIElCdXMuRW1vamlEYXRhPyBlbl9kYXRhID0KK0BA IC00NDYsMTYgKzQ4MSwyNCBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBzdHJpbmcgdHJhbnNfZGVzY3JpcHRpb24gPSBkYXRh LmdldF9kZXNjcmlwdGlvbigpOworICAgICAgICAgICAgIGVuX2RhdGEuc2V0X2Rlc2NyaXB0aW9u KHRyYW5zX2Rlc2NyaXB0aW9uKTsKKysgICAgICAgICAgICB0cmFuc19kZXNjcmlwdGlvbiA9IHV0 ZjhfZG93bih0cmFuc19kZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgdW5vd25lZCBHTGliLlNM aXN0PHN0cmluZz4gYW5ub3RhdGlvbnMgPSBkYXRhLmdldF9hbm5vdGF0aW9ucygpOworICAgICAg ICAgICAgIHZhciB3b3JkcyA9IHRyYW5zX2Rlc2NyaXB0aW9uLnNwbGl0KCIgIik7CisgICAgICAg ICAgICAgLy8gSWYgdGhlIGRlc2NyaXB0aW9uIGhhcyBsZXNzIHRoYW4gMyB3b3JkcywgYWRkIGl0 IHRvIGFubm90YXRpb25zCistICAgICAgICAgICAgaWYgKHdvcmRzLmxlbmd0aCA8IDMpCisrICAg ICAgICAgICAgaWYgKHdvcmRzLmxlbmd0aCA8IDMgJiYKKysgICAgICAgICAgICAgICAgYW5ub3Rh dGlvbnMuZmluZF9jdXN0b20oCisrICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNfZGVzY3Jp cHRpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgKEdMaWIuQ29tcGFyZUZ1bmM8c3RyaW5n PilHTGliLnN0cmNtcCkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICBhbm5vdGF0aW9ucy5h cHBlbmQodHJhbnNfZGVzY3JpcHRpb24pOworKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB1 bm93bmVkIEdMaWIuU0xpc3Q8c3RyaW5nPiBlbl9hbm5vdGF0aW9ucworICAgICAgICAgICAgICAg ICA9IGVuX2RhdGEuZ2V0X2Fubm90YXRpb25zKCk7CisgICAgICAgICAgICAgZm9yZWFjaCAoc3Ry aW5nIGFubm90YXRpb24gaW4gZW5fYW5ub3RhdGlvbnMpIHsKKy0gICAgICAgICAgICAgICAgaWYg KGFubm90YXRpb25zLmZpbmRfY3VzdG9tKGFubm90YXRpb24sIEdMaWIuc3RyY21wKSA9PSBudWxs KQorKyAgICAgICAgICAgICAgICBpZiAoYW5ub3RhdGlvbnMuZmluZF9jdXN0b20oCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFubm90YXRpb24sCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChHTGliLkNvbXBhcmVGdW5jPHN0cmluZz4pR0xpYi5zdHJjbXApID09IG51bGwpIHsK KyAgICAgICAgICAgICAgICAgICAgIGFubm90YXRpb25zLmFwcGVuZChhbm5vdGF0aW9uLmR1cCgp KTsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbl9k YXRhLnNldF9hbm5vdGF0aW9ucyhhbm5vdGF0aW9ucy5jb3B5X2RlZXAoR0xpYi5zdHJkdXApKTsK KyAgICAgICAgIH0KK0BAIC01MjYsMTggKzU2OSw2IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3Rr LldpbmRvdyB7CisgICAgICAgICBzaG93X2NhdGVnb3J5X2xpc3QoKTsKKyAgICAgfQorIAorLSAg ICBwcml2YXRlIHN0cmluZyBnZXRfdGl0bGVfc3RyaW5nKHN0cmluZyBvcmlnKSB7CistICAgICAg ICBTdHJpbmdCdWlsZGVyIGJ1ZmYgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworLSAgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBvcmlnLmNoYXJfY291bnQoKTsgaSsrKSB7CistICAgICAgICAgICAg dW5pY2hhciBjaCA9IG9yaWcuZ2V0X2NoYXIoaSk7CistICAgICAgICAgICAgaWYgKGkgPT0gMCkK Ky0gICAgICAgICAgICAgICAgYnVmZi5hcHBlbmRfdW5pY2hhcihjaC50b3VwcGVyKCkpOworLSAg ICAgICAgICAgIGVsc2UKKy0gICAgICAgICAgICAgICAgYnVmZi5hcHBlbmRfdW5pY2hhcihjaCk7 CistICAgICAgICB9CistICAgICAgICByZXR1cm4gYnVmZi5zdHI7CistICAgIH0KKy0KKyAgICAg cHJpdmF0ZSB2b2lkIHNob3dfY2F0ZWdvcnlfbGlzdCgpIHsKKyAgICAgICAgIHJlbW92ZV9hbGxf Y2hpbGRyZW4oKTsKKyAgICAgICAgIG1fc2Nyb2xsZWRfd2luZG93ID0gbmV3IEVTY3JvbGxlZFdp bmRvdygpOworQEAgLTYwNiw3ICs2MzcsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5k b3cgeworICAgICAgICAgICAgICAgICBFQm94Um93IHJvdyA9IG5ldyBFQm94Um93KGNhdGVnb3J5 KTsKKyAgICAgICAgICAgICAgICAgc3RyaW5nIGxvY2FsZV9jYXRlZ29yeSA9IF8oY2F0ZWdvcnkp OworICAgICAgICAgICAgICAgICBFUGFkZGVkTGFiZWwgd2lkZ2V0ID0KKy0gICAgICAgICAgICAg ICAgICAgICAgICBuZXcgRVBhZGRlZExhYmVsKGdldF90aXRsZV9zdHJpbmcobG9jYWxlX2NhdGVn b3J5KSwKKysgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRVBhZGRlZExhYmVsKHV0ZjhfdGl0 bGUobG9jYWxlX2NhdGVnb3J5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEd0ay5BbGlnbi5DRU5URVIpOworICAgICAgICAgICAgICAgICByb3cuYWRkKHdpZGdl dCk7CisgICAgICAgICAgICAgICAgIG1fbGlzdF9ib3guYWRkKHJvdyk7CitAQCAtNjU4LDcgKzY4 OSw3IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICAgICAgICAg IElCdXMuVGV4dCB0ZXh0ID0gbmV3IElCdXMuVGV4dC5mcm9tX3N0cmluZyhlbW9qaSk7CisgICAg ICAgICAgICAgICAgIG1fbG9va3VwX3RhYmxlLmFwcGVuZF9jYW5kaWRhdGUodGV4dCk7CisgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgIG1fYmFja3dhcmQgPSBnZXRfdGl0bGVfc3RyaW5nKHJv dy50ZXh0KTsKKysgICAgICAgICAgICBtX2JhY2t3YXJkID0gdXRmOF90aXRsZShyb3cudGV4dCk7 CisgICAgICAgICB9CisgICAgICAgICBzaG93X2NhbmRpZGF0ZV9wYW5lbCgpOworICAgICB9CitA QCAtNzM0LDYgKzc2NSw3IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAg ICAgICAgICAgbV9iYWNrd2FyZCA9IG51bGw7CisgICAgICAgICAgICAgcmV0dXJuOworICAgICAg ICAgfQorKyAgICAgICAgYW5ub3RhdGlvbiA9IHV0ZjhfZG93bihhbm5vdGF0aW9uKTsKKyAgICAg ICAgIGlmIChhbm5vdGF0aW9uLmxlbmd0aCA+IG1fZW1vamlfbWF4X3NlcV9sZW4pIHsKKyAgICAg ICAgICAgICBoaWRlX2NhbmRpZGF0ZV9wYW5lbCgpOworICAgICAgICAgICAgIHJldHVybjsKK0BA IC04NDEsNiArODczLDggQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAg ICAgICAgICBtX3Zib3guYWRkKGdyaWQpOworICAgICAgICAgICAgIGdyaWQuc2hvd19hbGwoKTsK KyAgICAgICAgICAgICBJQnVzLlRleHQgY2FuZGlkYXRlID0gbV9sb29rdXBfdGFibGUuZ2V0X2Nh bmRpZGF0ZShjdXJzb3IpOworKyAgICAgICAgICAgIHVub3duZWQgSUJ1cy5FbW9qaURhdGE/IGRh dGEgPQorKyAgICAgICAgICAgICAgICAgICAgbV9lbW9qaV90b19kYXRhX2RpY3QubG9va3VwKGNh bmRpZGF0ZS50ZXh0KTsKKyAgICAgICAgICAgICBpZiAoY3Vyc29yID09IDAgJiYgY2FuZGlkYXRl LnRleHQgPT0gbV91bmljb2RlX3BvaW50KSB7CisgICAgICAgICAgICAgICAgIEVQYWRkZWRMYWJl bCB3aWRnZXQgPSBuZXcgRVBhZGRlZExhYmVsKAorICAgICAgICAgICAgICAgICAgICAgICAgIF8o IkRlc2NyaXB0aW9uOiBVbmljb2RlIHBvaW50IFUrJTA0WCIpLnByaW50ZigKK0BAIC04NDgsMjUg Kzg4MiwyNSBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgICAg ICAgICAgICAgICAgIEd0ay5BbGlnbi5TVEFSVCk7CisgICAgICAgICAgICAgICAgIG1fdmJveC5h ZGQod2lkZ2V0KTsKKyAgICAgICAgICAgICAgICAgd2lkZ2V0LnNob3dfYWxsKCk7CistICAgICAg ICAgICAgICAgIHJldHVybjsKKy0gICAgICAgICAgICB9CistICAgICAgICAgICAgdW5vd25lZCBJ QnVzLkVtb2ppRGF0YT8gZGF0YSA9CistICAgICAgICAgICAgICAgICAgICBtX2Vtb2ppX3RvX2Rh dGFfZGljdC5sb29rdXAoY2FuZGlkYXRlLnRleHQpOworLSAgICAgICAgICAgIGlmIChkYXRhID09 IG51bGwpIHsKKy0gICAgICAgICAgICAgICAgLy8gVE9ETzogUHJvdmlkZSBhIGRlc2NyaXB0aW9u IGZvciB0aGUgZmF2b3JpdGUgZW1vamlzLgorKyAgICAgICAgICAgICAgICBpZiAoZGF0YSA9PSBu dWxsKQorKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgICAgIH0gZWxzZSBp ZiAoZGF0YSA9PSBudWxsKSB7CisrICAgICAgICAgICAgICAgIC8vIFRPRE86IFByb3ZpZGUgYSBj dXN0b20gZGVzY3JpcHRpb24gYW5kIGFubm90YXRpb24gZm9yCisrICAgICAgICAgICAgICAgIC8v IHRoZSBmYXZvcml0ZSBlbW9qaXMuCisgICAgICAgICAgICAgICAgIEVQYWRkZWRMYWJlbCB3aWRn ZXQgPSBuZXcgRVBhZGRlZExhYmVsKAorICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRlc2Ny aXB0aW9uOiAlcyIpLnByaW50ZihfKCJOb25lIikpLAorICAgICAgICAgICAgICAgICAgICAgICAg IEd0ay5BbGlnbi5TVEFSVCk7CisgICAgICAgICAgICAgICAgIG1fdmJveC5hZGQod2lkZ2V0KTsK KyAgICAgICAgICAgICAgICAgd2lkZ2V0LnNob3dfYWxsKCk7CisgICAgICAgICAgICAgICAgIHJl dHVybjsKKysgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICB1bm93bmVkIHN0 cmluZyBkZXNjcmlwdGlvbiA9IGRhdGEuZ2V0X2Rlc2NyaXB0aW9uKCk7CisrICAgICAgICAgICAg ICAgIEVQYWRkZWRMYWJlbCB3aWRnZXQgPSBuZXcgRVBhZGRlZExhYmVsKAorKyAgICAgICAgICAg ICAgICAgICAgICAgIF8oIkRlc2NyaXB0aW9uOiAlcyIpLnByaW50ZihkZXNjcmlwdGlvbiksCisr ICAgICAgICAgICAgICAgICAgICAgICAgR3RrLkFsaWduLlNUQVJUKTsKKysgICAgICAgICAgICAg ICAgbV92Ym94LmFkZCh3aWRnZXQpOworKyAgICAgICAgICAgICAgICB3aWRnZXQuc2hvd19hbGwo KTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgdW5vd25lZCBzdHJpbmcgZGVzY3JpcHRp b24gPSBkYXRhLmdldF9kZXNjcmlwdGlvbigpOworLSAgICAgICAgICAgIEVQYWRkZWRMYWJlbCBk ZXNjX3dpZGdldCA9IG5ldyBFUGFkZGVkTGFiZWwoCistICAgICAgICAgICAgICAgICAgICBfKCJE ZXNjcmlwdGlvbjogJXMiKS5wcmludGYoZGVzY3JpcHRpb24pLAorLSAgICAgICAgICAgICAgICAg ICAgR3RrLkFsaWduLlNUQVJUKTsKKy0gICAgICAgICAgICBtX3Zib3guYWRkKGRlc2Nfd2lkZ2V0 KTsKKy0gICAgICAgICAgICBkZXNjX3dpZGdldC5zaG93X2FsbCgpOworICAgICAgICAgICAgIHVu b3duZWQgR0xpYi5TTGlzdDx1bm93bmVkIHN0cmluZz4/IGFubm90YXRpb25zID0KKyAgICAgICAg ICAgICAgICAgICAgIGRhdGEuZ2V0X2Fubm90YXRpb25zKCk7CisgICAgICAgICAgICAgR0xpYi5T dHJpbmdCdWlsZGVyIGJ1ZmYgPSBuZXcgR0xpYi5TdHJpbmdCdWlsZGVyKCk7CitAQCAtMTI0Mywx MCArMTI3Nyw5IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICBj YXNlIEdkay5LZXkuc3BhY2U6CisgICAgICAgICBjYXNlIEdkay5LZXkuS1BfU3BhY2U6CisgICAg ICAgICAgICAgaWYgKChtb2RpZmllcnMgJiBHZGsuTW9kaWZpZXJUeXBlLlNISUZUX01BU0spICE9 IDApIHsKKy0gICAgICAgICAgICAgICAgZW50cnlfZW50ZXJfa2V5dmFsKGtleXZhbCk7CistICAg ICAgICAgICAgICAgIGJyZWFrOworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBpZiAobV9j YW5kaWRhdGVfcGFuZWxfaXNfdmlzaWJsZSkgeworKyAgICAgICAgICAgICAgICBpZiAobV9lbnRy eS5nZXRfdGV4dCgpLmxlbigpID4gMCkKKysgICAgICAgICAgICAgICAgICAgIGVudHJ5X2VudGVy X2tleXZhbChrZXl2YWwpOworKyAgICAgICAgICAgIH0gZWxzZSBpZiAobV9jYW5kaWRhdGVfcGFu ZWxfaXNfdmlzaWJsZSkgeworICAgICAgICAgICAgICAgICBlbnRlcl9ub3RpZnlfZGlzYWJsZV93 aXRoX3RpbWVyKCk7CisgICAgICAgICAgICAgICAgIG1fbG9va3VwX3RhYmxlLmN1cnNvcl9kb3du KCk7CisgICAgICAgICAgICAgICAgIHNob3dfY2FuZGlkYXRlX3BhbmVsKCk7CistLSAKKzIuOS4z CisKK0Zyb20gYmQ3ZTBiYTI5N2Y3MmFlMWUyOTg5NzQzZjI0MjZjNDRkZjI5ZjNlYyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWls LmNvbT4KK0RhdGU6IFR1ZSwgMjEgTWFyIDIwMTcgMTI6NTY6MjMgKzA5MDAKK1N1YmplY3Q6IFtQ QVRDSF0gTWFrZSBtb3JlIHJlYWRhYmxlIGVycm9yIG1lc3NhZ2VzIGlmIGVtb2ppIHhtbCBmaWxl cyBhcmUKKyBtaXNzZWQKKworQWxzbyBGaXggQ09ORklHX0NMRUFOX0ZJTEVTIGZvciBhdXRvcmVj b25mCisKK1I9U2hhd24uUC5IdWFuZ0BnbWFpbC5jb20KKworUmV2aWV3IFVSTDogaHR0cHM6Ly9j b2RlcmV2aWV3LmFwcHNwb3QuY29tLzMyMDc1MDA0MworLS0tCisgY29uZmlndXJlLmFjICAgICAg ICB8IDI2ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tCisgc3JjL01ha2VmaWxlLmFtICAgICB8 ICA1ICsrKystCisgc3JjL2Vtb2ppLXBhcnNlci5jICB8ICAyICstCisgdWkvZ3RrMy9NYWtlZmls ZS5hbSB8ICA0ICsrKy0KKyA0IGZpbGVzIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDEyIGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCitp bmRleCAzNjk0ODVjLi4wYTVmMmQ1IDEwMDY0NAorLS0tIGEvY29uZmlndXJlLmFjCisrKysgYi9j b25maWd1cmUuYWMKK0BAIC02MTEsMTcgKzYxMSwxMSBAQCBBQ19BUkdfRU5BQkxFKGVtb2ppLWRp Y3QsCisgICAgIFtlbmFibGVfZW1vamlfZGljdD15ZXNdCisgKQorIEFNX0NPTkRJVElPTkFMKFtF TkFCTEVfRU1PSklfRElDVF0sIFt0ZXN0IHgiJGVuYWJsZV9lbW9qaV9kaWN0IiA9IHgieWVzIl0p CistaWYgdGVzdCB4IiRlbmFibGVfZW1vamlfZGljdCIgPSB4InllcyI7IHRoZW4KKy0gICAgUEtH X0NIRUNLX01PRFVMRVMoSlNPTl9HTElCMSwgWworLSAgICAgICAganNvbi1nbGliLTEuMAorLSAg ICBdKQorLSAgICBlbmFibGVfZW1vamlfZGljdD0ieWVzIChlbmFibGVkLCB1c2UgLS1kaXNhYmxl LWVtb2ppLWRpY3QgdG8gZGlzYWJsZSkiCistZmkKKyAKKyBBQ19BUkdfV0lUSChlbW9qaS1qc29u LWZpbGUsCisgICAgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtZW1vamktanNvbi1maWxlWz1ESVIv ZW1vamkuanNvbl1dLAorICAgICAgICAgW1NldCBlbW9qaS5qc29uLiAoZGVmYXVsdDogIi91c3Iv bGliL25vZGVfbW9kdWxlcy9lbW9qaW9uZS9lbW9qaS5qc29uIikKKy0gICAgICAgICBZb3UgY2Fu IGdldCBlbW9qaS5qc29uIHdpdGggIm5wbSBpbnN0YWxsIC1nIGVtb2ppb25lIi5dKSwKKysgICAg ICAgIF0pLAorICAgICBFTU9KSV9KU09OX0ZJTEU9JHdpdGhfZW1vamlfanNvbl9maWxlLAorICAg ICBFTU9KSV9KU09OX0ZJTEU9Ii91c3IvbGliL25vZGVfbW9kdWxlcy9lbW9qaW9uZS9lbW9qaS5q c29uIgorICkKK0BAIC02MzAsMTMgKzYyNCwyNyBAQCBBQ19TVUJTVChFTU9KSV9KU09OX0ZJTEUp CisgQUNfQVJHX1dJVEgoZW1vamktYW5ub3RhdGlvbi1kaXIsCisgICAgIEFTX0hFTFBfU1RSSU5H KFstLXdpdGgtZW1vamktYW5ub3RhdGlvbi1kaXJbPURJUl1dLAorICAgICAgICAgW1NldCB0aGUg ZGlyZWN0b3J5IG9mIENMRFIgYW5ub3RhdGlvbiBmaWxlcy4KKy0gICAgICAgICAoZGVmYXVsdDog Ii91c3Ivc2hhcmUvdW5pY29kZS9jbGRyL2NvbW1vbi9hbm5vdGF0aW9ucyIpCistICAgICAgICAg WW91IGNhbiBnZXQgaHR0cHM6Ly9naXRodWIuY29tL2Z1aml3YXJhdC9jbGRyLWVtb2ppLWFubm90 YXRpb25dKSwKKysgICAgICAgICAoZGVmYXVsdDogIi91c3Ivc2hhcmUvdW5pY29kZS9jbGRyL2Nv bW1vbi9hbm5vdGF0aW9ucyIpXSksCisgICAgIEVNT0pJX0FOTk9UQVRJT05fRElSPSR3aXRoX2Vt b2ppX2Fubm90YXRpb25fZGlyLAorICAgICBFTU9KSV9BTk5PVEFUSU9OX0RJUj0iL3Vzci9zaGFy ZS91bmljb2RlL2NsZHIvY29tbW9uL2Fubm90YXRpb25zIgorICkKKyBBQ19TVUJTVChFTU9KSV9B Tk5PVEFUSU9OX0RJUikKKyAKKytpZiB0ZXN0IHgiJGVuYWJsZV9lbW9qaV9kaWN0IiA9IHgieWVz IjsgdGhlbgorKyAgICBpZiB0ZXN0ICEgLWYgJEVNT0pJX0pTT05fRklMRSA7IHRoZW4KKysgICAg ICAgIEFDX01TR19FUlJPUihOb3QgZm91bmQgJEVNT0pJX0pTT05fRklMRS4gWW91IGNhbiBnZXQg ZW1vamkuanNvbiBcCisrd2l0aCAibnBtIGluc3RhbGwgLWcgZW1vamlvbmUiLikKKysgICAgZmkK KysgICAgaWYgdGVzdCAhIC1mICRFTU9KSV9BTk5PVEFUSU9OX0RJUi9lbi54bWwgOyB0aGVuCisr ICAgICAgICBBQ19NU0dfRVJST1IoTm90IGZvdW5kICRFTU9KSV9BTk5PVEFUSU9OX0RJUi9lbi54 bWwuIFlvdSBjYW4gZ2V0IFwKKytodHRwczovL2dpdGh1Yi5jb20vZnVqaXdhcmF0L2NsZHItZW1v amktYW5ub3RhdGlvbikKKysgICAgZmkKKysgICAgUEtHX0NIRUNLX01PRFVMRVMoSlNPTl9HTElC MSwgWworKyAgICAgICAganNvbi1nbGliLTEuMAorKyAgICBdKQorKyAgICBlbmFibGVfZW1vamlf ZGljdD0ieWVzIChlbmFibGVkLCB1c2UgLS1kaXNhYmxlLWVtb2ppLWRpY3QgdG8gZGlzYWJsZSki CisrZmkKKysKKyAjIENoZWNrIGlzby1jb2Rlcy4KKyBQS0dfQ0hFQ0tfTU9EVUxFUyhJU09DT0RF UywgWworICAgICBpc28tY29kZXMKK2RpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMv TWFrZWZpbGUuYW0KK2luZGV4IDBkNDAzZTguLjcwNTNlM2UgMTAwNjQ0CistLS0gYS9zcmMvTWFr ZWZpbGUuYW0KKysrKyBiL3NyYy9NYWtlZmlsZS5hbQorQEAgLTI0Myw3ICsyNDMsMTAgQEAgTEFO R19GSUxFUyA9ICQoYmFzZW5hbWUgJChub3RkaXIgJCh3aWxkY2FyZCAkKEVNT0pJX0FOTk9UQVRJ T05fRElSKS8qLnhtbCkpKQorIG5vaW5zdF9QUk9HUkFNUyA9IGVtb2ppLXBhcnNlcgorIAorIGRp Y3RzL2Vtb2ppLWVuLmRpY3Q6IGVtb2ppLXBhcnNlcgorLQkkKEFNX1ZfYXQpZm9yIGYgaW4gJChM QU5HX0ZJTEVTKSA7IGRvIFwKKysJJChBTV9WX2F0KWlmIHRlc3QgeCIkKExBTkdfRklMRVMpIiA9 IHggOyB0aGVuIFwKKysJICAgIGVjaG8gIldBUk5JTkc6IE5vdCBmb3VuZCAkKEVNT0pJX0FOTk9U QVRJT05fRElSKS9lbi54bWwiIDE+JjI7IFwKKysJZmk7IFwKKysJZm9yIGYgaW4gJChMQU5HX0ZJ TEVTKSA7IGRvIFwKKyAJICAgIGlmIHRlc3QgeCIkJGYiID0geGVuIDsgdGhlbiBcCisgCSAgICAg ICAgJChidWlsZGRpcikvZW1vamktcGFyc2VyIFwKKyAJICAgICAgICAgICAgLS14bWwgJChFTU9K SV9BTk5PVEFUSU9OX0RJUikvJCRmLnhtbCBcCitkaWZmIC0tZ2l0IGEvc3JjL2Vtb2ppLXBhcnNl ci5jIGIvc3JjL2Vtb2ppLXBhcnNlci5jCitpbmRleCA4ZmYwNGYxLi5mOWUzNDcwIDEwMDY0NAor LS0tIGEvc3JjL2Vtb2ppLXBhcnNlci5jCisrKysgYi9zcmMvZW1vamktcGFyc2VyLmMKK0BAIC0y MCw3ICsyMCw3IEBACisgICogVVNBCisgICovCisgCistLyogQ29udmVydCAvdXNyL3NoYXJlL3Vu aWNvZGUvY2xkci9jb21tb24vYW5ub3RhdGlvbnMvKi54bWwgYW5kCisrLyogQ29udmVydCAvdXNy L3NoYXJlL3VuaWNvZGUvY2xkci9jb21tb24vYW5ub3RhdGlvbnMvXCoueG1sIGFuZAorICAqIC91 c3IvbGliL25vZGVfbW9kdWxlcy9lbW9qaW9uZS9lbW9qaS5qc29uCisgICogdG8gdGhlIGRpY3Rp b25hcnkgZmlsZSB3aGljaCBsb29rIHVwIHRoZSBFbW9qaSBmcm9tIHRoZSBhbm5vdGF0aW9uLgor ICAqIEdldCAqLnhtbCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9mdWppd2FyYXQvY2xkci1lbW9q aS1hbm5vdGF0aW9uCitkaWZmIC0tZ2l0IGEvdWkvZ3RrMy9NYWtlZmlsZS5hbSBiL3VpL2d0azMv TWFrZWZpbGUuYW0KK2luZGV4IDRlN2ZkMWIuLmIwNTVmNjcgMTAwNjQ0CistLS0gYS91aS9ndGsz L01ha2VmaWxlLmFtCisrKysgYi91aS9ndGszL01ha2VmaWxlLmFtCitAQCAtODEsNiArODEsOCBA QCBBTV9WQUxBRkxBR1MgPSBcCisgCS0tdGFyZ2V0LWdsaWI9IiQoVkFMQV9UQVJHRVRfR0xJQl9W RVJTSU9OKSIgXAorIAkkKE5VTEwpCisgCisrQ09ORklHX0NMRUFOX0ZJTEVTID0KKysKKyBpZiBF TkFCTEVfTElCTk9USUZZCisgQU1fQ0ZMQUdTICs9IFwKKyAJQExJQk5PVElGWV9DRkxBR1NAIFwK K0BAIC0yMzksNyArMjQxLDcgQEAgdmFwaV9EQVRBID0gJChWQVBJR0VOX1ZBUElTKSAkKFZBUElH RU5fVkFQSVM6LnZhcGk9LmRlcHMpCisgCisgTUFJTlRBSU5FUkNMRUFORklMRVMgPSAkKFZBUElH RU5fVkFQSVMpCisgIyBmb3IgbWFrZSBkaXN0Y2xlYW4KKy1DT05GSUdfQ0xFQU5fRklMRVMgPSAk KFZBUElHRU5fVkFQSVMpCisrQ09ORklHX0NMRUFOX0ZJTEVTICs9ICQoVkFQSUdFTl9WQVBJUykK KyBFWFRSQV9ESVNUICs9ICQoVkFQSUdFTl9WQVBJUykKKyAKKyBlbmRpZgorLS0gCisyLjkuMwor CitGcm9tIDBlZmIxYzUwM2Q1OTAxYmJkZGNkYjZmYTczMDA3YjM2NGJhNDM2OGQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+CitEYXRlOiBNb24sIDI3IE1hciAyMDE3IDE1OjEyOjQyICswOTAwCitTdWJqZWN0OiBbUEFU Q0hdIE1vdmUgbGFuZ3VhZ2Ugc2V0dGluZyBmcm9tIElCdXNFbW9qaWVyIHRvIGlidXMtc2V0dXAK KworVGhlIGxhbmd1YWdlIHNldHRpbmcgb2YgZW1vamkgYW5ub3RhdGlvbnMgbm93IGNhbiBiZSBz YXZlZAord2l0aCBpYnVzLXNldHVwLgorSW1wbGVtZW50IGBpYnVzIGVtb2ppIFstLWZvbnR8LS1s YW5nfC0taGVscF1gCisKK1I9U2hhd24uUC5IdWFuZ0BnbWFpbC5jb20KKworUmV2aWV3IFVSTDog aHR0cHM6Ly9jb2RlcmV2aWV3LmFwcHNwb3QuY29tLzMyMzcyMDA0MworLS0tCisgZGF0YS9pYnVz LnNjaGVtYXMuaW4gICAgICB8ICA0NiArKystLS0KKyBzZXR1cC9NYWtlZmlsZS5hbSAgICAgICAg IHwgIDI2ICsrLS0KKyBzZXR1cC9lbW9qaWxhbmcucHkgICAgICAgIHwgMzQ4ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBzZXR1cC9tYWluLnB5ICAgICAg ICAgICAgIHwgIDQxICsrKystLQorIHNldHVwL3NldHVwLnVpICAgICAgICAgICAgfCAgOTcgKysr KysrKystLS0tLQorIHRvb2xzL21haW4udmFsYSAgICAgICAgICAgfCAgMzggKysrKy0KKyB1aS9n dGszL2Vtb2ppZXIudmFsYSAgICAgIHwgMjk1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHVpL2d0azMvaWJ1c2Vtb2ppZGlhbG9nLmggfCAgMTEgKysKKyB1aS9ndGsz L3BhbmVsLnZhbGEgICAgICAgIHwgIDM5ICsrKystLQorIDkgZmlsZXMgY2hhbmdlZCwgNjcxIGlu c2VydGlvbnMoKyksIDI3MCBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc2V0dXAv ZW1vamlsYW5nLnB5CisKK2RpZmYgLS1naXQgYS9kYXRhL2lidXMuc2NoZW1hcy5pbiBiL2RhdGEv aWJ1cy5zY2hlbWFzLmluCitpbmRleCAyMThkMjIzLi5jMGJiZDZmIDEwMDY0NAorLS0tIGEvZGF0 YS9pYnVzLnNjaGVtYXMuaW4KKysrKyBiL2RhdGEvaWJ1cy5zY2hlbWFzLmluCitAQCAtMTA2LDE4 ICsxMDYsNiBAQAorICAgICAgIDwvbG9jYWxlPgorICAgICA8L3NjaGVtYT4KKyAgICAgPHNjaGVt YT4KKy0gICAgICA8a2V5Pi9zY2hlbWFzL2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL2hvdGtleS9lbW9q aTwva2V5PgorLSAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvZ2VuZXJhbC9ob3RrZXkvZW1v amk8L2FwcGx5dG8+CistICAgICAgPG93bmVyPmlidXM8L293bmVyPgorLSAgICAgIDx0eXBlPmxp c3Q8L3R5cGU+CistICAgICAgPGxpc3RfdHlwZT5zdHJpbmc8L2xpc3RfdHlwZT4KKy0gICAgICA8 ZGVmYXVsdD5bJmx0O0NvbnRyb2wmZ3Q7Jmx0O1NoaWZ0Jmd0O2VdPC9kZWZhdWx0PgorLSAgICAg IDxsb2NhbGUgbmFtZT0iQyI+CistICAgICAgICA8c2hvcnQ+RW1vamkgc2hvcnRjdXQga2V5cyBm b3IgZ3RrX2FjY2VsZXJhdG9yX3BhcnNlPC9zaG9ydD4KKy0gICAgICAgICAgPGxvbmc+VGhlIHNo b3J0Y3V0IGtleXMgZm9yIHR1cm5pbmcgZW1vamkgdHlwaW5nIG9uIG9yIG9mZjwvbG9uZz4KKy0g ICAgICA8L2xvY2FsZT4KKy0gICAgPC9zY2hlbWE+CistICAgIDxzY2hlbWE+CisgICAgICAgPGtl eT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJhbC9ob3RrZXkvZW5hYmxlX3VuY29uZGl0aW9u YWw8L2tleT4KKyAgICAgICA8YXBwbHl0bz4vZGVza3RvcC9pYnVzL2dlbmVyYWwvaG90a2V5L2Vu YWJsZV91bmNvbmRpdGlvbmFsPC9hcHBseXRvPgorICAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4K K0BAIC0zNjYsOCArMzU0LDIwIEBACisgICAgICAgPC9sb2NhbGU+CisgICAgIDwvc2NoZW1hPgor ICAgICA8c2NoZW1hPgorLSAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL3BhbmVsL2Vt b2ppX2ZvbnQ8L2tleT4KKy0gICAgICA8YXBwbHl0bz4vZGVza3RvcC9pYnVzL3BhbmVsL2Vtb2pp X2ZvbnQ8L2FwcGx5dG8+CisrICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvcGFuZWwv ZW1vamkvaG90a2V5PC9rZXk+CisrICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9wYW5lbC9l bW9qaS9ob3RrZXk8L2FwcGx5dG8+CisrICAgICAgPG93bmVyPmlidXM8L293bmVyPgorKyAgICAg IDx0eXBlPmxpc3Q8L3R5cGU+CisrICAgICAgPGxpc3RfdHlwZT5zdHJpbmc8L2xpc3RfdHlwZT4K KysgICAgICA8ZGVmYXVsdD5bJmx0O0NvbnRyb2wmZ3Q7Jmx0O1NoaWZ0Jmd0O2VdPC9kZWZhdWx0 PgorKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+CisrICAgICAgICA8c2hvcnQ+RW1vamkgc2hvcnRj dXQga2V5cyBmb3IgZ3RrX2FjY2VsZXJhdG9yX3BhcnNlPC9zaG9ydD4KKysgICAgICAgICAgPGxv bmc+VGhlIHNob3J0Y3V0IGtleXMgZm9yIHR1cm5pbmcgZW1vamkgdHlwaW5nIG9uIG9yIG9mZjwv bG9uZz4KKysgICAgICA8L2xvY2FsZT4KKysgICAgPC9zY2hlbWE+CisrICAgIDxzY2hlbWE+Cisr ICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvcGFuZWwvZW1vamkvZm9udDwva2V5Pgor KyAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvcGFuZWwvZW1vamkvZm9udDwvYXBwbHl0bz4K KyAgICAgICA8b3duZXI+aWJ1czwvb3duZXI+CisgICAgICAgPHR5cGU+c3RyaW5nPC90eXBlPgor ICAgICAgIDxkZWZhdWx0Pk1vbm9zcGFjZSAxNjwvZGVmYXVsdD4KK0BAIC0zNzcsOCArMzc3LDIy IEBACisgICAgICAgPC9sb2NhbGU+CisgICAgIDwvc2NoZW1hPgorICAgICA8c2NoZW1hPgorLSAg ICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL3BhbmVsL2Vtb2ppX2Zhdm9yaXRlczwva2V5 PgorLSAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvcGFuZWwvZW1vamlfZmF2b3JpdGVzPC9h cHBseXRvPgorKyAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL3BhbmVsL2Vtb2ppL2xh bmc8L2tleT4KKysgICAgICA8YXBwbHl0bz4vZGVza3RvcC9pYnVzL3BhbmVsL2Vtb2ppL2xhbmc8 L2FwcGx5dG8+CisrICAgICAgPG93bmVyPmlidXM8L293bmVyPgorKyAgICAgIDx0eXBlPnN0cmlu ZzwvdHlwZT4KKysgICAgICA8ZGVmYXVsdD5lbjwvZGVmYXVsdD4KKysgICAgICA8bG9jYWxlIG5h bWU9IkMiPgorKyAgICAgICAgPHNob3J0PkRlZmF1bHQgbGFuZ3VhZ2UgZm9yIGVtb2ppIGRpY3Rp b25hcnk8L3Nob3J0PgorKwkgICAgPGxvbmc+Q2hvb3NlIGEgZGVmYXVsdCBsYW5ndWFnZSBvZiBl bW9qaSBkaWN0aW9uYXJpZXMgb24KKysJICAgICAgICAgIHRoZSBlbW9qaSBkaWFsb2cuIFRoZSB2 YWx1ZSAkbGFuZyBpcyBhcHBsaWVkIHRvCisrICAgICAgICAgICAgICAgICAgL3Vzci9zaGFyZS91 bmljb2RlL2NsZHIvY29tbW9uL2Fubm90YXRpb25zLyRsYW5nLnhtbAorKyAgICAgICAgICAgIDwv bG9uZz4KKysgICAgICA8L2xvY2FsZT4KKysgICAgPC9zY2hlbWE+CisrICAgIDxzY2hlbWE+Cisr ICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvcGFuZWwvZW1vamkvZmF2b3JpdGVzPC9r ZXk+CisrICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9wYW5lbC9lbW9qaS9mYXZvcml0ZXM8 L2FwcGx5dG8+CisgICAgICAgPG93bmVyPmlidXM8L293bmVyPgorICAgICAgIDx0eXBlPmxpc3Q8 L3R5cGU+CisgICAgICAgPGRlZmF1bHQ+W108L2RlZmF1bHQ+CitkaWZmIC0tZ2l0IGEvc2V0dXAv TWFrZWZpbGUuYW0gYi9zZXR1cC9NYWtlZmlsZS5hbQoraW5kZXggMmQ4MjJkMi4uYjdkZDc1NSAx MDA2NDQKKy0tLSBhL3NldHVwL01ha2VmaWxlLmFtCisrKysgYi9zZXR1cC9NYWtlZmlsZS5hbQor QEAgLTMsNyArMyw4IEBACisgIyBpYnVzIC0gVGhlIElucHV0IEJ1cworICMKKyAjIENvcHlyaWdo dCAoYykgMjAwNy0yMDE0IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSMg Q29weXJpZ2h0IChjKSAyMDA3LTIwMTQgUmVkIEhhdCwgSW5jLgorKyMgQ29weXJpZ2h0IChjKSAy MDE1LTIwMTcgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrIyBD b3B5cmlnaHQgKGMpIDIwMDctMjAxNyBSZWQgSGF0LCBJbmMuCisgIworICMgVGhpcyBsaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICMgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor QEAgLTIxLDE5ICsyMiwyMCBAQAorICMgVVNBCisgCisgaWJ1c3NldHVwX1BZVEhPTiA9IFwKKy0J bWFpbi5weSBcCistCWkxOG4ucHkgXAorLQlpY29uLnB5IFwKKy0JZW5naW5lY29tYm9ib3gucHkg XAorLQllbmdpbmVkaWFsb2cucHkgXAorLQllbmdpbmV0cmVldmlldy5weSBcCistCWVuZ2luZWFi b3V0LnB5IFwKKy0Ja2V5Ym9hcmRzaG9ydGN1dC5weSBcCistCSQoTlVMTCkKKysgICAgZW1vamls YW5nLnB5IFwKKysgICAgZW5naW5lY29tYm9ib3gucHkgXAorKyAgICBlbmdpbmVkaWFsb2cucHkg XAorKyAgICBlbmdpbmV0cmVldmlldy5weSBcCisrICAgIGVuZ2luZWFib3V0LnB5IFwKKysgICAg aTE4bi5weSBcCisrICAgIGljb24ucHkgXAorKyAgICBrZXlib2FyZHNob3J0Y3V0LnB5IFwKKysg ICAgbWFpbi5weSBcCisrICAgICQoTlVMTCkKKyAKKyBpYnVzc2V0dXBfREFUQSA9IFwKKy0Jc2V0 dXAudWkgXAorLQkkKE5VTEwpCisrICAgIHNldHVwLnVpIFwKKysgICAgJChOVUxMKQorIAorIGJp bl9TQ1JJUFRTID0gaWJ1cy1zZXR1cAorIGlidXNzZXR1cGRpciA9ICQocGtnZGF0YWRpcikvc2V0 dXAKK2RpZmYgLS1naXQgYS9zZXR1cC9lbW9qaWxhbmcucHkgYi9zZXR1cC9lbW9qaWxhbmcucHkK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi44MjUwNTg5CistLS0gL2Rldi9u dWxsCisrKysgYi9zZXR1cC9lbW9qaWxhbmcucHkKK0BAIC0wLDAgKzEsMzQ4IEBACisrIyB2aW06 c2V0IGV0IHN0cz00IHN3PTQ6CisrIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKysjCisrIyBpYnVz IC0gVGhlIElucHV0IEJ1cworKyMKKysjIENvcHlyaWdodCAoYykgMjAxNyBUYWthbyBGdWppd2Fy YSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysjIENvcHlyaWdodCAoYykgMjAxNyBSZWQg SGF0LCBJbmMuCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKysjIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQorKyMgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg YnV0CisrIyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsg aWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworKyMgZm9yIHB5 dGhvbjIKKytmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisrCisrX19hbGxf XyA9ICgKKysgICAgIkVtb2ppTGFuZ0J1dHRvbiIsCisrKTsKKysKKytmcm9tIGdpLnJlcG9zaXRv cnkgaW1wb3J0IEd0aworK2Zyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgR0xpYgorK2Zyb20gZ2ku cmVwb3NpdG9yeSBpbXBvcnQgR09iamVjdAorK2Zyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgSUJ1 cworKworK2ltcG9ydCBmdW5jdG9vbHMKKytpbXBvcnQgZ2V0dGV4dAorK2ltcG9ydCBpMThuCisr aW1wb3J0IGxvY2FsZQorK2ltcG9ydCBvcworKworK2Zyb20gaWNvbiBpbXBvcnQgbG9hZF9pY29u CisrZnJvbSBpMThuIGltcG9ydCBfLCBOXworKworK1JPV19UUkFWRUxfRElSRUNUSU9OX05PTkUs ICAgICAgXAorK1JPV19UUkFWRUxfRElSRUNUSU9OX0ZPUldBUkQsICAgXAorK1JPV19UUkFWRUxf RElSRUNUSU9OX0JBQ0tXQVJEID0gbGlzdChyYW5nZSgzKSkKKysKKytjbGFzcyBMYW5ndWFnZVN0 cmluZzoKKysgICAgZGVmIF9faW5pdF9fKHNlbGYsIGlkLCB0cmFucyA9ICIiKToKKysgICAgICAg IHNlbGYuaWQgPSBpZAorKyAgICAgICAgc2VsZi50cmFucyA9IHRyYW5zCisrCisrY2xhc3MgRW1v amlMYW5nQ2hvb3NlcihHdGsuRGlhbG9nKToKKysgICAgX19ndHlwZV9uYW1lX18gPSAnRW1vamlM YW5nQ2hvb3NlcicKKysgICAgX19pbml0aWFsX2xhbmd1YWdlcyA9IFsgSUJ1cy5nZXRfbGFuZ3Vh Z2VfbmFtZSgnZW5fVVMnKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1cy5nZXRf bGFuZ3VhZ2VfbmFtZSgnZW5fR0InKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1 cy5nZXRfbGFuZ3VhZ2VfbmFtZSgnZGVfREUnKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgnZnJfRlInKSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgnZXNfRVMnKSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgnemhfQ04nKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgnamFfSlAnKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgncnVfUlUn KSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgn YXJfRUcnKSBdCisrCisrCisrICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpZCA9IE5vbmUsIHRyYW5z aWVudF9mb3IgPSBOb25lKToKKysgICAgICAgIHN1cGVyKEVtb2ppTGFuZ0Nob29zZXIsIHNlbGYp Ll9faW5pdF9fKAorKyAgICAgICAgICAgICAgICB0aXRsZSA9IF8oIlNlbGVjdCBhIGxhbmd1YWdl IiksCisrICAgICAgICAgICAgICAgIHRyYW5zaWVudF9mb3IgPSB0cmFuc2llbnRfZm9yLAorKyAg ICAgICAgICAgICAgICByZXNpemFibGUgPSBUcnVlKQorKyAgICAgICAgYnV0dG9ucyA9IChfKCJf Q2FuY2VsIiksIEd0ay5SZXNwb25zZVR5cGUuQ0FOQ0VMLAorKyAgICAgICAgICAgICAgICAgICBf KCJfT0siKSwgR3RrLlJlc3BvbnNlVHlwZS5BUFBMWSkKKysgICAgICAgIHNlbGYuYWRkX2J1dHRv bnMoKmJ1dHRvbnMpCisrCisrICAgICAgICBpZiBpZCA9PSBOb25lOgorKyAgICAgICAgICAgIGlk ID0gJ2VuJworKyAgICAgICAgc2VsZi5fX2lkID0gaWQKKysgICAgICAgIHNlbGYuX19lbmdpbmVz X2Zvcl9sYW5nID0ge30KKysgICAgICAgIHNlbGYuX191bnRyYW5zX2Zvcl9sYW5nID0ge30KKysg ICAgICAgIHNlbGYuX19sYW5ncyA9IHt9CisrICAgICAgICBzZWxmLl9fbGFuZ19saXN0ID0gW10K KysKKysgICAgICAgIHNlbGYuX19zY3JvbGxlZCA9IEd0ay5TY3JvbGxlZFdpbmRvdygKKysgICAg ICAgICAgICAgICAgaHNjcm9sbGJhcl9wb2xpY3kgPSBHdGsuUG9saWN5VHlwZS5ORVZFUiwKKysg ICAgICAgICAgICAgICAgdnNjcm9sbGJhcl9wb2xpY3kgPSBHdGsuUG9saWN5VHlwZS5ORVZFUiwK KysgICAgICAgICAgICAgICAgc2hhZG93X3R5cGUgPSBHdGsuU2hhZG93VHlwZS5JTiwKKysgICAg ICAgICAgICAgICAgbWFyZ2luX2xlZnQgPSA2LAorKyAgICAgICAgICAgICAgICBtYXJnaW5fcmln aHQgPSA2LAorKyAgICAgICAgICAgICAgICBtYXJnaW5fdG9wID0gNiwKKysgICAgICAgICAgICAg ICAgbWFyZ2luX2JvdHRvbSA9IDYpCisrICAgICAgICBzZWxmLnZib3guYWRkKHNlbGYuX19zY3Jv bGxlZCkKKysgICAgICAgIHZpZXdwb3J0ID0gR3RrLlZpZXdwb3J0KCkKKysgICAgICAgIHNlbGYu X19zY3JvbGxlZC5hZGQodmlld3BvcnQpCisrICAgICAgICBzZWxmLl9fbGlzdCA9IEd0ay5MaXN0 Qm94KHZleHBhbmQgPSBUcnVlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo YWxpZ24gPSBHdGsuQWxpZ24uRklMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsaWduID0gR3RrLkFsaWduLkZJTEwpCisrICAgICAgICB2aWV3cG9ydC5hZGQoc2VsZi5f X2xpc3QpCisrCisrICAgICAgICBzZWxmLl9fYWRqdXN0bWVudCA9IHNlbGYuX19zY3JvbGxlZC5n ZXRfdmFkanVzdG1lbnQoKQorKyAgICAgICAgc2VsZi5fX2xpc3Quc2V0X2FkanVzdG1lbnQoc2Vs Zi5fX2FkanVzdG1lbnQpCisrICAgICAgICBzZWxmLl9fbGlzdC5zZXRfZmlsdGVyX2Z1bmMoc2Vs Zi5fX2xpc3RfZmlsdGVyLCBOb25lKQorKyAgICAgICAgc2VsZi5fX2xpc3QuY29ubmVjdCgncm93 LWFjdGl2YXRlZCcsIHNlbGYuX19yb3dfYWN0aXZhdGVkKQorKworKyAgICAgICAgc2VsZi5fX3No b3dpbmdfZXh0cmEgPSBGYWxzZQorKyAgICAgICAgc2VsZi5fX21vcmVfcm93ID0gc2VsZi5fX21v cmVfcm93X25ldygpCisrICAgICAgICBzZWxmLl9fbG9hZF9sYW5nX2xpc3QoKQorKyAgICAgICAg c2VsZi5fX3Nob3dfbGFuZ19yb3dzKCkKKysgICAgICAgIHNlbGYuc2hvd19hbGwoKQorKworKwor KyAgICBkZWYgX19sb2FkX2xhbmdfbGlzdChzZWxmKToKKysgICAgICAgIGRpY3RkaXIgPSBvcy5w YXRoLmRpcm5hbWUoX19maWxlX18pICsgJy8uLi9kaWN0cycKKysgICAgICAgIGZvciBmaWxlbmFt ZSBpbiBvcy5saXN0ZGlyKGRpY3RkaXIpOgorKyAgICAgICAgICAgIHN1ZmZpeCA9ICcuZGljdCcK KysgICAgICAgICAgICBpZiBub3QgZmlsZW5hbWUuZW5kc3dpdGgoc3VmZml4KToKKysgICAgICAg ICAgICAgICAgY29udGludWUKKysgICAgICAgICAgICBsYW5nX2lkID0gZmlsZW5hbWVbMDpsZW4o ZmlsZW5hbWUpIC0gbGVuKHN1ZmZpeCldCisrICAgICAgICAgICAgcHJlZml4ID0gJ2Vtb2ppLScK KysgICAgICAgICAgICBpZiBub3QgbGFuZ19pZC5zdGFydHN3aXRoKHByZWZpeCk6CisrICAgICAg ICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgbGFuZ19pZCA9IGxhbmdfaWRbbGVuKHBy ZWZpeCk6XQorKyAgICAgICAgICAgIGxhbmcgPSBMYW5ndWFnZVN0cmluZyhsYW5nX2lkLCBJQnVz LmdldF9sYW5ndWFnZV9uYW1lKGxhbmdfaWQpKQorKyAgICAgICAgICAgIHNlbGYuX19sYW5nX2xp c3QuYXBwZW5kKGxhbmcpCisrICAgICAgICBpZiBsZW4oc2VsZi5fX2xhbmdfbGlzdCkgPT0gMDoK KysgICAgICAgICAgICBwcmludCgiTm90IGZvdW5kIGRpY3RzIGluICVzIiAlIGRpY3RkaXIsIGZp bGU9c3lzLnN0ZGVycikKKysgICAgICAgICAgICBsYW5nID0gTGFuZ3VhZ2VTdHJpbmcoJ2VuJywg SUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgnZW4nKSkKKysgICAgICAgICAgICBzZWxmLl9fbGFuZ19s aXN0LmFwcGVuZChsYW5nKQorKyAgICAgICAgICAgIHJldHVybgorKworKyAgICAgICAgZGVmIGNt cF9sYW5nKGEsIGIpOgorKyAgICAgICAgICAgIGxhYmVsX2EgPSBhLnRyYW5zICsgYS5pZAorKyAg ICAgICAgICAgIGxhYmVsX2IgPSBiLnRyYW5zICsgYi5pZAorKyAgICAgICAgICAgIHJldHVybiAo bGFiZWxfYSA+IGxhYmVsX2IpIC0gKGxhYmVsX2EgPCBsYWJlbF9iKQorKworKyAgICAgICAgc2Vs Zi5fX2xhbmdfbGlzdC5zb3J0KGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KGNtcF9sYW5nKSkK KysKKysgICAgICAgIGxvYyA9IGxvY2FsZS5nZXRsb2NhbGUoKVswXQorKyAgICAgICAgIyBOb25l IG9uIEMgbG9jYWxlCisrICAgICAgICBpZiBsb2MgPT0gTm9uZSBvciBsb2MgPT0gJ0MnOgorKyAg ICAgICAgICAgIGxvYyA9ICdlbl9VUycKKysgICAgICAgIGluZGV4ID0gMAorKyAgICAgICAgZm9y IGxhbmcgaW4gc2VsZi5fX2xhbmdfbGlzdDoKKysgICAgICAgICAgICAjIG1vdmUgY3VycmVudCBs YW5ndWFnZSB0byB0aGUgZmlyc3QgcGxhY2UKKysgICAgICAgICAgICBpZiBsYW5nLnRyYW5zID09 IElCdXMuZ2V0X2xhbmd1YWdlX25hbWUobG9jKToKKysgICAgICAgICAgICAgICAgc2VsZi5fX2xh bmdfbGlzdC5yZW1vdmUobGFuZykKKysgICAgICAgICAgICAgICAgc2VsZi5fX2xhbmdfbGlzdC5p bnNlcnQoaW5kZXgsIGxhbmcpCisrICAgICAgICAgICAgICAgIGluZGV4ICs9IDEKKysKKysgICAg ICAgIGZvciBsYW5nIGluIHNlbGYuX19sYW5nX2xpc3Q6CisrICAgICAgICAgICAgIyBtb3ZlIEVu Z2xpc2ggdG8gdGhlIHNlY29uZCBwbGFjZQorKyAgICAgICAgICAgIGlmIGxhbmcudHJhbnMgPT0g SUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgnZW4nKToKKysgICAgICAgICAgICAgICAgc2VsZi5fX2xh bmdfbGlzdC5yZW1vdmUobGFuZykKKysgICAgICAgICAgICAgICAgc2VsZi5fX2xhbmdfbGlzdC5p bnNlcnQoaW5kZXgsIGxhbmcpCisrICAgICAgICAgICAgICAgIGluZGV4ICs9IDEKKysKKysKKysg ICAgZGVmIF9fbGlzdF9maWx0ZXIoc2VsZiwgcm93LCBkYXRhKToKKysgICAgICAgIGlmIHJvdy5p ZCA9PSBzZWxmLl9faWQ6CisrICAgICAgICAgICAgc2VsZi5fX2xpc3Quc2VsZWN0X3Jvdyhyb3cp CisrICAgICAgICBpZiByb3cgPT0gc2VsZi5fX21vcmVfcm93OgorKyAgICAgICAgICAgIHJldHVy biBub3Qgc2VsZi5fX3Nob3dpbmdfZXh0cmEKKysgICAgICAgIGlmIG5vdCBzZWxmLl9fc2hvd2lu Z19leHRyYSBhbmQgcm93LmlzX2V4dHJhOgorKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorKyAg ICAgICAgcmV0dXJuIFRydWUKKysKKysKKysgICAgZGVmIF9fcm93X2FjdGl2YXRlZChzZWxmLCBi b3gsIHJvdyk6CisrICAgICAgICBpZiByb3cgPT0gc2VsZi5fX21vcmVfcm93OgorKyAgICAgICAg ICAgIHNlbGYuX19zaG93X21vcmUoKQorKyAgICAgICAgICAgIHJldHVybgorKyAgICAgICAgc2Vs Zi5fX2lkID0gcm93LmlkCisrCisrCisrICAgIGRlZiBfX3BhZGRlZF9sYWJlbF9uZXcoc2VsZiwg dGV4dCwgaWNvbiwgYWxpZ25tZW50LCBkaXJlY3Rpb24pOgorKyAgICAgICAgaGJveCA9IEd0ay5C b3gob3JpZW50YXRpb24gPSBHdGsuT3JpZW50YXRpb24uSE9SSVpPTlRBTCkKKysKKysgICAgICAg IGlmIGRpcmVjdGlvbiA9PSBST1dfVFJBVkVMX0RJUkVDVElPTl9CQUNLV0FSRDoKKysgICAgICAg ICAgICBydGwgPSAoR3RrLldpZGdldC5nZXRfZGVmYXVsdF9kaXJlY3Rpb24oKSA9PSBcCisrICAg ICAgICAgICAgICAgICAgIEd0ay5UZXh0RGlyZWN0aW9uLlJUTCkKKysgICAgICAgICAgICBpZiBy dGw6CisrICAgICAgICAgICAgICAgIGFycm93ID0gR3RrLkltYWdlLm5ld19mcm9tX2ljb25fbmFt ZSgKKysgICAgICAgICAgICAgICAgICAgICdnby1wcmV2aW91cy1ydGwtc3ltYm9saWMnLCBHdGsu SWNvblNpemUuTUVOVSkKKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBhcnJv dyA9IEd0ay5JbWFnZS5uZXdfZnJvbV9pY29uX25hbWUoCisrICAgICAgICAgICAgICAgICAgICAn Z28tcHJldmlvdXMtc3ltYm9saWMnLCBHdGsuSWNvblNpemUuTUVOVSkKKysgICAgICAgICAgICBo Ym94LnBhY2tfc3RhcnQoYXJyb3csIEZhbHNlLCBUcnVlLCAwKQorKworKyAgICAgICAgaWYgaWNv biAhPSBOb25lOgorKyAgICAgICAgICAgIHBpeGJ1ZiA9IGxvYWRfaWNvbihpY29uLCBHdGsuSWNv blNpemUuTEFSR0VfVE9PTEJBUikKKysgICAgICAgICAgICBpbWFnZSA9IEd0ay5JbWFnZShwaXhi dWYgPSBwaXhidWYpCisrICAgICAgICAgICAgaGJveC5wYWNrX3N0YXJ0KGltYWdlLCBGYWxzZSwg VHJ1ZSwgMCkKKysKKysgICAgICAgIGxhYmVsID0gR3RrLkxhYmVsKGxhYmVsID0gdGV4dCkKKysg ICAgICAgIGxhYmVsLnNldF9oYWxpZ24oYWxpZ25tZW50KQorKyAgICAgICAgbGFiZWwuc2V0X3Zh bGlnbihHdGsuQWxpZ24uQ0VOVEVSKQorKyAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9sZWZ0KDIw KQorKyAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9yaWdodCgyMCkKKysgICAgICAgIGxhYmVsLnNl dF9tYXJnaW5fdG9wKDYpCisrICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX2JvdHRvbSg2KQorKyAg ICAgICAgaGJveC5wYWNrX3N0YXJ0KGxhYmVsLCBUcnVlLCBUcnVlLCAwKQorKyAgICAgICAgcmV0 dXJuIGhib3gKKysKKysKKysgICAgZGVmIF9fbGlzdF9ib3hfcm93X25ldyhzZWxmLCBsYW5nKToK KysgICAgICAgIHJvdyA9IEd0ay5MaXN0Qm94Um93KCkKKysgICAgICAgIHJvdy50cmFucyA9IGxh bmcudHJhbnMKKysgICAgICAgIHJvdy5pZCA9IGxhbmcuaWQKKysgICAgICAgIHJvdy5pc19leHRy YSA9IEZhbHNlCisrICAgICAgICByZXR1cm4gcm93CisrCisrCisrICAgIGRlZiBfX2xhbmdfcm93 X25ldyhzZWxmLCBsYW5nLCBwcmV2X2xhbmcpOgorKyAgICAgICAgcm93ID0gc2VsZi5fX2xpc3Rf Ym94X3Jvd19uZXcobGFuZykKKysgICAgICAgIGxhYmVsID0gbGFuZy50cmFucworKyAgICAgICAg aWYgbGFuZy5pZCA9PSBzZWxmLl9faWQ6CisrICAgICAgICAgICAgcm93LmlzX2V4dHJhID0gRmFs c2UKKysgICAgICAgIGVsaWYgcHJldl9sYW5nICE9IE5vbmUgYW5kIGxhYmVsID09IHByZXZfbGFu Zy50cmFuczoKKysgICAgICAgICAgICBsYWJlbCA9ICIlcyAoJXMpIiAlIChsYW5nLnRyYW5zLCBs YW5nLmlkKQorKyAgICAgICAgICAgIHJvdy5pc19leHRyYSA9IFRydWUKKysgICAgICAgIGVsaWYg bm90IHNlbGYuX19zaG93aW5nX2V4dHJhIGFuZCBcCisrICAgICAgICAgICBsYW5nLnRyYW5zIG5v dCBpbiBzZWxmLl9faW5pdGlhbF9sYW5ndWFnZXM6CisrICAgICAgICAgICAgcm93LmlzX2V4dHJh ID0gVHJ1ZQorKyAgICAgICAgd2lkZ2V0ID0gc2VsZi5fX3BhZGRlZF9sYWJlbF9uZXcobGFiZWws CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrLkFsaWduLkNFTlRFUiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJPV19UUkFWRUxfRElSRUNU SU9OX05PTkUpCisrICAgICAgICByb3cuYWRkKHdpZGdldCkKKysgICAgICAgIHJldHVybiByb3cK KysKKysKKysgICAgZGVmIF9fbW9yZV9yb3dfbmV3KHNlbGYpOgorKyAgICAgICAgcm93ID0gR3Rr Lkxpc3RCb3hSb3coKQorKyAgICAgICAgcm93LmlkID0gTm9uZQorKyAgICAgICAgaGJveCA9IEd0 ay5Cb3gob3JpZW50YXRpb24gPSBHdGsuT3JpZW50YXRpb24uSE9SSVpPTlRBTCkKKysgICAgICAg IHJvdy5hZGQoaGJveCkKKysgICAgICAgIHJvdy5zZXRfdG9vbHRpcF90ZXh0KF8oIk1vcmXigKYi KSkKKysgICAgICAgIGFycm93ID0gR3RrLkltYWdlLm5ld19mcm9tX2ljb25fbmFtZSgndmlldy1t b3JlLXN5bWJvbGljJywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHdGsuSWNvblNpemUuTUVOVSkKKysgICAgICAgIGFycm93LnNldF9tYXJnaW5fbGVmdCgy MCkKKysgICAgICAgIGFycm93LnNldF9tYXJnaW5fcmlnaHQoMjApCisrICAgICAgICBhcnJvdy5z ZXRfbWFyZ2luX3RvcCg2KQorKyAgICAgICAgYXJyb3cuc2V0X21hcmdpbl9ib3R0b20oNikKKysg ICAgICAgIGFycm93LnNldF9oYWxpZ24oR3RrLkFsaWduLkNFTlRFUikKKysgICAgICAgIGFycm93 LnNldF92YWxpZ24oR3RrLkFsaWduLkNFTlRFUikKKysgICAgICAgIGhib3gucGFja19zdGFydChh cnJvdywgVHJ1ZSwgVHJ1ZSwgMCkKKysgICAgICAgIHJldHVybiByb3cKKysKKysKKysgICAgZGVm IF9fc2V0X2ZpeGVkX3NpemUoc2VsZik6CisrICAgICAgICBpZiBzZWxmLl9fc2Nyb2xsZWQuZ2V0 X3BvbGljeSgpWzBdID09IEd0ay5Qb2xpY3lUeXBlLkFVVE9NQVRJQzoKKysgICAgICAgICAgICBy ZXR1cm4KKysgICAgICAgICh3aWR0aCwgaGVpZ2h0KSA9IHNlbGYuZ2V0X3NpemUoKQorKyAgICAg ICAgc2VsZi5zZXRfc2l6ZV9yZXF1ZXN0KHdpZHRoLCBoZWlnaHQpCisrICAgICAgICBzZWxmLl9f c2Nyb2xsZWQuc2V0X3BvbGljeShHdGsuUG9saWN5VHlwZS5BVVRPTUFUSUMsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHdGsuUG9saWN5VHlwZS5BVVRPTUFUSUMpCisrCisr CisrICAgIGRlZiBfX3JlbW92ZV9hbGxfY2hpbGRyZW4oc2VsZik6CisrICAgICAgICBmb3IgbCBp biBzZWxmLl9fbGlzdC5nZXRfY2hpbGRyZW4oKToKKysgICAgICAgICAgICBzZWxmLl9fbGlzdC5y ZW1vdmUobCkKKysKKysKKysgICAgZGVmIF9fc2hvd19sYW5nX3Jvd3Moc2VsZik6CisrICAgICAg ICBzZWxmLl9fcmVtb3ZlX2FsbF9jaGlsZHJlbigpCisrICAgICAgICBwcmV2X2xhbmcgPSBOb25l CisrICAgICAgICBmb3IgbGFuZyBpbiBzZWxmLl9fbGFuZ19saXN0OgorKyAgICAgICAgICAgIHJv dyA9IHNlbGYuX19sYW5nX3Jvd19uZXcobGFuZywgcHJldl9sYW5nKQorKyAgICAgICAgICAgIHNl bGYuX19saXN0LmFkZChyb3cpCisrICAgICAgICAgICAgcHJldl9sYW5nID0gbGFuZworKyAgICAg ICAgc2VsZi5fX2xpc3QuYWRkKHNlbGYuX19tb3JlX3JvdykKKysgICAgICAgIHNlbGYuX19saXN0 LnNob3dfYWxsKCkKKysgICAgICAgIHNlbGYuX19hZGp1c3RtZW50LnNldF92YWx1ZShzZWxmLl9f YWRqdXN0bWVudC5nZXRfbG93ZXIoKSkKKysgICAgICAgIHNlbGYuX19saXN0LmludmFsaWRhdGVf ZmlsdGVyKCkKKysgICAgICAgIHNlbGYuX19saXN0LnNldF9zZWxlY3Rpb25fbW9kZShHdGsuU2Vs ZWN0aW9uTW9kZS5TSU5HTEUpCisrCisrCisrICAgIGRlZiBfX3Nob3dfbW9yZShzZWxmKToKKysg ICAgICAgIHNlbGYuX19zZXRfZml4ZWRfc2l6ZSgpCisrICAgICAgICBzZWxmLl9fc2hvd2luZ19l eHRyYSA9IFRydWUKKysgICAgICAgIHNlbGYuX19saXN0LmludmFsaWRhdGVfZmlsdGVyKCkKKysK KysKKysgICAgZGVmIGdldF9zZWxlY3RlZF9sYW5nKHNlbGYpOgorKyAgICAgICAgcmV0dXJuIHNl bGYuX19pZAorKworKworK2NsYXNzIEVtb2ppTGFuZ0J1dHRvbihHdGsuQnV0dG9uKToKKysgICAg X19ndHlwZV9uYW1lX18gPSAnRW1vamlMYW5nQnV0dG9uJworKyAgICBfX2dwcm9wZXJ0aWVzX18g PSB7CisrICAgICAgICAnbGFuZycgOiAoCisrICAgICAgICAgICAgc3RyLAorKyAgICAgICAgICAg ICdsYW5nJywKKysgICAgICAgICAgICAnbGFuZyBmb3IgZW1vam8tKi5kaWN0JywKKysgICAgICAg ICAgICAnZW4nLAorKyAgICAgICAgICAgIEdPYmplY3QuUGFyYW1GbGFncy5SRUFEQUJMRSB8IEdP YmplY3QuUGFyYW1GbGFncy5XUklUQUJMRSkKKysgICAgfQorKworKworKyAgICBkZWYgX19pbml0 X18oc2VsZik6CisrICAgICAgICBzdXBlcihFbW9qaUxhbmdCdXR0b24sIHNlbGYpLl9faW5pdF9f KCkKKysgICAgICAgIHNlbGYuX19sYW5nID0gJycKKysKKysKKysgICAgZGVmIGRvX2dldF9wcm9w ZXJ0eShzZWxmLCBwcm9wKToKKysgICAgICAgIGlmIHByb3AubmFtZSA9PSAnbGFuZyc6CisrICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX19sYW5nCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAg IHJhaXNlIEF0dHJpYnV0ZUVycm9yKCd1bmtub3duIHByb3BlcnR5ICVzJyAlIHByb3AubmFtZSkK KysKKysKKysgICAgZGVmIGRvX3NldF9wcm9wZXJ0eShzZWxmLCBwcm9wLCB2YWx1ZSk6CisrICAg ICAgICBpZiBwcm9wLm5hbWUgPT0gJ2xhbmcnOgorKyAgICAgICAgICAgIHNlbGYuc2V0X2xhbmco dmFsdWUpCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9y KCd1bmtub3duIHByb3BlcnR5ICVzJyAlIHByb3AubmFtZSkKKysKKysKKysgICAgZGVmIGRvX2Ns aWNrZWQoc2VsZik6CisrICAgICAgICBkaWFsb2cgPSBFbW9qaUxhbmdDaG9vc2VyKGlkID0gc2Vs Zi5fX2xhbmcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaWVudF9m b3IgPSBzZWxmLmdldF90b3BsZXZlbCgpKQorKyAgICAgICAgaWQgPSBkaWFsb2cucnVuKCkKKysg ICAgICAgIGlmIGlkICE9IEd0ay5SZXNwb25zZVR5cGUuQVBQTFk6CisrICAgICAgICAgICAgZGlh bG9nLmRlc3Ryb3koKQorKyAgICAgICAgICAgIHJldHVybgorKyAgICAgICAgc2VsZi5zZXRfbGFu ZyhkaWFsb2cuZ2V0X3NlbGVjdGVkX2xhbmcoKSkKKysgICAgICAgIGRpYWxvZy5kZXN0cm95KCkK KysKKysKKysgICAgZGVmIHNldF9sYW5nKHNlbGYsIGxhbmcpOgorKyAgICAgICAgc2VsZi5fX2xh bmcgPSBsYW5nCisrICAgICAgICBzZWxmLm5vdGlmeSgibGFuZyIpCisrICAgICAgICBzZWxmLnNl dF9sYWJlbChJQnVzLmdldF9sYW5ndWFnZV9uYW1lKGxhbmcpKQorKworKworKyAgICBkZWYgZ2V0 X2xhbmcoc2VsZiwgbGFuZyk6CisrICAgICAgICByZXR1cm4gc2VsZi5fX2xhbmcKKysKKysKKytH T2JqZWN0LnR5cGVfcmVnaXN0ZXIoRW1vamlMYW5nQnV0dG9uKQorKworKworK2lmIF9fbmFtZV9f ID09ICJfX21haW5fXyI6CisrICAgICAgICBkaWFsb2cgPSBFbW9qaUxhbmdDaG9vc2VyKCkKKysg ICAgICAgIGlkID0gZGlhbG9nLnJ1bigpCisrICAgICAgICBpZiBpZCAhPSBHdGsuUmVzcG9uc2VU eXBlLkFQUExZOgorKyAgICAgICAgICAgIGRpYWxvZy5kZXN0cm95KCkKKysgICAgICAgICAgICBp bXBvcnQgc3lzCisrICAgICAgICAgICAgc3lzLmV4aXQoMCkKKysgICAgICAgIHByaW50KCJTZWxl Y3RlZCBsYW5ndWFnZToiLCBkaWFsb2cuZ2V0X3NlbGVjdGVkX2xhbmcoKSkKK2RpZmYgLS1naXQg YS9zZXR1cC9tYWluLnB5IGIvc2V0dXAvbWFpbi5weQoraW5kZXggMDliMGViZC4uNzgzOWNlYSAx MDA2NDQKKy0tLSBhL3NldHVwL21haW4ucHkKKysrKyBiL3NldHVwL21haW4ucHkKK0BAIC01MSw2 ICs1MSw3IEBAIGZyb20gb3MgaW1wb3J0IHBhdGgKKyBpbXBvcnQgaTE4bgorIGltcG9ydCBrZXli b2FyZHNob3J0Y3V0CisgaW1wb3J0IGxvY2FsZQorK2Zyb20gZW1vamlsYW5nIGltcG9ydCBFbW9q aUxhbmdCdXR0b24KKyBmcm9tIGVuZ2luZWNvbWJvYm94IGltcG9ydCBFbmdpbmVDb21ib0JveAor IGZyb20gZW5naW5lZGlhbG9nIGltcG9ydCBFbmdpbmVEaWFsb2cKKyBmcm9tIGVuZ2luZXRyZWV2 aWV3IGltcG9ydCBFbmdpbmVUcmVlVmlldworQEAgLTkyLDYgKzkzLDggQEAgY2xhc3MgU2V0dXAo b2JqZWN0KToKKyAgICAgICAgICAgICAgICAgc2NoZW1hID0gIm9yZy5mcmVlZGVza3RvcC5pYnVz LmdlbmVyYWwuaG90a2V5Iik7CisgICAgICAgICBzZWxmLl9fc2V0dGluZ3NfcGFuZWwgPSBHaW8u U2V0dGluZ3MoCisgICAgICAgICAgICAgICAgIHNjaGVtYSA9ICJvcmcuZnJlZWRlc2t0b3AuaWJ1 cy5wYW5lbCIpOworKyAgICAgICAgc2VsZi5fX3NldHRpbmdzX2Vtb2ppID0gR2lvLlNldHRpbmdz KAorKyAgICAgICAgICAgICAgICBzY2hlbWEgPSAib3JnLmZyZWVkZXNrdG9wLmlidXMucGFuZWwu ZW1vamkiKTsKKyAKKyAgICAgICAgICMgSUJ1cy5CdXMoKSBjYWxscyBpYnVzX2J1c19uZXcoKS4K KyAgICAgICAgICMgR3RrLkJ1aWxkZXIoKS5hZGRfZnJvbV9maWxlKCkgYWxzbyBjYWxscyBpYnVz X2J1c19uZXdfYXN5bmMoKQorQEAgLTEyMiw3ICsxMjUsMTAgQEAgY2xhc3MgU2V0dXAob2JqZWN0 KToKKyAgICAgICAgIHNlbGYuX19pbml0X2hvdGtleShuYW1lLCBsYWJlbCkKKyAKKyAgICAgZGVm IF9faW5pdF9ob3RrZXkoc2VsZiwgbmFtZSwgbGFiZWwsIGNvbW1lbnQ9Tm9uZSk6CistICAgICAg ICBzaG9ydGN1dHMgPSBzZWxmLl9fc2V0dGluZ3NfaG90a2V5LmdldF9zdHJ2KG5hbWUpCisrICAg ICAgICBpZiBuYW1lID09ICdlbW9qaSc6CisrICAgICAgICAgICAgc2hvcnRjdXRzID0gc2VsZi5f X3NldHRpbmdzX2Vtb2ppLmdldF9zdHJ2KCdob3RrZXknKQorKyAgICAgICAgZWxzZToKKysgICAg ICAgICAgICBzaG9ydGN1dHMgPSBzZWxmLl9fc2V0dGluZ3NfaG90a2V5LmdldF9zdHJ2KG5hbWUp CisgICAgICAgICBidXR0b24gPSBzZWxmLl9fYnVpbGRlci5nZXRfb2JqZWN0KCJidXR0b25fJXMi ICUgbGFiZWwpCisgICAgICAgICBlbnRyeSA9IHNlbGYuX19idWlsZGVyLmdldF9vYmplY3QoImVu dHJ5XyVzIiAlIGxhYmVsKQorICAgICAgICAgZW50cnkuc2V0X3RleHQoIjsgIi5qb2luKHNob3J0 Y3V0cykpCitAQCAtMTMwLDggKzEzNiwxMiBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgorICAgICAg ICAgaWYgY29tbWVudCAhPSBOb25lOgorICAgICAgICAgICAgIHRvb2x0aXAgKz0gIlxuIiArIGNv bW1lbnQKKyAgICAgICAgIGVudHJ5LnNldF90b29sdGlwX3RleHQodG9vbHRpcCkKKy0gICAgICAg IGJ1dHRvbi5jb25uZWN0KCJjbGlja2VkIiwgc2VsZi5fX3Nob3J0Y3V0X2J1dHRvbl9jbGlja2Vk X2NiLAorLSAgICAgICAgICAgICAgICBuYW1lLCAiZ2VuZXJhbC9ob3RrZXkiLCBsYWJlbCwgZW50 cnkpCisrICAgICAgICBpZiBuYW1lID09ICdlbW9qaSc6CisrICAgICAgICAgICAgYnV0dG9uLmNv bm5lY3QoImNsaWNrZWQiLCBzZWxmLl9fc2hvcnRjdXRfYnV0dG9uX2NsaWNrZWRfY2IsCisrICAg ICAgICAgICAgICAgICAgICAnaG90a2V5JywgJ3BhbmVsLycgKyBuYW1lLCBsYWJlbCwgZW50cnkp CisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIGJ1dHRvbi5jb25uZWN0KCJjbGlja2VkIiwg c2VsZi5fX3Nob3J0Y3V0X2J1dHRvbl9jbGlja2VkX2NiLAorKyAgICAgICAgICAgICAgICAgICAg bmFtZSwgImdlbmVyYWwvaG90a2V5IiwgbGFiZWwsIGVudHJ5KQorIAorICAgICBkZWYgX19pbml0 X3BhbmVsKHNlbGYpOgorICAgICAgICAgIyBsb29rdXAgdGFibGUgb3JpZW50YXRpb24KK0BAIC0x NjksMjEgKzE3OSwyNyBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgorIAorICAgICAgICAgc2VsZi5f X2ZvbnRidXR0b25fY3VzdG9tX2ZvbnQgPSBzZWxmLl9fYnVpbGRlci5nZXRfb2JqZWN0KAorICAg ICAgICAgICAgICAgICAiZm9udGJ1dHRvbl9jdXN0b21fZm9udCIpCistICAgICAgICBzZWxmLl9f Zm9udGJ1dHRvbl9lbW9qaV9mb250ID0gc2VsZi5fX2J1aWxkZXIuZ2V0X29iamVjdCgKKy0gICAg ICAgICAgICAgICAgImZvbnRidXR0b25fZW1vamlfZm9udCIpCistICAgICAgICBzZWxmLl9fZm9u dGJ1dHRvbl9lbW9qaV9mb250LnNldF9wcmV2aWV3X3RleHQoIvCfmYLwn42O8J+ag/CfkpPwn5On 4pq98J+QsyIpOworICAgICAgICAgc2VsZi5fX3NldHRpbmdzX3BhbmVsLmJpbmQoJ2N1c3RvbS1m b250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fZm9udGJ1 dHRvbl9jdXN0b21fZm9udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdm b250LW5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2lvLlNldHRp bmdzQmluZEZsYWdzLkRFRkFVTFQpCistICAgICAgICBzZWxmLl9fc2V0dGluZ3NfcGFuZWwuYmlu ZCgnZW1vamktZm9udCcsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5fX2ZvbnRidXR0b25fZW1vamlfZm9udCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdmb250LW5hbWUnLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R2lvLlNldHRpbmdzQmluZEZsYWdzLkRFRkFVTFQpCisgICAgICAgICBzZWxmLl9fc2V0dGluZ3Nf cGFuZWwuYmluZCgndXNlLWN1c3RvbS1mb250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLl9fZm9udGJ1dHRvbl9jdXN0b21fZm9udCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdzZW5zaXRpdmUnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR2lvLlNldHRpbmdzQmluZEZsYWdzLkdFVCkKKysgICAgICAgIHNlbGYu X19mb250YnV0dG9uX2Vtb2ppX2ZvbnQgPSBzZWxmLl9fYnVpbGRlci5nZXRfb2JqZWN0KAorKyAg ICAgICAgICAgICAgICAnZm9udGJ1dHRvbl9lbW9qaV9mb250JykKKysgICAgICAgIHNlbGYuX19m b250YnV0dG9uX2Vtb2ppX2ZvbnQuc2V0X3ByZXZpZXdfdGV4dCgn8J+ZgvCfjY7wn5qD8J+Sk/Cf k6fimr3wn5CzJyk7CisrICAgICAgICBzZWxmLl9fc2V0dGluZ3NfZW1vamkuYmluZCgnZm9udCcs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2ZvbnRidXR0b25f ZW1vamlfZm9udCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb250LW5h bWUnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR2lvLlNldHRpbmdzQmlu ZEZsYWdzLkRFRkFVTFQpCisrICAgICAgICBzZWxmLl9fYnV0dG9uX2Vtb2ppX2xhbmcgPSBzZWxm Ll9fYnVpbGRlci5nZXRfb2JqZWN0KAorKyAgICAgICAgICAgICAgICAnYnV0dG9uX2Vtb2ppX2xh bmcnKQorKyAgICAgICAgc2VsZi5fX3NldHRpbmdzX2Vtb2ppLmJpbmQoJ2xhbmcnLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19idXR0b25fZW1vamlfbGFuZywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsYW5nJywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdpby5TZXR0aW5nc0JpbmRGbGFncy5ERUZBVUxUKQor IAorICAgICAgICAgIyBzaG93IGljb24gb24gc3lzdGVtIHRyYXkKKyAgICAgICAgIHNlbGYuX19j aGVja2J1dHRvbl9zaG93X2ljb25fb25fc3lzdHJheSA9IHNlbGYuX19idWlsZGVyLmdldF9vYmpl Y3QoCitAQCAtNDU4LDcgKzQ3NCwxMCBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgorICAgICAgICAg ZGlhbG9nLmRlc3Ryb3koKQorICAgICAgICAgaWYgaWQgIT0gR3RrLlJlc3BvbnNlVHlwZS5PSzoK KyAgICAgICAgICAgICByZXR1cm4KKy0gICAgICAgIHNlbGYuX19zZXR0aW5nc19ob3RrZXkuc2V0 X3N0cnYobmFtZSwgc2hvcnRjdXRzKQorKyAgICAgICAgaWYgc2VjdGlvbiA9PSAncGFuZWwvZW1v amknOgorKyAgICAgICAgICAgIHNlbGYuX19zZXR0aW5nc19lbW9qaS5zZXRfc3RydihuYW1lLCBz aG9ydGN1dHMpCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIHNlbGYuX19zZXR0aW5nc19o b3RrZXkuc2V0X3N0cnYobmFtZSwgc2hvcnRjdXRzKQorICAgICAgICAgdGV4dCA9ICI7ICIuam9p bihzaG9ydGN1dHMpCisgICAgICAgICBlbnRyeS5zZXRfdGV4dCh0ZXh0KQorICAgICAgICAgdG9v bHRpcCA9ICJcbiIuam9pbihzaG9ydGN1dHMpCitkaWZmIC0tZ2l0IGEvc2V0dXAvc2V0dXAudWkg Yi9zZXR1cC9zZXR1cC51aQoraW5kZXggZDVlZTM5Mi4uNGVmMzQyMyAxMDA2NDQKKy0tLSBhL3Nl dHVwL3NldHVwLnVpCisrKysgYi9zZXR1cC9zZXR1cC51aQorQEAgLTY2MSwzOCArNjYxLDExIEBA CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3BhY2tpbmc+CisgICAgICAgICAgICAgICAg ICAgICAgICAgPC9jaGlsZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+CistICAg ICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJHdGtCb3giIGlkPSJmb250YnV0 dG9uX2JveCI+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJv cmllbnRhdGlvbiI+dmVydGljYWw8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgPG9iamVjdCBjbGFzcz0iR3RrRm9udEJ1dHRvbiIgaWQ9ImZvbnRidXR0b25fY3VzdG9tX2Zv bnQiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJs ZSI+VHJ1ZTwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0 eSBuYW1lPSJjYW5fZm9jdXMiPkZhbHNlPC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGNoaWxkPgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3Qg Y2xhc3M9Ikd0a0ZvbnRCdXR0b24iIGlkPSJmb250YnV0dG9uX2N1c3RvbV9mb250Ij4KKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idXNlX2FjdGlvbl9hcHBl YXJhbmNlIj5GYWxzZTwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPlRydWU8L3Byb3BlcnR5 PgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyZWNlaXZl c19kZWZhdWx0Ij5UcnVlPC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8cHJvcGVydHkgbmFtZT0idXNlX2FjdGlvbl9hcHBlYXJhbmNlIj5GYWxzZTwvcHJvcGVydHk+ CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vYmplY3Q+CistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHBhY2tpbmc+CistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8cHJvcGVydHkgbmFtZT0iZXhwYW5kIj5GYWxzZTwvcHJvcGVydHk+CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iZmlsbCI+RmFsc2U8L3Byb3Bl cnR5PgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InBv c2l0aW9uIj4wPC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Bh Y2tpbmc+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2hpbGQ+CistICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxjaGlsZD4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8b2JqZWN0IGNsYXNzPSJHdGtGb250QnV0dG9uIiBpZD0iZm9udGJ1dHRvbl9lbW9qaV9mb250 Ij4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idXNlX2Fj dGlvbl9hcHBlYXJhbmNlIj5GYWxzZTwvcHJvcGVydHk+CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPlRydWU8 L3Byb3BlcnR5PgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJyZWNlaXZlc19kZWZhdWx0Ij5UcnVlPC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idXNlX2FjdGlvbl9hcHBlYXJhbmNlIj5GYWxzZTwv cHJvcGVydHk+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vYmplY3Q+CistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhY2tpbmc+CistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iZXhwYW5kIj5GYWxzZTwvcHJvcGVydHk+Cist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iZmlsbCI+RmFs c2U8L3Byb3BlcnR5PgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5 IG5hbWU9InBvc2l0aW9uIj4xPC9wcm9wZXJ0eT4KKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L3BhY2tpbmc+CistICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2hpbGQ+Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPlRy dWU8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFt ZT0icmVjZWl2ZXNfZGVmYXVsdCI+VHJ1ZTwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ1c2VfYWN0aW9uX2FwcGVhcmFuY2UiPkZhbHNlPC9w cm9wZXJ0eT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0PgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHBhY2tpbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJsZWZ0X2F0dGFjaCI+MTwvcHJvcGVydHk+CitAQCAtNzAyLDYgKzY3 NSw2OCBAQAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ieV9v cHRpb25zIj5HVEtfRklMTDwvcHJvcGVydHk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L3BhY2tpbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgPC9jaGlsZD4KKysgICAgICAgICAg ICAgICAgICAgICAgICA8Y2hpbGQ+CisrICAgICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0 IGNsYXNzPSJHdGtMYWJlbCIgaWQ9ImxhYmVsX2Vtb2ppX2ZvbnQiPgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1ZTwvcHJvcGVydHk+Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPkZh bHNlPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9InRvb2x0aXBfdGV4dCIgdHJhbnNsYXRhYmxlPSJ5ZXMiPlNldCBhIGZvbnQgb2YgZW1vamkg Y2FuZGlkYXRlcyBvbiB0aGUgZW1vamkgZGlhbG9nPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImhhbGlnbiI+c3RhcnQ8L3Byb3BlcnR5Pgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFiZWwiIHRyYW5z bGF0YWJsZT0ieWVzIj5FbW9qaSBmb250OjwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJqdXN0aWZ5Ij5yaWdodDwvcHJvcGVydHk+CisrICAg ICAgICAgICAgICAgICAgICAgICAgICA8L29iamVjdD4KKysgICAgICAgICAgICAgICAgICAgICAg ICAgIDxwYWNraW5nPgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFt ZT0idG9wX2F0dGFjaCI+NzwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJib3R0b21fYXR0YWNoIj44PC9wcm9wZXJ0eT4KKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Inhfb3B0aW9ucyI+R1RLX0ZJTEw8L3By b3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ieV9v cHRpb25zIj5HVEtfRklMTDwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgICA8 L3BhY2tpbmc+CisrICAgICAgICAgICAgICAgICAgICAgICAgPC9jaGlsZD4KKysgICAgICAgICAg ICAgICAgICAgICAgICA8Y2hpbGQ+CisrICAgICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0 IGNsYXNzPSJHdGtGb250QnV0dG9uIiBpZD0iZm9udGJ1dHRvbl9lbW9qaV9mb250Ij4KKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3By b3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY2Fu X2ZvY3VzIj5UcnVlPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9InJlY2VpdmVzX2RlZmF1bHQiPlRydWU8L3Byb3BlcnR5PgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idXNlX2FjdGlvbl9hcHBlYXJhbmNl Ij5GYWxzZTwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgICA8L29iamVjdD4K KysgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYWNraW5nPgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGVmdF9hdHRhY2giPjE8L3Byb3BlcnR5PgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0icmlnaHRfYXR0YWNoIj4y PC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9 InRvcF9hdHRhY2giPjc8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 cHJvcGVydHkgbmFtZT0iYm90dG9tX2F0dGFjaCI+ODwvcHJvcGVydHk+CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ5X29wdGlvbnMiPkdUS19GSUxMPC9wcm9w ZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcGFja2luZz4KKysgICAgICAgICAg ICAgICAgICAgICAgICA8L2NoaWxkPgorKyAgICAgICAgICAgICAgICAgICAgICAgIDxjaGlsZD4K KysgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0xhYmVsIiBpZD0i bGFiZWxfZW1vamlfbGFuZyI+CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0 eSBuYW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9ImNhbl9mb2N1cyI+RmFsc2U8L3Byb3BlcnR5PgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idG9vbHRpcF90ZXh0IiB0cmFu c2xhdGFibGU9InllcyI+U2V0IGEgbGFuZ3VhZ2Ugb2YgZW1vamkgYW5ub3RhdGlvbnMgb24gdGhl IGVtb2ppIGRpYWxvZzwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw cm9wZXJ0eSBuYW1lPSJoYWxpZ24iPnN0YXJ0PC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImxhYmVsIiB0cmFuc2xhdGFibGU9InllcyI+RW1v amkgYW5ub3RhdGlvbiBsYW5ndWFnZTo8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8cHJvcGVydHkgbmFtZT0ianVzdGlmeSI+cmlnaHQ8L3Byb3BlcnR5PgorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgPC9vYmplY3Q+CisrICAgICAgICAgICAgICAgICAgICAgICAg ICA8cGFja2luZz4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9 InRvcF9hdHRhY2giPjg8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 cHJvcGVydHkgbmFtZT0iYm90dG9tX2F0dGFjaCI+OTwvcHJvcGVydHk+CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ4X29wdGlvbnMiPkdUS19GSUxMPC9wcm9w ZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Inlfb3B0 aW9ucyI+R1RLX0ZJTEw8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgPC9w YWNraW5nPgorKyAgICAgICAgICAgICAgICAgICAgICAgIDwvY2hpbGQ+CisrICAgICAgICAgICAg ICAgICAgICAgICAgPGNoaWxkPgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBj bGFzcz0iRW1vamlMYW5nQnV0dG9uIiBpZD0iYnV0dG9uX2Vtb2ppX2xhbmciPgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1ZTwvcHJvcGVy dHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9j dXMiPlRydWU8L3Byb3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0icmVjZWl2ZXNfZGVmYXVsdCI+VHJ1ZTwvcHJvcGVydHk+CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ1c2VfYWN0aW9uX2FwcGVhcmFuY2UiPkZh bHNlPC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0PgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgPHBhY2tpbmc+CisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJsZWZ0X2F0dGFjaCI+MTwvcHJvcGVydHk+CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJyaWdodF9hdHRhY2giPjI8L3By b3BlcnR5PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idG9w X2F0dGFjaCI+ODwvcHJvcGVydHk+CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9w ZXJ0eSBuYW1lPSJib3R0b21fYXR0YWNoIj45PC9wcm9wZXJ0eT4KKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Inlfb3B0aW9ucyI+R1RLX0ZJTEw8L3Byb3BlcnR5 PgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wYWNraW5nPgorKyAgICAgICAgICAgICAg ICAgICAgICAgIDwvY2hpbGQ+CisgICAgICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0PgorICAg ICAgICAgICAgICAgICAgICAgPC9jaGlsZD4KKyAgICAgICAgICAgICAgICAgICAgIDxjaGlsZCB0 eXBlPSJsYWJlbCI+CitkaWZmIC0tZ2l0IGEvdG9vbHMvbWFpbi52YWxhIGIvdG9vbHMvbWFpbi52 YWxhCitpbmRleCBmZDlmZDBlLi4yYmYxZGM3IDEwMDY0NAorLS0tIGEvdG9vbHMvbWFpbi52YWxh CisrKysgYi90b29scy9tYWluLnZhbGEKK0BAIC0zMSw2ICszMSw4IEBAIGJvb2wgbmFtZV9vbmx5 ID0gZmFsc2U7CisgLyogc3lzdGVtKCkgZXhpc3RzIGFzIGEgcHVibGljIEFQSS4gKi8KKyBib29s IGlzX3N5c3RlbSA9IGZhbHNlOworIHN0cmluZyBjYWNoZV9maWxlID0gbnVsbDsKKytzdHJpbmcg ZW1vamlfZm9udCA9IG51bGw7Cisrc3RyaW5nIGFubm90YXRpb25fbGFuZyA9IG51bGw7CisgCisg Y2xhc3MgRW5naW5lTGlzdCB7CisgICAgIHB1YmxpYyBJQnVzLkVuZ2luZURlc2NbXSBkYXRhID0g e307CitAQCAtMzQyLDEyICszNDQsNDAgQEAgcHJpdmF0ZSB2b2lkIHJ1bl9kaWFsb2coSUJ1cy5F bW9qaWVyIGVtb2ppZXIpIHsKKyB9CisgCisgaW50IGVtb2ppX2RpYWxvZyhzdHJpbmdbXSBhcmd2 KSB7CisrICAgIGNvbnN0IE9wdGlvbkVudHJ5W10gb3B0aW9ucyA9IHsKKysgICAgICAgIHsgImZv bnQiLCAwLCAwLCBPcHRpb25BcmcuU1RSSU5HLCBvdXQgZW1vamlfZm9udCwKKysgICAgICAgICAg Tl8oIkZPTlQgZm9yIGVtb2ppIGNocmFjdGVycyBvbiBlbW9qaSBkaWFsb2cuIiksICJGT05UIiB9 LAorKyAgICAgICAgeyAibGFuZyIsIDAsIDAsIE9wdGlvbkFyZy5TVFJJTkcsIG91dCBhbm5vdGF0 aW9uX2xhbmcsCisrICAgICAgICAgIE5fKCJMQU5HIGZvciBhbm5vdGF0aW9ucyBvbiBlbW9qaSBk aWFsb2cuIEUuZy4gXCJlblwiIiksICJMQU5HIiB9LAorKyAgICAgICAgeyBudWxsIH0KKysgICAg fTsKKysKKysgICAgdmFyIG9wdGlvbiA9IG5ldyBPcHRpb25Db250ZXh0KCk7CisrICAgIG9wdGlv bi5hZGRfbWFpbl9lbnRyaWVzKG9wdGlvbnMsIENvbmZpZy5HRVRURVhUX1BBQ0tBR0UpOworKwor KyAgICB0cnkgeworKyAgICAgICAgb3B0aW9uLnBhcnNlKHJlZiBhcmd2KTsKKysgICAgfSBjYXRj aCAoT3B0aW9uRXJyb3IgZSkgeworKyAgICAgICAgc3RkZXJyLnByaW50ZigiJXNcbiIsIGUubWVz c2FnZSk7CisrICAgICAgICByZXR1cm4gUG9zaXguRVhJVF9GQUlMVVJFOworKyAgICB9CisrCisg ICAgIEd0ay5pbml0KHJlZiBhcmd2KTsKKy0gICAgR0xpYi5TZXR0aW5ncyBzZXR0aW5nc19wYW5l bCA9CistICAgICAgICAgICAgbmV3IEdMaWIuU2V0dGluZ3MoIm9yZy5mcmVlZGVza3RvcC5pYnVz LnBhbmVsIik7CistICAgIHN0cmluZyBlbW9qaV9mb250ID0gc2V0dGluZ3NfcGFuZWwuZ2V0X3N0 cmluZygiZW1vamktZm9udCIpOworKyAgICBpZiAoZW1vamlfZm9udCA9PSBudWxsKSB7CisrICAg ICAgICBHTGliLlNldHRpbmdzIHNldHRpbmdzX2Vtb2ppID0KKysgICAgICAgICAgICAgICAgbmV3 IEdMaWIuU2V0dGluZ3MoIm9yZy5mcmVlZGVza3RvcC5pYnVzLnBhbmVsLmVtb2ppIik7CisrICAg ICAgICBlbW9qaV9mb250ID0gc2V0dGluZ3NfZW1vamkuZ2V0X3N0cmluZygiZm9udCIpOworKyAg ICB9CisrICAgIGlmIChhbm5vdGF0aW9uX2xhbmcgPT0gbnVsbCkgeworKyAgICAgICAgR0xpYi5T ZXR0aW5ncyBzZXR0aW5nc19lbW9qaSA9CisrICAgICAgICAgICAgICAgIG5ldyBHTGliLlNldHRp bmdzKCJvcmcuZnJlZWRlc2t0b3AuaWJ1cy5wYW5lbC5lbW9qaSIpOworKyAgICAgICAgYW5ub3Rh dGlvbl9sYW5nID0gc2V0dGluZ3NfZW1vamkuZ2V0X3N0cmluZygibGFuZyIpOworKyAgICB9Cisg ICAgIElCdXMuRW1vamllciBlbW9qaWVyID0gbmV3IElCdXMuRW1vamllcigpOworLSAgICBlbW9q aWVyLnNldF9lbW9qaV9mb250KGVtb2ppX2ZvbnQpOworKyAgICBpZiAoZW1vamlfZm9udCAhPSBu dWxsICYmIGVtb2ppX2ZvbnQgIT0gIiIpCisrICAgICAgICBlbW9qaWVyLnNldF9lbW9qaV9mb250 KGVtb2ppX2ZvbnQpOworKyAgICBpZiAoYW5ub3RhdGlvbl9sYW5nICE9IG51bGwgJiYgYW5ub3Rh dGlvbl9sYW5nICE9ICIiKQorKyAgICAgICAgZW1vamllci5zZXRfYW5ub3RhdGlvbl9sYW5nKGFu bm90YXRpb25fbGFuZyk7CisgICAgIGlmIChlbW9qaWVyLmhhc19sb2FkZWRfZW1vamlfZGljdCgp KSB7CisgICAgICAgICBydW5fZGlhbG9nKGVtb2ppZXIpOworICAgICB9IGVsc2UgeworZGlmZiAt LWdpdCBhL3VpL2d0azMvZW1vamllci52YWxhIGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKK2luZGV4 IGIxZGM1MGMuLjIwYzEzNzggMTAwNjQ0CistLS0gYS91aS9ndGszL2Vtb2ppZXIudmFsYQorKysr IGIvdWkvZ3RrMy9lbW9qaWVyLnZhbGEKK0BAIC00MiwxNCArNDIsMTEgQEAgY2xhc3MgSUJ1c0Vt b2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIH0KKyAgICAgfQorICAgICBwcml2YXRlIGNs YXNzIEVCb3hSb3cgOiBHdGsuTGlzdEJveFJvdyB7CistICAgICAgICBwdWJsaWMgRUJveFJvdyhz dHJpbmcgdGV4dCwKKy0gICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBpZD0iIikgeworKyAg ICAgICAgcHVibGljIEVCb3hSb3coc3RyaW5nIHRleHQpIHsKKyAgICAgICAgICAgICB0aGlzLnRl eHQgPSB0ZXh0OworLSAgICAgICAgICAgIHRoaXMuaWQgPSBpZDsKKyAgICAgICAgIH0KKyAKKyAg ICAgICAgIHB1YmxpYyBzdHJpbmcgdGV4dCB7IGdldDsgc2V0OyB9CistICAgICAgICBwdWJsaWMg c3RyaW5nIGlkIHsgZ2V0OyBzZXQ7IH0KKyAgICAgfQorICAgICBwcml2YXRlIGNsYXNzIEVTY3Jv bGxlZFdpbmRvdyA6IEd0ay5TY3JvbGxlZFdpbmRvdyB7CisgICAgICAgICBwdWJsaWMgRVNjcm9s bGVkV2luZG93KEd0ay5BZGp1c3RtZW50PyBoYWRqdXN0bWVudD1udWxsLAorQEAgLTEzMiw2ICsx MjksNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgfQorICAg ICB9CisgICAgIHByaXZhdGUgY2xhc3MgRVRpdGxlTGFiZWwgOiBHdGsuQm94IHsKKysgICAgICAg IHByaXZhdGUgR3RrLkxhYmVsIG1fbGFiZWw7CisgICAgICAgICBwcml2YXRlIEd0ay5CdXR0b24g bV9jbG9zZV9idXR0b247CisgICAgICAgICBwcml2YXRlIHVsb25nIG1fY2xvc2VfaGFuZGxlcjsK KyAKK0BAIC0xNDIsMTQgKzE0MCwxNCBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cg eworICAgICAgICAgICAgICAgICBvcmllbnRhdGlvbiA6IEd0ay5PcmllbnRhdGlvbi5IT1JJWk9O VEFMLAorICAgICAgICAgICAgICAgICBzcGFjaW5nIDogMAorICAgICAgICAgICAgICk7CistICAg ICAgICAgICAgR3RrLkxhYmVsIGxhYmVsID0gbmV3IEd0ay5MYWJlbCh0ZXh0KTsKKy0gICAgICAg ICAgICBsYWJlbC5zZXRfaGFsaWduKGFsaWduKTsKKy0gICAgICAgICAgICBsYWJlbC5zZXRfdmFs aWduKGFsaWduKTsKKy0gICAgICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX3N0YXJ0KDIwKTsKKy0g ICAgICAgICAgICBsYWJlbC5zZXRfbWFyZ2luX2VuZCgyMCk7CistICAgICAgICAgICAgbGFiZWwu c2V0X21hcmdpbl90b3AoNik7CistICAgICAgICAgICAgbGFiZWwuc2V0X21hcmdpbl9ib3R0b20o Nik7CistICAgICAgICAgICAgcGFja19zdGFydChsYWJlbCwgdHJ1ZSwgdHJ1ZSwgMCk7CisrICAg ICAgICAgICAgbV9sYWJlbCA9IG5ldyBHdGsuTGFiZWwodGV4dCk7CisrICAgICAgICAgICAgbV9s YWJlbC5zZXRfaGFsaWduKGFsaWduKTsKKysgICAgICAgICAgICBtX2xhYmVsLnNldF92YWxpZ24o YWxpZ24pOworKyAgICAgICAgICAgIG1fbGFiZWwuc2V0X21hcmdpbl9zdGFydCgyMCk7CisrICAg ICAgICAgICAgbV9sYWJlbC5zZXRfbWFyZ2luX2VuZCgyMCk7CisrICAgICAgICAgICAgbV9sYWJl bC5zZXRfbWFyZ2luX3RvcCg2KTsKKysgICAgICAgICAgICBtX2xhYmVsLnNldF9tYXJnaW5fYm90 dG9tKDYpOworKyAgICAgICAgICAgIHBhY2tfc3RhcnQobV9sYWJlbCwgdHJ1ZSwgdHJ1ZSwgMCk7 CisgICAgICAgICAgICAgSWNvbldpZGdldCBpY29uID0gbmV3IEljb25XaWRnZXQoIndpbmRvdy1j bG9zZSIsIEd0ay5JY29uU2l6ZS5NRU5VKTsKKyAgICAgICAgICAgICBtX2Nsb3NlX2J1dHRvbiA9 IG5ldyBHdGsuQnV0dG9uKCk7CisgICAgICAgICAgICAgbV9jbG9zZV9idXR0b24uYWRkKGljb24p OworQEAgLTE3MCw2ICsxNjgsOSBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgewor ICAgICAgICAgICAgICAgICBtX2Nsb3NlX2hhbmRsZXIgPSAwOworICAgICAgICAgICAgIH0KKyAg ICAgICAgIH0KKysgICAgICAgIHB1YmxpYyB2b2lkIHNldF9sYWJlbChzdHJpbmcgc3RyKSB7Cisr ICAgICAgICAgICAgbV9sYWJlbC5zZXRfbGFiZWwoc3RyKTsKKysgICAgICAgIH0KKyAgICAgfQor IAorICAgICBwcml2YXRlIGVudW0gVHJhdmVsRGlyZWN0aW9uIHsKK0BAIC0xNzcsMTEgKzE3OCw2 IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICBCQUNLV0FSRCwK KyAgICAgfQorIAorLSAgICBwcml2YXRlIGVudW0gQ2F0ZWdvcnlUeXBlIHsKKy0gICAgICAgIEVN T0pJLAorLSAgICAgICAgTEFORywKKy0gICAgfQorLQorICAgICBwcml2YXRlIGNvbnN0IHVpbnQg RU1PSklfR1JJRF9QQUdFID0gMTA7CisgICAgIHByaXZhdGUgVGhlbWVkUkdCQSBtX3JnYmE7Cisg ICAgIHByaXZhdGUgR3RrLkJveCBtX3Zib3g7CitAQCAtMTkwLDE0ICsxODYsMTEgQEAgY2xhc3Mg SUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgcHJpdmF0ZSBzdHJpbmc/IG1fYmFja3dh cmQ7CisgICAgIHByaXZhdGUgRVNjcm9sbGVkV2luZG93PyBtX3Njcm9sbGVkX3dpbmRvdyA9IG51 bGw7CisgICAgIHByaXZhdGUgRUxpc3RCb3ggbV9saXN0X2JveDsKKy0gICAgcHJpdmF0ZSBDYXRl Z29yeVR5cGUgbV9jdXJyZW50X2NhdGVnb3J5X3R5cGUgPSBDYXRlZ29yeVR5cGUuRU1PSkk7Cisg ICAgIHByaXZhdGUgYm9vbCBtX2lzX3J1bm5pbmcgPSBmYWxzZTsKKyAgICAgcHJpdmF0ZSBzdHJp bmcgbV9pbnB1dF9jb250ZXh0X3BhdGggPSAiIjsKKyAgICAgcHJpdmF0ZSBHTGliLk1haW5Mb29w PyBtX2xvb3A7CisgICAgIHByaXZhdGUgc3RyaW5nPyBtX3Jlc3VsdDsKKy0gICAgcHJpdmF0ZSBH TGliLlNMaXN0PHN0cmluZz4gbV9sYW5nX2xpc3Q7CisgICAgIHByaXZhdGUgc3RyaW5nIG1fY3Vy cmVudF9sYW5nX2lkID0gImVuIjsKKy0gICAgcHJpdmF0ZSBzdHJpbmcgbV9jdXJyZW50X2xhbmd1 YWdlID0gIkVuZ2xpc2giOworICAgICBwcml2YXRlIHN0cmluZz8gbV91bmljb2RlX3BvaW50ID0g bnVsbDsKKyAgICAgcHJpdmF0ZSBib29sIG1fY2FuZGlkYXRlX3BhbmVsX2lzX3Zpc2libGU7Cisg ICAgIHByaXZhdGUgR0xpYi5IYXNoVGFibGU8c3RyaW5nLCBHTGliLlNMaXN0Pj8KK0BAIC0yMTUs NiArMjA4LDcgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgcHJpdmF0 ZSBib29sIG1fZW50ZXJfbm90aWZ5X2VuYWJsZSA9IHRydWU7CisgICAgIHByaXZhdGUgdWludCBt X2VudHJ5X25vdGlmeV9zaG93X2lkOworICAgICBwcml2YXRlIHVpbnQgbV9lbnRyeV9ub3RpZnlf ZGlzYWJsZV9pZDsKKysgICAgcHJpdmF0ZSB1aW50IG1fcmVsb2FkX2Vtb2ppX2RpY3RfaWQ7Cisg CisgICAgIHB1YmxpYyBzaWduYWwgdm9pZCBjYW5kaWRhdGVfY2xpY2tlZCh1aW50IGluZGV4LCB1 aW50IGJ1dHRvbiwgdWludCBzdGF0ZSk7CisgICAgIHB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWRf ZW1vamlfZGljdCgpOworQEAgLTMyMyw1MCArMzE3LDEzIEBAIGNsYXNzIElCdXNFbW9qaWVyIDog R3RrLldpbmRvdyB7CisgICAgICAgICAgICAgaGlkZV9jYW5kaWRhdGVfcGFuZWwoKTsKKyAgICAg ICAgIH0pOworIAorLSAgICAgICAgR0xpYi5JZGxlLmFkZCgoKSA9PiB7CistICAgICAgICAgICAg bV9sYW5nX2xpc3QgPSByZWFkX2xhbmdfbGlzdCgpOworKyAgICAgICAgbV9yZWxvYWRfZW1vamlf ZGljdF9pZCA9IEdMaWIuSWRsZS5hZGQoKCkgPT4geworICAgICAgICAgICAgIHJlbG9hZF9lbW9q aV9kaWN0KCk7CisrICAgICAgICAgICAgbV9yZWxvYWRfZW1vamlfZGljdF9pZCA9IDA7CisgICAg ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgfSk7CisgICAgIH0KKyAKKy0gICAgcHJp dmF0ZSBHTGliLlNMaXN0PHN0cmluZz4gcmVhZF9sYW5nX2xpc3QoKSB7CistICAgICAgICBHTGli LlNMaXN0PHN0cmluZz4gbGFuZ19saXN0ID0gbmV3IEdMaWIuU0xpc3Q8c3RyaW5nPigpOworLSAg ICAgICAgY29uc3Qgc3RyaW5nIGRpY3RfcGF0aCA9IENvbmZpZy5QS0dEQVRBRElSICsgIi9kaWN0 cyI7CistICAgICAgICBHTGliLkRpciBkaXIgPSBudWxsOworLSAgICAgICAgdHJ5IHsKKy0gICAg ICAgICAgICBkaXIgPSBHTGliLkRpci5vcGVuKGRpY3RfcGF0aCk7CistICAgICAgICB9IGNhdGNo IChHTGliLkZpbGVFcnJvciBlKSB7CistICAgICAgICAgICAgd2FybmluZygiRXJyb3IgbG9hZGlu ZyAlczogJXMiLCBkaWN0X3BhdGgsIGUubWVzc2FnZSk7CistICAgICAgICAgICAgcmV0dXJuIGxh bmdfbGlzdDsKKy0gICAgICAgIH0KKy0gICAgICAgIHN0cmluZyBuYW1lOworLSAgICAgICAgd2hp bGUgKChuYW1lID0gZGlyLnJlYWRfbmFtZSgpKSAhPSBudWxsKSB7CistICAgICAgICAgICAgY29u c3Qgc3RyaW5nIGRpY3Rfc3VmZml4ID0gIi5kaWN0IjsKKy0gICAgICAgICAgICBjb25zdCBzdHJp bmcgZGljdF9wcmVmaXggPSAiZW1vamktIjsKKy0gICAgICAgICAgICBpZiAobmFtZS5oYXNfc3Vm Zml4KGRpY3Rfc3VmZml4KSkgeworLSAgICAgICAgICAgICAgICBuYW1lID0gbmFtZVswOm5hbWUu bGVuZ3RoIC0gZGljdF9zdWZmaXgubGVuZ3RoXTsKKy0gICAgICAgICAgICAgICAgaWYgKG5hbWUu aGFzX3ByZWZpeChkaWN0X3ByZWZpeCkpIHsKKy0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSBu YW1lW2RpY3RfcHJlZml4Lmxlbmd0aDpuYW1lLmxlbmd0aF07CistICAgICAgICAgICAgICAgICAg ICBsYW5nX2xpc3QuYXBwZW5kKG5hbWUpOworLSAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAg ICAgICAgICAgICAgICAgICAgd2FybmluZygiTmVlZCAlcyBwcmVmaXggaW4gdGhlIGZpbGVuYW1l OiAlcy8lcyVzIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGljdF9wcmVmaXgsIGRp Y3RfcGF0aCwgbmFtZSwgZGljdF9zdWZmaXgpOworLSAgICAgICAgICAgICAgICB9CistICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgd2FybmluZygiTmVlZCAlcyBleHRlbnRp b24gaW4gdGhlIGZpbGVuYW1lOiAlcy8lcyIsCistICAgICAgICAgICAgICAgICAgICAgICAgZGlj dF9zdWZmaXgsIGRpY3RfcGF0aCwgbmFtZSk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfQor LSAgICAgICAgbGFuZ19saXN0LnNvcnQoKGEsIGIpID0+IHsKKy0gICAgICAgICAgICBzdHJpbmcg YV9sYW5nID0gSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZShhKTsKKy0gICAgICAgICAgICBzdHJpbmcg Yl9sYW5nID0gSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZShiKTsKKy0gICAgICAgICAgICBhX2xhbmcg PSAiJXMgKCVzKSIucHJpbnRmKGFfbGFuZywgYSk7CistICAgICAgICAgICAgYl9sYW5nID0gIiVz ICglcykiLnByaW50ZihiX2xhbmcsIGIpOworLSAgICAgICAgICAgIHJldHVybiBHTGliLnN0cmNt cChhX2xhbmcsIGJfbGFuZyk7CistICAgICAgICB9KTsKKy0gICAgICAgIHJldHVybiBsYW5nX2xp c3Q7CistICAgIH0KKyAKKyAgICAgcHJpdmF0ZSB2b2lkIHJlbG9hZF9lbW9qaV9kaWN0KCkgewor ICAgICAgICAgaW5pdF9lbW9qaV9kaWN0KCk7CitAQCAtMzgyLDYgKzMzOSw3IEBAIGNsYXNzIElC dXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICBsb2FkZWRfZW1vamlfZGljdCgpOwor ICAgICB9CisgCisrCisgICAgIHByaXZhdGUgdm9pZCBpbml0X2Vtb2ppX2RpY3QoKSB7CisgICAg ICAgICBtX2Fubm90YXRpb25fdG9fZW1vamlzX2RpY3QgPQorICAgICAgICAgICAgICAgICBuZXcg R0xpYi5IYXNoVGFibGU8c3RyaW5nLCBHTGliLlNMaXN0PihHTGliLnN0cl9oYXNoLAorQEAgLTM5 NCw2ICszNTIsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGliLnN0cl9l cXVhbCk7CisgICAgIH0KKyAKKysKKyAgICAgcHJpdmF0ZSB2b2lkIG1ha2VfZW1vamlfZGljdChz dHJpbmcgbGFuZykgeworICAgICAgICAgR0xpYi5TTGlzdDxJQnVzLkVtb2ppRGF0YT4gZW1vamlf bGlzdCA9IElCdXMuRW1vamlEYXRhLmxvYWQoCisgICAgICAgICAgICAgICAgICAgICBDb25maWcu UEtHREFUQURJUiArICIvZGljdHMvZW1vamktIiArIGxhbmcgKyAiLmRpY3QiKTsKK0BAIC00MTIs NiArMzcxLDcgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIH0K KyAgICAgfQorIAorKworICAgICBwcml2YXRlIHZvaWQgdXBkYXRlX2Fubm90YXRpb25fdG9fZW1v amlzX2RpY3QoSUJ1cy5FbW9qaURhdGEgZGF0YSkgeworICAgICAgICAgc3RyaW5nIGVtb2ppID0g ZGF0YS5nZXRfZW1vamkoKTsKKyAgICAgICAgIHVub3duZWQgR0xpYi5TTGlzdDxzdHJpbmc+IGFu bm90YXRpb25zID0gZGF0YS5nZXRfYW5ub3RhdGlvbnMoKTsKK0BAIC00MzIsNiArMzkyLDcgQEAg Y2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIH0KKyAgICAgfQorIAor KworICAgICBwcml2YXRlIHN0cmluZyB1dGY4X2Rvd24oc3RyaW5nIHN0cikgeworICAgICAgICAg R0xpYi5TdHJpbmdCdWlsZGVyIGJ1ZmYgPSBuZXcgR0xpYi5TdHJpbmdCdWlsZGVyKCk7CisgICAg ICAgICBpbnQgbGVuZ3RoID0gc3RyLmNoYXJfY291bnQoKTsKK0BAIC00NDIsNiArNDAzLDcgQEAg Y2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIHJldHVybiBidWZmLnN0 cjsKKyAgICAgfQorIAorKworICAgICBwcml2YXRlIHN0cmluZyB1dGY4X3RpdGxlKHN0cmluZyBz dHIpIHsKKyAgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVmZiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7 CisgICAgICAgICBpbnQgbGVuZ3RoID0gc3RyLmNoYXJfY291bnQoKTsKK0BAIC00NTYsNiArNDE4 LDcgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIHJldHVybiBi dWZmLnN0cjsKKyAgICAgfQorIAorKworICAgICBwcml2YXRlIHZvaWQgdXBkYXRlX2Vtb2ppX3Rv X2RhdGFfZGljdChJQnVzLkVtb2ppRGF0YSBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJpbmcgICAgICAgICBsYW5nKSB7CisgICAgICAgICBzdHJp bmcgZW1vamkgPSBkYXRhLmdldF9lbW9qaSgpOworQEAgLTQ2NCwxMCArNDI3LDExIEBAIGNsYXNz IElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICAgICAgdW5vd25lZCBHTGliLlNM aXN0PHN0cmluZz4gYW5ub3RhdGlvbnMgPSBkYXRhLmdldF9hbm5vdGF0aW9ucygpOworICAgICAg ICAgICAgIHZhciB3b3JkcyA9IGRlc2NyaXB0aW9uLnNwbGl0KCIgIik7CisgICAgICAgICAgICAg Ly8gSWYgdGhlIGRlc2NyaXB0aW9uIGhhcyBsZXNzIHRoYW4gMyB3b3JkcywgYWRkIGl0IHRvIGFu bm90YXRpb25zCisrICAgICAgICAgICAgLy8gRklYTUU6IEhvdyB0byBjYXN0IEdMaWIuQ29tcGFy ZUZ1bmM8c3RyaW5nPiB0byBzdHJjbXA/CisgICAgICAgICAgICAgaWYgKHdvcmRzLmxlbmd0aCA8 IDMgJiYKKyAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbnMuZmluZF9jdXN0b20oCisgICAgICAg ICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24sCistICAgICAgICAgICAgICAgICAgICAgICAg KEdMaWIuQ29tcGFyZUZ1bmM8c3RyaW5nPilHTGliLnN0cmNtcCkgPT0gbnVsbCkgeworKyAgICAg ICAgICAgICAgICAgICAgICAgIEdMaWIuc3RyY21wKSA9PSBudWxsKSB7CisgICAgICAgICAgICAg ICAgIGFubm90YXRpb25zLmFwcGVuZChkZXNjcmlwdGlvbik7CisgICAgICAgICAgICAgICAgIGRh dGEuc2V0X2Fubm90YXRpb25zKGFubm90YXRpb25zLmNvcHlfZGVlcChHTGliLnN0cmR1cCkpOwor ICAgICAgICAgICAgIH0KK0BAIC00ODUsMTggKzQ0OSwyMCBAQCBjbGFzcyBJQnVzRW1vamllciA6 IEd0ay5XaW5kb3cgeworICAgICAgICAgICAgIHVub3duZWQgR0xpYi5TTGlzdDxzdHJpbmc+IGFu bm90YXRpb25zID0gZGF0YS5nZXRfYW5ub3RhdGlvbnMoKTsKKyAgICAgICAgICAgICB2YXIgd29y ZHMgPSB0cmFuc19kZXNjcmlwdGlvbi5zcGxpdCgiICIpOworICAgICAgICAgICAgIC8vIElmIHRo ZSBkZXNjcmlwdGlvbiBoYXMgbGVzcyB0aGFuIDMgd29yZHMsIGFkZCBpdCB0byBhbm5vdGF0aW9u cworKyAgICAgICAgICAgIC8vIEZJWE1FOiBIb3cgdG8gY2FzdCBHTGliLkNvbXBhcmVGdW5jPHN0 cmluZz4gdG8gc3RyY21wPworICAgICAgICAgICAgIGlmICh3b3Jkcy5sZW5ndGggPCAzICYmCisg ICAgICAgICAgICAgICAgIGFubm90YXRpb25zLmZpbmRfY3VzdG9tKAorICAgICAgICAgICAgICAg ICAgICAgICAgIHRyYW5zX2Rlc2NyaXB0aW9uLAorLSAgICAgICAgICAgICAgICAgICAgICAgIChH TGliLkNvbXBhcmVGdW5jPHN0cmluZz4pR0xpYi5zdHJjbXApID09IG51bGwpIHsKKysgICAgICAg ICAgICAgICAgICAgICAgICBHTGliLnN0cmNtcCkgPT0gbnVsbCkgeworICAgICAgICAgICAgICAg ICBhbm5vdGF0aW9ucy5hcHBlbmQodHJhbnNfZGVzY3JpcHRpb24pOworICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICB1bm93bmVkIEdMaWIuU0xpc3Q8c3RyaW5nPiBlbl9hbm5vdGF0aW9ucwor ICAgICAgICAgICAgICAgICA9IGVuX2RhdGEuZ2V0X2Fubm90YXRpb25zKCk7CisgICAgICAgICAg ICAgZm9yZWFjaCAoc3RyaW5nIGFubm90YXRpb24gaW4gZW5fYW5ub3RhdGlvbnMpIHsKKysgICAg ICAgICAgICAgICAgLy8gRklYTUU6IEhvdyB0byBjYXN0IEdMaWIuQ29tcGFyZUZ1bmM8c3RyaW5n PiB0byBzdHJjbXA/CisgICAgICAgICAgICAgICAgIGlmIChhbm5vdGF0aW9ucy5maW5kX2N1c3Rv bSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgKEdMaWIuQ29tcGFyZUZ1bmM8c3RyaW5nPilHTGliLnN0cmNtcCkg PT0gbnVsbCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGliLnN0cmNtcCkgPT0g bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgYW5ub3RhdGlvbnMuYXBwZW5kKGFubm90YXRp b24uZHVwKCkpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorQEAgLTUwNCw2 ICs0NzAsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgfQor ICAgICB9CisgCisrCisgICAgIHByaXZhdGUgdm9pZCB1cGRhdGVfY2F0ZWdvcnlfdG9fZW1vamlz X2RpY3QoSUJ1cy5FbW9qaURhdGEgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJpbmcgICAgICAgICBsYW5nKSB7CisgICAgICAgICBzdHJp bmcgZW1vamkgPSBkYXRhLmdldF9lbW9qaSgpOworQEAgLTUyNSwyOSArNDkyLDEyIEBAIGNsYXNz IElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICB9CisgICAgIH0KKyAKKysKKyAg ICAgcHJpdmF0ZSB2b2lkIHNldF9maXhlZF9zaXplKCkgeworLSAgICAgICAgaWYgKCFtX2NhbmRp ZGF0ZV9wYW5lbF9pc192aXNpYmxlICYmCistICAgICAgICAgICAgbV9jdXJyZW50X2NhdGVnb3J5 X3R5cGUgPT0gQ2F0ZWdvcnlUeXBlLkxBTkcpIHsKKy0gICAgICAgICAgICBHdGsuUG9saWN5VHlw ZSB2cG9saWN5OworLSAgICAgICAgICAgIG1fc2Nyb2xsZWRfd2luZG93LmdldF9wb2xpY3kobnVs bCwgb3V0IHZwb2xpY3kpOworLSAgICAgICAgICAgIGlmICh2cG9saWN5ID09IEd0ay5Qb2xpY3lU eXBlLkFVVE9NQVRJQykKKy0gICAgICAgICAgICAgICAgcmV0dXJuOworLSAgICAgICAgICAgIGlu dCB3aWR0aCwgaGVpZ2h0OworLSAgICAgICAgICAgIGdldF9zaXplKG91dCB3aWR0aCwgb3V0IGhl aWdodCk7CistICAgICAgICAgICAgc2V0X3NpemVfcmVxdWVzdCh3aWR0aCwgaGVpZ2h0KTsKKy0g ICAgICAgICAgICBpZiAobV9zY3JvbGxlZF93aW5kb3cgIT0gbnVsbCkgeworLSAgICAgICAgICAg ICAgICBtX3Njcm9sbGVkX3dpbmRvdy5zZXRfcG9saWN5KEd0ay5Qb2xpY3lUeXBlLk5FVkVSLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0ay5Qb2xpY3lU eXBlLkFVVE9NQVRJQyk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfSBlbHNlIHsKKy0gICAg ICAgICAgICByZXNpemUoMjAsIDEpOworLSAgICAgICAgICAgIGlmIChtX3Njcm9sbGVkX3dpbmRv dyAhPSBudWxsKSB7CistICAgICAgICAgICAgICAgIG1fc2Nyb2xsZWRfd2luZG93LnNldF9wb2xp Y3koR3RrLlBvbGljeVR5cGUuTkVWRVIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR3RrLlBvbGljeVR5cGUuTkVWRVIpOworLSAgICAgICAgICAgIH0KKy0g ICAgICAgIH0KKysgICAgICAgIHJlc2l6ZSgyMCwgMSk7CisgICAgIH0KKyAKKysKKyAgICAgcHJp dmF0ZSB2b2lkIHJlbW92ZV9hbGxfY2hpbGRyZW4oKSB7CisgICAgICAgICBmb3JlYWNoIChHdGsu V2lkZ2V0IHcgaW4gbV92Ym94LmdldF9jaGlsZHJlbigpKSB7CisgICAgICAgICAgICAgaWYgKHcu bmFtZSA9PSAiSUJ1c0Vtb2ppZXJFbnRyeSIgfHwKK0BAIC01NTgsNTEgKzUwOCwxNiBAQCBjbGFz cyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgfQorICAgICB9CisgCistICAg IHByaXZhdGUgdm9pZCBhY3RpdmF0ZWRfbGFuZ3VhZ2UoRUJveFJvdyByb3cpIHsKKy0gICAgICAg IG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4ID0gMDsKKy0gICAgICAgIGlmIChtX2N1cnJlbnRfbGFu Z19pZCAhPSByb3cuaWQpIHsKKy0gICAgICAgICAgICBtX2N1cnJlbnRfbGFuZ19pZCA9IHJvdy5p ZDsKKy0gICAgICAgICAgICBtX2N1cnJlbnRfbGFuZ3VhZ2UgPSByb3cudGV4dDsKKy0gICAgICAg ICAgICByZWxvYWRfZW1vamlfZGljdCgpOworLSAgICAgICAgfQorLSAgICAgICAgbV9jdXJyZW50 X2NhdGVnb3J5X3R5cGUgPSBDYXRlZ29yeVR5cGUuRU1PSkk7CistICAgICAgICBzaG93X2NhdGVn b3J5X2xpc3QoKTsKKy0gICAgfQorIAorICAgICBwcml2YXRlIHZvaWQgc2hvd19jYXRlZ29yeV9s aXN0KCkgeworICAgICAgICAgcmVtb3ZlX2FsbF9jaGlsZHJlbigpOworICAgICAgICAgbV9zY3Jv bGxlZF93aW5kb3cgPSBuZXcgRVNjcm9sbGVkV2luZG93KCk7CisgICAgICAgICBzZXRfZml4ZWRf c2l6ZSgpOworLSAgICAgICAgRVBhZGRlZExhYmVsIGxhYmVsOworLSAgICAgICAgaWYgKG1fY3Vy cmVudF9jYXRlZ29yeV90eXBlID09IENhdGVnb3J5VHlwZS5FTU9KSSkgeworLSAgICAgICAgICAg IGxhYmVsID0gbmV3IEVQYWRkZWRMYWJlbChtX2N1cnJlbnRfbGFuZ3VhZ2UsIEd0ay5BbGlnbi5D RU5URVIpOworLSAgICAgICAgfSBlbHNlIGlmIChtX2N1cnJlbnRfY2F0ZWdvcnlfdHlwZSA9PSBD YXRlZ29yeVR5cGUuTEFORykgeworLSAgICAgICAgICAgIGxhYmVsID0gbmV3IEVQYWRkZWRMYWJl bChtX2N1cnJlbnRfbGFuZ3VhZ2UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEd0ay5BbGlnbi5DRU5URVIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRyYXZlbERpcmVjdGlvbi5CQUNLV0FSRCk7CistICAgICAgICB9IGVsc2UgeworLSAgICAg ICAgICAgIGxhYmVsID0gbmV3IEVQYWRkZWRMYWJlbCgiIiwgR3RrLkFsaWduLkNFTlRFUik7Cist ICAgICAgICB9CistICAgICAgICBHdGsuQnV0dG9uIGJ1dHRvbiA9IG5ldyBHdGsuQnV0dG9uKCk7 CistICAgICAgICBidXR0b24uYWRkKGxhYmVsKTsKKy0gICAgICAgIG1fdmJveC5hZGQoYnV0dG9u KTsKKy0gICAgICAgIGJ1dHRvbi5zaG93X2FsbCgpOworLSAgICAgICAgaWYgKG1fY3VycmVudF9j YXRlZ29yeV90eXBlID09IENhdGVnb3J5VHlwZS5FTU9KSSkgeworLSAgICAgICAgICAgIGJ1dHRv bi5idXR0b25fcHJlc3NfZXZlbnQuY29ubmVjdCgoZSkgPT4geworLSAgICAgICAgICAgICAgICBt X2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA9IDA7CistICAgICAgICAgICAgICAgIG1fY3VycmVudF9j YXRlZ29yeV90eXBlID0gQ2F0ZWdvcnlUeXBlLkxBTkc7CistICAgICAgICAgICAgICAgIHNob3df Y2F0ZWdvcnlfbGlzdCgpOworLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKy0gICAgICAg ICAgICB9KTsKKy0gICAgICAgIH0gZWxzZSBpZiAobV9jdXJyZW50X2NhdGVnb3J5X3R5cGUgPT0g Q2F0ZWdvcnlUeXBlLkxBTkcpIHsKKy0gICAgICAgICAgICBidXR0b24uYnV0dG9uX3ByZXNzX2V2 ZW50LmNvbm5lY3QoKGUpID0+IHsKKy0gICAgICAgICAgICAgICAgbV9jYXRlZ29yeV9hY3RpdmVf aW5kZXggPSAwOworLSAgICAgICAgICAgICAgICBtX2N1cnJlbnRfY2F0ZWdvcnlfdHlwZSA9IENh dGVnb3J5VHlwZS5FTU9KSTsKKy0gICAgICAgICAgICAgICAgc2hvd19jYXRlZ29yeV9saXN0KCk7 CistICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworLSAgICAgICAgICAgIH0pOworLSAgICAg ICAgfQorIAorKyAgICAgICAgc3RyaW5nIGxhbmd1YWdlID0gIiVzICglcykiLnByaW50ZigKKysg ICAgICAgICAgICBfKCJFbW9qaSBEaWFsb2ciKSwKKysgICAgICAgICAgICBJQnVzLmdldF9sYW5n dWFnZV9uYW1lKG1fY3VycmVudF9sYW5nX2lkKSk7CisrICAgICAgICBtX3RpdGxlLnNldF9sYWJl bChsYW5ndWFnZSk7CisgICAgICAgICBtX3Zib3guYWRkKG1fc2Nyb2xsZWRfd2luZG93KTsKKyAg ICAgICAgIEd0ay5WaWV3cG9ydCB2aWV3cG9ydCA9IG5ldyBHdGsuVmlld3BvcnQobnVsbCwgbnVs bCk7CisgICAgICAgICBtX3Njcm9sbGVkX3dpbmRvdy5hZGQodmlld3BvcnQpOworQEAgLTYxMSw1 OSArNTI2LDM4IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICB2 aWV3cG9ydC5hZGQobV9saXN0X2JveCk7CisgICAgICAgICBHdGsuQWRqdXN0bWVudCBhZGp1c3Rt ZW50ID0gbV9zY3JvbGxlZF93aW5kb3cuZ2V0X3ZhZGp1c3RtZW50KCk7CisgICAgICAgICBtX2xp c3RfYm94LnNldF9hZGp1c3RtZW50KGFkanVzdG1lbnQpOworLSAgICAgICAgaWYgKG1fY3VycmVu dF9jYXRlZ29yeV90eXBlID09IENhdGVnb3J5VHlwZS5FTU9KSSkgeworLSAgICAgICAgICAgIG1f bGlzdF9ib3gucm93X2FjdGl2YXRlZC5jb25uZWN0KChib3gsIGd0a3JvdykgPT4geworLSAgICAg ICAgICAgICAgICBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA9IDA7CistICAgICAgICAgICAgICAg IEVCb3hSb3cgcm93ID0gZ3Rrcm93IGFzIEVCb3hSb3c7CistICAgICAgICAgICAgICAgIHNob3df ZW1vamlfZm9yX2NhdGVnb3J5KHJvdyk7CistICAgICAgICAgICAgfSk7CisrICAgICAgICBtX2xp c3RfYm94LnJvd19hY3RpdmF0ZWQuY29ubmVjdCgoYm94LCBndGtyb3cpID0+IHsKKysgICAgICAg ICAgICBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA9IDA7CisrICAgICAgICAgICAgRUJveFJvdyBy b3cgPSBndGtyb3cgYXMgRUJveFJvdzsKKysgICAgICAgICAgICBzaG93X2Vtb2ppX2Zvcl9jYXRl Z29yeShyb3cpOworKyAgICAgICAgfSk7CisgCistICAgICAgICAgICAgdWludCBuID0gMTsKKy0g ICAgICAgICAgICBpZiAobV9mYXZvcml0ZXMubGVuZ3RoID4gMCkgeworLSAgICAgICAgICAgICAg ICBFQm94Um93IHJvdyA9IG5ldyBFQm94Um93KCJAZmF2b3JpdGVzIik7CistICAgICAgICAgICAg ICAgIEVQYWRkZWRMYWJlbCB3aWRnZXQgPQorLSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBF UGFkZGVkTGFiZWwoXygiRmF2b3JpdGVzIiksIEd0ay5BbGlnbi5DRU5URVIpOworLSAgICAgICAg ICAgICAgICByb3cuYWRkKHdpZGdldCk7CistICAgICAgICAgICAgICAgIG1fbGlzdF9ib3guYWRk KHJvdyk7CistICAgICAgICAgICAgICAgIGlmIChuKysgPT0gbV9jYXRlZ29yeV9hY3RpdmVfaW5k ZXgpCistICAgICAgICAgICAgICAgICAgICBtX2xpc3RfYm94LnNlbGVjdF9yb3cocm93KTsKKy0g ICAgICAgICAgICB9CistICAgICAgICAgICAgR0xpYi5MaXN0PHVub3duZWQgc3RyaW5nPiBjYXRl Z29yaWVzID0KKy0gICAgICAgICAgICAgICAgICAgIG1fY2F0ZWdvcnlfdG9fZW1vamlzX2RpY3Qu Z2V0X2tleXMoKTsKKy0gICAgICAgICAgICBjYXRlZ29yaWVzLnNvcnQoKGEsIGIpID0+IHsKKy0g ICAgICAgICAgICAgICAgcmV0dXJuIEdMaWIuc3RyY21wKF8oYSksIF8oYikpOworLSAgICAgICAg ICAgIH0pOworLSAgICAgICAgICAgIGZvcmVhY2ggKHVub3duZWQgc3RyaW5nIGNhdGVnb3J5IGlu IGNhdGVnb3JpZXMpIHsKKy0gICAgICAgICAgICAgICAgRUJveFJvdyByb3cgPSBuZXcgRUJveFJv dyhjYXRlZ29yeSk7CistICAgICAgICAgICAgICAgIHN0cmluZyBsb2NhbGVfY2F0ZWdvcnkgPSBf KGNhdGVnb3J5KTsKKy0gICAgICAgICAgICAgICAgRVBhZGRlZExhYmVsIHdpZGdldCA9CistICAg ICAgICAgICAgICAgICAgICAgICAgbmV3IEVQYWRkZWRMYWJlbCh1dGY4X3RpdGxlKGxvY2FsZV9j YXRlZ29yeSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGsu QWxpZ24uQ0VOVEVSKTsKKy0gICAgICAgICAgICAgICAgcm93LmFkZCh3aWRnZXQpOworLSAgICAg ICAgICAgICAgICBtX2xpc3RfYm94LmFkZChyb3cpOworLSAgICAgICAgICAgICAgICBpZiAobisr ID09IG1fY2F0ZWdvcnlfYWN0aXZlX2luZGV4KQorLSAgICAgICAgICAgICAgICAgICAgbV9saXN0 X2JveC5zZWxlY3Rfcm93KHJvdyk7CistICAgICAgICAgICAgfQorLSAgICAgICAgfSBlbHNlIGlm IChtX2N1cnJlbnRfY2F0ZWdvcnlfdHlwZSA9PSBDYXRlZ29yeVR5cGUuTEFORykgeworLSAgICAg ICAgICAgIG1fbGlzdF9ib3gucm93X2FjdGl2YXRlZC5jb25uZWN0KChib3gsIGd0a3JvdykgPT4g eworLSAgICAgICAgICAgICAgICBhY3RpdmF0ZWRfbGFuZ3VhZ2UoZ3Rrcm93IGFzIEVCb3hSb3cp OworLSAgICAgICAgICAgIH0pOworLSAgICAgICAgICAgIHVpbnQgbiA9IDE7CistICAgICAgICAg ICAgc3RyaW5nIHByZXZfbGFuZ3VhZ2UgPSBudWxsOworLSAgICAgICAgICAgIGZvcmVhY2ggKHVu b3duZWQgc3RyaW5nIGlkIGluIG1fbGFuZ19saXN0KSB7CistICAgICAgICAgICAgICAgIHN0cmlu ZyBsYW5ndWFnZSA9IElCdXMuZ2V0X2xhbmd1YWdlX25hbWUoaWQpOworLSAgICAgICAgICAgICAg ICBpZiAocHJldl9sYW5ndWFnZSA9PSBsYW5ndWFnZSkKKy0gICAgICAgICAgICAgICAgICAgIGxh bmd1YWdlID0gIiVzICglcykiLnByaW50ZihsYW5ndWFnZSwgaWQpOworLSAgICAgICAgICAgICAg ICBlbHNlCistICAgICAgICAgICAgICAgICAgICBwcmV2X2xhbmd1YWdlID0gbGFuZ3VhZ2U7Cist ICAgICAgICAgICAgICAgIEVCb3hSb3cgcm93ID0gbmV3IEVCb3hSb3cobGFuZ3VhZ2UsIGlkKTsK Ky0gICAgICAgICAgICAgICAgRVBhZGRlZExhYmVsIHdpZGdldCA9CistICAgICAgICAgICAgICAg ICAgICAgICAgbmV3IEVQYWRkZWRMYWJlbChsYW5ndWFnZSwgR3RrLkFsaWduLkNFTlRFUik7Cist ICAgICAgICAgICAgICAgIHJvdy5hZGQod2lkZ2V0KTsKKy0gICAgICAgICAgICAgICAgbV9saXN0 X2JveC5hZGQocm93KTsKKy0gICAgICAgICAgICAgICAgaWYgKG4rKyA9PSBtX2NhdGVnb3J5X2Fj dGl2ZV9pbmRleCkKKy0gICAgICAgICAgICAgICAgICAgIG1fbGlzdF9ib3guc2VsZWN0X3Jvdyhy b3cpOworLSAgICAgICAgICAgIH0KKysgICAgICAgIHVpbnQgbiA9IDE7CisrICAgICAgICBpZiAo bV9mYXZvcml0ZXMubGVuZ3RoID4gMCkgeworKyAgICAgICAgICAgIEVCb3hSb3cgcm93ID0gbmV3 IEVCb3hSb3coIkBmYXZvcml0ZXMiKTsKKysgICAgICAgICAgICBFUGFkZGVkTGFiZWwgd2lkZ2V0 ID0KKysgICAgICAgICAgICAgICAgICAgIG5ldyBFUGFkZGVkTGFiZWwoXygiRmF2b3JpdGVzIiks IEd0ay5BbGlnbi5DRU5URVIpOworKyAgICAgICAgICAgIHJvdy5hZGQod2lkZ2V0KTsKKysgICAg ICAgICAgICBtX2xpc3RfYm94LmFkZChyb3cpOworKyAgICAgICAgICAgIGlmIChuKysgPT0gbV9j YXRlZ29yeV9hY3RpdmVfaW5kZXgpCisrICAgICAgICAgICAgICAgIG1fbGlzdF9ib3guc2VsZWN0 X3Jvdyhyb3cpOworKyAgICAgICAgfQorKyAgICAgICAgR0xpYi5MaXN0PHVub3duZWQgc3RyaW5n PiBjYXRlZ29yaWVzID0KKysgICAgICAgICAgICAgICAgbV9jYXRlZ29yeV90b19lbW9qaXNfZGlj dC5nZXRfa2V5cygpOworKyAgICAgICAgLy8gRklYTUU6IEhvdyB0byBjYXN0IEdMaWIuQ29tcGFy ZUZ1bmM8c3RyaW5nPiB0byBzdHJjbXA/CisrICAgICAgICBjYXRlZ29yaWVzLnNvcnQoKGEsIGIp ID0+IHsKKysgICAgICAgICAgICByZXR1cm4gR0xpYi5zdHJjbXAoXyhhKSwgXyhiKSk7CisrICAg ICAgICB9KTsKKysgICAgICAgIGZvcmVhY2ggKHVub3duZWQgc3RyaW5nIGNhdGVnb3J5IGluIGNh dGVnb3JpZXMpIHsKKysgICAgICAgICAgICBFQm94Um93IHJvdyA9IG5ldyBFQm94Um93KGNhdGVn b3J5KTsKKysgICAgICAgICAgICBzdHJpbmcgbG9jYWxlX2NhdGVnb3J5ID0gXyhjYXRlZ29yeSk7 CisrICAgICAgICAgICAgRVBhZGRlZExhYmVsIHdpZGdldCA9CisrICAgICAgICAgICAgICAgICAg ICBuZXcgRVBhZGRlZExhYmVsKHV0ZjhfdGl0bGUobG9jYWxlX2NhdGVnb3J5KSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrLkFsaWduLkNFTlRFUik7CisrICAgICAg ICAgICAgcm93LmFkZCh3aWRnZXQpOworKyAgICAgICAgICAgIG1fbGlzdF9ib3guYWRkKHJvdyk7 CisrICAgICAgICAgICAgaWYgKG4rKyA9PSBtX2NhdGVnb3J5X2FjdGl2ZV9pbmRleCkKKysgICAg ICAgICAgICAgICAgbV9saXN0X2JveC5zZWxlY3Rfcm93KHJvdyk7CisgICAgICAgICB9CisgCisg ICAgICAgICBtX3Njcm9sbGVkX3dpbmRvdy5zaG93X2FsbCgpOworQEAgLTY3Myw2ICs1NjcsNyBA QCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgbV9saXN0X2JveC5z ZXRfc2VsZWN0aW9uX21vZGUoR3RrLlNlbGVjdGlvbk1vZGUuU0lOR0xFKTsKKyAgICAgfQorIAor KworICAgICBwcml2YXRlIHZvaWQgc2hvd19lbW9qaV9mb3JfY2F0ZWdvcnkoRUJveFJvdyByb3cp IHsKKyAgICAgICAgIGlmIChyb3cudGV4dCA9PSAiQGZhdm9yaXRlcyIpIHsKKyAgICAgICAgICAg ICBtX2xvb2t1cF90YWJsZS5jbGVhcigpOworQEAgLTY5NCw2ICs1ODksNyBAQCBjbGFzcyBJQnVz RW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgc2hvd19jYW5kaWRhdGVfcGFuZWwoKTsK KyAgICAgfQorIAorKworICAgICBwcml2YXRlIHZvaWQgc2hvd19hcnJvd19idXR0b25zKCkgewor ICAgICAgICAgR3RrLkJ1dHRvbiBuZXh0X2J1dHRvbiA9IG5ldyBHdGsuQnV0dG9uKCk7CisgICAg ICAgICBuZXh0X2J1dHRvbi5jbGlja2VkLmNvbm5lY3QoKCkgPT4geworQEAgLTcyOSw2ICs2MjUs NyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgYnV0dG9uc19o Ym94LnNob3dfYWxsKCk7CisgICAgIH0KKyAKKysKKyAgICAgcHJpdmF0ZSBib29sIGNoZWNrX3Vu aWNvZGVfcG9pbnQoc3RyaW5nPyBhbm5vdGF0aW9uPW51bGwpIHsKKyAgICAgICAgIGJvb2wgY2hl Y2tfeGRpZ2l0X29ubHkgPSB0cnVlOworICAgICAgICAgaWYgKGFubm90YXRpb24gPT0gbnVsbCkg eworQEAgLTc1OCw2ICs2NTUsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgewor ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAKKysKKyAgICAgcHVibGljIHZvaWQgdXBk YXRlX2NhbmRpZGF0ZV93aW5kb3coKSB7CisgICAgICAgICBzdHJpbmcgYW5ub3RhdGlvbiA9IG1f ZW50cnkuZ2V0X3RleHQoKTsKKyAgICAgICAgIGlmIChhbm5vdGF0aW9uLmxlbmd0aCA9PSAwKSB7 CitAQCAtNzg4LDYgKzY4Niw3IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7Cisg ICAgICAgICBzaG93X2NhbmRpZGF0ZV9wYW5lbCgpOworICAgICB9CisgCisrCisgICAgIHByaXZh dGUgdm9pZCBzaG93X2NhbmRpZGF0ZV9wYW5lbCgpIHsKKyAgICAgICAgIHJlbW92ZV9hbGxfY2hp bGRyZW4oKTsKKyAgICAgICAgIHNldF9maXhlZF9zaXplKCk7CitAQCAtODQ4LDYgKzc0Nyw4IEBA IGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICAgICAgICAgIC8vIGVu dGVyX25vdGlmeV9ldmVudCBjb25mbGljdHMgd2l0aCBrZXlib2FyZCBvcGVyYXRpb25zLgorICAg ICAgICAgICAgICAgICBpZiAoIW1fZW50ZXJfbm90aWZ5X2VuYWJsZSkKKyAgICAgICAgICAgICAg ICAgICAgIHJldHVybiB0cnVlOworKyAgICAgICAgICAgICAgICBpZiAobV9sb29rdXBfdGFibGUu Z2V0X2N1cnNvcl9wb3MoKSA9PSBpbmRleCkKKysgICAgICAgICAgICAgICAgICAgIHJldHVybiB0 cnVlOworICAgICAgICAgICAgICAgICBtX2xvb2t1cF90YWJsZS5zZXRfY3Vyc29yX3BvcyhpbmRl eCk7CisgICAgICAgICAgICAgICAgIGlmIChtX2VudHJ5X25vdGlmeV9zaG93X2lkID4gMCkgewor ICAgICAgICAgICAgICAgICAgICAgICAgIEdMaWIuU291cmNlLnJlbW92ZShtX2VudHJ5X25vdGlm eV9zaG93X2lkKTsKK0BAIC05MjcsNiArODI4LDcgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsu V2luZG93IHsKKyAgICAgICAgIH0KKyAgICAgfQorIAorKworICAgICBwcml2YXRlIHZvaWQgaGlk ZV9jYW5kaWRhdGVfcGFuZWwoKSB7CisgICAgICAgICBtX2VudGVyX25vdGlmeV9lbmFibGUgPSB0 cnVlOworICAgICAgICAgbV9jYW5kaWRhdGVfcGFuZWxfaXNfdmlzaWJsZSA9IGZhbHNlOworQEAg LTkzNCw2ICs4MzYsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAg ICAgICAgIHNob3dfY2F0ZWdvcnlfbGlzdCgpOworICAgICB9CisgCisrCisgICAgIHByaXZhdGUg Ym9vbCBpZl9pbl9yYW5nZV9vZl9sb29rdXAodWludCBrZXl2YWwpIHsKKyAgICAgICAgIGlmICgh bV9jYW5kaWRhdGVfcGFuZWxfaXNfdmlzaWJsZSkKKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CitAQCAtOTU3LDYgKzg2MCw3IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7Cisg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgfQorIAorKworICAgICBwcml2YXRlIHZvaWQgc2V0 X251bWJlcl9vbl9sb29rdXAodWludCBrZXl2YWwpIHsKKyAgICAgICAgIGlmIChrZXl2YWwgPT0g R2RrLktleS5AMCkKKyAgICAgICAgICAgICBrZXl2YWwgPSBHZGsuS2V5LkA5ICsgMTsKK0BAIC05 NjksNiArODczLDcgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAg IG1fcmVzdWx0ID0gdGV4dC50ZXh0OworICAgICB9CisgCisrCisgICAgIHByaXZhdGUgdm9pZCBl bnRlcl9ub3RpZnlfZGlzYWJsZV93aXRoX3RpbWVyKCkgeworICAgICAgICAgLy8gRW5hYmxlIGtl eWJvYXJkIG9wZXJhdGlvbiBhbmQgZGlzYWJsZSBtb3VzZSBvcGVyYXRpb24uCisgICAgICAgICBt X2VudGVyX25vdGlmeV9lbmFibGUgPSBmYWxzZTsKK0BAIC05ODIsNiArODg3LDcgQEAgY2xhc3Mg SUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIH0pOworICAgICB9CisgCisrCisg ICAgIHByaXZhdGUgdm9pZCBjYW5kaWRhdGVfcGFuZWxfY3Vyc29yX2Rvd24oKSB7CisgICAgICAg ICBlbnRlcl9ub3RpZnlfZGlzYWJsZV93aXRoX3RpbWVyKCk7CisgICAgICAgICB1aW50IG5jYW5k aWRhdGVzID0gbV9sb29rdXBfdGFibGUuZ2V0X251bWJlcl9vZl9jYW5kaWRhdGVzKCk7CitAQCAt OTk2LDYgKzkwMiw3IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAg ICBzaG93X2NhbmRpZGF0ZV9wYW5lbCgpOworICAgICB9CisgCisrCisgICAgIHByaXZhdGUgdm9p ZCBjYW5kaWRhdGVfcGFuZWxfY3Vyc29yX3VwKCkgeworICAgICAgICAgZW50ZXJfbm90aWZ5X2Rp c2FibGVfd2l0aF90aW1lcigpOworICAgICAgICAgaW50IG5jYW5kaWRhdGVzID0gKGludCltX2xv b2t1cF90YWJsZS5nZXRfbnVtYmVyX29mX2NhbmRpZGF0ZXMoKTsKK0BAIC0xMDEzLDYgKzkyMCw3 IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICBzaG93X2NhbmRp ZGF0ZV9wYW5lbCgpOworICAgICB9CisgCisrCisgICAgIHByaXZhdGUgdm9pZCBjYXRlZ29yeV9s aXN0X2N1cnNvcl9tb3ZlKHVpbnQga2V5dmFsKSB7CisgICAgICAgICBHTGliLkxpc3Q8d2VhayBH dGsuV2lkZ2V0PiBsaXN0ID0gbV9saXN0X2JveC5nZXRfY2hpbGRyZW4oKTsKKyAgICAgICAgIGlm IChrZXl2YWwgPT0gR2RrLktleS5Eb3duKSB7CitAQCAtMTAyNyw2ICs5MzUsNyBAQCBjbGFzcyBJ QnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgc2hvd19jYXRlZ29yeV9saXN0KCk7 CisgICAgIH0KKyAKKysKKyAgICAgcHJpdmF0ZSBib29sIGtleV9wcmVzc19jdXJzb3JfaG9yaXpv bnRhbCh1aW50IGtleXZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50IG1vZGlmaWVycykgeworICAgICAgICAgYXNzZXJ0IChrZXl2YWwgPT0gR2Rr LktleS5MZWZ0IHx8IGtleXZhbCA9PSBHZGsuS2V5LlJpZ2h0KTsKK0BAIC0xMDYxLDYgKzk3MCw3 IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgfQorIAorKworICAgICBwcml2YXRlIGJvb2wga2V5X3ByZXNzX2N1cnNvcl92ZXJ0 aWNhbCh1aW50IGtleXZhbCkgeworICAgICAgICAgYXNzZXJ0IChrZXl2YWwgPT0gR2RrLktleS5E b3duIHx8IGtleXZhbCA9PSBHZGsuS2V5LlVwKTsKKyAKK0BAIC0xMDc1LDYgKzk4NSw3IEBAIGNs YXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgfQorIAorKworICAgICBwcml2YXRlIGJvb2wga2V5X3ByZXNzX2N1cnNvcl9ob21lX2VuZCh1 aW50IGtleXZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludCBtb2RpZmllcnMpIHsKKyAgICAgICAgIGFzc2VydCAoa2V5dmFsID09IEdkay5LZXkuSG9t ZSB8fCBrZXl2YWwgPT0gR2RrLktleS5FbmQpOworQEAgLTExMDcsMTQgKzEwMTgsMTEgQEAgY2xh c3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgfQorIAorKworICAgICBwcml2YXRlIGJvb2wga2V5X3ByZXNzX2N1cnNvcl9lc2NhcGUoKSB7 CisgICAgICAgICBpZiAobV9jYW5kaWRhdGVfcGFuZWxfaXNfdmlzaWJsZSkgeworICAgICAgICAg ICAgIGhpZGVfY2FuZGlkYXRlX3BhbmVsKCk7CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cist ICAgICAgICB9IGVsc2UgaWYgKG1fY3VycmVudF9jYXRlZ29yeV90eXBlID09IENhdGVnb3J5VHlw ZS5MQU5HKSB7CistICAgICAgICAgICAgbV9jdXJyZW50X2NhdGVnb3J5X3R5cGUgPSBDYXRlZ29y eVR5cGUuRU1PSkk7CistICAgICAgICAgICAgc2hvd19jYW5kaWRhdGVfcGFuZWwoKTsKKy0gICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgIH0gZWxzZSBpZiAobV9lbnRyeS5nZXRfdGV4 dCgpLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICAgbV9sb29wLnF1aXQoKTsKKyAgICAgICAg ICAgICBoaWRlX2NhbmRpZGF0ZV9wYW5lbCgpOworQEAgLTExMjQsNiArMTAzMiw3IEBAIGNsYXNz IElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg fQorIAorKworICAgICBwcml2YXRlIHZvaWQgZW50cnlfZW50ZXJfa2V5dmFsKHVpbnQga2V5dmFs KSB7CisgICAgICAgICB1bmljaGFyIGNoID0gSUJ1cy5rZXl2YWxfdG9fdW5pY29kZShrZXl2YWwp OworICAgICAgICAgaWYgKGNoLmlzY250cmwoKSkKK0BAIC0xMTQ1LDYgKzEwNTQsNyBAQCBjbGFz cyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgbV9lbnRyeS5zZXRfcG9zaXRp b24ocG9zKTsKKyAgICAgfQorIAorKworICAgICBwdWJsaWMgc3RyaW5nIHJ1bihHZGsuRXZlbnQg ZXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyAgICBpbnB1dF9jb250ZXh0X3Bh dGgpIHsKKyAgICAgICAgIGFzc2VydCAobV9sb29wID09IG51bGwpOworQEAgLTExNzgsNyArMTA4 OCw2IEBAIGNsYXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICAgICAga2V5 Ym9hcmQgPSBkZXZpY2UuZ2V0X2Fzc29jaWF0ZWRfZGV2aWNlKCk7CisgICAgICAgICB9CisgCist ICAgICAgICBtX2N1cnJlbnRfY2F0ZWdvcnlfdHlwZSA9IENhdGVnb3J5VHlwZS5FTU9KSTsKKyAg ICAgICAgIHNob3dfY2F0ZWdvcnlfbGlzdCgpOworICAgICAgICAgbV9lbnRyeS5zZXRfYWN0aXZh dGVzX2RlZmF1bHQodHJ1ZSk7CisgICAgICAgICBzaG93X2FsbCgpOworQEAgLTEyMjksMTIgKzEx MzgsMTQgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBHdGsuV2luZG93IHsKKyAgICAgICAgIHJldHVy biBtX3Jlc3VsdDsKKyAgICAgfQorIAorKworICAgICAvKiBvdmVycmlkZSB2aXJ0dWFsIGZ1bmN0 aW9ucyAqLworICAgICBwdWJsaWMgb3ZlcnJpZGUgdm9pZCBzaG93KCkgeworICAgICAgICAgYmFz ZS5zaG93KCk7CisgICAgICAgICBzZXRfZm9jdXNfdmlzaWJsZSh0cnVlKTsKKyAgICAgfQorIAor KworICAgICBwdWJsaWMgb3ZlcnJpZGUgYm9vbCBrZXlfcHJlc3NfZXZlbnQoR2RrLkV2ZW50S2V5 IGV2ZW50KSB7CisgICAgICAgICB1aW50IGtleXZhbCA9IGV2ZW50LmtleXZhbDsKKyAgICAgICAg IHVpbnQgbW9kaWZpZXJzID0gZXZlbnQuc3RhdGU7CitAQCAtMTI2MywxMCArMTE3NCw3IEBAIGNs YXNzIElCdXNFbW9qaWVyIDogR3RrLldpbmRvdyB7CisgICAgICAgICAgICAgfSBlbHNlIGlmICht X2NhdGVnb3J5X2FjdGl2ZV9pbmRleCA+IDApIHsKKyAgICAgICAgICAgICAgICAgR3RrLkxpc3RC b3hSb3cgZ3Rrcm93ID0gbV9saXN0X2JveC5nZXRfc2VsZWN0ZWRfcm93KCk7CisgICAgICAgICAg ICAgICAgIEVCb3hSb3cgcm93ID0gZ3Rrcm93IGFzIEVCb3hSb3c7CistICAgICAgICAgICAgICAg IGlmIChtX2N1cnJlbnRfY2F0ZWdvcnlfdHlwZSA9PSBDYXRlZ29yeVR5cGUuRU1PSkkpCistICAg ICAgICAgICAgICAgICAgICBzaG93X2Vtb2ppX2Zvcl9jYXRlZ29yeShyb3cpOworLSAgICAgICAg ICAgICAgICBlbHNlIGlmIChtX2N1cnJlbnRfY2F0ZWdvcnlfdHlwZSA9PSBDYXRlZ29yeVR5cGUu TEFORykKKy0gICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlZF9sYW5ndWFnZShyb3cpOworKyAg ICAgICAgICAgICAgICBzaG93X2Vtb2ppX2Zvcl9jYXRlZ29yeShyb3cpOworICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgIGNhc2UgR2RrLktleS5CYWNr U3BhY2U6CitAQCAtMTM2NiwyNyArMTI3NCwzMyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5X aW5kb3cgeworICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0KKyAKKysKKyAgICAgcHVibGlj IGJvb2wgaXNfcnVubmluZygpIHsKKyAgICAgICAgIHJldHVybiBtX2lzX3J1bm5pbmc7CisgICAg IH0KKyAKKysKKyAgICAgcHVibGljIHN0cmluZyBnZXRfaW5wdXRfY29udGV4dF9wYXRoKCkgewor ICAgICAgICAgcmV0dXJuIG1faW5wdXRfY29udGV4dF9wYXRoOworICAgICB9CisgCisrCisgICAg IHB1YmxpYyBzdHJpbmcgZ2V0X3NlbGVjdGVkX3N0cmluZygpIHsKKyAgICAgICAgIHJldHVybiBt X3Jlc3VsdDsKKyAgICAgfQorIAorKworICAgICBwdWJsaWMgdm9pZCByZXNldCgpIHsKKyAgICAg ICAgIG1faW5wdXRfY29udGV4dF9wYXRoID0gIiI7CisgICAgICAgICBtX3Jlc3VsdCA9IG51bGw7 CisgICAgIH0KKyAKKysKKyAgICAgcHVibGljIHZvaWQgc2V0X2Vtb2ppX2ZvbnQoc3RyaW5nIGVt b2ppX2ZvbnQpIHsKKyAgICAgICAgIG1fZW1vamlfZm9udCA9IGVtb2ppX2ZvbnQ7CisgICAgIH0K KyAKKysKKyAgICAgcHVibGljIHZvaWQgc2V0X2Zhdm9yaXRlcyhzdHJpbmdbXT8gdW5vd25lZF9m YXZvcml0ZXMpIHsKKyAgICAgICAgIG1fZmF2b3JpdGVzID0ge307CisgICAgICAgICBmb3JlYWNo IChzdHJpbmcgZmF2b3JpdGUgaW4gdW5vd25lZF9mYXZvcml0ZXMpIHsKK0BAIC0xMzk0LDYgKzEz MDgsNyBAQCBjbGFzcyBJQnVzRW1vamllciA6IEd0ay5XaW5kb3cgeworICAgICAgICAgfQorICAg ICB9CisgCisrCisgICAgIHB1YmxpYyBib29sIGhhc19sb2FkZWRfZW1vamlfZGljdCgpIHsKKyAg ICAgICAgIGlmIChtX2Vtb2ppX3RvX2RhdGFfZGljdCA9PSBudWxsKQorICAgICAgICAgICAgIHJl dHVybiBmYWxzZTsKK0BAIC0xNDAyLDQgKzEzMTcsMjAgQEAgY2xhc3MgSUJ1c0Vtb2ppZXIgOiBH dGsuV2luZG93IHsKKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgfQorKworKworKyAgICBwdWJsaWMgdm9pZCBzZXRfYW5ub3RhdGlvbl9sYW5n KHN0cmluZyBsYW5nKSB7CisrICAgICAgICBpZiAobV9jdXJyZW50X2xhbmdfaWQgPT0gbGFuZykK KysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICBpZiAobV9yZWxvYWRfZW1vamlfZGljdF9p ZCA+IDApIHsKKysgICAgICAgICAgICBHTGliLlNvdXJjZS5yZW1vdmUobV9yZWxvYWRfZW1vamlf ZGljdF9pZCk7CisrICAgICAgICAgICAgbV9yZWxvYWRfZW1vamlfZGljdF9pZCA9IDA7CisrICAg ICAgICB9CisrICAgICAgICBtX2N1cnJlbnRfbGFuZ19pZCA9IGxhbmc7CisrICAgICAgICBtX3Jl bG9hZF9lbW9qaV9kaWN0X2lkID0gR0xpYi5JZGxlLmFkZCgoKSA9PiB7CisrICAgICAgICAgICAg cmVsb2FkX2Vtb2ppX2RpY3QoKTsKKysgICAgICAgICAgICBtX3JlbG9hZF9lbW9qaV9kaWN0X2lk ID0gMDsKKysgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgICAgICB9KTsKKysgICAgfQor IH0KK2RpZmYgLS1naXQgYS91aS9ndGszL2lidXNlbW9qaWRpYWxvZy5oIGIvdWkvZ3RrMy9pYnVz ZW1vamlkaWFsb2cuaAoraW5kZXggYzM2MDYwYy4uMGY4NGE0OCAxMDA2NDQKKy0tLSBhL3VpL2d0 azMvaWJ1c2Vtb2ppZGlhbG9nLmgKKysrKyBiL3VpL2d0azMvaWJ1c2Vtb2ppZGlhbG9nLmgKK0BA IC0xNDksNSArMTQ5LDE2IEBAIHZvaWQgICAgICAgICAgaWJ1c19lbW9qaWVyX3NldF9mYXZvcml0 ZXMgICAgICAgICAgKElCdXNFbW9qaWVyKiBzZWxmLAorICAqLworIGdib29sZWFuICAgICAgaWJ1 c19lbW9qaWVyX2hhc19sb2FkZWRfZW1vamlfZGljdCAgKElCdXNFbW9qaWVyKiBzZWxmKTsKKyAK KysvKioKKysgKiBpYnVzX2Vtb2ppZXJfc2V0X2Fubm90YXRpb25fbGFuZzoKKysgKiBAc2VsZjog QW4gI0lCdXNFbW9qaWVyCisrICogQGxhbmc6IEEgbGFuZ2F1Z2UgaWQgZm9yIGVtb2ppIGFubm90 YXRpb25zLgorKyAqCisrICogU2V0IGEgbGFuZ3VhZ2UgaWQgZm9yIGVtb2ppIGFubm90YXRpb25z LiAjSUJ1c0Vtb2ppZXIgd2lsbCBsb2FkCisrICogJFBLR0RBVEFESVIvZGljdHMvZW1vamktQGxh bmcuZGljdC4gVGhlIGRlZmF1bHQgaXMgImVuIi4KKysgKi8KKyt2b2lkICAgICAgICAgIGlidXNf ZW1vamllcl9zZXRfYW5ub3RhdGlvbl9sYW5nICAgIChJQnVzRW1vamllciogc2VsZiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh ciogbGFuZyk7CisrCisgR19FTkRfREVDTFMKKyAjZW5kaWYKK2RpZmYgLS1naXQgYS91aS9ndGsz L3BhbmVsLnZhbGEgYi91aS9ndGszL3BhbmVsLnZhbGEKK2luZGV4IDA5ODIxMzQuLjczNTBkY2Mg MTAwNjQ0CistLS0gYS91aS9ndGszL3BhbmVsLnZhbGEKKysrKyBiL3VpL2d0azMvcGFuZWwudmFs YQorQEAgLTU0LDYgKzU0LDcgQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7Cisg ICAgIHByaXZhdGUgR0xpYi5TZXR0aW5ncyBtX3NldHRpbmdzX2dlbmVyYWwgPSBudWxsOworICAg ICBwcml2YXRlIEdMaWIuU2V0dGluZ3MgbV9zZXR0aW5nc19ob3RrZXkgPSBudWxsOworICAgICBw cml2YXRlIEdMaWIuU2V0dGluZ3MgbV9zZXR0aW5nc19wYW5lbCA9IG51bGw7CisrICAgIHByaXZh dGUgR0xpYi5TZXR0aW5ncyBtX3NldHRpbmdzX2Vtb2ppID0gbnVsbDsKKyAgICAgcHJpdmF0ZSBJ Y29uVHlwZSBtX2ljb25fdHlwZSA9IEljb25UeXBlLlNUQVRVU19JQ09OOworICAgICBwcml2YXRl IEluZGljYXRvciBtX2luZGljYXRvcjsKKyAjaWYgSU5ESUNBVE9SCitAQCAtMTYxLDYgKzE2Miw3 IEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2UgeworICAgICAgICAgbV9zZXR0aW5n c19ob3RrZXkgPQorICAgICAgICAgICAgICAgICBuZXcgR0xpYi5TZXR0aW5ncygib3JnLmZyZWVk ZXNrdG9wLmlidXMuZ2VuZXJhbC5ob3RrZXkiKTsKKyAgICAgICAgIG1fc2V0dGluZ3NfcGFuZWwg PSBuZXcgR0xpYi5TZXR0aW5ncygib3JnLmZyZWVkZXNrdG9wLmlidXMucGFuZWwiKTsKKysgICAg ICAgIG1fc2V0dGluZ3NfZW1vamkgPSBuZXcgR0xpYi5TZXR0aW5ncygib3JnLmZyZWVkZXNrdG9w LmlidXMucGFuZWwuZW1vamkiKTsKKyAKKyAgICAgICAgIG1fc2V0dGluZ3NfZ2VuZXJhbC5jaGFu Z2VkWyJwcmVsb2FkLWVuZ2luZXMiXS5jb25uZWN0KChrZXkpID0+IHsKKyAgICAgICAgICAgICAg ICAgdXBkYXRlX2VuZ2luZXMobV9zZXR0aW5nc19nZW5lcmFsLmdldF9zdHJ2KGtleSksCitAQCAt MTkzLDE5ICsxOTUsMTAgQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7CisgICAg ICAgICAgICAgICAgIGJpbmRfc3dpdGNoX3Nob3J0Y3V0KCk7CisgICAgICAgICB9KTsKKyAKKy0g ICAgICAgIG1fc2V0dGluZ3NfaG90a2V5LmNoYW5nZWRbImVtb2ppIl0uY29ubmVjdCgoa2V5KSA9 PiB7CistICAgICAgICAgICAgICAgIHVuYmluZF9zd2l0Y2hfc2hvcnRjdXQoS2V5RXZlbnRGdW5j VHlwZS5FTU9KSV9UWVBJTkcpOworLSAgICAgICAgICAgICAgICBiaW5kX2Vtb2ppX3Nob3J0Y3V0 KCk7CistICAgICAgICB9KTsKKy0KKyAgICAgICAgIG1fc2V0dGluZ3NfcGFuZWwuY2hhbmdlZFsi Y3VzdG9tLWZvbnQiXS5jb25uZWN0KChrZXkpID0+IHsKKyAgICAgICAgICAgICAgICAgc2V0X2N1 c3RvbV9mb250KCk7CisgICAgICAgICB9KTsKKyAKKy0gICAgICAgIG1fc2V0dGluZ3NfcGFuZWwu Y2hhbmdlZFsiZW1vamktZm9udCJdLmNvbm5lY3QoKGtleSkgPT4geworLSAgICAgICAgICAgICAg ICBzZXRfY3VzdG9tX2ZvbnQoKTsKKy0gICAgICAgIH0pOworLQorICAgICAgICAgbV9zZXR0aW5n c19wYW5lbC5jaGFuZ2VkWyJ1c2UtY3VzdG9tLWZvbnQiXS5jb25uZWN0KChrZXkpID0+IHsKKyAg ICAgICAgICAgICAgICAgc2V0X2N1c3RvbV9mb250KCk7CisgICAgICAgICB9KTsKK0BAIC0yMzks OSArMjMyLDIyIEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2UgeworICAgICAgICAg ICAgICAgICBzZXRfcHJvcGVydHlfaWNvbl9kZWxheV90aW1lKCk7CisgICAgICAgICB9KTsKKyAK Ky0gICAgICAgIG1fc2V0dGluZ3NfcGFuZWwuY2hhbmdlZFsiZW1vamktZmF2b3JpdGVzIl0uY29u bmVjdCgoa2V5KSA9PiB7CisrICAgICAgICBtX3NldHRpbmdzX2Vtb2ppLmNoYW5nZWRbImhvdGtl eSJdLmNvbm5lY3QoKGtleSkgPT4geworKyAgICAgICAgICAgICAgICB1bmJpbmRfc3dpdGNoX3No b3J0Y3V0KEtleUV2ZW50RnVuY1R5cGUuRU1PSklfVFlQSU5HKTsKKysgICAgICAgICAgICAgICAg YmluZF9lbW9qaV9zaG9ydGN1dCgpOworKyAgICAgICAgfSk7CisrCisrICAgICAgICBtX3NldHRp bmdzX2Vtb2ppLmNoYW5nZWRbImZvbnQiXS5jb25uZWN0KChrZXkpID0+IHsKKysgICAgICAgICAg ICAgICAgc2V0X2N1c3RvbV9mb250KCk7CisrICAgICAgICB9KTsKKysKKysgICAgICAgIG1fc2V0 dGluZ3NfZW1vamkuY2hhbmdlZFsiZmF2b3JpdGVzIl0uY29ubmVjdCgoa2V5KSA9PiB7CisgICAg ICAgICAgICAgICAgIHNldF9lbW9qaV9mYXZvcml0ZXMoKTsKKyAgICAgICAgIH0pOworKworKyAg ICAgICAgbV9zZXR0aW5nc19lbW9qaS5jaGFuZ2VkWyJsYW5nIl0uY29ubmVjdCgoa2V5KSA9PiB7 CisrICAgICAgICAgICAgICAgIHNldF9lbW9qaV9sYW5nKCk7CisrICAgICAgICB9KTsKKyAgICAg fQorIAorICNpZiBJTkRJQ0FUT1IKK0BAIC0zOTgsNyArNDA0LDcgQEAgY2xhc3MgUGFuZWwgOiBJ QnVzLlBhbmVsU2VydmljZSB7CisgCisgICAgIHByaXZhdGUgdm9pZCBiaW5kX2Vtb2ppX3Nob3J0 Y3V0KCkgeworICNpZiBFTU9KSV9ESUNUCistICAgICAgICBzdHJpbmdbXSBhY2NlbGVyYXRvcnMg PSBtX3NldHRpbmdzX2hvdGtleS5nZXRfc3RydigiZW1vamkiKTsKKysgICAgICAgIHN0cmluZ1td IGFjY2VsZXJhdG9ycyA9IG1fc2V0dGluZ3NfZW1vamkuZ2V0X3N0cnYoImhvdGtleSIpOworIAor ICAgICAgICAgdmFyIGtleWJpbmRpbmdfbWFuYWdlciA9IEtleWJpbmRpbmdNYW5hZ2VyLmdldF9p bnN0YW5jZSgpOworIAorQEAgLTU4NCw5ICs1OTAsOSBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFu ZWxTZXJ2aWNlIHsKKyAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisgCistICAgICAg ICBzdHJpbmcgZW1vamlfZm9udCA9IG1fc2V0dGluZ3NfcGFuZWwuZ2V0X3N0cmluZygiZW1vamkt Zm9udCIpOworKyAgICAgICAgc3RyaW5nIGVtb2ppX2ZvbnQgPSBtX3NldHRpbmdzX2Vtb2ppLmdl dF9zdHJpbmcoImZvbnQiKTsKKyAgICAgICAgIGlmIChlbW9qaV9mb250ID09IG51bGwpIHsKKy0g ICAgICAgICAgICB3YXJuaW5nKCJObyBjb25maWcgcGFuZWw6ZW1vamktZm9udC4iKTsKKysgICAg ICAgICAgICB3YXJuaW5nKCJObyBjb25maWcgZW1vamk6Zm9udC4iKTsKKyAgICAgICAgICAgICBy ZXR1cm47CisgICAgICAgICB9CisgICAgICAgICBtX2Vtb2ppZXIuc2V0X2Vtb2ppX2ZvbnQoZW1v amlfZm9udCk7CitAQCAtNzYwLDcgKzc2NiwxMSBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxT ZXJ2aWNlIHsKKyAgICAgfQorIAorICAgICBwcml2YXRlIHZvaWQgc2V0X2Vtb2ppX2Zhdm9yaXRl cygpIHsKKy0gICAgICAgIG1fZW1vamllci5zZXRfZmF2b3JpdGVzKG1fc2V0dGluZ3NfcGFuZWwu Z2V0X3N0cnYoImVtb2ppLWZhdm9yaXRlcyIpKTsKKysgICAgICAgIG1fZW1vamllci5zZXRfZmF2 b3JpdGVzKG1fc2V0dGluZ3NfZW1vamkuZ2V0X3N0cnYoImZhdm9yaXRlcyIpKTsKKysgICAgfQor KworKyAgICBwcml2YXRlIHZvaWQgc2V0X2Vtb2ppX2xhbmcoKSB7CisrICAgICAgICBtX2Vtb2pp ZXIuc2V0X2Fubm90YXRpb25fbGFuZyhtX3NldHRpbmdzX2Vtb2ppLmdldF9zdHJpbmcoImxhbmci KSk7CisgICAgIH0KKyAKKyAgICAgcHJpdmF0ZSBpbnQgY29tcGFyZV92ZXJzaW9ucyhzdHJpbmcg dmVyc2lvbjEsIHN0cmluZyB2ZXJzaW9uMikgeworQEAgLTg3Nyw2ICs4ODcsNyBAQCBjbGFzcyBQ YW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKKyAgICAgICAgIHNldF94a2JfaWNvbl9yZ2JhKCk7 CisgICAgICAgICBzZXRfcHJvcGVydHlfaWNvbl9kZWxheV90aW1lKCk7CisgICAgICAgICBzZXRf ZW1vamlfZmF2b3JpdGVzKCk7CisrICAgICAgICBzZXRfZW1vamlfbGFuZygpOworICAgICB9Cisg CisgICAgIHByaXZhdGUgdm9pZCBlbmdpbmVfY29udGV4dHNfaW5zZXJ0KElCdXMuRW5naW5lRGVz YyBlbmdpbmUpIHsKKy0tIAorMi45LjMKKwoKZGlmZiAtLWdpdCBhL2lidXMuc3BlYyBiL2lidXMu c3BlYwppbmRleCBjYTBmNjZiLi4wMTNmOTZhIDEwMDY0NAotLS0gYS9pYnVzLnNwZWMKKysrIGIv aWJ1cy5zcGVjCkBAIC0yOCw3ICsyOCw3IEBACiAKIE5hbWU6ICAgICAgICAgICBpYnVzCiBWZXJz aW9uOiAgICAgICAgMS41LjE1Ci1SZWxlYXNlOiAgICAgICAgNCV7P2Rpc3R9CitSZWxlYXNlOiAg ICAgICAgNSV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgSW50ZWxsaWdlbnQgSW5wdXQgQnVzIGZv ciBMaW51eCBPUwogTGljZW5zZTogICAgICAgIExHUEx2MisKIEdyb3VwOiAgICAgICAgICBTeXN0 ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCkBAIC0yMzUsNiArMjM1LDcgQEAgVGhlIGlidXMtZGV2 ZWwtZG9jcyBwYWNrYWdlIGNvbnRhaW5zIGRldmVsb3BlciBkb2N1bWVudGF0aW9uIGZvciBJQnVz CiAKICVidWlsZAogI2F1dG9yZWNvbmYgLWYgLWkgLXYKK2F1dG9yZWNvbmYgLWYgLWkgLXYKICNt YWtlIC1DIHVpL2d0azMgbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCiAjbWFrZSAtQyB0b29scyBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMKICVjb25maWd1cmUgXApAQCAtNDI2LDYgKzQyNywxMSBA QCBndGstcXVlcnktaW1tb2R1bGVzLTMuMC0le19faXNhX2JpdHN9IC0tdXBkYXRlLWNhY2hlICY+ IC9kZXYvbnVsbCB8fCA6CiAle19kYXRhZGlyfS9ndGstZG9jL2h0bWwvKgogCiAlY2hhbmdlbG9n CisqIE1vbiBNYXIgMjcgMjAxNyBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4g LSAxLjUuMTUtNQorLSBNb3ZlZCBsYW5ndWFnZSBzZXR0aW5nIG9uIElCdXNFbW9qaWVyIHRvIGli dXMtc2V0dXAuCistIEVuYWJsZWQgc3RyY2FzZWNtcCB0byBtYXRjaCBlbW9qaSBhbm5vdGF0aW9u cy4KKy0gQWRkZWQgYSBidWlsZCBlcnJvciBtZXNzYWdlIGlmIGVtb2ppIHhtbCBmaWxlcyBhcmUg bm90IGZvdW5kLgorCiAqIFdlZCBNYXIgMTUgMjAxNyBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJA cmVkaGF0LmNvbT4gLSAxLjUuMTUtNAogLSBJbXBsZW1lbnRlZCBDdHJsLVtmfGJ8bnxwfGh8ZXxh fHVdIGZvciBjdXJzb3Igb3BlcmF0aW9ucyBvbiBlbW9qaSBkaWFsb2cKIC0gQWRkZWQgWFNldElP RXJyb3JIYW5kbGVyKCkgZm9yIEdOT01FMyBkZXNrdG9wCg==