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: Ver. 2.1.3 Date: Wed, 23 Sep 2026 19:06:55 GMT Message-ID: <179019041543.1.12332906207171578442.rpms-ejabberd-57a13caf3704@fedoraproject.org> List-ID: X-Git-Repo: rpms/ejabberd X-Git-Branch: f45 X-Git-Rev: 57a13caf3704ac7be5089275125b0e6b640e3289 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZWphYmJlcmQKQnJh bmNoIDogZjQ1CkNvbW1pdCA6IDU3YTEzY2FmMzcwNGFjN2JlNTA4OTI3NTEyNWIwZTZiNjQwZTMy ODkKQXV0aG9yIDogUGV0ZXIgTGVtZW5rb3YgPHBldGVyQGZlZG9yYXByb2plY3Qub3JnPgpEYXRl ICAgOiAyMDEwLTAzLTEyVDE1OjU0OjA2KzAwOjAwClN0YXRzICA6ICsyMTIwLy0xNjk5IGluIDIw IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9lamFi YmVyZC9jLzU3YTEzY2FmMzcwNGFjN2JlNTA4OTI3NTEyNWIwZTZiNjQwZTMyODk/YnJhbmNoPWY0 NQoKTG9nOgpWZXIuIDIuMS4zCgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3ZzaWdu b3JlCmluZGV4IDc5NTE3ZTcuLmZmOTY5MjEgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUKKysrIGIv LmN2c2lnbm9yZQpAQCAtMSArMSBAQAotZWphYmJlcmQtMi4xLjIudGFyLmd6CitlamFiYmVyZC0y LjEuMy50YXIuZ3oKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDAxLUZpeC1QQU0tc2VydmljZS1l eGFtcGxlLW5hbWUtdG8tbWF0Y2gtYWN0dWFsLW9uZS5wYXRjaCBiL2VqYWJiZXJkLTAwMDEtRml4 LVBBTS1zZXJ2aWNlLWV4YW1wbGUtbmFtZS10by1tYXRjaC1hY3R1YWwtb25lLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5YWU4MGMKLS0tIC9kZXYvbnVsbAorKysg Yi9lamFiYmVyZC0wMDAxLUZpeC1QQU0tc2VydmljZS1leGFtcGxlLW5hbWUtdG8tbWF0Y2gtYWN0 dWFsLW9uZS5wYXRjaApAQCAtMCwwICsxLDI2IEBACitGcm9tIDUzZjhhMjk2YjBmODNlYTlkYWZj M2FlZDhiNDljMzQ5NDFmMzE0NTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRl ciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorRGF0ZTogVHVlLCAxNiBGZWIgMjAxMCAx NjowMzozOCArMDMwMAorU3ViamVjdDogW1BBVENIIDEvOV0gRml4IFBBTSBzZXJ2aWNlIGV4YW1w bGUgbmFtZSB0byBtYXRjaCBhY3R1YWwgb25lCisKK1NpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVu a292IDxsZW1lbmtvdkBnbWFpbC5jb20+CistLS0KKyBzcmMvZWphYmJlcmQuY2ZnLmV4YW1wbGUg fCAgICAyICstCisgMSBmaWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJlcmQuY2ZnLmV4YW1wbGUgYi9zcmMvZWphYmJl cmQuY2ZnLmV4YW1wbGUKK2luZGV4IDQwODc5NDcuLmIzNTFjZmMgMTAwNjQ0CistLS0gYS9zcmMv ZWphYmJlcmQuY2ZnLmV4YW1wbGUKKysrKyBiL3NyYy9lamFiYmVyZC5jZmcuZXhhbXBsZQorQEAg LTIzNSw3ICsyMzUsNyBAQAorICUlIEF1dGhlbnRpY2F0aW9uIHVzaW5nIFBBTQorICUlCisgJSV7 YXV0aF9tZXRob2QsIHBhbX0uCistJSV7cGFtX3NlcnZpY2UsICJwYW1zZXJ2aWNlbmFtZSJ9Lgor KyUle3BhbV9zZXJ2aWNlLCAiZWphYmJlcmQifS4KKyAKKyAlJQorICUlIEF1dGhlbnRpY2F0aW9u IHVzaW5nIExEQVAKKy0tIAorMS42LjYuMQorCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtMDAwMi1N ZW50aW9uLW1vZF9jdGxleHRyYS1hcy1hbi1lamFiYmVyZC1tb2R1bGUucGF0Y2ggYi9lamFiYmVy ZC0wMDAyLU1lbnRpb24tbW9kX2N0bGV4dHJhLWFzLWFuLWVqYWJiZXJkLW1vZHVsZS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzY3MjkxCi0tLSAvZGV2L251bGwK KysrIGIvZWphYmJlcmQtMDAwMi1NZW50aW9uLW1vZF9jdGxleHRyYS1hcy1hbi1lamFiYmVyZC1t b2R1bGUucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJvbSA2MzY1MzU5MDc4OTI1YjQzNmQxZDMy MzhhMmRkNmQ2YzExMjcxZmFjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIg TGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KK0RhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6 MDU6NTMgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzldIE1lbnRpb24gbW9kX2N0bGV4dHJhIGFz IGFuIGVqYWJiZXJkIG1vZHVsZQorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVt ZW5rb3ZAZ21haWwuY29tPgorLS0tCisgc3JjL2VqYWJiZXJkLmFwcCB8ICAgIDEgKworIDEgZmls ZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvc3JjL2VqYWJiZXJkLmFwcCBiL3NyYy9lamFiYmVyZC5hcHAKK2luZGV4IDJmNWYxMjMuLmNj N2UxZjggMTAwNjQ0CistLS0gYS9zcmMvZWphYmJlcmQuYXBwCisrKysgYi9zcmMvZWphYmJlcmQu YXBwCitAQCAtNzAsNiArNzAsNyBAQAorIAkgICAgIG1vZF9jYXBzLAorIAkgICAgIG1vZF9jb25m aWd1cmUyLAorIAkgICAgIG1vZF9jb25maWd1cmUsCisrCSAgICAgbW9kX2N0bGV4dHJhLAorIAkg ICAgIG1vZF9kaXNjbywKKyAJICAgICBtb2RfZWNobywKKyAJICAgICBtb2RfaHR0cF9iaW5kLAor LS0gCisxLjYuNi4xCisKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDAzLUZpeGVkLWRlbGF5cy1p bi1zMnMtY29ubmVjdGlvbnMucGF0Y2ggYi9lamFiYmVyZC0wMDAzLUZpeGVkLWRlbGF5cy1pbi1z MnMtY29ubmVjdGlvbnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MTkxMDFkZAotLS0gL2Rldi9udWxsCisrKyBiL2VqYWJiZXJkLTAwMDMtRml4ZWQtZGVsYXlzLWlu LXMycy1jb25uZWN0aW9ucy5wYXRjaApAQCAtMCwwICsxLDU0IEBACitGcm9tIDAxOWJmMjM5NTYw OTI1ZWRkODA5YmI3OTIyYTQ5YjM3Mzc0MTIwNjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBTZXJnZWkgR29sb3ZhbiA8c2dvbG92YW5AbmVzLnJ1PgorRGF0ZTogVHVlLCAxNiBGZWIg MjAxMCAxNjowNzozNyArMDMwMAorU3ViamVjdDogW1BBVENIIDMvOV0gRml4ZWQgZGVsYXlzIGlu IHMycyBjb25uZWN0aW9ucy4KKworUGF0Y2ggYnkgU2VyZ2VpIEdvbG92YW4gaW5jcmVhc2VzIHRp bWVvdXRzIGluIFMyUyBhbmQgcmVtb3ZlcyBob3JyaWJsZSA1LW1pbnV0ZQorZGVsYXkgYmV0d2Vl biByZW1vdGUgc2VydmVyIGNvbm5lY3Rpb24gYXR0ZW1wdHMgYWZ0ZXIgYSBmYWx1cmUgKGluIGNh c2Ugb2YKK3NlcnZlciBpcyBkb3duIGl0IHdvdWxkIGJlIHJlYXNvbmFibGUsIGJ1dCB3aGF0IGhh cHBlbnMgbXVjaCBtb3JlIG9mdGVuIGlzIGEKK25ldHdvcmsgc3BsaXQgd2hlbiB0aGUgZGVsYXkg aXMgaW5hZG1pc3NpYmxlKS4KKy0tLQorIHNyYy9lamFiYmVyZF9zMnNfaW4uZXJsICB8ICAgIDIg Ky0KKyBzcmMvZWphYmJlcmRfczJzX291dC5lcmwgfCAgICA2ICsrKy0tLQorIDIgZmlsZXMgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3Jj L2VqYWJiZXJkX3Myc19pbi5lcmwgYi9zcmMvZWphYmJlcmRfczJzX2luLmVybAoraW5kZXggZjIy MTMwMi4uYjU1YzgwNSAxMDA2NDQKKy0tLSBhL3NyYy9lamFiYmVyZF9zMnNfaW4uZXJsCisrKysg Yi9zcmMvZWphYmJlcmRfczJzX2luLmVybAorQEAgLTM1Miw3ICszNTIsNyBAQCBzdHJlYW1fZXN0 YWJsaXNoZWQoe3htbHN0cmVhbWVsZW1lbnQsIEVsfSwgU3RhdGVEYXRhKSAtPgorICAgICAgICAg ICAgIGNhc2Uge2VqYWJiZXJkX3MyczphbGxvd19ob3N0KFRvLCBGcm9tKSwKKyAgICAgICAgICAg ICAgICAgICBsaXN0czptZW1iZXIoTFRvLCBlamFiYmVyZF9yb3V0ZXI6ZGlydHlfZ2V0X2FsbF9k b21haW5zKCkpfSBvZgorICAgICAgICAgICAgICAgICB7dHJ1ZSwgdHJ1ZX0gLT4KKy0JCSAgICBl amFiYmVyZF9zMnNfb3V0OnRlcm1pbmF0ZV9pZl93YWl0aW5nX2RlbGF5KFRvLCBGcm9tKSwKKysJ CSAgICAlJWVqYWJiZXJkX3Myc19vdXQ6dGVybWluYXRlX2lmX3dhaXRpbmdfZGVsYXkoVG8sIEZy b20pLAorIAkJICAgIGVqYWJiZXJkX3Myc19vdXQ6c3RhcnQoVG8sIEZyb20sCisgCQkJCQkgICB7 dmVyaWZ5LCBzZWxmKCksCisgCQkJCQkgICAgS2V5LCBTdGF0ZURhdGEjc3RhdGUuc3RyZWFtaWR9 KSwKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRfczJzX291dC5lcmwgYi9zcmMvZWphYmJlcmRf czJzX291dC5lcmwKK2luZGV4IGFjN2VlZTIuLjA0OGQwMTggMTAwNjQ0CistLS0gYS9zcmMvZWph YmJlcmRfczJzX291dC5lcmwKKysrKyBiL3NyYy9lamFiYmVyZF9zMnNfb3V0LmVybAorQEAgLTkw LDcgKzkwLDcgQEAKKyAJCQkJCQkgW0Zyb20sIEhvc3QsIFR5cGVdKSkuCisgLWVuZGlmLgorIAor LS1kZWZpbmUoRlNNVElNRU9VVCwgMzAwMDApLgorKy1kZWZpbmUoRlNNVElNRU9VVCwgNjAwMDAp LgorIAorICUlIFdlIGRvIG5vdCBibG9jayBvbiBzZW5kIGFueW1vcmUuCisgLWRlZmluZShUQ1Bf U0VORF9USU1FT1VULCAxNTAwMCkuCitAQCAtMjI2LDggKzIyNiw4IEBAIG9wZW5fc29ja2V0KGlu aXQsIFN0YXRlRGF0YSkgLT4KKyAJe2Vycm9yLCBfUmVhc29ufSAtPgorIAkgICAgP0lORk9fTVNH KCJzMnMgY29ubmVjdGlvbjogfnMgLT4gfnMgKHJlbW90ZSBzZXJ2ZXIgbm90IGZvdW5kKSIsCisg CQkgICAgICBbU3RhdGVEYXRhI3N0YXRlLm15bmFtZSwgU3RhdGVEYXRhI3N0YXRlLnNlcnZlcl0p LAorLQkgICAgd2FpdF9iZWZvcmVfcmVjb25uZWN0KFN0YXRlRGF0YSkKKy0JICAgICUle3N0b3As IG5vcm1hbCwgU3RhdGVEYXRhfQorKwkgICAgJSV3YWl0X2JlZm9yZV9yZWNvbm5lY3QoU3RhdGVE YXRhKQorKwkgICAge3N0b3AsIG5vcm1hbCwgU3RhdGVEYXRhfQorICAgICBlbmQ7Cisgb3Blbl9z b2NrZXQoc3RvcCwgU3RhdGVEYXRhKSAtPgorICAgICA/SU5GT19NU0coInMycyBjb25uZWN0aW9u OiB+cyAtPiB+cyAoc3RvcHBlZCBpbiBvcGVuIHNvY2tldCkiLAorLS0gCisxLjYuNi4xCisKCmRp ZmYgLS1naXQgYS9lamFiYmVyZC0wMDA0LUludHJvZHVjaW5nLW1vZF9hZG1pbl9leHRyYS5wYXRj aCBiL2VqYWJiZXJkLTAwMDQtSW50cm9kdWNpbmctbW9kX2FkbWluX2V4dHJhLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZDEwYTAKLS0tIC9kZXYvbnVsbAorKysg Yi9lamFiYmVyZC0wMDA0LUludHJvZHVjaW5nLW1vZF9hZG1pbl9leHRyYS5wYXRjaApAQCAtMCww ICsxLDEzMTggQEAKK0Zyb20gNzY2Yzc2MDNiZmY5ZDc1NDhkNDMyMjlmODU1ZTlhYzdiNzljNjNj ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJhZGxvcCA8YmFkbG9wQHByb2Nlc3Mt b25lLm5ldD4KK0RhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MTI6MTcgKzAzMDAKK1N1YmplY3Q6 IFtQQVRDSCA0LzldIEludHJvZHVjaW5nIG1vZF9hZG1pbl9leHRyYQorCitBZGRzIHRoZSBtb2Rf YWRtaW5fZXh0cmEgbW9kdWxlIHRvIGVqYWJiZXJkLgorVGhpcyBtb2R1bGUgZXh0ZW5kcyB0aGUg ZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSBlamFiYmVyZGN0bAorYnkgYWRkaW5nIHNldmVyYWwg bmV3IGNvbW1hbmRzLgorCitUaGUgY29kZSBpcyB0YWtlbiBmcm9tIHRoZSBQcm9jZXNzT25lIHJl cG9zaXRvcnk6CitodHRwczovL2ZvcmdlLnByb2Nlc3Mtb25lLm5ldC9icm93c2UvZWphYmJlcmQt bW9kdWxlcy9tb2RfYWRtaW5fZXh0cmEKKyh0cnVuaywgcmV2aXNpb24gOTc2KS4KKy0tLQorIHNy Yy9lamFiYmVyZC5hcHAgICAgICAgIHwgICAgMSArCisgc3JjL21vZF9hZG1pbl9leHRyYS5lcmwg fCAxMjc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisg MiBmaWxlcyBjaGFuZ2VkLCAxMjgwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCisgY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9tb2RfYWRtaW5fZXh0cmEuZXJsCisKK2RpZmYgLS1naXQgYS9z cmMvZWphYmJlcmQuYXBwIGIvc3JjL2VqYWJiZXJkLmFwcAoraW5kZXggY2M3ZTFmOC4uYWU4Y2U4 MyAxMDA2NDQKKy0tLSBhL3NyYy9lamFiYmVyZC5hcHAKKysrKyBiL3NyYy9lamFiYmVyZC5hcHAK K0BAIC0xMDUsNiArMTA1LDcgQEAKKyAJICAgICBtb2RfdmNhcmRfbGRhcCwKKyAJICAgICBtb2Rf dmNhcmRfb2RiYywKKyAJICAgICBtb2RfdmVyc2lvbiwKKysgICAgICAgICAgICAgbW9kX2FkbWlu X2V4dHJhLAorIAkgICAgIG5vZGVfYnVkZHksCisgCSAgICAgbm9kZV9jbHViLAorIAkgICAgIG5v ZGVfZGVmYXVsdCwKK2RpZmYgLS1naXQgYS9zcmMvbW9kX2FkbWluX2V4dHJhLmVybCBiL3NyYy9t b2RfYWRtaW5fZXh0cmEuZXJsCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4u OWYzY2ExNAorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL21vZF9hZG1pbl9leHRyYS5lcmwKK0BA IC0wLDAgKzEsMTI3OSBAQAorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyslJSUgRmlsZSAgICA6IG1vZF9hZG1p bl9leHRyYS5lcmwKKyslJSUgQXV0aG9yICA6IEJhZGxvcCA8YmFkbG9wQHByb2Nlc3Mtb25lLm5l dD4KKyslJSUgUHVycG9zZSA6IENvbnRyaWJ1dGVkIGFkbWluaXN0cmF0aXZlIGZ1bmN0aW9ucyBh bmQgY29tbWFuZHMKKyslJSUgQ3JlYXRlZCA6IDEwIEF1ZyAyMDA4IGJ5IEJhZGxvcCA8YmFkbG9w QHByb2Nlc3Mtb25lLm5ldD4KKyslJSUKKyslJSUKKyslJSUgZWphYmJlcmQsIENvcHlyaWdodCAo QykgMjAwMi0yMDA4ICAgUHJvY2Vzc09uZQorKyUlJQorKyUlJSBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrJSUlIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisr JSUlIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZQorKyUlJSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKyUlJQorKyUlJSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyslJSUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyslJSUgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK KyslJSUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyUlJQorKyUl JSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyUlJSBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0 byB0aGUgRnJlZSBTb2Z0d2FyZQorKyUlJSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh Y2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorKyUlJSAwMjExMS0xMzA3IFVTQQorKyUlJQorKyUl JS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysKKystbW9kdWxlKG1vZF9hZG1pbl9leHRyYSkuCisrLWF1dGhvcignYmFk bG9wQHByb2Nlc3Mtb25lLm5ldCcpLgorKworKy1iZWhhdmlvdXIoZ2VuX21vZCkuCisrCisrLWV4 cG9ydChbc3RhcnQvMiwgc3RvcC8xLAorKwkgJSUgTm9kZQorKwkgY29tcGlsZS8xLAorKwkgbG9h ZF9jb25maWcvMSwKKysJIGdldF9jb29raWUvMCwKKysJIHJlbW92ZV9ub2RlLzEsCisrCSBleHBv cnQyb2RiYy8yLAorKwkgJSUgQWNjb3VudHMKKysJIHNldF9wYXNzd29yZC8zLAorKwkgY2hlY2tf cGFzc3dvcmRfaGFzaC80LAorKwkgZGVsZXRlX29sZF91c2Vycy8xLAorKwkgZGVsZXRlX29sZF91 c2Vyc192aG9zdC8yLAorKwkgYmFuX2FjY291bnQvMywKKysJIG51bV9hY3RpdmVfdXNlcnMvMiwK KysJICUlIFNlc3Npb25zCisrCSBudW1fcmVzb3VyY2VzLzIsCisrCSByZXNvdXJjZV9udW0vMywK KysJIGtpY2tfc2Vzc2lvbi80LAorKwkgc3RhdHVzX251bS8yLCBzdGF0dXNfbnVtLzEsCisrCSBz dGF0dXNfbGlzdC8yLCBzdGF0dXNfbGlzdC8xLAorKwkgJSUgVmNhcmQKKysJIHNldF9uaWNrbmFt ZS8zLAorKwkgZ2V0X3ZjYXJkLzMsCisrCSBnZXRfdmNhcmQvNCwKKysJIHNldF92Y2FyZC80LAor Kwkgc2V0X3ZjYXJkLzUsCisrCSAlJSBSb3N0ZXIKKysJIGFkZF9yb3N0ZXJpdGVtLzcsCisrCSBk ZWxldGVfcm9zdGVyaXRlbS80LAorKwkgcHJvY2Vzc19yb3N0ZXJpdGVtcy81LAorKwkgZ2V0X3Jv c3Rlci8yLAorKwkgcHVzaF9yb3N0ZXIvMywKKysJIHB1c2hfcm9zdGVyX2FsbC8xLAorKwkgcHVz aF9hbGx0b2FsbC8yLAorKwkgJSUgbW9kX3NoYXJlZF9yb3N0ZXIKKysJIHNyZ19jcmVhdGUvNSwK KysJIHNyZ19kZWxldGUvMiwKKysJIHNyZ19saXN0LzEsCisrCSBzcmdfZ2V0X2luZm8vMiwKKysJ IHNyZ19nZXRfbWVtYmVycy8yLAorKwkgc3JnX3VzZXJfYWRkLzQsCisrCSBzcmdfdXNlcl9kZWwv NCwKKysJICUlIFN0YW56YQorKwkgc2VuZF9tZXNzYWdlX2hlYWRsaW5lLzQsCisrCSBzZW5kX21l c3NhZ2VfY2hhdC8zLAorKwkgJSUgU3RhdHMKKysJIHN0YXRzLzEsIHN0YXRzLzIKKysJXSkuCisr CisrLWluY2x1ZGUoImVqYWJiZXJkLmhybCIpLgorKy1pbmNsdWRlKCJlamFiYmVyZF9jb21tYW5k cy5ocmwiKS4KKystaW5jbHVkZSgibW9kX3Jvc3Rlci5ocmwiKS4KKystaW5jbHVkZSgiamxpYi5o cmwiKS4KKysKKyslJSBDb3BpZWQgZnJvbSBlamFiYmVyZF9zbS5lcmwKKystcmVjb3JkKHNlc3Np b24sIHtzaWQsIHVzciwgdXMsIHByaW9yaXR5LCBpbmZvfSkuCisrCisrCisrJSUlCisrJSUlIGdl bl9tb2QKKyslJSUKKysKKytzdGFydChfSG9zdCwgX09wdHMpIC0+CisrICAgIGVqYWJiZXJkX2Nv bW1hbmRzOnJlZ2lzdGVyX2NvbW1hbmRzKGNvbW1hbmRzKCkpLgorKworK3N0b3AoX0hvc3QpIC0+ CisrICAgIGVqYWJiZXJkX2NvbW1hbmRzOnVucmVnaXN0ZXJfY29tbWFuZHMoY29tbWFuZHMoKSku CisrCisrCisrJSUlCisrJSUlIFJlZ2lzdGVyIGNvbW1hbmRzCisrJSUlCisrCisrY29tbWFuZHMo KSAtPgorKyAgICBWY2FyZDFGaWVsZHNTdHJpbmcgPSAiU29tZSB2Y2FyZCBmaWVsZCBuYW1lcyBp biBnZXQvc2V0X3ZjYXJkIGFyZTpcbiIKKysJIiBGTgkJLSBGdWxsIE5hbWVcbiIKKysJIiBOSUNL TkFNRQktIE5pY2tuYW1lXG4iCisrCSIgQkRBWQkJLSBCaXJ0aGRheVxuIgorKwkiIFRJVExFCQkt IFdvcms6IFBvc2l0aW9uXG4iLAorKyAgICAiIFJPTEUJCS0gV29yazogUm9sZSIsCisrCisrICAg IFZjYXJkMkZpZWxkc1N0cmluZyA9ICJTb21lIHZjYXJkIGZpZWxkIG5hbWVzIGFuZCBzdWJuYW1l cyBpbiBnZXQvc2V0X3ZjYXJkMiBhcmU6XG4iCisrCSIgTiBGQU1JTFkJLSBGYW1pbHkgbmFtZVxu IgorKwkiIE4gR0lWRU4JLSBHaXZlbiBuYW1lXG4iCisrCSIgTiBNSURETEUJLSBNaWRkbGUgbmFt ZVxuIgorKwkiIEFEUiBDVFJZCS0gQWRkcmVzczogQ291bnRyeVxuIgorKwkiIEFEUiBMT0NBTElU WQktIEFkZHJlc3M6IENpdHlcbiIKKysJIiBFTUFJTCBVU0VSSUQJLSBFLU1haWwgQWRkcmVzc1xu IgorKwkiIE9SRyBPUkdOQU1FCS0gV29yazogQ29tcGFueVxuIgorKwkiIE9SRyBPUkdVTklUCS0g V29yazogRGVwYXJ0bWVudCIsCisrCisrICAgIFZjYXJkWEVQID0gIkZvciBhIGZ1bGwgbGlzdCBv ZiB2Q2FyZCBmaWVsZHMgY2hlY2sgWEVQLTAwNTQ6IHZjYXJkLXRlbXAgYXQgIgorKwkiaHR0cDov L3d3dy54bXBwLm9yZy9leHRlbnNpb25zL3hlcC0wMDU0Lmh0bWwiLAorKworKyAgICBbCisrICAg ICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGNvbXBpbGUsIHRhZ3MgPSBbZXJsYW5nXSwKKysJ CQlkZXNjID0gIlJlY29tcGlsZSBhbmQgcmVsb2FkIEVybGFuZyBzb3VyY2UgY29kZSBmaWxlIiwK KysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGNvbXBpbGUsCisrCQkJYXJncyA9IFt7 ZmlsZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2Vq YWJiZXJkX2NvbW1hbmRze25hbWUgPSBsb2FkX2NvbmZpZywgdGFncyA9IFtzZXJ2ZXJdLAorKwkJ CWRlc2MgPSAiTG9hZCBlamFiYmVyZCBjb25maWd1cmF0aW9uIGZpbGUiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gbG9hZF9jb25maWcsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3Ry aW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2Nv bW1hbmRze25hbWUgPSBnZXRfY29va2llLCB0YWdzID0gW2VybGFuZ10sCisrCQkJZGVzYyA9ICJH ZXQgdGhlIEVybGFuZyBjb29raWUgb2YgdGhpcyBub2RlIiwKKysJCQltb2R1bGUgPSA/TU9EVUxF LCBmdW5jdGlvbiA9IGdldF9jb29raWUsCisrCQkJYXJncyA9IFtdLAorKwkJCXJlc3VsdCA9IHtj b29raWUsIHN0cmluZ319LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSByZW1vdmVf bm9kZSwgdGFncyA9IFtlcmxhbmddLAorKwkJCWRlc2MgPSAiUmVtb3ZlIGFuIGVqYWJiZXJkIG5v ZGUgZnJvbSBNbmVzaWEgY2x1c3RlcmluZyBjb25maWciLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUs IGZ1bmN0aW9uID0gcmVtb3ZlX25vZGUsCisrCQkJYXJncyA9IFt7bm9kZSwgc3RyaW5nfV0sCisr CQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBleHBvcnQyb2RiYywgdGFncyA9IFttbmVzaWFdLAorKwkJCWRlc2MgPSAiRXhwb3J0IE1u ZXNpYSB0YWJsZXMgdG8gZmlsZXMgaW4gZGlyZWN0b3J5IiwKKysJCQltb2R1bGUgPSA/TU9EVUxF LCBmdW5jdGlvbiA9IGV4cG9ydDJvZGJjLAorKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtw YXRoLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAj ZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IG51bV9hY3RpdmVfdXNlcnMsIHRhZ3MgPSBbYWNjb3Vu dHMsIHN0YXRzXSwKKysJCQlkZXNjID0gIkdldCBudW1iZXIgb2YgdXNlcnMgYWN0aXZlIGluIHRo ZSBsYXN0IGRheXMiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gbnVtX2FjdGl2 ZV91c2VycywKKysJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9LCB7ZGF5cywgaW50ZWdlcn1dLAor KwkJCXJlc3VsdCA9IHt1c2VycywgaW50ZWdlcn19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRz e25hbWUgPSBkZWxldGVfb2xkX3VzZXJzLCB0YWdzID0gW2FjY291bnRzLCBwdXJnZV0sCisrCQkJ ZGVzYyA9ICJEZWxldGUgdXNlcnMgdGhhdCBkaWRuJ3QgbG9nIGluIGxhc3QgZGF5cyIsCisrCQkJ bW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBkZWxldGVfb2xkX3VzZXJzLAorKwkJCWFyZ3Mg PSBbe2RheXMsIGludGVnZXJ9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXN0dXBsZX19LAorKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBkZWxldGVfb2xkX3VzZXJzX3Zob3N0LCB0YWdz ID0gW2FjY291bnRzLCBwdXJnZV0sCisrCQkJZGVzYyA9ICJEZWxldGUgdXNlcnMgdGhhdCBkaWRu J3QgbG9nIGluIGxhc3QgZGF5cyBpbiB2aG9zdCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVu Y3Rpb24gPSBkZWxldGVfb2xkX3VzZXJzX3Zob3N0LAorKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmlu Z30sIHtkYXlzLCBpbnRlZ2VyfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzdHVwbGV9fSwKKysK KysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gY2hlY2tfYWNjb3VudCwgdGFncyA9IFth Y2NvdW50c10sCisrCQkJZGVzYyA9ICJDaGVjayBpZiBhbiBhY291bnQgZXhpc3RzIG9yIG5vdCIs CisrCQkJbW9kdWxlID0gZWphYmJlcmRfYXV0aCwgZnVuY3Rpb24gPSBpc191c2VyX2V4aXN0cywK KysJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0 ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGVj a19wYXNzd29yZCwgdGFncyA9IFthY2NvdW50c10sCisrCQkJZGVzYyA9ICJDaGVjayBpZiBhIHBh c3N3b3JkIGlzIGNvcnJlY3QiLAorKwkJCW1vZHVsZSA9IGVqYWJiZXJkX2F1dGgsIGZ1bmN0aW9u ID0gY2hlY2tfcGFzc3dvcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0 cmluZ30sIHtwYXNzd29yZCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19 LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGVja19wYXNzd29yZF9oYXNoLCB0 YWdzID0gW2FjY291bnRzXSwKKysJCQlkZXNjID0gIkNoZWNrIGlmIHRoZSBwYXNzd29yZCBoYXNo IGlzIGNvcnJlY3QiLAorKwkJCWxvbmdkZXNjID0gIkFsbG93ZWQgaGFzaCBtZXRob2RzOiBtZDUs IHNoYS4iLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gY2hlY2tfcGFzc3dvcmRf aGFzaCwKKysJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge3Bhc3N3 b3JkaGFzaCwgc3RyaW5nfSwge2hhc2htZXRob2QsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHty ZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gY2hhbmdlX3Bh c3N3b3JkLCB0YWdzID0gW2FjY291bnRzXSwKKysJCQlkZXNjID0gIkNoYW5nZSB0aGUgcGFzc3dv cmQgb2YgYW4gYWNjb3VudCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRf cGFzc3dvcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtu ZXdwYXNzLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAgICAj ZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGJhbl9hY2NvdW50LCB0YWdzID0gW2FjY291bnRzXSwK KysJCQlkZXNjID0gIkJhbiBhbiBhY2NvdW50OiBraWNrIHNlc3Npb25zIGFuZCBzZXQgcmFuZG9t IHBhc3N3b3JkIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGJhbl9hY2NvdW50 LAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7cmVhc29uLCBz dHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAjZWphYmJl cmRfY29tbWFuZHN7bmFtZSA9IG51bV9yZXNvdXJjZXMsIHRhZ3MgPSBbc2Vzc2lvbl0sCisrCQkJ ZGVzYyA9ICJHZXQgdGhlIG51bWJlciBvZiByZXNvdXJjZXMgb2YgYSB1c2VyIiwKKysJCQltb2R1 bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IG51bV9yZXNvdXJjZXMsCisrCQkJYXJncyA9IFt7dXNl ciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXNvdXJjZXMsIGlu dGVnZXJ9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gcmVzb3VyY2VfbnVtLCB0 YWdzID0gW3Nlc3Npb25dLAorKwkJCWRlc2MgPSAiUmVzb3VyY2Ugc3RyaW5nIG9mIGEgc2Vzc2lv biBudW1iZXIiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcmVzb3VyY2VfbnVt LAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7bnVtLCBpbnRl Z2VyfV0sCisrCQkJcmVzdWx0ID0ge3Jlc291cmNlLCBzdHJpbmd9fSwKKysgICAgICNlamFiYmVy ZF9jb21tYW5kc3tuYW1lID0ga2lja19zZXNzaW9uLCB0YWdzID0gW3Nlc3Npb25dLAorKwkJCWRl c2MgPSAiS2ljayBhIHVzZXIgc2Vzc2lvbiIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rp b24gPSBraWNrX3Nlc3Npb24sCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0 cmluZ30sIHtyZXNvdXJjZSwgc3RyaW5nfSwge3JlYXNvbiwgc3RyaW5nfV0sCisrCQkJcmVzdWx0 ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0 dXNfbnVtX2hvc3QsIHRhZ3MgPSBbc2Vzc2lvbiwgc3RhdHNdLAorKwkJCWRlc2MgPSAiTnVtYmVy IG9mIGxvZ2dlZCB1c2VycyB3aXRoIHRoaXMgc3RhdHVzIGluIGhvc3QiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX251bSwKKysJCQlhcmdzID0gW3tob3N0LCBzdHJp bmd9LCB7c3RhdHVzLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7dXNlcnMsIGludGVnZXJ9fSwK KysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3RhdHVzX251bSwgdGFncyA9IFtzZXNz aW9uLCBzdGF0c10sCisrCQkJZGVzYyA9ICJOdW1iZXIgb2YgbG9nZ2VkIHVzZXJzIHdpdGggdGhp cyBzdGF0dXMiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX251bSwK KysJCQlhcmdzID0gW3tzdGF0dXMsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHt1c2VycywgaW50 ZWdlcn19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlzdF9ob3N0 LCB0YWdzID0gW3Nlc3Npb25dLAorKwkJCWRlc2MgPSAiTGlzdCBvZiB1c2VycyBsb2dnZWQgaW4g aG9zdCB3aXRoIHRoZWlyIHN0YXR1c2VzIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlv biA9IHN0YXR1c19saXN0LAorKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtzdGF0dXMsIHN0 cmluZ31dLAorKwkJCXJlc3VsdCA9IHt1c2Vycywge2xpc3QsCisrCQkJCQkgIHt1c2Vyc3RhdHVz LCB7dHVwbGUsIFsKKysJCQkJCQkJCXt1c2VyLCBzdHJpbmd9LAorKwkJCQkJCQkJe2hvc3QsIHN0 cmluZ30sCisrCQkJCQkJCQl7cmVzb3VyY2UsIHN0cmluZ30sCisrCQkJCQkJCQl7cHJpb3JpdHks IGludGVnZXJ9LAorKwkJCQkJCQkJe3N0YXR1cywgc3RyaW5nfQorKwkJCQkJCQkgICAgICAgXX19 CisrCQkJCQkgfX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlz dCwgdGFncyA9IFtzZXNzaW9uXSwKKysJCQlkZXNjID0gIkxpc3Qgb2YgbG9nZ2VkIHVzZXJzIHdp dGggdGhpcyBzdGF0dXMiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVz X2xpc3QsCisrCQkJYXJncyA9IFt7c3RhdHVzLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7dXNl cnMsIHtsaXN0LAorKwkJCQkJICB7dXNlcnN0YXR1cywge3R1cGxlLCBbCisrCQkJCQkJCQl7dXNl ciwgc3RyaW5nfSwKKysJCQkJCQkJCXtob3N0LCBzdHJpbmd9LAorKwkJCQkJCQkJe3Jlc291cmNl LCBzdHJpbmd9LAorKwkJCQkJCQkJe3ByaW9yaXR5LCBpbnRlZ2VyfSwKKysJCQkJCQkJCXtzdGF0 dXMsIHN0cmluZ30KKysJCQkJCQkJICAgICAgIF19fQorKwkJCQkJIH19fSwKKysKKysgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gc2V0X25pY2tuYW1lLCB0YWdzID0gW3ZjYXJkXSwKKysJ CQlkZXNjID0gIlNldCBuaWNrbmFtZSBpbiBhIHVzZXIncyB2Y2FyZCIsCisrCQkJbW9kdWxlID0g P01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfbmlja25hbWUsCisrCQkJYXJncyA9IFt7dXNlciwgc3Ry aW5nfSwge2hvc3QsIHN0cmluZ30sIHtuaWNrbmFtZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0g e3JlcywgcmVzY29kZX19LAorKworKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBnZXRf dmNhcmQsIHRhZ3MgPSBbdmNhcmRdLAorKwkJCWRlc2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZD YXJkIGZpZWxkIiwKKysJCQlsb25nZGVzYyA9IFZjYXJkMUZpZWxkc1N0cmluZyArKyAiXG4iICsr IFZjYXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmRYRVAsCisrCQkJbW9kdWxlID0g P01PRFVMRSwgZnVuY3Rpb24gPSBnZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5n fSwge2hvc3QsIHN0cmluZ30sIHtuYW1lLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7Y29udGVu dCwgc3RyaW5nfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGdldF92Y2FyZDIs IHRhZ3MgPSBbdmNhcmRdLAorKwkJCWRlc2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZDYXJkIGZp ZWxkIiwKKysJCQlsb25nZGVzYyA9IFZjYXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNh cmQxRmllbGRzU3RyaW5nICsrICJcbiIgKysgVmNhcmRYRVAsCisrCQkJbW9kdWxlID0gP01PRFVM RSwgZnVuY3Rpb24gPSBnZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hv c3QsIHN0cmluZ30sIHtuYW1lLCBzdHJpbmd9LCB7c3VibmFtZSwgc3RyaW5nfV0sCisrCQkJcmVz dWx0ID0ge2NvbnRlbnQsIHN0cmluZ319LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUg PSBzZXRfdmNhcmQsIHRhZ3MgPSBbdmNhcmRdLAorKwkJCWRlc2MgPSAiU2V0IGNvbnRlbnQgaW4g YSB2Q2FyZCBmaWVsZCIsCisrCQkJbG9uZ2Rlc2MgPSBWY2FyZDFGaWVsZHNTdHJpbmcgKysgIlxu IiArKyBWY2FyZDJGaWVsZHNTdHJpbmcgKysgIlxuXG4iICsrIFZjYXJkWEVQLAorKwkJCW1vZHVs ZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc2V0X3ZjYXJkLAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0 cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7bmFtZSwgc3RyaW5nfSwge2NvbnRlbnQsIHN0cmluZ31d LAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5k c3tuYW1lID0gc2V0X3ZjYXJkMiwgdGFncyA9IFt2Y2FyZF0sCisrCQkJZGVzYyA9ICJTZXQgY29u dGVudCBpbiBhIHZDYXJkIHN1YmZpZWxkIiwKKysJCQlsb25nZGVzYyA9IFZjYXJkMkZpZWxkc1N0 cmluZyArKyAiXG5cbiIgKysgVmNhcmQxRmllbGRzU3RyaW5nICsrICJcbiIgKysgVmNhcmRYRVAs CisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfdmNhcmQyLAorKwkJCWFyZ3Mg PSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7bmFtZSwgc3RyaW5nfSwge3N1Ym5h bWUsIHN0cmluZ30sIHtjb250ZW50LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNj b2RlfX0sCisrCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGFkZF9yb3N0ZXJpdGVt LCB0YWdzID0gW3Jvc3Rlcl0sCisrCQkJZGVzYyA9ICJBZGQgYW4gaXRlbSB0byBhIHVzZXIncyBy b3N0ZXIiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gYWRkX3Jvc3Rlcml0ZW0s CisrCQkJYXJncyA9IFt7bG9jYWx1c2VyLCBzdHJpbmd9LCB7bG9jYWxzZXJ2ZXIsIHN0cmluZ30s CisrCQkJCXt1c2VyLCBzdHJpbmd9LCB7c2VydmVyLCBzdHJpbmd9LAorKwkJCQl7bmljaywgc3Ry aW5nfSwge2dyb3VwLCBzdHJpbmd9LAorKwkJCQl7c3Vicywgc3RyaW5nfV0sCisrCQkJcmVzdWx0 ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgJSV7IiIsICJzdWJzPSBub25lLCBmcm9tLCB0byBv ciBib3RoIn0sCisrICAgICAlJXsiIiwgImV4YW1wbGU6IGFkZC1yb3N0ZXIgcGV0ZXIgbG9jYWxo b3N0IG1pa2Ugc2VydmVyLmNvbSBNaUtlIEVtcGxveWVlcyBib3RoIn0sCisrICAgICAlJXsiIiwg IndpbGwgYWRkIG1pa2VAc2VydmVyLmNvbSB0byBwZXRlckBsb2NhbGhvc3Qgcm9zdGVyIn0sCisr ICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGRlbGV0ZV9yb3N0ZXJpdGVtLCB0YWdzID0g W3Jvc3Rlcl0sCisrCQkJZGVzYyA9ICJEZWxldGUgYW4gaXRlbSBmcm9tIGEgdXNlcidzIHJvc3Rl ciIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBkZWxldGVfcm9zdGVyaXRlbSwK KysJCQlhcmdzID0gW3tsb2NhbHVzZXIsIHN0cmluZ30sIHtsb2NhbHNlcnZlciwgc3RyaW5nfSwK KysJCQkJe3VzZXIsIHN0cmluZ30sIHtzZXJ2ZXIsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHty ZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gcHJvY2Vzc19y b3N0ZXJpdGVtcywgdGFncyA9IFtyb3N0ZXJdLAorKwkJCWRlc2MgPSAiTGlzdCBvciBkZWxldGUg cm9zdGVyaXRlbXMgdGhhdCBtYXRjaCBmaWx0ZXJpbmcgb3B0aW9ucyIsCisrCQkJbG9uZ2Rlc2Mg PSAiRXhwbGFuYXRpb24gb2YgZWFjaCBhcmd1bWVudDpcbiIKKysJCQkiIC0gYWN0aW9uOiB3aGF0 IHRvIGRvIHdpdGggZWFjaCByb3N0ZXJpdGVtIHRoYXQgIgorKwkJCSJtYXRjaGVzIGFsbCB0aGUg ZmlsdGVyaW5nIG9wdGlvbnNcbiIKKysJCQkiIC0gc3Viczogc3Vic2NyaXB0aW9uIHR5cGVcbiIK KysJCQkiIC0gYXNrczogcGVuZGluZyBzdWJzY3JpcHRpb25cbiIKKysJCQkiIC0gdXNlcnM6IHRo ZSBKSURzIG9mIHRoZSBsb2NhbCB1c2VyXG4iCisrCQkJIiAtIGNvbnRhY3RzOiB0aGUgSklEcyBv ZiB0aGUgY29udGFjdCBpbiB0aGUgcm9zdGVyXG4iCisrCQkJIlxuIgorKwkJCSJBbGxvd2VkIHZh bHVlcyBpbiB0aGUgYXJndW1lbnRzOlxuIgorKwkJCSIgIEFDVElPTiA9IGxpc3QgfCBkZWxldGVc biIKKysJCQkiICBTVUJTID0gU1VCWzpTVUJdKiB8IGFueVxuIgorKwkJCSIgIFNVQiA9IG5vbmUg fCBmcm9tIHwgdG8gfCBib3RoXG4iCisrCQkJIiAgQVNLUyA9IEFTS1s6QVNLXSogfCBhbnlcbiIK KysJCQkiICBBU0sgPSBub25lIHwgb3V0IHwgaW5cbiIKKysJCQkiICBVU0VSUyA9IEpJRFs6SklE XSogfCBhbnlcbiIKKysJCQkiICBDT05UQUNUUyA9IEpJRFs6SklEXSogfCBhbnlcbiIKKysJCQki ICBKSUQgPSBjaGFyYWN0ZXJzIHZhbGlkIGluIGEgSklELCBhbmQgY2FuIHVzZSB0aGUgIgorKwkJ CSJnbG9iczogKiwgPyBhbmQgWy4uLl1cbiIKKysJCQkiXG4iCisrCQkJIlRoaXMgZXhhbXBsZSB3 aWxsIGxpc3Qgcm9zdGVyIGl0ZW1zIHdpdGggc3Vic2NyaXB0aW9uICIKKysJCQkiJ25vbmUnLCAn ZnJvbScgb3IgJ3RvJyB0aGF0IGhhdmUgYW55IGFzayBwcm9wZXJ0eSwgb2YgIgorKwkJCSJsb2Nh bCB1c2VycyB3aGljaCBKSUQgaXMgaW4gdGhlIHZpcnR1YWwgaG9zdCAiCisrCQkJIidleGFtcGxl Lm9yZycgYW5kIHRoYXQgdGhlIGNvbnRhY3QgSklEIGlzIGVpdGhlciBhICIKKysJCQkiYmFyZSBz ZXJ2ZXIgbmFtZSAod2l0aG91dCB1c2VyIHBhcnQpIG9yIHRoYXQgaGFzIGEgIgorKwkJCSJ1c2Vy IHBhcnQgYW5kIHRoZSBzZXJ2ZXIgcGFydCBjb250YWlucyB0aGUgd29yZCAnaWNxJyIKKysJCQki OlxuICBsaXN0IG5vbmU6ZnJvbTp0byBhbnkgKkBleGFtcGxlLm9yZyAqOipAKmljcSoiLAorKwkJ CW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHJvY2Vzc19yb3N0ZXJpdGVtcywKKysJCQlh cmdzID0gW3thY3Rpb24sIHN0cmluZ30sIHtzdWJzLCBzdHJpbmd9LAorKwkJCQl7YXNrcywgc3Ry aW5nfSwge3VzZXJzLCBzdHJpbmd9LAorKwkJCQl7Y29udGFjdHMsIHN0cmluZ31dLAorKwkJCXJl c3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0g Z2V0X3Jvc3RlciwgdGFncyA9IFtyb3N0ZXJdLAorKwkJCWRlc2MgPSAiR2V0IHJvc3RlciBvZiBh IGxvY2FsIHVzZXIiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gZ2V0X3Jvc3Rl ciwKKysJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVz dWx0ID0ge2NvbnRhY3RzLCB7bGlzdCwge2NvbnRhY3QsIHt0dXBsZSwgWworKwkJCQkJCQkJICAg ICAge2ppZCwgc3RyaW5nfSwKKysJCQkJCQkJCSAgICAgIHtuaWNrLCBzdHJpbmd9LAorKwkJCQkJ CQkJICAgICAge2dyb3VwLCBzdHJpbmd9CisrCQkJCQkJCQkgICAgIF19fX19fSwKKysgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gcHVzaF9yb3N0ZXIsIHRhZ3MgPSBbcm9zdGVyXSwKKysJ CQlkZXNjID0gIlB1c2ggdGVtcGxhdGUgcm9zdGVyIGZyb20gZmlsZSB0byBhIHVzZXIiLAorKwkJ CW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHVzaF9yb3N0ZXIsCisrCQkJYXJncyA9IFt7 ZmlsZSwgc3RyaW5nfSwge3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1 bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHB1 c2hfcm9zdGVyX2FsbCwgdGFncyA9IFtyb3N0ZXJdLAorKwkJCWRlc2MgPSAiUHVzaCB0ZW1wbGF0 ZSByb3N0ZXIgZnJvbSBmaWxlIHRvIGFsbCB0aG9zZSB1c2VycyIsCisrCQkJbW9kdWxlID0gP01P RFVMRSwgZnVuY3Rpb24gPSBwdXNoX3Jvc3Rlcl9hbGwsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3Ry aW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2Nv bW1hbmRze25hbWUgPSBwdXNoX2FsbHRvYWxsLCB0YWdzID0gW3Jvc3Rlcl0sCisrCQkJZGVzYyA9 ICJBZGQgYWxsIHRoZSB1c2VycyB0byBhbGwgdGhlIHVzZXJzIG9mIEhvc3QgaW4gR3JvdXAiLAor KwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHVzaF9hbGx0b2FsbCwKKysJCQlhcmdz ID0gW3tob3N0LCBzdHJpbmd9LCB7Z3JvdXAsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXMs IHJlc2NvZGV9fSwKKysKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3JnX2NyZWF0 ZSwgdGFncyA9IFtzaGFyZWRfcm9zdGVyX2dyb3VwXSwKKysJCQlkZXNjID0gIkNyZWF0ZSBhIFNo YXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCWxvbmdkZXNjID0gIklmIHlvdSB3YW50IHRvIHNwZWNp Znkgc2V2ZXJhbCBncm91cCAiCisrCQkJImlkZW50aWZpZXJzIGluIHRoZSBEaXNwbGF5IGFyZ3Vt ZW50LFxuIgorKwkJCSJwdXQgIFxcIFwiIGFyb3VuZCB0aGUgYXJndW1lbnQgYW5kXG5zZXBhcmF0 ZSB0aGUgIgorKwkJCSJpZGVudGlmaWVycyB3aXRoIFxcIFxcIG5cbiIKKysJCQkiRm9yIGV4YW1w bGU6XG4iCisrCQkJIiAgZWphYmJlcmRjdGwgc3JnX2NyZWF0ZSBncm91cDMgbG9jYWxob3N0ICIK KysJCQkibmFtZSBkZXNjIFxcXCJncm91cDFcXFxcbmdyb3VwMlxcXCIiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3JnX2NyZWF0ZSwKKysJCQlhcmdzID0gW3tncm91cCwgc3Ry aW5nfSwge2hvc3QsIHN0cmluZ30sCisrCQkJCXtuYW1lLCBzdHJpbmd9LCB7ZGVzY3JpcHRpb24s IHN0cmluZ30sIHtkaXNwbGF5LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2Rl fX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19kZWxldGUsIHRhZ3MgPSBb c2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJEZWxldGUgYSBTaGFyZWQgUm9zdGVy IEdyb3VwIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNyZ19kZWxldGUsCisr CQkJYXJncyA9IFt7Z3JvdXAsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQg PSB7cmVzLCByZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19s aXN0LCB0YWdzID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAorKwkJCWRlc2MgPSAiTGlzdCB0aGUg U2hhcmVkIFJvc3RlciBHcm91cHMgaW4gSG9zdCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVu Y3Rpb24gPSBzcmdfbGlzdCwKKysJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1 bHQgPSB7Z3JvdXBzLCB7bGlzdCwge2lkLCBzdHJpbmd9fX19LAorKyAgICAgI2VqYWJiZXJkX2Nv bW1hbmRze25hbWUgPSBzcmdfZ2V0X2luZm8sIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0s CisrCQkJZGVzYyA9ICJHZXQgaW5mbyBvZiBhIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1v ZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3JnX2dldF9pbmZvLAorKwkJCWFyZ3MgPSBbe2dy b3VwLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge2luZm9ybWF0aW9u cywge2xpc3QsIHtpbmZvcm1hdGlvbiwge3R1cGxlLCBbe2tleSwgc3RyaW5nfSwge3ZhbHVlLCBz dHJpbmd9XX19fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfZ2V0X21l bWJlcnMsIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJHZXQgbWVt YmVycyBvZiBhIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1 bmN0aW9uID0gc3JnX2dldF9tZW1iZXJzLAorKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJpbmd9LCB7 aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge21lbWJlcnMsIHtsaXN0LCB7bWVtYmVyLCBz dHJpbmd9fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfdXNlcl9hZGQs IHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJBZGQgdGhlIEpJRCB1 c2VyQGhvc3QgdG8gdGhlIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9NT0RV TEUsIGZ1bmN0aW9uID0gc3JnX3VzZXJfYWRkLAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30s IHtob3N0LCBzdHJpbmd9LCB7Z3JvdXAsIHN0cmluZ30sIHtncm91cGhvc3QsIHN0cmluZ31dLAor KwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tu YW1lID0gc3JnX3VzZXJfZGVsLCB0YWdzID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAorKwkJCWRl c2MgPSAiRGVsZXRlIHRoaXMgSklEIHVzZXJAaG9zdCBmcm9tIHRoZSBTaGFyZWQgUm9zdGVyIEdy b3VwIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNyZ191c2VyX2RlbCwKKysJ CQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge2dyb3VwLCBzdHJpbmd9 LCB7Z3JvdXBob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisr CisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNlbmRfbWVzc2FnZV9jaGF0LCB0YWdz ID0gW3N0YW56YV0sCisrCQkJZGVzYyA9ICJTZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgbG9jYWwg b3IgcmVtb3RlIGJhcmUgb2YgZnVsbCBKSUQiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0 aW9uID0gc2VuZF9tZXNzYWdlX2NoYXQsCisrCQkJYXJncyA9IFt7ZnJvbSwgc3RyaW5nfSwge3Rv LCBzdHJpbmd9LCB7Ym9keSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19 LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzZW5kX21lc3NhZ2VfaGVhZGxpbmUs IHRhZ3MgPSBbc3RhbnphXSwKKysJCQlkZXNjID0gIlNlbmQgYSBoZWFkbGluZSBtZXNzYWdlIHRv IGEgbG9jYWwgb3IgcmVtb3RlIGJhcmUgb2YgZnVsbCBKSUQiLAorKwkJCW1vZHVsZSA9ID9NT0RV TEUsIGZ1bmN0aW9uID0gc2VuZF9tZXNzYWdlX2hlYWRsaW5lLAorKwkJCWFyZ3MgPSBbe2Zyb20s IHN0cmluZ30sIHt0bywgc3RyaW5nfSwKKysJCQkJe3N1YmplY3QsIHN0cmluZ30sIHtib2R5LCBz dHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAjZWphYmJl cmRfY29tbWFuZHN7bmFtZSA9IHN0YXRzLCB0YWdzID0gW3N0YXRzXSwKKysJCQlkZXNjID0gIkdl dCBzdGF0aXN0aWNhbCB2YWx1ZTogcmVnaXN0ZXJlZHVzZXJzIG9ubGluZXVzZXJzIG9ubGluZXVz ZXJzbm9kZSB1cHRpbWVzZWNvbmRzIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9 IHN0YXRzLAorKwkJCWFyZ3MgPSBbe25hbWUsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtzdGF0 LCBpbnRlZ2VyfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHN0YXRzX2hvc3Qs IHRhZ3MgPSBbc3RhdHNdLAorKwkJCWRlc2MgPSAiR2V0IHN0YXRpc3RpY2FsIHZhbHVlIGZvciB0 aGlzIGhvc3Q6IHJlZ2lzdGVyZWR1c2VycyBvbmxpbmV1c2VycyIsCisrCQkJbW9kdWxlID0gP01P RFVMRSwgZnVuY3Rpb24gPSBzdGF0cywKKysJCQlhcmdzID0gW3tuYW1lLCBzdHJpbmd9LCB7aG9z dCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3N0YXQsIGludGVnZXJ9fQorKyAgICBdLgorKwor KworKyUlJQorKyUlJSBOb2RlCisrJSUlCisrCisrY29tcGlsZShGaWxlKSAtPgorKyAgICBjYXNl IGNvbXBpbGU6ZmlsZShGaWxlKSBvZgorKwlvayAtPiBvazsKKysJXyAtPiBlcnJvcgorKyAgICBl bmQuCisrCisrbG9hZF9jb25maWcoUGF0aCkgLT4KKysgICAgb2sgPSBlamFiYmVyZF9jb25maWc6 bG9hZF9maWxlKFBhdGgpLgorKworK2dldF9jb29raWUoKSAtPgorKyAgICBhdG9tX3RvX2xpc3Qo ZXJsYW5nOmdldF9jb29raWUoKSkuCisrCisrcmVtb3ZlX25vZGUoTm9kZSkgLT4KKysgICAgbW5l c2lhOmRlbF90YWJsZV9jb3B5KHNjaGVtYSwgbGlzdF90b19hdG9tKE5vZGUpKSwKKysgICAgb2su CisrCisrZXhwb3J0Mm9kYmMoSG9zdCwgRGlyZWN0b3J5KSAtPgorKyAgICBUYWJsZXMgPSBbCisr CSAgICAgIHtleHBvcnRfbGFzdCwgbGFzdH0sCisrCSAgICAgIHtleHBvcnRfb2ZmbGluZSwgb2Zm bGluZX0sCisrCSAgICAgIHtleHBvcnRfcGFzc3dkLCBwYXNzd2R9LAorKwkgICAgICB7ZXhwb3J0 X3ByaXZhdGVfc3RvcmFnZSwgcHJpdmF0ZV9zdG9yYWdlfSwKKysJICAgICAge2V4cG9ydF9yb3N0 ZXIsIHJvc3Rlcn0sCisrCSAgICAgIHtleHBvcnRfdmNhcmQsIHZjYXJkfSwKKysJICAgICAge2V4 cG9ydF92Y2FyZF9zZWFyY2gsIHZjYXJkX3NlYXJjaH1dLAorKyAgICBFeHBvcnQgPSBmdW4oe1Rh YmxlRnVuLCBUYWJsZX0pIC0+CisrCQkgICAgIEZpbGVuYW1lID0gZmlsZW5hbWU6am9pbihbRGly ZWN0b3J5LCBhdG9tX3RvX2xpc3QoVGFibGUpKysiLnR4dCJdKSwKKysJCSAgICAgaW86Zm9ybWF0 KCJUcnlpbmcgdG8gZXhwb3J0IE1uZXNpYSB0YWJsZSAnfnAnIG9uIEhvc3QgJ35zJyB0byBmaWxl ICd+cyd+biIsIFtUYWJsZSwgSG9zdCwgRmlsZW5hbWVdKSwKKysJCSAgICAgUmVzID0gKGNhdGNo IGVqZDJvZGJjOlRhYmxlRnVuKEhvc3QsIEZpbGVuYW1lKSksCisrCQkgICAgIGlvOmZvcm1hdCgi ICBSZXN1bHQ6IH5wfm4iLCBbUmVzXSkKKysJICAgICBlbmQsCisrICAgIGxpc3RzOmZvcmVhY2go RXhwb3J0LCBUYWJsZXMpLAorKyAgICBvay4KKysKKysKKyslJSUKKyslJSUgQWNjb3VudHMKKysl JSUKKysKKytzZXRfcGFzc3dvcmQoVXNlciwgSG9zdCwgUGFzc3dvcmQpIC0+CisrICAgIGNhc2Ug ZWphYmJlcmRfYXV0aDpzZXRfcGFzc3dvcmQoVXNlciwgSG9zdCwgUGFzc3dvcmQpIG9mCisrCW9r IC0+CisrCSAgICBvazsKKysJXyAtPgorKwkgICAgZXJyb3IKKysgICAgZW5kLgorKworKyUlIENv cGllZCBzb21lIGNvZGUgZnJvbSBlamFiYmVyZF9jb21tYW5kcy5lcmwKKytjaGVja19wYXNzd29y ZF9oYXNoKFVzZXIsIEhvc3QsIFBhc3N3b3JkSGFzaCwgSGFzaE1ldGhvZCkgLT4KKysgICAgQWNj b3VudFBhc3MgPSBlamFiYmVyZF9hdXRoOmdldF9wYXNzd29yZF9zKFVzZXIsIEhvc3QpLAorKyAg ICBBY2NvdW50UGFzc0hhc2ggPSBjYXNlIEhhc2hNZXRob2Qgb2YKKysJCQkgICJtZDUiIC0+IGdl dF9tZDUoQWNjb3VudFBhc3MpOworKwkJCSAgInNoYSIgLT4gZ2V0X3NoYShBY2NvdW50UGFzcyk7 CisrCQkJICBfIC0+IHVuZGVmaW5lZAorKwkJICAgICAgZW5kLAorKyAgICBjYXNlIEFjY291bnRQ YXNzSGFzaCBvZgorKwl1bmRlZmluZWQgLT4gZXJyb3I7CisrCVBhc3N3b3JkSGFzaCAtPiBvazsK KysJXyAtPiBlcnJvcgorKyAgICBlbmQuCisrZ2V0X21kNShBY2NvdW50UGFzcykgLT4KKysgICAg bGlzdHM6ZmxhdHRlbihbaW9fbGliOmZvcm1hdCgifi4xNkIiLCBbWF0pCisrCQkgICB8fCBYIDwt IGJpbmFyeV90b19saXN0KGNyeXB0bzptZDUoQWNjb3VudFBhc3MpKV0pLgorK2dldF9zaGEoQWNj b3VudFBhc3MpIC0+CisrICAgIGxpc3RzOmZsYXR0ZW4oW2lvX2xpYjpmb3JtYXQoIn4uMTZCIiwg W1hdKQorKwkJICAgfHwgWCA8LSBiaW5hcnlfdG9fbGlzdChjcnlwdG86c2hhKEFjY291bnRQYXNz KSldKS4KKysKKytudW1fYWN0aXZlX3VzZXJzKEhvc3QsIERheXMpIC0+CisrICAgIGxpc3RfbGFz dF9hY3Rpdml0eShIb3N0LCB0cnVlLCBEYXlzKS4KKysKKyslJSBDb2RlIGJhc2VkIG9uIGVqYWJi ZXJkL3NyYy93ZWIvZWphYmJlcmRfd2ViX2FkbWluLmVybAorK2xpc3RfbGFzdF9hY3Rpdml0eShI b3N0LCBJbnRlZ3JhbCwgRGF5cykgLT4KKysgICAge01lZ2FTZWNzLCBTZWNzLCBfTWljcm9TZWNz fSA9IG5vdygpLAorKyAgICBUaW1lU3RhbXAgPSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBTZWNzLAor KyAgICBUUyA9IFRpbWVTdGFtcCAtIERheXMgKiA4NjQwMCwKKysgICAgY2FzZSBjYXRjaCBtbmVz aWE6ZGlydHlfc2VsZWN0KAorKwkJIGxhc3RfYWN0aXZpdHksIFt7e2xhc3RfYWN0aXZpdHksIHsn XycsIEhvc3R9LCAnJDEnLCAnXyd9LAorKwkJCQkgIFt7Jz4nLCAnJDEnLCBUU31dLAorKwkJCQkg IFt7J3RydW5jJywgeycvJywKKysJCQkJCSAgICAgIHsnLScsIFRpbWVTdGFtcCwgJyQxJ30sCisr CQkJCQkgICAgICA4NjQwMH19XX1dKSBvZgorKwkJCQkJCQkgICAgICB7J0VYSVQnLCBfUmVhc29u fSAtPgorKwkJIFtdOworKwkgICAgICAgVmFscyAtPgorKwkJIEhpc3QgPSBoaXN0b2dyYW0oVmFs cywgSW50ZWdyYWwpLAorKwkJIGlmCisrCQkgICAgIEhpc3QgPT0gW10gLT4KKysJCQkgMDsKKysJ CSAgICAgdHJ1ZSAtPgorKwkJCSBMZWZ0ID0gRGF5cyAtIGxlbmd0aChIaXN0KSwKKysJCQkgVGFp bCA9IGlmCisrCQkJCSAgICBJbnRlZ3JhbCAtPgorKwkJCQkJbGlzdHM6ZHVwbGljYXRlKExlZnQs IGxpc3RzOmxhc3QoSGlzdCkpOworKwkJCQkgICAgdHJ1ZSAtPgorKwkJCQkJbGlzdHM6ZHVwbGlj YXRlKExlZnQsIDApCisrCQkJCWVuZCwKKysJCQkgbGlzdHM6bnRoKERheXMsIEhpc3QgKysgVGFp bCkKKysJCSBlbmQKKysJIGVuZC4KKytoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCkgLT4KKysg ICAgaGlzdG9ncmFtKGxpc3RzOnNvcnQoVmFsdWVzKSwgSW50ZWdyYWwsIDAsIDAsIFtdKS4KKyto aXN0b2dyYW0oW0ggfCBUXSwgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50LCBIaXN0KSB3aGVuIEN1 cnJlbnQgPT0gSCAtPgorKyAgICBoaXN0b2dyYW0oVCwgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50 ICsgMSwgSGlzdCk7CisraGlzdG9ncmFtKFtIIHwgX10gPSBWYWx1ZXMsIEludGVncmFsLCBDdXJy ZW50LCBDb3VudCwgSGlzdCkgd2hlbiBDdXJyZW50IDwgSCAtPgorKyAgICBpZgorKwlJbnRlZ3Jh bCAtPgorKwkgICAgaGlzdG9ncmFtKFZhbHVlcywgSW50ZWdyYWwsIEN1cnJlbnQgKyAxLCBDb3Vu dCwgW0NvdW50IHwgSGlzdF0pOworKwl0cnVlIC0+CisrCSAgICBoaXN0b2dyYW0oVmFsdWVzLCBJ bnRlZ3JhbCwgQ3VycmVudCArIDEsIDAsIFtDb3VudCB8IEhpc3RdKQorKyAgICBlbmQ7CisraGlz dG9ncmFtKFtdLCBfSW50ZWdyYWwsIF9DdXJyZW50LCBDb3VudCwgSGlzdCkgLT4KKysgICAgaWYK KysJQ291bnQgPiAwIC0+CisrCSAgICBsaXN0czpyZXZlcnNlKFtDb3VudCB8IEhpc3RdKTsKKysJ dHJ1ZSAtPgorKwkgICAgbGlzdHM6cmV2ZXJzZShIaXN0KQorKyAgICBlbmQuCisrCisrCisrLXJl Y29yZChsYXN0X2FjdGl2aXR5LCB7dXMsIHRpbWVzdGFtcCwgc3RhdHVzfSkuCisrCisrZGVsZXRl X29sZF91c2VycyhEYXlzKSAtPgorKyAgICAlJSBHZXQgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1 c2VycworKyAgICBVc2VycyA9IGVqYWJiZXJkX2F1dGg6ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNl cnMoKSwKKysKKysgICAge3JlbW92ZWQsIE4sIFVSfSA9IGRlbGV0ZV9vbGRfdXNlcnMoRGF5cywg VXNlcnMpLAorKyAgICB7b2ssIGlvX2xpYjpmb3JtYXQoIkRlbGV0ZWQgfnAgdXNlcnM6IH5wIiwg W04sIFVSXSl9LgorKworK2RlbGV0ZV9vbGRfdXNlcnNfdmhvc3QoSG9zdCwgRGF5cykgLT4KKysg ICAgJSUgR2V0IHRoZSBsaXN0IG9mIHJlZ2lzdGVyZWQgdXNlcnMKKysgICAgVXNlcnMgPSBlamFi YmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKEhvc3QpLAorKworKyAgICB7cmVtb3Zl ZCwgTiwgVVJ9ID0gZGVsZXRlX29sZF91c2VycyhEYXlzLCBVc2VycyksCisrICAgIHtvaywgaW9f bGliOmZvcm1hdCgiRGVsZXRlZCB+cCB1c2VyczogfnAiLCBbTiwgVVJdKX0uCisrCisrZGVsZXRl X29sZF91c2VycyhEYXlzLCBVc2VycykgLT4KKysgICAgJSUgQ29udmVydCBvbGRlciB0aW1lCisr ICAgIFNlY09sZGVyID0gRGF5cyoyNCo2MCo2MCwKKysKKysgICAgJSUgR2V0IGN1cnJlbnQgdGlt ZQorKyAgICB7TWVnYVNlY3MsIFNlY3MsIF9NaWNyb1NlY3N9ID0gbm93KCksCisrICAgIFRpbWVT dGFtcF9ub3cgPSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBTZWNzLAorKworKyAgICAlJSBGb3IgYSB1 c2VyLCByZW1vdmUgaWYgcmVxdWlyZWQgYW5kIGFuc3dlciB0cnVlCisrICAgIEYgPSBmdW4oe0xV c2VyLCBMU2VydmVyfSkgLT4KKysJCSUlIENoZWNrIGlmIHRoZSB1c2VyIGlzIGxvZ2dlZAorKwkJ Y2FzZSBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoTFVzZXIsIExTZXJ2ZXIpIG9mCisr CQkgICAgJSUgSWYgaXQgaXNudAorKwkJICAgIFtdIC0+CisrCQkJJSUgTG9vayBmb3IgaGlzIGxh c3RfYWN0aXZpdHkKKysJCQljYXNlIG1uZXNpYTpkaXJ0eV9yZWFkKGxhc3RfYWN0aXZpdHksIHtM VXNlciwgTFNlcnZlcn0pIG9mCisrCQkJICAgICUlIElmIGl0IGlzCisrCQkJICAgICUlIGV4aXN0 ZW50OgorKwkJCSAgICBbI2xhc3RfYWN0aXZpdHl7dGltZXN0YW1wID0gVGltZVN0YW1wfV0gLT4K KysJCQkJJSUgZ2V0IGhpcyBhZ2UKKysJCQkJU2VjID0gVGltZVN0YW1wX25vdyAtIFRpbWVTdGFt cCwKKysJCQkJJSUgSWYgaGUgaXMKKysJCQkJaWYKKysJCQkJICAgICUlIHlvdW5nZXIgdGhhbiBT ZWNPbGRlcjoKKysJCQkJICAgIFNlYyA8IFNlY09sZGVyIC0+CisrCQkJCQklJSBkbyBub3RoaW5n CisrCQkJCQlmYWxzZTsKKysJCQkJICAgICUlIG9sZGVyOgorKwkJCQkgICAgdHJ1ZSAtPgorKwkJ CQkJJSUgcmVtb3ZlIHRoZSB1c2VyCisrCQkJCQllamFiYmVyZF9hdXRoOnJlbW92ZV91c2VyKExV c2VyLCBMU2VydmVyKSwKKysJCQkJCXRydWUKKysJCQkJZW5kOworKwkJCSAgICAlJSBub25leGlz dGVudDoKKysJCQkgICAgW10gLT4KKysJCQkJJSUgcmVtb3ZlIHRoZSB1c2VyCisrCQkJCWVqYWJi ZXJkX2F1dGg6cmVtb3ZlX3VzZXIoTFVzZXIsIExTZXJ2ZXIpLAorKwkJCQl0cnVlCisrCQkJZW5k OworKwkJICAgICUlIEVsc2UKKysJCSAgICBfIC0+CisrCQkJJSUgZG8gbm90aGluZworKwkJCWZh bHNlCisrCQllbmQKKysJZW5kLAorKyAgICAlJSBBcHBseSB0aGUgZnVuY3Rpb24gdG8gZXZlcnkg dXNlciBpbiB0aGUgbGlzdAorKyAgICBVc2Vyc19yZW1vdmVkID0gbGlzdHM6ZmlsdGVyKEYsIFVz ZXJzKSwKKysgICAge3JlbW92ZWQsIGxlbmd0aChVc2Vyc19yZW1vdmVkKSwgVXNlcnNfcmVtb3Zl ZH0uCisrCisrCisrJSUKKyslJSBCYW4gYWNjb3VudAorKworK2Jhbl9hY2NvdW50KFVzZXIsIEhv c3QsIFJlYXNvblRleHQpIC0+CisrICAgIFJlYXNvbiA9IHByZXBhcmVfcmVhc29uKFJlYXNvblRl eHQpLAorKyAgICBraWNrX3Nlc3Npb25zKFVzZXIsIEhvc3QsIFJlYXNvbiksCisrICAgIHNldF9y YW5kb21fcGFzc3dvcmQoVXNlciwgSG9zdCwgUmVhc29uKSwKKysgICAgb2suCisrCisra2lja19z ZXNzaW9ucyhVc2VyLCBTZXJ2ZXIsIFJlYXNvbikgLT4KKysgICAgbGlzdHM6bWFwKAorKyAgICAg IGZ1bihSZXNvdXJjZSkgLT4KKysJICAgICAga2lja190aGlzX3Nlc3Npb24oVXNlciwgU2VydmVy LCBSZXNvdXJjZSwgUmVhc29uKQorKyAgICAgIGVuZCwKKysgICAgICBnZXRfcmVzb3VyY2VzKFVz ZXIsIFNlcnZlcikpLgorKworK2dldF9yZXNvdXJjZXMoVXNlciwgU2VydmVyKSAtPgorKyAgICBs aXN0czptYXAoCisrICAgICAgZnVuKFNlc3Npb24pIC0+CisrCSAgICAgIGVsZW1lbnQoMywgU2Vz c2lvbiNzZXNzaW9uLnVzcikKKysgICAgICBlbmQsCisrICAgICAgZ2V0X3Nlc3Npb25zKFVzZXIs IFNlcnZlcikpLgorKworK2dldF9zZXNzaW9ucyhVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIExVc2Vy ID0gamxpYjpub2RlcHJlcChVc2VyKSwKKysgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2Vy dmVyKSwKKysgICAgU2Vzc2lvbnMgPSAgbW5lc2lhOmRpcnR5X2luZGV4X3JlYWQoc2Vzc2lvbiwg e0xVc2VyLCBMU2VydmVyfSwgI3Nlc3Npb24udXMpLAorKyAgICB0cnVlID0gaXNfbGlzdChTZXNz aW9ucyksCisrICAgIFNlc3Npb25zLgorKworK3NldF9yYW5kb21fcGFzc3dvcmQoVXNlciwgU2Vy dmVyLCBSZWFzb24pIC0+CisrICAgIE5ld1Bhc3MgPSBidWlsZF9yYW5kb21fcGFzc3dvcmQoUmVh c29uKSwKKysgICAgc2V0X3Bhc3N3b3JkX2F1dGgoVXNlciwgU2VydmVyLCBOZXdQYXNzKS4KKysK KytidWlsZF9yYW5kb21fcGFzc3dvcmQoUmVhc29uKSAtPgorKyAgICBEYXRlID0gamxpYjp0aW1l c3RhbXBfdG9faXNvKGNhbGVuZGFyOnVuaXZlcnNhbF90aW1lKCkpLAorKyAgICBSYW5kb21TdHJp bmcgPSByYW5kb21zOmdldF9zdHJpbmcoKSwKKysgICAgIkJBTk5FRF9BQ0NPVU5ULS0iICsrIERh dGUgKysgIi0tIiArKyBSYW5kb21TdHJpbmcgKysgIi0tIiArKyBSZWFzb24uCisrCisrc2V0X3Bh c3N3b3JkX2F1dGgoVXNlciwgU2VydmVyLCBQYXNzd29yZCkgLT4KKysgICAgb2sgPSBlamFiYmVy ZF9hdXRoOnNldF9wYXNzd29yZChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkKS4KKysKKytwcmVwYXJl X3JlYXNvbihbXSkgLT4KKysgICAgIktpY2tlZCBieSBhZG1pbmlzdHJhdG9yIjsKKytwcmVwYXJl X3JlYXNvbihbUmVhc29uXSkgLT4KKysgICAgUmVhc29uOworK3ByZXBhcmVfcmVhc29uKFJlYXNv bikgd2hlbiBpc19saXN0KFJlYXNvbikgLT4KKysgICAgUmVhc29uOworK3ByZXBhcmVfcmVhc29u KFN0cmluZ0xpc3QpIC0+CisrICAgIHN0cmluZzpqb2luKFN0cmluZ0xpc3QsICJfIikuCisrCisr CisrJSUlCisrJSUlIFNlc3Npb25zCisrJSUlCisrCisrbnVtX3Jlc291cmNlcyhVc2VyLCBIb3N0 KSAtPgorKyAgICBsZW5ndGgoZWphYmJlcmRfc206Z2V0X3VzZXJfcmVzb3VyY2VzKFVzZXIsIEhv c3QpKS4KKysKKytyZXNvdXJjZV9udW0oVXNlciwgSG9zdCwgTnVtKSAtPgorKyAgICBSZXNvdXJj ZXMgPSBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoVXNlciwgSG9zdCksCisrICAgIGNh c2UgKDA8TnVtKSBhbmQgKE51bT08bGVuZ3RoKFJlc291cmNlcykpIG9mCisrCXRydWUgLT4KKysJ ICAgIGxpc3RzOm50aChOdW0sIFJlc291cmNlcyk7CisrCWZhbHNlIC0+CisrCSAgICBsaXN0czpm bGF0dGVuKGlvX2xpYjpmb3JtYXQoIkVycm9yOiBXcm9uZyByZXNvdXJjZSBudW1iZXI6IH5wIiwg W051bV0pKQorKyAgICBlbmQuCisrCisra2lja19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3Vy Y2UsIFJlYXNvblRleHQpIC0+CisrICAgIGtpY2tfdGhpc19zZXNzaW9uKFVzZXIsIFNlcnZlciwg UmVzb3VyY2UsIHByZXBhcmVfcmVhc29uKFJlYXNvblRleHQpKSwKKysgICAgb2suCisrCisra2lj a190aGlzX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJjZSwgUmVhc29uKSAtPgorKyAgICBl amFiYmVyZF9yb3V0ZXI6cm91dGUoCisrICAgICAgamxpYjptYWtlX2ppZCgiIiwgIiIsICIiKSwK KysgICAgICBqbGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgUmVzb3VyY2UpLAorKyAgICAgIHt4 bWxlbGVtZW50LCAiYnJvYWRjYXN0IiwgW10sIFt7ZXhpdCwgUmVhc29ufV19KS4KKysKKysKKytz dGF0dXNfbnVtKEhvc3QsIFN0YXR1cykgLT4KKysgICAgbGVuZ3RoKGdldF9zdGF0dXNfbGlzdChI b3N0LCBTdGF0dXMpKS4KKytzdGF0dXNfbnVtKFN0YXR1cykgLT4KKysgICAgc3RhdHVzX251bSgi YWxsIiwgU3RhdHVzKS4KKytzdGF0dXNfbGlzdChIb3N0LCBTdGF0dXMpIC0+CisrICAgIFJlcyA9 IGdldF9zdGF0dXNfbGlzdChIb3N0LCBTdGF0dXMpLAorKyAgICBbe1UsIFMsIFIsIFAsIFN0fSB8 fCB7VSwgUywgUiwgUCwgU3R9IDwtIFJlc10uCisrc3RhdHVzX2xpc3QoU3RhdHVzKSAtPgorKyAg ICBzdGF0dXNfbGlzdCgiYWxsIiwgU3RhdHVzKS4KKysKKysKKytnZXRfc3RhdHVzX2xpc3QoSG9z dCwgU3RhdHVzX3JlcXVpcmVkKSAtPgorKyAgICAlJSBHZXQgbGlzdCBvZiBhbGwgbG9nZ2VkIHVz ZXJzCisrICAgIFNlc3Npb25zID0gZWphYmJlcmRfc206ZGlydHlfZ2V0X215X3Nlc3Npb25zX2xp c3QoKSwKKysgICAgJSUgUmVmb3JtYXQgdGhlIGxpc3QKKysgICAgU2Vzc2lvbnMyID0gWyB7U2Vz c2lvbiNzZXNzaW9uLnVzciwgU2Vzc2lvbiNzZXNzaW9uLnNpZCwgU2Vzc2lvbiNzZXNzaW9uLnBy aW9yaXR5fSB8fCBTZXNzaW9uIDwtIFNlc3Npb25zXSwKKysgICAgRmhvc3QgPSBjYXNlIEhvc3Qg b2YKKysJCSJhbGwiIC0+CisrCQkgICAgJSUgQWxsIGhvc3RzIGFyZSByZXF1ZXN0ZWQsIHNvIGRv bnQgZmlsdGVyIGF0IGFsbAorKwkJICAgIGZ1bihfLCBfKSAtPiB0cnVlIGVuZDsKKysJCV8gLT4K KysJCSAgICAlJSBGaWx0ZXIgdGhlIGxpc3QsIG9ubHkgSG9zdCBpcyBpbnRlcmVzdGluZworKwkJ ICAgIGZ1bihBLCBCKSAtPiBBID09IEIgZW5kCisrCSAgICBlbmQsCisrICAgIFNlc3Npb25zMyA9 IFsge1BpZCwgU2VydmVyLCBQcmlvcml0eX0gfHwge3tfVXNlciwgU2VydmVyLCBfUmVzb3VyY2V9 LCB7XywgUGlkfSwgUHJpb3JpdHl9IDwtIFNlc3Npb25zMiwgYXBwbHkoRmhvc3QsIFtTZXJ2ZXIs IEhvc3RdKV0sCisrICAgICUlIEZvciBlYWNoIFBpZCwgZ2V0IGl0cyBwcmVzZW5jZQorKyAgICBT ZXNzaW9uczQgPSBbIHtlamFiYmVyZF9jMnM6Z2V0X3ByZXNlbmNlKFBpZCksIFNlcnZlciwgUHJp b3JpdHl9IHx8IHtQaWQsIFNlcnZlciwgUHJpb3JpdHl9IDwtIFNlc3Npb25zM10sCisrICAgICUl IEZpbHRlciBieSBzdGF0dXMKKysgICAgRnN0YXR1cyA9IGNhc2UgU3RhdHVzX3JlcXVpcmVkIG9m CisrCQkgICJhbGwiIC0+CisrCQkgICAgICBmdW4oXywgXykgLT4gdHJ1ZSBlbmQ7CisrCQkgIF8g LT4KKysJCSAgICAgIGZ1bihBLCBCKSAtPiBBID09IEIgZW5kCisrCSAgICAgIGVuZCwKKysgICAg W3tVc2VyLCBTZXJ2ZXIsIFJlc291cmNlLCBQcmlvcml0eSwgc3RyaW5naXplKFN0YXR1c190ZXh0 KX0KKysgICAgIHx8IHt7VXNlciwgUmVzb3VyY2UsIFN0YXR1cywgU3RhdHVzX3RleHR9LCBTZXJ2 ZXIsIFByaW9yaXR5fSA8LSBTZXNzaW9uczQsCisrCWFwcGx5KEZzdGF0dXMsIFtTdGF0dXMsIFN0 YXR1c19yZXF1aXJlZF0pXS4KKysKKyslJSBNYWtlIHN0cmluZyBtb3JlIHByaW50LWZyaWVuZGx5 Cisrc3RyaW5naXplKFN0cmluZykgLT4KKysgICAgJSUgUmVwbGFjZSBuZXdsaW5lIGNoYXJhY3Rl cnMgd2l0aCBvdGhlciBjb2RlCisrICAgIGVsZW1lbnQoMiwgcmVnZXhwOmdzdWIoU3RyaW5nLCAi XG4iLCAiXFxuIikpLgorKworKworKyUlJQorKyUlJSBWY2FyZAorKyUlJQorKworK3NldF9uaWNr bmFtZShVc2VyLCBIb3N0LCBOaWNrbmFtZSkgLT4KKysgICAgUiA9IG1vZF92Y2FyZDpwcm9jZXNz X3NtX2lxKAorKwkgIHtqaWQsIFVzZXIsIEhvc3QsICIiLCBVc2VyLCBIb3N0LCAiIn0sCisrCSAg e2ppZCwgVXNlciwgSG9zdCwgIiIsIFVzZXIsIEhvc3QsICIifSwKKysJICB7aXEsICIiLCBzZXQs ICIiLCAiZW4iLAorKwkgICB7eG1sZWxlbWVudCwgInZDYXJkIiwKKysJICAgIFt7InhtbG5zIiwg InZjYXJkLXRlbXAifV0sIFsKKysJCQkJCXt4bWxlbGVtZW50LCAiTklDS05BTUUiLCBbXSwgW3t4 bWxjZGF0YSwgTmlja25hbWV9XX0KKysJCQkJICAgICAgIF0KKysJICAgfX0pLAorKyAgICBjYXNl IFIgb2YKKysJe2lxLCBbXSwgcmVzdWx0LCBbXSwgX0wsIFtdfSAtPgorKwkgICAgb2s7CisrCV8g LT4KKysJICAgIGVycm9yCisrICAgIGVuZC4KKysKKytnZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFt ZSkgLT4KKysgICAgZ2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWVdKS4KKysKKytn ZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFtZSwgU3VibmFtZSkgLT4KKysgICAgZ2V0X3ZjYXJkX2Nv bnRlbnQoVXNlciwgSG9zdCwgW05hbWUsIFN1Ym5hbWVdKS4KKysKKytzZXRfdmNhcmQoVXNlciwg SG9zdCwgTmFtZSwgQ29udGVudCkgLT4KKysgICAgc2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9z dCwgW05hbWVdLCBDb250ZW50KS4KKysKKytzZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFtZSwgU3Vi bmFtZSwgQ29udGVudCkgLT4KKysgICAgc2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05h bWUsIFN1Ym5hbWVdLCBDb250ZW50KS4KKysKKysKKyslJQorKyUlIEludGVybmFsIHZjYXJkCisr CisrZ2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgU2VydmVyLCBEYXRhKSAtPgorKyAgICBbe18sIE1v ZHVsZSwgRnVuY3Rpb24sIF9PcHRzfV0gPSBldHM6bG9va3VwKHNtX2lxdGFibGUsIHs/TlNfVkNB UkQsIFNlcnZlcn0pLAorKyAgICBKSUQgPSBqbGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgIiIp LAorKyAgICBJUSA9ICNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19WQ0FSRH0sCisrICAgIElR ciA9IE1vZHVsZTpGdW5jdGlvbihKSUQsIEpJRCwgSVEpLAorKyAgICBjYXNlIElRciNpcS5zdWJf ZWwgb2YKKysJW0ExXSAtPgorKwkgICAgY2FzZSBnZXRfdmNhcmQoRGF0YSwgQTEpIG9mCisrCQlm YWxzZSAtPiAiRXJyb3I6IG5vX3ZhbHVlIjsKKysJCUVsZW0gLT4geG1sOmdldF90YWdfY2RhdGEo RWxlbSkKKysJICAgIGVuZDsKKysJW10gLT4KKysJICAgICJFcnJvcjogbm9fdmNhcmQiCisrICAg IGVuZC4KKysKKytnZXRfdmNhcmQoW0RhdGExLCBEYXRhMl0sIEExKSAtPgorKyAgICBjYXNlIHht bDpnZXRfc3VidGFnKEExLCBEYXRhMSkgb2YKKysgICAgCWZhbHNlIC0+IGZhbHNlOworKwlBMiAt PiBnZXRfdmNhcmQoW0RhdGEyXSwgQTIpCisrICAgIGVuZDsKKysKKytnZXRfdmNhcmQoW0RhdGFd LCBBMSkgLT4KKysgICAgeG1sOmdldF9zdWJ0YWcoQTEsIERhdGEpLgorKworK3NldF92Y2FyZF9j b250ZW50KFVzZXIsIFNlcnZlciwgRGF0YSwgQ29udGVudCkgLT4KKysgICAgW3tfLCBNb2R1bGUs IEZ1bmN0aW9uLCBfT3B0c31dID0gZXRzOmxvb2t1cChzbV9pcXRhYmxlLCB7P05TX1ZDQVJELCBT ZXJ2ZXJ9KSwKKysgICAgSklEID0gamxpYjptYWtlX2ppZChVc2VyLCBTZXJ2ZXIsICIiKSwKKysg ICAgSVEgPSAjaXF7dHlwZSA9IGdldCwgeG1sbnMgPSA/TlNfVkNBUkR9LAorKyAgICBJUXIgPSBN b2R1bGU6RnVuY3Rpb24oSklELCBKSUQsIElRKSwKKysKKysgICAgJSUgR2V0IG9sZCB2Y2FyZAor KyAgICBBNCA9IGNhc2UgSVFyI2lxLnN1Yl9lbCBvZgorKwkgICAgIFtBMV0gLT4KKysJCSB7Xywg XywgXywgQTJ9ID0gQTEsCisrCQkgdXBkYXRlX3ZjYXJkX2VscyhEYXRhLCBDb250ZW50LCBBMik7 CisrCSAgICAgW10gLT4KKysJCSB1cGRhdGVfdmNhcmRfZWxzKERhdGEsIENvbnRlbnQsIFtdKQor KwkgZW5kLAorKworKyAgICAlJSBCdWlsZCBuZXcgdmNhcmQKKysgICAgU3ViRWwgPSB7eG1sZWxl bWVudCwgInZDYXJkIiwgW3sieG1sbnMiLCJ2Y2FyZC10ZW1wIn1dLCBBNH0sCisrICAgIElRMiA9 ICNpcXt0eXBlPXNldCwgc3ViX2VsID0gU3ViRWx9LAorKworKyAgICBNb2R1bGU6RnVuY3Rpb24o SklELCBKSUQsIElRMiksCisrICAgIG9rLgorKworK3VwZGF0ZV92Y2FyZF9lbHMoRGF0YSwgQ29u dGVudCwgRWxzMSkgLT4KKysgICAgRWxzMiA9IGxpc3RzOmtleXNvcnQoMiwgRWxzMSksCisrICAg IFtEYXRhMSB8IERhdGEyXSA9IERhdGEsCisrICAgIE5ld0VsID0gY2FzZSBEYXRhMiBvZgorKwkJ W10gLT4KKysJCSAgICB7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBbe3htbGNkYXRhLENvbnRlbnR9 XX07CisrCQlbRDJdIC0+CisrCQkgICAgT2xkRWwgPSBjYXNlIGxpc3RzOmtleXNlYXJjaChEYXRh MSwgMiwgRWxzMikgb2YKKysJCQkJe3ZhbHVlLCBBfSAtPiBBOworKwkJCQlmYWxzZSAtPiB7eG1s ZWxlbWVudCwgRGF0YTEsIFtdLCBbXX0KKysJCQkgICAgZW5kLAorKwkJICAgIHt4bWxlbGVtZW50 LCBfLCBfLCBDb250ZW50T2xkMX0gPSBPbGRFbCwKKysJCSAgICBDb250ZW50MiA9IFt7eG1sZWxl bWVudCwgRDIsIFtdLCBbe3htbGNkYXRhLENvbnRlbnR9XX1dLAorKwkJICAgIENvbnRlbnRPbGQy ID0gbGlzdHM6a2V5c29ydCgyLCBDb250ZW50T2xkMSksCisrCQkgICAgQ29udGVudE9sZDMgPSBs aXN0czprZXlkZWxldGUoRDIsIDIsIENvbnRlbnRPbGQyKSwKKysJCSAgICBDb250ZW50TmV3ID0g bGlzdHM6a2V5bWVyZ2UoMiwgQ29udGVudDIsIENvbnRlbnRPbGQzKSwKKysJCSAgICB7eG1sZWxl bWVudCwgRGF0YTEsIFtdLCBDb250ZW50TmV3fQorKwkgICAgZW5kLAorKyAgICBFbHMzID0gbGlz dHM6a2V5ZGVsZXRlKERhdGExLCAyLCBFbHMyKSwKKysgICAgbGlzdHM6a2V5bWVyZ2UoMiwgW05l d0VsXSwgRWxzMykuCisrCisrCisrJSUlCisrJSUlIFJvc3RlcgorKyUlJQorKworK2FkZF9yb3N0 ZXJpdGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFVzZXIsIFNlcnZlciwgTmljaywgR3JvdXAs IFN1YnMpIC0+CisrICAgIGNhc2UgYWRkX3Jvc3Rlcml0ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZl ciwgVXNlciwgU2VydmVyLCBOaWNrLCBHcm91cCwgbGlzdF90b19hdG9tKFN1YnMpLCBbXSkgb2YK KysJe2F0b21pYywgb2t9IC0+CisrCSAgICBwdXNoX3Jvc3Rlcl9pdGVtKExvY2FsVXNlciwgTG9j YWxTZXJ2ZXIsIFVzZXIsIFNlcnZlciwge2FkZCwgTmljaywgU3VicywgR3JvdXB9KSwKKysJICAg IG9rOworKwlfIC0+CisrCSAgICBlcnJvcgorKyAgICBlbmQuCisrCisrYWRkX3Jvc3Rlcml0ZW0o TFUsIExTLCBVc2VyLCBTZXJ2ZXIsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24sIFhhdHRycykg LT4KKysgICAgc3Vic2NyaWJlKExVLCBMUywgVXNlciwgU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vi c2NyaXB0aW9uLCBYYXR0cnMpLgorKworK3N1YnNjcmliZShMVSwgTFMsIFVzZXIsIFNlcnZlciwg TmljaywgR3JvdXAsIFN1YnNjcmlwdGlvbiwgWGF0dHJzKSAtPgorKyAgICBtbmVzaWE6dHJhbnNh Y3Rpb24oCisrICAgICAgZnVuKCkgLT4KKysJICAgICAgbW5lc2lhOndyaXRlKHtyb3N0ZXIsCisr CQkJICAgIHtMVSxMUyx7VXNlcixTZXJ2ZXIsW119fSwgJSB1agorKwkJCSAgICB7TFUsTFN9LCAg ICAgICAgICAgICAgICAgICUgdXNlcgorKwkJCSAgICB7VXNlcixTZXJ2ZXIsW119LCAgICAgICUg amlkCisrCQkJICAgIE5pY2ssICAgICAgICAgICAgICAgICAgJSBuYW1lOiAiTW9tIiwgW10KKysJ CQkgICAgU3Vic2NyaXB0aW9uLCAgJSBzdWJzY3JpcHRpb246IG5vbmUsIHRvPXlvdSBzZWUgaGlt LCBmcm9tPWhlIHNlZXMgeW91LCBib3RoCisrCQkJICAgIG5vbmUsICAgICAgICAgICUgYXNrOiBv dXQ9c2VuZCByZXF1ZXN0LCBpbj1zb21lYm9keSByZXF1ZXN0cyB5b3UsIG5vbmUKKysJCQkgICAg W0dyb3VwXSwgICAgICAgJSBncm91cHM6IFsiRmFtaWx5Il0KKysJCQkgICAgWGF0dHJzLCAgICAg ICAgJSB4YXR0cnM6IFt7ImNhdGVnb3J5IiwiY29uZmVyZW5jZSJ9XQorKwkJCSAgICBbXSAgICAg ICAgICAgICAlIHhzOiBbXQorKwkJCSAgIH0pCisrICAgICAgZW5kKS4KKysKKytkZWxldGVfcm9z dGVyaXRlbShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIGNh c2UgdW5zdWJzY3JpYmUoTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgVXNlciwgU2VydmVyKSBvZgor Kwl7YXRvbWljLCBva30gLT4KKysJICAgIHB1c2hfcm9zdGVyX2l0ZW0oTG9jYWxVc2VyLCBMb2Nh bFNlcnZlciwgVXNlciwgU2VydmVyLCByZW1vdmUpLAorKwkgICAgb2s7CisrCV8gIC0+CisrCSAg ICBlcnJvcgorKyAgICBlbmQuCisrCisrdW5zdWJzY3JpYmUoTFUsIExTLCBVc2VyLCBTZXJ2ZXIp IC0+CisrICAgIG1uZXNpYTp0cmFuc2FjdGlvbigKKysgICAgICBmdW4oKSAtPgorKyAgICAgICAg ICAgICAgbW5lc2lhOmRlbGV0ZSh7cm9zdGVyLCB7TFUsIExTLCB7VXNlciwgU2VydmVyLCBbXX19 fSkKKysgICAgICBlbmQpLgorKworKworKyUlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrJSUgR2V0IFJvc3RlcgorKyUlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisr Z2V0X3Jvc3RlcihVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIHtvaywgUm9zdGVyfSA9IGdldF9yb3N0 ZXIyKFVzZXIsIFNlcnZlciksCisrICAgIG1ha2Vfcm9zdGVyX3htbHJwYyhSb3N0ZXIpLgorKwor K2dldF9yb3N0ZXIyKFVzZXIsIFNlcnZlcikgLT4KKysgICAgTW9kdWxlcyA9IGdlbl9tb2Q6bG9h ZGVkX21vZHVsZXMoU2VydmVyKSwKKysgICAgUm9zdGVyID0gY2FzZSBsaXN0czptZW1iZXIobW9k X3Jvc3RlciwgTW9kdWxlcykgb2YKKysJCSB0cnVlIC0+CisrCQkgICAgIG1vZF9yb3N0ZXI6Z2V0 X3VzZXJfcm9zdGVyKFtdLCB7VXNlciwgU2VydmVyfSk7CisrCQkgZmFsc2UgLT4KKysJCSAgICAg Y2FzZSBsaXN0czptZW1iZXIobW9kX3Jvc3Rlcl9vZGJjLCBNb2R1bGVzKSBvZgorKwkJCSB0cnVl IC0+CisrCQkJICAgICBtb2Rfcm9zdGVyX29kYmM6Z2V0X3VzZXJfcm9zdGVyKFtdLCB7VXNlciwg U2VydmVyfSk7CisrCQkJIGZhbHNlIC0+CisrCQkJICAgICB7ZXJyb3IsICJOZWl0aGVyIG1vZF9y b3N0ZXIgb3IgbW9kX3Jvc3Rlcl9vZGJjIGFyZSBlbmFibGVkIn0KKysJCSAgICAgZW5kCisrCSAg ICAgZW5kLAorKyAgICB7b2ssIFJvc3Rlcn0uCisrCisrJSUgTm90ZTogaWYgYSBjb250YWN0IGlz IGluIHNldmVyYWwgZ3JvdXBzLCB0aGUgY29udGFjdCBpcyByZXR1cm5lZAorKyUlIHNldmVyYWwg dGltZXMsIGVhY2ggb25lIGluIGEgZGlmZmVyZW50IGdyb3VwLgorK21ha2Vfcm9zdGVyX3htbHJw YyhSb3N0ZXIpIC0+CisrICAgIGxpc3RzOmZvbGRsKAorKyAgICAgIGZ1bihJdGVtLCBSZXMpIC0+ CisrCSAgICAgIEpJRFMgPSBqbGliOmppZF90b19zdHJpbmcoSXRlbSNyb3N0ZXIuamlkKSwKKysJ ICAgICAgTmljayA9IEl0ZW0jcm9zdGVyLm5hbWUsCisrCSAgICAgIEdyb3VwcyA9IGNhc2UgSXRl bSNyb3N0ZXIuZ3JvdXBzIG9mCisrCQkJICAgW10gLT4gWyIiXTsKKysJCQkgICBHcyAtPiBHcwor KwkJICAgICAgIGVuZCwKKysJICAgICAgSXRlbXNYID0gW3tKSURTLCBOaWNrLCBHcm91cH0KKysJ CQl8fCBHcm91cCA8LSBHcm91cHNdLAorKwkgICAgICBJdGVtc1ggKysgUmVzCisrICAgICAgZW5k LAorKyAgICAgIFtdLAorKyAgICAgIFJvc3RlcikuCisrCisrCisrJSUtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyUlIFB1c2ggUm9zdGVyIGZyb20gZmlsZQorKyUlLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysKKytwdXNoX3Jvc3RlcihGaWxlLCBVc2VyLCBTZXJ2ZXIpIC0+ CisrICAgIHtvaywgW1Jvc3Rlcl19ID0gZmlsZTpjb25zdWx0KEZpbGUpLAorKyAgICBzdWJzY3Jp YmVfcm9zdGVyKHtVc2VyLCBTZXJ2ZXIsICIiLCBVc2VyfSwgUm9zdGVyKS4KKysKKytwdXNoX3Jv c3Rlcl9hbGwoRmlsZSkgLT4KKysgICAge29rLCBbUm9zdGVyXX0gPSBmaWxlOmNvbnN1bHQoRmls ZSksCisrICAgIHN1YnNjcmliZV9hbGwoUm9zdGVyKS4KKysKKytzdWJzY3JpYmVfYWxsKFJvc3Rl cikgLT4KKysgICAgc3Vic2NyaWJlX2FsbChSb3N0ZXIsIFJvc3RlcikuCisrc3Vic2NyaWJlX2Fs bChbXSwgXykgLT4KKysgICAgb2s7Cisrc3Vic2NyaWJlX2FsbChbVXNlcjEgfCBVc2Vyc10sIFJv c3RlcikgLT4KKysgICAgc3Vic2NyaWJlX3Jvc3RlcihVc2VyMSwgUm9zdGVyKSwKKysgICAgc3Vi c2NyaWJlX2FsbChVc2VycywgUm9zdGVyKS4KKysKKytzdWJzY3JpYmVfcm9zdGVyKF8sIFtdKSAt PgorKyAgICBvazsKKyslJSBEbyBub3Qgc3Vic2NyaWJlIGEgdXNlciB0byBpdHNlbGYKKytzdWJz Y3JpYmVfcm9zdGVyKHtOYW1lLCBTZXJ2ZXIsIEdyb3VwLCBOaWNrfSwgW3tOYW1lLCBTZXJ2ZXIs IF8sIF99IHwgUm9zdGVyXSkgLT4KKysgICAgc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZSwgU2VydmVy LCBHcm91cCwgTmlja30sIFJvc3Rlcik7CisrJSUgU3Vic2NyaWJlIE5hbWUyIHRvIE5hbWUxCisr c3Vic2NyaWJlX3Jvc3Rlcih7TmFtZTEsIFNlcnZlcjEsIEdyb3VwMSwgTmljazF9LCBbe05hbWUy LCBTZXJ2ZXIyLCBHcm91cDIsIE5pY2syfSB8IFJvc3Rlcl0pIC0+CisrICAgIHN1YnNjcmliZShO YW1lMSwgU2VydmVyMSwgTmFtZTIsIFNlcnZlcjIsIE5pY2syLCBHcm91cDIsIGJvdGgsIFtdKSwK KysgICAgc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZTEsIFNlcnZlcjEsIEdyb3VwMSwgTmljazF9LCBS b3N0ZXIpLgorKworK3B1c2hfYWxsdG9hbGwoUywgRykgLT4KKysgICAgVXNlcnMgPSBlamFiYmVy ZF9hdXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKFMpLAorKyAgICBVc2VyczIgPSBidWlsZF9s aXN0X3VzZXJzKEcsIFVzZXJzLCBbXSksCisrICAgIHN1YnNjcmliZV9hbGwoVXNlcnMyKSwKKysg ICAgb2suCisrCisrYnVpbGRfbGlzdF91c2VycyhfR3JvdXAsIFtdLCBSZXMpIC0+CisrICAgIFJl czsKKytidWlsZF9saXN0X3VzZXJzKEdyb3VwLCBbe1VzZXIsIFNlcnZlcn18VXNlcnNdLCBSZXMp IC0+CisrICAgIGJ1aWxkX2xpc3RfdXNlcnMoR3JvdXAsIFVzZXJzLCBbe1VzZXIsIFNlcnZlciwg R3JvdXAsIFVzZXJ9fFJlc10pLgorKworKyUlIEBzcGVjKExVLCBMUywgVSwgUywgQWN0aW9uKSAt PiBvaworKyUlICAgICAgIEFjdGlvbiA9IHthZGQsIE5pY2ssIFN1YnMsIEdyb3VwfSB8IHJlbW92 ZQorKyUlIEBkb2MgUHVzaCB0byB0aGUgcm9zdGVyIG9mIGFjY291bnQgTFVATFMgdGhlIGNvbnRh Y3QgVUBTLgorKyUlIFRoZSBzcGVjaWZpYyBhY3Rpb24gdG8gcGVyZm9ybSBpcyBkZWZpbmVkIGlu IEFjdGlvbi4KKytwdXNoX3Jvc3Rlcl9pdGVtKExVLCBMUywgVSwgUywgQWN0aW9uKSAtPgorKyAg ICBsaXN0czpmb3JlYWNoKGZ1bihSKSAtPgorKwkJCSAgcHVzaF9yb3N0ZXJfaXRlbShMVSwgTFMs IFIsIFUsIFMsIEFjdGlvbikKKysJCSAgZW5kLCBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJj ZXMoTFUsIExTKSkuCisrCisrcHVzaF9yb3N0ZXJfaXRlbShMVSwgTFMsIFIsIFUsIFMsIEFjdGlv bikgLT4KKysgICAgSXRlbSA9IGJ1aWxkX3Jvc3Rlcl9pdGVtKFUsIFMsIEFjdGlvbiksCisrICAg IFJlc0lRID0gYnVpbGRfaXFfcm9zdGVyX3B1c2goSXRlbSksCisrICAgIExKSUQgPSBqbGliOm1h a2VfamlkKExVLCBMUywgUiksCisrICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShMSklELCBMSklE LCBSZXNJUSkuCisrCisrYnVpbGRfcm9zdGVyX2l0ZW0oVSwgUywge2FkZCwgTmljaywgU3Vicywg R3JvdXB9KSAtPgorKyAgICB7eG1sZWxlbWVudCwgIml0ZW0iLAorKyAgICAgW3siamlkIiwgamxp YjpqaWRfdG9fc3RyaW5nKGpsaWI6bWFrZV9qaWQoVSwgUywgIiIpKX0sCisrICAgICAgeyJuYW1l IiwgTmlja30sCisrICAgICAgeyJzdWJzY3JpcHRpb24iLCBTdWJzfV0sCisrICAgICBbe3htbGVs ZW1lbnQsICJncm91cCIsIFtdLCBbe3htbGNkYXRhLCBHcm91cH1dfV0KKysgICAgfTsKKytidWls ZF9yb3N0ZXJfaXRlbShVLCBTLCByZW1vdmUpIC0+CisrICAgIHt4bWxlbGVtZW50LCAiaXRlbSIs CisrICAgICBbeyJqaWQiLCBqbGliOmppZF90b19zdHJpbmcoamxpYjptYWtlX2ppZChVLCBTLCAi IikpfSwKKysgICAgICB7InN1YnNjcmlwdGlvbiIsICJyZW1vdmUifV0sCisrICAgICBbXQorKyAg ICB9LgorKworK2J1aWxkX2lxX3Jvc3Rlcl9wdXNoKEl0ZW0pIC0+CisrICAgIHt4bWxlbGVtZW50 LCAiaXEiLAorKyAgICAgW3sidHlwZSIsICJzZXQifSwgeyJpZCIsICJwdXNoIn1dLAorKyAgICAg W3t4bWxlbGVtZW50LCAicXVlcnkiLAorKyAgICAgICBbeyJ4bWxucyIsID9OU19ST1NURVJ9XSwK KysgICAgICAgW0l0ZW1dCisrICAgICAgfQorKyAgICAgXQorKyAgICB9LgorKworKworKyUlJQor KyUlJSBTaGFyZWQgUm9zdGVyIEdyb3VwcworKyUlJQorKworK3NyZ19jcmVhdGUoR3JvdXAsIEhv c3QsIE5hbWUsIERlc2NyaXB0aW9uLCBEaXNwbGF5KSAtPgorKyAgICB7b2ssIERpc3BsYXlMaXN0 fSA9IHJlZ2V4cDpzcGxpdChEaXNwbGF5LCAiXFxcXG4iKSwKKysgICAgT3B0cyA9IFt7bmFtZSwg TmFtZX0sCisrCSAgICB7ZGlzcGxheWVkX2dyb3VwcywgRGlzcGxheUxpc3R9LAorKwkgICAge2Rl c2NyaXB0aW9uLCBEZXNjcmlwdGlvbn1dLAorKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVk X3Jvc3RlcjpjcmVhdGVfZ3JvdXAoSG9zdCwgR3JvdXAsIE9wdHMpLAorKyAgICBvay4KKysKKytz cmdfZGVsZXRlKEdyb3VwLCBIb3N0KSAtPgorKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVk X3Jvc3RlcjpkZWxldGVfZ3JvdXAoSG9zdCwgR3JvdXApLAorKyAgICBvay4KKysKKytzcmdfbGlz dChIb3N0KSAtPgorKyAgICBsaXN0czpzb3J0KG1vZF9zaGFyZWRfcm9zdGVyOmxpc3RfZ3JvdXBz KEhvc3QpKS4KKysKKytzcmdfZ2V0X2luZm8oR3JvdXAsIEhvc3QpIC0+CisrICAgIE9wdHMgPSBt b2Rfc2hhcmVkX3Jvc3RlcjpnZXRfZ3JvdXBfb3B0cyhIb3N0LEdyb3VwKSwKKysgICAgW3tpb19s aWI6Zm9ybWF0KCJ+cCIsIFtUaXRsZV0pLAorKyAgICAgIGlvX2xpYjpmb3JtYXQoIn5wIiwgW1Zh bHVlXSl9IHx8IHtUaXRsZSwgVmFsdWV9IDwtIE9wdHNdLgorKworK3NyZ19nZXRfbWVtYmVycyhH cm91cCwgSG9zdCkgLT4KKysgICAgTWVtYmVycyA9IG1vZF9zaGFyZWRfcm9zdGVyOmdldF9ncm91 cF9leHBsaWNpdF91c2VycyhIb3N0LEdyb3VwKSwKKysgICAgW2psaWI6amlkX3RvX3N0cmluZyhq bGliOm1ha2VfamlkKE1Vc2VyLCBNU2VydmVyLCAiIikpCisrICAgICB8fCB7TVVzZXIsIE1TZXJ2 ZXJ9IDwtIE1lbWJlcnNdLgorKworK3NyZ191c2VyX2FkZChVc2VyLCBIb3N0LCBHcm91cCwgR3Jv dXBIb3N0KSAtPgorKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjphZGRfdXNl cl90b19ncm91cChHcm91cEhvc3QsIHtVc2VyLCBIb3N0fSwgR3JvdXApLAorKyAgICBvay4KKysK KytzcmdfdXNlcl9kZWwoVXNlciwgSG9zdCwgR3JvdXAsIEdyb3VwSG9zdCkgLT4KKysgICAge2F0 b21pYywgb2t9ID0gbW9kX3NoYXJlZF9yb3N0ZXI6cmVtb3ZlX3VzZXJfZnJvbV9ncm91cChHcm91 cEhvc3QsIHtVc2VyLCBIb3N0fSwgR3JvdXApLAorKyAgICBvay4KKysKKysKKyslJSUKKyslJSUg U3RhbnphCisrJSUlCisrCisrJSUgQGRvYyBTZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgSmFiYmVy IGFjY291bnQuCisrJSUgQHNwZWMgKEZyb206OnN0cmluZygpLCBUbzo6c3RyaW5nKCksIEJvZHk6 OnN0cmluZygpKSAtPiBvaworK3NlbmRfbWVzc2FnZV9jaGF0KEZyb20sIFRvLCBCb2R5KSAtPgor KyAgICBQYWNrZXQgPSBidWlsZF9wYWNrZXQobWVzc2FnZV9jaGF0LCBbQm9keV0pLAorKyAgICBz ZW5kX3BhY2tldF9hbGxfcmVzb3VyY2VzKEZyb20sIFRvLCBQYWNrZXQpLgorKworKyUlIEBkb2Mg U2VuZCBhIGhlYWRsaW5lIG1lc3NhZ2UgdG8gYSBKYWJiZXIgYWNjb3VudC4KKyslJSBAc3BlYyAo RnJvbTo6c3RyaW5nKCksIFRvOjpzdHJpbmcoKSwgU3ViamVjdDo6c3RyaW5nKCksIEJvZHk6OnN0 cmluZygpKSAtPiBvaworK3NlbmRfbWVzc2FnZV9oZWFkbGluZShGcm9tLCBUbywgU3ViamVjdCwg Qm9keSkgLT4KKysgICAgUGFja2V0ID0gYnVpbGRfcGFja2V0KG1lc3NhZ2VfaGVhZGxpbmUsIFtT dWJqZWN0LCBCb2R5XSksCisrICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbSwgVG8s IFBhY2tldCkuCisrCisrJSUgQGRvYyBTZW5kIGEgcGFja2V0IHRvIGEgSmFiYmVyIGFjY291bnQu CisrJSUgSWYgYSByZXNvdXJjZSB3YXMgc3BlY2lmaWVkIGluIHRoZSBKSUQsCisrJSUgdGhlIHBh Y2tldCBpcyBzZW50IG9ubHkgdG8gdGhhdCBzcGVjaWZpYyByZXNvdXJjZS4KKyslJSBJZiBubyBy ZXNvdXJjZSB3YXMgc3BlY2lmaWVkIGluIHRoZSBKSUQsCisrJSUgYW5kIHRoZSB1c2VyIGlzIHJl bW90ZSBvciBsb2NhbCBidXQgb2ZmbGluZSwKKyslJSB0aGUgcGFja2V0IGlzIHNlbnQgdG8gdGhl IGJhcmUgSklELgorKyUlIElmIHRoZSB1c2VyIGlzIGxvY2FsIGFuZCBpcyBvbmxpbmUgaW4gc2V2 ZXJhbCByZXNvdXJjZXMsCisrJSUgdGhlIHBhY2tldCBpcyBzZW50IHRvIGFsbCBpdHMgcmVzb3Vy Y2VzLgorK3NlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRFN0cmluZywgVG9KSURTdHJp bmcsIFBhY2tldCkgLT4KKysgICAgRnJvbUpJRCA9IGpsaWI6c3RyaW5nX3RvX2ppZChGcm9tSklE U3RyaW5nKSwKKysgICAgVG9KSUQgPSBqbGliOnN0cmluZ190b19qaWQoVG9KSURTdHJpbmcpLAor KyAgICBUb1VzZXIgPSBUb0pJRCNqaWQudXNlciwKKysgICAgVG9TZXJ2ZXIgPSBUb0pJRCNqaWQu c2VydmVyLAorKyAgICBjYXNlIFRvSklEI2ppZC5yZXNvdXJjZSBvZgorKwkiIiAtPgorKwkgICAg c2VuZF9wYWNrZXRfYWxsX3Jlc291cmNlcyhGcm9tSklELCBUb1VzZXIsIFRvU2VydmVyLCBQYWNr ZXQpOworKwlSZXMgLT4KKysJICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwg VG9Vc2VyLCBUb1NlcnZlciwgUmVzLCBQYWNrZXQpCisrICAgIGVuZC4KKysKKytzZW5kX3BhY2tl dF9hbGxfcmVzb3VyY2VzKEZyb21KSUQsIFRvVXNlciwgVG9TZXJ2ZXIsIFBhY2tldCkgLT4KKysg ICAgY2FzZSBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoVG9Vc2VyLCBUb1NlcnZlcikg b2YKKysJW10gLT4KKysJICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9V c2VyLCBUb1NlcnZlciwgIiIsIFBhY2tldCk7CisrCVRvUmVzb3VyY2VzIC0+CisrCSAgICBsaXN0 czpmb3JlYWNoKAorKwkgICAgICBmdW4oVG9SZXNvdXJjZSkgLT4KKysJCSAgICAgIHNlbmRfcGFj a2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1NlcnZlciwKKysJCQkJCQlUb1Jl c291cmNlLCBQYWNrZXQpCisrCSAgICAgIGVuZCwKKysJICAgICAgVG9SZXNvdXJjZXMpCisrICAg IGVuZC4KKysKKytzZW5kX3BhY2tldF9hbGxfcmVzb3VyY2VzKEZyb21KSUQsIFRvVSwgVG9TLCBU b1IsIFBhY2tldCkgLT4KKysgICAgVG9KSUQgPSBqbGliOm1ha2VfamlkKFRvVSwgVG9TLCBUb1Ip LAorKyAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoRnJvbUpJRCwgVG9KSUQsIFBhY2tldCkuCisr CisrCisrYnVpbGRfcGFja2V0KG1lc3NhZ2VfY2hhdCwgW0JvZHldKSAtPgorKyAgICB7eG1sZWxl bWVudCwgIm1lc3NhZ2UiLAorKyAgICAgW3sidHlwZSIsICJjaGF0In1dLAorKyAgICAgW3t4bWxl bGVtZW50LCAiYm9keSIsIFtdLCBbe3htbGNkYXRhLCBCb2R5fV19XQorKyAgICB9OworK2J1aWxk X3BhY2tldChtZXNzYWdlX2hlYWRsaW5lLCBbU3ViamVjdCwgQm9keV0pIC0+CisrICAgIHt4bWxl bGVtZW50LCAibWVzc2FnZSIsCisrICAgICBbeyJ0eXBlIiwgImhlYWRsaW5lIn1dLAorKyAgICAg W3t4bWxlbGVtZW50LCAic3ViamVjdCIsIFtdLCBbe3htbGNkYXRhLCBTdWJqZWN0fV19LAorKyAg ICAgIHt4bWxlbGVtZW50LCAiYm9keSIsIFtdLCBbe3htbGNkYXRhLCBCb2R5fV19CisrICAgICBd CisrICAgIH0uCisrCisrJSUlCisrJSUlIFN0YXRzCisrJSUlCisrCisrc3RhdHMoTmFtZSkgLT4K KysgICAgY2FzZSBOYW1lIG9mCisrCSJ1cHRpbWVzZWNvbmRzIiAtPiB0cnVuYyhlbGVtZW50KDEs IGVybGFuZzpzdGF0aXN0aWNzKHdhbGxfY2xvY2spKS8xMDAwKTsKKysJInJlZ2lzdGVyZWR1c2Vy cyIgLT4gbGVuZ3RoKGVqYWJiZXJkX2F1dGg6ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSk7 CisrCSJvbmxpbmV1c2Vyc25vZGUiIC0+IGxlbmd0aChlamFiYmVyZF9zbTpkaXJ0eV9nZXRfbXlf c2Vzc2lvbnNfbGlzdCgpKTsKKysJIm9ubGluZXVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRfc206 ZGlydHlfZ2V0X3Nlc3Npb25zX2xpc3QoKSkKKysgICAgZW5kLgorKworK3N0YXRzKE5hbWUsIEhv c3QpIC0+CisrICAgIGNhc2UgTmFtZSBvZgorKwkicmVnaXN0ZXJlZHVzZXJzIiAtPiBsZW5ndGgo ZWphYmJlcmRfYXV0aDpnZXRfdmhfcmVnaXN0ZXJlZF91c2VycyhIb3N0KSk7CisrCSJvbmxpbmV1 c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX3NtOmdldF92aF9zZXNzaW9uX2xpc3QoSG9zdCkpCisr ICAgIGVuZC4KKysKKysKKysKKyslJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrJSUg UHVyZ2Ugcm9zdGVyIGl0ZW1zCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKwor K3Byb2Nlc3Nfcm9zdGVyaXRlbXMoQWN0aW9uUywgU3Vic1MsIEFza3NTLCBVc2Vyc1MsIENvbnRh Y3RzUykgLT4KKysgICAgQWN0aW9uID0gY2FzZSBBY3Rpb25TIG9mCisrCQkgImxpc3QiIC0+IGxp c3Q7CisrCQkgImRlbGV0ZSIgLT4gZGVsZXRlCisrCSAgICAgZW5kLAorKworKyAgICBTdWJzID0g bGlzdHM6Zm9sZGwoCisrCSAgICAgZnVuKGFueSwgXykgLT4gW25vbmUsIGZyb20sIHRvLCBib3Ro XTsKKysJCShTdWIsIFN1YnMpIC0+IFtTdWIgfCBTdWJzXQorKwkgICAgIGVuZCwKKysJICAgICBb XSwKKysJICAgICBbbGlzdF90b19hdG9tKFMpIHx8IFMgPC0gc3RyaW5nOnRva2VucyhTdWJzUywg IjoiKV0KKysJICAgICksCisrCisrICAgIEFza3MgPSBsaXN0czpmb2xkbCgKKysJICAgICBmdW4o YW55LCBfKSAtPiBbbm9uZSwgb3V0LCBpbl07CisrCQkoQXNrLCBBc2tzKSAtPiBbQXNrIHwgQXNr c10KKysJICAgICBlbmQsCisrCSAgICAgW10sCisrCSAgICAgW2xpc3RfdG9fYXRvbShTKSB8fCBT IDwtIHN0cmluZzp0b2tlbnMoQXNrc1MsICI6IildCisrCSAgICApLAorKworKyAgICBVc2VycyA9 IGxpc3RzOmZvbGRsKAorKwkgICAgICBmdW4oImFueSIsIF8pIC0+IFsiKiIsICIqQCoiXTsKKysJ CSAoVSwgVXMpIC0+IFtVIHwgVXNdCisrCSAgICAgIGVuZCwKKysJICAgICAgW10sCisrCSAgICAg IFtTIHx8IFMgPC0gc3RyaW5nOnRva2VucyhVc2Vyc1MsICI6IildCisrCSAgICAgKSwKKysKKysg ICAgQ29udGFjdHMgPSBsaXN0czpmb2xkbCgKKysJCSBmdW4oImFueSIsIF8pIC0+IFsiKiIsICIq QCoiXTsKKysJCSAgICAoVSwgVXMpIC0+IFtVIHwgVXNdCisrCQkgZW5kLAorKwkJIFtdLAorKwkJ IFtTIHx8IFMgPC0gc3RyaW5nOnRva2VucyhDb250YWN0c1MsICI6IildCisrCQkpLAorKworKyAg ICBjYXNlIHJvc3Rlcml0ZW1fcHVyZ2Uoe0FjdGlvbiwgU3VicywgQXNrcywgVXNlcnMsIENvbnRh Y3RzfSkgb2YKKysJe2F0b21pYywgb2t9IC0+CisrCSAgICBvazsKKysJe2Vycm9yLCBSZWFzb259 IC0+CisrCSAgICBpbzpmb3JtYXQoIkVycm9yIHB1cmdpbmcgcm9zdGVyaXRlbXM6IH5wfm4iLCBb UmVhc29uXSksCisrCSAgICBlcnJvcjsKKysJe2JhZHJwYywgUmVhc29ufSAtPgorKwkgICAgaW86 Zm9ybWF0KCJCYWRSUEMgcHVyZ2luZyByb3N0ZXJpdGVtczogfnB+biIsIFtSZWFzb25dKSwKKysJ ICAgIGVycm9yCisrICAgIGVuZC4KKysKKyslJSBAc3BlYyAoe0FjdGlvbjo6YXRvbSgpLCBTdWJz OjpbYXRvbSgpXSwgQXNrczo6W2F0b20oKV0sIFVzZXI6OnN0cmluZygpLCBDb250YWN0OjpzdHJp bmcoKX0pIC0+IHthdG9taWMsIG9rfQorK3Jvc3Rlcml0ZW1fcHVyZ2UoT3B0aW9ucykgLT4KKysg ICAgTnVtX3Jvc3Rlcml0ZW1zID0gbW5lc2lhOnRhYmxlX2luZm8ocm9zdGVyLCBzaXplKSwKKysg ICAgaW86Zm9ybWF0KCJUaGVyZSBhcmUgfnAgcm9zdGVyIGl0ZW1zIGluIHRvdGFsLn5uIiwgW051 bV9yb3N0ZXJpdGVtc10pLAorKyAgICBLZXkgPSBtbmVzaWE6ZGlydHlfZmlyc3Qocm9zdGVyKSwK KysgICAgb2sgPSByaXAoS2V5LCBPcHRpb25zLCB7MCwgTnVtX3Jvc3Rlcml0ZW1zLCAwLCAwfSks CisrICAgIHthdG9taWMsIG9rfS4KKysKKytyaXAoJyRlbmRfb2ZfdGFibGUnLCBfT3B0aW9ucywg Q291bnRlcnMpIC0+CisrICAgIHByaW50X3Byb2dyZXNzX2xpbmUoQ291bnRlcnMpLAorKyAgICBv azsKKytyaXAoS2V5LCBPcHRpb25zLCB7UHIsIE5ULCBOViwgTkR9KSAtPgorKyAgICBLZXlfbmV4 dCA9IG1uZXNpYTpkaXJ0eV9uZXh0KHJvc3RlciwgS2V5KSwKKysgICAge0FjdGlvbiwgXywgXywg XywgX30gPSBPcHRpb25zLAorKyAgICBORDIgPSBjYXNlIGRlY2lkZV9yaXAoS2V5LCBPcHRpb25z KSBvZgorKwkgICAgICB0cnVlIC0+CisrCQkgIGFwcGx5X2FjdGlvbihBY3Rpb24sIEtleSksCisr CQkgIE5EKzE7CisrCSAgICAgIGZhbHNlIC0+CisrCQkgIE5ECisrCSAgZW5kLAorKyAgICBOVjIg PSBOVisxLAorKyAgICBQcjIgPSBwcmludF9wcm9ncmVzc19saW5lKHtQciwgTlQsIE5WMiwgTkQy fSksCisrICAgIHJpcChLZXlfbmV4dCwgT3B0aW9ucywge1ByMiwgTlQsIE5WMiwgTkQyfSkuCisr CisrYXBwbHlfYWN0aW9uKGxpc3QsIEtleSkgLT4KKysgICAge1VzZXIsIFNlcnZlciwgSklEfSA9 IEtleSwKKysgICAge1JVc2VyLCBSU2VydmVyLCBffSA9IEpJRCwKKysgICAgaW86Zm9ybWF0KCJN YXRjaGVzOiB+c0B+cyB+c0B+c35uIiwgW1VzZXIsIFNlcnZlciwgUlVzZXIsIFJTZXJ2ZXJdKTsK KythcHBseV9hY3Rpb24oZGVsZXRlLCBLZXkpIC0+CisrICAgIGFwcGx5X2FjdGlvbihsaXN0LCBL ZXkpLAorKyAgICBtbmVzaWE6ZGlydHlfZGVsZXRlKHJvc3RlciwgS2V5KS4KKysKKytwcmludF9w cm9ncmVzc19saW5lKHtQciwgTlQsIE5WLCBORH0pIC0+CisrICAgIFByMiA9IHRydW5jKChOVi9O VCkqMTAwKSwKKysgICAgY2FzZSBQciA9PSBQcjIgb2YKKysJdHJ1ZSAtPgorKwkgICAgb2s7Cisr CWZhbHNlIC0+CisrCSAgICBpbzpmb3JtYXQoIlByb2dyZXNzIH5wJSAtIHZpc2l0ZWQgfnAgLSBk ZWxldGVkIH5wfm4iLCBbUHIyLCBOViwgTkRdKQorKyAgICBlbmQsCisrICAgIFByMi4KKysKKytk ZWNpZGVfcmlwKEtleSwge19BY3Rpb24sIFN1YnMsIEFza3MsIFVzZXIsIENvbnRhY3R9KSAtPgor KyAgICBjYXNlIGNhdGNoIG1uZXNpYTpkaXJ0eV9yZWFkKHJvc3RlciwgS2V5KSBvZgorKwlbUkld IC0+CisrCSAgICBsaXN0czptZW1iZXIoUkkjcm9zdGVyLnN1YnNjcmlwdGlvbiwgU3VicykKKysJ CWFuZGFsc28gbGlzdHM6bWVtYmVyKFJJI3Jvc3Rlci5hc2ssIEFza3MpCisrCQlhbmRhbHNvIGRl Y2lkZV9yaXBfamlkKFJJI3Jvc3Rlci51cywgVXNlcikKKysJCWFuZGFsc28gZGVjaWRlX3JpcF9q aWQoUkkjcm9zdGVyLmppZCwgQ29udGFjdCk7CisrCV8gLT4KKysJICAgIGZhbHNlCisrICAgIGVu ZC4KKysKKyslJSBSZXR1cm5zIHRydWUgaWYgdGhlIHNlcnZlciBvZiB0aGUgSklEIGlzIGluY2x1 ZGVkIGluIHRoZSBzZXJ2ZXJzCisrZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyLCBfVVJl c291cmNlfSwgTWF0Y2hfbGlzdCkgLT4KKysgICAgZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2Vy dmVyfSwgTWF0Y2hfbGlzdCk7CisrZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0 Y2hfbGlzdCkgLT4KKysgICAgbGlzdHM6YW55KAorKyAgICAgIGZ1bihNYXRjaF9zdHJpbmcpIC0+ CisrCSAgICAgIE1KSUQgPSBqbGliOnN0cmluZ190b19qaWQoTWF0Y2hfc3RyaW5nKSwKKysJICAg ICAgTU5hbWUgPSBNSklEI2ppZC5sdXNlciwKKysJICAgICAgTVNlcnZlciA9IE1KSUQjamlkLmxz ZXJ2ZXIsCisrCSAgICAgIElzX3NlcnZlciA9IGlzX2dsb2JfbWF0Y2goVVNlcnZlciwgTVNlcnZl ciksCisrCSAgICAgIGNhc2UgTU5hbWUgb2YKKysJCSAgW10gd2hlbiBVTmFtZSA9PSBbXSAtPgor KwkJICAgICAgSXNfc2VydmVyOworKwkJICBbXSAtPgorKwkJICAgICAgZmFsc2U7CisrCQkgIF8g LT4KKysJCSAgICAgIElzX3NlcnZlcgorKwkJCSAgYW5kYWxzbyBpc19nbG9iX21hdGNoKFVOYW1l LCBNTmFtZSkKKysJICAgICAgZW5kCisrICAgICAgZW5kLAorKyAgICAgIE1hdGNoX2xpc3QpLgor KworKyUlIENvcGllZCBmcm9tIGVqYWJiZXJkLTIuMC4wL3NyYy9hY2wuZXJsCisraXNfcmVnZXhw X21hdGNoKFN0cmluZywgUmVnRXhwKSAtPgorKyAgICBjYXNlIHJlZ2V4cDpmaXJzdF9tYXRjaChT dHJpbmcsIFJlZ0V4cCkgb2YKKysJbm9tYXRjaCAtPgorKwkgICAgZmFsc2U7CisrCXttYXRjaCwg XywgX30gLT4KKysJICAgIHRydWU7CisrCXtlcnJvciwgRXJyRGVzY30gLT4KKysJICAgIGlvOmZv cm1hdCgKKysJICAgICAgIldyb25nIHJlZ2V4cCB+cCBpbiBBQ0w6IH5wIiwKKysJICAgICAgW1Jl Z0V4cCwgbGlzdHM6ZmxhdHRlbihyZWdleHA6Zm9ybWF0X2Vycm9yKEVyckRlc2MpKV0pLAorKwkg ICAgZmFsc2UKKysgICAgZW5kLgorK2lzX2dsb2JfbWF0Y2goU3RyaW5nLCBHbG9iKSAtPgorKyAg ICBpc19yZWdleHBfbWF0Y2goU3RyaW5nLCByZWdleHA6c2hfdG9fYXdrKEdsb2IpKS4KKy0tIAor MS42LjYuMQorCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtMDAwNS1GZWRvcmEtc3BlY2lmaWMtY2hh bmdlcy10by1lamFiYmVyZGN0bC5wYXRjaCBiL2VqYWJiZXJkLTAwMDUtRmVkb3JhLXNwZWNpZmlj LWNoYW5nZXMtdG8tZWphYmJlcmRjdGwucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uZWFmYmQwMgotLS0gL2Rldi9udWxsCisrKyBiL2VqYWJiZXJkLTAwMDUtRmVkb3Jh LXNwZWNpZmljLWNoYW5nZXMtdG8tZWphYmJlcmRjdGwucGF0Y2gKQEAgLTAsMCArMSw0OCBAQAor RnJvbSAxYTJmN2ZjMGY0YmE0ZmY5ZjljZjFlZTQwOWNlNDYxMDAwNjg1ZWVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4K K0RhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MzA6MDUgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCA1 LzldIEZlZG9yYS1zcGVjaWZpYyBjaGFuZ2VzIHRvIGVqYWJiZXJkY3RsCisKK1NpZ25lZC1vZmYt Ynk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CistLS0KKyBzcmMvZWphYmJl cmRjdGwudGVtcGxhdGUgfCAgICA4ICsrKystLS0tCisgMSBmaWxlcyBjaGFuZ2VkLCA0IGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRjdGwu dGVtcGxhdGUgYi9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKK2luZGV4IDllZGU3N2QuLjY5Yzc0 ZDYgMTAwNjQ0CistLS0gYS9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKKysrKyBiL3NyYy9lamFi YmVyZGN0bC50ZW1wbGF0ZQorQEAgLTksMTAgKzksMTAgQEAgRVJMX01BWF9FVFNfVEFCTEVTPTE0 MDAKKyAKKyAjIGRlZmluZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcworIE5PREU9ZWph YmJlcmQKKy1IT1NUPWxvY2FsaG9zdAorK0hPU1Q9YGhvc3RuYW1lIC1zIDI+L2Rldi9udWxsIHx8 IGVjaG8gImxvY2FsaG9zdCJgCisgRVJMQU5HX05PREU9JE5PREVAJEhPU1QKKyBFUkw9QGVybEAK Ky1JTlNUQUxMVVNFUj1AaW5zdGFsbHVzZXJACisrSU5TVEFMTFVTRVI9ZWphYmJlcmQKKyAKKyAj IHBhcnNlIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzCisgQVJHUz0KK0BAIC00Niw3ICs0Niw3IEBA IGlmIFsgIiRMT0dTX0RJUiIgPSAiIiBdIDsgdGhlbgorICAgICBMT0dTX0RJUj1ATE9DQUxTVEFU RURJUkAvbG9nL2VqYWJiZXJkCisgZmkKKyBpZiBbICIkU1BPT0xESVIiID0gIiIgXSA7IHRoZW4K Ky0gICAgU1BPT0xESVI9QExPQ0FMU1RBVEVESVJAL2xpYi9lamFiYmVyZAorKyAgICBTUE9PTERJ Uj1ATE9DQUxTVEFURURJUkAvbGliL2VqYWJiZXJkL3Nwb29sCisgZmkKKyBpZiBbICIkRUpBQkJF UkRfRE9DX1BBVEgiID0gIiIgXSA7IHRoZW4KKyAgICAgRUpBQkJFUkRfRE9DX1BBVEg9QERPQ0RJ UkAKK0BAIC02Miw3ICs2Miw3IEBAIEVKSUQ9YGlkIC1nICRJTlNUQUxMVVNFUmAKKyBFWEVDX0NN RD0iZmFsc2UiCisgZm9yIEdJRCBpbiAkR0lEUzsgZG8KKyAgICAgaWYgWyAkR0lEIC1lcSAwIF0g OyB0aGVuCistCUVYRUNfQ01EPSJzdSAke0lOU1RBTExVU0VSfSAtcCAtYyIKKysJRVhFQ19DTUQ9 Ii9zYmluL3J1bnVzZXIgLXMgL2Jpbi9iYXNoIC1wIGVqYWJiZXJkIC1jIgorICAgICBmaQorIGRv bmUKKyBpZiBbICIkSUQiIC1lcSAiJEVKSUQiIF0gOyB0aGVuCistLSAKKzEuNi42LjEKKwoKZGlm ZiAtLWdpdCBhL2VqYWJiZXJkLTAwMDYtU3VwcG9ydC10by1hdXRoZW50aWNhdGUtYWdhaW5zdC1T QVNMLUdTU0FQSS1odHRwLXd3dy5wYXRjaCBiL2VqYWJiZXJkLTAwMDYtU3VwcG9ydC10by1hdXRo ZW50aWNhdGUtYWdhaW5zdC1TQVNMLUdTU0FQSS1odHRwLXd3dy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmIzZTdkCi0tLSAvZGV2L251bGwKKysrIGIvZWphYmJl cmQtMDAwNi1TdXBwb3J0LXRvLWF1dGhlbnRpY2F0ZS1hZ2FpbnN0LVNBU0wtR1NTQVBJLWh0dHAt d3d3LnBhdGNoCkBAIC0wLDAgKzEsNDI1IEBACitGcm9tIDc2NGFkZmE2YmNlNzhiYzg2MTUwNTNh NDc2YzJiZDM4YmRhYjM0OWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCYWRsb3Ag PGJhZGxvcEBwcm9jZXNzLW9uZS5uZXQ+CitEYXRlOiBUdWUsIDI5IFNlcCAyMDA5IDE1OjEwOjE1 ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNi85XSBTdXBwb3J0IHRvIGF1dGhlbnRpY2F0ZSBhZ2Fp bnN0IFNBU0wgR1NTQVBJIGh0dHA6Ly93d3cuZWphYmJlcmQuaW0vY3lyc2FzbF9nc3NhcGkKKwor LS0tCisgc3JjL2N5cnNhc2wuZXJsICAgICAgICAgICB8ICAgMzQgKysrKysrLS0tLS0KKyBzcmMv Y3lyc2FzbF9hbm9ueW1vdXMuZXJsIHwgICAgNiArLQorIHNyYy9jeXJzYXNsX2RpZ2VzdC5lcmwg ICAgfCAgICA0ICstCisgc3JjL2N5cnNhc2xfZ3NzYXBpLmVybCAgICB8ICAxNDMgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL2N5cnNhc2xfcGxhaW4u ZXJsICAgICB8ICAgIDUgKy0KKyBzcmMvZWphYmJlcmQuaHJsICAgICAgICAgIHwgICAgNyArKwor IHNyYy9lamFiYmVyZF9jMnMuZXJsICAgICAgfCAgICA4ICsrLQorIHNyYy9lamFiYmVyZF9uZXQu ZXJsICAgICAgfCAgIDM5ICsrKysrKysrKysrKworIDggZmlsZXMgY2hhbmdlZCwgMjI0IGluc2Vy dGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvY3lyc2Fz bF9nc3NhcGkuZXJsCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9lamFiYmVyZF9uZXQuZXJsCisK K2RpZmYgLS1naXQgYS9zcmMvY3lyc2FzbC5lcmwgYi9zcmMvY3lyc2FzbC5lcmwKK2luZGV4IDEy MWVmNmQuLjE5MmQ1YjUgMTAwNjQ0CistLS0gYS9zcmMvY3lyc2FzbC5lcmwKKysrKyBiL3NyYy9j eXJzYXNsLmVybAorQEAgLTMwLDE5ICszMCwyMCBAQAorIC1leHBvcnQoW3N0YXJ0LzAsCisgCSBy ZWdpc3Rlcl9tZWNoYW5pc20vMywKKyAJIGxpc3RtZWNoLzEsCistCSBzZXJ2ZXJfbmV3LzcsCisr CSBzZXJ2ZXJfbmV3LzgsCisgCSBzZXJ2ZXJfc3RhcnQvMywKKyAJIHNlcnZlcl9zdGVwLzJdKS4K KyAKKyAtcmVjb3JkKHNhc2xfbWVjaGFuaXNtLCB7bWVjaGFuaXNtLCBtb2R1bGUsIHJlcXVpcmVf cGxhaW5fcGFzc3dvcmR9KS4KKy0tcmVjb3JkKHNhc2xfc3RhdGUsIHtzZXJ2aWNlLCBteW5hbWUs IHJlYWxtLAorLQkJICAgICBnZXRfcGFzc3dvcmQsIGNoZWNrX3Bhc3N3b3JkLCBjaGVja19wYXNz d29yZF9kaWdlc3QsCistCQkgICAgIG1lY2hfbW9kLCBtZWNoX3N0YXRlfSkuCisrLXJlY29yZChz YXNsX3N0YXRlLCB7c2VydmljZSwgbXluYW1lLAorKwkJICAgICBtZWNoX21vZCwgbWVjaF9zdGF0 ZSwgY3R4fSkuCisrCisrLWluY2x1ZGUoImVqYWJiZXJkLmhybCIpLgorIAorIC1leHBvcnQoW2Jl aGF2aW91cl9pbmZvLzFdKS4KKyAKKyBiZWhhdmlvdXJfaW5mbyhjYWxsYmFja3MpIC0+CistICAg IFt7bWVjaF9uZXcsIDR9LCB7bWVjaF9zdGVwLCAyfV07CisrICAgIFt7bWVjaF9uZXcsIDF9LCB7 bWVjaF9zdGVwLCAyfV07CisgYmVoYXZpb3VyX2luZm8oX090aGVyKSAtPgorICAgICB1bmRlZmlu ZWQuCisgCitAQCAtNTAsNiArNTEsNyBAQCBzdGFydCgpIC0+CisgICAgIGV0czpuZXcoc2FzbF9t ZWNoYW5pc20sIFtuYW1lZF90YWJsZSwKKyAJCQkgICAgIHB1YmxpYywKKyAJCQkgICAgIHtrZXlw b3MsICNzYXNsX21lY2hhbmlzbS5tZWNoYW5pc219XSksCisrICAgIGN5cnNhc2xfZ3NzYXBpOnN0 YXJ0KFtdKSwKKyAgICAgY3lyc2FzbF9wbGFpbjpzdGFydChbXSksCisgICAgIGN5cnNhc2xfZGln ZXN0OnN0YXJ0KFtdKSwKKyAgICAgY3lyc2FzbF9hbm9ueW1vdXM6c3RhcnQoW10pLAorQEAgLTEx MywyNCArMTE1LDI2IEBAIGxpc3RtZWNoKEhvc3QpIC0+CisgICAgIGZpbHRlcl9hbm9ueW1vdXMo SG9zdCwgTWVjaHMpLgorIAorIHNlcnZlcl9uZXcoU2VydmljZSwgU2VydmVyRlFETiwgVXNlclJl YWxtLCBfU2VjRmxhZ3MsCistCSAgIEdldFBhc3N3b3JkLCBDaGVja1Bhc3N3b3JkLCBDaGVja1Bh c3N3b3JkRGlnZXN0KSAtPgorKwkgICBHZXRQYXNzd29yZCwgQ2hlY2tQYXNzd29yZCwgQ2hlY2tQ YXNzd29yZERpZ2VzdCwgRlFETikgLT4KKysgICAgQ3R4ID0gI3Nhc2xfY3R4eworKyAgICAgIGhv c3QgPSBTZXJ2ZXJGUUROLAorKyAgICAgIHJlYWxtID0gVXNlclJlYWxtLAorKyAgICAgIGdldF9w YXNzd29yZCA9IEdldFBhc3N3b3JkLAorKyAgICAgIGNoZWNrX3Bhc3N3b3JkID0gQ2hlY2tQYXNz d29yZCwKKysgICAgICBjaGVja19wYXNzd29yZF9kaWdlc3Q9IENoZWNrUGFzc3dvcmREaWdlc3Qs CisrICAgICAgZnFkbiA9IEZRRE4KKysgICAgIH0sCisrICAgICAKKyAgICAgI3Nhc2xfc3RhdGV7 c2VydmljZSA9IFNlcnZpY2UsCisgCQlteW5hbWUgPSBTZXJ2ZXJGUUROLAorLQkJcmVhbG0gPSBV c2VyUmVhbG0sCistCQlnZXRfcGFzc3dvcmQgPSBHZXRQYXNzd29yZCwKKy0JCWNoZWNrX3Bhc3N3 b3JkID0gQ2hlY2tQYXNzd29yZCwKKy0JCWNoZWNrX3Bhc3N3b3JkX2RpZ2VzdD0gQ2hlY2tQYXNz d29yZERpZ2VzdH0uCisrCQljdHggPSBDdHh9LgorIAorIHNlcnZlcl9zdGFydChTdGF0ZSwgTWVj aCwgQ2xpZW50SW4pIC0+CisgICAgIGNhc2UgbGlzdHM6bWVtYmVyKE1lY2gsIGxpc3RtZWNoKFN0 YXRlI3Nhc2xfc3RhdGUubXluYW1lKSkgb2YKKyAJdHJ1ZSAtPgorIAkgICAgY2FzZSBldHM6bG9v a3VwKHNhc2xfbWVjaGFuaXNtLCBNZWNoKSBvZgorIAkJWyNzYXNsX21lY2hhbmlzbXttb2R1bGUg PSBNb2R1bGV9XSAtPgorLQkJICAgIHtvaywgTWVjaFN0YXRlfSA9IE1vZHVsZTptZWNoX25ldygK Ky0JCQkJCVN0YXRlI3Nhc2xfc3RhdGUubXluYW1lLAorLQkJCQkJU3RhdGUjc2FzbF9zdGF0ZS5n ZXRfcGFzc3dvcmQsCistCQkJCQlTdGF0ZSNzYXNsX3N0YXRlLmNoZWNrX3Bhc3N3b3JkLAorLQkJ CQkJU3RhdGUjc2FzbF9zdGF0ZS5jaGVja19wYXNzd29yZF9kaWdlc3QpLAorKwkJICAgIHtvaywg TWVjaFN0YXRlfSA9IE1vZHVsZTptZWNoX25ldyhTdGF0ZSNzYXNsX3N0YXRlLmN0eCksCisgCQkg ICAgc2VydmVyX3N0ZXAoU3RhdGUjc2FzbF9zdGF0ZXttZWNoX21vZCA9IE1vZHVsZSwKKyAJCQkJ CQkgbWVjaF9zdGF0ZSA9IE1lY2hTdGF0ZX0sCisgCQkJCUNsaWVudEluKTsKK2RpZmYgLS1naXQg YS9zcmMvY3lyc2FzbF9hbm9ueW1vdXMuZXJsIGIvc3JjL2N5cnNhc2xfYW5vbnltb3VzLmVybAor aW5kZXggMmIzYmEzNi4uZWM3NWY0MCAxMDA2NDQKKy0tLSBhL3NyYy9jeXJzYXNsX2Fub255bW91 cy5lcmwKKysrKyBiL3NyYy9jeXJzYXNsX2Fub255bW91cy5lcmwKK0BAIC0yNywxMiArMjcsMTQg QEAKKyAKKyAtbW9kdWxlKGN5cnNhc2xfYW5vbnltb3VzKS4KKyAKKy0tZXhwb3J0KFtzdGFydC8x LCBzdG9wLzAsIG1lY2hfbmV3LzQsIG1lY2hfc3RlcC8yXSkuCisrLWV4cG9ydChbc3RhcnQvMSwg c3RvcC8wLCBtZWNoX25ldy8xLCBtZWNoX3N0ZXAvMl0pLgorIAorIC1iZWhhdmlvdXIoY3lyc2Fz bCkuCisgCisgLXJlY29yZChzdGF0ZSwge3NlcnZlcn0pLgorIAorKy1pbmNsdWRlKCJlamFiYmVy ZC5ocmwiKS4KKysKKyBzdGFydChfT3B0cykgLT4KKyAgICAgY3lyc2FzbDpyZWdpc3Rlcl9tZWNo YW5pc20oIkFOT05ZTU9VUyIsID9NT0RVTEUsIGZhbHNlKSwKKyAgICAgb2suCitAQCAtNDAsNyAr NDIsNyBAQCBzdGFydChfT3B0cykgLT4KKyBzdG9wKCkgLT4KKyAgICAgb2suCisgCistbWVjaF9u ZXcoSG9zdCwgX0dldFBhc3N3b3JkLCBfQ2hlY2tQYXNzd29yZCwgX0NoZWNrUGFzc3dvcmREaWdl c3QpIC0+CisrbWVjaF9uZXcoI3Nhc2xfY3R4e2hvc3Q9SG9zdH0pIC0+CisgICAgIHtvaywgI3N0 YXRle3NlcnZlciA9IEhvc3R9fS4KKyAKKyBtZWNoX3N0ZXAoU3RhdGUsIF9DbGllbnRJbikgLT4K K2RpZmYgLS1naXQgYS9zcmMvY3lyc2FzbF9kaWdlc3QuZXJsIGIvc3JjL2N5cnNhc2xfZGlnZXN0 LmVybAoraW5kZXggMmE3Y2UyYS4uYTM1NDc3OCAxMDA2NDQKKy0tLSBhL3NyYy9jeXJzYXNsX2Rp Z2VzdC5lcmwKKysrKyBiL3NyYy9jeXJzYXNsX2RpZ2VzdC5lcmwKK0BAIC0yOSw3ICsyOSw3IEBA CisgCisgLWV4cG9ydChbc3RhcnQvMSwKKyAJIHN0b3AvMCwKKy0JIG1lY2hfbmV3LzQsCisrCSBt ZWNoX25ldy8xLAorIAkgbWVjaF9zdGVwLzJdKS4KKyAKKyAtaW5jbHVkZSgiZWphYmJlcmQuaHJs IikuCitAQCAtNDUsNyArNDUsNyBAQCBzdGFydChfT3B0cykgLT4KKyBzdG9wKCkgLT4KKyAgICAg b2suCisgCistbWVjaF9uZXcoSG9zdCwgR2V0UGFzc3dvcmQsIF9DaGVja1Bhc3N3b3JkLCBDaGVj a1Bhc3N3b3JkRGlnZXN0KSAtPgorK21lY2hfbmV3KCNzYXNsX2N0eHtob3N0PUhvc3QsIGdldF9w YXNzd29yZD1HZXRQYXNzd29yZCwgY2hlY2tfcGFzc3dvcmRfZGlnZXN0PUNoZWNrUGFzc3dvcmRE aWdlc3R9KSAtPgorICAgICB7b2ssICNzdGF0ZXtzdGVwID0gMSwKKyAJCW5vbmNlID0gcmFuZG9t czpnZXRfc3RyaW5nKCksCisgCQlob3N0ID0gSG9zdCwKK2RpZmYgLS1naXQgYS9zcmMvY3lyc2Fz bF9nc3NhcGkuZXJsIGIvc3JjL2N5cnNhc2xfZ3NzYXBpLmVybAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAuLmQyOTI1NjUKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9jeXJz YXNsX2dzc2FwaS5lcmwKK0BAIC0wLDAgKzEsMTQzIEBACisrJSUlLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyUl JSBGaWxlICAgIDogY3lyc2FzbF9nc3NhcGkuZXJsCisrJSUlIEF1dGhvciAgOiBNaWthZWwgTWFn bnVzc29uIDxtaWttYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrJSUlIFB1cnBvc2UgOiBHU1NB UEkgU0FTTCBtZWNoYW5pc20KKyslJSUgQ3JlYXRlZCA6IDEgSnVuZSAyMDA3IGJ5IE1pa2FlbCBN YWdudXNzb24gPG1pa21hQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyslJSUgSWQgICAgICA6ICRJ ZDogJAorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyslJSUKKyslJSUgQ29weXJpZ2h0IChDKSAyMDA3ICBN aWthZWwgTWFnbnVzc29uIDxtaWttYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CisrJSUlCisrJSUl IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uCisrJSUlIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uCisrJSUlIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQKKyslJSUgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCisrJSUlIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcworKyUl JSBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0 d2FyZSBpcworKyUlJSBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorKyUlJQorKyUlJSBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorKyUlJSBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyslJSUKKyslJSUg VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsCisrJSUlIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRgorKyUlJSBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorKyUlJSBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVW RU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTCisrJSUlIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TgorKyUlJSBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZS T00sIE9VVCBPRiBPUiBJTgorKyUlJSBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisrJSUlIFNPRlRXQVJFLgorKyUlJQorKwor KyUlJQorKyUlJSBjb25maWd1cmF0aW9uIG9wdGlvbnM6CisrJSUlIHtzYXNsX3JlYWxtLCAiPEtl cmJlcm9zIHJlYWxtPiJ9LgorKyUlJQorKyUlJSBlbnZpcm9ubWVudCB2YXJpYWJsZXM6CisrJSUl IEtSQjVfS1ROQU1FCisrJSUlCisrCisrLW1vZHVsZShjeXJzYXNsX2dzc2FwaSkuCisrLWF1dGhv cignbWlrbWFAdXNlcnMuc291cmNlZm9yZ2UubmV0JykuCisrLXZzbignJFJldmlzaW9uOiAkICcp LgorKworKy1pbmNsdWRlKCJlamFiYmVyZC5ocmwiKS4KKysKKystZXhwb3J0KFtzdGFydC8xLAor Kwkgc3RvcC8wLAorKwkgbWVjaF9uZXcvMSwKKysJIG1lY2hfc3RlcC8yXSkuCisrCisrLWJlaGF2 aW91cihjeXJzYXNsKS4KKysKKystZGVmaW5lKFNFUlZFUiwgY3lyc2FzbF9nc3NhcGkpLgorKy1k ZWZpbmUoTVNHLCA/REVCVUcpLgorKworKy1yZWNvcmQoc3RhdGUsIHtzYXNsLAorKwkJbmVlZHNt b3JlPXRydWUsCisrCQlzdGVwPTAsCisrCQlob3N0LAorKwkJYXV0aGlkLAorKwkJYXV0aHppZCwK KysJCWF1dGhyZWFsbX0pLgorKworK3N0YXJ0KF9PcHRzKSAtPgorKyAgICBDaGlsZFNwZWMgPQor Kwl7P1NFUlZFUiwKKysJIHtlc2FzbCwgc3RhcnRfbGluaywgW3tsb2NhbCwgP1NFUlZFUn1dfSwK KysJIHRyYW5zaWVudCwKKysJIDEwMDAsCisrCSB3b3JrZXIsCisrCSBbZXNhc2xdfSwKKysKKysg ICAge29rLCBfUGlkfSA9IHN1cGVydmlzb3I6c3RhcnRfY2hpbGQoZWphYmJlcmRfc3VwLCBDaGls ZFNwZWMpLAorKworKyAgICBjeXJzYXNsOnJlZ2lzdGVyX21lY2hhbmlzbSgiR1NTQVBJIiwgP01P RFVMRSwgZmFsc2UpLgorKworK3N0b3AoKSAtPgorKyAgICBlc2FzbDpzdG9wKD9TRVJWRVIpLAor KyAgICBzdXBlcnZpc29yOnRlcm1pbmF0ZV9jaGlsZChlamFiYmVyZF9zdXAsID9TRVJWRVIpLAor KyAgICBzdXBlcnZpc29yOmRlbGV0ZV9jaGlsZChlamFiYmVyZF9zdXAsID9TRVJWRVIpLgorKwor K21lY2hfbmV3KCNzYXNsX2N0eHtob3N0PUhvc3QsIGZxZG49RlFETn0pIC0+CisrICAgID9NU0co Im1lY2hfbmV3IH5wIH5wfm4iLCBbSG9zdCwgRlFETl0pLAorKyAgICB7b2ssIFNhc2x9ID0gZXNh c2w6c2VydmVyX3N0YXJ0KD9TRVJWRVIsICJHU1NBUEkiLCAieG1wcCIsIEZRRE4pLAorKyAgICB7 b2ssICNzdGF0ZXtzYXNsPVNhc2wsaG9zdD1Ib3N0fX0uCisrCisrbWVjaF9zdGVwKFN0YXRlLCBD bGllbnRJbikgd2hlbiBpc19saXN0KENsaWVudEluKSAtPgorKyAgICBjYXRjaCBkb19zdGVwKFN0 YXRlLCBDbGllbnRJbikuCisrCisrZG9fc3RlcCgjc3RhdGV7bmVlZHNtb3JlPWZhbHNlfT1TdGF0 ZSwgXykgLT4KKysgICAgY2hlY2tfdXNlcihTdGF0ZSk7CisrZG9fc3RlcCgjc3RhdGV7bmVlZHNt b3JlPXRydWUsc2FzbD1TYXNsLHN0ZXA9U3RlcH09U3RhdGUsIENsaWVudEluKSAtPgorKyAgICA/ TVNHKCJtZWNoX3N0ZXB+biIsIFtdKSwKKysgICAgY2FzZSBlc2FzbDpzdGVwKFNhc2wsIGxpc3Rf dG9fYmluYXJ5KENsaWVudEluKSkgb2YKKysJe29rLCBSc3BBdXRofSAtPgorKwkgICAgP01TRygi b2t+biIsIFtdKSwKKysJICAgIHtvaywgRGlzcGxheV9uYW1lfSA9IGVzYXNsOnByb3BlcnR5X2dl dChTYXNsLCBnc3NhcGlfZGlzcGxheV9uYW1lKSwKKysJICAgIHtvaywgQXV0aHppZH0gPSBlc2Fz bDpwcm9wZXJ0eV9nZXQoU2FzbCwgYXV0aHppZCksCisrCSAgICB7QXV0aGlkLCBbJEAgfCBBdXRo X3JlYWxtXX0gPQorKwkJbGlzdHM6c3BsaXR3aXRoKGZ1bihFKS0+RSA9Lz0gJEAgZW5kLCBEaXNw bGF5X25hbWUpLAorKwkgICAgU3RhdGUxID0gU3RhdGUjc3RhdGV7YXV0aGlkPUF1dGhpZCwKKysJ CQkJIGF1dGh6aWQ9QXV0aHppZCwKKysJCQkJIGF1dGhyZWFsbT1BdXRoX3JlYWxtfSwKKysJICAg IGhhbmRsZV9zdGVwX29rKFN0YXRlMSwgYmluYXJ5X3RvX2xpc3QoUnNwQXV0aCkpOworKwl7bmVl ZHNtb3JlLCBSc3BBdXRofSAtPgorKwkgICAgP01TRygibmVlZHNtb3Jlfm4iLCBbXSksCisrCSAg ICBpZiAoU3RlcCA+IDApIGFuZCAoQ2xpZW50SW4gPTo9IFtdKSBhbmQgKFJzcEF1dGggPTo9IDw8 Pj4pIC0+CisrCQkgICAge2Vycm9yLCAibm90LWF1dGhvcml6ZWQifTsKKysJCXRydWUgLT4KKysJ CSAgICB7Y29udGludWUsIGJpbmFyeV90b19saXN0KFJzcEF1dGgpLAorKwkJICAgICBTdGF0ZSNz dGF0ZXtzdGVwPVN0ZXArMX19CisrCSAgICBlbmQ7CisrCXtlcnJvciwgX30gLT4KKysJICAgIHtl cnJvciwgIm5vdC1hdXRob3JpemVkIn0KKysgICAgZW5kLgorKworK2hhbmRsZV9zdGVwX29rKFN0 YXRlLCBbXSkgLT4KKysgICAgY2hlY2tfdXNlcihTdGF0ZSk7CisraGFuZGxlX3N0ZXBfb2soI3N0 YXRle3N0ZXA9U3RlcH09U3RhdGUsIFJzcEF1dGgpIC0+CisrICAgID9NU0coImNvbnRpbnVlfm4i LCBbXSksCisrICAgIHtjb250aW51ZSwgUnNwQXV0aCwgU3RhdGUjc3RhdGV7bmVlZHNtb3JlPWZh bHNlLHN0ZXA9U3RlcCsxfX0uCisrCisrY2hlY2tfdXNlcigjc3RhdGV7YXV0aGlkPUF1dGhpZCxh dXRoemlkPUF1dGh6aWQsCisrCQkgIGF1dGhyZWFsbT1BdXRoX3JlYWxtLGhvc3Q9SG9zdH0pIC0+ CisrICAgIFJlYWxtID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe3Nhc2xfcmVh bG0sIEhvc3R9KSwKKysKKysgICAgaWYgUmVhbG0gPS89IEF1dGhfcmVhbG0gLT4KKysJICAgID9N U0coImJhZCByZWFsbSB+cCAoZXhwZWN0ZWQgfnApfm4iLFtBdXRoX3JlYWxtLCBSZWFsbV0pLAor KwkgICAgdGhyb3coe2Vycm9yLCAibm90LWF1dGhvcml6ZWQifSk7CisrICAgICAgIHRydWUgLT4K KysJICAgIG9rCisrICAgIGVuZCwKKysKKysgICAgY2FzZSBlamFiYmVyZF9hdXRoOmlzX3VzZXJf ZXhpc3RzKEF1dGhpZCwgSG9zdCkgb2YKKysJZmFsc2UgLT4KKysJICAgID9NU0coImJhZCB1c2Vy IH5wfm4iLFtBdXRoaWRdKSwKKysJICAgIHRocm93KHtlcnJvciwgIm5vdC1hdXRob3JpemVkIn0p OworKwl0cnVlIC0+CisrCSAgICBvaworKyAgICBlbmQsCisrCisrICAgID9NU0coIkdTU0FQSSBh dXRoZW50aWNhdGVkIH5wIH5wfm4iLCBbQXV0aGlkLCBBdXRoemlkXSksCisrICAgIHtvaywgW3t1 c2VybmFtZSwgQXV0aGlkfSwge2F1dGh6aWQsIEF1dGh6aWR9XX0uCitkaWZmIC0tZ2l0IGEvc3Jj L2N5cnNhc2xfcGxhaW4uZXJsIGIvc3JjL2N5cnNhc2xfcGxhaW4uZXJsCitpbmRleCAxMjlmYjhi Li5kOTIwNDYzIDEwMDY0NAorLS0tIGEvc3JjL2N5cnNhc2xfcGxhaW4uZXJsCisrKysgYi9zcmMv Y3lyc2FzbF9wbGFpbi5lcmwKK0BAIC0yNywxMCArMjcsMTEgQEAKKyAtbW9kdWxlKGN5cnNhc2xf cGxhaW4pLgorIC1hdXRob3IoJ2FsZXhleUBwcm9jZXNzLW9uZS5uZXQnKS4KKyAKKy0tZXhwb3J0 KFtzdGFydC8xLCBzdG9wLzAsIG1lY2hfbmV3LzQsIG1lY2hfc3RlcC8yLCBwYXJzZS8xXSkuCisr LWV4cG9ydChbc3RhcnQvMSwgc3RvcC8wLCBtZWNoX25ldy8xLCBtZWNoX3N0ZXAvMiwgcGFyc2Uv MV0pLgorIAorIC1iZWhhdmlvdXIoY3lyc2FzbCkuCisgCisrLWluY2x1ZGUoImVqYWJiZXJkLmhy bCIpLgorIC1yZWNvcmQoc3RhdGUsIHtjaGVja19wYXNzd29yZH0pLgorIAorIHN0YXJ0KF9PcHRz KSAtPgorQEAgLTQwLDcgKzQxLDcgQEAgc3RhcnQoX09wdHMpIC0+Cisgc3RvcCgpIC0+CisgICAg IG9rLgorIAorLW1lY2hfbmV3KF9Ib3N0LCBfR2V0UGFzc3dvcmQsIENoZWNrUGFzc3dvcmQsIF9D aGVja1Bhc3N3b3JkRGlnZXN0KSAtPgorK21lY2hfbmV3KCNzYXNsX2N0eHtjaGVja19wYXNzd29y ZD1DaGVja1Bhc3N3b3JkfSkgLT4KKyAgICAge29rLCAjc3RhdGV7Y2hlY2tfcGFzc3dvcmQgPSBD aGVja1Bhc3N3b3JkfX0uCisgCisgbWVjaF9zdGVwKFN0YXRlLCBDbGllbnRJbikgLT4KK2RpZmYg LS1naXQgYS9zcmMvZWphYmJlcmQuaHJsIGIvc3JjL2VqYWJiZXJkLmhybAoraW5kZXggZTFmMGNm ZC4uMzlhNDFkNSAxMDA2NDQKKy0tLSBhL3NyYy9lamFiYmVyZC5ocmwKKysrKyBiL3NyYy9lamFi YmVyZC5ocmwKK0BAIC01OSwzICs1OSwxMCBAQAorIC1kZWZpbmUoQ1JJVElDQUxfTVNHKEZvcm1h dCwgQXJncyksCisgICAgIGVqYWJiZXJkX2xvZ2dlcjpjcml0aWNhbF9tc2coP01PRFVMRSw/TElO RSxGb3JtYXQsIEFyZ3MpKS4KKyAKKystcmVjb3JkKHNhc2xfY3R4LCB7CisrCSAgaG9zdCwKKysJ ICByZWFsbSwKKysJICBnZXRfcGFzc3dvcmQsCisrCSAgY2hlY2tfcGFzc3dvcmQsCisrCSAgY2hl Y2tfcGFzc3dvcmRfZGlnZXN0LAorKwkgIGZxZG59KS4KK2RpZmYgLS1naXQgYS9zcmMvZWphYmJl cmRfYzJzLmVybCBiL3NyYy9lamFiYmVyZF9jMnMuZXJsCitpbmRleCA2ZGY2NzY2Li44ZWRjMWEw IDEwMDY0NAorLS0tIGEvc3JjL2VqYWJiZXJkX2Mycy5lcmwKKysrKyBiL3NyYy9lamFiYmVyZF9j MnMuZXJsCitAQCAtNjksNiArNjksNyBAQAorIC1yZWNvcmQoc3RhdGUsIHtzb2NrZXQsCisgCQlz b2NrbW9kLAorIAkJc29ja2V0X21vbml0b3IsCisrCQlmcWRuLAorIAkJeG1sX3NvY2tldCwKKyAJ CXN0cmVhbWlkLAorIAkJc2FzbF9zdGF0ZSwKK0BAIC0yMDYsOSArMjA3LDExIEBAIGluaXQoW3tT b2NrTW9kLCBTb2NrZXR9LCBPcHRzXSkgLT4KKyAJCQlTb2NrZXQKKyAJCWVuZCwKKyAJICAgIFNv Y2tldE1vbml0b3IgPSBTb2NrTW9kOm1vbml0b3IoU29ja2V0MSksCisrCSAgICB7b2ssIEZRRE59 ID0gZWphYmJlcmRfbmV0OmdldGhvc3RuYW1lKFNvY2tldCksCisgCSAgICB7b2ssIHdhaXRfZm9y X3N0cmVhbSwgI3N0YXRle3NvY2tldCAgICAgICAgID0gU29ja2V0MSwKKyAJCQkJCSBzb2NrbW9k ICAgICAgICA9IFNvY2tNb2QsCisgCQkJCQkgc29ja2V0X21vbml0b3IgPSBTb2NrZXRNb25pdG9y LAorKwkJCQkJIGZxZG4gICAgICAgICAgID0gRlFETiwKKyAJCQkJCSB4bWxfc29ja2V0ICAgICA9 IFhNTFNvY2tldCwKKyAJCQkJCSB6bGliICAgICAgICAgICA9IFpsaWIsCisgCQkJCQkgdGxzICAg ICAgICAgICAgPSBUTFMsCitAQCAtMjUyLDYgKzI1NSw4IEBAIHdhaXRfZm9yX3N0cmVhbSh7eG1s c3RyZWFtc3RhcnQsIF9OYW1lLCBBdHRyc30sIFN0YXRlRGF0YSkgLT4KKyAJCQkgICAgc2VuZF9o ZWFkZXIoU3RhdGVEYXRhLCBTZXJ2ZXIsICIxLjAiLCBEZWZhdWx0TGFuZyksCisgCQkJICAgIGNh c2UgU3RhdGVEYXRhI3N0YXRlLmF1dGhlbnRpY2F0ZWQgb2YKKyAJCQkJZmFsc2UgLT4KKysJCQkJ ICAgIEZRRE4gPSBTdGF0ZURhdGEjc3RhdGUuZnFkbiwKKysJCQkJICAgID9JTkZPX01TRygiRlFE TjogfnB+biIsIFtGUUROXSksCisgCQkJCSAgICBTQVNMU3RhdGUgPQorIAkJCQkJY3lyc2FzbDpz ZXJ2ZXJfbmV3KAorIAkJCQkJICAiamFiYmVyIiwgU2VydmVyLCAiIiwgW10sCitAQCAtMjY2LDcg KzI3MSw4IEBAIHdhaXRfZm9yX3N0cmVhbSh7eG1sc3RyZWFtc3RhcnQsIF9OYW1lLCBBdHRyc30s IFN0YXRlRGF0YSkgLT4KKyAJCQkJCSAgZnVuKFUsIFAsIEQsIERHKSAtPgorIAkJCQkJCSAgZWph YmJlcmRfYXV0aDpjaGVja19wYXNzd29yZF93aXRoX2F1dGhtb2R1bGUoCisgCQkJCQkJICAgIFUs IFNlcnZlciwgUCwgRCwgREcpCistCQkJCQkgIGVuZCksCisrCQkJCQkgIGVuZCwKKysJCQkJCSAg RlFETiksCisgCQkJCSAgICBNZWNocyA9IGxpc3RzOm1hcCgKKyAJCQkJCSAgICAgIGZ1bihTKSAt PgorIAkJCQkJCSAgICAgIHt4bWxlbGVtZW50LCAibWVjaGFuaXNtIiwgW10sCitkaWZmIC0tZ2l0 IGEvc3JjL2VqYWJiZXJkX25ldC5lcmwgYi9zcmMvZWphYmJlcmRfbmV0LmVybAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU5YWI3MGEKKy0tLSAvZGV2L251bGwKKysrKyBi L3NyYy9lamFiYmVyZF9uZXQuZXJsCitAQCAtMCwwICsxLDM5IEBACisrJSUlLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyUlJSBGaWxlICAgIDogZWphYmJlcmRfbmV0LmVybAorKyUlJSBBdXRob3IgIDogTWlrYWVs IE1hZ251c3NvbiA8bWlrbWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgorKyUlJSBQdXJwb3NlIDog U2VydmUgQzJTIGNvbm5lY3Rpb24KKyslJSUgQ3JlYXRlZCA6IDYgSnVuZSAyMDA3IGJ5IE1pa2Fl bCBNYWdudXNzb24gPG1pa21hQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KKyslJSUgSWQgICAgICA6 ICRJZDogJAorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKystbW9kdWxlKGVqYWJiZXJkX25ldCkuCisr LWF1dGhvcignbWlrbWFAdXNlcnMuc291cmNlZm9yZ2UubmV0JykuCisrJSUgLXVwZGF0ZV9pbmZv KHt1cGRhdGUsIDB9KS4KKysKKystZXhwb3J0KFtnZXRob3N0bmFtZS8xXSkuCisrCisrLWluY2x1 ZGUoImVqYWJiZXJkLmhybCIpLgorKy1pbmNsdWRlX2xpYigia2VybmVsL2luY2x1ZGUvaW5ldC5o cmwiKS4KKysKKyslJSBDb3BpZWQgZnJvbSBlamFiYmVyZF9zb2NrZXQuZXJsIG9mIGVqYWJiZXJk IDIuMC4zCisrLXJlY29yZChzb2NrZXRfc3RhdGUsIHtzb2NrbW9kLCBzb2NrZXQsIHJlY2VpdmVy fSkuCisrCisrJSUKKyslJSBnZXRob3N0bmFtZShTb2NrZXQpCisrJSUKKytnZXRob3N0bmFtZShT b2NrZXQpIC0+CisrICAgID9JTkZPX01TRygiZ2V0aG9zdG5hbWUgfnB+biIsIFtTb2NrZXRdKSwK KyslJSAgICAge29rLCAic2tpbm5lci5oZW0uemEub3JnIn0uCisrCisrICAgIGNhc2UgZWphYmJl cmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe3Nhc2xfZnFkbiwgP01ZTkFNRX0pIG9mCisrICAg ICAgdW5kZWZpbmVkIC0+CisrICAgICAgICB7b2ssIHtBZGRyLCBfUG9ydH19ID0gaW5ldDpzb2Nr bmFtZShTb2NrZXQjc29ja2V0X3N0YXRlLnNvY2tldCksCisrICAgICAgICBjYXNlIGluZXQ6Z2V0 aG9zdGJ5YWRkcihBZGRyKSBvZgorKyAgICAgICAgICAgIHtvaywgSG9zdEVudH0gd2hlbiBpc19y ZWNvcmQoSG9zdEVudCwgaG9zdGVudCkgLT4KKysgICAgICAgICAgICAgICAge29rLCBIb3N0RW50 I2hvc3RlbnQuaF9uYW1lfTsKKysgICAgICAgICAgICB7ZXJyb3IsIFdoYXR9IC0+CisrICAgICAg ICAgICAgICAgID9FUlJPUl9NU0coIkVycm9yIGluIGdldGhvc3RuYW1lOn5uU29ja2V0OiB+cH5u RXJyb3I6IH5wIiwgW1doYXRdKSwKKysgICAgICAgICAgICAgICAgZXJyb3IKKysgICAgICAgIGVu ZDsKKysgICAgICBGIC0+IHtvaywgRn0KKysgICAgZW5kLgorLS0gCisxLjYuNi4xCisKCmRpZmYg LS1naXQgYS9lamFiYmVyZC0wMDA3LUZpeGVkLXR5cG8ucGF0Y2ggYi9lamFiYmVyZC0wMDA3LUZp eGVkLXR5cG8ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE5MjEy ZQotLS0gL2Rldi9udWxsCisrKyBiL2VqYWJiZXJkLTAwMDctRml4ZWQtdHlwby5wYXRjaApAQCAt MCwwICsxLDI2IEBACitGcm9tIGQ0ZTIxNWJhZjdlZGZiMWZlNTM0ZDkxZmM4M2VhZWI5NDI2NTg5 YTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5r b3ZAZ21haWwuY29tPgorRGF0ZTogRnJpLCA1IE1hciAyMDEwIDE3OjQ4OjUxICswMzAwCitTdWJq ZWN0OiBbUEFUQ0ggNy85XSBGaXhlZCB0eXBvCisKK1NpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVu a292IDxsZW1lbmtvdkBnbWFpbC5jb20+CistLS0KKyBzcmMvZWphYmJlcmRfbmV0LmVybCB8ICAg IDIgKy0KKyAxIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL3NyYy9lamFiYmVyZF9uZXQuZXJsIGIvc3JjL2VqYWJiZXJkX25ldC5l cmwKK2luZGV4IGU5YWI3MGEuLmQ4ODdjMjMgMTAwNjQ0CistLS0gYS9zcmMvZWphYmJlcmRfbmV0 LmVybAorKysrIGIvc3JjL2VqYWJiZXJkX25ldC5lcmwKK0BAIC0zMiw3ICszMiw3IEBAIGdldGhv c3RuYW1lKFNvY2tldCkgLT4KKyAgICAgICAgICAgICB7b2ssIEhvc3RFbnR9IHdoZW4gaXNfcmVj b3JkKEhvc3RFbnQsIGhvc3RlbnQpIC0+CisgICAgICAgICAgICAgICAgIHtvaywgSG9zdEVudCNo b3N0ZW50LmhfbmFtZX07CisgICAgICAgICAgICAge2Vycm9yLCBXaGF0fSAtPgorLSAgICAgICAg ICAgICAgICA/RVJST1JfTVNHKCJFcnJvciBpbiBnZXRob3N0bmFtZTp+blNvY2tldDogfnB+bkVy cm9yOiB+cCIsIFtXaGF0XSksCisrICAgICAgICAgICAgICAgID9FUlJPUl9NU0coIkVycm9yIGlu IGdldGhvc3RuYW1lOn5uU29ja2V0OiB+cH5uRXJyb3I6IH5wIGF0IEFkZHIgfnAiLCBbU29ja2V0 LCBXaGF0LCBBZGRyXSksCisgICAgICAgICAgICAgICAgIGVycm9yCisgICAgICAgICBlbmQ7Cisg ICAgICAgRiAtPiB7b2ssIEZ9CistLSAKKzEuNi42LjEKKwoKZGlmZiAtLWdpdCBhL2VqYWJiZXJk LTAwMDgtUXVpY2stZml4LWZvci1lcnJvci1ueGRvbWFpbi5wYXRjaCBiL2VqYWJiZXJkLTAwMDgt UXVpY2stZml4LWZvci1lcnJvci1ueGRvbWFpbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4zZWE3ODM1Ci0tLSAvZGV2L251bGwKKysrIGIvZWphYmJlcmQtMDAwOC1R dWljay1maXgtZm9yLWVycm9yLW54ZG9tYWluLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKK0Zyb20g MmJiZmZkYTNiMDdjMDdiNmFiZjVkMjhlMGI2YWY0MDk0YjU2ZDk4MSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRl OiBGcmksIDUgTWFyIDIwMTAgMjE6MTM6MzUgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCA4LzldIFF1 aWNrIGZpeCBmb3Ige2Vycm9yLG54ZG9tYWlufQorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1l bmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorLS0tCisgc3JjL2VqYWJiZXJkX25ldC5lcmwgfCAg ICAzICsrKworIDEgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJkX25ldC5lcmwgYi9zcmMvZWphYmJlcmRfbmV0 LmVybAoraW5kZXggZDg4N2MyMy4uYjY5NDNlMSAxMDA2NDQKKy0tLSBhL3NyYy9lamFiYmVyZF9u ZXQuZXJsCisrKysgYi9zcmMvZWphYmJlcmRfbmV0LmVybAorQEAgLTMxLDYgKzMxLDkgQEAgZ2V0 aG9zdG5hbWUoU29ja2V0KSAtPgorICAgICAgICAgY2FzZSBpbmV0OmdldGhvc3RieWFkZHIoQWRk cikgb2YKKyAgICAgICAgICAgICB7b2ssIEhvc3RFbnR9IHdoZW4gaXNfcmVjb3JkKEhvc3RFbnQs IGhvc3RlbnQpIC0+CisgICAgICAgICAgICAgICAgIHtvaywgSG9zdEVudCNob3N0ZW50LmhfbmFt ZX07CisrCSAgICB7ZXJyb3IsIG54ZG9tYWlufSAtPgorKwkJICAgICUgUXVpY2sgZml4CisrCQkg ICAge29rLCBpbmV0X3BhcnNlOm50b2EoQWRkcil9OworICAgICAgICAgICAgIHtlcnJvciwgV2hh dH0gLT4KKyAgICAgICAgICAgICAgICAgP0VSUk9SX01TRygiRXJyb3IgaW4gZ2V0aG9zdG5hbWU6 fm5Tb2NrZXQ6IH5wfm5FcnJvcjogfnAgYXQgQWRkciB+cCIsIFtTb2NrZXQsIFdoYXQsIEFkZHJd KSwKKyAgICAgICAgICAgICAgICAgZXJyb3IKKy0tIAorMS42LjYuMQorCgpkaWZmIC0tZ2l0IGEv ZWphYmJlcmQtMDAwOS1SZXBsYWNlLU1TRy13aXRoLURFQlVHLnBhdGNoIGIvZWphYmJlcmQtMDAw OS1SZXBsYWNlLU1TRy13aXRoLURFQlVHLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmRkNmY5NjMKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC0wMDA5LVJlcGxh Y2UtTVNHLXdpdGgtREVCVUcucGF0Y2gKQEAgLTAsMCArMSw4NyBAQAorRnJvbSA5NGQ3ZTEyMGQz YWQ2MDcyNzc0Mjg2ZGYyZDRiMjZlYTJmY2QzNGY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogQmFkbG9wIDxiYWRsb3BAcHJvY2Vzcy1vbmUubmV0PgorRGF0ZTogTW9uLCA4IE1hciAy MDEwIDIyOjM1OjEyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggOS85XSBSZXBsYWNlIE1TRyB3aXRo IERFQlVHCisKKy0tLQorIHNyYy9jeXJzYXNsX2dzc2FwaS5lcmwgfCAgIDE3ICsrKysrKysrLS0t LS0tLS0tCisgMSBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9zcmMvY3lyc2FzbF9nc3NhcGkuZXJsIGIvc3JjL2N5cnNhc2xfZ3Nz YXBpLmVybAoraW5kZXggZDI5MjU2NS4uMjRhMzc5NiAxMDA2NDQKKy0tLSBhL3NyYy9jeXJzYXNs X2dzc2FwaS5lcmwKKysrKyBiL3NyYy9jeXJzYXNsX2dzc2FwaS5lcmwKK0BAIC01MSw3ICs1MSw2 IEBACisgLWJlaGF2aW91cihjeXJzYXNsKS4KKyAKKyAtZGVmaW5lKFNFUlZFUiwgY3lyc2FzbF9n c3NhcGkpLgorLS1kZWZpbmUoTVNHLCA/REVCVUcpLgorIAorIC1yZWNvcmQoc3RhdGUsIHtzYXNs LAorIAkJbmVlZHNtb3JlPXRydWUsCitAQCAtODAsNyArNzksNyBAQCBzdG9wKCkgLT4KKyAgICAg c3VwZXJ2aXNvcjpkZWxldGVfY2hpbGQoZWphYmJlcmRfc3VwLCA/U0VSVkVSKS4KKyAKKyBtZWNo X25ldygjc2FzbF9jdHh7aG9zdD1Ib3N0LCBmcWRuPUZRRE59KSAtPgorLSAgICA/TVNHKCJtZWNo X25ldyB+cCB+cH5uIiwgW0hvc3QsIEZRRE5dKSwKKysgICAgP0RFQlVHKCJtZWNoX25ldyB+cCB+ cH5uIiwgW0hvc3QsIEZRRE5dKSwKKyAgICAge29rLCBTYXNsfSA9IGVzYXNsOnNlcnZlcl9zdGFy dCg/U0VSVkVSLCAiR1NTQVBJIiwgInhtcHAiLCBGUUROKSwKKyAgICAge29rLCAjc3RhdGV7c2Fz bD1TYXNsLGhvc3Q9SG9zdH19LgorIAorQEAgLTkwLDEwICs4OSwxMCBAQCBtZWNoX3N0ZXAoU3Rh dGUsIENsaWVudEluKSB3aGVuIGlzX2xpc3QoQ2xpZW50SW4pIC0+CisgZG9fc3RlcCgjc3RhdGV7 bmVlZHNtb3JlPWZhbHNlfT1TdGF0ZSwgXykgLT4KKyAgICAgY2hlY2tfdXNlcihTdGF0ZSk7Cisg ZG9fc3RlcCgjc3RhdGV7bmVlZHNtb3JlPXRydWUsc2FzbD1TYXNsLHN0ZXA9U3RlcH09U3RhdGUs IENsaWVudEluKSAtPgorLSAgICA/TVNHKCJtZWNoX3N0ZXB+biIsIFtdKSwKKysgICAgP0RFQlVH KCJtZWNoX3N0ZXB+biIsIFtdKSwKKyAgICAgY2FzZSBlc2FzbDpzdGVwKFNhc2wsIGxpc3RfdG9f YmluYXJ5KENsaWVudEluKSkgb2YKKyAJe29rLCBSc3BBdXRofSAtPgorLQkgICAgP01TRygib2t+ biIsIFtdKSwKKysJICAgID9ERUJVRygib2t+biIsIFtdKSwKKyAJICAgIHtvaywgRGlzcGxheV9u YW1lfSA9IGVzYXNsOnByb3BlcnR5X2dldChTYXNsLCBnc3NhcGlfZGlzcGxheV9uYW1lKSwKKyAJ ICAgIHtvaywgQXV0aHppZH0gPSBlc2FzbDpwcm9wZXJ0eV9nZXQoU2FzbCwgYXV0aHppZCksCisg CSAgICB7QXV0aGlkLCBbJEAgfCBBdXRoX3JlYWxtXX0gPQorQEAgLTEwMyw3ICsxMDIsNyBAQCBk b19zdGVwKCNzdGF0ZXtuZWVkc21vcmU9dHJ1ZSxzYXNsPVNhc2wsc3RlcD1TdGVwfT1TdGF0ZSwg Q2xpZW50SW4pIC0+CisgCQkJCSBhdXRocmVhbG09QXV0aF9yZWFsbX0sCisgCSAgICBoYW5kbGVf c3RlcF9vayhTdGF0ZTEsIGJpbmFyeV90b19saXN0KFJzcEF1dGgpKTsKKyAJe25lZWRzbW9yZSwg UnNwQXV0aH0gLT4KKy0JICAgID9NU0coIm5lZWRzbW9yZX5uIiwgW10pLAorKwkgICAgP0RFQlVH KCJuZWVkc21vcmV+biIsIFtdKSwKKyAJICAgIGlmIChTdGVwID4gMCkgYW5kIChDbGllbnRJbiA9 Oj0gW10pIGFuZCAoUnNwQXV0aCA9Oj0gPDw+PikgLT4KKyAJCSAgICB7ZXJyb3IsICJub3QtYXV0 aG9yaXplZCJ9OworIAkJdHJ1ZSAtPgorQEAgLTExNyw3ICsxMTYsNyBAQCBkb19zdGVwKCNzdGF0 ZXtuZWVkc21vcmU9dHJ1ZSxzYXNsPVNhc2wsc3RlcD1TdGVwfT1TdGF0ZSwgQ2xpZW50SW4pIC0+ CisgaGFuZGxlX3N0ZXBfb2soU3RhdGUsIFtdKSAtPgorICAgICBjaGVja191c2VyKFN0YXRlKTsK KyBoYW5kbGVfc3RlcF9vaygjc3RhdGV7c3RlcD1TdGVwfT1TdGF0ZSwgUnNwQXV0aCkgLT4KKy0g ICAgP01TRygiY29udGludWV+biIsIFtdKSwKKysgICAgP0RFQlVHKCJjb250aW51ZX5uIiwgW10p LAorICAgICB7Y29udGludWUsIFJzcEF1dGgsIFN0YXRlI3N0YXRle25lZWRzbW9yZT1mYWxzZSxz dGVwPVN0ZXArMX19LgorIAorIGNoZWNrX3VzZXIoI3N0YXRle2F1dGhpZD1BdXRoaWQsYXV0aHpp ZD1BdXRoemlkLAorQEAgLTEyNSw3ICsxMjQsNyBAQCBjaGVja191c2VyKCNzdGF0ZXthdXRoaWQ9 QXV0aGlkLGF1dGh6aWQ9QXV0aHppZCwKKyAgICAgUmVhbG0gPSBlamFiYmVyZF9jb25maWc6Z2V0 X2xvY2FsX29wdGlvbih7c2FzbF9yZWFsbSwgSG9zdH0pLAorIAorICAgICBpZiBSZWFsbSA9Lz0g QXV0aF9yZWFsbSAtPgorLQkgICAgP01TRygiYmFkIHJlYWxtIH5wIChleHBlY3RlZCB+cCl+biIs W0F1dGhfcmVhbG0sIFJlYWxtXSksCisrCSAgICA/REVCVUcoImJhZCByZWFsbSB+cCAoZXhwZWN0 ZWQgfnApfm4iLFtBdXRoX3JlYWxtLCBSZWFsbV0pLAorIAkgICAgdGhyb3coe2Vycm9yLCAibm90 LWF1dGhvcml6ZWQifSk7CisgICAgICAgIHRydWUgLT4KKyAJICAgIG9rCitAQCAtMTMzLDExICsx MzIsMTEgQEAgY2hlY2tfdXNlcigjc3RhdGV7YXV0aGlkPUF1dGhpZCxhdXRoemlkPUF1dGh6aWQs CisgCisgICAgIGNhc2UgZWphYmJlcmRfYXV0aDppc191c2VyX2V4aXN0cyhBdXRoaWQsIEhvc3Qp IG9mCisgCWZhbHNlIC0+CistCSAgICA/TVNHKCJiYWQgdXNlciB+cH5uIixbQXV0aGlkXSksCisr CSAgICA/REVCVUcoImJhZCB1c2VyIH5wfm4iLFtBdXRoaWRdKSwKKyAJICAgIHRocm93KHtlcnJv ciwgIm5vdC1hdXRob3JpemVkIn0pOworIAl0cnVlIC0+CisgCSAgICBvaworICAgICBlbmQsCisg CistICAgID9NU0coIkdTU0FQSSBhdXRoZW50aWNhdGVkIH5wIH5wfm4iLCBbQXV0aGlkLCBBdXRo emlkXSksCisrICAgID9ERUJVRygiR1NTQVBJIGF1dGhlbnRpY2F0ZWQgfnAgfnB+biIsIFtBdXRo aWQsIEF1dGh6aWRdKSwKKyAgICAge29rLCBbe3VzZXJuYW1lLCBBdXRoaWR9LCB7YXV0aHppZCwg QXV0aHppZH1dfS4KKy0tIAorMS42LjYuMQorCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtYzJzX2Rv c19maXguZGlmZiBiL2VqYWJiZXJkLWMyc19kb3NfZml4LmRpZmYKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDJmZTVmMjYuLjAwMDAwMDAKLS0tIGEvZWphYmJlcmQtYzJzX2Rvc19maXgu ZGlmZgorKysgL2Rldi9udWxsCkBAIC0xLDgzICswLDAgQEAKLUluZGV4OiBicmFuY2hlcy9lamFi YmVyZC0yLjEueC9zcmMvZWphYmJlcmRfYzJzLmVybAotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotZGlmZiAtdSAtTiAt cjI5MTEgLXIyOTM2Ci0tLS0gYnJhbmNoZXMvZWphYmJlcmQtMi4xLngvc3JjL2VqYWJiZXJkX2My cy5lcmwJKC4uLi9lamFiYmVyZF9jMnMuZXJsKQkocmV2aXNpb24gMjkxMSkKLSsrKyBicmFuY2hl cy9lamFiYmVyZC0yLjEueC9zcmMvZWphYmJlcmRfYzJzLmVybAkoLi4uL2VqYWJiZXJkX2Mycy5l cmwpCShyZXZpc2lvbiAyOTM2KQotQEAgLTI4LDggKzI4LDEwIEBACi0gLWF1dGhvcignYWxleGV5 QHByb2Nlc3Mtb25lLm5ldCcpLgotIC11cGRhdGVfaW5mbyh7dXBkYXRlLCAwfSkuCi0gCi0tLWJl aGF2aW91cihnZW5fZnNtKS4KLSstZGVmaW5lKEdFTl9GU00sIHAxX2ZzbSkuCi0gCi0rLWJlaGF2 aW91cig/R0VOX0ZTTSkuCi0rCi0gJSUgRXh0ZXJuYWwgZXhwb3J0cwotIC1leHBvcnQoW3N0YXJ0 LzIsCi0gCSBzdG9wLzEsCi1AQCAtMTA0LDggKzEwNiw4IEBACi0gCi0gJSUgTW9kdWxlIHN0YXJ0 IHdpdGggb3Igd2l0aG91dCBzdXBlcnZpc29yOgotIC1pZmRlZihOT19UUkFOU0lFTlRfU1VQRVJW SVNPUlMpLgotLS1kZWZpbmUoU1VQRVJWSVNPUl9TVEFSVCwgZ2VuX2ZzbTpzdGFydChlamFiYmVy ZF9jMnMsIFtTb2NrRGF0YSwgT3B0c10sCi0tCQkJCQk/RlNNT1BUUykpLgotKy1kZWZpbmUoU1VQ RVJWSVNPUl9TVEFSVCwgP0dFTl9GU006c3RhcnQoZWphYmJlcmRfYzJzLCBbU29ja0RhdGEsIE9w dHNdLAotKwkJCQkJIGZzbV9saW1pdF9vcHRzKCkgKysgP0ZTTU9QVFMpKS4KLSAtZWxzZS4KLSAt ZGVmaW5lKFNVUEVSVklTT1JfU1RBUlQsIHN1cGVydmlzb3I6c3RhcnRfY2hpbGQoZWphYmJlcmRf YzJzX3N1cCwKLSAJCQkJCQkgW1NvY2tEYXRhLCBPcHRzXSkpLgotQEAgLTE0MCwxNyArMTQyLDE4 IEBACi0gICAgID9TVVBFUlZJU09SX1NUQVJULgotIAotIHN0YXJ0X2xpbmsoU29ja0RhdGEsIE9w dHMpIC0+Ci0tICAgIGdlbl9mc206c3RhcnRfbGluayhlamFiYmVyZF9jMnMsIFtTb2NrRGF0YSwg T3B0c10sID9GU01PUFRTKS4KLSsgICAgP0dFTl9GU006c3RhcnRfbGluayhlamFiYmVyZF9jMnMs IFtTb2NrRGF0YSwgT3B0c10sCi0rCQkJZnNtX2xpbWl0X29wdHMoKSArKyA/RlNNT1BUUykuCi0g Ci0gc29ja2V0X3R5cGUoKSAtPgotICAgICB4bWxfc3RyZWFtLgotIAotICUlIFJldHVybiBVc2Vy bmFtZSwgUmVzb3VyY2UgYW5kIHByZXNlbmNlIGluZm9ybWF0aW9uCi0gZ2V0X3ByZXNlbmNlKEZz bVJlZikgLT4KLS0gICAgZ2VuX2ZzbTpzeW5jX3NlbmRfYWxsX3N0YXRlX2V2ZW50KEZzbVJlZiwg e2dldF9wcmVzZW5jZX0sIDEwMDApLgotKyAgICA/R0VOX0ZTTTpzeW5jX3NlbmRfYWxsX3N0YXRl X2V2ZW50KEZzbVJlZiwge2dldF9wcmVzZW5jZX0sIDEwMDApLgotIAotIHN0b3AoRnNtUmVmKSAt PgotLSAgICBnZW5fZnNtOnNlbmRfZXZlbnQoRnNtUmVmLCBjbG9zZWQpLgotKyAgICA/R0VOX0ZT TTpzZW5kX2V2ZW50KEZzbVJlZiwgY2xvc2VkKS4KLSAKLSAlJSUtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gJSUl IENhbGxiYWNrIGZ1bmN0aW9ucyBmcm9tIGdlbl9mc20KLUBAIC0yMjEsNyArMjI0LDcgQEAKLSAK LSAlJSBSZXR1cm4gbGlzdCBvZiBhbGwgYXZhaWxhYmxlIHJlc291cmNlcyBvZiBjb250YWN0cywK LSBnZXRfc3Vic2NyaWJlZChGc21SZWYpIC0+Ci0tICAgIGdlbl9mc206c3luY19zZW5kX2FsbF9z dGF0ZV9ldmVudChGc21SZWYsIGdldF9zdWJzY3JpYmVkLCAxMDAwKS4KLSsgICAgP0dFTl9GU006 c3luY19zZW5kX2FsbF9zdGF0ZV9ldmVudChGc21SZWYsIGdldF9zdWJzY3JpYmVkLCAxMDAwKS4K LSAKLSAlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAlJSBGdW5jOiBTdGF0ZU5hbWUvMgotQEAgLTkwMyw3ICs5 MDYsNyBAQAotIHNlc3Npb25fZXN0YWJsaXNoZWQodGltZW91dCwgU3RhdGVEYXRhKSAtPgotICAg ICAlJSBUT0RPOiBPcHRpb25zIG11c3QgYmUgc3RvcmVkIGluIHN0YXRlOgotICAgICBPcHRpb25z ID0gW10sCi0tICAgIHByb2NfbGliOmhpYmVybmF0ZShnZW5fZnNtLCBlbnRlcl9sb29wLAotKyAg ICBwcm9jX2xpYjpoaWJlcm5hdGUoP0dFTl9GU00sIGVudGVyX2xvb3AsCi0gCQkgICAgICAgWz9N T0RVTEUsIE9wdGlvbnMsIHNlc3Npb25fZXN0YWJsaXNoZWQsIFN0YXRlRGF0YV0pLAotICAgICBm c21fbmV4dF9zdGF0ZShzZXNzaW9uX2VzdGFibGlzaGVkLCBTdGF0ZURhdGEpOwotIAotQEAgLTIx NTMsNiArMjE1NiwxNCBAQAotIAkgICAgZW5kCi0gICAgIGVuZC4KLSAKLStmc21fbGltaXRfb3B0 cygpIC0+Ci0rICAgIGNhc2UgZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24obWF4X2Zz bV9xdWV1ZSkgb2YKLSsJTiB3aGVuIGlzX2ludGVnZXIoTikgLT4KLSsJICAgIFt7bWF4X3F1ZXVl LCBOfV07Ci0rCV8gLT4KLSsJICAgIFtdCi0rICAgIGVuZC4KLSsKLSAlJSUtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gJSUlIEpJRCBTZXQgbWVtb3J5IGZvb3RwcmludCByZWR1Y3Rpb24gY29kZQotICUlJS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCmRpZmYgLS1naXQgYS9lamFiYmVyZC1lamFiYmVyZF9jZmdfcGFtX25hbWUuZGlm ZiBiL2VqYWJiZXJkLWVqYWJiZXJkX2NmZ19wYW1fbmFtZS5kaWZmCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAzYjllZDdkLi4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLWVqYWJiZXJkX2Nm Z19wYW1fbmFtZS5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIHNyYy9l amFiYmVyZC5jZmcuZXhhbXBsZQkyMDA5LTExLTIwIDE1OjA3OjU3LjMxNzcwNDk1NSArMDMwMAot KysrIHNyYy9lamFiYmVyZC5jZmcuZXhhbXBsZQkyMDA5LTExLTIwIDE1OjA4OjExLjUyMjcwNDk2 OCArMDMwMAotQEAgLTIzNSw3ICsyMzUsNyBAQAotICUlIEF1dGhlbnRpY2F0aW9uIHVzaW5nIFBB TQotICUlCi0gJSV7YXV0aF9tZXRob2QsIHBhbX0uCi0tJSV7cGFtX3NlcnZpY2UsICJwYW1zZXJ2 aWNlbmFtZSJ9LgotKyUle3BhbV9zZXJ2aWNlLCAiZWphYmJlcmQifS4KLSAKLSAlJQotICUlIEF1 dGhlbnRpY2F0aW9uIHVzaW5nIExEQVAKCmRpZmYgLS1naXQgYS9lamFiYmVyZC1lamFiYmVyZGN0 bF9maXguZGlmZiBiL2VqYWJiZXJkLWVqYWJiZXJkY3RsX2ZpeC5kaWZmCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA1MTVmODk0Li4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLWVqYWJiZXJk Y3RsX2ZpeC5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLS0tIHNyYy9lamFi YmVyZGN0bC50ZW1wbGF0ZX4JMjAxMC0wMS0yOSAxNTowMzo0OC4wMDAwMDAwMDAgKzAzMDAKLSsr KyBzcmMvZWphYmJlcmRjdGwudGVtcGxhdGUJMjAxMC0wMS0yOSAxNTowNzo1OC44Njc3ODY5NDUg KzAzMDAKLUBAIC05LDEwICs5LDEwIEBACi0gCi0gIyBkZWZpbmUgZGVmYXVsdCBlbnZpcm9ubWVu dCB2YXJpYWJsZXMKLSBOT0RFPWVqYWJiZXJkCi0tSE9TVD1sb2NhbGhvc3QKLStIT1NUPWBob3N0 bmFtZSAtcyAyPi9kZXYvbnVsbCB8fCBlY2hvICJsb2NhbGhvc3QiYAotIEVSTEFOR19OT0RFPSRO T0RFQCRIT1NUCi0gRVJMPUBlcmxACi0tSU5TVEFMTFVTRVI9QGluc3RhbGx1c2VyQAotK0lOU1RB TExVU0VSPWVqYWJiZXJkCi0gCi0gIyBDb250cm9sIG51bWJlciBvZiBjb25uZWN0aW9ucyBpZGVu dGlmaWVycwotICMgdXNpbmcgZmxvY2sgaWYgYXZhaWxhYmxlLiBFeHBlY3RzIGEgbGludXgtc3R5 bGUKLUBAIC01Myw3ICs1Myw3IEBACi0gICAgIExPR1NfRElSPUBMT0NBTFNUQVRFRElSQC9sb2cv ZWphYmJlcmQKLSBmaQotIGlmIFsgIiRTUE9PTERJUiIgPSAiIiBdIDsgdGhlbgotLSAgICBTUE9P TERJUj1ATE9DQUxTVEFURURJUkAvbGliL2VqYWJiZXJkCi0rICAgIFNQT09MRElSPUBMT0NBTFNU QVRFRElSQC9saWIvZWphYmJlcmQvc3Bvb2wKLSBmaQotIGlmIFsgIiRFSkFCQkVSRF9ET0NfUEFU SCIgPSAiIiBdIDsgdGhlbgotICAgICBFSkFCQkVSRF9ET0NfUEFUSD1ARE9DRElSQAotQEAgLTY5 LDcgKzY5LDcgQEAKLSBFWEVDX0NNRD0iZmFsc2UiCi0gZm9yIEdJRCBpbiAkR0lEUzsgZG8KLSAg ICAgaWYgWyAkR0lEIC1lcSAwIF0gOyB0aGVuCi0tCUVYRUNfQ01EPSJzdSAke0lOU1RBTExVU0VS fSAtcCAtYyIKLSsJRVhFQ19DTUQ9Ii9zYmluL3J1bnVzZXIgLXMgL2Jpbi9iYXNoIC1wIGVqYWJi ZXJkIC1jIgotICAgICBmaQotIGRvbmUKLSBpZiBbICIkSUQiIC1lcSAiJEVKSUQiIF0gOyB0aGVu Ci1AQCAtNzcsNyArNzcsNyBAQAotIGZpCi0gaWYgWyAiJEVYRUNfQ01EIiA9ICJmYWxzZSIgXSA7 IHRoZW4KLSAJZWNobyAiVGhpcyBjb21tYW5kIGNhbiBvbmx5IGJlIHJ1biBieSByb290IG9yIHRo ZSB1c2VyICRJTlNUQUxMVVNFUiIgPiYyCi0tCWV4aXQgMQotKwlleGl0IDQKLSBmaQotIAotIE5B TUU9LW5hbWUKCmRpZmYgLS1naXQgYS9lamFiYmVyZC1maXhlZF9kZWxheXNfaW5fczJzLnBhdGNo IGIvZWphYmJlcmQtZml4ZWRfZGVsYXlzX2luX3Mycy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYzUyMGQ2Zi4uMDAwMDAwMAotLS0gYS9lamFiYmVyZC1maXhlZF9kZWxheXNf aW5fczJzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotUGF0Y2ggYnkgU2Vy Z2VpIEdvbG92YW4gaW5jcmVhc2VzIHRpbWVvdXRzIGluIFMyUyBhbmQgcmVtb3ZlcyBob3JyaWJs ZSA1LW1pbnV0ZQotZGVsYXkgYmV0d2VlbiByZW1vdGUgc2VydmVyIGNvbm5lY3Rpb24gYXR0ZW1w dHMgYWZ0ZXIgYSBmYWx1cmUgKGluIGNhc2Ugb2YKLXNlcnZlciBpcyBkb3duIGl0IHdvdWxkIGJl IHJlYXNvbmFibGUsIGJ1dCB3aGF0IGhhcHBlbnMgbXVjaCBtb3JlIG9mdGVuIGlzIGEKLW5ldHdv cmsgc3BsaXQgd2hlbiB0aGUgZGVsYXkgaXMgaW5hZG1pc3NpYmxlKS4KLQotSW5kZXg6IHNyYy9l amFiYmVyZF9zMnNfaW4uZXJsCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gc3JjL2VqYWJiZXJkX3Myc19pbi5l cmwJMjAwOS0wNC0wMSAxNzoyMzo1Mi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBzcmMvZWphYmJlcmRf czJzX2luLmVybAkyMDA5LTA0LTA1IDIyOjUxOjIwLjAwMDAwMDAwMCArMDIwMAotQEAgLTM1Miw3 ICszNTIsNyBAQAotICAgICAgICAgICAgIGNhc2Uge2VqYWJiZXJkX3MyczphbGxvd19ob3N0KFRv LCBGcm9tKSwKLSAgICAgICAgICAgICAgICAgICBsaXN0czptZW1iZXIoTFRvLCBlamFiYmVyZF9y b3V0ZXI6ZGlydHlfZ2V0X2FsbF9kb21haW5zKCkpfSBvZgotICAgICAgICAgICAgICAgICB7dHJ1 ZSwgdHJ1ZX0gLT4KLS0JCSAgICBlamFiYmVyZF9zMnNfb3V0OnRlcm1pbmF0ZV9pZl93YWl0aW5n X2RlbGF5KFRvLCBGcm9tKSwKLSsJCSAgICAlJWVqYWJiZXJkX3Myc19vdXQ6dGVybWluYXRlX2lm X3dhaXRpbmdfZGVsYXkoVG8sIEZyb20pLAotIAkJICAgIGVqYWJiZXJkX3Myc19vdXQ6c3RhcnQo VG8sIEZyb20sCi0gCQkJCQkgICB7dmVyaWZ5LCBzZWxmKCksCi0gCQkJCQkgICAgS2V5LCBTdGF0 ZURhdGEjc3RhdGUuc3RyZWFtaWR9KSwKLUluZGV4OiBzcmMvZWphYmJlcmRfczJzX291dC5lcmwK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBzcmMvZWphYmJlcmRfczJzX291dC5lcmwJMjAwOS0xMS0wNiAyMjo1 MzoxOS4wMDAwMDAwMDAgKzAzMDAKLSsrKyBzcmMvZWphYmJlcmRfczJzX291dC5lcmwJMjAwOS0x MS0yMCAxNTo1OTo1My40NDU3MDM2NTQgKzAzMDAKLUBAIC05MCw3ICs5MCw3IEBACi0gCQkJCQkJ IFtGcm9tLCBIb3N0LCBUeXBlXSkpLgotIC1lbmRpZi4KLSAKLS0tZGVmaW5lKEZTTVRJTUVPVVQs IDMwMDAwKS4KLSstZGVmaW5lKEZTTVRJTUVPVVQsIDYwMDAwKS4KLSAKLSAlJSBXZSBkbyBub3Qg YmxvY2sgb24gc2VuZCBhbnltb3JlLgotIC1kZWZpbmUoVENQX1NFTkRfVElNRU9VVCwgMTUwMDAp LgotQEAgLTIyNiw4ICsyMjYsOCBAQAotIAl7ZXJyb3IsIF9SZWFzb259IC0+Ci0gCSAgICA/SU5G T19NU0coInMycyBjb25uZWN0aW9uOiB+cyAtPiB+cyAocmVtb3RlIHNlcnZlciBub3QgZm91bmQp IiwKLSAJCSAgICAgIFtTdGF0ZURhdGEjc3RhdGUubXluYW1lLCBTdGF0ZURhdGEjc3RhdGUuc2Vy dmVyXSksCi0tCSAgICB3YWl0X2JlZm9yZV9yZWNvbm5lY3QoU3RhdGVEYXRhKQotLQkgICAgJSV7 c3RvcCwgbm9ybWFsLCBTdGF0ZURhdGF9Ci0rCSAgICAlJXdhaXRfYmVmb3JlX3JlY29ubmVjdChT dGF0ZURhdGEpCi0rCSAgICB7c3RvcCwgbm9ybWFsLCBTdGF0ZURhdGF9Ci0gICAgIGVuZDsKLSBv cGVuX3NvY2tldChzdG9wLCBTdGF0ZURhdGEpIC0+Ci0gICAgID9JTkZPX01TRygiczJzIGNvbm5l Y3Rpb246IH5zIC0+IH5zIChzdG9wcGVkIGluIG9wZW4gc29ja2V0KSIsCgpkaWZmIC0tZ2l0IGEv ZWphYmJlcmQtbW9kX2FkbWluX2V4dHJhLnBhdGNoIGIvZWphYmJlcmQtbW9kX2FkbWluX2V4dHJh LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTVlYTBmLi4wMDAwMDAwCi0t LSBhL2VqYWJiZXJkLW1vZF9hZG1pbl9leHRyYS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEz MDUgKzAsMCBAQAotQWRkcyB0aGUgbW9kX2FkbWluX2V4dHJhIG1vZHVsZSB0byBlamFiYmVyZC4K LVRoaXMgbW9kdWxlIGV4dGVuZHMgdGhlIGZ1bmN0aW9uYWxpdHkgcHJvdmlkZWQgYnkgZWphYmJl cmRjdGwKLWJ5IGFkZGluZyBzZXZlcmFsIG5ldyBjb21tYW5kcy4KLQotVGhlIGNvZGUgaXMgdGFr ZW4gZnJvbSB0aGUgUHJvY2Vzc09uZSByZXBvc2l0b3J5OgotaHR0cHM6Ly9mb3JnZS5wcm9jZXNz LW9uZS5uZXQvYnJvd3NlL2VqYWJiZXJkLW1vZHVsZXMvbW9kX2FkbWluX2V4dHJhCi0odHJ1bmss IHJldmlzaW9uIDk3NikuCi0KLWRpZmYgLS1naXQgYS9zcmMvZWphYmJlcmQuYXBwIGIvc3JjL2Vq YWJiZXJkLmFwcAotaW5kZXggZTBlOTQzZS4uZjAxNzAxNSAxMDA2NDQKLS0tLSBhL3NyYy9lamFi YmVyZC5hcHAKLSsrKyBiL3NyYy9lamFiYmVyZC5hcHAKLUBAIC0xMDQsNiArMTA0LDcgQEAKLSAJ ICAgICBtb2RfdmNhcmRfbGRhcCwKLSAJICAgICBtb2RfdmNhcmRfb2RiYywKLSAJICAgICBtb2Rf dmVyc2lvbiwKLSsgICAgICAgICAgICAgbW9kX2FkbWluX2V4dHJhLAotIAkgICAgIG5vZGVfYnVk ZHksCi0gCSAgICAgbm9kZV9jbHViLAotIAkgICAgIG5vZGVfZGVmYXVsdCwKLWRpZmYgLS1naXQg YS9zcmMvbW9kX2FkbWluX2V4dHJhLmVybCBiL3NyYy9tb2RfYWRtaW5fZXh0cmEuZXJsCi1uZXcg ZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uOWYzY2ExNAotLS0tIC9kZXYvbnVsbAot KysrIGIvc3JjL21vZF9hZG1pbl9leHRyYS5lcmwKLUBAIC0wLDAgKzEsMTI3OSBAQAotKyUlJS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSslJSUgRmlsZSAgICA6IG1vZF9hZG1pbl9leHRyYS5lcmwKLSslJSUgQXV0aG9y ICA6IEJhZGxvcCA8YmFkbG9wQHByb2Nlc3Mtb25lLm5ldD4KLSslJSUgUHVycG9zZSA6IENvbnRy aWJ1dGVkIGFkbWluaXN0cmF0aXZlIGZ1bmN0aW9ucyBhbmQgY29tbWFuZHMKLSslJSUgQ3JlYXRl ZCA6IDEwIEF1ZyAyMDA4IGJ5IEJhZGxvcCA8YmFkbG9wQHByb2Nlc3Mtb25lLm5ldD4KLSslJSUK LSslJSUKLSslJSUgZWphYmJlcmQsIENvcHlyaWdodCAoQykgMjAwMi0yMDA4ICAgUHJvY2Vzc09u ZQotKyUlJQotKyUlJSBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yCi0rJSUlIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCi0rJSUlIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZQotKyUlJSBMaWNl bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyUlJQotKyUlJSBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSslJSUgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSslJSUgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSslJSUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyUlJQotKyUlJSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyUlJSBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyUl JSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBN QQotKyUlJSAwMjExMS0xMzA3IFVTQQotKyUlJQotKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLSstbW9kdWxl KG1vZF9hZG1pbl9leHRyYSkuCi0rLWF1dGhvcignYmFkbG9wQHByb2Nlc3Mtb25lLm5ldCcpLgot KwotKy1iZWhhdmlvdXIoZ2VuX21vZCkuCi0rCi0rLWV4cG9ydChbc3RhcnQvMiwgc3RvcC8xLAot KwkgJSUgTm9kZQotKwkgY29tcGlsZS8xLAotKwkgbG9hZF9jb25maWcvMSwKLSsJIGdldF9jb29r aWUvMCwKLSsJIHJlbW92ZV9ub2RlLzEsCi0rCSBleHBvcnQyb2RiYy8yLAotKwkgJSUgQWNjb3Vu dHMKLSsJIHNldF9wYXNzd29yZC8zLAotKwkgY2hlY2tfcGFzc3dvcmRfaGFzaC80LAotKwkgZGVs ZXRlX29sZF91c2Vycy8xLAotKwkgZGVsZXRlX29sZF91c2Vyc192aG9zdC8yLAotKwkgYmFuX2Fj Y291bnQvMywKLSsJIG51bV9hY3RpdmVfdXNlcnMvMiwKLSsJICUlIFNlc3Npb25zCi0rCSBudW1f cmVzb3VyY2VzLzIsCi0rCSByZXNvdXJjZV9udW0vMywKLSsJIGtpY2tfc2Vzc2lvbi80LAotKwkg c3RhdHVzX251bS8yLCBzdGF0dXNfbnVtLzEsCi0rCSBzdGF0dXNfbGlzdC8yLCBzdGF0dXNfbGlz dC8xLAotKwkgJSUgVmNhcmQKLSsJIHNldF9uaWNrbmFtZS8zLAotKwkgZ2V0X3ZjYXJkLzMsCi0r CSBnZXRfdmNhcmQvNCwKLSsJIHNldF92Y2FyZC80LAotKwkgc2V0X3ZjYXJkLzUsCi0rCSAlJSBS b3N0ZXIKLSsJIGFkZF9yb3N0ZXJpdGVtLzcsCi0rCSBkZWxldGVfcm9zdGVyaXRlbS80LAotKwkg cHJvY2Vzc19yb3N0ZXJpdGVtcy81LAotKwkgZ2V0X3Jvc3Rlci8yLAotKwkgcHVzaF9yb3N0ZXIv MywKLSsJIHB1c2hfcm9zdGVyX2FsbC8xLAotKwkgcHVzaF9hbGx0b2FsbC8yLAotKwkgJSUgbW9k X3NoYXJlZF9yb3N0ZXIKLSsJIHNyZ19jcmVhdGUvNSwKLSsJIHNyZ19kZWxldGUvMiwKLSsJIHNy Z19saXN0LzEsCi0rCSBzcmdfZ2V0X2luZm8vMiwKLSsJIHNyZ19nZXRfbWVtYmVycy8yLAotKwkg c3JnX3VzZXJfYWRkLzQsCi0rCSBzcmdfdXNlcl9kZWwvNCwKLSsJICUlIFN0YW56YQotKwkgc2Vu ZF9tZXNzYWdlX2hlYWRsaW5lLzQsCi0rCSBzZW5kX21lc3NhZ2VfY2hhdC8zLAotKwkgJSUgU3Rh dHMKLSsJIHN0YXRzLzEsIHN0YXRzLzIKLSsJXSkuCi0rCi0rLWluY2x1ZGUoImVqYWJiZXJkLmhy bCIpLgotKy1pbmNsdWRlKCJlamFiYmVyZF9jb21tYW5kcy5ocmwiKS4KLSstaW5jbHVkZSgibW9k X3Jvc3Rlci5ocmwiKS4KLSstaW5jbHVkZSgiamxpYi5ocmwiKS4KLSsKLSslJSBDb3BpZWQgZnJv bSBlamFiYmVyZF9zbS5lcmwKLSstcmVjb3JkKHNlc3Npb24sIHtzaWQsIHVzciwgdXMsIHByaW9y aXR5LCBpbmZvfSkuCi0rCi0rCi0rJSUlCi0rJSUlIGdlbl9tb2QKLSslJSUKLSsKLStzdGFydChf SG9zdCwgX09wdHMpIC0+Ci0rICAgIGVqYWJiZXJkX2NvbW1hbmRzOnJlZ2lzdGVyX2NvbW1hbmRz KGNvbW1hbmRzKCkpLgotKwotK3N0b3AoX0hvc3QpIC0+Ci0rICAgIGVqYWJiZXJkX2NvbW1hbmRz OnVucmVnaXN0ZXJfY29tbWFuZHMoY29tbWFuZHMoKSkuCi0rCi0rCi0rJSUlCi0rJSUlIFJlZ2lz dGVyIGNvbW1hbmRzCi0rJSUlCi0rCi0rY29tbWFuZHMoKSAtPgotKyAgICBWY2FyZDFGaWVsZHNT dHJpbmcgPSAiU29tZSB2Y2FyZCBmaWVsZCBuYW1lcyBpbiBnZXQvc2V0X3ZjYXJkIGFyZTpcbiIK LSsJIiBGTgkJLSBGdWxsIE5hbWVcbiIKLSsJIiBOSUNLTkFNRQktIE5pY2tuYW1lXG4iCi0rCSIg QkRBWQkJLSBCaXJ0aGRheVxuIgotKwkiIFRJVExFCQktIFdvcms6IFBvc2l0aW9uXG4iLAotKyAg ICAiIFJPTEUJCS0gV29yazogUm9sZSIsCi0rCi0rICAgIFZjYXJkMkZpZWxkc1N0cmluZyA9ICJT b21lIHZjYXJkIGZpZWxkIG5hbWVzIGFuZCBzdWJuYW1lcyBpbiBnZXQvc2V0X3ZjYXJkMiBhcmU6 XG4iCi0rCSIgTiBGQU1JTFkJLSBGYW1pbHkgbmFtZVxuIgotKwkiIE4gR0lWRU4JLSBHaXZlbiBu YW1lXG4iCi0rCSIgTiBNSURETEUJLSBNaWRkbGUgbmFtZVxuIgotKwkiIEFEUiBDVFJZCS0gQWRk cmVzczogQ291bnRyeVxuIgotKwkiIEFEUiBMT0NBTElUWQktIEFkZHJlc3M6IENpdHlcbiIKLSsJ IiBFTUFJTCBVU0VSSUQJLSBFLU1haWwgQWRkcmVzc1xuIgotKwkiIE9SRyBPUkdOQU1FCS0gV29y azogQ29tcGFueVxuIgotKwkiIE9SRyBPUkdVTklUCS0gV29yazogRGVwYXJ0bWVudCIsCi0rCi0r ICAgIFZjYXJkWEVQID0gIkZvciBhIGZ1bGwgbGlzdCBvZiB2Q2FyZCBmaWVsZHMgY2hlY2sgWEVQ LTAwNTQ6IHZjYXJkLXRlbXAgYXQgIgotKwkiaHR0cDovL3d3dy54bXBwLm9yZy9leHRlbnNpb25z L3hlcC0wMDU0Lmh0bWwiLAotKwotKyAgICBbCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFt ZSA9IGNvbXBpbGUsIHRhZ3MgPSBbZXJsYW5nXSwKLSsJCQlkZXNjID0gIlJlY29tcGlsZSBhbmQg cmVsb2FkIEVybGFuZyBzb3VyY2UgY29kZSBmaWxlIiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBm dW5jdGlvbiA9IGNvbXBpbGUsCi0rCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfV0sCi0rCQkJcmVz dWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBs b2FkX2NvbmZpZywgdGFncyA9IFtzZXJ2ZXJdLAotKwkJCWRlc2MgPSAiTG9hZCBlamFiYmVyZCBj b25maWd1cmF0aW9uIGZpbGUiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gbG9h ZF9jb25maWcsCi0rCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3Jl cywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBnZXRfY29va2ll LCB0YWdzID0gW2VybGFuZ10sCi0rCQkJZGVzYyA9ICJHZXQgdGhlIEVybGFuZyBjb29raWUgb2Yg dGhpcyBub2RlIiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGdldF9jb29raWUs Ci0rCQkJYXJncyA9IFtdLAotKwkJCXJlc3VsdCA9IHtjb29raWUsIHN0cmluZ319LAotKyAgICAg I2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSByZW1vdmVfbm9kZSwgdGFncyA9IFtlcmxhbmddLAot KwkJCWRlc2MgPSAiUmVtb3ZlIGFuIGVqYWJiZXJkIG5vZGUgZnJvbSBNbmVzaWEgY2x1c3Rlcmlu ZyBjb25maWciLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcmVtb3ZlX25vZGUs Ci0rCQkJYXJncyA9IFt7bm9kZSwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVzY29k ZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBleHBvcnQyb2RiYywgdGFncyA9 IFttbmVzaWFdLAotKwkJCWRlc2MgPSAiRXhwb3J0IE1uZXNpYSB0YWJsZXMgdG8gZmlsZXMgaW4g ZGlyZWN0b3J5IiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGV4cG9ydDJvZGJj LAotKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtwYXRoLCBzdHJpbmd9XSwKLSsJCQlyZXN1 bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9 IG51bV9hY3RpdmVfdXNlcnMsIHRhZ3MgPSBbYWNjb3VudHMsIHN0YXRzXSwKLSsJCQlkZXNjID0g IkdldCBudW1iZXIgb2YgdXNlcnMgYWN0aXZlIGluIHRoZSBsYXN0IGRheXMiLAotKwkJCW1vZHVs ZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gbnVtX2FjdGl2ZV91c2VycywKLSsJCQlhcmdzID0gW3to b3N0LCBzdHJpbmd9LCB7ZGF5cywgaW50ZWdlcn1dLAotKwkJCXJlc3VsdCA9IHt1c2VycywgaW50 ZWdlcn19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBkZWxldGVfb2xkX3VzZXJz LCB0YWdzID0gW2FjY291bnRzLCBwdXJnZV0sCi0rCQkJZGVzYyA9ICJEZWxldGUgdXNlcnMgdGhh dCBkaWRuJ3QgbG9nIGluIGxhc3QgZGF5cyIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rp b24gPSBkZWxldGVfb2xkX3VzZXJzLAotKwkJCWFyZ3MgPSBbe2RheXMsIGludGVnZXJ9XSwKLSsJ CQlyZXN1bHQgPSB7cmVzLCByZXN0dXBsZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBkZWxldGVfb2xkX3VzZXJzX3Zob3N0LCB0YWdzID0gW2FjY291bnRzLCBwdXJnZV0sCi0r CQkJZGVzYyA9ICJEZWxldGUgdXNlcnMgdGhhdCBkaWRuJ3QgbG9nIGluIGxhc3QgZGF5cyBpbiB2 aG9zdCIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBkZWxldGVfb2xkX3VzZXJz X3Zob3N0LAotKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtkYXlzLCBpbnRlZ2VyfV0sCi0r CQkJcmVzdWx0ID0ge3JlcywgcmVzdHVwbGV9fSwKLSsKLSsgICAgICNlamFiYmVyZF9jb21tYW5k c3tuYW1lID0gY2hlY2tfYWNjb3VudCwgdGFncyA9IFthY2NvdW50c10sCi0rCQkJZGVzYyA9ICJD aGVjayBpZiBhbiBhY291bnQgZXhpc3RzIG9yIG5vdCIsCi0rCQkJbW9kdWxlID0gZWphYmJlcmRf YXV0aCwgZnVuY3Rpb24gPSBpc191c2VyX2V4aXN0cywKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJp bmd9LCB7aG9zdCwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGVja19wYXNzd29yZCwgdGFncyA9IFthY2Nv dW50c10sCi0rCQkJZGVzYyA9ICJDaGVjayBpZiBhIHBhc3N3b3JkIGlzIGNvcnJlY3QiLAotKwkJ CW1vZHVsZSA9IGVqYWJiZXJkX2F1dGgsIGZ1bmN0aW9uID0gY2hlY2tfcGFzc3dvcmQsCi0rCQkJ YXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtwYXNzd29yZCwgc3RyaW5n fV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1h bmRze25hbWUgPSBjaGVja19wYXNzd29yZF9oYXNoLCB0YWdzID0gW2FjY291bnRzXSwKLSsJCQlk ZXNjID0gIkNoZWNrIGlmIHRoZSBwYXNzd29yZCBoYXNoIGlzIGNvcnJlY3QiLAotKwkJCWxvbmdk ZXNjID0gIkFsbG93ZWQgaGFzaCBtZXRob2RzOiBtZDUsIHNoYS4iLAotKwkJCW1vZHVsZSA9ID9N T0RVTEUsIGZ1bmN0aW9uID0gY2hlY2tfcGFzc3dvcmRfaGFzaCwKLSsJCQlhcmdzID0gW3t1c2Vy LCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge3Bhc3N3b3JkaGFzaCwgc3RyaW5nfSwge2hhc2ht ZXRob2QsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gY2hhbmdlX3Bhc3N3b3JkLCB0YWdzID0gW2FjY291bnRz XSwKLSsJCQlkZXNjID0gIkNoYW5nZSB0aGUgcGFzc3dvcmQgb2YgYW4gYWNjb3VudCIsCi0rCQkJ bW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfcGFzc3dvcmQsCi0rCQkJYXJncyA9IFt7 dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuZXdwYXNzLCBzdHJpbmd9XSwKLSsJCQly ZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9 IGJhbl9hY2NvdW50LCB0YWdzID0gW2FjY291bnRzXSwKLSsJCQlkZXNjID0gIkJhbiBhbiBhY2Nv dW50OiBraWNrIHNlc3Npb25zIGFuZCBzZXQgcmFuZG9tIHBhc3N3b3JkIiwKLSsJCQltb2R1bGUg PSA/TU9EVUxFLCBmdW5jdGlvbiA9IGJhbl9hY2NvdW50LAotKwkJCWFyZ3MgPSBbe3VzZXIsIHN0 cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7cmVhc29uLCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7 cmVzLCByZXNjb2RlfX0sCi0rCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IG51bV9y ZXNvdXJjZXMsIHRhZ3MgPSBbc2Vzc2lvbl0sCi0rCQkJZGVzYyA9ICJHZXQgdGhlIG51bWJlciBv ZiByZXNvdXJjZXMgb2YgYSB1c2VyIiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9 IG51bV9yZXNvdXJjZXMsCi0rCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmlu Z31dLAotKwkJCXJlc3VsdCA9IHtyZXNvdXJjZXMsIGludGVnZXJ9fSwKLSsgICAgICNlamFiYmVy ZF9jb21tYW5kc3tuYW1lID0gcmVzb3VyY2VfbnVtLCB0YWdzID0gW3Nlc3Npb25dLAotKwkJCWRl c2MgPSAiUmVzb3VyY2Ugc3RyaW5nIG9mIGEgc2Vzc2lvbiBudW1iZXIiLAotKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gcmVzb3VyY2VfbnVtLAotKwkJCWFyZ3MgPSBbe3VzZXIsIHN0 cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7bnVtLCBpbnRlZ2VyfV0sCi0rCQkJcmVzdWx0ID0ge3Jl c291cmNlLCBzdHJpbmd9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0ga2lja19z ZXNzaW9uLCB0YWdzID0gW3Nlc3Npb25dLAotKwkJCWRlc2MgPSAiS2ljayBhIHVzZXIgc2Vzc2lv biIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBraWNrX3Nlc3Npb24sCi0rCQkJ YXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtyZXNvdXJjZSwgc3RyaW5n fSwge3JlYXNvbiwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbnVtX2hvc3QsIHRhZ3MgPSBbc2Vz c2lvbiwgc3RhdHNdLAotKwkJCWRlc2MgPSAiTnVtYmVyIG9mIGxvZ2dlZCB1c2VycyB3aXRoIHRo aXMgc3RhdHVzIGluIGhvc3QiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3Rh dHVzX251bSwKLSsJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9LCB7c3RhdHVzLCBzdHJpbmd9XSwK LSsJCQlyZXN1bHQgPSB7dXNlcnMsIGludGVnZXJ9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5k c3tuYW1lID0gc3RhdHVzX251bSwgdGFncyA9IFtzZXNzaW9uLCBzdGF0c10sCi0rCQkJZGVzYyA9 ICJOdW1iZXIgb2YgbG9nZ2VkIHVzZXJzIHdpdGggdGhpcyBzdGF0dXMiLAotKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX251bSwKLSsJCQlhcmdzID0gW3tzdGF0dXMsIHN0 cmluZ31dLAotKwkJCXJlc3VsdCA9IHt1c2VycywgaW50ZWdlcn19LAotKyAgICAgI2VqYWJiZXJk X2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlzdF9ob3N0LCB0YWdzID0gW3Nlc3Npb25dLAotKwkJ CWRlc2MgPSAiTGlzdCBvZiB1c2VycyBsb2dnZWQgaW4gaG9zdCB3aXRoIHRoZWlyIHN0YXR1c2Vz IiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHN0YXR1c19saXN0LAotKwkJCWFy Z3MgPSBbe2hvc3QsIHN0cmluZ30sIHtzdGF0dXMsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHt1 c2Vycywge2xpc3QsCi0rCQkJCQkgIHt1c2Vyc3RhdHVzLCB7dHVwbGUsIFsKLSsJCQkJCQkJCXt1 c2VyLCBzdHJpbmd9LAotKwkJCQkJCQkJe2hvc3QsIHN0cmluZ30sCi0rCQkJCQkJCQl7cmVzb3Vy Y2UsIHN0cmluZ30sCi0rCQkJCQkJCQl7cHJpb3JpdHksIGludGVnZXJ9LAotKwkJCQkJCQkJe3N0 YXR1cywgc3RyaW5nfQotKwkJCQkJCQkgICAgICAgXX19Ci0rCQkJCQkgfX19LAotKyAgICAgI2Vq YWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlzdCwgdGFncyA9IFtzZXNzaW9uXSwKLSsJ CQlkZXNjID0gIkxpc3Qgb2YgbG9nZ2VkIHVzZXJzIHdpdGggdGhpcyBzdGF0dXMiLAotKwkJCW1v ZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX2xpc3QsCi0rCQkJYXJncyA9IFt7c3Rh dHVzLCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7dXNlcnMsIHtsaXN0LAotKwkJCQkJICB7dXNl cnN0YXR1cywge3R1cGxlLCBbCi0rCQkJCQkJCQl7dXNlciwgc3RyaW5nfSwKLSsJCQkJCQkJCXto b3N0LCBzdHJpbmd9LAotKwkJCQkJCQkJe3Jlc291cmNlLCBzdHJpbmd9LAotKwkJCQkJCQkJe3By aW9yaXR5LCBpbnRlZ2VyfSwKLSsJCQkJCQkJCXtzdGF0dXMsIHN0cmluZ30KLSsJCQkJCQkJICAg ICAgIF19fQotKwkJCQkJIH19fSwKLSsKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0g c2V0X25pY2tuYW1lLCB0YWdzID0gW3ZjYXJkXSwKLSsJCQlkZXNjID0gIlNldCBuaWNrbmFtZSBp biBhIHVzZXIncyB2Y2FyZCIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRf bmlja25hbWUsCi0rCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtu aWNrbmFtZSwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKwotKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBnZXRfdmNhcmQsIHRhZ3MgPSBbdmNhcmRdLAot KwkJCWRlc2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZDYXJkIGZpZWxkIiwKLSsJCQlsb25nZGVz YyA9IFZjYXJkMUZpZWxkc1N0cmluZyArKyAiXG4iICsrIFZjYXJkMkZpZWxkc1N0cmluZyArKyAi XG5cbiIgKysgVmNhcmRYRVAsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBnZXRf dmNhcmQsCi0rCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuYW1l LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7Y29udGVudCwgc3RyaW5nfX0sCi0rICAgICAjZWph YmJlcmRfY29tbWFuZHN7bmFtZSA9IGdldF92Y2FyZDIsIHRhZ3MgPSBbdmNhcmRdLAotKwkJCWRl c2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZDYXJkIGZpZWxkIiwKLSsJCQlsb25nZGVzYyA9IFZj YXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmQxRmllbGRzU3RyaW5nICsrICJcbiIg KysgVmNhcmRYRVAsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBnZXRfdmNhcmQs Ci0rCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuYW1lLCBzdHJp bmd9LCB7c3VibmFtZSwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge2NvbnRlbnQsIHN0cmluZ319 LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzZXRfdmNhcmQsIHRhZ3MgPSBbdmNh cmRdLAotKwkJCWRlc2MgPSAiU2V0IGNvbnRlbnQgaW4gYSB2Q2FyZCBmaWVsZCIsCi0rCQkJbG9u Z2Rlc2MgPSBWY2FyZDFGaWVsZHNTdHJpbmcgKysgIlxuIiArKyBWY2FyZDJGaWVsZHNTdHJpbmcg KysgIlxuXG4iICsrIFZjYXJkWEVQLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0g c2V0X3ZjYXJkLAotKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7 bmFtZSwgc3RyaW5nfSwge2NvbnRlbnQsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJl c2NvZGV9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc2V0X3ZjYXJkMiwgdGFn cyA9IFt2Y2FyZF0sCi0rCQkJZGVzYyA9ICJTZXQgY29udGVudCBpbiBhIHZDYXJkIHN1YmZpZWxk IiwKLSsJCQlsb25nZGVzYyA9IFZjYXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmQx RmllbGRzU3RyaW5nICsrICJcbiIgKysgVmNhcmRYRVAsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwg ZnVuY3Rpb24gPSBzZXRfdmNhcmQyLAotKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0 LCBzdHJpbmd9LCB7bmFtZSwgc3RyaW5nfSwge3N1Ym5hbWUsIHN0cmluZ30sIHtjb250ZW50LCBz dHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rCi0rICAgICAjZWphYmJl cmRfY29tbWFuZHN7bmFtZSA9IGFkZF9yb3N0ZXJpdGVtLCB0YWdzID0gW3Jvc3Rlcl0sCi0rCQkJ ZGVzYyA9ICJBZGQgYW4gaXRlbSB0byBhIHVzZXIncyByb3N0ZXIiLAotKwkJCW1vZHVsZSA9ID9N T0RVTEUsIGZ1bmN0aW9uID0gYWRkX3Jvc3Rlcml0ZW0sCi0rCQkJYXJncyA9IFt7bG9jYWx1c2Vy LCBzdHJpbmd9LCB7bG9jYWxzZXJ2ZXIsIHN0cmluZ30sCi0rCQkJCXt1c2VyLCBzdHJpbmd9LCB7 c2VydmVyLCBzdHJpbmd9LAotKwkJCQl7bmljaywgc3RyaW5nfSwge2dyb3VwLCBzdHJpbmd9LAot KwkJCQl7c3Vicywgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAg ICAgJSV7IiIsICJzdWJzPSBub25lLCBmcm9tLCB0byBvciBib3RoIn0sCi0rICAgICAlJXsiIiwg ImV4YW1wbGU6IGFkZC1yb3N0ZXIgcGV0ZXIgbG9jYWxob3N0IG1pa2Ugc2VydmVyLmNvbSBNaUtl IEVtcGxveWVlcyBib3RoIn0sCi0rICAgICAlJXsiIiwgIndpbGwgYWRkIG1pa2VAc2VydmVyLmNv bSB0byBwZXRlckBsb2NhbGhvc3Qgcm9zdGVyIn0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7 bmFtZSA9IGRlbGV0ZV9yb3N0ZXJpdGVtLCB0YWdzID0gW3Jvc3Rlcl0sCi0rCQkJZGVzYyA9ICJE ZWxldGUgYW4gaXRlbSBmcm9tIGEgdXNlcidzIHJvc3RlciIsCi0rCQkJbW9kdWxlID0gP01PRFVM RSwgZnVuY3Rpb24gPSBkZWxldGVfcm9zdGVyaXRlbSwKLSsJCQlhcmdzID0gW3tsb2NhbHVzZXIs IHN0cmluZ30sIHtsb2NhbHNlcnZlciwgc3RyaW5nfSwKLSsJCQkJe3VzZXIsIHN0cmluZ30sIHtz ZXJ2ZXIsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gcHJvY2Vzc19yb3N0ZXJpdGVtcywgdGFncyA9IFtyb3N0 ZXJdLAotKwkJCWRlc2MgPSAiTGlzdCBvciBkZWxldGUgcm9zdGVyaXRlbXMgdGhhdCBtYXRjaCBm aWx0ZXJpbmcgb3B0aW9ucyIsCi0rCQkJbG9uZ2Rlc2MgPSAiRXhwbGFuYXRpb24gb2YgZWFjaCBh cmd1bWVudDpcbiIKLSsJCQkiIC0gYWN0aW9uOiB3aGF0IHRvIGRvIHdpdGggZWFjaCByb3N0ZXJp dGVtIHRoYXQgIgotKwkJCSJtYXRjaGVzIGFsbCB0aGUgZmlsdGVyaW5nIG9wdGlvbnNcbiIKLSsJ CQkiIC0gc3Viczogc3Vic2NyaXB0aW9uIHR5cGVcbiIKLSsJCQkiIC0gYXNrczogcGVuZGluZyBz dWJzY3JpcHRpb25cbiIKLSsJCQkiIC0gdXNlcnM6IHRoZSBKSURzIG9mIHRoZSBsb2NhbCB1c2Vy XG4iCi0rCQkJIiAtIGNvbnRhY3RzOiB0aGUgSklEcyBvZiB0aGUgY29udGFjdCBpbiB0aGUgcm9z dGVyXG4iCi0rCQkJIlxuIgotKwkJCSJBbGxvd2VkIHZhbHVlcyBpbiB0aGUgYXJndW1lbnRzOlxu IgotKwkJCSIgIEFDVElPTiA9IGxpc3QgfCBkZWxldGVcbiIKLSsJCQkiICBTVUJTID0gU1VCWzpT VUJdKiB8IGFueVxuIgotKwkJCSIgIFNVQiA9IG5vbmUgfCBmcm9tIHwgdG8gfCBib3RoXG4iCi0r CQkJIiAgQVNLUyA9IEFTS1s6QVNLXSogfCBhbnlcbiIKLSsJCQkiICBBU0sgPSBub25lIHwgb3V0 IHwgaW5cbiIKLSsJCQkiICBVU0VSUyA9IEpJRFs6SklEXSogfCBhbnlcbiIKLSsJCQkiICBDT05U QUNUUyA9IEpJRFs6SklEXSogfCBhbnlcbiIKLSsJCQkiICBKSUQgPSBjaGFyYWN0ZXJzIHZhbGlk IGluIGEgSklELCBhbmQgY2FuIHVzZSB0aGUgIgotKwkJCSJnbG9iczogKiwgPyBhbmQgWy4uLl1c biIKLSsJCQkiXG4iCi0rCQkJIlRoaXMgZXhhbXBsZSB3aWxsIGxpc3Qgcm9zdGVyIGl0ZW1zIHdp dGggc3Vic2NyaXB0aW9uICIKLSsJCQkiJ25vbmUnLCAnZnJvbScgb3IgJ3RvJyB0aGF0IGhhdmUg YW55IGFzayBwcm9wZXJ0eSwgb2YgIgotKwkJCSJsb2NhbCB1c2VycyB3aGljaCBKSUQgaXMgaW4g dGhlIHZpcnR1YWwgaG9zdCAiCi0rCQkJIidleGFtcGxlLm9yZycgYW5kIHRoYXQgdGhlIGNvbnRh Y3QgSklEIGlzIGVpdGhlciBhICIKLSsJCQkiYmFyZSBzZXJ2ZXIgbmFtZSAod2l0aG91dCB1c2Vy IHBhcnQpIG9yIHRoYXQgaGFzIGEgIgotKwkJCSJ1c2VyIHBhcnQgYW5kIHRoZSBzZXJ2ZXIgcGFy dCBjb250YWlucyB0aGUgd29yZCAnaWNxJyIKLSsJCQkiOlxuICBsaXN0IG5vbmU6ZnJvbTp0byBh bnkgKkBleGFtcGxlLm9yZyAqOipAKmljcSoiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0 aW9uID0gcHJvY2Vzc19yb3N0ZXJpdGVtcywKLSsJCQlhcmdzID0gW3thY3Rpb24sIHN0cmluZ30s IHtzdWJzLCBzdHJpbmd9LAotKwkJCQl7YXNrcywgc3RyaW5nfSwge3VzZXJzLCBzdHJpbmd9LAot KwkJCQl7Y29udGFjdHMsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwK LSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gZ2V0X3Jvc3RlciwgdGFncyA9IFtyb3N0 ZXJdLAotKwkJCWRlc2MgPSAiR2V0IHJvc3RlciBvZiBhIGxvY2FsIHVzZXIiLAotKwkJCW1vZHVs ZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gZ2V0X3Jvc3RlciwKLSsJCQlhcmdzID0gW3t1c2VyLCBz dHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge2NvbnRhY3RzLCB7bGlzdCwg e2NvbnRhY3QsIHt0dXBsZSwgWwotKwkJCQkJCQkJICAgICAge2ppZCwgc3RyaW5nfSwKLSsJCQkJ CQkJCSAgICAgIHtuaWNrLCBzdHJpbmd9LAotKwkJCQkJCQkJICAgICAge2dyb3VwLCBzdHJpbmd9 Ci0rCQkJCQkJCQkgICAgIF19fX19fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0g cHVzaF9yb3N0ZXIsIHRhZ3MgPSBbcm9zdGVyXSwKLSsJCQlkZXNjID0gIlB1c2ggdGVtcGxhdGUg cm9zdGVyIGZyb20gZmlsZSB0byBhIHVzZXIiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0 aW9uID0gcHVzaF9yb3N0ZXIsCi0rCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfSwge3VzZXIsIHN0 cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0r ICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHB1c2hfcm9zdGVyX2FsbCwgdGFncyA9IFty b3N0ZXJdLAotKwkJCWRlc2MgPSAiUHVzaCB0ZW1wbGF0ZSByb3N0ZXIgZnJvbSBmaWxlIHRvIGFs bCB0aG9zZSB1c2VycyIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBwdXNoX3Jv c3Rlcl9hbGwsCi0rCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3Jl cywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBwdXNoX2FsbHRv YWxsLCB0YWdzID0gW3Jvc3Rlcl0sCi0rCQkJZGVzYyA9ICJBZGQgYWxsIHRoZSB1c2VycyB0byBh bGwgdGhlIHVzZXJzIG9mIEhvc3QgaW4gR3JvdXAiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1 bmN0aW9uID0gcHVzaF9hbGx0b2FsbCwKLSsJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9LCB7Z3Jv dXAsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsKLSsgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3JnX2NyZWF0ZSwgdGFncyA9IFtzaGFyZWRfcm9zdGVy X2dyb3VwXSwKLSsJCQlkZXNjID0gIkNyZWF0ZSBhIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAotKwkJ CWxvbmdkZXNjID0gIklmIHlvdSB3YW50IHRvIHNwZWNpZnkgc2V2ZXJhbCBncm91cCAiCi0rCQkJ ImlkZW50aWZpZXJzIGluIHRoZSBEaXNwbGF5IGFyZ3VtZW50LFxuIgotKwkJCSJwdXQgIFxcIFwi IGFyb3VuZCB0aGUgYXJndW1lbnQgYW5kXG5zZXBhcmF0ZSB0aGUgIgotKwkJCSJpZGVudGlmaWVy cyB3aXRoIFxcIFxcIG5cbiIKLSsJCQkiRm9yIGV4YW1wbGU6XG4iCi0rCQkJIiAgZWphYmJlcmRj dGwgc3JnX2NyZWF0ZSBncm91cDMgbG9jYWxob3N0ICIKLSsJCQkibmFtZSBkZXNjIFxcXCJncm91 cDFcXFxcbmdyb3VwMlxcXCIiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3Jn X2NyZWF0ZSwKLSsJCQlhcmdzID0gW3tncm91cCwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sCi0r CQkJCXtuYW1lLCBzdHJpbmd9LCB7ZGVzY3JpcHRpb24sIHN0cmluZ30sIHtkaXNwbGF5LCBzdHJp bmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJlcmRfY29t bWFuZHN7bmFtZSA9IHNyZ19kZWxldGUsIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCi0r CQkJZGVzYyA9ICJEZWxldGUgYSBTaGFyZWQgUm9zdGVyIEdyb3VwIiwKLSsJCQltb2R1bGUgPSA/ TU9EVUxFLCBmdW5jdGlvbiA9IHNyZ19kZWxldGUsCi0rCQkJYXJncyA9IFt7Z3JvdXAsIHN0cmlu Z30sIHtob3N0LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rICAg ICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19saXN0LCB0YWdzID0gW3NoYXJlZF9yb3N0 ZXJfZ3JvdXBdLAotKwkJCWRlc2MgPSAiTGlzdCB0aGUgU2hhcmVkIFJvc3RlciBHcm91cHMgaW4g SG9zdCIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzcmdfbGlzdCwKLSsJCQlh cmdzID0gW3tob3N0LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7Z3JvdXBzLCB7bGlzdCwge2lk LCBzdHJpbmd9fX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfZ2V0X2lu Zm8sIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCi0rCQkJZGVzYyA9ICJHZXQgaW5mbyBv ZiBhIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9u ID0gc3JnX2dldF9pbmZvLAotKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJpbmd9LCB7aG9zdCwgc3Ry aW5nfV0sCi0rCQkJcmVzdWx0ID0ge2luZm9ybWF0aW9ucywge2xpc3QsIHtpbmZvcm1hdGlvbiwg e3R1cGxlLCBbe2tleSwgc3RyaW5nfSwge3ZhbHVlLCBzdHJpbmd9XX19fX19LAotKyAgICAgI2Vq YWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfZ2V0X21lbWJlcnMsIHRhZ3MgPSBbc2hhcmVkX3Jv c3Rlcl9ncm91cF0sCi0rCQkJZGVzYyA9ICJHZXQgbWVtYmVycyBvZiBhIFNoYXJlZCBSb3N0ZXIg R3JvdXAiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3JnX2dldF9tZW1iZXJz LAotKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCi0rCQkJcmVz dWx0ID0ge21lbWJlcnMsIHtsaXN0LCB7bWVtYmVyLCBzdHJpbmd9fX19LAotKyAgICAgI2VqYWJi ZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfdXNlcl9hZGQsIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9n cm91cF0sCi0rCQkJZGVzYyA9ICJBZGQgdGhlIEpJRCB1c2VyQGhvc3QgdG8gdGhlIFNoYXJlZCBS b3N0ZXIgR3JvdXAiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3JnX3VzZXJf YWRkLAotKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7Z3JvdXAs IHN0cmluZ30sIHtncm91cGhvc3QsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2Nv ZGV9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3JnX3VzZXJfZGVsLCB0YWdz ID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAotKwkJCWRlc2MgPSAiRGVsZXRlIHRoaXMgSklEIHVz ZXJAaG9zdCBmcm9tIHRoZSBTaGFyZWQgUm9zdGVyIEdyb3VwIiwKLSsJCQltb2R1bGUgPSA/TU9E VUxFLCBmdW5jdGlvbiA9IHNyZ191c2VyX2RlbCwKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9 LCB7aG9zdCwgc3RyaW5nfSwge2dyb3VwLCBzdHJpbmd9LCB7Z3JvdXBob3N0LCBzdHJpbmd9XSwK LSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rCi0rICAgICAjZWphYmJlcmRfY29tbWFu ZHN7bmFtZSA9IHNlbmRfbWVzc2FnZV9jaGF0LCB0YWdzID0gW3N0YW56YV0sCi0rCQkJZGVzYyA9 ICJTZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgbG9jYWwgb3IgcmVtb3RlIGJhcmUgb2YgZnVsbCBK SUQiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc2VuZF9tZXNzYWdlX2NoYXQs Ci0rCQkJYXJncyA9IFt7ZnJvbSwgc3RyaW5nfSwge3RvLCBzdHJpbmd9LCB7Ym9keSwgc3RyaW5n fV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1h bmRze25hbWUgPSBzZW5kX21lc3NhZ2VfaGVhZGxpbmUsIHRhZ3MgPSBbc3RhbnphXSwKLSsJCQlk ZXNjID0gIlNlbmQgYSBoZWFkbGluZSBtZXNzYWdlIHRvIGEgbG9jYWwgb3IgcmVtb3RlIGJhcmUg b2YgZnVsbCBKSUQiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc2VuZF9tZXNz YWdlX2hlYWRsaW5lLAotKwkJCWFyZ3MgPSBbe2Zyb20sIHN0cmluZ30sIHt0bywgc3RyaW5nfSwK LSsJCQkJe3N1YmplY3QsIHN0cmluZ30sIHtib2R5LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7 cmVzLCByZXNjb2RlfX0sCi0rCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHN0YXRz LCB0YWdzID0gW3N0YXRzXSwKLSsJCQlkZXNjID0gIkdldCBzdGF0aXN0aWNhbCB2YWx1ZTogcmVn aXN0ZXJlZHVzZXJzIG9ubGluZXVzZXJzIG9ubGluZXVzZXJzbm9kZSB1cHRpbWVzZWNvbmRzIiwK LSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHN0YXRzLAotKwkJCWFyZ3MgPSBbe25h bWUsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtzdGF0LCBpbnRlZ2VyfX0sCi0rICAgICAjZWph YmJlcmRfY29tbWFuZHN7bmFtZSA9IHN0YXRzX2hvc3QsIHRhZ3MgPSBbc3RhdHNdLAotKwkJCWRl c2MgPSAiR2V0IHN0YXRpc3RpY2FsIHZhbHVlIGZvciB0aGlzIGhvc3Q6IHJlZ2lzdGVyZWR1c2Vy cyBvbmxpbmV1c2VycyIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzdGF0cywK LSsJCQlhcmdzID0gW3tuYW1lLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0 ID0ge3N0YXQsIGludGVnZXJ9fQotKyAgICBdLgotKwotKwotKyUlJQotKyUlJSBOb2RlCi0rJSUl Ci0rCi0rY29tcGlsZShGaWxlKSAtPgotKyAgICBjYXNlIGNvbXBpbGU6ZmlsZShGaWxlKSBvZgot KwlvayAtPiBvazsKLSsJXyAtPiBlcnJvcgotKyAgICBlbmQuCi0rCi0rbG9hZF9jb25maWcoUGF0 aCkgLT4KLSsgICAgb2sgPSBlamFiYmVyZF9jb25maWc6bG9hZF9maWxlKFBhdGgpLgotKwotK2dl dF9jb29raWUoKSAtPgotKyAgICBhdG9tX3RvX2xpc3QoZXJsYW5nOmdldF9jb29raWUoKSkuCi0r Ci0rcmVtb3ZlX25vZGUoTm9kZSkgLT4KLSsgICAgbW5lc2lhOmRlbF90YWJsZV9jb3B5KHNjaGVt YSwgbGlzdF90b19hdG9tKE5vZGUpKSwKLSsgICAgb2suCi0rCi0rZXhwb3J0Mm9kYmMoSG9zdCwg RGlyZWN0b3J5KSAtPgotKyAgICBUYWJsZXMgPSBbCi0rCSAgICAgIHtleHBvcnRfbGFzdCwgbGFz dH0sCi0rCSAgICAgIHtleHBvcnRfb2ZmbGluZSwgb2ZmbGluZX0sCi0rCSAgICAgIHtleHBvcnRf cGFzc3dkLCBwYXNzd2R9LAotKwkgICAgICB7ZXhwb3J0X3ByaXZhdGVfc3RvcmFnZSwgcHJpdmF0 ZV9zdG9yYWdlfSwKLSsJICAgICAge2V4cG9ydF9yb3N0ZXIsIHJvc3Rlcn0sCi0rCSAgICAgIHtl eHBvcnRfdmNhcmQsIHZjYXJkfSwKLSsJICAgICAge2V4cG9ydF92Y2FyZF9zZWFyY2gsIHZjYXJk X3NlYXJjaH1dLAotKyAgICBFeHBvcnQgPSBmdW4oe1RhYmxlRnVuLCBUYWJsZX0pIC0+Ci0rCQkg ICAgIEZpbGVuYW1lID0gZmlsZW5hbWU6am9pbihbRGlyZWN0b3J5LCBhdG9tX3RvX2xpc3QoVGFi bGUpKysiLnR4dCJdKSwKLSsJCSAgICAgaW86Zm9ybWF0KCJUcnlpbmcgdG8gZXhwb3J0IE1uZXNp YSB0YWJsZSAnfnAnIG9uIEhvc3QgJ35zJyB0byBmaWxlICd+cyd+biIsIFtUYWJsZSwgSG9zdCwg RmlsZW5hbWVdKSwKLSsJCSAgICAgUmVzID0gKGNhdGNoIGVqZDJvZGJjOlRhYmxlRnVuKEhvc3Qs IEZpbGVuYW1lKSksCi0rCQkgICAgIGlvOmZvcm1hdCgiICBSZXN1bHQ6IH5wfm4iLCBbUmVzXSkK LSsJICAgICBlbmQsCi0rICAgIGxpc3RzOmZvcmVhY2goRXhwb3J0LCBUYWJsZXMpLAotKyAgICBv ay4KLSsKLSsKLSslJSUKLSslJSUgQWNjb3VudHMKLSslJSUKLSsKLStzZXRfcGFzc3dvcmQoVXNl ciwgSG9zdCwgUGFzc3dvcmQpIC0+Ci0rICAgIGNhc2UgZWphYmJlcmRfYXV0aDpzZXRfcGFzc3dv cmQoVXNlciwgSG9zdCwgUGFzc3dvcmQpIG9mCi0rCW9rIC0+Ci0rCSAgICBvazsKLSsJXyAtPgot KwkgICAgZXJyb3IKLSsgICAgZW5kLgotKwotKyUlIENvcGllZCBzb21lIGNvZGUgZnJvbSBlamFi YmVyZF9jb21tYW5kcy5lcmwKLStjaGVja19wYXNzd29yZF9oYXNoKFVzZXIsIEhvc3QsIFBhc3N3 b3JkSGFzaCwgSGFzaE1ldGhvZCkgLT4KLSsgICAgQWNjb3VudFBhc3MgPSBlamFiYmVyZF9hdXRo OmdldF9wYXNzd29yZF9zKFVzZXIsIEhvc3QpLAotKyAgICBBY2NvdW50UGFzc0hhc2ggPSBjYXNl IEhhc2hNZXRob2Qgb2YKLSsJCQkgICJtZDUiIC0+IGdldF9tZDUoQWNjb3VudFBhc3MpOwotKwkJ CSAgInNoYSIgLT4gZ2V0X3NoYShBY2NvdW50UGFzcyk7Ci0rCQkJICBfIC0+IHVuZGVmaW5lZAot KwkJICAgICAgZW5kLAotKyAgICBjYXNlIEFjY291bnRQYXNzSGFzaCBvZgotKwl1bmRlZmluZWQg LT4gZXJyb3I7Ci0rCVBhc3N3b3JkSGFzaCAtPiBvazsKLSsJXyAtPiBlcnJvcgotKyAgICBlbmQu Ci0rZ2V0X21kNShBY2NvdW50UGFzcykgLT4KLSsgICAgbGlzdHM6ZmxhdHRlbihbaW9fbGliOmZv cm1hdCgifi4xNkIiLCBbWF0pCi0rCQkgICB8fCBYIDwtIGJpbmFyeV90b19saXN0KGNyeXB0bzpt ZDUoQWNjb3VudFBhc3MpKV0pLgotK2dldF9zaGEoQWNjb3VudFBhc3MpIC0+Ci0rICAgIGxpc3Rz OmZsYXR0ZW4oW2lvX2xpYjpmb3JtYXQoIn4uMTZCIiwgW1hdKQotKwkJICAgfHwgWCA8LSBiaW5h cnlfdG9fbGlzdChjcnlwdG86c2hhKEFjY291bnRQYXNzKSldKS4KLSsKLStudW1fYWN0aXZlX3Vz ZXJzKEhvc3QsIERheXMpIC0+Ci0rICAgIGxpc3RfbGFzdF9hY3Rpdml0eShIb3N0LCB0cnVlLCBE YXlzKS4KLSsKLSslJSBDb2RlIGJhc2VkIG9uIGVqYWJiZXJkL3NyYy93ZWIvZWphYmJlcmRfd2Vi X2FkbWluLmVybAotK2xpc3RfbGFzdF9hY3Rpdml0eShIb3N0LCBJbnRlZ3JhbCwgRGF5cykgLT4K LSsgICAge01lZ2FTZWNzLCBTZWNzLCBfTWljcm9TZWNzfSA9IG5vdygpLAotKyAgICBUaW1lU3Rh bXAgPSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBTZWNzLAotKyAgICBUUyA9IFRpbWVTdGFtcCAtIERh eXMgKiA4NjQwMCwKLSsgICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlfc2VsZWN0KAotKwkJIGxh c3RfYWN0aXZpdHksIFt7e2xhc3RfYWN0aXZpdHksIHsnXycsIEhvc3R9LCAnJDEnLCAnXyd9LAot KwkJCQkgIFt7Jz4nLCAnJDEnLCBUU31dLAotKwkJCQkgIFt7J3RydW5jJywgeycvJywKLSsJCQkJ CSAgICAgIHsnLScsIFRpbWVTdGFtcCwgJyQxJ30sCi0rCQkJCQkgICAgICA4NjQwMH19XX1dKSBv ZgotKwkJCQkJCQkgICAgICB7J0VYSVQnLCBfUmVhc29ufSAtPgotKwkJIFtdOwotKwkgICAgICAg VmFscyAtPgotKwkJIEhpc3QgPSBoaXN0b2dyYW0oVmFscywgSW50ZWdyYWwpLAotKwkJIGlmCi0r CQkgICAgIEhpc3QgPT0gW10gLT4KLSsJCQkgMDsKLSsJCSAgICAgdHJ1ZSAtPgotKwkJCSBMZWZ0 ID0gRGF5cyAtIGxlbmd0aChIaXN0KSwKLSsJCQkgVGFpbCA9IGlmCi0rCQkJCSAgICBJbnRlZ3Jh bCAtPgotKwkJCQkJbGlzdHM6ZHVwbGljYXRlKExlZnQsIGxpc3RzOmxhc3QoSGlzdCkpOwotKwkJ CQkgICAgdHJ1ZSAtPgotKwkJCQkJbGlzdHM6ZHVwbGljYXRlKExlZnQsIDApCi0rCQkJCWVuZCwK LSsJCQkgbGlzdHM6bnRoKERheXMsIEhpc3QgKysgVGFpbCkKLSsJCSBlbmQKLSsJIGVuZC4KLSto aXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCkgLT4KLSsgICAgaGlzdG9ncmFtKGxpc3RzOnNvcnQo VmFsdWVzKSwgSW50ZWdyYWwsIDAsIDAsIFtdKS4KLStoaXN0b2dyYW0oW0ggfCBUXSwgSW50ZWdy YWwsIEN1cnJlbnQsIENvdW50LCBIaXN0KSB3aGVuIEN1cnJlbnQgPT0gSCAtPgotKyAgICBoaXN0 b2dyYW0oVCwgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50ICsgMSwgSGlzdCk7Ci0raGlzdG9ncmFt KFtIIHwgX10gPSBWYWx1ZXMsIEludGVncmFsLCBDdXJyZW50LCBDb3VudCwgSGlzdCkgd2hlbiBD dXJyZW50IDwgSCAtPgotKyAgICBpZgotKwlJbnRlZ3JhbCAtPgotKwkgICAgaGlzdG9ncmFtKFZh bHVlcywgSW50ZWdyYWwsIEN1cnJlbnQgKyAxLCBDb3VudCwgW0NvdW50IHwgSGlzdF0pOwotKwl0 cnVlIC0+Ci0rCSAgICBoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCwgQ3VycmVudCArIDEsIDAs IFtDb3VudCB8IEhpc3RdKQotKyAgICBlbmQ7Ci0raGlzdG9ncmFtKFtdLCBfSW50ZWdyYWwsIF9D dXJyZW50LCBDb3VudCwgSGlzdCkgLT4KLSsgICAgaWYKLSsJQ291bnQgPiAwIC0+Ci0rCSAgICBs aXN0czpyZXZlcnNlKFtDb3VudCB8IEhpc3RdKTsKLSsJdHJ1ZSAtPgotKwkgICAgbGlzdHM6cmV2 ZXJzZShIaXN0KQotKyAgICBlbmQuCi0rCi0rCi0rLXJlY29yZChsYXN0X2FjdGl2aXR5LCB7dXMs IHRpbWVzdGFtcCwgc3RhdHVzfSkuCi0rCi0rZGVsZXRlX29sZF91c2VycyhEYXlzKSAtPgotKyAg ICAlJSBHZXQgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2VycwotKyAgICBVc2VycyA9IGVqYWJi ZXJkX2F1dGg6ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSwKLSsKLSsgICAge3JlbW92ZWQs IE4sIFVSfSA9IGRlbGV0ZV9vbGRfdXNlcnMoRGF5cywgVXNlcnMpLAotKyAgICB7b2ssIGlvX2xp Yjpmb3JtYXQoIkRlbGV0ZWQgfnAgdXNlcnM6IH5wIiwgW04sIFVSXSl9LgotKwotK2RlbGV0ZV9v bGRfdXNlcnNfdmhvc3QoSG9zdCwgRGF5cykgLT4KLSsgICAgJSUgR2V0IHRoZSBsaXN0IG9mIHJl Z2lzdGVyZWQgdXNlcnMKLSsgICAgVXNlcnMgPSBlamFiYmVyZF9hdXRoOmdldF92aF9yZWdpc3Rl cmVkX3VzZXJzKEhvc3QpLAotKwotKyAgICB7cmVtb3ZlZCwgTiwgVVJ9ID0gZGVsZXRlX29sZF91 c2VycyhEYXlzLCBVc2VycyksCi0rICAgIHtvaywgaW9fbGliOmZvcm1hdCgiRGVsZXRlZCB+cCB1 c2VyczogfnAiLCBbTiwgVVJdKX0uCi0rCi0rZGVsZXRlX29sZF91c2VycyhEYXlzLCBVc2Vycykg LT4KLSsgICAgJSUgQ29udmVydCBvbGRlciB0aW1lCi0rICAgIFNlY09sZGVyID0gRGF5cyoyNCo2 MCo2MCwKLSsKLSsgICAgJSUgR2V0IGN1cnJlbnQgdGltZQotKyAgICB7TWVnYVNlY3MsIFNlY3Ms IF9NaWNyb1NlY3N9ID0gbm93KCksCi0rICAgIFRpbWVTdGFtcF9ub3cgPSBNZWdhU2VjcyAqIDEw MDAwMDAgKyBTZWNzLAotKwotKyAgICAlJSBGb3IgYSB1c2VyLCByZW1vdmUgaWYgcmVxdWlyZWQg YW5kIGFuc3dlciB0cnVlCi0rICAgIEYgPSBmdW4oe0xVc2VyLCBMU2VydmVyfSkgLT4KLSsJCSUl IENoZWNrIGlmIHRoZSB1c2VyIGlzIGxvZ2dlZAotKwkJY2FzZSBlamFiYmVyZF9zbTpnZXRfdXNl cl9yZXNvdXJjZXMoTFVzZXIsIExTZXJ2ZXIpIG9mCi0rCQkgICAgJSUgSWYgaXQgaXNudAotKwkJ ICAgIFtdIC0+Ci0rCQkJJSUgTG9vayBmb3IgaGlzIGxhc3RfYWN0aXZpdHkKLSsJCQljYXNlIG1u ZXNpYTpkaXJ0eV9yZWFkKGxhc3RfYWN0aXZpdHksIHtMVXNlciwgTFNlcnZlcn0pIG9mCi0rCQkJ ICAgICUlIElmIGl0IGlzCi0rCQkJICAgICUlIGV4aXN0ZW50OgotKwkJCSAgICBbI2xhc3RfYWN0 aXZpdHl7dGltZXN0YW1wID0gVGltZVN0YW1wfV0gLT4KLSsJCQkJJSUgZ2V0IGhpcyBhZ2UKLSsJ CQkJU2VjID0gVGltZVN0YW1wX25vdyAtIFRpbWVTdGFtcCwKLSsJCQkJJSUgSWYgaGUgaXMKLSsJ CQkJaWYKLSsJCQkJICAgICUlIHlvdW5nZXIgdGhhbiBTZWNPbGRlcjoKLSsJCQkJICAgIFNlYyA8 IFNlY09sZGVyIC0+Ci0rCQkJCQklJSBkbyBub3RoaW5nCi0rCQkJCQlmYWxzZTsKLSsJCQkJICAg ICUlIG9sZGVyOgotKwkJCQkgICAgdHJ1ZSAtPgotKwkJCQkJJSUgcmVtb3ZlIHRoZSB1c2VyCi0r CQkJCQllamFiYmVyZF9hdXRoOnJlbW92ZV91c2VyKExVc2VyLCBMU2VydmVyKSwKLSsJCQkJCXRy dWUKLSsJCQkJZW5kOwotKwkJCSAgICAlJSBub25leGlzdGVudDoKLSsJCQkgICAgW10gLT4KLSsJ CQkJJSUgcmVtb3ZlIHRoZSB1c2VyCi0rCQkJCWVqYWJiZXJkX2F1dGg6cmVtb3ZlX3VzZXIoTFVz ZXIsIExTZXJ2ZXIpLAotKwkJCQl0cnVlCi0rCQkJZW5kOwotKwkJICAgICUlIEVsc2UKLSsJCSAg ICBfIC0+Ci0rCQkJJSUgZG8gbm90aGluZwotKwkJCWZhbHNlCi0rCQllbmQKLSsJZW5kLAotKyAg ICAlJSBBcHBseSB0aGUgZnVuY3Rpb24gdG8gZXZlcnkgdXNlciBpbiB0aGUgbGlzdAotKyAgICBV c2Vyc19yZW1vdmVkID0gbGlzdHM6ZmlsdGVyKEYsIFVzZXJzKSwKLSsgICAge3JlbW92ZWQsIGxl bmd0aChVc2Vyc19yZW1vdmVkKSwgVXNlcnNfcmVtb3ZlZH0uCi0rCi0rCi0rJSUKLSslJSBCYW4g YWNjb3VudAotKwotK2Jhbl9hY2NvdW50KFVzZXIsIEhvc3QsIFJlYXNvblRleHQpIC0+Ci0rICAg IFJlYXNvbiA9IHByZXBhcmVfcmVhc29uKFJlYXNvblRleHQpLAotKyAgICBraWNrX3Nlc3Npb25z KFVzZXIsIEhvc3QsIFJlYXNvbiksCi0rICAgIHNldF9yYW5kb21fcGFzc3dvcmQoVXNlciwgSG9z dCwgUmVhc29uKSwKLSsgICAgb2suCi0rCi0ra2lja19zZXNzaW9ucyhVc2VyLCBTZXJ2ZXIsIFJl YXNvbikgLT4KLSsgICAgbGlzdHM6bWFwKAotKyAgICAgIGZ1bihSZXNvdXJjZSkgLT4KLSsJICAg ICAga2lja190aGlzX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJjZSwgUmVhc29uKQotKyAg ICAgIGVuZCwKLSsgICAgICBnZXRfcmVzb3VyY2VzKFVzZXIsIFNlcnZlcikpLgotKwotK2dldF9y ZXNvdXJjZXMoVXNlciwgU2VydmVyKSAtPgotKyAgICBsaXN0czptYXAoCi0rICAgICAgZnVuKFNl c3Npb24pIC0+Ci0rCSAgICAgIGVsZW1lbnQoMywgU2Vzc2lvbiNzZXNzaW9uLnVzcikKLSsgICAg ICBlbmQsCi0rICAgICAgZ2V0X3Nlc3Npb25zKFVzZXIsIFNlcnZlcikpLgotKwotK2dldF9zZXNz aW9ucyhVc2VyLCBTZXJ2ZXIpIC0+Ci0rICAgIExVc2VyID0gamxpYjpub2RlcHJlcChVc2VyKSwK LSsgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKLSsgICAgU2Vzc2lvbnMgPSAg bW5lc2lhOmRpcnR5X2luZGV4X3JlYWQoc2Vzc2lvbiwge0xVc2VyLCBMU2VydmVyfSwgI3Nlc3Np b24udXMpLAotKyAgICB0cnVlID0gaXNfbGlzdChTZXNzaW9ucyksCi0rICAgIFNlc3Npb25zLgot KwotK3NldF9yYW5kb21fcGFzc3dvcmQoVXNlciwgU2VydmVyLCBSZWFzb24pIC0+Ci0rICAgIE5l d1Bhc3MgPSBidWlsZF9yYW5kb21fcGFzc3dvcmQoUmVhc29uKSwKLSsgICAgc2V0X3Bhc3N3b3Jk X2F1dGgoVXNlciwgU2VydmVyLCBOZXdQYXNzKS4KLSsKLStidWlsZF9yYW5kb21fcGFzc3dvcmQo UmVhc29uKSAtPgotKyAgICBEYXRlID0gamxpYjp0aW1lc3RhbXBfdG9faXNvKGNhbGVuZGFyOnVu aXZlcnNhbF90aW1lKCkpLAotKyAgICBSYW5kb21TdHJpbmcgPSByYW5kb21zOmdldF9zdHJpbmco KSwKLSsgICAgIkJBTk5FRF9BQ0NPVU5ULS0iICsrIERhdGUgKysgIi0tIiArKyBSYW5kb21TdHJp bmcgKysgIi0tIiArKyBSZWFzb24uCi0rCi0rc2V0X3Bhc3N3b3JkX2F1dGgoVXNlciwgU2VydmVy LCBQYXNzd29yZCkgLT4KLSsgICAgb2sgPSBlamFiYmVyZF9hdXRoOnNldF9wYXNzd29yZChVc2Vy LCBTZXJ2ZXIsIFBhc3N3b3JkKS4KLSsKLStwcmVwYXJlX3JlYXNvbihbXSkgLT4KLSsgICAgIktp Y2tlZCBieSBhZG1pbmlzdHJhdG9yIjsKLStwcmVwYXJlX3JlYXNvbihbUmVhc29uXSkgLT4KLSsg ICAgUmVhc29uOwotK3ByZXBhcmVfcmVhc29uKFJlYXNvbikgd2hlbiBpc19saXN0KFJlYXNvbikg LT4KLSsgICAgUmVhc29uOwotK3ByZXBhcmVfcmVhc29uKFN0cmluZ0xpc3QpIC0+Ci0rICAgIHN0 cmluZzpqb2luKFN0cmluZ0xpc3QsICJfIikuCi0rCi0rCi0rJSUlCi0rJSUlIFNlc3Npb25zCi0r JSUlCi0rCi0rbnVtX3Jlc291cmNlcyhVc2VyLCBIb3N0KSAtPgotKyAgICBsZW5ndGgoZWphYmJl cmRfc206Z2V0X3VzZXJfcmVzb3VyY2VzKFVzZXIsIEhvc3QpKS4KLSsKLStyZXNvdXJjZV9udW0o VXNlciwgSG9zdCwgTnVtKSAtPgotKyAgICBSZXNvdXJjZXMgPSBlamFiYmVyZF9zbTpnZXRfdXNl cl9yZXNvdXJjZXMoVXNlciwgSG9zdCksCi0rICAgIGNhc2UgKDA8TnVtKSBhbmQgKE51bT08bGVu Z3RoKFJlc291cmNlcykpIG9mCi0rCXRydWUgLT4KLSsJICAgIGxpc3RzOm50aChOdW0sIFJlc291 cmNlcyk7Ci0rCWZhbHNlIC0+Ci0rCSAgICBsaXN0czpmbGF0dGVuKGlvX2xpYjpmb3JtYXQoIkVy cm9yOiBXcm9uZyByZXNvdXJjZSBudW1iZXI6IH5wIiwgW051bV0pKQotKyAgICBlbmQuCi0rCi0r a2lja19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3VyY2UsIFJlYXNvblRleHQpIC0+Ci0rICAg IGtpY2tfdGhpc19zZXNzaW9uKFVzZXIsIFNlcnZlciwgUmVzb3VyY2UsIHByZXBhcmVfcmVhc29u KFJlYXNvblRleHQpKSwKLSsgICAgb2suCi0rCi0ra2lja190aGlzX3Nlc3Npb24oVXNlciwgU2Vy dmVyLCBSZXNvdXJjZSwgUmVhc29uKSAtPgotKyAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoCi0r ICAgICAgamxpYjptYWtlX2ppZCgiIiwgIiIsICIiKSwKLSsgICAgICBqbGliOm1ha2VfamlkKFVz ZXIsIFNlcnZlciwgUmVzb3VyY2UpLAotKyAgICAgIHt4bWxlbGVtZW50LCAiYnJvYWRjYXN0Iiwg W10sIFt7ZXhpdCwgUmVhc29ufV19KS4KLSsKLSsKLStzdGF0dXNfbnVtKEhvc3QsIFN0YXR1cykg LT4KLSsgICAgbGVuZ3RoKGdldF9zdGF0dXNfbGlzdChIb3N0LCBTdGF0dXMpKS4KLStzdGF0dXNf bnVtKFN0YXR1cykgLT4KLSsgICAgc3RhdHVzX251bSgiYWxsIiwgU3RhdHVzKS4KLStzdGF0dXNf bGlzdChIb3N0LCBTdGF0dXMpIC0+Ci0rICAgIFJlcyA9IGdldF9zdGF0dXNfbGlzdChIb3N0LCBT dGF0dXMpLAotKyAgICBbe1UsIFMsIFIsIFAsIFN0fSB8fCB7VSwgUywgUiwgUCwgU3R9IDwtIFJl c10uCi0rc3RhdHVzX2xpc3QoU3RhdHVzKSAtPgotKyAgICBzdGF0dXNfbGlzdCgiYWxsIiwgU3Rh dHVzKS4KLSsKLSsKLStnZXRfc3RhdHVzX2xpc3QoSG9zdCwgU3RhdHVzX3JlcXVpcmVkKSAtPgot KyAgICAlJSBHZXQgbGlzdCBvZiBhbGwgbG9nZ2VkIHVzZXJzCi0rICAgIFNlc3Npb25zID0gZWph YmJlcmRfc206ZGlydHlfZ2V0X215X3Nlc3Npb25zX2xpc3QoKSwKLSsgICAgJSUgUmVmb3JtYXQg dGhlIGxpc3QKLSsgICAgU2Vzc2lvbnMyID0gWyB7U2Vzc2lvbiNzZXNzaW9uLnVzciwgU2Vzc2lv biNzZXNzaW9uLnNpZCwgU2Vzc2lvbiNzZXNzaW9uLnByaW9yaXR5fSB8fCBTZXNzaW9uIDwtIFNl c3Npb25zXSwKLSsgICAgRmhvc3QgPSBjYXNlIEhvc3Qgb2YKLSsJCSJhbGwiIC0+Ci0rCQkgICAg JSUgQWxsIGhvc3RzIGFyZSByZXF1ZXN0ZWQsIHNvIGRvbnQgZmlsdGVyIGF0IGFsbAotKwkJICAg IGZ1bihfLCBfKSAtPiB0cnVlIGVuZDsKLSsJCV8gLT4KLSsJCSAgICAlJSBGaWx0ZXIgdGhlIGxp c3QsIG9ubHkgSG9zdCBpcyBpbnRlcmVzdGluZwotKwkJICAgIGZ1bihBLCBCKSAtPiBBID09IEIg ZW5kCi0rCSAgICBlbmQsCi0rICAgIFNlc3Npb25zMyA9IFsge1BpZCwgU2VydmVyLCBQcmlvcml0 eX0gfHwge3tfVXNlciwgU2VydmVyLCBfUmVzb3VyY2V9LCB7XywgUGlkfSwgUHJpb3JpdHl9IDwt IFNlc3Npb25zMiwgYXBwbHkoRmhvc3QsIFtTZXJ2ZXIsIEhvc3RdKV0sCi0rICAgICUlIEZvciBl YWNoIFBpZCwgZ2V0IGl0cyBwcmVzZW5jZQotKyAgICBTZXNzaW9uczQgPSBbIHtlamFiYmVyZF9j MnM6Z2V0X3ByZXNlbmNlKFBpZCksIFNlcnZlciwgUHJpb3JpdHl9IHx8IHtQaWQsIFNlcnZlciwg UHJpb3JpdHl9IDwtIFNlc3Npb25zM10sCi0rICAgICUlIEZpbHRlciBieSBzdGF0dXMKLSsgICAg RnN0YXR1cyA9IGNhc2UgU3RhdHVzX3JlcXVpcmVkIG9mCi0rCQkgICJhbGwiIC0+Ci0rCQkgICAg ICBmdW4oXywgXykgLT4gdHJ1ZSBlbmQ7Ci0rCQkgIF8gLT4KLSsJCSAgICAgIGZ1bihBLCBCKSAt PiBBID09IEIgZW5kCi0rCSAgICAgIGVuZCwKLSsgICAgW3tVc2VyLCBTZXJ2ZXIsIFJlc291cmNl LCBQcmlvcml0eSwgc3RyaW5naXplKFN0YXR1c190ZXh0KX0KLSsgICAgIHx8IHt7VXNlciwgUmVz b3VyY2UsIFN0YXR1cywgU3RhdHVzX3RleHR9LCBTZXJ2ZXIsIFByaW9yaXR5fSA8LSBTZXNzaW9u czQsCi0rCWFwcGx5KEZzdGF0dXMsIFtTdGF0dXMsIFN0YXR1c19yZXF1aXJlZF0pXS4KLSsKLSsl JSBNYWtlIHN0cmluZyBtb3JlIHByaW50LWZyaWVuZGx5Ci0rc3RyaW5naXplKFN0cmluZykgLT4K LSsgICAgJSUgUmVwbGFjZSBuZXdsaW5lIGNoYXJhY3RlcnMgd2l0aCBvdGhlciBjb2RlCi0rICAg IGVsZW1lbnQoMiwgcmVnZXhwOmdzdWIoU3RyaW5nLCAiXG4iLCAiXFxuIikpLgotKwotKwotKyUl JQotKyUlJSBWY2FyZAotKyUlJQotKwotK3NldF9uaWNrbmFtZShVc2VyLCBIb3N0LCBOaWNrbmFt ZSkgLT4KLSsgICAgUiA9IG1vZF92Y2FyZDpwcm9jZXNzX3NtX2lxKAotKwkgIHtqaWQsIFVzZXIs IEhvc3QsICIiLCBVc2VyLCBIb3N0LCAiIn0sCi0rCSAge2ppZCwgVXNlciwgSG9zdCwgIiIsIFVz ZXIsIEhvc3QsICIifSwKLSsJICB7aXEsICIiLCBzZXQsICIiLCAiZW4iLAotKwkgICB7eG1sZWxl bWVudCwgInZDYXJkIiwKLSsJICAgIFt7InhtbG5zIiwgInZjYXJkLXRlbXAifV0sIFsKLSsJCQkJ CXt4bWxlbGVtZW50LCAiTklDS05BTUUiLCBbXSwgW3t4bWxjZGF0YSwgTmlja25hbWV9XX0KLSsJ CQkJICAgICAgIF0KLSsJICAgfX0pLAotKyAgICBjYXNlIFIgb2YKLSsJe2lxLCBbXSwgcmVzdWx0 LCBbXSwgX0wsIFtdfSAtPgotKwkgICAgb2s7Ci0rCV8gLT4KLSsJICAgIGVycm9yCi0rICAgIGVu ZC4KLSsKLStnZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFtZSkgLT4KLSsgICAgZ2V0X3ZjYXJkX2Nv bnRlbnQoVXNlciwgSG9zdCwgW05hbWVdKS4KLSsKLStnZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFt ZSwgU3VibmFtZSkgLT4KLSsgICAgZ2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWUs IFN1Ym5hbWVdKS4KLSsKLStzZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFtZSwgQ29udGVudCkgLT4K LSsgICAgc2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWVdLCBDb250ZW50KS4KLSsK LStzZXRfdmNhcmQoVXNlciwgSG9zdCwgTmFtZSwgU3VibmFtZSwgQ29udGVudCkgLT4KLSsgICAg c2V0X3ZjYXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWUsIFN1Ym5hbWVdLCBDb250ZW50KS4K LSsKLSsKLSslJQotKyUlIEludGVybmFsIHZjYXJkCi0rCi0rZ2V0X3ZjYXJkX2NvbnRlbnQoVXNl ciwgU2VydmVyLCBEYXRhKSAtPgotKyAgICBbe18sIE1vZHVsZSwgRnVuY3Rpb24sIF9PcHRzfV0g PSBldHM6bG9va3VwKHNtX2lxdGFibGUsIHs/TlNfVkNBUkQsIFNlcnZlcn0pLAotKyAgICBKSUQg PSBqbGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgIiIpLAotKyAgICBJUSA9ICNpcXt0eXBlID0g Z2V0LCB4bWxucyA9ID9OU19WQ0FSRH0sCi0rICAgIElRciA9IE1vZHVsZTpGdW5jdGlvbihKSUQs IEpJRCwgSVEpLAotKyAgICBjYXNlIElRciNpcS5zdWJfZWwgb2YKLSsJW0ExXSAtPgotKwkgICAg Y2FzZSBnZXRfdmNhcmQoRGF0YSwgQTEpIG9mCi0rCQlmYWxzZSAtPiAiRXJyb3I6IG5vX3ZhbHVl IjsKLSsJCUVsZW0gLT4geG1sOmdldF90YWdfY2RhdGEoRWxlbSkKLSsJICAgIGVuZDsKLSsJW10g LT4KLSsJICAgICJFcnJvcjogbm9fdmNhcmQiCi0rICAgIGVuZC4KLSsKLStnZXRfdmNhcmQoW0Rh dGExLCBEYXRhMl0sIEExKSAtPgotKyAgICBjYXNlIHhtbDpnZXRfc3VidGFnKEExLCBEYXRhMSkg b2YKLSsgICAgCWZhbHNlIC0+IGZhbHNlOwotKwlBMiAtPiBnZXRfdmNhcmQoW0RhdGEyXSwgQTIp Ci0rICAgIGVuZDsKLSsKLStnZXRfdmNhcmQoW0RhdGFdLCBBMSkgLT4KLSsgICAgeG1sOmdldF9z dWJ0YWcoQTEsIERhdGEpLgotKwotK3NldF92Y2FyZF9jb250ZW50KFVzZXIsIFNlcnZlciwgRGF0 YSwgQ29udGVudCkgLT4KLSsgICAgW3tfLCBNb2R1bGUsIEZ1bmN0aW9uLCBfT3B0c31dID0gZXRz Omxvb2t1cChzbV9pcXRhYmxlLCB7P05TX1ZDQVJELCBTZXJ2ZXJ9KSwKLSsgICAgSklEID0gamxp YjptYWtlX2ppZChVc2VyLCBTZXJ2ZXIsICIiKSwKLSsgICAgSVEgPSAjaXF7dHlwZSA9IGdldCwg eG1sbnMgPSA/TlNfVkNBUkR9LAotKyAgICBJUXIgPSBNb2R1bGU6RnVuY3Rpb24oSklELCBKSUQs IElRKSwKLSsKLSsgICAgJSUgR2V0IG9sZCB2Y2FyZAotKyAgICBBNCA9IGNhc2UgSVFyI2lxLnN1 Yl9lbCBvZgotKwkgICAgIFtBMV0gLT4KLSsJCSB7XywgXywgXywgQTJ9ID0gQTEsCi0rCQkgdXBk YXRlX3ZjYXJkX2VscyhEYXRhLCBDb250ZW50LCBBMik7Ci0rCSAgICAgW10gLT4KLSsJCSB1cGRh dGVfdmNhcmRfZWxzKERhdGEsIENvbnRlbnQsIFtdKQotKwkgZW5kLAotKwotKyAgICAlJSBCdWls ZCBuZXcgdmNhcmQKLSsgICAgU3ViRWwgPSB7eG1sZWxlbWVudCwgInZDYXJkIiwgW3sieG1sbnMi LCJ2Y2FyZC10ZW1wIn1dLCBBNH0sCi0rICAgIElRMiA9ICNpcXt0eXBlPXNldCwgc3ViX2VsID0g U3ViRWx9LAotKwotKyAgICBNb2R1bGU6RnVuY3Rpb24oSklELCBKSUQsIElRMiksCi0rICAgIG9r LgotKwotK3VwZGF0ZV92Y2FyZF9lbHMoRGF0YSwgQ29udGVudCwgRWxzMSkgLT4KLSsgICAgRWxz MiA9IGxpc3RzOmtleXNvcnQoMiwgRWxzMSksCi0rICAgIFtEYXRhMSB8IERhdGEyXSA9IERhdGEs Ci0rICAgIE5ld0VsID0gY2FzZSBEYXRhMiBvZgotKwkJW10gLT4KLSsJCSAgICB7eG1sZWxlbWVu dCwgRGF0YTEsIFtdLCBbe3htbGNkYXRhLENvbnRlbnR9XX07Ci0rCQlbRDJdIC0+Ci0rCQkgICAg T2xkRWwgPSBjYXNlIGxpc3RzOmtleXNlYXJjaChEYXRhMSwgMiwgRWxzMikgb2YKLSsJCQkJe3Zh bHVlLCBBfSAtPiBBOwotKwkJCQlmYWxzZSAtPiB7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBbXX0K LSsJCQkgICAgZW5kLAotKwkJICAgIHt4bWxlbGVtZW50LCBfLCBfLCBDb250ZW50T2xkMX0gPSBP bGRFbCwKLSsJCSAgICBDb250ZW50MiA9IFt7eG1sZWxlbWVudCwgRDIsIFtdLCBbe3htbGNkYXRh LENvbnRlbnR9XX1dLAotKwkJICAgIENvbnRlbnRPbGQyID0gbGlzdHM6a2V5c29ydCgyLCBDb250 ZW50T2xkMSksCi0rCQkgICAgQ29udGVudE9sZDMgPSBsaXN0czprZXlkZWxldGUoRDIsIDIsIENv bnRlbnRPbGQyKSwKLSsJCSAgICBDb250ZW50TmV3ID0gbGlzdHM6a2V5bWVyZ2UoMiwgQ29udGVu dDIsIENvbnRlbnRPbGQzKSwKLSsJCSAgICB7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBDb250ZW50 TmV3fQotKwkgICAgZW5kLAotKyAgICBFbHMzID0gbGlzdHM6a2V5ZGVsZXRlKERhdGExLCAyLCBF bHMyKSwKLSsgICAgbGlzdHM6a2V5bWVyZ2UoMiwgW05ld0VsXSwgRWxzMykuCi0rCi0rCi0rJSUl Ci0rJSUlIFJvc3RlcgotKyUlJQotKwotK2FkZF9yb3N0ZXJpdGVtKExvY2FsVXNlciwgTG9jYWxT ZXJ2ZXIsIFVzZXIsIFNlcnZlciwgTmljaywgR3JvdXAsIFN1YnMpIC0+Ci0rICAgIGNhc2UgYWRk X3Jvc3Rlcml0ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgVXNlciwgU2VydmVyLCBOaWNrLCBH cm91cCwgbGlzdF90b19hdG9tKFN1YnMpLCBbXSkgb2YKLSsJe2F0b21pYywgb2t9IC0+Ci0rCSAg ICBwdXNoX3Jvc3Rlcl9pdGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFVzZXIsIFNlcnZlciwg e2FkZCwgTmljaywgU3VicywgR3JvdXB9KSwKLSsJICAgIG9rOwotKwlfIC0+Ci0rCSAgICBlcnJv cgotKyAgICBlbmQuCi0rCi0rYWRkX3Jvc3Rlcml0ZW0oTFUsIExTLCBVc2VyLCBTZXJ2ZXIsIE5p Y2ssIEdyb3VwLCBTdWJzY3JpcHRpb24sIFhhdHRycykgLT4KLSsgICAgc3Vic2NyaWJlKExVLCBM UywgVXNlciwgU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vic2NyaXB0aW9uLCBYYXR0cnMpLgotKwot K3N1YnNjcmliZShMVSwgTFMsIFVzZXIsIFNlcnZlciwgTmljaywgR3JvdXAsIFN1YnNjcmlwdGlv biwgWGF0dHJzKSAtPgotKyAgICBtbmVzaWE6dHJhbnNhY3Rpb24oCi0rICAgICAgZnVuKCkgLT4K LSsJICAgICAgbW5lc2lhOndyaXRlKHtyb3N0ZXIsCi0rCQkJICAgIHtMVSxMUyx7VXNlcixTZXJ2 ZXIsW119fSwgJSB1agotKwkJCSAgICB7TFUsTFN9LCAgICAgICAgICAgICAgICAgICUgdXNlcgot KwkJCSAgICB7VXNlcixTZXJ2ZXIsW119LCAgICAgICUgamlkCi0rCQkJICAgIE5pY2ssICAgICAg ICAgICAgICAgICAgJSBuYW1lOiAiTW9tIiwgW10KLSsJCQkgICAgU3Vic2NyaXB0aW9uLCAgJSBz dWJzY3JpcHRpb246IG5vbmUsIHRvPXlvdSBzZWUgaGltLCBmcm9tPWhlIHNlZXMgeW91LCBib3Ro Ci0rCQkJICAgIG5vbmUsICAgICAgICAgICUgYXNrOiBvdXQ9c2VuZCByZXF1ZXN0LCBpbj1zb21l Ym9keSByZXF1ZXN0cyB5b3UsIG5vbmUKLSsJCQkgICAgW0dyb3VwXSwgICAgICAgJSBncm91cHM6 IFsiRmFtaWx5Il0KLSsJCQkgICAgWGF0dHJzLCAgICAgICAgJSB4YXR0cnM6IFt7ImNhdGVnb3J5 IiwiY29uZmVyZW5jZSJ9XQotKwkJCSAgICBbXSAgICAgICAgICAgICAlIHhzOiBbXQotKwkJCSAg IH0pCi0rICAgICAgZW5kKS4KLSsKLStkZWxldGVfcm9zdGVyaXRlbShMb2NhbFVzZXIsIExvY2Fs U2VydmVyLCBVc2VyLCBTZXJ2ZXIpIC0+Ci0rICAgIGNhc2UgdW5zdWJzY3JpYmUoTG9jYWxVc2Vy LCBMb2NhbFNlcnZlciwgVXNlciwgU2VydmVyKSBvZgotKwl7YXRvbWljLCBva30gLT4KLSsJICAg IHB1c2hfcm9zdGVyX2l0ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgVXNlciwgU2VydmVyLCBy ZW1vdmUpLAotKwkgICAgb2s7Ci0rCV8gIC0+Ci0rCSAgICBlcnJvcgotKyAgICBlbmQuCi0rCi0r dW5zdWJzY3JpYmUoTFUsIExTLCBVc2VyLCBTZXJ2ZXIpIC0+Ci0rICAgIG1uZXNpYTp0cmFuc2Fj dGlvbigKLSsgICAgICBmdW4oKSAtPgotKyAgICAgICAgICAgICAgbW5lc2lhOmRlbGV0ZSh7cm9z dGVyLCB7TFUsIExTLCB7VXNlciwgU2VydmVyLCBbXX19fSkKLSsgICAgICBlbmQpLgotKwotKwot KyUlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJSUgR2V0IFJvc3RlcgotKyUlIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0rZ2V0X3Jvc3RlcihVc2VyLCBTZXJ2ZXIp IC0+Ci0rICAgIHtvaywgUm9zdGVyfSA9IGdldF9yb3N0ZXIyKFVzZXIsIFNlcnZlciksCi0rICAg IG1ha2Vfcm9zdGVyX3htbHJwYyhSb3N0ZXIpLgotKwotK2dldF9yb3N0ZXIyKFVzZXIsIFNlcnZl cikgLT4KLSsgICAgTW9kdWxlcyA9IGdlbl9tb2Q6bG9hZGVkX21vZHVsZXMoU2VydmVyKSwKLSsg ICAgUm9zdGVyID0gY2FzZSBsaXN0czptZW1iZXIobW9kX3Jvc3RlciwgTW9kdWxlcykgb2YKLSsJ CSB0cnVlIC0+Ci0rCQkgICAgIG1vZF9yb3N0ZXI6Z2V0X3VzZXJfcm9zdGVyKFtdLCB7VXNlciwg U2VydmVyfSk7Ci0rCQkgZmFsc2UgLT4KLSsJCSAgICAgY2FzZSBsaXN0czptZW1iZXIobW9kX3Jv c3Rlcl9vZGJjLCBNb2R1bGVzKSBvZgotKwkJCSB0cnVlIC0+Ci0rCQkJICAgICBtb2Rfcm9zdGVy X29kYmM6Z2V0X3VzZXJfcm9zdGVyKFtdLCB7VXNlciwgU2VydmVyfSk7Ci0rCQkJIGZhbHNlIC0+ Ci0rCQkJICAgICB7ZXJyb3IsICJOZWl0aGVyIG1vZF9yb3N0ZXIgb3IgbW9kX3Jvc3Rlcl9vZGJj IGFyZSBlbmFibGVkIn0KLSsJCSAgICAgZW5kCi0rCSAgICAgZW5kLAotKyAgICB7b2ssIFJvc3Rl cn0uCi0rCi0rJSUgTm90ZTogaWYgYSBjb250YWN0IGlzIGluIHNldmVyYWwgZ3JvdXBzLCB0aGUg Y29udGFjdCBpcyByZXR1cm5lZAotKyUlIHNldmVyYWwgdGltZXMsIGVhY2ggb25lIGluIGEgZGlm ZmVyZW50IGdyb3VwLgotK21ha2Vfcm9zdGVyX3htbHJwYyhSb3N0ZXIpIC0+Ci0rICAgIGxpc3Rz OmZvbGRsKAotKyAgICAgIGZ1bihJdGVtLCBSZXMpIC0+Ci0rCSAgICAgIEpJRFMgPSBqbGliOmpp ZF90b19zdHJpbmcoSXRlbSNyb3N0ZXIuamlkKSwKLSsJICAgICAgTmljayA9IEl0ZW0jcm9zdGVy Lm5hbWUsCi0rCSAgICAgIEdyb3VwcyA9IGNhc2UgSXRlbSNyb3N0ZXIuZ3JvdXBzIG9mCi0rCQkJ ICAgW10gLT4gWyIiXTsKLSsJCQkgICBHcyAtPiBHcwotKwkJICAgICAgIGVuZCwKLSsJICAgICAg SXRlbXNYID0gW3tKSURTLCBOaWNrLCBHcm91cH0KLSsJCQl8fCBHcm91cCA8LSBHcm91cHNdLAot KwkgICAgICBJdGVtc1ggKysgUmVzCi0rICAgICAgZW5kLAotKyAgICAgIFtdLAotKyAgICAgIFJv c3RlcikuCi0rCi0rCi0rJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyUlIFB1c2gg Um9zdGVyIGZyb20gZmlsZQotKyUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLStw dXNoX3Jvc3RlcihGaWxlLCBVc2VyLCBTZXJ2ZXIpIC0+Ci0rICAgIHtvaywgW1Jvc3Rlcl19ID0g ZmlsZTpjb25zdWx0KEZpbGUpLAotKyAgICBzdWJzY3JpYmVfcm9zdGVyKHtVc2VyLCBTZXJ2ZXIs ICIiLCBVc2VyfSwgUm9zdGVyKS4KLSsKLStwdXNoX3Jvc3Rlcl9hbGwoRmlsZSkgLT4KLSsgICAg e29rLCBbUm9zdGVyXX0gPSBmaWxlOmNvbnN1bHQoRmlsZSksCi0rICAgIHN1YnNjcmliZV9hbGwo Um9zdGVyKS4KLSsKLStzdWJzY3JpYmVfYWxsKFJvc3RlcikgLT4KLSsgICAgc3Vic2NyaWJlX2Fs bChSb3N0ZXIsIFJvc3RlcikuCi0rc3Vic2NyaWJlX2FsbChbXSwgXykgLT4KLSsgICAgb2s7Ci0r c3Vic2NyaWJlX2FsbChbVXNlcjEgfCBVc2Vyc10sIFJvc3RlcikgLT4KLSsgICAgc3Vic2NyaWJl X3Jvc3RlcihVc2VyMSwgUm9zdGVyKSwKLSsgICAgc3Vic2NyaWJlX2FsbChVc2VycywgUm9zdGVy KS4KLSsKLStzdWJzY3JpYmVfcm9zdGVyKF8sIFtdKSAtPgotKyAgICBvazsKLSslJSBEbyBub3Qg c3Vic2NyaWJlIGEgdXNlciB0byBpdHNlbGYKLStzdWJzY3JpYmVfcm9zdGVyKHtOYW1lLCBTZXJ2 ZXIsIEdyb3VwLCBOaWNrfSwgW3tOYW1lLCBTZXJ2ZXIsIF8sIF99IHwgUm9zdGVyXSkgLT4KLSsg ICAgc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZSwgU2VydmVyLCBHcm91cCwgTmlja30sIFJvc3Rlcik7 Ci0rJSUgU3Vic2NyaWJlIE5hbWUyIHRvIE5hbWUxCi0rc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZTEs IFNlcnZlcjEsIEdyb3VwMSwgTmljazF9LCBbe05hbWUyLCBTZXJ2ZXIyLCBHcm91cDIsIE5pY2sy fSB8IFJvc3Rlcl0pIC0+Ci0rICAgIHN1YnNjcmliZShOYW1lMSwgU2VydmVyMSwgTmFtZTIsIFNl cnZlcjIsIE5pY2syLCBHcm91cDIsIGJvdGgsIFtdKSwKLSsgICAgc3Vic2NyaWJlX3Jvc3Rlcih7 TmFtZTEsIFNlcnZlcjEsIEdyb3VwMSwgTmljazF9LCBSb3N0ZXIpLgotKwotK3B1c2hfYWxsdG9h bGwoUywgRykgLT4KLSsgICAgVXNlcnMgPSBlamFiYmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVk X3VzZXJzKFMpLAotKyAgICBVc2VyczIgPSBidWlsZF9saXN0X3VzZXJzKEcsIFVzZXJzLCBbXSks Ci0rICAgIHN1YnNjcmliZV9hbGwoVXNlcnMyKSwKLSsgICAgb2suCi0rCi0rYnVpbGRfbGlzdF91 c2VycyhfR3JvdXAsIFtdLCBSZXMpIC0+Ci0rICAgIFJlczsKLStidWlsZF9saXN0X3VzZXJzKEdy b3VwLCBbe1VzZXIsIFNlcnZlcn18VXNlcnNdLCBSZXMpIC0+Ci0rICAgIGJ1aWxkX2xpc3RfdXNl cnMoR3JvdXAsIFVzZXJzLCBbe1VzZXIsIFNlcnZlciwgR3JvdXAsIFVzZXJ9fFJlc10pLgotKwot KyUlIEBzcGVjKExVLCBMUywgVSwgUywgQWN0aW9uKSAtPiBvawotKyUlICAgICAgIEFjdGlvbiA9 IHthZGQsIE5pY2ssIFN1YnMsIEdyb3VwfSB8IHJlbW92ZQotKyUlIEBkb2MgUHVzaCB0byB0aGUg cm9zdGVyIG9mIGFjY291bnQgTFVATFMgdGhlIGNvbnRhY3QgVUBTLgotKyUlIFRoZSBzcGVjaWZp YyBhY3Rpb24gdG8gcGVyZm9ybSBpcyBkZWZpbmVkIGluIEFjdGlvbi4KLStwdXNoX3Jvc3Rlcl9p dGVtKExVLCBMUywgVSwgUywgQWN0aW9uKSAtPgotKyAgICBsaXN0czpmb3JlYWNoKGZ1bihSKSAt PgotKwkJCSAgcHVzaF9yb3N0ZXJfaXRlbShMVSwgTFMsIFIsIFUsIFMsIEFjdGlvbikKLSsJCSAg ZW5kLCBlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoTFUsIExTKSkuCi0rCi0rcHVzaF9y b3N0ZXJfaXRlbShMVSwgTFMsIFIsIFUsIFMsIEFjdGlvbikgLT4KLSsgICAgSXRlbSA9IGJ1aWxk X3Jvc3Rlcl9pdGVtKFUsIFMsIEFjdGlvbiksCi0rICAgIFJlc0lRID0gYnVpbGRfaXFfcm9zdGVy X3B1c2goSXRlbSksCi0rICAgIExKSUQgPSBqbGliOm1ha2VfamlkKExVLCBMUywgUiksCi0rICAg IGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShMSklELCBMSklELCBSZXNJUSkuCi0rCi0rYnVpbGRfcm9z dGVyX2l0ZW0oVSwgUywge2FkZCwgTmljaywgU3VicywgR3JvdXB9KSAtPgotKyAgICB7eG1sZWxl bWVudCwgIml0ZW0iLAotKyAgICAgW3siamlkIiwgamxpYjpqaWRfdG9fc3RyaW5nKGpsaWI6bWFr ZV9qaWQoVSwgUywgIiIpKX0sCi0rICAgICAgeyJuYW1lIiwgTmlja30sCi0rICAgICAgeyJzdWJz Y3JpcHRpb24iLCBTdWJzfV0sCi0rICAgICBbe3htbGVsZW1lbnQsICJncm91cCIsIFtdLCBbe3ht bGNkYXRhLCBHcm91cH1dfV0KLSsgICAgfTsKLStidWlsZF9yb3N0ZXJfaXRlbShVLCBTLCByZW1v dmUpIC0+Ci0rICAgIHt4bWxlbGVtZW50LCAiaXRlbSIsCi0rICAgICBbeyJqaWQiLCBqbGliOmpp ZF90b19zdHJpbmcoamxpYjptYWtlX2ppZChVLCBTLCAiIikpfSwKLSsgICAgICB7InN1YnNjcmlw dGlvbiIsICJyZW1vdmUifV0sCi0rICAgICBbXQotKyAgICB9LgotKwotK2J1aWxkX2lxX3Jvc3Rl cl9wdXNoKEl0ZW0pIC0+Ci0rICAgIHt4bWxlbGVtZW50LCAiaXEiLAotKyAgICAgW3sidHlwZSIs ICJzZXQifSwgeyJpZCIsICJwdXNoIn1dLAotKyAgICAgW3t4bWxlbGVtZW50LCAicXVlcnkiLAot KyAgICAgICBbeyJ4bWxucyIsID9OU19ST1NURVJ9XSwKLSsgICAgICAgW0l0ZW1dCi0rICAgICAg fQotKyAgICAgXQotKyAgICB9LgotKwotKwotKyUlJQotKyUlJSBTaGFyZWQgUm9zdGVyIEdyb3Vw cwotKyUlJQotKwotK3NyZ19jcmVhdGUoR3JvdXAsIEhvc3QsIE5hbWUsIERlc2NyaXB0aW9uLCBE aXNwbGF5KSAtPgotKyAgICB7b2ssIERpc3BsYXlMaXN0fSA9IHJlZ2V4cDpzcGxpdChEaXNwbGF5 LCAiXFxcXG4iKSwKLSsgICAgT3B0cyA9IFt7bmFtZSwgTmFtZX0sCi0rCSAgICB7ZGlzcGxheWVk X2dyb3VwcywgRGlzcGxheUxpc3R9LAotKwkgICAge2Rlc2NyaXB0aW9uLCBEZXNjcmlwdGlvbn1d LAotKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpjcmVhdGVfZ3JvdXAoSG9z dCwgR3JvdXAsIE9wdHMpLAotKyAgICBvay4KLSsKLStzcmdfZGVsZXRlKEdyb3VwLCBIb3N0KSAt PgotKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpkZWxldGVfZ3JvdXAoSG9z dCwgR3JvdXApLAotKyAgICBvay4KLSsKLStzcmdfbGlzdChIb3N0KSAtPgotKyAgICBsaXN0czpz b3J0KG1vZF9zaGFyZWRfcm9zdGVyOmxpc3RfZ3JvdXBzKEhvc3QpKS4KLSsKLStzcmdfZ2V0X2lu Zm8oR3JvdXAsIEhvc3QpIC0+Ci0rICAgIE9wdHMgPSBtb2Rfc2hhcmVkX3Jvc3RlcjpnZXRfZ3Jv dXBfb3B0cyhIb3N0LEdyb3VwKSwKLSsgICAgW3tpb19saWI6Zm9ybWF0KCJ+cCIsIFtUaXRsZV0p LAotKyAgICAgIGlvX2xpYjpmb3JtYXQoIn5wIiwgW1ZhbHVlXSl9IHx8IHtUaXRsZSwgVmFsdWV9 IDwtIE9wdHNdLgotKwotK3NyZ19nZXRfbWVtYmVycyhHcm91cCwgSG9zdCkgLT4KLSsgICAgTWVt YmVycyA9IG1vZF9zaGFyZWRfcm9zdGVyOmdldF9ncm91cF9leHBsaWNpdF91c2VycyhIb3N0LEdy b3VwKSwKLSsgICAgW2psaWI6amlkX3RvX3N0cmluZyhqbGliOm1ha2VfamlkKE1Vc2VyLCBNU2Vy dmVyLCAiIikpCi0rICAgICB8fCB7TVVzZXIsIE1TZXJ2ZXJ9IDwtIE1lbWJlcnNdLgotKwotK3Ny Z191c2VyX2FkZChVc2VyLCBIb3N0LCBHcm91cCwgR3JvdXBIb3N0KSAtPgotKyAgICB7YXRvbWlj LCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjphZGRfdXNlcl90b19ncm91cChHcm91cEhvc3QsIHtV c2VyLCBIb3N0fSwgR3JvdXApLAotKyAgICBvay4KLSsKLStzcmdfdXNlcl9kZWwoVXNlciwgSG9z dCwgR3JvdXAsIEdyb3VwSG9zdCkgLT4KLSsgICAge2F0b21pYywgb2t9ID0gbW9kX3NoYXJlZF9y b3N0ZXI6cmVtb3ZlX3VzZXJfZnJvbV9ncm91cChHcm91cEhvc3QsIHtVc2VyLCBIb3N0fSwgR3Jv dXApLAotKyAgICBvay4KLSsKLSsKLSslJSUKLSslJSUgU3RhbnphCi0rJSUlCi0rCi0rJSUgQGRv YyBTZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgSmFiYmVyIGFjY291bnQuCi0rJSUgQHNwZWMgKEZy b206OnN0cmluZygpLCBUbzo6c3RyaW5nKCksIEJvZHk6OnN0cmluZygpKSAtPiBvawotK3NlbmRf bWVzc2FnZV9jaGF0KEZyb20sIFRvLCBCb2R5KSAtPgotKyAgICBQYWNrZXQgPSBidWlsZF9wYWNr ZXQobWVzc2FnZV9jaGF0LCBbQm9keV0pLAotKyAgICBzZW5kX3BhY2tldF9hbGxfcmVzb3VyY2Vz KEZyb20sIFRvLCBQYWNrZXQpLgotKwotKyUlIEBkb2MgU2VuZCBhIGhlYWRsaW5lIG1lc3NhZ2Ug dG8gYSBKYWJiZXIgYWNjb3VudC4KLSslJSBAc3BlYyAoRnJvbTo6c3RyaW5nKCksIFRvOjpzdHJp bmcoKSwgU3ViamVjdDo6c3RyaW5nKCksIEJvZHk6OnN0cmluZygpKSAtPiBvawotK3NlbmRfbWVz c2FnZV9oZWFkbGluZShGcm9tLCBUbywgU3ViamVjdCwgQm9keSkgLT4KLSsgICAgUGFja2V0ID0g YnVpbGRfcGFja2V0KG1lc3NhZ2VfaGVhZGxpbmUsIFtTdWJqZWN0LCBCb2R5XSksCi0rICAgIHNl bmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbSwgVG8sIFBhY2tldCkuCi0rCi0rJSUgQGRvYyBT ZW5kIGEgcGFja2V0IHRvIGEgSmFiYmVyIGFjY291bnQuCi0rJSUgSWYgYSByZXNvdXJjZSB3YXMg c3BlY2lmaWVkIGluIHRoZSBKSUQsCi0rJSUgdGhlIHBhY2tldCBpcyBzZW50IG9ubHkgdG8gdGhh dCBzcGVjaWZpYyByZXNvdXJjZS4KLSslJSBJZiBubyByZXNvdXJjZSB3YXMgc3BlY2lmaWVkIGlu IHRoZSBKSUQsCi0rJSUgYW5kIHRoZSB1c2VyIGlzIHJlbW90ZSBvciBsb2NhbCBidXQgb2ZmbGlu ZSwKLSslJSB0aGUgcGFja2V0IGlzIHNlbnQgdG8gdGhlIGJhcmUgSklELgotKyUlIElmIHRoZSB1 c2VyIGlzIGxvY2FsIGFuZCBpcyBvbmxpbmUgaW4gc2V2ZXJhbCByZXNvdXJjZXMsCi0rJSUgdGhl IHBhY2tldCBpcyBzZW50IHRvIGFsbCBpdHMgcmVzb3VyY2VzLgotK3NlbmRfcGFja2V0X2FsbF9y ZXNvdXJjZXMoRnJvbUpJRFN0cmluZywgVG9KSURTdHJpbmcsIFBhY2tldCkgLT4KLSsgICAgRnJv bUpJRCA9IGpsaWI6c3RyaW5nX3RvX2ppZChGcm9tSklEU3RyaW5nKSwKLSsgICAgVG9KSUQgPSBq bGliOnN0cmluZ190b19qaWQoVG9KSURTdHJpbmcpLAotKyAgICBUb1VzZXIgPSBUb0pJRCNqaWQu dXNlciwKLSsgICAgVG9TZXJ2ZXIgPSBUb0pJRCNqaWQuc2VydmVyLAotKyAgICBjYXNlIFRvSklE I2ppZC5yZXNvdXJjZSBvZgotKwkiIiAtPgotKwkgICAgc2VuZF9wYWNrZXRfYWxsX3Jlc291cmNl cyhGcm9tSklELCBUb1VzZXIsIFRvU2VydmVyLCBQYWNrZXQpOwotKwlSZXMgLT4KLSsJICAgIHNl bmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1NlcnZlciwgUmVzLCBQ YWNrZXQpCi0rICAgIGVuZC4KLSsKLStzZW5kX3BhY2tldF9hbGxfcmVzb3VyY2VzKEZyb21KSUQs IFRvVXNlciwgVG9TZXJ2ZXIsIFBhY2tldCkgLT4KLSsgICAgY2FzZSBlamFiYmVyZF9zbTpnZXRf dXNlcl9yZXNvdXJjZXMoVG9Vc2VyLCBUb1NlcnZlcikgb2YKLSsJW10gLT4KLSsJICAgIHNlbmRf cGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1NlcnZlciwgIiIsIFBhY2tl dCk7Ci0rCVRvUmVzb3VyY2VzIC0+Ci0rCSAgICBsaXN0czpmb3JlYWNoKAotKwkgICAgICBmdW4o VG9SZXNvdXJjZSkgLT4KLSsJCSAgICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJ RCwgVG9Vc2VyLCBUb1NlcnZlciwKLSsJCQkJCQlUb1Jlc291cmNlLCBQYWNrZXQpCi0rCSAgICAg IGVuZCwKLSsJICAgICAgVG9SZXNvdXJjZXMpCi0rICAgIGVuZC4KLSsKLStzZW5kX3BhY2tldF9h bGxfcmVzb3VyY2VzKEZyb21KSUQsIFRvVSwgVG9TLCBUb1IsIFBhY2tldCkgLT4KLSsgICAgVG9K SUQgPSBqbGliOm1ha2VfamlkKFRvVSwgVG9TLCBUb1IpLAotKyAgICBlamFiYmVyZF9yb3V0ZXI6 cm91dGUoRnJvbUpJRCwgVG9KSUQsIFBhY2tldCkuCi0rCi0rCi0rYnVpbGRfcGFja2V0KG1lc3Nh Z2VfY2hhdCwgW0JvZHldKSAtPgotKyAgICB7eG1sZWxlbWVudCwgIm1lc3NhZ2UiLAotKyAgICAg W3sidHlwZSIsICJjaGF0In1dLAotKyAgICAgW3t4bWxlbGVtZW50LCAiYm9keSIsIFtdLCBbe3ht bGNkYXRhLCBCb2R5fV19XQotKyAgICB9OwotK2J1aWxkX3BhY2tldChtZXNzYWdlX2hlYWRsaW5l LCBbU3ViamVjdCwgQm9keV0pIC0+Ci0rICAgIHt4bWxlbGVtZW50LCAibWVzc2FnZSIsCi0rICAg ICBbeyJ0eXBlIiwgImhlYWRsaW5lIn1dLAotKyAgICAgW3t4bWxlbGVtZW50LCAic3ViamVjdCIs IFtdLCBbe3htbGNkYXRhLCBTdWJqZWN0fV19LAotKyAgICAgIHt4bWxlbGVtZW50LCAiYm9keSIs IFtdLCBbe3htbGNkYXRhLCBCb2R5fV19Ci0rICAgICBdCi0rICAgIH0uCi0rCi0rJSUlCi0rJSUl IFN0YXRzCi0rJSUlCi0rCi0rc3RhdHMoTmFtZSkgLT4KLSsgICAgY2FzZSBOYW1lIG9mCi0rCSJ1 cHRpbWVzZWNvbmRzIiAtPiB0cnVuYyhlbGVtZW50KDEsIGVybGFuZzpzdGF0aXN0aWNzKHdhbGxf Y2xvY2spKS8xMDAwKTsKLSsJInJlZ2lzdGVyZWR1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX2F1 dGg6ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSk7Ci0rCSJvbmxpbmV1c2Vyc25vZGUiIC0+ IGxlbmd0aChlamFiYmVyZF9zbTpkaXJ0eV9nZXRfbXlfc2Vzc2lvbnNfbGlzdCgpKTsKLSsJIm9u bGluZXVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRfc206ZGlydHlfZ2V0X3Nlc3Npb25zX2xpc3Qo KSkKLSsgICAgZW5kLgotKwotK3N0YXRzKE5hbWUsIEhvc3QpIC0+Ci0rICAgIGNhc2UgTmFtZSBv ZgotKwkicmVnaXN0ZXJlZHVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRfYXV0aDpnZXRfdmhfcmVn aXN0ZXJlZF91c2VycyhIb3N0KSk7Ci0rCSJvbmxpbmV1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJk X3NtOmdldF92aF9zZXNzaW9uX2xpc3QoSG9zdCkpCi0rICAgIGVuZC4KLSsKLSsKLSsKLSslJS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJSUgUHVyZ2Ugcm9zdGVyIGl0ZW1zCi0rJSUt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKwotK3Byb2Nlc3Nfcm9zdGVyaXRlbXMoQWN0 aW9uUywgU3Vic1MsIEFza3NTLCBVc2Vyc1MsIENvbnRhY3RzUykgLT4KLSsgICAgQWN0aW9uID0g Y2FzZSBBY3Rpb25TIG9mCi0rCQkgImxpc3QiIC0+IGxpc3Q7Ci0rCQkgImRlbGV0ZSIgLT4gZGVs ZXRlCi0rCSAgICAgZW5kLAotKwotKyAgICBTdWJzID0gbGlzdHM6Zm9sZGwoCi0rCSAgICAgZnVu KGFueSwgXykgLT4gW25vbmUsIGZyb20sIHRvLCBib3RoXTsKLSsJCShTdWIsIFN1YnMpIC0+IFtT dWIgfCBTdWJzXQotKwkgICAgIGVuZCwKLSsJICAgICBbXSwKLSsJICAgICBbbGlzdF90b19hdG9t KFMpIHx8IFMgPC0gc3RyaW5nOnRva2VucyhTdWJzUywgIjoiKV0KLSsJICAgICksCi0rCi0rICAg IEFza3MgPSBsaXN0czpmb2xkbCgKLSsJICAgICBmdW4oYW55LCBfKSAtPiBbbm9uZSwgb3V0LCBp bl07Ci0rCQkoQXNrLCBBc2tzKSAtPiBbQXNrIHwgQXNrc10KLSsJICAgICBlbmQsCi0rCSAgICAg W10sCi0rCSAgICAgW2xpc3RfdG9fYXRvbShTKSB8fCBTIDwtIHN0cmluZzp0b2tlbnMoQXNrc1Ms ICI6IildCi0rCSAgICApLAotKwotKyAgICBVc2VycyA9IGxpc3RzOmZvbGRsKAotKwkgICAgICBm dW4oImFueSIsIF8pIC0+IFsiKiIsICIqQCoiXTsKLSsJCSAoVSwgVXMpIC0+IFtVIHwgVXNdCi0r CSAgICAgIGVuZCwKLSsJICAgICAgW10sCi0rCSAgICAgIFtTIHx8IFMgPC0gc3RyaW5nOnRva2Vu cyhVc2Vyc1MsICI6IildCi0rCSAgICAgKSwKLSsKLSsgICAgQ29udGFjdHMgPSBsaXN0czpmb2xk bCgKLSsJCSBmdW4oImFueSIsIF8pIC0+IFsiKiIsICIqQCoiXTsKLSsJCSAgICAoVSwgVXMpIC0+ IFtVIHwgVXNdCi0rCQkgZW5kLAotKwkJIFtdLAotKwkJIFtTIHx8IFMgPC0gc3RyaW5nOnRva2Vu cyhDb250YWN0c1MsICI6IildCi0rCQkpLAotKwotKyAgICBjYXNlIHJvc3Rlcml0ZW1fcHVyZ2Uo e0FjdGlvbiwgU3VicywgQXNrcywgVXNlcnMsIENvbnRhY3RzfSkgb2YKLSsJe2F0b21pYywgb2t9 IC0+Ci0rCSAgICBvazsKLSsJe2Vycm9yLCBSZWFzb259IC0+Ci0rCSAgICBpbzpmb3JtYXQoIkVy cm9yIHB1cmdpbmcgcm9zdGVyaXRlbXM6IH5wfm4iLCBbUmVhc29uXSksCi0rCSAgICBlcnJvcjsK LSsJe2JhZHJwYywgUmVhc29ufSAtPgotKwkgICAgaW86Zm9ybWF0KCJCYWRSUEMgcHVyZ2luZyBy b3N0ZXJpdGVtczogfnB+biIsIFtSZWFzb25dKSwKLSsJICAgIGVycm9yCi0rICAgIGVuZC4KLSsK LSslJSBAc3BlYyAoe0FjdGlvbjo6YXRvbSgpLCBTdWJzOjpbYXRvbSgpXSwgQXNrczo6W2F0b20o KV0sIFVzZXI6OnN0cmluZygpLCBDb250YWN0OjpzdHJpbmcoKX0pIC0+IHthdG9taWMsIG9rfQot K3Jvc3Rlcml0ZW1fcHVyZ2UoT3B0aW9ucykgLT4KLSsgICAgTnVtX3Jvc3Rlcml0ZW1zID0gbW5l c2lhOnRhYmxlX2luZm8ocm9zdGVyLCBzaXplKSwKLSsgICAgaW86Zm9ybWF0KCJUaGVyZSBhcmUg fnAgcm9zdGVyIGl0ZW1zIGluIHRvdGFsLn5uIiwgW051bV9yb3N0ZXJpdGVtc10pLAotKyAgICBL ZXkgPSBtbmVzaWE6ZGlydHlfZmlyc3Qocm9zdGVyKSwKLSsgICAgb2sgPSByaXAoS2V5LCBPcHRp b25zLCB7MCwgTnVtX3Jvc3Rlcml0ZW1zLCAwLCAwfSksCi0rICAgIHthdG9taWMsIG9rfS4KLSsK LStyaXAoJyRlbmRfb2ZfdGFibGUnLCBfT3B0aW9ucywgQ291bnRlcnMpIC0+Ci0rICAgIHByaW50 X3Byb2dyZXNzX2xpbmUoQ291bnRlcnMpLAotKyAgICBvazsKLStyaXAoS2V5LCBPcHRpb25zLCB7 UHIsIE5ULCBOViwgTkR9KSAtPgotKyAgICBLZXlfbmV4dCA9IG1uZXNpYTpkaXJ0eV9uZXh0KHJv c3RlciwgS2V5KSwKLSsgICAge0FjdGlvbiwgXywgXywgXywgX30gPSBPcHRpb25zLAotKyAgICBO RDIgPSBjYXNlIGRlY2lkZV9yaXAoS2V5LCBPcHRpb25zKSBvZgotKwkgICAgICB0cnVlIC0+Ci0r CQkgIGFwcGx5X2FjdGlvbihBY3Rpb24sIEtleSksCi0rCQkgIE5EKzE7Ci0rCSAgICAgIGZhbHNl IC0+Ci0rCQkgIE5ECi0rCSAgZW5kLAotKyAgICBOVjIgPSBOVisxLAotKyAgICBQcjIgPSBwcmlu dF9wcm9ncmVzc19saW5lKHtQciwgTlQsIE5WMiwgTkQyfSksCi0rICAgIHJpcChLZXlfbmV4dCwg T3B0aW9ucywge1ByMiwgTlQsIE5WMiwgTkQyfSkuCi0rCi0rYXBwbHlfYWN0aW9uKGxpc3QsIEtl eSkgLT4KLSsgICAge1VzZXIsIFNlcnZlciwgSklEfSA9IEtleSwKLSsgICAge1JVc2VyLCBSU2Vy dmVyLCBffSA9IEpJRCwKLSsgICAgaW86Zm9ybWF0KCJNYXRjaGVzOiB+c0B+cyB+c0B+c35uIiwg W1VzZXIsIFNlcnZlciwgUlVzZXIsIFJTZXJ2ZXJdKTsKLSthcHBseV9hY3Rpb24oZGVsZXRlLCBL ZXkpIC0+Ci0rICAgIGFwcGx5X2FjdGlvbihsaXN0LCBLZXkpLAotKyAgICBtbmVzaWE6ZGlydHlf ZGVsZXRlKHJvc3RlciwgS2V5KS4KLSsKLStwcmludF9wcm9ncmVzc19saW5lKHtQciwgTlQsIE5W LCBORH0pIC0+Ci0rICAgIFByMiA9IHRydW5jKChOVi9OVCkqMTAwKSwKLSsgICAgY2FzZSBQciA9 PSBQcjIgb2YKLSsJdHJ1ZSAtPgotKwkgICAgb2s7Ci0rCWZhbHNlIC0+Ci0rCSAgICBpbzpmb3Jt YXQoIlByb2dyZXNzIH5wJSAtIHZpc2l0ZWQgfnAgLSBkZWxldGVkIH5wfm4iLCBbUHIyLCBOViwg TkRdKQotKyAgICBlbmQsCi0rICAgIFByMi4KLSsKLStkZWNpZGVfcmlwKEtleSwge19BY3Rpb24s IFN1YnMsIEFza3MsIFVzZXIsIENvbnRhY3R9KSAtPgotKyAgICBjYXNlIGNhdGNoIG1uZXNpYTpk aXJ0eV9yZWFkKHJvc3RlciwgS2V5KSBvZgotKwlbUkldIC0+Ci0rCSAgICBsaXN0czptZW1iZXIo Ukkjcm9zdGVyLnN1YnNjcmlwdGlvbiwgU3VicykKLSsJCWFuZGFsc28gbGlzdHM6bWVtYmVyKFJJ I3Jvc3Rlci5hc2ssIEFza3MpCi0rCQlhbmRhbHNvIGRlY2lkZV9yaXBfamlkKFJJI3Jvc3Rlci51 cywgVXNlcikKLSsJCWFuZGFsc28gZGVjaWRlX3JpcF9qaWQoUkkjcm9zdGVyLmppZCwgQ29udGFj dCk7Ci0rCV8gLT4KLSsJICAgIGZhbHNlCi0rICAgIGVuZC4KLSsKLSslJSBSZXR1cm5zIHRydWUg aWYgdGhlIHNlcnZlciBvZiB0aGUgSklEIGlzIGluY2x1ZGVkIGluIHRoZSBzZXJ2ZXJzCi0rZGVj aWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyLCBfVVJlc291cmNlfSwgTWF0Y2hfbGlzdCkgLT4K LSsgICAgZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0Y2hfbGlzdCk7Ci0rZGVj aWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0Y2hfbGlzdCkgLT4KLSsgICAgbGlzdHM6 YW55KAotKyAgICAgIGZ1bihNYXRjaF9zdHJpbmcpIC0+Ci0rCSAgICAgIE1KSUQgPSBqbGliOnN0 cmluZ190b19qaWQoTWF0Y2hfc3RyaW5nKSwKLSsJICAgICAgTU5hbWUgPSBNSklEI2ppZC5sdXNl ciwKLSsJICAgICAgTVNlcnZlciA9IE1KSUQjamlkLmxzZXJ2ZXIsCi0rCSAgICAgIElzX3NlcnZl ciA9IGlzX2dsb2JfbWF0Y2goVVNlcnZlciwgTVNlcnZlciksCi0rCSAgICAgIGNhc2UgTU5hbWUg b2YKLSsJCSAgW10gd2hlbiBVTmFtZSA9PSBbXSAtPgotKwkJICAgICAgSXNfc2VydmVyOwotKwkJ ICBbXSAtPgotKwkJICAgICAgZmFsc2U7Ci0rCQkgIF8gLT4KLSsJCSAgICAgIElzX3NlcnZlcgot KwkJCSAgYW5kYWxzbyBpc19nbG9iX21hdGNoKFVOYW1lLCBNTmFtZSkKLSsJICAgICAgZW5kCi0r ICAgICAgZW5kLAotKyAgICAgIE1hdGNoX2xpc3QpLgotKwotKyUlIENvcGllZCBmcm9tIGVqYWJi ZXJkLTIuMC4wL3NyYy9hY2wuZXJsCi0raXNfcmVnZXhwX21hdGNoKFN0cmluZywgUmVnRXhwKSAt PgotKyAgICBjYXNlIHJlZ2V4cDpmaXJzdF9tYXRjaChTdHJpbmcsIFJlZ0V4cCkgb2YKLSsJbm9t YXRjaCAtPgotKwkgICAgZmFsc2U7Ci0rCXttYXRjaCwgXywgX30gLT4KLSsJICAgIHRydWU7Ci0r CXtlcnJvciwgRXJyRGVzY30gLT4KLSsJICAgIGlvOmZvcm1hdCgKLSsJICAgICAgIldyb25nIHJl Z2V4cCB+cCBpbiBBQ0w6IH5wIiwKLSsJICAgICAgW1JlZ0V4cCwgbGlzdHM6ZmxhdHRlbihyZWdl eHA6Zm9ybWF0X2Vycm9yKEVyckRlc2MpKV0pLAotKwkgICAgZmFsc2UKLSsgICAgZW5kLgotK2lz X2dsb2JfbWF0Y2goU3RyaW5nLCBHbG9iKSAtPgotKyAgICBpc19yZWdleHBfbWF0Y2goU3RyaW5n LCByZWdleHA6c2hfdG9fYXdrKEdsb2IpKS4KCmRpZmYgLS1naXQgYS9lamFiYmVyZC1tb2RfY3Rs ZXh0cmFfbWVudGlvbmluZ19pbl9lamFiYmVyZF9hcHAuZGlmZiBiL2VqYWJiZXJkLW1vZF9jdGxl eHRyYV9tZW50aW9uaW5nX2luX2VqYWJiZXJkX2FwcC5kaWZmCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAxYWJiOTQ4Li4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLW1vZF9jdGxleHRyYV9t ZW50aW9uaW5nX2luX2VqYWJiZXJkX2FwcC5kaWZmCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAs MCBAQAotSW5kZXg6IHNyYy9lamFiYmVyZC5hcHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBzcmMvZWphYmJl cmQuYXBwCTIwMDktMDQtMDEgMTc6MjM6NTEuMDAwMDAwMDAwICswMjAwCi0rKysgc3JjL2VqYWJi ZXJkLmFwcAkyMDA5LTA0LTA1IDIyOjUxOjIwLjAwMDAwMDAwMCArMDIwMAotQEAgLTcwLDYgKzcw LDcgQEAKLSAJICAgICBtb2RfY2FwcywKLSAJICAgICBtb2RfY29uZmlndXJlMiwKLSAJICAgICBt b2RfY29uZmlndXJlLAotKwkgICAgIG1vZF9jdGxleHRyYSwKLSAJICAgICBtb2RfZGlzY28sCi0g CSAgICAgbW9kX2VjaG8sCi0gCSAgICAgbW9kX2h0dHBfYmluZCwKCmRpZmYgLS1naXQgYS9lamFi YmVyZC5zcGVjIGIvZWphYmJlcmQuc3BlYwppbmRleCAzMzg2NzA0Li4zNTExZjIxIDEwMDY0NAot LS0gYS9lamFiYmVyZC5zcGVjCisrKyBiL2VqYWJiZXJkLnNwZWMKQEAgLTExLDggKzExLDggQEAK ICVlbmRpZgogCiBOYW1lOiAgICAgICAgICAgZWphYmJlcmQKLVZlcnNpb246ICAgICAgICAyLjEu MgotUmVsZWFzZTogICAgICAgIDIlez9kaXN0fQorVmVyc2lvbjogICAgICAgIDIuMS4zCitSZWxl YXNlOiAgICAgICAgMSV7P2Rpc3R9CiBTdW1tYXJ5OiAgICAgICAgQSBkaXN0cmlidXRlZCwgZmF1 bHQtdG9sZXJhbnQgSmFiYmVyL1hNUFAgc2VydmVyCiAKIEdyb3VwOiAgICAgICAgICBBcHBsaWNh dGlvbnMvSW50ZXJuZXQKQEAgLTM5LDIxICszOSwyNCBAQCBTb3VyY2U5OiAgICAgICAgZWphYmJl cmRjdGwucGFtCiBTb3VyY2UxMDogICAgICAgZWphYmJlcmRjdGwuYXBwcwogU291cmNlMTE6ICAg ICAgIGVqYWJiZXJkLnBhbQogCi0jIEJaIyA0Mzk1ODMsIDQ1MjMyNiwgNDUxNTU0LCA0NjUxOTYs IDUwMjM2MQotUGF0Y2gyOiBlamFiYmVyZC1lamFiYmVyZGN0bF9maXguZGlmZgogIyBVc2UgZWph YmJlcmQgYXMgYW4gZXhhbXBsZSBmb3IgUEFNIHNlcnZpY2UgbmFtZQotUGF0Y2gzOiBlamFiYmVy ZC1lamFiYmVyZF9jZmdfcGFtX25hbWUuZGlmZgorUGF0Y2gxOiBlamFiYmVyZC0wMDAxLUZpeC1Q QU0tc2VydmljZS1leGFtcGxlLW5hbWUtdG8tbWF0Y2gtYWN0dWFsLW9uZS5wYXRjaAogIyBNZW50 aW9uIG1vZF9jdGxleHRyYSBhcyBhbiBlamFiYmVyZCBtb2R1bGUKLVBhdGNoNTogZWphYmJlcmQt bW9kX2N0bGV4dHJhX21lbnRpb25pbmdfaW5fZWphYmJlcmRfYXBwLmRpZmYKK1BhdGNoMjogZWph YmJlcmQtMDAwMi1NZW50aW9uLW1vZF9jdGxleHRyYS1hcy1hbi1lamFiYmVyZC1tb2R1bGUucGF0 Y2gKICMgZml4ZWQgZGVsYXlzIGluIHMycyBjb25uZWN0aW9ucwotUGF0Y2g4OiBlamFiYmVyZC1m aXhlZF9kZWxheXNfaW5fczJzLnBhdGNoCitQYXRjaDM6IGVqYWJiZXJkLTAwMDMtRml4ZWQtZGVs YXlzLWluLXMycy1jb25uZWN0aW9ucy5wYXRjaAogIyBJbnRyb2R1Y2luZyBtb2RfYWRtaW5fZXh0 cmEKLVBhdGNoMTA6IGVqYWJiZXJkLW1vZF9hZG1pbl9leHRyYS5wYXRjaAotIyBzZWUgaHR0cHM6 Ly9zdXBwb3J0LnByb2Nlc3Mtb25lLm5ldC9icm93c2UvRUpBQi0xMTczCi0jIGh0dHBzOi8vZm9y Z2UucHJvY2Vzcy1vbmUubmV0L3JkaWZmL2VqYWJiZXJkL2JyYW5jaGVzL2VqYWJiZXJkLTIuMS54 L3NyYy9lamFiYmVyZF9jMnMuZXJsP3IxPTI5MTEmcjI9MjkzNiZ1Jk4KLVBhdGNoMTE6IGVqYWJi ZXJkLWMyc19kb3NfZml4LmRpZmYKLSMgU2VlIHRoaXMgbGluazogaHR0cDovL2xpc3RzLmphYmJl ci5ydS9waXBlcm1haWwvZWphYmJlcmQvMjAxMC1KYW51YXJ5LzAwNTgxOS5odG1sCi1QYXRjaDEy OiBlamFiYmVyZGN0bC1zdXBwb3J0LWNvbmN1cnJlbnQtY29ubmVjdGlvbnMucGF0Y2gKK1BhdGNo NDogZWphYmJlcmQtMDAwNC1JbnRyb2R1Y2luZy1tb2RfYWRtaW5fZXh0cmEucGF0Y2gKKyMgQloj IDQzOTU4MywgNDUyMzI2LCA0NTE1NTQsIDQ2NTE5NiwgNTAyMzYxCitQYXRjaDU6IGVqYWJiZXJk LTAwMDUtRmVkb3JhLXNwZWNpZmljLWNoYW5nZXMtdG8tZWphYmJlcmRjdGwucGF0Y2gKKyMgaHR0 cDovL3d3dy5lamFiYmVyZC5pbS9jeXJzYXNsX2dzc2FwaQorUGF0Y2g2OiBlamFiYmVyZC0wMDA2 LVN1cHBvcnQtdG8tYXV0aGVudGljYXRlLWFnYWluc3QtU0FTTC1HU1NBUEktaHR0cC13d3cucGF0 Y2gKKyMgVHlwbyBpbiBHU1NBUEkgbW9kdWxlcyAoc2VudCB1cHN0cmVhbSkKK1BhdGNoNzogZWph YmJlcmQtMDAwNy1GaXhlZC10eXBvLnBhdGNoCisjIFF1aWNrIGZpeCBmb3Ige2Vycm9yLG54ZG9t YWlufSBpc3N1ZQorUGF0Y2g4OiBlamFiYmVyZC0wMDA4LVF1aWNrLWZpeC1mb3ItZXJyb3Itbnhk b21haW4ucGF0Y2gKKyMgQ2xlYW51cCByZWR1bmRhbnQgZGVmaW5lcworUGF0Y2g5OiBlamFiYmVy ZC0wMDA5LVJlcGxhY2UtTVNHLXdpdGgtREVCVUcucGF0Y2gKIAogQnVpbGRSb290OiAgICAgICV7 X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVhc2V9LXJvb3QtJSgle19faWRfdX0g LW4pCiAKQEAgLTc5LDkgKzgyLDE0IEBAIFByb3ZpZGVzOiB1c2VyKCV7bmFtZX0pID0gJXt1aWR9 CiBQcm92aWRlczogZ3JvdXAoJXtuYW1lfSkgPSAle3VpZH0KIAogUmVxdWlyZXM6ICAgICAgIGVy bGFuZworUmVxdWlyZXM6ICAgICAgIGVybGFuZy1lc2FzbAogUmVxdWlyZXM6ICAgICAgIHVzZXJt b2RlCiAjIGZvciBmbG9jayBpbiBlamFiYmVyZGN0bAorJWlmICV7ZGVmaW5lZCBmZWRvcmF9CiBS ZXF1aXJlczoJdXRpbC1saW51eC1uZworJWVsc2UKK1JlcXVpcmVzOgl1dGlsLWxpbnV4CislZW5k aWYKIAogCiAlZGVzY3JpcHRpb24KQEAgLTk5LDEzICsxMDcsMTYgQEAgRG9jdW1lbnRhdGlvbiBm b3IgZWphYmJlcmQuCiAKICVwcmVwCiAlc2V0dXAgLXEKLSVwYXRjaDMgLXAwIC1iIC5wYW1fbmFt ZQotJXBhdGNoNSAtcDAgLWIgLm1vZF9jdGxleHRyYQotJXBhdGNoOCAtcDAgLWIgLnMycwotJXBh dGNoMTAgLXAxIC1iIC5tb2RfYWRtaW5fZXh0cmEKLSVwYXRjaDExIC1wMiAtYiAuRUpBQl8xMTcz Ci0lcGF0Y2gxMiAtcDEgLWIgLmNvbmN1cnJlbnQKLSVwYXRjaDIgLXAwIC1iIC5maXhfY3RsCisK KyVwYXRjaDEgLXAxIC1iIC5wYW1fbmFtZQorJXBhdGNoMiAtcDEgLWIgLm1vZF9jdGxleHRyYQor JXBhdGNoMyAtcDEgLWIgLnMyc19kZWxheXMKKyVwYXRjaDQgLXAxIC1iIC5tb2RfYWRtaW5fZXh0 cmEKKyVwYXRjaDUgLXAxIC1iIC5mZWRvcmFfc3BlY2lmaWMKKyVwYXRjaDYgLXAxIC1iIC5nc3Nh cGkKKyVwYXRjaDcgLXAxIC1iIC5nc3NhcGlfdHlwbworJXBhdGNoOCAtcDEgLWIgLm54ZG9tYWlu X2ZpeAorJXBhdGNoOSAtcDEgLWIgLmdzc2FwaV9jbGVhbnVwCiAKIGRvczJ1bml4IHNyYy9vZGJj L21zc3FsMjAwMC5zcWwKIApAQCAtMTE3LDcgKzEyOCw3IEBAIGNwICV7Uzo3fSBzcmMKIAogJWJ1 aWxkCiBwdXNoZCBzcmMKLSVjb25maWd1cmUgLS1lbmFibGUtb2RiYyAtLWVuYWJsZS1kZWJ1ZyAt LWVuYWJsZS1wYW0KKyVjb25maWd1cmUgLS1lbmFibGUtb2RiYyAtLWVuYWJsZS1wYW0KICMgZG9l c24ndCBidWlsZHMgb24gU01QIGN1cnJlbnRseQogbWFrZQogcG9wZApAQCAtMTgwLDM3ICsxOTEs NDIgQEAgcm0gLXJmICV7YnVpbGRyb290fSV7X2RvY2Rpcn0vJXtuYW1lfQogJXtfX2ZlX2dyb3Vw YWRkfSAle3VpZH0gLXIgJXtuYW1lfSAmPi9kZXYvbnVsbCB8fCA6CiAle19fZmVfdXNlcmFkZH0g JXt1aWR9IC1yIC1zIC9zYmluL25vbG9naW4gLWQgL3Zhci9saWIvZWphYmJlcmQgLU0gXAogCQkJ LWMgJ2VqYWJiZXJkJyAtZyAle25hbWV9ICV7bmFtZX0gJj4vZGV2L251bGwgfHwgOgotIyB3ZSBz aG91bGQgYmFja3VwIERCIGluIGV2ZXJ5IHVwZ3JhZGUKLWlmIGVqYWJiZXJkY3RsIHN0YXR1cyA+ L2Rldi9udWxsIDsgdGhlbgotCSMgVXNlIHRpbWVzdGFtcCB0byBtYWtlIGRhdGFiYXNlIHJlc3Rv cmluZyBlYXNpZXIKLQlUSU1FPSQoZGF0ZSArJVktJW0tJWRUJUg6JU06JVMpCi0JQkFDS1VQRElS PSQobWt0ZW1wIC1kIC1wIC92YXIvdG1wLyBlamFiYmVyZC0kVElNRS5YWFhYWFgpCi0JY2hvd24g ZWphYmJlcmQ6ZWphYmJlcmQgJEJBQ0tVUERJUgotCUJBQ0tVUD0kQkFDS1VQRElSL2VqYWJiZXJk LWRhdGFiYXNlCi0JZWphYmJlcmRjdGwgYmFja3VwICRCQUNLVVAKLQkjIENoYW5nZSBvd25lcnNo aXAgdG8gcm9vdDpyb290IGJlY2F1c2UgZWphYmJlcmQgdXNlciBtaWdodCBiZQotCSMgcmVtb3Zl ZCBvbiBwYWNrYWdlIHJlbW92YWwuCi0JY2hvd24gLVIgcm9vdDpyb290ICRCQUNLVVBESVIKLQlj aG1vZCA3MDAgJEJBQ0tVUERJUgotCWVjaG8KLQllY2hvIFRoZSBlamFiYmVyZCBkYXRhYmFzZSBo YXMgYmVlbiBiYWNrZWQgdXAgdG8gJEJBQ0tVUC4KLQllY2hvCi1maQogCi0jIGZpeCBjb29raWUg cGF0aCAoc2luY2UgdmVyLiAyLjEuMCBjb29raWUgc3RvcmVkIGluIC92YXIvbGliL2VqYWJiZXJk L3Nwb29sCi0jIHJhdGhlciB0aGFuIGluIC92YXIvbGliL2VqYWJiZXJkCi1pZiBbIC1mIC92YXIv bGliL2VqYWJiZXJkLy5lcmxhbmcuY29va2llIF07IHRoZW4KLQljcCAtcGYgL3Zhci9saWIvZWph YmJlcmQveyxzcG9vbC99LmVybGFuZy5jb29raWUKLQllY2hvCi0JZWNobyBUaGUgZWphYmJlcmQg Y29va2llIGZpbGUgd2FzIG1vdmVkLgotCWVjaG8gUGxlYXNlIHJlbW92ZSBvbGQgb25lIGZyb20g L3Zhci9saWIvZWphYmJlcmQvLmVybGFuZy5jb29raWUKLQllY2hvCisKK2lmIFsgJDEgLWd0IDEg XTsgdGhlbgorCSMgd2Ugc2hvdWxkIGJhY2t1cCBEQiBpbiBldmVyeSB1cGdyYWRlCisJaWYgZWph YmJlcmRjdGwgc3RhdHVzID4vZGV2L251bGwgOyB0aGVuCisJCSMgVXNlIHRpbWVzdGFtcCB0byBt YWtlIGRhdGFiYXNlIHJlc3RvcmluZyBlYXNpZXIKKwkJVElNRT0kKGRhdGUgKyVZLSVtLSVkVCVI OiVNOiVTKQorCQlCQUNLVVBESVI9JChta3RlbXAgLWQgLXAgL3Zhci90bXAvIGVqYWJiZXJkLSRU SU1FLlhYWFhYWCkKKwkJY2hvd24gZWphYmJlcmQ6ZWphYmJlcmQgJEJBQ0tVUERJUgorCQlCQUNL VVA9JEJBQ0tVUERJUi9lamFiYmVyZC1kYXRhYmFzZQorCQllamFiYmVyZGN0bCBiYWNrdXAgJEJB Q0tVUAorCQkjIENoYW5nZSBvd25lcnNoaXAgdG8gcm9vdDpyb290IGJlY2F1c2UgZWphYmJlcmQg dXNlciBtaWdodCBiZQorCQkjIHJlbW92ZWQgb24gcGFja2FnZSByZW1vdmFsLgorCQljaG93biAt UiByb290OnJvb3QgJEJBQ0tVUERJUgorCQljaG1vZCA3MDAgJEJBQ0tVUERJUgorCQllY2hvCisJ CWVjaG8gVGhlIGVqYWJiZXJkIGRhdGFiYXNlIGhhcyBiZWVuIGJhY2tlZCB1cCB0byAkQkFDS1VQ LgorCQllY2hvCisJZmkKKworCSMgZml4IGNvb2tpZSBwYXRoIChzaW5jZSB2ZXIuIDIuMS4wIGNv b2tpZSBzdG9yZWQgaW4gL3Zhci9saWIvZWphYmJlcmQvc3Bvb2wKKwkjIHJhdGhlciB0aGFuIGlu IC92YXIvbGliL2VqYWJiZXJkCisJaWYgWyAtZiAvdmFyL2xpYi9lamFiYmVyZC8uZXJsYW5nLmNv b2tpZSBdOyB0aGVuCisJCWNwIC1wdSAvdmFyL2xpYi9lamFiYmVyZC97LHNwb29sL30uZXJsYW5n LmNvb2tpZQorCQllY2hvCisJCWVjaG8gVGhlIGVqYWJiZXJkIGNvb2tpZSBmaWxlIHdhcyBtb3Zl ZC4KKwkJZWNobyBQbGVhc2UgZGVsZXRlIG9sZCBvbmUgZnJvbSAvdmFyL2xpYi9lamFiYmVyZC8u ZXJsYW5nLmNvb2tpZQorCQllY2hvCisJZmkKIGZpCiAKIAogJXBvc3QKIC9zYmluL2Noa2NvbmZp ZyAtLWFkZCAle25hbWV9CiAKKyMgQ3JlYXRlIFNTTCBjZXJ0aWZpY2F0ZSB3aXRoIGRlZmF1bHQg dmFsdWVzIGlmIGl0IGRvZXNuJ3QgZXhpc3QKIChjZCAvZXRjL2VqYWJiZXJkCiBpZiBbICEgLWYg ZWphYmJlcmQucGVtIF0KIHRoZW4KQEAgLTI5OCw2ICszMTQsNyBAQCBybSAtcmYgJXtidWlsZHJv b3R9CiAle19saWJkaXJ9LyV7bmFtZX0vaW5jbHVkZS9tb2Rfcm9zdGVyLmhybAogJXtfbGliZGly fS8le25hbWV9L2luY2x1ZGUvd2ViL2VqYWJiZXJkX2h0dHAuaHJsCiAle19saWJkaXJ9LyV7bmFt ZX0vaW5jbHVkZS93ZWIvZWphYmJlcmRfd2ViX2FkbWluLmhybAorJXtfbGliZGlyfS8le25hbWV9 L2luY2x1ZGUvd2ViL2h0dHBfYmluZC5ocmwKICV7X2xpYmRpcn0vJXtuYW1lfS9wcml2L2Jpbi9j YXB0Y2hhLnNoCiAlYXR0cig0NzUwLHJvb3QsZWphYmJlcmQpICV7X2xpYmRpcn0vJXtuYW1lfS9w cml2L2Jpbi9lcGFtCiAle19saWJkaXJ9LyV7bmFtZX0vcHJpdi9saWIvZWphYmJlcmRfemxpYl9k cnYuc28KQEAgLTM0NSwxNCArMzYyLDMyIEBAIHJtIC1yZiAle2J1aWxkcm9vdH0KICVkb2MgZG9j L3JlbGVhc2Vfbm90ZXNfMi4wLjUudHh0CiAlZG9jIGRvYy9yZWxlYXNlX25vdGVzXzIuMS4wLnR4 dAogJWRvYyBkb2MvcmVsZWFzZV9ub3Rlc18yLjEuMS50eHQKKyVkb2MgZG9jL3JlbGVhc2Vfbm90 ZXNfMi4xLjIudHh0CislZG9jIGRvYy9yZWxlYXNlX25vdGVzXzIuMS4zLnR4dAogJWRvYyBkb2Mv d2ViYWRtbWFpbi5wbmcKICVkb2MgZG9jL3dlYmFkbW1haW5ydS5wbmcKICVkb2MgZG9jL3lvemhp a2hlYWRlci5wbmcKIAogJWNoYW5nZWxvZworKiBGcmkgTWFyIDEyIDIwMTAgUGV0ZXIgTGVtZW5r b3YgPGxlbWVua292QGdtYWlsLmNvbT4gMi4xLjMtMQorLSBWZXIuIDIuMS4zCistIFBhdGNoZXMg cmViYXNlZAorCisqIEZyaSBNYXIgIDUgMjAxMCBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21h aWwuY29tPiAyLjEuMi00CistIEZpeGVkIGlzc3VlIHdpdGgge2Vyb3JyLG54ZG9tYWlufQorCisq IFR1ZSBGZWIgMTYgMjAxMCBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPiAyLjEu Mi0zCistIERvIG5vdCB0cnkgdG8gYmFja3VwIERCIG9uIGV2ZXJ5IGZyZXNoIGluc3RhbGwKKy0g RG8gbm90IGZvcmNlIGNvcHlpbmcgb2xkIGVybGFuZyBjb29raWUgZmlsZQorLSBBZGQgbWlzc2lu ZyByZWxlYXNlIG5vdGVzIGZvciB2ZXIuIDIuMS4yCistIFJlcXVpcmUgZXJsYW5nLWVzYXNsIGZv ciBrcmI1IHN1cHBvcnQKKy0gTm8gc3VjaCAlJWNvbmZpZ3VyZSBvcHRpb24gLSAtLWVuYWJsZS1k ZWJ1ZworLSBQYXRjaGVzIHdlcmUgcmViYXNlZCBhbmQgcmVudW1iZXJlZAorLSBBZGQgbmV3IEJS IHV0aWwtbGludXgoLW5nKQorCiAqIEZyaSBKYW4gMjkgMjAxMCBQZXRlciBMZW1lbmtvdiA8bGVt ZW5rb3ZAZ21haWwuY29tPiAyLjEuMi0yCiAtIEZpeGVkIEJaICM1NTk5MjUgKEVKQUItMTE3MykK LS0gQ2hhbmdlZCBvcmRlciBvZiBycG1idWlsZCB0YXJnZXRzIGluIHN0aGlzIHNwZWMgdG8gbW9y ZSBuYXR1cmFsIG9uZS4KKy0gQ2hhbmdlZCBvcmRlciBvZiBycG1idWlsZCB0YXJnZXRzIGluIHRo aXMgc3BlYyB0byBtb3JlIG5hdHVyYWwgb25lLgogCiAqIE1vbiBKYW4gMTggMjAxMCBQZXRlciBM ZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPiAyLjEuMi0xCiAtIFZlci4gMi4xLjIKCmRpZmYg LS1naXQgYS9lamFiYmVyZGN0bC1zdXBwb3J0LWNvbmN1cnJlbnQtY29ubmVjdGlvbnMucGF0Y2gg Yi9lamFiYmVyZGN0bC1zdXBwb3J0LWNvbmN1cnJlbnQtY29ubmVjdGlvbnMucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxM2U4NDQuLjAwMDAwMDAKLS0tIGEvZWphYmJlcmRj dGwtc3VwcG9ydC1jb25jdXJyZW50LWNvbm5lY3Rpb25zLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTU2ICswLDAgQEAKLUZyb20gNTk5MGM3ZjFlNWIyZmExMDY4MDZkOWVkMDNhNGE1OWNmYTc1 OTU5YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcnRpbiBMYW5naG9mZiA8bWFy dGluQGxhcHRvcC5vcmc+Ci1EYXRlOiBTdW4sIDI0IEphbiAyMDEwIDE0OjM5OjE1ICswMTAwCi1T dWJqZWN0OiBbUEFUQ0hdIGVqYWJiZXJkY3RsOiBzdXBwb3J0IGNvbmN1cnJlbnQgY29ubmVjdGlv bnMgd2l0aCBib3VuZCBjb25uIG5hbWVzCi0KLUlmIGZsb2NrIGlzIGF2YWlsYWJsZSwgZWphYmJl cmRjdGwgd2lsbCB1c2UgaXQgdG8gZ3JhYiBvbmUKLW9mIGEgYm91bmQgbnVtYmVyIG9mIGNvbm5l Y3Rpb24gbmFtZXMuIFRoaXMgYWxsb3dzIGNvbmN1cnJlbnQKLWNvbm5lY3Rpb25zIHdoaWxlIHVz aW5nIGEgYm91bmQgbnVtYmVyIG9mIGF0b21zLgotCi1Vc2luZyBQSUQsIHRpbWVzdGFtcHMgb3Ig cmFuZG9tIHN0cmluZ3MgZm9yIHRyYW5zaWVudCBjb25uZWN0aW9uIElEcwotKHdoaWNoIHdvdWxk IGF2b2lkIHRoZSBuZWVkIGZvciBmbG9jaykgdXNlcyBhbiB1bmJvdW5kIG51bWJlciBvZiBhdG9t cy4KLVRoaXMgY2FuIGVmZmVjdGl2ZWx5IERvUyBzZXJ2ZXJzLCBhcyB0aGVzZSBjb25uZWN0aW9u IG5hbWVzIGFyZQotbm90IGdhcmJhZ2UgY29sbGVjdGVkLgotLS0tCi0gc3JjL01ha2VmaWxlLmlu ICAgICAgICAgIHwgICAxMCArKysrKysKLSBzcmMvZWphYmJlcmRjdGwudGVtcGxhdGUgfCAgIDc1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQotIDIgZmlsZXMg Y2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L3NyYy9NYWtlZmlsZS5pbiBiL3NyYy9NYWtlZmlsZS5pbgotaW5kZXggODQ4NWNhYS4uMDJmMDVl OCAxMDA2NDQKLS0tLSBhL3NyYy9NYWtlZmlsZS5pbgotKysrIGIvc3JjL01ha2VmaWxlLmluCi1A QCAtMTEwLDYgKzExMCw5IEBAIE1TR1NESVIgPSAkKFBSSVZESVIpL21zZ3MKLSAjIC92YXIvbGli L2VqYWJiZXJkLwotIFNQT09MRElSID0gJChERVNURElSKUBsb2NhbHN0YXRlZGlyQC9saWIvZWph YmJlcmQKLSAKLSsjIC92YXIvbG9jay9lamFiYmVyZGN0bAotK0NUTExPQ0tESVIgPSAkKERFU1RE SVIpQGxvY2Fsc3RhdGVkaXJAL2xvY2svZWphYmJlcmRjdGwKLSsKLSAjIC92YXIvbGliL2VqYWJi ZXJkLy5lcmxhbmcuY29va2llCi0gQ09PS0lFRklMRSA9ICQoU1BPT0xESVIpLy5lcmxhbmcuY29v a2llCi0gCi1AQCAtMjMwLDYgKzIzMywxMiBAQCBpbnN0YWxsOiBhbGwKLSAJaW5zdGFsbCAtZCAt bSA3NTAgJChPX1VTRVIpICQoU1BPT0xESVIpCi0gCSQoQ0hPV05fQ09NTUFORCkgLVIgQElOU1RB TExVU0VSQCAkKFNQT09MRElSKSA+JChDSE9XTl9PVVRQVVQpCi0gCWNobW9kIC1SIDc1MCAkKFNQ T09MRElSKQotKwotKwkjIGVqYWJiZXJkY3RsIGxvY2sgZGlyZWN0b3J5Ci0rCWluc3RhbGwgLWQg LW0gNzUwICQoT19VU0VSKSAkKENUTExPQ0tESVIpCi0rCSQoQ0hPV05fQ09NTUFORCkgLVIgQElO U1RBTExVU0VSQCAkKENUTExPQ0tESVIpID4kKENIT1dOX09VVFBVVCkKLSsJY2htb2QgLVIgNzUw ICQoQ1RMTE9DS0RJUikKLSsKLSAJWyAhIC1mICQoQ09PS0lFRklMRSkgXSB8fCB7ICQoQ0hPV05f Q09NTUFORCkgQElOU1RBTExVU0VSQCAkKENPT0tJRUZJTEUpID4kKENIT1dOX09VVFBVVCkgOyBj aG1vZCA0MDAgJChDT09LSUVGSUxFKSA7IH0KLSAJIwotIAkjIExvZyBkaXJlY3RvcnkKLUBAIC0y NjUsNiArMjc0LDcgQEAgdW5pbnN0YWxsLWFsbDogdW5pbnN0YWxsLWJpbmFyeQotIAlybSAtcmYg JChFVENESVIpCi0gCXJtIC1yZiAkKEVKQUJCRVJERElSKQotIAlybSAtcmYgJChTUE9PTERJUikK LSsJcm0gLXJmICQoQ1RMTE9DS0RJUikKLSAJcm0gLXJmICQoTE9HRElSKQotIAotIGNsZWFuOiBj bGVhbi1yZWN1cnNpdmUgY2xlYW4tbG9jYWwKLWRpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRjdGwu dGVtcGxhdGUgYi9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKLWluZGV4IDQzODQ4MWIuLmQyYWE1 ZmUgMTAwNjQ0Ci0tLS0gYS9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKLSsrKyBiL3NyYy9lamFi YmVyZGN0bC50ZW1wbGF0ZQotQEAgLTE0LDYgKzE0LDEzIEBAIEVSTEFOR19OT0RFPSROT0RFQCRI T1NUCi0gRVJMPUBlcmxACi0gSU5TVEFMTFVTRVI9QGluc3RhbGx1c2VyQAotIAotKyMgQ29udHJv bCBudW1iZXIgb2YgY29ubmVjdGlvbnMgaWRlbnRpZmllcnMKLSsjIHVzaW5nIGZsb2NrIGlmIGF2 YWlsYWJsZS4gRXhwZWN0cyBhIGxpbnV4LXN0eWxlCi0rIyBmbG9jayB0aGF0IGNhbiBsb2NrIGEg ZmlsZSBkZXNjcmlwdG9yLgotK01BWENPTk5JRD0xMDAKLStDT05OTE9DS0RJUj1ATE9DQUxTVEFU RURJUkAvbG9jay9lamFiYmVyZGN0bAotK0ZMT0NLPWB0eXBlIC1wIGZsb2NrYCAKLSsKLSAjIHBh cnNlIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzCi0gQVJHUz0KLSB3aGlsZSBbICQjIC1uZSAwIF0g OyBkbwotQEAgLTIyOCwxMyArMjM1LDU1IEBAIGhlbHAgKCkKLSBjdGwgKCkKLSB7Ci0gICAgIENP TU1BTkQ9JEAKLS0gICAgJEVYRUNfQ01EICIkRVJMIFwKLS0gICAgICAkTkFNRSBjdGwtJHtFUkxB TkdfTk9ERX0gXAotLSAgICAgIC1ub2lucHV0IFwKLS0gICAgICAtaGlkZGVuIFwKLS0gICAgICAt cGEgJEVKQUJCRVJEX0VCSU5fUEFUSCBcCi0tICAgICAgLXMgZWphYmJlcmRfY3RsIC1leHRyYSAk RVJMQU5HX05PREUgJENPTU1BTkQiCi0tICAgIHJlc3VsdD0kPwotKwotKyAgICBpZiBbICEgIiRG TE9DSyIgXTt0aGVuCi0rCSMgbm8gZmxvY2ssIHNpbXBseSBpbnZva2UgY3RsZXhlYygpCi0rCUNU TF9DT05OPSJjdGwtJHtFSkFCQkVSRF9OT0RFfSIKLSsJY3RsZXhlYyAkQ1RMX0NPTk4gJENPTU1B TkQKLSsJcmVzdWx0PSQ/Ci0rICAgIGVsc2UKLSsJIyB3ZSBoYXZlIGZsb2NrIHNvIHdlIGdldCBh IGxvY2sKLSsJIyBvbiBvbmUgb2YgYSBsaW1pdGVkIG51bWJlciBvZgotKwkjIGNvbm4gbmFtZXMg LS0gdGhpcyBhbGxvd3MKLSsJIyBjb25jdXJyZW50IGludm9rYXRpb25zIHVzaW5nIGEgYm91bmQK LSsJIyBudW1iZXIgb2YgYXRvbXMKLSsJZm9yIE4gaW4gJChzZXEgMSAkTUFYQ09OTklEKTsgZG8K LSsJICAgIENUTF9DT05OPSJlamFiYmVyZGN0bC0kTiIKLSsJICAgIENUTF9MT0NLRklMRT0iJENP Tk5MT0NLRElSLyRDVExfQ09OTiIKLSsJICAgICgKLSsJCWlmIGZsb2NrIC0tbmIgMjAwOyB0aGVu Ci0rICAgICAgICAgICAgICAgICAgICAjIHNlZSB0aGUgJzIwMCcgZmlsZSBkZXNjcmlwdG9yCi0r CQkgICAgIyBhdCB0aGUgYm90dG9tIG9mIHRoZSBibG9jawotKwkJICAgIGN0bGV4ZWMgJENUTF9D T05OICRDT01NQU5ECi0rICAgICAgICAgICAgICAgICAgICBzc3Jlc3VsdD0kPwotKyAgICAgICAg ICAgICAgICAgICAgIyBzZWdyZWdhdGUgZnJvbSBwb3NzaWJsZSBmbG9jayBleGl0KDEpCi0rCQkg ICAgc3NyZXN1bHQ9JChleHByICRzc3Jlc3VsdCBcKiAxMCkKLSsJCSAgICBleGl0ICRzc3Jlc3Vs dAotKwkJZWxzZQotKwkJICAgIGV4aXQgMQotKwkJZmkKLSsgICAgICAgICAgICApIDIwMD4iJENU TF9MT0NLRklMRSIKLSsJICAgIHJlc3VsdD0kPwotKwkgICAgaWYgWyAkcmVzdWx0IC1lcSAxIF07 IHRoZW4KLSsgICAgICAgICAgICAgICAgIyBtZWFucyB3ZSBlcnJvcmVkIG91dCBpbiBmbG9jawot KyAgICAgICAgICAgICAgICAjIHJhdGhlciB0aGFuIGluIHRoZSBleGVjIC0gc3RheSBpbiB0aGUg bG9vcAotKyAgICAgICAgICAgICAgICAjIHRyeWluZyBvdGhlciBjb25uIG5hbWVzLi4uCi0rCQli YWRsb2NrPTEKLSsJICAgIGVsc2UKLSsJCWJhZGxvY2s9IiIKLSsJCWJyZWFrOwotKwkgICAgZmkK LSsJZG9uZQotKwlyZXN1bHQ9JChleHByICRyZXN1bHQgLyAxMCkKLSsgICAgZmkKLSsKLSsgICAg aWYgWyAiJGJhZGxvY2siIF07dGhlbgotKyAgICAgICAgZWNobyAiUmFuIG91dCBvZiBjb25uZWN0 aW9ucyB0byB0cnkuIFlvdXIgZWphYmJlcmQgcHJvY2Vzc2VzIiA+JjIKLSsgICAgICAgIGVjaG8g Im1heSBiZSBzdHVjayBvciB0aGlzIGlzIGEgdmVyeSBidXN5IHNlcnZlci4gRm9yIHZlcnkiICAg PiYyCi0rICAgICAgIGVjaG8gImJ1c3kgc2VydmVycywgY29uc2lkZXIgcmFpc2luZyBNQVhDT05O SURTIiAgICAgICAgICA+JjIKLSsgICAgICAgZXhpdCAxOwotKyAgICBmaQotKwotICAgICBjYXNl ICRyZXN1bHQgaW4KLSAgICAgMCkgOjs7Ci0gICAgIDEpIDo7OwotQEAgLTI0NCw2ICsyOTMsMTgg QEAgY3RsICgpCi0gICAgIHJldHVybiAkcmVzdWx0Ci0gfQotIAotK2N0bGV4ZWMgKCkKLSt7Ci0r ICAgIENPTk5fTkFNRT0kMTsgc2hpZnQKLSsgICAgQ09NTUFORD0kQAotKyAgICAkRVhFQ19DTUQg IiRFUkwgXAotKyAgICAgICROQU1FICR7Q09OTl9OQU1FfSBcCi0rICAgICAgLW5vaW5wdXQgXAot KyAgICAgIC1oaWRkZW4gXAotKyAgICAgIC1wYSAkRUpBQkJFUkRfRUJJTl9QQVRIIFwKLSsgICAg ICAtcyBlamFiYmVyZF9jdGwgLWV4dHJhICRFUkxBTkdfTk9ERSAkQ09NTUFORCIKLSt9Ci0rCi0g IyBkaXNwbGF5IGN0bCB1c2FnZQotIHVzYWdlICgpCi0gewotLS0gCi0xLjYuMi41Ci0KCmRpZmYg LS1naXQgYS9pbXBvcnQubG9nIGIvaW1wb3J0LmxvZwppbmRleCA3MjQ4ZjQ2Li4xZDUxOTMyIDEw MDY0NAotLS0gYS9pbXBvcnQubG9nCisrKyBiL2ltcG9ydC5sb2cKQEAgLTE3LDMgKzE3LDQgQEAg ZWphYmJlcmQtMl8xXzAtMl9mYzEyOkhFQUQ6ZWphYmJlcmQtMi4xLjAtMi5mYzEyLnNyYy5ycG06 MTI2MDQ3MTQyMAogZWphYmJlcmQtMl8xXzEtMV9mYzEyOkhFQUQ6ZWphYmJlcmQtMi4xLjEtMS5m YzEyLnNyYy5ycG06MTI2MTY1NjI2MwogZWphYmJlcmQtMl8xXzItMV9mYzEyOkhFQUQ6ZWphYmJl cmQtMi4xLjItMS5mYzEyLnNyYy5ycG06MTI2NDQyMzQxMAogZWphYmJlcmQtMl8xXzItMl9mYzEy OkhFQUQ6ZWphYmJlcmQtMi4xLjItMi5mYzEyLnNyYy5ycG06MTI2NDc3MDc2OQorZWphYmJlcmQt Ml8xXzMtMV9mYzEyOkhFQUQ6ZWphYmJlcmQtMi4xLjMtMS5mYzEyLnNyYy5ycG06MTI2ODQwOTEw NwoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGQyZmU0NjUuLmZhNzU4Zjgg MTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAotOTEwMjgwMmFl MTkzMTJjMjZmODVjZWI5NzdiNTE5YWEgIGVqYWJiZXJkLTIuMS4yLnRhci5negorZTVjODdlZGE1 MzEyYTZlOGE1M2RmMGY5YjQ4NDRiNjkgIGVqYWJiZXJkLTIuMS4zLnRhci5nego=