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: Updated mod_Admin_extra to work with R15B (see rhbz #840039) Date: Wed, 23 Sep 2026 19:07:09 GMT Message-ID: <179019042904.1.10336688383958229153.rpms-ejabberd-17b4fc696481@fedoraproject.org> List-ID: X-Git-Repo: rpms/ejabberd X-Git-Branch: f45 X-Git-Rev: 17b4fc696481fd38f8f237e9ed5df1ecbd7bfe38 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZWphYmJlcmQKICAgICAgICAgICAgQnJhbmNoIDogZjQ1CiAgICAgICAgICAg IENvbW1pdCA6IDE3YjRmYzY5NjQ4MWZkMzhmOGYyMzdlOWVkNWRmMWVjYmQ3YmZlMzgKICAgICAg ICAgICAgQXV0aG9yIDogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KICAgICAg ICAgICAgRGF0ZSAgIDogMjAxMi0wNy0xNVQxMTowNjo0NCswNDowMAogICAgICAgICAgICBTdGF0 cyAgOiArMjMyNC8tNDI0MiBpbiAxOCBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBz Oi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZWphYmJlcmQvYy8xN2I0ZmM2OTY0ODFmZDM4 ZjhmMjM3ZTllZDVkZjFlY2JkN2JmZTM4P2JyYW5jaD1mNDUKCiAgICAgICAgICAgIExvZzoKICAg ICAgICAgICAgVXBkYXRlZCBtb2RfQWRtaW5fZXh0cmEgdG8gd29yayB3aXRoIFIxNUIgKHNlZSBy aGJ6ICM4NDAwMzkpCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21h aWwuY29tPgoKLS0tCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDAxLUZpeC1QQU0tc2VydmljZS1l eGFtcGxlLW5hbWUtdG8tbWF0Y2gtYWN0dWFsLW9uZS5wYXRjaCBiL2VqYWJiZXJkLTAwMDEtRml4 LVBBTS1zZXJ2aWNlLWV4YW1wbGUtbmFtZS10by1tYXRjaC1hY3R1YWwtb25lLnBhdGNoCmluZGV4 IGJkZmZiM2YuLmE3ZGIyYTMgMTAwNjQ0Ci0tLSBhL2VqYWJiZXJkLTAwMDEtRml4LVBBTS1zZXJ2 aWNlLWV4YW1wbGUtbmFtZS10by1tYXRjaC1hY3R1YWwtb25lLnBhdGNoCisrKyBiL2VqYWJiZXJk LTAwMDEtRml4LVBBTS1zZXJ2aWNlLWV4YW1wbGUtbmFtZS10by1tYXRjaC1hY3R1YWwtb25lLnBh dGNoCkBAIC0xLDcgKzEsNyBAQAogRnJvbSA3MjcxOGI4ZmNiYjE5YjM0ZTM0OGVmY2I4NzRmYTQ4 MGU4M2Q3YTAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogUGV0ZXIgTGVtZW5rb3Yg PGxlbWVua292QGdtYWlsLmNvbT4KIERhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MDM6MzggKzAz MDAKLVN1YmplY3Q6IFtQQVRDSCAwMS8xMF0gRml4IFBBTSBzZXJ2aWNlIGV4YW1wbGUgbmFtZSB0 byBtYXRjaCBhY3R1YWwgb25lCitTdWJqZWN0OiBbUEFUQ0ggMS84XSBGaXggUEFNIHNlcnZpY2Ug ZXhhbXBsZSBuYW1lIHRvIG1hdGNoIGFjdHVhbCBvbmUKIAogU2lnbmVkLW9mZi1ieTogUGV0ZXIg TGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KIC0tLQpAQCAtMjIsNSArMjIsNSBAQCBpbmRl eCBhNDA2OGFkLi45YjI0YTRhIDEwMDY0NAogICUlCiAgJSUgQXV0aGVudGljYXRpb24gdXNpbmcg TERBUAogLS0gCi0xLjcuMTAuMQorMS43LjEwLjQKIAoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAw MDItQWRkLW1vZF9jdGxleHRyYS1hcy1hbi1lamFiYmVyZC1tb2R1bGUucGF0Y2ggYi9lamFiYmVy ZC0wMDAyLUFkZC1tb2RfY3RsZXh0cmEtYXMtYW4tZWphYmJlcmQtbW9kdWxlLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDNkM2JiLi4wMDAwMDAwCi0tLSBhL2VqYWJiZXJk LTAwMDItQWRkLW1vZF9jdGxleHRyYS1hcy1hbi1lamFiYmVyZC1tb2R1bGUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw5MzYgKzAsMCBAQAotRnJvbSA2YmVkNzZmNzdiODNhODU5Nzk4ZDM5YTUx OTY5OTg3NzM5ZTRmNGZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogUGV0ZXIgTGVt ZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MDU6 NTMgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCAwMi8xMF0gQWRkIG1vZF9jdGxleHRyYSBhcyBhbiBl amFiYmVyZCBtb2R1bGUKLQotU2VlIHRoaXMgbGluayBmb3IgdGhlIGRldGFpbHM6Ci1odHRwOi8v d3d3LmVqYWJiZXJkLmltL21vZF9jdGxleHRyYQotCi1BbHNvIG5vdGUgdGhhdCB0aGlzIG1vZHVs ZSB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXJlc3QgZnV0dXJlCi1pbiBmYXZvciBvZiBtb2Rf YWRtaW5fZXh0cmE6Ci0KLXN2biBleHBvcnQgLXIgMTAyMCBodHRwczovL3N2bi5wcm9jZXNzLW9u ZS5uZXQvZWphYmJlcmQtbW9kdWxlcy9tb2RfY3RsZXh0cmEvdHJ1bmsvc3JjL21vZF9jdGxleHRy YS5lcmwKLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNv bT4KLS0tLQotIHNyYy9lamFiYmVyZC5hcHAgICAgIHwgICAgMSArCi0gc3JjL21vZF9jdGxleHRy YS5lcmwgfCAgODk1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCA4OTYgaW5zZXJ0aW9ucygrKQotIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvbW9kX2N0bGV4dHJhLmVybAotCi1kaWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJk LmFwcCBiL3NyYy9lamFiYmVyZC5hcHAKLWluZGV4IDJmMDg2MDEuLjA2N2I5MjggMTAwNjQ0Ci0t LS0gYS9zcmMvZWphYmJlcmQuYXBwCi0rKysgYi9zcmMvZWphYmJlcmQuYXBwCi1AQCAtNzEsNiAr NzEsNyBAQAotIAkgICAgIG1vZF9jYXBzLAotIAkgICAgIG1vZF9jb25maWd1cmUyLAotIAkgICAg IG1vZF9jb25maWd1cmUsCi0rCSAgICAgbW9kX2N0bGV4dHJhLAotIAkgICAgIG1vZF9kaXNjbywK LSAJICAgICBtb2RfZWNobywKLSAJICAgICBtb2RfaHR0cF9iaW5kLAotZGlmZiAtLWdpdCBhL3Ny Yy9tb2RfY3RsZXh0cmEuZXJsIGIvc3JjL21vZF9jdGxleHRyYS5lcmwKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iYzYxMDI0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMv bW9kX2N0bGV4dHJhLmVybAotQEAgLTAsMCArMSw4OTUgQEAKLSslJSUtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQot KyUlJSBGaWxlICAgIDogbW9kX2N0bGV4dHJhLmVybA0KLSslJSUgQXV0aG9yICA6IEJhZGxvcCA8 YmFkbG9wQG9uby5jb20+DQotKyUlJSBQdXJwb3NlIDogQWRkcyBtb3JlIGNvbW1hbmRzIHRvIGVq YWJiZXJkX2N0bA0KLSslJSUgQ3JlYXRlZCA6IDMwIE5vdiAyMDA2IGJ5IEJhZGxvcCA8YmFkbG9w QG9uby5jb20+DQotKyUlJSBJZCAgICAgIDogJElkOiBtb2RfY3RsZXh0cmEuZXJsIDEwMjAgMjAw OS0wOC0zMCAxMDoxMzozNFogYmFkbG9wICQNCi0rJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLSsNCi0rLW1v ZHVsZShtb2RfY3RsZXh0cmEpLg0KLSstYXV0aG9yKCdiYWRsb3BAb25vLmNvbScpLg0KLSsNCi0r LWJlaGF2aW91cihnZW5fbW9kKS4NCi0rDQotKy1leHBvcnQoW3N0YXJ0LzIsDQotKwkgc3RvcC8x LA0KLSsJIGN0bF9wcm9jZXNzLzIsDQotKwkgY3RsX3Byb2Nlc3MvMw0KLSsJXSkuDQotKw0KLSst aW5jbHVkZSgiZWphYmJlcmQuaHJsIikuDQotKy1pbmNsdWRlKCJlamFiYmVyZF9jdGwuaHJsIiku DQotKy1pbmNsdWRlKCJqbGliLmhybCIpLg0KLSstaW5jbHVkZSgibW9kX3Jvc3Rlci5ocmwiKS4N Ci0rDQotKyUlIENvcGllZCBmcm9tIGVqYWJiZXJkX3NtLmVybA0KLSstcmVjb3JkKHNlc3Npb24s IHtzaWQsIHVzciwgdXMsIHByaW9yaXR5LCBpbmZvfSkuDQotKw0KLSstY29tcGlsZShleHBvcnRf YWxsKS4NCi0rDQotKyUlLS0tLS0tLS0tLS0tLQ0KLSslJSBnZW5fbW9kDQotKyUlLS0tLS0tLS0t LS0tLQ0KLSsNCi0rc3RhcnQoSG9zdCwgX09wdHMpIC0+DQotKyAgICBlamFiYmVyZF9jdGw6cmVn aXN0ZXJfY29tbWFuZHMoY29tbWFuZHNfZ2xvYmFsKCksID9NT0RVTEUsIGN0bF9wcm9jZXNzKSwN Ci0rICAgIGVqYWJiZXJkX2N0bDpyZWdpc3Rlcl9jb21tYW5kcyhIb3N0LCBjb21tYW5kc19ob3N0 KCksID9NT0RVTEUsIGN0bF9wcm9jZXNzKS4NCi0rDQotK3N0b3AoSG9zdCkgLT4NCi0rICAgIGVq YWJiZXJkX2N0bDp1bnJlZ2lzdGVyX2NvbW1hbmRzKGNvbW1hbmRzX2dsb2JhbCgpLCA/TU9EVUxF LCBjdGxfcHJvY2VzcyksDQotKyAgICBlamFiYmVyZF9jdGw6dW5yZWdpc3Rlcl9jb21tYW5kcyhI b3N0LCBjb21tYW5kc19ob3N0KCksID9NT0RVTEUsIGN0bF9wcm9jZXNzKS4NCi0rDQotK2NvbW1h bmRzX2dsb2JhbCgpIC0+DQotKyAgICBbDQotKyAgICAgeyJjb21waWxlIGZpbGUiLCAicmVjb21w aWxlIGFuZCByZWxvYWQgZmlsZSJ9LA0KLSsgICAgIHsibG9hZC1jb25maWcgZmlsZSIsICJsb2Fk IGNvbmZpZyBmcm9tIGZpbGUifSwNCi0rICAgICB7InJlbW92ZS1ub2RlIG5vZGVuYW1lIiwgInJl bW92ZSBhbiBlamFiYmVyZCBub2RlIGZyb20gdGhlIGRhdGFiYXNlIn0sDQotKw0KLSsgICAgICUl IGVqYWJiZXJkX2F1dGgNCi0rICAgICB7ImRlbGV0ZS1vbGRlci11c2VycyBkYXlzIiwgImRlbGV0 ZSB1c2VycyB0aGF0IGhhdmUgbm90IGxvZ2dlZCBpbiB0aGUgbGFzdCAnZGF5cycifSwNCi0rICAg ICB7ImRlbGV0ZS1vbGRlci11c2Vycy12aG9zdCBob3N0IGRheXMiLCAiZGVsZXRlIHVzZXJzIHRo YXQgbm90IGxvZ2dlZCBpbiBsYXN0ICdkYXlzJyBpbiAnaG9zdCcifSwNCi0rICAgICB7InNldC1w YXNzd29yZCB1c2VyIHNlcnZlciBwYXNzd29yZCIsICJzZXQgcGFzc3dvcmQgdG8gdXNlckBzZXJ2 ZXIifSwNCi0rDQotKyAgICAgJSUgZWpkMm9kYmMNCi0rICAgICB7ImV4cG9ydDJvZGJjIHNlcnZl ciBvdXRwdXQiLCAiZXhwb3J0IE1uZXNpYSB0YWJsZXMgb24gc2VydmVyIHRvIGZpbGVzIG9uIG91 dHB1dCBkaXJlY3RvcnkifSwNCi0rDQotKyAgICAgJSUgbW9kX3NoYXJlZF9yb3N0ZXINCi0rICAg ICB7InNyZy1jcmVhdGUgZ3JvdXAgaG9zdCBuYW1lIGRlc2NyaXB0aW9uIGRpc3BsYXkiLCAiY3Jl YXRlIHRoZSBncm91cCB3aXRoIG9wdGlvbnMifSwNCi0rICAgICB7InNyZy1kZWxldGUgZ3JvdXAg aG9zdCIsICJkZWxldGUgdGhlIGdyb3VwIn0sDQotKyAgICAgeyJzcmctdXNlci1hZGQgdXNlciBz ZXJ2ZXIgZ3JvdXAgaG9zdCIsICJhZGQgdXNlckBzZXJ2ZXIgdG8gZ3JvdXAgb24gaG9zdCJ9LA0K LSsgICAgIHsic3JnLXVzZXItZGVsIHVzZXIgc2VydmVyIGdyb3VwIGhvc3QiLCAiZGVsZXRlIHVz ZXJAc2VydmVyIGZyb20gZ3JvdXAgb24gaG9zdCJ9LA0KLSsgICAgIHsic3JnLWxpc3QtZ3JvdXBz IGhvc3QiLCAibGlzdCB0aGUgc2hhcmVkIHJvc3RlciBncm91cHMgZnJvbSBob3N0In0sDQotKyAg ICAgeyJzcmctZ2V0LWluZm8gZ3JvdXAgaG9zdCIsICJnZXQgaW5mbyBvZiBhIHNwZWNpZmljIGdy b3VwIG9uIGhvc3QifSwNCi0rDQotKyAgICAgJSUgbW9kX3ZjYXJkDQotKyAgICAgeyJ2Y2FyZC1n ZXQgdXNlciBob3N0IGRhdGEgW2RhdGEyXSIsICJnZXQgZGF0YSBmcm9tIHRoZSB2Q2FyZCBvZiB0 aGUgdXNlciJ9LA0KLSsgICAgIHsidmNhcmQtc2V0IHVzZXIgaG9zdCBkYXRhIFtkYXRhMl0gY29u dGVudCIsICJzZXQgZGF0YSB0byBjb250ZW50IG9uIHRoZSB2Q2FyZCJ9LA0KLSsNCi0rICAgICAl JSBtb2RfYW5ub3VuY2UNCi0rICAgICAlJSBhbm5vdW5jZV9zZW5kX29ubGluZSBob3N0IG1lc3Nh Z2UNCi0rICAgICAlJSBhbm5vdW5jZV9zZW5kX2FsbCBob3N0LCBtZXNzYWdlDQotKw0KLSsgICAg ICUlIG1vZF9yb3N0ZXINCi0rICAgICB7ImFkZC1yb3N0ZXJpdGVtIHVzZXIxIHNlcnZlcjEgdXNl cjIgc2VydmVyMiBuaWNrIGdyb3VwIHN1YnMiLCAiQWRkIHVzZXIyQHNlcnZlcjIgdG8gdXNlcjFA c2VydmVyMSdzIHJvc3RlciJ9LA0KLSsgICAgICUleyIiLCAic3Vicz0gbm9uZSwgZnJvbSwgdG8g b3IgYm90aCJ9LA0KLSsgICAgICUleyIiLCAiZXhhbXBsZTogYWRkLXJvc3RlciBwZXRlciBsb2Nh bGhvc3QgbWlrZSBzZXJ2ZXIuY29tIE1pS2UgRW1wbG95ZWVzIGJvdGgifSwNCi0rICAgICAlJXsi IiwgIndpbGwgYWRkIG1pa2VAc2VydmVyLmNvbSB0byBwZXRlckBsb2NhbGhvc3Qgcm9zdGVyIn0s DQotKyAgICAgeyJyZW0tcm9zdGVyaXRlbSB1c2VyMSBzZXJ2ZXIxIHVzZXIyIHNlcnZlcjIiLCAi UmVtb3ZlIHVzZXIyQHNlcnZlcjIgZnJvbSB1c2VyMUBzZXJ2ZXIxJ3Mgcm9zdGVyIn0sDQotKyAg ICAgeyJyb3N0ZXJpdGVtLXB1cmdlIFtvcHRpb25zXSIsICJQdXJnZSBhbGwgcm9zdGVyaXRlbXMg dGhhdCBtYXRjaCBmaWx0ZXJpbmcgb3B0aW9ucyJ9LA0KLSsgICAgIHsicHVzaHJvc3RlciBmaWxl IHVzZXIgc2VydmVyIiwgInB1c2ggdGVtcGxhdGUgcm9zdGVyIGluIGZpbGUgdG8gdXNlckBzZXJ2 ZXIifSwNCi0rICAgICB7InB1c2hyb3N0ZXItYWxsIGZpbGUiLCAicHVzaCB0ZW1wbGF0ZSByb3N0 ZXIgaW4gZmlsZSB0byBhbGwgdGhvc2UgdXNlcnMifSwNCi0rICAgICB7InB1c2gtYWxsdG9hbGwg c2VydmVyIGdyb3VwIiwgImFkZHMgYWxsIHRoZSB1c2VycyB0byBhbGwgdGhlIHVzZXJzIGluIEdy b3VwIn0sDQotKw0KLSsgICAgIHsic3RhdHVzLWxpc3Qgc3RhdHVzIiwgImxpc3QgdGhlIGxvZ2dl ZCB1c2VycyB3aXRoIHN0YXR1cyJ9LA0KLSsgICAgIHsic3RhdHVzLW51bSBzdGF0dXMiLCAibnVt YmVyIG9mIGxvZ2dlZCB1c2VycyB3aXRoIHN0YXR1cyJ9LA0KLSsNCi0rICAgICB7InN0YXRzIHJl Z2lzdGVyZWR1c2VycyIsICJudW1iZXIgb2YgcmVnaXN0ZXJlZCB1c2VycyJ9LA0KLSsgICAgIHsi c3RhdHMgb25saW5ldXNlcnMiLCAibnVtYmVyIG9mIGxvZ2dlZCB1c2VycyJ9LA0KLSsgICAgIHsi c3RhdHMgb25saW5ldXNlcnNub2RlIiwgIm51bWJlciBvZiBsb2dnZWQgdXNlcnMgaW4gdGhlIGVq YWJiZXJkIG5vZGUifSwNCi0rICAgICB7InN0YXRzIHVwdGltZS1zZWNvbmRzIiwgInVwdGltZSBv ZiBlamFiYmVyZCBub2RlIGluIHNlY29uZHMifSwNCi0rDQotKyAgICAgJSUgbWlzYw0KLSsgICAg IHsiZ2V0LWNvb2tpZSIsICJnZXQgdGhlIEVybGFuZyBjb29raWUgb2YgdGhpcyBub2RlIn0sDQot KyAgICAgeyJraWxsc2Vzc2lvbiB1c2VyIHNlcnZlciByZXNvdXJjZSIsICJraWxsIGEgdXNlciBz ZXNzaW9uIn0NCi0rICAgIF0uDQotKw0KLStjb21tYW5kc19ob3N0KCkgLT4NCi0rICAgIFsNCi0r ICAgICAlJSBtb2RfbGFzdA0KLSsgICAgIHsibnVtLWFjdGl2ZS11c2VycyBkYXlzIiwgIm51bWJl ciBvZiB1c2VycyBhY3RpdmUgaW4gdGhlIGxhc3QgJ2RheXMnIn0sDQotKyAgICAgeyJzdGF0dXMt bGlzdCBzdGF0dXMiLCAibGlzdCB0aGUgbG9nZ2VkIHVzZXJzIHdpdGggc3RhdHVzIn0sDQotKyAg ICAgeyJzdGF0dXMtbnVtIHN0YXR1cyIsICJudW1iZXIgb2YgbG9nZ2VkIHVzZXJzIHdpdGggc3Rh dHVzIn0sDQotKyAgICAgeyJzdGF0cyByZWdpc3RlcmVkdXNlcnMiLCAibnVtYmVyIG9mIHJlZ2lz dGVyZWQgdXNlcnMifSwNCi0rICAgICB7InN0YXRzIG9ubGluZXVzZXJzIiwgIm51bWJlciBvZiBs b2dnZWQgdXNlcnMifSwNCi0rDQotKyAgICAgJSUgbWlzYw0KLSsgICAgIHsiYmFuLWFjY291bnQg dXNlcm5hbWUgW3JlYXNvbl0iLCAiYmFuIGFjY291bnQ6IGtpY2sgc2Vzc2lvbnMgYW5kIGNoYW5n ZSBwYXNzd29yZCJ9DQotKyAgICBdLg0KLSsNCi0rDQotKyUlLS0tLS0tLS0tLS0tLQ0KLSslJSBD b21tYW5kcyBnbG9iYWwNCi0rJSUtLS0tLS0tLS0tLS0tDQotKw0KLStjdGxfcHJvY2VzcyhfVmFs LCBbImRlbGV0ZS1vbGRlci11c2VycyIsIERheXNdKSAtPg0KLSsgICAge3JlbW92ZWQsIE4sIFVS fSA9IGRlbGV0ZV9vbGRlcl91c2VycyhsaXN0X3RvX2ludGVnZXIoRGF5cykpLA0KLSsgICAgaW86 Zm9ybWF0KCJEZWxldGVkIH5wIHVzZXJzOiB+cH5uIiwgW04sIFVSXSksDQotKyAgICA/U1RBVFVT X1NVQ0NFU1M7DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbImRlbGV0ZS1vbGRlci11c2Vycy12 aG9zdCIsIEhvc3QsIERheXNdKSAtPg0KLSsgICAge3JlbW92ZWQsIE4sIFVSfSA9IGRlbGV0ZV9v bGRlcl91c2Vyc192aG9zdChIb3N0LCBsaXN0X3RvX2ludGVnZXIoRGF5cykpLA0KLSsgICAgaW86 Zm9ybWF0KCJEZWxldGVkIH5wIHVzZXJzOiB+cH5uIiwgW04sIFVSXSksDQotKyAgICA/U1RBVFVT X1NVQ0NFU1M7DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbImV4cG9ydDJvZGJjIiwgU2VydmVy LCBPdXRwdXRdKSAtPg0KLSsgICAgVGFibGVzID0gWw0KLSsJICAgICAge2V4cG9ydF9sYXN0LCBs YXN0fSwNCi0rCSAgICAgIHtleHBvcnRfb2ZmbGluZSwgb2ZmbGluZX0sDQotKwkgICAgICB7ZXhw b3J0X3Bhc3N3ZCwgcGFzc3dkfSwNCi0rCSAgICAgIHtleHBvcnRfcHJpdmF0ZV9zdG9yYWdlLCBw cml2YXRlX3N0b3JhZ2V9LA0KLSsJICAgICAge2V4cG9ydF9yb3N0ZXIsIHJvc3Rlcn0sDQotKwkg ICAgICB7ZXhwb3J0X3ZjYXJkLCB2Y2FyZH0sDQotKwkgICAgICB7ZXhwb3J0X3ZjYXJkX3NlYXJj aCwgdmNhcmRfc2VhcmNofV0sDQotKyAgICBFeHBvcnQgPSBmdW4oe1RhYmxlRnVuLCBUYWJsZX0p IC0+IA0KLSsJCSAgICAgRmlsZW5hbWUgPSBmaWxlbmFtZTpqb2luKFtPdXRwdXQsIGF0b21fdG9f bGlzdChUYWJsZSkrKyIudHh0Il0pLA0KLSsJCSAgICAgaW86Zm9ybWF0KCJUcnlpbmcgdG8gZXhw b3J0IE1uZXNpYSB0YWJsZSAnfnAnIG9uIHNlcnZlciAnfnMnIHRvIGZpbGUgJ35zJ35uIiwgW1Rh YmxlLCBTZXJ2ZXIsIEZpbGVuYW1lXSksDQotKwkJICAgICBSZXMgPSAoY2F0Y2ggZWpkMm9kYmM6 VGFibGVGdW4oU2VydmVyLCBGaWxlbmFtZSkpLA0KLSsJCSAgICAgaW86Zm9ybWF0KCIgIFJlc3Vs dDogfnB+biIsIFtSZXNdKQ0KLSsJICAgICBlbmQsDQotKyAgICBsaXN0czpmb3JlYWNoKEV4cG9y dCwgVGFibGVzKSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotK2N0bF9wcm9jZXNzKF9W YWwsIFsic2V0LXBhc3N3b3JkIiwgVXNlciwgU2VydmVyLCBQYXNzd29yZF0pIC0+DQotKyAgICBl amFiYmVyZF9hdXRoOnNldF9wYXNzd29yZChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkKSwNCi0rICAg ID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotK2N0bF9wcm9jZXNzKF9WYWwsIFsidmNhcmQtZ2V0Iiwg VXNlciwgU2VydmVyLCBEYXRhXSkgLT4NCi0rICAgIHtvaywgUmVzfSA9IHZjYXJkX2dldChVc2Vy LCBTZXJ2ZXIsIFtEYXRhXSksDQotKyAgICBpbzpmb3JtYXQoIn5zfm4iLCBbUmVzXSksDQotKyAg ICA/U1RBVFVTX1NVQ0NFU1M7DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbInZjYXJkLWdldCIs IFVzZXIsIFNlcnZlciwgRGF0YTEsIERhdGEyXSkgLT4NCi0rICAgIHtvaywgUmVzfSA9IHZjYXJk X2dldChVc2VyLCBTZXJ2ZXIsIFtEYXRhMSwgRGF0YTJdKSwNCi0rICAgIGlvOmZvcm1hdCgifnN+ biIsIFtSZXNdKSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotK2N0bF9wcm9jZXNzKF9W YWwsIFsidmNhcmQtc2V0IiwgVXNlciwgU2VydmVyLCBEYXRhMSwgQ29udGVudF0pIC0+DQotKyAg ICB7b2ssIFJlc30gPSB2Y2FyZF9zZXQoVXNlciwgU2VydmVyLCBbRGF0YTFdLCBDb250ZW50KSwN Ci0rICAgIGlvOmZvcm1hdCgifnN+biIsIFtSZXNdKSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsN Ci0rDQotK2N0bF9wcm9jZXNzKF9WYWwsIFsidmNhcmQtc2V0IiwgVXNlciwgU2VydmVyLCBEYXRh MSwgRGF0YTIsIENvbnRlbnRdKSAtPg0KLSsgICAge29rLCBSZXN9ID0gdmNhcmRfc2V0KFVzZXIs IFNlcnZlciwgW0RhdGExLCBEYXRhMl0sIENvbnRlbnQpLA0KLSsgICAgaW86Zm9ybWF0KCJ+c35u IiwgW1Jlc10pLA0KLSsgICAgP1NUQVRVU19TVUNDRVNTOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1Zh bCwgWyJjb21waWxlIiwgTW9kdWxlXSkgLT4NCi0rICAgIGNvbXBpbGU6ZmlsZShNb2R1bGUpLA0K LSsgICAgP1NUQVRVU19TVUNDRVNTOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1ZhbCwgWyJyZW1vdmUt bm9kZSIsIE5vZGVdKSAtPg0KLSsgICAgbW5lc2lhOmRlbF90YWJsZV9jb3B5KHNjaGVtYSwgbGlz dF90b19hdG9tKE5vZGUpKSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotKyUlIFRoZSBE aXNwbGF5IGFyZ3VtZW50IGNhbiBiZSBzZXZlcmFsIGdyb3VwcyBzZXBhcmF0ZWQgd2l0aCAsDQot KyUlIEV4YW1wbGU6IGVqYWJiZXJkY3RsIHNyZy1jcmVhdGUgYWEgbG9jYWxob3N0IE5hbWUgRGVz YyBEaXNwbGF5MSxEaXNwbGF5MixEaXNwbGF5Mw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbInNyZy1j cmVhdGUiIHwgUGFyYW1ldGVyc10pIC0+DQotKwlbR3JvdXAsIEhvc3QsIE5hbWUsIERlc2NyaXB0 aW9uLCBEaXNwbGF5XSA9IGdyb3VwX3BhcmFtZXRlcnMoUGFyYW1ldGVycywgIiciKSwNCi0rICAg IERpc3BsYXlMaXN0ID0gc3RyaW5nOnRva2VucyhEaXNwbGF5LCAiLCIpLA0KLSsgICAgT3B0cyA9 IFt7bmFtZSwgTmFtZX0sIHtkaXNwbGF5ZWRfZ3JvdXBzLCBEaXNwbGF5TGlzdH0sIHtkZXNjcmlw dGlvbiwgRGVzY3JpcHRpb259XSwNCi0rICAgIHthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9z dGVyOmNyZWF0ZV9ncm91cChIb3N0LCBHcm91cCwgT3B0cyksDQotKyAgICA/U1RBVFVTX1NVQ0NF U1M7DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbInNyZy1kZWxldGUiLCBHcm91cCwgSG9zdF0p IC0+DQotKyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpkZWxldGVfZ3JvdXAo SG9zdCwgR3JvdXApLA0KLSsgICAgP1NUQVRVU19TVUNDRVNTOw0KLSsNCi0rY3RsX3Byb2Nlc3Mo X1ZhbCwgWyJzcmctdXNlci1hZGQiLCBVc2VyLCBTZXJ2ZXIsIEdyb3VwLCBIb3N0XSkgLT4NCi0r ICAgIHthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9zdGVyOmFkZF91c2VyX3RvX2dyb3VwKEhv c3QsIHtVc2VyLCBTZXJ2ZXJ9LCBHcm91cCksDQotKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQotKw0K LStjdGxfcHJvY2VzcyhfVmFsLCBbInNyZy11c2VyLWRlbCIsIFVzZXIsIFNlcnZlciwgR3JvdXAs IEhvc3RdKSAtPg0KLSsgICAge2F0b21pYywgb2t9ID0gbW9kX3NoYXJlZF9yb3N0ZXI6cmVtb3Zl X3VzZXJfZnJvbV9ncm91cChIb3N0LCB7VXNlciwgU2VydmVyfSwgR3JvdXApLA0KLSsgICAgP1NU QVRVU19TVUNDRVNTOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzcmctbGlzdC1ncm91cHMi LCBIb3N0XSkgLT4NCi0rICAgIGxpc3RzOmZvcmVhY2goDQotKyAgICAgIGZ1bihTcmdHcm91cCkg LT4NCi0rCSAgICAgIGlvOmZvcm1hdCgifnN+biIsW1NyZ0dyb3VwXSkNCi0rICAgICAgZW5kLA0K LSsgICAgICBsaXN0czpzb3J0KG1vZF9zaGFyZWRfcm9zdGVyOmxpc3RfZ3JvdXBzKEhvc3QpKSks DQotKyAgICA/U1RBVFVTX1NVQ0NFU1M7DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbInNyZy1n ZXQtaW5mbyIsIEdyb3VwLCBIb3N0XSkgLT4NCi0rICAgIE9wdHMgPSBtb2Rfc2hhcmVkX3Jvc3Rl cjpnZXRfZ3JvdXBfb3B0cyhIb3N0LEdyb3VwKSwNCi0rICAgIFtpbzpmb3JtYXQoIn5zOiB+cH5u IiwgW1RpdGxlLCBWYWx1ZV0pIHx8IHtUaXRsZSAsIFZhbHVlfSA8LSBPcHRzXSwNCi0rICAgIA0K LSsgICAgTWVtYmVycyA9IG1vZF9zaGFyZWRfcm9zdGVyOmdldF9ncm91cF9leHBsaWNpdF91c2Vy cyhIb3N0LEdyb3VwKSwNCi0rICAgIE1lbWJlcnNfc3RyaW5nID0gWyAiICIgKysgamxpYjpqaWRf dG9fc3RyaW5nKGpsaWI6bWFrZV9qaWQoTVVzZXIsIE1TZXJ2ZXIsICIiKSkgDQotKwkJICAgICAg IHx8IHtNVXNlciwgTVNlcnZlcn0gPC0gTWVtYmVyc10sDQotKyAgICBpbzpmb3JtYXQoIm1lbWJl cnM6fnN+biIsIFtNZW1iZXJzX3N0cmluZ10pLA0KLSsgICAgDQotKyAgICA/U1RBVFVTX1NVQ0NF U1M7DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbImFkZC1yb3N0ZXJpdGVtIiwgTG9jYWxVc2Vy LCBMb2NhbFNlcnZlciwgUmVtb3RlVXNlciwgUmVtb3RlU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vi c10pIC0+DQotKyAgICBjYXNlIGFkZF9yb3N0ZXJpdGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIs IFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTmljaywgR3JvdXAsIGxpc3RfdG9fYXRvbShTdWJz KSwgW10pIG9mDQotKwl7YXRvbWljLCBva30gLT4NCi0rCSAgICA/U1RBVFVTX1NVQ0NFU1M7DQot Kwl7ZXJyb3IsIFJlYXNvbn0gLT4NCi0rCSAgICBpbzpmb3JtYXQoIkNhbid0IGFkZCB+cEB+cCB0 byB+cEB+cDogfnB+biIsDQotKwkJICAgICAgW1JlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTG9j YWxVc2VyLCBMb2NhbFNlcnZlciwgUmVhc29uXSksDQotKwkgICAgP1NUQVRVU19FUlJPUjsNCi0r CXtiYWRycGMsIFJlYXNvbn0gLT4NCi0rCSAgICBpbzpmb3JtYXQoIkNhbid0IGFkZCByb3N0ZXIg aXRlbSB0byB1c2VyIH5wOiB+cH5uIiwNCi0rCQkgICAgICBbTG9jYWxVc2VyLCBSZWFzb25dKSwN Ci0rCSAgICA/U1RBVFVTX0JBRFJQQw0KLSsgICAgZW5kOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1Zh bCwgWyJyZW0tcm9zdGVyaXRlbSIsIExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIs IFJlbW90ZVNlcnZlcl0pIC0+DQotKyAgICBjYXNlIHJlbV9yb3N0ZXJpdGVtKExvY2FsVXNlciwg TG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlcikgb2YNCi0rCXthdG9taWMsIG9r fSAtPg0KLSsJICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rCXtlcnJvciwgUmVhc29ufSAtPg0KLSsJ ICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcmVtb3ZlIH5wQH5wIHRvIH5wQH5wOiB+cH5uIiwNCi0rCQkg ICAgICBbUmVtb3RlVXNlciwgUmVtb3RlU2VydmVyLCBMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBS ZWFzb25dKSwNCi0rCSAgICA/U1RBVFVTX0VSUk9SOw0KLSsJe2JhZHJwYywgUmVhc29ufSAtPg0K LSsJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcmVtb3ZlIHJvc3RlciBpdGVtIHRvIHVzZXIgfnA6IH5w fm4iLA0KLSsJCSAgICAgIFtMb2NhbFVzZXIsIFJlYXNvbl0pLA0KLSsJICAgID9TVEFUVVNfQkFE UlBDDQotKyAgICBlbmQ7DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbInJvc3Rlcml0ZW0tcHVy Z2UiXSkgLT4NCi0rICAgIGlvOmZvcm1hdCgiUm9zdGVyaXRlbXMgdGhhdCBtYXRjaCBhbGwgdGhl IGZpbHRlcmluZyB3aWxsIGJlIHJlbW92ZWQufm4iKSwNCi0rICAgIGlvOmZvcm1hdCgiT3B0aW9u cyBmb3IgZmlsdGVyaW5nOn5uIiksDQotKyAgICBpbzpmb3JtYXQoIn5uIiksDQotKyAgICBpbzpm b3JtYXQoIiAgLXN1YnMgbm9uZXxmcm9tfHRvfGJvdGh+biIpLA0KLSsgICAgaW86Zm9ybWF0KCIg ICAgICAgU3Vic2NyaXB0aW9uIHR5cGUuIEJ5IGRlZmF1bHQgYWxsIHZhbHVlc35uIiksDQotKyAg ICBpbzpmb3JtYXQoIn5uIiksDQotKyAgICBpbzpmb3JtYXQoIiAgLWFzayBub25lfG91dHxpbn5u IiksDQotKyAgICBpbzpmb3JtYXQoIiAgICAgICBQZW5kaW5nIHN1YnNjcmlwdGlvbi4gQnkgZGVm YXVsdCBhbGwgdmFsdWVzfm4iKSwNCi0rICAgIGlvOmZvcm1hdCgifm4iKSwNCi0rICAgIGlvOmZv cm1hdCgiICAtdXNlciBKSUR+biIpLA0KLSsgICAgaW86Zm9ybWF0KCIgICAgICAgVGhlIEpJRCBv ZiB0aGUgbG9jYWwgdXNlci5+biIpLA0KLSsgICAgaW86Zm9ybWF0KCIgICAgICAgQ2FuIHVzZSB0 aGVzZSBnbG9iczogKiwgPyBhbmQgWy4uLl0ufm4iKSwNCi0rICAgIGlvOmZvcm1hdCgiICAgICAg IEJ5IGRlZmF1bHQgaXQgaXM6ICogKkAqfm4iKSwNCi0rICAgIGlvOmZvcm1hdCgifm4iKSwNCi0r ICAgIGlvOmZvcm1hdCgiICAtY29udGFjdCBKSUR+biIpLA0KLSsgICAgaW86Zm9ybWF0KCIgICAg ICAgU2ltaWxhciB0byAndXNlcicsIGJ1dCBmb3IgdGhlIGNvbnRhY3QgSklELn5uIiksDQotKyAg ICBpbzpmb3JtYXQoIn5uIiksDQotKyAgICBpbzpmb3JtYXQoIkV4YW1wbGU6fm4iKSwNCi0rICAg IGlvOmZvcm1hdCgiICBlamFiYmVyZGN0bCByb3N0ZXJpdGVtLXB1cmdlIC1zdWJzIG5vbmUgZnJv bSB0byAtYXNrIG91dCBpbiAtY29udGFjdCAqQCppY3Eqfm4iKSwNCi0rICAgIGlvOmZvcm1hdCgi fm4iKSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rY3RsX3Byb2Nlc3MoX1ZhbCwgWyJyb3N0 ZXJpdGVtLXB1cmdlIiB8IE9wdGlvbnNfbGlzdF0pIC0+DQotKyAgICBPcHRpb25zX3Byb3BfbGlz dCA9IGxpc3RzOmZvbGRsKA0KLSsJCQkgIGZ1bihPLCBSKSAtPg0KLSsJCQkJICBjYXNlIE8gb2YN Ci0rCQkJCSAgICAgIFskLSB8IEtdIC0+DQotKwkJCQkJICBbe0ssIFtdfSB8IFJdOw0KLSsJCQkJ ICAgICAgViAtPg0KLSsJCQkJCSAgW3tLLCBWc30gfCBSVF0gPSBSLA0KLSsJCQkJCSAgW3tLLCBb VnxWc119IHwgUlRdDQotKwkJCQkgIGVuZA0KLSsJCQkgIGVuZCwNCi0rCQkJICBbXSwNCi0rCQkJ ICBPcHRpb25zX2xpc3QpLA0KLSsgICAgDQotKyAgICBTdWJzID0gW2xpc3RfdG9fYXRvbShTKQ0K LSsJICAgIHx8IFMgPC0gcHJvcGxpc3RzOmdldF92YWx1ZSgic3VicyIsIA0KLSsJCQkJCU9wdGlv bnNfcHJvcF9saXN0LCANCi0rCQkJCQlbIm5vbmUiLCAiZnJvbSIsICJ0byIsICJib3RoIl0pXSwN Ci0rICAgIEFza3MgPSBbbGlzdF90b19hdG9tKFMpDQotKwkgICAgfHwgUyA8LSANCi0rCQkgICBw cm9wbGlzdHM6Z2V0X3ZhbHVlKCJhc2siLA0KLSsJCQkJICAgICAgIE9wdGlvbnNfcHJvcF9saXN0 LCANCi0rCQkJCSAgICAgICBbIm5vbmUiLCAib3V0IiwgImluIl0pXSwNCi0rICAgIFVzZXIgPSBw cm9wbGlzdHM6Z2V0X3ZhbHVlKCJ1c2VyIiwgT3B0aW9uc19wcm9wX2xpc3QsIFsiKiIsICIqQCoi XSksDQotKyAgICBDb250YWN0ID0gcHJvcGxpc3RzOmdldF92YWx1ZSgiY29udGFjdCIsIE9wdGlv bnNfcHJvcF9saXN0LCBbIioiLCAiKkAqIl0pLA0KLSsgICAgDQotKyAgICBjYXNlIHJvc3Rlcml0 ZW1fcHVyZ2Uoe1N1YnMsIEFza3MsIFVzZXIsIENvbnRhY3R9KSBvZg0KLSsJe2F0b21pYywgb2t9 IC0+DQotKwkgICAgP1NUQVRVU19TVUNDRVNTOw0KLSsJe2Vycm9yLCBSZWFzb259IC0+DQotKwkg ICAgaW86Zm9ybWF0KCJFcnJvciBwdXJnaW5nIHJvc3Rlcml0ZW1zOiB+cH5uIiwNCi0rCQkgICAg ICBbUmVhc29uXSksDQotKwkgICAgP1NUQVRVU19FUlJPUjsNCi0rCXtiYWRycGMsIFJlYXNvbn0g LT4NCi0rCSAgICBpbzpmb3JtYXQoIkJhZFJQQyBwdXJnaW5nIHJvc3Rlcml0ZW1zOiB+cH5uIiwN Ci0rCQkgICAgICBbUmVhc29uXSksDQotKwkgICAgP1NUQVRVU19CQURSUEMNCi0rICAgIGVuZDsN Ci0rDQotK2N0bF9wcm9jZXNzKF9WYWwsIFsicHVzaHJvc3RlciIsIEZpbGUsIFVzZXIsIFNlcnZl cl0pIC0+DQotKyAgICBjYXNlIHB1c2hyb3N0ZXIoRmlsZSwgVXNlciwgU2VydmVyKSBvZg0KLSsJ b2sgLT4NCi0rCSAgICA/U1RBVFVTX1NVQ0NFU1M7DQotKwl7ZXJyb3IsIFJlYXNvbn0gLT4NCi0r CSAgICBpbzpmb3JtYXQoIkNhbid0IHB1c2ggcm9zdGVyIH5wIHRvIH5wQH5wOiB+cH5uIiwNCi0r CQkgICAgICBbRmlsZSwgVXNlciwgU2VydmVyLCBSZWFzb25dKSwNCi0rCSAgICA/U1RBVFVTX0VS Uk9SOw0KLSsJe2JhZHJwYywgUmVhc29ufSAtPg0KLSsJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVz aCByb3N0ZXIgfnA6IH5wfm4iLA0KLSsJCSAgICAgIFtGaWxlLCBSZWFzb25dKSwNCi0rCSAgICA/ U1RBVFVTX0JBRFJQQw0KLSsgICAgZW5kOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1ZhbCwgWyJwdXNo cm9zdGVyLWFsbCIsIEZpbGVdKSAtPg0KLSsgICAgY2FzZSBwdXNocm9zdGVyX2FsbChbRmlsZV0p IG9mDQotKwlvayAtPg0KLSsJICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rCXtlcnJvciwgUmVhc29u fSAtPg0KLSsJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCByb3N0ZXIgfnA6IH5wfm4iLA0KLSsJ CSAgICAgIFtGaWxlLCBSZWFzb25dKSwNCi0rCSAgICA/U1RBVFVTX0VSUk9SOw0KLSsJe2JhZHJw YywgUmVhc29ufSAtPg0KLSsJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCByb3N0ZXIgfnA6IH5w fm4iLA0KLSsJCSAgICAgIFtGaWxlLCBSZWFzb25dKSwNCi0rCSAgICA/U1RBVFVTX0JBRFJQQw0K LSsgICAgZW5kOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1ZhbCwgWyJwdXNoLWFsbHRvYWxsIiwgU2Vy dmVyLCBHcm91cF0pIC0+DQotKyAgICBjYXNlIHB1c2hfYWxsdG9hbGwoU2VydmVyLCBHcm91cCkg b2YNCi0rCW9rIC0+DQotKwkgICAgP1NUQVRVU19TVUNDRVNTOw0KLSsJe2Vycm9yLCBSZWFzb259 IC0+DQotKwkgICAgaW86Zm9ybWF0KCJDYW4ndCBwdXNoIGFsbCB0byBhbGw6IH5wfm4iLA0KLSsJ CSAgICAgIFtSZWFzb25dKSwNCi0rCSAgICA/U1RBVFVTX0VSUk9SOw0KLSsJe2JhZHJwYywgUmVh c29ufSAtPg0KLSsJICAgIGlvOmZvcm1hdCgiQ2FuJ3QgcHVzaCBhbGwgdG8gYWxsOiB+cH5uIiwN Ci0rCQkgICAgICBbUmVhc29uXSksDQotKwkgICAgP1NUQVRVU19CQURSUEMNCi0rICAgIGVuZDsN Ci0rDQotK2N0bF9wcm9jZXNzKF9WYWwsIFsibG9hZC1jb25maWciLCBQYXRoXSkgLT4NCi0rICAg IGNhc2UgY2F0Y2ggZWphYmJlcmRfY29uZmlnOmxvYWRfZmlsZShQYXRoKSBvZg0KLSsgICAgICAg IG9rIC0+DQotKyAgICAgICAgICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rICAgICAgICB7J0VYSVQn LCBSZWFzb259IC0+DQotKyAgICAgICAgICAgIGlvOmZvcm1hdCgiUHJvYmxlbSBsb2FkaW5nIGNv bmZpZyBmaWxlIH5wOiB+cH5uIiwNCi0rICAgICAgICAgICAgICAgICAgICAgIFtmaWxlbmFtZTph YnNuYW1lKFBhdGgpLCBSZWFzb25dKSwNCi0rCSAgICA/U1RBVFVTX0VSUk9SOw0KLSsgICAgICAg IHtiYWRycGMsIFJlYXNvbn0gLT4NCi0rICAgICAgICAgICAgaW86Zm9ybWF0KCJDYW4ndCBsb2Fk IGNvbmZpZyBmaWxlIH5wOiB+cH5uIiwNCi0rICAgICAgICAgICAgICAgICAgICAgIFtmaWxlbmFt ZTphYnNuYW1lKFBhdGgpLCBSZWFzb25dKSwNCi0rCSAgICA/U1RBVFVTX0JBRFJQQw0KLSsgICAg ZW5kOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1ZhbCwgWyJzdGF0cyIsIFN0YXRdKSAtPg0KLSsgICAg UmVzID0gY2FzZSBTdGF0IG9mDQotKwkgICAgICAidXB0aW1lLXNlY29uZHMiIC0+IHVwdGltZV9z ZWNvbmRzKCk7DQotKwkgICAgICAicmVnaXN0ZXJlZHVzZXJzIiAtPiBsZW5ndGgoZWphYmJlcmRf YXV0aDpkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2VycygpKTsNCi0rCSAgICAgICJvbmxpbmV1c2Vy c25vZGUiIC0+IGxlbmd0aChlamFiYmVyZF9zbTpkaXJ0eV9nZXRfbXlfc2Vzc2lvbnNfbGlzdCgp KTsNCi0rCSAgICAgICJvbmxpbmV1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX3NtOmRpcnR5X2dl dF9zZXNzaW9uc19saXN0KCkpDQotKwkgIGVuZCwNCi0rICAgIGlvOmZvcm1hdCgifnB+biIsIFtS ZXNdKSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotK2N0bF9wcm9jZXNzKF9WYWwsIFsi c3RhdHVzLW51bSIsIFN0YXR1c19yZXF1aXJlZF0pIC0+DQotKyAgICBjdGxfcHJvY2VzcyhfVmFs LCAiYWxsIiwgWyJzdGF0dXMtbnVtIiwgU3RhdHVzX3JlcXVpcmVkXSk7DQotKw0KLStjdGxfcHJv Y2VzcyhfVmFsLCBbInN0YXR1cy1saXN0IiwgU3RhdHVzX3JlcXVpcmVkXSkgLT4NCi0rICAgIGN0 bF9wcm9jZXNzKF9WYWwsICJhbGwiLCBbInN0YXR1cy1saXN0IiwgU3RhdHVzX3JlcXVpcmVkXSk7 DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBbImdldC1jb29raWUiXSkgLT4NCi0rICAgIGlvOmZv cm1hdCgifnN+biIsIFthdG9tX3RvX2xpc3QoZXJsYW5nOmdldF9jb29raWUoKSldKSwNCi0rICAg ID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotK2N0bF9wcm9jZXNzKF9WYWwsIFsia2lsbHNlc3Npb24i LCBVc2VyLCBTZXJ2ZXIsIFJlc291cmNlIHwgVGFpbF0pIC0+DQotKyAgICBraWNrX3Nlc3Npb24o VXNlciwgU2VydmVyLCBSZXNvdXJjZSwgcHJlcGFyZV9yZWFzb24oVGFpbCkpLA0KLSsgICAgP1NU QVRVU19TVUNDRVNTOw0KLSsNCi0rY3RsX3Byb2Nlc3MoVmFsLCBfQXJncykgLT4NCi0rICAgIFZh bC4NCi0rDQotKw0KLSslJS0tLS0tLS0tLS0tLS0NCi0rJSUgQ29tbWFuZHMgdmhvc3QNCi0rJSUt LS0tLS0tLS0tLS0tDQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBIb3N0LCBbIm51bS1hY3RpdmUt dXNlcnMiLCBEYXlzXSkgLT4NCi0rICAgIE51bWJlciA9IG51bV9hY3RpdmVfdXNlcnMoSG9zdCwg bGlzdF90b19pbnRlZ2VyKERheXMpKSwNCi0rICAgIGlvOmZvcm1hdCgifnB+biIsIFtOdW1iZXJd KSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotK2N0bF9wcm9jZXNzKF9WYWwsIEhvc3Qs IFsic3RhdHMiLCBTdGF0XSkgLT4NCi0rICAgIFJlcyA9IGNhc2UgU3RhdCBvZg0KLSsJICAgICAg InJlZ2lzdGVyZWR1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX2F1dGg6Z2V0X3ZoX3JlZ2lzdGVy ZWRfdXNlcnMoSG9zdCkpOw0KLSsJICAgICAgIm9ubGluZXVzZXJzIiAtPiBsZW5ndGgoZWphYmJl cmRfc206Z2V0X3ZoX3Nlc3Npb25fbGlzdChIb3N0KSkNCi0rCSAgZW5kLA0KLSsgICAgaW86Zm9y bWF0KCJ+cH5uIiwgW1Jlc10pLA0KLSsgICAgP1NUQVRVU19TVUNDRVNTOw0KLSsNCi0rY3RsX3By b2Nlc3MoX1ZhbCwgSG9zdCwgWyJzdGF0dXMtbnVtIiwgU3RhdHVzX3JlcXVpcmVkXSkgLT4NCi0r ICAgIE51bSA9IGxlbmd0aChnZXRfc3RhdHVzX2xpc3QoSG9zdCwgU3RhdHVzX3JlcXVpcmVkKSks DQotKyAgICBpbzpmb3JtYXQoIn5wfm4iLCBbTnVtXSksDQotKyAgICA/U1RBVFVTX1NVQ0NFU1M7 DQotKw0KLStjdGxfcHJvY2VzcyhfVmFsLCBIb3N0LCBbInN0YXR1cy1saXN0IiwgU3RhdHVzX3Jl cXVpcmVkXSkgLT4NCi0rICAgIFJlcyA9IGdldF9zdGF0dXNfbGlzdChIb3N0LCBTdGF0dXNfcmVx dWlyZWQpLA0KLSsgICAgWyBpbzpmb3JtYXQoIn5zQH5zIH5zIH5wIFwifnNcIn5uIiwgW1UsIFMs IFIsIFAsIFN0XSkgfHwge1UsIFMsIFIsIFAsIFN0fSA8LSBSZXNdLA0KLSsgICAgP1NUQVRVU19T VUNDRVNTOw0KLSsNCi0rY3RsX3Byb2Nlc3MoX1ZhbCwgSG9zdCwgWyJiYW4tYWNjb3VudCIsIFVz ZXIgfCBUYWlsXSkgLT4NCi0rICAgIGJhbl9hY2NvdW50KFVzZXIsIEhvc3QsIHByZXBhcmVfcmVh c29uKFRhaWwpKSwNCi0rICAgID9TVEFUVVNfU1VDQ0VTUzsNCi0rDQotK2N0bF9wcm9jZXNzKFZh bCwgX0hvc3QsIF9BcmdzKSAtPg0KLSsgICAgVmFsLg0KLSsNCi0rDQotKyUlLS0tLS0tLS0tLS0t LQ0KLSslJSBVdGlscw0KLSslJS0tLS0tLS0tLS0tLS0NCi0rDQotK3VwdGltZV9zZWNvbmRzKCkg LT4NCi0rICAgIHRydW5jKGVsZW1lbnQoMSwgZXJsYW5nOnN0YXRpc3RpY3Mod2FsbF9jbG9jaykp LzEwMDApLg0KLSsNCi0rZ2V0X3N0YXR1c19saXN0KEhvc3QsIFN0YXR1c19yZXF1aXJlZCkgLT4N Ci0rICAgICUlIEdldCBsaXN0IG9mIGFsbCBsb2dnZWQgdXNlcnMNCi0rICAgIFNlc3Npb25zID0g ZWphYmJlcmRfc206ZGlydHlfZ2V0X215X3Nlc3Npb25zX2xpc3QoKSwNCi0rICAgICUlIFJlZm9y bWF0IHRoZSBsaXN0DQotKyAgICBTZXNzaW9uczIgPSBbIHtTZXNzaW9uI3Nlc3Npb24udXNyLCBT ZXNzaW9uI3Nlc3Npb24uc2lkLCBTZXNzaW9uI3Nlc3Npb24ucHJpb3JpdHl9IHx8IFNlc3Npb24g PC0gU2Vzc2lvbnNdLA0KLSsgICAgRmhvc3QgPSBjYXNlIEhvc3Qgb2YNCi0rCQkiYWxsIiAtPg0K LSsJCSAgICAlJSBBbGwgaG9zdHMgYXJlIHJlcXVlc3RlZCwgc28gZG9udCBmaWx0ZXIgYXQgYWxs DQotKwkJICAgIGZ1bihfLCBfKSAtPiB0cnVlIGVuZDsNCi0rCQlfIC0+DQotKwkJICAgICUlIEZp bHRlciB0aGUgbGlzdCwgb25seSBIb3N0IGlzIGludGVyZXN0aW5nDQotKwkJICAgIGZ1bihBLCBC KSAtPiBBID09IEIgZW5kDQotKwkgICAgZW5kLA0KLSsgICAgU2Vzc2lvbnMzID0gWyB7UGlkLCBT ZXJ2ZXIsIFByaW9yaXR5fSB8fCB7e19Vc2VyLCBTZXJ2ZXIsIF9SZXNvdXJjZX0sIHtfLCBQaWR9 LCBQcmlvcml0eX0gPC0gU2Vzc2lvbnMyLCBhcHBseShGaG9zdCwgW1NlcnZlciwgSG9zdF0pXSwN Ci0rICAgICUlIEZvciBlYWNoIFBpZCwgZ2V0IGl0cyBwcmVzZW5jZQ0KLSsgICAgU2Vzc2lvbnM0 ID0gWyB7ZWphYmJlcmRfYzJzOmdldF9wcmVzZW5jZShQaWQpLCBTZXJ2ZXIsIFByaW9yaXR5fSB8 fCB7UGlkLCBTZXJ2ZXIsIFByaW9yaXR5fSA8LSBTZXNzaW9uczNdLA0KLSsgICAgJSUgRmlsdGVy IGJ5IHN0YXR1cw0KLSsgICAgRnN0YXR1cyA9IGNhc2UgU3RhdHVzX3JlcXVpcmVkIG9mDQotKwkJ ICAiYWxsIiAtPg0KLSsJCSAgICAgIGZ1bihfLCBfKSAtPiB0cnVlIGVuZDsNCi0rCQkgIF8gLT4N Ci0rCQkgICAgICBmdW4oQSwgQikgLT4gQSA9PSBCIGVuZA0KLSsJICAgICAgZW5kLA0KLSsgICAg W3tVc2VyLCBTZXJ2ZXIsIFJlc291cmNlLCBQcmlvcml0eSwgc3RyaW5naXplKFN0YXR1c190ZXh0 KX0gDQotKyAgICAgfHwge3tVc2VyLCBSZXNvdXJjZSwgU3RhdHVzLCBTdGF0dXNfdGV4dH0sIFNl cnZlciwgUHJpb3JpdHl9IDwtIFNlc3Npb25zNCwgDQotKwlhcHBseShGc3RhdHVzLCBbU3RhdHVz LCBTdGF0dXNfcmVxdWlyZWRdKV0uDQotKw0KLSslJSBNYWtlIHN0cmluZyBtb3JlIHByaW50LWZy aWVuZGx5DQotK3N0cmluZ2l6ZShTdHJpbmcpIC0+DQotKyAgICAlJSBSZXBsYWNlIG5ld2xpbmUg Y2hhcmFjdGVycyB3aXRoIG90aGVyIGNvZGUNCi0rICAgIGVsZW1lbnQoMiwgcmVnZXhwOmdzdWIo U3RyaW5nLCAiXG4iLCAiXFxuIikpLg0KLSsNCi0rYWRkX3Jvc3Rlcml0ZW0oTFUsIExTLCBSVSwg UlMsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24sIFhhdHRycykgLT4NCi0rICAgIHN1YnNjcmli ZShMVSwgTFMsIFJVLCBSUywgTmljaywgR3JvdXAsIFN1YnNjcmlwdGlvbiwgWGF0dHJzKSwNCi0r ICAgIHJvdXRlX3Jvc3Rlcml0ZW0oTFUsIExTLCBSVSwgUlMsIE5pY2ssIEdyb3VwLCBTdWJzY3Jp cHRpb24pLA0KLSsgICAge2F0b21pYywgb2t9Lg0KLSsNCi0rc3Vic2NyaWJlKExvY2FsVXNlciwg TG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgTmljaywgR3JvdXAsIFN1YnNj cmlwdGlvbiwgWGF0dHJzKSAtPg0KLSsgICAgUiA9ICNyb3N0ZXJ7dXNqID0ge0xvY2FsVXNlcixM b2NhbFNlcnZlcix7UmVtb3RlVXNlcixSZW1vdGVTZXJ2ZXIsW119fSwNCi0rCQl1cyA9IHtMb2Nh bFVzZXIsTG9jYWxTZXJ2ZXJ9LA0KLSsJCWppZCA9IHtSZW1vdGVVc2VyLFJlbW90ZVNlcnZlcixb XX0sDQotKwkJbmFtZSA9IE5pY2ssDQotKwkJc3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLCAl IG5vbmUsIHRvPXlvdSBzZWUgaGltLCBmcm9tPWhlIHNlZXMgeW91LCBib3RoDQotKwkJYXNrID0g bm9uZSwgJSBvdXQ9c2VuZCByZXF1ZXN0LCBpbj1zb21lYm9keSByZXF1ZXN0cyB5b3UsIG5vbmUN Ci0rCQlncm91cHMgPSBbR3JvdXBdLA0KLSsJCWFza21lc3NhZ2UgPSBYYXR0cnMsICUgZXhhbXBs ZTogW3siY2F0ZWdvcnkiLCJjb25mZXJlbmNlIn1dDQotKwkJeHMgPSBbXX0sDQotKyAgICBtbmVz aWE6dHJhbnNhY3Rpb24oZnVuKCkgLT4gbW5lc2lhOndyaXRlKFIpIGVuZCkuDQotKw0KLStyZW1f cm9zdGVyaXRlbShMVSwgTFMsIFJVLCBSUykgLT4NCi0rICAgIHVuc3Vic2NyaWJlKExVLCBMUywg UlUsIFJTKSwNCi0rICAgIHJvdXRlX3Jvc3Rlcml0ZW0oTFUsIExTLCBSVSwgUlMsICIiLCAiIiwg InJlbW92ZSIpLA0KLSsgICAge2F0b21pYywgb2t9Lg0KLSsNCi0rdW5zdWJzY3JpYmUoTG9jYWxV c2VyLCBMb2NhbFNlcnZlciwgUmVtb3RlVXNlciwgUmVtb3RlU2VydmVyKSAtPg0KLSsgICAgS2V5 ID0ge3tMb2NhbFVzZXIsTG9jYWxTZXJ2ZXIse1JlbW90ZVVzZXIsUmVtb3RlU2VydmVyLFtdfX0s DQotKwkgICB7TG9jYWxVc2VyLExvY2FsU2VydmVyfX0sDQotKyAgICBtbmVzaWE6dHJhbnNhY3Rp b24oZnVuKCkgLT4gbW5lc2lhOmRlbGV0ZShyb3N0ZXIsIEtleSwgd3JpdGUpIGVuZCkuDQotKw0K LStyb3V0ZV9yb3N0ZXJpdGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFJlbW90ZVVzZXIsIFJl bW90ZVNlcnZlciwgTmljaywgR3JvdXAsIFN1YnNjcmlwdGlvbikgLT4NCi0rICAgIExKSUQgPSBq bGliOm1ha2VfamlkKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsICIiKSwNCi0rICAgIFJKSUQgPSBq bGliOm1ha2VfamlkKFJlbW90ZVVzZXIsIFJlbW90ZVNlcnZlciwgIiIpLA0KLSsgICAgVG9TID0g amxpYjpqaWRfdG9fc3RyaW5nKExKSUQpLA0KLSsgICAgSXRlbUpJRFMgPSBqbGliOmppZF90b19z dHJpbmcoUkpJRCksDQotKyAgICBHcm91cFhNTCA9IHt4bWxlbGVtZW50LCAiZ3JvdXAiLCBbXSwg W3t4bWxjZGF0YSwgR3JvdXB9XX0sDQotKyAgICBJdGVtID0ge3htbGVsZW1lbnQsICJpdGVtIiwg DQotKwkgICAgW3siamlkIiwgSXRlbUpJRFN9LA0KLSsJICAgICB7Im5hbWUiLCBOaWNrfSwNCi0r CSAgICAgeyJzdWJzY3JpcHRpb24iLCBTdWJzY3JpcHRpb259XSwgDQotKwkgICAgW0dyb3VwWE1M XX0sDQotKyAgICBRdWVyeSA9IHt4bWxlbGVtZW50LCAicXVlcnkiLCBbeyJ4bWxucyIsID9OU19S T1NURVJ9XSwgW0l0ZW1dfSwNCi0rICAgIFBhY2tldCA9IHt4bWxlbGVtZW50LCAiaXEiLCBbeyJ0 eXBlIiwgInNldCJ9LCB7InRvIiwgVG9TfV0sIFtRdWVyeV19LA0KLSsgICAgZWphYmJlcmRfcm91 dGVyOnJvdXRlKExKSUQsIExKSUQsIFBhY2tldCkuDQotKw0KLSsNCi0rJSUtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KLSslJSBCYW4gdXNlcg0KLSslJS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQotKw0KLStiYW5fYWNjb3VudChVc2VyLCBTZXJ2ZXIsIFJlYXNvbikgLT4NCi0r ICAgIGtpY2tfc2Vzc2lvbnMoVXNlciwgU2VydmVyLCBSZWFzb24pLA0KLSsgICAgc2V0X3JhbmRv bV9wYXNzd29yZChVc2VyLCBTZXJ2ZXIsIFJlYXNvbikuDQotKw0KLStraWNrX3Nlc3Npb25zKFVz ZXIsIFNlcnZlciwgUmVhc29uKSAtPg0KLSsgICAgbGlzdHM6bWFwKA0KLSsgICAgICBmdW4oUmVz b3VyY2UpIC0+DQotKwkgICAgICBraWNrX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJjZSwg UmVhc29uKQ0KLSsgICAgICBlbmQsDQotKyAgICAgIGdldF9yZXNvdXJjZXMoVXNlciwgU2VydmVy KSkuDQotKw0KLStraWNrX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJjZSwgUmVhc29uKSAt Pg0KLSsgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKA0KLSsgICAgICBqbGliOm1ha2VfamlkKCIi LCAiIiwgIiIpLA0KLSsgICAgICBqbGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgUmVzb3VyY2Up LA0KLSsgICAgICB7eG1sZWxlbWVudCwgImJyb2FkY2FzdCIsIFtdLCBbe2V4aXQsIFJlYXNvbn1d fSkuDQotKw0KLStnZXRfcmVzb3VyY2VzKFVzZXIsIFNlcnZlcikgLT4NCi0rICAgIGxpc3RzOm1h cCgNCi0rICAgICAgZnVuKFNlc3Npb24pIC0+DQotKwkgICAgICBlbGVtZW50KDMsIFNlc3Npb24j c2Vzc2lvbi51c3IpDQotKyAgICAgIGVuZCwNCi0rICAgICAgZ2V0X3Nlc3Npb25zKFVzZXIsIFNl cnZlcikpLg0KLSsNCi0rZ2V0X3Nlc3Npb25zKFVzZXIsIFNlcnZlcikgLT4NCi0rICAgIExVc2Vy ID0gamxpYjpub2RlcHJlcChVc2VyKSwNCi0rICAgIExTZXJ2ZXIgPSBqbGliOm5hbWVwcmVwKFNl cnZlciksDQotKyAgICBTZXNzaW9ucyA9ICBtbmVzaWE6ZGlydHlfaW5kZXhfcmVhZChzZXNzaW9u LCB7TFVzZXIsIExTZXJ2ZXJ9LCAjc2Vzc2lvbi51cyksDQotKyAgICB0cnVlID0gaXNfbGlzdChT ZXNzaW9ucyksDQotKyAgICBTZXNzaW9ucy4NCi0rDQotK3NldF9yYW5kb21fcGFzc3dvcmQoVXNl ciwgU2VydmVyLCBSZWFzb24pIC0+DQotKyAgICBOZXdQYXNzID0gYnVpbGRfcmFuZG9tX3Bhc3N3 b3JkKFJlYXNvbiksDQotKyAgICBzZXRfcGFzc3dvcmQoVXNlciwgU2VydmVyLCBOZXdQYXNzKS4N Ci0rDQotK2J1aWxkX3JhbmRvbV9wYXNzd29yZChSZWFzb24pIC0+DQotKyAgICBEYXRlID0gamxp Yjp0aW1lc3RhbXBfdG9faXNvKGNhbGVuZGFyOnVuaXZlcnNhbF90aW1lKCkpLA0KLSsgICAgUmFu ZG9tU3RyaW5nID0gcmFuZG9tczpnZXRfc3RyaW5nKCksDQotKyAgICAiQkFOTkVEX0FDQ09VTlQt LSIgKysgRGF0ZSArKyAiLS0iICsrIFJhbmRvbVN0cmluZyArKyAiLS0iICsrIFJlYXNvbi4NCi0r DQotK3NldF9wYXNzd29yZChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkKSAtPg0KLSsgICAge2F0b21p Yywgb2t9ID0gZWphYmJlcmRfYXV0aDpzZXRfcGFzc3dvcmQoVXNlciwgU2VydmVyLCBQYXNzd29y ZCkuDQotKw0KLStwcmVwYXJlX3JlYXNvbihbXSkgLT4NCi0rICAgICJLaWNrZWQgYnkgYWRtaW5p c3RyYXRvciI7DQotK3ByZXBhcmVfcmVhc29uKFtSZWFzb25dKSAtPg0KLSsgICAgUmVhc29uOw0K LStwcmVwYXJlX3JlYXNvbihTdHJpbmdMaXN0KSAtPg0KLSsgICAgc3RyaW5nOmpvaW4oU3RyaW5n TGlzdCwgIl8iKS4NCi0rDQotKw0KLSslJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQot KyUlIFB1cmdlIHJvc3RlciBpdGVtcw0KLSslJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQotKw0KLStyb3N0ZXJpdGVtX3B1cmdlKE9wdGlvbnMpIC0+DQotKyAgICBOdW1fcm9zdGVyaXRl bXMgPSBtbmVzaWE6dGFibGVfaW5mbyhyb3N0ZXIsIHNpemUpLA0KLSsgICAgaW86Zm9ybWF0KCJU aGVyZSBhcmUgfnAgcm9zdGVyIGl0ZW1zIGluIHRvdGFsLn5uIiwgW051bV9yb3N0ZXJpdGVtc10p LA0KLSsgICAgS2V5ID0gbW5lc2lhOmRpcnR5X2ZpcnN0KHJvc3RlciksDQotKyAgICBvayA9IHJp cChLZXksIE9wdGlvbnMsIHswLCBOdW1fcm9zdGVyaXRlbXMsIDAsIDB9KSwNCi0rICAgIHthdG9t aWMsIG9rfS4NCi0rDQotK3JpcCgnJGVuZF9vZl90YWJsZScsIF9PcHRpb25zLCBDb3VudGVycykg LT4NCi0rICAgIHByaW50X3Byb2dyZXNzX2xpbmUoQ291bnRlcnMpLA0KLSsgICAgb2s7DQotK3Jp cChLZXksIE9wdGlvbnMsIHtQciwgTlQsIE5WLCBORH0pIC0+DQotKyAgICBLZXlfbmV4dCA9IG1u ZXNpYTpkaXJ0eV9uZXh0KHJvc3RlciwgS2V5KSwNCi0rICAgIE5EMiA9IGNhc2UgZGVjaWRlX3Jp cChLZXksIE9wdGlvbnMpIG9mDQotKwkgICAgICB0cnVlIC0+DQotKwkJICBtbmVzaWE6ZGlydHlf ZGVsZXRlKHJvc3RlciwgS2V5KSwNCi0rCQkgIE5EKzE7DQotKwkgICAgICBmYWxzZSAtPg0KLSsJ CSAgTkQNCi0rCSAgZW5kLA0KLSsgICAgTlYyID0gTlYrMSwNCi0rICAgIFByMiA9IHByaW50X3By b2dyZXNzX2xpbmUoe1ByLCBOVCwgTlYyLCBORDJ9KSwNCi0rICAgIHJpcChLZXlfbmV4dCwgT3B0 aW9ucywge1ByMiwgTlQsIE5WMiwgTkQyfSkuDQotKw0KLStwcmludF9wcm9ncmVzc19saW5lKHtQ ciwgTlQsIE5WLCBORH0pIC0+DQotKyAgICBQcjIgPSB0cnVuYygoTlYvTlQpKjEwMCksDQotKyAg ICBjYXNlIFByID09IFByMiBvZg0KLSsJdHJ1ZSAtPg0KLSsJICAgIG9rOw0KLSsJZmFsc2UgLT4N Ci0rCSAgICBpbzpmb3JtYXQoIlByb2dyZXNzIH5wJSAtIHZpc2l0ZWQgfnAgLSBkZWxldGVkIH5w fm4iLCBbUHIyLCBOViwgTkRdKQ0KLSsgICAgZW5kLA0KLSsgICAgUHIyLg0KLSsNCi0rZGVjaWRl X3JpcChLZXksIHtTdWJzLCBBc2tzLCBVc2VyLCBDb250YWN0fSkgLT4NCi0rICAgIGNhc2UgY2F0 Y2ggbW5lc2lhOmRpcnR5X3JlYWQocm9zdGVyLCBLZXkpIG9mDQotKwlbUkldIC0+DQotKwkgICAg bGlzdHM6bWVtYmVyKFJJI3Jvc3Rlci5zdWJzY3JpcHRpb24sIFN1YnMpDQotKwkJYW5kYWxzbyBs aXN0czptZW1iZXIoUkkjcm9zdGVyLmFzaywgQXNrcykNCi0rCQlhbmRhbHNvIGRlY2lkZV9yaXBf amlkKFJJI3Jvc3Rlci51cywgVXNlcikNCi0rCQlhbmRhbHNvIGRlY2lkZV9yaXBfamlkKFJJI3Jv c3Rlci5qaWQsIENvbnRhY3QpOw0KLSsJXyAtPg0KLSsJICAgIGZhbHNlDQotKyAgICBlbmQuDQot Kw0KLSslJSBSZXR1cm5zIHRydWUgaWYgdGhlIHNlcnZlciBvZiB0aGUgSklEIGlzIGluY2x1ZGVk IGluIHRoZSBzZXJ2ZXJzDQotK2RlY2lkZV9yaXBfamlkKHtVTmFtZSwgVVNlcnZlciwgX1VSZXNv dXJjZX0sIE1hdGNoX2xpc3QpIC0+DQotKyAgICBkZWNpZGVfcmlwX2ppZCh7VU5hbWUsIFVTZXJ2 ZXJ9LCBNYXRjaF9saXN0KTsNCi0rZGVjaWRlX3JpcF9qaWQoe1VOYW1lLCBVU2VydmVyfSwgTWF0 Y2hfbGlzdCkgLT4NCi0rICAgIGxpc3RzOmFueSgNCi0rICAgICAgZnVuKE1hdGNoX3N0cmluZykg LT4NCi0rCSAgICAgIE1KSUQgPSBqbGliOnN0cmluZ190b19qaWQoTWF0Y2hfc3RyaW5nKSwNCi0r CSAgICAgIE1OYW1lID0gTUpJRCNqaWQubHVzZXIsDQotKwkgICAgICBNU2VydmVyID0gTUpJRCNq aWQubHNlcnZlciwNCi0rCSAgICAgIElzX3NlcnZlciA9IGlzX2dsb2JfbWF0Y2goVVNlcnZlciwg TVNlcnZlciksDQotKwkgICAgICBjYXNlIE1OYW1lIG9mDQotKwkJICBbXSB3aGVuIFVOYW1lID09 IFtdIC0+DQotKwkJICAgICAgSXNfc2VydmVyOw0KLSsJCSAgW10gLT4NCi0rCQkgICAgICBmYWxz ZTsNCi0rCQkgIF8gLT4NCi0rCQkgICAgICBJc19zZXJ2ZXINCi0rCQkJICBhbmRhbHNvIGlzX2ds b2JfbWF0Y2goVU5hbWUsIE1OYW1lKQ0KLSsJICAgICAgZW5kDQotKyAgICAgIGVuZCwNCi0rICAg ICAgTWF0Y2hfbGlzdCkuDQotKw0KLSslJSBDb3BpZWQgZnJvbSBlamFiYmVyZC0yLjAuMC9zcmMv YWNsLmVybA0KLStpc19yZWdleHBfbWF0Y2goU3RyaW5nLCBSZWdFeHApIC0+DQotKyAgICBjYXNl IHJlZ2V4cDpmaXJzdF9tYXRjaChTdHJpbmcsIFJlZ0V4cCkgb2YNCi0rCW5vbWF0Y2ggLT4NCi0r CSAgICBmYWxzZTsNCi0rCXttYXRjaCwgXywgX30gLT4NCi0rCSAgICB0cnVlOw0KLSsJe2Vycm9y LCBFcnJEZXNjfSAtPg0KLSsJICAgIGlvOmZvcm1hdCgNCi0rCSAgICAgICJXcm9uZyByZWdleHAg fnAgaW4gQUNMOiB+cCIsDQotKwkgICAgICBbUmVnRXhwLCBsaXN0czpmbGF0dGVuKHJlZ2V4cDpm b3JtYXRfZXJyb3IoRXJyRGVzYykpXSksDQotKwkgICAgZmFsc2UNCi0rICAgIGVuZC4NCi0raXNf Z2xvYl9tYXRjaChTdHJpbmcsIEdsb2IpIC0+DQotKyAgICBpc19yZWdleHBfbWF0Y2goU3RyaW5n LCByZWdleHA6c2hfdG9fYXdrKEdsb2IpKS4NCi0rDQotKw0KLSslJS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQotKyUlIFB1c2ggUm9zdGVyIGZyb20gZmlsZSANCi0rJSUtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KLSsNCi0rcHVzaHJvc3RlcihGaWxlLCBVc2VyLCBTZXJ2ZXIp IC0+DQotKyAgICB7b2ssIFtSb3N0ZXJdfSA9IGZpbGU6Y29uc3VsdChGaWxlKSwNCi0rICAgIHN1 YnNjcmliZV9yb3N0ZXIoe1VzZXIsIFNlcnZlciwgIiIsIFVzZXJ9LCBSb3N0ZXIpLg0KLSsNCi0r cHVzaHJvc3Rlcl9hbGwoRmlsZSkgLT4NCi0rICAgIHtvaywgW1Jvc3Rlcl19ID0gZmlsZTpjb25z dWx0KEZpbGUpLA0KLSsgICAgc3Vic2NyaWJlX2FsbChSb3N0ZXIpLg0KLSsNCi0rc3Vic2NyaWJl X2FsbChSb3N0ZXIpIC0+DQotKyAgICBzdWJzY3JpYmVfYWxsKFJvc3RlciwgUm9zdGVyKS4NCi0r c3Vic2NyaWJlX2FsbChbXSwgXykgLT4NCi0rICAgIG9rOw0KLStzdWJzY3JpYmVfYWxsKFtVc2Vy MSB8IFVzZXJzXSwgUm9zdGVyKSAtPg0KLSsgICAgc3Vic2NyaWJlX3Jvc3RlcihVc2VyMSwgUm9z dGVyKSwNCi0rICAgIHN1YnNjcmliZV9hbGwoVXNlcnMsIFJvc3RlcikuDQotKw0KLStzdWJzY3Jp YmVfcm9zdGVyKF8sIFtdKSAtPg0KLSsgICAgb2s7DQotKyUlIERvIG5vdCBzdWJzY3JpYmUgYSB1 c2VyIHRvIGl0c2VsZg0KLStzdWJzY3JpYmVfcm9zdGVyKHtOYW1lLCBTZXJ2ZXIsIEdyb3VwLCBO aWNrfSwgW3tOYW1lLCBTZXJ2ZXIsIF8sIF99IHwgUm9zdGVyXSkgLT4NCi0rICAgIHN1YnNjcmli ZV9yb3N0ZXIoe05hbWUsIFNlcnZlciwgR3JvdXAsIE5pY2t9LCBSb3N0ZXIpOw0KLSslJSBTdWJz Y3JpYmUgTmFtZTIgdG8gTmFtZTENCi0rc3Vic2NyaWJlX3Jvc3Rlcih7TmFtZTEsIFNlcnZlcjEs IEdyb3VwMSwgTmljazF9LCBbe05hbWUyLCBTZXJ2ZXIyLCBHcm91cDIsIE5pY2syfSB8IFJvc3Rl cl0pIC0+DQotKyAgICBzdWJzY3JpYmUoTmFtZTEsIFNlcnZlcjEsIE5hbWUyLCBTZXJ2ZXIyLCBO aWNrMiwgR3JvdXAyLCBib3RoLCBbXSksDQotKyAgICBzdWJzY3JpYmVfcm9zdGVyKHtOYW1lMSwg U2VydmVyMSwgR3JvdXAxLCBOaWNrMX0sIFJvc3RlcikuDQotKw0KLStwdXNoX2FsbHRvYWxsKFMs IEcpIC0+DQotKyAgICBVc2VycyA9IGVqYWJiZXJkX2F1dGg6Z2V0X3ZoX3JlZ2lzdGVyZWRfdXNl cnMoUyksDQotKyAgICBVc2VyczIgPSBidWlsZF9saXN0X3VzZXJzKEcsIFVzZXJzLCBbXSksDQot KyAgICBzdWJzY3JpYmVfYWxsKFVzZXJzMikuDQotKw0KLStidWlsZF9saXN0X3VzZXJzKF9Hcm91 cCwgW10sIFJlcykgLT4NCi0rICAgIFJlczsNCi0rYnVpbGRfbGlzdF91c2VycyhHcm91cCwgW3tV c2VyLCBTZXJ2ZXJ9fFVzZXJzXSwgUmVzKSAtPg0KLSsgICAgYnVpbGRfbGlzdF91c2VycyhHcm91 cCwgVXNlcnMsIFt7VXNlciwgU2VydmVyLCBHcm91cCwgVXNlcn18UmVzXSkuDQotKw0KLSt2Y2Fy ZF9nZXQoVXNlciwgU2VydmVyLCBEYXRhKSAtPg0KLSsgICAgW3tfLCBNb2R1bGUsIEZ1bmN0aW9u LCBfT3B0c31dID0gZXRzOmxvb2t1cChzbV9pcXRhYmxlLCB7P05TX1ZDQVJELCBTZXJ2ZXJ9KSwN Ci0rICAgIEpJRCA9IGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCAiIiksDQotKyAgICBJUSA9 ICNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19WQ0FSRH0sDQotKyAgICBJUXIgPSBNb2R1bGU6 RnVuY3Rpb24oSklELCBKSUQsIElRKSwNCi0rICAgIFJlcyA9IGNhc2UgSVFyI2lxLnN1Yl9lbCBv Zg0KLSsJICAgICAgW0ExXSAtPg0KLSsJCSAgY2FzZSB2Y2FyZF9nZXQoRGF0YSwgQTEpIG9mDQot KwkJICAgICAgZmFsc2UgLT4gbm9fdmFsdWU7DQotKwkJICAgICAgRWxlbSAtPiB4bWw6Z2V0X3Rh Z19jZGF0YShFbGVtKQ0KLSsJCSAgZW5kOw0KLSsJICAgICAgW10gLT4gDQotKwkJICBub192Y2Fy ZA0KLSsJICBlbmQsDQotKyAgICB7b2ssIFJlc30uDQotKw0KLSt2Y2FyZF9nZXQoW0RhdGExLCBE YXRhMl0sIEExKSAtPg0KLSsgICAgY2FzZSB4bWw6Z2V0X3N1YnRhZyhBMSwgRGF0YTEpIG9mDQot KyAgICAJZmFsc2UgLT4gZmFsc2U7DQotKwlBMiAtPiB2Y2FyZF9nZXQoW0RhdGEyXSwgQTIpDQot KyAgICBlbmQ7DQotKw0KLSt2Y2FyZF9nZXQoW0RhdGFdLCBBMSkgLT4NCi0rICAgIHhtbDpnZXRf c3VidGFnKEExLCBEYXRhKS4NCi0rDQotK3ZjYXJkX3NldChVc2VyLCBTZXJ2ZXIsIERhdGEsIENv bnRlbnQpIC0+DQotKyAgICBbe18sIE1vZHVsZSwgRnVuY3Rpb24sIF9PcHRzfV0gPSBldHM6bG9v a3VwKHNtX2lxdGFibGUsIHs/TlNfVkNBUkQsIFNlcnZlcn0pLA0KLSsgICAgSklEID0gamxpYjpt YWtlX2ppZChVc2VyLCBTZXJ2ZXIsICIiKSwNCi0rICAgIElRID0gI2lxe3R5cGUgPSBnZXQsIHht bG5zID0gP05TX1ZDQVJEfSwNCi0rICAgIElRciA9IE1vZHVsZTpGdW5jdGlvbihKSUQsIEpJRCwg SVEpLA0KLSsNCi0rICAgICUlIEdldCBvbGQgdmNhcmQNCi0rICAgIEE0ID0gY2FzZSBJUXIjaXEu c3ViX2VsIG9mDQotKwkgICAgIFtBMV0gLT4NCi0rCQkge18sIF8sIF8sIEEyfSA9IEExLA0KLSsJ CSB1cGRhdGVfdmNhcmRfZWxzKERhdGEsIENvbnRlbnQsIEEyKTsNCi0rCSAgICAgW10gLT4gDQot KwkJIHVwZGF0ZV92Y2FyZF9lbHMoRGF0YSwgQ29udGVudCwgW10pDQotKwkgZW5kLA0KLSsNCi0r ICAgICUlIEJ1aWxkIG5ldyB2Y2FyZA0KLSsgICAgU3ViRWwgPSB7eG1sZWxlbWVudCwgInZDYXJk IiwgW3sieG1sbnMiLCJ2Y2FyZC10ZW1wIn1dLCBBNH0sDQotKyAgICBJUTIgPSAjaXF7dHlwZT1z ZXQsIHN1Yl9lbCA9IFN1YkVsfSwNCi0rDQotKyAgICBNb2R1bGU6RnVuY3Rpb24oSklELCBKSUQs IElRMiksDQotKyAgICB7b2ssICJkb25lIn0uDQotKw0KLSt1cGRhdGVfdmNhcmRfZWxzKERhdGEs IENvbnRlbnQsIEVsczEpIC0+DQotKyAgICBFbHMyID0gbGlzdHM6a2V5c29ydCgyLCBFbHMxKSwN Ci0rICAgIFtEYXRhMSB8IERhdGEyXSA9IERhdGEsDQotKyAgICBOZXdFbCA9IGNhc2UgRGF0YTIg b2YNCi0rCQlbXSAtPg0KLSsJCSAgICB7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBbe3htbGNkYXRh LENvbnRlbnR9XX07DQotKwkJW0QyXSAtPg0KLSsJCSAgICBPbGRFbCA9IGNhc2UgbGlzdHM6a2V5 c2VhcmNoKERhdGExLCAyLCBFbHMyKSBvZg0KLSsJCQkJe3ZhbHVlLCBBfSAtPiBBOw0KLSsJCQkJ ZmFsc2UgLT4ge3htbGVsZW1lbnQsIERhdGExLCBbXSwgW119DQotKwkJCSAgICBlbmQsDQotKwkJ ICAgIHt4bWxlbGVtZW50LCBfLCBfLCBDb250ZW50T2xkMX0gPSBPbGRFbCwNCi0rCQkgICAgQ29u dGVudDIgPSBbe3htbGVsZW1lbnQsIEQyLCBbXSwgW3t4bWxjZGF0YSxDb250ZW50fV19XSwNCi0r CQkgICAgQ29udGVudE9sZDIgPSBsaXN0czprZXlzb3J0KDIsIENvbnRlbnRPbGQxKSwNCi0rCQkg ICAgQ29udGVudE9sZDMgPSBsaXN0czprZXlkZWxldGUoRDIsIDIsIENvbnRlbnRPbGQyKSwNCi0r CQkgICAgQ29udGVudE5ldyA9IGxpc3RzOmtleW1lcmdlKDIsIENvbnRlbnQyLCBDb250ZW50T2xk MyksDQotKwkJICAgIHt4bWxlbGVtZW50LCBEYXRhMSwgW10sIENvbnRlbnROZXd9DQotKwkgICAg ZW5kLA0KLSsgICAgRWxzMyA9IGxpc3RzOmtleWRlbGV0ZShEYXRhMSwgMiwgRWxzMiksDQotKyAg ICBsaXN0czprZXltZXJnZSgyLCBbTmV3RWxdLCBFbHMzKS4NCi0rDQotKy1yZWNvcmQobGFzdF9h Y3Rpdml0eSwge3VzLCB0aW1lc3RhbXAsIHN0YXR1c30pLg0KLSsNCi0rZGVsZXRlX29sZGVyX3Vz ZXJzKERheXMpIC0+DQotKyAgICAlJSBHZXQgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2Vycw0K LSsgICAgVXNlcnMgPSBlamFiYmVyZF9hdXRoOmRpcnR5X2dldF9yZWdpc3RlcmVkX3VzZXJzKCks DQotKyAgICBkZWxldGVfb2xkZXJfdXNlcnMoRGF5cywgVXNlcnMpLg0KLSsNCi0rZGVsZXRlX29s ZGVyX3VzZXJzX3Zob3N0KEhvc3QsIERheXMpIC0+DQotKyAgICAlJSBHZXQgdGhlIGxpc3Qgb2Yg cmVnaXN0ZXJlZCB1c2Vycw0KLSsgICAgVXNlcnMgPSBlamFiYmVyZF9hdXRoOmdldF92aF9yZWdp c3RlcmVkX3VzZXJzKEhvc3QpLA0KLSsgICAgZGVsZXRlX29sZGVyX3VzZXJzKERheXMsIFVzZXJz KS4NCi0rDQotK2RlbGV0ZV9vbGRlcl91c2VycyhEYXlzLCBVc2VycykgLT4NCi0rICAgICUlIENv bnZlcnQgb2xkZXIgdGltZQ0KLSsgICAgU2VjT2xkZXIgPSBEYXlzKjI0KjYwKjYwLA0KLSsNCi0r ICAgICUlIEdldCBjdXJyZW50IHRpbWUNCi0rICAgIHtNZWdhU2VjcywgU2VjcywgX01pY3JvU2Vj c30gPSBub3coKSwNCi0rICAgIFRpbWVTdGFtcF9ub3cgPSBNZWdhU2VjcyAqIDEwMDAwMDAgKyBT ZWNzLA0KLSsNCi0rICAgICUlIEZvciBhIHVzZXIsIHJlbW92ZSBpZiByZXF1aXJlZCBhbmQgYW5z d2VyIHRydWUNCi0rICAgIEYgPSBmdW4oe0xVc2VyLCBMU2VydmVyfSkgLT4NCi0rCQklJSBDaGVj ayBpZiB0aGUgdXNlciBpcyBsb2dnZWQNCi0rCQljYXNlIGVqYWJiZXJkX3NtOmdldF91c2VyX3Jl c291cmNlcyhMVXNlciwgTFNlcnZlcikgb2YNCi0rCQkgICAgJSUgSWYgaXQgaXNudA0KLSsJCSAg ICBbXSAtPg0KLSsJCQklJSBMb29rIGZvciBoaXMgbGFzdF9hY3Rpdml0eQ0KLSsJCQljYXNlIG1u ZXNpYTpkaXJ0eV9yZWFkKGxhc3RfYWN0aXZpdHksIHtMVXNlciwgTFNlcnZlcn0pIG9mDQotKwkJ CSAgICAlJSBJZiBpdCBpcw0KLSsJCQkgICAgJSUgZXhpc3RlbnQ6DQotKwkJCSAgICBbI2xhc3Rf YWN0aXZpdHl7dGltZXN0YW1wID0gVGltZVN0YW1wfV0gLT4NCi0rCQkJCSUlIGdldCBoaXMgYWdl DQotKwkJCQlTZWMgPSBUaW1lU3RhbXBfbm93IC0gVGltZVN0YW1wLA0KLSsJCQkJJSUgSWYgaGUg aXMNCi0rCQkJCWlmIA0KLSsJCQkJICAgICUlIHlvdW5nZXIgdGhhbiBTZWNPbGRlcjogDQotKwkJ CQkgICAgU2VjIDwgU2VjT2xkZXIgLT4NCi0rCQkJCQklJSBkbyBub3RoaW5nDQotKwkJCQkJZmFs c2U7DQotKwkJCQkgICAgJSUgb2xkZXI6IA0KLSsJCQkJICAgIHRydWUgLT4NCi0rCQkJCQklJSBy ZW1vdmUgdGhlIHVzZXINCi0rCQkJCQllamFiYmVyZF9hdXRoOnJlbW92ZV91c2VyKExVc2VyLCBM U2VydmVyKSwNCi0rCQkJCQl0cnVlDQotKwkJCQllbmQ7DQotKwkJCSAgICAlJSBub25leGlzdGVu dDoNCi0rCQkJICAgIFtdIC0+DQotKwkJCQklJSByZW1vdmUgdGhlIHVzZXINCi0rCQkJCWVqYWJi ZXJkX2F1dGg6cmVtb3ZlX3VzZXIoTFVzZXIsIExTZXJ2ZXIpLA0KLSsJCQkJdHJ1ZQ0KLSsJCQll bmQ7DQotKwkJICAgICUlIEVsc2UNCi0rCQkgICAgXyAtPg0KLSsJCQklJSBkbyBub3RoaW5nDQot KwkJCWZhbHNlDQotKwkJZW5kDQotKwllbmQsDQotKyAgICAlJSBBcHBseSB0aGUgZnVuY3Rpb24g dG8gZXZlcnkgdXNlciBpbiB0aGUgbGlzdA0KLSsgICAgVXNlcnNfcmVtb3ZlZCA9IGxpc3RzOmZp bHRlcihGLCBVc2VycyksDQotKyAgICB7cmVtb3ZlZCwgbGVuZ3RoKFVzZXJzX3JlbW92ZWQpLCBV c2Vyc19yZW1vdmVkfS4NCi0rDQotK251bV9hY3RpdmVfdXNlcnMoSG9zdCwgRGF5cykgLT4NCi0r ICAgIGxpc3RfbGFzdF9hY3Rpdml0eShIb3N0LCB0cnVlLCBEYXlzKS4NCi0rDQotKyUlIENvZGUg YmFzZWQgb24gZWphYmJlcmQvc3JjL3dlYi9lamFiYmVyZF93ZWJfYWRtaW4uZXJsDQotK2xpc3Rf bGFzdF9hY3Rpdml0eShIb3N0LCBJbnRlZ3JhbCwgRGF5cykgLT4NCi0rICAgIHtNZWdhU2Vjcywg U2VjcywgX01pY3JvU2Vjc30gPSBub3coKSwNCi0rICAgIFRpbWVTdGFtcCA9IE1lZ2FTZWNzICog MTAwMDAwMCArIFNlY3MsDQotKyAgICBUUyA9IFRpbWVTdGFtcCAtIERheXMgKiA4NjQwMCwNCi0r ICAgIGNhc2UgY2F0Y2ggbW5lc2lhOmRpcnR5X3NlbGVjdCgNCi0rCQkgbGFzdF9hY3Rpdml0eSwg W3t7bGFzdF9hY3Rpdml0eSwgeydfJywgSG9zdH0sICckMScsICdfJ30sDQotKwkJCQkgIFt7Jz4n LCAnJDEnLCBUU31dLA0KLSsJCQkJICBbeyd0cnVuYycsIHsnLycsDQotKwkJCQkJICAgICAgeyct JywgVGltZVN0YW1wLCAnJDEnfSwNCi0rCQkJCQkgICAgICA4NjQwMH19XX1dKSBvZg0KLSsJCQkJ CQkJICAgICAgeydFWElUJywgX1JlYXNvbn0gLT4NCi0rCQkgW107DQotKwkgICAgICAgVmFscyAt Pg0KLSsJCSBIaXN0ID0gaGlzdG9ncmFtKFZhbHMsIEludGVncmFsKSwNCi0rCQkgaWYNCi0rCQkg ICAgIEhpc3QgPT0gW10gLT4NCi0rCQkJIDA7DQotKwkJICAgICB0cnVlIC0+DQotKwkJCSBMZWZ0 ID0gaWYNCi0rCQkJCSAgICBEYXlzID09IGluZmluaXR5IC0+DQotKwkJCQkJMDsNCi0rCQkJCSAg ICB0cnVlIC0+DQotKwkJCQkJRGF5cyAtIGxlbmd0aChIaXN0KQ0KLSsJCQkJZW5kLA0KLSsJCQkg VGFpbCA9IGlmDQotKwkJCQkgICAgSW50ZWdyYWwgLT4NCi0rCQkJCQlsaXN0czpkdXBsaWNhdGUo TGVmdCwgbGlzdHM6bGFzdChIaXN0KSk7DQotKwkJCQkgICAgdHJ1ZSAtPg0KLSsJCQkJCWxpc3Rz OmR1cGxpY2F0ZShMZWZ0LCAwKQ0KLSsJCQkJZW5kLA0KLSsJCQkgbGlzdHM6bnRoKERheXMsIEhp c3QgKysgVGFpbCkNCi0rCQkgZW5kDQotKwkgZW5kLg0KLStoaXN0b2dyYW0oVmFsdWVzLCBJbnRl Z3JhbCkgLT4NCi0rICAgIGhpc3RvZ3JhbShsaXN0czpzb3J0KFZhbHVlcyksIEludGVncmFsLCAw LCAwLCBbXSkuDQotK2hpc3RvZ3JhbShbSCB8IFRdLCBJbnRlZ3JhbCwgQ3VycmVudCwgQ291bnQs IEhpc3QpIHdoZW4gQ3VycmVudCA9PSBIIC0+DQotKyAgICBoaXN0b2dyYW0oVCwgSW50ZWdyYWws IEN1cnJlbnQsIENvdW50ICsgMSwgSGlzdCk7DQotK2hpc3RvZ3JhbShbSCB8IF9dID0gVmFsdWVz LCBJbnRlZ3JhbCwgQ3VycmVudCwgQ291bnQsIEhpc3QpIHdoZW4gQ3VycmVudCA8IEggLT4NCi0r ICAgIGlmDQotKwlJbnRlZ3JhbCAtPg0KLSsJICAgIGhpc3RvZ3JhbShWYWx1ZXMsIEludGVncmFs LCBDdXJyZW50ICsgMSwgQ291bnQsIFtDb3VudCB8IEhpc3RdKTsNCi0rCXRydWUgLT4NCi0rCSAg ICBoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCwgQ3VycmVudCArIDEsIDAsIFtDb3VudCB8IEhp c3RdKQ0KLSsgICAgZW5kOw0KLStoaXN0b2dyYW0oW10sIF9JbnRlZ3JhbCwgX0N1cnJlbnQsIENv dW50LCBIaXN0KSAtPg0KLSsgICAgaWYNCi0rCUNvdW50ID4gMCAtPg0KLSsJICAgIGxpc3RzOnJl dmVyc2UoW0NvdW50IHwgSGlzdF0pOw0KLSsJdHJ1ZSAtPg0KLSsJICAgIGxpc3RzOnJldmVyc2Uo SGlzdCkNCi0rICAgIGVuZC4NCi0rDQotK2dyb3VwX3BhcmFtZXRlcnMoUHMsIFtDaGFyXSkgLT4N Ci0rCXtub25lLCBHcm91cGVkX1BzfSA9IGxpc3RzOmZvbGRsKA0KLSsJCWZ1bihQLCB7U3RhdGUs IFJlc30pIC0+DQotKwkJCWNhc2UgU3RhdGUgb2YNCi0rCQkJCW5vbmUgLT4gDQotKwkJCQkJY2Fz ZSBQIG9mDQotKwkJCQkJCVtDaGFyIHwgUFRhaWxdLT4NCi0rCQkJCQkJCXtidWlsZGluZywgW1BU YWlsIHwgUmVzXX07DQotKwkJCQkJCV8gLT4NCi0rCQkJCQkJCXtub25lLCBbUCB8IFJlc119DQot KwkJCQkJZW5kOw0KLSsJCQkJYnVpbGRpbmcgLT4gDQotKwkJCQkJW1Jlc0hlYWQgfCBSZXNUYWls XSA9IFJlcywNCi0rCQkJCQljYXNlIGxpc3RzOmxhc3QoUCkgb2YNCi0rCQkJCQkJQ2hhciAtPg0K LSsJCQkJCQkJUDIgPSBsaXN0czpzdWJsaXN0KFAsIGxlbmd0aChQKS0xKSwNCi0rCQkJCQkJCXtu b25lLCBbUmVzSGVhZCArKyAiICIgKysgUDIgfCBSZXNUYWlsXX07DQotKwkJCQkJCV8gLT4NCi0r CQkJCQkJCXtidWlsZGluZywgW1Jlc0hlYWQgKysgIiAiICsrIFAgfCBSZXNUYWlsXX0NCi0rCQkJ CQllbmQNCi0rCQkJZW5kDQotKwkJZW5kLA0KLSsJCXtub25lLCBbXX0sDQotKwkJUHMpLA0KLSsJ bGlzdHM6cmV2ZXJzZShHcm91cGVkX1BzKS4NCi0tLSAKLTEuNy4xMC4xCi0KCmRpZmYgLS1naXQg YS9lamFiYmVyZC0wMDAyLUZpeGVkLWRlbGF5cy1pbi1zMnMtY29ubmVjdGlvbnMucGF0Y2ggYi9l amFiYmVyZC0wMDAyLUZpeGVkLWRlbGF5cy1pbi1zMnMtY29ubmVjdGlvbnMucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE2MWMyMQotLS0gL2Rldi9udWxsCisrKyBi L2VqYWJiZXJkLTAwMDItRml4ZWQtZGVsYXlzLWluLXMycy1jb25uZWN0aW9ucy5wYXRjaApAQCAt MCwwICsxLDUzIEBACitGcm9tIDMwMDM3ZWM4YTczMjYzZjBkMDUyNGIyZTE0MDk3MzY4MzhjYmIz M2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTZXJnZWkgR29sb3ZhbiA8c2dvbG92 YW5AbmVzLnJ1PgorRGF0ZTogVHVlLCAxNiBGZWIgMjAxMCAxNjowNzozNyArMDMwMAorU3ViamVj dDogW1BBVENIIDIvOF0gRml4ZWQgZGVsYXlzIGluIHMycyBjb25uZWN0aW9ucy4KKworUGF0Y2gg YnkgU2VyZ2VpIEdvbG92YW4gaW5jcmVhc2VzIHRpbWVvdXRzIGluIFMyUyBhbmQgcmVtb3ZlcyBo b3JyaWJsZSA1LW1pbnV0ZQorZGVsYXkgYmV0d2VlbiByZW1vdGUgc2VydmVyIGNvbm5lY3Rpb24g YXR0ZW1wdHMgYWZ0ZXIgYSBmYWx1cmUgKGluIGNhc2Ugb2YKK3NlcnZlciBpcyBkb3duIGl0IHdv dWxkIGJlIHJlYXNvbmFibGUsIGJ1dCB3aGF0IGhhcHBlbnMgbXVjaCBtb3JlIG9mdGVuIGlzIGEK K25ldHdvcmsgc3BsaXQgd2hlbiB0aGUgZGVsYXkgaXMgaW5hZG1pc3NpYmxlKS4KKy0tLQorIHNy Yy9lamFiYmVyZF9zMnNfaW4uZXJsICB8ICAgIDIgKy0KKyBzcmMvZWphYmJlcmRfczJzX291dC5l cmwgfCAgICA1ICsrKy0tCisgMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRfczJzX2luLmVybCBiL3NyYy9l amFiYmVyZF9zMnNfaW4uZXJsCitpbmRleCAxNTk3ZWM3Li43ZDQxMWNkIDEwMDY0NAorLS0tIGEv c3JjL2VqYWJiZXJkX3Myc19pbi5lcmwKKysrKyBiL3NyYy9lamFiYmVyZF9zMnNfaW4uZXJsCitA QCAtNDE0LDcgKzQxNCw3IEBAIHN0cmVhbV9lc3RhYmxpc2hlZCh7eG1sc3RyZWFtZWxlbWVudCwg RWx9LCBTdGF0ZURhdGEpIC0+CisgICAgICAgICAgICAgY2FzZSB7ZWphYmJlcmRfczJzOmFsbG93 X2hvc3QoTFRvLCBMRnJvbSksCisgICAgICAgICAgICAgICAgICAgbGlzdHM6bWVtYmVyKExUbywg ZWphYmJlcmRfcm91dGVyOmRpcnR5X2dldF9hbGxfZG9tYWlucygpKX0gb2YKKyAgICAgICAgICAg ICAgICAge3RydWUsIHRydWV9IC0+CistCQkgICAgZWphYmJlcmRfczJzX291dDp0ZXJtaW5hdGVf aWZfd2FpdGluZ19kZWxheShMVG8sIExGcm9tKSwKKysJCSAgICAlJWVqYWJiZXJkX3Myc19vdXQ6 dGVybWluYXRlX2lmX3dhaXRpbmdfZGVsYXkoTFRvLCBMRnJvbSksCisgCQkgICAgZWphYmJlcmRf czJzX291dDpzdGFydChMVG8sIExGcm9tLAorIAkJCQkJICAge3ZlcmlmeSwgc2VsZigpLAorIAkJ CQkJICAgIEtleSwgU3RhdGVEYXRhI3N0YXRlLnN0cmVhbWlkfSksCitkaWZmIC0tZ2l0IGEvc3Jj L2VqYWJiZXJkX3Myc19vdXQuZXJsIGIvc3JjL2VqYWJiZXJkX3Myc19vdXQuZXJsCitpbmRleCA2 NTcxMWZhLi5jYWI0MTNmIDEwMDY0NAorLS0tIGEvc3JjL2VqYWJiZXJkX3Myc19vdXQuZXJsCisr KysgYi9zcmMvZWphYmJlcmRfczJzX291dC5lcmwKK0BAIC05Myw3ICs5Myw3IEBACisgCQkJCQkJ IFtGcm9tLCBIb3N0LCBUeXBlXSkpLgorIC1lbmRpZi4KKyAKKy0tZGVmaW5lKEZTTVRJTUVPVVQs IDMwMDAwKS4KKystZGVmaW5lKEZTTVRJTUVPVVQsIDYwMDAwKS4KKyAKKyAlJSBXZSBkbyBub3Qg YmxvY2sgb24gc2VuZCBhbnltb3JlLgorIC1kZWZpbmUoVENQX1NFTkRfVElNRU9VVCwgMTUwMDAp LgorQEAgLTI0NSw3ICsyNDUsOCBAQCBvcGVuX3NvY2tldChpbml0LCBTdGF0ZURhdGEpIC0+Cisg CQkgICAgTmV3U3RhdGVEYXRhID0gU3RhdGVEYXRhI3N0YXRle2JyaWRnZT17TW9kLCBGdW59fSwK KyAJCSAgICB7bmV4dF9zdGF0ZSwgcmVsYXlfdG9fYnJpZGdlLCBOZXdTdGF0ZURhdGF9OworIAkJ XyAtPgorLQkJICAgIHdhaXRfYmVmb3JlX3JlY29ubmVjdChTdGF0ZURhdGEpCisrCQkgICAgJSV3 YWl0X2JlZm9yZV9yZWNvbm5lY3QoU3RhdGVEYXRhKQorKwkJICAgIHtzdG9wLCBub3JtYWwsIFN0 YXRlRGF0YX0KKyAJICAgIGVuZAorICAgICBlbmQ7Cisgb3Blbl9zb2NrZXQoY2xvc2VkLCBTdGF0 ZURhdGEpIC0+CistLSAKKzEuNy4xMC40CisKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDAzLUZp eGVkLWRlbGF5cy1pbi1zMnMtY29ubmVjdGlvbnMucGF0Y2ggYi9lamFiYmVyZC0wMDAzLUZpeGVk LWRlbGF5cy1pbi1zMnMtY29ubmVjdGlvbnMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDc4ZmYzMTguLjAwMDAwMDAKLS0tIGEvZWphYmJlcmQtMDAwMy1GaXhlZC1kZWxheXMt aW4tczJzLWNvbm5lY3Rpb25zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAot RnJvbSA5NWYyYzliYjc2NTRlYTMyMWYwNTJiYjI5YzkwNWE3MTQ3MWQ4NWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogU2VyZ2VpIEdvbG92YW4gPHNnb2xvdmFuQG5lcy5ydT4KLURh dGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MDc6MzcgKzAzMDAKLVN1YmplY3Q6IFtQQVRDSCAwMy8x MF0gRml4ZWQgZGVsYXlzIGluIHMycyBjb25uZWN0aW9ucy4KLQotUGF0Y2ggYnkgU2VyZ2VpIEdv bG92YW4gaW5jcmVhc2VzIHRpbWVvdXRzIGluIFMyUyBhbmQgcmVtb3ZlcyBob3JyaWJsZSA1LW1p bnV0ZQotZGVsYXkgYmV0d2VlbiByZW1vdGUgc2VydmVyIGNvbm5lY3Rpb24gYXR0ZW1wdHMgYWZ0 ZXIgYSBmYWx1cmUgKGluIGNhc2Ugb2YKLXNlcnZlciBpcyBkb3duIGl0IHdvdWxkIGJlIHJlYXNv bmFibGUsIGJ1dCB3aGF0IGhhcHBlbnMgbXVjaCBtb3JlIG9mdGVuIGlzIGEKLW5ldHdvcmsgc3Bs aXQgd2hlbiB0aGUgZGVsYXkgaXMgaW5hZG1pc3NpYmxlKS4KLS0tLQotIHNyYy9lamFiYmVyZF9z MnNfaW4uZXJsICB8ICAgIDIgKy0KLSBzcmMvZWphYmJlcmRfczJzX291dC5lcmwgfCAgICA1ICsr Ky0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRfczJzX2luLmVybCBiL3NyYy9lamFiYmVyZF9zMnNf aW4uZXJsCi1pbmRleCAxNTk3ZWM3Li43ZDQxMWNkIDEwMDY0NAotLS0tIGEvc3JjL2VqYWJiZXJk X3Myc19pbi5lcmwKLSsrKyBiL3NyYy9lamFiYmVyZF9zMnNfaW4uZXJsCi1AQCAtNDE0LDcgKzQx NCw3IEBAIHN0cmVhbV9lc3RhYmxpc2hlZCh7eG1sc3RyZWFtZWxlbWVudCwgRWx9LCBTdGF0ZURh dGEpIC0+Ci0gICAgICAgICAgICAgY2FzZSB7ZWphYmJlcmRfczJzOmFsbG93X2hvc3QoTFRvLCBM RnJvbSksCi0gICAgICAgICAgICAgICAgICAgbGlzdHM6bWVtYmVyKExUbywgZWphYmJlcmRfcm91 dGVyOmRpcnR5X2dldF9hbGxfZG9tYWlucygpKX0gb2YKLSAgICAgICAgICAgICAgICAge3RydWUs IHRydWV9IC0+Ci0tCQkgICAgZWphYmJlcmRfczJzX291dDp0ZXJtaW5hdGVfaWZfd2FpdGluZ19k ZWxheShMVG8sIExGcm9tKSwKLSsJCSAgICAlJWVqYWJiZXJkX3Myc19vdXQ6dGVybWluYXRlX2lm X3dhaXRpbmdfZGVsYXkoTFRvLCBMRnJvbSksCi0gCQkgICAgZWphYmJlcmRfczJzX291dDpzdGFy dChMVG8sIExGcm9tLAotIAkJCQkJICAge3ZlcmlmeSwgc2VsZigpLAotIAkJCQkJICAgIEtleSwg U3RhdGVEYXRhI3N0YXRlLnN0cmVhbWlkfSksCi1kaWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJkX3My c19vdXQuZXJsIGIvc3JjL2VqYWJiZXJkX3Myc19vdXQuZXJsCi1pbmRleCA2NTcxMWZhLi5jYWI0 MTNmIDEwMDY0NAotLS0tIGEvc3JjL2VqYWJiZXJkX3Myc19vdXQuZXJsCi0rKysgYi9zcmMvZWph YmJlcmRfczJzX291dC5lcmwKLUBAIC05Myw3ICs5Myw3IEBACi0gCQkJCQkJIFtGcm9tLCBIb3N0 LCBUeXBlXSkpLgotIC1lbmRpZi4KLSAKLS0tZGVmaW5lKEZTTVRJTUVPVVQsIDMwMDAwKS4KLSst ZGVmaW5lKEZTTVRJTUVPVVQsIDYwMDAwKS4KLSAKLSAlJSBXZSBkbyBub3QgYmxvY2sgb24gc2Vu ZCBhbnltb3JlLgotIC1kZWZpbmUoVENQX1NFTkRfVElNRU9VVCwgMTUwMDApLgotQEAgLTI0NSw3 ICsyNDUsOCBAQCBvcGVuX3NvY2tldChpbml0LCBTdGF0ZURhdGEpIC0+Ci0gCQkgICAgTmV3U3Rh dGVEYXRhID0gU3RhdGVEYXRhI3N0YXRle2JyaWRnZT17TW9kLCBGdW59fSwKLSAJCSAgICB7bmV4 dF9zdGF0ZSwgcmVsYXlfdG9fYnJpZGdlLCBOZXdTdGF0ZURhdGF9OwotIAkJXyAtPgotLQkJICAg IHdhaXRfYmVmb3JlX3JlY29ubmVjdChTdGF0ZURhdGEpCi0rCQkgICAgJSV3YWl0X2JlZm9yZV9y ZWNvbm5lY3QoU3RhdGVEYXRhKQotKwkJICAgIHtzdG9wLCBub3JtYWwsIFN0YXRlRGF0YX0KLSAJ ICAgIGVuZAotICAgICBlbmQ7Ci0gb3Blbl9zb2NrZXQoY2xvc2VkLCBTdGF0ZURhdGEpIC0+Ci0t LSAKLTEuNy4xMC4xCi0KCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDAzLUludHJvZHVjaW5nLW1v ZF9hZG1pbl9leHRyYS5wYXRjaCBiL2VqYWJiZXJkLTAwMDMtSW50cm9kdWNpbmctbW9kX2FkbWlu X2V4dHJhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZWQ5NzgK LS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC0wMDAzLUludHJvZHVjaW5nLW1vZF9hZG1pbl9l eHRyYS5wYXRjaApAQCAtMCwwICsxLDE2MDcgQEAKK0Zyb20gMzVkZGIxMzhlYzI5N2ExYjVjNDU2 ZmRjYTczYjJlZDBjYzEwYzFjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJhZGxv cCA8YmFkbG9wQHByb2Nlc3Mtb25lLm5ldD4KK0RhdGU6IFR1ZSwgMTYgRmViIDIwMTAgMTY6MTI6 MTcgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzhdIEludHJvZHVjaW5nIG1vZF9hZG1pbl9leHRy YQorCitBZGRzIHRoZSBtb2RfYWRtaW5fZXh0cmEgbW9kdWxlIHRvIGVqYWJiZXJkLgorVGhpcyBt b2R1bGUgZXh0ZW5kcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSBlamFiYmVyZGN0bAor YnkgYWRkaW5nIHNldmVyYWwgbmV3IGNvbW1hbmRzLgorCitUaGUgY29kZSBpcyB0YWtlbiBmcm9t IHRoZSBQcm9jZXNzT25lIHJlcG9zaXRvcnk6CisKK3N2biBleHBvcnQgLXIgMTEyNSBodHRwczov L3N2bi5wcm9jZXNzLW9uZS5uZXQvZWphYmJlcmQtbW9kdWxlcy9tb2RfYWRtaW5fZXh0cmEvdHJ1 bmsvc3JjL21vZF9hZG1pbl9leHRyYS5lcmwKKy0tLQorIHNyYy9lamFiYmVyZC5hcHAgICAgICAg IHwgICAgMSArCisgc3JjL21vZF9hZG1pbl9leHRyYS5lcmwgfCAxNTY4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAxNTY5 IGluc2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL21vZF9hZG1pbl9leHRyYS5l cmwKKworZGlmZiAtLWdpdCBhL3NyYy9lamFiYmVyZC5hcHAgYi9zcmMvZWphYmJlcmQuYXBwCitp bmRleCAyZjA4NjAxLi4zZDdmZmU0IDEwMDY0NAorLS0tIGEvc3JjL2VqYWJiZXJkLmFwcAorKysr IGIvc3JjL2VqYWJiZXJkLmFwcAorQEAgLTEwNSw2ICsxMDUsNyBAQAorIAkgICAgIG1vZF92Y2Fy ZF9sZGFwLAorIAkgICAgIG1vZF92Y2FyZF9vZGJjLAorIAkgICAgIG1vZF92ZXJzaW9uLAorKyAg ICAgICAgICAgICBtb2RfYWRtaW5fZXh0cmEsCisgCSAgICAgbm9kZV9idWRkeSwKKyAJICAgICBu b2RlX2NsdWIsCisgCSAgICAgbm9kZV9kZWZhdWx0LAorZGlmZiAtLWdpdCBhL3NyYy9tb2RfYWRt aW5fZXh0cmEuZXJsIGIvc3JjL21vZF9hZG1pbl9leHRyYS5lcmwKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwLi4xY2VmMjVhCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvbW9k X2FkbWluX2V4dHJhLmVybAorQEAgLTAsMCArMSwxNTY4IEBACisrJSUlLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyUl JSBGaWxlICAgIDogbW9kX2FkbWluX2V4dHJhLmVybAorKyUlJSBBdXRob3IgIDogQmFkbG9wIDxi YWRsb3BAcHJvY2Vzcy1vbmUubmV0PgorKyUlJSBQdXJwb3NlIDogQ29udHJpYnV0ZWQgYWRtaW5p c3RyYXRpdmUgZnVuY3Rpb25zIGFuZCBjb21tYW5kcworKyUlJSBDcmVhdGVkIDogMTAgQXVnIDIw MDggYnkgQmFkbG9wIDxiYWRsb3BAcHJvY2Vzcy1vbmUubmV0PgorKyUlJQorKyUlJQorKyUlJSBl amFiYmVyZCwgQ29weXJpZ2h0IChDKSAyMDAyLTIwMDggICBQcm9jZXNzT25lCisrJSUlCisrJSUl IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKyslJSUgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMKKyslJSUgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisrJSUlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrJSUlCisrJSUlIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyUlJSBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyUlJSBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorKyUlJSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisrJSUlCisrJSUlIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrJSUlIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrJSUlIEZvdW5kYXRpb24s IEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BCisrJSUlIDAyMTEx LTEzMDcgVVNBCisrJSUlCisrJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKworKy1tb2R1bGUobW9kX2FkbWluX2V4 dHJhKS4KKystYXV0aG9yKCdiYWRsb3BAcHJvY2Vzcy1vbmUubmV0JykuCisrCisrLWJlaGF2aW91 cihnZW5fbW9kKS4KKysKKystZXhwb3J0KFtzdGFydC8yLCBzdG9wLzEsCisrCSAlJSBOb2RlCisr CSBjb21waWxlLzEsCisrCSBsb2FkX2NvbmZpZy8xLAorKwkgZ2V0X2Nvb2tpZS8wLAorKwkgcmVt b3ZlX25vZGUvMSwKKysJIGV4cG9ydDJvZGJjLzIsCisrCSAlJSBBY2NvdW50cworKwkgc2V0X3Bh c3N3b3JkLzMsCisrCSBjaGVja19wYXNzd29yZF9oYXNoLzQsCisrCSBkZWxldGVfb2xkX3VzZXJz LzEsCisrCSBkZWxldGVfb2xkX3VzZXJzX3Zob3N0LzIsCisrCSBiYW5fYWNjb3VudC8zLAorKwkg bnVtX2FjdGl2ZV91c2Vycy8yLAorKwkgJSUgU2Vzc2lvbnMKKysJIG51bV9yZXNvdXJjZXMvMiwK KysJIHJlc291cmNlX251bS8zLAorKwkga2lja19zZXNzaW9uLzQsCisrCSBzdGF0dXNfbnVtLzIs IHN0YXR1c19udW0vMSwKKysJIHN0YXR1c19saXN0LzIsIHN0YXR1c19saXN0LzEsCisrCSBjb25u ZWN0ZWRfdXNlcnNfaW5mby8wLAorKwkgY29ubmVjdGVkX3VzZXJzX3Zob3N0LzEsCisrCSBzZXRf cHJlc2VuY2UvNywKKysJIHVzZXJfc2Vzc2lvbnNfaW5mby8yLAorKwkgJSUgVmNhcmQKKysJIHNl dF9uaWNrbmFtZS8zLAorKwkgZ2V0X3ZjYXJkLzMsCisrCSBnZXRfdmNhcmQvNCwKKysJIGdldF92 Y2FyZF9tdWx0aS80LAorKwkgc2V0X3ZjYXJkLzQsCisrCSBzZXRfdmNhcmQvNSwKKysJICUlIFJv c3RlcgorKwkgYWRkX3Jvc3Rlcml0ZW0vNywKKysJIGRlbGV0ZV9yb3N0ZXJpdGVtLzQsCisrCSBw cm9jZXNzX3Jvc3Rlcml0ZW1zLzUsCisrCSBnZXRfcm9zdGVyLzIsCisrCSBwdXNoX3Jvc3Rlci8z LAorKwkgcHVzaF9yb3N0ZXJfYWxsLzEsCisrCSBwdXNoX2FsbHRvYWxsLzIsCisrCSAlJSBtb2Rf bGFzdAorKwkgc2V0X2xhc3QvNCwKKysJICUlIG1vZF9wcml2YXRlCisrCSBwcml2YXRlX2dldC80 LAorKwkgcHJpdmF0ZV9zZXQvMywKKysJICUlIG1vZF9zaGFyZWRfcm9zdGVyCisrCSBzcmdfY3Jl YXRlLzUsCisrCSBzcmdfZGVsZXRlLzIsCisrCSBzcmdfbGlzdC8xLAorKwkgc3JnX2dldF9pbmZv LzIsCisrCSBzcmdfZ2V0X21lbWJlcnMvMiwKKysJIHNyZ191c2VyX2FkZC80LAorKwkgc3JnX3Vz ZXJfZGVsLzQsCisrCSAlJSBTdGFuemEKKysJIHNlbmRfbWVzc2FnZV9oZWFkbGluZS80LAorKwkg c2VuZF9tZXNzYWdlX2NoYXQvMywKKysJIHNlbmRfc3RhbnphX2Mycy80LAorKwkgcHJpdmFjeV9z ZXQvMywKKysJICUlIFN0YXRzCisrCSBzdGF0cy8xLCBzdGF0cy8yCisrCV0pLgorKworKy1pbmNs dWRlKCJlamFiYmVyZC5ocmwiKS4KKystaW5jbHVkZSgiZWphYmJlcmRfY29tbWFuZHMuaHJsIiku CisrLWluY2x1ZGUoIm1vZF9yb3N0ZXIuaHJsIikuCisrLWluY2x1ZGUoImpsaWIuaHJsIikuCisr CisrJSUgQ29waWVkIGZyb20gZWphYmJlcmRfc20uZXJsCisrLXJlY29yZChzZXNzaW9uLCB7c2lk LCB1c3IsIHVzLCBwcmlvcml0eSwgaW5mb30pLgorKworKworKyUlJQorKyUlJSBnZW5fbW9kCisr JSUlCisrCisrc3RhcnQoX0hvc3QsIF9PcHRzKSAtPgorKyAgICBlamFiYmVyZF9jb21tYW5kczpy ZWdpc3Rlcl9jb21tYW5kcyhjb21tYW5kcygpKS4KKysKKytzdG9wKF9Ib3N0KSAtPgorKyAgICBl amFiYmVyZF9jb21tYW5kczp1bnJlZ2lzdGVyX2NvbW1hbmRzKGNvbW1hbmRzKCkpLgorKworKwor KyUlJQorKyUlJSBSZWdpc3RlciBjb21tYW5kcworKyUlJQorKworK2NvbW1hbmRzKCkgLT4KKysg ICAgVmNhcmQxRmllbGRzU3RyaW5nID0gIlNvbWUgdmNhcmQgZmllbGQgbmFtZXMgaW4gZ2V0L3Nl dF92Y2FyZCBhcmU6XG4iCisrCSIgRk4JCS0gRnVsbCBOYW1lXG4iCisrCSIgTklDS05BTUUJLSBO aWNrbmFtZVxuIgorKwkiIEJEQVkJCS0gQmlydGhkYXlcbiIKKysJIiBUSVRMRQkJLSBXb3JrOiBQ b3NpdGlvblxuIgorKwkiIFJPTEUJCS0gV29yazogUm9sZSIsCisrCisrICAgIFZjYXJkMkZpZWxk c1N0cmluZyA9ICJTb21lIHZjYXJkIGZpZWxkIG5hbWVzIGFuZCBzdWJuYW1lcyBpbiBnZXQvc2V0 X3ZjYXJkMiBhcmU6XG4iCisrCSIgTiBGQU1JTFkJLSBGYW1pbHkgbmFtZVxuIgorKwkiIE4gR0lW RU4JLSBHaXZlbiBuYW1lXG4iCisrCSIgTiBNSURETEUJLSBNaWRkbGUgbmFtZVxuIgorKwkiIEFE UiBDVFJZCS0gQWRkcmVzczogQ291bnRyeVxuIgorKwkiIEFEUiBMT0NBTElUWQktIEFkZHJlc3M6 IENpdHlcbiIKKysJIiBFTUFJTCBVU0VSSUQJLSBFLU1haWwgQWRkcmVzc1xuIgorKwkiIE9SRyBP UkdOQU1FCS0gV29yazogQ29tcGFueVxuIgorKwkiIE9SRyBPUkdVTklUCS0gV29yazogRGVwYXJ0 bWVudCIsCisrCisrICAgIFZjYXJkWEVQID0gIkZvciBhIGZ1bGwgbGlzdCBvZiB2Q2FyZCBmaWVs ZHMgY2hlY2sgWEVQLTAwNTQ6IHZjYXJkLXRlbXAgYXQgIgorKwkiaHR0cDovL3d3dy54bXBwLm9y Zy9leHRlbnNpb25zL3hlcC0wMDU0Lmh0bWwiLAorKworKyAgICBbCisrICAgICAjZWphYmJlcmRf Y29tbWFuZHN7bmFtZSA9IGNvbXBpbGUsIHRhZ3MgPSBbZXJsYW5nXSwKKysJCQlkZXNjID0gIlJl Y29tcGlsZSBhbmQgcmVsb2FkIEVybGFuZyBzb3VyY2UgY29kZSBmaWxlIiwKKysJCQltb2R1bGUg PSA/TU9EVUxFLCBmdW5jdGlvbiA9IGNvbXBpbGUsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5n fV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1h bmRze25hbWUgPSBsb2FkX2NvbmZpZywgdGFncyA9IFtzZXJ2ZXJdLAorKwkJCWRlc2MgPSAiTG9h ZCBlamFiYmVyZCBjb25maWd1cmF0aW9uIGZpbGUiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1 bmN0aW9uID0gbG9hZF9jb25maWcsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfV0sCisrCQkJ cmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUg PSBnZXRfY29va2llLCB0YWdzID0gW2VybGFuZ10sCisrCQkJZGVzYyA9ICJHZXQgdGhlIEVybGFu ZyBjb29raWUgb2YgdGhpcyBub2RlIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9 IGdldF9jb29raWUsCisrCQkJYXJncyA9IFtdLAorKwkJCXJlc3VsdCA9IHtjb29raWUsIHN0cmlu Z319LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSByZW1vdmVfbm9kZSwgdGFncyA9 IFtlcmxhbmddLAorKwkJCWRlc2MgPSAiUmVtb3ZlIGFuIGVqYWJiZXJkIG5vZGUgZnJvbSBNbmVz aWEgY2x1c3RlcmluZyBjb25maWciLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0g cmVtb3ZlX25vZGUsCisrCQkJYXJncyA9IFt7bm9kZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0g e3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBleHBvcnQy b2RiYywgdGFncyA9IFttbmVzaWFdLAorKwkJCWRlc2MgPSAiRXhwb3J0IE1uZXNpYSB0YWJsZXMg dG8gZmlsZXMgaW4gZGlyZWN0b3J5IiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9 IGV4cG9ydDJvZGJjLAorKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtwYXRoLCBzdHJpbmd9 XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAjZWphYmJlcmRfY29t bWFuZHN7bmFtZSA9IG51bV9hY3RpdmVfdXNlcnMsIHRhZ3MgPSBbYWNjb3VudHMsIHN0YXRzXSwK KysJCQlkZXNjID0gIkdldCBudW1iZXIgb2YgdXNlcnMgYWN0aXZlIGluIHRoZSBsYXN0IGRheXMi LAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gbnVtX2FjdGl2ZV91c2VycywKKysJ CQlhcmdzID0gW3tob3N0LCBzdHJpbmd9LCB7ZGF5cywgaW50ZWdlcn1dLAorKwkJCXJlc3VsdCA9 IHt1c2VycywgaW50ZWdlcn19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBkZWxl dGVfb2xkX3VzZXJzLCB0YWdzID0gW2FjY291bnRzLCBwdXJnZV0sCisrCQkJZGVzYyA9ICJEZWxl dGUgdXNlcnMgdGhhdCBkaWRuJ3QgbG9nIGluIGxhc3QgZGF5cywgb3IgdGhhdCBuZXZlciBsb2dn ZWQiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gZGVsZXRlX29sZF91c2VycywK KysJCQlhcmdzID0gW3tkYXlzLCBpbnRlZ2VyfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzdHVw bGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gZGVsZXRlX29sZF91c2Vyc192 aG9zdCwgdGFncyA9IFthY2NvdW50cywgcHVyZ2VdLAorKwkJCWRlc2MgPSAiRGVsZXRlIHVzZXJz IHRoYXQgZGlkbid0IGxvZyBpbiBsYXN0IGRheXMgaW4gdmhvc3QsIG9yIHRoYXQgbmV2ZXIgbG9n Z2VkIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGRlbGV0ZV9vbGRfdXNlcnNf dmhvc3QsCisrCQkJYXJncyA9IFt7aG9zdCwgc3RyaW5nfSwge2RheXMsIGludGVnZXJ9XSwKKysJ CQlyZXN1bHQgPSB7cmVzLCByZXN0dXBsZX19LAorKworKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRz e25hbWUgPSBjaGVja19hY2NvdW50LCB0YWdzID0gW2FjY291bnRzXSwKKysJCQlkZXNjID0gIkNo ZWNrIGlmIGFuIGFjY291bnQgZXhpc3RzIG9yIG5vdCIsCisrCQkJbW9kdWxlID0gZWphYmJlcmRf YXV0aCwgZnVuY3Rpb24gPSBpc191c2VyX2V4aXN0cywKKysJCQlhcmdzID0gW3t1c2VyLCBzdHJp bmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGVja19wYXNzd29yZCwgdGFncyA9IFthY2Nv dW50c10sCisrCQkJZGVzYyA9ICJDaGVjayBpZiBhIHBhc3N3b3JkIGlzIGNvcnJlY3QiLAorKwkJ CW1vZHVsZSA9IGVqYWJiZXJkX2F1dGgsIGZ1bmN0aW9uID0gY2hlY2tfcGFzc3dvcmQsCisrCQkJ YXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtwYXNzd29yZCwgc3RyaW5n fV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1h bmRze25hbWUgPSBjaGVja19wYXNzd29yZF9oYXNoLCB0YWdzID0gW2FjY291bnRzXSwKKysJCQlk ZXNjID0gIkNoZWNrIGlmIHRoZSBwYXNzd29yZCBoYXNoIGlzIGNvcnJlY3QiLAorKwkJCWxvbmdk ZXNjID0gIkFsbG93ZWQgaGFzaCBtZXRob2RzOiBtZDUsIHNoYS4iLAorKwkJCW1vZHVsZSA9ID9N T0RVTEUsIGZ1bmN0aW9uID0gY2hlY2tfcGFzc3dvcmRfaGFzaCwKKysJCQlhcmdzID0gW3t1c2Vy LCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge3Bhc3N3b3JkaGFzaCwgc3RyaW5nfSwge2hhc2ht ZXRob2QsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKKysgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gY2hhbmdlX3Bhc3N3b3JkLCB0YWdzID0gW2FjY291bnRz XSwKKysJCQlkZXNjID0gIkNoYW5nZSB0aGUgcGFzc3dvcmQgb2YgYW4gYWNjb3VudCIsCisrCQkJ bW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfcGFzc3dvcmQsCisrCQkJYXJncyA9IFt7 dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuZXdwYXNzLCBzdHJpbmd9XSwKKysJCQly ZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9 IGJhbl9hY2NvdW50LCB0YWdzID0gW2FjY291bnRzXSwKKysJCQlkZXNjID0gIkJhbiBhbiBhY2Nv dW50OiBraWNrIHNlc3Npb25zIGFuZCBzZXQgcmFuZG9tIHBhc3N3b3JkIiwKKysJCQltb2R1bGUg PSA/TU9EVUxFLCBmdW5jdGlvbiA9IGJhbl9hY2NvdW50LAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0 cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7cmVhc29uLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7 cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IG51bV9y ZXNvdXJjZXMsIHRhZ3MgPSBbc2Vzc2lvbl0sCisrCQkJZGVzYyA9ICJHZXQgdGhlIG51bWJlciBv ZiByZXNvdXJjZXMgb2YgYSB1c2VyIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9 IG51bV9yZXNvdXJjZXMsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmlu Z31dLAorKwkJCXJlc3VsdCA9IHtyZXNvdXJjZXMsIGludGVnZXJ9fSwKKysgICAgICNlamFiYmVy ZF9jb21tYW5kc3tuYW1lID0gcmVzb3VyY2VfbnVtLCB0YWdzID0gW3Nlc3Npb25dLAorKwkJCWRl c2MgPSAiUmVzb3VyY2Ugc3RyaW5nIG9mIGEgc2Vzc2lvbiBudW1iZXIiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gcmVzb3VyY2VfbnVtLAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0 cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7bnVtLCBpbnRlZ2VyfV0sCisrCQkJcmVzdWx0ID0ge3Jl c291cmNlLCBzdHJpbmd9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0ga2lja19z ZXNzaW9uLCB0YWdzID0gW3Nlc3Npb25dLAorKwkJCWRlc2MgPSAiS2ljayBhIHVzZXIgc2Vzc2lv biIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBraWNrX3Nlc3Npb24sCisrCQkJ YXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtyZXNvdXJjZSwgc3RyaW5n fSwge3JlYXNvbiwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbnVtX2hvc3QsIHRhZ3MgPSBbc2Vz c2lvbiwgc3RhdHNdLAorKwkJCWRlc2MgPSAiTnVtYmVyIG9mIGxvZ2dlZCB1c2VycyB3aXRoIHRo aXMgc3RhdHVzIGluIGhvc3QiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3Rh dHVzX251bSwKKysJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9LCB7c3RhdHVzLCBzdHJpbmd9XSwK KysJCQlyZXN1bHQgPSB7dXNlcnMsIGludGVnZXJ9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5k c3tuYW1lID0gc3RhdHVzX251bSwgdGFncyA9IFtzZXNzaW9uLCBzdGF0c10sCisrCQkJZGVzYyA9 ICJOdW1iZXIgb2YgbG9nZ2VkIHVzZXJzIHdpdGggdGhpcyBzdGF0dXMiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX251bSwKKysJCQlhcmdzID0gW3tzdGF0dXMsIHN0 cmluZ31dLAorKwkJCXJlc3VsdCA9IHt1c2VycywgaW50ZWdlcn19LAorKyAgICAgI2VqYWJiZXJk X2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlzdF9ob3N0LCB0YWdzID0gW3Nlc3Npb25dLAorKwkJ CWRlc2MgPSAiTGlzdCBvZiB1c2VycyBsb2dnZWQgaW4gaG9zdCB3aXRoIHRoZWlyIHN0YXR1c2Vz IiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHN0YXR1c19saXN0LAorKwkJCWFy Z3MgPSBbe2hvc3QsIHN0cmluZ30sIHtzdGF0dXMsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHt1 c2Vycywge2xpc3QsCisrCQkJCQkgIHt1c2Vyc3RhdHVzLCB7dHVwbGUsIFsKKysJCQkJCQkJCXt1 c2VyLCBzdHJpbmd9LAorKwkJCQkJCQkJe2hvc3QsIHN0cmluZ30sCisrCQkJCQkJCQl7cmVzb3Vy Y2UsIHN0cmluZ30sCisrCQkJCQkJCQl7cHJpb3JpdHksIGludGVnZXJ9LAorKwkJCQkJCQkJe3N0 YXR1cywgc3RyaW5nfQorKwkJCQkJCQkgICAgICAgXX19CisrCQkJCQkgfX19LAorKyAgICAgI2Vq YWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbGlzdCwgdGFncyA9IFtzZXNzaW9uXSwKKysJ CQlkZXNjID0gIkxpc3Qgb2YgbG9nZ2VkIHVzZXJzIHdpdGggdGhpcyBzdGF0dXMiLAorKwkJCW1v ZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHVzX2xpc3QsCisrCQkJYXJncyA9IFt7c3Rh dHVzLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7dXNlcnMsIHtsaXN0LAorKwkJCQkJICB7dXNl cnN0YXR1cywge3R1cGxlLCBbCisrCQkJCQkJCQl7dXNlciwgc3RyaW5nfSwKKysJCQkJCQkJCXto b3N0LCBzdHJpbmd9LAorKwkJCQkJCQkJe3Jlc291cmNlLCBzdHJpbmd9LAorKwkJCQkJCQkJe3By aW9yaXR5LCBpbnRlZ2VyfSwKKysJCQkJCQkJCXtzdGF0dXMsIHN0cmluZ30KKysJCQkJCQkJICAg ICAgIF19fQorKwkJCQkJIH19fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gY29u bmVjdGVkX3VzZXJzX2luZm8sCisrCQkJdGFncyA9IFtzZXNzaW9uXSwKKysJCQlkZXNjID0gIkxp c3QgYWxsIGVzdGFibGlzaGVkIHNlc3Npb25zIGFuZCB0aGVpciBpbmZvcm1hdGlvbiIsCisrCQkJ bW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBjb25uZWN0ZWRfdXNlcnNfaW5mbywKKysJCQlh cmdzID0gW10sCisrCQkJcmVzdWx0ID0ge2Nvbm5lY3RlZF91c2Vyc19pbmZvLAorKwkJCQkgIHts aXN0LAorKwkJCQkgICB7c2Vzc2lvbnMsIHt0dXBsZSwKKysJCQkJCSAgICAgICBbe2ppZCwgc3Ry aW5nfSwKKysJCQkJCQl7Y29ubmVjdGlvbiwgc3RyaW5nfSwKKysJCQkJCQl7aXAsIHN0cmluZ30s CisrCQkJCQkJe3BvcnQsIGludGVnZXJ9LAorKwkJCQkJCXtwcmlvcml0eSwgaW50ZWdlcn0sCisr CQkJCQkJe25vZGUsIHN0cmluZ30sCisrCQkJCQkJe3VwdGltZSwgaW50ZWdlcn0KKysJCQkJCSAg ICAgICBdfX0KKysJCQkJICB9fX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGNv bm5lY3RlZF91c2Vyc192aG9zdCwKKysgICAgICAgICAgICAgICAgICAgICAgIHRhZ3MgPSBbc2Vz c2lvbl0sCisrICAgICAgICAgICAgICAgICAgICAgICBkZXNjID0gIkdldCB0aGUgbGlzdCBvZiBl c3RhYmxpc2hlZCBzZXNzaW9ucyBpbiBhIHZob3N0IiwKKysgICAgICAgICAgICAgICAgICAgICAg IG1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gY29ubmVjdGVkX3VzZXJzX3Zob3N0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgYXJncyA9IFt7aG9zdCwgc3RyaW5nfV0sCisrICAgICAgICAg ICAgICAgICAgICAgICByZXN1bHQgPSB7Y29ubmVjdGVkX3VzZXJzX3Zob3N0LCB7bGlzdCwge3Nl c3Npb25zLCBzdHJpbmd9fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSB1c2Vy X3Nlc3Npb25zX2luZm8sCisrCQkJdGFncyA9IFtzZXNzaW9uXSwKKysJCQlkZXNjID0gIkdldCBp bmZvcm1hdGlvbiBhYm91dCBhbGwgc2Vzc2lvbnMgb2YgYSB1c2VyIiwKKysJCQltb2R1bGUgPSA/ TU9EVUxFLCBmdW5jdGlvbiA9IHVzZXJfc2Vzc2lvbnNfaW5mbywKKysJCQlhcmdzID0gW3t1c2Vy LCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3Nlc3Npb25zX2luZm8s CisrCQkJCSAge2xpc3QsCisrCQkJCSAgIHtzZXNzaW9uLCB7dHVwbGUsCisrCQkJCQkgICAgICBb e2Nvbm5lY3Rpb24sIHN0cmluZ30sCisrCQkJCQkgICAgICAge2lwLCBzdHJpbmd9LAorKwkJCQkJ ICAgICAgIHtwb3J0LCBpbnRlZ2VyfSwKKysJCQkJCSAgICAgICB7cHJpb3JpdHksIGludGVnZXJ9 LAorKwkJCQkJICAgICAgIHtub2RlLCBzdHJpbmd9LAorKwkJCQkJICAgICAgIHt1cHRpbWUsIGlu dGVnZXJ9LAorKwkJCQkJICAgICAgIHtzdGF0dXMsIHN0cmluZ30sCisrCQkJCQkgICAgICAge3Jl c291cmNlLCBzdHJpbmd9LAorKwkJCQkJICAgICAgIHtzdGF0dXN0ZXh0LCBzdHJpbmd9CisrCQkJ CQkgICAgICBdfX0KKysJCQkJICB9fX0sCisrCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFt ZSA9IHNldF9wcmVzZW5jZSwKKysJCQl0YWdzID0gW3Nlc3Npb25dLAorKwkJCWRlc2MgPSAiU2V0 IHByZXNlbmNlIG9mIGEgc2Vzc2lvbiIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24g PSBzZXRfcHJlc2VuY2UsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmlu Z30sCisrCQkJCXtyZXNvdXJjZSwgc3RyaW5nfSwge3R5cGUsIHN0cmluZ30sCisrCQkJCXtzaG93 LCBzdHJpbmd9LCB7c3RhdHVzLCBzdHJpbmd9LAorKwkJCQl7cHJpb3JpdHksIHN0cmluZ31dLAor KwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKKysKKysgICAgICNlamFiYmVyZF9jb21tYW5k c3tuYW1lID0gc2V0X25pY2tuYW1lLCB0YWdzID0gW3ZjYXJkXSwKKysJCQlkZXNjID0gIlNldCBu aWNrbmFtZSBpbiBhIHVzZXIncyB2Q2FyZCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rp b24gPSBzZXRfbmlja25hbWUsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0 cmluZ30sIHtuaWNrbmFtZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19 LAorKworKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBnZXRfdmNhcmQsIHRhZ3MgPSBb dmNhcmRdLAorKwkJCWRlc2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZDYXJkIGZpZWxkIiwKKysJ CQlsb25nZGVzYyA9IFZjYXJkMUZpZWxkc1N0cmluZyArKyAiXG4iICsrIFZjYXJkMkZpZWxkc1N0 cmluZyArKyAiXG5cbiIgKysgVmNhcmRYRVAsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rp b24gPSBnZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmlu Z30sIHtuYW1lLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7Y29udGVudCwgc3RyaW5nfX0sCisr ICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGdldF92Y2FyZDIsIHRhZ3MgPSBbdmNhcmRd LAorKwkJCWRlc2MgPSAiR2V0IGNvbnRlbnQgZnJvbSBhIHZDYXJkIGZpZWxkIiwKKysJCQlsb25n ZGVzYyA9IFZjYXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmQxRmllbGRzU3RyaW5n ICsrICJcbiIgKysgVmNhcmRYRVAsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBn ZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtu YW1lLCBzdHJpbmd9LCB7c3VibmFtZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge2NvbnRlbnQs IHN0cmluZ319LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBnZXRfdmNhcmQyX211 bHRpLCB0YWdzID0gW3ZjYXJkXSwKKysJCQlkZXNjID0gIkdldCBtdWx0aXBsZSBjb250ZW50cyBm cm9tIGEgdkNhcmQgZmllbGQgKHJlcXVpcmVzIGV4bXBwIGluc3RhbGxlZCkiLAorKwkJCWxvbmdk ZXNjID0gVmNhcmQyRmllbGRzU3RyaW5nICsrICJcblxuIiArKyBWY2FyZDFGaWVsZHNTdHJpbmcg KysgIlxuIiArKyBWY2FyZFhFUCwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGdl dF92Y2FyZF9tdWx0aSwKKysJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5n fSwge25hbWUsIHN0cmluZ30sIHtzdWJuYW1lLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7Y29u dGVudHMsIHtsaXN0LCBzdHJpbmd9fX0sCisrCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFt ZSA9IHNldF92Y2FyZCwgdGFncyA9IFt2Y2FyZF0sCisrCQkJZGVzYyA9ICJTZXQgY29udGVudCBp biBhIHZDYXJkIGZpZWxkIiwKKysJCQlsb25nZGVzYyA9IFZjYXJkMUZpZWxkc1N0cmluZyArKyAi XG4iICsrIFZjYXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmRYRVAsCisrCQkJbW9k dWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwg c3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuYW1lLCBzdHJpbmd9LCB7Y29udGVudCwgc3RyaW5n fV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1h bmRze25hbWUgPSBzZXRfdmNhcmQyLCB0YWdzID0gW3ZjYXJkXSwKKysJCQlkZXNjID0gIlNldCBj b250ZW50IGluIGEgdkNhcmQgc3ViZmllbGQiLAorKwkJCWxvbmdkZXNjID0gVmNhcmQyRmllbGRz U3RyaW5nICsrICJcblxuIiArKyBWY2FyZDFGaWVsZHNTdHJpbmcgKysgIlxuIiArKyBWY2FyZFhF UCwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNldF92Y2FyZCwKKysJCQlhcmdz ID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge25hbWUsIHN0cmluZ30sIHtzdWJu YW1lLCBzdHJpbmd9LCB7Y29udGVudCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVz Y29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzZXRfdmNhcmQyX211bHRp LCB0YWdzID0gW3ZjYXJkXSwKKysJCQlkZXNjID0gIlNldCBtdWx0aXBsZSBjb250ZW50cyBpbiBh IHZDYXJkIHN1YmZpZWxkIiwKKysJCQlsb25nZGVzYyA9IFZjYXJkMkZpZWxkc1N0cmluZyArKyAi XG5cbiIgKysgVmNhcmQxRmllbGRzU3RyaW5nICsrICJcbiIgKysgVmNhcmRYRVAsCisrCQkJbW9k dWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfdmNhcmQsCisrCQkJYXJncyA9IFt7dXNlciwg c3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuYW1lLCBzdHJpbmd9LCB7c3VibmFtZSwgc3RyaW5n fSwge2NvbnRlbnRzLCB7bGlzdCwgc3RyaW5nfX1dLAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2Nv ZGV9fSwKKysKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gYWRkX3Jvc3Rlcml0ZW0s IHRhZ3MgPSBbcm9zdGVyXSwKKysJCQlkZXNjID0gIkFkZCBhbiBpdGVtIHRvIGEgdXNlcidzIHJv c3RlciAoc3VwcG9ydHMgT0RCQykiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0g YWRkX3Jvc3Rlcml0ZW0sCisrCQkJYXJncyA9IFt7bG9jYWx1c2VyLCBzdHJpbmd9LCB7bG9jYWxz ZXJ2ZXIsIHN0cmluZ30sCisrCQkJCXt1c2VyLCBzdHJpbmd9LCB7c2VydmVyLCBzdHJpbmd9LAor KwkJCQl7bmljaywgc3RyaW5nfSwge2dyb3VwLCBzdHJpbmd9LAorKwkJCQl7c3Vicywgc3RyaW5n fV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgJSV7IiIsICJzdWJzPSBu b25lLCBmcm9tLCB0byBvciBib3RoIn0sCisrICAgICAlJXsiIiwgImV4YW1wbGU6IGFkZC1yb3N0 ZXIgcGV0ZXIgbG9jYWxob3N0IG1pa2Ugc2VydmVyLmNvbSBNaUtlIEVtcGxveWVlcyBib3RoIn0s CisrICAgICAlJXsiIiwgIndpbGwgYWRkIG1pa2VAc2VydmVyLmNvbSB0byBwZXRlckBsb2NhbGhv c3Qgcm9zdGVyIn0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGRlbGV0ZV9yb3N0 ZXJpdGVtLCB0YWdzID0gW3Jvc3Rlcl0sCisrCQkJZGVzYyA9ICJEZWxldGUgYW4gaXRlbSBmcm9t IGEgdXNlcidzIHJvc3RlciAoc3VwcG9ydHMgT0RCQykiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUs IGZ1bmN0aW9uID0gZGVsZXRlX3Jvc3Rlcml0ZW0sCisrCQkJYXJncyA9IFt7bG9jYWx1c2VyLCBz dHJpbmd9LCB7bG9jYWxzZXJ2ZXIsIHN0cmluZ30sCisrCQkJCXt1c2VyLCBzdHJpbmd9LCB7c2Vy dmVyLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAgICAjZWph YmJlcmRfY29tbWFuZHN7bmFtZSA9IHByb2Nlc3Nfcm9zdGVyaXRlbXMsIHRhZ3MgPSBbcm9zdGVy XSwKKysJCQlkZXNjID0gIkxpc3Qgb3IgZGVsZXRlIHJvc3Rlcml0ZW1zIHRoYXQgbWF0Y2ggZmls dGVyaW5nIG9wdGlvbnMiLAorKwkJCWxvbmdkZXNjID0gIkV4cGxhbmF0aW9uIG9mIGVhY2ggYXJn dW1lbnQ6XG4iCisrCQkJIiAtIGFjdGlvbjogd2hhdCB0byBkbyB3aXRoIGVhY2ggcm9zdGVyaXRl bSB0aGF0ICIKKysJCQkibWF0Y2hlcyBhbGwgdGhlIGZpbHRlcmluZyBvcHRpb25zXG4iCisrCQkJ IiAtIHN1YnM6IHN1YnNjcmlwdGlvbiB0eXBlXG4iCisrCQkJIiAtIGFza3M6IHBlbmRpbmcgc3Vi c2NyaXB0aW9uXG4iCisrCQkJIiAtIHVzZXJzOiB0aGUgSklEcyBvZiB0aGUgbG9jYWwgdXNlclxu IgorKwkJCSIgLSBjb250YWN0czogdGhlIEpJRHMgb2YgdGhlIGNvbnRhY3QgaW4gdGhlIHJvc3Rl clxuIgorKwkJCSJcbiIKKysJCQkiQWxsb3dlZCB2YWx1ZXMgaW4gdGhlIGFyZ3VtZW50czpcbiIK KysJCQkiICBBQ1RJT04gPSBsaXN0IHwgZGVsZXRlXG4iCisrCQkJIiAgU1VCUyA9IFNVQls6U1VC XSogfCBhbnlcbiIKKysJCQkiICBTVUIgPSBub25lIHwgZnJvbSB8IHRvIHwgYm90aFxuIgorKwkJ CSIgIEFTS1MgPSBBU0tbOkFTS10qIHwgYW55XG4iCisrCQkJIiAgQVNLID0gbm9uZSB8IG91dCB8 IGluXG4iCisrCQkJIiAgVVNFUlMgPSBKSURbOkpJRF0qIHwgYW55XG4iCisrCQkJIiAgQ09OVEFD VFMgPSBKSURbOkpJRF0qIHwgYW55XG4iCisrCQkJIiAgSklEID0gY2hhcmFjdGVycyB2YWxpZCBp biBhIEpJRCwgYW5kIGNhbiB1c2UgdGhlICIKKysJCQkiZ2xvYnM6ICosID8sICEgYW5kIFsuLi5d XG4iCisrCQkJIlxuIgorKwkJCSJUaGlzIGV4YW1wbGUgd2lsbCBsaXN0IHJvc3RlciBpdGVtcyB3 aXRoIHN1YnNjcmlwdGlvbiAiCisrCQkJIidub25lJywgJ2Zyb20nIG9yICd0bycgdGhhdCBoYXZl IGFueSBhc2sgcHJvcGVydHksIG9mICIKKysJCQkibG9jYWwgdXNlcnMgd2hpY2ggSklEIGlzIGlu IHRoZSB2aXJ0dWFsIGhvc3QgIgorKwkJCSInZXhhbXBsZS5vcmcnIGFuZCB0aGF0IHRoZSBjb250 YWN0IEpJRCBpcyBlaXRoZXIgYSAiCisrCQkJImJhcmUgc2VydmVyIG5hbWUgKHdpdGhvdXQgdXNl ciBwYXJ0KSBvciB0aGF0IGhhcyBhICIKKysJCQkidXNlciBwYXJ0IGFuZCB0aGUgc2VydmVyIHBh cnQgY29udGFpbnMgdGhlIHdvcmQgJ2ljcSciCisrCQkJIjpcbiAgbGlzdCBub25lOmZyb206dG8g YW55ICpAZXhhbXBsZS5vcmcgKjoqQCppY3EqIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5j dGlvbiA9IHByb2Nlc3Nfcm9zdGVyaXRlbXMsCisrCQkJYXJncyA9IFt7YWN0aW9uLCBzdHJpbmd9 LCB7c3Vicywgc3RyaW5nfSwKKysJCQkJe2Fza3MsIHN0cmluZ30sIHt1c2Vycywgc3RyaW5nfSwK KysJCQkJe2NvbnRhY3RzLCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0s CisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGdldF9yb3N0ZXIsIHRhZ3MgPSBbcm9z dGVyXSwKKysJCQlkZXNjID0gIkdldCByb3N0ZXIgb2YgYSBsb2NhbCB1c2VyIiwKKysJCQltb2R1 bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGdldF9yb3N0ZXIsCisrCQkJYXJncyA9IFt7dXNlciwg c3RyaW5nfSwge2hvc3QsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtjb250YWN0cywge2xpc3Qs IHtjb250YWN0LCB7dHVwbGUsIFsKKysJCQkJCQkJCSAgICAgIHtqaWQsIHN0cmluZ30sCisrCQkJ CQkJCQkgICAgICB7bmljaywgc3RyaW5nfSwKKysJCQkJCQkJCSAgICAgIHtzdWJzY3JpcHRpb24s IHN0cmluZ30sCisrCQkJCQkJCQkgICAgICB7YXNrLCBzdHJpbmd9LAorKwkJCQkJCQkJICAgICAg e2dyb3VwLCBzdHJpbmd9CisrCQkJCQkJCQkgICAgIF19fX19fSwKKysgICAgICNlamFiYmVyZF9j b21tYW5kc3tuYW1lID0gcHVzaF9yb3N0ZXIsIHRhZ3MgPSBbcm9zdGVyXSwKKysJCQlkZXNjID0g IlB1c2ggdGVtcGxhdGUgcm9zdGVyIGZyb20gZmlsZSB0byBhIHVzZXIiLAorKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHVzaF9yb3N0ZXIsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3Ry aW5nfSwge3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVz LCByZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHB1c2hfcm9zdGVy X2FsbCwgdGFncyA9IFtyb3N0ZXJdLAorKwkJCWRlc2MgPSAiUHVzaCB0ZW1wbGF0ZSByb3N0ZXIg ZnJvbSBmaWxlIHRvIGFsbCB0aG9zZSB1c2VycyIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVu Y3Rpb24gPSBwdXNoX3Jvc3Rlcl9hbGwsCisrCQkJYXJncyA9IFt7ZmlsZSwgc3RyaW5nfV0sCisr CQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBwdXNoX2FsbHRvYWxsLCB0YWdzID0gW3Jvc3Rlcl0sCisrCQkJZGVzYyA9ICJBZGQgYWxs IHRoZSB1c2VycyB0byBhbGwgdGhlIHVzZXJzIG9mIEhvc3QgaW4gR3JvdXAiLAorKwkJCW1vZHVs ZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gcHVzaF9hbGx0b2FsbCwKKysJCQlhcmdzID0gW3tob3N0 LCBzdHJpbmd9LCB7Z3JvdXAsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9 fSwKKysKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc2V0X2xhc3QsIHRhZ3MgPSBb bGFzdF0sCisrCQkJZGVzYyA9ICJTZXQgbGFzdCBhY3Rpdml0eSBpbmZvcm1hdGlvbiIsCisrCQkJ bG9uZ2Rlc2MgPSAiVGltZXN0YW1wIGlzIHRoZSBzZWNvbmRzIHNpbmNlIgorKwkJCSIxOTcwLTAx LTAxIDAwOjAwOjAwIFVUQywgZm9yIGV4YW1wbGU6IGRhdGUgKyVzIiwKKysJCQltb2R1bGUgPSA/ TU9EVUxFLCBmdW5jdGlvbiA9IHNldF9sYXN0LAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30s IHtob3N0LCBzdHJpbmd9LCB7dGltZXN0YW1wLCBpbnRlZ2VyfSwge3N0YXR1cywgc3RyaW5nfV0s CisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKworKyAgICAgI2VqYWJiZXJkX2NvbW1h bmRze25hbWUgPSBwcml2YXRlX2dldCwgdGFncyA9IFtwcml2YXRlXSwKKysJCQlkZXNjID0gIkdl dCBzb21lIGluZm9ybWF0aW9uIGZyb20gYSB1c2VyIHByaXZhdGUgc3RvcmFnZSIsCisrCQkJbW9k dWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBwcml2YXRlX2dldCwKKysJCQlhcmdzID0gW3t1c2Vy LCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge2VsZW1lbnQsIHN0cmluZ30sIHtucywgc3RyaW5n fV0sCisrCQkJcmVzdWx0ID0ge3Jlcywgc3RyaW5nfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFu ZHN7bmFtZSA9IHByaXZhdGVfc2V0LCB0YWdzID0gW3ByaXZhdGVdLAorKwkJCWRlc2MgPSAiU2V0 IHRvIHRoZSB1c2VyIHByaXZhdGUgc3RvcmFnZSIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVu Y3Rpb24gPSBwcml2YXRlX3NldCwKKysJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwg c3RyaW5nfSwge2VsZW1lbnQsIHN0cmluZ31dLAorKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9 fSwKKysKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3JnX2NyZWF0ZSwgdGFncyA9 IFtzaGFyZWRfcm9zdGVyX2dyb3VwXSwKKysJCQlkZXNjID0gIkNyZWF0ZSBhIFNoYXJlZCBSb3N0 ZXIgR3JvdXAiLAorKwkJCWxvbmdkZXNjID0gIklmIHlvdSB3YW50IHRvIHNwZWNpZnkgc2V2ZXJh bCBncm91cCAiCisrCQkJImlkZW50aWZpZXJzIGluIHRoZSBEaXNwbGF5IGFyZ3VtZW50LFxuIgor KwkJCSJwdXQgIFxcIFwiIGFyb3VuZCB0aGUgYXJndW1lbnQgYW5kXG5zZXBhcmF0ZSB0aGUgIgor KwkJCSJpZGVudGlmaWVycyB3aXRoIFxcIFxcIG5cbiIKKysJCQkiRm9yIGV4YW1wbGU6XG4iCisr CQkJIiAgZWphYmJlcmRjdGwgc3JnX2NyZWF0ZSBncm91cDMgbG9jYWxob3N0ICIKKysJCQkibmFt ZSBkZXNjIFxcXCJncm91cDFcXFxcbmdyb3VwMlxcXCIiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUs IGZ1bmN0aW9uID0gc3JnX2NyZWF0ZSwKKysJCQlhcmdzID0gW3tncm91cCwgc3RyaW5nfSwge2hv c3QsIHN0cmluZ30sCisrCQkJCXtuYW1lLCBzdHJpbmd9LCB7ZGVzY3JpcHRpb24sIHN0cmluZ30s IHtkaXNwbGF5LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAg ICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19kZWxldGUsIHRhZ3MgPSBbc2hhcmVkX3Jv c3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJEZWxldGUgYSBTaGFyZWQgUm9zdGVyIEdyb3VwIiwK KysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNyZ19kZWxldGUsCisrCQkJYXJncyA9 IFt7Z3JvdXAsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCBy ZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19saXN0LCB0YWdz ID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAorKwkJCWRlc2MgPSAiTGlzdCB0aGUgU2hhcmVkIFJv c3RlciBHcm91cHMgaW4gSG9zdCIsCisrCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBz cmdfbGlzdCwKKysJCQlhcmdzID0gW3tob3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7Z3Jv dXBzLCB7bGlzdCwge2lkLCBzdHJpbmd9fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBzcmdfZ2V0X2luZm8sIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVz YyA9ICJHZXQgaW5mbyBvZiBhIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9N T0RVTEUsIGZ1bmN0aW9uID0gc3JnX2dldF9pbmZvLAorKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJp bmd9LCB7aG9zdCwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge2luZm9ybWF0aW9ucywge2xpc3Qs IHtpbmZvcm1hdGlvbiwge3R1cGxlLCBbe2tleSwgc3RyaW5nfSwge3ZhbHVlLCBzdHJpbmd9XX19 fX19LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfZ2V0X21lbWJlcnMsIHRh Z3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJHZXQgbWVtYmVycyBvZiBh IFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0g c3JnX2dldF9tZW1iZXJzLAorKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJpbmd9LCB7aG9zdCwgc3Ry aW5nfV0sCisrCQkJcmVzdWx0ID0ge21lbWJlcnMsIHtsaXN0LCB7bWVtYmVyLCBzdHJpbmd9fX19 LAorKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfdXNlcl9hZGQsIHRhZ3MgPSBb c2hhcmVkX3Jvc3Rlcl9ncm91cF0sCisrCQkJZGVzYyA9ICJBZGQgdGhlIEpJRCB1c2VyQGhvc3Qg dG8gdGhlIFNoYXJlZCBSb3N0ZXIgR3JvdXAiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0 aW9uID0gc3JnX3VzZXJfYWRkLAorKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBz dHJpbmd9LCB7Z3JvdXAsIHN0cmluZ30sIHtncm91cGhvc3QsIHN0cmluZ31dLAorKwkJCXJlc3Vs dCA9IHtyZXMsIHJlc2NvZGV9fSwKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3Jn X3VzZXJfZGVsLCB0YWdzID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAorKwkJCWRlc2MgPSAiRGVs ZXRlIHRoaXMgSklEIHVzZXJAaG9zdCBmcm9tIHRoZSBTaGFyZWQgUm9zdGVyIEdyb3VwIiwKKysJ CQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNyZ191c2VyX2RlbCwKKysJCQlhcmdzID0g W3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge2dyb3VwLCBzdHJpbmd9LCB7Z3JvdXBo b3N0LCBzdHJpbmd9XSwKKysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrCisrICAgICAj ZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNlbmRfbWVzc2FnZV9jaGF0LCB0YWdzID0gW3N0YW56 YV0sCisrCQkJZGVzYyA9ICJTZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgbG9jYWwgb3IgcmVtb3Rl IGJhcmUgb2YgZnVsbCBKSUQiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc2Vu ZF9tZXNzYWdlX2NoYXQsCisrCQkJYXJncyA9IFt7ZnJvbSwgc3RyaW5nfSwge3RvLCBzdHJpbmd9 LCB7Ym9keSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAg I2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzZW5kX21lc3NhZ2VfaGVhZGxpbmUsIHRhZ3MgPSBb c3RhbnphXSwKKysJCQlkZXNjID0gIlNlbmQgYSBoZWFkbGluZSBtZXNzYWdlIHRvIGEgbG9jYWwg b3IgcmVtb3RlIGJhcmUgb2YgZnVsbCBKSUQiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0 aW9uID0gc2VuZF9tZXNzYWdlX2hlYWRsaW5lLAorKwkJCWFyZ3MgPSBbe2Zyb20sIHN0cmluZ30s IHt0bywgc3RyaW5nfSwKKysJCQkJe3N1YmplY3QsIHN0cmluZ30sIHtib2R5LCBzdHJpbmd9XSwK KysJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCisrICAgICAjZWphYmJlcmRfY29tbWFuZHN7 bmFtZSA9IHNlbmRfc3RhbnphX2MycywgdGFncyA9IFtzdGFuemFdLAorKwkJCWRlc2MgPSAiU2Vu ZCBhIHN0YW56YSBhcyBpZiBzZW50IGZyb20gYSBjMnMgc2Vzc2lvbiIsCisrCQkJbW9kdWxlID0g P01PRFVMRSwgZnVuY3Rpb24gPSBzZW5kX3N0YW56YV9jMnMsCisrCQkJYXJncyA9IFt7dXNlciwg c3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtyZXNvdXJjZSwgc3RyaW5nfSwge3N0YW56YSwgc3Ry aW5nfV0sCisrCQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAorKyAgICAgI2VqYWJiZXJkX2Nv bW1hbmRze25hbWUgPSBwcml2YWN5X3NldCwgdGFncyA9IFtzdGFuemFdLAorKwkJCWRlc2MgPSAi U2VuZCBhIElRIHNldCBwcml2YWN5IHN0YW56YSBmb3IgYSBsb2NhbCBhY2NvdW50IiwKKysJCQlt b2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHByaXZhY3lfc2V0LAorKwkJCWFyZ3MgPSBbe3Vz ZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7eG1scXVlcnksIHN0cmluZ31dLAorKwkJCXJl c3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKKysKKysgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1l ID0gc3RhdHMsIHRhZ3MgPSBbc3RhdHNdLAorKwkJCWRlc2MgPSAiR2V0IHN0YXRpc3RpY2FsIHZh bHVlOiByZWdpc3RlcmVkdXNlcnMgb25saW5ldXNlcnMgb25saW5ldXNlcnNub2RlIHVwdGltZXNl Y29uZHMiLAorKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3RhdHMsCisrCQkJYXJn cyA9IFt7bmFtZSwgc3RyaW5nfV0sCisrCQkJcmVzdWx0ID0ge3N0YXQsIGludGVnZXJ9fSwKKysg ICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3RhdHNfaG9zdCwgdGFncyA9IFtzdGF0c10s CisrCQkJZGVzYyA9ICJHZXQgc3RhdGlzdGljYWwgdmFsdWUgZm9yIHRoaXMgaG9zdDogcmVnaXN0 ZXJlZHVzZXJzIG9ubGluZXVzZXJzIiwKKysJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9 IHN0YXRzLAorKwkJCWFyZ3MgPSBbe25hbWUsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKKysJ CQlyZXN1bHQgPSB7c3RhdCwgaW50ZWdlcn19CisrICAgIF0uCisrCisrCisrJSUlCisrJSUlIE5v ZGUKKyslJSUKKysKKytjb21waWxlKEZpbGUpIC0+CisrICAgIGNhc2UgY29tcGlsZTpmaWxlKEZp bGUpIG9mCisrCW9rIC0+IG9rOworKwlfIC0+IGVycm9yCisrICAgIGVuZC4KKysKKytsb2FkX2Nv bmZpZyhQYXRoKSAtPgorKyAgICBvayA9IGVqYWJiZXJkX2NvbmZpZzpsb2FkX2ZpbGUoUGF0aCku CisrCisrZ2V0X2Nvb2tpZSgpIC0+CisrICAgIGF0b21fdG9fbGlzdChlcmxhbmc6Z2V0X2Nvb2tp ZSgpKS4KKysKKytyZW1vdmVfbm9kZShOb2RlKSAtPgorKyAgICBtbmVzaWE6ZGVsX3RhYmxlX2Nv cHkoc2NoZW1hLCBsaXN0X3RvX2F0b20oTm9kZSkpLAorKyAgICBvay4KKysKKytleHBvcnQyb2Ri YyhIb3N0LCBEaXJlY3RvcnkpIC0+CisrICAgIFRhYmxlcyA9IFsKKysJICAgICAge2V4cG9ydF9s YXN0LCBsYXN0fSwKKysJICAgICAge2V4cG9ydF9vZmZsaW5lLCBvZmZsaW5lfSwKKysJICAgICAg e2V4cG9ydF9wYXNzd2QsIHBhc3N3ZH0sCisrCSAgICAgIHtleHBvcnRfcHJpdmF0ZV9zdG9yYWdl LCBwcml2YXRlX3N0b3JhZ2V9LAorKwkgICAgICB7ZXhwb3J0X3Jvc3Rlciwgcm9zdGVyfSwKKysJ ICAgICAge2V4cG9ydF92Y2FyZCwgdmNhcmR9LAorKwkgICAgICB7ZXhwb3J0X3ZjYXJkX3NlYXJj aCwgdmNhcmRfc2VhcmNofV0sCisrICAgIEV4cG9ydCA9IGZ1bih7VGFibGVGdW4sIFRhYmxlfSkg LT4KKysJCSAgICAgRmlsZW5hbWUgPSBmaWxlbmFtZTpqb2luKFtEaXJlY3RvcnksIGF0b21fdG9f bGlzdChUYWJsZSkrKyIudHh0Il0pLAorKwkJICAgICBpbzpmb3JtYXQoIlRyeWluZyB0byBleHBv cnQgTW5lc2lhIHRhYmxlICd+cCcgb24gSG9zdCAnfnMnIHRvIGZpbGUgJ35zJ35uIiwgW1RhYmxl LCBIb3N0LCBGaWxlbmFtZV0pLAorKwkJICAgICBSZXMgPSAoY2F0Y2ggZWpkMm9kYmM6VGFibGVG dW4oSG9zdCwgRmlsZW5hbWUpKSwKKysJCSAgICAgaW86Zm9ybWF0KCIgIFJlc3VsdDogfnB+biIs IFtSZXNdKQorKwkgICAgIGVuZCwKKysgICAgbGlzdHM6Zm9yZWFjaChFeHBvcnQsIFRhYmxlcyks CisrICAgIG9rLgorKworKworKyUlJQorKyUlJSBBY2NvdW50cworKyUlJQorKworK3NldF9wYXNz d29yZChVc2VyLCBIb3N0LCBQYXNzd29yZCkgLT4KKysgICAgY2FzZSBlamFiYmVyZF9hdXRoOnNl dF9wYXNzd29yZChVc2VyLCBIb3N0LCBQYXNzd29yZCkgb2YKKysJb2sgLT4KKysJICAgIG9rOwor KwlfIC0+CisrCSAgICBlcnJvcgorKyAgICBlbmQuCisrCisrJSUgQ29waWVkIHNvbWUgY29kZSBm cm9tIGVqYWJiZXJkX2NvbW1hbmRzLmVybAorK2NoZWNrX3Bhc3N3b3JkX2hhc2goVXNlciwgSG9z dCwgUGFzc3dvcmRIYXNoLCBIYXNoTWV0aG9kKSAtPgorKyAgICBBY2NvdW50UGFzcyA9IGVqYWJi ZXJkX2F1dGg6Z2V0X3Bhc3N3b3JkX3MoVXNlciwgSG9zdCksCisrICAgIEFjY291bnRQYXNzSGFz aCA9IGNhc2UgSGFzaE1ldGhvZCBvZgorKwkJCSAgIm1kNSIgLT4gZ2V0X21kNShBY2NvdW50UGFz cyk7CisrCQkJICAic2hhIiAtPiBnZXRfc2hhKEFjY291bnRQYXNzKTsKKysJCQkgIF8gLT4gdW5k ZWZpbmVkCisrCQkgICAgICBlbmQsCisrICAgIGNhc2UgQWNjb3VudFBhc3NIYXNoIG9mCisrCXVu ZGVmaW5lZCAtPiBlcnJvcjsKKysJUGFzc3dvcmRIYXNoIC0+IG9rOworKwlfIC0+IGVycm9yCisr ICAgIGVuZC4KKytnZXRfbWQ1KEFjY291bnRQYXNzKSAtPgorKyAgICBsaXN0czpmbGF0dGVuKFtp b19saWI6Zm9ybWF0KCJ+LjE2QiIsIFtYXSkKKysJCSAgIHx8IFggPC0gYmluYXJ5X3RvX2xpc3Qo Y3J5cHRvOm1kNShBY2NvdW50UGFzcykpXSkuCisrZ2V0X3NoYShBY2NvdW50UGFzcykgLT4KKysg ICAgbGlzdHM6ZmxhdHRlbihbaW9fbGliOmZvcm1hdCgifi4xNkIiLCBbWF0pCisrCQkgICB8fCBY IDwtIGJpbmFyeV90b19saXN0KGNyeXB0bzpzaGEoQWNjb3VudFBhc3MpKV0pLgorKworK251bV9h Y3RpdmVfdXNlcnMoSG9zdCwgRGF5cykgLT4KKysgICAgbGlzdF9sYXN0X2FjdGl2aXR5KEhvc3Qs IHRydWUsIERheXMpLgorKworKyUlIENvZGUgYmFzZWQgb24gZWphYmJlcmQvc3JjL3dlYi9lamFi YmVyZF93ZWJfYWRtaW4uZXJsCisrbGlzdF9sYXN0X2FjdGl2aXR5KEhvc3QsIEludGVncmFsLCBE YXlzKSAtPgorKyAgICB7TWVnYVNlY3MsIFNlY3MsIF9NaWNyb1NlY3N9ID0gbm93KCksCisrICAg IFRpbWVTdGFtcCA9IE1lZ2FTZWNzICogMTAwMDAwMCArIFNlY3MsCisrICAgIFRTID0gVGltZVN0 YW1wIC0gRGF5cyAqIDg2NDAwLAorKyAgICBjYXNlIGNhdGNoIG1uZXNpYTpkaXJ0eV9zZWxlY3Qo CisrCQkgbGFzdF9hY3Rpdml0eSwgW3t7bGFzdF9hY3Rpdml0eSwgeydfJywgSG9zdH0sICckMScs ICdfJ30sCisrCQkJCSAgW3snPicsICckMScsIFRTfV0sCisrCQkJCSAgW3sndHJ1bmMnLCB7Jy8n LAorKwkJCQkJICAgICAgeyctJywgVGltZVN0YW1wLCAnJDEnfSwKKysJCQkJCSAgICAgIDg2NDAw fX1dfV0pIG9mCisrCQkJCQkJCSAgICAgIHsnRVhJVCcsIF9SZWFzb259IC0+CisrCQkgW107Cisr CSAgICAgICBWYWxzIC0+CisrCQkgSGlzdCA9IGhpc3RvZ3JhbShWYWxzLCBJbnRlZ3JhbCksCisr CQkgaWYKKysJCSAgICAgSGlzdCA9PSBbXSAtPgorKwkJCSAwOworKwkJICAgICB0cnVlIC0+Cisr CQkJIExlZnQgPSBEYXlzIC0gbGVuZ3RoKEhpc3QpLAorKwkJCSBUYWlsID0gaWYKKysJCQkJICAg IEludGVncmFsIC0+CisrCQkJCQlsaXN0czpkdXBsaWNhdGUoTGVmdCwgbGlzdHM6bGFzdChIaXN0 KSk7CisrCQkJCSAgICB0cnVlIC0+CisrCQkJCQlsaXN0czpkdXBsaWNhdGUoTGVmdCwgMCkKKysJ CQkJZW5kLAorKwkJCSBsaXN0czpudGgoRGF5cywgSGlzdCArKyBUYWlsKQorKwkJIGVuZAorKwkg ZW5kLgorK2hpc3RvZ3JhbShWYWx1ZXMsIEludGVncmFsKSAtPgorKyAgICBoaXN0b2dyYW0obGlz dHM6c29ydChWYWx1ZXMpLCBJbnRlZ3JhbCwgMCwgMCwgW10pLgorK2hpc3RvZ3JhbShbSCB8IFRd LCBJbnRlZ3JhbCwgQ3VycmVudCwgQ291bnQsIEhpc3QpIHdoZW4gQ3VycmVudCA9PSBIIC0+Cisr ICAgIGhpc3RvZ3JhbShULCBJbnRlZ3JhbCwgQ3VycmVudCwgQ291bnQgKyAxLCBIaXN0KTsKKyto aXN0b2dyYW0oW0ggfCBfXSA9IFZhbHVlcywgSW50ZWdyYWwsIEN1cnJlbnQsIENvdW50LCBIaXN0 KSB3aGVuIEN1cnJlbnQgPCBIIC0+CisrICAgIGlmCisrCUludGVncmFsIC0+CisrCSAgICBoaXN0 b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCwgQ3VycmVudCArIDEsIENvdW50LCBbQ291bnQgfCBIaXN0 XSk7CisrCXRydWUgLT4KKysJICAgIGhpc3RvZ3JhbShWYWx1ZXMsIEludGVncmFsLCBDdXJyZW50 ICsgMSwgMCwgW0NvdW50IHwgSGlzdF0pCisrICAgIGVuZDsKKytoaXN0b2dyYW0oW10sIF9JbnRl Z3JhbCwgX0N1cnJlbnQsIENvdW50LCBIaXN0KSAtPgorKyAgICBpZgorKwlDb3VudCA+IDAgLT4K KysJICAgIGxpc3RzOnJldmVyc2UoW0NvdW50IHwgSGlzdF0pOworKwl0cnVlIC0+CisrCSAgICBs aXN0czpyZXZlcnNlKEhpc3QpCisrICAgIGVuZC4KKysKKysKKytkZWxldGVfb2xkX3VzZXJzKERh eXMpIC0+CisrICAgICUlIEdldCB0aGUgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJzCisrICAgIFVz ZXJzID0gZWphYmJlcmRfYXV0aDpkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2VycygpLAorKworKyAg ICB7cmVtb3ZlZCwgTiwgVVJ9ID0gZGVsZXRlX29sZF91c2VycyhEYXlzLCBVc2VycyksCisrICAg IHtvaywgaW9fbGliOmZvcm1hdCgiRGVsZXRlZCB+cCB1c2VyczogfnAiLCBbTiwgVVJdKX0uCisr CisrZGVsZXRlX29sZF91c2Vyc192aG9zdChIb3N0LCBEYXlzKSAtPgorKyAgICAlJSBHZXQgdGhl IGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2VycworKyAgICBVc2VycyA9IGVqYWJiZXJkX2F1dGg6Z2V0 X3ZoX3JlZ2lzdGVyZWRfdXNlcnMoSG9zdCksCisrCisrICAgIHtyZW1vdmVkLCBOLCBVUn0gPSBk ZWxldGVfb2xkX3VzZXJzKERheXMsIFVzZXJzKSwKKysgICAge29rLCBpb19saWI6Zm9ybWF0KCJE ZWxldGVkIH5wIHVzZXJzOiB+cCIsIFtOLCBVUl0pfS4KKysKKytkZWxldGVfb2xkX3VzZXJzKERh eXMsIFVzZXJzKSAtPgorKyAgICAlJSBDb252ZXJ0IG9sZGVyIHRpbWUKKysgICAgU2VjT2xkZXIg PSBEYXlzKjI0KjYwKjYwLAorKworKyAgICAlJSBHZXQgY3VycmVudCB0aW1lCisrICAgIHtNZWdh U2VjcywgU2VjcywgX01pY3JvU2Vjc30gPSBub3coKSwKKysgICAgVGltZVN0YW1wX25vdyA9IE1l Z2FTZWNzICogMTAwMDAwMCArIFNlY3MsCisrCisrICAgICUlIEZvciBhIHVzZXIsIHJlbW92ZSBp ZiByZXF1aXJlZCBhbmQgYW5zd2VyIHRydWUKKysgICAgRiA9IGZ1bih7TFVzZXIsIExTZXJ2ZXJ9 KSAtPgorKwkJJSUgQ2hlY2sgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkCisrCQljYXNlIGVqYWJiZXJk X3NtOmdldF91c2VyX3Jlc291cmNlcyhMVXNlciwgTFNlcnZlcikgb2YKKysJCSAgICAlJSBJZiBp dCBpc250CisrCQkgICAgW10gLT4KKysJCQklJSBMb29rIGZvciBoaXMgbGFzdF9hY3Rpdml0eQor KwkJCWNhc2UgKGdldF9sYXN0YWN0aXZpdHlfbW9kdWxlKExTZXJ2ZXIpKTpnZXRfbGFzdF9pbmZv KExVc2VyLCBMU2VydmVyKSBvZgorKwkJCSAgICAlJSBJZiBpdCBpcworKwkJCSAgICAlJSBleGlz dGVudDoKKysJCQkgICAge29rLCBUaW1lU3RhbXAsIF9TdGF0dXN9IC0+CisrCQkJCSUlIGdldCBo aXMgYWdlCisrCQkJCVNlYyA9IFRpbWVTdGFtcF9ub3cgLSBUaW1lU3RhbXAsCisrCQkJCSUlIElm IGhlIGlzCisrCQkJCWlmCisrCQkJCSAgICAlJSB5b3VuZ2VyIHRoYW4gU2VjT2xkZXI6CisrCQkJ CSAgICBTZWMgPCBTZWNPbGRlciAtPgorKwkJCQkJJSUgZG8gbm90aGluZworKwkJCQkJZmFsc2U7 CisrCQkJCSAgICAlJSBvbGRlcjoKKysJCQkJICAgIHRydWUgLT4KKysJCQkJCSUlIHJlbW92ZSB0 aGUgdXNlcgorKwkJCQkJZWphYmJlcmRfYXV0aDpyZW1vdmVfdXNlcihMVXNlciwgTFNlcnZlciks CisrCQkJCQl0cnVlCisrCQkJCWVuZDsKKysJCQkgICAgJSUgbm9uZXhpc3RlbnQ6CisrCQkJICAg IG5vdF9mb3VuZCAtPgorKwkJCQklJSByZW1vdmUgdGhlIHVzZXIKKysJCQkJZWphYmJlcmRfYXV0 aDpyZW1vdmVfdXNlcihMVXNlciwgTFNlcnZlciksCisrCQkJCXRydWUKKysJCQllbmQ7CisrCQkg ICAgJSUgRWxzZQorKwkJICAgIF8gLT4KKysJCQklJSBkbyBub3RoaW5nCisrCQkJZmFsc2UKKysJ CWVuZAorKwllbmQsCisrICAgICUlIEFwcGx5IHRoZSBmdW5jdGlvbiB0byBldmVyeSB1c2VyIGlu IHRoZSBsaXN0CisrICAgIFVzZXJzX3JlbW92ZWQgPSBsaXN0czpmaWx0ZXIoRiwgVXNlcnMpLAor KyAgICB7cmVtb3ZlZCwgbGVuZ3RoKFVzZXJzX3JlbW92ZWQpLCBVc2Vyc19yZW1vdmVkfS4KKysK KytnZXRfbGFzdGFjdGl2aXR5X21vZHVsZShTZXJ2ZXIpIC0+CisrICAgIGNhc2UgbGlzdHM6bWVt YmVyKG1vZF9sYXN0LCBnZW5fbW9kOmxvYWRlZF9tb2R1bGVzKFNlcnZlcikpIG9mCisrICAgICAg ICB0cnVlIC0+IG1vZF9sYXN0OworKyAgICAgICAgXyAtPiBtb2RfbGFzdF9vZGJjCisrICAgIGVu ZC4KKysKKysKKyslJQorKyUlIEJhbiBhY2NvdW50CisrCisrYmFuX2FjY291bnQoVXNlciwgSG9z dCwgUmVhc29uVGV4dCkgLT4KKysgICAgUmVhc29uID0gcHJlcGFyZV9yZWFzb24oUmVhc29uVGV4 dCksCisrICAgIGtpY2tfc2Vzc2lvbnMoVXNlciwgSG9zdCwgUmVhc29uKSwKKysgICAgc2V0X3Jh bmRvbV9wYXNzd29yZChVc2VyLCBIb3N0LCBSZWFzb24pLAorKyAgICBvay4KKysKKytraWNrX3Nl c3Npb25zKFVzZXIsIFNlcnZlciwgUmVhc29uKSAtPgorKyAgICBsaXN0czptYXAoCisrICAgICAg ZnVuKFJlc291cmNlKSAtPgorKwkgICAgICBraWNrX3RoaXNfc2Vzc2lvbihVc2VyLCBTZXJ2ZXIs IFJlc291cmNlLCBSZWFzb24pCisrICAgICAgZW5kLAorKyAgICAgIGdldF9yZXNvdXJjZXMoVXNl ciwgU2VydmVyKSkuCisrCisrZ2V0X3Jlc291cmNlcyhVc2VyLCBTZXJ2ZXIpIC0+CisrICAgIGxp c3RzOm1hcCgKKysgICAgICBmdW4oU2Vzc2lvbikgLT4KKysJICAgICAgZWxlbWVudCgzLCBTZXNz aW9uI3Nlc3Npb24udXNyKQorKyAgICAgIGVuZCwKKysgICAgICBnZXRfc2Vzc2lvbnMoVXNlciwg U2VydmVyKSkuCisrCisrZ2V0X3Nlc3Npb25zKFVzZXIsIFNlcnZlcikgLT4KKysgICAgTFVzZXIg PSBqbGliOm5vZGVwcmVwKFVzZXIpLAorKyAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2 ZXIpLAorKyAgICBTZXNzaW9ucyA9ICBtbmVzaWE6ZGlydHlfaW5kZXhfcmVhZChzZXNzaW9uLCB7 TFVzZXIsIExTZXJ2ZXJ9LCAjc2Vzc2lvbi51cyksCisrICAgIHRydWUgPSBpc19saXN0KFNlc3Np b25zKSwKKysgICAgU2Vzc2lvbnMuCisrCisrc2V0X3JhbmRvbV9wYXNzd29yZChVc2VyLCBTZXJ2 ZXIsIFJlYXNvbikgLT4KKysgICAgTmV3UGFzcyA9IGJ1aWxkX3JhbmRvbV9wYXNzd29yZChSZWFz b24pLAorKyAgICBzZXRfcGFzc3dvcmRfYXV0aChVc2VyLCBTZXJ2ZXIsIE5ld1Bhc3MpLgorKwor K2J1aWxkX3JhbmRvbV9wYXNzd29yZChSZWFzb24pIC0+CisrICAgIERhdGUgPSBqbGliOnRpbWVz dGFtcF90b19pc28oY2FsZW5kYXI6dW5pdmVyc2FsX3RpbWUoKSksCisrICAgIFJhbmRvbVN0cmlu ZyA9IHJhbmRvbXM6Z2V0X3N0cmluZygpLAorKyAgICAiQkFOTkVEX0FDQ09VTlQtLSIgKysgRGF0 ZSArKyAiLS0iICsrIFJhbmRvbVN0cmluZyArKyAiLS0iICsrIFJlYXNvbi4KKysKKytzZXRfcGFz c3dvcmRfYXV0aChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkKSAtPgorKyAgICBvayA9IGVqYWJiZXJk X2F1dGg6c2V0X3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpLgorKworK3ByZXBhcmVf cmVhc29uKFtdKSAtPgorKyAgICAiS2lja2VkIGJ5IGFkbWluaXN0cmF0b3IiOworK3ByZXBhcmVf cmVhc29uKFtSZWFzb25dKSAtPgorKyAgICBSZWFzb247CisrcHJlcGFyZV9yZWFzb24oUmVhc29u KSB3aGVuIGlzX2xpc3QoUmVhc29uKSAtPgorKyAgICBSZWFzb247CisrcHJlcGFyZV9yZWFzb24o U3RyaW5nTGlzdCkgLT4KKysgICAgc3RyaW5nOmpvaW4oU3RyaW5nTGlzdCwgIl8iKS4KKysKKysK KyslJSUKKyslJSUgU2Vzc2lvbnMKKyslJSUKKysKKytudW1fcmVzb3VyY2VzKFVzZXIsIEhvc3Qp IC0+CisrICAgIGxlbmd0aChlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoVXNlciwgSG9z dCkpLgorKworK3Jlc291cmNlX251bShVc2VyLCBIb3N0LCBOdW0pIC0+CisrICAgIFJlc291cmNl cyA9IGVqYWJiZXJkX3NtOmdldF91c2VyX3Jlc291cmNlcyhVc2VyLCBIb3N0KSwKKysgICAgY2Fz ZSAoMDxOdW0pIGFuZCAoTnVtPTxsZW5ndGgoUmVzb3VyY2VzKSkgb2YKKysJdHJ1ZSAtPgorKwkg ICAgbGlzdHM6bnRoKE51bSwgUmVzb3VyY2VzKTsKKysJZmFsc2UgLT4KKysJICAgIGxpc3RzOmZs YXR0ZW4oaW9fbGliOmZvcm1hdCgiRXJyb3I6IFdyb25nIHJlc291cmNlIG51bWJlcjogfnAiLCBb TnVtXSkpCisrICAgIGVuZC4KKysKKytraWNrX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJj ZSwgUmVhc29uVGV4dCkgLT4KKysgICAga2lja190aGlzX3Nlc3Npb24oVXNlciwgU2VydmVyLCBS ZXNvdXJjZSwgcHJlcGFyZV9yZWFzb24oUmVhc29uVGV4dCkpLAorKyAgICBvay4KKysKKytraWNr X3RoaXNfc2Vzc2lvbihVc2VyLCBTZXJ2ZXIsIFJlc291cmNlLCBSZWFzb24pIC0+CisrICAgIGVq YWJiZXJkX3JvdXRlcjpyb3V0ZSgKKysgICAgICBqbGliOm1ha2VfamlkKCIiLCAiIiwgIiIpLAor KyAgICAgIGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCBSZXNvdXJjZSksCisrICAgICAge3ht bGVsZW1lbnQsICJicm9hZGNhc3QiLCBbXSwgW3tleGl0LCBSZWFzb259XX0pLgorKworKworK3N0 YXR1c19udW0oSG9zdCwgU3RhdHVzKSAtPgorKyAgICBsZW5ndGgoZ2V0X3N0YXR1c19saXN0KEhv c3QsIFN0YXR1cykpLgorK3N0YXR1c19udW0oU3RhdHVzKSAtPgorKyAgICBzdGF0dXNfbnVtKCJh bGwiLCBTdGF0dXMpLgorK3N0YXR1c19saXN0KEhvc3QsIFN0YXR1cykgLT4KKysgICAgUmVzID0g Z2V0X3N0YXR1c19saXN0KEhvc3QsIFN0YXR1cyksCisrICAgIFt7VSwgUywgUiwgUCwgU3R9IHx8 IHtVLCBTLCBSLCBQLCBTdH0gPC0gUmVzXS4KKytzdGF0dXNfbGlzdChTdGF0dXMpIC0+CisrICAg IHN0YXR1c19saXN0KCJhbGwiLCBTdGF0dXMpLgorKworKworK2dldF9zdGF0dXNfbGlzdChIb3N0 LCBTdGF0dXNfcmVxdWlyZWQpIC0+CisrICAgICUlIEdldCBsaXN0IG9mIGFsbCBsb2dnZWQgdXNl cnMKKysgICAgU2Vzc2lvbnMgPSBlamFiYmVyZF9zbTpkaXJ0eV9nZXRfbXlfc2Vzc2lvbnNfbGlz dCgpLAorKyAgICAlJSBSZWZvcm1hdCB0aGUgbGlzdAorKyAgICBTZXNzaW9uczIgPSBbIHtTZXNz aW9uI3Nlc3Npb24udXNyLCBTZXNzaW9uI3Nlc3Npb24uc2lkLCBTZXNzaW9uI3Nlc3Npb24ucHJp b3JpdHl9IHx8IFNlc3Npb24gPC0gU2Vzc2lvbnNdLAorKyAgICBGaG9zdCA9IGNhc2UgSG9zdCBv ZgorKwkJImFsbCIgLT4KKysJCSAgICAlJSBBbGwgaG9zdHMgYXJlIHJlcXVlc3RlZCwgc28gZG9u dCBmaWx0ZXIgYXQgYWxsCisrCQkgICAgZnVuKF8sIF8pIC0+IHRydWUgZW5kOworKwkJXyAtPgor KwkJICAgICUlIEZpbHRlciB0aGUgbGlzdCwgb25seSBIb3N0IGlzIGludGVyZXN0aW5nCisrCQkg ICAgZnVuKEEsIEIpIC0+IEEgPT0gQiBlbmQKKysJICAgIGVuZCwKKysgICAgU2Vzc2lvbnMzID0g WyB7UGlkLCBTZXJ2ZXIsIFByaW9yaXR5fSB8fCB7e19Vc2VyLCBTZXJ2ZXIsIF9SZXNvdXJjZX0s IHtfLCBQaWR9LCBQcmlvcml0eX0gPC0gU2Vzc2lvbnMyLCBhcHBseShGaG9zdCwgW1NlcnZlciwg SG9zdF0pXSwKKysgICAgJSUgRm9yIGVhY2ggUGlkLCBnZXQgaXRzIHByZXNlbmNlCisrICAgIFNl c3Npb25zNCA9IFsge2VqYWJiZXJkX2MyczpnZXRfcHJlc2VuY2UoUGlkKSwgU2VydmVyLCBQcmlv cml0eX0gfHwge1BpZCwgU2VydmVyLCBQcmlvcml0eX0gPC0gU2Vzc2lvbnMzXSwKKysgICAgJSUg RmlsdGVyIGJ5IHN0YXR1cworKyAgICBGc3RhdHVzID0gY2FzZSBTdGF0dXNfcmVxdWlyZWQgb2YK KysJCSAgImFsbCIgLT4KKysJCSAgICAgIGZ1bihfLCBfKSAtPiB0cnVlIGVuZDsKKysJCSAgXyAt PgorKwkJICAgICAgZnVuKEEsIEIpIC0+IEEgPT0gQiBlbmQKKysJICAgICAgZW5kLAorKyAgICBb e1VzZXIsIFNlcnZlciwgUmVzb3VyY2UsIFByaW9yaXR5LCBzdHJpbmdpemUoU3RhdHVzX3RleHQp fQorKyAgICAgfHwge3tVc2VyLCBSZXNvdXJjZSwgU3RhdHVzLCBTdGF0dXNfdGV4dH0sIFNlcnZl ciwgUHJpb3JpdHl9IDwtIFNlc3Npb25zNCwKKysJYXBwbHkoRnN0YXR1cywgW1N0YXR1cywgU3Rh dHVzX3JlcXVpcmVkXSldLgorKworK2Nvbm5lY3RlZF91c2Vyc19pbmZvKCkgLT4KKysgICAgVVNS SXMgPSBkaXJ0eV9nZXRfc2Vzc2lvbnNfbGlzdDIoKSwKKysgICAgQ3VycmVudFNlYyA9IGNhbGVu ZGFyOmRhdGV0aW1lX3RvX2dyZWdvcmlhbl9zZWNvbmRzKHtkYXRlKCksIHRpbWUoKX0pLAorKyAg ICBsaXN0czptYXAoCisrICAgICAgZnVuKFt7VSwgUywgUn0sIHtOb3csIFBpZH0sIFByaW9yaXR5 LCBJbmZvXSkgLT4KKysJICAgICAgQ29ubiA9IHByb3BsaXN0czpnZXRfdmFsdWUoY29ubiwgSW5m byksCisrCSAgICAgIHtJcCwgUG9ydH0gPSBwcm9wbGlzdHM6Z2V0X3ZhbHVlKGlwLCBJbmZvKSwK KysJICAgICAgSVBTID0gaW5ldF9wYXJzZTpudG9hKElwKSwKKysJICAgICAgTm9kZVMgPSBhdG9t X3RvX2xpc3Qobm9kZShQaWQpKSwKKysJICAgICAgVXB0aW1lID0gQ3VycmVudFNlYyAtIGNhbGVu ZGFyOmRhdGV0aW1lX3RvX2dyZWdvcmlhbl9zZWNvbmRzKAorKwkJCQkgICAgICBjYWxlbmRhcjpu b3dfdG9fbG9jYWxfdGltZShOb3cpKSwKKysJICAgICAge1tVLCAkQCwgUywgJC8sIFJdLCBhdG9t X3RvX2xpc3QoQ29ubiksIElQUywgUG9ydCwgUHJpb3JpdHksIE5vZGVTLCBVcHRpbWV9CisrICAg ICAgZW5kLAorKyAgICAgIFVTUklzKS4KKysKKytjb25uZWN0ZWRfdXNlcnNfdmhvc3QoSG9zdCkg LT4KKysgICAgVVNScyA9IGVqYWJiZXJkX3NtOmdldF92aF9zZXNzaW9uX2xpc3QoSG9zdCksCisr ICAgIFsgW1UsICRALCBTLCAkLywgUl0gfHwge1UsIFMsIFJ9IDwtIFVTUnNdLgorKworKyUlIENv ZGUgY29waWVkIGZyb20gZWphYmJlcmRfc20uZXJsIGFuZCBjdXN0b21pemVkCisrZGlydHlfZ2V0 X3Nlc3Npb25zX2xpc3QyKCkgLT4KKysgICAgbW5lc2lhOmRpcnR5X3NlbGVjdCgKKysgICAgICBz ZXNzaW9uLAorKyAgICAgIFt7I3Nlc3Npb257dXNyID0gJyQxJywgc2lkID0gJyQyJywgcHJpb3Jp dHkgPSAnJDMnLCBpbmZvID0gJyQ0JywgXyA9ICdfJ30sCisrCVtdLAorKwlbWyckMScsICckMics ICckMycsICckNCddXX1dKS4KKysKKyslJSBNYWtlIHN0cmluZyBtb3JlIHByaW50LWZyaWVuZGx5 Cisrc3RyaW5naXplKFN0cmluZykgLT4KKysgICAgJSUgUmVwbGFjZSBuZXdsaW5lIGNoYXJhY3Rl cnMgd2l0aCBvdGhlciBjb2RlCisrICAgIGVqYWJiZXJkX3JlZ2V4cDpncmVwbGFjZShTdHJpbmcs ICJcbiIsICJcXG4iKS4KKysKKytzZXRfcHJlc2VuY2UoVXNlciwgSG9zdCwgUmVzb3VyY2UsIFR5 cGUsIFNob3csIFN0YXR1cywgUHJpb3JpdHkpIC0+CisrICAgIFBpZCA9IGVqYWJiZXJkX3NtOmdl dF9zZXNzaW9uX3BpZChVc2VyLCBIb3N0LCBSZXNvdXJjZSksCisrICAgIFVTUiA9IFVzZXIgKysg IkAiICsrIEhvc3QgKysgIi8iICsrIFJlc291cmNlLAorKyAgICBVUyA9IFVzZXIgKysgIkAiICsr IEhvc3QsCisrICAgIE1lc3NhZ2UgPSB7cm91dGVfeG1sc3RyZWFtZWxlbWVudCwKKysJICAgICAg IHt4bWxlbGVtZW50LCAicHJlc2VuY2UiLAorKwkJW3siZnJvbSIsIFVTUn0sIHsidG8iLCBVU30s IHsidHlwZSIsIFR5cGV9XSwKKysJCVt7eG1sZWxlbWVudCwgInNob3ciLCBbXSwgW3t4bWxjZGF0 YSwgU2hvd31dfSwKKysJCSB7eG1sZWxlbWVudCwgInN0YXR1cyIsIFtdLCBbe3htbGNkYXRhLCBT dGF0dXN9XX0sCisrCQkge3htbGVsZW1lbnQsICJwcmlvcml0eSIsIFtdLCBbe3htbGNkYXRhLCBQ cmlvcml0eX1dfV19fSwKKysgICAgUGlkICEgTWVzc2FnZS4KKysKKyt1c2VyX3Nlc3Npb25zX2lu Zm8oVXNlciwgSG9zdCkgLT4KKysgICAgQ3VycmVudFNlYyA9IGNhbGVuZGFyOmRhdGV0aW1lX3Rv X2dyZWdvcmlhbl9zZWNvbmRzKHtkYXRlKCksIHRpbWUoKX0pLAorKyAgICBVUyA9IHtVc2VyLCBI b3N0fSwKKysgICAgU2Vzc2lvbnMgPSBjYXNlIGNhdGNoIG1uZXNpYTpkaXJ0eV9pbmRleF9yZWFk KHNlc3Npb24sIFVTLCAjc2Vzc2lvbi51cykgb2YKKysJCSAgIHsnRVhJVCcsIF9SZWFzb259IC0+ CisrCQkgICAgICAgW107CisrCQkgICBTcyAtPgorKwkJICAgICAgIFNzCisrCSAgICAgICBlbmQs CisrICAgIGxpc3RzOm1hcCgKKysgICAgICBmdW4oU2Vzc2lvbikgLT4KKysJICAgICAge19VLCBf UywgUmVzb3VyY2V9ID0gU2Vzc2lvbiNzZXNzaW9uLnVzciwKKysJICAgICAge05vdywgUGlkfSA9 IFNlc3Npb24jc2Vzc2lvbi5zaWQsCisrCSAgICAgIHtfVSwgX1Jlc291cmNlLCBTdGF0dXMsIFN0 YXR1c1RleHR9ID0gZWphYmJlcmRfYzJzOmdldF9wcmVzZW5jZShQaWQpLAorKwkgICAgICBJbmZv ID0gU2Vzc2lvbiNzZXNzaW9uLmluZm8sCisrCSAgICAgIFByaW9yaXR5ID0gU2Vzc2lvbiNzZXNz aW9uLnByaW9yaXR5LAorKwkgICAgICBDb25uID0gcHJvcGxpc3RzOmdldF92YWx1ZShjb25uLCBJ bmZvKSwKKysJICAgICAge0lwLCBQb3J0fSA9IHByb3BsaXN0czpnZXRfdmFsdWUoaXAsIEluZm8p LAorKwkgICAgICBJUFMgPSBpbmV0X3BhcnNlOm50b2EoSXApLAorKwkgICAgICBOb2RlUyA9IGF0 b21fdG9fbGlzdChub2RlKFBpZCkpLAorKwkgICAgICBVcHRpbWUgPSBDdXJyZW50U2VjIC0gY2Fs ZW5kYXI6ZGF0ZXRpbWVfdG9fZ3JlZ29yaWFuX3NlY29uZHMoCisrCQkJCSAgICAgIGNhbGVuZGFy Om5vd190b19sb2NhbF90aW1lKE5vdykpLAorKwkgICAgICB7YXRvbV90b19saXN0KENvbm4pLCBJ UFMsIFBvcnQsIFByaW9yaXR5LCBOb2RlUywgVXB0aW1lLCBTdGF0dXMsIFJlc291cmNlLCBTdGF0 dXNUZXh0fQorKyAgICAgIGVuZCwKKysgICAgICBTZXNzaW9ucykuCisrCisrCisrJSUlCisrJSUl IFZjYXJkCisrJSUlCisrCisrc2V0X25pY2tuYW1lKFVzZXIsIEhvc3QsIE5pY2tuYW1lKSAtPgor KyAgICBSID0gbW9kX3ZjYXJkOnByb2Nlc3Nfc21faXEoCisrCSAge2ppZCwgVXNlciwgSG9zdCwg IiIsIFVzZXIsIEhvc3QsICIifSwKKysJICB7amlkLCBVc2VyLCBIb3N0LCAiIiwgVXNlciwgSG9z dCwgIiJ9LAorKwkgIHtpcSwgIiIsIHNldCwgIiIsICJlbiIsCisrCSAgIHt4bWxlbGVtZW50LCAi dkNhcmQiLAorKwkgICAgW3sieG1sbnMiLCAidmNhcmQtdGVtcCJ9XSwgWworKwkJCQkJe3htbGVs ZW1lbnQsICJOSUNLTkFNRSIsIFtdLCBbe3htbGNkYXRhLCBOaWNrbmFtZX1dfQorKwkJCQkgICAg ICAgXQorKwkgICB9fSksCisrICAgIGNhc2UgUiBvZgorKwl7aXEsIFtdLCByZXN1bHQsIFtdLCBf TCwgW119IC0+CisrCSAgICBvazsKKysJXyAtPgorKwkgICAgZXJyb3IKKysgICAgZW5kLgorKwor K2dldF92Y2FyZChVc2VyLCBIb3N0LCBOYW1lKSAtPgorKyAgICBbUmVzIHwgX10gPSBnZXRfdmNh cmRfY29udGVudChVc2VyLCBIb3N0LCBbTmFtZV0pLAorKyAgICBSZXMuCisrCisrZ2V0X3ZjYXJk KFVzZXIsIEhvc3QsIE5hbWUsIFN1Ym5hbWUpIC0+CisrICAgIFtSZXMgfCBfXSA9IGdldF92Y2Fy ZF9jb250ZW50KFVzZXIsIEhvc3QsIFtOYW1lLCBTdWJuYW1lXSksCisrICAgIFJlcy4KKysKKytn ZXRfdmNhcmRfbXVsdGkoVXNlciwgSG9zdCwgTmFtZSwgU3VibmFtZSkgLT4KKysgICAgZ2V0X3Zj YXJkX2NvbnRlbnQoVXNlciwgSG9zdCwgW05hbWUsIFN1Ym5hbWVdKS4KKysKKytzZXRfdmNhcmQo VXNlciwgSG9zdCwgTmFtZSwgU29tZUNvbnRlbnQpIC0+CisrICAgIHNldF92Y2FyZF9jb250ZW50 KFVzZXIsIEhvc3QsIFtOYW1lXSwgU29tZUNvbnRlbnQpLgorKworK3NldF92Y2FyZChVc2VyLCBI b3N0LCBOYW1lLCBTdWJuYW1lLCBTb21lQ29udGVudCkgLT4KKysgICAgc2V0X3ZjYXJkX2NvbnRl bnQoVXNlciwgSG9zdCwgW05hbWUsIFN1Ym5hbWVdLCBTb21lQ29udGVudCkuCisrCisrCisrJSUK KyslJSBJbnRlcm5hbCB2Y2FyZAorKworK2dldF9tb2R1bGVfcmVzb3VyY2UoU2VydmVyKSAtPgor KyAgICBjYXNlIGdlbl9tb2Q6Z2V0X21vZHVsZV9vcHQoU2VydmVyLCA/TU9EVUxFLCBtb2R1bGVf cmVzb3VyY2UsIG5vbmUpIG9mCisrCW5vbmUgLT4gYXRvbV90b19saXN0KD9NT0RVTEUpOworKwlS IHdoZW4gaXNfbGlzdChSKSAtPiBSCisrICAgIGVuZC4KKysKKytnZXRfdmNhcmRfY29udGVudChV c2VyLCBTZXJ2ZXIsIERhdGEpIC0+CisrICAgIFt7XywgTW9kdWxlLCBGdW5jdGlvbiwgX09wdHN9 XSA9IGV0czpsb29rdXAoc21faXF0YWJsZSwgez9OU19WQ0FSRCwgU2VydmVyfSksCisrICAgIEpJ RCA9IGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCBnZXRfbW9kdWxlX3Jlc291cmNlKFNlcnZl cikpLAorKyAgICBJUSA9ICNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19WQ0FSRH0sCisrICAg IElRciA9IE1vZHVsZTpGdW5jdGlvbihKSUQsIEpJRCwgSVEpLAorKyAgICBjYXNlIElRciNpcS5z dWJfZWwgb2YKKysJW0ExXSAtPgorKwkgICAgY2FzZSBnZXRfdmNhcmQoRGF0YSwgQTEpIG9mCisr CQlbXSAtPiB0aHJvdyhlcnJvcl9ub192YWx1ZV9mb3VuZF9pbl92Y2FyZCk7CisrCQlFbGVtTGlz dCAtPiBbeG1sOmdldF90YWdfY2RhdGEoRWxlbSkgfHwgRWxlbSA8LSBFbGVtTGlzdF0KKysJICAg IGVuZDsKKysJW10gLT4KKysJICAgIHRocm93KGVycm9yX25vX3ZjYXJkX2ZvdW5kKQorKyAgICBl bmQuCisrCisrZ2V0X3ZjYXJkKFtEYXRhMSwgRGF0YTJdLCBBMSkgLT4KKysgICAgY2FzZSBnZXRf c3VidGFnKEExLCBEYXRhMSkgb2YKKysgICAgCWZhbHNlIC0+IGZhbHNlOworKwlBMkxpc3QgLT4g bGlzdHM6ZmxhdHRlbihbZ2V0X3ZjYXJkKFtEYXRhMl0sIEEyKSB8fCBBMiA8LSBBMkxpc3RdKQor KyAgICBlbmQ7CisrCisrZ2V0X3ZjYXJkKFtEYXRhXSwgQTEpIC0+CisrICAgIGdldF9zdWJ0YWco QTEsIERhdGEpLgorKworK2dldF9zdWJ0YWcoWG1sZWxlbWVudCwgTmFtZSkgLT4KKysgICAgY2Fz ZSBjb2RlOmVuc3VyZV9sb2FkZWQoZXhtcHBfeG1sKSBvZgorKwl7ZXJyb3IsIF99IC0+CisrCSAg ICBbZ2V0X3N1YnRhZ194bWwoWG1sZWxlbWVudCwgTmFtZSldOworKwl7bW9kdWxlLCBleG1wcF94 bWx9IC0+CisrCSAgICBnZXRfc3VidGFnX2V4bXBwKFhtbGVsZW1lbnQsIE5hbWUpCisrICAgIGVu ZC4KKysKKytnZXRfc3VidGFnX3htbChYbWxlbGVtZW50LCBOYW1lKSAtPgorKyAgICB4bWw6Z2V0 X3N1YnRhZyhYbWxlbGVtZW50LCBOYW1lKS4KKysKKytnZXRfc3VidGFnX2V4bXBwKFhtbGVsZW1l bnQsIE5hbWUpIC0+CisrICAgIFhtbGVsID0gZXhtcHBfeG1sOnhtbGVsZW1lbnRfdG9feG1sZWwo WG1sZWxlbWVudCksCisrICAgIFhtbGVsTGlzdCA9IGV4bXBwX3htbDpnZXRfZWxlbWVudHMoWG1s ZWwsIE5hbWUpLAorKyAgICBbZXhtcHBfeG1sOnhtbGVsX3RvX3htbGVsZW1lbnQoWG1sZWwyKSB8 fCBYbWxlbDIgPC0gWG1sZWxMaXN0XS4KKysKKytzZXRfdmNhcmRfY29udGVudChVc2VyLCBTZXJ2 ZXIsIERhdGEsIFNvbWVDb250ZW50KSAtPgorKyAgICBDb250ZW50TGlzdCA9IGNhc2UgU29tZUNv bnRlbnQgb2YKKysJW0NoYXIgfCBfXSB3aGVuIG5vdCBpc19saXN0KENoYXIpIC0+IFtTb21lQ29u dGVudF07CisrCVtDaGFyIHwgX10gd2hlbiBpc19saXN0KENoYXIpIC0+IFNvbWVDb250ZW50Cisr ICAgIGVuZCwKKysgICAgW3tfLCBNb2R1bGUsIEZ1bmN0aW9uLCBfT3B0c31dID0gZXRzOmxvb2t1 cChzbV9pcXRhYmxlLCB7P05TX1ZDQVJELCBTZXJ2ZXJ9KSwKKysgICAgSklEID0gamxpYjptYWtl X2ppZChVc2VyLCBTZXJ2ZXIsIGdldF9tb2R1bGVfcmVzb3VyY2UoU2VydmVyKSksCisrICAgIElR ID0gI2lxe3R5cGUgPSBnZXQsIHhtbG5zID0gP05TX1ZDQVJEfSwKKysgICAgSVFyID0gTW9kdWxl OkZ1bmN0aW9uKEpJRCwgSklELCBJUSksCisrCisrICAgICUlIEdldCBvbGQgdmNhcmQKKysgICAg QTQgPSBjYXNlIElRciNpcS5zdWJfZWwgb2YKKysJICAgICBbQTFdIC0+CisrCQkge18sIF8sIF8s IEEyfSA9IEExLAorKwkJIHVwZGF0ZV92Y2FyZF9lbHMoRGF0YSwgQ29udGVudExpc3QsIEEyKTsK KysJICAgICBbXSAtPgorKwkJIHVwZGF0ZV92Y2FyZF9lbHMoRGF0YSwgQ29udGVudExpc3QsIFtd KQorKwkgZW5kLAorKworKyAgICAlJSBCdWlsZCBuZXcgdmNhcmQKKysgICAgU3ViRWwgPSB7eG1s ZWxlbWVudCwgInZDYXJkIiwgW3sieG1sbnMiLCJ2Y2FyZC10ZW1wIn1dLCBBNH0sCisrICAgIElR MiA9ICNpcXt0eXBlPXNldCwgc3ViX2VsID0gU3ViRWx9LAorKworKyAgICBNb2R1bGU6RnVuY3Rp b24oSklELCBKSUQsIElRMiksCisrICAgIG9rLgorKworK3VwZGF0ZV92Y2FyZF9lbHMoRGF0YSwg Q29udGVudExpc3QsIEVsczEpIC0+CisrICAgIEVsczIgPSBsaXN0czprZXlzb3J0KDIsIEVsczEp LAorKyAgICBbRGF0YTEgfCBEYXRhMl0gPSBEYXRhLAorKyAgICBOZXdFbHMgPSBjYXNlIERhdGEy IG9mCisrCQlbXSAtPgorKwkJICAgIFt7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBbe3htbGNkYXRh LENvbnRlbnR9XX0gfHwgQ29udGVudCA8LSBDb250ZW50TGlzdF07CisrCQlbRDJdIC0+CisrCQkg ICAgT2xkRWwgPSBjYXNlIGxpc3RzOmtleXNlYXJjaChEYXRhMSwgMiwgRWxzMikgb2YKKysJCQkJ e3ZhbHVlLCBBfSAtPiBBOworKwkJCQlmYWxzZSAtPiB7eG1sZWxlbWVudCwgRGF0YTEsIFtdLCBb XX0KKysJCQkgICAgZW5kLAorKwkJICAgIHt4bWxlbGVtZW50LCBfLCBfLCBDb250ZW50T2xkMX0g PSBPbGRFbCwKKysJCSAgICBDb250ZW50MiA9IFt7eG1sZWxlbWVudCwgRDIsIFtdLCBbe3htbGNk YXRhLENvbnRlbnR9XX0gfHwgQ29udGVudCA8LSBDb250ZW50TGlzdF0sCisrCQkgICAgQ29udGVu dE9sZDIgPSBbQSB8fCB7XywgWCwgXywgX30gPSBBIDwtIENvbnRlbnRPbGQxLCBYLz1EMl0sCisr CQkgICAgQ29udGVudE9sZDMgPSBsaXN0czprZXlzb3J0KDIsIENvbnRlbnRPbGQyKSwKKysJCSAg ICBDb250ZW50TmV3ID0gbGlzdHM6a2V5bWVyZ2UoMiwgQ29udGVudDIsIENvbnRlbnRPbGQzKSwK KysJCSAgICBbe3htbGVsZW1lbnQsIERhdGExLCBbXSwgQ29udGVudE5ld31dCisrCSAgICBlbmQs CisrICAgIEVsczMgPSBsaXN0czprZXlkZWxldGUoRGF0YTEsIDIsIEVsczIpLAorKyAgICBsaXN0 czprZXltZXJnZSgyLCBOZXdFbHMsIEVsczMpLgorKworKworKyUlJQorKyUlJSBSb3N0ZXIKKysl JSUKKysKKythZGRfcm9zdGVyaXRlbShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBVc2VyLCBTZXJ2 ZXIsIE5pY2ssIEdyb3VwLCBTdWJzKSAtPgorKyAgICBjYXNlIGFkZF9yb3N0ZXJpdGVtKExvY2Fs VXNlciwgTG9jYWxTZXJ2ZXIsIFVzZXIsIFNlcnZlciwgTmljaywgR3JvdXAsIGxpc3RfdG9fYXRv bShTdWJzKSwgW10pIG9mCisrCXthdG9taWMsIG9rfSAtPgorKwkgICAgcHVzaF9yb3N0ZXJfaXRl bShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBVc2VyLCBTZXJ2ZXIsIHthZGQsIE5pY2ssIFN1YnMs IEdyb3VwfSksCisrCSAgICBvazsKKysJXyAtPgorKwkgICAgZXJyb3IKKysgICAgZW5kLgorKwor K2FkZF9yb3N0ZXJpdGVtKExVLCBMUywgVXNlciwgU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vic2Ny aXB0aW9uLCBYYXR0cnMpIC0+CisrICAgIHN1YnNjcmliZShMVSwgTFMsIFVzZXIsIFNlcnZlciwg TmljaywgR3JvdXAsIFN1YnNjcmlwdGlvbiwgWGF0dHJzKS4KKysKKytzdWJzY3JpYmUoTFUsIExT LCBVc2VyLCBTZXJ2ZXIsIE5pY2ssIEdyb3VwLCBTdWJzY3JpcHRpb24sIF9YYXR0cnMpIC0+Cisr ICAgIFN1YnNjcmlwdGlvblMgPSBjYXNlIGlzX2F0b20oU3Vic2NyaXB0aW9uKSBvZgorKwl0cnVl IC0+IGF0b21fdG9fbGlzdChTdWJzY3JpcHRpb24pOworKwlmYWxzZSAtPiBTdWJzY3JpcHRpb24K KysgICAgZW5kLAorKyAgICBJdGVtRWwgPSBidWlsZF9yb3N0ZXJfaXRlbShVc2VyLCBTZXJ2ZXIs IHthZGQsIE5pY2ssIFN1YnNjcmlwdGlvblMsIEdyb3VwfSksCisrICAgIHtvaywgTX0gPSBsb2Fk ZWRfbW9kdWxlKExTLFttb2Rfcm9zdGVyX29kYmMsbW9kX3Jvc3Rlcl0pLAorKyAgICBNOnNldF9p dGVtcygKKysJTFUsIExTLAorKwl7eG1sZWxlbWVudCwicXVlcnkiLAorKyAgICAgICAgICAgIFt7 InhtbG5zIiwiamFiYmVyOmlxOnJvc3RlciJ9XSwKKysgICAgICAgICAgICBbSXRlbUVsXX0pLgor KworK2RlbGV0ZV9yb3N0ZXJpdGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFVzZXIsIFNlcnZl cikgLT4KKysgICAgY2FzZSB1bnN1YnNjcmliZShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBVc2Vy LCBTZXJ2ZXIpIG9mCisrCXthdG9taWMsIG9rfSAtPgorKwkgICAgcHVzaF9yb3N0ZXJfaXRlbShM b2NhbFVzZXIsIExvY2FsU2VydmVyLCBVc2VyLCBTZXJ2ZXIsIHJlbW92ZSksCisrCSAgICBvazsK KysJXyAgLT4KKysJICAgIGVycm9yCisrICAgIGVuZC4KKysKKyt1bnN1YnNjcmliZShMVSwgTFMs IFVzZXIsIFNlcnZlcikgLT4KKysgICAgSXRlbUVsID0gYnVpbGRfcm9zdGVyX2l0ZW0oVXNlciwg U2VydmVyLCByZW1vdmUpLAorKyAgICB7b2ssIE19ID0gbG9hZGVkX21vZHVsZShMUyxbbW9kX3Jv c3Rlcl9vZGJjLG1vZF9yb3N0ZXJdKSwKKysgICAgTTpzZXRfaXRlbXMoCisrCUxVLCBMUywKKysJ e3htbGVsZW1lbnQsInF1ZXJ5IiwKKysgICAgICAgICAgICBbeyJ4bWxucyIsImphYmJlcjppcTpy b3N0ZXIifV0sCisrICAgICAgICAgICAgW0l0ZW1FbF19KS4KKysKKytsb2FkZWRfbW9kdWxlKERv bWFpbixPcHRpb25zKSAtPgorKyAgICBMb2FkZWRNb2R1bGVzID0gZ2VuX21vZDpsb2FkZWRfbW9k dWxlcyhEb21haW4pLAorKyAgICBjYXNlIGxpc3RzOmZpbHRlcihmdW4oTW9kdWxlKSAtPgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RzOm1lbWJlcihNb2R1bGUsIExvYWRlZE1v ZHVsZXMpCisrICAgICAgICAgICAgICAgICAgICAgIGVuZCwgT3B0aW9ucykgb2YKKysgICAgICAg IFtNfF9dIC0+IHtvaywgTX07CisrICAgICAgICBbXSAtPiB7ZXJyb3Isbm90X2ZvdW5kfQorKyAg ICBlbmQuCisrCisrJSUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyslJSBHZXQgUm9z dGVyCisrJSUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytnZXRfcm9zdGVyKFVz ZXIsIFNlcnZlcikgLT4KKysgICAgSXRlbXMgPSBlamFiYmVyZF9ob29rczpydW5fZm9sZChyb3N0 ZXJfZ2V0LCBTZXJ2ZXIsIFtdLCBbe1VzZXIsIFNlcnZlcn1dKSwKKysgICAgbWFrZV9yb3N0ZXJf eG1scnBjKEl0ZW1zKS4KKysKKyslJSBOb3RlOiBpZiBhIGNvbnRhY3QgaXMgaW4gc2V2ZXJhbCBn cm91cHMsIHRoZSBjb250YWN0IGlzIHJldHVybmVkCisrJSUgc2V2ZXJhbCB0aW1lcywgZWFjaCBv bmUgaW4gYSBkaWZmZXJlbnQgZ3JvdXAuCisrbWFrZV9yb3N0ZXJfeG1scnBjKFJvc3RlcikgLT4K KysgICAgbGlzdHM6Zm9sZGwoCisrICAgICAgZnVuKEl0ZW0sIFJlcykgLT4KKysJICAgICAgSklE UyA9IGpsaWI6amlkX3RvX3N0cmluZyhJdGVtI3Jvc3Rlci5qaWQpLAorKwkgICAgICBOaWNrID0g SXRlbSNyb3N0ZXIubmFtZSwKKysJICAgICAgU3VicyA9IGF0b21fdG9fbGlzdChJdGVtI3Jvc3Rl ci5zdWJzY3JpcHRpb24pLAorKwkgICAgICBBc2sgPSBhdG9tX3RvX2xpc3QoSXRlbSNyb3N0ZXIu YXNrKSwKKysJICAgICAgR3JvdXBzID0gY2FzZSBJdGVtI3Jvc3Rlci5ncm91cHMgb2YKKysJCQkg ICBbXSAtPiBbIiJdOworKwkJCSAgIEdzIC0+IEdzCisrCQkgICAgICAgZW5kLAorKwkgICAgICBJ dGVtc1ggPSBbe0pJRFMsIE5pY2ssIFN1YnMsIEFzaywgR3JvdXB9CisrCQkJfHwgR3JvdXAgPC0g R3JvdXBzXSwKKysJICAgICAgSXRlbXNYICsrIFJlcworKyAgICAgIGVuZCwKKysgICAgICBbXSwK KysgICAgICBSb3N0ZXIpLgorKworKworKyUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyslJSBQdXNoIFJvc3RlciBmcm9tIGZpbGUKKyslJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrCisrcHVzaF9yb3N0ZXIoRmlsZSwgVXNlciwgU2VydmVyKSAtPgorKyAgICB7b2ssIFtS b3N0ZXJdfSA9IGZpbGU6Y29uc3VsdChGaWxlKSwKKysgICAgc3Vic2NyaWJlX3Jvc3Rlcih7VXNl ciwgU2VydmVyLCAiIiwgVXNlcn0sIFJvc3RlcikuCisrCisrcHVzaF9yb3N0ZXJfYWxsKEZpbGUp IC0+CisrICAgIHtvaywgW1Jvc3Rlcl19ID0gZmlsZTpjb25zdWx0KEZpbGUpLAorKyAgICBzdWJz Y3JpYmVfYWxsKFJvc3RlcikuCisrCisrc3Vic2NyaWJlX2FsbChSb3N0ZXIpIC0+CisrICAgIHN1 YnNjcmliZV9hbGwoUm9zdGVyLCBSb3N0ZXIpLgorK3N1YnNjcmliZV9hbGwoW10sIF8pIC0+Cisr ICAgIG9rOworK3N1YnNjcmliZV9hbGwoW1VzZXIxIHwgVXNlcnNdLCBSb3N0ZXIpIC0+CisrICAg IHN1YnNjcmliZV9yb3N0ZXIoVXNlcjEsIFJvc3RlciksCisrICAgIHN1YnNjcmliZV9hbGwoVXNl cnMsIFJvc3RlcikuCisrCisrc3Vic2NyaWJlX3Jvc3RlcihfLCBbXSkgLT4KKysgICAgb2s7Cisr JSUgRG8gbm90IHN1YnNjcmliZSBhIHVzZXIgdG8gaXRzZWxmCisrc3Vic2NyaWJlX3Jvc3Rlcih7 TmFtZSwgU2VydmVyLCBHcm91cCwgTmlja30sIFt7TmFtZSwgU2VydmVyLCBfLCBffSB8IFJvc3Rl cl0pIC0+CisrICAgIHN1YnNjcmliZV9yb3N0ZXIoe05hbWUsIFNlcnZlciwgR3JvdXAsIE5pY2t9 LCBSb3N0ZXIpOworKyUlIFN1YnNjcmliZSBOYW1lMiB0byBOYW1lMQorK3N1YnNjcmliZV9yb3N0 ZXIoe05hbWUxLCBTZXJ2ZXIxLCBHcm91cDEsIE5pY2sxfSwgW3tOYW1lMiwgU2VydmVyMiwgR3Jv dXAyLCBOaWNrMn0gfCBSb3N0ZXJdKSAtPgorKyAgICBzdWJzY3JpYmUoTmFtZTEsIFNlcnZlcjEs IE5hbWUyLCBTZXJ2ZXIyLCBOaWNrMiwgR3JvdXAyLCBib3RoLCBbXSksCisrICAgIHN1YnNjcmli ZV9yb3N0ZXIoe05hbWUxLCBTZXJ2ZXIxLCBHcm91cDEsIE5pY2sxfSwgUm9zdGVyKS4KKysKKytw dXNoX2FsbHRvYWxsKFMsIEcpIC0+CisrICAgIFVzZXJzID0gZWphYmJlcmRfYXV0aDpnZXRfdmhf cmVnaXN0ZXJlZF91c2VycyhTKSwKKysgICAgVXNlcnMyID0gYnVpbGRfbGlzdF91c2VycyhHLCBV c2VycywgW10pLAorKyAgICBzdWJzY3JpYmVfYWxsKFVzZXJzMiksCisrICAgIG9rLgorKworK2J1 aWxkX2xpc3RfdXNlcnMoX0dyb3VwLCBbXSwgUmVzKSAtPgorKyAgICBSZXM7CisrYnVpbGRfbGlz dF91c2VycyhHcm91cCwgW3tVc2VyLCBTZXJ2ZXJ9fFVzZXJzXSwgUmVzKSAtPgorKyAgICBidWls ZF9saXN0X3VzZXJzKEdyb3VwLCBVc2VycywgW3tVc2VyLCBTZXJ2ZXIsIEdyb3VwLCBVc2VyfXxS ZXNdKS4KKysKKyslJSBAc3BlYyhMVSwgTFMsIFUsIFMsIEFjdGlvbikgLT4gb2sKKyslJSAgICAg ICBBY3Rpb24gPSB7YWRkLCBOaWNrLCBTdWJzLCBHcm91cH0gfCByZW1vdmUKKyslJSBAZG9jIFB1 c2ggdG8gdGhlIHJvc3RlciBvZiBhY2NvdW50IExVQExTIHRoZSBjb250YWN0IFVAUy4KKyslJSBU aGUgc3BlY2lmaWMgYWN0aW9uIHRvIHBlcmZvcm0gaXMgZGVmaW5lZCBpbiBBY3Rpb24uCisrcHVz aF9yb3N0ZXJfaXRlbShMVSwgTFMsIFUsIFMsIEFjdGlvbikgLT4KKysgICAgbGlzdHM6Zm9yZWFj aChmdW4oUikgLT4KKysJCQkgIHB1c2hfcm9zdGVyX2l0ZW0oTFUsIExTLCBSLCBVLCBTLCBBY3Rp b24pCisrCQkgIGVuZCwgZWphYmJlcmRfc206Z2V0X3VzZXJfcmVzb3VyY2VzKExVLCBMUykpLgor KworK3B1c2hfcm9zdGVyX2l0ZW0oTFUsIExTLCBSLCBVLCBTLCBBY3Rpb24pIC0+CisrICAgIExK SUQgPSBqbGliOm1ha2VfamlkKExVLCBMUywgUiksCisrICAgIEJyb2FkY2FzdEVsID0gYnVpbGRf YnJvYWRjYXN0KFUsIFMsIEFjdGlvbiksCisrICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShMSklE LCBMSklELCBCcm9hZGNhc3RFbCksCisrICAgIEl0ZW0gPSBidWlsZF9yb3N0ZXJfaXRlbShVLCBT LCBBY3Rpb24pLAorKyAgICBSZXNJUSA9IGJ1aWxkX2lxX3Jvc3Rlcl9wdXNoKEl0ZW0pLAorKyAg ICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoTEpJRCwgTEpJRCwgUmVzSVEpLgorKworK2J1aWxkX3Jv c3Rlcl9pdGVtKFUsIFMsIHthZGQsIE5pY2ssIFN1YnMsIEdyb3VwfSkgLT4KKysgICAge3htbGVs ZW1lbnQsICJpdGVtIiwKKysgICAgIFt7ImppZCIsIGpsaWI6amlkX3RvX3N0cmluZyhqbGliOm1h a2VfamlkKFUsIFMsICIiKSl9LAorKyAgICAgIHsibmFtZSIsIE5pY2t9LAorKyAgICAgIHsic3Vi c2NyaXB0aW9uIiwgU3Vic31dLAorKyAgICAgW3t4bWxlbGVtZW50LCAiZ3JvdXAiLCBbXSwgW3t4 bWxjZGF0YSwgR3JvdXB9XX1dCisrICAgIH07CisrYnVpbGRfcm9zdGVyX2l0ZW0oVSwgUywgcmVt b3ZlKSAtPgorKyAgICB7eG1sZWxlbWVudCwgIml0ZW0iLAorKyAgICAgW3siamlkIiwgamxpYjpq aWRfdG9fc3RyaW5nKGpsaWI6bWFrZV9qaWQoVSwgUywgIiIpKX0sCisrICAgICAgeyJzdWJzY3Jp cHRpb24iLCAicmVtb3ZlIn1dLAorKyAgICAgW10KKysgICAgfS4KKysKKytidWlsZF9pcV9yb3N0 ZXJfcHVzaChJdGVtKSAtPgorKyAgICB7eG1sZWxlbWVudCwgImlxIiwKKysgICAgIFt7InR5cGUi LCAic2V0In0sIHsiaWQiLCAicHVzaCJ9XSwKKysgICAgIFt7eG1sZWxlbWVudCwgInF1ZXJ5IiwK KysgICAgICAgW3sieG1sbnMiLCA/TlNfUk9TVEVSfV0sCisrICAgICAgIFtJdGVtXQorKyAgICAg IH0KKysgICAgIF0KKysgICAgfS4KKysKKytidWlsZF9icm9hZGNhc3QoVSwgUywge2FkZCwgX05p Y2ssIFN1YnMsIF9Hcm91cH0pIC0+CisrICAgIGJ1aWxkX2Jyb2FkY2FzdChVLCBTLCBsaXN0X3Rv X2F0b20oU3VicykpOworK2J1aWxkX2Jyb2FkY2FzdChVLCBTLCByZW1vdmUpIC0+CisrICAgIGJ1 aWxkX2Jyb2FkY2FzdChVLCBTLCBub25lKTsKKyslJSBAc3BlYyAoVTo6c3RyaW5nKCksIFM6OnN0 cmluZygpLCBTdWJzOjphdG9tKCkpIC0+IGFueSgpCisrJSUgU3VicyA9IGJvdGggfCBmcm9tIHwg dG8gfCBub25lCisrYnVpbGRfYnJvYWRjYXN0KFUsIFMsIFN1YnNBdG9tKSB3aGVuIGlzX2F0b20o U3Vic0F0b20pIC0+CisrICAgIHt4bWxlbGVtZW50LCAiYnJvYWRjYXN0IiwgW10sCisrICAgICBb e2l0ZW0sIHtVLCBTLCAiIn0sIFN1YnNBdG9tfV0KKysgICAgfS4KKysKKyslJSUKKyslJSUgTGFz dCBBY3Rpdml0eQorKyUlJQorKworK3NldF9sYXN0KFVzZXIsIFNlcnZlciwgVGltZXN0YW1wLCBT dGF0dXMpIC0+CisrICAgIE1vZCA9IGdldF9sYXN0YWN0aXZpdHlfbW9kdWxlKFNlcnZlciksCisr ICAgIE1vZDpzdG9yZV9sYXN0X2luZm8oVXNlciwgU2VydmVyLCBUaW1lc3RhbXAsIFN0YXR1cyku CisrCisrJSUlCisrJSUlIFByaXZhdGUgU3RvcmFnZQorKyUlJQorKworKyUlIEV4YW1wbGUgdXNh Z2U6CisrJSUgJCBlamFiYmVyZGN0bCBwcml2YXRlX3NldCBiYWRsb3AgbG9jYWxob3N0ICJcPGFh XCB4bWxucz1cJ2JiXCdcPkNsdXRoXDwvYWFcPiIKKyslJSAkIGVqYWJiZXJkY3RsIHByaXZhdGVf Z2V0IGJhZGxvcCBsb2NhbGhvc3QgYWEgYmIKKyslJSA8YWEgeG1sbnM9J2JiJz5DbHV0aDwvYWE+ CisrCisrcHJpdmF0ZV9nZXQoVXNlcm5hbWUsIEhvc3QsIEVsZW1lbnQsIE5zKSAtPgorKyAgICBG cm9tID0gamxpYjptYWtlX2ppZChVc2VybmFtZSwgSG9zdCwgIiIpLAorKyAgICBUbyA9IGpsaWI6 bWFrZV9qaWQoVXNlcm5hbWUsIEhvc3QsICIiKSwKKysgICAgSVEgPSB7aXEsICIiLCBnZXQsID9O U19QUklWQVRFLCAiIiwKKysJICB7eG1sZWxlbWVudCwicXVlcnkiLAorKwkgICBbeyJ4bWxucyIs P05TX1BSSVZBVEV9XSwKKysJICAgW3t4bWxlbGVtZW50LCBFbGVtZW50LCBbeyJ4bWxucyIsIE5z fV0sIFtdfV19fSwKKysgICAgUmVzSXEgPSBtb2RfcHJpdmF0ZTpwcm9jZXNzX3NtX2lxKEZyb20s IFRvLCBJUSksCisrICAgIFt7eG1sZWxlbWVudCwicXVlcnkiLAorKyAgICAgIFt7InhtbG5zIiwi amFiYmVyOmlxOnByaXZhdGUifV0sCisrICAgICAgW1N1YkVsXX1dID0gUmVzSXEjaXEuc3ViX2Vs LAorKyAgICB4bWw6ZWxlbWVudF90b19zdHJpbmcoU3ViRWwpLgorKworK3ByaXZhdGVfc2V0KFVz ZXJuYW1lLCBIb3N0LCBFbGVtZW50U3RyaW5nKSAtPgorKyAgICBjYXNlIHhtbF9zdHJlYW06cGFy c2VfZWxlbWVudChFbGVtZW50U3RyaW5nKSBvZgorKwl7ZXJyb3IsIEVycm9yfSAtPgorKwkgICAg aW86Zm9ybWF0KCJFcnJvciBmb3VuZCBwYXJzaW5nIHRoZSBlbGVtZW50On5uICB+cH5uRXJyb3I6 IH5wfm4iLAorKwkJICAgICAgW0VsZW1lbnRTdHJpbmcsIEVycm9yXSksCisrCSAgICBlcnJvcjsK KysJWG1sIC0+CisrCSAgICBwcml2YXRlX3NldDIoVXNlcm5hbWUsIEhvc3QsIFhtbCkKKysgICAg ZW5kLgorKworK3ByaXZhdGVfc2V0MihVc2VybmFtZSwgSG9zdCwgWG1sKSAtPgorKyAgICBGcm9t ID0gamxpYjptYWtlX2ppZChVc2VybmFtZSwgSG9zdCwgIiIpLAorKyAgICBUbyA9IGpsaWI6bWFr ZV9qaWQoVXNlcm5hbWUsIEhvc3QsICIiKSwKKysgICAgSVEgPSB7aXEsICIiLCBzZXQsID9OU19Q UklWQVRFLCAiIiwKKysJICB7eG1sZWxlbWVudCwicXVlcnkiLAorKwkgICBbeyJ4bWxucyIsP05T X1BSSVZBVEV9XSwKKysJICAgW1htbF19fSwKKysgICAgbW9kX3ByaXZhdGU6cHJvY2Vzc19zbV9p cShGcm9tLCBUbywgSVEpLAorKyAgICBvay4KKysKKyslJSUKKyslJSUgU2hhcmVkIFJvc3RlciBH cm91cHMKKyslJSUKKysKKytzcmdfY3JlYXRlKEdyb3VwLCBIb3N0LCBOYW1lLCBEZXNjcmlwdGlv biwgRGlzcGxheSkgLT4KKysgICAgRGlzcGxheUxpc3QgPSBjYXNlIERpc3BsYXkgb2YKKysJW10g LT4gW107CisrCV8gLT4gZWphYmJlcmRfcmVnZXhwOnNwbGl0KERpc3BsYXksICJcXFxcbiIpCisr ICAgIGVuZCwKKysgICAgT3B0cyA9IFt7bmFtZSwgTmFtZX0sCisrCSAgICB7ZGlzcGxheWVkX2dy b3VwcywgRGlzcGxheUxpc3R9LAorKwkgICAge2Rlc2NyaXB0aW9uLCBEZXNjcmlwdGlvbn1dLAor KyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpjcmVhdGVfZ3JvdXAoSG9zdCwg R3JvdXAsIE9wdHMpLAorKyAgICBvay4KKysKKytzcmdfZGVsZXRlKEdyb3VwLCBIb3N0KSAtPgor KyAgICB7YXRvbWljLCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpkZWxldGVfZ3JvdXAoSG9zdCwg R3JvdXApLAorKyAgICBvay4KKysKKytzcmdfbGlzdChIb3N0KSAtPgorKyAgICBsaXN0czpzb3J0 KG1vZF9zaGFyZWRfcm9zdGVyOmxpc3RfZ3JvdXBzKEhvc3QpKS4KKysKKytzcmdfZ2V0X2luZm8o R3JvdXAsIEhvc3QpIC0+CisrICAgIE9wdHMgPSBtb2Rfc2hhcmVkX3Jvc3RlcjpnZXRfZ3JvdXBf b3B0cyhIb3N0LEdyb3VwKSwKKysgICAgW3tpb19saWI6Zm9ybWF0KCJ+cCIsIFtUaXRsZV0pLAor KyAgICAgIGlvX2xpYjpmb3JtYXQoIn5wIiwgW1ZhbHVlXSl9IHx8IHtUaXRsZSwgVmFsdWV9IDwt IE9wdHNdLgorKworK3NyZ19nZXRfbWVtYmVycyhHcm91cCwgSG9zdCkgLT4KKysgICAgTWVtYmVy cyA9IG1vZF9zaGFyZWRfcm9zdGVyOmdldF9ncm91cF9leHBsaWNpdF91c2VycyhIb3N0LEdyb3Vw KSwKKysgICAgW2psaWI6amlkX3RvX3N0cmluZyhqbGliOm1ha2VfamlkKE1Vc2VyLCBNU2VydmVy LCAiIikpCisrICAgICB8fCB7TVVzZXIsIE1TZXJ2ZXJ9IDwtIE1lbWJlcnNdLgorKworK3NyZ191 c2VyX2FkZChVc2VyLCBIb3N0LCBHcm91cCwgR3JvdXBIb3N0KSAtPgorKyAgICB7YXRvbWljLCBv a30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjphZGRfdXNlcl90b19ncm91cChHcm91cEhvc3QsIHtVc2Vy LCBIb3N0fSwgR3JvdXApLAorKyAgICBvay4KKysKKytzcmdfdXNlcl9kZWwoVXNlciwgSG9zdCwg R3JvdXAsIEdyb3VwSG9zdCkgLT4KKysgICAge2F0b21pYywgb2t9ID0gbW9kX3NoYXJlZF9yb3N0 ZXI6cmVtb3ZlX3VzZXJfZnJvbV9ncm91cChHcm91cEhvc3QsIHtVc2VyLCBIb3N0fSwgR3JvdXAp LAorKyAgICBvay4KKysKKysKKyslJSUKKyslJSUgU3RhbnphCisrJSUlCisrCisrJSUgQGRvYyBT ZW5kIGEgY2hhdCBtZXNzYWdlIHRvIGEgSmFiYmVyIGFjY291bnQuCisrJSUgQHNwZWMgKEZyb206 OnN0cmluZygpLCBUbzo6c3RyaW5nKCksIEJvZHk6OnN0cmluZygpKSAtPiBvaworK3NlbmRfbWVz c2FnZV9jaGF0KEZyb20sIFRvLCBCb2R5KSAtPgorKyAgICBQYWNrZXQgPSBidWlsZF9wYWNrZXQo bWVzc2FnZV9jaGF0LCBbQm9keV0pLAorKyAgICBzZW5kX3BhY2tldF9hbGxfcmVzb3VyY2VzKEZy b20sIFRvLCBQYWNrZXQpLgorKworKyUlIEBkb2MgU2VuZCBhIGhlYWRsaW5lIG1lc3NhZ2UgdG8g YSBKYWJiZXIgYWNjb3VudC4KKyslJSBAc3BlYyAoRnJvbTo6c3RyaW5nKCksIFRvOjpzdHJpbmco KSwgU3ViamVjdDo6c3RyaW5nKCksIEJvZHk6OnN0cmluZygpKSAtPiBvaworK3NlbmRfbWVzc2Fn ZV9oZWFkbGluZShGcm9tLCBUbywgU3ViamVjdCwgQm9keSkgLT4KKysgICAgUGFja2V0ID0gYnVp bGRfcGFja2V0KG1lc3NhZ2VfaGVhZGxpbmUsIFtTdWJqZWN0LCBCb2R5XSksCisrICAgIHNlbmRf cGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbSwgVG8sIFBhY2tldCkuCisrCisrJSUgQGRvYyBTZW5k IGEgcGFja2V0IHRvIGEgSmFiYmVyIGFjY291bnQuCisrJSUgSWYgYSByZXNvdXJjZSB3YXMgc3Bl Y2lmaWVkIGluIHRoZSBKSUQsCisrJSUgdGhlIHBhY2tldCBpcyBzZW50IG9ubHkgdG8gdGhhdCBz cGVjaWZpYyByZXNvdXJjZS4KKyslJSBJZiBubyByZXNvdXJjZSB3YXMgc3BlY2lmaWVkIGluIHRo ZSBKSUQsCisrJSUgYW5kIHRoZSB1c2VyIGlzIHJlbW90ZSBvciBsb2NhbCBidXQgb2ZmbGluZSwK KyslJSB0aGUgcGFja2V0IGlzIHNlbnQgdG8gdGhlIGJhcmUgSklELgorKyUlIElmIHRoZSB1c2Vy IGlzIGxvY2FsIGFuZCBpcyBvbmxpbmUgaW4gc2V2ZXJhbCByZXNvdXJjZXMsCisrJSUgdGhlIHBh Y2tldCBpcyBzZW50IHRvIGFsbCBpdHMgcmVzb3VyY2VzLgorK3NlbmRfcGFja2V0X2FsbF9yZXNv dXJjZXMoRnJvbUpJRFN0cmluZywgVG9KSURTdHJpbmcsIFBhY2tldCkgLT4KKysgICAgRnJvbUpJ RCA9IGpsaWI6c3RyaW5nX3RvX2ppZChGcm9tSklEU3RyaW5nKSwKKysgICAgVG9KSUQgPSBqbGli OnN0cmluZ190b19qaWQoVG9KSURTdHJpbmcpLAorKyAgICBUb1VzZXIgPSBUb0pJRCNqaWQudXNl ciwKKysgICAgVG9TZXJ2ZXIgPSBUb0pJRCNqaWQuc2VydmVyLAorKyAgICBjYXNlIFRvSklEI2pp ZC5yZXNvdXJjZSBvZgorKwkiIiAtPgorKwkgICAgc2VuZF9wYWNrZXRfYWxsX3Jlc291cmNlcyhG cm9tSklELCBUb1VzZXIsIFRvU2VydmVyLCBQYWNrZXQpOworKwlSZXMgLT4KKysJICAgIHNlbmRf cGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1NlcnZlciwgUmVzLCBQYWNr ZXQpCisrICAgIGVuZC4KKysKKytzZW5kX3BhY2tldF9hbGxfcmVzb3VyY2VzKEZyb21KSUQsIFRv VXNlciwgVG9TZXJ2ZXIsIFBhY2tldCkgLT4KKysgICAgY2FzZSBlamFiYmVyZF9zbTpnZXRfdXNl cl9yZXNvdXJjZXMoVG9Vc2VyLCBUb1NlcnZlcikgb2YKKysJW10gLT4KKysJICAgIHNlbmRfcGFj a2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1NlcnZlciwgIiIsIFBhY2tldCk7 CisrCVRvUmVzb3VyY2VzIC0+CisrCSAgICBsaXN0czpmb3JlYWNoKAorKwkgICAgICBmdW4oVG9S ZXNvdXJjZSkgLT4KKysJCSAgICAgIHNlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwg VG9Vc2VyLCBUb1NlcnZlciwKKysJCQkJCQlUb1Jlc291cmNlLCBQYWNrZXQpCisrCSAgICAgIGVu ZCwKKysJICAgICAgVG9SZXNvdXJjZXMpCisrICAgIGVuZC4KKysKKytzZW5kX3BhY2tldF9hbGxf cmVzb3VyY2VzKEZyb21KSUQsIFRvVSwgVG9TLCBUb1IsIFBhY2tldCkgLT4KKysgICAgVG9KSUQg PSBqbGliOm1ha2VfamlkKFRvVSwgVG9TLCBUb1IpLAorKyAgICBlamFiYmVyZF9yb3V0ZXI6cm91 dGUoRnJvbUpJRCwgVG9KSUQsIFBhY2tldCkuCisrCisrCisrYnVpbGRfcGFja2V0KG1lc3NhZ2Vf Y2hhdCwgW0JvZHldKSAtPgorKyAgICB7eG1sZWxlbWVudCwgIm1lc3NhZ2UiLAorKyAgICAgW3si dHlwZSIsICJjaGF0In0sIHsiaWQiLCByYW5kb21zOmdldF9zdHJpbmcoKX1dLAorKyAgICAgW3t4 bWxlbGVtZW50LCAiYm9keSIsIFtdLCBbe3htbGNkYXRhLCBCb2R5fV19XQorKyAgICB9OworK2J1 aWxkX3BhY2tldChtZXNzYWdlX2hlYWRsaW5lLCBbU3ViamVjdCwgQm9keV0pIC0+CisrICAgIHt4 bWxlbGVtZW50LCAibWVzc2FnZSIsCisrICAgICBbeyJ0eXBlIiwgImhlYWRsaW5lIn0sIHsiaWQi LCByYW5kb21zOmdldF9zdHJpbmcoKX1dLAorKyAgICAgW3t4bWxlbGVtZW50LCAic3ViamVjdCIs IFtdLCBbe3htbGNkYXRhLCBTdWJqZWN0fV19LAorKyAgICAgIHt4bWxlbGVtZW50LCAiYm9keSIs IFtdLCBbe3htbGNkYXRhLCBCb2R5fV19CisrICAgICBdCisrICAgIH0uCisrCisrc2VuZF9zdGFu emFfYzJzKFVzZXJuYW1lLCBIb3N0LCBSZXNvdXJjZSwgU3RhbnphKSAtPgorKyAgICBDMnNQaWQg PSBlamFiYmVyZF9zbTpnZXRfc2Vzc2lvbl9waWQoVXNlcm5hbWUsIEhvc3QsIFJlc291cmNlKSwK KysgICAgWG1sRWwgPSB4bWxfc3RyZWFtOnBhcnNlX2VsZW1lbnQoU3RhbnphKSwKKysgICAgcDFf ZnNtOnNlbmRfZXZlbnQoQzJzUGlkLCB7eG1sc3RyZWFtZWxlbWVudCwgWG1sRWx9KS4KKysKKytw cml2YWN5X3NldChVc2VybmFtZSwgSG9zdCwgUXVlcnlTKSAtPgorKyAgICBGcm9tID0gamxpYjpz dHJpbmdfdG9famlkKFVzZXJuYW1lICsrICJAIiArKyBIb3N0KSwKKysgICAgVG8gPSBqbGliOnN0 cmluZ190b19qaWQoSG9zdCksCisrICAgIFF1ZXJ5RWwgPSB4bWxfc3RyZWFtOnBhcnNlX2VsZW1l bnQoUXVlcnlTKSwKKysgICAgU3RhbnphRWwgPSB7eG1sZWxlbWVudCwgImlxIiwgW3sidHlwZSIs ICJzZXQifV0sIFtRdWVyeUVsXX0sCisrICAgIElRID0gamxpYjppcV9xdWVyeV9pbmZvKFN0YW56 YUVsKSwKKysgICAgZWphYmJlcmRfaG9va3M6cnVuX2ZvbGQoCisrCQkgICAgIHByaXZhY3lfaXFf c2V0LAorKwkJICAgICBIb3N0LAorKwkJICAgICB7ZXJyb3IsID9FUlJfRkVBVFVSRV9OT1RfSU1Q TEVNRU5URUR9LAorKwkJICAgICBbRnJvbSwgVG8sIElRXQorKwkJICAgICksCisrICAgIG9rLgor KworKyUlJQorKyUlJSBTdGF0cworKyUlJQorKworK3N0YXRzKE5hbWUpIC0+CisrICAgIGNhc2Ug TmFtZSBvZgorKwkidXB0aW1lc2Vjb25kcyIgLT4gdHJ1bmMoZWxlbWVudCgxLCBlcmxhbmc6c3Rh dGlzdGljcyh3YWxsX2Nsb2NrKSkvMTAwMCk7CisrCSJyZWdpc3RlcmVkdXNlcnMiIC0+IGxlbmd0 aChlamFiYmVyZF9hdXRoOmRpcnR5X2dldF9yZWdpc3RlcmVkX3VzZXJzKCkpOworKwkib25saW5l dXNlcnNub2RlIiAtPiBsZW5ndGgoZWphYmJlcmRfc206ZGlydHlfZ2V0X215X3Nlc3Npb25zX2xp c3QoKSk7CisrCSJvbmxpbmV1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX3NtOmRpcnR5X2dldF9z ZXNzaW9uc19saXN0KCkpCisrICAgIGVuZC4KKysKKytzdGF0cyhOYW1lLCBIb3N0KSAtPgorKyAg ICBjYXNlIE5hbWUgb2YKKysJInJlZ2lzdGVyZWR1c2VycyIgLT4gbGVuZ3RoKGVqYWJiZXJkX2F1 dGg6Z2V0X3ZoX3JlZ2lzdGVyZWRfdXNlcnMoSG9zdCkpOworKwkib25saW5ldXNlcnMiIC0+IGxl bmd0aChlamFiYmVyZF9zbTpnZXRfdmhfc2Vzc2lvbl9saXN0KEhvc3QpKQorKyAgICBlbmQuCisr CisrCisrCisrJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyUlIFB1cmdlIHJvc3Rl ciBpdGVtcworKyUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysKKytwcm9jZXNzX3Jv c3Rlcml0ZW1zKEFjdGlvblMsIFN1YnNTLCBBc2tzUywgVXNlcnNTLCBDb250YWN0c1MpIC0+Cisr ICAgIEFjdGlvbiA9IGNhc2UgQWN0aW9uUyBvZgorKwkJICJsaXN0IiAtPiBsaXN0OworKwkJICJk ZWxldGUiIC0+IGRlbGV0ZQorKwkgICAgIGVuZCwKKysKKysgICAgU3VicyA9IGxpc3RzOmZvbGRs KAorKwkgICAgIGZ1bihhbnksIF8pIC0+IFtub25lLCBmcm9tLCB0bywgYm90aF07CisrCQkoU3Vi LCBTdWJzKSAtPiBbU3ViIHwgU3Vic10KKysJICAgICBlbmQsCisrCSAgICAgW10sCisrCSAgICAg W2xpc3RfdG9fYXRvbShTKSB8fCBTIDwtIHN0cmluZzp0b2tlbnMoU3Vic1MsICI6IildCisrCSAg ICApLAorKworKyAgICBBc2tzID0gbGlzdHM6Zm9sZGwoCisrCSAgICAgZnVuKGFueSwgXykgLT4g W25vbmUsIG91dCwgaW5dOworKwkJKEFzaywgQXNrcykgLT4gW0FzayB8IEFza3NdCisrCSAgICAg ZW5kLAorKwkgICAgIFtdLAorKwkgICAgIFtsaXN0X3RvX2F0b20oUykgfHwgUyA8LSBzdHJpbmc6 dG9rZW5zKEFza3NTLCAiOiIpXQorKwkgICAgKSwKKysKKysgICAgVXNlcnMgPSBsaXN0czpmb2xk bCgKKysJICAgICAgZnVuKCJhbnkiLCBfKSAtPiBbIioiLCAiKkAqIl07CisrCQkgKFUsIFVzKSAt PiBbVSB8IFVzXQorKwkgICAgICBlbmQsCisrCSAgICAgIFtdLAorKwkgICAgICBbUyB8fCBTIDwt IHN0cmluZzp0b2tlbnMoVXNlcnNTLCAiOiIpXQorKwkgICAgICksCisrCisrICAgIENvbnRhY3Rz ID0gbGlzdHM6Zm9sZGwoCisrCQkgZnVuKCJhbnkiLCBfKSAtPiBbIioiLCAiKkAqIl07CisrCQkg ICAgKFUsIFVzKSAtPiBbVSB8IFVzXQorKwkJIGVuZCwKKysJCSBbXSwKKysJCSBbUyB8fCBTIDwt IHN0cmluZzp0b2tlbnMoQ29udGFjdHNTLCAiOiIpXQorKwkJKSwKKysKKysgICAgY2FzZSByb3N0 ZXJpdGVtX3B1cmdlKHtBY3Rpb24sIFN1YnMsIEFza3MsIFVzZXJzLCBDb250YWN0c30pIG9mCisr CXthdG9taWMsIG9rfSAtPgorKwkgICAgb2s7CisrCXtlcnJvciwgUmVhc29ufSAtPgorKwkgICAg aW86Zm9ybWF0KCJFcnJvciBwdXJnaW5nIHJvc3Rlcml0ZW1zOiB+cH5uIiwgW1JlYXNvbl0pLAor KwkgICAgZXJyb3I7CisrCXtiYWRycGMsIFJlYXNvbn0gLT4KKysJICAgIGlvOmZvcm1hdCgiQmFk UlBDIHB1cmdpbmcgcm9zdGVyaXRlbXM6IH5wfm4iLCBbUmVhc29uXSksCisrCSAgICBlcnJvcgor KyAgICBlbmQuCisrCisrJSUgQHNwZWMgKHtBY3Rpb246OmF0b20oKSwgU3Viczo6W2F0b20oKV0s IEFza3M6OlthdG9tKCldLCBVc2VyOjpzdHJpbmcoKSwgQ29udGFjdDo6c3RyaW5nKCl9KSAtPiB7 YXRvbWljLCBva30KKytyb3N0ZXJpdGVtX3B1cmdlKE9wdGlvbnMpIC0+CisrICAgIE51bV9yb3N0 ZXJpdGVtcyA9IG1uZXNpYTp0YWJsZV9pbmZvKHJvc3Rlciwgc2l6ZSksCisrICAgIGlvOmZvcm1h dCgiVGhlcmUgYXJlIH5wIHJvc3RlciBpdGVtcyBpbiB0b3RhbC5+biIsIFtOdW1fcm9zdGVyaXRl bXNdKSwKKysgICAgS2V5ID0gbW5lc2lhOmRpcnR5X2ZpcnN0KHJvc3RlciksCisrICAgIG9rID0g cmlwKEtleSwgT3B0aW9ucywgezAsIE51bV9yb3N0ZXJpdGVtcywgMCwgMH0pLAorKyAgICB7YXRv bWljLCBva30uCisrCisrcmlwKCckZW5kX29mX3RhYmxlJywgX09wdGlvbnMsIENvdW50ZXJzKSAt PgorKyAgICBwcmludF9wcm9ncmVzc19saW5lKENvdW50ZXJzKSwKKysgICAgb2s7CisrcmlwKEtl eSwgT3B0aW9ucywge1ByLCBOVCwgTlYsIE5EfSkgLT4KKysgICAgS2V5X25leHQgPSBtbmVzaWE6 ZGlydHlfbmV4dChyb3N0ZXIsIEtleSksCisrICAgIHtBY3Rpb24sIF8sIF8sIF8sIF99ID0gT3B0 aW9ucywKKysgICAgTkQyID0gY2FzZSBkZWNpZGVfcmlwKEtleSwgT3B0aW9ucykgb2YKKysJICAg ICAgdHJ1ZSAtPgorKwkJICBhcHBseV9hY3Rpb24oQWN0aW9uLCBLZXkpLAorKwkJICBORCsxOwor KwkgICAgICBmYWxzZSAtPgorKwkJICBORAorKwkgIGVuZCwKKysgICAgTlYyID0gTlYrMSwKKysg ICAgUHIyID0gcHJpbnRfcHJvZ3Jlc3NfbGluZSh7UHIsIE5ULCBOVjIsIE5EMn0pLAorKyAgICBy aXAoS2V5X25leHQsIE9wdGlvbnMsIHtQcjIsIE5ULCBOVjIsIE5EMn0pLgorKworK2FwcGx5X2Fj dGlvbihsaXN0LCBLZXkpIC0+CisrICAgIHtVc2VyLCBTZXJ2ZXIsIEpJRH0gPSBLZXksCisrICAg IHtSVXNlciwgUlNlcnZlciwgX30gPSBKSUQsCisrICAgIGlvOmZvcm1hdCgiTWF0Y2hlczogfnNA fnMgfnNAfnN+biIsIFtVc2VyLCBTZXJ2ZXIsIFJVc2VyLCBSU2VydmVyXSk7CisrYXBwbHlfYWN0 aW9uKGRlbGV0ZSwgS2V5KSAtPgorKyAgICBhcHBseV9hY3Rpb24obGlzdCwgS2V5KSwKKysgICAg bW5lc2lhOmRpcnR5X2RlbGV0ZShyb3N0ZXIsIEtleSkuCisrCisrcHJpbnRfcHJvZ3Jlc3NfbGlu ZSh7UHIsIE5ULCBOViwgTkR9KSAtPgorKyAgICBQcjIgPSB0cnVuYygoTlYvTlQpKjEwMCksCisr ICAgIGNhc2UgUHIgPT0gUHIyIG9mCisrCXRydWUgLT4KKysJICAgIG9rOworKwlmYWxzZSAtPgor KwkgICAgaW86Zm9ybWF0KCJQcm9ncmVzcyB+cCUgLSB2aXNpdGVkIH5wIC0gZGVsZXRlZCB+cH5u IiwgW1ByMiwgTlYsIE5EXSkKKysgICAgZW5kLAorKyAgICBQcjIuCisrCisrZGVjaWRlX3JpcChL ZXksIHtfQWN0aW9uLCBTdWJzLCBBc2tzLCBVc2VyLCBDb250YWN0fSkgLT4KKysgICAgY2FzZSBj YXRjaCBtbmVzaWE6ZGlydHlfcmVhZChyb3N0ZXIsIEtleSkgb2YKKysJW1JJXSAtPgorKwkgICAg bGlzdHM6bWVtYmVyKFJJI3Jvc3Rlci5zdWJzY3JpcHRpb24sIFN1YnMpCisrCQlhbmRhbHNvIGxp c3RzOm1lbWJlcihSSSNyb3N0ZXIuYXNrLCBBc2tzKQorKwkJYW5kYWxzbyBkZWNpZGVfcmlwX2pp ZChSSSNyb3N0ZXIudXMsIFVzZXIpCisrCQlhbmRhbHNvIGRlY2lkZV9yaXBfamlkKFJJI3Jvc3Rl ci5qaWQsIENvbnRhY3QpOworKwlfIC0+CisrCSAgICBmYWxzZQorKyAgICBlbmQuCisrCisrJSUg UmV0dXJucyB0cnVlIGlmIHRoZSBzZXJ2ZXIgb2YgdGhlIEpJRCBpcyBpbmNsdWRlZCBpbiB0aGUg c2VydmVycworK2RlY2lkZV9yaXBfamlkKHtVTmFtZSwgVVNlcnZlciwgX1VSZXNvdXJjZX0sIE1h dGNoX2xpc3QpIC0+CisrICAgIGRlY2lkZV9yaXBfamlkKHtVTmFtZSwgVVNlcnZlcn0sIE1hdGNo X2xpc3QpOworK2RlY2lkZV9yaXBfamlkKHtVTmFtZSwgVVNlcnZlcn0sIE1hdGNoX2xpc3QpIC0+ CisrICAgIGxpc3RzOmFueSgKKysgICAgICBmdW4oTWF0Y2hfc3RyaW5nKSAtPgorKwkgICAgICBN SklEID0gamxpYjpzdHJpbmdfdG9famlkKE1hdGNoX3N0cmluZyksCisrCSAgICAgIE1OYW1lID0g TUpJRCNqaWQubHVzZXIsCisrCSAgICAgIE1TZXJ2ZXIgPSBNSklEI2ppZC5sc2VydmVyLAorKwkg ICAgICBJc19zZXJ2ZXIgPSBpc19nbG9iX21hdGNoKFVTZXJ2ZXIsIE1TZXJ2ZXIpLAorKwkgICAg ICBjYXNlIE1OYW1lIG9mCisrCQkgIFtdIHdoZW4gVU5hbWUgPT0gW10gLT4KKysJCSAgICAgIElz X3NlcnZlcjsKKysJCSAgW10gLT4KKysJCSAgICAgIGZhbHNlOworKwkJICBfIC0+CisrCQkgICAg ICBJc19zZXJ2ZXIKKysJCQkgIGFuZGFsc28gaXNfZ2xvYl9tYXRjaChVTmFtZSwgTU5hbWUpCisr CSAgICAgIGVuZAorKyAgICAgIGVuZCwKKysgICAgICBNYXRjaF9saXN0KS4KKysKKyslJSBDb3Bp ZWQgZnJvbSBlamFiYmVyZC0yLjAuMC9zcmMvYWNsLmVybAorK2lzX3JlZ2V4cF9tYXRjaChTdHJp bmcsIFJlZ0V4cCkgLT4KKysgICAgY2FzZSBlamFiYmVyZF9yZWdleHA6cnVuKFN0cmluZywgUmVn RXhwKSBvZgorKwlub21hdGNoIC0+CisrCSAgICBmYWxzZTsKKysJbWF0Y2ggLT4KKysJICAgIHRy dWU7CisrCXtlcnJvciwgRXJyRGVzY30gLT4KKysJICAgIGlvOmZvcm1hdCgKKysJICAgICAgIldy b25nIHJlZ2V4cCB+cCBpbiBBQ0w6IH5wIiwKKysJICAgICAgW1JlZ0V4cCwgRXJyRGVzY10pLAor KwkgICAgZmFsc2UKKysgICAgZW5kLgorK2lzX2dsb2JfbWF0Y2goU3RyaW5nLCBbJCEgfCBHbG9i XSkgLT4KKysgICAgbm90IGlzX3JlZ2V4cF9tYXRjaChTdHJpbmcsIGVqYWJiZXJkX3JlZ2V4cDpz aF90b19hd2soR2xvYikpOworK2lzX2dsb2JfbWF0Y2goU3RyaW5nLCBHbG9iKSAtPgorKyAgICBp c19yZWdleHBfbWF0Y2goU3RyaW5nLCBlamFiYmVyZF9yZWdleHA6c2hfdG9fYXdrKEdsb2IpKS4K Ky0tIAorMS43LjEwLjQKKwoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAwMDQtRmVkb3JhLXNwZWNp ZmljLWNoYW5nZXMtdG8tZWphYmJlcmRjdGwucGF0Y2ggYi9lamFiYmVyZC0wMDA0LUZlZG9yYS1z cGVjaWZpYy1jaGFuZ2VzLXRvLWVqYWJiZXJkY3RsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjcxYjZmMGMKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC0wMDA0 LUZlZG9yYS1zcGVjaWZpYy1jaGFuZ2VzLXRvLWVqYWJiZXJkY3RsLnBhdGNoCkBAIC0wLDAgKzEs NDggQEAKK0Zyb20gMmMwMWIzOTFkY2ZkYzNjYjM0ZjU5ODRhMTBhMWJiYTNjYTM0MWMwMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFp bC5jb20+CitEYXRlOiBUdWUsIDE2IEZlYiAyMDEwIDE2OjMwOjA1ICswMzAwCitTdWJqZWN0OiBb UEFUQ0ggNC84XSBGZWRvcmEtc3BlY2lmaWMgY2hhbmdlcyB0byBlamFiYmVyZGN0bAorCitTaWdu ZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorLS0tCisgc3Jj L2VqYWJiZXJkY3RsLnRlbXBsYXRlIHwgICAgOCArKysrLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJl cmRjdGwudGVtcGxhdGUgYi9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKK2luZGV4IDA5NjBmOWEu LmMyMjQ3OGEgMTAwNjQ0CistLS0gYS9zcmMvZWphYmJlcmRjdGwudGVtcGxhdGUKKysrKyBiL3Ny Yy9lamFiYmVyZGN0bC50ZW1wbGF0ZQorQEAgLTksMTAgKzksMTAgQEAgRVJMX01BWF9FVFNfVEFC TEVTPTE0MDAKKyAKKyAjIGRlZmluZSBkZWZhdWx0IGVudmlyb25tZW50IHZhcmlhYmxlcworIE5P REU9ZWphYmJlcmQKKy1IT1NUPWxvY2FsaG9zdAorK0hPU1Q9YGhvc3RuYW1lIC1zIDI+L2Rldi9u dWxsIHx8IGVjaG8gImxvY2FsaG9zdCJgCisgRVJMQU5HX05PREU9JE5PREVAJEhPU1QKKyBFUkw9 QGVybEAKKy1JTlNUQUxMVVNFUj1AaW5zdGFsbHVzZXJACisrSU5TVEFMTFVTRVI9ZWphYmJlcmQK KyAKKyAjIHBhcnNlIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzCisgQVJHUz0KK0BAIC00Niw3ICs0 Niw3IEBAIGlmIFsgIiRMT0dTX0RJUiIgPSAiIiBdIDsgdGhlbgorICAgICBMT0dTX0RJUj1ATE9D QUxTVEFURURJUkAvbG9nL2VqYWJiZXJkCisgZmkKKyBpZiBbICIkU1BPT0xESVIiID0gIiIgXSA7 IHRoZW4KKy0gICAgU1BPT0xESVI9QExPQ0FMU1RBVEVESVJAL2xpYi9lamFiYmVyZAorKyAgICBT UE9PTERJUj1ATE9DQUxTVEFURURJUkAvbGliL2VqYWJiZXJkL3Nwb29sCisgZmkKKyBpZiBbICIk RUpBQkJFUkRfRE9DX1BBVEgiID0gIiIgXSA7IHRoZW4KKyAgICAgRUpBQkJFUkRfRE9DX1BBVEg9 QERPQ0RJUkAKK0BAIC02Miw3ICs2Miw3IEBAIEVKSUQ9YGlkIC1nICRJTlNUQUxMVVNFUmAKKyBF WEVDX0NNRD0iZmFsc2UiCisgZm9yIEdJRCBpbiAkR0lEUzsgZG8KKyAgICAgaWYgWyAkR0lEIC1l cSAwIF0gOyB0aGVuCistCUVYRUNfQ01EPSJzdSAke0lOU1RBTExVU0VSfSAtcCAtYyIKKysJRVhF Q19DTUQ9Ii9zYmluL3J1bnVzZXIgLXMgL2Jpbi9iYXNoIC1wIGVqYWJiZXJkIC1jIgorICAgICBm aQorIGRvbmUKKyBpZiBbICIkSUQiIC1lcSAiJEVKSUQiIF0gOyB0aGVuCistLSAKKzEuNy4xMC40 CisKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDA0LUludHJvZHVjaW5nLW1vZF9hZG1pbl9leHRy YS5wYXRjaCBiL2VqYWJiZXJkLTAwMDQtSW50cm9kdWNpbmctbW9kX2FkbWluX2V4dHJhLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGM2ZWVhLi4wMDAwMDAwCi0tLSBhL2Vq YWJiZXJkLTAwMDQtSW50cm9kdWNpbmctbW9kX2FkbWluX2V4dHJhLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTMxOCArMCwwIEBACi1Gcm9tIDM1MTcwZjg2YzAzMzYyNDI4NGE4YWI4NTM0NmE2 ZmMwYmZjOGVkNDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBCYWRsb3AgPGJhZGxv cEBwcm9jZXNzLW9uZS5uZXQ+Ci1EYXRlOiBUdWUsIDE2IEZlYiAyMDEwIDE2OjEyOjE3ICswMzAw Ci1TdWJqZWN0OiBbUEFUQ0ggMDQvMTBdIEludHJvZHVjaW5nIG1vZF9hZG1pbl9leHRyYQotCi1B ZGRzIHRoZSBtb2RfYWRtaW5fZXh0cmEgbW9kdWxlIHRvIGVqYWJiZXJkLgotVGhpcyBtb2R1bGUg ZXh0ZW5kcyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSBlamFiYmVyZGN0bAotYnkgYWRk aW5nIHNldmVyYWwgbmV3IGNvbW1hbmRzLgotCi1UaGUgY29kZSBpcyB0YWtlbiBmcm9tIHRoZSBQ cm9jZXNzT25lIHJlcG9zaXRvcnk6Ci1odHRwczovL2ZvcmdlLnByb2Nlc3Mtb25lLm5ldC9icm93 c2UvZWphYmJlcmQtbW9kdWxlcy9tb2RfYWRtaW5fZXh0cmEKLSh0cnVuaywgcmV2aXNpb24gOTc2 KS4KLS0tLQotIHNyYy9lamFiYmVyZC5hcHAgICAgICAgIHwgICAgMSArCi0gc3JjL21vZF9hZG1p bl9leHRyYS5lcmwgfCAxMjc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMjgwIGluc2VydGlvbnMoKykKLSBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL21vZF9hZG1pbl9leHRyYS5lcmwKLQotZGlmZiAtLWdpdCBhL3NyYy9l amFiYmVyZC5hcHAgYi9zcmMvZWphYmJlcmQuYXBwCi1pbmRleCAwNjdiOTI4Li44MWVkYzA5IDEw MDY0NAotLS0tIGEvc3JjL2VqYWJiZXJkLmFwcAotKysrIGIvc3JjL2VqYWJiZXJkLmFwcAotQEAg LTEwNiw2ICsxMDYsNyBAQAotIAkgICAgIG1vZF92Y2FyZF9sZGFwLAotIAkgICAgIG1vZF92Y2Fy ZF9vZGJjLAotIAkgICAgIG1vZF92ZXJzaW9uLAotKyAgICAgICAgICAgICBtb2RfYWRtaW5fZXh0 cmEsCi0gCSAgICAgbm9kZV9idWRkeSwKLSAJICAgICBub2RlX2NsdWIsCi0gCSAgICAgbm9kZV9k ZWZhdWx0LAotZGlmZiAtLWdpdCBhL3NyYy9tb2RfYWRtaW5fZXh0cmEuZXJsIGIvc3JjL21vZF9h ZG1pbl9leHRyYS5lcmwKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi45ZjNj YTE0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvbW9kX2FkbWluX2V4dHJhLmVybAotQEAgLTAs MCArMSwxMjc5IEBACi0rJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyUlJSBGaWxlICAgIDogbW9kX2FkbWluX2V4 dHJhLmVybAotKyUlJSBBdXRob3IgIDogQmFkbG9wIDxiYWRsb3BAcHJvY2Vzcy1vbmUubmV0Pgot KyUlJSBQdXJwb3NlIDogQ29udHJpYnV0ZWQgYWRtaW5pc3RyYXRpdmUgZnVuY3Rpb25zIGFuZCBj b21tYW5kcwotKyUlJSBDcmVhdGVkIDogMTAgQXVnIDIwMDggYnkgQmFkbG9wIDxiYWRsb3BAcHJv Y2Vzcy1vbmUubmV0PgotKyUlJQotKyUlJQotKyUlJSBlamFiYmVyZCwgQ29weXJpZ2h0IChDKSAy MDAyLTIwMDggICBQcm9jZXNzT25lCi0rJSUlCi0rJSUlIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSslJSUgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKLSslJSUg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlCi0rJSUlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCi0rJSUlCi0rJSUlIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyUlJSBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyUlJSBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotKyUl JSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rJSUlCi0rJSUlIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rJSUlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCi0rJSUlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwg U3VpdGUgMzMwLCBCb3N0b24sIE1BCi0rJSUlIDAyMTExLTEzMDcgVVNBCi0rJSUlCi0rJSUlLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKwotKy1tb2R1bGUobW9kX2FkbWluX2V4dHJhKS4KLSstYXV0aG9yKCdiYWRsb3BA cHJvY2Vzcy1vbmUubmV0JykuCi0rCi0rLWJlaGF2aW91cihnZW5fbW9kKS4KLSsKLSstZXhwb3J0 KFtzdGFydC8yLCBzdG9wLzEsCi0rCSAlJSBOb2RlCi0rCSBjb21waWxlLzEsCi0rCSBsb2FkX2Nv bmZpZy8xLAotKwkgZ2V0X2Nvb2tpZS8wLAotKwkgcmVtb3ZlX25vZGUvMSwKLSsJIGV4cG9ydDJv ZGJjLzIsCi0rCSAlJSBBY2NvdW50cwotKwkgc2V0X3Bhc3N3b3JkLzMsCi0rCSBjaGVja19wYXNz d29yZF9oYXNoLzQsCi0rCSBkZWxldGVfb2xkX3VzZXJzLzEsCi0rCSBkZWxldGVfb2xkX3VzZXJz X3Zob3N0LzIsCi0rCSBiYW5fYWNjb3VudC8zLAotKwkgbnVtX2FjdGl2ZV91c2Vycy8yLAotKwkg JSUgU2Vzc2lvbnMKLSsJIG51bV9yZXNvdXJjZXMvMiwKLSsJIHJlc291cmNlX251bS8zLAotKwkg a2lja19zZXNzaW9uLzQsCi0rCSBzdGF0dXNfbnVtLzIsIHN0YXR1c19udW0vMSwKLSsJIHN0YXR1 c19saXN0LzIsIHN0YXR1c19saXN0LzEsCi0rCSAlJSBWY2FyZAotKwkgc2V0X25pY2tuYW1lLzMs Ci0rCSBnZXRfdmNhcmQvMywKLSsJIGdldF92Y2FyZC80LAotKwkgc2V0X3ZjYXJkLzQsCi0rCSBz ZXRfdmNhcmQvNSwKLSsJICUlIFJvc3RlcgotKwkgYWRkX3Jvc3Rlcml0ZW0vNywKLSsJIGRlbGV0 ZV9yb3N0ZXJpdGVtLzQsCi0rCSBwcm9jZXNzX3Jvc3Rlcml0ZW1zLzUsCi0rCSBnZXRfcm9zdGVy LzIsCi0rCSBwdXNoX3Jvc3Rlci8zLAotKwkgcHVzaF9yb3N0ZXJfYWxsLzEsCi0rCSBwdXNoX2Fs bHRvYWxsLzIsCi0rCSAlJSBtb2Rfc2hhcmVkX3Jvc3RlcgotKwkgc3JnX2NyZWF0ZS81LAotKwkg c3JnX2RlbGV0ZS8yLAotKwkgc3JnX2xpc3QvMSwKLSsJIHNyZ19nZXRfaW5mby8yLAotKwkgc3Jn X2dldF9tZW1iZXJzLzIsCi0rCSBzcmdfdXNlcl9hZGQvNCwKLSsJIHNyZ191c2VyX2RlbC80LAot KwkgJSUgU3RhbnphCi0rCSBzZW5kX21lc3NhZ2VfaGVhZGxpbmUvNCwKLSsJIHNlbmRfbWVzc2Fn ZV9jaGF0LzMsCi0rCSAlJSBTdGF0cwotKwkgc3RhdHMvMSwgc3RhdHMvMgotKwldKS4KLSsKLSst aW5jbHVkZSgiZWphYmJlcmQuaHJsIikuCi0rLWluY2x1ZGUoImVqYWJiZXJkX2NvbW1hbmRzLmhy bCIpLgotKy1pbmNsdWRlKCJtb2Rfcm9zdGVyLmhybCIpLgotKy1pbmNsdWRlKCJqbGliLmhybCIp LgotKwotKyUlIENvcGllZCBmcm9tIGVqYWJiZXJkX3NtLmVybAotKy1yZWNvcmQoc2Vzc2lvbiwg e3NpZCwgdXNyLCB1cywgcHJpb3JpdHksIGluZm99KS4KLSsKLSsKLSslJSUKLSslJSUgZ2VuX21v ZAotKyUlJQotKwotK3N0YXJ0KF9Ib3N0LCBfT3B0cykgLT4KLSsgICAgZWphYmJlcmRfY29tbWFu ZHM6cmVnaXN0ZXJfY29tbWFuZHMoY29tbWFuZHMoKSkuCi0rCi0rc3RvcChfSG9zdCkgLT4KLSsg ICAgZWphYmJlcmRfY29tbWFuZHM6dW5yZWdpc3Rlcl9jb21tYW5kcyhjb21tYW5kcygpKS4KLSsK LSsKLSslJSUKLSslJSUgUmVnaXN0ZXIgY29tbWFuZHMKLSslJSUKLSsKLStjb21tYW5kcygpIC0+ Ci0rICAgIFZjYXJkMUZpZWxkc1N0cmluZyA9ICJTb21lIHZjYXJkIGZpZWxkIG5hbWVzIGluIGdl dC9zZXRfdmNhcmQgYXJlOlxuIgotKwkiIEZOCQktIEZ1bGwgTmFtZVxuIgotKwkiIE5JQ0tOQU1F CS0gTmlja25hbWVcbiIKLSsJIiBCREFZCQktIEJpcnRoZGF5XG4iCi0rCSIgVElUTEUJCS0gV29y azogUG9zaXRpb25cbiIsCi0rICAgICIgUk9MRQkJLSBXb3JrOiBSb2xlIiwKLSsKLSsgICAgVmNh cmQyRmllbGRzU3RyaW5nID0gIlNvbWUgdmNhcmQgZmllbGQgbmFtZXMgYW5kIHN1Ym5hbWVzIGlu IGdldC9zZXRfdmNhcmQyIGFyZTpcbiIKLSsJIiBOIEZBTUlMWQktIEZhbWlseSBuYW1lXG4iCi0r CSIgTiBHSVZFTgktIEdpdmVuIG5hbWVcbiIKLSsJIiBOIE1JRERMRQktIE1pZGRsZSBuYW1lXG4i Ci0rCSIgQURSIENUUlkJLSBBZGRyZXNzOiBDb3VudHJ5XG4iCi0rCSIgQURSIExPQ0FMSVRZCS0g QWRkcmVzczogQ2l0eVxuIgotKwkiIEVNQUlMIFVTRVJJRAktIEUtTWFpbCBBZGRyZXNzXG4iCi0r CSIgT1JHIE9SR05BTUUJLSBXb3JrOiBDb21wYW55XG4iCi0rCSIgT1JHIE9SR1VOSVQJLSBXb3Jr OiBEZXBhcnRtZW50IiwKLSsKLSsgICAgVmNhcmRYRVAgPSAiRm9yIGEgZnVsbCBsaXN0IG9mIHZD YXJkIGZpZWxkcyBjaGVjayBYRVAtMDA1NDogdmNhcmQtdGVtcCBhdCAiCi0rCSJodHRwOi8vd3d3 LnhtcHAub3JnL2V4dGVuc2lvbnMveGVwLTAwNTQuaHRtbCIsCi0rCi0rICAgIFsKLSsgICAgICNl amFiYmVyZF9jb21tYW5kc3tuYW1lID0gY29tcGlsZSwgdGFncyA9IFtlcmxhbmddLAotKwkJCWRl c2MgPSAiUmVjb21waWxlIGFuZCByZWxvYWQgRXJsYW5nIHNvdXJjZSBjb2RlIGZpbGUiLAotKwkJ CW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gY29tcGlsZSwKLSsJCQlhcmdzID0gW3tmaWxl LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJl cmRfY29tbWFuZHN7bmFtZSA9IGxvYWRfY29uZmlnLCB0YWdzID0gW3NlcnZlcl0sCi0rCQkJZGVz YyA9ICJMb2FkIGVqYWJiZXJkIGNvbmZpZ3VyYXRpb24gZmlsZSIsCi0rCQkJbW9kdWxlID0gP01P RFVMRSwgZnVuY3Rpb24gPSBsb2FkX2NvbmZpZywKLSsJCQlhcmdzID0gW3tmaWxlLCBzdHJpbmd9 XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFu ZHN7bmFtZSA9IGdldF9jb29raWUsIHRhZ3MgPSBbZXJsYW5nXSwKLSsJCQlkZXNjID0gIkdldCB0 aGUgRXJsYW5nIGNvb2tpZSBvZiB0aGlzIG5vZGUiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1 bmN0aW9uID0gZ2V0X2Nvb2tpZSwKLSsJCQlhcmdzID0gW10sCi0rCQkJcmVzdWx0ID0ge2Nvb2tp ZSwgc3RyaW5nfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHJlbW92ZV9ub2Rl LCB0YWdzID0gW2VybGFuZ10sCi0rCQkJZGVzYyA9ICJSZW1vdmUgYW4gZWphYmJlcmQgbm9kZSBm cm9tIE1uZXNpYSBjbHVzdGVyaW5nIGNvbmZpZyIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVu Y3Rpb24gPSByZW1vdmVfbm9kZSwKLSsJCQlhcmdzID0gW3tub2RlLCBzdHJpbmd9XSwKLSsJCQly ZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9 IGV4cG9ydDJvZGJjLCB0YWdzID0gW21uZXNpYV0sCi0rCQkJZGVzYyA9ICJFeHBvcnQgTW5lc2lh IHRhYmxlcyB0byBmaWxlcyBpbiBkaXJlY3RvcnkiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1 bmN0aW9uID0gZXhwb3J0Mm9kYmMsCi0rCQkJYXJncyA9IFt7aG9zdCwgc3RyaW5nfSwge3BhdGgs IHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsKLSsgICAgICNlamFi YmVyZF9jb21tYW5kc3tuYW1lID0gbnVtX2FjdGl2ZV91c2VycywgdGFncyA9IFthY2NvdW50cywg c3RhdHNdLAotKwkJCWRlc2MgPSAiR2V0IG51bWJlciBvZiB1c2VycyBhY3RpdmUgaW4gdGhlIGxh c3QgZGF5cyIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBudW1fYWN0aXZlX3Vz ZXJzLAotKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30sIHtkYXlzLCBpbnRlZ2VyfV0sCi0rCQkJ cmVzdWx0ID0ge3VzZXJzLCBpbnRlZ2VyfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFt ZSA9IGRlbGV0ZV9vbGRfdXNlcnMsIHRhZ3MgPSBbYWNjb3VudHMsIHB1cmdlXSwKLSsJCQlkZXNj ID0gIkRlbGV0ZSB1c2VycyB0aGF0IGRpZG4ndCBsb2cgaW4gbGFzdCBkYXlzIiwKLSsJCQltb2R1 bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGRlbGV0ZV9vbGRfdXNlcnMsCi0rCQkJYXJncyA9IFt7 ZGF5cywgaW50ZWdlcn1dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc3R1cGxlfX0sCi0rICAgICAj ZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGRlbGV0ZV9vbGRfdXNlcnNfdmhvc3QsIHRhZ3MgPSBb YWNjb3VudHMsIHB1cmdlXSwKLSsJCQlkZXNjID0gIkRlbGV0ZSB1c2VycyB0aGF0IGRpZG4ndCBs b2cgaW4gbGFzdCBkYXlzIGluIHZob3N0IiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlv biA9IGRlbGV0ZV9vbGRfdXNlcnNfdmhvc3QsCi0rCQkJYXJncyA9IFt7aG9zdCwgc3RyaW5nfSwg e2RheXMsIGludGVnZXJ9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXN0dXBsZX19LAotKwotKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGVja19hY2NvdW50LCB0YWdzID0gW2FjY291 bnRzXSwKLSsJCQlkZXNjID0gIkNoZWNrIGlmIGFuIGFjb3VudCBleGlzdHMgb3Igbm90IiwKLSsJ CQltb2R1bGUgPSBlamFiYmVyZF9hdXRoLCBmdW5jdGlvbiA9IGlzX3VzZXJfZXhpc3RzLAotKwkJ CWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7 cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGNoZWNrX3Bh c3N3b3JkLCB0YWdzID0gW2FjY291bnRzXSwKLSsJCQlkZXNjID0gIkNoZWNrIGlmIGEgcGFzc3dv cmQgaXMgY29ycmVjdCIsCi0rCQkJbW9kdWxlID0gZWphYmJlcmRfYXV0aCwgZnVuY3Rpb24gPSBj aGVja19wYXNzd29yZCwKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5n fSwge3Bhc3N3b3JkLCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0r ICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGNoZWNrX3Bhc3N3b3JkX2hhc2gsIHRhZ3Mg PSBbYWNjb3VudHNdLAotKwkJCWRlc2MgPSAiQ2hlY2sgaWYgdGhlIHBhc3N3b3JkIGhhc2ggaXMg Y29ycmVjdCIsCi0rCQkJbG9uZ2Rlc2MgPSAiQWxsb3dlZCBoYXNoIG1ldGhvZHM6IG1kNSwgc2hh LiIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBjaGVja19wYXNzd29yZF9oYXNo LAotKwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7cGFzc3dvcmRo YXNoLCBzdHJpbmd9LCB7aGFzaG1ldGhvZCwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3Jlcywg cmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBjaGFuZ2VfcGFzc3dv cmQsIHRhZ3MgPSBbYWNjb3VudHNdLAotKwkJCWRlc2MgPSAiQ2hhbmdlIHRoZSBwYXNzd29yZCBv ZiBhbiBhY2NvdW50IiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNldF9wYXNz d29yZCwKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5nfSwge25ld3Bh c3MsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsgICAgICNlamFi YmVyZF9jb21tYW5kc3tuYW1lID0gYmFuX2FjY291bnQsIHRhZ3MgPSBbYWNjb3VudHNdLAotKwkJ CWRlc2MgPSAiQmFuIGFuIGFjY291bnQ6IGtpY2sgc2Vzc2lvbnMgYW5kIHNldCByYW5kb20gcGFz c3dvcmQiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gYmFuX2FjY291bnQsCi0r CQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtyZWFzb24sIHN0cmlu Z31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsKLSsgICAgICNlamFiYmVyZF9j b21tYW5kc3tuYW1lID0gbnVtX3Jlc291cmNlcywgdGFncyA9IFtzZXNzaW9uXSwKLSsJCQlkZXNj ID0gIkdldCB0aGUgbnVtYmVyIG9mIHJlc291cmNlcyBvZiBhIHVzZXIiLAotKwkJCW1vZHVsZSA9 ID9NT0RVTEUsIGZ1bmN0aW9uID0gbnVtX3Jlc291cmNlcywKLSsJCQlhcmdzID0gW3t1c2VyLCBz dHJpbmd9LCB7aG9zdCwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3Jlc291cmNlcywgaW50ZWdl cn19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSByZXNvdXJjZV9udW0sIHRhZ3Mg PSBbc2Vzc2lvbl0sCi0rCQkJZGVzYyA9ICJSZXNvdXJjZSBzdHJpbmcgb2YgYSBzZXNzaW9uIG51 bWJlciIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSByZXNvdXJjZV9udW0sCi0r CQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtudW0sIGludGVnZXJ9 XSwKLSsJCQlyZXN1bHQgPSB7cmVzb3VyY2UsIHN0cmluZ319LAotKyAgICAgI2VqYWJiZXJkX2Nv bW1hbmRze25hbWUgPSBraWNrX3Nlc3Npb24sIHRhZ3MgPSBbc2Vzc2lvbl0sCi0rCQkJZGVzYyA9 ICJLaWNrIGEgdXNlciBzZXNzaW9uIiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9 IGtpY2tfc2Vzc2lvbiwKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwgc3RyaW5n fSwge3Jlc291cmNlLCBzdHJpbmd9LCB7cmVhc29uLCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7 cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHN0YXR1c19u dW1faG9zdCwgdGFncyA9IFtzZXNzaW9uLCBzdGF0c10sCi0rCQkJZGVzYyA9ICJOdW1iZXIgb2Yg bG9nZ2VkIHVzZXJzIHdpdGggdGhpcyBzdGF0dXMgaW4gaG9zdCIsCi0rCQkJbW9kdWxlID0gP01P RFVMRSwgZnVuY3Rpb24gPSBzdGF0dXNfbnVtLAotKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ30s IHtzdGF0dXMsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHt1c2VycywgaW50ZWdlcn19LAotKyAg ICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzdGF0dXNfbnVtLCB0YWdzID0gW3Nlc3Npb24s IHN0YXRzXSwKLSsJCQlkZXNjID0gIk51bWJlciBvZiBsb2dnZWQgdXNlcnMgd2l0aCB0aGlzIHN0 YXR1cyIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzdGF0dXNfbnVtLAotKwkJ CWFyZ3MgPSBbe3N0YXR1cywgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3VzZXJzLCBpbnRlZ2Vy fX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHN0YXR1c19saXN0X2hvc3QsIHRh Z3MgPSBbc2Vzc2lvbl0sCi0rCQkJZGVzYyA9ICJMaXN0IG9mIHVzZXJzIGxvZ2dlZCBpbiBob3N0 IHdpdGggdGhlaXIgc3RhdHVzZXMiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0g c3RhdHVzX2xpc3QsCi0rCQkJYXJncyA9IFt7aG9zdCwgc3RyaW5nfSwge3N0YXR1cywgc3RyaW5n fV0sCi0rCQkJcmVzdWx0ID0ge3VzZXJzLCB7bGlzdCwKLSsJCQkJCSAge3VzZXJzdGF0dXMsIHt0 dXBsZSwgWwotKwkJCQkJCQkJe3VzZXIsIHN0cmluZ30sCi0rCQkJCQkJCQl7aG9zdCwgc3RyaW5n fSwKLSsJCQkJCQkJCXtyZXNvdXJjZSwgc3RyaW5nfSwKLSsJCQkJCQkJCXtwcmlvcml0eSwgaW50 ZWdlcn0sCi0rCQkJCQkJCQl7c3RhdHVzLCBzdHJpbmd9Ci0rCQkJCQkJCSAgICAgICBdfX0KLSsJ CQkJCSB9fX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHN0YXR1c19saXN0LCB0 YWdzID0gW3Nlc3Npb25dLAotKwkJCWRlc2MgPSAiTGlzdCBvZiBsb2dnZWQgdXNlcnMgd2l0aCB0 aGlzIHN0YXR1cyIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzdGF0dXNfbGlz dCwKLSsJCQlhcmdzID0gW3tzdGF0dXMsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHt1c2Vycywg e2xpc3QsCi0rCQkJCQkgIHt1c2Vyc3RhdHVzLCB7dHVwbGUsIFsKLSsJCQkJCQkJCXt1c2VyLCBz dHJpbmd9LAotKwkJCQkJCQkJe2hvc3QsIHN0cmluZ30sCi0rCQkJCQkJCQl7cmVzb3VyY2UsIHN0 cmluZ30sCi0rCQkJCQkJCQl7cHJpb3JpdHksIGludGVnZXJ9LAotKwkJCQkJCQkJe3N0YXR1cywg c3RyaW5nfQotKwkJCQkJCQkgICAgICAgXX19Ci0rCQkJCQkgfX19LAotKwotKyAgICAgI2VqYWJi ZXJkX2NvbW1hbmRze25hbWUgPSBzZXRfbmlja25hbWUsIHRhZ3MgPSBbdmNhcmRdLAotKwkJCWRl c2MgPSAiU2V0IG5pY2tuYW1lIGluIGEgdXNlcidzIHZjYXJkIiwKLSsJCQltb2R1bGUgPSA/TU9E VUxFLCBmdW5jdGlvbiA9IHNldF9uaWNrbmFtZSwKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9 LCB7aG9zdCwgc3RyaW5nfSwge25pY2tuYW1lLCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVz LCByZXNjb2RlfX0sCi0rCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IGdldF92Y2Fy ZCwgdGFncyA9IFt2Y2FyZF0sCi0rCQkJZGVzYyA9ICJHZXQgY29udGVudCBmcm9tIGEgdkNhcmQg ZmllbGQiLAotKwkJCWxvbmdkZXNjID0gVmNhcmQxRmllbGRzU3RyaW5nICsrICJcbiIgKysgVmNh cmQyRmllbGRzU3RyaW5nICsrICJcblxuIiArKyBWY2FyZFhFUCwKLSsJCQltb2R1bGUgPSA/TU9E VUxFLCBmdW5jdGlvbiA9IGdldF92Y2FyZCwKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7 aG9zdCwgc3RyaW5nfSwge25hbWUsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtjb250ZW50LCBz dHJpbmd9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gZ2V0X3ZjYXJkMiwgdGFn cyA9IFt2Y2FyZF0sCi0rCQkJZGVzYyA9ICJHZXQgY29udGVudCBmcm9tIGEgdkNhcmQgZmllbGQi LAotKwkJCWxvbmdkZXNjID0gVmNhcmQyRmllbGRzU3RyaW5nICsrICJcblxuIiArKyBWY2FyZDFG aWVsZHNTdHJpbmcgKysgIlxuIiArKyBWY2FyZFhFUCwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBm dW5jdGlvbiA9IGdldF92Y2FyZCwKLSsJCQlhcmdzID0gW3t1c2VyLCBzdHJpbmd9LCB7aG9zdCwg c3RyaW5nfSwge25hbWUsIHN0cmluZ30sIHtzdWJuYW1lLCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQg PSB7Y29udGVudCwgc3RyaW5nfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNl dF92Y2FyZCwgdGFncyA9IFt2Y2FyZF0sCi0rCQkJZGVzYyA9ICJTZXQgY29udGVudCBpbiBhIHZD YXJkIGZpZWxkIiwKLSsJCQlsb25nZGVzYyA9IFZjYXJkMUZpZWxkc1N0cmluZyArKyAiXG4iICsr IFZjYXJkMkZpZWxkc1N0cmluZyArKyAiXG5cbiIgKysgVmNhcmRYRVAsCi0rCQkJbW9kdWxlID0g P01PRFVMRSwgZnVuY3Rpb24gPSBzZXRfdmNhcmQsCi0rCQkJYXJncyA9IFt7dXNlciwgc3RyaW5n fSwge2hvc3QsIHN0cmluZ30sIHtuYW1lLCBzdHJpbmd9LCB7Y29udGVudCwgc3RyaW5nfV0sCi0r CQkJcmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25h bWUgPSBzZXRfdmNhcmQyLCB0YWdzID0gW3ZjYXJkXSwKLSsJCQlkZXNjID0gIlNldCBjb250ZW50 IGluIGEgdkNhcmQgc3ViZmllbGQiLAotKwkJCWxvbmdkZXNjID0gVmNhcmQyRmllbGRzU3RyaW5n ICsrICJcblxuIiArKyBWY2FyZDFGaWVsZHNTdHJpbmcgKysgIlxuIiArKyBWY2FyZFhFUCwKLSsJ CQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IHNldF92Y2FyZDIsCi0rCQkJYXJncyA9IFt7 dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ30sIHtuYW1lLCBzdHJpbmd9LCB7c3VibmFtZSwg c3RyaW5nfSwge2NvbnRlbnQsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9 fSwKLSsKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gYWRkX3Jvc3Rlcml0ZW0sIHRh Z3MgPSBbcm9zdGVyXSwKLSsJCQlkZXNjID0gIkFkZCBhbiBpdGVtIHRvIGEgdXNlcidzIHJvc3Rl ciIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBhZGRfcm9zdGVyaXRlbSwKLSsJ CQlhcmdzID0gW3tsb2NhbHVzZXIsIHN0cmluZ30sIHtsb2NhbHNlcnZlciwgc3RyaW5nfSwKLSsJ CQkJe3VzZXIsIHN0cmluZ30sIHtzZXJ2ZXIsIHN0cmluZ30sCi0rCQkJCXtuaWNrLCBzdHJpbmd9 LCB7Z3JvdXAsIHN0cmluZ30sCi0rCQkJCXtzdWJzLCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7 cmVzLCByZXNjb2RlfX0sCi0rICAgICAlJXsiIiwgInN1YnM9IG5vbmUsIGZyb20sIHRvIG9yIGJv dGgifSwKLSsgICAgICUleyIiLCAiZXhhbXBsZTogYWRkLXJvc3RlciBwZXRlciBsb2NhbGhvc3Qg bWlrZSBzZXJ2ZXIuY29tIE1pS2UgRW1wbG95ZWVzIGJvdGgifSwKLSsgICAgICUleyIiLCAid2ls bCBhZGQgbWlrZUBzZXJ2ZXIuY29tIHRvIHBldGVyQGxvY2FsaG9zdCByb3N0ZXIifSwKLSsgICAg ICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gZGVsZXRlX3Jvc3Rlcml0ZW0sIHRhZ3MgPSBbcm9z dGVyXSwKLSsJCQlkZXNjID0gIkRlbGV0ZSBhbiBpdGVtIGZyb20gYSB1c2VyJ3Mgcm9zdGVyIiwK LSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlvbiA9IGRlbGV0ZV9yb3N0ZXJpdGVtLAotKwkJ CWFyZ3MgPSBbe2xvY2FsdXNlciwgc3RyaW5nfSwge2xvY2Fsc2VydmVyLCBzdHJpbmd9LAotKwkJ CQl7dXNlciwgc3RyaW5nfSwge3NlcnZlciwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3Jlcywg cmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBwcm9jZXNzX3Jvc3Rl cml0ZW1zLCB0YWdzID0gW3Jvc3Rlcl0sCi0rCQkJZGVzYyA9ICJMaXN0IG9yIGRlbGV0ZSByb3N0 ZXJpdGVtcyB0aGF0IG1hdGNoIGZpbHRlcmluZyBvcHRpb25zIiwKLSsJCQlsb25nZGVzYyA9ICJF eHBsYW5hdGlvbiBvZiBlYWNoIGFyZ3VtZW50OlxuIgotKwkJCSIgLSBhY3Rpb246IHdoYXQgdG8g ZG8gd2l0aCBlYWNoIHJvc3Rlcml0ZW0gdGhhdCAiCi0rCQkJIm1hdGNoZXMgYWxsIHRoZSBmaWx0 ZXJpbmcgb3B0aW9uc1xuIgotKwkJCSIgLSBzdWJzOiBzdWJzY3JpcHRpb24gdHlwZVxuIgotKwkJ CSIgLSBhc2tzOiBwZW5kaW5nIHN1YnNjcmlwdGlvblxuIgotKwkJCSIgLSB1c2VyczogdGhlIEpJ RHMgb2YgdGhlIGxvY2FsIHVzZXJcbiIKLSsJCQkiIC0gY29udGFjdHM6IHRoZSBKSURzIG9mIHRo ZSBjb250YWN0IGluIHRoZSByb3N0ZXJcbiIKLSsJCQkiXG4iCi0rCQkJIkFsbG93ZWQgdmFsdWVz IGluIHRoZSBhcmd1bWVudHM6XG4iCi0rCQkJIiAgQUNUSU9OID0gbGlzdCB8IGRlbGV0ZVxuIgot KwkJCSIgIFNVQlMgPSBTVUJbOlNVQl0qIHwgYW55XG4iCi0rCQkJIiAgU1VCID0gbm9uZSB8IGZy b20gfCB0byB8IGJvdGhcbiIKLSsJCQkiICBBU0tTID0gQVNLWzpBU0tdKiB8IGFueVxuIgotKwkJ CSIgIEFTSyA9IG5vbmUgfCBvdXQgfCBpblxuIgotKwkJCSIgIFVTRVJTID0gSklEWzpKSURdKiB8 IGFueVxuIgotKwkJCSIgIENPTlRBQ1RTID0gSklEWzpKSURdKiB8IGFueVxuIgotKwkJCSIgIEpJ RCA9IGNoYXJhY3RlcnMgdmFsaWQgaW4gYSBKSUQsIGFuZCBjYW4gdXNlIHRoZSAiCi0rCQkJImds b2JzOiAqLCA/IGFuZCBbLi4uXVxuIgotKwkJCSJcbiIKLSsJCQkiVGhpcyBleGFtcGxlIHdpbGwg bGlzdCByb3N0ZXIgaXRlbXMgd2l0aCBzdWJzY3JpcHRpb24gIgotKwkJCSInbm9uZScsICdmcm9t JyBvciAndG8nIHRoYXQgaGF2ZSBhbnkgYXNrIHByb3BlcnR5LCBvZiAiCi0rCQkJImxvY2FsIHVz ZXJzIHdoaWNoIEpJRCBpcyBpbiB0aGUgdmlydHVhbCBob3N0ICIKLSsJCQkiJ2V4YW1wbGUub3Jn JyBhbmQgdGhhdCB0aGUgY29udGFjdCBKSUQgaXMgZWl0aGVyIGEgIgotKwkJCSJiYXJlIHNlcnZl ciBuYW1lICh3aXRob3V0IHVzZXIgcGFydCkgb3IgdGhhdCBoYXMgYSAiCi0rCQkJInVzZXIgcGFy dCBhbmQgdGhlIHNlcnZlciBwYXJ0IGNvbnRhaW5zIHRoZSB3b3JkICdpY3EnIgotKwkJCSI6XG4g IGxpc3Qgbm9uZTpmcm9tOnRvIGFueSAqQGV4YW1wbGUub3JnICo6KkAqaWNxKiIsCi0rCQkJbW9k dWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBwcm9jZXNzX3Jvc3Rlcml0ZW1zLAotKwkJCWFyZ3Mg PSBbe2FjdGlvbiwgc3RyaW5nfSwge3N1YnMsIHN0cmluZ30sCi0rCQkJCXthc2tzLCBzdHJpbmd9 LCB7dXNlcnMsIHN0cmluZ30sCi0rCQkJCXtjb250YWN0cywgc3RyaW5nfV0sCi0rCQkJcmVzdWx0 ID0ge3JlcywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBnZXRf cm9zdGVyLCB0YWdzID0gW3Jvc3Rlcl0sCi0rCQkJZGVzYyA9ICJHZXQgcm9zdGVyIG9mIGEgbG9j YWwgdXNlciIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBnZXRfcm9zdGVyLAot KwkJCWFyZ3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQg PSB7Y29udGFjdHMsIHtsaXN0LCB7Y29udGFjdCwge3R1cGxlLCBbCi0rCQkJCQkJCQkgICAgICB7 amlkLCBzdHJpbmd9LAotKwkJCQkJCQkJICAgICAge25pY2ssIHN0cmluZ30sCi0rCQkJCQkJCQkg ICAgICB7Z3JvdXAsIHN0cmluZ30KLSsJCQkJCQkJCSAgICAgXX19fX19LAotKyAgICAgI2VqYWJi ZXJkX2NvbW1hbmRze25hbWUgPSBwdXNoX3Jvc3RlciwgdGFncyA9IFtyb3N0ZXJdLAotKwkJCWRl c2MgPSAiUHVzaCB0ZW1wbGF0ZSByb3N0ZXIgZnJvbSBmaWxlIHRvIGEgdXNlciIsCi0rCQkJbW9k dWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBwdXNoX3Jvc3RlciwKLSsJCQlhcmdzID0gW3tmaWxl LCBzdHJpbmd9LCB7dXNlciwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9 IHtyZXMsIHJlc2NvZGV9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gcHVzaF9y b3N0ZXJfYWxsLCB0YWdzID0gW3Jvc3Rlcl0sCi0rCQkJZGVzYyA9ICJQdXNoIHRlbXBsYXRlIHJv c3RlciBmcm9tIGZpbGUgdG8gYWxsIHRob3NlIHVzZXJzIiwKLSsJCQltb2R1bGUgPSA/TU9EVUxF LCBmdW5jdGlvbiA9IHB1c2hfcm9zdGVyX2FsbCwKLSsJCQlhcmdzID0gW3tmaWxlLCBzdHJpbmd9 XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFu ZHN7bmFtZSA9IHB1c2hfYWxsdG9hbGwsIHRhZ3MgPSBbcm9zdGVyXSwKLSsJCQlkZXNjID0gIkFk ZCBhbGwgdGhlIHVzZXJzIHRvIGFsbCB0aGUgdXNlcnMgb2YgSG9zdCBpbiBHcm91cCIsCi0rCQkJ bW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24gPSBwdXNoX2FsbHRvYWxsLAotKwkJCWFyZ3MgPSBb e2hvc3QsIHN0cmluZ30sIHtncm91cCwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3JlcywgcmVz Y29kZX19LAotKwotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUgPSBzcmdfY3JlYXRlLCB0 YWdzID0gW3NoYXJlZF9yb3N0ZXJfZ3JvdXBdLAotKwkJCWRlc2MgPSAiQ3JlYXRlIGEgU2hhcmVk IFJvc3RlciBHcm91cCIsCi0rCQkJbG9uZ2Rlc2MgPSAiSWYgeW91IHdhbnQgdG8gc3BlY2lmeSBz ZXZlcmFsIGdyb3VwICIKLSsJCQkiaWRlbnRpZmllcnMgaW4gdGhlIERpc3BsYXkgYXJndW1lbnQs XG4iCi0rCQkJInB1dCAgXFwgXCIgYXJvdW5kIHRoZSBhcmd1bWVudCBhbmRcbnNlcGFyYXRlIHRo ZSAiCi0rCQkJImlkZW50aWZpZXJzIHdpdGggXFwgXFwgblxuIgotKwkJCSJGb3IgZXhhbXBsZTpc biIKLSsJCQkiICBlamFiYmVyZGN0bCBzcmdfY3JlYXRlIGdyb3VwMyBsb2NhbGhvc3QgIgotKwkJ CSJuYW1lIGRlc2MgXFxcImdyb3VwMVxcXFxuZ3JvdXAyXFxcIiIsCi0rCQkJbW9kdWxlID0gP01P RFVMRSwgZnVuY3Rpb24gPSBzcmdfY3JlYXRlLAotKwkJCWFyZ3MgPSBbe2dyb3VwLCBzdHJpbmd9 LCB7aG9zdCwgc3RyaW5nfSwKLSsJCQkJe25hbWUsIHN0cmluZ30sIHtkZXNjcmlwdGlvbiwgc3Ry aW5nfSwge2Rpc3BsYXksIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwK LSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3JnX2RlbGV0ZSwgdGFncyA9IFtzaGFy ZWRfcm9zdGVyX2dyb3VwXSwKLSsJCQlkZXNjID0gIkRlbGV0ZSBhIFNoYXJlZCBSb3N0ZXIgR3Jv dXAiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3JnX2RlbGV0ZSwKLSsJCQlh cmdzID0gW3tncm91cCwgc3RyaW5nfSwge2hvc3QsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHty ZXMsIHJlc2NvZGV9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3JnX2xpc3Qs IHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCi0rCQkJZGVzYyA9ICJMaXN0IHRoZSBTaGFy ZWQgUm9zdGVyIEdyb3VwcyBpbiBIb3N0IiwKLSsJCQltb2R1bGUgPSA/TU9EVUxFLCBmdW5jdGlv biA9IHNyZ19saXN0LAotKwkJCWFyZ3MgPSBbe2hvc3QsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9 IHtncm91cHMsIHtsaXN0LCB7aWQsIHN0cmluZ319fX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFu ZHN7bmFtZSA9IHNyZ19nZXRfaW5mbywgdGFncyA9IFtzaGFyZWRfcm9zdGVyX2dyb3VwXSwKLSsJ CQlkZXNjID0gIkdldCBpbmZvIG9mIGEgU2hhcmVkIFJvc3RlciBHcm91cCIsCi0rCQkJbW9kdWxl ID0gP01PRFVMRSwgZnVuY3Rpb24gPSBzcmdfZ2V0X2luZm8sCi0rCQkJYXJncyA9IFt7Z3JvdXAs IHN0cmluZ30sIHtob3N0LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7aW5mb3JtYXRpb25zLCB7 bGlzdCwge2luZm9ybWF0aW9uLCB7dHVwbGUsIFt7a2V5LCBzdHJpbmd9LCB7dmFsdWUsIHN0cmlu Z31dfX19fX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ19nZXRfbWVtYmVy cywgdGFncyA9IFtzaGFyZWRfcm9zdGVyX2dyb3VwXSwKLSsJCQlkZXNjID0gIkdldCBtZW1iZXJz IG9mIGEgU2hhcmVkIFJvc3RlciBHcm91cCIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rp b24gPSBzcmdfZ2V0X21lbWJlcnMsCi0rCQkJYXJncyA9IFt7Z3JvdXAsIHN0cmluZ30sIHtob3N0 LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7bWVtYmVycywge2xpc3QsIHttZW1iZXIsIHN0cmlu Z319fX0sCi0rICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNyZ191c2VyX2FkZCwgdGFn cyA9IFtzaGFyZWRfcm9zdGVyX2dyb3VwXSwKLSsJCQlkZXNjID0gIkFkZCB0aGUgSklEIHVzZXJA aG9zdCB0byB0aGUgU2hhcmVkIFJvc3RlciBHcm91cCIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwg ZnVuY3Rpb24gPSBzcmdfdXNlcl9hZGQsCi0rCQkJYXJncyA9IFt7dXNlciwgc3RyaW5nfSwge2hv c3QsIHN0cmluZ30sIHtncm91cCwgc3RyaW5nfSwge2dyb3VwaG9zdCwgc3RyaW5nfV0sCi0rCQkJ cmVzdWx0ID0ge3JlcywgcmVzY29kZX19LAotKyAgICAgI2VqYWJiZXJkX2NvbW1hbmRze25hbWUg PSBzcmdfdXNlcl9kZWwsIHRhZ3MgPSBbc2hhcmVkX3Jvc3Rlcl9ncm91cF0sCi0rCQkJZGVzYyA9 ICJEZWxldGUgdGhpcyBKSUQgdXNlckBob3N0IGZyb20gdGhlIFNoYXJlZCBSb3N0ZXIgR3JvdXAi LAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3JnX3VzZXJfZGVsLAotKwkJCWFy Z3MgPSBbe3VzZXIsIHN0cmluZ30sIHtob3N0LCBzdHJpbmd9LCB7Z3JvdXAsIHN0cmluZ30sIHtn cm91cGhvc3QsIHN0cmluZ31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsKLSsg ICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc2VuZF9tZXNzYWdlX2NoYXQsIHRhZ3MgPSBb c3RhbnphXSwKLSsJCQlkZXNjID0gIlNlbmQgYSBjaGF0IG1lc3NhZ2UgdG8gYSBsb2NhbCBvciBy ZW1vdGUgYmFyZSBvZiBmdWxsIEpJRCIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwgZnVuY3Rpb24g PSBzZW5kX21lc3NhZ2VfY2hhdCwKLSsJCQlhcmdzID0gW3tmcm9tLCBzdHJpbmd9LCB7dG8sIHN0 cmluZ30sIHtib2R5LCBzdHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7cmVzLCByZXNjb2RlfX0sCi0r ICAgICAjZWphYmJlcmRfY29tbWFuZHN7bmFtZSA9IHNlbmRfbWVzc2FnZV9oZWFkbGluZSwgdGFn cyA9IFtzdGFuemFdLAotKwkJCWRlc2MgPSAiU2VuZCBhIGhlYWRsaW5lIG1lc3NhZ2UgdG8gYSBs b2NhbCBvciByZW1vdGUgYmFyZSBvZiBmdWxsIEpJRCIsCi0rCQkJbW9kdWxlID0gP01PRFVMRSwg ZnVuY3Rpb24gPSBzZW5kX21lc3NhZ2VfaGVhZGxpbmUsCi0rCQkJYXJncyA9IFt7ZnJvbSwgc3Ry aW5nfSwge3RvLCBzdHJpbmd9LAotKwkJCQl7c3ViamVjdCwgc3RyaW5nfSwge2JvZHksIHN0cmlu Z31dLAotKwkJCXJlc3VsdCA9IHtyZXMsIHJlc2NvZGV9fSwKLSsKLSsgICAgICNlamFiYmVyZF9j b21tYW5kc3tuYW1lID0gc3RhdHMsIHRhZ3MgPSBbc3RhdHNdLAotKwkJCWRlc2MgPSAiR2V0IHN0 YXRpc3RpY2FsIHZhbHVlOiByZWdpc3RlcmVkdXNlcnMgb25saW5ldXNlcnMgb25saW5ldXNlcnNu b2RlIHVwdGltZXNlY29uZHMiLAotKwkJCW1vZHVsZSA9ID9NT0RVTEUsIGZ1bmN0aW9uID0gc3Rh dHMsCi0rCQkJYXJncyA9IFt7bmFtZSwgc3RyaW5nfV0sCi0rCQkJcmVzdWx0ID0ge3N0YXQsIGlu dGVnZXJ9fSwKLSsgICAgICNlamFiYmVyZF9jb21tYW5kc3tuYW1lID0gc3RhdHNfaG9zdCwgdGFn cyA9IFtzdGF0c10sCi0rCQkJZGVzYyA9ICJHZXQgc3RhdGlzdGljYWwgdmFsdWUgZm9yIHRoaXMg aG9zdDogcmVnaXN0ZXJlZHVzZXJzIG9ubGluZXVzZXJzIiwKLSsJCQltb2R1bGUgPSA/TU9EVUxF LCBmdW5jdGlvbiA9IHN0YXRzLAotKwkJCWFyZ3MgPSBbe25hbWUsIHN0cmluZ30sIHtob3N0LCBz dHJpbmd9XSwKLSsJCQlyZXN1bHQgPSB7c3RhdCwgaW50ZWdlcn19Ci0rICAgIF0uCi0rCi0rCi0r JSUlCi0rJSUlIE5vZGUKLSslJSUKLSsKLStjb21waWxlKEZpbGUpIC0+Ci0rICAgIGNhc2UgY29t cGlsZTpmaWxlKEZpbGUpIG9mCi0rCW9rIC0+IG9rOwotKwlfIC0+IGVycm9yCi0rICAgIGVuZC4K LSsKLStsb2FkX2NvbmZpZyhQYXRoKSAtPgotKyAgICBvayA9IGVqYWJiZXJkX2NvbmZpZzpsb2Fk X2ZpbGUoUGF0aCkuCi0rCi0rZ2V0X2Nvb2tpZSgpIC0+Ci0rICAgIGF0b21fdG9fbGlzdChlcmxh bmc6Z2V0X2Nvb2tpZSgpKS4KLSsKLStyZW1vdmVfbm9kZShOb2RlKSAtPgotKyAgICBtbmVzaWE6 ZGVsX3RhYmxlX2NvcHkoc2NoZW1hLCBsaXN0X3RvX2F0b20oTm9kZSkpLAotKyAgICBvay4KLSsK LStleHBvcnQyb2RiYyhIb3N0LCBEaXJlY3RvcnkpIC0+Ci0rICAgIFRhYmxlcyA9IFsKLSsJICAg ICAge2V4cG9ydF9sYXN0LCBsYXN0fSwKLSsJICAgICAge2V4cG9ydF9vZmZsaW5lLCBvZmZsaW5l fSwKLSsJICAgICAge2V4cG9ydF9wYXNzd2QsIHBhc3N3ZH0sCi0rCSAgICAgIHtleHBvcnRfcHJp dmF0ZV9zdG9yYWdlLCBwcml2YXRlX3N0b3JhZ2V9LAotKwkgICAgICB7ZXhwb3J0X3Jvc3Rlciwg cm9zdGVyfSwKLSsJICAgICAge2V4cG9ydF92Y2FyZCwgdmNhcmR9LAotKwkgICAgICB7ZXhwb3J0 X3ZjYXJkX3NlYXJjaCwgdmNhcmRfc2VhcmNofV0sCi0rICAgIEV4cG9ydCA9IGZ1bih7VGFibGVG dW4sIFRhYmxlfSkgLT4KLSsJCSAgICAgRmlsZW5hbWUgPSBmaWxlbmFtZTpqb2luKFtEaXJlY3Rv cnksIGF0b21fdG9fbGlzdChUYWJsZSkrKyIudHh0Il0pLAotKwkJICAgICBpbzpmb3JtYXQoIlRy eWluZyB0byBleHBvcnQgTW5lc2lhIHRhYmxlICd+cCcgb24gSG9zdCAnfnMnIHRvIGZpbGUgJ35z J35uIiwgW1RhYmxlLCBIb3N0LCBGaWxlbmFtZV0pLAotKwkJICAgICBSZXMgPSAoY2F0Y2ggZWpk Mm9kYmM6VGFibGVGdW4oSG9zdCwgRmlsZW5hbWUpKSwKLSsJCSAgICAgaW86Zm9ybWF0KCIgIFJl c3VsdDogfnB+biIsIFtSZXNdKQotKwkgICAgIGVuZCwKLSsgICAgbGlzdHM6Zm9yZWFjaChFeHBv cnQsIFRhYmxlcyksCi0rICAgIG9rLgotKwotKwotKyUlJQotKyUlJSBBY2NvdW50cwotKyUlJQot KwotK3NldF9wYXNzd29yZChVc2VyLCBIb3N0LCBQYXNzd29yZCkgLT4KLSsgICAgY2FzZSBlamFi YmVyZF9hdXRoOnNldF9wYXNzd29yZChVc2VyLCBIb3N0LCBQYXNzd29yZCkgb2YKLSsJb2sgLT4K LSsJICAgIG9rOwotKwlfIC0+Ci0rCSAgICBlcnJvcgotKyAgICBlbmQuCi0rCi0rJSUgQ29waWVk IHNvbWUgY29kZSBmcm9tIGVqYWJiZXJkX2NvbW1hbmRzLmVybAotK2NoZWNrX3Bhc3N3b3JkX2hh c2goVXNlciwgSG9zdCwgUGFzc3dvcmRIYXNoLCBIYXNoTWV0aG9kKSAtPgotKyAgICBBY2NvdW50 UGFzcyA9IGVqYWJiZXJkX2F1dGg6Z2V0X3Bhc3N3b3JkX3MoVXNlciwgSG9zdCksCi0rICAgIEFj Y291bnRQYXNzSGFzaCA9IGNhc2UgSGFzaE1ldGhvZCBvZgotKwkJCSAgIm1kNSIgLT4gZ2V0X21k NShBY2NvdW50UGFzcyk7Ci0rCQkJICAic2hhIiAtPiBnZXRfc2hhKEFjY291bnRQYXNzKTsKLSsJ CQkgIF8gLT4gdW5kZWZpbmVkCi0rCQkgICAgICBlbmQsCi0rICAgIGNhc2UgQWNjb3VudFBhc3NI YXNoIG9mCi0rCXVuZGVmaW5lZCAtPiBlcnJvcjsKLSsJUGFzc3dvcmRIYXNoIC0+IG9rOwotKwlf IC0+IGVycm9yCi0rICAgIGVuZC4KLStnZXRfbWQ1KEFjY291bnRQYXNzKSAtPgotKyAgICBsaXN0 czpmbGF0dGVuKFtpb19saWI6Zm9ybWF0KCJ+LjE2QiIsIFtYXSkKLSsJCSAgIHx8IFggPC0gYmlu YXJ5X3RvX2xpc3QoY3J5cHRvOm1kNShBY2NvdW50UGFzcykpXSkuCi0rZ2V0X3NoYShBY2NvdW50 UGFzcykgLT4KLSsgICAgbGlzdHM6ZmxhdHRlbihbaW9fbGliOmZvcm1hdCgifi4xNkIiLCBbWF0p Ci0rCQkgICB8fCBYIDwtIGJpbmFyeV90b19saXN0KGNyeXB0bzpzaGEoQWNjb3VudFBhc3MpKV0p LgotKwotK251bV9hY3RpdmVfdXNlcnMoSG9zdCwgRGF5cykgLT4KLSsgICAgbGlzdF9sYXN0X2Fj dGl2aXR5KEhvc3QsIHRydWUsIERheXMpLgotKwotKyUlIENvZGUgYmFzZWQgb24gZWphYmJlcmQv c3JjL3dlYi9lamFiYmVyZF93ZWJfYWRtaW4uZXJsCi0rbGlzdF9sYXN0X2FjdGl2aXR5KEhvc3Qs IEludGVncmFsLCBEYXlzKSAtPgotKyAgICB7TWVnYVNlY3MsIFNlY3MsIF9NaWNyb1NlY3N9ID0g bm93KCksCi0rICAgIFRpbWVTdGFtcCA9IE1lZ2FTZWNzICogMTAwMDAwMCArIFNlY3MsCi0rICAg IFRTID0gVGltZVN0YW1wIC0gRGF5cyAqIDg2NDAwLAotKyAgICBjYXNlIGNhdGNoIG1uZXNpYTpk aXJ0eV9zZWxlY3QoCi0rCQkgbGFzdF9hY3Rpdml0eSwgW3t7bGFzdF9hY3Rpdml0eSwgeydfJywg SG9zdH0sICckMScsICdfJ30sCi0rCQkJCSAgW3snPicsICckMScsIFRTfV0sCi0rCQkJCSAgW3sn dHJ1bmMnLCB7Jy8nLAotKwkJCQkJICAgICAgeyctJywgVGltZVN0YW1wLCAnJDEnfSwKLSsJCQkJ CSAgICAgIDg2NDAwfX1dfV0pIG9mCi0rCQkJCQkJCSAgICAgIHsnRVhJVCcsIF9SZWFzb259IC0+ Ci0rCQkgW107Ci0rCSAgICAgICBWYWxzIC0+Ci0rCQkgSGlzdCA9IGhpc3RvZ3JhbShWYWxzLCBJ bnRlZ3JhbCksCi0rCQkgaWYKLSsJCSAgICAgSGlzdCA9PSBbXSAtPgotKwkJCSAwOwotKwkJICAg ICB0cnVlIC0+Ci0rCQkJIExlZnQgPSBEYXlzIC0gbGVuZ3RoKEhpc3QpLAotKwkJCSBUYWlsID0g aWYKLSsJCQkJICAgIEludGVncmFsIC0+Ci0rCQkJCQlsaXN0czpkdXBsaWNhdGUoTGVmdCwgbGlz dHM6bGFzdChIaXN0KSk7Ci0rCQkJCSAgICB0cnVlIC0+Ci0rCQkJCQlsaXN0czpkdXBsaWNhdGUo TGVmdCwgMCkKLSsJCQkJZW5kLAotKwkJCSBsaXN0czpudGgoRGF5cywgSGlzdCArKyBUYWlsKQot KwkJIGVuZAotKwkgZW5kLgotK2hpc3RvZ3JhbShWYWx1ZXMsIEludGVncmFsKSAtPgotKyAgICBo aXN0b2dyYW0obGlzdHM6c29ydChWYWx1ZXMpLCBJbnRlZ3JhbCwgMCwgMCwgW10pLgotK2hpc3Rv Z3JhbShbSCB8IFRdLCBJbnRlZ3JhbCwgQ3VycmVudCwgQ291bnQsIEhpc3QpIHdoZW4gQ3VycmVu dCA9PSBIIC0+Ci0rICAgIGhpc3RvZ3JhbShULCBJbnRlZ3JhbCwgQ3VycmVudCwgQ291bnQgKyAx LCBIaXN0KTsKLStoaXN0b2dyYW0oW0ggfCBfXSA9IFZhbHVlcywgSW50ZWdyYWwsIEN1cnJlbnQs IENvdW50LCBIaXN0KSB3aGVuIEN1cnJlbnQgPCBIIC0+Ci0rICAgIGlmCi0rCUludGVncmFsIC0+ Ci0rCSAgICBoaXN0b2dyYW0oVmFsdWVzLCBJbnRlZ3JhbCwgQ3VycmVudCArIDEsIENvdW50LCBb Q291bnQgfCBIaXN0XSk7Ci0rCXRydWUgLT4KLSsJICAgIGhpc3RvZ3JhbShWYWx1ZXMsIEludGVn cmFsLCBDdXJyZW50ICsgMSwgMCwgW0NvdW50IHwgSGlzdF0pCi0rICAgIGVuZDsKLStoaXN0b2dy YW0oW10sIF9JbnRlZ3JhbCwgX0N1cnJlbnQsIENvdW50LCBIaXN0KSAtPgotKyAgICBpZgotKwlD b3VudCA+IDAgLT4KLSsJICAgIGxpc3RzOnJldmVyc2UoW0NvdW50IHwgSGlzdF0pOwotKwl0cnVl IC0+Ci0rCSAgICBsaXN0czpyZXZlcnNlKEhpc3QpCi0rICAgIGVuZC4KLSsKLSsKLSstcmVjb3Jk KGxhc3RfYWN0aXZpdHksIHt1cywgdGltZXN0YW1wLCBzdGF0dXN9KS4KLSsKLStkZWxldGVfb2xk X3VzZXJzKERheXMpIC0+Ci0rICAgICUlIEdldCB0aGUgbGlzdCBvZiByZWdpc3RlcmVkIHVzZXJz Ci0rICAgIFVzZXJzID0gZWphYmJlcmRfYXV0aDpkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2Vycygp LAotKwotKyAgICB7cmVtb3ZlZCwgTiwgVVJ9ID0gZGVsZXRlX29sZF91c2VycyhEYXlzLCBVc2Vy cyksCi0rICAgIHtvaywgaW9fbGliOmZvcm1hdCgiRGVsZXRlZCB+cCB1c2VyczogfnAiLCBbTiwg VVJdKX0uCi0rCi0rZGVsZXRlX29sZF91c2Vyc192aG9zdChIb3N0LCBEYXlzKSAtPgotKyAgICAl JSBHZXQgdGhlIGxpc3Qgb2YgcmVnaXN0ZXJlZCB1c2VycwotKyAgICBVc2VycyA9IGVqYWJiZXJk X2F1dGg6Z2V0X3ZoX3JlZ2lzdGVyZWRfdXNlcnMoSG9zdCksCi0rCi0rICAgIHtyZW1vdmVkLCBO LCBVUn0gPSBkZWxldGVfb2xkX3VzZXJzKERheXMsIFVzZXJzKSwKLSsgICAge29rLCBpb19saWI6 Zm9ybWF0KCJEZWxldGVkIH5wIHVzZXJzOiB+cCIsIFtOLCBVUl0pfS4KLSsKLStkZWxldGVfb2xk X3VzZXJzKERheXMsIFVzZXJzKSAtPgotKyAgICAlJSBDb252ZXJ0IG9sZGVyIHRpbWUKLSsgICAg U2VjT2xkZXIgPSBEYXlzKjI0KjYwKjYwLAotKwotKyAgICAlJSBHZXQgY3VycmVudCB0aW1lCi0r ICAgIHtNZWdhU2VjcywgU2VjcywgX01pY3JvU2Vjc30gPSBub3coKSwKLSsgICAgVGltZVN0YW1w X25vdyA9IE1lZ2FTZWNzICogMTAwMDAwMCArIFNlY3MsCi0rCi0rICAgICUlIEZvciBhIHVzZXIs IHJlbW92ZSBpZiByZXF1aXJlZCBhbmQgYW5zd2VyIHRydWUKLSsgICAgRiA9IGZ1bih7TFVzZXIs IExTZXJ2ZXJ9KSAtPgotKwkJJSUgQ2hlY2sgaWYgdGhlIHVzZXIgaXMgbG9nZ2VkCi0rCQljYXNl IGVqYWJiZXJkX3NtOmdldF91c2VyX3Jlc291cmNlcyhMVXNlciwgTFNlcnZlcikgb2YKLSsJCSAg ICAlJSBJZiBpdCBpc250Ci0rCQkgICAgW10gLT4KLSsJCQklJSBMb29rIGZvciBoaXMgbGFzdF9h Y3Rpdml0eQotKwkJCWNhc2UgbW5lc2lhOmRpcnR5X3JlYWQobGFzdF9hY3Rpdml0eSwge0xVc2Vy LCBMU2VydmVyfSkgb2YKLSsJCQkgICAgJSUgSWYgaXQgaXMKLSsJCQkgICAgJSUgZXhpc3RlbnQ6 Ci0rCQkJICAgIFsjbGFzdF9hY3Rpdml0eXt0aW1lc3RhbXAgPSBUaW1lU3RhbXB9XSAtPgotKwkJ CQklJSBnZXQgaGlzIGFnZQotKwkJCQlTZWMgPSBUaW1lU3RhbXBfbm93IC0gVGltZVN0YW1wLAot KwkJCQklJSBJZiBoZSBpcwotKwkJCQlpZgotKwkJCQkgICAgJSUgeW91bmdlciB0aGFuIFNlY09s ZGVyOgotKwkJCQkgICAgU2VjIDwgU2VjT2xkZXIgLT4KLSsJCQkJCSUlIGRvIG5vdGhpbmcKLSsJ CQkJCWZhbHNlOwotKwkJCQkgICAgJSUgb2xkZXI6Ci0rCQkJCSAgICB0cnVlIC0+Ci0rCQkJCQkl JSByZW1vdmUgdGhlIHVzZXIKLSsJCQkJCWVqYWJiZXJkX2F1dGg6cmVtb3ZlX3VzZXIoTFVzZXIs IExTZXJ2ZXIpLAotKwkJCQkJdHJ1ZQotKwkJCQllbmQ7Ci0rCQkJICAgICUlIG5vbmV4aXN0ZW50 OgotKwkJCSAgICBbXSAtPgotKwkJCQklJSByZW1vdmUgdGhlIHVzZXIKLSsJCQkJZWphYmJlcmRf YXV0aDpyZW1vdmVfdXNlcihMVXNlciwgTFNlcnZlciksCi0rCQkJCXRydWUKLSsJCQllbmQ7Ci0r CQkgICAgJSUgRWxzZQotKwkJICAgIF8gLT4KLSsJCQklJSBkbyBub3RoaW5nCi0rCQkJZmFsc2UK LSsJCWVuZAotKwllbmQsCi0rICAgICUlIEFwcGx5IHRoZSBmdW5jdGlvbiB0byBldmVyeSB1c2Vy IGluIHRoZSBsaXN0Ci0rICAgIFVzZXJzX3JlbW92ZWQgPSBsaXN0czpmaWx0ZXIoRiwgVXNlcnMp LAotKyAgICB7cmVtb3ZlZCwgbGVuZ3RoKFVzZXJzX3JlbW92ZWQpLCBVc2Vyc19yZW1vdmVkfS4K LSsKLSsKLSslJQotKyUlIEJhbiBhY2NvdW50Ci0rCi0rYmFuX2FjY291bnQoVXNlciwgSG9zdCwg UmVhc29uVGV4dCkgLT4KLSsgICAgUmVhc29uID0gcHJlcGFyZV9yZWFzb24oUmVhc29uVGV4dCks Ci0rICAgIGtpY2tfc2Vzc2lvbnMoVXNlciwgSG9zdCwgUmVhc29uKSwKLSsgICAgc2V0X3JhbmRv bV9wYXNzd29yZChVc2VyLCBIb3N0LCBSZWFzb24pLAotKyAgICBvay4KLSsKLStraWNrX3Nlc3Np b25zKFVzZXIsIFNlcnZlciwgUmVhc29uKSAtPgotKyAgICBsaXN0czptYXAoCi0rICAgICAgZnVu KFJlc291cmNlKSAtPgotKwkgICAgICBraWNrX3RoaXNfc2Vzc2lvbihVc2VyLCBTZXJ2ZXIsIFJl c291cmNlLCBSZWFzb24pCi0rICAgICAgZW5kLAotKyAgICAgIGdldF9yZXNvdXJjZXMoVXNlciwg U2VydmVyKSkuCi0rCi0rZ2V0X3Jlc291cmNlcyhVc2VyLCBTZXJ2ZXIpIC0+Ci0rICAgIGxpc3Rz Om1hcCgKLSsgICAgICBmdW4oU2Vzc2lvbikgLT4KLSsJICAgICAgZWxlbWVudCgzLCBTZXNzaW9u I3Nlc3Npb24udXNyKQotKyAgICAgIGVuZCwKLSsgICAgICBnZXRfc2Vzc2lvbnMoVXNlciwgU2Vy dmVyKSkuCi0rCi0rZ2V0X3Nlc3Npb25zKFVzZXIsIFNlcnZlcikgLT4KLSsgICAgTFVzZXIgPSBq bGliOm5vZGVwcmVwKFVzZXIpLAotKyAgICBMU2VydmVyID0gamxpYjpuYW1lcHJlcChTZXJ2ZXIp LAotKyAgICBTZXNzaW9ucyA9ICBtbmVzaWE6ZGlydHlfaW5kZXhfcmVhZChzZXNzaW9uLCB7TFVz ZXIsIExTZXJ2ZXJ9LCAjc2Vzc2lvbi51cyksCi0rICAgIHRydWUgPSBpc19saXN0KFNlc3Npb25z KSwKLSsgICAgU2Vzc2lvbnMuCi0rCi0rc2V0X3JhbmRvbV9wYXNzd29yZChVc2VyLCBTZXJ2ZXIs IFJlYXNvbikgLT4KLSsgICAgTmV3UGFzcyA9IGJ1aWxkX3JhbmRvbV9wYXNzd29yZChSZWFzb24p LAotKyAgICBzZXRfcGFzc3dvcmRfYXV0aChVc2VyLCBTZXJ2ZXIsIE5ld1Bhc3MpLgotKwotK2J1 aWxkX3JhbmRvbV9wYXNzd29yZChSZWFzb24pIC0+Ci0rICAgIERhdGUgPSBqbGliOnRpbWVzdGFt cF90b19pc28oY2FsZW5kYXI6dW5pdmVyc2FsX3RpbWUoKSksCi0rICAgIFJhbmRvbVN0cmluZyA9 IHJhbmRvbXM6Z2V0X3N0cmluZygpLAotKyAgICAiQkFOTkVEX0FDQ09VTlQtLSIgKysgRGF0ZSAr KyAiLS0iICsrIFJhbmRvbVN0cmluZyArKyAiLS0iICsrIFJlYXNvbi4KLSsKLStzZXRfcGFzc3dv cmRfYXV0aChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkKSAtPgotKyAgICBvayA9IGVqYWJiZXJkX2F1 dGg6c2V0X3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpLgotKwotK3ByZXBhcmVfcmVh c29uKFtdKSAtPgotKyAgICAiS2lja2VkIGJ5IGFkbWluaXN0cmF0b3IiOwotK3ByZXBhcmVfcmVh c29uKFtSZWFzb25dKSAtPgotKyAgICBSZWFzb247Ci0rcHJlcGFyZV9yZWFzb24oUmVhc29uKSB3 aGVuIGlzX2xpc3QoUmVhc29uKSAtPgotKyAgICBSZWFzb247Ci0rcHJlcGFyZV9yZWFzb24oU3Ry aW5nTGlzdCkgLT4KLSsgICAgc3RyaW5nOmpvaW4oU3RyaW5nTGlzdCwgIl8iKS4KLSsKLSsKLSsl JSUKLSslJSUgU2Vzc2lvbnMKLSslJSUKLSsKLStudW1fcmVzb3VyY2VzKFVzZXIsIEhvc3QpIC0+ Ci0rICAgIGxlbmd0aChlamFiYmVyZF9zbTpnZXRfdXNlcl9yZXNvdXJjZXMoVXNlciwgSG9zdCkp LgotKwotK3Jlc291cmNlX251bShVc2VyLCBIb3N0LCBOdW0pIC0+Ci0rICAgIFJlc291cmNlcyA9 IGVqYWJiZXJkX3NtOmdldF91c2VyX3Jlc291cmNlcyhVc2VyLCBIb3N0KSwKLSsgICAgY2FzZSAo MDxOdW0pIGFuZCAoTnVtPTxsZW5ndGgoUmVzb3VyY2VzKSkgb2YKLSsJdHJ1ZSAtPgotKwkgICAg bGlzdHM6bnRoKE51bSwgUmVzb3VyY2VzKTsKLSsJZmFsc2UgLT4KLSsJICAgIGxpc3RzOmZsYXR0 ZW4oaW9fbGliOmZvcm1hdCgiRXJyb3I6IFdyb25nIHJlc291cmNlIG51bWJlcjogfnAiLCBbTnVt XSkpCi0rICAgIGVuZC4KLSsKLStraWNrX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNvdXJjZSwg UmVhc29uVGV4dCkgLT4KLSsgICAga2lja190aGlzX3Nlc3Npb24oVXNlciwgU2VydmVyLCBSZXNv dXJjZSwgcHJlcGFyZV9yZWFzb24oUmVhc29uVGV4dCkpLAotKyAgICBvay4KLSsKLStraWNrX3Ro aXNfc2Vzc2lvbihVc2VyLCBTZXJ2ZXIsIFJlc291cmNlLCBSZWFzb24pIC0+Ci0rICAgIGVqYWJi ZXJkX3JvdXRlcjpyb3V0ZSgKLSsgICAgICBqbGliOm1ha2VfamlkKCIiLCAiIiwgIiIpLAotKyAg ICAgIGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCBSZXNvdXJjZSksCi0rICAgICAge3htbGVs ZW1lbnQsICJicm9hZGNhc3QiLCBbXSwgW3tleGl0LCBSZWFzb259XX0pLgotKwotKwotK3N0YXR1 c19udW0oSG9zdCwgU3RhdHVzKSAtPgotKyAgICBsZW5ndGgoZ2V0X3N0YXR1c19saXN0KEhvc3Qs IFN0YXR1cykpLgotK3N0YXR1c19udW0oU3RhdHVzKSAtPgotKyAgICBzdGF0dXNfbnVtKCJhbGwi LCBTdGF0dXMpLgotK3N0YXR1c19saXN0KEhvc3QsIFN0YXR1cykgLT4KLSsgICAgUmVzID0gZ2V0 X3N0YXR1c19saXN0KEhvc3QsIFN0YXR1cyksCi0rICAgIFt7VSwgUywgUiwgUCwgU3R9IHx8IHtV LCBTLCBSLCBQLCBTdH0gPC0gUmVzXS4KLStzdGF0dXNfbGlzdChTdGF0dXMpIC0+Ci0rICAgIHN0 YXR1c19saXN0KCJhbGwiLCBTdGF0dXMpLgotKwotKwotK2dldF9zdGF0dXNfbGlzdChIb3N0LCBT dGF0dXNfcmVxdWlyZWQpIC0+Ci0rICAgICUlIEdldCBsaXN0IG9mIGFsbCBsb2dnZWQgdXNlcnMK LSsgICAgU2Vzc2lvbnMgPSBlamFiYmVyZF9zbTpkaXJ0eV9nZXRfbXlfc2Vzc2lvbnNfbGlzdCgp LAotKyAgICAlJSBSZWZvcm1hdCB0aGUgbGlzdAotKyAgICBTZXNzaW9uczIgPSBbIHtTZXNzaW9u I3Nlc3Npb24udXNyLCBTZXNzaW9uI3Nlc3Npb24uc2lkLCBTZXNzaW9uI3Nlc3Npb24ucHJpb3Jp dHl9IHx8IFNlc3Npb24gPC0gU2Vzc2lvbnNdLAotKyAgICBGaG9zdCA9IGNhc2UgSG9zdCBvZgot KwkJImFsbCIgLT4KLSsJCSAgICAlJSBBbGwgaG9zdHMgYXJlIHJlcXVlc3RlZCwgc28gZG9udCBm aWx0ZXIgYXQgYWxsCi0rCQkgICAgZnVuKF8sIF8pIC0+IHRydWUgZW5kOwotKwkJXyAtPgotKwkJ ICAgICUlIEZpbHRlciB0aGUgbGlzdCwgb25seSBIb3N0IGlzIGludGVyZXN0aW5nCi0rCQkgICAg ZnVuKEEsIEIpIC0+IEEgPT0gQiBlbmQKLSsJICAgIGVuZCwKLSsgICAgU2Vzc2lvbnMzID0gWyB7 UGlkLCBTZXJ2ZXIsIFByaW9yaXR5fSB8fCB7e19Vc2VyLCBTZXJ2ZXIsIF9SZXNvdXJjZX0sIHtf LCBQaWR9LCBQcmlvcml0eX0gPC0gU2Vzc2lvbnMyLCBhcHBseShGaG9zdCwgW1NlcnZlciwgSG9z dF0pXSwKLSsgICAgJSUgRm9yIGVhY2ggUGlkLCBnZXQgaXRzIHByZXNlbmNlCi0rICAgIFNlc3Np b25zNCA9IFsge2VqYWJiZXJkX2MyczpnZXRfcHJlc2VuY2UoUGlkKSwgU2VydmVyLCBQcmlvcml0 eX0gfHwge1BpZCwgU2VydmVyLCBQcmlvcml0eX0gPC0gU2Vzc2lvbnMzXSwKLSsgICAgJSUgRmls dGVyIGJ5IHN0YXR1cwotKyAgICBGc3RhdHVzID0gY2FzZSBTdGF0dXNfcmVxdWlyZWQgb2YKLSsJ CSAgImFsbCIgLT4KLSsJCSAgICAgIGZ1bihfLCBfKSAtPiB0cnVlIGVuZDsKLSsJCSAgXyAtPgot KwkJICAgICAgZnVuKEEsIEIpIC0+IEEgPT0gQiBlbmQKLSsJICAgICAgZW5kLAotKyAgICBbe1Vz ZXIsIFNlcnZlciwgUmVzb3VyY2UsIFByaW9yaXR5LCBzdHJpbmdpemUoU3RhdHVzX3RleHQpfQot KyAgICAgfHwge3tVc2VyLCBSZXNvdXJjZSwgU3RhdHVzLCBTdGF0dXNfdGV4dH0sIFNlcnZlciwg UHJpb3JpdHl9IDwtIFNlc3Npb25zNCwKLSsJYXBwbHkoRnN0YXR1cywgW1N0YXR1cywgU3RhdHVz X3JlcXVpcmVkXSldLgotKwotKyUlIE1ha2Ugc3RyaW5nIG1vcmUgcHJpbnQtZnJpZW5kbHkKLStz dHJpbmdpemUoU3RyaW5nKSAtPgotKyAgICAlJSBSZXBsYWNlIG5ld2xpbmUgY2hhcmFjdGVycyB3 aXRoIG90aGVyIGNvZGUKLSsgICAgZWxlbWVudCgyLCByZWdleHA6Z3N1YihTdHJpbmcsICJcbiIs ICJcXG4iKSkuCi0rCi0rCi0rJSUlCi0rJSUlIFZjYXJkCi0rJSUlCi0rCi0rc2V0X25pY2tuYW1l KFVzZXIsIEhvc3QsIE5pY2tuYW1lKSAtPgotKyAgICBSID0gbW9kX3ZjYXJkOnByb2Nlc3Nfc21f aXEoCi0rCSAge2ppZCwgVXNlciwgSG9zdCwgIiIsIFVzZXIsIEhvc3QsICIifSwKLSsJICB7amlk LCBVc2VyLCBIb3N0LCAiIiwgVXNlciwgSG9zdCwgIiJ9LAotKwkgIHtpcSwgIiIsIHNldCwgIiIs ICJlbiIsCi0rCSAgIHt4bWxlbGVtZW50LCAidkNhcmQiLAotKwkgICAgW3sieG1sbnMiLCAidmNh cmQtdGVtcCJ9XSwgWwotKwkJCQkJe3htbGVsZW1lbnQsICJOSUNLTkFNRSIsIFtdLCBbe3htbGNk YXRhLCBOaWNrbmFtZX1dfQotKwkJCQkgICAgICAgXQotKwkgICB9fSksCi0rICAgIGNhc2UgUiBv ZgotKwl7aXEsIFtdLCByZXN1bHQsIFtdLCBfTCwgW119IC0+Ci0rCSAgICBvazsKLSsJXyAtPgot KwkgICAgZXJyb3IKLSsgICAgZW5kLgotKwotK2dldF92Y2FyZChVc2VyLCBIb3N0LCBOYW1lKSAt PgotKyAgICBnZXRfdmNhcmRfY29udGVudChVc2VyLCBIb3N0LCBbTmFtZV0pLgotKwotK2dldF92 Y2FyZChVc2VyLCBIb3N0LCBOYW1lLCBTdWJuYW1lKSAtPgotKyAgICBnZXRfdmNhcmRfY29udGVu dChVc2VyLCBIb3N0LCBbTmFtZSwgU3VibmFtZV0pLgotKwotK3NldF92Y2FyZChVc2VyLCBIb3N0 LCBOYW1lLCBDb250ZW50KSAtPgotKyAgICBzZXRfdmNhcmRfY29udGVudChVc2VyLCBIb3N0LCBb TmFtZV0sIENvbnRlbnQpLgotKwotK3NldF92Y2FyZChVc2VyLCBIb3N0LCBOYW1lLCBTdWJuYW1l LCBDb250ZW50KSAtPgotKyAgICBzZXRfdmNhcmRfY29udGVudChVc2VyLCBIb3N0LCBbTmFtZSwg U3VibmFtZV0sIENvbnRlbnQpLgotKwotKwotKyUlCi0rJSUgSW50ZXJuYWwgdmNhcmQKLSsKLStn ZXRfdmNhcmRfY29udGVudChVc2VyLCBTZXJ2ZXIsIERhdGEpIC0+Ci0rICAgIFt7XywgTW9kdWxl LCBGdW5jdGlvbiwgX09wdHN9XSA9IGV0czpsb29rdXAoc21faXF0YWJsZSwgez9OU19WQ0FSRCwg U2VydmVyfSksCi0rICAgIEpJRCA9IGpsaWI6bWFrZV9qaWQoVXNlciwgU2VydmVyLCAiIiksCi0r ICAgIElRID0gI2lxe3R5cGUgPSBnZXQsIHhtbG5zID0gP05TX1ZDQVJEfSwKLSsgICAgSVFyID0g TW9kdWxlOkZ1bmN0aW9uKEpJRCwgSklELCBJUSksCi0rICAgIGNhc2UgSVFyI2lxLnN1Yl9lbCBv ZgotKwlbQTFdIC0+Ci0rCSAgICBjYXNlIGdldF92Y2FyZChEYXRhLCBBMSkgb2YKLSsJCWZhbHNl IC0+ICJFcnJvcjogbm9fdmFsdWUiOwotKwkJRWxlbSAtPiB4bWw6Z2V0X3RhZ19jZGF0YShFbGVt KQotKwkgICAgZW5kOwotKwlbXSAtPgotKwkgICAgIkVycm9yOiBub192Y2FyZCIKLSsgICAgZW5k LgotKwotK2dldF92Y2FyZChbRGF0YTEsIERhdGEyXSwgQTEpIC0+Ci0rICAgIGNhc2UgeG1sOmdl dF9zdWJ0YWcoQTEsIERhdGExKSBvZgotKyAgICAJZmFsc2UgLT4gZmFsc2U7Ci0rCUEyIC0+IGdl dF92Y2FyZChbRGF0YTJdLCBBMikKLSsgICAgZW5kOwotKwotK2dldF92Y2FyZChbRGF0YV0sIEEx KSAtPgotKyAgICB4bWw6Z2V0X3N1YnRhZyhBMSwgRGF0YSkuCi0rCi0rc2V0X3ZjYXJkX2NvbnRl bnQoVXNlciwgU2VydmVyLCBEYXRhLCBDb250ZW50KSAtPgotKyAgICBbe18sIE1vZHVsZSwgRnVu Y3Rpb24sIF9PcHRzfV0gPSBldHM6bG9va3VwKHNtX2lxdGFibGUsIHs/TlNfVkNBUkQsIFNlcnZl cn0pLAotKyAgICBKSUQgPSBqbGliOm1ha2VfamlkKFVzZXIsIFNlcnZlciwgIiIpLAotKyAgICBJ USA9ICNpcXt0eXBlID0gZ2V0LCB4bWxucyA9ID9OU19WQ0FSRH0sCi0rICAgIElRciA9IE1vZHVs ZTpGdW5jdGlvbihKSUQsIEpJRCwgSVEpLAotKwotKyAgICAlJSBHZXQgb2xkIHZjYXJkCi0rICAg IEE0ID0gY2FzZSBJUXIjaXEuc3ViX2VsIG9mCi0rCSAgICAgW0ExXSAtPgotKwkJIHtfLCBfLCBf LCBBMn0gPSBBMSwKLSsJCSB1cGRhdGVfdmNhcmRfZWxzKERhdGEsIENvbnRlbnQsIEEyKTsKLSsJ ICAgICBbXSAtPgotKwkJIHVwZGF0ZV92Y2FyZF9lbHMoRGF0YSwgQ29udGVudCwgW10pCi0rCSBl bmQsCi0rCi0rICAgICUlIEJ1aWxkIG5ldyB2Y2FyZAotKyAgICBTdWJFbCA9IHt4bWxlbGVtZW50 LCAidkNhcmQiLCBbeyJ4bWxucyIsInZjYXJkLXRlbXAifV0sIEE0fSwKLSsgICAgSVEyID0gI2lx e3R5cGU9c2V0LCBzdWJfZWwgPSBTdWJFbH0sCi0rCi0rICAgIE1vZHVsZTpGdW5jdGlvbihKSUQs IEpJRCwgSVEyKSwKLSsgICAgb2suCi0rCi0rdXBkYXRlX3ZjYXJkX2VscyhEYXRhLCBDb250ZW50 LCBFbHMxKSAtPgotKyAgICBFbHMyID0gbGlzdHM6a2V5c29ydCgyLCBFbHMxKSwKLSsgICAgW0Rh dGExIHwgRGF0YTJdID0gRGF0YSwKLSsgICAgTmV3RWwgPSBjYXNlIERhdGEyIG9mCi0rCQlbXSAt PgotKwkJICAgIHt4bWxlbGVtZW50LCBEYXRhMSwgW10sIFt7eG1sY2RhdGEsQ29udGVudH1dfTsK LSsJCVtEMl0gLT4KLSsJCSAgICBPbGRFbCA9IGNhc2UgbGlzdHM6a2V5c2VhcmNoKERhdGExLCAy LCBFbHMyKSBvZgotKwkJCQl7dmFsdWUsIEF9IC0+IEE7Ci0rCQkJCWZhbHNlIC0+IHt4bWxlbGVt ZW50LCBEYXRhMSwgW10sIFtdfQotKwkJCSAgICBlbmQsCi0rCQkgICAge3htbGVsZW1lbnQsIF8s IF8sIENvbnRlbnRPbGQxfSA9IE9sZEVsLAotKwkJICAgIENvbnRlbnQyID0gW3t4bWxlbGVtZW50 LCBEMiwgW10sIFt7eG1sY2RhdGEsQ29udGVudH1dfV0sCi0rCQkgICAgQ29udGVudE9sZDIgPSBs aXN0czprZXlzb3J0KDIsIENvbnRlbnRPbGQxKSwKLSsJCSAgICBDb250ZW50T2xkMyA9IGxpc3Rz OmtleWRlbGV0ZShEMiwgMiwgQ29udGVudE9sZDIpLAotKwkJICAgIENvbnRlbnROZXcgPSBsaXN0 czprZXltZXJnZSgyLCBDb250ZW50MiwgQ29udGVudE9sZDMpLAotKwkJICAgIHt4bWxlbGVtZW50 LCBEYXRhMSwgW10sIENvbnRlbnROZXd9Ci0rCSAgICBlbmQsCi0rICAgIEVsczMgPSBsaXN0czpr ZXlkZWxldGUoRGF0YTEsIDIsIEVsczIpLAotKyAgICBsaXN0czprZXltZXJnZSgyLCBbTmV3RWxd LCBFbHMzKS4KLSsKLSsKLSslJSUKLSslJSUgUm9zdGVyCi0rJSUlCi0rCi0rYWRkX3Jvc3Rlcml0 ZW0oTG9jYWxVc2VyLCBMb2NhbFNlcnZlciwgVXNlciwgU2VydmVyLCBOaWNrLCBHcm91cCwgU3Vi cykgLT4KLSsgICAgY2FzZSBhZGRfcm9zdGVyaXRlbShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBV c2VyLCBTZXJ2ZXIsIE5pY2ssIEdyb3VwLCBsaXN0X3RvX2F0b20oU3VicyksIFtdKSBvZgotKwl7 YXRvbWljLCBva30gLT4KLSsJICAgIHB1c2hfcm9zdGVyX2l0ZW0oTG9jYWxVc2VyLCBMb2NhbFNl cnZlciwgVXNlciwgU2VydmVyLCB7YWRkLCBOaWNrLCBTdWJzLCBHcm91cH0pLAotKwkgICAgb2s7 Ci0rCV8gLT4KLSsJICAgIGVycm9yCi0rICAgIGVuZC4KLSsKLSthZGRfcm9zdGVyaXRlbShMVSwg TFMsIFVzZXIsIFNlcnZlciwgTmljaywgR3JvdXAsIFN1YnNjcmlwdGlvbiwgWGF0dHJzKSAtPgot KyAgICBzdWJzY3JpYmUoTFUsIExTLCBVc2VyLCBTZXJ2ZXIsIE5pY2ssIEdyb3VwLCBTdWJzY3Jp cHRpb24sIFhhdHRycykuCi0rCi0rc3Vic2NyaWJlKExVLCBMUywgVXNlciwgU2VydmVyLCBOaWNr LCBHcm91cCwgU3Vic2NyaXB0aW9uLCBYYXR0cnMpIC0+Ci0rICAgIG1uZXNpYTp0cmFuc2FjdGlv bigKLSsgICAgICBmdW4oKSAtPgotKwkgICAgICBtbmVzaWE6d3JpdGUoe3Jvc3RlciwKLSsJCQkg ICAge0xVLExTLHtVc2VyLFNlcnZlcixbXX19LCAlIHVqCi0rCQkJICAgIHtMVSxMU30sICAgICAg ICAgICAgICAgICAgJSB1c2VyCi0rCQkJICAgIHtVc2VyLFNlcnZlcixbXX0sICAgICAgJSBqaWQK LSsJCQkgICAgTmljaywgICAgICAgICAgICAgICAgICAlIG5hbWU6ICJNb20iLCBbXQotKwkJCSAg ICBTdWJzY3JpcHRpb24sICAlIHN1YnNjcmlwdGlvbjogbm9uZSwgdG89eW91IHNlZSBoaW0sIGZy b209aGUgc2VlcyB5b3UsIGJvdGgKLSsJCQkgICAgbm9uZSwgICAgICAgICAgJSBhc2s6IG91dD1z ZW5kIHJlcXVlc3QsIGluPXNvbWVib2R5IHJlcXVlc3RzIHlvdSwgbm9uZQotKwkJCSAgICBbR3Jv dXBdLCAgICAgICAlIGdyb3VwczogWyJGYW1pbHkiXQotKwkJCSAgICBYYXR0cnMsICAgICAgICAl IHhhdHRyczogW3siY2F0ZWdvcnkiLCJjb25mZXJlbmNlIn1dCi0rCQkJICAgIFtdICAgICAgICAg ICAgICUgeHM6IFtdCi0rCQkJICAgfSkKLSsgICAgICBlbmQpLgotKwotK2RlbGV0ZV9yb3N0ZXJp dGVtKExvY2FsVXNlciwgTG9jYWxTZXJ2ZXIsIFVzZXIsIFNlcnZlcikgLT4KLSsgICAgY2FzZSB1 bnN1YnNjcmliZShMb2NhbFVzZXIsIExvY2FsU2VydmVyLCBVc2VyLCBTZXJ2ZXIpIG9mCi0rCXth dG9taWMsIG9rfSAtPgotKwkgICAgcHVzaF9yb3N0ZXJfaXRlbShMb2NhbFVzZXIsIExvY2FsU2Vy dmVyLCBVc2VyLCBTZXJ2ZXIsIHJlbW92ZSksCi0rCSAgICBvazsKLSsJXyAgLT4KLSsJICAgIGVy cm9yCi0rICAgIGVuZC4KLSsKLSt1bnN1YnNjcmliZShMVSwgTFMsIFVzZXIsIFNlcnZlcikgLT4K LSsgICAgbW5lc2lhOnRyYW5zYWN0aW9uKAotKyAgICAgIGZ1bigpIC0+Ci0rICAgICAgICAgICAg ICBtbmVzaWE6ZGVsZXRlKHtyb3N0ZXIsIHtMVSwgTFMsIHtVc2VyLCBTZXJ2ZXIsIFtdfX19KQot KyAgICAgIGVuZCkuCi0rCi0rCi0rJSUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsl JSBHZXQgUm9zdGVyCi0rJSUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLStnZXRf cm9zdGVyKFVzZXIsIFNlcnZlcikgLT4KLSsgICAge29rLCBSb3N0ZXJ9ID0gZ2V0X3Jvc3RlcjIo VXNlciwgU2VydmVyKSwKLSsgICAgbWFrZV9yb3N0ZXJfeG1scnBjKFJvc3RlcikuCi0rCi0rZ2V0 X3Jvc3RlcjIoVXNlciwgU2VydmVyKSAtPgotKyAgICBNb2R1bGVzID0gZ2VuX21vZDpsb2FkZWRf bW9kdWxlcyhTZXJ2ZXIpLAotKyAgICBSb3N0ZXIgPSBjYXNlIGxpc3RzOm1lbWJlcihtb2Rfcm9z dGVyLCBNb2R1bGVzKSBvZgotKwkJIHRydWUgLT4KLSsJCSAgICAgbW9kX3Jvc3RlcjpnZXRfdXNl cl9yb3N0ZXIoW10sIHtVc2VyLCBTZXJ2ZXJ9KTsKLSsJCSBmYWxzZSAtPgotKwkJICAgICBjYXNl IGxpc3RzOm1lbWJlcihtb2Rfcm9zdGVyX29kYmMsIE1vZHVsZXMpIG9mCi0rCQkJIHRydWUgLT4K LSsJCQkgICAgIG1vZF9yb3N0ZXJfb2RiYzpnZXRfdXNlcl9yb3N0ZXIoW10sIHtVc2VyLCBTZXJ2 ZXJ9KTsKLSsJCQkgZmFsc2UgLT4KLSsJCQkgICAgIHtlcnJvciwgIk5laXRoZXIgbW9kX3Jvc3Rl ciBvciBtb2Rfcm9zdGVyX29kYmMgYXJlIGVuYWJsZWQifQotKwkJICAgICBlbmQKLSsJICAgICBl bmQsCi0rICAgIHtvaywgUm9zdGVyfS4KLSsKLSslJSBOb3RlOiBpZiBhIGNvbnRhY3QgaXMgaW4g c2V2ZXJhbCBncm91cHMsIHRoZSBjb250YWN0IGlzIHJldHVybmVkCi0rJSUgc2V2ZXJhbCB0aW1l cywgZWFjaCBvbmUgaW4gYSBkaWZmZXJlbnQgZ3JvdXAuCi0rbWFrZV9yb3N0ZXJfeG1scnBjKFJv c3RlcikgLT4KLSsgICAgbGlzdHM6Zm9sZGwoCi0rICAgICAgZnVuKEl0ZW0sIFJlcykgLT4KLSsJ ICAgICAgSklEUyA9IGpsaWI6amlkX3RvX3N0cmluZyhJdGVtI3Jvc3Rlci5qaWQpLAotKwkgICAg ICBOaWNrID0gSXRlbSNyb3N0ZXIubmFtZSwKLSsJICAgICAgR3JvdXBzID0gY2FzZSBJdGVtI3Jv c3Rlci5ncm91cHMgb2YKLSsJCQkgICBbXSAtPiBbIiJdOwotKwkJCSAgIEdzIC0+IEdzCi0rCQkg ICAgICAgZW5kLAotKwkgICAgICBJdGVtc1ggPSBbe0pJRFMsIE5pY2ssIEdyb3VwfQotKwkJCXx8 IEdyb3VwIDwtIEdyb3Vwc10sCi0rCSAgICAgIEl0ZW1zWCArKyBSZXMKLSsgICAgICBlbmQsCi0r ICAgICAgW10sCi0rICAgICAgUm9zdGVyKS4KLSsKLSsKLSslJS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rJSUgUHVzaCBSb3N0ZXIgZnJvbSBmaWxlCi0rJSUtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKwotK3B1c2hfcm9zdGVyKEZpbGUsIFVzZXIsIFNlcnZlcikgLT4KLSsg ICAge29rLCBbUm9zdGVyXX0gPSBmaWxlOmNvbnN1bHQoRmlsZSksCi0rICAgIHN1YnNjcmliZV9y b3N0ZXIoe1VzZXIsIFNlcnZlciwgIiIsIFVzZXJ9LCBSb3N0ZXIpLgotKwotK3B1c2hfcm9zdGVy X2FsbChGaWxlKSAtPgotKyAgICB7b2ssIFtSb3N0ZXJdfSA9IGZpbGU6Y29uc3VsdChGaWxlKSwK LSsgICAgc3Vic2NyaWJlX2FsbChSb3N0ZXIpLgotKwotK3N1YnNjcmliZV9hbGwoUm9zdGVyKSAt PgotKyAgICBzdWJzY3JpYmVfYWxsKFJvc3RlciwgUm9zdGVyKS4KLStzdWJzY3JpYmVfYWxsKFtd LCBfKSAtPgotKyAgICBvazsKLStzdWJzY3JpYmVfYWxsKFtVc2VyMSB8IFVzZXJzXSwgUm9zdGVy KSAtPgotKyAgICBzdWJzY3JpYmVfcm9zdGVyKFVzZXIxLCBSb3N0ZXIpLAotKyAgICBzdWJzY3Jp YmVfYWxsKFVzZXJzLCBSb3N0ZXIpLgotKwotK3N1YnNjcmliZV9yb3N0ZXIoXywgW10pIC0+Ci0r ICAgIG9rOwotKyUlIERvIG5vdCBzdWJzY3JpYmUgYSB1c2VyIHRvIGl0c2VsZgotK3N1YnNjcmli ZV9yb3N0ZXIoe05hbWUsIFNlcnZlciwgR3JvdXAsIE5pY2t9LCBbe05hbWUsIFNlcnZlciwgXywg X30gfCBSb3N0ZXJdKSAtPgotKyAgICBzdWJzY3JpYmVfcm9zdGVyKHtOYW1lLCBTZXJ2ZXIsIEdy b3VwLCBOaWNrfSwgUm9zdGVyKTsKLSslJSBTdWJzY3JpYmUgTmFtZTIgdG8gTmFtZTEKLStzdWJz Y3JpYmVfcm9zdGVyKHtOYW1lMSwgU2VydmVyMSwgR3JvdXAxLCBOaWNrMX0sIFt7TmFtZTIsIFNl cnZlcjIsIEdyb3VwMiwgTmljazJ9IHwgUm9zdGVyXSkgLT4KLSsgICAgc3Vic2NyaWJlKE5hbWUx LCBTZXJ2ZXIxLCBOYW1lMiwgU2VydmVyMiwgTmljazIsIEdyb3VwMiwgYm90aCwgW10pLAotKyAg ICBzdWJzY3JpYmVfcm9zdGVyKHtOYW1lMSwgU2VydmVyMSwgR3JvdXAxLCBOaWNrMX0sIFJvc3Rl cikuCi0rCi0rcHVzaF9hbGx0b2FsbChTLCBHKSAtPgotKyAgICBVc2VycyA9IGVqYWJiZXJkX2F1 dGg6Z2V0X3ZoX3JlZ2lzdGVyZWRfdXNlcnMoUyksCi0rICAgIFVzZXJzMiA9IGJ1aWxkX2xpc3Rf dXNlcnMoRywgVXNlcnMsIFtdKSwKLSsgICAgc3Vic2NyaWJlX2FsbChVc2VyczIpLAotKyAgICBv ay4KLSsKLStidWlsZF9saXN0X3VzZXJzKF9Hcm91cCwgW10sIFJlcykgLT4KLSsgICAgUmVzOwot K2J1aWxkX2xpc3RfdXNlcnMoR3JvdXAsIFt7VXNlciwgU2VydmVyfXxVc2Vyc10sIFJlcykgLT4K LSsgICAgYnVpbGRfbGlzdF91c2VycyhHcm91cCwgVXNlcnMsIFt7VXNlciwgU2VydmVyLCBHcm91 cCwgVXNlcn18UmVzXSkuCi0rCi0rJSUgQHNwZWMoTFUsIExTLCBVLCBTLCBBY3Rpb24pIC0+IG9r Ci0rJSUgICAgICAgQWN0aW9uID0ge2FkZCwgTmljaywgU3VicywgR3JvdXB9IHwgcmVtb3ZlCi0r JSUgQGRvYyBQdXNoIHRvIHRoZSByb3N0ZXIgb2YgYWNjb3VudCBMVUBMUyB0aGUgY29udGFjdCBV QFMuCi0rJSUgVGhlIHNwZWNpZmljIGFjdGlvbiB0byBwZXJmb3JtIGlzIGRlZmluZWQgaW4gQWN0 aW9uLgotK3B1c2hfcm9zdGVyX2l0ZW0oTFUsIExTLCBVLCBTLCBBY3Rpb24pIC0+Ci0rICAgIGxp c3RzOmZvcmVhY2goZnVuKFIpIC0+Ci0rCQkJICBwdXNoX3Jvc3Rlcl9pdGVtKExVLCBMUywgUiwg VSwgUywgQWN0aW9uKQotKwkJICBlbmQsIGVqYWJiZXJkX3NtOmdldF91c2VyX3Jlc291cmNlcyhM VSwgTFMpKS4KLSsKLStwdXNoX3Jvc3Rlcl9pdGVtKExVLCBMUywgUiwgVSwgUywgQWN0aW9uKSAt PgotKyAgICBJdGVtID0gYnVpbGRfcm9zdGVyX2l0ZW0oVSwgUywgQWN0aW9uKSwKLSsgICAgUmVz SVEgPSBidWlsZF9pcV9yb3N0ZXJfcHVzaChJdGVtKSwKLSsgICAgTEpJRCA9IGpsaWI6bWFrZV9q aWQoTFUsIExTLCBSKSwKLSsgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKExKSUQsIExKSUQsIFJl c0lRKS4KLSsKLStidWlsZF9yb3N0ZXJfaXRlbShVLCBTLCB7YWRkLCBOaWNrLCBTdWJzLCBHcm91 cH0pIC0+Ci0rICAgIHt4bWxlbGVtZW50LCAiaXRlbSIsCi0rICAgICBbeyJqaWQiLCBqbGliOmpp ZF90b19zdHJpbmcoamxpYjptYWtlX2ppZChVLCBTLCAiIikpfSwKLSsgICAgICB7Im5hbWUiLCBO aWNrfSwKLSsgICAgICB7InN1YnNjcmlwdGlvbiIsIFN1YnN9XSwKLSsgICAgIFt7eG1sZWxlbWVu dCwgImdyb3VwIiwgW10sIFt7eG1sY2RhdGEsIEdyb3VwfV19XQotKyAgICB9OwotK2J1aWxkX3Jv c3Rlcl9pdGVtKFUsIFMsIHJlbW92ZSkgLT4KLSsgICAge3htbGVsZW1lbnQsICJpdGVtIiwKLSsg ICAgIFt7ImppZCIsIGpsaWI6amlkX3RvX3N0cmluZyhqbGliOm1ha2VfamlkKFUsIFMsICIiKSl9 LAotKyAgICAgIHsic3Vic2NyaXB0aW9uIiwgInJlbW92ZSJ9XSwKLSsgICAgIFtdCi0rICAgIH0u Ci0rCi0rYnVpbGRfaXFfcm9zdGVyX3B1c2goSXRlbSkgLT4KLSsgICAge3htbGVsZW1lbnQsICJp cSIsCi0rICAgICBbeyJ0eXBlIiwgInNldCJ9LCB7ImlkIiwgInB1c2gifV0sCi0rICAgICBbe3ht bGVsZW1lbnQsICJxdWVyeSIsCi0rICAgICAgIFt7InhtbG5zIiwgP05TX1JPU1RFUn1dLAotKyAg ICAgICBbSXRlbV0KLSsgICAgICB9Ci0rICAgICBdCi0rICAgIH0uCi0rCi0rCi0rJSUlCi0rJSUl IFNoYXJlZCBSb3N0ZXIgR3JvdXBzCi0rJSUlCi0rCi0rc3JnX2NyZWF0ZShHcm91cCwgSG9zdCwg TmFtZSwgRGVzY3JpcHRpb24sIERpc3BsYXkpIC0+Ci0rICAgIHtvaywgRGlzcGxheUxpc3R9ID0g cmVnZXhwOnNwbGl0KERpc3BsYXksICJcXFxcbiIpLAotKyAgICBPcHRzID0gW3tuYW1lLCBOYW1l fSwKLSsJICAgIHtkaXNwbGF5ZWRfZ3JvdXBzLCBEaXNwbGF5TGlzdH0sCi0rCSAgICB7ZGVzY3Jp cHRpb24sIERlc2NyaXB0aW9ufV0sCi0rICAgIHthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9z dGVyOmNyZWF0ZV9ncm91cChIb3N0LCBHcm91cCwgT3B0cyksCi0rICAgIG9rLgotKwotK3NyZ19k ZWxldGUoR3JvdXAsIEhvc3QpIC0+Ci0rICAgIHthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9z dGVyOmRlbGV0ZV9ncm91cChIb3N0LCBHcm91cCksCi0rICAgIG9rLgotKwotK3NyZ19saXN0KEhv c3QpIC0+Ci0rICAgIGxpc3RzOnNvcnQobW9kX3NoYXJlZF9yb3N0ZXI6bGlzdF9ncm91cHMoSG9z dCkpLgotKwotK3NyZ19nZXRfaW5mbyhHcm91cCwgSG9zdCkgLT4KLSsgICAgT3B0cyA9IG1vZF9z aGFyZWRfcm9zdGVyOmdldF9ncm91cF9vcHRzKEhvc3QsR3JvdXApLAotKyAgICBbe2lvX2xpYjpm b3JtYXQoIn5wIiwgW1RpdGxlXSksCi0rICAgICAgaW9fbGliOmZvcm1hdCgifnAiLCBbVmFsdWVd KX0gfHwge1RpdGxlLCBWYWx1ZX0gPC0gT3B0c10uCi0rCi0rc3JnX2dldF9tZW1iZXJzKEdyb3Vw LCBIb3N0KSAtPgotKyAgICBNZW1iZXJzID0gbW9kX3NoYXJlZF9yb3N0ZXI6Z2V0X2dyb3VwX2V4 cGxpY2l0X3VzZXJzKEhvc3QsR3JvdXApLAotKyAgICBbamxpYjpqaWRfdG9fc3RyaW5nKGpsaWI6 bWFrZV9qaWQoTVVzZXIsIE1TZXJ2ZXIsICIiKSkKLSsgICAgIHx8IHtNVXNlciwgTVNlcnZlcn0g PC0gTWVtYmVyc10uCi0rCi0rc3JnX3VzZXJfYWRkKFVzZXIsIEhvc3QsIEdyb3VwLCBHcm91cEhv c3QpIC0+Ci0rICAgIHthdG9taWMsIG9rfSA9IG1vZF9zaGFyZWRfcm9zdGVyOmFkZF91c2VyX3Rv X2dyb3VwKEdyb3VwSG9zdCwge1VzZXIsIEhvc3R9LCBHcm91cCksCi0rICAgIG9rLgotKwotK3Ny Z191c2VyX2RlbChVc2VyLCBIb3N0LCBHcm91cCwgR3JvdXBIb3N0KSAtPgotKyAgICB7YXRvbWlj LCBva30gPSBtb2Rfc2hhcmVkX3Jvc3RlcjpyZW1vdmVfdXNlcl9mcm9tX2dyb3VwKEdyb3VwSG9z dCwge1VzZXIsIEhvc3R9LCBHcm91cCksCi0rICAgIG9rLgotKwotKwotKyUlJQotKyUlJSBTdGFu emEKLSslJSUKLSsKLSslJSBAZG9jIFNlbmQgYSBjaGF0IG1lc3NhZ2UgdG8gYSBKYWJiZXIgYWNj b3VudC4KLSslJSBAc3BlYyAoRnJvbTo6c3RyaW5nKCksIFRvOjpzdHJpbmcoKSwgQm9keTo6c3Ry aW5nKCkpIC0+IG9rCi0rc2VuZF9tZXNzYWdlX2NoYXQoRnJvbSwgVG8sIEJvZHkpIC0+Ci0rICAg IFBhY2tldCA9IGJ1aWxkX3BhY2tldChtZXNzYWdlX2NoYXQsIFtCb2R5XSksCi0rICAgIHNlbmRf cGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbSwgVG8sIFBhY2tldCkuCi0rCi0rJSUgQGRvYyBTZW5k IGEgaGVhZGxpbmUgbWVzc2FnZSB0byBhIEphYmJlciBhY2NvdW50LgotKyUlIEBzcGVjIChGcm9t OjpzdHJpbmcoKSwgVG86OnN0cmluZygpLCBTdWJqZWN0OjpzdHJpbmcoKSwgQm9keTo6c3RyaW5n KCkpIC0+IG9rCi0rc2VuZF9tZXNzYWdlX2hlYWRsaW5lKEZyb20sIFRvLCBTdWJqZWN0LCBCb2R5 KSAtPgotKyAgICBQYWNrZXQgPSBidWlsZF9wYWNrZXQobWVzc2FnZV9oZWFkbGluZSwgW1N1Ympl Y3QsIEJvZHldKSwKLSsgICAgc2VuZF9wYWNrZXRfYWxsX3Jlc291cmNlcyhGcm9tLCBUbywgUGFj a2V0KS4KLSsKLSslJSBAZG9jIFNlbmQgYSBwYWNrZXQgdG8gYSBKYWJiZXIgYWNjb3VudC4KLSsl JSBJZiBhIHJlc291cmNlIHdhcyBzcGVjaWZpZWQgaW4gdGhlIEpJRCwKLSslJSB0aGUgcGFja2V0 IGlzIHNlbnQgb25seSB0byB0aGF0IHNwZWNpZmljIHJlc291cmNlLgotKyUlIElmIG5vIHJlc291 cmNlIHdhcyBzcGVjaWZpZWQgaW4gdGhlIEpJRCwKLSslJSBhbmQgdGhlIHVzZXIgaXMgcmVtb3Rl IG9yIGxvY2FsIGJ1dCBvZmZsaW5lLAotKyUlIHRoZSBwYWNrZXQgaXMgc2VudCB0byB0aGUgYmFy ZSBKSUQuCi0rJSUgSWYgdGhlIHVzZXIgaXMgbG9jYWwgYW5kIGlzIG9ubGluZSBpbiBzZXZlcmFs IHJlc291cmNlcywKLSslJSB0aGUgcGFja2V0IGlzIHNlbnQgdG8gYWxsIGl0cyByZXNvdXJjZXMu Ci0rc2VuZF9wYWNrZXRfYWxsX3Jlc291cmNlcyhGcm9tSklEU3RyaW5nLCBUb0pJRFN0cmluZywg UGFja2V0KSAtPgotKyAgICBGcm9tSklEID0gamxpYjpzdHJpbmdfdG9famlkKEZyb21KSURTdHJp bmcpLAotKyAgICBUb0pJRCA9IGpsaWI6c3RyaW5nX3RvX2ppZChUb0pJRFN0cmluZyksCi0rICAg IFRvVXNlciA9IFRvSklEI2ppZC51c2VyLAotKyAgICBUb1NlcnZlciA9IFRvSklEI2ppZC5zZXJ2 ZXIsCi0rICAgIGNhc2UgVG9KSUQjamlkLnJlc291cmNlIG9mCi0rCSIiIC0+Ci0rCSAgICBzZW5k X3BhY2tldF9hbGxfcmVzb3VyY2VzKEZyb21KSUQsIFRvVXNlciwgVG9TZXJ2ZXIsIFBhY2tldCk7 Ci0rCVJlcyAtPgotKwkgICAgc2VuZF9wYWNrZXRfYWxsX3Jlc291cmNlcyhGcm9tSklELCBUb1Vz ZXIsIFRvU2VydmVyLCBSZXMsIFBhY2tldCkKLSsgICAgZW5kLgotKwotK3NlbmRfcGFja2V0X2Fs bF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9Vc2VyLCBUb1NlcnZlciwgUGFja2V0KSAtPgotKyAgICBj YXNlIGVqYWJiZXJkX3NtOmdldF91c2VyX3Jlc291cmNlcyhUb1VzZXIsIFRvU2VydmVyKSBvZgot KwlbXSAtPgotKwkgICAgc2VuZF9wYWNrZXRfYWxsX3Jlc291cmNlcyhGcm9tSklELCBUb1VzZXIs IFRvU2VydmVyLCAiIiwgUGFja2V0KTsKLSsJVG9SZXNvdXJjZXMgLT4KLSsJICAgIGxpc3RzOmZv cmVhY2goCi0rCSAgICAgIGZ1bihUb1Jlc291cmNlKSAtPgotKwkJICAgICAgc2VuZF9wYWNrZXRf YWxsX3Jlc291cmNlcyhGcm9tSklELCBUb1VzZXIsIFRvU2VydmVyLAotKwkJCQkJCVRvUmVzb3Vy Y2UsIFBhY2tldCkKLSsJICAgICAgZW5kLAotKwkgICAgICBUb1Jlc291cmNlcykKLSsgICAgZW5k LgotKwotK3NlbmRfcGFja2V0X2FsbF9yZXNvdXJjZXMoRnJvbUpJRCwgVG9VLCBUb1MsIFRvUiwg UGFja2V0KSAtPgotKyAgICBUb0pJRCA9IGpsaWI6bWFrZV9qaWQoVG9VLCBUb1MsIFRvUiksCi0r ICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShGcm9tSklELCBUb0pJRCwgUGFja2V0KS4KLSsKLSsK LStidWlsZF9wYWNrZXQobWVzc2FnZV9jaGF0LCBbQm9keV0pIC0+Ci0rICAgIHt4bWxlbGVtZW50 LCAibWVzc2FnZSIsCi0rICAgICBbeyJ0eXBlIiwgImNoYXQifV0sCi0rICAgICBbe3htbGVsZW1l bnQsICJib2R5IiwgW10sIFt7eG1sY2RhdGEsIEJvZHl9XX1dCi0rICAgIH07Ci0rYnVpbGRfcGFj a2V0KG1lc3NhZ2VfaGVhZGxpbmUsIFtTdWJqZWN0LCBCb2R5XSkgLT4KLSsgICAge3htbGVsZW1l bnQsICJtZXNzYWdlIiwKLSsgICAgIFt7InR5cGUiLCAiaGVhZGxpbmUifV0sCi0rICAgICBbe3ht bGVsZW1lbnQsICJzdWJqZWN0IiwgW10sIFt7eG1sY2RhdGEsIFN1YmplY3R9XX0sCi0rICAgICAg e3htbGVsZW1lbnQsICJib2R5IiwgW10sIFt7eG1sY2RhdGEsIEJvZHl9XX0KLSsgICAgIF0KLSsg ICAgfS4KLSsKLSslJSUKLSslJSUgU3RhdHMKLSslJSUKLSsKLStzdGF0cyhOYW1lKSAtPgotKyAg ICBjYXNlIE5hbWUgb2YKLSsJInVwdGltZXNlY29uZHMiIC0+IHRydW5jKGVsZW1lbnQoMSwgZXJs YW5nOnN0YXRpc3RpY3Mod2FsbF9jbG9jaykpLzEwMDApOwotKwkicmVnaXN0ZXJlZHVzZXJzIiAt PiBsZW5ndGgoZWphYmJlcmRfYXV0aDpkaXJ0eV9nZXRfcmVnaXN0ZXJlZF91c2VycygpKTsKLSsJ Im9ubGluZXVzZXJzbm9kZSIgLT4gbGVuZ3RoKGVqYWJiZXJkX3NtOmRpcnR5X2dldF9teV9zZXNz aW9uc19saXN0KCkpOwotKwkib25saW5ldXNlcnMiIC0+IGxlbmd0aChlamFiYmVyZF9zbTpkaXJ0 eV9nZXRfc2Vzc2lvbnNfbGlzdCgpKQotKyAgICBlbmQuCi0rCi0rc3RhdHMoTmFtZSwgSG9zdCkg LT4KLSsgICAgY2FzZSBOYW1lIG9mCi0rCSJyZWdpc3RlcmVkdXNlcnMiIC0+IGxlbmd0aChlamFi YmVyZF9hdXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKEhvc3QpKTsKLSsJIm9ubGluZXVzZXJz IiAtPiBsZW5ndGgoZWphYmJlcmRfc206Z2V0X3ZoX3Nlc3Npb25fbGlzdChIb3N0KSkKLSsgICAg ZW5kLgotKwotKwotKwotKyUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSslJSBQdXJn ZSByb3N0ZXIgaXRlbXMKLSslJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0rcHJv Y2Vzc19yb3N0ZXJpdGVtcyhBY3Rpb25TLCBTdWJzUywgQXNrc1MsIFVzZXJzUywgQ29udGFjdHNT KSAtPgotKyAgICBBY3Rpb24gPSBjYXNlIEFjdGlvblMgb2YKLSsJCSAibGlzdCIgLT4gbGlzdDsK LSsJCSAiZGVsZXRlIiAtPiBkZWxldGUKLSsJICAgICBlbmQsCi0rCi0rICAgIFN1YnMgPSBsaXN0 czpmb2xkbCgKLSsJICAgICBmdW4oYW55LCBfKSAtPiBbbm9uZSwgZnJvbSwgdG8sIGJvdGhdOwot KwkJKFN1YiwgU3VicykgLT4gW1N1YiB8IFN1YnNdCi0rCSAgICAgZW5kLAotKwkgICAgIFtdLAot KwkgICAgIFtsaXN0X3RvX2F0b20oUykgfHwgUyA8LSBzdHJpbmc6dG9rZW5zKFN1YnNTLCAiOiIp XQotKwkgICAgKSwKLSsKLSsgICAgQXNrcyA9IGxpc3RzOmZvbGRsKAotKwkgICAgIGZ1bihhbnks IF8pIC0+IFtub25lLCBvdXQsIGluXTsKLSsJCShBc2ssIEFza3MpIC0+IFtBc2sgfCBBc2tzXQot KwkgICAgIGVuZCwKLSsJICAgICBbXSwKLSsJICAgICBbbGlzdF90b19hdG9tKFMpIHx8IFMgPC0g c3RyaW5nOnRva2VucyhBc2tzUywgIjoiKV0KLSsJICAgICksCi0rCi0rICAgIFVzZXJzID0gbGlz dHM6Zm9sZGwoCi0rCSAgICAgIGZ1bigiYW55IiwgXykgLT4gWyIqIiwgIipAKiJdOwotKwkJIChV LCBVcykgLT4gW1UgfCBVc10KLSsJICAgICAgZW5kLAotKwkgICAgICBbXSwKLSsJICAgICAgW1Mg fHwgUyA8LSBzdHJpbmc6dG9rZW5zKFVzZXJzUywgIjoiKV0KLSsJICAgICApLAotKwotKyAgICBD b250YWN0cyA9IGxpc3RzOmZvbGRsKAotKwkJIGZ1bigiYW55IiwgXykgLT4gWyIqIiwgIipAKiJd OwotKwkJICAgIChVLCBVcykgLT4gW1UgfCBVc10KLSsJCSBlbmQsCi0rCQkgW10sCi0rCQkgW1Mg fHwgUyA8LSBzdHJpbmc6dG9rZW5zKENvbnRhY3RzUywgIjoiKV0KLSsJCSksCi0rCi0rICAgIGNh c2Ugcm9zdGVyaXRlbV9wdXJnZSh7QWN0aW9uLCBTdWJzLCBBc2tzLCBVc2VycywgQ29udGFjdHN9 KSBvZgotKwl7YXRvbWljLCBva30gLT4KLSsJICAgIG9rOwotKwl7ZXJyb3IsIFJlYXNvbn0gLT4K LSsJICAgIGlvOmZvcm1hdCgiRXJyb3IgcHVyZ2luZyByb3N0ZXJpdGVtczogfnB+biIsIFtSZWFz b25dKSwKLSsJICAgIGVycm9yOwotKwl7YmFkcnBjLCBSZWFzb259IC0+Ci0rCSAgICBpbzpmb3Jt YXQoIkJhZFJQQyBwdXJnaW5nIHJvc3Rlcml0ZW1zOiB+cH5uIiwgW1JlYXNvbl0pLAotKwkgICAg ZXJyb3IKLSsgICAgZW5kLgotKwotKyUlIEBzcGVjICh7QWN0aW9uOjphdG9tKCksIFN1YnM6Olth dG9tKCldLCBBc2tzOjpbYXRvbSgpXSwgVXNlcjo6c3RyaW5nKCksIENvbnRhY3Q6OnN0cmluZygp fSkgLT4ge2F0b21pYywgb2t9Ci0rcm9zdGVyaXRlbV9wdXJnZShPcHRpb25zKSAtPgotKyAgICBO dW1fcm9zdGVyaXRlbXMgPSBtbmVzaWE6dGFibGVfaW5mbyhyb3N0ZXIsIHNpemUpLAotKyAgICBp bzpmb3JtYXQoIlRoZXJlIGFyZSB+cCByb3N0ZXIgaXRlbXMgaW4gdG90YWwufm4iLCBbTnVtX3Jv c3Rlcml0ZW1zXSksCi0rICAgIEtleSA9IG1uZXNpYTpkaXJ0eV9maXJzdChyb3N0ZXIpLAotKyAg ICBvayA9IHJpcChLZXksIE9wdGlvbnMsIHswLCBOdW1fcm9zdGVyaXRlbXMsIDAsIDB9KSwKLSsg ICAge2F0b21pYywgb2t9LgotKwotK3JpcCgnJGVuZF9vZl90YWJsZScsIF9PcHRpb25zLCBDb3Vu dGVycykgLT4KLSsgICAgcHJpbnRfcHJvZ3Jlc3NfbGluZShDb3VudGVycyksCi0rICAgIG9rOwot K3JpcChLZXksIE9wdGlvbnMsIHtQciwgTlQsIE5WLCBORH0pIC0+Ci0rICAgIEtleV9uZXh0ID0g bW5lc2lhOmRpcnR5X25leHQocm9zdGVyLCBLZXkpLAotKyAgICB7QWN0aW9uLCBfLCBfLCBfLCBf fSA9IE9wdGlvbnMsCi0rICAgIE5EMiA9IGNhc2UgZGVjaWRlX3JpcChLZXksIE9wdGlvbnMpIG9m Ci0rCSAgICAgIHRydWUgLT4KLSsJCSAgYXBwbHlfYWN0aW9uKEFjdGlvbiwgS2V5KSwKLSsJCSAg TkQrMTsKLSsJICAgICAgZmFsc2UgLT4KLSsJCSAgTkQKLSsJICBlbmQsCi0rICAgIE5WMiA9IE5W KzEsCi0rICAgIFByMiA9IHByaW50X3Byb2dyZXNzX2xpbmUoe1ByLCBOVCwgTlYyLCBORDJ9KSwK LSsgICAgcmlwKEtleV9uZXh0LCBPcHRpb25zLCB7UHIyLCBOVCwgTlYyLCBORDJ9KS4KLSsKLSth cHBseV9hY3Rpb24obGlzdCwgS2V5KSAtPgotKyAgICB7VXNlciwgU2VydmVyLCBKSUR9ID0gS2V5 LAotKyAgICB7UlVzZXIsIFJTZXJ2ZXIsIF99ID0gSklELAotKyAgICBpbzpmb3JtYXQoIk1hdGNo ZXM6IH5zQH5zIH5zQH5zfm4iLCBbVXNlciwgU2VydmVyLCBSVXNlciwgUlNlcnZlcl0pOwotK2Fw cGx5X2FjdGlvbihkZWxldGUsIEtleSkgLT4KLSsgICAgYXBwbHlfYWN0aW9uKGxpc3QsIEtleSks Ci0rICAgIG1uZXNpYTpkaXJ0eV9kZWxldGUocm9zdGVyLCBLZXkpLgotKwotK3ByaW50X3Byb2dy ZXNzX2xpbmUoe1ByLCBOVCwgTlYsIE5EfSkgLT4KLSsgICAgUHIyID0gdHJ1bmMoKE5WL05UKSox MDApLAotKyAgICBjYXNlIFByID09IFByMiBvZgotKwl0cnVlIC0+Ci0rCSAgICBvazsKLSsJZmFs c2UgLT4KLSsJICAgIGlvOmZvcm1hdCgiUHJvZ3Jlc3MgfnAlIC0gdmlzaXRlZCB+cCAtIGRlbGV0 ZWQgfnB+biIsIFtQcjIsIE5WLCBORF0pCi0rICAgIGVuZCwKLSsgICAgUHIyLgotKwotK2RlY2lk ZV9yaXAoS2V5LCB7X0FjdGlvbiwgU3VicywgQXNrcywgVXNlciwgQ29udGFjdH0pIC0+Ci0rICAg IGNhc2UgY2F0Y2ggbW5lc2lhOmRpcnR5X3JlYWQocm9zdGVyLCBLZXkpIG9mCi0rCVtSSV0gLT4K LSsJICAgIGxpc3RzOm1lbWJlcihSSSNyb3N0ZXIuc3Vic2NyaXB0aW9uLCBTdWJzKQotKwkJYW5k YWxzbyBsaXN0czptZW1iZXIoUkkjcm9zdGVyLmFzaywgQXNrcykKLSsJCWFuZGFsc28gZGVjaWRl X3JpcF9qaWQoUkkjcm9zdGVyLnVzLCBVc2VyKQotKwkJYW5kYWxzbyBkZWNpZGVfcmlwX2ppZChS SSNyb3N0ZXIuamlkLCBDb250YWN0KTsKLSsJXyAtPgotKwkgICAgZmFsc2UKLSsgICAgZW5kLgot KwotKyUlIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2VydmVyIG9mIHRoZSBKSUQgaXMgaW5jbHVkZWQg aW4gdGhlIHNlcnZlcnMKLStkZWNpZGVfcmlwX2ppZCh7VU5hbWUsIFVTZXJ2ZXIsIF9VUmVzb3Vy Y2V9LCBNYXRjaF9saXN0KSAtPgotKyAgICBkZWNpZGVfcmlwX2ppZCh7VU5hbWUsIFVTZXJ2ZXJ9 LCBNYXRjaF9saXN0KTsKLStkZWNpZGVfcmlwX2ppZCh7VU5hbWUsIFVTZXJ2ZXJ9LCBNYXRjaF9s aXN0KSAtPgotKyAgICBsaXN0czphbnkoCi0rICAgICAgZnVuKE1hdGNoX3N0cmluZykgLT4KLSsJ ICAgICAgTUpJRCA9IGpsaWI6c3RyaW5nX3RvX2ppZChNYXRjaF9zdHJpbmcpLAotKwkgICAgICBN TmFtZSA9IE1KSUQjamlkLmx1c2VyLAotKwkgICAgICBNU2VydmVyID0gTUpJRCNqaWQubHNlcnZl ciwKLSsJICAgICAgSXNfc2VydmVyID0gaXNfZ2xvYl9tYXRjaChVU2VydmVyLCBNU2VydmVyKSwK LSsJICAgICAgY2FzZSBNTmFtZSBvZgotKwkJICBbXSB3aGVuIFVOYW1lID09IFtdIC0+Ci0rCQkg ICAgICBJc19zZXJ2ZXI7Ci0rCQkgIFtdIC0+Ci0rCQkgICAgICBmYWxzZTsKLSsJCSAgXyAtPgot KwkJICAgICAgSXNfc2VydmVyCi0rCQkJICBhbmRhbHNvIGlzX2dsb2JfbWF0Y2goVU5hbWUsIE1O YW1lKQotKwkgICAgICBlbmQKLSsgICAgICBlbmQsCi0rICAgICAgTWF0Y2hfbGlzdCkuCi0rCi0r JSUgQ29waWVkIGZyb20gZWphYmJlcmQtMi4wLjAvc3JjL2FjbC5lcmwKLStpc19yZWdleHBfbWF0 Y2goU3RyaW5nLCBSZWdFeHApIC0+Ci0rICAgIGNhc2UgcmVnZXhwOmZpcnN0X21hdGNoKFN0cmlu ZywgUmVnRXhwKSBvZgotKwlub21hdGNoIC0+Ci0rCSAgICBmYWxzZTsKLSsJe21hdGNoLCBfLCBf fSAtPgotKwkgICAgdHJ1ZTsKLSsJe2Vycm9yLCBFcnJEZXNjfSAtPgotKwkgICAgaW86Zm9ybWF0 KAotKwkgICAgICAiV3JvbmcgcmVnZXhwIH5wIGluIEFDTDogfnAiLAotKwkgICAgICBbUmVnRXhw LCBsaXN0czpmbGF0dGVuKHJlZ2V4cDpmb3JtYXRfZXJyb3IoRXJyRGVzYykpXSksCi0rCSAgICBm YWxzZQotKyAgICBlbmQuCi0raXNfZ2xvYl9tYXRjaChTdHJpbmcsIEdsb2IpIC0+Ci0rICAgIGlz X3JlZ2V4cF9tYXRjaChTdHJpbmcsIHJlZ2V4cDpzaF90b19hd2soR2xvYikpLgotLS0gCi0xLjcu MTAuMQotCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtMDAwNS1GZWRvcmEtc3BlY2lmaWMtY2hhbmdl cy10by1lamFiYmVyZGN0bC5wYXRjaCBiL2VqYWJiZXJkLTAwMDUtRmVkb3JhLXNwZWNpZmljLWNo YW5nZXMtdG8tZWphYmJlcmRjdGwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDFmNTk3NjAuLjAwMDAwMDAKLS0tIGEvZWphYmJlcmQtMDAwNS1GZWRvcmEtc3BlY2lmaWMtY2hh bmdlcy10by1lamFiYmVyZGN0bC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAK LUZyb20gMDAxMmQzYzk2OGMyYWVmM2NkNjU4ZDg0OTM2YmQ1MWJlZThlMzNjZSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+ Ci1EYXRlOiBUdWUsIDE2IEZlYiAyMDEwIDE2OjMwOjA1ICswMzAwCi1TdWJqZWN0OiBbUEFUQ0gg MDUvMTBdIEZlZG9yYS1zcGVjaWZpYyBjaGFuZ2VzIHRvIGVqYWJiZXJkY3RsCi0KLVNpZ25lZC1v ZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvZWph YmJlcmRjdGwudGVtcGxhdGUgfCAgICA4ICsrKystLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9lamFiYmVyZGN0 bC50ZW1wbGF0ZSBiL3NyYy9lamFiYmVyZGN0bC50ZW1wbGF0ZQotaW5kZXggMDk2MGY5YS4uYzIy NDc4YSAxMDA2NDQKLS0tLSBhL3NyYy9lamFiYmVyZGN0bC50ZW1wbGF0ZQotKysrIGIvc3JjL2Vq YWJiZXJkY3RsLnRlbXBsYXRlCi1AQCAtOSwxMCArOSwxMCBAQCBFUkxfTUFYX0VUU19UQUJMRVM9 MTQwMAotIAotICMgZGVmaW5lIGRlZmF1bHQgZW52aXJvbm1lbnQgdmFyaWFibGVzCi0gTk9ERT1l amFiYmVyZAotLUhPU1Q9bG9jYWxob3N0Ci0rSE9TVD1gaG9zdG5hbWUgLXMgMj4vZGV2L251bGwg fHwgZWNobyAibG9jYWxob3N0ImAKLSBFUkxBTkdfTk9ERT0kTk9ERUAkSE9TVAotIEVSTD1AZXJs QAotLUlOU1RBTExVU0VSPUBpbnN0YWxsdXNlckAKLStJTlNUQUxMVVNFUj1lamFiYmVyZAotIAot ICMgcGFyc2UgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMKLSBBUkdTPQotQEAgLTQ2LDcgKzQ2LDcg QEAgaWYgWyAiJExPR1NfRElSIiA9ICIiIF0gOyB0aGVuCi0gICAgIExPR1NfRElSPUBMT0NBTFNU QVRFRElSQC9sb2cvZWphYmJlcmQKLSBmaQotIGlmIFsgIiRTUE9PTERJUiIgPSAiIiBdIDsgdGhl bgotLSAgICBTUE9PTERJUj1ATE9DQUxTVEFURURJUkAvbGliL2VqYWJiZXJkCi0rICAgIFNQT09M RElSPUBMT0NBTFNUQVRFRElSQC9saWIvZWphYmJlcmQvc3Bvb2wKLSBmaQotIGlmIFsgIiRFSkFC QkVSRF9ET0NfUEFUSCIgPSAiIiBdIDsgdGhlbgotICAgICBFSkFCQkVSRF9ET0NfUEFUSD1ARE9D RElSQAotQEAgLTYyLDcgKzYyLDcgQEAgRUpJRD1gaWQgLWcgJElOU1RBTExVU0VSYAotIEVYRUNf Q01EPSJmYWxzZSIKLSBmb3IgR0lEIGluICRHSURTOyBkbwotICAgICBpZiBbICRHSUQgLWVxIDAg XSA7IHRoZW4KLS0JRVhFQ19DTUQ9InN1ICR7SU5TVEFMTFVTRVJ9IC1wIC1jIgotKwlFWEVDX0NN RD0iL3NiaW4vcnVudXNlciAtcyAvYmluL2Jhc2ggLXAgZWphYmJlcmQgLWMiCi0gICAgIGZpCi0g ZG9uZQotIGlmIFsgIiRJRCIgLWVxICIkRUpJRCIgXSA7IHRoZW4KLS0tIAotMS43LjEwLjEKLQoK ZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAwMDUtSW5zdGFsbC0uc28tb2JqZWN0cy13aXRoLTA3NTUt cGVybWlzc2lvbnMucGF0Y2ggYi9lamFiYmVyZC0wMDA1LUluc3RhbGwtLnNvLW9iamVjdHMtd2l0 aC0wNzU1LXBlcm1pc3Npb25zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmEyZDBlYzkKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC0wMDA1LUluc3RhbGwtLnNv LW9iamVjdHMtd2l0aC0wNzU1LXBlcm1pc3Npb25zLnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKK0Zy b20gOTI0ZGFiMjAyMTI2ZDc2NDRhOGU1MGU4MWQxYjJkZTIxODc1YmI3ZiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitE YXRlOiBTYXQsIDEyIEp1biAyMDEwIDE0OjE0OjUyICswNDAwCitTdWJqZWN0OiBbUEFUQ0ggNS84 XSBJbnN0YWxsICouc28gb2JqZWN0cyB3aXRoIDA3NTUgcGVybWlzc2lvbnMKKworU2lnbmVkLW9m Zi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4KKy0tLQorIHNyYy9NYWtl ZmlsZS5pbiB8ICAgIDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5pbiBiL3NyYy9NYWtlZmlsZS5p bgoraW5kZXggNDJhZjViMi4uNjRlZDg1NiAxMDA2NDQKKy0tLSBhL3NyYy9NYWtlZmlsZS5pbgor KysrIGIvc3JjL01ha2VmaWxlLmluCitAQCAtMjM3LDcgKzIzNyw3IEBAIGluc3RhbGw6IGFsbAor IAkjCisgCSMgQmluYXJ5IHN5c3RlbSBsaWJyYXJpZXMKKyAJaW5zdGFsbCAtZCAkKFNPRElSKQor LQlpbnN0YWxsIC1tIDY0NCAqLnNvICQoU09ESVIpCisrCWluc3RhbGwgLW0gNzU1ICouc28gJChT T0RJUikKKyAJIworIAkjIFRyYW5zbGF0ZWQgc3RyaW5ncworIAlpbnN0YWxsIC1kICQoTVNHU0RJ UikKKy0tIAorMS43LjEwLjQKKwoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAwMDYtSW5zdGFsbC0u c28tb2JqZWN0cy13aXRoLTA3NTUtcGVybWlzc2lvbnMucGF0Y2ggYi9lamFiYmVyZC0wMDA2LUlu c3RhbGwtLnNvLW9iamVjdHMtd2l0aC0wNzU1LXBlcm1pc3Npb25zLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBhYzFkZWI3Li4wMDAwMDAwCi0tLSBhL2VqYWJiZXJkLTAwMDYt SW5zdGFsbC0uc28tb2JqZWN0cy13aXRoLTA3NTUtcGVybWlzc2lvbnMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyNiArMCwwIEBACi1Gcm9tIDgyNTRlNDZjZjI3MTBlZGZjM2M0NWY5ZGEyMjdl NDYxM2UzNDI3OTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBQZXRlciBMZW1lbmtv diA8bGVtZW5rb3ZAZ21haWwuY29tPgotRGF0ZTogU2F0LCAxMiBKdW4gMjAxMCAxNDoxNDo1MiAr MDQwMAotU3ViamVjdDogW1BBVENIIDA2LzEwXSBJbnN0YWxsICouc28gb2JqZWN0cyB3aXRoIDA3 NTUgcGVybWlzc2lvbnMKLQotU2lnbmVkLW9mZi1ieTogUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292 QGdtYWlsLmNvbT4KLS0tLQotIHNyYy9NYWtlZmlsZS5pbiB8ICAgIDIgKy0KLSAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9N YWtlZmlsZS5pbiBiL3NyYy9NYWtlZmlsZS5pbgotaW5kZXggNDJhZjViMi4uNjRlZDg1NiAxMDA2 NDQKLS0tLSBhL3NyYy9NYWtlZmlsZS5pbgotKysrIGIvc3JjL01ha2VmaWxlLmluCi1AQCAtMjM3 LDcgKzIzNyw3IEBAIGluc3RhbGw6IGFsbAotIAkjCi0gCSMgQmluYXJ5IHN5c3RlbSBsaWJyYXJp ZXMKLSAJaW5zdGFsbCAtZCAkKFNPRElSKQotLQlpbnN0YWxsIC1tIDY0NCAqLnNvICQoU09ESVIp Ci0rCWluc3RhbGwgLW0gNzU1ICouc28gJChTT0RJUikKLSAJIwotIAkjIFRyYW5zbGF0ZWQgc3Ry aW5ncwotIAlpbnN0YWxsIC1kICQoTVNHU0RJUikKLS0tIAotMS43LjEwLjEKLQoKZGlmZiAtLWdp dCBhL2VqYWJiZXJkLTAwMDYtVXNlLXZlcnNpb25lZC1kaXJlY3RvcnktZm9yLXN0b3JpbmctZG9j cy5wYXRjaCBiL2VqYWJiZXJkLTAwMDYtVXNlLXZlcnNpb25lZC1kaXJlY3RvcnktZm9yLXN0b3Jp bmctZG9jcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTRhZDgx Ci0tLSAvZGV2L251bGwKKysrIGIvZWphYmJlcmQtMDAwNi1Vc2UtdmVyc2lvbmVkLWRpcmVjdG9y eS1mb3Itc3RvcmluZy1kb2NzLnBhdGNoCkBAIC0wLDAgKzEsMzUgQEAKK0Zyb20gODg5ZDY4YTI4 YjQ0NDJjZjcxZThjNGFkMzM1YTk4NzE4NDAyZjRhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDEy IEp1biAyMDEwIDE2OjEyOjExICswNDAwCitTdWJqZWN0OiBbUEFUQ0ggNi84XSBVc2UgdmVyc2lv bmVkIGRpcmVjdG9yeSBmb3Igc3RvcmluZyBkb2NzCisKK0l0J3MgYWxzbyBhIGdvb2QgaWRlYSB0 byBzdG9yZSBkb2MtZmlsZXMgdW5kZXIgdGhlIHZlcnNpb25lZCBkaXJlY3RvcnkuCitUaGlzIG1h eSBncmVhdGx5IHNpbXBsaWZ5IHBhcmFsbGVsIGluc3RhbGxhdGlvbiBvZiBkaWZmZXJlbnQgdmVy c2lvbnMgb2YKK2VqYWJiZWQuCisKK05vdGUgdGhhdCB0aGlzIG1heSBiZSBkb25lIGluIHRoZSBv dGhlciB3YXkgLSBieSBjaGFuZ2luZyBwcm9wZXIgZmllbGQKK2luIHRoZSBBQ19JTklUIG1hY3Jv LCBzZWUgdGhlIGV4cGxhbmF0aW9uIG9mIHRoZSBmaWVsZCAndGFybmFtZSc6CisKK2h0dHA6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZi9tYW51YWwvaHRtbF9ub2RlL0luaXRpYWxpemlu Zy1jb25maWd1cmUuaHRtbAorCitTaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1lbmtvdiA8bGVtZW5r b3ZAZ21haWwuY29tPgorLS0tCisgc3JjL01ha2VmaWxlLmluIHwgICAgMiArLQorIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3Jj L01ha2VmaWxlLmluIGIvc3JjL01ha2VmaWxlLmluCitpbmRleCA2NGVkODU2Li40M2I1ZTFmIDEw MDY0NAorLS0tIGEvc3JjL01ha2VmaWxlLmluCisrKysgYi9zcmMvTWFrZWZpbGUuaW4KK0BAIC05 OCw3ICs5OCw3IEBAIFNCSU5ESVIgPSAkKERFU1RESVIpQHNiaW5kaXJACisgRUpBQkJFUkRESVIg PSAkKERFU1RESVIpQGxpYmRpckAvZWphYmJlcmQKKyAKKyAjIC9zaGFyZS9kb2MvZWphYmJlcmQK Ky1QQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorK1BBQ0tBR0VfVEFSTkFNRSA9 IEBQQUNLQUdFX1RBUk5BTUVALUBQQUNLQUdFX1ZFUlNJT05ACisgZGF0YXJvb3RkaXIgPSBAZGF0 YXJvb3RkaXJACisgRE9DRElSID0gJChERVNURElSKUBkb2NkaXJACisgCistLSAKKzEuNy4xMC40 CisKCmRpZmYgLS1naXQgYS9lamFiYmVyZC0wMDA3LVN1cHBvcnQtU0FTTC1HU1NBUEktYXV0aGVu dGljYXRpb24tdGhhbmtzLXRvLU1pa2FlbC0ucGF0Y2ggYi9lamFiYmVyZC0wMDA3LVN1cHBvcnQt U0FTTC1HU1NBUEktYXV0aGVudGljYXRpb24tdGhhbmtzLXRvLU1pa2FlbC0ucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc5NWU5OQotLS0gL2Rldi9udWxsCisrKyBi L2VqYWJiZXJkLTAwMDctU3VwcG9ydC1TQVNMLUdTU0FQSS1hdXRoZW50aWNhdGlvbi10aGFua3Mt dG8tTWlrYWVsLS5wYXRjaApAQCAtMCwwICsxLDUwNSBAQAorRnJvbSBmMmE2MTJkYmEzZDZhYjVk ZDViNTIyZjc0YzQ5M2M3OGNkZmVkNmM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QmFkbG9wIDxiYWRsb3BAcHJvY2Vzcy1vbmUubmV0PgorRGF0ZTogVGh1LCAxNSBBcHIgMjAxMCAx NzoyMDoxNiArMDIwMAorU3ViamVjdDogW1BBVENIIDcvOF0gU3VwcG9ydCBTQVNMIEdTU0FQSSBh dXRoZW50aWNhdGlvbiAodGhhbmtzIHRvIE1pa2FlbAorIE1hZ251c3NvbikoRUpBQi04MzEpCisK Ky0tLQorIHNyYy9jeXJzYXNsLmVybCAgICAgICAgICAgfCAgIDcxICsrKysrKysrKysrKysrKy0t LS0KKyBzcmMvY3lyc2FzbC5ocmwgICAgICAgICAgIHwgICAxNSArKysrCisgc3JjL2N5cnNhc2xf YW5vbnltb3VzLmVybCB8ICAgIDYgKy0KKyBzcmMvY3lyc2FzbF9kaWdlc3QuZXJsICAgIHwgICAg NiArLQorIHNyYy9jeXJzYXNsX2dzc2FwaS5lcmwgICAgfCAgMTY2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKworIHNyYy9jeXJzYXNsX3BsYWluLmVybCAgICAg fCAgICA2ICstCisgc3JjL2N5cnNhc2xfc2NyYW0uZXJsICAgICB8ICAgIDUgKy0KKyBzcmMvZWph YmJlcmRfYzJzLmVybCAgICAgIHwgICAxMiArKystCisgc3JjL2VqYWJiZXJkX3NvY2tldC5lcmwg ICB8ICAgMTkgKysrKysrCisgOSBmaWxlcyBjaGFuZ2VkLCAyODEgaW5zZXJ0aW9ucygrKSwgMjUg ZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9jeXJzYXNsLmhybAorIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvY3lyc2FzbF9nc3NhcGkuZXJsCisKK2RpZmYgLS1naXQgYS9zcmMv Y3lyc2FzbC5lcmwgYi9zcmMvY3lyc2FzbC5lcmwKK2luZGV4IDIzZjE3MjEuLjVmZjA5MTYgMTAw NjQ0CistLS0gYS9zcmMvY3lyc2FzbC5lcmwKKysrKyBiL3NyYy9jeXJzYXNsLmVybAorQEAgLTMw LDIxICszMCwzNiBAQAorIC1leHBvcnQoW3N0YXJ0LzAsCisgCSByZWdpc3Rlcl9tZWNoYW5pc20v MywKKyAJIGxpc3RtZWNoLzEsCistCSBzZXJ2ZXJfbmV3LzcsCisrCSBzZXJ2ZXJfbmV3LzgsCisg CSBzZXJ2ZXJfc3RhcnQvMywKKyAJIHNlcnZlcl9zdGVwLzJdKS4KKyAKKystaW5jbHVkZSgiY3ly c2FzbC5ocmwiKS4KKyAtaW5jbHVkZSgiZWphYmJlcmQuaHJsIikuCisgCisrJSUgQHR5cGUgc2Fz bG1lY2hhbmlzbSgpID0ge3Nhc2xfbWVjaGFuaXNtLCBNZWNoYW5pc20sIE1vZHVsZSwgUmVxdWly ZV9QbGFpbn0KKyslJSAgICAgTWVjaGFuaXNtID0gc3RyaW5nKCkKKyslJSAgICAgTW9kdWxlID0g YXRvbSgpCisrJSUgICAgIFJlcXVpcmVfUGxhaW4gPSBib29sKCkuCisrJSUgUmVnaXN0cnkgZW50 cnkgb2YgYSBzdXBwb3J0ZWQgU0FTTCBtZWNoYW5pc20uCisrCisgLXJlY29yZChzYXNsX21lY2hh bmlzbSwge21lY2hhbmlzbSwgbW9kdWxlLCBwYXNzd29yZF90eXBlfSkuCistLXJlY29yZChzYXNs X3N0YXRlLCB7c2VydmljZSwgbXluYW1lLCByZWFsbSwKKy0JCSAgICAgZ2V0X3Bhc3N3b3JkLCBj aGVja19wYXNzd29yZCwgY2hlY2tfcGFzc3dvcmRfZGlnZXN0LAorLQkJICAgICBtZWNoX21vZCwg bWVjaF9zdGF0ZX0pLgorKworKyUlIEB0eXBlIHNhc2xzdGF0ZSgpID0ge3Nhc2xfc3RhdGUsIFNl cnZpY2UsIE15bmFtZSwgTWVjaF9Nb2QsIE1lY2hfU3RhdGUsIFBhcmFtc30KKyslJSAgICAgU2Vy dmljZSA9IHN0cmluZygpCisrJSUgICAgIE15bmFtZSA9IHN0cmluZygpCisrJSUgICAgIE1lY2hf TW9kID0gYXRvbSgpCisrJSUgICAgIE1lY2hfU3RhdGUgPSB0ZXJtKCkuCisrJSUgICAgIFBhcmFt cyA9IHRlcm0oKS4KKyslJSBTdGF0ZSBvZiB0aGlzIHByb2Nlc3MuCisrCisrLXJlY29yZChzYXNs X3N0YXRlLCB7c2VydmljZSwgbXluYW1lLAorKwkJICAgICBtZWNoX21vZCwgbWVjaF9zdGF0ZSwg cGFyYW1zfSkuCisgCisgLWV4cG9ydChbYmVoYXZpb3VyX2luZm8vMV0pLgorIAorIGJlaGF2aW91 cl9pbmZvKGNhbGxiYWNrcykgLT4KKy0gICAgW3ttZWNoX25ldywgNH0sIHttZWNoX3N0ZXAsIDJ9 XTsKKysgICAgW3ttZWNoX25ldywgMX0sIHttZWNoX3N0ZXAsIDJ9XTsKKyBiZWhhdmlvdXJfaW5m byhfT3RoZXIpIC0+CisgICAgIHVuZGVmaW5lZC4KKyAKK0BAIC01Niw4ICs3MSwzMCBAQCBzdGFy dCgpIC0+CisgICAgIGN5cnNhc2xfZGlnZXN0OnN0YXJ0KFtdKSwKKyAgICAgY3lyc2FzbF9zY3Jh bTpzdGFydChbXSksCisgICAgIGN5cnNhc2xfYW5vbnltb3VzOnN0YXJ0KFtdKSwKKysgICAgbWF5 YmVfdHJ5X3N0YXJ0X2dzc2FwaSgpLAorICAgICBvay4KKyAKKyttYXliZV90cnlfc3RhcnRfZ3Nz YXBpKCkgLT4KKysgICAgY2FzZSBvczpnZXRlbnYoIktSQjVfS1ROQU1FIikgb2YKKysgICAgICAg IGZhbHNlIC0+CisrCSAgICBvazsKKysgICAgICAgIF9TdHJpbmcgLT4KKysJICAgIHRyeV9zdGFy dF9nc3NhcGkoKQorKyAgICBlbmQuCisrCisrdHJ5X3N0YXJ0X2dzc2FwaSgpIC0+CisrICAgIGNh c2UgY29kZTpsb2FkX2ZpbGUoZXNhc2wpIG9mCisrCXttb2R1bGUsIF9Nb2R1bGV9IC0+CisrCSAg ICBjeXJzYXNsX2dzc2FwaTpzdGFydChbXSk7CisrCXtlcnJvciwgV2hhdH0gLT4KKysJICAgID9F UlJPUl9NU0coIlN1cHBvcnQgZm9yIEdTU0FQSSBub3Qgc3RhcnRlZCBiZWNhdXNlIGVzYXNsLmJl YW0gd2FzIG5vdCBmb3VuZDogfnAiLCBbV2hhdF0pCisrICAgIGVuZC4KKysKKyslJSBAc3BlYyAo TWVjaGFuaXNtLCBNb2R1bGUsIFJlcXVpcmVfUGxhaW4pIC0+IHRydWUKKyslJSAgICAgTWVjaGFu aXNtID0gc3RyaW5nKCkKKyslJSAgICAgTW9kdWxlID0gYXRvbSgpCisrJSUgICAgIFJlcXVpcmVf UGxhaW4gPSBib29sKCkKKysKKyByZWdpc3Rlcl9tZWNoYW5pc20oTWVjaGFuaXNtLCBNb2R1bGUs IFBhc3N3b3JkVHlwZSkgLT4KKyAgICAgZXRzOmluc2VydChzYXNsX21lY2hhbmlzbSwKKyAJICAg ICAgICNzYXNsX21lY2hhbmlzbXttZWNoYW5pc20gPSBNZWNoYW5pc20sCitAQCAtMTE5LDI0ICsx NTYsMjggQEAgbGlzdG1lY2goSG9zdCkgLT4KKyAgICAgZmlsdGVyX2Fub255bW91cyhIb3N0LCBN ZWNocykuCisgCisgc2VydmVyX25ldyhTZXJ2aWNlLCBTZXJ2ZXJGUUROLCBVc2VyUmVhbG0sIF9T ZWNGbGFncywKKy0JICAgR2V0UGFzc3dvcmQsIENoZWNrUGFzc3dvcmQsIENoZWNrUGFzc3dvcmRE aWdlc3QpIC0+CisrCSAgIEdldFBhc3N3b3JkLCBDaGVja1Bhc3N3b3JkLCBDaGVja1Bhc3N3b3Jk RGlnZXN0LCBTb2NrZXQpIC0+CisrICAgIFBhcmFtcyA9ICNzYXNsX3BhcmFtc3sKKysgICAgICBo b3N0ID0gU2VydmVyRlFETiwKKysgICAgICByZWFsbSA9IFVzZXJSZWFsbSwKKysgICAgICBnZXRf cGFzc3dvcmQgPSBHZXRQYXNzd29yZCwKKysgICAgICBjaGVja19wYXNzd29yZCA9IENoZWNrUGFz c3dvcmQsCisrICAgICAgY2hlY2tfcGFzc3dvcmRfZGlnZXN0PSBDaGVja1Bhc3N3b3JkRGlnZXN0 LAorKyAgICAgIHNvY2tldCA9IFNvY2tldAorKyAgICAgfSwKKysKKyAgICAgI3Nhc2xfc3RhdGV7 c2VydmljZSA9IFNlcnZpY2UsCisgCQlteW5hbWUgPSBTZXJ2ZXJGUUROLAorLQkJcmVhbG0gPSBV c2VyUmVhbG0sCistCQlnZXRfcGFzc3dvcmQgPSBHZXRQYXNzd29yZCwKKy0JCWNoZWNrX3Bhc3N3 b3JkID0gQ2hlY2tQYXNzd29yZCwKKy0JCWNoZWNrX3Bhc3N3b3JkX2RpZ2VzdD0gQ2hlY2tQYXNz d29yZERpZ2VzdH0uCisrCQlwYXJhbXMgPSBQYXJhbXN9LgorKworIAorIHNlcnZlcl9zdGFydChT dGF0ZSwgTWVjaCwgQ2xpZW50SW4pIC0+CisgICAgIGNhc2UgbGlzdHM6bWVtYmVyKE1lY2gsIGxp c3RtZWNoKFN0YXRlI3Nhc2xfc3RhdGUubXluYW1lKSkgb2YKKyAJdHJ1ZSAtPgorIAkgICAgY2Fz ZSBldHM6bG9va3VwKHNhc2xfbWVjaGFuaXNtLCBNZWNoKSBvZgorIAkJWyNzYXNsX21lY2hhbmlz bXttb2R1bGUgPSBNb2R1bGV9XSAtPgorLQkJICAgIHtvaywgTWVjaFN0YXRlfSA9IE1vZHVsZTpt ZWNoX25ldygKKy0JCQkJCVN0YXRlI3Nhc2xfc3RhdGUubXluYW1lLAorLQkJCQkJU3RhdGUjc2Fz bF9zdGF0ZS5nZXRfcGFzc3dvcmQsCistCQkJCQlTdGF0ZSNzYXNsX3N0YXRlLmNoZWNrX3Bhc3N3 b3JkLAorLQkJCQkJU3RhdGUjc2FzbF9zdGF0ZS5jaGVja19wYXNzd29yZF9kaWdlc3QpLAorKwkJ ICAgIHtvaywgTWVjaFN0YXRlfSA9CisrCQkJTW9kdWxlOm1lY2hfbmV3KFN0YXRlI3Nhc2xfc3Rh dGUucGFyYW1zKSwKKyAJCSAgICBzZXJ2ZXJfc3RlcChTdGF0ZSNzYXNsX3N0YXRle21lY2hfbW9k ID0gTW9kdWxlLAorIAkJCQkJCSBtZWNoX3N0YXRlID0gTWVjaFN0YXRlfSwKKyAJCQkJQ2xpZW50 SW4pOworZGlmZiAtLWdpdCBhL3NyYy9jeXJzYXNsLmhybCBiL3NyYy9jeXJzYXNsLmhybAorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmI0Y2MzZTMKKy0tLSAvZGV2L251bGwK KysrKyBiL3NyYy9jeXJzYXNsLmhybAorQEAgLTAsMCArMSwxNSBAQAorKyUlIEB0eXBlIHNhc2xw YXJhbXMoKSA9IHtzYXNsX3BhcmFtcywgSG9zdCwgUmVhbG0sIEdldFBhc3N3b3JkLCBDaGVja1Bh c3N3b3JkLCBDaGVja1Bhc3N3b3JkRGlnZXN0fQorKyUlICAgICBIb3N0ID0gc3RyaW5nKCkKKysl JSAgICAgUmVhbG0gPSBzdHJpbmcoKQorKyUlICAgICBHZXRQYXNzd29yZCA9IGZ1bmN0aW9uKCkK KyslJSAgICAgQ2hlY2tQYXNzd29yZCA9IGZ1bmN0aW9uKCkKKyslJSAgICAgQ2hlY2tQYXNzd29y ZERpZ2VzdCA9IGFueSgpLgorKyUlIFBhcmFtZXRlcnMgZm9yIFNBU0wuCisrCisrLXJlY29yZChz YXNsX3BhcmFtcywgeworKwkgIGhvc3QsCisrCSAgcmVhbG0sCisrCSAgZ2V0X3Bhc3N3b3JkLAor KwkgIGNoZWNrX3Bhc3N3b3JkLAorKwkgIGNoZWNrX3Bhc3N3b3JkX2RpZ2VzdCwKKysJICBzb2Nr ZXR9KS4KK2RpZmYgLS1naXQgYS9zcmMvY3lyc2FzbF9hbm9ueW1vdXMuZXJsIGIvc3JjL2N5cnNh c2xfYW5vbnltb3VzLmVybAoraW5kZXggMjVmY2Q2Ni4uYWViMDllYSAxMDA2NDQKKy0tLSBhL3Ny Yy9jeXJzYXNsX2Fub255bW91cy5lcmwKKysrKyBiL3NyYy9jeXJzYXNsX2Fub255bW91cy5lcmwK K0BAIC0yNyw3ICsyNyw5IEBACisgCisgLW1vZHVsZShjeXJzYXNsX2Fub255bW91cykuCisgCist LWV4cG9ydChbc3RhcnQvMSwgc3RvcC8wLCBtZWNoX25ldy80LCBtZWNoX3N0ZXAvMl0pLgorKy1l eHBvcnQoW3N0YXJ0LzEsIHN0b3AvMCwgbWVjaF9uZXcvMSwgbWVjaF9zdGVwLzJdKS4KKysKKyst aW5jbHVkZSgiY3lyc2FzbC5ocmwiKS4KKyAKKyAtYmVoYXZpb3VyKGN5cnNhc2wpLgorIAorQEAg LTQwLDcgKzQyLDcgQEAgc3RhcnQoX09wdHMpIC0+Cisgc3RvcCgpIC0+CisgICAgIG9rLgorIAor LW1lY2hfbmV3KEhvc3QsIF9HZXRQYXNzd29yZCwgX0NoZWNrUGFzc3dvcmQsIF9DaGVja1Bhc3N3 b3JkRGlnZXN0KSAtPgorK21lY2hfbmV3KCNzYXNsX3BhcmFtc3tob3N0PUhvc3R9KSAtPgorICAg ICB7b2ssICNzdGF0ZXtzZXJ2ZXIgPSBIb3N0fX0uCisgCisgbWVjaF9zdGVwKFN0YXRlLCBfQ2xp ZW50SW4pIC0+CitkaWZmIC0tZ2l0IGEvc3JjL2N5cnNhc2xfZGlnZXN0LmVybCBiL3NyYy9jeXJz YXNsX2RpZ2VzdC5lcmwKK2luZGV4IDEzNGE4NmQuLmQ5MDQ4MDEgMTAwNjQ0CistLS0gYS9zcmMv Y3lyc2FzbF9kaWdlc3QuZXJsCisrKysgYi9zcmMvY3lyc2FzbF9kaWdlc3QuZXJsCitAQCAtMjks MTAgKzI5LDExIEBACisgCisgLWV4cG9ydChbc3RhcnQvMSwKKyAJIHN0b3AvMCwKKy0JIG1lY2hf bmV3LzQsCisrCSBtZWNoX25ldy8xLAorIAkgbWVjaF9zdGVwLzJdKS4KKyAKKyAtaW5jbHVkZSgi ZWphYmJlcmQuaHJsIikuCisrLWluY2x1ZGUoImN5cnNhc2wuaHJsIikuCisgCisgLWJlaGF2aW91 cihjeXJzYXNsKS4KKyAKK0BAIC00Nyw3ICs0OCw4IEBAIHN0YXJ0KF9PcHRzKSAtPgorIHN0b3Ao KSAtPgorICAgICBvay4KKyAKKy1tZWNoX25ldyhIb3N0LCBHZXRQYXNzd29yZCwgX0NoZWNrUGFz c3dvcmQsIENoZWNrUGFzc3dvcmREaWdlc3QpIC0+CisrbWVjaF9uZXcoI3Nhc2xfcGFyYW1ze2hv c3Q9SG9zdCwgZ2V0X3Bhc3N3b3JkPUdldFBhc3N3b3JkLAorKwkJICAgICAgY2hlY2tfcGFzc3dv cmRfZGlnZXN0PUNoZWNrUGFzc3dvcmREaWdlc3R9KSAtPgorICAgICB7b2ssICNzdGF0ZXtzdGVw ID0gMSwKKyAJCW5vbmNlID0gcmFuZG9tczpnZXRfc3RyaW5nKCksCisgCQlob3N0ID0gSG9zdCwK K2RpZmYgLS1naXQgYS9zcmMvY3lyc2FzbF9nc3NhcGkuZXJsIGIvc3JjL2N5cnNhc2xfZ3NzYXBp LmVybAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjExZDk5NTUKKy0tLSAv ZGV2L251bGwKKysrKyBiL3NyYy9jeXJzYXNsX2dzc2FwaS5lcmwKK0BAIC0wLDAgKzEsMTY2IEBA CisrJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyUlJSBGaWxlICAgIDogY3lyc2FzbF9nc3NhcGkuZXJsCisr JSUlIEF1dGhvciAgOiBNaWthZWwgTWFnbnVzc29uIDxtaWttYUB1c2Vycy5zb3VyY2Vmb3JnZS5u ZXQ+CisrJSUlIFB1cnBvc2UgOiBHU1NBUEkgU0FTTCBtZWNoYW5pc20KKyslJSUgQ3JlYXRlZCA6 IDEgSnVuZSAyMDA3IGJ5IE1pa2FlbCBNYWdudXNzb24gPG1pa21hQHVzZXJzLnNvdXJjZWZvcmdl Lm5ldD4KKyslJSUgSWQgICAgICA6ICRJZDogJAorKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyslJSUKKysl JSUgQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgIE1pa2FlbCBNYWdudXNzb24gPG1pa21hQHVzZXJz LnNvdXJjZWZvcmdlLm5ldD4KKyslJSUKKyslJSUgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KKyslJSUgb2J0YWluaW5nIGEgY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyslJSUgZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorKyUlJSBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwKKyslJSUgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj ZW5zZSwgYW5kL29yIHNlbGwgY29waWVzCisrJSUlIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBl cm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisrJSUlIGZ1cm5pc2hlZCB0byBk byBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisrJSUlCisrJSUlIFRo ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxs IGJlCisrJSUlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlIFNvZnR3YXJlLgorKyUlJQorKyUlJSBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyslJSUgRVhQUkVTUyBPUiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisrJSUl IE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisr JSUlIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09Q WVJJR0hUIEhPTERFUlMKKyslJSUgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCisrJSUlIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCisrJSUlIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU SEUKKyslJSUgU09GVFdBUkUuCisrJSUlCisrCisrJSUlCisrJSUlIGNvbmZpZ3VyYXRpb24gb3B0 aW9uczoKKyslJSUge3Nhc2xfcmVhbG0sICI8S2VyYmVyb3MgcmVhbG0+In0uCisrJSUlCisrJSUl IGVudmlyb25tZW50IHZhcmlhYmxlczoKKyslJSUgS1JCNV9LVE5BTUUKKyslJSUKKysKKystbW9k dWxlKGN5cnNhc2xfZ3NzYXBpKS4KKystYXV0aG9yKCdtaWttYUB1c2Vycy5zb3VyY2Vmb3JnZS5u ZXQnKS4KKystdnNuKCckUmV2aXNpb246ICQgJykuCisrCisrLWV4cG9ydChbc3RhcnQvMSwKKysJ IHN0b3AvMCwKKysJIG1lY2hfbmV3LzEsCisrCSBtZWNoX3N0ZXAvMl0pLgorKworKy1pbmNsdWRl KCJlamFiYmVyZC5ocmwiKS4KKystaW5jbHVkZSgiY3lyc2FzbC5ocmwiKS4KKysKKystYmVoYXZp b3VyKGN5cnNhc2wpLgorKworKy1kZWZpbmUoU0VSVkVSLCA/TU9EVUxFKS4KKystZGVmaW5lKFNF UlZJQ0UsICJ4bXBwIikuCisrCisrLXJlY29yZChzdGF0ZSwge3Nhc2wsCisrCQluZWVkc21vcmU9 dHJ1ZSwKKysJCXN0ZXA9MCwKKysJCWhvc3QsCisrCQlyZWFsbSwKKysJCWF1dGhpZCwKKysJCWF1 dGh6aWQsCisrCQlhdXRocmVhbG0sCisrCQllcnJvcn0pLgorKworK3N0YXJ0KF9PcHRzKSAtPgor KyAgICBDaGlsZFNwZWMgPQorKwl7P1NFUlZFUiwKKysJIHtlc2FzbCwgc3RhcnRfbGluaywgW3ts b2NhbCwgP1NFUlZFUn1dfSwKKysJIHRyYW5zaWVudCwKKysJIDEwMDAsCisrCSB3b3JrZXIsCisr CSBbZXNhc2xdfSwKKysKKysgICAgY2FzZSBzdXBlcnZpc29yOnN0YXJ0X2NoaWxkKGVqYWJiZXJk X3N1cCwgQ2hpbGRTcGVjKSBvZgorKwl7b2ssIF9QaWR9IC0+CisrCSAgICBjeXJzYXNsOnJlZ2lz dGVyX21lY2hhbmlzbSgiR1NTQVBJIiwgP01PRFVMRSwgZmFsc2UpOworKwl7ZXJyb3IsIEVycm9y fSA9IEUgLT4KKysJICAgID9FUlJPUl9NU0coImVzYXNsIGZhaWxlZDogfnAiLCBbRXJyb3JdKSwK KysJICAgIEUKKysgICAgZW5kLgorKworKworK3N0b3AoKSAtPgorKyAgICBjYXRjaCBlc2FzbDpz dG9wKD9TRVJWRVIpLAorKyAgICBzdXBlcnZpc29yOnRlcm1pbmF0ZV9jaGlsZChlamFiYmVyZF9z dXAsID9TRVJWRVIpLAorKyAgICBzdXBlcnZpc29yOmRlbGV0ZV9jaGlsZChlamFiYmVyZF9zdXAs ID9TRVJWRVIpLgorKworK21lY2hfbmV3KCNzYXNsX3BhcmFtc3tob3N0PUhvc3QsIHJlYWxtPVJl YWxtLCBzb2NrZXQ9U29ja2V0fSkgLT4KKysgICAgY2FzZSBlamFiYmVyZF9zb2NrZXQ6Z2V0aG9z dG5hbWUoU29ja2V0KSBvZgorKwl7b2ssIEZRRE59IC0+CisrCSAgICA/REVCVUcoIm1lY2hfbmV3 IH5wIH5wIH5wfm4iLCBbSG9zdCwgUmVhbG0sIEZRRE5dKSwKKysJICAgIGNhc2UgZXNhc2w6c2Vy dmVyX3N0YXJ0KD9TRVJWRVIsICJHU1NBUEkiLCA/U0VSVklDRSwgRlFETikgb2YKKysJCXtvaywg U2FzbH0gLT4KKysJCSAgICB7b2ssICNzdGF0ZXtzYXNsPVNhc2wsaG9zdD1Ib3N0LHJlYWxtPVJl YWxtfX07CisrCQl7ZXJyb3IsIHtnc2FzbF9lcnJvciwgRXJyb3J9fSAtPgorKwkJICAgIHtvaywg U3RyfSA9IGVzYXNsOnN0cl9lcnJvcig/U0VSVkVSLCBFcnJvciksCisrCQkgICAgP0RFQlVHKCJl c2FzbCBlcnJvcjogfnAiLCBbU3RyXSksCisrCQkgICAge29rLCAjc3RhdGV7bmVlZHNtb3JlPWVy cm9yLGVycm9yPSJpbnRlcm5hbC1zZXJ2ZXItZXJyb3IifX07CisrCQl7ZXJyb3IsIEVycm9yfSAt PgorKwkJICAgID9ERUJVRygiZXNhc2wgZXJyb3I6IH5wIiwgW0Vycm9yXSksCisrCQkgICAge29r LCAjc3RhdGV7bmVlZHNtb3JlPWVycm9yLGVycm9yPSJpbnRlcm5hbC1zZXJ2ZXItZXJyb3IifX0K KysJICAgIGVuZDsKKysJe2Vycm9yLCBFcnJvcn0gLT4KKysJICAgID9ERUJVRygiZ2V0aG9zdG5h bWUgZXJyb3I6IH5wIiwgW0Vycm9yXSksCisrCSAgICB7b2ssICNzdGF0ZXtuZWVkc21vcmU9ZXJy b3IsZXJyb3I9ImludGVybmFsLXNlcnZlci1lcnJvciJ9fQorKyAgICBlbmQuCisrCisrbWVjaF9z dGVwKFN0YXRlLCBDbGllbnRJbikgd2hlbiBpc19saXN0KENsaWVudEluKSAtPgorKyAgICBjYXRj aCBkb19zdGVwKFN0YXRlLCBDbGllbnRJbikuCisrCisrZG9fc3RlcCgjc3RhdGV7bmVlZHNtb3Jl PWVycm9yLGVycm9yPUVycm9yfT1fU3RhdGUsIF8pIC0+CisrICAgIHtlcnJvciwgRXJyb3J9Owor K2RvX3N0ZXAoI3N0YXRle25lZWRzbW9yZT1mYWxzZX09U3RhdGUsIF8pIC0+CisrICAgIGNoZWNr X3VzZXIoU3RhdGUpOworK2RvX3N0ZXAoI3N0YXRle25lZWRzbW9yZT10cnVlLHNhc2w9U2FzbCxz dGVwPVN0ZXB9PVN0YXRlLCBDbGllbnRJbikgLT4KKysgICAgP0RFQlVHKCJtZWNoX3N0ZXB+biIs IFtdKSwKKysgICAgY2FzZSBlc2FzbDpzdGVwKFNhc2wsIGxpc3RfdG9fYmluYXJ5KENsaWVudElu KSkgb2YKKysJe29rLCBSc3BBdXRofSAtPgorKwkgICAgP0RFQlVHKCJva35uIiwgW10pLAorKwkg ICAge29rLCBEaXNwbGF5X25hbWV9ID0gZXNhc2w6cHJvcGVydHlfZ2V0KFNhc2wsIGdzc2FwaV9k aXNwbGF5X25hbWUpLAorKwkgICAge29rLCBBdXRoemlkfSA9IGVzYXNsOnByb3BlcnR5X2dldChT YXNsLCBhdXRoemlkKSwKKysJICAgIHtBdXRoaWQsIFskQCB8IEF1dGhfcmVhbG1dfSA9CisrCQls aXN0czpzcGxpdHdpdGgoZnVuKEUpLT5FID0vPSAkQCBlbmQsIERpc3BsYXlfbmFtZSksCisrCSAg ICBTdGF0ZTEgPSBTdGF0ZSNzdGF0ZXthdXRoaWQ9QXV0aGlkLAorKwkJCQkgYXV0aHppZD1BdXRo emlkLAorKwkJCQkgYXV0aHJlYWxtPUF1dGhfcmVhbG19LAorKwkgICAgaGFuZGxlX3N0ZXBfb2so U3RhdGUxLCBiaW5hcnlfdG9fbGlzdChSc3BBdXRoKSk7CisrCXtuZWVkc21vcmUsIFJzcEF1dGh9 IC0+CisrCSAgICA/REVCVUcoIm5lZWRzbW9yZX5uIiwgW10pLAorKwkgICAgaWYgKFN0ZXAgPiAw KSBhbmQgKENsaWVudEluID06PSBbXSkgYW5kIChSc3BBdXRoID06PSA8PD4+KSAtPgorKwkJICAg IHtlcnJvciwgIm5vdC1hdXRob3JpemVkIn07CisrCQl0cnVlIC0+CisrCQkgICAge2NvbnRpbnVl LCBiaW5hcnlfdG9fbGlzdChSc3BBdXRoKSwKKysJCSAgICAgU3RhdGUjc3RhdGV7c3RlcD1TdGVw KzF9fQorKwkgICAgZW5kOworKwl7ZXJyb3IsIF99IC0+CisrCSAgICB7ZXJyb3IsICJub3QtYXV0 aG9yaXplZCJ9CisrICAgIGVuZC4KKysKKytoYW5kbGVfc3RlcF9vayhTdGF0ZSwgW10pIC0+Cisr ICAgIGNoZWNrX3VzZXIoU3RhdGUpOworK2hhbmRsZV9zdGVwX29rKCNzdGF0ZXtzdGVwPVN0ZXB9 PVN0YXRlLCBSc3BBdXRoKSAtPgorKyAgICA/REVCVUcoImNvbnRpbnVlfm4iLCBbXSksCisrICAg IHtjb250aW51ZSwgUnNwQXV0aCwgU3RhdGUjc3RhdGV7bmVlZHNtb3JlPWZhbHNlLHN0ZXA9U3Rl cCsxfX0uCisrCisrY2hlY2tfdXNlcigjc3RhdGV7YXV0aGlkPUF1dGhpZCxhdXRoemlkPUF1dGh6 aWQsCisrCQkgIGF1dGhyZWFsbT1BdXRoX3JlYWxtLGhvc3Q9SG9zdCxyZWFsbT1SZWFsbX0pIC0+ CisrICAgIGlmIFJlYWxtID0vPSBBdXRoX3JlYWxtIC0+CisrCSAgICA/REVCVUcoImJhZCByZWFs bSB+cCAoZXhwZWN0ZWQgfnApfm4iLFtBdXRoX3JlYWxtLCBSZWFsbV0pLAorKwkgICAgdGhyb3co e2Vycm9yLCAibm90LWF1dGhvcml6ZWQifSk7CisrICAgICAgIHRydWUgLT4KKysJICAgIG9rCisr ICAgIGVuZCwKKysKKysgICAgY2FzZSBlamFiYmVyZF9hdXRoOmlzX3VzZXJfZXhpc3RzKEF1dGhp ZCwgSG9zdCkgb2YKKysJZmFsc2UgLT4KKysJICAgID9ERUJVRygiYmFkIHVzZXIgfnB+biIsW0F1 dGhpZF0pLAorKwkgICAgdGhyb3coe2Vycm9yLCAibm90LWF1dGhvcml6ZWQifSk7CisrCXRydWUg LT4KKysJICAgIG9rCisrICAgIGVuZCwKKysKKysgICAgP0RFQlVHKCJHU1NBUEkgYXV0aGVudGlj YXRlZCB+cCB+cH5uIiwgW0F1dGhpZCwgQXV0aHppZF0pLAorKyAgICB7b2ssIFt7dXNlcm5hbWUs IEF1dGhpZH0sIHthdXRoemlkLCBBdXRoemlkfV19LgorZGlmZiAtLWdpdCBhL3NyYy9jeXJzYXNs X3BsYWluLmVybCBiL3NyYy9jeXJzYXNsX3BsYWluLmVybAoraW5kZXggYTA4MDRmZC4uMTRiM2Mx OSAxMDA2NDQKKy0tLSBhL3NyYy9jeXJzYXNsX3BsYWluLmVybAorKysrIGIvc3JjL2N5cnNhc2xf cGxhaW4uZXJsCitAQCAtMjcsNyArMjcsOSBAQAorIC1tb2R1bGUoY3lyc2FzbF9wbGFpbikuCisg LWF1dGhvcignYWxleGV5QHByb2Nlc3Mtb25lLm5ldCcpLgorIAorLS1leHBvcnQoW3N0YXJ0LzEs IHN0b3AvMCwgbWVjaF9uZXcvNCwgbWVjaF9zdGVwLzIsIHBhcnNlLzFdKS4KKystZXhwb3J0KFtz dGFydC8xLCBzdG9wLzAsIG1lY2hfbmV3LzEsIG1lY2hfc3RlcC8yLCBwYXJzZS8xXSkuCisrCisr LWluY2x1ZGUoImN5cnNhc2wuaHJsIikuCisgCisgLWJlaGF2aW91cihjeXJzYXNsKS4KKyAKK0BA IC00MCw3ICs0Miw3IEBAIHN0YXJ0KF9PcHRzKSAtPgorIHN0b3AoKSAtPgorICAgICBvay4KKyAK Ky1tZWNoX25ldyhfSG9zdCwgX0dldFBhc3N3b3JkLCBDaGVja1Bhc3N3b3JkLCBfQ2hlY2tQYXNz d29yZERpZ2VzdCkgLT4KKyttZWNoX25ldygjc2FzbF9wYXJhbXN7Y2hlY2tfcGFzc3dvcmQgPSBD aGVja1Bhc3N3b3JkfSkgLT4KKyAgICAge29rLCAjc3RhdGV7Y2hlY2tfcGFzc3dvcmQgPSBDaGVj a1Bhc3N3b3JkfX0uCisgCisgbWVjaF9zdGVwKFN0YXRlLCBDbGllbnRJbikgLT4KK2RpZmYgLS1n aXQgYS9zcmMvY3lyc2FzbF9zY3JhbS5lcmwgYi9zcmMvY3lyc2FzbF9zY3JhbS5lcmwKK2luZGV4 IDc0OTc3YmQuLmMzYmY1YzYgMTAwNjQ0CistLS0gYS9zcmMvY3lyc2FzbF9zY3JhbS5lcmwKKysr KyBiL3NyYy9jeXJzYXNsX3NjcmFtLmVybAorQEAgLTI5LDEwICsyOSwxMSBAQAorIAorIC1leHBv cnQoW3N0YXJ0LzEsCisgCSBzdG9wLzAsCistCSBtZWNoX25ldy80LAorKwkgbWVjaF9uZXcvMSwK KyAJIG1lY2hfc3RlcC8yXSkuCisgCisgLWluY2x1ZGUoImVqYWJiZXJkLmhybCIpLgorKy1pbmNs dWRlKCJjeXJzYXNsLmhybCIpLgorIAorIC1iZWhhdmlvdXIoY3lyc2FzbCkuCisgCitAQCAtNDgs NyArNDksNyBAQCBzdGFydChfT3B0cykgLT4KKyBzdG9wKCkgLT4KKyAgICAgb2suCisgCistbWVj aF9uZXcoX0hvc3QsIEdldFBhc3N3b3JkLCBfQ2hlY2tQYXNzd29yZCwgX0NoZWNrUGFzc3dvcmRE aWdlc3QpIC0+CisrbWVjaF9uZXcoI3Nhc2xfcGFyYW1ze2dldF9wYXNzd29yZD1HZXRQYXNzd29y ZH0pIC0+CisgICAgIHtvaywgI3N0YXRle3N0ZXAgPSAyLCBnZXRfcGFzc3dvcmQgPSBHZXRQYXNz d29yZH19LgorIAorIG1lY2hfc3RlcCgjc3RhdGV7c3RlcCA9IDJ9ID0gU3RhdGUsIENsaWVudElu KSAtPgorZGlmZiAtLWdpdCBhL3NyYy9lamFiYmVyZF9jMnMuZXJsIGIvc3JjL2VqYWJiZXJkX2My cy5lcmwKK2luZGV4IDU1MmFhNmQuLjAzOGQzYzUgMTAwNjQ0CistLS0gYS9zcmMvZWphYmJlcmRf YzJzLmVybAorKysrIGIvc3JjL2VqYWJiZXJkX2Mycy5lcmwKK0BAIC0zMDUsOSArMzA1LDE2IEBA IHdhaXRfZm9yX3N0cmVhbSh7eG1sc3RyZWFtc3RhcnQsIF9OYW1lLCBBdHRyc30sIFN0YXRlRGF0 YSkgLT4KKyAJCQkgICAgc2VuZF9oZWFkZXIoU3RhdGVEYXRhLCBTZXJ2ZXIsICIxLjAiLCBEZWZh dWx0TGFuZyksCisgCQkJICAgIGNhc2UgU3RhdGVEYXRhI3N0YXRlLmF1dGhlbnRpY2F0ZWQgb2YK KyAJCQkJZmFsc2UgLT4KKysJCQkJICAgIFJlYWxtID0KKysJCQkJCWNhc2UgZWphYmJlcmRfY29u ZmlnOmdldF9sb2NhbF9vcHRpb24oe3Nhc2xfcmVhbG0sIFNlcnZlcn0pIG9mCisrCQkJCQkgICAg dW5kZWZpbmVkIC0+CisrCQkJCQkJIiI7CisrCQkJCQkgICAgUmVhbG0wIC0+CisrCQkJCQkJUmVh bG0wCisrCQkJCQllbmQsCisgCQkJCSAgICBTQVNMU3RhdGUgPQorIAkJCQkJY3lyc2FzbDpzZXJ2 ZXJfbmV3KAorLQkJCQkJICAiamFiYmVyIiwgU2VydmVyLCAiIiwgW10sCisrCQkJCQkgICJqYWJi ZXIiLCBTZXJ2ZXIsIFJlYWxtLCBbXSwKKyAJCQkJCSAgZnVuKFUpIC0+CisgCQkJCQkJICBlamFi YmVyZF9hdXRoOmdldF9wYXNzd29yZF93aXRoX2F1dGhtb2R1bGUoCisgCQkJCQkJICAgIFUsIFNl cnZlcikKK0BAIC0zMTksNyArMzI2LDggQEAgd2FpdF9mb3Jfc3RyZWFtKHt4bWxzdHJlYW1zdGFy dCwgX05hbWUsIEF0dHJzfSwgU3RhdGVEYXRhKSAtPgorIAkJCQkJICBmdW4oVSwgUCwgRCwgREcp IC0+CisgCQkJCQkJICBlamFiYmVyZF9hdXRoOmNoZWNrX3Bhc3N3b3JkX3dpdGhfYXV0aG1vZHVs ZSgKKyAJCQkJCQkgICAgVSwgU2VydmVyLCBQLCBELCBERykKKy0JCQkJCSAgZW5kKSwKKysJCQkJ CSAgZW5kLAorKwkJCQkJICBTdGF0ZURhdGEjc3RhdGUuc29ja2V0KSwKKyAJCQkJICAgIE1lY2hz ID0gbGlzdHM6bWFwKAorIAkJCQkJICAgICAgZnVuKFMpIC0+CisgCQkJCQkJICAgICAge3htbGVs ZW1lbnQsICJtZWNoYW5pc20iLCBbXSwKK2RpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRfc29ja2V0 LmVybCBiL3NyYy9lamFiYmVyZF9zb2NrZXQuZXJsCitpbmRleCAyNTQ3NTFiLi4zNTA5MDE4IDEw MDY0NAorLS0tIGEvc3JjL2VqYWJiZXJkX3NvY2tldC5lcmwKKysrKyBiL3NyYy9lamFiYmVyZF9z b2NrZXQuZXJsCitAQCAtNDQsOSArNDQsMTEgQEAKKyAJIGdldF9wZWVyX2NlcnRpZmljYXRlLzEs CisgCSBnZXRfdmVyaWZ5X3Jlc3VsdC8xLAorIAkgY2xvc2UvMSwKKysJIGdldGhvc3RuYW1lLzEs CisgCSBzb2NrbmFtZS8xLCBwZWVybmFtZS8xXSkuCisgCisgLWluY2x1ZGUoImVqYWJiZXJkLmhy bCIpLgorKy1pbmNsdWRlX2xpYigia2VybmVsL2luY2x1ZGUvaW5ldC5ocmwiKS4KKyAKKyAtcmVj b3JkKHNvY2tldF9zdGF0ZSwge3NvY2ttb2QsIHNvY2tldCwgcmVjZWl2ZXJ9KS4KKyAKK0BAIC0y MjgsNiArMjMwLDIzIEBAIHBlZXJuYW1lKCNzb2NrZXRfc3RhdGV7c29ja21vZCA9IFNvY2tNb2Qs IHNvY2tldCA9IFNvY2tldH0pIC0+CisgCSAgICBTb2NrTW9kOnBlZXJuYW1lKFNvY2tldCkKKyAg ICAgZW5kLgorIAorK2dldGhvc3RuYW1lKCNzb2NrZXRfc3RhdGV7c29ja2V0ID0gU29ja2V0fSA9 IFN0YXRlKSAtPgorKyAgICA/REVCVUcoImdldGhvc3RuYW1lIH5wfm4iLCBbU29ja2V0XSksCisr CisrICAgIGNhc2Ugc29ja25hbWUoU3RhdGUpIG9mCisrCXtvaywge0FkZHIsIF9Qb3J0fX0gLT4K KysJICAgIGNhc2UgaW5ldDpnZXRob3N0YnlhZGRyKEFkZHIpIG9mCisrCQl7b2ssIEhvc3RFbnR9 IHdoZW4gaXNfcmVjb3JkKEhvc3RFbnQsIGhvc3RlbnQpIC0+CisrCQkgICAgP0RFQlVHKCJnZXRo b3N0bmFtZSByZXN1bHQgfnB+biIsCisrCQkJICAgW0hvc3RFbnQjaG9zdGVudC5oX25hbWVdKSwK KysJCSAgICB7b2ssIEhvc3RFbnQjaG9zdGVudC5oX25hbWV9OworKwkJe2Vycm9yLCBfUmVhc29u fSA9IEUgLT4KKysJCSAgICBFCisrCSAgICBlbmQ7CisrCXtlcnJvciwgX1JlYXNvbn0gPSBFIC0+ CisrCSAgICBFCisrICAgIGVuZC4KKysKKyAlJT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgJSUgSW50ZXJuYWwgZnVu Y3Rpb25zCisgJSU9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gCisxLjcuMTAuNAorCgpkaWZmIC0tZ2l0IGEvZWph YmJlcmQtMDAwNy1Vc2UtdmVyc2lvbmVkLWRpcmVjdG9yeS1mb3Itc3RvcmluZy1kb2NzLnBhdGNo IGIvZWphYmJlcmQtMDAwNy1Vc2UtdmVyc2lvbmVkLWRpcmVjdG9yeS1mb3Itc3RvcmluZy1kb2Nz LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNmE0Mjg0Li4wMDAwMDAwCi0t LSBhL2VqYWJiZXJkLTAwMDctVXNlLXZlcnNpb25lZC1kaXJlY3RvcnktZm9yLXN0b3JpbmctZG9j cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLUZyb20gZmY1YmFhMjdjOWJi MDE3NWU0YmM0YWUzODYyZDhlNjM5MjM0YTcwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDEyIEp1 biAyMDEwIDE2OjEyOjExICswNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMDcvMTBdIFVzZSB2ZXJzaW9u ZWQgZGlyZWN0b3J5IGZvciBzdG9yaW5nIGRvY3MKLQotSXQncyBhbHNvIGEgZ29vZCBpZGVhIHRv IHN0b3JlIGRvYy1maWxlcyB1bmRlciB0aGUgdmVyc2lvbmVkIGRpcmVjdG9yeS4KLVRoaXMgbWF5 IGdyZWF0bHkgc2ltcGxpZnkgcGFyYWxsZWwgaW5zdGFsbGF0aW9uIG9mIGRpZmZlcmVudCB2ZXJz aW9ucyBvZgotZWphYmJlZC4KLQotTm90ZSB0aGF0IHRoaXMgbWF5IGJlIGRvbmUgaW4gdGhlIG90 aGVyIHdheSAtIGJ5IGNoYW5naW5nIHByb3BlciBmaWVsZAotaW4gdGhlIEFDX0lOSVQgbWFjcm8s IHNlZSB0aGUgZXhwbGFuYXRpb24gb2YgdGhlIGZpZWxkICd0YXJuYW1lJzoKLQotaHR0cDovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mL21hbnVhbC9odG1sX25vZGUvSW5pdGlhbGl6aW5n LWNvbmZpZ3VyZS5odG1sCi0KLVNpZ25lZC1vZmYtYnk6IFBldGVyIExlbWVua292IDxsZW1lbmtv dkBnbWFpbC5jb20+Ci0tLS0KLSBzcmMvTWFrZWZpbGUuaW4gfCAgICAyICstCi0gMSBmaWxlIGNo YW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMv TWFrZWZpbGUuaW4gYi9zcmMvTWFrZWZpbGUuaW4KLWluZGV4IDY0ZWQ4NTYuLjQzYjVlMWYgMTAw NjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuaW4KLSsrKyBiL3NyYy9NYWtlZmlsZS5pbgotQEAgLTk4 LDcgKzk4LDcgQEAgU0JJTkRJUiA9ICQoREVTVERJUilAc2JpbmRpckAKLSBFSkFCQkVSRERJUiA9 ICQoREVTVERJUilAbGliZGlyQC9lamFiYmVyZAotIAotICMgL3NoYXJlL2RvYy9lamFiYmVyZAot LVBBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAtQFBBQ0tBR0VfVkVSU0lPTkAKLSBkYXRhcm9vdGRpciA9IEBkYXRh cm9vdGRpckAKLSBET0NESVIgPSAkKERFU1RESVIpQGRvY2RpckAKLSAKLS0tIAotMS43LjEwLjEK LQoKZGlmZiAtLWdpdCBhL2VqYWJiZXJkLTAwMDgtRGlzYWJsZS1JTkVUX0RJU1RfSU5URVJGQUNF LWJ5LWRlZmF1bHQucGF0Y2ggYi9lamFiYmVyZC0wMDA4LURpc2FibGUtSU5FVF9ESVNUX0lOVEVS RkFDRS1ieS1kZWZhdWx0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmE5YjBiNWIKLS0tIC9kZXYvbnVsbAorKysgYi9lamFiYmVyZC0wMDA4LURpc2FibGUtSU5FVF9E SVNUX0lOVEVSRkFDRS1ieS1kZWZhdWx0LnBhdGNoCkBAIC0wLDAgKzEsMjYgQEAKK0Zyb20gYTZh MWVlNWE5ZDVhODQwMDQxNWE5NjQ1NmRiYjc5ZjQzNDFjMzQxMCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+CitEYXRlOiBT YXQsIDE4IEp1biAyMDExIDIzOjI0OjI4ICswNDAwCitTdWJqZWN0OiBbUEFUQ0ggOC84XSBEaXNh YmxlIElORVRfRElTVF9JTlRFUkZBQ0UgYnkgZGVmYXVsdAorCitTaWduZWQtb2ZmLWJ5OiBQZXRl ciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgorLS0tCisgc3JjL2VqYWJiZXJkY3RsLmNm Zy5leGFtcGxlIHwgICAgMiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJkY3RsLmNmZy5leGFtcGxlIGIv c3JjL2VqYWJiZXJkY3RsLmNmZy5leGFtcGxlCitpbmRleCBiNzIwNThhLi41ZWU0M2NmIDEwMDY0 NAorLS0tIGEvc3JjL2VqYWJiZXJkY3RsLmNmZy5leGFtcGxlCisrKysgYi9zcmMvZWphYmJlcmRj dGwuY2ZnLmV4YW1wbGUKK0BAIC01OSw3ICs1OSw3IEBACisgIworICMgRGVmYXVsdDogezEyNyww LDAsMX0KKyAjCistSU5FVF9ESVNUX0lOVEVSRkFDRT17MTI3LDAsMCwxfQorKyNJTkVUX0RJU1Rf SU5URVJGQUNFPXsxMjcsMCwwLDF9CisgCisgIy4KKyAjJyBFUkxfRVBNRF9BRERSRVNTOiBJUCBh ZGRyZXNzZXMgd2hlcmUgZXBtZCBsaXN0ZW5zIGZvciBjb25uZWN0aW9ucworLS0gCisxLjcuMTAu NAorCgpkaWZmIC0tZ2l0IGEvZWphYmJlcmQtMDAwOC1TdXBwb3J0LVNBU0wtR1NTQVBJLWF1dGhl bnRpY2F0aW9uLXRoYW5rcy10by1NaWthZWwtLnBhdGNoIGIvZWphYmJlcmQtMDAwOC1TdXBwb3J0 LVNBU0wtR1NTQVBJLWF1dGhlbnRpY2F0aW9uLXRoYW5rcy10by1NaWthZWwtLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2N2IwNzE3Li4wMDAwMDAwCi0tLSBhL2VqYWJiZXJk LTAwMDgtU3VwcG9ydC1TQVNMLUdTU0FQSS1hdXRoZW50aWNhdGlvbi10aGFua3MtdG8tTWlrYWVs LS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDUwNSArMCwwIEBACi1Gcm9tIGIxZGJjNTIyNGQw MDBiNjJkNDA1ZjRlODJiNmRkNjQ2ZjU0OTk3YTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBCYWRsb3AgPGJhZGxvcEBwcm9jZXNzLW9uZS5uZXQ+Ci1EYXRlOiBUaHUsIDE1IEFwciAy MDEwIDE3OjIwOjE2ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMDgvMTBdIFN1cHBvcnQgU0FTTCBH U1NBUEkgYXV0aGVudGljYXRpb24gKHRoYW5rcyB0byBNaWthZWwKLSBNYWdudXNzb24pKEVKQUIt ODMxKQotCi0tLS0KLSBzcmMvY3lyc2FzbC5lcmwgICAgICAgICAgIHwgICA3MSArKysrKysrKysr KysrKystLS0tCi0gc3JjL2N5cnNhc2wuaHJsICAgICAgICAgICB8ICAgMTUgKysrKwotIHNyYy9j eXJzYXNsX2Fub255bW91cy5lcmwgfCAgICA2ICstCi0gc3JjL2N5cnNhc2xfZGlnZXN0LmVybCAg ICB8ICAgIDYgKy0KLSBzcmMvY3lyc2FzbF9nc3NhcGkuZXJsICAgIHwgIDE2NiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBzcmMvY3lyc2FzbF9wbGFpbi5l cmwgICAgIHwgICAgNiArLQotIHNyYy9jeXJzYXNsX3NjcmFtLmVybCAgICAgfCAgICA1ICstCi0g c3JjL2VqYWJiZXJkX2Mycy5lcmwgICAgICB8ICAgMTIgKysrLQotIHNyYy9lamFiYmVyZF9zb2Nr ZXQuZXJsICAgfCAgIDE5ICsrKysrKwotIDkgZmlsZXMgY2hhbmdlZCwgMjgxIGluc2VydGlvbnMo KyksIDI1IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvY3lyc2FzbC5ocmwK LSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2N5cnNhc2xfZ3NzYXBpLmVybAotCi1kaWZmIC0tZ2l0 IGEvc3JjL2N5cnNhc2wuZXJsIGIvc3JjL2N5cnNhc2wuZXJsCi1pbmRleCAyM2YxNzIxLi41ZmYw OTE2IDEwMDY0NAotLS0tIGEvc3JjL2N5cnNhc2wuZXJsCi0rKysgYi9zcmMvY3lyc2FzbC5lcmwK LUBAIC0zMCwyMSArMzAsMzYgQEAKLSAtZXhwb3J0KFtzdGFydC8wLAotIAkgcmVnaXN0ZXJfbWVj aGFuaXNtLzMsCi0gCSBsaXN0bWVjaC8xLAotLQkgc2VydmVyX25ldy83LAotKwkgc2VydmVyX25l dy84LAotIAkgc2VydmVyX3N0YXJ0LzMsCi0gCSBzZXJ2ZXJfc3RlcC8yXSkuCi0gCi0rLWluY2x1 ZGUoImN5cnNhc2wuaHJsIikuCi0gLWluY2x1ZGUoImVqYWJiZXJkLmhybCIpLgotIAotKyUlIEB0 eXBlIHNhc2xtZWNoYW5pc20oKSA9IHtzYXNsX21lY2hhbmlzbSwgTWVjaGFuaXNtLCBNb2R1bGUs IFJlcXVpcmVfUGxhaW59Ci0rJSUgICAgIE1lY2hhbmlzbSA9IHN0cmluZygpCi0rJSUgICAgIE1v ZHVsZSA9IGF0b20oKQotKyUlICAgICBSZXF1aXJlX1BsYWluID0gYm9vbCgpLgotKyUlIFJlZ2lz dHJ5IGVudHJ5IG9mIGEgc3VwcG9ydGVkIFNBU0wgbWVjaGFuaXNtLgotKwotIC1yZWNvcmQoc2Fz bF9tZWNoYW5pc20sIHttZWNoYW5pc20sIG1vZHVsZSwgcGFzc3dvcmRfdHlwZX0pLgotLS1yZWNv cmQoc2FzbF9zdGF0ZSwge3NlcnZpY2UsIG15bmFtZSwgcmVhbG0sCi0tCQkgICAgIGdldF9wYXNz d29yZCwgY2hlY2tfcGFzc3dvcmQsIGNoZWNrX3Bhc3N3b3JkX2RpZ2VzdCwKLS0JCSAgICAgbWVj aF9tb2QsIG1lY2hfc3RhdGV9KS4KLSsKLSslJSBAdHlwZSBzYXNsc3RhdGUoKSA9IHtzYXNsX3N0 YXRlLCBTZXJ2aWNlLCBNeW5hbWUsIE1lY2hfTW9kLCBNZWNoX1N0YXRlLCBQYXJhbXN9Ci0rJSUg ICAgIFNlcnZpY2UgPSBzdHJpbmcoKQotKyUlICAgICBNeW5hbWUgPSBzdHJpbmcoKQotKyUlICAg ICBNZWNoX01vZCA9IGF0b20oKQotKyUlICAgICBNZWNoX1N0YXRlID0gdGVybSgpLgotKyUlICAg ICBQYXJhbXMgPSB0ZXJtKCkuCi0rJSUgU3RhdGUgb2YgdGhpcyBwcm9jZXNzLgotKwotKy1yZWNv cmQoc2FzbF9zdGF0ZSwge3NlcnZpY2UsIG15bmFtZSwKLSsJCSAgICAgbWVjaF9tb2QsIG1lY2hf c3RhdGUsIHBhcmFtc30pLgotIAotIC1leHBvcnQoW2JlaGF2aW91cl9pbmZvLzFdKS4KLSAKLSBi ZWhhdmlvdXJfaW5mbyhjYWxsYmFja3MpIC0+Ci0tICAgIFt7bWVjaF9uZXcsIDR9LCB7bWVjaF9z dGVwLCAyfV07Ci0rICAgIFt7bWVjaF9uZXcsIDF9LCB7bWVjaF9zdGVwLCAyfV07Ci0gYmVoYXZp b3VyX2luZm8oX090aGVyKSAtPgotICAgICB1bmRlZmluZWQuCi0gCi1AQCAtNTYsOCArNzEsMzAg QEAgc3RhcnQoKSAtPgotICAgICBjeXJzYXNsX2RpZ2VzdDpzdGFydChbXSksCi0gICAgIGN5cnNh c2xfc2NyYW06c3RhcnQoW10pLAotICAgICBjeXJzYXNsX2Fub255bW91czpzdGFydChbXSksCi0r ICAgIG1heWJlX3RyeV9zdGFydF9nc3NhcGkoKSwKLSAgICAgb2suCi0gCi0rbWF5YmVfdHJ5X3N0 YXJ0X2dzc2FwaSgpIC0+Ci0rICAgIGNhc2Ugb3M6Z2V0ZW52KCJLUkI1X0tUTkFNRSIpIG9mCi0r ICAgICAgICBmYWxzZSAtPgotKwkgICAgb2s7Ci0rICAgICAgICBfU3RyaW5nIC0+Ci0rCSAgICB0 cnlfc3RhcnRfZ3NzYXBpKCkKLSsgICAgZW5kLgotKwotK3RyeV9zdGFydF9nc3NhcGkoKSAtPgot KyAgICBjYXNlIGNvZGU6bG9hZF9maWxlKGVzYXNsKSBvZgotKwl7bW9kdWxlLCBfTW9kdWxlfSAt PgotKwkgICAgY3lyc2FzbF9nc3NhcGk6c3RhcnQoW10pOwotKwl7ZXJyb3IsIFdoYXR9IC0+Ci0r CSAgICA/RVJST1JfTVNHKCJTdXBwb3J0IGZvciBHU1NBUEkgbm90IHN0YXJ0ZWQgYmVjYXVzZSBl c2FzbC5iZWFtIHdhcyBub3QgZm91bmQ6IH5wIiwgW1doYXRdKQotKyAgICBlbmQuCi0rCi0rJSUg QHNwZWMgKE1lY2hhbmlzbSwgTW9kdWxlLCBSZXF1aXJlX1BsYWluKSAtPiB0cnVlCi0rJSUgICAg IE1lY2hhbmlzbSA9IHN0cmluZygpCi0rJSUgICAgIE1vZHVsZSA9IGF0b20oKQotKyUlICAgICBS ZXF1aXJlX1BsYWluID0gYm9vbCgpCi0rCi0gcmVnaXN0ZXJfbWVjaGFuaXNtKE1lY2hhbmlzbSwg TW9kdWxlLCBQYXNzd29yZFR5cGUpIC0+Ci0gICAgIGV0czppbnNlcnQoc2FzbF9tZWNoYW5pc20s Ci0gCSAgICAgICAjc2FzbF9tZWNoYW5pc217bWVjaGFuaXNtID0gTWVjaGFuaXNtLAotQEAgLTEx OSwyNCArMTU2LDI4IEBAIGxpc3RtZWNoKEhvc3QpIC0+Ci0gICAgIGZpbHRlcl9hbm9ueW1vdXMo SG9zdCwgTWVjaHMpLgotIAotIHNlcnZlcl9uZXcoU2VydmljZSwgU2VydmVyRlFETiwgVXNlclJl YWxtLCBfU2VjRmxhZ3MsCi0tCSAgIEdldFBhc3N3b3JkLCBDaGVja1Bhc3N3b3JkLCBDaGVja1Bh c3N3b3JkRGlnZXN0KSAtPgotKwkgICBHZXRQYXNzd29yZCwgQ2hlY2tQYXNzd29yZCwgQ2hlY2tQ YXNzd29yZERpZ2VzdCwgU29ja2V0KSAtPgotKyAgICBQYXJhbXMgPSAjc2FzbF9wYXJhbXN7Ci0r ICAgICAgaG9zdCA9IFNlcnZlckZRRE4sCi0rICAgICAgcmVhbG0gPSBVc2VyUmVhbG0sCi0rICAg ICAgZ2V0X3Bhc3N3b3JkID0gR2V0UGFzc3dvcmQsCi0rICAgICAgY2hlY2tfcGFzc3dvcmQgPSBD aGVja1Bhc3N3b3JkLAotKyAgICAgIGNoZWNrX3Bhc3N3b3JkX2RpZ2VzdD0gQ2hlY2tQYXNzd29y ZERpZ2VzdCwKLSsgICAgICBzb2NrZXQgPSBTb2NrZXQKLSsgICAgIH0sCi0rCi0gICAgICNzYXNs X3N0YXRle3NlcnZpY2UgPSBTZXJ2aWNlLAotIAkJbXluYW1lID0gU2VydmVyRlFETiwKLS0JCXJl YWxtID0gVXNlclJlYWxtLAotLQkJZ2V0X3Bhc3N3b3JkID0gR2V0UGFzc3dvcmQsCi0tCQljaGVj a19wYXNzd29yZCA9IENoZWNrUGFzc3dvcmQsCi0tCQljaGVja19wYXNzd29yZF9kaWdlc3Q9IENo ZWNrUGFzc3dvcmREaWdlc3R9LgotKwkJcGFyYW1zID0gUGFyYW1zfS4KLSsKLSAKLSBzZXJ2ZXJf c3RhcnQoU3RhdGUsIE1lY2gsIENsaWVudEluKSAtPgotICAgICBjYXNlIGxpc3RzOm1lbWJlcihN ZWNoLCBsaXN0bWVjaChTdGF0ZSNzYXNsX3N0YXRlLm15bmFtZSkpIG9mCi0gCXRydWUgLT4KLSAJ ICAgIGNhc2UgZXRzOmxvb2t1cChzYXNsX21lY2hhbmlzbSwgTWVjaCkgb2YKLSAJCVsjc2FzbF9t ZWNoYW5pc217bW9kdWxlID0gTW9kdWxlfV0gLT4KLS0JCSAgICB7b2ssIE1lY2hTdGF0ZX0gPSBN b2R1bGU6bWVjaF9uZXcoCi0tCQkJCQlTdGF0ZSNzYXNsX3N0YXRlLm15bmFtZSwKLS0JCQkJCVN0 YXRlI3Nhc2xfc3RhdGUuZ2V0X3Bhc3N3b3JkLAotLQkJCQkJU3RhdGUjc2FzbF9zdGF0ZS5jaGVj a19wYXNzd29yZCwKLS0JCQkJCVN0YXRlI3Nhc2xfc3RhdGUuY2hlY2tfcGFzc3dvcmRfZGlnZXN0 KSwKLSsJCSAgICB7b2ssIE1lY2hTdGF0ZX0gPQotKwkJCU1vZHVsZTptZWNoX25ldyhTdGF0ZSNz YXNsX3N0YXRlLnBhcmFtcyksCi0gCQkgICAgc2VydmVyX3N0ZXAoU3RhdGUjc2FzbF9zdGF0ZXtt ZWNoX21vZCA9IE1vZHVsZSwKLSAJCQkJCQkgbWVjaF9zdGF0ZSA9IE1lY2hTdGF0ZX0sCi0gCQkJ CUNsaWVudEluKTsKLWRpZmYgLS1naXQgYS9zcmMvY3lyc2FzbC5ocmwgYi9zcmMvY3lyc2FzbC5o cmwKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iNGNjM2UzCi0tLS0gL2Rl di9udWxsCi0rKysgYi9zcmMvY3lyc2FzbC5ocmwKLUBAIC0wLDAgKzEsMTUgQEAKLSslJSBAdHlw ZSBzYXNscGFyYW1zKCkgPSB7c2FzbF9wYXJhbXMsIEhvc3QsIFJlYWxtLCBHZXRQYXNzd29yZCwg Q2hlY2tQYXNzd29yZCwgQ2hlY2tQYXNzd29yZERpZ2VzdH0KLSslJSAgICAgSG9zdCA9IHN0cmlu ZygpCi0rJSUgICAgIFJlYWxtID0gc3RyaW5nKCkKLSslJSAgICAgR2V0UGFzc3dvcmQgPSBmdW5j dGlvbigpCi0rJSUgICAgIENoZWNrUGFzc3dvcmQgPSBmdW5jdGlvbigpCi0rJSUgICAgIENoZWNr UGFzc3dvcmREaWdlc3QgPSBhbnkoKS4KLSslJSBQYXJhbWV0ZXJzIGZvciBTQVNMLgotKwotKy1y ZWNvcmQoc2FzbF9wYXJhbXMsIHsKLSsJICBob3N0LAotKwkgIHJlYWxtLAotKwkgIGdldF9wYXNz d29yZCwKLSsJICBjaGVja19wYXNzd29yZCwKLSsJICBjaGVja19wYXNzd29yZF9kaWdlc3QsCi0r CSAgc29ja2V0fSkuCi1kaWZmIC0tZ2l0IGEvc3JjL2N5cnNhc2xfYW5vbnltb3VzLmVybCBiL3Ny Yy9jeXJzYXNsX2Fub255bW91cy5lcmwKLWluZGV4IDI1ZmNkNjYuLmFlYjA5ZWEgMTAwNjQ0Ci0t LS0gYS9zcmMvY3lyc2FzbF9hbm9ueW1vdXMuZXJsCi0rKysgYi9zcmMvY3lyc2FzbF9hbm9ueW1v dXMuZXJsCi1AQCAtMjcsNyArMjcsOSBAQAotIAotIC1tb2R1bGUoY3lyc2FzbF9hbm9ueW1vdXMp LgotIAotLS1leHBvcnQoW3N0YXJ0LzEsIHN0b3AvMCwgbWVjaF9uZXcvNCwgbWVjaF9zdGVwLzJd KS4KLSstZXhwb3J0KFtzdGFydC8xLCBzdG9wLzAsIG1lY2hfbmV3LzEsIG1lY2hfc3RlcC8yXSku Ci0rCi0rLWluY2x1ZGUoImN5cnNhc2wuaHJsIikuCi0gCi0gLWJlaGF2aW91cihjeXJzYXNsKS4K LSAKLUBAIC00MCw3ICs0Miw3IEBAIHN0YXJ0KF9PcHRzKSAtPgotIHN0b3AoKSAtPgotICAgICBv ay4KLSAKLS1tZWNoX25ldyhIb3N0LCBfR2V0UGFzc3dvcmQsIF9DaGVja1Bhc3N3b3JkLCBfQ2hl Y2tQYXNzd29yZERpZ2VzdCkgLT4KLSttZWNoX25ldygjc2FzbF9wYXJhbXN7aG9zdD1Ib3N0fSkg LT4KLSAgICAge29rLCAjc3RhdGV7c2VydmVyID0gSG9zdH19LgotIAotIG1lY2hfc3RlcChTdGF0 ZSwgX0NsaWVudEluKSAtPgotZGlmZiAtLWdpdCBhL3NyYy9jeXJzYXNsX2RpZ2VzdC5lcmwgYi9z cmMvY3lyc2FzbF9kaWdlc3QuZXJsCi1pbmRleCAxMzRhODZkLi5kOTA0ODAxIDEwMDY0NAotLS0t IGEvc3JjL2N5cnNhc2xfZGlnZXN0LmVybAotKysrIGIvc3JjL2N5cnNhc2xfZGlnZXN0LmVybAot QEAgLTI5LDEwICsyOSwxMSBAQAotIAotIC1leHBvcnQoW3N0YXJ0LzEsCi0gCSBzdG9wLzAsCi0t CSBtZWNoX25ldy80LAotKwkgbWVjaF9uZXcvMSwKLSAJIG1lY2hfc3RlcC8yXSkuCi0gCi0gLWlu Y2x1ZGUoImVqYWJiZXJkLmhybCIpLgotKy1pbmNsdWRlKCJjeXJzYXNsLmhybCIpLgotIAotIC1i ZWhhdmlvdXIoY3lyc2FzbCkuCi0gCi1AQCAtNDcsNyArNDgsOCBAQCBzdGFydChfT3B0cykgLT4K LSBzdG9wKCkgLT4KLSAgICAgb2suCi0gCi0tbWVjaF9uZXcoSG9zdCwgR2V0UGFzc3dvcmQsIF9D aGVja1Bhc3N3b3JkLCBDaGVja1Bhc3N3b3JkRGlnZXN0KSAtPgotK21lY2hfbmV3KCNzYXNsX3Bh cmFtc3tob3N0PUhvc3QsIGdldF9wYXNzd29yZD1HZXRQYXNzd29yZCwKLSsJCSAgICAgIGNoZWNr X3Bhc3N3b3JkX2RpZ2VzdD1DaGVja1Bhc3N3b3JkRGlnZXN0fSkgLT4KLSAgICAge29rLCAjc3Rh dGV7c3RlcCA9IDEsCi0gCQlub25jZSA9IHJhbmRvbXM6Z2V0X3N0cmluZygpLAotIAkJaG9zdCA9 IEhvc3QsCi1kaWZmIC0tZ2l0IGEvc3JjL2N5cnNhc2xfZ3NzYXBpLmVybCBiL3NyYy9jeXJzYXNs X2dzc2FwaS5lcmwKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4xMWQ5OTU1 Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvY3lyc2FzbF9nc3NhcGkuZXJsCi1AQCAtMCwwICsx LDE2NiBAQAotKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSslJSUgRmlsZSAgICA6IGN5cnNhc2xfZ3NzYXBp LmVybAotKyUlJSBBdXRob3IgIDogTWlrYWVsIE1hZ251c3NvbiA8bWlrbWFAdXNlcnMuc291cmNl Zm9yZ2UubmV0PgotKyUlJSBQdXJwb3NlIDogR1NTQVBJIFNBU0wgbWVjaGFuaXNtCi0rJSUlIENy ZWF0ZWQgOiAxIEp1bmUgMjAwNyBieSBNaWthZWwgTWFnbnVzc29uIDxtaWttYUB1c2Vycy5zb3Vy Y2Vmb3JnZS5uZXQ+Ci0rJSUlIElkICAgICAgOiAkSWQ6ICQKLSslJSUtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r JSUlCi0rJSUlIENvcHlyaWdodCAoQykgMjAwNy0yMDA5ICBNaWthZWwgTWFnbnVzc29uIDxtaWtt YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Ci0rJSUlCi0rJSUlIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCi0rJSUlIG9idGFpbmluZyBh IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uCi0rJSUl IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQK LSslJSUgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksCi0rJSUlIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcwotKyUlJSBvZiB0aGUgU29mdHdhcmUsIGFu ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwotKyUlJSBmdXJuaXNo ZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotKyUlJQot KyUlJSBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSBzaGFsbCBiZQotKyUlJSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSslJSUKLSslJSUgVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCi0rJSUlIEVYUFJFU1Mg T1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RgotKyUlJSBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORAotKyUlJSBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTCi0rJSUlIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgotKyUlJSBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgotKyUl JSBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFCi0rJSUlIFNPRlRXQVJFLgotKyUlJQotKwotKyUlJQotKyUlJSBjb25maWd1cmF0 aW9uIG9wdGlvbnM6Ci0rJSUlIHtzYXNsX3JlYWxtLCAiPEtlcmJlcm9zIHJlYWxtPiJ9LgotKyUl JQotKyUlJSBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0rJSUlIEtSQjVfS1ROQU1FCi0rJSUlCi0r Ci0rLW1vZHVsZShjeXJzYXNsX2dzc2FwaSkuCi0rLWF1dGhvcignbWlrbWFAdXNlcnMuc291cmNl Zm9yZ2UubmV0JykuCi0rLXZzbignJFJldmlzaW9uOiAkICcpLgotKwotKy1leHBvcnQoW3N0YXJ0 LzEsCi0rCSBzdG9wLzAsCi0rCSBtZWNoX25ldy8xLAotKwkgbWVjaF9zdGVwLzJdKS4KLSsKLSst aW5jbHVkZSgiZWphYmJlcmQuaHJsIikuCi0rLWluY2x1ZGUoImN5cnNhc2wuaHJsIikuCi0rCi0r LWJlaGF2aW91cihjeXJzYXNsKS4KLSsKLSstZGVmaW5lKFNFUlZFUiwgP01PRFVMRSkuCi0rLWRl ZmluZShTRVJWSUNFLCAieG1wcCIpLgotKwotKy1yZWNvcmQoc3RhdGUsIHtzYXNsLAotKwkJbmVl ZHNtb3JlPXRydWUsCi0rCQlzdGVwPTAsCi0rCQlob3N0LAotKwkJcmVhbG0sCi0rCQlhdXRoaWQs Ci0rCQlhdXRoemlkLAotKwkJYXV0aHJlYWxtLAotKwkJZXJyb3J9KS4KLSsKLStzdGFydChfT3B0 cykgLT4KLSsgICAgQ2hpbGRTcGVjID0KLSsJez9TRVJWRVIsCi0rCSB7ZXNhc2wsIHN0YXJ0X2xp bmssIFt7bG9jYWwsID9TRVJWRVJ9XX0sCi0rCSB0cmFuc2llbnQsCi0rCSAxMDAwLAotKwkgd29y a2VyLAotKwkgW2VzYXNsXX0sCi0rCi0rICAgIGNhc2Ugc3VwZXJ2aXNvcjpzdGFydF9jaGlsZChl amFiYmVyZF9zdXAsIENoaWxkU3BlYykgb2YKLSsJe29rLCBfUGlkfSAtPgotKwkgICAgY3lyc2Fz bDpyZWdpc3Rlcl9tZWNoYW5pc20oIkdTU0FQSSIsID9NT0RVTEUsIGZhbHNlKTsKLSsJe2Vycm9y LCBFcnJvcn0gPSBFIC0+Ci0rCSAgICA/RVJST1JfTVNHKCJlc2FzbCBmYWlsZWQ6IH5wIiwgW0Vy cm9yXSksCi0rCSAgICBFCi0rICAgIGVuZC4KLSsKLSsKLStzdG9wKCkgLT4KLSsgICAgY2F0Y2gg ZXNhc2w6c3RvcCg/U0VSVkVSKSwKLSsgICAgc3VwZXJ2aXNvcjp0ZXJtaW5hdGVfY2hpbGQoZWph YmJlcmRfc3VwLCA/U0VSVkVSKSwKLSsgICAgc3VwZXJ2aXNvcjpkZWxldGVfY2hpbGQoZWphYmJl cmRfc3VwLCA/U0VSVkVSKS4KLSsKLSttZWNoX25ldygjc2FzbF9wYXJhbXN7aG9zdD1Ib3N0LCBy ZWFsbT1SZWFsbSwgc29ja2V0PVNvY2tldH0pIC0+Ci0rICAgIGNhc2UgZWphYmJlcmRfc29ja2V0 OmdldGhvc3RuYW1lKFNvY2tldCkgb2YKLSsJe29rLCBGUUROfSAtPgotKwkgICAgP0RFQlVHKCJt ZWNoX25ldyB+cCB+cCB+cH5uIiwgW0hvc3QsIFJlYWxtLCBGUUROXSksCi0rCSAgICBjYXNlIGVz YXNsOnNlcnZlcl9zdGFydCg/U0VSVkVSLCAiR1NTQVBJIiwgP1NFUlZJQ0UsIEZRRE4pIG9mCi0r CQl7b2ssIFNhc2x9IC0+Ci0rCQkgICAge29rLCAjc3RhdGV7c2FzbD1TYXNsLGhvc3Q9SG9zdCxy ZWFsbT1SZWFsbX19OwotKwkJe2Vycm9yLCB7Z3Nhc2xfZXJyb3IsIEVycm9yfX0gLT4KLSsJCSAg ICB7b2ssIFN0cn0gPSBlc2FzbDpzdHJfZXJyb3IoP1NFUlZFUiwgRXJyb3IpLAotKwkJICAgID9E RUJVRygiZXNhc2wgZXJyb3I6IH5wIiwgW1N0cl0pLAotKwkJICAgIHtvaywgI3N0YXRle25lZWRz bW9yZT1lcnJvcixlcnJvcj0iaW50ZXJuYWwtc2VydmVyLWVycm9yIn19OwotKwkJe2Vycm9yLCBF cnJvcn0gLT4KLSsJCSAgICA/REVCVUcoImVzYXNsIGVycm9yOiB+cCIsIFtFcnJvcl0pLAotKwkJ ICAgIHtvaywgI3N0YXRle25lZWRzbW9yZT1lcnJvcixlcnJvcj0iaW50ZXJuYWwtc2VydmVyLWVy cm9yIn19Ci0rCSAgICBlbmQ7Ci0rCXtlcnJvciwgRXJyb3J9IC0+Ci0rCSAgICA/REVCVUcoImdl dGhvc3RuYW1lIGVycm9yOiB+cCIsIFtFcnJvcl0pLAotKwkgICAge29rLCAjc3RhdGV7bmVlZHNt b3JlPWVycm9yLGVycm9yPSJpbnRlcm5hbC1zZXJ2ZXItZXJyb3IifX0KLSsgICAgZW5kLgotKwot K21lY2hfc3RlcChTdGF0ZSwgQ2xpZW50SW4pIHdoZW4gaXNfbGlzdChDbGllbnRJbikgLT4KLSsg ICAgY2F0Y2ggZG9fc3RlcChTdGF0ZSwgQ2xpZW50SW4pLgotKwotK2RvX3N0ZXAoI3N0YXRle25l ZWRzbW9yZT1lcnJvcixlcnJvcj1FcnJvcn09X1N0YXRlLCBfKSAtPgotKyAgICB7ZXJyb3IsIEVy cm9yfTsKLStkb19zdGVwKCNzdGF0ZXtuZWVkc21vcmU9ZmFsc2V9PVN0YXRlLCBfKSAtPgotKyAg ICBjaGVja191c2VyKFN0YXRlKTsKLStkb19zdGVwKCNzdGF0ZXtuZWVkc21vcmU9dHJ1ZSxzYXNs PVNhc2wsc3RlcD1TdGVwfT1TdGF0ZSwgQ2xpZW50SW4pIC0+Ci0rICAgID9ERUJVRygibWVjaF9z dGVwfm4iLCBbXSksCi0rICAgIGNhc2UgZXNhc2w6c3RlcChTYXNsLCBsaXN0X3RvX2JpbmFyeShD bGllbnRJbikpIG9mCi0rCXtvaywgUnNwQXV0aH0gLT4KLSsJICAgID9ERUJVRygib2t+biIsIFtd KSwKLSsJICAgIHtvaywgRGlzcGxheV9uYW1lfSA9IGVzYXNsOnByb3BlcnR5X2dldChTYXNsLCBn c3NhcGlfZGlzcGxheV9uYW1lKSwKLSsJICAgIHtvaywgQXV0aHppZH0gPSBlc2FzbDpwcm9wZXJ0 eV9nZXQoU2FzbCwgYXV0aHppZCksCi0rCSAgICB7QXV0aGlkLCBbJEAgfCBBdXRoX3JlYWxtXX0g PQotKwkJbGlzdHM6c3BsaXR3aXRoKGZ1bihFKS0+RSA9Lz0gJEAgZW5kLCBEaXNwbGF5X25hbWUp LAotKwkgICAgU3RhdGUxID0gU3RhdGUjc3RhdGV7YXV0aGlkPUF1dGhpZCwKLSsJCQkJIGF1dGh6 aWQ9QXV0aHppZCwKLSsJCQkJIGF1dGhyZWFsbT1BdXRoX3JlYWxtfSwKLSsJICAgIGhhbmRsZV9z dGVwX29rKFN0YXRlMSwgYmluYXJ5X3RvX2xpc3QoUnNwQXV0aCkpOwotKwl7bmVlZHNtb3JlLCBS c3BBdXRofSAtPgotKwkgICAgP0RFQlVHKCJuZWVkc21vcmV+biIsIFtdKSwKLSsJICAgIGlmIChT dGVwID4gMCkgYW5kIChDbGllbnRJbiA9Oj0gW10pIGFuZCAoUnNwQXV0aCA9Oj0gPDw+PikgLT4K LSsJCSAgICB7ZXJyb3IsICJub3QtYXV0aG9yaXplZCJ9OwotKwkJdHJ1ZSAtPgotKwkJICAgIHtj b250aW51ZSwgYmluYXJ5X3RvX2xpc3QoUnNwQXV0aCksCi0rCQkgICAgIFN0YXRlI3N0YXRle3N0 ZXA9U3RlcCsxfX0KLSsJICAgIGVuZDsKLSsJe2Vycm9yLCBffSAtPgotKwkgICAge2Vycm9yLCAi bm90LWF1dGhvcml6ZWQifQotKyAgICBlbmQuCi0rCi0raGFuZGxlX3N0ZXBfb2soU3RhdGUsIFtd KSAtPgotKyAgICBjaGVja191c2VyKFN0YXRlKTsKLStoYW5kbGVfc3RlcF9vaygjc3RhdGV7c3Rl cD1TdGVwfT1TdGF0ZSwgUnNwQXV0aCkgLT4KLSsgICAgP0RFQlVHKCJjb250aW51ZX5uIiwgW10p LAotKyAgICB7Y29udGludWUsIFJzcEF1dGgsIFN0YXRlI3N0YXRle25lZWRzbW9yZT1mYWxzZSxz dGVwPVN0ZXArMX19LgotKwotK2NoZWNrX3VzZXIoI3N0YXRle2F1dGhpZD1BdXRoaWQsYXV0aHpp ZD1BdXRoemlkLAotKwkJICBhdXRocmVhbG09QXV0aF9yZWFsbSxob3N0PUhvc3QscmVhbG09UmVh bG19KSAtPgotKyAgICBpZiBSZWFsbSA9Lz0gQXV0aF9yZWFsbSAtPgotKwkgICAgP0RFQlVHKCJi YWQgcmVhbG0gfnAgKGV4cGVjdGVkIH5wKX5uIixbQXV0aF9yZWFsbSwgUmVhbG1dKSwKLSsJICAg IHRocm93KHtlcnJvciwgIm5vdC1hdXRob3JpemVkIn0pOwotKyAgICAgICB0cnVlIC0+Ci0rCSAg ICBvawotKyAgICBlbmQsCi0rCi0rICAgIGNhc2UgZWphYmJlcmRfYXV0aDppc191c2VyX2V4aXN0 cyhBdXRoaWQsIEhvc3QpIG9mCi0rCWZhbHNlIC0+Ci0rCSAgICA/REVCVUcoImJhZCB1c2VyIH5w fm4iLFtBdXRoaWRdKSwKLSsJICAgIHRocm93KHtlcnJvciwgIm5vdC1hdXRob3JpemVkIn0pOwot Kwl0cnVlIC0+Ci0rCSAgICBvawotKyAgICBlbmQsCi0rCi0rICAgID9ERUJVRygiR1NTQVBJIGF1 dGhlbnRpY2F0ZWQgfnAgfnB+biIsIFtBdXRoaWQsIEF1dGh6aWRdKSwKLSsgICAge29rLCBbe3Vz ZXJuYW1lLCBBdXRoaWR9LCB7YXV0aHppZCwgQXV0aHppZH1dfS4KLWRpZmYgLS1naXQgYS9zcmMv Y3lyc2FzbF9wbGFpbi5lcmwgYi9zcmMvY3lyc2FzbF9wbGFpbi5lcmwKLWluZGV4IGEwODA0ZmQu LjE0YjNjMTkgMTAwNjQ0Ci0tLS0gYS9zcmMvY3lyc2FzbF9wbGFpbi5lcmwKLSsrKyBiL3NyYy9j eXJzYXNsX3BsYWluLmVybAotQEAgLTI3LDcgKzI3LDkgQEAKLSAtbW9kdWxlKGN5cnNhc2xfcGxh aW4pLgotIC1hdXRob3IoJ2FsZXhleUBwcm9jZXNzLW9uZS5uZXQnKS4KLSAKLS0tZXhwb3J0KFtz dGFydC8xLCBzdG9wLzAsIG1lY2hfbmV3LzQsIG1lY2hfc3RlcC8yLCBwYXJzZS8xXSkuCi0rLWV4 cG9ydChbc3RhcnQvMSwgc3RvcC8wLCBtZWNoX25ldy8xLCBtZWNoX3N0ZXAvMiwgcGFyc2UvMV0p LgotKwotKy1pbmNsdWRlKCJjeXJzYXNsLmhybCIpLgotIAotIC1iZWhhdmlvdXIoY3lyc2FzbCku Ci0gCi1AQCAtNDAsNyArNDIsNyBAQCBzdGFydChfT3B0cykgLT4KLSBzdG9wKCkgLT4KLSAgICAg b2suCi0gCi0tbWVjaF9uZXcoX0hvc3QsIF9HZXRQYXNzd29yZCwgQ2hlY2tQYXNzd29yZCwgX0No ZWNrUGFzc3dvcmREaWdlc3QpIC0+Ci0rbWVjaF9uZXcoI3Nhc2xfcGFyYW1ze2NoZWNrX3Bhc3N3 b3JkID0gQ2hlY2tQYXNzd29yZH0pIC0+Ci0gICAgIHtvaywgI3N0YXRle2NoZWNrX3Bhc3N3b3Jk ID0gQ2hlY2tQYXNzd29yZH19LgotIAotIG1lY2hfc3RlcChTdGF0ZSwgQ2xpZW50SW4pIC0+Ci1k aWZmIC0tZ2l0IGEvc3JjL2N5cnNhc2xfc2NyYW0uZXJsIGIvc3JjL2N5cnNhc2xfc2NyYW0uZXJs Ci1pbmRleCA3NDk3N2JkLi5jM2JmNWM2IDEwMDY0NAotLS0tIGEvc3JjL2N5cnNhc2xfc2NyYW0u ZXJsCi0rKysgYi9zcmMvY3lyc2FzbF9zY3JhbS5lcmwKLUBAIC0yOSwxMCArMjksMTEgQEAKLSAK LSAtZXhwb3J0KFtzdGFydC8xLAotIAkgc3RvcC8wLAotLQkgbWVjaF9uZXcvNCwKLSsJIG1lY2hf bmV3LzEsCi0gCSBtZWNoX3N0ZXAvMl0pLgotIAotIC1pbmNsdWRlKCJlamFiYmVyZC5ocmwiKS4K LSstaW5jbHVkZSgiY3lyc2FzbC5ocmwiKS4KLSAKLSAtYmVoYXZpb3VyKGN5cnNhc2wpLgotIAot QEAgLTQ4LDcgKzQ5LDcgQEAgc3RhcnQoX09wdHMpIC0+Ci0gc3RvcCgpIC0+Ci0gICAgIG9rLgot IAotLW1lY2hfbmV3KF9Ib3N0LCBHZXRQYXNzd29yZCwgX0NoZWNrUGFzc3dvcmQsIF9DaGVja1Bh c3N3b3JkRGlnZXN0KSAtPgotK21lY2hfbmV3KCNzYXNsX3BhcmFtc3tnZXRfcGFzc3dvcmQ9R2V0 UGFzc3dvcmR9KSAtPgotICAgICB7b2ssICNzdGF0ZXtzdGVwID0gMiwgZ2V0X3Bhc3N3b3JkID0g R2V0UGFzc3dvcmR9fS4KLSAKLSBtZWNoX3N0ZXAoI3N0YXRle3N0ZXAgPSAyfSA9IFN0YXRlLCBD bGllbnRJbikgLT4KLWRpZmYgLS1naXQgYS9zcmMvZWphYmJlcmRfYzJzLmVybCBiL3NyYy9lamFi YmVyZF9jMnMuZXJsCi1pbmRleCA1NTJhYTZkLi4wMzhkM2M1IDEwMDY0NAotLS0tIGEvc3JjL2Vq YWJiZXJkX2Mycy5lcmwKLSsrKyBiL3NyYy9lamFiYmVyZF9jMnMuZXJsCi1AQCAtMzA1LDkgKzMw NSwxNiBAQCB3YWl0X2Zvcl9zdHJlYW0oe3htbHN0cmVhbXN0YXJ0LCBfTmFtZSwgQXR0cnN9LCBT dGF0ZURhdGEpIC0+Ci0gCQkJICAgIHNlbmRfaGVhZGVyKFN0YXRlRGF0YSwgU2VydmVyLCAiMS4w IiwgRGVmYXVsdExhbmcpLAotIAkJCSAgICBjYXNlIFN0YXRlRGF0YSNzdGF0ZS5hdXRoZW50aWNh dGVkIG9mCi0gCQkJCWZhbHNlIC0+Ci0rCQkJCSAgICBSZWFsbSA9Ci0rCQkJCQljYXNlIGVqYWJi ZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHtzYXNsX3JlYWxtLCBTZXJ2ZXJ9KSBvZgotKwkJ CQkJICAgIHVuZGVmaW5lZCAtPgotKwkJCQkJCSIiOwotKwkJCQkJICAgIFJlYWxtMCAtPgotKwkJ CQkJCVJlYWxtMAotKwkJCQkJZW5kLAotIAkJCQkgICAgU0FTTFN0YXRlID0KLSAJCQkJCWN5cnNh c2w6c2VydmVyX25ldygKLS0JCQkJCSAgImphYmJlciIsIFNlcnZlciwgIiIsIFtdLAotKwkJCQkJ ICAiamFiYmVyIiwgU2VydmVyLCBSZWFsbSwgW10sCi0gCQkJCQkgIGZ1bihVKSAtPgotIAkJCQkJ CSAgZWphYmJlcmRfYXV0aDpnZXRfcGFzc3dvcmRfd2l0aF9hdXRobW9kdWxlKAotIAkJCQkJCSAg ICBVLCBTZXJ2ZXIpCi1AQCAtMzE5LDcgKzMyNiw4IEBAIHdhaXRfZm9yX3N0cmVhbSh7eG1sc3Ry ZWFtc3RhcnQsIF9OYW1lLCBBdHRyc30sIFN0YXRlRGF0YSkgLT4KLSAJCQkJCSAgZnVuKFUsIFAs IEQsIERHKSAtPgotIAkJCQkJCSAgZWphYmJlcmRfYXV0aDpjaGVja19wYXNzd29yZF93aXRoX2F1 dGhtb2R1bGUoCi0gCQkJCQkJICAgIFUsIFNlcnZlciwgUCwgRCwgREcpCi0tCQkJCQkgIGVuZCks Ci0rCQkJCQkgIGVuZCwKLSsJCQkJCSAgU3RhdGVEYXRhI3N0YXRlLnNvY2tldCksCi0gCQkJCSAg ICBNZWNocyA9IGxpc3RzOm1hcCgKLSAJCQkJCSAgICAgIGZ1bihTKSAtPgotIAkJCQkJCSAgICAg IHt4bWxlbGVtZW50LCAibWVjaGFuaXNtIiwgW10sCi1kaWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJk X3NvY2tldC5lcmwgYi9zcmMvZWphYmJlcmRfc29ja2V0LmVybAotaW5kZXggMjU0NzUxYi4uMzUw OTAxOCAxMDA2NDQKLS0tLSBhL3NyYy9lamFiYmVyZF9zb2NrZXQuZXJsCi0rKysgYi9zcmMvZWph YmJlcmRfc29ja2V0LmVybAotQEAgLTQ0LDkgKzQ0LDExIEBACi0gCSBnZXRfcGVlcl9jZXJ0aWZp Y2F0ZS8xLAotIAkgZ2V0X3ZlcmlmeV9yZXN1bHQvMSwKLSAJIGNsb3NlLzEsCi0rCSBnZXRob3N0 bmFtZS8xLAotIAkgc29ja25hbWUvMSwgcGVlcm5hbWUvMV0pLgotIAotIC1pbmNsdWRlKCJlamFi YmVyZC5ocmwiKS4KLSstaW5jbHVkZV9saWIoImtlcm5lbC9pbmNsdWRlL2luZXQuaHJsIikuCi0g Ci0gLXJlY29yZChzb2NrZXRfc3RhdGUsIHtzb2NrbW9kLCBzb2NrZXQsIHJlY2VpdmVyfSkuCi0g Ci1AQCAtMjI4LDYgKzIzMCwyMyBAQCBwZWVybmFtZSgjc29ja2V0X3N0YXRle3NvY2ttb2QgPSBT b2NrTW9kLCBzb2NrZXQgPSBTb2NrZXR9KSAtPgotIAkgICAgU29ja01vZDpwZWVybmFtZShTb2Nr ZXQpCi0gICAgIGVuZC4KLSAKLStnZXRob3N0bmFtZSgjc29ja2V0X3N0YXRle3NvY2tldCA9IFNv Y2tldH0gPSBTdGF0ZSkgLT4KLSsgICAgP0RFQlVHKCJnZXRob3N0bmFtZSB+cH5uIiwgW1NvY2tl dF0pLAotKwotKyAgICBjYXNlIHNvY2tuYW1lKFN0YXRlKSBvZgotKwl7b2ssIHtBZGRyLCBfUG9y dH19IC0+Ci0rCSAgICBjYXNlIGluZXQ6Z2V0aG9zdGJ5YWRkcihBZGRyKSBvZgotKwkJe29rLCBI b3N0RW50fSB3aGVuIGlzX3JlY29yZChIb3N0RW50LCBob3N0ZW50KSAtPgotKwkJICAgID9ERUJV RygiZ2V0aG9zdG5hbWUgcmVzdWx0IH5wfm4iLAotKwkJCSAgIFtIb3N0RW50I2hvc3RlbnQuaF9u YW1lXSksCi0rCQkgICAge29rLCBIb3N0RW50I2hvc3RlbnQuaF9uYW1lfTsKLSsJCXtlcnJvciwg X1JlYXNvbn0gPSBFIC0+Ci0rCQkgICAgRQotKwkgICAgZW5kOwotKwl7ZXJyb3IsIF9SZWFzb259 ID0gRSAtPgotKwkgICAgRQotKyAgICBlbmQuCi0rCi0gJSU9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICUlIEludGVy bmFsIGZ1bmN0aW9ucwotICUlPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIAotMS43LjEwLjEKLQoKZGlmZiAtLWdp dCBhL2VqYWJiZXJkLTAwMDktQWRkZWQtb2xkLW1vZHVsZXMtZm9yLUFjdGl2ZS1EaXJlY3Rvcnku cGF0Y2ggYi9lamFiYmVyZC0wMDA5LUFkZGVkLW9sZC1tb2R1bGVzLWZvci1BY3RpdmUtRGlyZWN0 b3J5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjM1MTZiLi4wMDAwMDAw Ci0tLSBhL2VqYWJiZXJkLTAwMDktQWRkZWQtb2xkLW1vZHVsZXMtZm9yLUFjdGl2ZS1EaXJlY3Rv cnkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjY2ICswLDAgQEAKLUZyb20gZDU4ODA1OTFm ZjhjMzE4NTg0ZGY1NWNiYjIyZDkxZWI0MmFhODBkZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IFBldGVyIExlbWVua292IDxsZW1lbmtvdkBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDE0 IERlYyAyMDEwIDE4OjI4OjQ0ICswMzAwCi1TdWJqZWN0OiBbUEFUQ0ggMDkvMTBdIEFkZGVkIG9s ZCBtb2R1bGVzIGZvciBBY3RpdmUgRGlyZWN0b3J5Ci0KLVRoZXNlIG1vZHVsZXMgd2VyZSBleHRy YWN0ZWQgZnJvbSBhIHBhdGNoIGZvdW5kIG9uCi1odHRwOi8vcmVhbGxvYy5zcGIucnUvc2hhcmUv ZWphYmJlcmRhZC5odG1sCi0KLVBsZWFzZSwgbm90ZSB0aGF0IHRoZXNlIGFyZSB1bm1haW50YWlu ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCB2ZXJ5Ci1zb29uICh1c2VycyBzaG91bGQgdXNlICpfbGRh cC5lcmwgaW5zdGVhZCkuCi0tLS0KLSBzcmMvZWphYmJlcmRfYXV0aF9hZC5lcmwgICAgIHwgIDE2 NyArKysrKysrKysrKwotIHNyYy9tb2Rfc2hhcmVkX3Jvc3Rlcl9hZC5lcmwgfCAgNDI4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysKLSBzcmMvbW9kX3ZjYXJkX2FkLmVybCAgICAgICAgIHwg IDYzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSAzIGZpbGVz IGNoYW5nZWQsIDEyMjYgaW5zZXJ0aW9ucygrKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvZWph YmJlcmRfYXV0aF9hZC5lcmwKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL21vZF9zaGFyZWRfcm9z dGVyX2FkLmVybAotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbW9kX3ZjYXJkX2FkLmVybAotCi1k aWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJkX2F1dGhfYWQuZXJsIGIvc3JjL2VqYWJiZXJkX2F1dGhf YWQuZXJsCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uNWU5ZTQ1MgotLS0t IC9kZXYvbnVsbAotKysrIGIvc3JjL2VqYWJiZXJkX2F1dGhfYWQuZXJsCi1AQCAtMCwwICsxLDE2 NyBAQAotKyUlJS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSslJSUgRmlsZSAgICA6IGVqYWJiZXJkX2F1dGhfYWQu ZXJsCi0rJSUlIEF1dGhvciAgOiBBbGV4ZXkgU2hjaGVwaW4gPGFsZXhleUBzZXZjb20ubmV0Pgot KyUlJSBBdXRob3IgIDogQWxleCBHb3JiYWNoZW5rbyA8YWdlbnRfMDA3QGltbW8ucnU+Ci0rJSUl IEF1dGhvciAgOiBTdGFuaXNsYXYgQm9nYXR5cmV2IDxyZWFsbG9jQHJlYWxsb2Muc3BiLnJ1Pgot KyUlJSBQdXJwb3NlIDogQXV0aGVudGlmaWNhdGlvbiB2aWEgQWN0aXZlIERpcmVjdG9yeQotKyUl JSBDcmVhdGVkIDogMTIgRGVjIDIwMDQgYnkgQWxleGV5IFNoY2hlcGluIDxhbGV4ZXlAc2V2Y29t Lm5ldD4KLSslJSUgSWQgICAgICA6ICRJZDogZWphYmJlcmRfYXV0aF9hZC5lcmwgMzg2IDIwMDUt MTItMjAgMTA6MDY6MzdaIGFnZW50XzAwNyAkCi0rJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKwotKy1tb2R1 bGUoZWphYmJlcmRfYXV0aF9hZCkuCi0rLWF1dGhvcignYWxleGV5QHNldmNvbS5uZXQnKS4KLSst YXV0aG9yKCdhZ2VudF8wMDdAaW1tby5ydScpLgotKy1hdXRob3IoJ3JlYWxsb2NAcmVhbGxvYy5z cGIucnUnKS4KLSstdnNuKCckUmV2aXNpb246IDM4NiAkICcpLgotKwotKyUlIEV4dGVybmFsIGV4 cG9ydHMKLSstZXhwb3J0KFtzdGFydC8xLAotKwkgc2V0X3Bhc3N3b3JkLzMsCi0rCSBjaGVja19w YXNzd29yZC8zLAotKwkgY2hlY2tfcGFzc3dvcmQvNSwKLSsJIHRyeV9yZWdpc3Rlci8zLAotKwkg ZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMvMCwKLSsJIGdldF92aF9yZWdpc3RlcmVkX3VzZXJz LzEsCi0rCSBnZXRfcGFzc3dvcmQvMiwKLSsJIGdldF9wYXNzd29yZF9zLzIsCi0rCSBpc191c2Vy X2V4aXN0cy8yLAotKwkgcmVtb3ZlX3VzZXIvMiwKLSsJIHJlbW92ZV91c2VyLzMsCi0rCSBwbGFp bl9wYXNzd29yZF9yZXF1aXJlZC8wCi0rCV0pLgotKwotKy1pbmNsdWRlKCJlamFiYmVyZC5ocmwi KS4KLSstaW5jbHVkZSgiZWxkYXAvZWxkYXAuaHJsIikuCi0rCi0rJSUlLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyUlJSBBUEkKLSslJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rc3RhcnQoSG9zdCkgLT4KLSsgICAgTERBUFNl cnZlcnMgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfc2VydmVycywgSG9z dH0pLAotKyAgICBSb290RE4gPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRf cm9vdGRuLCBIb3N0fSksCi0rICAgIFBhc3N3b3JkID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2Nh bF9vcHRpb24oe2FkX3Bhc3N3b3JkLCBIb3N0fSksCi0rICAgIGVsZGFwOnN0YXJ0X2xpbmsoZ2V0 X2VsZGFwX2lkKEhvc3QsIGVqYWJiZXJkKSwKLSsJCSAgICAgTERBUFNlcnZlcnMsIDM4OSwgUm9v dEROLCBQYXNzd29yZCksCi0rICAgIGVsZGFwOnN0YXJ0X2xpbmsoZ2V0X2VsZGFwX2lkKEhvc3Qs IGVqYWJiZXJkX2JpbmQpLAotKwkJICAgICBMREFQU2VydmVycywgMzg5LCBSb290RE4sIFBhc3N3 b3JkKSwKLSsgICAgb2suCi0rCi0rcGxhaW5fcGFzc3dvcmRfcmVxdWlyZWQoKSAtPgotKyAgICB0 cnVlLgotKwotK2NoZWNrX3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpIC0+Ci0rICAg IGNhc2UgZmluZF91c2VyX2RuKFVzZXIsIFNlcnZlcikgb2YKLSsJZmFsc2UgLT4KLSsJICAgIGZh bHNlOwotKwlETiAtPgotKwkgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKLSsJ ICAgIGNhc2UgZWxkYXA6YmluZChnZXRfZWxkYXBfaWQoTFNlcnZlciwgZWphYmJlcmRfYmluZCks Ci0rCQkJICAgIEROLCBQYXNzd29yZCkgb2YKLSsJCW9rIC0+Ci0rCQkgICAgdHJ1ZTsKLSsJCV8g LT4KLSsJCSAgICBmYWxzZQotKwkgICAgZW5kCi0rICAgIGVuZC4KLSsKLStjaGVja19wYXNzd29y ZChVc2VyLCBTZXJ2ZXIsIFBhc3N3b3JkLCBfU3RyZWFtSUQsIF9EaWdlc3QpIC0+Ci0rICAgIGNo ZWNrX3Bhc3N3b3JkKFVzZXIsIFNlcnZlciwgUGFzc3dvcmQpLgotKwotK3NldF9wYXNzd29yZChf VXNlciwgX1NlcnZlciwgX1Bhc3N3b3JkKSAtPgotKyAgICB7ZXJyb3IsIG5vdF9hbGxvd2VkfS4K LSsKLSt0cnlfcmVnaXN0ZXIoX1VzZXIsIF9TZXJ2ZXIsIF9QYXNzd29yZCkgLT4KLSsgICAge2Vy cm9yLCBub3RfYWxsb3dlZH0uCi0rCi0rZGlydHlfZ2V0X3JlZ2lzdGVyZWRfdXNlcnMoKSAtPgot KyAgICBnZXRfdmhfcmVnaXN0ZXJlZF91c2Vycyg/TVlOQU1FKS4KLSsKLStnZXRfdmhfcmVnaXN0 ZXJlZF91c2VycyhTZXJ2ZXIpIC0+Ci0rICAgIExTZXJ2ZXIgPSBqbGliOm5hbWVwcmVwKFNlcnZl ciksCi0rICAgIEF0dHIgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfdWlk YXR0ciwgTFNlcnZlcn0pLAotKyUgICAgQWRHcm91cCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9j YWxfb3B0aW9uKHthZF9ncm91cCwgTFNlcnZlcn0pLAotKyAgICBGaWx0ZXJQZXJzb24gPSBlbGRh cDplcXVhbGl0eU1hdGNoKCJvYmplY3RDYXRlZ29yeSIsICJwZXJzb24iKSwKLSsgICAgRmlsdGVy Q29tcCA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVjdENsYXNzIiwgImNvbXB1dGVyIiksCi0r ICAgIEZpbHRlckhpZGRlbiA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goImRlc2NyaXB0aW9uIiwgImhp ZGRlbiIpLAotKyUgICAgRmlsdGVyR3JvdXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJtZW1iZXJP ZiIsIEFkR3JvdXApLAotKyAgICBGaWx0ZXJMaXZlID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgidXNl ckFjY291bnRDb250cm9sIiwgIjY2MDUwIiksCi0rICAgIEZpbHRlckRlZiA9IGVsZGFwOnByZXNl bnQoQXR0ciksCi0rICAgIEZpbHRlciA9IGVsZGFwOidhbmQnKFsKLSsJCQkgIEZpbHRlckRlZiwK LSsJCQkgIEZpbHRlclBlcnNvbiwKLSslCQkJICBGaWx0ZXJHcm91cCwKLSsJCQkgIGVsZGFwOidu b3QnKEZpbHRlckNvbXApLAotKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVySGlkZGVuKSwKLSsJCQkg IGVsZGFwOidub3QnKEZpbHRlckxpdmUpXSksCi0rICAgIEJhc2UgPSBlamFiYmVyZF9jb25maWc6 Z2V0X2xvY2FsX29wdGlvbih7YWRfYmFzZSwgTFNlcnZlcn0pLAotKyAgICBjYXNlIGVsZGFwOnNl YXJjaChnZXRfZWxkYXBfaWQoTFNlcnZlciwgZWphYmJlcmQpLAotKwkJICAgICAgW3tiYXNlLCBC YXNlfSwKLSsJCSAgICAgICB7ZmlsdGVyLCBGaWx0ZXJ9LAotKwkJICAgICAgIHthdHRyaWJ1dGVz LCBbQXR0cl19XSkgb2YKLSsJI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9IEVzfSAtPgot KwkgICAgbGlzdHM6ZmxhdG1hcCgKLSsJICAgICAgZnVuKEUpIC0+Ci0rCQkgICAgICBjYXNlIGxp c3RzOmtleXNlYXJjaChBdHRyLCAxLCBFI2VsZGFwX2VudHJ5LmF0dHJpYnV0ZXMpIG9mCi0rCQkJ ICB7dmFsdWUsIHtfLCBbVV19fSAtPgotKwkJCSAgICAgIGNhc2UgamxpYjpub2RlcHJlcChVKSBv ZgotKwkJCQkgIGVycm9yIC0+Ci0rCQkJCSAgICAgIFtdOwotKwkJCQkgIExVIC0+Ci0rCQkJCSAg ICAgIFt7TFUsIExTZXJ2ZXJ9XQotKwkJCSAgICAgIGVuZDsKLSsJCQkgIF8gLT4KLSsJCQkgICAg ICBbXQotKwkJICAgICAgZW5kCi0rCSAgICAgIGVuZCwgRXMpOwotKwlfIC0+Ci0rCSAgICBbXQot KyAgICBlbmQuCi0rCi0rZ2V0X3Bhc3N3b3JkKF9Vc2VyLCBfU2VydmVyKSAtPgotKyAgICBmYWxz ZS4KLSsKLStnZXRfcGFzc3dvcmRfcyhfVXNlciwgX1NlcnZlcikgLT4KLSsgICAgIiIuCi0rCi0r aXNfdXNlcl9leGlzdHMoVXNlciwgU2VydmVyKSAtPgotKyAgICBjYXNlIGZpbmRfdXNlcl9kbihV c2VyLCBTZXJ2ZXIpIG9mCi0rCWZhbHNlIC0+Ci0rCSAgICBmYWxzZTsKLSsJX0ROIC0+Ci0rCSAg ICB0cnVlCi0rICAgIGVuZC4KLSsKLStyZW1vdmVfdXNlcihfVXNlciwgX1NlcnZlcikgLT4KLSsg ICAge2Vycm9yLCBub3RfYWxsb3dlZH0uCi0rCi0rcmVtb3ZlX3VzZXIoX1VzZXIsIF9TZXJ2ZXIs IF9QYXNzd29yZCkgLT4KLSsgICAgbm90X2FsbG93ZWQuCi0rCi0rCi0rJSUlLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyUlJSBJbnRlcm5hbCBmdW5jdGlvbnMKLSslJSUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0rZmluZF91 c2VyX2RuKFVzZXIsIFNlcnZlcikgLT4KLSsgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2Vy dmVyKSwKLSsgICAgQWRHcm91cCA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHth ZF9ncm91cCwgTFNlcnZlcn0pLAotKyAgICBBdHRyID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2Nh bF9vcHRpb24oe2FkX3VpZGF0dHIsIExTZXJ2ZXJ9KSwKLSsgICAgRmlsdGVyQXR0ciA9IGVsZGFw OmVxdWFsaXR5TWF0Y2goQXR0ciwgVXNlciksCi0rICAgIEZpbHRlckdyb3VwID0gZWxkYXA6ZXF1 YWxpdHlNYXRjaCgibWVtYmVyT2YiLCBBZEdyb3VwKSwKLSsgICAgRmlsdGVyID0gZWxkYXA6J2Fu ZCcoWwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyQXR0ciwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgIEZpbHRlckdyb3VwCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBd KSwKLSsgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9iYXNl LCBMU2VydmVyfSksCi0rICAgIGNhc2UgZWxkYXA6c2VhcmNoKGdldF9lbGRhcF9pZChMU2VydmVy LCBlamFiYmVyZCksCi0rCQkgICAgICBbe2Jhc2UsIEJhc2V9LAotKwkJICAgICAgIHtmaWx0ZXIs IEZpbHRlcn0sCi0rCQkgICAgICAge2F0dHJpYnV0ZXMsIFtdfV0pIG9mCi0rCSNlbGRhcF9zZWFy Y2hfcmVzdWx0e2VudHJpZXMgPSBbRSB8IF9dfSAtPgotKwkgICAgRSNlbGRhcF9lbnRyeS5vYmpl Y3RfbmFtZTsKLSsJXyAtPgotKwkgICAgZmFsc2UKLSsgICAgZW5kLgotKwotK2dldF9lbGRhcF9p ZChIb3N0LCBOYW1lKSAtPgotKyAgICBhdG9tX3RvX2xpc3QoZ2VuX21vZDpnZXRfbW9kdWxlX3By b2MoSG9zdCwgTmFtZSkpLgotZGlmZiAtLWdpdCBhL3NyYy9tb2Rfc2hhcmVkX3Jvc3Rlcl9hZC5l cmwgYi9zcmMvbW9kX3NoYXJlZF9yb3N0ZXJfYWQuZXJsCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggMDAwMDAwMC4uOGRjMDlmMQotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL21vZF9zaGFy ZWRfcm9zdGVyX2FkLmVybAotQEAgLTAsMCArMSw0MjggQEAKLSslJSUtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r JSUlIEZpbGUgICAgOiBtb2Rfc2hhcmVkX3Jvc3Rlci5lcmwKLSslJSUgQXV0aG9yICA6IEFsZXhl eSBTaGNoZXBpbiA8YWxleGV5QHNldmNvbS5uZXQ+Ci0rJSUlIEF1dGhvciAgOiBTdGFuaXNsYXYg Qm9nYXR5cmV2IDxyZWFsbG9jQHJlYWxsb2Muc3BiLnJ1PgotKyUlJSBQdXJwb3NlIDogU2hhcmVk IHJvc3RlciBtYW5hZ2VtZW50Ci0rJSUlIENyZWF0ZWQgOiAgNSBNYXIgMjAwNSBieSBBbGV4ZXkg U2hjaGVwaW4gPGFsZXhleUBzZXZjb20ubmV0PgotKyUlJSBJZCAgICAgIDogJElkOiBtb2Rfc2hh cmVkX3Jvc3Rlcl9hZC5lcmwsdiAxLjEgMjAwNi8wNi8yMyAxMjo0MDowMyBqY29sbGllIEV4cCAk Ci0rJSUlLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKwotKy1tb2R1bGUobW9kX3NoYXJlZF9yb3N0ZXJfYWQpLgot Ky1hdXRob3IoJ2FsZXhleUBzZXZjb20ubmV0JykuCi0rLWF1dGhvcigncmVhbGxvY0ByZWFsbG9j LnNwYi5ydScpLgotKy12c24oJyRSZXZpc2lvbjogMS4xICQgJykuCi0rCi0rLWJlaGF2aW91cihn ZW5fbW9kKS4KLSsKLSstZXhwb3J0KFtzdGFydC8yLCBzdG9wLzEsCi0rCSBnZXRfdXNlcl9yb3N0 ZXIvMiwKLSsJIGdldF9zdWJzY3JpcHRpb25fbGlzdHMvMywKLSsJIGdldF9qaWRfaW5mby80LAot KwkgaW5fc3Vic2NyaXB0aW9uLzUsCi0rCSBvdXRfc3Vic2NyaXB0aW9uLzQsCi0rCSBsaXN0X2dy b3Vwcy8xLAotKwkgY3JlYXRlX2dyb3VwLzIsCi0rCSBjcmVhdGVfZ3JvdXAvMywKLSsJIGRlbGV0 ZV9ncm91cC8yLAotKwkgZ2V0X2dyb3VwX29wdHMvMiwKLSsJIHNldF9ncm91cF9vcHRzLzMsCi0r CSBnZXRfZ3JvdXBfdXNlcnMvMiwKLSsJIGdldF9ncm91cF9leHBsaWNpdF91c2Vycy8yLAotKwkg YWRkX3VzZXJfdG9fZ3JvdXAvMywKLSsJIHJlbW92ZV91c2VyX2Zyb21fZ3JvdXAvM10pLgotKwot Ky1pbmNsdWRlKCJlamFiYmVyZC5ocmwiKS4KLSstaW5jbHVkZSgiamxpYi5ocmwiKS4KLSstaW5j bHVkZSgibW9kX3Jvc3Rlci5ocmwiKS4KLSstaW5jbHVkZSgiZWxkYXAvZWxkYXAuaHJsIikuCi0r Ci0rLXJlY29yZChzcl9ncm91cCwge2dyb3VwX2hvc3QsIG9wdHN9KS4KLSstcmVjb3JkKHNyX3Vz ZXIsIHt1cywgZ3JvdXBfaG9zdH0pLgotKwotK3N0YXJ0KEhvc3QsIF9PcHRzKSAtPgotKyAgICBt bmVzaWE6Y3JlYXRlX3RhYmxlKHNyX2dyb3VwLAotKwkJCVt7ZGlzY19jb3BpZXMsIFtub2RlKCld fSwKLSsJCQkge2F0dHJpYnV0ZXMsIHJlY29yZF9pbmZvKGZpZWxkcywgc3JfZ3JvdXApfV0pLAot KyAgICBtbmVzaWE6Y3JlYXRlX3RhYmxlKHNyX3VzZXIsCi0rCQkJW3tkaXNjX2NvcGllcywgW25v ZGUoKV19LAotKwkJCSB7dHlwZSwgYmFnfSwKLSsJCQkge2F0dHJpYnV0ZXMsIHJlY29yZF9pbmZv KGZpZWxkcywgc3JfdXNlcil9XSksCi0rICAgIG1uZXNpYTphZGRfdGFibGVfaW5kZXgoc3JfdXNl ciwgZ3JvdXBfaG9zdCksCi0rICAgIGVqYWJiZXJkX2hvb2tzOmFkZChyb3N0ZXJfZ2V0LCBIb3N0 LAotKwkJICAgICAgID9NT0RVTEUsIGdldF91c2VyX3Jvc3RlciwgNzApLAotKyAgICBlamFiYmVy ZF9ob29rczphZGQocm9zdGVyX2luX3N1YnNjcmlwdGlvbiwgSG9zdCwKLSsgICAgICAgIAkgICAg ICAgP01PRFVMRSwgaW5fc3Vic2NyaXB0aW9uLCAzMCksCi0rICAgIGVqYWJiZXJkX2hvb2tzOmFk ZChyb3N0ZXJfb3V0X3N1YnNjcmlwdGlvbiwgSG9zdCwKLSsgICAgICAgIAkgICAgICAgP01PRFVM RSwgb3V0X3N1YnNjcmlwdGlvbiwgMzApLAotKyAgICBlamFiYmVyZF9ob29rczphZGQocm9zdGVy X2dldF9zdWJzY3JpcHRpb25fbGlzdHMsIEhvc3QsCi0rCQkgICAgICAgP01PRFVMRSwgZ2V0X3N1 YnNjcmlwdGlvbl9saXN0cywgNzApLAotKyAgICBlamFiYmVyZF9ob29rczphZGQocm9zdGVyX2dl dF9qaWRfaW5mbywgSG9zdCwKLSsgICAgICAgIAkgICAgICAgP01PRFVMRSwgZ2V0X2ppZF9pbmZv LCA3MCksCi0rICAgIAotKyAgICAlZWphYmJlcmRfaG9va3M6YWRkKHJlbW92ZV91c2VyLCBIb3N0 LAotKyAgICAlICAgIAkgICAgICAgP01PRFVMRSwgcmVtb3ZlX3VzZXIsIDUwKSwKLSsgICAgTERB UFNlcnZlcnMgPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfc2VydmVycywg SG9zdH0pLAotKyAgICBSb290RE4gPSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7 YWRfcm9vdGRuLCBIb3N0fSksCi0rICAgIFBhc3N3b3JkID0gZWphYmJlcmRfY29uZmlnOmdldF9s b2NhbF9vcHRpb24oe2FkX3Bhc3N3b3JkLCBIb3N0fSksCi0rICAgIGVsZGFwOnN0YXJ0X2xpbmso Im1vZF9zaGFyZWRfcm9zdGVyX2FkIiwgTERBUFNlcnZlcnMsIDM4OSwgUm9vdEROLCBQYXNzd29y ZCkuCi0rICAgCi0rCi0rICAKLStzdG9wKEhvc3QpIC0+Ci0rICAgIGVqYWJiZXJkX2hvb2tzOmRl bGV0ZShyb3N0ZXJfZ2V0LCBIb3N0LAotKwkJCSAgP01PRFVMRSwgZ2V0X3VzZXJfcm9zdGVyLCA3 MCksCi0rICAgIGVqYWJiZXJkX2hvb2tzOmRlbGV0ZShyb3N0ZXJfaW5fc3Vic2NyaXB0aW9uLCBI b3N0LAotKyAgICAgICAgCQkgID9NT0RVTEUsIGluX3N1YnNjcmlwdGlvbiwgMzApLAotKyAgICBl amFiYmVyZF9ob29rczpkZWxldGUocm9zdGVyX291dF9zdWJzY3JpcHRpb24sIEhvc3QsCi0rICAg ICAgICAJCSAgP01PRFVMRSwgb3V0X3N1YnNjcmlwdGlvbiwgMzApLAotKyAgICBlamFiYmVyZF9o b29rczpkZWxldGUocm9zdGVyX2dldF9zdWJzY3JpcHRpb25fbGlzdHMsIEhvc3QsCi0rICAgICAg ICAJCSAgP01PRFVMRSwgZ2V0X3N1YnNjcmlwdGlvbl9saXN0cywgNzApLAotKyAgICBlamFiYmVy ZF9ob29rczpkZWxldGUocm9zdGVyX2dldF9qaWRfaW5mbywgSG9zdCwKLSsgICAgICAgIAkJICA/ TU9EVUxFLCBnZXRfamlkX2luZm8sIDcwKS4KLSsgICAgJWVqYWJiZXJkX2hvb2tzOmRlbGV0ZShy ZW1vdmVfdXNlciwgSG9zdCwKLSsgICAgJSAgICAJCSAgP01PRFVMRSwgcmVtb3ZlX3VzZXIsIDUw KSwKLSsKLSsKLStnZXRfdXNlcl9yb3N0ZXIoSXRlbXMsIFVTKSAtPgotKyAgICB7VSwgU30gPSBV UywKLSsgICAgRGlzcGxheWVkR3JvdXBzID0gZ2V0X3VzZXJfZGlzcGxheWVkX2dyb3Vwc19hZChV UyksCi0rICAgIFNSVXNlcnMgPSAKLSsJbGlzdHM6Zm9sZGwoCi0rCSAgZnVuKEdyb3VwLCBBY2Mx KSAtPgotKwkJICBsaXN0czpmb2xkbCgKLSsJCSAgICBmdW4oVXNlciwgQWNjMikgLT4KLSsJCQkg ICAgZGljdDphcHBlbmQoVXNlciwgR3JvdXAsIEFjYzIpCi0rCQkgICAgZW5kLCBBY2MxLCBnZXRf Z3JvdXBfdXNlcnNfYWQoUywgR3JvdXApKQotKwkgIGVuZCwgZGljdDpuZXcoKSwgRGlzcGxheWVk R3JvdXBzKSwKLSsgICAge05ld0l0ZW1zMSwgU1JVc2Vyc1Jlc3R9ID0KLSsJbGlzdHM6bWFwZm9s ZGwoCi0rCSAgZnVuKEl0ZW0sIFNSVXNlcnMxKSAtPgotKwkJICB7XywgXywge1UxLCBTMSwgX319 ID0gSXRlbSNyb3N0ZXIudXNqLAotKwkJICBVUzEgPSB7VTEsIFMxfSwKLSsJCSAgY2FzZSBkaWN0 OmZpbmQoVVMxLCBTUlVzZXJzMSkgb2YKLSsJCSAgICAgIHtvaywgX0dyb3VwTmFtZXN9IC0+Ci0r CQkJICB7SXRlbSNyb3N0ZXJ7c3Vic2NyaXB0aW9uID0gYm90aCwgYXNrID0gbm9uZX0sCi0rCQkJ ICAgZGljdDplcmFzZShVUzEsIFNSVXNlcnMxKX07Ci0rCQkgICAgICBlcnJvciAtPgotKwkJCSAg e0l0ZW0sIFNSVXNlcnMxfQotKwkJICBlbmQKLSsJICBlbmQsIFNSVXNlcnMsIEl0ZW1zKSwKLSsg ICAgU1JJdGVtcyA9IFsjcm9zdGVye3VzaiA9IHtVLCBTLCB7VTEsIFMxLCAiIn19LAotKwkJICAg ICAgIHVzID0gVVMsCi0rCQkgICAgICAgamlkID0ge1UxLCBTMSwgIiJ9LAotKwkJICAgICAgIG5h bWUgPSBnZXRfdXNlcl9mbihVMSxTMSksCi0rCQkgICAgICAgc3Vic2NyaXB0aW9uID0gYm90aCwK LSsJCSAgICAgICBhc2sgPSBub25lLAotKwkJICAgICAgIGdyb3VwcyA9IEdyb3VwTmFtZXN9IHx8 Ci0rCQkgIHt7VTEsIFMxfSwgR3JvdXBOYW1lc30gPC0gZGljdDp0b19saXN0KFNSVXNlcnNSZXN0 KV0sCi0rICAgIFNSSXRlbXMgKysgTmV3SXRlbXMxLgotKwotK2dldF9zdWJzY3JpcHRpb25fbGlz dHMoe0YsIFR9LCBVc2VyLCBTZXJ2ZXIpIC0+Ci0rICAgIExVc2VyID0gamxpYjpub2RlcHJlcChV c2VyKSwKLSsgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2VydmVyKSwKLSsgICAgVVMgPSB7 TFVzZXIsIExTZXJ2ZXJ9LAotKyAgICBEaXNwbGF5ZWRHcm91cHMgPSBnZXRfdXNlcl9kaXNwbGF5 ZWRfZ3JvdXBzX2FkKFVTKSwKLSsgICAgU1JVc2VycyA9Ci0rCWxpc3RzOnVzb3J0KAotKwkgIGxp c3RzOmZsYXRtYXAoCi0rCSAgICBmdW4oR3JvdXApIC0+Ci0rCQkgICAgZ2V0X2dyb3VwX3VzZXJz X2FkKExTZXJ2ZXIsIEdyb3VwKQotKwkgICAgZW5kLCBEaXNwbGF5ZWRHcm91cHMpKSwKLSsgICAg U1JKSURzID0gW3tVMSwgUzEsICIifSB8fCB7VTEsIFMxfSA8LSBTUlVzZXJzXSwKLSsgICAge2xp c3RzOnVzb3J0KFNSSklEcyArKyBGKSwgbGlzdHM6dXNvcnQoU1JKSURzICsrIFQpfS4KLSsKLStn ZXRfamlkX2luZm8oe1N1YnNjcmlwdGlvbiwgR3JvdXBzfSwgVXNlciwgU2VydmVyLCBKSUQpIC0+ Ci0rICAgIExVc2VyID0gamxpYjpub2RlcHJlcChVc2VyKSwKLSsgICAgTFNlcnZlciA9IGpsaWI6 bmFtZXByZXAoU2VydmVyKSwKLSsgICAgVVMgPSB7TFVzZXIsIExTZXJ2ZXJ9LAotKyAgICB7VTEs IFMxLCBffSA9IGpsaWI6amlkX3RvbG93ZXIoSklEKSwKLSsgICAgVVMxID0ge1UxLCBTMX0sCi0r ICAgIERpc3BsYXllZEdyb3VwcyA9IGdldF91c2VyX2Rpc3BsYXllZF9ncm91cHNfYWQoVVMpLAot KyAgICBTUlVzZXJzID0gCi0rCWxpc3RzOmZvbGRsKAotKwkgIGZ1bihHcm91cCwgQWNjMSkgLT4K LSsJCSAgbGlzdHM6Zm9sZGwoCi0rCQkgICAgZnVuKFVzZXIxLCBBY2MyKSAtPgotKwkJCSAgICBk aWN0OmFwcGVuZCgKLSsJCQkgICAgICBVc2VyMSwgR3JvdXAsIEFjYzIpCi0rCQkgICAgZW5kLCBB Y2MxLCBnZXRfZ3JvdXBfdXNlcnNfYWQoTFNlcnZlciwgR3JvdXApKQotKwkgIGVuZCwgZGljdDpu ZXcoKSwgRGlzcGxheWVkR3JvdXBzKSwKLSsgICAgY2FzZSBkaWN0OmZpbmQoVVMxLCBTUlVzZXJz KSBvZgotKwl7b2ssIEdyb3VwTmFtZXN9IC0+Ci0rCSAgICBOZXdHcm91cHMgPSBpZgotKwkJCSAg ICBHcm91cHMgPT0gW10gLT4gR3JvdXBOYW1lczsKLSsJCQkgICAgdHJ1ZSAtPiBHcm91cHMKLSsJ CQllbmQsCi0rCSAgICB7Ym90aCwgTmV3R3JvdXBzfTsKLSsJZXJyb3IgLT4KLSsJICAgIHtTdWJz Y3JpcHRpb24sIEdyb3Vwc30KLSsgICAgZW5kLgotKwotK2luX3N1YnNjcmlwdGlvbihBY2MsIFVz ZXIsIFNlcnZlciwgSklELCBUeXBlKSAtPgotKyAgICBwcm9jZXNzX3N1YnNjcmlwdGlvbihpbiwg VXNlciwgU2VydmVyLCBKSUQsIFR5cGUsIEFjYykuCi0rCi0rb3V0X3N1YnNjcmlwdGlvbihVc2Vy LCBTZXJ2ZXIsIEpJRCwgVHlwZSkgLT4KLSsgICAgcHJvY2Vzc19zdWJzY3JpcHRpb24ob3V0LCBV c2VyLCBTZXJ2ZXIsIEpJRCwgVHlwZSwgZmFsc2UpLgotKwotK3Byb2Nlc3Nfc3Vic2NyaXB0aW9u KERpcmVjdGlvbiwgVXNlciwgU2VydmVyLCBKSUQsIF9UeXBlLCBBY2MpIC0+Ci0rICAgIExVc2Vy ID0gamxpYjpub2RlcHJlcChVc2VyKSwKLSsgICAgTFNlcnZlciA9IGpsaWI6bmFtZXByZXAoU2Vy dmVyKSwKLSsgICAgVVMgPSB7TFVzZXIsIExTZXJ2ZXJ9LAotKyAgICB7VTEsIFMxLCBffSA9IGps aWI6amlkX3RvbG93ZXIoamxpYjpqaWRfcmVtb3ZlX3Jlc291cmNlKEpJRCkpLAotKyAgICBVUzEg PSB7VTEsIFMxfSwKLSsgICAgRGlzcGxheWVkR3JvdXBzID0gZ2V0X3VzZXJfZGlzcGxheWVkX2dy b3Vwc19hZChVUyksCi0rICAgIFNSVXNlcnMgPQotKwlsaXN0czp1c29ydCgKLSsJICBsaXN0czpm bGF0bWFwKAotKwkgICAgZnVuKEdyb3VwKSAtPgotKwkJICAgIGdldF9ncm91cF91c2Vyc19hZChM U2VydmVyLCBHcm91cCkKLSsJICAgIGVuZCwgRGlzcGxheWVkR3JvdXBzKSksCi0rICAgIGNhc2Ug bGlzdHM6bWVtYmVyKFVTMSwgU1JVc2Vycykgb2YKLSsJdHJ1ZSAtPgotKwkgICAgY2FzZSBEaXJl Y3Rpb24gb2YKLSsJCWluIC0+Ci0rCQkgICAge3N0b3AsIGZhbHNlfTsKLSsJCW91dCAtPgotKwkJ ICAgIHN0b3AKLSsJICAgIGVuZDsKLSsJZmFsc2UgLT4KLSsJICAgIEFjYwotKyAgICBlbmQuCi0r Ci0rbGlzdF9ncm91cHMoSG9zdCkgLT4KLSsgICAgZ2V0X3VzZXJfZGlzcGxheWVkX2dyb3Vwc19h ZCh7IiIsSG9zdH0pLgotKwotKwotK2NyZWF0ZV9ncm91cChIb3N0LCBHcm91cCkgLT4KLSsgICAg Y3JlYXRlX2dyb3VwKEhvc3QsIEdyb3VwLCBbXSkuCi0rCi0rY3JlYXRlX2dyb3VwKEhvc3QsIEdy b3VwLCBPcHRzKSAtPgotKyAgICBSID0gI3NyX2dyb3Vwe2dyb3VwX2hvc3QgPSB7R3JvdXAsIEhv c3R9LCBvcHRzID0gT3B0c30sCi0rICAgIEYgPSBmdW4oKSAtPgotKwkJbW5lc2lhOndyaXRlKFIp Ci0rCWVuZCwKLSsgICAgbW5lc2lhOnRyYW5zYWN0aW9uKEYpLgotKwotK2RlbGV0ZV9ncm91cChI b3N0LCBHcm91cCkgLT4KLSsgICAgRiA9IGZ1bigpIC0+Ci0rCQltbmVzaWE6ZGVsZXRlKHtzcl9n cm91cCwge0dyb3VwLCBIb3N0fX0pCi0rCWVuZCwKLSsgICAgbW5lc2lhOnRyYW5zYWN0aW9uKEYp LgotKwotK2dldF9ncm91cF9vcHRzKEhvc3QsIEdyb3VwKSAtPgotKyAgICBjYXNlIGNhdGNoIG1u ZXNpYTpkaXJ0eV9yZWFkKHNyX2dyb3VwLCB7R3JvdXAsIEhvc3R9KSBvZgotKwlbI3NyX2dyb3Vw e29wdHMgPSBPcHRzfV0gLT4KLSsJICAgIE9wdHM7Ci0rCV8gLT4KLSsJICAgIGVycm9yCi0rICAg IGVuZC4KLSsKLStzZXRfZ3JvdXBfb3B0cyhIb3N0LCBHcm91cCwgT3B0cykgLT4KLSsgICAgUiA9 ICNzcl9ncm91cHtncm91cF9ob3N0ID0ge0dyb3VwLCBIb3N0fSwgb3B0cyA9IE9wdHN9LAotKyAg ICBGID0gZnVuKCkgLT4KLSsJCW1uZXNpYTp3cml0ZShSKQotKwllbmQsCi0rICAgIG1uZXNpYTp0 cmFuc2FjdGlvbihGKS4KLSsKLSsKLSsKLStnZXRfdXNlcl9ncm91cHMoVVMpIC0+Ci0rICAgIEhv c3QgPSBlbGVtZW50KDIsIFVTKSwKLSsgICAgY2FzZSBjYXRjaCBtbmVzaWE6ZGlydHlfcmVhZChz cl91c2VyLCBVUykgb2YKLSsJUnMgd2hlbiBpc19saXN0KFJzKSAtPgotKwkgICAgW0dyb3VwIHx8 ICNzcl91c2Vye2dyb3VwX2hvc3QgPSB7R3JvdXAsIEh9fSA8LSBScywgSCA9PSBIb3N0XTsKLSsJ XyAtPgotKwkgICAgW10KLSsgICAgZW5kICsrIGdldF9hbGxfdXNlcnNfZ3JvdXBzKEhvc3QpLgot KwotK2lzX2dyb3VwX2VuYWJsZWQoSG9zdCwgR3JvdXApIC0+Ci0rICAgIGNhc2UgY2F0Y2ggbW5l c2lhOmRpcnR5X3JlYWQoc3JfZ3JvdXAsIHtHcm91cCwgSG9zdH0pIG9mCi0rCVsjc3JfZ3JvdXB7 b3B0cyA9IE9wdHN9XSAtPgotKwkgICAgbm90IGxpc3RzOm1lbWJlcihkaXNhYmxlZCwgT3B0cyk7 Ci0rCV8gLT4KLSsJICAgIGZhbHNlCi0rICAgIGVuZC4KLSsKLStnZXRfZ3JvdXBfb3B0KEhvc3Qs IEdyb3VwLCBPcHQsIERlZmF1bHQpIC0+Ci0rICAgIGNhc2UgY2F0Y2ggbW5lc2lhOmRpcnR5X3Jl YWQoc3JfZ3JvdXAsIHtHcm91cCwgSG9zdH0pIG9mCi0rCVsjc3JfZ3JvdXB7b3B0cyA9IE9wdHN9 XSAtPgotKwkgICAgY2FzZSBsaXN0czprZXlzZWFyY2goT3B0LCAxLCBPcHRzKSBvZgotKwkJe3Zh bHVlLCB7XywgVmFsfX0gLT4KLSsJCSAgICBWYWw7Ci0rCQlmYWxzZSAtPgotKwkJICAgIERlZmF1 bHQKLSsJICAgIGVuZDsKLSsJXyAtPgotKwkgICAgZmFsc2UKLSsgICAgZW5kLgotKwotK2dldF9n cm91cF91c2VycyhIb3N0LCBHcm91cCkgLT4KLSsgICAgY2FzZSBnZXRfZ3JvdXBfb3B0KEhvc3Qs IEdyb3VwLCBhbGxfdXNlcnMsIGZhbHNlKSBvZgotKwl0cnVlIC0+Ci0rCSAgICBlamFiYmVyZF9h dXRoOmdldF92aF9yZWdpc3RlcmVkX3VzZXJzKEhvc3QpOwotKwlmYWxzZSAtPgotKwkgICAgW10K LSsgICAgZW5kICsrIGdldF9ncm91cF9leHBsaWNpdF91c2VycyhIb3N0LCBHcm91cCkuCi0rCi0r Z2V0X2dyb3VwX2V4cGxpY2l0X3VzZXJzKEhvc3QsIEdyb3VwKSAtPgotKyAgICBjYXNlIGNhdGNo IG1uZXNpYTpkaXJ0eV9pbmRleF9yZWFkKAotKwkJIHNyX3VzZXIsIHtHcm91cCwgSG9zdH0sICNz cl91c2VyLmdyb3VwX2hvc3QpIG9mCi0rCVJzIHdoZW4gaXNfbGlzdChScykgLT4KLSsJICAgIFtS I3NyX3VzZXIudXMgfHwgUiA8LSBSc107Ci0rCV8gLT4KLSsJICAgIFtdCi0rICAgIGVuZC4KLSsK LStnZXRfZ3JvdXBfbmFtZShIb3N0LCBHcm91cCkgLT4KLSsgICAgZ2V0X2dyb3VwX29wdChIb3N0 LCBHcm91cCwgbmFtZSwgR3JvdXApLgotKwotK2dldF9hbGxfdXNlcnNfZ3JvdXBzKEhvc3QpIC0+ Ci0rICAgIGxpc3RzOmZpbHRlcigKLSsgICAgICBmdW4oR3JvdXApIC0+IGdldF9ncm91cF9vcHQo SG9zdCwgR3JvdXAsIGFsbF91c2VycywgZmFsc2UpIGVuZCwKLSsgICAgICBsaXN0X2dyb3VwcyhI b3N0KSkuCi0rCi0rZ2V0X3VzZXJfZGlzcGxheWVkX2dyb3VwcyhVUykgLT4KLSsgICAgSG9zdCA9 IGVsZW1lbnQoMiwgVVMpLAotKyAgICBEaXNwbGF5ZWRHcm91cHMxID0KLSsJbGlzdHM6dXNvcnQo Ci0rCSAgbGlzdHM6ZmxhdG1hcCgKLSsJICAgIGZ1bihHcm91cCkgLT4KLSsJCSAgICBjYXNlIGlz X2dyb3VwX2VuYWJsZWQoSG9zdCwgR3JvdXApIG9mCi0rCQkJdHJ1ZSAtPgotKwkJCSAgICBnZXRf Z3JvdXBfb3B0KEhvc3QsIEdyb3VwLCBkaXNwbGF5ZWRfZ3JvdXBzLCBbXSk7Ci0rCQkJZmFsc2Ug LT4KLSsJCQkgICAgW10KLSsJCSAgICBlbmQKLSsJICAgIGVuZCwgZ2V0X3VzZXJfZ3JvdXBzKFVT KSkpLAotKyAgICBbR3JvdXAgfHwgR3JvdXAgPC0gRGlzcGxheWVkR3JvdXBzMSwgaXNfZ3JvdXBf ZW5hYmxlZChIb3N0LCBHcm91cCldLgotKwotKwotKwotKwotK2FkZF91c2VyX3RvX2dyb3VwKEhv c3QsIFVTLCBHcm91cCkgLT4KLSsgICAgUiA9ICNzcl91c2Vye3VzID0gVVMsIGdyb3VwX2hvc3Qg PSB7R3JvdXAsIEhvc3R9fSwKLSsgICAgRiA9IGZ1bigpIC0+Ci0rCQltbmVzaWE6d3JpdGUoUikK LSsJZW5kLAotKyAgICBtbmVzaWE6dHJhbnNhY3Rpb24oRikuCi0rCi0rcmVtb3ZlX3VzZXJfZnJv bV9ncm91cChIb3N0LCBVUywgR3JvdXApIC0+Ci0rICAgIFIgPSAjc3JfdXNlcnt1cyA9IFVTLCBn cm91cF9ob3N0ID0ge0dyb3VwLCBIb3N0fX0sCi0rICAgIEYgPSBmdW4oKSAtPgotKwkJbW5lc2lh OmRlbGV0ZV9vYmplY3QoUikKLSsJZW5kLAotKyAgICBtbmVzaWE6dHJhbnNhY3Rpb24oRikuCi0r Ci0rCi0rCi0rZmluZF91c2VyX2F0dHIoVXNlciwgSG9zdCkgLT4KLSsgICAgQXR0ciA9IGVqYWJi ZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF91aWRhdHRyLCBIb3N0fSksCi0rICAgIEZp bHRlciA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goQXR0ciwgVXNlciksCi0rICAgIEJhc2UgPSBlamFi YmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfYmFzZSwgSG9zdH0pLAotKyAgICAKLSsg ICAgY2FzZSBlbGRhcDpzZWFyY2goIm1vZF9zaGFyZWRfcm9zdGVyX2FkIiwKLSsgICAgICAgICAg ICAgICAgICAgICAgW3tiYXNlLCBCYXNlfSwKLSsgICAgICAgICAgICAgICAgICAgICAgIHtmaWx0 ZXIsIEZpbHRlcn0sCi0rICAgICAgICAgICAgICAgICAgICAgICB7YXR0cmlidXRlcywgW119XSkg b2YKLSsgICAgICAgICNlbGRhcF9zZWFyY2hfcmVzdWx0e2VudHJpZXMgPSBbRSB8IF9dfSAtPgot KyAgICAgICAgICAgIEU7Ci0rICAgICAgICBfIC0+Ci0rICAgICAgICAgICAgZmFsc2UKLSsgICAg ZW5kLgotKwotK2dldF91c2VyX2Rpc3BsYXllZF9ncm91cHNfYWQoVVMpIC0+Ci0rICAgIHtfLCBI b3N0fSA9IFVTLAotKyAgICBBZEdyb3VwID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRp b24oe2FkX2dyb3VwLCBIb3N0fSksCi0rICAgIEZpbHRlckdyb3VwID0gZWxkYXA6ZXF1YWxpdHlN YXRjaCgibWVtYmVyT2YiLCBBZEdyb3VwKSwKLSsgICAgQmFzZSA9IGVqYWJiZXJkX2NvbmZpZzpn ZXRfbG9jYWxfb3B0aW9uKHthZF9iYXNlLCBIb3N0fSksCi0rICAgIAotKyAgICBjYXNlIGVsZGFw OnNlYXJjaCgibW9kX3NoYXJlZF9yb3N0ZXJfYWQiLAotKyAgICAgICAgICAgICAgICAgICAgICBb e2Jhc2UsIEJhc2V9LAotKyAgICAgICAgICAgICAgICAgICAgICAge2ZpbHRlciwgRmlsdGVyR3Jv dXB9LAotKyAgICAgICAgICAgICAgICAgICAgICAge2F0dHJpYnV0ZXMsIFtdfV0pIG9mCi0rICAg ICAgICAjZWxkYXBfc2VhcmNoX3Jlc3VsdHtlbnRyaWVzID0gRX0gLT4KLSsJICAgIGxpc3RzOnVz b3J0KGxpc3RzOm1hcCgKLSsJICAgICAgZnVuKFgpIC0+Ci0rCQkgICAgICBjYXNlIFggb2YKLSsJ CQkgICNlbGRhcF9lbnRyeXthdHRyaWJ1dGVzID0gQXR0cmlidXRlc30gLT4KLSsJCQkgICAgICBs ZGFwX2dldF92YWx1ZShBdHRyaWJ1dGVzLCJkZXBhcnRtZW50Iik7Ci0rCQkJICBmYWxzZSAtPgot KwkJCSAgICAgICIiCSAgICAKLSsJCSAgICAgIGVuZAotKwkJICAgICAgZW5kLCBFCi0rCSAgICAg KSk7Ci0rCSAgICAKLSsgICAgICAgIF8gLT4KLSsgICAgICAgICAgICBbXQotKyAgICBlbmQuCi0r Ci0rZ2V0X2VsZGFwX2lkKEhvc3QsIE5hbWUpIC0+Ci0rICAgIGF0b21fdG9fbGlzdChnZW5fbW9k OmdldF9tb2R1bGVfcHJvYyhIb3N0LCBOYW1lKSkuCi0rCi0rCi0rZ2V0X2dyb3VwX3VzZXJzX2Fk KEhvc3QsIEdyb3VwKSAtPgotKyAgICBBdHRyID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9v cHRpb24oe2FkX3VpZGF0dHIsIEhvc3R9KSwKLSslICAgIEFkR3JvdXAgPSBlamFiYmVyZF9jb25m aWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfZ3JvdXAsIEhvc3R9KSwKLSsgICAgRmlsdGVyUGVyc29u ID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgib2JqZWN0Q2F0ZWdvcnkiLCAicGVyc29uIiksCi0rICAg IEZpbHRlckNvbXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJvYmplY3RDbGFzcyIsICJjb21wdXRl ciIpLAotKyAgICBGaWx0ZXJIaWRkZW4gPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJkZXNjcmlwdGlv biIsICJoaWRkZW4iKSwKLSslICAgIEZpbHRlckdyb3VwID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgi bWVtYmVyT2YiLCBBZEdyb3VwKSwKLSsgICAgRmlsdGVyRGVwID0gZWxkYXA6ZXF1YWxpdHlNYXRj aCgiZGVwYXJ0bWVudCIsIEdyb3VwKSwKLSsgICAgRmlsdGVyTGl2ZSA9IGVsZGFwOmVxdWFsaXR5 TWF0Y2goInVzZXJBY2NvdW50Q29udHJvbCIsICI2NjA1MCIpLAotKyAgICBGaWx0ZXJEZWYgPSBl bGRhcDpwcmVzZW50KEF0dHIpLAotKyAgICBGaWx0ZXIgPSBlbGRhcDonYW5kJyhbCi0rCQkJICBG aWx0ZXJEZWYsCi0rCQkJICBGaWx0ZXJQZXJzb24sCi0rJQkJCSAgRmlsdGVyR3JvdXAsCi0rCQkJ ICBGaWx0ZXJEZXAsCi0rCQkJICBlbGRhcDonbm90JyhGaWx0ZXJDb21wKSwKLSsJCQkgIGVsZGFw Oidub3QnKEZpbHRlckhpZGRlbiksCi0rCQkJICBlbGRhcDonbm90JyhGaWx0ZXJMaXZlKV0pLAot KyAgICBCYXNlID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX2Jhc2UsIEhv c3R9KSwKLSsgICAgY2FzZSBlbGRhcDpzZWFyY2goZ2V0X2VsZGFwX2lkKEhvc3QsIGVqYWJiZXJk KSwKLSsJCSAgICAgIFt7YmFzZSwgQmFzZX0sCi0rCQkgICAgICAge2ZpbHRlciwgRmlsdGVyfSwK LSsJCSAgICAgICB7YXR0cmlidXRlcywgW0F0dHJdfV0pIG9mCi0rCSNlbGRhcF9zZWFyY2hfcmVz dWx0e2VudHJpZXMgPSBFc30gLT4KLSsJICAgIGxpc3RzOmZsYXRtYXAoCi0rCSAgICAgIGZ1bihF KSAtPgotKwkJICAgICAgY2FzZSBsaXN0czprZXlzZWFyY2goQXR0ciwgMSwgRSNlbGRhcF9lbnRy eS5hdHRyaWJ1dGVzKSBvZgotKwkJCSAge3ZhbHVlLCB7XywgW1VdfX0gLT4KLSsJCQkgICAgICBj YXNlIGpsaWI6bm9kZXByZXAoVSkgb2YKLSsJCQkJICBlcnJvciAtPgotKwkJCQkgICAgICBbXTsK LSsJCQkJICBMVSAtPgotKwkJCQkgICAgICBbe0xVLCBIb3N0fV0KLSsJCQkgICAgICBlbmQ7Ci0r CQkJICBfIC0+Ci0rCQkJICAgICAgW10KLSsJCSAgICAgIGVuZAotKwkgICAgICBlbmQsIEVzKTsK LSsJXyAtPgotKwkgICAgW10KLSsgICAgZW5kLgotKwotKwotKwotKwotKwotK2xkYXBfZ2V0X3Zh bHVlKEUsQXR0cmlidXRlKSAtPgotKyAgICBjYXNlIGxpc3RzOmZpbHRlcihmdW4oe0EsX30pIC0+ Ci0rCQkJICAgICAgc3RyaW5nOmVxdWFsKEEsQXR0cmlidXRlKQotKwkJICAgICAgZW5kLEUpIG9m Ci0rCVt7XyxbVmFsdWV8X119XSAtPgotKwkgICAgVmFsdWU7Ci0rCV8gLT4gCi0rCSAgICBub25l Ci0rICAgIGVuZC4KLSsKLStnZXRfdXNlcl9mbihVc2VyLCBIb3N0KSAtPgotKyAgICBjYXNlIGZp bmRfdXNlcl9hdHRyKFVzZXIsSG9zdCkgb2YKLSsJI2VsZGFwX2VudHJ5e2F0dHJpYnV0ZXMgPSBB dHRyaWJ1dGVzfSAtPgotKwkgICAgbGRhcF9nZXRfdmFsdWUoQXR0cmlidXRlcywiY24iKTsKLSsJ Ci0rCWZhbHNlIC0+Ci0rCSAgICAiIgkgICAgCi0rICAgIGVuZC4KLSsKLSsKLWRpZmYgLS1naXQg YS9zcmMvbW9kX3ZjYXJkX2FkLmVybCBiL3NyYy9tb2RfdmNhcmRfYWQuZXJsCi1uZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uNTJkZGJlYwotLS0tIC9kZXYvbnVsbAotKysrIGIv c3JjL21vZF92Y2FyZF9hZC5lcmwKLUBAIC0wLDAgKzEsNjMxIEBACi0rCi0rJSUlLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotKyUlJSBGaWxlICAgIDogbW9kX3ZjYXJkX2FkLmVybAotKyUlJSBBdXRob3IgIDogU3Rh bmlzbGF2IEJvZ2F0eXJldiA8cmVhbGxvY0ByZWFsbG9jLnNwYi5ydT4KLSslJSUgQXV0aG9yICA6 IEFsZXhleSBTaGNoZXBpbiA8YWxleGV5QHNldmNvbS5uZXQ+Ci0rJSUlIEF1dGhvciAgOiBBbGV4 IDxhZ2VudF8wMDc+IEdvcmJhY2hlbmtvIChhZ2VudF8wMDdAaW1tby5ydSkKLSslJSUgUHVycG9z ZSA6IAotKyUlJSBDcmVhdGVkIDogIDIgSmFuIDIwMDMgYnkgQWxleGV5IFNoY2hlcGluIDxhbGV4 ZXlAc2V2Y29tLm5ldD4KLSslJSUgSWQgICAgICA6ICRJZDogbW9kX3ZjYXJkX2FkLmVybCA0Mzcg MjAwNS0xMS0xOSAwMToyMDowNVogYWdlbnRfMDA3ICQKLSslJSUtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rCi0r LW1vZHVsZShtb2RfdmNhcmRfYWQpLgotKy1hdXRob3IoJ3JlYWxsb2NAcmVhbGxvYy5zcGIucnUn KS4KLSstYXV0aG9yKCdhbGV4ZXlAc2V2Y29tLm5ldCcpLgotKy1hdXRob3IoJ2FnZW50XzAwN0Bp bW1vLnJ1JykuCi0rLXZzbignJFJldmlzaW9uOiA0MzcgJCAnKS4KLSsKLSstYmVoYXZpb3VyKGdl bl9tb2QpLgotKwotKy1leHBvcnQoW3N0YXJ0LzIsIGluaXQvMywgc3RvcC8xLAotKyAJIGdldF9z bV9mZWF0dXJlcy81LAotKwkgcHJvY2Vzc19sb2NhbF9pcS8zLAotKwkgcHJvY2Vzc19zbV9pcS8z LAotKwkgcmVtb3ZlX3VzZXIvMV0pLgotKwotKy1pbmNsdWRlKCJlamFiYmVyZC5ocmwiKS4KLSst aW5jbHVkZSgiZWxkYXAvZWxkYXAuaHJsIikuCi0rLWluY2x1ZGUoImpsaWIuaHJsIikuCi0rCi0r LWRlZmluZShQUk9DTkFNRSwgZWphYmJlcmRfbW9kX3ZjYXJkX2FkKS4KLSsKLStzdGFydChIb3N0 LCBPcHRzKSAtPgotKyAgICBJUURpc2MgPSBnZW5fbW9kOmdldF9vcHQoaXFkaXNjLCBPcHRzLCBv bmVfcXVldWUpLAotKyAgICBnZW5faXFfaGFuZGxlcjphZGRfaXFfaGFuZGxlcihlamFiYmVyZF9s b2NhbCwgSG9zdCwgP05TX1ZDQVJELAotKwkJCQkgID9NT0RVTEUsIHByb2Nlc3NfbG9jYWxfaXEs IElRRGlzYyksCi0rICAgIGdlbl9pcV9oYW5kbGVyOmFkZF9pcV9oYW5kbGVyKGVqYWJiZXJkX3Nt LCBIb3N0LCA/TlNfVkNBUkQsCi0rCQkJCSAgP01PRFVMRSwgcHJvY2Vzc19zbV9pcSwgSVFEaXNj KSwKLSsgICAgZWphYmJlcmRfaG9va3M6YWRkKGRpc2NvX3NtX2ZlYXR1cmVzLCBIb3N0LCA/TU9E VUxFLCBnZXRfc21fZmVhdHVyZXMsIDUwKSwKLSsgICAgTERBUFNlcnZlcnMgPSBlamFiYmVyZF9j b25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfc2VydmVycywgSG9zdH0pLAotKyAgICBSb290RE4g PSBlamFiYmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfcm9vdGRuLCBIb3N0fSksCi0r ICAgIFBhc3N3b3JkID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3Bhc3N3 b3JkLCBIb3N0fSksCi0rICAgIGVsZGFwOnN0YXJ0X2xpbmsoIm1vZF92Y2FyZF9hZCIsIExEQVBT ZXJ2ZXJzLCAzODksIFJvb3RETiwgUGFzc3dvcmQpLAotKyAgICBNeUhvc3QgPSBnZW5fbW9kOmdl dF9vcHQoaG9zdCwgT3B0cywgInZqdWQuIiArKyBIb3N0KSwKLSsgICAgU2VhcmNoID0gZ2VuX21v ZDpnZXRfb3B0KHNlYXJjaCwgT3B0cywgdHJ1ZSksCi0rICAgIHJlZ2lzdGVyKGdlbl9tb2Q6Z2V0 X21vZHVsZV9wcm9jKEhvc3QsID9QUk9DTkFNRSksCi0rCSAgICAgc3Bhd24oP01PRFVMRSwgaW5p dCwgW015SG9zdCwgSG9zdCwgU2VhcmNoXSkpLgotKwotK2luaXQoSG9zdCwgU2VydmVySG9zdCwg U2VhcmNoKSAtPgotKyAgICBjYXNlIFNlYXJjaCBvZgotKwlmYWxzZSAtPgotKwkgICAgbG9vcChI b3N0LCBTZXJ2ZXJIb3N0KTsKLSsJXyAtPgotKwkgICAgZWphYmJlcmRfcm91dGVyOnJlZ2lzdGVy X3JvdXRlKEhvc3QpLAotKwkgICAgbG9vcChIb3N0LCBTZXJ2ZXJIb3N0KQotKyAgICBlbmQuCi0r Ci0rbG9vcChIb3N0LCBTZXJ2ZXJIb3N0KSAtPgotKyAgICByZWNlaXZlCi0rCXtyb3V0ZSwgRnJv bSwgVG8sIFBhY2tldH0gLT4KLSsJICAgIGNhc2UgY2F0Y2ggZG9fcm91dGUoU2VydmVySG9zdCwg RnJvbSwgVG8sIFBhY2tldCkgb2YKLSsJCXsnRVhJVCcsIFJlYXNvbn0gLT4KLSsJCSAgICA/RVJS T1JfTVNHKCJ+cCIsIFtSZWFzb25dKTsKLSsJCV8gLT4KLSsJCSAgICBvawotKwkgICAgZW5kLAot KwkgICAgbG9vcChIb3N0LCBTZXJ2ZXJIb3N0KTsKLSsJc3RvcCAtPgotKwkgICAgZWphYmJlcmRf cm91dGVyOnVucmVnaXN0ZXJfcm91dGUoSG9zdCksCi0rCSAgICBvazsKLSsJXyAtPgotKwkgICAg bG9vcChIb3N0LCBTZXJ2ZXJIb3N0KQotKyAgICBlbmQuCi0rCi0rc3RvcChIb3N0KSAtPgotKyAg ICBnZW5faXFfaGFuZGxlcjpyZW1vdmVfaXFfaGFuZGxlcihlamFiYmVyZF9sb2NhbCwgSG9zdCwg P05TX1ZDQVJEKSwKLSsgICAgZ2VuX2lxX2hhbmRsZXI6cmVtb3ZlX2lxX2hhbmRsZXIoZWphYmJl cmRfc20sIEhvc3QsID9OU19WQ0FSRCksCi0rICAgIGVqYWJiZXJkX2hvb2tzOmRlbGV0ZShkaXNj b19zbV9mZWF0dXJlcywgSG9zdCwgP01PRFVMRSwgZ2V0X3NtX2ZlYXR1cmVzLCA1MCksCi0rICAg IFByb2MgPSBnZW5fbW9kOmdldF9tb2R1bGVfcHJvYyhIb3N0LCA/UFJPQ05BTUUpLAotKyAgICBQ cm9jICEgc3RvcCwKLSsgICAge3dhaXQsIFByb2N9LgotKwotK2dldF9zbV9mZWF0dXJlcyh7ZXJy b3IsIF9FcnJvcn0gPSBBY2MsIF9Gcm9tLCBfVG8sIF9Ob2RlLCBfTGFuZykgLT4KLSsgICAgQWNj OwotK2dldF9zbV9mZWF0dXJlcyhBY2MsIF9Gcm9tLCBfVG8sIE5vZGUsIF9MYW5nKSAtPgotKyAg ICBjYXNlIE5vZGUgb2YKLSsgCVtdIC0+Ci0rIAkgICAgY2FzZSBBY2Mgb2YKLSsgCQl7cmVzdWx0 LCBGZWF0dXJlc30gLT4KLSsgCQkgICAge3Jlc3VsdCwgWz9OU19WQ0FSRCB8IEZlYXR1cmVzXX07 Ci0rIAkJZW1wdHkgLT4KLSsgCQkgICAge3Jlc3VsdCwgWz9OU19WQ0FSRF19Ci0rIAkgICAgZW5k OwotKyAgCV8gLT4KLSsgCSAgICBBY2MKLSsgICAgZW5kLgotKwotK3Byb2Nlc3NfbG9jYWxfaXEo X0Zyb20sIF9UbywgI2lxe3R5cGUgPSBUeXBlLCBsYW5nID0gTGFuZywgc3ViX2VsID0gU3ViRWx9 ID0gSVEpIC0+Ci0rICAgIGNhc2UgVHlwZSBvZgotKwlzZXQgLT4KLSsJICAgIElRI2lxe3R5cGUg PSBlcnJvciwgc3ViX2VsID0gW1N1YkVsLCA/RVJSX05PVF9BTExPV0VEXX07Ci0rCWdldCAtPgot KwkgICAgSVEjaXF7dHlwZSA9IHJlc3VsdCwKLSsJCSAgc3ViX2VsID0gW3t4bWxlbGVtZW50LCAi dkNhcmQiLAotKwkJCSAgICAgW3sieG1sbnMiLCA/TlNfVkNBUkR9XSwKLSsJCQkgICAgIFt7eG1s ZWxlbWVudCwgIkZOIiwgW10sCi0rCQkJICAgICAgIFt7eG1sY2RhdGEsICJlamFiYmVyZCJ9XX0s Ci0rCQkJICAgICAge3htbGVsZW1lbnQsICJVUkwiLCBbXSwKLSsJCQkgICAgICAgW3t4bWxjZGF0 YSwKLSsJCQkJICJodHRwOi8vZWphYmJlcmQuamFiYmVyc3R1ZGlvLm9yZy8ifV19LAotKwkJCSAg ICAgIHt4bWxlbGVtZW50LCAiREVTQyIsIFtdLAotKwkJCSAgICAgICBbe3htbGNkYXRhLAotKwkJ CQkgdHJhbnNsYXRlOnRyYW5zbGF0ZSgKLSsJCQkJICAgTGFuZywKLSsJCQkJICAgIkVybGFuZyBK YWJiZXIgU2VydmVyXG4iCi0rCQkJCSAgICJDb3B5cmlnaHQgKGMpIDIwMDItMjAwNSBBbGV4ZXkg U2hjaGVwaW4iKX1dfSwKLSsJCQkgICAgICB7eG1sZWxlbWVudCwgIkJEQVkiLCBbXSwKLSsJCQkg ICAgICAgW3t4bWxjZGF0YSwgIjIwMDItMTEtMTYifV19Ci0rCQkJICAgICBdfV19Ci0rICAgIGVu ZC4KLSsKLStmaW5kX2xkYXBfdXNlcihIb3N0LCBVc2VyKSAtPgotKyAgICBBdHRyID0gZWphYmJl cmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3VpZGF0dHIsIEhvc3R9KSwKLSsgICAgRmls dGVyID0gZWxkYXA6ZXF1YWxpdHlNYXRjaChBdHRyLCBVc2VyKSwKLSsgICAgQmFzZSA9IGVqYWJi ZXJkX2NvbmZpZzpnZXRfbG9jYWxfb3B0aW9uKHthZF9iYXNlLCBIb3N0fSksCi0rICAgIGNhc2Ug ZWxkYXA6c2VhcmNoKCJtb2RfdmNhcmRfYWQiLCBbe2Jhc2UsIEJhc2V9LAotKwkJCQkJIHtmaWx0 ZXIsIEZpbHRlcn0sCi0rCQkJCQkge2F0dHJpYnV0ZXMsIFtdfV0pIG9mCi0rCSNlbGRhcF9zZWFy Y2hfcmVzdWx0e2VudHJpZXMgPSBbRSB8IF9dfSAtPgotKwkgICAgRTsKLSsJXyAtPgotKwkgICAg ZmFsc2UKLSsgICAgZW5kLgotKwotK2lzX2F0dHJpYnV0ZV9yZWFkX2FsbG93ZWQoTmFtZSxGcm9t LFRvKSAtPgotKyAgICB0cnVlLgotKwotK2xkYXBfYXR0cmlidXRlX3RvX3ZjYXJkKFByZWZpeCx7 TmFtZSxWYWx1ZXN9LEZyb20sVG8pIC0+Ci0rICAgIGNhc2UgaXNfYXR0cmlidXRlX3JlYWRfYWxs b3dlZChOYW1lLEZyb20sVG8pIG9mIAotKwl0cnVlIC0+Ci0rCSAgICBsZGFwX2xjYV90b192Y2Fy ZChQcmVmaXgsc3RyaW5ncHJlcDp0b2xvd2VyKE5hbWUpLFZhbHVlcyk7Ci0rCV8gLT4KLSsJICAg IG5vbmUKLSsgICAgZW5kLgotKwotK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkLCJkaXNwbGF5bmFt ZSIsW1ZhbHVlfF9dKSAtPgotKyAgICB7eG1sZWxlbWVudCwiRk4iLFtdLFt7eG1sY2RhdGEsVmFs dWV9XX07Ci0rCi0rbGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsImNuIixbVmFsdWV8X10pIC0+Ci0r ICAgIHt4bWxlbGVtZW50LCJOSUNLTkFNRSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKLSsKLSts ZGFwX2xjYV90b192Y2FyZCh2Q2FyZCwidGl0bGUiLFtWYWx1ZXxfXSkgLT4KLSsgICAge3htbGVs ZW1lbnQsIlRJVExFIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OwotKwotK2xkYXBfbGNhX3RvX3Zj YXJkKHZDYXJkLCJ3d3dob21lcGFnZSIsW1ZhbHVlfF9dKSAtPgotKyAgICB7eG1sZWxlbWVudCwi VVJMIixbXSxbe3htbGNkYXRhLFZhbHVlfV19OwotKwotK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJk LCJkZXNjcmlwdGlvbiIsW1ZhbHVlfF9dKSAtPgotKyAgICB7eG1sZWxlbWVudCwiREVTQyIsW10s W3t4bWxjZGF0YSxWYWx1ZX1dfTsKLSsKLStsZGFwX2xjYV90b192Y2FyZCh2Q2FyZCwidGVsZXBo b25lbnVtYmVyIixbVmFsdWV8X10pIC0+Ci0rICAgIHt4bWxlbGVtZW50LCJURUwiLFtdLFt7eG1s ZWxlbWVudCwiVk9JQ0UiLFtdLFtdfSwKLSsJCQkgIHt4bWxlbGVtZW50LCJXT1JLIixbXSxbXX0s Ci0rCQkJICB7eG1sZWxlbWVudCwiTlVNQkVSIixbXSxbe3htbGNkYXRhLFZhbHVlfV19XX07Ci0r Ci0rbGRhcF9sY2FfdG9fdmNhcmQodkNhcmQsIm1haWwiLFtWYWx1ZXxfXSkgLT4KLSsgICAge3ht bGVsZW1lbnQsIkVNQUlMIixbXSxbe3htbGVsZW1lbnQsIklOVEVSTkVUIixbXSxbXX0sCi0rCQkJ ICAgIHt4bWxlbGVtZW50LCJQUkVGIixbXSxbXX0sCi0rCQkJICAgIHt4bWxlbGVtZW50LCJVU0VS SUQiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX1dfTsKLSsKLStsZGFwX2xjYV90b192Y2FyZCh2Q2Fy ZE4sInNuIixbVmFsdWV8X10pIC0+Ci0rICAgIHt4bWxlbGVtZW50LCJGQU1JTFkiLFtdLFt7eG1s Y2RhdGEsVmFsdWV9XX07Ci0rCi0rbGRhcF9sY2FfdG9fdmNhcmQodkNhcmROLCJnaXZlbm5hbWUi LFtWYWx1ZXxfXSkgLT4KLSsgICAge3htbGVsZW1lbnQsIkdJVkVOIixbXSxbe3htbGNkYXRhLFZh bHVlfV19OwotKwotK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkTiwiaW5pdGlhbHMiLFtWYWx1ZXxf XSkgLT4KLSsgICAge3htbGVsZW1lbnQsIk1JRERMRSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsK LSsKLStsZGFwX2xjYV90b192Y2FyZCh2Q2FyZEFkciwic3RyZWV0YWRkcmVzcyIsW1ZhbHVlfF9d KSAtPgotKyAgICB7eG1sZWxlbWVudCwiU1RSRUVUIixbXSxbe3htbGNkYXRhLFZhbHVlfV19Owot K2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkQWRyLCJjbyIsW1ZhbHVlfF9dKSAtPgotKyAgICB7eG1s ZWxlbWVudCwiQ1RSWSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKLStsZGFwX2xjYV90b192Y2Fy ZCh2Q2FyZEFkciwibCIsW1ZhbHVlfF9dKSAtPgotKyAgICB7eG1sZWxlbWVudCwiTE9DQUxJVFki LFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07Ci0rbGRhcF9sY2FfdG9fdmNhcmQodkNhcmRBZHIsInN0 IixbVmFsdWV8X10pIC0+Ci0rICAgIHt4bWxlbGVtZW50LCJSRUdJT04iLFtdLFt7eG1sY2RhdGEs VmFsdWV9XX07Ci0rbGRhcF9sY2FfdG9fdmNhcmQodkNhcmRBZHIsInBvc3RhbGNvZGUiLFtWYWx1 ZXxfXSkgLT4KLSsgICAge3htbGVsZW1lbnQsIlBDT0RFIixbXSxbe3htbGNkYXRhLFZhbHVlfV19 OwotK2xkYXBfbGNhX3RvX3ZjYXJkKHZDYXJkTywiY29tcGFueSIsW1ZhbHVlfF9dKSAtPgotKyAg ICB7eG1sZWxlbWVudCwiT1JHTkFNRSIsW10sW3t4bWxjZGF0YSxWYWx1ZX1dfTsKLSsKLStsZGFw X2xjYV90b192Y2FyZCh2Q2FyZE8sImRlcGFydG1lbnQiLFtWYWx1ZXxfXSkgLT4KLSsgICAge3ht bGVsZW1lbnQsIk9SR1VOSVQiLFtdLFt7eG1sY2RhdGEsVmFsdWV9XX07Ci0rCi0rbGRhcF9sY2Ff dG9fdmNhcmQoXyxfLF8pIC0+IG5vbmUuCi0rCi0rbGRhcF9hdHRyaWJ1dGVzX3RvX3ZjYXJkKEF0 dHJpYnV0ZXMsRnJvbSxUbykgLT4KLSsgICAgRWx0cyA9IGxpc3RzOm1hcChmdW4oQXR0cikgLT4K LSsJCQkgICAgIGxkYXBfYXR0cmlidXRlX3RvX3ZjYXJkKHZDYXJkLEF0dHIsRnJvbSxUbykKLSsJ CSAgICAgZW5kLEF0dHJpYnV0ZXMpLAotKyAgICBGRWx0cyA9IFsgWCB8fCBYIDwtIEVsdHMsIFgg Lz0gbm9uZSBdLAotKyAgICBORWx0cyA9IGxpc3RzOm1hcChmdW4oQXR0cikgLT4KLSsJCQkgICAg ICBsZGFwX2F0dHJpYnV0ZV90b192Y2FyZCh2Q2FyZE4sQXR0cixGcm9tLFRvKQotKwkJICAgICAg ZW5kLEF0dHJpYnV0ZXMpLAotKyAgICBGTkVsdHMgPSBbIFggfHwgWCA8LSBORWx0cywgWCAvPSBu b25lIF0sCi0rICAgCi0rICAgIEFEUkVsdHMgPSBsaXN0czptYXAoZnVuKEF0dHIpIC0+Ci0rCQkJ ICAgICAgbGRhcF9hdHRyaWJ1dGVfdG9fdmNhcmQodkNhcmRBZHIsQXR0cixGcm9tLFRvKQotKwkJ ICAgICAgZW5kLEF0dHJpYnV0ZXMpLAotKyAgICBGQURSRWx0cyA9IFsgWCB8fCBYIDwtIEFEUkVs dHMsIFggLz0gbm9uZSBdLAotKyAgICAKLSsgICAgT0VsdHMgPSBsaXN0czptYXAoZnVuKEF0dHIp IC0+Ci0rCQkJICAgICAgbGRhcF9hdHRyaWJ1dGVfdG9fdmNhcmQodkNhcmRPLEF0dHIsRnJvbSxU bykKLSsJCSAgICAgIGVuZCxBdHRyaWJ1dGVzKSwKLSsgICAgRk9FbHRzID0gWyBYIHx8IFggPC0g T0VsdHMsIFggLz0gbm9uZSBdLAotKyAgICBbe3htbGVsZW1lbnQsICJ2Q2FyZCIsIFt7InhtbG5z IiwgP05TX1ZDQVJEfV0sCi0rICAgICAgbGlzdHM6YXBwZW5kKEZFbHRzLAotKwkJICAgW3t4bWxl bGVtZW50LCJOIixbXSxGTkVsdHN9LAotKwkJICAgIHt4bWxlbGVtZW50LCJBRFIiLFtdLEZBRFJF bHRzfSwKLSsJCSAgICB7eG1sZWxlbWVudCwiT1JHIixbXSxGT0VsdHN9XSkKLSsgICAgIH1dLgot KwotK3Byb2Nlc3Nfc21faXEoRnJvbSwgVG8sICNpcXt0eXBlID0gVHlwZSwgc3ViX2VsID0gU3Vi RWx9ID0gSVEpIC0+Ci0rICAgIGNhc2UgVHlwZSBvZgotKwlzZXQgLT4KLSsJICAgIElRI2lxe3R5 cGUgPSBlcnJvciwgc3ViX2VsID0gW1N1YkVsLCA/RVJSX05PVF9BTExPV0VEXX07Ci0rCWdldCAt PgotKwkgICAgI2ppZHtsdXNlciA9IExVc2VyLCBsc2VydmVyID0gTFNlcnZlcn0gPSBUbywKLSsJ ICAgIGNhc2UgZmluZF9sZGFwX3VzZXIoTFNlcnZlciwgTFVzZXIpIG9mCi0rCQkjZWxkYXBfZW50 cnl7YXR0cmlidXRlcyA9IEF0dHJpYnV0ZXN9IC0+Ci0rCQkgICAgVmNhcmQgPSBsZGFwX2F0dHJp YnV0ZXNfdG9fdmNhcmQoQXR0cmlidXRlcyxGcm9tLFRvKSwKLSsJCSAgICBJUSNpcXt0eXBlID0g cmVzdWx0LCBzdWJfZWwgPSBWY2FyZH07Ci0rCQlfIC0+Ci0rCQkgICAgSVEjaXF7dHlwZSA9IHJl c3VsdCwgc3ViX2VsID0gW119Ci0rCSAgICBlbmQKLSsJZW5kLgotKwotKy1kZWZpbmUoVExGSUVM RChUeXBlLCBMYWJlbCwgVmFyKSwKLSsJe3htbGVsZW1lbnQsICJmaWVsZCIsIFt7InR5cGUiLCBU eXBlfSwKLSsJCQkgICAgICAgeyJsYWJlbCIsIHRyYW5zbGF0ZTp0cmFuc2xhdGUoTGFuZywgTGFi ZWwpfSwKLSsJCQkgICAgICAgeyJ2YXIiLCBWYXJ9XSwgW119KS4KLSsKLSsKLSstZGVmaW5lKEZP Uk0oSklEKSwKLSsJW3t4bWxlbGVtZW50LCAiaW5zdHJ1Y3Rpb25zIiwgW10sCi0rCSAgW3t4bWxj ZGF0YSwgdHJhbnNsYXRlOnRyYW5zbGF0ZShMYW5nLCAiWW91IG5lZWQgYW4geDpkYXRhIGNhcGFi bGUgY2xpZW50IHRvIHNlYXJjaCIpfV19LAotKwkge3htbGVsZW1lbnQsICJ4IiwgW3sieG1sbnMi LCA/TlNfWERBVEF9LCB7InR5cGUiLCAiZm9ybSJ9XSwKLSsJICBbe3htbGVsZW1lbnQsICJ0aXRs ZSIsIFtdLAotKwkgICAgW3t4bWxjZGF0YSwgdHJhbnNsYXRlOnRyYW5zbGF0ZShMYW5nLCAiU2Vh cmNoIHVzZXJzIGluICIpICsrCi0rCSAgICAgIGpsaWI6amlkX3RvX3N0cmluZyhKSUQpfV19LAot KwkgICB7eG1sZWxlbWVudCwgImluc3RydWN0aW9ucyIsIFtdLAotKwkgICAgW3t4bWxjZGF0YSwg dHJhbnNsYXRlOnRyYW5zbGF0ZShMYW5nLCAiRmlsbCBpbiBmaWVsZHMgdG8gc2VhcmNoICIKLSsJ CQkJCSAgICAiZm9yIGFueSBtYXRjaGluZyBKYWJiZXIgVXNlciIpfV19LAotKwkgICA/VExGSUVM RCgidGV4dC1zaW5nbGUiLCAiVXNlciIsICJ1c2VyIiksCi0rCSAgID9UTEZJRUxEKCJ0ZXh0LXNp bmdsZSIsICJGdWxsIE5hbWUiLCAiZm4iKSwKLSsJICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwg IkdpdmVuIE5hbWUiLCAiZ2l2ZW4iKSwKLSsJICAgP1RMRklFTEQoInRleHQtc2luZ2xlIiwgIk1p ZGRsZSBOYW1lIiwgIm1pZGRsZSIpLAotKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiRmFt aWx5IE5hbWUiLCAiZmFtaWx5IiksCi0rCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJOaWNr bmFtZSIsICJuaWNrbmFtZSIpLAotKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiQmlydGhk YXkiLCAiYmRheSIpLAotKwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiQ291bnRyeSIsICJj dHJ5IiksCi0rCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJDaXR5IiwgImxvY2FsaXR5Iiks Ci0rCSAgID9UTEZJRUxEKCJ0ZXh0LXNpbmdsZSIsICJlbWFpbCIsICJlbWFpbCIpLAotKwkgICA/ VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiT3JnYW5pemF0aW9uIE5hbWUiLCAib3JnbmFtZSIpLAot KwkgICA/VExGSUVMRCgidGV4dC1zaW5nbGUiLCAiT3JnYW5pemF0aW9uIFVuaXQiLCAib3JndW5p dCIpCi0rCSAgXX1dKS4KLSsKLSsKLSsKLSsKLStkb19yb3V0ZShTZXJ2ZXJIb3N0LCBGcm9tLCBU bywgUGFja2V0KSAtPgotKyAgICAjamlke3VzZXIgPSBVc2VyLCByZXNvdXJjZSA9IFJlc291cmNl fSA9IFRvLAotKyAgICBpZgotKwkoVXNlciAvPSAiIikgb3IgKFJlc291cmNlIC89ICIiKSAtPgot KwkgICAgRXJyID0gamxpYjptYWtlX2Vycm9yX3JlcGx5KFBhY2tldCwgP0VSUl9TRVJWSUNFX1VO QVZBSUxBQkxFKSwKLSsJICAgIGVqYWJiZXJkX3JvdXRlciAhIHtyb3V0ZSwgVG8sIEZyb20sIEVy cn07Ci0rCXRydWUgLT4KLSsJICAgIElRID0gamxpYjppcV9xdWVyeV9pbmZvKFBhY2tldCksCi0r CSAgICBjYXNlIElRIG9mCi0rCQkjaXF7dHlwZSA9IFR5cGUsIHhtbG5zID0gP05TX1NFQVJDSCwg bGFuZyA9IExhbmcsIHN1Yl9lbCA9IFN1YkVsfSAtPgotKwkJICAgIGNhc2UgVHlwZSBvZgotKwkJ CXNldCAtPgotKwkJCSAgICBYRGF0YUVsID0gZmluZF94ZGF0YV9lbChTdWJFbCksCi0rCQkJICAg IGNhc2UgWERhdGFFbCBvZgotKwkJCQlmYWxzZSAtPgotKwkJCQkgICAgRXJyID0gamxpYjptYWtl X2Vycm9yX3JlcGx5KAotKwkJCQkJICAgIFBhY2tldCwgP0VSUl9CQURfUkVRVUVTVCksCi0rCQkJ CSAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUoVG8sIEZyb20sIEVycik7Ci0rCQkJCV8gLT4KLSsJ CQkJICAgIFhEYXRhID0gamxpYjpwYXJzZV94ZGF0YV9zdWJtaXQoWERhdGFFbCksCi0rCQkJCSAg ICBjYXNlIFhEYXRhIG9mCi0rCQkJCQlpbnZhbGlkIC0+Ci0rCQkJCQkgICAgRXJyID0gamxpYjpt YWtlX2Vycm9yX3JlcGx5KAotKwkJCQkJCSAgICBQYWNrZXQsCi0rCQkJCQkJICAgID9FUlJfQkFE X1JFUVVFU1QpLAotKwkJCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShUbywgRnJvbSwKLSsJ CQkJCQkJCSAgRXJyKTsKLSsJCQkJCV8gLT4KLSsJCQkJCSAgICBSZXNJUSA9Ci0rCQkJCQkJSVEj aXF7Ci0rCQkJCQkJICB0eXBlID0gcmVzdWx0LAotKwkJCQkJCSAgc3ViX2VsID0KLSsJCQkJCQkg IFt7eG1sZWxlbWVudCwKLSsJCQkJCQkgICAgInF1ZXJ5IiwKLSsJCQkJCQkgICAgW3sieG1sbnMi LCA/TlNfU0VBUkNIfV0sCi0rCQkJCQkJICAgIFt7eG1sZWxlbWVudCwgIngiLAotKwkJCQkJCSAg ICAgIFt7InhtbG5zIiwgP05TX1hEQVRBfSwKLSsJCQkJCQkgICAgICAgeyJ0eXBlIiwgInJlc3Vs dCJ9XSwKLSsJCQkJCQkgICAgICBzZWFyY2hfcmVzdWx0KExhbmcsIFRvLCBTZXJ2ZXJIb3N0LCBY RGF0YSkKLSsJCQkJCQkgICAgIH1dfV19LAotKwkJCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0 ZSgKLSsJCQkJCSAgICAgIFRvLCBGcm9tLCBqbGliOmlxX3RvX3htbChSZXNJUSkpCi0rCQkJCSAg ICBlbmQKLSsJCQkgICAgZW5kOwotKwkJCWdldCAtPgotKwkJCSAgICBSZXNJUSA9IElRI2lxe3R5 cGUgPSByZXN1bHQsCi0rCQkJCQkgIHN1Yl9lbCA9IFt7eG1sZWxlbWVudCwKLSsJCQkJCQkgICAg ICJxdWVyeSIsCi0rCQkJCQkJICAgICBbeyJ4bWxucyIsID9OU19TRUFSQ0h9XSwKLSsJCQkJCQkg ICAgID9GT1JNKFRvKQotKwkJCQkJCSAgICB9XX0sCi0rCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpy b3V0ZShUbywKLSsJCQkJCQkgIEZyb20sCi0rCQkJCQkJICBqbGliOmlxX3RvX3htbChSZXNJUSkp Ci0rCQkgICAgZW5kOwotKwkJI2lxe3R5cGUgPSBUeXBlLCB4bWxucyA9ID9OU19ESVNDT19JTkZP LCBzdWJfZWwgPSBTdWJFbH0gLT4KLSsJCSAgICBjYXNlIFR5cGUgb2YKLSsJCQlzZXQgLT4KLSsJ CQkgICAgRXJyID0gamxpYjptYWtlX2Vycm9yX3JlcGx5KAotKwkJCQkgICAgUGFja2V0LCA/RVJS X05PVF9BTExPV0VEKSwKLSsJCQkgICAgZWphYmJlcmRfcm91dGVyOnJvdXRlKFRvLCBGcm9tLCBF cnIpOwotKwkJCWdldCAtPgotKwkJCSAgICBSZXNJUSA9Ci0rCQkJCUlRI2lxe3R5cGUgPSByZXN1 bHQsCi0rCQkJCSAgICAgIHN1Yl9lbCA9IFt7eG1sZWxlbWVudCwKLSsJCQkJCQkgInF1ZXJ5IiwK LSsJCQkJCQkgW3sieG1sbnMiLCA/TlNfRElTQ09fSU5GT31dLAotKwkJCQkJCSBbe3htbGVsZW1l bnQsICJpZGVudGl0eSIsCi0rCQkJCQkJICAgW3siY2F0ZWdvcnkiLCAiZGlyZWN0b3J5In0sCi0r CQkJCQkJICAgIHsidHlwZSIsICJ1c2VyIn0sCi0rCQkJCQkJICAgIHsibmFtZSIsCi0rCQkJCQkJ ICAgICAidkNhcmQgVXNlciBTZWFyY2gifV0sCi0rCQkJCQkJICAgW119LAotKwkJCQkJCSAge3ht bGVsZW1lbnQsICJmZWF0dXJlIiwKLSsJCQkJCQkgICBbeyJ2YXIiLCA/TlNfU0VBUkNIfV0sIFtd fSwKLSsJCQkJCQkgIHt4bWxlbGVtZW50LCAiZmVhdHVyZSIsCi0rCQkJCQkJICAgW3sidmFyIiwg P05TX1ZDQVJEfV0sIFtdfQotKwkJCQkJCSBdCi0rCQkJCQkJfV19LAotKwkJCSAgICBlamFiYmVy ZF9yb3V0ZXI6cm91dGUoVG8sCi0rCQkJCQkJICBGcm9tLAotKwkJCQkJCSAgamxpYjppcV90b194 bWwoUmVzSVEpKQotKwkJICAgIGVuZDsKLSsJCSNpcXt0eXBlID0gVHlwZSwgeG1sbnMgPSA/TlNf RElTQ09fSVRFTVMsIHN1Yl9lbCA9IFN1YkVsfSAtPgotKwkJICAgIGNhc2UgVHlwZSBvZgotKwkJ CXNldCAtPgotKwkJCSAgICBFcnIgPSBqbGliOm1ha2VfZXJyb3JfcmVwbHkoCi0rCQkJCSAgICBQ YWNrZXQsID9FUlJfTk9UX0FMTE9XRUQpLAotKwkJCSAgICBlamFiYmVyZF9yb3V0ZXI6cm91dGUo VG8sIEZyb20sIEVycik7Ci0rCQkJZ2V0IC0+Ci0rCQkJICAgIFJlc0lRID0gCi0rCQkJCUlRI2lx e3R5cGUgPSByZXN1bHQsCi0rCQkJCSAgICAgIHN1Yl9lbCA9IFt7eG1sZWxlbWVudCwKLSsJCQkJ CQkgInF1ZXJ5IiwKLSsJCQkJCQkgW3sieG1sbnMiLCA/TlNfRElTQ09fSVRFTVN9XSwKLSsJCQkJ CQkgW119XX0sCi0rCQkJICAgIGVqYWJiZXJkX3JvdXRlcjpyb3V0ZShUbywKLSsJCQkJCQkgIEZy b20sCi0rCQkJCQkJICBqbGliOmlxX3RvX3htbChSZXNJUSkpCi0rCQkgICAgZW5kOwotKwkJI2lx e3R5cGUgPSBnZXQsIHhtbG5zID0gP05TX1ZDQVJELCBsYW5nID0gTGFuZ30gLT4KLSsJCSAgICBS ZXNJUSA9IAotKwkJCUlRI2lxe3R5cGUgPSByZXN1bHQsCi0rCQkJICAgICAgc3ViX2VsID0gW3t4 bWxlbGVtZW50LAotKwkJCQkJICJ2Q2FyZCIsCi0rCQkJCQkgW3sieG1sbnMiLCA/TlNfVkNBUkR9 XSwKLSsJCQkJCSBpcV9nZXRfdmNhcmQoTGFuZyl9XX0sCi0rCQkgICAgZWphYmJlcmRfcm91dGVy OnJvdXRlKFRvLAotKwkJCQkJICBGcm9tLAotKwkJCQkJICBqbGliOmlxX3RvX3htbChSZXNJUSkp OwotKwkJXyAtPgotKwkJICAgIEVyciA9IGpsaWI6bWFrZV9lcnJvcl9yZXBseShQYWNrZXQsCi0r CQkJCQkJP0VSUl9TRVJWSUNFX1VOQVZBSUxBQkxFKSwKLSsJCSAgICBlamFiYmVyZF9yb3V0ZXI6 cm91dGUoVG8sIEZyb20sIEVycikKLSsJICAgIGVuZAotKyAgICBlbmQuCi0rCi0raXFfZ2V0X3Zj YXJkKExhbmcpIC0+Ci0rICAgIFt7eG1sZWxlbWVudCwgIkZOIiwgW10sCi0rICAgICAgW3t4bWxj ZGF0YSwgImVqYWJiZXJkL21vZF92Y2FyZCJ9XX0sCi0rICAgICB7eG1sZWxlbWVudCwgIlVSTCIs IFtdLAotKyAgICAgIFt7eG1sY2RhdGEsCi0rICAgICAgICAiaHR0cDovL2VqYWJiZXJkLmphYmJl cnN0dWRpby5vcmcvIn1dfSwKLSsgICAgIHt4bWxlbGVtZW50LCAiREVTQyIsIFtdLAotKyAgICAg IFt7eG1sY2RhdGEsIHRyYW5zbGF0ZTp0cmFuc2xhdGUoCi0rCQkgICAgTGFuZywKLSsJCSAgICAi ZWphYmJlcmQgdkNhcmQgbW9kdWxlXG4iCi0rCQkgICAgIkNvcHlyaWdodCAoYykgMjAwMy0yMDA1 IEFsZXhleSBTaGNoZXBpbiIpfV19XS4KLSsKLStmaW5kX3hkYXRhX2VsKHt4bWxlbGVtZW50LCBf TmFtZSwgX0F0dHJzLCBTdWJFbHN9KSAtPgotKyAgICBmaW5kX3hkYXRhX2VsMShTdWJFbHMpLgot KwotK2ZpbmRfeGRhdGFfZWwxKFtdKSAtPgotKyAgICBmYWxzZTsKLStmaW5kX3hkYXRhX2VsMShb e3htbGVsZW1lbnQsIE5hbWUsIEF0dHJzLCBTdWJFbHN9IHwgRWxzXSkgLT4KLSsgICAgY2FzZSB4 bWw6Z2V0X2F0dHJfcygieG1sbnMiLCBBdHRycykgb2YKLSsJP05TX1hEQVRBIC0+Ci0rCSAgICB7 eG1sZWxlbWVudCwgTmFtZSwgQXR0cnMsIFN1YkVsc307Ci0rCV8gLT4KLSsJICAgIGZpbmRfeGRh dGFfZWwxKEVscykKLSsgICAgZW5kOwotK2ZpbmRfeGRhdGFfZWwxKFtfIHwgRWxzXSkgLT4KLSsg ICAgZmluZF94ZGF0YV9lbDEoRWxzKS4KLSsKLSstZGVmaW5lKExGSUVMRChMYWJlbCwgVmFyKSwK LSsJe3htbGVsZW1lbnQsICJmaWVsZCIsIFt7ImxhYmVsIiwgdHJhbnNsYXRlOnRyYW5zbGF0ZShM YW5nLCBMYWJlbCl9LAotKwkJCSAgICAgICB7InZhciIsIFZhcn1dLCBbXX0pLgotKwotK3NlYXJj aF9yZXN1bHQoTGFuZywgSklELCBTZXJ2ZXJIb3N0LCBEYXRhKSAtPgotKyAgICBbe3htbGVsZW1l bnQsICJ0aXRsZSIsIFtdLAotKyAgICAgIFt7eG1sY2RhdGEsIHRyYW5zbGF0ZTp0cmFuc2xhdGUo TGFuZywgIlJlc3VsdHMgb2Ygc2VhcmNoIGluICIpICsrCi0rCWpsaWI6amlkX3RvX3N0cmluZyhK SUQpfV19LAotKyAgICAge3htbGVsZW1lbnQsICJyZXBvcnRlZCIsIFtdLAotKyAgICAgIFs/TEZJ RUxEKCJKSUQiLCAiamlkIiksCi0rICAgICAgID9MRklFTEQoIkZ1bGwgTmFtZSIsICJmbiIpLAot KyAgICAgICA/TEZJRUxEKCJHaXZlbiBOYW1lIiwgImdpdmVuIiksCi0rICAgICAgID9MRklFTEQo Ik1pZGRsZSBOYW1lIiwgIm1pZGRsZSIpLAotKyAgICAgICA/TEZJRUxEKCJGYW1pbHkgTmFtZSIs ICJmYW1pbHkiKSwKLSsgICAgICAgP0xGSUVMRCgiTmlja25hbWUiLCAibmlja25hbWUiKSwKLSsg ICAgICAgP0xGSUVMRCgiQmlydGhkYXkiLCAiYmRheSIpLAotKyAgICAgICA/TEZJRUxEKCJDb3Vu dHJ5IiwgImN0cnkiKSwKLSsgICAgICAgP0xGSUVMRCgiQ2l0eSIsICJsb2NhbGl0eSIpLAotKyAg ICAgICA/TEZJRUxEKCJlbWFpbCIsICJlbWFpbCIpLAotKyAgICAgICA/TEZJRUxEKCJPcmdhbml6 YXRpb24gTmFtZSIsICJvcmduYW1lIiksCi0rICAgICAgID9MRklFTEQoIk9yZ2FuaXphdGlvbiBV bml0IiwgIm9yZ3VuaXQiKQotKyAgICAgIF19XSArKyBsaXN0czptYXAoZnVuKEUpIC0+IAotKwkJ CSAgICAgICByZWNvcmRfdG9faXRlbShFI2VsZGFwX2VudHJ5LmF0dHJpYnV0ZXMpCi0rCQkgICAg ICAgZW5kLCBzZWFyY2goU2VydmVySG9zdCwgRGF0YSkpLgotKwotKy1kZWZpbmUoRklFTEQoVmFy LCBWYWwpLAotKwl7eG1sZWxlbWVudCwgImZpZWxkIiwgW3sidmFyIiwgVmFyfV0sCi0rCSBbe3ht bGVsZW1lbnQsICJ2YWx1ZSIsIFtdLAotKwkgICBbe3htbGNkYXRhLCBWYWx9XX1dfSkuCi0rCi0r Y2FzZV9leGFjdF9jb21wYXJlKG5vbmUsXykgLT4KLSsgICAgZmFsc2U7Ci0rY2FzZV9leGFjdF9j b21wYXJlKF8sbm9uZSkgLT4KLSsgICAgZmFsc2U7Ci0rY2FzZV9leGFjdF9jb21wYXJlKFgsWSkg LT4KLSsgICAgWCA+IFkuCi0rCi0rbGRhcF9zb3J0X2VudHJpZXMoTCkgLT4KLSsgICAgbGlzdHM6 c29ydChmdW4oRTEsRTIpIC0+Ci0rCQkgICAgICAgY2FzZV9leGFjdF9jb21wYXJlKGxkYXBfZ2V0 X3ZhbHVlKEUxLCJjbiIpLGxkYXBfZ2V0X3ZhbHVlKEUyLCJjbiIpKQotKwkgICAgICAgZW5kLEwp LgotKwotK2xkYXBfZ2V0X3ZhbHVlKEUsQXR0cmlidXRlKSAtPgotKyAgICAjZWxkYXBfZW50cnl7 YXR0cmlidXRlcyA9IEF0dHJpYnV0ZXN9ID0gRSwKLSsgICAgY2FzZSBsaXN0czpmaWx0ZXIoZnVu KHtBLF99KSAtPgotKwkJCSAgICAgIHN0cmluZzplcXVhbChBLEF0dHJpYnV0ZSkKLSsJCSAgICAg IGVuZCxBdHRyaWJ1dGVzKSBvZgotKwlbe0F0dHIsW1ZhbHVlfF9dfV0gLT4KLSsJICAgIFZhbHVl OwotKwlfIC0+IAotKwkgICAgbm9uZQotKyAgICBlbmQuCi0rCi0rbGRhcF9hdHRyaWJ1dGVfdG9f aXRlbSgic2FtYWNjb3VudG5hbWUiLFZhbHVlKSAtPgotKyAgICBbCi0rICAgICA/RklFTEQoImpp ZCIsVmFsdWUgKysgIkAiICsrID9NWU5BTUUpLAotKyAgICAgP0ZJRUxEKCJ1aWQiLFZhbHVlKQot KyAgICBdOwotKwotK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oImNuIixWYWx1ZSkgLT4KLSsgICAg WwotKyAgICAgP0ZJRUxEKCJuaWNrbmFtZSIsVmFsdWUpCi0rICAgIF07Ci0rCi0rbGRhcF9hdHRy aWJ1dGVfdG9faXRlbSgiZGlzcGxheW5hbWUiLFZhbHVlKSAtPgotKyAgICBbCi0rICAgICA/RklF TEQoImZuIixWYWx1ZSkKLSsgICAgXTsKLSsKLStsZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJzbiIs VmFsdWUpIC0+Ci0rICAgIFsKLSsgICAgID9GSUVMRCgiZmFtaWx5IixWYWx1ZSkKLSsgICAgXTsK LStsZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJjbyIsVmFsdWUpIC0+Ci0rICAgIFsKLSsgICAgID9G SUVMRCgiY3RyeSIsVmFsdWUpCi0rICAgIF07Ci0rbGRhcF9hdHRyaWJ1dGVfdG9faXRlbSgibCIs VmFsdWUpIC0+Ci0rICAgIFsKLSsgICAgID9GSUVMRCgibG9jYWxpdHkiLFZhbHVlKQotKyAgICBd OwotKwotK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oImdpdmVubmFtZSIsVmFsdWUpIC0+Ci0rICAg IFsKLSsgICAgID9GSUVMRCgiZ2l2ZW4iLFZhbHVlKQotKyAgICBdOwotKwotK2xkYXBfYXR0cmli dXRlX3RvX2l0ZW0oImluaXRpYWxzIixWYWx1ZSkgLT4KLSsgICAgWwotKyAgICAgP0ZJRUxEKCJt aWRkbGUiLFZhbHVlKQotKyAgICBdOwotKwotK2xkYXBfYXR0cmlidXRlX3RvX2l0ZW0oIm1haWwi LFZhbHVlKSAtPgotKyAgICBbCi0rICAgICA/RklFTEQoImVtYWlsIixWYWx1ZSkKLSsgICAgXTsK LSsKLStsZGFwX2F0dHJpYnV0ZV90b19pdGVtKCJjb21wYW55IixWYWx1ZSkgLT4KLSsgICAgWwot KyAgICAgP0ZJRUxEKCJvcmduYW1lIixWYWx1ZSkKLSsgICAgXTsKLSsKLStsZGFwX2F0dHJpYnV0 ZV90b19pdGVtKCJkZXBhcnRtZW50IixWYWx1ZSkgLT4KLSsgICAgWwotKyAgICAgP0ZJRUxEKCJv cmd1bml0IixWYWx1ZSkKLSsgICAgXTsKLSsKLStsZGFwX2F0dHJpYnV0ZV90b19pdGVtKF8sXykg LT4KLSsgICAgW25vbmVdLgotKwotK3JlY29yZF90b19pdGVtKEF0dHJpYnV0ZXMpIC0+Ci0rICAg IExpc3QgPSBsaXN0czphcHBlbmQobGlzdHM6bWFwKGZ1bih7QXR0cixbVmFsdWV8X119KSAtPiAK LSsJCQkJCSAgbGRhcF9hdHRyaWJ1dGVfdG9faXRlbShzdHJpbmdwcmVwOnRvbG93ZXIoQXR0ciks VmFsdWUpCi0rCQkJCSAgZW5kLEF0dHJpYnV0ZXMpKSwKLSsgICAgRkxpc3QgPSBbWCB8fCBYIDwt IExpc3QsIFggLz0gbm9uZV0sCi0rICAgIHt4bWxlbGVtZW50LCAiaXRlbSIsIFtdLEZMaXN0fS4K LSsKLStzZWFyY2goTFNlcnZlciwgRGF0YSkgLT4KLSslICAgIEFkR3JvdXAgPSBlamFiYmVyZF9j b25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfZ3JvdXAsIExTZXJ2ZXJ9KSwKLSsgICAgRmlsdGVy RGVmID0gbWFrZV9maWx0ZXIoRGF0YSksCi0rICAgIEZpbHRlclBlcnNvbiA9ICBlbGRhcDplcXVh bGl0eU1hdGNoKCJvYmplY3RDYXRlZ29yeSIsICJwZXJzb24iKSwKLSsgICAgRmlsdGVyQ29tcCA9 IGVsZGFwOmVxdWFsaXR5TWF0Y2goIm9iamVjdENsYXNzIiwgImNvbXB1dGVyIiksCi0rICAgIEZp bHRlckhpZGRlbiA9IGVsZGFwOmVxdWFsaXR5TWF0Y2goImRlc2NyaXB0aW9uIiwgImhpZGRlbiIp LAotKyUgICAgRmlsdGVyR3JvdXAgPSBlbGRhcDplcXVhbGl0eU1hdGNoKCJtZW1iZXJPZiIsIEFk R3JvdXApLAotKyAgICBGaWx0ZXJMaXZlID0gZWxkYXA6ZXF1YWxpdHlNYXRjaCgidXNlckFjY291 bnRDb250cm9sIiwgIjY2MDUwIiksCi0rICAgIEZpbHRlciA9IGVsZGFwOidhbmQnKFsKLSsJCQkg IEZpbHRlckRlZiwKLSsJCQkgIEZpbHRlclBlcnNvbiwKLSslCQkJICBGaWx0ZXJHcm91cCwKLSsJ CQkgIGVsZGFwOidub3QnKEZpbHRlckNvbXApLAotKwkJCSAgZWxkYXA6J25vdCcoRmlsdGVySGlk ZGVuKSwKLSsJCQkgIGVsZGFwOidub3QnKEZpbHRlckxpdmUpXSksCi0rICAgIEJhc2UgPSBlamFi YmVyZF9jb25maWc6Z2V0X2xvY2FsX29wdGlvbih7YWRfYmFzZSwgTFNlcnZlcn0pLAotKyAgICBV SURBdHRyID0gZWphYmJlcmRfY29uZmlnOmdldF9sb2NhbF9vcHRpb24oe2FkX3VpZGF0dHIsIExT ZXJ2ZXJ9KSwKLSsgICAgY2FzZSBlbGRhcDpzZWFyY2goIm1vZF92Y2FyZF9hZCIsW3tiYXNlLCBC YXNlfSwKLSsJCQkJCXtmaWx0ZXIsIEZpbHRlcn0sCi0rCQkJCQl7YXR0cmlidXRlcywgW119XSkg b2YKLSsJI2VsZGFwX3NlYXJjaF9yZXN1bHR7ZW50cmllcyA9IEV9IC0+Ci0rCSAgICBbWCB8fCBY IDwtIEUsCi0rCQkgIGVqYWJiZXJkX2F1dGg6aXNfdXNlcl9leGlzdHMoCi0rCQkgICAgbGRhcF9n ZXRfdmFsdWUoWCwgVUlEQXR0ciksIExTZXJ2ZXIpXTsKLSsJRXJyIC0+Ci0rCSAgICA/RVJST1Jf TVNHKCJCYWQgc2VhcmNoOiB+cCIsIFtbTFNlcnZlciwge2Jhc2UsIEJhc2V9LAotKwkJCQkJe2Zp bHRlciwgRmlsdGVyfSwKLSsJCQkJCXthdHRyaWJ1dGVzLCBbXX1dXSkKLSsgICAgZW5kLgotKwot KwotK21ha2VfZmlsdGVyKERhdGEpIC0+Ci0rICAgIEZpbHRlciA9IFtYIHx8IFggPC0gbGlzdHM6 bWFwKGZ1bihSKSAtPiAKLSsJCQkJCSAgbWFrZV9hc3NlcnRpb24oUikKLSsJCQkJICBlbmQsIERh dGEpLAotKwkJICAgWCAvPSBub25lIF0sCi0rICAgIGNhc2UgRmlsdGVyIG9mCi0rCVtGXSAtPiAK LSsJICAgIEY7Ci0rCV8gLT4KLSsJICAgIGVsZGFwOidhbmQnKEZpbHRlcikKLSsgICAgZW5kLgot KwotKwotK21ha2VfYXNzZXJ0aW9uKCJnaXZlbk5hbWUiLFZhbHVlKSAtPgotKyAgICBlbGRhcDpz dWJzdHJpbmdzKCJnaXZlbk5hbWUiLFt7YW55LFZhbHVlfV0pOwotKwotK21ha2VfYXNzZXJ0aW9u KCJjbiIsVmFsdWUpIC0+Ci0rICAgIGVsZGFwOnN1YnN0cmluZ3MoImNuIixbe2FueSxWYWx1ZX1d KTsKLSsKLSttYWtlX2Fzc2VydGlvbigic24iLFZhbHVlKSAtPgotKyAgICBlbGRhcDpzdWJzdHJp bmdzKCJzbiIsW3thbnksVmFsdWV9XSk7Ci0rCi0rbWFrZV9hc3NlcnRpb24oQXR0ciwgVmFsdWUp IC0+Ci0rICAgIGVsZGFwOmVxdWFsaXR5TWF0Y2goQXR0cixWYWx1ZSkuCi0rCi0rbWFrZV9hc3Nl cnRpb24oe1NWYXIsIFtWYWxdfSkgLT4KLSsgICAgTEF0dHIgPSBsZGFwX2F0dHJpYnV0ZShTVmFy KSwKLSsgICAgY2FzZSBMQXR0ciBvZgotKwlub25lIC0+Ci0rCSAgICBub25lOwotKwlfIC0+Ci0r CSAgICBpZiAKLSsJCWlzX2xpc3QoVmFsKSBhbmQgKFZhbCAvPSAiIikgLT4KLSsJCSAgICBtYWtl X2Fzc2VydGlvbihMQXR0cixWYWwpOwotKwkJdHJ1ZSAtPgotKwkJICAgIG5vbmUKLSsJICAgIGVu ZAotKyAgICBlbmQuCi0rCi0rbGRhcF9hdHRyaWJ1dGUoInVzZXIiKSAtPgotKyAgICAic2FtYWNj b3VudG5hbWUiOwotKwotK2xkYXBfYXR0cmlidXRlKCJmbiIpIC0+Ci0rICAgICJjbiI7Ci0rCi0r bGRhcF9hdHRyaWJ1dGUoImZhbWlseSIpIC0+Ci0rICAgICJzbiI7Ci0rCi0rbGRhcF9hdHRyaWJ1 dGUoImdpdmVuIikgLT4KLSsgICAgImdpdmVuTmFtZSI7Ci0rCi0rbGRhcF9hdHRyaWJ1dGUoIm1p ZGRsZSIpIC0+Ci0rICAgICJpbml0aWFscyI7Ci0rCi0rbGRhcF9hdHRyaWJ1dGUoImVtYWlsIikg LT4KLSsgICAgIm1haWwiOwotKwotK2xkYXBfYXR0cmlidXRlKCJvcmduYW1lIikgLT4KLSsgICAg ImNvbXBhbnkiOwotKwotK2xkYXBfYXR0cmlidXRlKCJvcmd1bml0IikgLT4KLSsgICAgImRlcGFy dG1lbnQiOwotKwotK2xkYXBfYXR0cmlidXRlKF8pIC0+Ci0rICAgIG5vbmUuCi0rCi0rcmVtb3Zl X3VzZXIoVXNlcikgLT4KLSsgICAgdHJ1ZS4KLSsKLS0tIAotMS43LjEwLjEKLQoKZGlmZiAtLWdp dCBhL2VqYWJiZXJkLTAwMTAtRGlzYWJsZS1JTkVUX0RJU1RfSU5URVJGQUNFLWJ5LWRlZmF1bHQu cGF0Y2ggYi9lamFiYmVyZC0wMDEwLURpc2FibGUtSU5FVF9ESVNUX0lOVEVSRkFDRS1ieS1kZWZh dWx0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMGJlNmNjLi4wMDAwMDAw Ci0tLSBhL2VqYWJiZXJkLTAwMTAtRGlzYWJsZS1JTkVUX0RJU1RfSU5URVJGQUNFLWJ5LWRlZmF1 bHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1Gcm9tIGE1ZTEwNDJjYTMz OGM4MWE1Yzc1ZWYyYzhkMmZiNGNhYjhiOTM1ZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBQZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgotRGF0ZTogU2F0LCAxOCBK dW4gMjAxMSAyMzoyNDoyOCArMDQwMAotU3ViamVjdDogW1BBVENIIDEwLzEwXSBEaXNhYmxlIElO RVRfRElTVF9JTlRFUkZBQ0UgYnkgZGVmYXVsdAotCi1TaWduZWQtb2ZmLWJ5OiBQZXRlciBMZW1l bmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPgotLS0tCi0gc3JjL2VqYWJiZXJkY3RsLmNmZy5leGFt cGxlIHwgICAgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2VqYWJiZXJkY3RsLmNmZy5leGFtcGxlIGIvc3JjL2Vq YWJiZXJkY3RsLmNmZy5leGFtcGxlCi1pbmRleCBiNzIwNThhLi41ZWU0M2NmIDEwMDY0NAotLS0t IGEvc3JjL2VqYWJiZXJkY3RsLmNmZy5leGFtcGxlCi0rKysgYi9zcmMvZWphYmJlcmRjdGwuY2Zn LmV4YW1wbGUKLUBAIC01OSw3ICs1OSw3IEBACi0gIwotICMgRGVmYXVsdDogezEyNywwLDAsMX0K LSAjCi0tSU5FVF9ESVNUX0lOVEVSRkFDRT17MTI3LDAsMCwxfQotKyNJTkVUX0RJU1RfSU5URVJG QUNFPXsxMjcsMCwwLDF9Ci0gCi0gIy4KLSAjJyBFUkxfRVBNRF9BRERSRVNTOiBJUCBhZGRyZXNz ZXMgd2hlcmUgZXBtZCBsaXN0ZW5zIGZvciBjb25uZWN0aW9ucwotLS0gCi0xLjcuMTAuMQotCgpk aWZmIC0tZ2l0IGEvZWphYmJlcmQuc3BlYyBiL2VqYWJiZXJkLnNwZWMKaW5kZXggZGYwMDkzNy4u MDVjNGNlYSAxMDA2NDQKLS0tIGEvZWphYmJlcmQuc3BlYworKysgYi9lamFiYmVyZC5zcGVjCkBA IC0zLDE1ICszLDE1IEBACiAjIEN1cnJlbnRseSwgaGV2ZWEgYXZhaWxhYmxlIG9ubHkgaW4gRmVk b3JhCiAlaWYgMCV7P2ZlZG9yYX0KICMgTm8gaGV2ZWEgZm9yIHBwYzY0Ci0jIHNlZSBodHRwczov L2J1Z3ppbGxhLnJlZGhhdC5jb20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTI1MDI1MwotJWlm bmFyY2ggcHBjNjQgczM5MCBzMzkweCAle2FybX0KKyMgc2VlIGh0dHBzOi8vYnVnemlsbGEucmVk aGF0LmNvbS9idWd6aWxsYS8yNTAyNTMKKyVpZm5hcmNoIHBwYzY0IHMzOTAgczM5MHggc3BhcmM2 NAogJWRlZmluZSB3aXRoX2hldmVhIDEKICVlbmRpZgogJWVuZGlmCiAKIE5hbWU6ICAgICAgICAg ICBlamFiYmVyZAogVmVyc2lvbjogICAgICAgIDIuMS4xMQotUmVsZWFzZTogICAgICAgIDElez9k aXN0fQorUmVsZWFzZTogICAgICAgIDIlez9kaXN0fQogU3VtbWFyeTogICAgICAgIEEgZGlzdHJp YnV0ZWQsIGZhdWx0LXRvbGVyYW50IEphYmJlci9YTVBQIHNlcnZlcgogCiBHcm91cDogICAgICAg ICAgQXBwbGljYXRpb25zL0ludGVybmV0CkBAIC0zMywyNCArMzMsMjAgQEAgU291cmNlMTE6ICAg ICAgIGVqYWJiZXJkLnBhbQogCiAjIFVzZSBlamFiYmVyZCBhcyBhbiBleGFtcGxlIGZvciBQQU0g c2VydmljZSBuYW1lIChmZWRvcmEvZXBlbC1zcGVjaWZpYykKIFBhdGNoMTogZWphYmJlcmQtMDAw MS1GaXgtUEFNLXNlcnZpY2UtZXhhbXBsZS1uYW1lLXRvLW1hdGNoLWFjdHVhbC1vbmUucGF0Y2gK LSMgSW50cm9kdWNpbmcgbW9kX2N0bGV4dHJhCi1QYXRjaDI6IGVqYWJiZXJkLTAwMDItQWRkLW1v ZF9jdGxleHRyYS1hcy1hbi1lamFiYmVyZC1tb2R1bGUucGF0Y2gKICMgZml4ZWQgZGVsYXlzIGlu IHMycyBjb25uZWN0aW9ucwotUGF0Y2gzOiBlamFiYmVyZC0wMDAzLUZpeGVkLWRlbGF5cy1pbi1z MnMtY29ubmVjdGlvbnMucGF0Y2gKK1BhdGNoMjogZWphYmJlcmQtMDAwMi1GaXhlZC1kZWxheXMt aW4tczJzLWNvbm5lY3Rpb25zLnBhdGNoCiAjIEludHJvZHVjaW5nIG1vZF9hZG1pbl9leHRyYQot UGF0Y2g0OiBlamFiYmVyZC0wMDA0LUludHJvZHVjaW5nLW1vZF9hZG1pbl9leHRyYS5wYXRjaAor UGF0Y2gzOiBlamFiYmVyZC0wMDAzLUludHJvZHVjaW5nLW1vZF9hZG1pbl9leHRyYS5wYXRjaAog IyBCWiMgNDM5NTgzLCA0NTIzMjYsIDQ1MTU1NCwgNDY1MTk2LCA1MDIzNjEgKGZlZG9yYS9lcGVs LXNwZWNpZmljKQotUGF0Y2g1OiBlamFiYmVyZC0wMDA1LUZlZG9yYS1zcGVjaWZpYy1jaGFuZ2Vz LXRvLWVqYWJiZXJkY3RsLnBhdGNoCitQYXRjaDQ6IGVqYWJiZXJkLTAwMDQtRmVkb3JhLXNwZWNp ZmljLWNoYW5nZXMtdG8tZWphYmJlcmRjdGwucGF0Y2gKICMgRml4IHNvLWxpYiBwZXJtaXNzaW9u cyB3aGlsZSBpbnN0YWxsaW5nIChmZWRvcmEvZXBlbC1zcGVjaWZpYykKLVBhdGNoNjoJZWphYmJl cmQtMDAwNi1JbnN0YWxsLS5zby1vYmplY3RzLXdpdGgtMDc1NS1wZXJtaXNzaW9ucy5wYXRjaAor UGF0Y2g1OgllamFiYmVyZC0wMDA1LUluc3RhbGwtLnNvLW9iamVjdHMtd2l0aC0wNzU1LXBlcm1p c3Npb25zLnBhdGNoCiAjIFdpbGwgYmUgcHJvcG9zZWQgZm9yIGluY2x1c2lvbiBpbnRvIHVwc3Ry ZWFtCi1QYXRjaDc6IGVqYWJiZXJkLTAwMDctVXNlLXZlcnNpb25lZC1kaXJlY3RvcnktZm9yLXN0 b3JpbmctZG9jcy5wYXRjaAorUGF0Y2g2OiBlamFiYmVyZC0wMDA2LVVzZS12ZXJzaW9uZWQtZGly ZWN0b3J5LWZvci1zdG9yaW5nLWRvY3MucGF0Y2gKICMgQmFja3BvcnRlZCBmcm9tIHVwc3RyZWFt Ci1QYXRjaDg6IGVqYWJiZXJkLTAwMDgtU3VwcG9ydC1TQVNMLUdTU0FQSS1hdXRoZW50aWNhdGlv bi10aGFua3MtdG8tTWlrYWVsLS5wYXRjaAotIyBJbnRyb2R1Y2Ugb2xkIEFEIHN0dWZmCi1QYXRj aDk6IGVqYWJiZXJkLTAwMDktQWRkZWQtb2xkLW1vZHVsZXMtZm9yLUFjdGl2ZS1EaXJlY3Rvcnku cGF0Y2gKK1BhdGNoNzogZWphYmJlcmQtMDAwNy1TdXBwb3J0LVNBU0wtR1NTQVBJLWF1dGhlbnRp Y2F0aW9uLXRoYW5rcy10by1NaWthZWwtLnBhdGNoCiAjIERpc2FibGUgSVAgcmVzdHJpY3Rpb24g Zm9yIGVqYWJiZXJkY3RsIChzZWVtcyB0aGF0IGl0IGRvZXNuJ3Qgd29yayB3ZWxsKQotUGF0Y2gx MDogZWphYmJlcmQtMDAxMC1EaXNhYmxlLUlORVRfRElTVF9JTlRFUkZBQ0UtYnktZGVmYXVsdC5w YXRjaAorUGF0Y2g4OiBlamFiYmVyZC0wMDA4LURpc2FibGUtSU5FVF9ESVNUX0lOVEVSRkFDRS1i eS1kZWZhdWx0LnBhdGNoCiAKIEJ1aWxkUm9vdDogICAgICAle190bXBwYXRofS8le25hbWV9LSV7 dmVyc2lvbn0tJXtyZWxlYXNlfS1yb290LSUoJXtfX2lkX3V9IC1uKQogCkBAIC0xMTYsMTUgKzEx MiwxMyBAQCBEb2N1bWVudGF0aW9uIGZvciBlamFiYmVyZC4KICVzZXR1cCAtcQogCiAlcGF0Y2gx IC1wMSAtYiAucGFtX25hbWUKLSVwYXRjaDIgLXAxIC1iIC5tb2RfY3RsZXh0cmEKLSVwYXRjaDMg LXAxIC1iIC5zMnNfZGVsYXlzCi0lcGF0Y2g0IC1wMSAtYiAubW9kX2FkbWluX2V4dHJhCi0lcGF0 Y2g1IC1wMSAtYiAuZmVkb3JhX3NwZWNpZmljCi0lcGF0Y2g2IC1wMSAtYiAuZml4X3Blcm1zCi0l cGF0Y2g3IC1wMSAtYiAudmVyc2lvbmVkX2RvY2RpcgotJXBhdGNoOCAtcDEgLWIgLmdzc2FwaQot JXBhdGNoOSAtcDEgLWIgLmFkX3N0dWZmCi0lcGF0Y2gxMCAtcDEgLWIgLmRpc2FibGVfaXBfcmVz dHJpY3Rpb25fZm9yX2VqYWJiZXJkY3RsCislcGF0Y2gyIC1wMSAtYiAuczJzX2RlbGF5cworJXBh dGNoMyAtcDEgLWIgLm1vZF9hZG1pbl9leHRyYQorJXBhdGNoNCAtcDEgLWIgLmZlZG9yYV9zcGVj aWZpYworJXBhdGNoNSAtcDEgLWIgLmZpeF9wZXJtcworJXBhdGNoNiAtcDEgLWIgLnZlcnNpb25l ZF9kb2NkaXIKKyVwYXRjaDcgLXAxIC1iIC5nc3NhcGkKKyVwYXRjaDggLXAxIC1iIC5kaXNhYmxl X2lwX3Jlc3RyaWN0aW9uX2Zvcl9lamFiYmVyZGN0bAogCiAjIEZJWE1FIGxhc3QtbWludXRlIGZp eCBmb3IgMi4xLjExIG9ubHkKIHNlZCAtaSAtZSAicywyLjEueCwyLjEuMTEsZyIgc3JjL2NvbmZp Z3VyZQpAQCAtMTM0LDcgKzEyOCw3IEBAIHRvdWNoIC1yIHNyYy9jb25maWd1cmUuYWMgc3JjL2Nv bmZpZ3VyZQogJWJ1aWxkCiBwdXNoZCBzcmMKICVjb25maWd1cmUgLS1lbmFibGUtb2RiYyAtLWVu YWJsZS1wYW0KLSMgZG9lc24ndCBidWlsZHMgb24gU01QIGN1cnJlbnRseQorIyBkb2Vzbid0IGJ1 aWxkIG9uIFNNUCBjdXJyZW50bHkKIG1ha2UKIHBvcGQKICVpZiAwJXs/d2l0aF9oZXZlYX0KQEAg LTMwNyw4ICszMDEsNiBAQCBybSAtcmYgJXtidWlsZHJvb3R9CiAKIAogJWZpbGVzCi0lZGVmYXR0 cigtLHJvb3Qscm9vdCwtKQotCiAlZGlyICV7X2RvY2Rpcn0vJXtuYW1lfS0le3ZlcnNpb259CiAl ZG9jICV7X2RvY2Rpcn0vJXtuYW1lfS0le3ZlcnNpb259L0NPUFlJTkcKIApAQCAtMzg3LDcgKzM3 OSw2IEBAIHJtIC1yZiAle2J1aWxkcm9vdH0KICVhdHRyKDc1MCxlamFiYmVyZCxlamFiYmVyZCkg JWRpciAvdmFyL2xvZy9lamFiYmVyZAogCiAlZmlsZXMgZG9jCi0lZGVmYXR0cigtLHJvb3Qscm9v dCwtKQogJWRvYyAle19kb2NkaXJ9LyV7bmFtZX0tJXt2ZXJzaW9ufS8qLmh0bWwKICVkb2MgJXtf ZG9jZGlyfS8le25hbWV9LSV7dmVyc2lvbn0vKi5wbmcKICVpZiAwJXs/d2l0aF9oZXZlYX0KQEAg LTM5Niw2ICszODcsMTAgQEAgcm0gLXJmICV7YnVpbGRyb290fQogJWRvYyAle19kb2NkaXJ9LyV7 bmFtZX0tJXt2ZXJzaW9ufS8qLnR4dAogCiAlY2hhbmdlbG9nCisqIFN1biBKdWwgMTUgMjAxMiBQ ZXRlciBMZW1lbmtvdiA8bGVtZW5rb3ZAZ21haWwuY29tPiAtIDIuMS4xMS0yCistIFVwZGF0ZWQg bW9kX0FkbWluX2V4dHJhIHRvIHdvcmsgd2l0aCBSMTVCIChzZWUgcmhieiAjODQwMDM5KQorLSBV cGRhdGVkIGxpc3Qgb2YgYXJjaGVzIHdoZXJlIHdlIGRvbid0IGhhdmUgaGV2ZWEKKwogKiBTdW4g TWF5IDA2IDIwMTIgUGV0ZXIgTGVtZW5rb3YgPGxlbWVua292QGdtYWlsLmNvbT4gLSAyLjEuMTEt MQogLSBWZXIuIDIuMS4xMQogLSBGaXhlZCBzeXN0ZW1kIGluc3RhbGxhdGlvbgo=