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: Peter Lemenkov To: git-commits@fedoraproject.org Subject: [rpms/ejabberd] f45: Fixed all issues, related with upgrading from the previous 2.0.5 Date: Wed, 23 Sep 2026 19:06:53 GMT Message-ID: <179019041351.1.14422681668292737514.rpms-ejabberd-838ab7b2edf5@fedoraproject.org> List-ID: X-Git-Repo: rpms/ejabberd X-Git-Branch: f45 X-Git-Rev: 838ab7b2edf507cbdef0cb803e581187b8d4a0e6 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZWphYmJlcmQKQnJh bmNoIDogZjQ1CkNvbW1pdCA6IDgzOGFiN2IyZWRmNTA3Y2JkZWYwY2I4MDNlNTgxMTg3YjhkNGEw ZTYKQXV0aG9yIDogUGV0ZXIgTGVtZW5rb3YgPHBldGVyQGZlZG9yYXByb2plY3Qub3JnPgpEYXRl ICAgOiAyMDA5LTEyLTEwVDE5OjAxOjQxKzAwOjAwClN0YXRzICA6ICsxNjgxLy05IGluIDggZmls ZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2VqYWJiZXJk L2MvODM4YWI3YjJlZGY1MDdjYmRlZjBjYjgwM2U1ODExODdiOGQ0YTBlNj9icmFuY2g9ZjQ1CgpM b2c6CkZpeGVkIGFsbCBpc3N1ZXMsIHJlbGF0ZWQgd2l0aCB1cGdyYWRpbmcgZnJvbSB0aGUgcHJl dmlvdXMgMi4wLjUKCi0tLQpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtY2FwdGNoYS1iYXNoaXNtLnBh dGNoIGIvZWphYmJlcmQtY2FwdGNoYS1iYXNoaXNtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjg1YTI4Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC1jYXB0 Y2hhLWJhc2hpc20ucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorTWFrZXMgdGhlIGNhcHRjaGEgc2Ny aXB0IGV4cGxpY2l0bHkgcmVxdWVzdCBiYXNoIGFzIGl0IHVzZXMKK2l0cyBzcGVjaWFsIHZhcmlh YmxlICJSQU5ET00iIHdoaWNoIGlzIG5vdCBkZWZpbmVkIGJ5IFBPU0lYLgorCitUaGUgaXNzdWUg aXMgdHJhY2tlZCB1cHN0cmVhbSBhdAoraHR0cHM6Ly9zdXBwb3J0LnByb2Nlc3Mtb25lLm5ldC9i cm93c2UvRUpBQi0xMTA1CisKK1doaWxlIGl0IHdpbGwgYmUgc2Vuc2libGUgdG8gaW5jb3Jwb3Jh dGUgdGhlIHVwc3RyZWFtIGZpeAorKHdoaWNoIHdpbGwgbWFrZSB0aGUgc2NyaXB0IHdvcmsgaW4g UE9TSVgtY29tcGxpYW50IHNoZWxscyBhbHNvKSwKK3VudGlsIGJhc2ggaXMgcmVxdWlyZWQgaW4g RGViaWFuLCB0aGlzIHBhdGNoIGlzIE9LLgorCitkaWZmIC0tZ2l0IGEvdG9vbHMvY2FwdGNoYS5z aCBiL3Rvb2xzL2NhcHRjaGEuc2gKK2luZGV4IDRkNDA1NjcuLmQ2OGVkZmEgMTAwNzU1CistLS0g YS90b29scy9jYXB0Y2hhLnNoCisrKysgYi90b29scy9jYXB0Y2hhLnNoCitAQCAtMSw0ICsxLDQg QEAKKy0jIS9iaW4vc2gKKysjIS9iaW4vYmFzaAorIAorIElOUFVUPSQxCisgCgpkaWZmIC0tZ2l0 IGEvZWphYmJlcmQtZWphYmJlcmRjdGxfZml4LmRpZmYgYi9lamFiYmVyZC1lamFiYmVyZGN0bF9m aXguZGlmZgppbmRleCAzYmY1NDE5Li5hODU0MmFhIDEwMDY0NAotLS0gYS9lamFiYmVyZC1lamFi YmVyZGN0bF9maXguZGlmZgorKysgYi9lamFiYmVyZC1lamFiYmVyZGN0bF9maXguZGlmZgpAQCAt MSw1ICsxLDUgQEAKLS0tLSBzcmMvZWphYmJlcmRjdGwudGVtcGxhdGUuZml4X2N0bAkyMDA5LTEx LTA2IDIyOjUzOjE5LjAwMDAwMDAwMCArMDMwMAotKysrIHNyYy9lamFiYmVyZGN0bC50ZW1wbGF0 ZQkyMDA5LTExLTIxIDEwOjQzOjE3LjY1NDY4NjQwOSArMDMwMAorLS0tIHNyYy9lamFiYmVyZGN0 bC50ZW1wbGF0ZQkyMDA5LTExLTA2IDIyOjUzOjE5LjAwMDAwMDAwMCArMDMwMAorKysrIHNyYy9l amFiYmVyZGN0bC50ZW1wbGF0ZQkyMDA5LTEyLTEwIDIxOjA3OjI4LjY0ODY1OTE3OCArMDMwMAog QEAgLTksMTAgKzksMTAgQEAKICAKICAjIGRlZmluZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlh YmxlcwpAQCAtMTMsNiArMTMsMTUgQEAKICAKICAjIHBhcnNlIGNvbW1hbmQgbGluZSBwYXJhbWV0 ZXJzCiAgQVJHUz0KK0BAIC00Niw3ICs0Niw3IEBACisgICAgIExPR1NfRElSPUBMT0NBTFNUQVRF RElSQC9sb2cvZWphYmJlcmQKKyBmaQorIGlmIFsgIiRTUE9PTERJUiIgPSAiIiBdIDsgdGhlbgor LSAgICBTUE9PTERJUj1ATE9DQUxTVEFURURJUkAvbGliL2VqYWJiZXJkCisrICAgIFNQT09MRElS PUBMT0NBTFNUQVRFRElSQC9saWIvZWphYmJlcmQvc3Bvb2wKKyBmaQorIGlmIFsgIiRFSkFCQkVS RF9ET0NfUEFUSCIgPSAiIiBdIDsgdGhlbgorICAgICBFSkFCQkVSRF9ET0NfUEFUSD1ARE9DRElS QAogQEAgLTYwLDE0ICs2MCwxNCBAQAogIEVKSUQ9YGlkIC1nICRJTlNUQUxMVVNFUmAKICBFWEVD X0NNRD0iZmFsc2UiCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtaHR0cC1wb2xsLXdlYi1wYWdlLnBh dGNoIGIvZWphYmJlcmQtaHR0cC1wb2xsLXdlYi1wYWdlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjQ5OTgxNDYKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC1o dHRwLXBvbGwtd2ViLXBhZ2UucGF0Y2gKQEAgLTAsMCArMSw4OSBAQAorR2VuZXJhdGVzIGEgaHVt YW4tcmVhZGFibGUgWEhUTUwgcGFnZSB3aGljaCBpcyByZXR1cm5lZAord2hlbiBhIHVzZXIgdHJp ZXMgdG8gYnJvd3NlIHRoZSBIVFRQLXBvbGwgVVJMIGNvbmZpZ3VyZWQKK2ZvciB0aGUgc2VydmVy IChhIGNvbW1vbiBtaXN0YWtlKS4KKworVGhpcyBpc3N1ZSBpcyB0cmFja2VkIGluIEVKQUItMTEw Ni4KKworVGhpcyBjaGFuZ2VzZXQgd2FzIGludHJvZHVjZWQgaW4gcmV2aXNpb24gMjc1MSwKK2Jy YW5jaCBodHRwOi8vc3ZuLnByb2Nlc3Mtb25lLm5ldC9lamFiYmVyZC9icmFuY2hlcy9lamFiYmVy ZC0yLjEueAorCitUaGUgZmlyc3Qgc3RhYmxlIHZlcnNpb24gY29udGFpbmluZyB0aGUgZml4IGlz IDIuMS4xLgorCistLS0gYS9zcmMvd2ViL2VqYWJiZXJkX2h0dHBfcG9sbC5lcmwJKHJldmlzaW9u IDI3NTApCisrKysgYi9zcmMvd2ViL2VqYWJiZXJkX2h0dHBfcG9sbC5lcmwJKHJldmlzaW9uIDI3 NTEpCitAQCAtMTU0LDEyICsxNTQsMzIgQEAKKyAJCSAgICBlbmQKKyAJICAgIGVuZDsKKyAJXyAt PgorLQkgICAgezIwMCwgWz9DVCwgeyJTZXQtQ29va2llIiwgIklEPS0yOjA7IGV4cGlyZXM9LTEi fV0sICIifQorKwkgICAgSHVtYW5IVE1MeG1sZWwgPSBnZXRfaHVtYW5faHRtbF94bWxlbCgpLAor KwkgICAgezIwMCwgWz9DVCwgeyJTZXQtQ29va2llIiwgIklEPS0yOjA7IGV4cGlyZXM9LTEifV0s IEh1bWFuSFRNTHhtbGVsfQorICAgICBlbmQ7CisgcHJvY2VzcyhfLCBfUmVxdWVzdCkgLT4KKyAg ICAgezQwMCwgW10sIHt4bWxlbGVtZW50LCAiaDEiLCBbXSwKKyAJICAgICAgIFt7eG1sY2RhdGEs ICI0MDAgQmFkIFJlcXVlc3QifV19fS4KKyAKKyslJSBDb2RlIGNvcGllZCBmcm9tIG1vZF9odHRw X2JpbmQuZXJsIGFuZCBjdXN0b21pemVkCisrZ2V0X2h1bWFuX2h0bWxfeG1sZWwoKSAtPgorKyAg ICBIZWFkaW5nID0gImVqYWJiZXJkICIgKysgYXRvbV90b19saXN0KD9NT0RVTEUpLAorKyAgICB7 eG1sZWxlbWVudCwgImh0bWwiLCBbeyJ4bWxucyIsICJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho dG1sIn1dLAorKyAgICAgW3t4bWxlbGVtZW50LCAiaGVhZCIsIFtdLAorKyAgICAgICBbe3htbGVs ZW1lbnQsICJ0aXRsZSIsIFtdLCBbe3htbGNkYXRhLCBIZWFkaW5nfV19XX0sCisrICAgICAge3ht bGVsZW1lbnQsICJib2R5IiwgW10sCisrICAgICAgIFt7eG1sZWxlbWVudCwgImgxIiwgW10sIFt7 eG1sY2RhdGEsIEhlYWRpbmd9XX0sCisrICAgICAgICB7eG1sZWxlbWVudCwgInAiLCBbXSwKKysg ICAgICAgICBbe3htbGNkYXRhLCAiQW4gaW1wbGVtZW50YXRpb24gb2YgIn0sCisrICAgICAgICAg IHt4bWxlbGVtZW50LCAiYSIsCisrCSAgIFt7ImhyZWYiLCAiaHR0cDovL3htcHAub3JnL2V4dGVu c2lvbnMveGVwLTAwMjUuaHRtbCJ9XSwKKysgICAgICAgICAgIFt7eG1sY2RhdGEsICJKYWJiZXIg SFRUUCBQb2xsaW5nIChYRVAtMDAyNSkifV19XX0sCisrICAgICAgICB7eG1sZWxlbWVudCwgInAi LCBbXSwKKysgICAgICAgICBbe3htbGNkYXRhLCAiVGhpcyB3ZWIgcGFnZSBpcyBvbmx5IGluZm9y bWF0aXZlLiAiCisrCSAgICJUbyB1c2UgSFRUUC1Qb2xsIHlvdSBuZWVkIGEgSmFiYmVyL1hNUFAg Y2xpZW50IHRoYXQgc3VwcG9ydHMgaXQuIn0KKysJIF19CisrICAgICAgIF19XX0uCisrCisgJSUl LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICUlJSBDYWxsYmFjayBmdW5jdGlvbnMgZnJvbSBnZW5fZnNtCisgJSUl LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorLS0tIGEvc3JjL3dlYi9tb2RfaHR0cF9iaW5kLmVybAkocmV2aXNpb24g Mjc1MCkKKysrKyBiL3NyYy93ZWIvbW9kX2h0dHBfYmluZC5lcmwJKHJldmlzaW9uIDI3NTEpCitA QCAtNjksNyArNjksMTQgQEAKKyAgICAgZWphYmJlcmRfaHR0cF9iaW5kOnByb2Nlc3NfcmVxdWVz dChEYXRhLCBJUCk7CisgcHJvY2VzcyhbXSwgI3JlcXVlc3R7bWV0aG9kID0gJ0dFVCcsCisgICAg ICAgICAgICAgICAgICAgICAgZGF0YSA9IFtdfSkgLT4KKy0gICAgSGVhZGluZyA9ICJFamFiYmVy ZCAiICsrIGF0b21fdG9fbGlzdCg/TU9EVUxFKSArKyAiIHYiICsrID9NT0RfSFRUUF9CSU5EX1ZF UlNJT04sCisrICAgIGdldF9odW1hbl9odG1sX3htbGVsKCk7CisrcHJvY2VzcyhfUGF0aCwgX1Jl cXVlc3QpIC0+CisrICAgID9ERUJVRygiQmFkIFJlcXVlc3Q6IH5wIiwgW19SZXF1ZXN0XSksCisr ICAgIHs0MDAsIFtdLCB7eG1sZWxlbWVudCwgImgxIiwgW10sCisrCSAgICAgICBbe3htbGNkYXRh LCAiNDAwIEJhZCBSZXF1ZXN0In1dfX0uCisrCisrZ2V0X2h1bWFuX2h0bWxfeG1sZWwoKSAtPgor KyAgICBIZWFkaW5nID0gImVqYWJiZXJkICIgKysgYXRvbV90b19saXN0KD9NT0RVTEUpICsrICIg diIgKysgP01PRF9IVFRQX0JJTkRfVkVSU0lPTiwKKyAgICAge3htbGVsZW1lbnQsICJodG1sIiwg W3sieG1sbnMiLCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCJ9XSwKKyAgICAgIFt7eG1s ZWxlbWVudCwgImhlYWQiLCBbXSwKKyAgICAgICAgW3t4bWxlbGVtZW50LCAidGl0bGUiLCBbXSwg W3t4bWxjZGF0YSwgSGVhZGluZ31dfV19LAorQEAgLTc3LDE1ICs4NCwxNSBAQAorICAgICAgICBb e3htbGVsZW1lbnQsICJoMSIsIFtdLCBbe3htbGNkYXRhLCBIZWFkaW5nfV19LAorICAgICAgICAg e3htbGVsZW1lbnQsICJwIiwgW10sCisgICAgICAgICAgW3t4bWxjZGF0YSwgIkFuIGltcGxlbWVu dGF0aW9uIG9mICJ9LAorLSAgICAgICAgICB7eG1sZWxlbWVudCwgImEiLCBbeyJocmVmIiwgImh0 dHA6Ly93d3cueG1wcC5vcmcvZXh0ZW5zaW9ucy94ZXAtMDIwNi5odG1sIn1dLAorLSAgICAgICAg ICAgW3t4bWxjZGF0YSwgIlhNUFAgb3ZlciBCT1NIIChYRVAtMDIwNikifV19XX0KKy0gICAgICAg XX1dfTsKKy1wcm9jZXNzKF9QYXRoLCBfUmVxdWVzdCkgLT4KKy0gICAgP0RFQlVHKCJCYWQgUmVx dWVzdDogfnAiLCBbX1JlcXVlc3RdKSwKKy0gICAgezQwMCwgW10sIHt4bWxlbGVtZW50LCAiaDEi LCBbXSwKKy0JICAgICAgIFt7eG1sY2RhdGEsICI0MDAgQmFkIFJlcXVlc3QifV19fS4KKysgICAg ICAgICAge3htbGVsZW1lbnQsICJhIiwKKysJICAgW3siaHJlZiIsICJodHRwOi8veG1wcC5vcmcv ZXh0ZW5zaW9ucy94ZXAtMDIwNi5odG1sIn1dLAorKyAgICAgICAgICAgW3t4bWxjZGF0YSwgIlhN UFAgb3ZlciBCT1NIIChYRVAtMDIwNikifV19XX0sCisrICAgICAgICB7eG1sZWxlbWVudCwgInAi LCBbXSwKKysgICAgICAgICBbe3htbGNkYXRhLCAiVGhpcyB3ZWIgcGFnZSBpcyBvbmx5IGluZm9y bWF0aXZlLiAiCisrCSAgICJUbyB1c2UgSFRUUC1CaW5kIHlvdSBuZWVkIGEgSmFiYmVyL1hNUFAg Y2xpZW50IHRoYXQgc3VwcG9ydHMgaXQuIn0KKysJIF19CisrICAgICAgIF19XX0uCisgCistCisg JSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICUlJSBCRUhBVklPVVIgQ0FMTEJBQ0tTCisgJSUlLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLW1vZF9hZG1pbl9leHRyYS5wYXRjaCBiL2VqYWJi ZXJkLW1vZF9hZG1pbl9leHRyYS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4wZTVlYTBmCi0tLSAvZGV2L251bGwKKysrIGIvZWphYmJlcmQtbW9kX2FkbWluX2V4dHJh LnBhdGNoCkBAIC0wLDAgKzEsMTMwNSBAQAorQWRkcyB0aGUgbW9kX2FkbWluX2V4dHJhIG1vZHVs ZSB0byBlamFiYmVyZC4KK1RoaXMgbW9kdWxlIGV4dGVuZHMgdGhlIGZ1bmN0aW9uYWxpdHkgcHJv dmlkZWQgYnkgZWphYmJlcmRjdGwKK2J5IGFkZGluZyBzZXZlcmFsIG5ldyBjb21tYW5kcy4KKwor VGhlIGNvZGUgaXMgdGFrZW4gZnJvbSB0aGUgUHJvY2Vzc09uZSByZXBvc2l0b3J5OgoraHR0cHM6 Ly9mb3JnZS5wcm9jZXNzLW9uZS5uZXQvYnJvd3NlL2VqYWJiZXJkLW1vZHVsZXMvbW9kX2FkbWlu X2V4dHJhCisodHJ1bmssIHJldmlzaW9uIDk3NikuCisKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJl cmQuYXBwIGIvc3JjL2VqYWJiZXJkLmFwcAoraW5kZXggZTBlOTQzZS4uZjAxNzAxNSAxMDA2NDQK Ky0tLSBhL3NyYy9lamFiYmVyZC5hcHAKKysrKyBiL3NyYy9lamFiYmVyZC5hcHAKK0BAIC0xMDQs NiArMTA0LDcgQEAKKyAJICAgICBtb2RfdmNhcmRfbGRhcCwKKyAJICAgICBtb2RfdmNhcmRfb2Ri YywKKyAJICAgICBtb2RfdmVyc2lvbiwKKysgICAgICAgICAgICAgbW9kX2FkbWluX2V4dHJhLAor IAkgICAgIG5vZGVfYnVkZHksCisgCSAgICAgbm9kZV9jbHViLAorIAkgICAgIG5vZGVfZGVmYXVs dCwKK2RpZmYgLS1naXQgYS9zcmMvbW9kX2FkbWluX2V4dHJhLmVybCBiL3NyYy9tb2RfYWRtaW5f ZXh0cmEuZXJsCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uOWYzY2ExNAor LS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL21vZF9hZG1pbl9leHRyYS5lcmwKK0BAIC0wLDAgKzEs MTI3OSBAQAorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyslJSUgRmlsZSAgICA6IG1vZF9hZG1pbl9leHRyYS5l cmwKKyslJSUgQXV0aG9yICA6IEJhZGxvcCA8YmFkbG9wQHByb2Nlc3Mtb25lLm5ldD4KKyslJSUg UHVycG9zZSA6IENvbnRyaWJ1dGVkIGFkbWluaXN0cmF0aXZlIGZ1bmN0aW9ucyBhbmQgY29tbWFu ZHMKKyslJSUgQ3JlYXRlZCA6IDEwIEF1ZyAyMDA4IGJ5IEJhZGxvcCA8YmFkbG9wQHByb2Nlc3Mt b25lLm5ldD4KKyslJSUKKyslJSUKKyslJSUgZWphYmJlcmQsIENvcHlyaWdodCAoQykgMjAwMi0y MDA4ICAgUHJvY2Vzc09uZQorKyUlJQorKyUlJSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrJSUlIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisrJSUlIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZQorKyUlJSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKyUlJQorKyUlJSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyslJSUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyslJSUgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyslJSUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyUlJQorKyUlJSBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyUlJSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl ZSBTb2Z0d2FyZQorKyUlJSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRl IDMzMCwgQm9zdG9uLCBNQQorKyUlJSAwMjExMS0xMzA3IFVTQQorKyUlJQorKyUlJS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysKKystbW9kdWxlKG1vZF9hZG1pbl9leHRyYSkuCisrLWF1dGhvcignYmFkbG9wQHByb2Nl c3Mtb25lLm5ldCcpLgorKworKy1iZWhhdmlvdXIoZ2VuX21vZCkuCisrCisrLWV4cG9ydChbc3Rh cnQvMiwgc3RvcC8xLAorKwkgJSUgTm9kZQorKwkgY29tcGlsZS8xLAorKwkgbG9hZF9jb25maWcv MSwKKysJIGdldF9jb29raWUvMCwKKysJIHJlbW92ZV9ub2RlLzEsCisrCSBleHBvcnQyb2RiYy8y LAorKwkgJSUgQWNjb3VudHMKKysJIHNldF9wYXNzd29yZC8zLAorKwkgY2hlY2tfcGFzc3dvcmRf aGFzaC80LAorKwkgZGVsZXRlX29sZF91c2Vycy8xLAorKwkgZGVsZXRlX29sZF91c2Vyc192aG9z dC8yLAorKwkgYmFuX2FjY291bnQvMywKKysJIG51bV9hY3RpdmVfdXNlcnMvMiwKKysJICUlIFNl c3Npb25zCisrCSBudW1fcmVzb3VyY2VzLzIsCisrCSByZXNvdXJjZV9udW0vMywKKysJIGtpY2tf c2Vzc2lvbi80LAorKwkgc3RhdHVzX251bS8yLCBzdGF0dXNfbnVtLzEsCisrCSBzdGF0dXNfbGlz dC8yLCBzdGF0dXNfbGlzdC8xLAorKwkgJSUgVmNhcmQKKysJIHNldF9uaWNrbmFtZS8zLAorKwkg Z2V0X3ZjYXJkLzMsCisrCSBnZXRfdmNhcmQvNCwKKysJIHNldF92Y2FyZC80LAorKwkgc2V0X3Zj YXJkLzUsCisrCSAlJSBSb3N0ZXIKKysJIGFkZF9yb3N0ZXJpdGVtLzcsCisrCSBkZWxldGVfcm9z dGVyaXRlbS80LAorKwkgcHJvY2Vzc19yb3N0ZXJpdGVtcy81LAorKwkgZ2V0X3Jvc3Rlci8yLAor KwkgcHVzaF9yb3N0ZXIvMywKKysJIHB1c2hfcm9zdGVyX2FsbC8xLAorKwkgcHVzaF9hbGx0b2Fs bC8yLAorKwkgJSUgbW9kX3NoYXJlZF9yb3N0ZXIKKysJIHNyZ19jcmVhdGUvNSwKKysJIHNyZ19k ZWxldGUvMiwKKysJIHNyZ19saXN0LzEsCisrCSBzcmdfZ2V0X2luZm8vMiwKKysJIHNyZ19nZXRf bWVtYmVycy8yLAorKwkgc3JnX3VzZXJfYWRkLzQsCisrCSBzcmdfdXNlcl9kZWwvNCwKKysJICUl IFN0YW56YQorKwkgc2VuZF9tZXNzYWdlX2hlYWRsaW5lLzQsCisrCSBzZW5kX21lc3NhZ2VfY2hh dC8zLAorKwkgJSUgU3RhdHMKKysJIHN0YXRzLzEsIHN0YXRzLzIKKysJXSkuCisrCisrLWluY2x1 ZGUoImVqYWJiZXJkLmhybCIpLgorKy1pbmNsdWRlKCJlamFiYmVyZF9jb21tYW5kcy5ocmwiKS4K KystaW5jbHVkZSgibW9kX3Jvc3Rlci5ocmwiKS4KKystaW5jbHVkZSgiamxpYi5ocmwiKS4KKysK KyslJSBDb3BpZWQgZnJvbSBlamFiYmVyZF9zbS5lcmwKKystcmVjb3JkKHNlc3Npb24sIHtzaWQs IHVzciwgdXMsIHByaW9yaXR5LCBpbmZvfSkuCisrCisrCisrJSUlCisrJSUlIGdlbl9tb2QKKysl JSUKKysKKytzdGFydChfSG9zdCwgX09wdHMpIC0+CisrICAgIGVqYWJiZXJkX2NvbW1hbmRzOnJl Z2lzdGVyX2NvbW1hbmRzKGNvbW1hbmRzKCkpLgorKworK3N0b3AoX0hvc3QpIC0+CisrICAgIGVq YWJiZXJkX2NvbW1hbmRzOnVucmVnaXN0ZXJfY29tbWFuZHMoY29tbWFuZHMoKSkuCisrCisrCisr JSUlCisrJSUlIFJlZ2lzdGVyIGNvbW1hbmRzCisrJSUlCisrCisrY29tbWFuZHMoKSAtPgorKyAg ICBWY2FyZDFGaWVsZHNTdHJpbmcgPSAiU29tZSB2Y2FyZCBmaWVsZCBuYW1lcyBpbiBnZXQvc2V0 X3ZjYXJkIGFyZTpcbiIKKysJIiBGTgkJLSBGdWxsIE5hbWVcbiIKKysJIiBOSUNLTkFNRQktIE5p Y2tuYW1lXG4iCisrCSIgQkRBWQkJLSBCaXJ0aGRheVxuIgorKwkiIFRJVExFCQktIFdvcms6IFBv c2l0aW9uXG4iLAorKyAgICAiIFJPTEUJCS0gV29yazogUm9sZSIsCisrCisrICAgIFZjYXJkMkZp ZWxkc1N0cmluZyA9ICJTb21lIHZjYXJkIGZpZWxkIG5hbWVzIGFuZCBzdWJuYW1lcyBpbiBnZXQv c2V0X3ZjYXJkMiBhcmU6XG4iCisrCSIgTiBGQU1JTFkJLSBGYW1pbHkgbmFtZVxuIgorKwkiIE4g R0lWRU4JLSBHaXZlbiBuYW1lXG4iCisrCSIgTiBNSURETEUJLSBNaWRkbGUgbmFtZVxuIgorKwki IEFEUiBDVFJZCS0gQWRkcmVzczogQ291bnRyeVxuIgorKwkiIEFEUiBMT0NBTElUWQktIEFkZHJl c3M6IENpdHlcbiIKKysJIiBFTUFJTCBVU0VSSUQJLSBFLU1haWwgQWRkcmVzc1xuIgorKwkiIE9S RyBPUkdOQU1FCS0gV29yazogQ29tcGFueVxuIgorKwkiIE9SRyBPUkdVTklUCS0gV29yazogRGVw YXJ0bWVudCIsCisrCisrICAgIFZjYXJkWEVQID0gIkZvciBhIGZ1bGwgbGlzdCBvZiB2Q2FyZCBm aWVsZHMgY2hlY2sgWEVQLTAwNTQ6IHZjYXJkLXRlbXAgYXQgIgorKwkiaHR0cDovL3d3dy54bXBw Lm9yZy9leHRlbnNpb25zL3hlcC0wMDU0Lmh0bWwiLAorKworKyAgICBbCisrICAgICAjZWphYmJl cmRfY29tbWFuZHN7bmFtZSA9IGNvbXBpbGUsIHRhZ3MgPSBbZXJsYW5nXSwKKysJCQlkZXNjID0g IlJlY29tcGlsZSBhbmQgcmVsb2FkIEVybGFuZyBzb3VyY2UgY29kZSBmaWxlIiwKKysJCQltb2R1 bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGNvbXBpbGUsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3Ry aW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2Nv bW1hbmRze25hbWUgPSBsb2FkX2NvbmZpZywgdGFncyA9IFtzZXJ2ZXJdLAorKwkJCWRlc2MgPSAi TG9hZCBlamFiYmVyZCBjb25maWd1cmF0aW9uIGZpbGUiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUs IGZ1bmN0aW9uID0gbG9hZF9jb25maWcsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfV0sCisr CQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBnZXRfY29va2llLCB0YWdzID0gW2VybGFuZ10sCisrCQkJZGVzYyA9ICJHZXQgdGhlIEVy bGFuZyBjb29raWUgb2YgdGhpcyBub2RlIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlv biA9IGdldF9jb29raWUsCisrCQkJYXJncyA9IFtdLAorKwkJCXJlc3VsdCA9IHtjb29raWUsIHN0 cmluZ319LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSByZW1vdmVfbm9kZSwgdGFn cyA9IFtlcmxhbmddLAorKwkJCWRlc2MgPSAiUmVtb3ZlIGFuIGVqYWJiZXJkIG5vZGUgZnJvbSBN bmVzaWEgY2x1c3RlcmluZyBjb25maWciLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9u ID0gcmVtb3ZlX25vZGUsCisrCQkJYXJncyA9IFt7bm9kZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0 ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBleHBv cnQyb2RiYywgdGFncyA9IFttbmVzaWFdLAorKwkJCWRlc2MgPSAiRXhwb3J0IE1uZXNpYSB0YWJs ZXMgdG8gZmlsZXMgaW4gZGlyZWN0b3J5IiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlv biA9IGV4cG9ydDJvZGJjLAorKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtwYXRoLCBzdHJp bmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAjZWphYmJlcmRf Y29tbWFuZHN7bmFtZSA9IG51bV9hY3RpdmVfdXNlcnMsIHRhZ3MgPSBbYWNjb3VudHMsIHN0YXRz XSwKKysJCQlkZXNjID0gIkdldCBudW1iZXIgb2YgdXNlcnMgYWN0aXZlIGluIHRoZSBsYXN0IGRh eXMiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gbnVtX2FjdGl2ZV91c2VycywK KysJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9LCB7ZGF5cywgaW50ZWdlcn1dLAorKwkJCXJlc3Vs dCA9IHt1c2VycywgaW50ZWdlcn19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBk ZWxldGVfb2xkX3VzZXJzLCB0YWdzID0gW2FjY291bnRzLCBwdXJnZV0sCisrCQkJZGVzYyA9ICJE ZWxldGUgdXNlcnMgdGhhdCBkaWRuJ3QgbG9nIGluIGxhc3QgZGF5cyIsCisrCQkJbW9kdWxlID0g P01PRFVMRSwgZnVuY3Rpb24gPSBkZWxldGVfb2xkX3VzZXJzLAorKwkJCWFyZ3MgPSBbe2RheXMs IGludGVnZXJ9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXN0dXBsZX19LAorKyAgICAgI2VqYWJi ZXJkX2NvbW1hbmRze25hbWUgPSBkZWxldGVfb2xkX3VzZXJzX3Zob3N0LCB0YWdzID0gW2FjY291 bnRzLCBwdXJnZV0sCisrCQkJZGVzYyA9ICJEZWxldGUgdXNlcnMgdGhhdCBkaWRuJ3QgbG9nIGlu IGxhc3QgZGF5cyBpbiB2aG9zdCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBk ZWxldGVfb2xkX3VzZXJzX3Zob3N0LAorKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtkYXlz LCBpbnRlZ2VyfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzdHVwbGV9fSwKKysKKysgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gY2hlY2tfYWNjb3VudCwgdGFncyA9IFthY2NvdW50c10s CisrCQkJZGVzYyA9ICJDaGVjayBpZiBhbiBhY291bnQgZXhpc3RzIG9yIG5vdCIsCisrCQkJbW9k dWxlID0gZWphYmJlcmRfYXV0aCwgZnVuY3Rpb24gPSBpc191c2VyX2V4aXN0cywKKysJCQlhcmdz ID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3Jlcywg cmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGVja19wYXNzd29y ZCwgdGFncyA9IFthY2NvdW50c10sCisrCQkJZGVzYyA9ICJDaGVjayBpZiBhIHBhc3N3b3JkIGlz IGNvcnJlY3QiLAorKwkJCW1vZHVsZSA9IGVqYWJiZXJkX2F1dGgsIGZ1bmN0aW9uID0gY2hlY2tf cGFzc3dvcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtw YXNzd29yZCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAg I2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGVja19wYXNzd29yZF9oYXNoLCB0YWdzID0gW2Fj Y291bnRzXSwKKysJCQlkZXNjID0gIkNoZWNrIGlmIHRoZSBwYXNzd29yZCBoYXNoIGlzIGNvcnJl Y3QiLAorKwkJCWxvbmdkZXNjID0gIkFsbG93ZWQgaGFzaCBtZXRob2RzOiBtZDUsIHNoYS4iLAor KwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gY2hlY2tfcGFzc3dvcmRfaGFzaCwKKysJ CQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge3Bhc3N3b3JkaGFzaCwg c3RyaW5nfSwge2hhc2htZXRob2QsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2Nv ZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gY2hhbmdlX3Bhc3N3b3JkLCB0 YWdzID0gW2FjY291bnRzXSwKKysJCQlkZXNjID0gIkNoYW5nZSB0aGUgcGFzc3dvcmQgb2YgYW4g YWNjb3VudCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfcGFzc3dvcmQs CisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuZXdwYXNzLCBz dHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRf Y29tbWFuZHN7bmFtZSA9IGJhbl9hY2NvdW50LCB0YWdzID0gW2FjY291bnRzXSwKKysJCQlkZXNj ID0gIkJhbiBhbiBhY2NvdW50OiBraWNrIHNlc3Npb25zIGFuZCBzZXQgcmFuZG9tIHBhc3N3b3Jk IiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGJhbl9hY2NvdW50LAorKwkJCWFy Z3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7cmVhc29uLCBzdHJpbmd9XSwK KysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAjZWphYmJlcmRfY29tbWFu ZHN7bmFtZSA9IG51bV9yZXNvdXJjZXMsIHRhZ3MgPSBbc2Vzc2lvbl0sCisrCQkJZGVzYyA9ICJH ZXQgdGhlIG51bWJlciBvZiByZXNvdXJjZXMgb2YgYSB1c2VyIiwKKysJCQltb2R1bGUgPSA/TU9E VUxFLCBmdW5jdGlvbiA9IG51bV9yZXNvdXJjZXMsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5n fSwge2hvc3QsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXNvdXJjZXMsIGludGVnZXJ9fSwK KysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gcmVzb3VyY2VfbnVtLCB0YWdzID0gW3Nl c3Npb25dLAorKwkJCWRlc2MgPSAiUmVzb3VyY2Ugc3RyaW5nIG9mIGEgc2Vzc2lvbiBudW1iZXIi LAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcmVzb3VyY2VfbnVtLAorKwkJCWFy Z3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7bnVtLCBpbnRlZ2VyfV0sCisr CQkJcmVzdWx0ID0ge3Jlc291cmNlLCBzdHJpbmd9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5k c3tuYW1lID0ga2lja19zZXNzaW9uLCB0YWdzID0gW3Nlc3Npb25dLAorKwkJCWRlc2MgPSAiS2lj ayBhIHVzZXIgc2Vzc2lvbiIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBraWNr X3Nlc3Npb24sCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHty ZXNvdXJjZSwgc3RyaW5nfSwge3JlYXNvbiwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3Jlcywg cmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbnVtX2hv c3QsIHRhZ3MgPSBbc2Vzc2lvbiwgc3RhdHNdLAorKwkJCWRlc2MgPSAiTnVtYmVyIG9mIGxvZ2dl ZCB1c2VycyB3aXRoIHRoaXMgc3RhdHVzIGluIGhvc3QiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUs IGZ1bmN0aW9uID0gc3RhdHVzX251bSwKKysJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9LCB7c3Rh dHVzLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7dXNlcnMsIGludGVnZXJ9fSwKKysgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3RhdHVzX251bSwgdGFncyA9IFtzZXNzaW9uLCBzdGF0 c10sCisrCQkJZGVzYyA9ICJOdW1iZXIgb2YgbG9nZ2VkIHVzZXJzIHdpdGggdGhpcyBzdGF0dXMi LAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX251bSwKKysJCQlhcmdz ID0gW3tzdGF0dXMsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHt1c2VycywgaW50ZWdlcn19LAor KyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlzdF9ob3N0LCB0YWdzID0g W3Nlc3Npb25dLAorKwkJCWRlc2MgPSAiTGlzdCBvZiB1c2VycyBsb2dnZWQgaW4gaG9zdCB3aXRo IHRoZWlyIHN0YXR1c2VzIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHN0YXR1 c19saXN0LAorKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtzdGF0dXMsIHN0cmluZ31dLAor KwkJCXJlc3VsdCA9IHt1c2Vycywge2xpc3QsCisrCQkJCQkgIHt1c2Vyc3RhdHVzLCB7dHVwbGUs IFsKKysJCQkJCQkJCXt1c2VyLCBzdHJpbmd9LAorKwkJCQkJCQkJe2hvc3QsIHN0cmluZ30sCisr CQkJCQkJCQl7cmVzb3VyY2UsIHN0cmluZ30sCisrCQkJCQkJCQl7cHJpb3JpdHksIGludGVnZXJ9 LAorKwkJCQkJCQkJe3N0YXR1cywgc3RyaW5nfQorKwkJCQkJCQkgICAgICAgXX19CisrCQkJCQkg fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlzdCwgdGFncyA9 IFtzZXNzaW9uXSwKKysJCQlkZXNjID0gIkxpc3Qgb2YgbG9nZ2VkIHVzZXJzIHdpdGggdGhpcyBz dGF0dXMiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX2xpc3QsCisr CQkJYXJncyA9IFt7c3RhdHVzLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7dXNlcnMsIHtsaXN0 LAorKwkJCQkJICB7dXNlcnN0YXR1cywge3R1cGxlLCBbCisrCQkJCQkJCQl7dXNlciwgc3RyaW5n fSwKKysJCQkJCQkJCXtob3N0LCBzdHJpbmd9LAorKwkJCQkJCQkJe3Jlc291cmNlLCBzdHJpbmd9 LAorKwkJCQkJCQkJe3ByaW9yaXR5LCBpbnRlZ2VyfSwKKysJCQkJCQkJCXtzdGF0dXMsIHN0cmlu Z30KKysJCQkJCQkJICAgICAgIF19fQorKwkJCQkJIH19fSwKKysKKysgICAgICNlamFiYmVyZF9j b21tYW5kc3tuYW1lID0gc2V0X25pY2tuYW1lLCB0YWdzID0gW3ZjYXJkXSwKKysJCQlkZXNjID0g IlNldCBuaWNrbmFtZSBpbiBhIHVzZXIncyB2Y2FyZCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwg ZnVuY3Rpb24gPSBzZXRfbmlja25hbWUsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hv c3QsIHN0cmluZ30sIHtuaWNrbmFtZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVz Y29kZX19LAorKworKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBnZXRfdmNhcmQsIHRh Z3MgPSBbdmNhcmRdLAorKwkJCWRlc2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZDYXJkIGZpZWxk IiwKKysJCQlsb25nZGVzYyA9IFZjYXJkMUZpZWxkc1N0cmluZyArKyAiXG4iICsrIFZjYXJkMkZp ZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmRYRVAsCisrCQkJbW9kdWxlID0gP01PRFVMRSwg ZnVuY3Rpb24gPSBnZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3Qs IHN0cmluZ30sIHtuYW1lLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7Y29udGVudCwgc3RyaW5n fX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGdldF92Y2FyZDIsIHRhZ3MgPSBb dmNhcmRdLAorKwkJCWRlc2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZDYXJkIGZpZWxkIiwKKysJ CQlsb25nZGVzYyA9IFZjYXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmQxRmllbGRz U3RyaW5nICsrICJcbiIgKysgVmNhcmRYRVAsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rp b24gPSBnZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmlu Z30sIHtuYW1lLCBzdHJpbmd9LCB7c3VibmFtZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge2Nv bnRlbnQsIHN0cmluZ319LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzZXRfdmNh cmQsIHRhZ3MgPSBbdmNhcmRdLAorKwkJCWRlc2MgPSAiU2V0IGNvbnRlbnQgaW4gYSB2Q2FyZCBm aWVsZCIsCisrCQkJbG9uZ2Rlc2MgPSBWY2FyZDFGaWVsZHNTdHJpbmcgKysgIlxuIiArKyBWY2Fy ZDJGaWVsZHNTdHJpbmcgKysgIlxuXG4iICsrIFZjYXJkWEVQLAorKwkJCW1vZHVsZSA9ID9NT0RV TEUsIGZ1bmN0aW9uID0gc2V0X3ZjYXJkLAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHto b3N0LCBzdHJpbmd9LCB7bmFtZSwgc3RyaW5nfSwge2NvbnRlbnQsIHN0cmluZ31dLAorKwkJCXJl c3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0g c2V0X3ZjYXJkMiwgdGFncyA9IFt2Y2FyZF0sCisrCQkJZGVzYyA9ICJTZXQgY29udGVudCBpbiBh IHZDYXJkIHN1YmZpZWxkIiwKKysJCQlsb25nZGVzYyA9IFZjYXJkMkZpZWxkc1N0cmluZyArKyAi XG5cbiIgKysgVmNhcmQxRmllbGRzU3RyaW5nICsrICJcbiIgKysgVmNhcmRYRVAsCisrCQkJbW9k dWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfdmNhcmQyLAorKwkJCWFyZ3MgPSBbe3VzZXIs IHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7bmFtZSwgc3RyaW5nfSwge3N1Ym5hbWUsIHN0cmlu Z30sIHtjb250ZW50LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisr CisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGFkZF9yb3N0ZXJpdGVtLCB0YWdzID0g W3Jvc3Rlcl0sCisrCQkJZGVzYyA9ICJBZGQgYW4gaXRlbSB0byBhIHVzZXIncyByb3N0ZXIiLAor KwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gYWRkX3Jvc3Rlcml0ZW0sCisrCQkJYXJn cyA9IFt7bG9jYWx1c2VyLCBzdHJpbmd9LCB7bG9jYWxzZXJ2ZXIsIHN0cmluZ30sCisrCQkJCXt1 c2VyLCBzdHJpbmd9LCB7c2VydmVyLCBzdHJpbmd9LAorKwkJCQl7bmljaywgc3RyaW5nfSwge2dy b3VwLCBzdHJpbmd9LAorKwkJCQl7c3Vicywgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3Jlcywg cmVzY29kZX19LAorKyAgICAgJSV7IiIsICJzdWJzPSBub25lLCBmcm9tLCB0byBvciBib3RoIn0s CisrICAgICAlJXsiIiwgImV4YW1wbGU6IGFkZC1yb3N0ZXIgcGV0ZXIgbG9jYWxob3N0IG1pa2Ug c2VydmVyLmNvbSBNaUtlIEVtcGxveWVlcyBib3RoIn0sCisrICAgICAlJXsiIiwgIndpbGwgYWRk IG1pa2VAc2VydmVyLmNvbSB0byBwZXRlckBsb2NhbGhvc3Qgcm9zdGVyIn0sCisrICAgICAjZWph YmJlcmRfY29tbWFuZHN7bmFtZSA9IGRlbGV0ZV9yb3N0ZXJpdGVtLCB0YWdzID0gW3Jvc3Rlcl0s CisrCQkJZGVzYyA9ICJEZWxldGUgYW4gaXRlbSBmcm9tIGEgdXNlcidzIHJvc3RlciIsCisrCQkJ bW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBkZWxldGVfcm9zdGVyaXRlbSwKKysJCQlhcmdz ID0gW3tsb2NhbHVzZXIsIHN0cmluZ30sIHtsb2NhbHNlcnZlciwgc3RyaW5nfSwKKysJCQkJe3Vz ZXIsIHN0cmluZ30sIHtzZXJ2ZXIsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2Nv ZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gcHJvY2Vzc19yb3N0ZXJpdGVt cywgdGFncyA9IFtyb3N0ZXJdLAorKwkJCWRlc2MgPSAiTGlzdCBvciBkZWxldGUgcm9zdGVyaXRl bXMgdGhhdCBtYXRjaCBmaWx0ZXJpbmcgb3B0aW9ucyIsCisrCQkJbG9uZ2Rlc2MgPSAiRXhwbGFu YXRpb24gb2YgZWFjaCBhcmd1bWVudDpcbiIKKysJCQkiIC0gYWN0aW9uOiB3aGF0IHRvIGRvIHdp dGggZWFjaCByb3N0ZXJpdGVtIHRoYXQgIgorKwkJCSJtYXRjaGVzIGFsbCB0aGUgZmlsdGVyaW5n IG9wdGlvbnNcbiIKKysJCQkiIC0gc3Viczogc3Vic2NyaXB0aW9uIHR5cGVcbiIKKysJCQkiIC0g YXNrczogcGVuZGluZyBzdWJzY3JpcHRpb25cbiIKKysJCQkiIC0gdXNlcnM6IHRoZSBKSURzIG9m IHRoZSBsb2NhbCB1c2VyXG4iCisrCQkJIiAtIGNvbnRhY3RzOiB0aGUgSklEcyBvZiB0aGUgY29u dGFjdCBpbiB0aGUgcm9zdGVyXG4iCisrCQkJIlxuIgorKwkJCSJBbGxvd2VkIHZhbHVlcyBpbiB0 aGUgYXJndW1lbnRzOlxuIgorKwkJCSIgIEFDVElPTiA9IGxpc3QgfCBkZWxldGVcbiIKKysJCQki ICBTVUJTID0gU1VCWzpTVUJdKiB8IGFueVxuIgorKwkJCSIgIFNVQiA9IG5vbmUgfCBmcm9tIHwg dG8gfCBib3RoXG4iCisrCQkJIiAgQVNLUyA9IEFTS1s6QVNLXSogfCBhbnlcbiIKKysJCQkiICBB U0sgPSBub25lIHwgb3V0IHwgaW5cbiIKKysJCQkiICBVU0VSUyA9IEpJRFs6SklEXSogfCBhbnlc biIKKysJCQkiICBDT05UQUNUUyA9IEpJRFs6SklEXSogfCBhbnlcbiIKKysJCQkiICBKSUQgPSBj aGFyYWN0ZXJzIHZhbGlkIGluIGEgSklELCBhbmQgY2FuIHVzZSB0aGUgIgorKwkJCSJnbG9iczog KiwgPyBhbmQgWy4uLl1cbiIKKysJCQkiXG4iCisrCQkJIlRoaXMgZXhhbXBsZSB3aWxsIGxpc3Qg cm9zdGVyIGl0ZW1zIHdpdGggc3Vic2NyaXB0aW9uICIKKysJCQkiJ25vbmUnLCAnZnJvbScgb3Ig J3RvJyB0aGF0IGhhdmUgYW55IGFzayBwcm9wZXJ0eSwgb2YgIgorKwkJCSJsb2NhbCB1c2VycyB3 aGljaCBKSUQgaXMgaW4gdGhlIHZpcnR1YWwgaG9zdCAiCisrCQkJIidleGFtcGxlLm9yZycgYW5k IHRoYXQgdGhlIGNvbnRhY3QgSklEIGlzIGVpdGhlciBhICIKKysJCQkiYmFyZSBzZXJ2ZXIgbmFt ZSAod2l0aG91dCB1c2VyIHBhcnQpIG9yIHRoYXQgaGFzIGEgIgorKwkJCSJ1c2VyIHBhcnQgYW5k IHRoZSBzZXJ2ZXIgcGFydCBjb250YWlucyB0aGUgd29yZCAnaWNxJyIKKysJCQkiOlxuICBsaXN0 IG5vbmU6ZnJvbTp0byBhbnkgKkBleGFtcGxlLm9yZyAqOipAKmljcSoiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHJvY2Vzc19yb3N0ZXJpdGVtcywKKysJCQlhcmdzID0gW3th Y3Rpb24sIHN0cmluZ30sIHtzdWJzLCBzdHJpbmd9LAorKwkJCQl7YXNrcywgc3RyaW5nfSwge3Vz ZXJzLCBzdHJpbmd9LAorKwkJCQl7Y29udGFjdHMsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHty ZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gZ2V0X3Jvc3Rl ciwgdGFncyA9IFtyb3N0ZXJdLAorKwkJCWRlc2MgPSAiR2V0IHJvc3RlciBvZiBhIGxvY2FsIHVz ZXIiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gZ2V0X3Jvc3RlciwKKysJCQlh cmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge2Nv bnRhY3RzLCB7bGlzdCwge2NvbnRhY3QsIHt0dXBsZSwgWworKwkJCQkJCQkJICAgICAge2ppZCwg c3RyaW5nfSwKKysJCQkJCQkJCSAgICAgIHtuaWNrLCBzdHJpbmd9LAorKwkJCQkJCQkJICAgICAg e2dyb3VwLCBzdHJpbmd9CisrCQkJCQkJCQkgICAgIF19fX19fSwKKysgICAgICNlamFiYmVyZF9j b21tYW5kc3tuYW1lID0gcHVzaF9yb3N0ZXIsIHRhZ3MgPSBbcm9zdGVyXSwKKysJCQlkZXNjID0g IlB1c2ggdGVtcGxhdGUgcm9zdGVyIGZyb20gZmlsZSB0byBhIHVzZXIiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHVzaF9yb3N0ZXIsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3Ry aW5nfSwge3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVz LCByZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHB1c2hfcm9zdGVy X2FsbCwgdGFncyA9IFtyb3N0ZXJdLAorKwkJCWRlc2MgPSAiUHVzaCB0ZW1wbGF0ZSByb3N0ZXIg ZnJvbSBmaWxlIHRvIGFsbCB0aG9zZSB1c2VycyIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVu Y3Rpb24gPSBwdXNoX3Jvc3Rlcl9hbGwsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfV0sCisr CQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBwdXNoX2FsbHRvYWxsLCB0YWdzID0gW3Jvc3Rlcl0sCisrCQkJZGVzYyA9ICJBZGQgYWxs IHRoZSB1c2VycyB0byBhbGwgdGhlIHVzZXJzIG9mIEhvc3QgaW4gR3JvdXAiLAorKwkJCW1vZHVs ZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHVzaF9hbGx0b2FsbCwKKysJCQlhcmdzID0gW3tob3N0 LCBzdHJpbmd9LCB7Z3JvdXAsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9 fSwKKysKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3JnX2NyZWF0ZSwgdGFncyA9 IFtzaGFyZWRfcm9zdGVyX2dyb3VwXSwKKysJCQlkZXNjID0gIkNyZWF0ZSBhIFNoYXJlZCBSb3N0 ZXIgR3JvdXAiLAorKwkJCWxvbmdkZXNjID0gIklmIHlvdSB3YW50IHRvIHNwZWNpZnkgc2V2ZXJh bCBncm91cCAiCisrCQkJImlkZW50aWZpZXJzIGluIHRoZSBEaXNwbGF5IGFyZ3VtZW50LFxuIgor KwkJCSJwdXQgIFxcIFwiIGFyb3VuZCB0aGUgYXJndW1lbnQgYW5kXG5zZXBhcmF0ZSB0aGUgIgor KwkJCSJpZGVudGlmaWVycyB3aXRoIFxcIFxcIG5cbiIKKysJCQkiRm9yIGV4YW1wbGU6XG4iCisr CQkJIiAgZWphYmJlcmRjdGwgc3JnX2NyZWF0ZSBncm91cDMgbG9jYWxob3N0ICIKKysJCQkibmFt ZSBkZXNjIFxcXCJncm91cDFcXFxcbmdyb3VwMlxcXCIiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUs IGZ1bmN0aW9uID0gc3JnX2NyZWF0ZSwKKysJCQlhcmdzID0gW3tncm91cCwgc3RyaW5nfSwge2hv c3QsIHN0cmluZ30sCisrCQkJCXtuYW1lLCBzdHJpbmd9LCB7ZGVzY3JpcHRpb24sIHN0cmluZ30s IHtkaXNwbGF5LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAg ICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19kZWxldGUsIHRhZ3MgPSBbc2hhcmVkX3Jv c3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJEZWxldGUgYSBTaGFyZWQgUm9zdGVyIEdyb3VwIiwK KysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNyZ19kZWxldGUsCisrCQkJYXJncyA9 IFt7Z3JvdXAsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCBy ZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19saXN0LCB0YWdz ID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAorKwkJCWRlc2MgPSAiTGlzdCB0aGUgU2hhcmVkIFJv c3RlciBHcm91cHMgaW4gSG9zdCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBz cmdfbGlzdCwKKysJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7Z3Jv dXBzLCB7bGlzdCwge2lkLCBzdHJpbmd9fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBzcmdfZ2V0X2luZm8sIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVz YyA9ICJHZXQgaW5mbyBvZiBhIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9N T0RVTEUsIGZ1bmN0aW9uID0gc3JnX2dldF9pbmZvLAorKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJp bmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge2luZm9ybWF0aW9ucywge2xpc3Qs IHtpbmZvcm1hdGlvbiwge3R1cGxlLCBbe2tleSwgc3RyaW5nfSwge3ZhbHVlLCBzdHJpbmd9XX19 fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfZ2V0X21lbWJlcnMsIHRh Z3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJHZXQgbWVtYmVycyBvZiBh IFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0g c3JnX2dldF9tZW1iZXJzLAorKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJpbmd9LCB7aG9zdCwgc3Ry aW5nfV0sCisrCQkJcmVzdWx0ID0ge21lbWJlcnMsIHtsaXN0LCB7bWVtYmVyLCBzdHJpbmd9fX19 LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfdXNlcl9hZGQsIHRhZ3MgPSBb c2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJBZGQgdGhlIEpJRCB1c2VyQGhvc3Qg dG8gdGhlIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0 aW9uID0gc3JnX3VzZXJfYWRkLAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBz dHJpbmd9LCB7Z3JvdXAsIHN0cmluZ30sIHtncm91cGhvc3QsIHN0cmluZ31dLAorKwkJCXJlc3Vs dCA9IHtyZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3Jn X3VzZXJfZGVsLCB0YWdzID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAorKwkJCWRlc2MgPSAiRGVs ZXRlIHRoaXMgSklEIHVzZXJAaG9zdCBmcm9tIHRoZSBTaGFyZWQgUm9zdGVyIEdyb3VwIiwKKysJ CQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNyZ191c2VyX2RlbCwKKysJCQlhcmdzID0g W3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge2dyb3VwLCBzdHJpbmd9LCB7Z3JvdXBo b3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAj ZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNlbmRfbWVzc2FnZV9jaGF0LCB0YWdzID0gW3N0YW56 YV0sCisrCQkJZGVzYyA9ICJTZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgbG9jYWwgb3IgcmVtb3Rl IGJhcmUgb2YgZnVsbCBKSUQiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc2Vu ZF9tZXNzYWdlX2NoYXQsCisrCQkJYXJncyA9IFt7ZnJvbSwgc3RyaW5nfSwge3RvLCBzdHJpbmd9 LCB7Ym9keSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAg I2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzZW5kX21lc3NhZ2VfaGVhZGxpbmUsIHRhZ3MgPSBb c3RhbnphXSwKKysJCQlkZXNjID0gIlNlbmQgYSBoZWFkbGluZSBtZXNzYWdlIHRvIGEgbG9jYWwg b3IgcmVtb3RlIGJhcmUgb2YgZnVsbCBKSUQiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0 aW9uID0gc2VuZF9tZXNzYWdlX2hlYWRsaW5lLAorKwkJCWFyZ3MgPSBbe2Zyb20sIHN0cmluZ30s IHt0bywgc3RyaW5nfSwKKysJCQkJe3N1YmplY3QsIHN0cmluZ30sIHtib2R5LCBzdHJpbmd9XSwK KysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAjZWphYmJlcmRfY29tbWFu ZHN7bmFtZSA9IHN0YXRzLCB0YWdzID0gW3N0YXRzXSwKKysJCQlkZXNjID0gIkdldCBzdGF0aXN0 aWNhbCB2YWx1ZTogcmVnaXN0ZXJlZHVzZXJzIG9ubGluZXVzZXJzIG9ubGluZXVzZXJzbm9kZSB1 cHRpbWVzZWNvbmRzIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHN0YXRzLAor KwkJCWFyZ3MgPSBbe25hbWUsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtzdGF0LCBpbnRlZ2Vy fX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHN0YXRzX2hvc3QsIHRhZ3MgPSBb c3RhdHNdLAorKwkJCWRlc2MgPSAiR2V0IHN0YXRpc3RpY2FsIHZhbHVlIGZvciB0aGlzIGhvc3Q6 IHJlZ2lzdGVyZWR1c2VycyBvbmxpbmV1c2VycyIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVu Y3Rpb24gPSBzdGF0cywKKysJCQlhcmdzID0gW3tuYW1lLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5n fV0sCisrCQkJcmVzdWx0ID0ge3N0YXQsIGludGVnZXJ9fQorKyAgICBdLgorKworKworKyUlJQor KyUlJSBOb2RlCisrJSUlCisrCisrY29tcGlsZShGaWxlKSAtPgorKyAgICBjYXNlIGNvbXBpbGU6 ZmlsZShGaWxlKSBvZgorKwlvayAtPiBvazsKKysJXyAtPiBlcnJvcgorKyAgICBlbmQuCisrCisr bG9hZF9jb25maWcoUGF0aCkgLT4KKysgICAgb2sgPSBlamFiYmVyZF9jb25maWc6bG9hZF9maWxl KFBhdGgpLgorKworK2dldF9jb29raWUoKSAtPgorKyAgICBhdG9tX3RvX2xpc3QoZXJsYW5nOmdl dF9jb29raWUoKSkuCisrCisrcmVtb3ZlX25vZGUoTm9kZSkgLT4KKysgICAgbW5lc2lhOmRlbF90 YWJsZV9jb3B5KHNjaGVtYSwgbGlzdF90b19hdG9tKE5vZGUpKSwKKysgICAgb2suCisrCisrZXhw b3J0Mm9kYmMoSG9zdCwgRGlyZWN0b3J5KSAtPgorKyAgICBUYWJsZXMgPSBbCisrCSAgICAgIHtl eHBvcnRfbGFzdCwgbGFzdH0sCisrCSAgICAgIHtleHBvcnRfb2ZmbGluZSwgb2ZmbGluZX0sCisr CSAgICAgIHtleHBvcnRfcGFzc3dkLCBwYXNzd2R9LAorKwkgICAgICB7ZXhwb3J0X3ByaXZhdGVf c3RvcmFnZSwgcHJpdmF0ZV9zdG9yYWdlfSwKKysJICAgICAge2V4cG9ydF9yb3N0ZXIsIHJvc3Rl cn0sCisrCSAgICAgIHtleHBvcnRfdmNhcmQsIHZjYXJkfSwKKysJICAgICAge2V4cG9ydF92Y2Fy ZF9zZWFyY2gsIHZjYXJkX3NlYXJjaH1dLAorKyAgICBFeHBvcnQgPSBmdW4oe1RhYmxlRnVuLCBU YWJsZX0pIC0+CisrCQkgICAgIEZpbGVuYW1lID0gZmlsZW5hbWU6am9pbihbRGlyZWN0b3J5LCBh dG9tX3RvX2xpc3QoVGFibGUpKysiLnR4dCJdKSwKKysJCSAgICAgaW86Zm9ybWF0KCJUcnlpbmcg dG8gZXhwb3J0IE1uZXNpYSB0YWJsZSAnfnAnIG9uIEhvc3QgJ35zJyB0byBmaWxlICd+cyd+biIs IFtUYWJsZSwgSG9zdCwgRmlsZW5hbWVdKSwKKysJCSAgICAgUmVzID0gKGNhdGNoIGVqZDJvZGJj OlRhYmxlRnVuKEhvc3QsIEZpbGVuYW1lKSksCisrCQkgICAgIGlvOmZvcm1hdCgiICBSZXN1bHQ6 IH5wfm4iLCBbUmVzXSkKKysJICAgICBlbmQsCisrICAgIGxpc3RzOmZvcmVhY2goRXhwb3J0LCBU YWJsZXMpLAorKyAgICBvay4KKysKKysKKyslJSUKKyslJSUgQWNjb3VudHMKKyslJSUKKysKKytz ZXRfcGFzc3dvcmQoVXNlciwgSG9zdCwgUGFzc3dvcmQpIC0+CisrICAgIGNhc2UgZWphYmJlcmRf YXV0aDpzZXRfcGFzc3dvcmQoVXNlciwgSG9zdCwgUGFzc3dvcmQpIG9mCisrCW9rIC0+CisrCSAg ICBvazsKKysJXyAtPgorKwkgICAgZXJyb3IKKysgICAgZW5kLgorKworKyUlIENvcGllZCBzb21l IGNvZGUgZnJvbSBlamFiYmVyZF9jb21tYW5kcy5lcmwKKytjaGVja19wYXNzd29yZF9oYXNoKFVz ZXIsIEhvc3QsIFBhc3N3b3JkSGFzaCwgSGFzaE1ldGhvZCkgLT4KKysgICAgQWNjb3VudFBhc3Mg PSBlamFiYmVyZF9hdXRoOmdldF9wYXNzd29yZF9zKFVzZXIsIEhvc3QpLAorKyAgICBBY2NvdW50 UGFzc0hhc2ggPSBjYXNlIEhhc2hNZXRob2Qgb2YKKysJCQkgICJtZDUiIC0+IGdldF9tZDUoQWNj b3VudFBhc3MpOworKwkJCSAgInNoYSIgLT4gZ2V0X3NoYShBY2NvdW50UGFzcyk7CisrCQkJICBf IC0+IHVuZGVmaW5lZAorKwkJICAgICAgZW5kLAorKyAgICBjYXNlIEFjY291bnRQYXNzSGFzaCBv ZgorKwl1bmRlZmluZWQgLT4gZXJyb3I7CisrCVBhc3N3b3JkSGFzaCAtPiBvazsKKysJXyAtPiBl cnJvcgorKyAgICBlbmQuCisrZ2V0X21kNShBY2NvdW50UGFzcykgLT4KKysgICAgbGlzdHM6Zmxh dHRlbihbaW9fbGliOmZvcm1hdCgifi4xNkIiLCBbWF0pCisrCQkgICB8fCBYIDwtIGJpbmFyeV90 b19saXN0KGNyeXB0bzptZDUoQWNjb3VudFBhc3MpKV0pLgorK2dldF9zaGEoQWNjb3VudFBhc3Mp IC0+CisrICAgIGxpc3RzOmZsYXR0ZW4oW2lvX2xpYjpmb3JtYXQoIn4uMTZCIiwgW1hdKQorKwkJ ICAgfHwgWCA8LSBiaW5hcnlfdG9fbGlzdChjcnlwdG86c2hhKEFjY291bnRQYXNzKSldKS4KKysK KytudW1fYWN0aXZlX3VzZXJzKEhvc3QsIERheXMpIC0+CisrICAgIGxpc3RfbGFzdF9hY3Rpdml0 eShIb3N0LCB0cnVlLCBEYXlzKS4KKysKKyslJSBDb2RlIGJhc2VkIG9uIGVqYWJiZXJkL3NyYy93 ZWIvZWphYmJlcmRfd2ViX2FkbWluLmVybAorK2xpc3RfbGFzdF9hY3Rpdml0eShIb3N0LCBJbnRl Z3JhbCwgRGF5cykgLT4KKysgICAge01lZ2FTZWNzLCBTZWNzLCBfTWljcm9TZWNzfSA9IG5vdygp LAorKyAgICBUaW1lU3RhbXAgPSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBTZWNzLAorKyAgICBUUyA9 IFRpbWVTdGFtcCAtIERheXMgKiA4NjQwMCwKKysgICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlf c2VsZWN0KAorKwkJIGxhc3RfYWN0aXZpdHksIFt7e2xhc3RfYWN0aXZpdHksIHsnXycsIEhvc3R9 LCAnJDEnLCAnXyd9LAorKwkJCQkgIFt7Jz4nLCAnJDEnLCBUU31dLAorKwkJCQkgIFt7J3RydW5j JywgeycvJywKKysJCQkJCSAgICAgIHsnLScsIFRpbWVTdGFtcCwgJyQxJ30sCisrCQkJCQkgICAg ICA4NjQwMH19XX1dKSBvZgorKwkJCQkJCQkgICAgICB7J0VYSVQnLCBfUmVhc29ufSAtPgorKwkJ IFtdOworKwkgICAgICAgVmFscyAtPgorKwkJIEhpc3QgPSBoaXN0b2dyYW0oVmFscywgSW50ZWdy YWwpLAorKwkJIGlmCisrCQkgICAgIEhpc3QgPT0gW10gLT4KKysJCQkgMDsKKysJCSAgICAgdHJ1 ZSAtPgorKwkJCSBMZWZ0ID0gRGF5cyAtIGxlbmd0aChIaXN0KSwKKysJCQkgVGFpbCA9IGlmCisr CQkJCSAgICBJbnRlZ3JhbCAtPgorKwkJCQkJbGlzdHM6ZHVwbGljYXRlKExlZnQsIGxpc3RzOmxh c3QoSGlzdCkpOworKwkJCQkgICAgdHJ1ZSAtPgorKwkJCQkJbGlzdHM6ZHVwbGljYXRlKExlZnQs IDApCisrCQkJCWVuZCwKKysJCQkgbGlzdHM6bnRoKERheXMsIEhpc3QgKysgVGFpbCkKKysJCSBl bmQKKysJIGVuZC4KKytoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCkgLT4KKysgICAgaGlzdG9n cmFtKGxpc3RzOnNvcnQoVmFsdWVzKSwgSW50ZWdyYWwsIDAsIDAsIFtdKS4KKytoaXN0b2dyYW0o W0ggfCBUXSwgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50LCBIaXN0KSB3aGVuIEN1cnJlbnQgPT0g SCAtPgorKyAgICBoaXN0b2dyYW0oVCwgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50ICsgMSwgSGlz dCk7CisraGlzdG9ncmFtKFtIIHwgX10gPSBWYWx1ZXMsIEludGVncmFsLCBDdXJyZW50LCBDb3Vu dCwgSGlzdCkgd2hlbiBDdXJyZW50IDwgSCAtPgorKyAgICBpZgorKwlJbnRlZ3JhbCAtPgorKwkg ICAgaGlzdG9ncmFtKFZhbHVlcywgSW50ZWdyYWwsIEN1cnJlbnQgKyAxLCBDb3VudCwgW0NvdW50 IHwgSGlzdF0pOworKwl0cnVlIC0+CisrCSAgICBoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCwg Q3VycmVudCArIDEsIDAsIFtDb3VudCB8IEhpc3RdKQorKyAgICBlbmQ7CisraGlzdG9ncmFtKFtd LCBfSW50ZWdyYWwsIF9DdXJyZW50LCBDb3VudCwgSGlzdCkgLT4KKysgICAgaWYKKysJQ291bnQg PiAwIC0+CisrCSAgICBsaXN0czpyZXZlcnNlKFtDb3VudCB8IEhpc3RdKTsKKysJdHJ1ZSAtPgor KwkgICAgbGlzdHM6cmV2ZXJzZShIaXN0KQorKyAgICBlbmQuCisrCisrCisrLXJlY29yZChsYXN0 X2FjdGl2aXR5LCB7dXMsIHRpbWVzdGFtcCwgc3RhdHVzfSkuCisrCisrZGVsZXRlX29sZF91c2Vy cyhEYXlzKSAtPgorKyAgICAlJSBHZXQgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2VycworKyAg ICBVc2VycyA9IGVqYWJiZXJkX2F1dGg6ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSwKKysK KysgICAge3JlbW92ZWQsIE4sIFVSfSA9IGRlbGV0ZV9vbGRfdXNlcnMoRGF5cywgVXNlcnMpLAor KyAgICB7b2ssIGlvX2xpYjpmb3JtYXQoIkRlbGV0ZWQgfnAgdXNlcnM6IH5wIiwgW04sIFVSXSl9 LgorKworK2RlbGV0ZV9vbGRfdXNlcnNfdmhvc3QoSG9zdCwgRGF5cykgLT4KKysgICAgJSUgR2V0 IHRoZSBsaXN0IG9mIHJlZ2lzdGVyZWQgdXNlcnMKKysgICAgVXNlcnMgPSBlamFiYmVyZF9hdXRo OmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKEhvc3QpLAorKworKyAgICB7cmVtb3ZlZCwgTiwgVVJ9 ID0gZGVsZXRlX29sZF91c2VycyhEYXlzLCBVc2VycyksCisrICAgIHtvaywgaW9fbGliOmZvcm1h dCgiRGVsZXRlZCB+cCB1c2VyczogfnAiLCBbTiwgVVJdKX0uCisrCisrZGVsZXRlX29sZF91c2Vy cyhEYXlzLCBVc2VycykgLT4KKysgICAgJSUgQ29udmVydCBvbGRlciB0aW1lCisrICAgIFNlY09s ZGVyID0gRGF5cyoyNCo2MCo2MCwKKysKKysgICAgJSUgR2V0IGN1cnJlbnQgdGltZQorKyAgICB7 TWVnYVNlY3MsIFNlY3MsIF9NaWNyb1NlY3N9ID0gbm93KCksCisrICAgIFRpbWVTdGFtcF9ub3cg PSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBTZWNzLAorKworKyAgICAlJSBGb3IgYSB1c2VyLCByZW1v dmUgaWYgcmVxdWlyZWQgYW5kIGFuc3dlciB0cnVlCisrICAgIEYgPSBmdW4oe0xVc2VyLCBMU2Vy dmVyfSkgLT4KKysJCSUlIENoZWNrIGlmIHRoZSB1c2VyIGlzIGxvZ2dlZAorKwkJY2FzZSBlamFi YmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoTFVzZXIsIExTZXJ2ZXIpIG9mCisrCQkgICAgJSUg SWYgaXQgaXNudAorKwkJICAgIFtdIC0+CisrCQkJJSUgTG9vayBmb3IgaGlzIGxhc3RfYWN0aXZp dHkKKysJCQljYXNlIG1uZXNpYTpkaXJ0eV9yZWFkKGxhc3RfYWN0aXZpdHksIHtMVXNlciwgTFNl cnZlcn0pIG9mCisrCQkJICAgICUlIElmIGl0IGlzCisrCQkJICAgICUlIGV4aXN0ZW50OgorKwkJ CSAgICBbI2xhc3RfYWN0aXZpdHl7dGltZXN0YW1wID0gVGltZVN0YW1wfV0gLT4KKysJCQkJJSUg Z2V0IGhpcyBhZ2UKKysJCQkJU2VjID0gVGltZVN0YW1wX25vdyAtIFRpbWVTdGFtcCwKKysJCQkJ JSUgSWYgaGUgaXMKKysJCQkJaWYKKysJCQkJICAgICUlIHlvdW5nZXIgdGhhbiBTZWNPbGRlcjoK KysJCQkJICAgIFNlYyA8IFNlY09sZGVyIC0+CisrCQkJCQklJSBkbyBub3RoaW5nCisrCQkJCQlm YWxzZTsKKysJCQkJICAgICUlIG9sZGVyOgorKwkJCQkgICAgdHJ1ZSAtPgorKwkJCQkJJSUgcmVt b3ZlIHRoZSB1c2VyCisrCQkJCQllamFiYmVyZF9hdXRoOnJlbW92ZV91c2VyKExVc2VyLCBMU2Vy dmVyKSwKKysJCQkJCXRydWUKKysJCQkJZW5kOworKwkJCSAgICAlJSBub25leGlzdGVudDoKKysJ CQkgICAgW10gLT4KKysJCQkJJSUgcmVtb3ZlIHRoZSB1c2VyCisrCQkJCWVqYWJiZXJkX2F1dGg6 cmVtb3ZlX3VzZXIoTFVzZXIsIExTZXJ2ZXIpLAorKwkJCQl0cnVlCisrCQkJZW5kOworKwkJICAg ICUlIEVsc2UKKysJCSAgICBfIC0+CisrCQkJJSUgZG8gbm90aGluZworKwkJCWZhbHNlCisrCQll bmQKKysJZW5kLAorKyAgICAlJSBBcHBseSB0aGUgZnVuY3Rpb24gdG8gZXZlcnkgdXNlciBpbiB0 aGUgbGlzdAorKyAgICBVc2Vyc19yZW1vdmVkID0gbGlzdHM6ZmlsdGVyKEYsIFVzZXJzKSwKKysg ICAge3JlbW92ZWQsIGxlbmd0aChVc2Vyc19yZW1vdmVkKSwgVXNlcnNfcmVtb3ZlZH0uCisrCisr CisrJSUKKyslJSBCYW4gYWNjb3VudAorKworK2Jhbl9hY2NvdW50KFVzZXIsIEhvc3QsIFJlYXNv blRleHQpIC0+CisrICAgIFJlYXNvbiA9IHByZXBhcmVfcmVhc29uKFJlYXNvblRleHQpLAorKyAg ICBraWNrX3Nlc3Npb25zKFVzZXIsIEhvc3QsIFJlYXNvbiksCisrICAgIHNldF9yYW5kb21fcGFz c3dvcmQoVXNlciwgSG9zdCwgUmVhc29uKSwKKysgICAgb2suCisrCisra2lja19zZXNzaW9ucyhV c2VyLCBTZXJ2ZXIsIFJlYXNvbikgLT4KKysgICAgbGlzdHM6bWFwKAorKyAgICAgIGZ1bihSZXNv dXJjZSkgLT4KKysJICAgICAga2lja190aGlzX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJj ZSwgUmVhc29uKQorKyAgICAgIGVuZCwKKysgICAgICBnZXRfcmVzb3VyY2VzKFVzZXIsIFNlcnZl cikpLgorKworK2dldF9yZXNvdXJjZXMoVXNlciwgU2VydmVyKSAtPgorKyAgICBsaXN0czptYXAo CisrICAgICAgZnVuKFNlc3Npb24pIC0+CisrCSAgICAgIGVsZW1lbnQoMywgU2Vzc2lvbiNzZXNz aW9uLnVzcikKKysgICAgICBlbmQsCisrICAgICAgZ2V0X3Nlc3Npb25zKFVzZXIsIFNlcnZlcikp LgorKworK2dldF9zZXNzaW9ucyhVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIExVc2VyID0gamxpYjpu b2RlcHJlcChVc2VyKSwKKysgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKKysg ICAgU2Vzc2lvbnMgPSAgbW5lc2lhOmRpcnR5X2luZGV4X3JlYWQoc2Vzc2lvbiwge0xVc2VyLCBM U2VydmVyfSwgI3Nlc3Npb24udXMpLAorKyAgICB0cnVlID0gaXNfbGlzdChTZXNzaW9ucyksCisr ICAgIFNlc3Npb25zLgorKworK3NldF9yYW5kb21fcGFzc3dvcmQoVXNlciwgU2VydmVyLCBSZWFz b24pIC0+CisrICAgIE5ld1Bhc3MgPSBidWlsZF9yYW5kb21fcGFzc3dvcmQoUmVhc29uKSwKKysg ICAgc2V0X3Bhc3N3b3JkX2F1dGgoVXNlciwgU2VydmVyLCBOZXdQYXNzKS4KKysKKytidWlsZF9y YW5kb21fcGFzc3dvcmQoUmVhc29uKSAtPgorKyAgICBEYXRlID0gamxpYjp0aW1lc3RhbXBfdG9f aXNvKGNhbGVuZGFyOnVuaXZlcnNhbF90aW1lKCkpLAorKyAgICBSYW5kb21TdHJpbmcgPSByYW5k b21zOmdldF9zdHJpbmcoKSwKKysgICAgIkJBTk5FRF9BQ0NPVU5ULS0iICsrIERhdGUgKysgIi0t IiArKyBSYW5kb21TdHJpbmcgKysgIi0tIiArKyBSZWFzb24uCisrCisrc2V0X3Bhc3N3b3JkX2F1 dGgoVXNlciwgU2VydmVyLCBQYXNzd29yZCkgLT4KKysgICAgb2sgPSBlamFiYmVyZF9hdXRoOnNl dF9wYXNzd29yZChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkKS4KKysKKytwcmVwYXJlX3JlYXNvbihb XSkgLT4KKysgICAgIktpY2tlZCBieSBhZG1pbmlzdHJhdG9yIjsKKytwcmVwYXJlX3JlYXNvbihb UmVhc29uXSkgLT4KKysgICAgUmVhc29uOworK3ByZXBhcmVfcmVhc29uKFJlYXNvbikgd2hlbiBp c19saXN0KFJlYXNvbikgLT4KKysgICAgUmVhc29uOworK3ByZXBhcmVfcmVhc29uKFN0cmluZ0xp c3QpIC0+CisrICAgIHN0cmluZzpqb2luKFN0cmluZ0xpc3QsICJfIikuCisrCisrCisrJSUlCisr JSUlIFNlc3Npb25zCisrJSUlCisrCisrbnVtX3Jlc291cmNlcyhVc2VyLCBIb3N0KSAtPgorKyAg ICBsZW5ndGgoZWphYmJlcmRfc206Z2V0X3VzZXJfcmVzb3VyY2VzKFVzZXIsIEhvc3QpKS4KKysK KytyZXNvdXJjZV9udW0oVXNlciwgSG9zdCwgTnVtKSAtPgorKyAgICBSZXNvdXJjZXMgPSBlamFi YmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoVXNlciwgSG9zdCksCisrICAgIGNhc2UgKDA8TnVt KSBhbmQgKE51bT08bGVuZ3RoKFJlc291cmNlcykpIG9mCisrCXRydWUgLT4KKysJICAgIGxpc3Rz Om50aChOdW0sIFJlc291cmNlcyk7CisrCWZhbHNlIC0+CisrCSAgICBsaXN0czpmbGF0dGVuKGlv X2xpYjpmb3JtYXQoIkVycm9yOiBXcm9uZyByZXNvdXJjZSBudW1iZXI6IH5wIiwgW051bV0pKQor KyAgICBlbmQuCisrCisra2lja19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3VyY2UsIFJlYXNv blRleHQpIC0+CisrICAgIGtpY2tfdGhpc19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3VyY2Us IHByZXBhcmVfcmVhc29uKFJlYXNvblRleHQpKSwKKysgICAgb2suCisrCisra2lja190aGlzX3Nl c3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJjZSwgUmVhc29uKSAtPgorKyAgICBlamFiYmVyZF9y b3V0ZXI6cm91dGUoCisrICAgICAgamxpYjptYWtlX2ppZCgiIiwgIiIsICIiKSwKKysgICAgICBq bGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgUmVzb3VyY2UpLAorKyAgICAgIHt4bWxlbGVtZW50 LCAiYnJvYWRjYXN0IiwgW10sIFt7ZXhpdCwgUmVhc29ufV19KS4KKysKKysKKytzdGF0dXNfbnVt KEhvc3QsIFN0YXR1cykgLT4KKysgICAgbGVuZ3RoKGdldF9zdGF0dXNfbGlzdChIb3N0LCBTdGF0 dXMpKS4KKytzdGF0dXNfbnVtKFN0YXR1cykgLT4KKysgICAgc3RhdHVzX251bSgiYWxsIiwgU3Rh dHVzKS4KKytzdGF0dXNfbGlzdChIb3N0LCBTdGF0dXMpIC0+CisrICAgIFJlcyA9IGdldF9zdGF0 dXNfbGlzdChIb3N0LCBTdGF0dXMpLAorKyAgICBbe1UsIFMsIFIsIFAsIFN0fSB8fCB7VSwgUywg UiwgUCwgU3R9IDwtIFJlc10uCisrc3RhdHVzX2xpc3QoU3RhdHVzKSAtPgorKyAgICBzdGF0dXNf bGlzdCgiYWxsIiwgU3RhdHVzKS4KKysKKysKKytnZXRfc3RhdHVzX2xpc3QoSG9zdCwgU3RhdHVz X3JlcXVpcmVkKSAtPgorKyAgICAlJSBHZXQgbGlzdCBvZiBhbGwgbG9nZ2VkIHVzZXJzCisrICAg IFNlc3Npb25zID0gZWphYmJlcmRfc206ZGlydHlfZ2V0X215X3Nlc3Npb25zX2xpc3QoKSwKKysg ICAgJSUgUmVmb3JtYXQgdGhlIGxpc3QKKysgICAgU2Vzc2lvbnMyID0gWyB7U2Vzc2lvbiNzZXNz aW9uLnVzciwgU2Vzc2lvbiNzZXNzaW9uLnNpZCwgU2Vzc2lvbiNzZXNzaW9uLnByaW9yaXR5fSB8 fCBTZXNzaW9uIDwtIFNlc3Npb25zXSwKKysgICAgRmhvc3QgPSBjYXNlIEhvc3Qgb2YKKysJCSJh bGwiIC0+CisrCQkgICAgJSUgQWxsIGhvc3RzIGFyZSByZXF1ZXN0ZWQsIHNvIGRvbnQgZmlsdGVy IGF0IGFsbAorKwkJICAgIGZ1bihfLCBfKSAtPiB0cnVlIGVuZDsKKysJCV8gLT4KKysJCSAgICAl JSBGaWx0ZXIgdGhlIGxpc3QsIG9ubHkgSG9zdCBpcyBpbnRlcmVzdGluZworKwkJICAgIGZ1bihB LCBCKSAtPiBBID09IEIgZW5kCisrCSAgICBlbmQsCisrICAgIFNlc3Npb25zMyA9IFsge1BpZCwg U2VydmVyLCBQcmlvcml0eX0gfHwge3tfVXNlciwgU2VydmVyLCBfUmVzb3VyY2V9LCB7XywgUGlk fSwgUHJpb3JpdHl9IDwtIFNlc3Npb25zMiwgYXBwbHkoRmhvc3QsIFtTZXJ2ZXIsIEhvc3RdKV0s CisrICAgICUlIEZvciBlYWNoIFBpZCwgZ2V0IGl0cyBwcmVzZW5jZQorKyAgICBTZXNzaW9uczQg PSBbIHtlamFiYmVyZF9jMnM6Z2V0X3ByZXNlbmNlKFBpZCksIFNlcnZlciwgUHJpb3JpdHl9IHx8 IHtQaWQsIFNlcnZlciwgUHJpb3JpdHl9IDwtIFNlc3Npb25zM10sCisrICAgICUlIEZpbHRlciBi eSBzdGF0dXMKKysgICAgRnN0YXR1cyA9IGNhc2UgU3RhdHVzX3JlcXVpcmVkIG9mCisrCQkgICJh bGwiIC0+CisrCQkgICAgICBmdW4oXywgXykgLT4gdHJ1ZSBlbmQ7CisrCQkgIF8gLT4KKysJCSAg ICAgIGZ1bihBLCBCKSAtPiBBID09IEIgZW5kCisrCSAgICAgIGVuZCwKKysgICAgW3tVc2VyLCBT ZXJ2ZXIsIFJlc291cmNlLCBQcmlvcml0eSwgc3RyaW5naXplKFN0YXR1c190ZXh0KX0KKysgICAg IHx8IHt7VXNlciwgUmVzb3VyY2UsIFN0YXR1cywgU3RhdHVzX3RleHR9LCBTZXJ2ZXIsIFByaW9y aXR5fSA8LSBTZXNzaW9uczQsCisrCWFwcGx5KEZzdGF0dXMsIFtTdGF0dXMsIFN0YXR1c19yZXF1 aXJlZF0pXS4KKysKKyslJSBNYWtlIHN0cmluZyBtb3JlIHByaW50LWZyaWVuZGx5Cisrc3RyaW5n aXplKFN0cmluZykgLT4KKysgICAgJSUgUmVwbGFjZSBuZXdsaW5lIGNoYXJhY3RlcnMgd2l0aCBv dGhlciBjb2RlCisrICAgIGVsZW1lbnQoMiwgcmVnZXhwOmdzdWIoU3RyaW5nLCAiXG4iLCAiXFxu IikpLgorKworKworKyUlJQorKyUlJSBWY2FyZAorKyUlJQorKworK3NldF9uaWNrbmFtZShVc2Vy LCBIb3N0LCBOaWNrbmFtZSkgLT4KKysgICAgUiA9IG1vZF92Y2FyZDpwcm9jZXNzX3NtX2lxKAor KwkgIHtqaWQsIFVzZXIsIEhvc3QsICIiLCBVc2VyLCBIb3N0LCAiIn0sCisrCSAge2ppZCwgVXNl ciwgSG9zdCwgIiIsIFVzZXIsIEhvc3QsICIifSwKKysJICB7aXEsICIiLCBzZXQsICIiLCAiZW4i LAorKwkgICB7eG1sZWxlbWVudCwgInZDYXJkIiwKKysJICAgIFt7InhtbG5zIiwgInZjYXJkLXRl bXAifV0sIFsKKysJCQkJCXt4bWxlbGVtZW50LCAiTklDS05BTUUiLCBbXSwgW3t4bWxjZGF0YSwg Tmlja25hbWV9XX0KKysJCQkJICAgICAgIF0KKysJICAgfX0pLAorKyAgICBjYXNlIFIgb2YKKysJ e2lxLCBbXSwgcmVzdWx0LCBbXSwgX0wsIFtdfSAtPgorKwkgICAgb2s7CisrCV8gLT4KKysJICAg IGVycm9yCisrICAgIGVuZC4KKysKKytnZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFtZSkgLT4KKysg ICAgZ2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWVdKS4KKysKKytnZXRfdmNhcmQo VXNlciwgSG9zdCwgTmFtZSwgU3VibmFtZSkgLT4KKysgICAgZ2V0X3ZjYXJkX2NvbnRlbnQoVXNl ciwgSG9zdCwgW05hbWUsIFN1Ym5hbWVdKS4KKysKKytzZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFt ZSwgQ29udGVudCkgLT4KKysgICAgc2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWVd LCBDb250ZW50KS4KKysKKytzZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFtZSwgU3VibmFtZSwgQ29u dGVudCkgLT4KKysgICAgc2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWUsIFN1Ym5h bWVdLCBDb250ZW50KS4KKysKKysKKyslJQorKyUlIEludGVybmFsIHZjYXJkCisrCisrZ2V0X3Zj YXJkX2NvbnRlbnQoVXNlciwgU2VydmVyLCBEYXRhKSAtPgorKyAgICBbe18sIE1vZHVsZSwgRnVu Y3Rpb24sIF9PcHRzfV0gPSBldHM6bG9va3VwKHNtX2lxdGFibGUsIHs/TlNfVkNBUkQsIFNlcnZl cn0pLAorKyAgICBKSUQgPSBqbGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgIiIpLAorKyAgICBJ USA9ICNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19WQ0FSRH0sCisrICAgIElRciA9IE1vZHVs ZTpGdW5jdGlvbihKSUQsIEpJRCwgSVEpLAorKyAgICBjYXNlIElRciNpcS5zdWJfZWwgb2YKKysJ W0ExXSAtPgorKwkgICAgY2FzZSBnZXRfdmNhcmQoRGF0YSwgQTEpIG9mCisrCQlmYWxzZSAtPiAi RXJyb3I6IG5vX3ZhbHVlIjsKKysJCUVsZW0gLT4geG1sOmdldF90YWdfY2RhdGEoRWxlbSkKKysJ ICAgIGVuZDsKKysJW10gLT4KKysJICAgICJFcnJvcjogbm9fdmNhcmQiCisrICAgIGVuZC4KKysK KytnZXRfdmNhcmQoW0RhdGExLCBEYXRhMl0sIEExKSAtPgorKyAgICBjYXNlIHhtbDpnZXRfc3Vi dGFnKEExLCBEYXRhMSkgb2YKKysgICAgCWZhbHNlIC0+IGZhbHNlOworKwlBMiAtPiBnZXRfdmNh cmQoW0RhdGEyXSwgQTIpCisrICAgIGVuZDsKKysKKytnZXRfdmNhcmQoW0RhdGFdLCBBMSkgLT4K KysgICAgeG1sOmdldF9zdWJ0YWcoQTEsIERhdGEpLgorKworK3NldF92Y2FyZF9jb250ZW50KFVz ZXIsIFNlcnZlciwgRGF0YSwgQ29udGVudCkgLT4KKysgICAgW3tfLCBNb2R1bGUsIEZ1bmN0aW9u LCBfT3B0c31dID0gZXRzOmxvb2t1cChzbV9pcXRhYmxlLCB7P05TX1ZDQVJELCBTZXJ2ZXJ9KSwK KysgICAgSklEID0gamxpYjptYWtlX2ppZChVc2VyLCBTZXJ2ZXIsICIiKSwKKysgICAgSVEgPSAj aXF7dHlwZSA9IGdldCwgeG1sbnMgPSA/TlNfVkNBUkR9LAorKyAgICBJUXIgPSBNb2R1bGU6RnVu Y3Rpb24oSklELCBKSUQsIElRKSwKKysKKysgICAgJSUgR2V0IG9sZCB2Y2FyZAorKyAgICBBNCA9 IGNhc2UgSVFyI2lxLnN1Yl9lbCBvZgorKwkgICAgIFtBMV0gLT4KKysJCSB7XywgXywgXywgQTJ9 ID0gQTEsCisrCQkgdXBkYXRlX3ZjYXJkX2VscyhEYXRhLCBDb250ZW50LCBBMik7CisrCSAgICAg W10gLT4KKysJCSB1cGRhdGVfdmNhcmRfZWxzKERhdGEsIENvbnRlbnQsIFtdKQorKwkgZW5kLAor KworKyAgICAlJSBCdWlsZCBuZXcgdmNhcmQKKysgICAgU3ViRWwgPSB7eG1sZWxlbWVudCwgInZD YXJkIiwgW3sieG1sbnMiLCJ2Y2FyZC10ZW1wIn1dLCBBNH0sCisrICAgIElRMiA9ICNpcXt0eXBl PXNldCwgc3ViX2VsID0gU3ViRWx9LAorKworKyAgICBNb2R1bGU6RnVuY3Rpb24oSklELCBKSUQs IElRMiksCisrICAgIG9rLgorKworK3VwZGF0ZV92Y2FyZF9lbHMoRGF0YSwgQ29udGVudCwgRWxz MSkgLT4KKysgICAgRWxzMiA9IGxpc3RzOmtleXNvcnQoMiwgRWxzMSksCisrICAgIFtEYXRhMSB8 IERhdGEyXSA9IERhdGEsCisrICAgIE5ld0VsID0gY2FzZSBEYXRhMiBvZgorKwkJW10gLT4KKysJ CSAgICB7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBbe3htbGNkYXRhLENvbnRlbnR9XX07CisrCQlb RDJdIC0+CisrCQkgICAgT2xkRWwgPSBjYXNlIGxpc3RzOmtleXNlYXJjaChEYXRhMSwgMiwgRWxz Mikgb2YKKysJCQkJe3ZhbHVlLCBBfSAtPiBBOworKwkJCQlmYWxzZSAtPiB7eG1sZWxlbWVudCwg RGF0YTEsIFtdLCBbXX0KKysJCQkgICAgZW5kLAorKwkJICAgIHt4bWxlbGVtZW50LCBfLCBfLCBD b250ZW50T2xkMX0gPSBPbGRFbCwKKysJCSAgICBDb250ZW50MiA9IFt7eG1sZWxlbWVudCwgRDIs IFtdLCBbe3htbGNkYXRhLENvbnRlbnR9XX1dLAorKwkJICAgIENvbnRlbnRPbGQyID0gbGlzdHM6 a2V5c29ydCgyLCBDb250ZW50T2xkMSksCisrCQkgICAgQ29udGVudE9sZDMgPSBsaXN0czprZXlk ZWxldGUoRDIsIDIsIENvbnRlbnRPbGQyKSwKKysJCSAgICBDb250ZW50TmV3ID0gbGlzdHM6a2V5 bWVyZ2UoMiwgQ29udGVudDIsIENvbnRlbnRPbGQzKSwKKysJCSAgICB7eG1sZWxlbWVudCwgRGF0 YTEsIFtdLCBDb250ZW50TmV3fQorKwkgICAgZW5kLAorKyAgICBFbHMzID0gbGlzdHM6a2V5ZGVs ZXRlKERhdGExLCAyLCBFbHMyKSwKKysgICAgbGlzdHM6a2V5bWVyZ2UoMiwgW05ld0VsXSwgRWxz MykuCisrCisrCisrJSUlCisrJSUlIFJvc3RlcgorKyUlJQorKworK2FkZF9yb3N0ZXJpdGVtKExv Y2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFVzZXIsIFNlcnZlciwgTmljaywgR3JvdXAsIFN1YnMpIC0+ CisrICAgIGNhc2UgYWRkX3Jvc3Rlcml0ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgVXNlciwg U2VydmVyLCBOaWNrLCBHcm91cCwgbGlzdF90b19hdG9tKFN1YnMpLCBbXSkgb2YKKysJe2F0b21p Yywgb2t9IC0+CisrCSAgICBwdXNoX3Jvc3Rlcl9pdGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIs IFVzZXIsIFNlcnZlciwge2FkZCwgTmljaywgU3VicywgR3JvdXB9KSwKKysJICAgIG9rOworKwlf IC0+CisrCSAgICBlcnJvcgorKyAgICBlbmQuCisrCisrYWRkX3Jvc3Rlcml0ZW0oTFUsIExTLCBV c2VyLCBTZXJ2ZXIsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24sIFhhdHRycykgLT4KKysgICAg c3Vic2NyaWJlKExVLCBMUywgVXNlciwgU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vic2NyaXB0aW9u LCBYYXR0cnMpLgorKworK3N1YnNjcmliZShMVSwgTFMsIFVzZXIsIFNlcnZlciwgTmljaywgR3Jv dXAsIFN1YnNjcmlwdGlvbiwgWGF0dHJzKSAtPgorKyAgICBtbmVzaWE6dHJhbnNhY3Rpb24oCisr ICAgICAgZnVuKCkgLT4KKysJICAgICAgbW5lc2lhOndyaXRlKHtyb3N0ZXIsCisrCQkJICAgIHtM VSxMUyx7VXNlcixTZXJ2ZXIsW119fSwgJSB1agorKwkJCSAgICB7TFUsTFN9LCAgICAgICAgICAg ICAgICAgICUgdXNlcgorKwkJCSAgICB7VXNlcixTZXJ2ZXIsW119LCAgICAgICUgamlkCisrCQkJ ICAgIE5pY2ssICAgICAgICAgICAgICAgICAgJSBuYW1lOiAiTW9tIiwgW10KKysJCQkgICAgU3Vi c2NyaXB0aW9uLCAgJSBzdWJzY3JpcHRpb246IG5vbmUsIHRvPXlvdSBzZWUgaGltLCBmcm9tPWhl IHNlZXMgeW91LCBib3RoCisrCQkJICAgIG5vbmUsICAgICAgICAgICUgYXNrOiBvdXQ9c2VuZCBy ZXF1ZXN0LCBpbj1zb21lYm9keSByZXF1ZXN0cyB5b3UsIG5vbmUKKysJCQkgICAgW0dyb3VwXSwg ICAgICAgJSBncm91cHM6IFsiRmFtaWx5Il0KKysJCQkgICAgWGF0dHJzLCAgICAgICAgJSB4YXR0 cnM6IFt7ImNhdGVnb3J5IiwiY29uZmVyZW5jZSJ9XQorKwkJCSAgICBbXSAgICAgICAgICAgICAl IHhzOiBbXQorKwkJCSAgIH0pCisrICAgICAgZW5kKS4KKysKKytkZWxldGVfcm9zdGVyaXRlbShM b2NhbFVzZXIsIExvY2FsU2VydmVyLCBVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIGNhc2UgdW5zdWJz Y3JpYmUoTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgVXNlciwgU2VydmVyKSBvZgorKwl7YXRvbWlj LCBva30gLT4KKysJICAgIHB1c2hfcm9zdGVyX2l0ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwg VXNlciwgU2VydmVyLCByZW1vdmUpLAorKwkgICAgb2s7CisrCV8gIC0+CisrCSAgICBlcnJvcgor KyAgICBlbmQuCisrCisrdW5zdWJzY3JpYmUoTFUsIExTLCBVc2VyLCBTZXJ2ZXIpIC0+CisrICAg IG1uZXNpYTp0cmFuc2FjdGlvbigKKysgICAgICBmdW4oKSAtPgorKyAgICAgICAgICAgICAgbW5l c2lhOmRlbGV0ZSh7cm9zdGVyLCB7TFUsIExTLCB7VXNlciwgU2VydmVyLCBbXX19fSkKKysgICAg ICBlbmQpLgorKworKworKyUlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrJSUgR2V0 IFJvc3RlcgorKyUlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrZ2V0X3Jvc3Rl cihVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIHtvaywgUm9zdGVyfSA9IGdldF9yb3N0ZXIyKFVzZXIs IFNlcnZlciksCisrICAgIG1ha2Vfcm9zdGVyX3htbHJwYyhSb3N0ZXIpLgorKworK2dldF9yb3N0 ZXIyKFVzZXIsIFNlcnZlcikgLT4KKysgICAgTW9kdWxlcyA9IGdlbl9tb2Q6bG9hZGVkX21vZHVs ZXMoU2VydmVyKSwKKysgICAgUm9zdGVyID0gY2FzZSBsaXN0czptZW1iZXIobW9kX3Jvc3Rlciwg TW9kdWxlcykgb2YKKysJCSB0cnVlIC0+CisrCQkgICAgIG1vZF9yb3N0ZXI6Z2V0X3VzZXJfcm9z dGVyKFtdLCB7VXNlciwgU2VydmVyfSk7CisrCQkgZmFsc2UgLT4KKysJCSAgICAgY2FzZSBsaXN0 czptZW1iZXIobW9kX3Jvc3Rlcl9vZGJjLCBNb2R1bGVzKSBvZgorKwkJCSB0cnVlIC0+CisrCQkJ ICAgICBtb2Rfcm9zdGVyX29kYmM6Z2V0X3VzZXJfcm9zdGVyKFtdLCB7VXNlciwgU2VydmVyfSk7 CisrCQkJIGZhbHNlIC0+CisrCQkJICAgICB7ZXJyb3IsICJOZWl0aGVyIG1vZF9yb3N0ZXIgb3Ig bW9kX3Jvc3Rlcl9vZGJjIGFyZSBlbmFibGVkIn0KKysJCSAgICAgZW5kCisrCSAgICAgZW5kLAor KyAgICB7b2ssIFJvc3Rlcn0uCisrCisrJSUgTm90ZTogaWYgYSBjb250YWN0IGlzIGluIHNldmVy YWwgZ3JvdXBzLCB0aGUgY29udGFjdCBpcyByZXR1cm5lZAorKyUlIHNldmVyYWwgdGltZXMsIGVh Y2ggb25lIGluIGEgZGlmZmVyZW50IGdyb3VwLgorK21ha2Vfcm9zdGVyX3htbHJwYyhSb3N0ZXIp IC0+CisrICAgIGxpc3RzOmZvbGRsKAorKyAgICAgIGZ1bihJdGVtLCBSZXMpIC0+CisrCSAgICAg IEpJRFMgPSBqbGliOmppZF90b19zdHJpbmcoSXRlbSNyb3N0ZXIuamlkKSwKKysJICAgICAgTmlj ayA9IEl0ZW0jcm9zdGVyLm5hbWUsCisrCSAgICAgIEdyb3VwcyA9IGNhc2UgSXRlbSNyb3N0ZXIu Z3JvdXBzIG9mCisrCQkJICAgW10gLT4gWyIiXTsKKysJCQkgICBHcyAtPiBHcworKwkJICAgICAg IGVuZCwKKysJICAgICAgSXRlbXNYID0gW3tKSURTLCBOaWNrLCBHcm91cH0KKysJCQl8fCBHcm91 cCA8LSBHcm91cHNdLAorKwkgICAgICBJdGVtc1ggKysgUmVzCisrICAgICAgZW5kLAorKyAgICAg IFtdLAorKyAgICAgIFJvc3RlcikuCisrCisrCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyUlIFB1c2ggUm9zdGVyIGZyb20gZmlsZQorKyUlLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysKKytwdXNoX3Jvc3RlcihGaWxlLCBVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIHtv aywgW1Jvc3Rlcl19ID0gZmlsZTpjb25zdWx0KEZpbGUpLAorKyAgICBzdWJzY3JpYmVfcm9zdGVy KHtVc2VyLCBTZXJ2ZXIsICIiLCBVc2VyfSwgUm9zdGVyKS4KKysKKytwdXNoX3Jvc3Rlcl9hbGwo RmlsZSkgLT4KKysgICAge29rLCBbUm9zdGVyXX0gPSBmaWxlOmNvbnN1bHQoRmlsZSksCisrICAg IHN1YnNjcmliZV9hbGwoUm9zdGVyKS4KKysKKytzdWJzY3JpYmVfYWxsKFJvc3RlcikgLT4KKysg ICAgc3Vic2NyaWJlX2FsbChSb3N0ZXIsIFJvc3RlcikuCisrc3Vic2NyaWJlX2FsbChbXSwgXykg LT4KKysgICAgb2s7Cisrc3Vic2NyaWJlX2FsbChbVXNlcjEgfCBVc2Vyc10sIFJvc3RlcikgLT4K KysgICAgc3Vic2NyaWJlX3Jvc3RlcihVc2VyMSwgUm9zdGVyKSwKKysgICAgc3Vic2NyaWJlX2Fs bChVc2VycywgUm9zdGVyKS4KKysKKytzdWJzY3JpYmVfcm9zdGVyKF8sIFtdKSAtPgorKyAgICBv azsKKyslJSBEbyBub3Qgc3Vic2NyaWJlIGEgdXNlciB0byBpdHNlbGYKKytzdWJzY3JpYmVfcm9z dGVyKHtOYW1lLCBTZXJ2ZXIsIEdyb3VwLCBOaWNrfSwgW3tOYW1lLCBTZXJ2ZXIsIF8sIF99IHwg Um9zdGVyXSkgLT4KKysgICAgc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZSwgU2VydmVyLCBHcm91cCwg Tmlja30sIFJvc3Rlcik7CisrJSUgU3Vic2NyaWJlIE5hbWUyIHRvIE5hbWUxCisrc3Vic2NyaWJl X3Jvc3Rlcih7TmFtZTEsIFNlcnZlcjEsIEdyb3VwMSwgTmljazF9LCBbe05hbWUyLCBTZXJ2ZXIy LCBHcm91cDIsIE5pY2syfSB8IFJvc3Rlcl0pIC0+CisrICAgIHN1YnNjcmliZShOYW1lMSwgU2Vy dmVyMSwgTmFtZTIsIFNlcnZlcjIsIE5pY2syLCBHcm91cDIsIGJvdGgsIFtdKSwKKysgICAgc3Vi c2NyaWJlX3Jvc3Rlcih7TmFtZTEsIFNlcnZlcjEsIEdyb3VwMSwgTmljazF9LCBSb3N0ZXIpLgor KworK3B1c2hfYWxsdG9hbGwoUywgRykgLT4KKysgICAgVXNlcnMgPSBlamFiYmVyZF9hdXRoOmdl dF92aF9yZWdpc3RlcmVkX3VzZXJzKFMpLAorKyAgICBVc2VyczIgPSBidWlsZF9saXN0X3VzZXJz KEcsIFVzZXJzLCBbXSksCisrICAgIHN1YnNjcmliZV9hbGwoVXNlcnMyKSwKKysgICAgb2suCisr CisrYnVpbGRfbGlzdF91c2VycyhfR3JvdXAsIFtdLCBSZXMpIC0+CisrICAgIFJlczsKKytidWls ZF9saXN0X3VzZXJzKEdyb3VwLCBbe1VzZXIsIFNlcnZlcn18VXNlcnNdLCBSZXMpIC0+CisrICAg IGJ1aWxkX2xpc3RfdXNlcnMoR3JvdXAsIFVzZXJzLCBbe1VzZXIsIFNlcnZlciwgR3JvdXAsIFVz ZXJ9fFJlc10pLgorKworKyUlIEBzcGVjKExVLCBMUywgVSwgUywgQWN0aW9uKSAtPiBvaworKyUl ICAgICAgIEFjdGlvbiA9IHthZGQsIE5pY2ssIFN1YnMsIEdyb3VwfSB8IHJlbW92ZQorKyUlIEBk b2MgUHVzaCB0byB0aGUgcm9zdGVyIG9mIGFjY291bnQgTFVATFMgdGhlIGNvbnRhY3QgVUBTLgor KyUlIFRoZSBzcGVjaWZpYyBhY3Rpb24gdG8gcGVyZm9ybSBpcyBkZWZpbmVkIGluIEFjdGlvbi4K KytwdXNoX3Jvc3Rlcl9pdGVtKExVLCBMUywgVSwgUywgQWN0aW9uKSAtPgorKyAgICBsaXN0czpm b3JlYWNoKGZ1bihSKSAtPgorKwkJCSAgcHVzaF9yb3N0ZXJfaXRlbShMVSwgTFMsIFIsIFUsIFMs IEFjdGlvbikKKysJCSAgZW5kLCBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoTFUsIExT KSkuCisrCisrcHVzaF9yb3N0ZXJfaXRlbShMVSwgTFMsIFIsIFUsIFMsIEFjdGlvbikgLT4KKysg ICAgSXRlbSA9IGJ1aWxkX3Jvc3Rlcl9pdGVtKFUsIFMsIEFjdGlvbiksCisrICAgIFJlc0lRID0g YnVpbGRfaXFfcm9zdGVyX3B1c2goSXRlbSksCisrICAgIExKSUQgPSBqbGliOm1ha2VfamlkKExV LCBMUywgUiksCisrICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShMSklELCBMSklELCBSZXNJUSku CisrCisrYnVpbGRfcm9zdGVyX2l0ZW0oVSwgUywge2FkZCwgTmljaywgU3VicywgR3JvdXB9KSAt PgorKyAgICB7eG1sZWxlbWVudCwgIml0ZW0iLAorKyAgICAgW3siamlkIiwgamxpYjpqaWRfdG9f c3RyaW5nKGpsaWI6bWFrZV9qaWQoVSwgUywgIiIpKX0sCisrICAgICAgeyJuYW1lIiwgTmlja30s CisrICAgICAgeyJzdWJzY3JpcHRpb24iLCBTdWJzfV0sCisrICAgICBbe3htbGVsZW1lbnQsICJn cm91cCIsIFtdLCBbe3htbGNkYXRhLCBHcm91cH1dfV0KKysgICAgfTsKKytidWlsZF9yb3N0ZXJf aXRlbShVLCBTLCByZW1vdmUpIC0+CisrICAgIHt4bWxlbGVtZW50LCAiaXRlbSIsCisrICAgICBb eyJqaWQiLCBqbGliOmppZF90b19zdHJpbmcoamxpYjptYWtlX2ppZChVLCBTLCAiIikpfSwKKysg ICAgICB7InN1YnNjcmlwdGlvbiIsICJyZW1vdmUifV0sCisrICAgICBbXQorKyAgICB9LgorKwor K2J1aWxkX2lxX3Jvc3Rlcl9wdXNoKEl0ZW0pIC0+CisrICAgIHt4bWxlbGVtZW50LCAiaXEiLAor KyAgICAgW3sidHlwZSIsICJzZXQifSwgeyJpZCIsICJwdXNoIn1dLAorKyAgICAgW3t4bWxlbGVt ZW50LCAicXVlcnkiLAorKyAgICAgICBbeyJ4bWxucyIsID9OU19ST1NURVJ9XSwKKysgICAgICAg W0l0ZW1dCisrICAgICAgfQorKyAgICAgXQorKyAgICB9LgorKworKworKyUlJQorKyUlJSBTaGFy ZWQgUm9zdGVyIEdyb3VwcworKyUlJQorKworK3NyZ19jcmVhdGUoR3JvdXAsIEhvc3QsIE5hbWUs IERlc2NyaXB0aW9uLCBEaXNwbGF5KSAtPgorKyAgICB7b2ssIERpc3BsYXlMaXN0fSA9IHJlZ2V4 cDpzcGxpdChEaXNwbGF5LCAiXFxcXG4iKSwKKysgICAgT3B0cyA9IFt7bmFtZSwgTmFtZX0sCisr CSAgICB7ZGlzcGxheWVkX2dyb3VwcywgRGlzcGxheUxpc3R9LAorKwkgICAge2Rlc2NyaXB0aW9u LCBEZXNjcmlwdGlvbn1dLAorKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3Rlcjpj cmVhdGVfZ3JvdXAoSG9zdCwgR3JvdXAsIE9wdHMpLAorKyAgICBvay4KKysKKytzcmdfZGVsZXRl KEdyb3VwLCBIb3N0KSAtPgorKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3Rlcjpk ZWxldGVfZ3JvdXAoSG9zdCwgR3JvdXApLAorKyAgICBvay4KKysKKytzcmdfbGlzdChIb3N0KSAt PgorKyAgICBsaXN0czpzb3J0KG1vZF9zaGFyZWRfcm9zdGVyOmxpc3RfZ3JvdXBzKEhvc3QpKS4K KysKKytzcmdfZ2V0X2luZm8oR3JvdXAsIEhvc3QpIC0+CisrICAgIE9wdHMgPSBtb2Rfc2hhcmVk X3Jvc3RlcjpnZXRfZ3JvdXBfb3B0cyhIb3N0LEdyb3VwKSwKKysgICAgW3tpb19saWI6Zm9ybWF0 KCJ+cCIsIFtUaXRsZV0pLAorKyAgICAgIGlvX2xpYjpmb3JtYXQoIn5wIiwgW1ZhbHVlXSl9IHx8 IHtUaXRsZSwgVmFsdWV9IDwtIE9wdHNdLgorKworK3NyZ19nZXRfbWVtYmVycyhHcm91cCwgSG9z dCkgLT4KKysgICAgTWVtYmVycyA9IG1vZF9zaGFyZWRfcm9zdGVyOmdldF9ncm91cF9leHBsaWNp dF91c2VycyhIb3N0LEdyb3VwKSwKKysgICAgW2psaWI6amlkX3RvX3N0cmluZyhqbGliOm1ha2Vf amlkKE1Vc2VyLCBNU2VydmVyLCAiIikpCisrICAgICB8fCB7TVVzZXIsIE1TZXJ2ZXJ9IDwtIE1l bWJlcnNdLgorKworK3NyZ191c2VyX2FkZChVc2VyLCBIb3N0LCBHcm91cCwgR3JvdXBIb3N0KSAt PgorKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjphZGRfdXNlcl90b19ncm91 cChHcm91cEhvc3QsIHtVc2VyLCBIb3N0fSwgR3JvdXApLAorKyAgICBvay4KKysKKytzcmdfdXNl cl9kZWwoVXNlciwgSG9zdCwgR3JvdXAsIEdyb3VwSG9zdCkgLT4KKysgICAge2F0b21pYywgb2t9 ID0gbW9kX3NoYXJlZF9yb3N0ZXI6cmVtb3ZlX3VzZXJfZnJvbV9ncm91cChHcm91cEhvc3QsIHtV c2VyLCBIb3N0fSwgR3JvdXApLAorKyAgICBvay4KKysKKysKKyslJSUKKyslJSUgU3RhbnphCisr JSUlCisrCisrJSUgQGRvYyBTZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgSmFiYmVyIGFjY291bnQu CisrJSUgQHNwZWMgKEZyb206OnN0cmluZygpLCBUbzo6c3RyaW5nKCksIEJvZHk6OnN0cmluZygp KSAtPiBvaworK3NlbmRfbWVzc2FnZV9jaGF0KEZyb20sIFRvLCBCb2R5KSAtPgorKyAgICBQYWNr ZXQgPSBidWlsZF9wYWNrZXQobWVzc2FnZV9jaGF0LCBbQm9keV0pLAorKyAgICBzZW5kX3BhY2tl dF9hbGxfcmVzb3VyY2VzKEZyb20sIFRvLCBQYWNrZXQpLgorKworKyUlIEBkb2MgU2VuZCBhIGhl YWRsaW5lIG1lc3NhZ2UgdG8gYSBKYWJiZXIgYWNjb3VudC4KKyslJSBAc3BlYyAoRnJvbTo6c3Ry aW5nKCksIFRvOjpzdHJpbmcoKSwgU3ViamVjdDo6c3RyaW5nKCksIEJvZHk6OnN0cmluZygpKSAt PiBvaworK3NlbmRfbWVzc2FnZV9oZWFkbGluZShGcm9tLCBUbywgU3ViamVjdCwgQm9keSkgLT4K KysgICAgUGFja2V0ID0gYnVpbGRfcGFja2V0KG1lc3NhZ2VfaGVhZGxpbmUsIFtTdWJqZWN0LCBC b2R5XSksCisrICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbSwgVG8sIFBhY2tldCku CisrCisrJSUgQGRvYyBTZW5kIGEgcGFja2V0IHRvIGEgSmFiYmVyIGFjY291bnQuCisrJSUgSWYg YSByZXNvdXJjZSB3YXMgc3BlY2lmaWVkIGluIHRoZSBKSUQsCisrJSUgdGhlIHBhY2tldCBpcyBz ZW50IG9ubHkgdG8gdGhhdCBzcGVjaWZpYyByZXNvdXJjZS4KKyslJSBJZiBubyByZXNvdXJjZSB3 YXMgc3BlY2lmaWVkIGluIHRoZSBKSUQsCisrJSUgYW5kIHRoZSB1c2VyIGlzIHJlbW90ZSBvciBs b2NhbCBidXQgb2ZmbGluZSwKKyslJSB0aGUgcGFja2V0IGlzIHNlbnQgdG8gdGhlIGJhcmUgSklE LgorKyUlIElmIHRoZSB1c2VyIGlzIGxvY2FsIGFuZCBpcyBvbmxpbmUgaW4gc2V2ZXJhbCByZXNv dXJjZXMsCisrJSUgdGhlIHBhY2tldCBpcyBzZW50IHRvIGFsbCBpdHMgcmVzb3VyY2VzLgorK3Nl bmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRFN0cmluZywgVG9KSURTdHJpbmcsIFBhY2tl dCkgLT4KKysgICAgRnJvbUpJRCA9IGpsaWI6c3RyaW5nX3RvX2ppZChGcm9tSklEU3RyaW5nKSwK KysgICAgVG9KSUQgPSBqbGliOnN0cmluZ190b19qaWQoVG9KSURTdHJpbmcpLAorKyAgICBUb1Vz ZXIgPSBUb0pJRCNqaWQudXNlciwKKysgICAgVG9TZXJ2ZXIgPSBUb0pJRCNqaWQuc2VydmVyLAor KyAgICBjYXNlIFRvSklEI2ppZC5yZXNvdXJjZSBvZgorKwkiIiAtPgorKwkgICAgc2VuZF9wYWNr ZXRfYWxsX3Jlc291cmNlcyhGcm9tSklELCBUb1VzZXIsIFRvU2VydmVyLCBQYWNrZXQpOworKwlS ZXMgLT4KKysJICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBU b1NlcnZlciwgUmVzLCBQYWNrZXQpCisrICAgIGVuZC4KKysKKytzZW5kX3BhY2tldF9hbGxfcmVz b3VyY2VzKEZyb21KSUQsIFRvVXNlciwgVG9TZXJ2ZXIsIFBhY2tldCkgLT4KKysgICAgY2FzZSBl amFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoVG9Vc2VyLCBUb1NlcnZlcikgb2YKKysJW10g LT4KKysJICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1Nl cnZlciwgIiIsIFBhY2tldCk7CisrCVRvUmVzb3VyY2VzIC0+CisrCSAgICBsaXN0czpmb3JlYWNo KAorKwkgICAgICBmdW4oVG9SZXNvdXJjZSkgLT4KKysJCSAgICAgIHNlbmRfcGFja2V0X2FsbF9y ZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1NlcnZlciwKKysJCQkJCQlUb1Jlc291cmNlLCBQ YWNrZXQpCisrCSAgICAgIGVuZCwKKysJICAgICAgVG9SZXNvdXJjZXMpCisrICAgIGVuZC4KKysK KytzZW5kX3BhY2tldF9hbGxfcmVzb3VyY2VzKEZyb21KSUQsIFRvVSwgVG9TLCBUb1IsIFBhY2tl dCkgLT4KKysgICAgVG9KSUQgPSBqbGliOm1ha2VfamlkKFRvVSwgVG9TLCBUb1IpLAorKyAgICBl amFiYmVyZF9yb3V0ZXI6cm91dGUoRnJvbUpJRCwgVG9KSUQsIFBhY2tldCkuCisrCisrCisrYnVp bGRfcGFja2V0KG1lc3NhZ2VfY2hhdCwgW0JvZHldKSAtPgorKyAgICB7eG1sZWxlbWVudCwgIm1l c3NhZ2UiLAorKyAgICAgW3sidHlwZSIsICJjaGF0In1dLAorKyAgICAgW3t4bWxlbGVtZW50LCAi Ym9keSIsIFtdLCBbe3htbGNkYXRhLCBCb2R5fV19XQorKyAgICB9OworK2J1aWxkX3BhY2tldCht ZXNzYWdlX2hlYWRsaW5lLCBbU3ViamVjdCwgQm9keV0pIC0+CisrICAgIHt4bWxlbGVtZW50LCAi bWVzc2FnZSIsCisrICAgICBbeyJ0eXBlIiwgImhlYWRsaW5lIn1dLAorKyAgICAgW3t4bWxlbGVt ZW50LCAic3ViamVjdCIsIFtdLCBbe3htbGNkYXRhLCBTdWJqZWN0fV19LAorKyAgICAgIHt4bWxl bGVtZW50LCAiYm9keSIsIFtdLCBbe3htbGNkYXRhLCBCb2R5fV19CisrICAgICBdCisrICAgIH0u CisrCisrJSUlCisrJSUlIFN0YXRzCisrJSUlCisrCisrc3RhdHMoTmFtZSkgLT4KKysgICAgY2Fz ZSBOYW1lIG9mCisrCSJ1cHRpbWVzZWNvbmRzIiAtPiB0cnVuYyhlbGVtZW50KDEsIGVybGFuZzpz dGF0aXN0aWNzKHdhbGxfY2xvY2spKS8xMDAwKTsKKysJInJlZ2lzdGVyZWR1c2VycyIgLT4gbGVu Z3RoKGVqYWJiZXJkX2F1dGg6ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSk7CisrCSJvbmxp bmV1c2Vyc25vZGUiIC0+IGxlbmd0aChlamFiYmVyZF9zbTpkaXJ0eV9nZXRfbXlfc2Vzc2lvbnNf bGlzdCgpKTsKKysJIm9ubGluZXVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRfc206ZGlydHlfZ2V0 X3Nlc3Npb25zX2xpc3QoKSkKKysgICAgZW5kLgorKworK3N0YXRzKE5hbWUsIEhvc3QpIC0+Cisr ICAgIGNhc2UgTmFtZSBvZgorKwkicmVnaXN0ZXJlZHVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRf YXV0aDpnZXRfdmhfcmVnaXN0ZXJlZF91c2VycyhIb3N0KSk7CisrCSJvbmxpbmV1c2VycyIgLT4g bGVuZ3RoKGVqYWJiZXJkX3NtOmdldF92aF9zZXNzaW9uX2xpc3QoSG9zdCkpCisrICAgIGVuZC4K KysKKysKKysKKyslJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrJSUgUHVyZ2Ugcm9z dGVyIGl0ZW1zCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworK3Byb2Nlc3Nf cm9zdGVyaXRlbXMoQWN0aW9uUywgU3Vic1MsIEFza3NTLCBVc2Vyc1MsIENvbnRhY3RzUykgLT4K KysgICAgQWN0aW9uID0gY2FzZSBBY3Rpb25TIG9mCisrCQkgImxpc3QiIC0+IGxpc3Q7CisrCQkg ImRlbGV0ZSIgLT4gZGVsZXRlCisrCSAgICAgZW5kLAorKworKyAgICBTdWJzID0gbGlzdHM6Zm9s ZGwoCisrCSAgICAgZnVuKGFueSwgXykgLT4gW25vbmUsIGZyb20sIHRvLCBib3RoXTsKKysJCShT dWIsIFN1YnMpIC0+IFtTdWIgfCBTdWJzXQorKwkgICAgIGVuZCwKKysJICAgICBbXSwKKysJICAg ICBbbGlzdF90b19hdG9tKFMpIHx8IFMgPC0gc3RyaW5nOnRva2VucyhTdWJzUywgIjoiKV0KKysJ ICAgICksCisrCisrICAgIEFza3MgPSBsaXN0czpmb2xkbCgKKysJICAgICBmdW4oYW55LCBfKSAt PiBbbm9uZSwgb3V0LCBpbl07CisrCQkoQXNrLCBBc2tzKSAtPiBbQXNrIHwgQXNrc10KKysJICAg ICBlbmQsCisrCSAgICAgW10sCisrCSAgICAgW2xpc3RfdG9fYXRvbShTKSB8fCBTIDwtIHN0cmlu Zzp0b2tlbnMoQXNrc1MsICI6IildCisrCSAgICApLAorKworKyAgICBVc2VycyA9IGxpc3RzOmZv bGRsKAorKwkgICAgICBmdW4oImFueSIsIF8pIC0+IFsiKiIsICIqQCoiXTsKKysJCSAoVSwgVXMp IC0+IFtVIHwgVXNdCisrCSAgICAgIGVuZCwKKysJICAgICAgW10sCisrCSAgICAgIFtTIHx8IFMg PC0gc3RyaW5nOnRva2VucyhVc2Vyc1MsICI6IildCisrCSAgICAgKSwKKysKKysgICAgQ29udGFj dHMgPSBsaXN0czpmb2xkbCgKKysJCSBmdW4oImFueSIsIF8pIC0+IFsiKiIsICIqQCoiXTsKKysJ CSAgICAoVSwgVXMpIC0+IFtVIHwgVXNdCisrCQkgZW5kLAorKwkJIFtdLAorKwkJIFtTIHx8IFMg PC0gc3RyaW5nOnRva2VucyhDb250YWN0c1MsICI6IildCisrCQkpLAorKworKyAgICBjYXNlIHJv c3Rlcml0ZW1fcHVyZ2Uoe0FjdGlvbiwgU3VicywgQXNrcywgVXNlcnMsIENvbnRhY3RzfSkgb2YK KysJe2F0b21pYywgb2t9IC0+CisrCSAgICBvazsKKysJe2Vycm9yLCBSZWFzb259IC0+CisrCSAg ICBpbzpmb3JtYXQoIkVycm9yIHB1cmdpbmcgcm9zdGVyaXRlbXM6IH5wfm4iLCBbUmVhc29uXSks CisrCSAgICBlcnJvcjsKKysJe2JhZHJwYywgUmVhc29ufSAtPgorKwkgICAgaW86Zm9ybWF0KCJC YWRSUEMgcHVyZ2luZyByb3N0ZXJpdGVtczogfnB+biIsIFtSZWFzb25dKSwKKysJICAgIGVycm9y CisrICAgIGVuZC4KKysKKyslJSBAc3BlYyAoe0FjdGlvbjo6YXRvbSgpLCBTdWJzOjpbYXRvbSgp XSwgQXNrczo6W2F0b20oKV0sIFVzZXI6OnN0cmluZygpLCBDb250YWN0OjpzdHJpbmcoKX0pIC0+ IHthdG9taWMsIG9rfQorK3Jvc3Rlcml0ZW1fcHVyZ2UoT3B0aW9ucykgLT4KKysgICAgTnVtX3Jv c3Rlcml0ZW1zID0gbW5lc2lhOnRhYmxlX2luZm8ocm9zdGVyLCBzaXplKSwKKysgICAgaW86Zm9y bWF0KCJUaGVyZSBhcmUgfnAgcm9zdGVyIGl0ZW1zIGluIHRvdGFsLn5uIiwgW051bV9yb3N0ZXJp dGVtc10pLAorKyAgICBLZXkgPSBtbmVzaWE6ZGlydHlfZmlyc3Qocm9zdGVyKSwKKysgICAgb2sg PSByaXAoS2V5LCBPcHRpb25zLCB7MCwgTnVtX3Jvc3Rlcml0ZW1zLCAwLCAwfSksCisrICAgIHth dG9taWMsIG9rfS4KKysKKytyaXAoJyRlbmRfb2ZfdGFibGUnLCBfT3B0aW9ucywgQ291bnRlcnMp IC0+CisrICAgIHByaW50X3Byb2dyZXNzX2xpbmUoQ291bnRlcnMpLAorKyAgICBvazsKKytyaXAo S2V5LCBPcHRpb25zLCB7UHIsIE5ULCBOViwgTkR9KSAtPgorKyAgICBLZXlfbmV4dCA9IG1uZXNp YTpkaXJ0eV9uZXh0KHJvc3RlciwgS2V5KSwKKysgICAge0FjdGlvbiwgXywgXywgXywgX30gPSBP cHRpb25zLAorKyAgICBORDIgPSBjYXNlIGRlY2lkZV9yaXAoS2V5LCBPcHRpb25zKSBvZgorKwkg ICAgICB0cnVlIC0+CisrCQkgIGFwcGx5X2FjdGlvbihBY3Rpb24sIEtleSksCisrCQkgIE5EKzE7 CisrCSAgICAgIGZhbHNlIC0+CisrCQkgIE5ECisrCSAgZW5kLAorKyAgICBOVjIgPSBOVisxLAor KyAgICBQcjIgPSBwcmludF9wcm9ncmVzc19saW5lKHtQciwgTlQsIE5WMiwgTkQyfSksCisrICAg IHJpcChLZXlfbmV4dCwgT3B0aW9ucywge1ByMiwgTlQsIE5WMiwgTkQyfSkuCisrCisrYXBwbHlf YWN0aW9uKGxpc3QsIEtleSkgLT4KKysgICAge1VzZXIsIFNlcnZlciwgSklEfSA9IEtleSwKKysg ICAge1JVc2VyLCBSU2VydmVyLCBffSA9IEpJRCwKKysgICAgaW86Zm9ybWF0KCJNYXRjaGVzOiB+ c0B+cyB+c0B+c35uIiwgW1VzZXIsIFNlcnZlciwgUlVzZXIsIFJTZXJ2ZXJdKTsKKythcHBseV9h Y3Rpb24oZGVsZXRlLCBLZXkpIC0+CisrICAgIGFwcGx5X2FjdGlvbihsaXN0LCBLZXkpLAorKyAg ICBtbmVzaWE6ZGlydHlfZGVsZXRlKHJvc3RlciwgS2V5KS4KKysKKytwcmludF9wcm9ncmVzc19s aW5lKHtQciwgTlQsIE5WLCBORH0pIC0+CisrICAgIFByMiA9IHRydW5jKChOVi9OVCkqMTAwKSwK KysgICAgY2FzZSBQciA9PSBQcjIgb2YKKysJdHJ1ZSAtPgorKwkgICAgb2s7CisrCWZhbHNlIC0+ CisrCSAgICBpbzpmb3JtYXQoIlByb2dyZXNzIH5wJSAtIHZpc2l0ZWQgfnAgLSBkZWxldGVkIH5w fm4iLCBbUHIyLCBOViwgTkRdKQorKyAgICBlbmQsCisrICAgIFByMi4KKysKKytkZWNpZGVfcmlw KEtleSwge19BY3Rpb24sIFN1YnMsIEFza3MsIFVzZXIsIENvbnRhY3R9KSAtPgorKyAgICBjYXNl IGNhdGNoIG1uZXNpYTpkaXJ0eV9yZWFkKHJvc3RlciwgS2V5KSBvZgorKwlbUkldIC0+CisrCSAg ICBsaXN0czptZW1iZXIoUkkjcm9zdGVyLnN1YnNjcmlwdGlvbiwgU3VicykKKysJCWFuZGFsc28g bGlzdHM6bWVtYmVyKFJJI3Jvc3Rlci5hc2ssIEFza3MpCisrCQlhbmRhbHNvIGRlY2lkZV9yaXBf amlkKFJJI3Jvc3Rlci51cywgVXNlcikKKysJCWFuZGFsc28gZGVjaWRlX3JpcF9qaWQoUkkjcm9z dGVyLmppZCwgQ29udGFjdCk7CisrCV8gLT4KKysJICAgIGZhbHNlCisrICAgIGVuZC4KKysKKysl JSBSZXR1cm5zIHRydWUgaWYgdGhlIHNlcnZlciBvZiB0aGUgSklEIGlzIGluY2x1ZGVkIGluIHRo ZSBzZXJ2ZXJzCisrZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyLCBfVVJlc291cmNlfSwg TWF0Y2hfbGlzdCkgLT4KKysgICAgZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0 Y2hfbGlzdCk7CisrZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0Y2hfbGlzdCkg LT4KKysgICAgbGlzdHM6YW55KAorKyAgICAgIGZ1bihNYXRjaF9zdHJpbmcpIC0+CisrCSAgICAg IE1KSUQgPSBqbGliOnN0cmluZ190b19qaWQoTWF0Y2hfc3RyaW5nKSwKKysJICAgICAgTU5hbWUg PSBNSklEI2ppZC5sdXNlciwKKysJICAgICAgTVNlcnZlciA9IE1KSUQjamlkLmxzZXJ2ZXIsCisr CSAgICAgIElzX3NlcnZlciA9IGlzX2dsb2JfbWF0Y2goVVNlcnZlciwgTVNlcnZlciksCisrCSAg ICAgIGNhc2UgTU5hbWUgb2YKKysJCSAgW10gd2hlbiBVTmFtZSA9PSBbXSAtPgorKwkJICAgICAg SXNfc2VydmVyOworKwkJICBbXSAtPgorKwkJICAgICAgZmFsc2U7CisrCQkgIF8gLT4KKysJCSAg ICAgIElzX3NlcnZlcgorKwkJCSAgYW5kYWxzbyBpc19nbG9iX21hdGNoKFVOYW1lLCBNTmFtZSkK KysJICAgICAgZW5kCisrICAgICAgZW5kLAorKyAgICAgIE1hdGNoX2xpc3QpLgorKworKyUlIENv cGllZCBmcm9tIGVqYWJiZXJkLTIuMC4wL3NyYy9hY2wuZXJsCisraXNfcmVnZXhwX21hdGNoKFN0 cmluZywgUmVnRXhwKSAtPgorKyAgICBjYXNlIHJlZ2V4cDpmaXJzdF9tYXRjaChTdHJpbmcsIFJl Z0V4cCkgb2YKKysJbm9tYXRjaCAtPgorKwkgICAgZmFsc2U7CisrCXttYXRjaCwgXywgX30gLT4K KysJICAgIHRydWU7CisrCXtlcnJvciwgRXJyRGVzY30gLT4KKysJICAgIGlvOmZvcm1hdCgKKysJ ICAgICAgIldyb25nIHJlZ2V4cCB+cCBpbiBBQ0w6IH5wIiwKKysJICAgICAgW1JlZ0V4cCwgbGlz dHM6ZmxhdHRlbihyZWdleHA6Zm9ybWF0X2Vycm9yKEVyckRlc2MpKV0pLAorKwkgICAgZmFsc2UK KysgICAgZW5kLgorK2lzX2dsb2JfbWF0Y2goU3RyaW5nLCBHbG9iKSAtPgorKyAgICBpc19yZWdl eHBfbWF0Y2goU3RyaW5nLCByZWdleHA6c2hfdG9fYXdrKEdsb2IpKS4KCmRpZmYgLS1naXQgYS9l amFiYmVyZC1waWVmeGlzLXZob3N0LWV4cG9ydC5wYXRjaCBiL2VqYWJiZXJkLXBpZWZ4aXMtdmhv c3QtZXhwb3J0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMDE0 NDkKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC1waWVmeGlzLXZob3N0LWV4cG9ydC5wYXRj aApAQCAtMCwwICsxLDY4IEBACitUaGlzIHBhdGNoIGVuYWJsZXMgZ2VuZXJhdGlvbiBvZiB0aGUg bWFpbiBYTUwgZmlsZQord2hlbiBleHBvcnRpbmcgZGF0YSBvZiBhIHZpcnR1YWwgaG9zdCBpbnRv IFBJRUZYSVMgZm9ybWF0LgorCitUaGlzIGlzc3VlIGlzIHRyYWNrZWQgdXBzdHJlYW0gYXMgRUpB Qi0xMDk4LgorCitUaGlzIGNoYW5nZXNldCB3YXMgaW50cm9kdWNlZCBpbiByZXZpc2lvbnMgMjc1 MywKK2JyYW5jaCBodHRwOi8vc3ZuLnByb2Nlc3Mtb25lLm5ldC9lamFiYmVyZC9icmFuY2hlcy9l amFiYmVyZC0yLjEueAorCitUaGUgZmlyc3Qgc3RhYmxlIHZlcnNpb24gY29udGFpbmluZyB0aGUg Zml4IGlzIDIuMS4xLgorCistLS0gYS9zcmMvZWphYmJlcmRfcGllZnhpcy5lcmwJKHJldmlzaW9u IDI3NTIpCisrKysgYi9zcmMvZWphYmJlcmRfcGllZnhpcy5lcmwJKHJldmlzaW9uIDI3NTMpCitA QCAtMjEyLDcgKzIxMiw3IEBACisgCQkgICBFbCksCisgCSAgICBvazsKKyAJe2F0b21pYywgZXhp c3RzfSAtPgorLQkgICAgP0lORk9fTVNHKCJVc2VyIH5wQH5wIGFscmVhZHkgZXhpc3RzLCB1c2lu ZyBzdG9yZWQgcHJvZmlsZS4uLn5uIiwKKysJICAgIGlvOmZvcm1hdCgiQWNjb3VudCB+c0B+cyBh bHJlYWR5IGV4aXN0cywgdXBkYXRpbmcgaXQuLi5+biIsCisgCQkgICAgICBbVXNlciwgRG9tYWlu XSksCisgCSAgICBpbzpmb3JtYXQoIiIpLAorIAkgICAgb2sgPSBleG1wcF94bWw6Zm9yZWFjaCgK K0BAIC00MTcsMTAgKzQxNywxMCBAQAorIAorICUlJT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKyAKKy0lJSUlIEV4cG9ydCBzZXJ2ZXIKKyslJSUlIEV4cG9ydCBob3N0cworIAor LSUlIEBzcGVjIChEaXI6OnN0cmluZygpKSAtPiBvaworLWV4cG9ydF9zZXJ2ZXIoRGlyKSAtPgor KyUlIEBzcGVjIChEaXI6OnN0cmluZygpLCBIb3N0czo6W3N0cmluZygpXSkgLT4gb2sKKytleHBv cnRfaG9zdHMoRGlyLCBIb3N0cykgLT4KKyAgICAgdHJ5X3N0YXJ0X2V4bXBwKCksCisgCisgICAg IEZuVCA9IG1ha2VfZmlsZW5hbWVfdGVtcGxhdGUoKSwKK0BAIC00MzAsNyArNDMwLDYgQEAKKyAg ICAgcHJpbnQoRmQsIG1ha2VfcGllZnhpc194bWxfaGVhZCgpKSwKKyAgICAgcHJpbnQoRmQsIG1h a2VfcGllZnhpc19zZXJ2ZXJfaGVhZCgpKSwKKyAKKy0gICAgSG9zdHMgPSA/TVlIT1NUUywKKyAg ICAgRmlsZXNBbmRIb3N0cyA9IFt7bWFrZV9ob3N0X2ZpbGVuYW1lKEZuVCwgSG9zdCksIEhvc3R9 IHx8IEhvc3QgPC0gSG9zdHNdLAorICAgICBbcHJpbnQoRmQsIG1ha2VfeGluY2x1ZGUoRm5IKSkg fHwge0ZuSCwgX0hvc3R9IDwtIEZpbGVzQW5kSG9zdHNdLAorIAorQEAgLTQ0MywxNCArNDQyLDIw IEBACisgICAgIG9rLgorIAorICUlJT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K KyslJSUlIEV4cG9ydCBzZXJ2ZXIKKysKKyslJSBAc3BlYyAoRGlyOjpzdHJpbmcoKSkgLT4gb2sK KytleHBvcnRfc2VydmVyKERpcikgLT4KKysgICAgSG9zdHMgPSA/TVlIT1NUUywKKysgICAgZXhw b3J0X2hvc3RzKERpciwgSG9zdHMpLgorKworKyUlJT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKyAlJSUlIEV4cG9ydCBob3N0CisgCisgJSUgQHNwZWMgKERpcjo6c3RyaW5nKCks IEhvc3Q6OnN0cmluZygpKSAtPiBvaworIGV4cG9ydF9ob3N0KERpciwgSG9zdCkgLT4KKy0gICAg dHJ5X3N0YXJ0X2V4bXBwKCksCistICAgIEZuVCA9IG1ha2VfZmlsZW5hbWVfdGVtcGxhdGUoKSwK Ky0gICAgRm5IID0gbWFrZV9ob3N0X2ZpbGVuYW1lKEZuVCwgSG9zdCksCistICAgIGV4cG9ydF9o b3N0KERpciwgRm5ILCBIb3N0KS4KKysgICAgSG9zdHMgPSBbSG9zdF0sCisrICAgIGV4cG9ydF9o b3N0cyhEaXIsIEhvc3RzKS4KKyAKKyAlJSBAc3BlYyAoRGlyOjpzdHJpbmcoKSwgRm46OnN0cmlu ZygpLCBIb3N0OjpzdHJpbmcoKSkgLT4gb2sKKyBleHBvcnRfaG9zdChEaXIsIEZuSCwgSG9zdCkg LT4KCmRpZmYgLS1naXQgYS9lamFiYmVyZC12Y2FyZC1yZXFzLWZvcndhcmRpbmcucGF0Y2ggYi9l amFiYmVyZC12Y2FyZC1yZXFzLWZvcndhcmRpbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNjI4MDM1MQotLS0gL2Rldi9udWxsCisrKyBiL2VqYWJiZXJkLXZjYXJk LXJlcXMtZm9yd2FyZGluZy5wYXRjaApAQCAtMCwwICsxLDEyNyBAQAorVGhpcyBidWcgZml4ZXMg YSBsb25nLXN0YW5kaW5nIGJ1ZyB3aXRoIGVqYWJiZXJkIHZpb2xhdGluZworUkZDIDM5MjAgYnkg aW50ZXJjZXB0aW5nIHZDYXJkIHJlcXVlc3QgY29taW5nIHRvIGEgdXNlcidzCitmdWxsIEpJRCwg d2hpY2ggc2hvdWxkIGJlIGZvcndhcmRlZCB0byB0aGUgdXNlcidzIGNsaWVudCBpbnN0ZWFkLgor VGhpcyBiZWhhdmlvdXIgaXMgZXNwZWNpYWxseSBub3RpY2VhYmxlIGluIE1VQyByb29tcy4KKwor VGhpcyBpc3N1ZSBpcyB0cmFja2VkIHVwc3RyZWFtIGFzIEVKQUItMTA0NS4KKworVGhpcyBjaGFu Z2VzZXQgd2FzIGludHJvZHVjZWQgaW4gcmV2aXNpb25zIDI3NjYtMjc2OAorYnJhbmNoIGh0dHA6 Ly9zdm4ucHJvY2Vzcy1vbmUubmV0L2VqYWJiZXJkL2JyYW5jaGVzL2VqYWJiZXJkLTIuMS54CisK K1RoZSBmaXJzdCBzdGFibGUgdmVyc2lvbiBjb250YWluaW5nIHRoZSBmaXggaXMgMi4xLjEuCisK Ky0tLSBhL3NyYy9lamFiYmVyZF9zbS5lcmwJKHJldmlzaW9uIDI3NjIpCisrKysgYi9zcmMvZWph YmJlcmRfc20uZXJsCShyZXZpc2lvbiAyNzY4KQorQEAgLTQ4MSw3ICs0ODEsNyBAQAorIAkJCQlf IC0+CisgCQkJCSAgICBFcnIgPQorIAkJCQkJamxpYjptYWtlX2Vycm9yX3JlcGx5KAorLQkJCQkJ ICBQYWNrZXQsID9FUlJfUkVDSVBJRU5UX1VOQVZBSUxBQkxFKSwKKysJCQkJCSAgUGFja2V0LCA/ RVJSX1NFUlZJQ0VfVU5BVkFJTEFCTEUpLAorIAkJCQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRl KFRvLCBGcm9tLCBFcnIpCisgCQkJICAgIGVuZDsKKyAJCQlfIC0+CistLS0gYS9zcmMvbW9kX211 Yy9tb2RfbXVjX3Jvb20uZXJsCShyZXZpc2lvbiAyNzYyKQorKysrIGIvc3JjL21vZF9tdWMvbW9k X211Y19yb29tLmVybAkocmV2aXNpb24gMjc2OCkKK0BAIC00NzAsOSArNDcwLDEwIEBACisgCSAg ICAgIHt4bWxlbGVtZW50LCAiaXEiLCBBdHRycywgX0Vsc30gPSBQYWNrZXR9LAorIAkgICAgIFN0 YXRlRGF0YSkgLT4KKyAgICAgTGFuZyA9IHhtbDpnZXRfYXR0cl9zKCJ4bWw6bGFuZyIsIEF0dHJz KSwKKysgICAgU3RhbnphSWQgPSB4bWw6Z2V0X2F0dHJfcygiaWQiLCBBdHRycyksCisgICAgIGNh c2UgeyhTdGF0ZURhdGEjc3RhdGUuY29uZmlnKSNjb25maWcuYWxsb3dfcXVlcnlfdXNlcnMsCist CSAgaXNfdXNlcl9vbmxpbmUoRnJvbSwgU3RhdGVEYXRhKX0gb2YKKy0Je3RydWUsIHRydWV9IC0+ CisrCSAgaXNfdXNlcl9vbmxpbmVfaXEoU3RhbnphSWQsIEZyb20sIFN0YXRlRGF0YSl9IG9mCisr CXt0cnVlLCB7dHJ1ZSwgTmV3SWQsIEZyb21GdWxsfX0gLT4KKyAJICAgIGNhc2UgZmluZF9qaWRf YnlfbmljayhUb05pY2ssIFN0YXRlRGF0YSkgb2YKKyAJCWZhbHNlIC0+CisgCQkgICAgY2FzZSBq bGliOmlxX3F1ZXJ5X2luZm8oUGFja2V0KSBvZgorQEAgLTQ4OSwxMyArNDkwLDE1IEBACisgCQkg ICAgZW5kOworIAkJVG9KSUQgLT4KKyAJCSAgICB7b2ssICN1c2Vye25pY2sgPSBGcm9tTmlja319 ID0KKy0JCQk/RElDVDpmaW5kKGpsaWI6amlkX3RvbG93ZXIoRnJvbSksCisrCQkJP0RJQ1Q6Zmlu ZChqbGliOmppZF90b2xvd2VyKEZyb21GdWxsKSwKKyAJCQkJICAgU3RhdGVEYXRhI3N0YXRlLnVz ZXJzKSwKKysJCSAgICB7VG9KSUQyLCBQYWNrZXQyfSA9IGhhbmRsZV9pcV92Y2FyZChGcm9tRnVs bCwgVG9KSUQsCisrCQkJCQkJCVN0YW56YUlkLCBOZXdJZCxQYWNrZXQpLAorIAkJICAgIGVqYWJi ZXJkX3JvdXRlcjpyb3V0ZSgKKyAJCSAgICAgIGpsaWI6amlkX3JlcGxhY2VfcmVzb3VyY2UoU3Rh dGVEYXRhI3N0YXRlLmppZCwgRnJvbU5pY2spLAorLQkJICAgICAgVG9KSUQsIFBhY2tldCkKKysJ CSAgICAgIFRvSklEMiwgUGFja2V0MikKKyAJICAgIGVuZDsKKy0Je18sIGZhbHNlfSAtPgorKwl7 Xywge2ZhbHNlLCBfLCBffX0gLT4KKyAJICAgIGNhc2UgamxpYjppcV9xdWVyeV9pbmZvKFBhY2tl dCkgb2YKKyAJCXJlcGx5IC0+CisgCQkgICAgb2s7CitAQCAtODI5LDcgKzgzMiw2IEBACisgCSAg ICB7bmV4dF9zdGF0ZSwgbm9ybWFsX3N0YXRlLCBTdGF0ZURhdGF9CisgICAgIGVuZC4KKyAKKy0K KyAlJSBAZG9jIENoZWNrIGlmIHRoaXMgbm9uIHBhcnRpY2lwYW50IGNhbiBzZW5kIG1lc3NhZ2Ug dG8gcm9vbS4KKyAlJQorICUlIFhFUC0wMDQ1IHYxLjIzOgorQEAgLTk2OSw2ICs5NzEsNTAgQEAK KyAgICAgTEpJRCA9IGpsaWI6amlkX3RvbG93ZXIoSklEKSwKKyAgICAgP0RJQ1Q6aXNfa2V5KExK SUQsIFN0YXRlRGF0YSNzdGF0ZS51c2VycykuCisgCisrCisrJSUlCisrJSUlIEhhbmRsZSBJUSBx dWVyaWVzIG9mIHZDYXJkCisrJSUlCisraXNfdXNlcl9vbmxpbmVfaXEoU3RhbnphSWQsIEpJRCwg U3RhdGVEYXRhKSB3aGVuIEpJRCNqaWQubHJlc291cmNlIC89ICIiIC0+CisrICAgIHtpc191c2Vy X29ubGluZShKSUQsIFN0YXRlRGF0YSksIFN0YW56YUlkLCBKSUR9OworK2lzX3VzZXJfb25saW5l X2lxKFN0YW56YUlkLCBKSUQsIFN0YXRlRGF0YSkgd2hlbiBKSUQjamlkLmxyZXNvdXJjZSA9PSAi IiAtPgorKyAgICB0cnkgc3RhbnphaWRfdW5wYWNrKFN0YW56YUlkKSBvZgorKwl7T3JpZ2luYWxJ ZCwgUmVzb3VyY2V9IC0+CisrCSAgICBKSURXaXRoUmVzb3VyY2UgPSBqbGliOmppZF9yZXBsYWNl X3Jlc291cmNlKEpJRCwgUmVzb3VyY2UpLAorKwkgICAge2lzX3VzZXJfb25saW5lKEpJRFdpdGhS ZXNvdXJjZSwgU3RhdGVEYXRhKSwKKysJICAgICBPcmlnaW5hbElkLCBKSURXaXRoUmVzb3VyY2V9 CisrICAgIGNhdGNoCisrCV86XyAtPgorKwkgICAge2lzX3VzZXJfb25saW5lKEpJRCwgU3RhdGVE YXRhKSwgU3RhbnphSWQsIEpJRH0KKysgICAgZW5kLgorKworK2hhbmRsZV9pcV92Y2FyZChGcm9t RnVsbCwgVG9KSUQsIFN0YW56YUlkLCBOZXdJZCwgUGFja2V0KSAtPgorKyAgICBUb0JhcmVKSUQg PSBqbGliOmppZF9yZW1vdmVfcmVzb3VyY2UoVG9KSUQpLAorKyAgICBJUSA9IGpsaWI6aXFfcXVl cnlfaW5mbyhQYWNrZXQpLAorKyAgICBoYW5kbGVfaXFfdmNhcmQyKEZyb21GdWxsLCBUb0pJRCwg VG9CYXJlSklELCBTdGFuemFJZCwgTmV3SWQsIElRLCBQYWNrZXQpLgorK2hhbmRsZV9pcV92Y2Fy ZDIoX0Zyb21GdWxsLCBUb0pJRCwgVG9CYXJlSklELCBTdGFuemFJZCwgX05ld0lkLAorKwkJICNp cXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19WQ0FSRH0sIFBhY2tldCkKKysgIHdoZW4gVG9CYXJl SklEIC89IFRvSklEIC0+CisrICAgIHtUb0JhcmVKSUQsIGNoYW5nZV9zdGFuemFpZChTdGFuemFJ ZCwgVG9KSUQsIFBhY2tldCl9OworK2hhbmRsZV9pcV92Y2FyZDIoX0Zyb21GdWxsLCBUb0pJRCwg X1RvQmFyZUpJRCwgX1N0YW56YUlkLCBOZXdJZCwgX0lRLCBQYWNrZXQpIC0+CisrICAgIHtUb0pJ RCwgY2hhbmdlX3N0YW56YWlkKE5ld0lkLCBQYWNrZXQpfS4KKysKKytzdGFuemFpZF9wYWNrKE9y aWdpbmFsSWQsIFJlc291cmNlKSAtPgorKyAgICAiYmVyZCIrK2Jhc2U2NDplbmNvZGVfdG9fc3Ry aW5nKCJlamFiXDAiICsrIE9yaWdpbmFsSWQgKysgIlwwIiArKyBSZXNvdXJjZSkuCisrc3Rhbnph aWRfdW5wYWNrKCJiZXJkIisrU3RhbnphSWRCYXNlNjQpIC0+CisrICAgIFN0YW56YUlkID0gYmFz ZTY0OmRlY29kZV90b19zdHJpbmcoU3RhbnphSWRCYXNlNjQpLAorKyAgICBbImVqYWIiLCBPcmln aW5hbElkLCBSZXNvdXJjZV0gPSBzdHJpbmc6dG9rZW5zKFN0YW56YUlkLCAiXDAiKSwKKysgICAg e09yaWdpbmFsSWQsIFJlc291cmNlfS4KKysKKytjaGFuZ2Vfc3RhbnphaWQoTmV3SWQsIFBhY2tl dCkgLT4KKysgICAge3htbGVsZW1lbnQsIE5hbWUsIEF0dHJzLCBFbHN9ID0gamxpYjpyZW1vdmVf YXR0cigiaWQiLCBQYWNrZXQpLAorKyAgICB7eG1sZWxlbWVudCwgTmFtZSwgW3siaWQiLCBOZXdJ ZH0gfCBBdHRyc10sIEVsc30uCisrY2hhbmdlX3N0YW56YWlkKFByZXZpb3VzSWQsIFRvSklELCBQ YWNrZXQpIC0+CisrICAgIE5ld0lkID0gc3RhbnphaWRfcGFjayhQcmV2aW91c0lkLCBUb0pJRCNq aWQubHJlc291cmNlKSwKKysgICAgY2hhbmdlX3N0YW56YWlkKE5ld0lkLCBQYWNrZXQpLgorKyUl JQorKyUlJQorKworIHJvbGVfdG9fbGlzdChSb2xlKSAtPgorICAgICBjYXNlIFJvbGUgb2YKKyAJ bW9kZXJhdG9yIC0+ICAgIm1vZGVyYXRvciI7CistLS0gYS9zcmMvZWphYmJlcmRfYzJzLmVybAko cmV2aXNpb24gMjc2MikKKysrKyBiL3NyYy9lamFiYmVyZF9jMnMuZXJsCShyZXZpc2lvbiAyNzY4 KQorQEAgLTEyMjAsNyArMTIyMCw3IEBACisgCSAgICAiaXEiIC0+CisgCQlJUSA9IGpsaWI6aXFf cXVlcnlfaW5mbyhQYWNrZXQpLAorIAkJY2FzZSBJUSBvZgorLQkJICAgICNpcXt4bWxucyA9ID9O U19WQ0FSRH0gLT4KKysJCSAgICAjaXF7eG1sbnMgPSA/TlNfVkNBUkR9IHdoZW4gKFRvI2ppZC5s dXNlciA9PSAiIikgb3IgKFRvI2ppZC5scmVzb3VyY2UgPT0gIiIpIC0+CisgCQkJSG9zdCA9IFN0 YXRlRGF0YSNzdGF0ZS5zZXJ2ZXIsCisgCQkJY2FzZSBldHM6bG9va3VwKHNtX2lxdGFibGUsIHs/ TlNfVkNBUkQsIEhvc3R9KSBvZgorIAkJCSAgICBbe18sIE1vZHVsZSwgRnVuY3Rpb24sIE9wdHN9 XSAtPgoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLnNwZWMgYi9lamFiYmVyZC5zcGVjCmluZGV4IDkw ODZlYzAuLjg3Zjg4ZmQgMTAwNjQ0Ci0tLSBhL2VqYWJiZXJkLnNwZWMKKysrIGIvZWphYmJlcmQu c3BlYwpAQCAtMTIsNyArMTIsNyBAQAogCiBOYW1lOiAgICAgICAgICAgZWphYmJlcmQKIFZlcnNp b246ICAgICAgICAyLjEuMAotUmVsZWFzZTogICAgICAgIDElez9kaXN0fQorUmVsZWFzZTogICAg ICAgIDIlez9kaXN0fQogU3VtbWFyeTogICAgICAgIEEgZGlzdHJpYnV0ZWQsIGZhdWx0LXRvbGVy YW50IEphYmJlci9YTVBQIHNlcnZlcgogCiBHcm91cDogICAgICAgICAgQXBwbGljYXRpb25zL0lu dGVybmV0CkBAIC0yNCw3ICsyNCw3IEBAIFNvdXJjZTI6ICAgICAgICBlamFiYmVyZC5sb2dyb3Rh dGUKIFNvdXJjZTM6CWVqYWJiZXJkLnN5c2NvbmZpZwogCiAjIGh0dHA6Ly93d3cuZWphYmJlcmQu aW0vbW9kX2N0bGV4dHJhCi0jIHRoaXMgbW9kdWxlIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVh ciBmdXR1cmUgaW4gZmF2b3Igb2YgbW9kX2FkbWluX2V4dHJhCisjIHRoaXMgbW9kdWxlIHdpbGwg YmUgcmVtb3ZlZCBpbiB0aGUgbmVhcmVzdCBmdXR1cmUgaW4gZmF2b3Igb2YgbW9kX2FkbWluX2V4 dHJhCiAjIHN2biBleHBvcnQgLXIgMTAyMCBodHRwczovL3N2bi5wcm9jZXNzLW9uZS5uZXQvZWph YmJlcmQtbW9kdWxlcy9tb2RfY3RsZXh0cmEvdHJ1bmsvc3JjL21vZF9jdGxleHRyYS5lcmwKIFNv dXJjZTQ6ICAgICAgICBtb2RfY3RsZXh0cmEuZXJsCiAKQEAgLTQ3LDcgKzQ3LDIzIEBAIFBhdGNo MzogZWphYmJlcmQtZWphYmJlcmRfY2ZnX3BhbV9uYW1lLmRpZmYKIFBhdGNoNTogZWphYmJlcmQt bW9kX2N0bGV4dHJhX21lbnRpb25pbmdfaW5fZWphYmJlcmRfYXBwLmRpZmYKICMgZml4ZWQgZGVs YXlzIGluIHMycyBjb25uZWN0aW9ucwogUGF0Y2g4OiBlamFiYmVyZC1maXhlZF9kZWxheXNfaW5f czJzLnBhdGNoCi0KKyMgY2FwdGNoYS5zaCB1c2VzIHNvbWUgQkFTSC1zcGVjaWZpYyB2YXJpYWJs ZXMKKyMgc2VlIGh0dHBzOi8vc3VwcG9ydC5wcm9jZXNzLW9uZS5uZXQvYnJvd3NlL0VKQUItMTEw NQorUGF0Y2g5OiBlamFiYmVyZC1jYXB0Y2hhLWJhc2hpc20ucGF0Y2gKKyMgSW50cm9kdWNpbmcg bW9kX2FkbWluX2V4dHJhCitQYXRjaDEwOiBlamFiYmVyZC1tb2RfYWRtaW5fZXh0cmEucGF0Y2gK KyMgRml4ZWQgbG9uZy1zdGFuZGluZyBidWcgd2l0aCBSRkMgMzkyMCB2aW9sYXRpb24KKyMgc2Vl IGh0dHBzOi8vc3VwcG9ydC5wcm9jZXNzLW9uZS5uZXQvYnJvd3NlL0VKQUItMTA0NQorUGF0Y2gx MTogZWphYmJlcmQtdmNhcmQtcmVxcy1mb3J3YXJkaW5nLnBhdGNoCisjIEdlbmVyYXRlcyBhIGh1 bWFuLXJlYWRhYmxlIFhIVE1MIHBhZ2Ugd2hpY2ggaXMgcmV0dXJuZWQKKyMgd2hlbiBhIHVzZXIg dHJpZXMgdG8gYnJvd3NlIHRoZSBIVFRQLXBvbGwgVVJMIGNvbmZpZ3VyZWQKKyMgZm9yIHRoZSBz ZXJ2ZXIgKGEgY29tbW9uIG1pc3Rha2UpLgorIyBzZWUgaHR0cHM6Ly9zdXBwb3J0LnByb2Nlc3Mt b25lLm5ldC9icm93c2UvRUpBQi0xMTA2CitQYXRjaDEyOiBlamFiYmVyZC1odHRwLXBvbGwtd2Vi LXBhZ2UucGF0Y2gKKyMgVGhpcyBwYXRjaCBlbmFibGVzIGdlbmVyYXRpb24gb2YgdGhlIG1haW4g WE1MIGZpbGUKKyMgd2hlbiBleHBvcnRpbmcgZGF0YSBvZiBhIHZpcnR1YWwgaG9zdCBpbnRvIFBJ RUZYSVMgZm9ybWF0LgorIyBzZWUgaHR0cHM6Ly9zdXBwb3J0LnByb2Nlc3Mtb25lLm5ldC9icm93 c2UvRUpBQi0xMDk4CitQYXRjaDEzOiBlamFiYmVyZC1waWVmeGlzLXZob3N0LWV4cG9ydC5wYXRj aAogCiBCdWlsZFJvb3Q6ICAgICAgJXtfdG1wcGF0aH0vJXtuYW1lfS0le3ZlcnNpb259LSV7cmVs ZWFzZX0tcm9vdC0lKCV7X19pZF91fSAtbikKIApAQCAtOTMsNiArMTA5LDMzIEBAIERvY3VtZW50 YXRpb24gZm9yIGVqYWJiZXJkLgogJXtfX2ZlX2dyb3VwYWRkfSAle3VpZH0gLXIgJXtuYW1lfSAm Pi9kZXYvbnVsbCB8fCA6CiAle19fZmVfdXNlcmFkZH0gJXt1aWR9IC1yIC1zIC9zYmluL25vbG9n aW4gLWQgL3Zhci9saWIvZWphYmJlcmQgLU0gXAogCQkJLWMgJ2VqYWJiZXJkJyAtZyAle25hbWV9 ICV7bmFtZX0gJj4vZGV2L251bGwgfHwgOgorIyB3ZSBzaG91bGQgYmFja3VwIERCIGluIGV2ZXJ5 IHVwZ3JhZGUKK2lmIGVqYWJiZXJkY3RsIHN0YXR1cyA+L2Rldi9udWxsIDsgdGhlbgorCSMgVXNl IHRpbWVzdGFtcCB0byBtYWtlIGRhdGFiYXNlIHJlc3RvcmluZyBlYXNpZXIKKwlUSU1FPSQoZGF0 ZSArJVktJW0tJWRUJUg6JU06JVMpCisJQkFDS1VQRElSPSQobWt0ZW1wIC1kIC1wIC92YXIvdG1w LyBlamFiYmVyZC0kVElNRS5YWFhYWFgpCisJY2hvd24gZWphYmJlcmQ6ZWphYmJlcmQgJEJBQ0tV UERJUgorCUJBQ0tVUD0kQkFDS1VQRElSL2VqYWJiZXJkLWRhdGFiYXNlCisJZWphYmJlcmRjdGwg YmFja3VwICRCQUNLVVAKKwkjIENoYW5nZSBvd25lcnNoaXAgdG8gcm9vdDpyb290IGJlY2F1c2Ug ZWphYmJlcmQgdXNlciBtaWdodCBiZQorCSMgcmVtb3ZlZCBvbiBwYWNrYWdlIHJlbW92YWwuCisJ Y2hvd24gLVIgcm9vdDpyb290ICRCQUNLVVBESVIKKwljaG1vZCA3MDAgJEJBQ0tVUERJUgorCWVj aG8KKwllY2hvIFRoZSBlamFiYmVyZCBkYXRhYmFzZSBoYXMgYmVlbiBiYWNrZWQgdXAgdG8gJEJB Q0tVUC4KKwllY2hvCitmaQorCisjIGZpeCBjb29raWUgcGF0aCAoc2luY2UgdmVyLiAyLjEuMCBj b29raWUgc3RvcmVkIGluIC92YXIvbGliL2VqYWJiZXJkL3Nwb29sCisjIHJhdGhlciB0aGFuIGlu IC92YXIvbGliL2VqYWJiZXJkCitpZiBbIC1mIC92YXIvbGliL2VqYWJiZXJkLy5lcmxhbmcuY29v a2llIF07IHRoZW4KKwljcCAtcGYgL3Zhci9saWIvZWphYmJlcmQveyxzcG9vbC99LmVybGFuZy5j b29raWUKKwllY2hvCisJZWNobyBUaGUgZWphYmJlcmQgY29va2llIGZpbGUgd2FzIG1vdmVkLgor CWVjaG8gUGxlYXNlIHJlbW92ZSBvbGQgb25lIGZyb20gL3Zhci9saWIvZWphYmJlcmQvLmVybGFu Zy5jb29raWUKKwllY2hvCitmaQorCiAKICVwb3N0CiAvc2Jpbi9jaGtjb25maWcgLS1hZGQgJXtu YW1lfQpAQCAtMTM0LDYgKzE3NywxMSBAQCBmaQogJXBhdGNoMyAtcDAgLWIgLnBhbV9uYW1lCiAl cGF0Y2g1IC1wMCAtYiAubW9kX2N0bGV4dHJhCiAlcGF0Y2g4IC1wMCAtYiAuczJzCislcGF0Y2g5 IC1wMSAtYiAuYmFzaGlzbQorJXBhdGNoMTAgLXAxIC1iIC5tb2RfYWRtaW5fZXh0cmEKKyVwYXRj aDExIC1wMSAtYiAudmNhcmRfcmZjX3Zpb2xhdGlvbgorJXBhdGNoMTIgLXAxIC1iIC54aHRtbAor JXBhdGNoMTMgLXAxIC1iIC5waWVmeGlzCiAKIGRvczJ1bml4IHNyYy9vZGJjL21zc3FsMjAwMC5z cWwKIApAQCAtMTY5LDYgKzIxNyw5IEBAIGNobW9kIGEreCAle2J1aWxkcm9vdH0le19saWJkaXJ9 LyV7bmFtZX0vcHJpdi9saWIvKi5zbwogIyBmaXggZXhhbXBsZSBTU0wgY2VydGlmaWNhdGUgcGF0 aCB0byByZWFsIG9uZSwgd2hpY2ggd2UgY3JlYXRlZCByZWNlbnRseSAoc2VlIGFib3ZlKQogJXtf X3Blcmx9IC1waSAtZSAncyEvcGF0aC90by9zc2wucGVtIS9ldGMvZWphYmJlcmQvZWphYmJlcmQu cGVtIWcnICV7YnVpbGRyb290fS9ldGMvZWphYmJlcmQvZWphYmJlcmQuY2ZnCiAKKyMgZml4IGNh cHRjaGEgcGF0aAorJXtfX3Blcmx9IC1waSAtZSAncyEvbGliL2VqYWJiZXJkL3ByaXYvYmluL2Nh cHRjaGEuc2ghJXtfbGliZGlyfS8le25hbWV9L3ByaXYvYmluL2NhcHRjaGEuc2ghZycgJXtidWls ZHJvb3R9L2V0Yy9lamFiYmVyZC9lamFiYmVyZC5jZmcKKwogbWtkaXIgLXAgJXtidWlsZHJvb3R9 L3Zhci9sb2cvZWphYmJlcmQKIG1rZGlyIC1wICV7YnVpbGRyb290fS92YXIvbGliL2VqYWJiZXJk L3Nwb29sCiAKQEAgLTE5NCwxMiArMjQ1LDkgQEAgaW5zdGFsbCAtcCAtbSAwNjQ0IHNyYy9vZGJj L21zc3FsMjAwMC5zcWwgJXtidWlsZHJvb3R9JXtfZGF0YWRpcn0vJXtuYW1lfQogaW5zdGFsbCAt cCAtbSAwNjQ0IHNyYy9vZGJjL21zc3FsMjAwNS5zcWwgJXtidWlsZHJvb3R9JXtfZGF0YWRpcn0v JXtuYW1lfQogaW5zdGFsbCAtcCAtbSAwNjQ0IHNyYy9vZGJjL215c3FsLnNxbCAle2J1aWxkcm9v dH0le19kYXRhZGlyfS8le25hbWV9CiBpbnN0YWxsIC1wIC1tIDA2NDQgc3JjL29kYmMvcGcuc3Fs ICV7YnVpbGRyb290fSV7X2RhdGFkaXJ9LyV7bmFtZX0KLSMgaW5zdGFsbCBleGFtcGxlIHNjcmlw dCBmb3IgQ0FQVENIQS1wcm90ZWN0aW9uCi1pbnN0YWxsIC1wIC1tIDA2NDQgdG9vbHMvY2FwdGNo YS5zaCAle2J1aWxkcm9vdH0le19kYXRhZGlyfS8le25hbWV9CiAKICMgcmVtb3ZlZCBmaWxlcywg d2hpY2ggd291bGQgYmUgcGFja2FnZWQgbGF0ZXIgKHNlZSAnZmlsZXMnIHNlY3Rpb24pCiBybSAt cmYgJXtidWlsZHJvb3R9JXtfZG9jZGlyfS8le25hbWV9Ci1ybSAtZiAle2J1aWxkcm9vdH0le19s aWJkaXJ9LyV7bmFtZX0vcHJpdi9iaW4vY2FwdGNoYS5zaAogCiAlY2xlYW4KIHJtIC1yZiAle2J1 aWxkcm9vdH0KQEAgLTI1Myw2ICszMDEsNyBAQCBybSAtcmYgJXtidWlsZHJvb3R9CiAle19saWJk aXJ9LyV7bmFtZX0vaW5jbHVkZS9tb2Rfcm9zdGVyLmhybAogJXtfbGliZGlyfS8le25hbWV9L2lu Y2x1ZGUvd2ViL2VqYWJiZXJkX2h0dHAuaHJsCiAle19saWJkaXJ9LyV7bmFtZX0vaW5jbHVkZS93 ZWIvZWphYmJlcmRfd2ViX2FkbWluLmhybAorJXtfbGliZGlyfS8le25hbWV9L3ByaXYvYmluL2Nh cHRjaGEuc2gKICVhdHRyKDQ3NTAscm9vdCxlamFiYmVyZCkgJXtfbGliZGlyfS8le25hbWV9L3By aXYvYmluL2VwYW0KICV7X2xpYmRpcn0vJXtuYW1lfS9wcml2L2xpYi9lamFiYmVyZF96bGliX2Ry di5zbwogJXtfbGliZGlyfS8le25hbWV9L3ByaXYvbGliL2V4cGF0X2VybC5zbwpAQCAtMjYyLDcg KzMxMSw2IEBAIHJtIC1yZiAle2J1aWxkcm9vdH0KICV7X2xpYmRpcn0vJXtuYW1lfS9wcml2L21z Z3MvKi5tc2cKIAogJWRpciAle19kYXRhZGlyfS8le25hbWV9Ci0le19kYXRhZGlyfS8le25hbWV9 L2NhcHRjaGEuc2gKICV7X2RhdGFkaXJ9LyV7bmFtZX0vbXNzcWwyMDAwLnNxbAogJXtfZGF0YWRp cn0vJXtuYW1lfS9tc3NxbDIwMDUuc3FsCiAle19kYXRhZGlyfS8le25hbWV9L215c3FsLnNxbApA QCAtMzAzLDYgKzM1MSwxMSBAQCBybSAtcmYgJXtidWlsZHJvb3R9CiAlZG9jIGRvYy95b3poaWto ZWFkZXIucG5nCiAKICVjaGFuZ2Vsb2cKKyogVGh1IERlYyAxMCAyMDA5IFBldGVyIExlbWVua292 IDxsZW1lbmtvdkBnbWFpbC5jb20+IDIuMS4wLTIKKy0gREIgYmFja3VwcyBhcmUgbWFkZSBvbiBl dmVyeSB1cGdyYWRlL3VuaW5zdGFsbAorLSBGaXhlZCBpbnN0YWxsYXRpb24gb2YgY2FwdGNoYS5z aCBleGFtcGxlIGhlbHBlcgorLSBBZGRlZCBwYXRjaGVzIDksMTAsMTEsMTIsMTMgZnJvbSBEZWJp YW4ncyBwYWNrYWdlCisKICogRnJpIE5vdiAyMCAyMDA5IFBldGVyIExlbWVua292IDxsZW1lbmtv dkBnbWFpbC5jb20+IDIuMS4wLTEKIC0gVmVyLiAyLjEuMAogLSBVcHN0cmVhbSBubyBsb25nZXIg cHJvdmlkaW5nIENoYW5nZUxvZwoKZGlmZiAtLWdpdCBhL2ltcG9ydC5sb2cgYi9pbXBvcnQubG9n CmluZGV4IGNjMWNiODYuLjZkNWJiYTQgMTAwNjQ0Ci0tLSBhL2ltcG9ydC5sb2cKKysrIGIvaW1w b3J0LmxvZwpAQCAtMTMsMyArMTMsNCBAQCBlamFiYmVyZC0yXzBfNS02X2ZjMTE6SEVBRDplamFi YmVyZC0yLjAuNS02LmZjMTEuc3JjLnJwbToxMjUxMjI4ODcwCiBlamFiYmVyZC0yXzBfNS04X2Zj MTE6SEVBRDplamFiYmVyZC0yLjAuNS04LmZjMTEuc3JjLnJwbToxMjUyNDkzMDE3CiBlamFiYmVy ZC0yXzBfNS0xMF9mYzExOkhFQUQ6ZWphYmJlcmQtMi4wLjUtMTAuZmMxMS5zcmMucnBtOjEyNTc0 MjgzMTAKIGVqYWJiZXJkLTJfMV8wLTFfZmMxMjpIRUFEOmVqYWJiZXJkLTIuMS4wLTEuZmMxMi5z cmMucnBtOjEyNTg3OTAzMzIKK2VqYWJiZXJkLTJfMV8wLTJfZmMxMjpIRUFEOmVqYWJiZXJkLTIu MS4wLTIuZmMxMi5zcmMucnBtOjEyNjA0NzE0MjAK