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: =?utf-8?b?T25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+?= To: git-commits@fedoraproject.org Subject: [rpms/rpkg] 1.70-1: Patch: added layout module to deal with different package layouts Date: Mon, 10 Aug 2026 21:44:15 GMT Message-ID: <178639825517.1.7709173975332351660.rpms-rpkg-30dab817d151@fedoraproject.org> List-ID: X-Git-Repo: rpms/rpkg X-Git-Branch: 1.70-1 X-Git-Rev: 30dab817d1515bc8838e1eba10344c188fe8de57 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcnBrZwogICAgICAgICAgICBCcmFuY2ggOiAxLjcwLTEKICAgICAgICAgICAg Q29tbWl0IDogMzBkYWI4MTdkMTUxNWJjODgzOGUxZWJhMTAzNDRjMTg4ZmU4ZGU1NwogICAgICAg ICAgICBBdXRob3IgOiBPbmTFmWVqIE5vc2VrIDxvbm9zZWtAcmVkaGF0LmNvbT4KICAgICAgICAg ICAgRGF0ZSAgIDogMjAyMC0wOC0wN1QxNToxNzoyMyswMDowMAogICAgICAgICAgICBTdGF0cyAg OiArNjcyLy0yIGluIDMgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczovL3NyYy5m ZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3Jwa2cvYy8zMGRhYjgxN2QxNTE1YmM4ODM4ZTFlYmExMDM0 NGMxODhmZThkZTU3P2JyYW5jaD0xLjcwLTEKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAg UGF0Y2g6IGFkZGVkIGxheW91dCBtb2R1bGUgdG8gZGVhbCB3aXRoIGRpZmZlcmVudCBwYWNrYWdl IGxheW91dHMKClNpZ25lZC1vZmYtYnk6IE9uZMWZZWogTm9zZWsgPG9ub3Nla0ByZWRoYXQuY29t PgoKLS0tCmRpZmYgLS1naXQgYS8wMDA0LWFkZGVkLWEtZXh0ZW5kYWJsZS1sYXlvdXQtbW9kdWxl LXRvLWRlYWwtd2l0aC1kaWZmZXIucGF0Y2ggYi8wMDA0LWFkZGVkLWEtZXh0ZW5kYWJsZS1sYXlv dXQtbW9kdWxlLXRvLWRlYWwtd2l0aC1kaWZmZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMDg4NzAyYQotLS0gL2Rldi9udWxsCisrKyBiLzAwMDQtYWRkZWQtYS1l eHRlbmRhYmxlLWxheW91dC1tb2R1bGUtdG8tZGVhbC13aXRoLWRpZmZlci5wYXRjaApAQCAtMCww ICsxLDYzMCBAQAorRnJvbSBhOTViYWQyZWQ1N2U1MDBhOWY5YzFlYzUwZDFjNWNkYWNmZmNhNWY0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogb2RyYSA8MjE4MzUwNitvZHJhQHVzZXJz Lm5vcmVwbHkuZ2l0aHViLmNvbT4KK0RhdGU6IE1vbiwgMjAgSnVsIDIwMjAgMTU6NDE6MzEgLTAz MDAKK1N1YmplY3Q6IFtQQVRDSF0gYWRkZWQgYSBleHRlbmRhYmxlIGxheW91dCBtb2R1bGUgdG8g ZGVhbCB3aXRoIGRpZmZlcmVudAorIHBhY2thZ2UgbGF5b3V0cyB3aXRoaW4gdGhlIENMSQorCitT aWduZWQtb2ZmLWJ5OiBscm9zc2V0dCA8bHJvc3NldHRAcmVkaGF0LmNvbT4KKy0tLQorIHB5cnBr Zy9fX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMxICsrKystLS0KKyBw eXJwa2cvZXJyb3JzLnB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArCisgcHly cGtnL2xheW91dC9fX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICAgIHwgMzAgKysrKysrCisg cHlycGtnL2xheW91dC9iYXNlLnB5ICAgICAgICAgICAgICAgICAgICAgICAgIHwgOTMgKysrKysr KysrKysrKysrKysrKworIHB5cnBrZy9sYXlvdXQvbGF5b3V0cy5weSAgICAgICAgICAgICAgICAg ICAgICB8IDgwICsrKysrKysrKysrKysrKysKKyAuLi4vZml4dHVyZXMvbGF5b3V0cy9kZWFkLW1v ZHVsZS9kZWFkLm1vZHVsZSAgfCAgMAorIC4uLi9maXh0dXJlcy9sYXlvdXRzL2RlYWQtbW9kdWxl L2Zvb2Jhci5zcGVjICB8ICAwCisgLi4uL2xheW91dHMvZGVhZC1wYWNrYWdlL2RlYWQucGFja2Fn ZSAgICAgICAgIHwgIDAKKyAuLi4vZml4dHVyZXMvbGF5b3V0cy9kZWFkLXBhY2thZ2UvZm9vYmFy LnNwZWMgfCAgMAorIHRlc3RzL2ZpeHR1cmVzL2xheW91dHMvZGlzdC1naXQvZm9vYmFyLnNwZWMg ICB8ICAwCisgdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9kaXN0LWdpdC9mb29iYXIudHh0ICAgIHwg IDAKKyB0ZXN0cy9maXh0dXJlcy9sYXlvdXRzL2Rpc3QtZ2l0L3NvdXJjZXMgICAgICAgfCAgMAor IHRlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3BlY2xlc3MvLmdpdGtlZXAgICAgICB8ICAwCisgLi4u L2xheW91dHMvc3JwbS1kZWFkLW1vZHVsZS8uZm9vYmFyLm1ldGFkYXRhIHwgIDAKKyAuLi4vU09V UkNFUy9mb29iYXItZmlyc3Rjb21taXQucGF0Y2ggICAgICAgICAgfCAgMAorIC4uLi9zcnBtLWRl YWQtbW9kdWxlL1NQRUNTL2Zvb2Jhci5zcGVjICAgICAgICB8ICAwCisgLi4uL2xheW91dHMvc3Jw bS1kZWFkLW1vZHVsZS9kZWFkLm1vZHVsZSAgICAgIHwgIDAKKyAuLi4vc3JwbS1kZWFkLXBhY2th Z2UvLmZvb2Jhci5tZXRhZGF0YSAgICAgICAgfCAgMAorIC4uLi9TT1VSQ0VTL2Zvb2Jhci1maXJz dGNvbW1pdC5wYXRjaCAgICAgICAgICB8ICAwCisgLi4uL3NycG0tZGVhZC1wYWNrYWdlL1NQRUNT L2Zvb2Jhci5zcGVjICAgICAgIHwgIDAKKyAuLi4vbGF5b3V0cy9zcnBtLWRlYWQtcGFja2FnZS9k ZWFkLnBhY2thZ2UgICAgfCAgMAorIC4uLi9zcnBtLWRlYWQtcGFja2FnZS9zcnBtLy5mb29iYXIu bWV0YWRhdGEgICB8ICAwCisgLi4uL3NycG0vU09VUkNFUy9mb29iYXItZmlyc3Rjb21taXQucGF0 Y2ggICAgIHwgIDAKKyAuLi4vc3JwbS1kZWFkLXBhY2thZ2Uvc3JwbS9TUEVDUy9mb29iYXIuc3Bl YyAgfCAgMAorIC4uLi9sYXlvdXRzL3NycG0tc3BlY2xlc3MvLmZvb2Jhci5tZXRhZGF0YSAgICB8 ICAwCisgLi4uL2xheW91dHMvc3JwbS1zcGVjbGVzcy9TUEVDUy8uZ2l0a2VlcCAgICAgIHwgIDAK KyB0ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0vLmZvb2Jhci5tZXRhZGF0YSAgfCAgMAorIC4u Li9zcnBtL1NPVVJDRVMvZm9vYmFyLWZpcnN0Y29tbWl0LnBhdGNoICAgICB8ICAwCisgdGVzdHMv Zml4dHVyZXMvbGF5b3V0cy9zcnBtL1NQRUNTL2Zvb2Jhci5zcGVjIHwgIDAKKyB0ZXN0cy90ZXN0 X2NsaS5weSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMiArKystLQorIHRlc3RzL3Rl c3RfbGF5b3V0X2Rpc3RnaXQucHkgICAgICAgICAgICAgICAgICB8IDUwICsrKysrKysrKysKKyB0 ZXN0cy90ZXN0X2xheW91dF9zcnBtLnB5ICAgICAgICAgICAgICAgICAgICAgfCA0OSArKysrKysr KysrCisgMzIgZmlsZXMgY2hhbmdlZCwgMzQwIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygt KQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBweXJwa2cvbGF5b3V0L19faW5pdF9fLnB5CisgY3JlYXRl IG1vZGUgMTAwNjQ0IHB5cnBrZy9sYXlvdXQvYmFzZS5weQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBw eXJwa2cvbGF5b3V0L2xheW91dHMucHkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZml4dHVy ZXMvbGF5b3V0cy9kZWFkLW1vZHVsZS9kZWFkLm1vZHVsZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy9maXh0dXJlcy9sYXlvdXRzL2RlYWQtbW9kdWxlL2Zvb2Jhci5zcGVjCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3RzL2ZpeHR1cmVzL2xheW91dHMvZGVhZC1wYWNrYWdlL2RlYWQucGFja2Fn ZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9maXh0dXJlcy9sYXlvdXRzL2RlYWQtcGFja2Fn ZS9mb29iYXIuc3BlYworIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9maXh0dXJlcy9sYXlvdXRz L2Rpc3QtZ2l0L2Zvb2Jhci5zcGVjCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ZpeHR1cmVz L2xheW91dHMvZGlzdC1naXQvZm9vYmFyLnR4dAorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9m aXh0dXJlcy9sYXlvdXRzL2Rpc3QtZ2l0L3NvdXJjZXMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdGVz dHMvZml4dHVyZXMvbGF5b3V0cy9zcGVjbGVzcy8uZ2l0a2VlcAorIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1tb2R1bGUvLmZvb2Jhci5tZXRhZGF0 YQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1t b2R1bGUvU09VUkNFUy9mb29iYXItZmlyc3Rjb21taXQucGF0Y2gKKyBjcmVhdGUgbW9kZSAxMDA2 NDQgdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLWRlYWQtbW9kdWxlL1NQRUNTL2Zvb2Jhci5z cGVjCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFk LW1vZHVsZS9kZWFkLm1vZHVsZQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9maXh0dXJlcy9s YXlvdXRzL3NycG0tZGVhZC1wYWNrYWdlLy5mb29iYXIubWV0YWRhdGEKKyBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLWRlYWQtcGFja2FnZS9TT1VSQ0VTL2Zv b2Jhci1maXJzdGNvbW1pdC5wYXRjaAorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9maXh0dXJl cy9sYXlvdXRzL3NycG0tZGVhZC1wYWNrYWdlL1NQRUNTL2Zvb2Jhci5zcGVjCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBhY2thZ2UvZGVhZC5w YWNrYWdlCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1k ZWFkLXBhY2thZ2Uvc3JwbS8uZm9vYmFyLm1ldGFkYXRhCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBhY2thZ2Uvc3JwbS9TT1VSQ0VTL2Zvb2Jh ci1maXJzdGNvbW1pdC5wYXRjaAorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9maXh0dXJlcy9s YXlvdXRzL3NycG0tZGVhZC1wYWNrYWdlL3NycG0vU1BFQ1MvZm9vYmFyLnNwZWMKKyBjcmVhdGUg bW9kZSAxMDA2NDQgdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLXNwZWNsZXNzLy5mb29iYXIu bWV0YWRhdGEKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBt LXNwZWNsZXNzL1NQRUNTLy5naXRrZWVwCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ZpeHR1 cmVzL2xheW91dHMvc3JwbS8uZm9vYmFyLm1ldGFkYXRhCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS9TT1VSQ0VTL2Zvb2Jhci1maXJzdGNvbW1pdC5wYXRj aAorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0vU1BFQ1Mv Zm9vYmFyLnNwZWMKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvdGVzdF9sYXlvdXRfZGlzdGdp dC5weQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy90ZXN0X2xheW91dF9zcnBtLnB5CisKK2Rp ZmYgLS1naXQgYS9weXJwa2cvX19pbml0X18ucHkgYi9weXJwa2cvX19pbml0X18ucHkKK2luZGV4 IDZhMjQwMzMuLjEyNTIyNTEgMTAwNjQ0CistLS0gYS9weXJwa2cvX19pbml0X18ucHkKKysrKyBi L3B5cnBrZy9fX2luaXRfXy5weQorQEAgLTQ5LDYgKzQ5LDcgQEAgZnJvbSBweXJwa2cuc291cmNl cyBpbXBvcnQgU291cmNlc0ZpbGUKKyBmcm9tIHB5cnBrZy51dGlscyBpbXBvcnQgKGNhY2hlZF9w cm9wZXJ0eSwgZXh0cmFjdF9zcnBtLCBmaW5kX21lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgaXNfZmlsZV90cmFja2VkLCBpc19sb29rYXNpZGVfZWxpZ2libGVfZmlsZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxvZ19yZXN1bHQpCisrZnJvbSBweXJwa2cgaW1wb3J0IGxheW91 dAorIAorIGZyb20gLmdpdGlnbm9yZSBpbXBvcnQgR2l0SWdub3JlCisgCitAQCAtMjEyLDYgKzIx Myw4IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6CisgICAgICAgICBzZWxmLmJsb2NrX3JldGly ZV9ucyA9IFsncnBtcyddCisgICAgICAgICAjIEdpdCBleGNsdWRlcyBwYXR0ZXJucworICAgICAg ICAgc2VsZi5naXRfZXhjbHVkZXMgPSBnaXRfZXhjbHVkZXMgb3IgW10KKysgICAgICAgICMgTGF5 b3V0IHNldHVwCisrICAgICAgICBzZWxmLmxheW91dCA9IGxheW91dC5idWlsZChzZWxmLnBhdGgp CisgCisgICAgICMgRGVmaW5lIHByb3BlcnRpZXMgaGVyZQorICAgICAjIFByb3BlcnRpZXMgYWxs b3cgdXMgdG8gImxhenkgbG9hZCIgdmFyaW91cyBhdHRyaWJ1dGVzLCB3aGljaCBhbHNvIG1lYW5z CitAQCAtNzU5LDE0ICs3NjIsMTYgQEAgY2xhc3MgQ29tbWFuZHMob2JqZWN0KToKKyAgICAgICAg ICAgICByYWlzZSBycGtnRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHRoZSBiYXNlIE9TIHZlciBmcm9t IGJyYW5jaCBuYW1lJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICVzLiBDb25zaWRl ciB1c2luZyAtLXJlbGVhc2Ugb3B0aW9uJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuYnJhbmNoX21lcmdlKQorKyAgICAgICAgaWYgc2VsZi5sYXlvdXQgaXMgTm9uZToKKysg ICAgICAgICAgICByYWlzZSBycGtnRXJyb3IoJ1VuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgbG9hZGlu ZyB0aGUgcGFja2FnZS4nKQorICAgICAgICAgc2VsZi5fZGlzdHZhciwgc2VsZi5fZGlzdHZhbCA9 IG9zdmVyLnNwbGl0KCctJykKKyAgICAgICAgIHNlbGYuX2Rpc3R2YWwgPSBzZWxmLl9kaXN0dmFs LnJlcGxhY2UoJy4nLCAnXycpCisgICAgICAgICBzZWxmLl9kaXN0dGFnID0gJ2VsJXMnICUgc2Vs Zi5fZGlzdHZhbAorLSAgICAgICAgc2VsZi5fcnBtZGVmaW5lcyA9IFsiLS1kZWZpbmUgJ19zb3Vy Y2VkaXIgJXMnIiAlIHNlbGYucGF0aCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0t ZGVmaW5lICdfc3BlY2RpciAlcyciICUgc2VsZi5wYXRoLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiLS1kZWZpbmUgJ19idWlsZGRpciAlcyciICUgc2VsZi5wYXRoLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiLS1kZWZpbmUgJ19zcmNycG1kaXIgJXMnIiAlIHNlbGYucGF0 aCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZGVmaW5lICdfcnBtZGlyICVzJyIg JSBzZWxmLnBhdGgsCisrICAgICAgICBzZWxmLl9ycG1kZWZpbmVzID0gWyItLWRlZmluZSAnX3Nv dXJjZWRpciAlcyciICUgc2VsZi5sYXlvdXQuc291cmNlZGlyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiLS1kZWZpbmUgJ19zcGVjZGlyICVzJyIgJSBzZWxmLmxheW91dC5zcGVjZGly LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1kZWZpbmUgJ19idWlsZGRpciAlcyci ICUgc2VsZi5sYXlvdXQuYnVpbGRkaXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt LWRlZmluZSAnX3NyY3JwbWRpciAlcyciICUgc2VsZi5sYXlvdXQuc3JjcnBtZGlyLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLS1kZWZpbmUgJ19ycG1kaXIgJXMnIiAlIHNlbGYubGF5 b3V0LnJwbWRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZGVmaW5lICdkaXN0 IC4lcyciICUgc2VsZi5fZGlzdHRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0t ZGVmaW5lICclcyAlcyciICUgKHNlbGYuX2Rpc3R2YXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9kaXN0dmFsLnNwbGl0KCdfJylbMF0p LAorQEAgLTc4NCwxMSArNzg5LDE0IEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6CisgICAgIGRl ZiBsb2FkX3NwZWMoc2VsZik6CisgICAgICAgICAiIiJUaGlzIHNldHMgdGhlIHNwZWMgYXR0cmli dXRlIiIiCisgCisrICAgICAgICBpZiBzZWxmLmxheW91dCBpcyBOb25lOgorKyAgICAgICAgICAg IHJhaXNlIHJwa2dFcnJvcignU3BlYyBmaWxlIGlzIG5vdCBhdmFpbGFibGUnKQorKworICAgICAg ICAgaWYgc2VsZi5pc19yZXRpcmVkKCk6CisgICAgICAgICAgICAgcmFpc2UgcnBrZ0Vycm9yKCdU aGlzIHBhY2thZ2Ugb3IgbW9kdWxlIGlzIHJldGlyZWQuIFRoZSBhY3Rpb24gaGFzIHN0b3BwZWQu JykKKyAKKyAgICAgICAgICMgR2V0IGEgbGlzdCBvZiBmaWxlcyBpbiB0aGUgcGF0aCB3ZSdyZSBs b29raW5nIGF0CistICAgICAgICBmaWxlcyA9IG9zLmxpc3RkaXIoc2VsZi5wYXRoKQorKyAgICAg ICAgZmlsZXMgPSBvcy5saXN0ZGlyKHNlbGYubGF5b3V0LnNwZWNkaXIpCisgICAgICAgICAjIFNl YXJjaCB0aGUgZmlsZXMgZm9yIHRoZSBmaXJzdCBvbmUgdGhhdCBlbmRzIHdpdGggIi5zcGVjIgor ICAgICAgICAgZm9yIGYgaW4gZmlsZXM6CisgICAgICAgICAgICAgaWYgZi5lbmRzd2l0aCgnLnNw ZWMnKSBhbmQgbm90IGYuc3RhcnRzd2l0aCgnLicpOgorQEAgLTEwMTUsNyArMTAyMyw5IEBAIGNs YXNzIENvbW1hbmRzKG9iamVjdCk6CisgCisgICAgIEBwcm9wZXJ0eQorICAgICBkZWYgc291cmNl c19maWxlbmFtZShzZWxmKToKKy0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5wYXRo LCAnc291cmNlcycpCisrICAgICAgICBpZiBzZWxmLmxheW91dCBpcyBOb25lOgorKyAgICAgICAg ICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAnc291cmNlcycpCisrICAgICAgICBy ZXR1cm4gb3MucGF0aC5qb2luKHNlbGYucGF0aCwgc2VsZi5sYXlvdXQuc291cmNlc19maWxlX3Rl bXBsYXRlKQorIAorICAgICBAcHJvcGVydHkKKyAgICAgZGVmIG9zYnNfY29uZmlnX2ZpbGVuYW1l KHNlbGYpOgorQEAgLTMxODgsMTIgKzMxOTgsNyBAQCBjbGFzcyBDb21tYW5kcyhvYmplY3QpOgor ICAgICAgICAgVGhlIHN0YXRlIGlzIGluZGljYXRlZCBieSBwcmVzZW50IG9mIGZpbGVzICdkZWFk LnBhY2thZ2UnCisgICAgICAgICBvciAnZGVhZC5tb2R1bGUnLgorICAgICAgICAgIiIiCistICAg ICAgICBtYXJrZXIgPSAnZGVhZC5wYWNrYWdlJworLSAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUo b3MucGF0aC5qb2luKHNlbGYucGF0aCwgbWFya2VyKSk6CistICAgICAgICAgICAgcmV0dXJuIG1h cmtlcgorLSAgICAgICAgbWFya2VyID0gJ2RlYWQubW9kdWxlJworLSAgICAgICAgaWYgb3MucGF0 aC5pc2ZpbGUob3MucGF0aC5qb2luKHNlbGYucGF0aCwgbWFya2VyKSk6CistICAgICAgICAgICAg cmV0dXJuIG1hcmtlcgorKyAgICAgICAgcmV0dXJuIHNlbGYubGF5b3V0LmlzX3JldGlyZWQoKQor IAorICAgICBkZWYgcmV0aXJlKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICAgIiIiRGVsZXRlIGFs bCB0cmFja2VkIGZpbGVzIGFuZCBjb21taXQgYSBuZXcgZGVhZC5wYWNrYWdlIGZpbGUgZm9yIHJw bXMKK2RpZmYgLS1naXQgYS9weXJwa2cvZXJyb3JzLnB5IGIvcHlycGtnL2Vycm9ycy5weQoraW5k ZXggMTM3OGJmMi4uNDliNzFkNCAxMDA2NDQKKy0tLSBhL3B5cnBrZy9lcnJvcnMucHkKKysrKyBi L3B5cnBrZy9lcnJvcnMucHkKK0BAIC02MiwzICs2Miw4IEBAIGNsYXNzIFVwbG9hZEVycm9yKHJw a2dFcnJvcik6CisgCisgICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKKyAgICAgICAgIHJldHVy biBzaXgudGV4dF90eXBlKHNlbGYubWVzc2FnZSkKKysKKysKKytjbGFzcyBMYXlvdXRFcnJvcihy cGtnRXJyb3IpOgorKyAgICAiIiJSYWlzZWQgd2hlbiBzb21ldGhpbmcgd2VudCB3cm9uZyB3aGls ZSBwYXJzaW5nL2xvYWRpbmcgYSBsYXlvdXQiIiIKKysgICAgcGFzcworZGlmZiAtLWdpdCBhL3B5 cnBrZy9sYXlvdXQvX19pbml0X18ucHkgYi9weXJwa2cvbGF5b3V0L19faW5pdF9fLnB5CituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYmRiMmE3OQorLS0tIC9kZXYvbnVsbAor KysrIGIvcHlycGtnL2xheW91dC9fX2luaXRfXy5weQorQEAgLTAsMCArMSwzMCBAQAorKyMgQ29w eXJpZ2h0IChjKSAyMDE1IC0gUmVkIEhhdCBJbmMuCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKysj IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZQorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91cgorKyMgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4gIFNlZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwgZm9yCisrIyB0 aGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlLgorKworKyIiInBhY2thZ2UgbGF5b3V0IG1hbmFn ZW1lbnQiIiIKKysKKysKKytmcm9tIHB5cnBrZy5lcnJvcnMgaW1wb3J0IExheW91dEVycm9yCisr ZnJvbSAuYmFzZSBpbXBvcnQgTWV0YUxheW91dAorK2Zyb20gLmxheW91dHMgaW1wb3J0IERpc3RH aXRMYXlvdXQsIFNSUE1MYXlvdXQgIyBub3FhCisrCisrCisrZGVmIGJ1aWxkKHBhdGgpOgorKyAg ICAiIiIKKysgICAgVHJpZXMgdG8gY3JlYXRlIGEgbGF5b3V0IGluc3RhbmNlIGJhc2VkIG9uIE1l dGFMYXlvdXQuX2xheW91dHMKKysgICAgYW5kIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIGluIHRo ZSBmaXJzdCBzdWNjZXNzZnVsbCBhdHRlbXB0IHRvCisrICAgIGNyZWF0ZSBhIG5ldyBvYmplY3Qg ZnJvbSB0aGUgTWV0YUxheW91dC5fbGF5b3V0cyBsaXN0LgorKworKyAgICBSZXR1cm5zIE5vbmUg aWYgbm8gbGF5b3V0cyBjYW4gYmUgY3JlYXRlZC4KKysgICAgIiIiCisrICAgIGZvciBsYXlvdXQg aW4gTWV0YUxheW91dC5fbGF5b3V0czoKKysgICAgICAgIHRyeToKKysgICAgICAgICAgICByZXR1 cm4gbGF5b3V0LmZyb21fcGF0aChwYXRoKQorKyAgICAgICAgZXhjZXB0IExheW91dEVycm9yOgor KyAgICAgICAgICAgIGNvbnRpbnVlCisrICAgIHJldHVybiBOb25lCitkaWZmIC0tZ2l0IGEvcHly cGtnL2xheW91dC9iYXNlLnB5IGIvcHlycGtnL2xheW91dC9iYXNlLnB5CituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZGIzMDU0MAorLS0tIC9kZXYvbnVsbAorKysrIGIvcHly cGtnL2xheW91dC9iYXNlLnB5CitAQCAtMCwwICsxLDkzIEBACisrIyBDb3B5cmlnaHQgKGMpIDIw MTUgLSBSZWQgSGF0IEluYy4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorKyMgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl CisrIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyCisrIyBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLiAgU2VlIGh0 dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC9ncGwuaHRtbCBmb3IKKysjIHRoZSBmdWxsIHRleHQg b2YgdGhlIGxpY2Vuc2UuCisrCisrIiIiYmFzZSBhbmQgbWV0YSBwYWNrYWdlIGxheW91dCBjbGFz c2VzIiIiCisrCisrCisraW1wb3J0IG9zCisraW1wb3J0IGFiYworK2Zyb20gYWJjIGltcG9ydCBh YnN0cmFjdG1ldGhvZCwgQUJDTWV0YQorKworK2ltcG9ydCBzaXgKKysKKytmcm9tIHB5cnBrZy5l cnJvcnMgaW1wb3J0IExheW91dEVycm9yCisrCisrCisraWYgc2l4LlBZMjoKKysgICAgQUJDID0g YWJjLkFCQ01ldGEoJ0FCQycsIChvYmplY3QsKSwgeydfX3Nsb3RzX18nOiAoKX0pCisrZWxzZToK KysgICAgQUJDID0gYWJjLkFCQworKworKworK2NsYXNzIE1ldGFMYXlvdXQodHlwZSk6CisrICAg ICIiIgorKyAgICBMYXlvdXQgbWV0YSBjbGFzcyB0aGF0IGtlZXBzIHRyYWNrIG9mIGFsbCBsYXlv dXQgc3ViY2xhc3Nlcy4KKysKKysgICAgQ2xhc3NlcyBhcmUgYXBwZW5kZWQgaW4gdGhlIF9sYXlv dXRzIHByb3BlcnR5IGluIG9yZGVyIG9mIGNvZGUgZXhlY3V0aW9uLgorKyAgICAiIiIKKysgICAg ZGVmIF9faW5pdF9fKGNscywgbmFtZSwgYmFzZXMsIGRjdCk6CisrICAgICAgICAiIiIKKysgICAg ICAgIFRoaXMgbWV0aG9kIHJlZ2lzdGVycyBhIHN1YmNsYXNzIGluIGEgY2xhc3MgcHJvcGVydHkg KF9sYXlvdXRzKQorKyAgICAgICAgc28gdGhvc2UgY2FuIGJlIHVzZWQgYXMgdmFsaWQgbGF5b3V0 IGNsYXNzZXMuCisrICAgICAgICAiIiIKKysgICAgICAgIGlmIG5vdCBoYXNhdHRyKGNscywgJ19s YXlvdXRzJyk6CisrICAgICAgICAgICAgTWV0YUxheW91dC5fbGF5b3V0cyA9IFtdCisrICAgICAg ICBpZiBjbHMgbm90IGluIGNscy5fbGF5b3V0cyBhbmQgY2xzLl9fbmFtZV9fICE9ICdCYXNlTGF5 b3V0JzoKKysgICAgICAgICAgICBNZXRhTGF5b3V0Ll9sYXlvdXRzLmFwcGVuZChjbHMpCisrICAg ICAgICBzdXBlcihNZXRhTGF5b3V0LCBjbHMpLl9faW5pdF9fKG5hbWUsIGJhc2VzLCBkY3QpCisr CisrCisrY2xhc3MgQUJDTWV0YUxheW91dChNZXRhTGF5b3V0LCBBQkNNZXRhKToKKysgICAgIiIi CisrICAgIEEgbWl4aW4gbWV0YWNsYXNzIHRvIGVuYWJsZSB1c2FnZSBvZiBib3RoIE1ldGFsYXlv dXQgYW5kIEFCQyBtZXRhIGNsYXNzZXMgYXMgYSBzaW5nbGUgbWV0YWNsYXNzLgorKyAgICAiIiIK KysgICAgcGFzcworKworKworK0BzaXguYWRkX21ldGFjbGFzcyhBQkNNZXRhTGF5b3V0KQorK2Ns YXNzIEJhc2VMYXlvdXQoQUJDKToKKysgICAgIiIiCisrICAgIFRoZSBhYnN0cmFjdCBjbGFzcyB0 byBiZSBpbmhlcml0ZWQgZnJvbSB3aGVuIGltcGxlbWV0aW5nIHNwZWNpZmljIGxheW91dHMuCisr CisrICAgIEV2ZXJ5IHN1YmNsYXNzIHdpbGwgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgTWV0YUxheW91 dCBjbGFzcy4KKysKKysgICAgSW5oZXJpdGVkIGNsYXNzZXMgd2lsbCBiZSByZWdpc3RlcmVkIGlu IG9yZGVyIG9yIGNvZGUgZXhlY3V0aW9uLgorKyAgICAiIiIKKysgICAgcm9vdF9kaXIgPSBOb25l CisrICAgIHNvdXJjZWRpciA9IE5vbmUKKysgICAgc3BlY2RpciA9IE5vbmUKKysgICAgYnVpbGRk aXIgPSBOb25lCisrICAgIHJwbWRpciA9IE5vbmUKKysgICAgc3JjcnBtZGlyID0gTm9uZQorKyAg ICBzb3VyY2VzX2ZpbGVfdGVtcGxhdGUgPSBOb25lCisrCisrICAgIEBjbGFzc21ldGhvZAorKyAg ICBAYWJzdHJhY3RtZXRob2QKKysgICAgZGVmIGZyb21fcGF0aChjbHMsIHBhdGgpOgorKyAgICAg ICAgIiIiCisrICAgICAgICBDbGFzcyBjb25zdHJ1Y3RvciBiYXNlZCBvbiBhIHBhY2thZ2UgcGF0 aC4KKysKKysgICAgICAgIFRoaXMgbWV0aG9kJ3MgaW1wbGVtZW50YXRpb24gaXMgbWFkYXRvcnkg YW5kCisrICAgICAgICBzaG91bGQgcmV0dXJuIGFuIGluc3RhbmNlIG9mIHRoZSBvYmplY3QgY2xh c3MuCisrCisrICAgICAgICBJdCBzaG91bGQgcmV0dXJuIE5vbmUgaWYgaXQgY2FuJ3QgcmVhZCB0 aGUgcGF0aAorKyAgICAgICAgb3IgaWYgdGhlIGRpciBwYXRoIGNvbnRhaW5zIGFuIGludmFsaWQg bGF5b3V0LgorKyAgICAgICAgIiIiCisrICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0 aCk6CisrICAgICAgICAgICAgcmFpc2UgTGF5b3V0RXJyb3IoJ3BhY2thZ2UgcGF0aCBkb2VzIG5v dCBleGlzdCcpCisrCisrICAgIGRlZiBpc19yZXRpcmVkKHNlbGYpOgorKyAgICAgICAgIiIiCisr ICAgICAgICBDaGVja3Mgd2hldGhlciBwYWNrYWdlIG9yIG1vZHVsZSBpcyBhbHJlYWR5IHJldGly ZWQuCisrICAgICAgICBUaGUgc3RhdGUgaXMgaW5kaWNhdGVkIGJ5IHByZXNlbnQgb2YgZmlsZXMg J2RlYWQucGFja2FnZScKKysgICAgICAgIG9yICdkZWFkLm1vZHVsZScuCisrICAgICAgICAiIiIK KysgICAgICAgIGZvciBmbmFtZSBpbiBbJ2RlYWQucGFja2FnZScsICdkZWFkLm1vZHVsZSddOgor KyAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKCclcy8lcycgJSAoc2VsZi5yb290X2Rpciwg Zm5hbWUpKToKKysgICAgICAgICAgICAgICAgcmV0dXJuIGZuYW1lCisrICAgICAgICByZXR1cm4g Tm9uZQorZGlmZiAtLWdpdCBhL3B5cnBrZy9sYXlvdXQvbGF5b3V0cy5weSBiL3B5cnBrZy9sYXlv dXQvbGF5b3V0cy5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjk2MTQz YjkKKy0tLSAvZGV2L251bGwKKysrKyBiL3B5cnBrZy9sYXlvdXQvbGF5b3V0cy5weQorQEAgLTAs MCArMSw4MCBAQAorKyMgQ29weXJpZ2h0IChjKSAyMDE1IC0gUmVkIEhhdCBJbmMuCisrIworKyMg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkgaXQKKysjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91cgorKyMgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gIFNlZSBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQv Z3BsLmh0bWwgZm9yCisrIyB0aGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlLgorKworKyIiInBh Y2thZ2UgbGF5b3V0IGltcGxlbWVudGF0aW9uIiIiCisrCisrCisraW1wb3J0IG9zCisrCisrZnJv bSAuYmFzZSBpbXBvcnQgQmFzZUxheW91dAorK2Zyb20gcHlycGtnLmVycm9ycyBpbXBvcnQgTGF5 b3V0RXJyb3IKKysKKysKKytjbGFzcyBEaXN0R2l0TGF5b3V0KEJhc2VMYXlvdXQpOgorKyAgICAi IiIKKysgICAgVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgZGlzdC1naXQgcGFja2FnZSBsYXlvdXQu CisrICAgICIiIgorKyAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdF9kaXI9Tm9uZSwgc291cmNl c19maWxlX3RlbXBsYXRlPSdzb3VyY2VzJyk6CisrICAgICAgICAiIiIKKysgICAgICAgIERlZmF1 bHQgY2xhc3MgY29uc3RydWN0b3IgdG8gY3JlYXRlIGEgbmV3IG9iamVjdCBpbnN0YW5jZS4KKysg ICAgICAgICIiIgorKyAgICAgICAgc2VsZi5yb290X2RpciA9IHJvb3RfZGlyCisrICAgICAgICBz ZWxmLnNvdXJjZWRpciA9IHJvb3RfZGlyCisrICAgICAgICBzZWxmLnNwZWNkaXIgPSByb290X2Rp cgorKyAgICAgICAgc2VsZi5idWlsZGRpciA9IHJvb3RfZGlyCisrICAgICAgICBzZWxmLnJwbWRp ciA9IHJvb3RfZGlyCisrICAgICAgICBzZWxmLnNyY3JwbWRpciA9IHJvb3RfZGlyCisrICAgICAg ICBzZWxmLnNvdXJjZXNfZmlsZV90ZW1wbGF0ZSA9IHNvdXJjZXNfZmlsZV90ZW1wbGF0ZQorKwor KyAgICBAY2xhc3NtZXRob2QKKysgICAgZGVmIGZyb21fcGF0aChjbHMsIHBhdGgpOgorKyAgICAg ICAgIiIiCisrICAgICAgICBDcmVhdGVzIGEgbmV3IG9iamVjdCBpbnN0YW5jZSBmcm9tIGEgdmFs aWQgcGF0aCBpbiB0aGUgZmlsZSBzeXN0ZW0uCisrCisrICAgICAgICBSZXR1cm5zIG5vbmUgaWYg cGF0aCBvciBwYWNrYWdlIHN0cnVjdHVyZSBpcyBpbnZhbGlkLgorKyAgICAgICAgIiIiCisrICAg ICAgICBzdXBlcihEaXN0R2l0TGF5b3V0LCBjbHMpLmZyb21fcGF0aChwYXRoKQorKworKyAgICAg ICAgaWYgbGVuKFtmIGZvciBmIGluIG9zLmxpc3RkaXIocGF0aCkgaWYgZi5lbmRzd2l0aCgnLnNw ZWMnKV0pID09IDA6CisrICAgICAgICAgICAgcmFpc2UgTGF5b3V0RXJyb3IoJ3NwZWMgZmlsZSBu b3QgZm91bmQuJykKKysgICAgICAgIHNvdXJjZXMgPSAnc291cmNlcycgaWYgb3MucGF0aC5leGlz dHMoJyVzL3NvdXJjZXMnICUgcGF0aCkgZWxzZSBOb25lCisrICAgICAgICByZXR1cm4gY2xzKHJv b3RfZGlyPXBhdGgsIHNvdXJjZXNfZmlsZV90ZW1wbGF0ZT1zb3VyY2VzKQorKworKworK2NsYXNz IFNSUE1MYXlvdXQoQmFzZUxheW91dCk6CisrICAgICIiIgorKyAgICBUaGlzIGNsYXNzIHJlcHJl c2VudHMgYW4gZXhwb3NlZCBzb3VyY2UgUlBNIHBhY2thZ2UgbGF5b3V0LgorKyAgICAiIiIKKysg ICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3RfZGlyPU5vbmUsIHNvdXJjZXNfZmlsZV90ZW1wbGF0 ZT0nLnswLnJlcG9fbmFtZX0ubWV0YWRhdGEnKToKKysgICAgICAgICIiIgorKyAgICAgICAgRGVm YXVsdCBjbGFzcyBjb25zdHJ1Y3RvciB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IGluc3RhbmNlLgor KyAgICAgICAgIiIiCisrICAgICAgICBzZWxmLnJvb3RfZGlyID0gcm9vdF9kaXIKKysgICAgICAg IHNlbGYuc291cmNlZGlyID0gb3MucGF0aC5qb2luKHJvb3RfZGlyLCAnU09VUkNFUycpCisrICAg ICAgICBzZWxmLnNwZWNkaXIgPSBvcy5wYXRoLmpvaW4ocm9vdF9kaXIsICdTUEVDUycpCisrICAg ICAgICBzZWxmLmJ1aWxkZGlyID0gb3MucGF0aC5qb2luKHJvb3RfZGlyLCAnQlVJTEQnKQorKyAg ICAgICAgc2VsZi5ycG1kaXIgPSBvcy5wYXRoLmpvaW4ocm9vdF9kaXIsICdSUE1TJykKKysgICAg ICAgIHNlbGYuc3JjcnBtZGlyID0gb3MucGF0aC5qb2luKHJvb3RfZGlyLCAnU1JQTVMnKQorKyAg ICAgICAgc2VsZi5zb3VyY2VzX2ZpbGVfdGVtcGxhdGUgPSBzb3VyY2VzX2ZpbGVfdGVtcGxhdGUK KysKKysgICAgQGNsYXNzbWV0aG9kCisrICAgIGRlZiBmcm9tX3BhdGgoY2xzLCBwYXRoKToKKysg ICAgICAgICIiIgorKyAgICAgICAgQ3JlYXRlcyBhIG5ldyBvYmplY3QgaW5zdGFuY2UgZnJvbSBh IHZhbGlkIHBhdGggaW4gdGhlIGZpbGUgc3lzdGVtLgorKworKyAgICAgICAgUmV0dXJucyBub25l IGlmIHBhdGggb3IgcGFja2FnZSBzdHJ1Y3R1cmUgaXMgaW52YWxpZC4KKysgICAgICAgICIiIgor KyAgICAgICAgc3VwZXIoU1JQTUxheW91dCwgY2xzKS5mcm9tX3BhdGgocGF0aCkKKysKKysgICAg ICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4ocGF0aCwgJ1NQRUNTJykpOgor KyAgICAgICAgICAgIHJhaXNlIExheW91dEVycm9yKCdTUEVDUyBkaXIgbm90IGZvdW5kLicpCisr ICAgICAgICBpZiBsZW4oW2YgZm9yIGYgaW4gb3MubGlzdGRpcihvcy5wYXRoLmpvaW4ocGF0aCwg J1NQRUNTJykpIGlmIGYuZW5kc3dpdGgoJy5zcGVjJyldKSA9PSAwOgorKyAgICAgICAgICAgIHJh aXNlIExheW91dEVycm9yKCdzcGVjIGZpbGUgbm90IGZvdW5kLicpCisrICAgICAgICBpZiBsZW4o W2YgZm9yIGYgaW4gb3MubGlzdGRpcihwYXRoKSBpZiBmLmVuZHN3aXRoKCcubWV0YWRhdGEnKV0p ID09IDA6CisrICAgICAgICAgICAgcmFpc2UgTGF5b3V0RXJyb3IoJ21ldGFkYXRhIGZpbGUgbm90 IGZvdW5kLicpCisrICAgICAgICByZXR1cm4gY2xzKHJvb3RfZGlyPXBhdGgpCitkaWZmIC0tZ2l0 IGEvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9kZWFkLW1vZHVsZS9kZWFkLm1vZHVsZSBiL3Rlc3Rz L2ZpeHR1cmVzL2xheW91dHMvZGVhZC1tb2R1bGUvZGVhZC5tb2R1bGUKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lNjlkZTI5CitkaWZmIC0tZ2l0IGEvdGVzdHMvZml4dHVy ZXMvbGF5b3V0cy9kZWFkLW1vZHVsZS9mb29iYXIuc3BlYyBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91 dHMvZGVhZC1tb2R1bGUvZm9vYmFyLnNwZWMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwLi5lNjlkZTI5CitkaWZmIC0tZ2l0IGEvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9kZWFk LXBhY2thZ2UvZGVhZC5wYWNrYWdlIGIvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9kZWFkLXBhY2th Z2UvZGVhZC5wYWNrYWdlCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZTY5 ZGUyOQorZGlmZiAtLWdpdCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvZGVhZC1wYWNrYWdlL2Zv b2Jhci5zcGVjIGIvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9kZWFkLXBhY2thZ2UvZm9vYmFyLnNw ZWMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lNjlkZTI5CitkaWZmIC0t Z2l0IGEvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9kaXN0LWdpdC9mb29iYXIuc3BlYyBiL3Rlc3Rz L2ZpeHR1cmVzL2xheW91dHMvZGlzdC1naXQvZm9vYmFyLnNwZWMKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwLi5lNjlkZTI5CitkaWZmIC0tZ2l0IGEvdGVzdHMvZml4dHVyZXMv bGF5b3V0cy9kaXN0LWdpdC9mb29iYXIudHh0IGIvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9kaXN0 LWdpdC9mb29iYXIudHh0CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZTY5 ZGUyOQorZGlmZiAtLWdpdCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvZGlzdC1naXQvc291cmNl cyBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvZGlzdC1naXQvc291cmNlcworbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU2OWRlMjkKK2RpZmYgLS1naXQgYS90ZXN0cy9maXh0 dXJlcy9sYXlvdXRzL3NwZWNsZXNzLy5naXRrZWVwIGIvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9z cGVjbGVzcy8uZ2l0a2VlcAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU2 OWRlMjkKK2RpZmYgLS1naXQgYS90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1tb2R1 bGUvLmZvb2Jhci5tZXRhZGF0YSBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLW1v ZHVsZS8uZm9vYmFyLm1ldGFkYXRhCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MC4uZTY5ZGUyOQorZGlmZiAtLWdpdCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFk LW1vZHVsZS9TT1VSQ0VTL2Zvb2Jhci1maXJzdGNvbW1pdC5wYXRjaCBiL3Rlc3RzL2ZpeHR1cmVz L2xheW91dHMvc3JwbS1kZWFkLW1vZHVsZS9TT1VSQ0VTL2Zvb2Jhci1maXJzdGNvbW1pdC5wYXRj aAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU2OWRlMjkKK2RpZmYgLS1n aXQgYS90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1tb2R1bGUvU1BFQ1MvZm9vYmFy LnNwZWMgYi90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1tb2R1bGUvU1BFQ1MvZm9v YmFyLnNwZWMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lNjlkZTI5Citk aWZmIC0tZ2l0IGEvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLWRlYWQtbW9kdWxlL2RlYWQu bW9kdWxlIGIvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLWRlYWQtbW9kdWxlL2RlYWQubW9k dWxlCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZTY5ZGUyOQorZGlmZiAt LWdpdCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBhY2thZ2UvLmZvb2Jhci5t ZXRhZGF0YSBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBhY2thZ2UvLmZvb2Jh ci5tZXRhZGF0YQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU2OWRlMjkK K2RpZmYgLS1naXQgYS90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1wYWNrYWdlL1NP VVJDRVMvZm9vYmFyLWZpcnN0Y29tbWl0LnBhdGNoIGIvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9z cnBtLWRlYWQtcGFja2FnZS9TT1VSQ0VTL2Zvb2Jhci1maXJzdGNvbW1pdC5wYXRjaAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU2OWRlMjkKK2RpZmYgLS1naXQgYS90ZXN0 cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1wYWNrYWdlL1NQRUNTL2Zvb2Jhci5zcGVjIGIv dGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLWRlYWQtcGFja2FnZS9TUEVDUy9mb29iYXIuc3Bl YworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU2OWRlMjkKK2RpZmYgLS1n aXQgYS90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0tZGVhZC1wYWNrYWdlL2RlYWQucGFja2Fn ZSBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBhY2thZ2UvZGVhZC5wYWNrYWdl CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZTY5ZGUyOQorZGlmZiAtLWdp dCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBhY2thZ2Uvc3JwbS8uZm9vYmFy Lm1ldGFkYXRhIGIvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLWRlYWQtcGFja2FnZS9zcnBt Ly5mb29iYXIubWV0YWRhdGEKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5l NjlkZTI5CitkaWZmIC0tZ2l0IGEvdGVzdHMvZml4dHVyZXMvbGF5b3V0cy9zcnBtLWRlYWQtcGFj a2FnZS9zcnBtL1NPVVJDRVMvZm9vYmFyLWZpcnN0Y29tbWl0LnBhdGNoIGIvdGVzdHMvZml4dHVy ZXMvbGF5b3V0cy9zcnBtLWRlYWQtcGFja2FnZS9zcnBtL1NPVVJDRVMvZm9vYmFyLWZpcnN0Y29t bWl0LnBhdGNoCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZTY5ZGUyOQor ZGlmZiAtLWdpdCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBhY2thZ2Uvc3Jw bS9TUEVDUy9mb29iYXIuc3BlYyBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1kZWFkLXBh Y2thZ2Uvc3JwbS9TUEVDUy9mb29iYXIuc3BlYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDAwMDAwMDAuLmU2OWRlMjkKK2RpZmYgLS1naXQgYS90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3Ny cG0tc3BlY2xlc3MvLmZvb2Jhci5tZXRhZGF0YSBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3Jw bS1zcGVjbGVzcy8uZm9vYmFyLm1ldGFkYXRhCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMC4uZTY5ZGUyOQorZGlmZiAtLWdpdCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3Jw bS1zcGVjbGVzcy9TUEVDUy8uZ2l0a2VlcCBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS1z cGVjbGVzcy9TUEVDUy8uZ2l0a2VlcAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAuLmU2OWRlMjkKK2RpZmYgLS1naXQgYS90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0vLmZv b2Jhci5tZXRhZGF0YSBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS8uZm9vYmFyLm1ldGFk YXRhCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZTY5ZGUyOQorZGlmZiAt LWdpdCBhL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS9TT1VSQ0VTL2Zvb2Jhci1maXJzdGNv bW1pdC5wYXRjaCBiL3Rlc3RzL2ZpeHR1cmVzL2xheW91dHMvc3JwbS9TT1VSQ0VTL2Zvb2Jhci1m aXJzdGNvbW1pdC5wYXRjaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmU2 OWRlMjkKK2RpZmYgLS1naXQgYS90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0vU1BFQ1MvZm9v YmFyLnNwZWMgYi90ZXN0cy9maXh0dXJlcy9sYXlvdXRzL3NycG0vU1BFQ1MvZm9vYmFyLnNwZWMK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lNjlkZTI5CitkaWZmIC0tZ2l0 IGEvdGVzdHMvdGVzdF9jbGkucHkgYi90ZXN0cy90ZXN0X2NsaS5weQoraW5kZXggYThiMzRmNC4u ZWI5Yzc5ZSAxMDA2NDQKKy0tLSBhL3Rlc3RzL3Rlc3RfY2xpLnB5CisrKysgYi90ZXN0cy90ZXN0 X2NsaS5weQorQEAgLTE5LDcgKzE5LDcgQEAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IFN0cmluZ0lP LCBjb25maWdwYXJzZXIsIGh0dHBfY2xpZW50CisgaW1wb3J0IGtvamlfY2xpLmxpYgorIGltcG9y dCBweXJwa2cuY2xpCisgaW1wb3J0IHV0aWxzCistZnJvbSBweXJwa2cgaW1wb3J0IENvbW1hbmRz LCBNb2R1bGVtZCwgcnBrZ0Vycm9yCisrZnJvbSBweXJwa2cgaW1wb3J0IENvbW1hbmRzLCBNb2R1 bGVtZCwgcnBrZ0Vycm9yLCBsYXlvdXQKKyBmcm9tIHV0aWxzIGltcG9ydCBDb21tYW5kVGVzdENh c2UsIEZha2VUaHJlYWRQb29sCisgCisgdHJ5OgorQEAgLTY0LDYgKzY0LDExIEBAIGRlZiBtb2Nr X2dldF9ycG1fcGFja2FnZV9uYW1lKHNlbGYsIHJwbV9maWxlKToKKyAgICAgcmV0dXJuKG9zLnBh dGguYmFzZW5hbWUocnBtX2ZpbGUpWzotbGVuKCcuc3JjLnJwbScpXSkKKyAKKyAKKytjbGFzcyBN b2NrTGF5b3V0KGxheW91dC5EaXN0R2l0TGF5b3V0KToKKysgICAgZGVmIGlzX3JldGlyZWQoc2Vs Zik6CisrICAgICAgICByZXR1cm4gTm9uZQorKworKworIGNsYXNzIENsaVRlc3RDYXNlKENvbW1h bmRUZXN0Q2FzZSk6CisgCisgICAgIGRlZiBuZXdfY2xpKHNlbGYsIGNmZz1Ob25lKToKK0BAIC0x NTYxLDExICsxNTY2LDEzIEBAIGNsYXNzIFRlc3RNb2NrYnVpbGQoQ2xpVGVzdENhc2UpOgorICAg ICBAcGF0Y2goJ29zLnBhdGguZXhpc3RzJywgcmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICBkZWYg dGVzdF91c2VfbW9ja19jb25maWdfZ290X2Zyb21fa29qaSgKKyAgICAgICAgICAgICBzZWxmLCBl eGlzdHMsIGNvbmZpZ19kaXJfb3RoZXIsIGNvbmZpZ19kaXJfYmFzaWMpOgorLSAgICAgICAgY29u ZmlnX2Rpcl9iYXNpYy5yZXR1cm5fdmFsdWUgPSAnL3BhdGgvdG8vY29uZmlnLWRpcicKKysgICAg ICAgIG1vY2tfbGF5b3V0ID0gbGF5b3V0LkRpc3RHaXRMYXlvdXQocm9vdF9kaXI9c2VsZi5jbG9u ZWRfcmVwb19wYXRoKQorKyAgICAgICAgd2l0aCBwYXRjaCgncHlycGtnLmxheW91dC5idWlsZCcs IHJldHVybl92YWx1ZT1tb2NrX2xheW91dCk6CisrICAgICAgICAgICAgY29uZmlnX2Rpcl9iYXNp Yy5yZXR1cm5fdmFsdWUgPSAnL3BhdGgvdG8vY29uZmlnLWRpcicKKyAKKy0gICAgICAgIGNsaV9j bWQgPSBbJ3Jwa2cnLCAnLS1wYXRoJywgc2VsZi5jbG9uZWRfcmVwb19wYXRoLAorLSAgICAgICAg ICAgICAgICAgICAnLS1yZWxlYXNlJywgJ3JoZWwtNycsICdtb2NrYnVpbGQnXQorLSAgICAgICAg c2VsZi5tb2NrYnVpbGQoY2xpX2NtZCkKKysgICAgICAgICAgICBjbGlfY21kID0gWydycGtnJywg Jy0tcGF0aCcsIHNlbGYuY2xvbmVkX3JlcG9fcGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAg ICctLXJlbGVhc2UnLCAncmhlbC03JywgJ21vY2tidWlsZCddCisrICAgICAgICAgICAgc2VsZi5t b2NrYnVpbGQoY2xpX2NtZCkKKyAKKyAgICAgICAgIGFyZ3MsIGt3YXJncyA9IHNlbGYubW9ja19y dW5fY29tbWFuZC5jYWxsX2FyZ3MKKyAgICAgICAgIGNtZF90b19leGVjdXRlID0gYXJnc1swXQor QEAgLTM0NDksOCArMzQ1Niw5IEBAIGNsYXNzIFRlc3RCdWlsZFBhY2thZ2UoRmFrZUtvamlDcmVk cywgQ2xpVGVzdENhc2UpOgorICAgICBAcGF0Y2goJ3B5cnBrZy5Db21tYW5kcy5udnInLCBuZXdf Y2FsbGFibGU9UHJvcGVydHlNb2NrKQorICAgICBAcGF0Y2goJ3B5cnBrZy5Db21tYW5kcy5fcnVu X2NvbW1hbmQnKQorICAgICBkZWYgdGVzdF9vcHRpb25fc3JwbV9ieV9nZW5lcmF0ZV9zcnBtX2Zy b21fcmVwbyhzZWxmLCBfcnVuX2NvbW1hbmQsIG52cik6CistICAgICAgICBudnIucmV0dXJuX3Zh bHVlID0gJ2RvY3BrZy0wLjEtMS5mYzI4JworLSAgICAgICAgc2VsZi5hc3NlcnRfb3B0aW9uX3Ny cG1fdXNlKCkKKysgICAgICAgIHdpdGggcGF0Y2goJ3B5cnBrZy5sYXlvdXQuYnVpbGQnLCByZXR1 cm5fdmFsdWU9TW9ja0xheW91dChyb290X2Rpcj1zZWxmLmNsb25lZF9yZXBvX3BhdGgpKToKKysg ICAgICAgICAgICBudnIucmV0dXJuX3ZhbHVlID0gJ2RvY3BrZy0wLjEtMS5mYzI4JworKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0X29wdGlvbl9zcnBtX3VzZSgpCisgCisgICAgICAgICBhcmdzLCBr d2FyZ3MgPSBfcnVuX2NvbW1hbmQuY2FsbF9hcmdzCisgICAgICAgICBzZWxmLmFzc2VydEVxdWFs KHsnc2hlbGwnOiBUcnVlfSwga3dhcmdzKQorZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RfbGF5b3V0 X2Rpc3RnaXQucHkgYi90ZXN0cy90ZXN0X2xheW91dF9kaXN0Z2l0LnB5CituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYTRjNDk0NAorLS0tIC9kZXYvbnVsbAorKysrIGIvdGVz dHMvdGVzdF9sYXlvdXRfZGlzdGdpdC5weQorQEAgLTAsMCArMSw1MCBAQAorK2ltcG9ydCBvcwor K2ltcG9ydCB1bml0dGVzdAorKworK2Zyb20gcHlycGtnLmxheW91dCBpbXBvcnQgbGF5b3V0cwor K2Zyb20gcHlycGtnIGltcG9ydCBlcnJvcnMKKysKKysKKytmaXh0dXJlc19kaXIgPSBvcy5wYXRo LmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ2ZpeHR1cmVzJykKKysKKysKKytjbGFz cyBEaXN0R2l0TGF5b3V0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorKyAgICBkZWYgc2V0 VXAoc2VsZik6CisrICAgICAgICBzZWxmLndvcmtkaXIgPSBvcy5wYXRoLmpvaW4oZml4dHVyZXNf ZGlyLCAnbGF5b3V0cy9kaXN0LWdpdCcpCisrICAgICAgICBzZWxmLmxheW91dCA9IGxheW91dHMu RGlzdEdpdExheW91dC5mcm9tX3BhdGgoc2VsZi53b3JrZGlyKQorKworKyAgICBkZWYgdGVzdF9s YXlvdXRfZGF0YShzZWxmKToKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5sYXlvdXQu c291cmNlZGlyLCBzZWxmLndvcmtkaXIpCisrICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu bGF5b3V0LnNwZWNkaXIsIHNlbGYud29ya2RpcikKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo c2VsZi5sYXlvdXQuc3BlY2Rpciwgc2VsZi53b3JrZGlyKQorKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChzZWxmLmxheW91dC5yb290X2Rpciwgc2VsZi53b3JrZGlyKQorKyAgICAgICAgc2VsZi5h c3NlcnRFcXVhbChzZWxmLmxheW91dC5idWlsZGRpciwgc2VsZi53b3JrZGlyKQorKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbChzZWxmLmxheW91dC5ycG1kaXIsIHNlbGYud29ya2RpcikKKysgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5sYXlvdXQuc3JjcnBtZGlyLCBzZWxmLndvcmtkaXIp CisrICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubGF5b3V0LnNvdXJjZXNfZmlsZV90ZW1w bGF0ZSwgJ3NvdXJjZXMnKQorKworKyAgICBkZWYgdGVzdF9sYXlvdXRfcmV0aXJlZChzZWxmKToK KysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgc2VsZi5sYXlvdXQuaXNfcmV0aXJlZCgp KQorKworKworK2NsYXNzIERpc3RHaXRMYXlvdXRFcnJvcnNUZXN0Q2FzZSh1bml0dGVzdC5UZXN0 Q2FzZSk6CisrICAgIGRlZiBzZXRVcChzZWxmKToKKysgICAgICAgIHNlbGYud29ya2RpciA9IG9z LnBhdGguam9pbihmaXh0dXJlc19kaXIsICdsYXlvdXRzJykKKysKKysgICAgZGVmIHRlc3RfcGF0 aF9lcnJvcihzZWxmKToKKysgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkxh eW91dEVycm9yKSBhcyBlOgorKyAgICAgICAgICAgIGxheW91dHMuRGlzdEdpdExheW91dC5mcm9t X3BhdGgob3MucGF0aC5qb2luKHNlbGYud29ya2RpciwgJ25vdGZvdW5kJykpCisrICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKCdwYWNrYWdlIHBhdGggZG9lcyBub3QgZXhpc3QnLCBlLmV4Y2VwdGlv bi5hcmdzWzBdKQorKworKyAgICBkZWYgdGVzdF9zcGVjbGVzc19lcnJvcihzZWxmKToKKysgICAg ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkxheW91dEVycm9yKSBhcyBlOgorKyAg ICAgICAgICAgIGxheW91dHMuRGlzdEdpdExheW91dC5mcm9tX3BhdGgob3MucGF0aC5qb2luKHNl bGYud29ya2RpciwgJ3NwZWNsZXNzJykpCisrICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzcGVj IGZpbGUgbm90IGZvdW5kLicsIGUuZXhjZXB0aW9uLmFyZ3NbMF0pCisrCisrICAgIGRlZiB0ZXN0 X2RlYWRfbW9kdWxlX2Vycm9yKHNlbGYpOgorKyAgICAgICAgbGF5b3V0ID0gbGF5b3V0cy5EaXN0 R2l0TGF5b3V0LmZyb21fcGF0aChvcy5wYXRoLmpvaW4oc2VsZi53b3JrZGlyLCAnZGVhZC1tb2R1 bGUnKSkKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2RlYWQubW9kdWxlJywgbGF5b3V0Lmlz X3JldGlyZWQoKSkKKysKKysgICAgZGVmIHRlc3RfZGVhZF9wYWNrYWdlX2Vycm9yKHNlbGYpOgor KyAgICAgICAgbGF5b3V0ID0gbGF5b3V0cy5EaXN0R2l0TGF5b3V0LmZyb21fcGF0aChvcy5wYXRo LmpvaW4oc2VsZi53b3JrZGlyLCAnZGVhZC1wYWNrYWdlJykpCisrICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKCdkZWFkLnBhY2thZ2UnLCBsYXlvdXQuaXNfcmV0aXJlZCgpKQorZGlmZiAtLWdpdCBh L3Rlc3RzL3Rlc3RfbGF5b3V0X3NycG0ucHkgYi90ZXN0cy90ZXN0X2xheW91dF9zcnBtLnB5Citu ZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uNTYyNDA2ZgorLS0tIC9kZXYvbnVs bAorKysrIGIvdGVzdHMvdGVzdF9sYXlvdXRfc3JwbS5weQorQEAgLTAsMCArMSw0OSBAQAorK2lt cG9ydCBvcworK2ltcG9ydCB1bml0dGVzdAorKworK2Zyb20gcHlycGtnLmxheW91dCBpbXBvcnQg bGF5b3V0cworK2Zyb20gcHlycGtnIGltcG9ydCBlcnJvcnMKKysKKysKKytmaXh0dXJlc19kaXIg PSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ2ZpeHR1cmVzJykKKysK KysKKytjbGFzcyBTUlBNTGF5b3V0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorKyAgICBk ZWYgc2V0VXAoc2VsZik6CisrICAgICAgICBzZWxmLndvcmtkaXIgPSBvcy5wYXRoLmpvaW4oZml4 dHVyZXNfZGlyLCAnbGF5b3V0cy9zcnBtJykKKysgICAgICAgIHNlbGYubGF5b3V0ID0gbGF5b3V0 cy5TUlBNTGF5b3V0LmZyb21fcGF0aChzZWxmLndvcmtkaXIpCisrCisrICAgIGRlZiB0ZXN0X2xh eW91dF9kYXRhKHNlbGYpOgorKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxheW91dC5z b3VyY2VkaXIsIG9zLnBhdGguam9pbihzZWxmLndvcmtkaXIsICdTT1VSQ0VTJykpCisrICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubGF5b3V0LnNwZWNkaXIsIG9zLnBhdGguam9pbihzZWxm LndvcmtkaXIsICdTUEVDUycpKQorKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxheW91 dC5yb290X2Rpciwgc2VsZi53b3JrZGlyKQorKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm LmxheW91dC5idWlsZGRpciwgb3MucGF0aC5qb2luKHNlbGYud29ya2RpciwgJ0JVSUxEJykpCisr ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubGF5b3V0LnJwbWRpciwgb3MucGF0aC5qb2lu KHNlbGYud29ya2RpciwgJ1JQTVMnKSkKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5s YXlvdXQuc3JjcnBtZGlyLCBvcy5wYXRoLmpvaW4oc2VsZi53b3JrZGlyLCAnU1JQTVMnKSkKKysg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5sYXlvdXQuc291cmNlc19maWxlX3RlbXBsYXRl LCAnLnswLnJlcG9fbmFtZX0ubWV0YWRhdGEnKQorKworKyAgICBkZWYgdGVzdF9sYXlvdXRfcmV0 aXJlZChzZWxmKToKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgc2VsZi5sYXlvdXQu aXNfcmV0aXJlZCgpKQorKworKworK2NsYXNzIFNSUE1MYXlvdXRFcnJvcnNUZXN0Q2FzZSh1bml0 dGVzdC5UZXN0Q2FzZSk6CisrICAgIGRlZiBzZXRVcChzZWxmKToKKysgICAgICAgIHNlbGYud29y a2RpciA9IG9zLnBhdGguam9pbihmaXh0dXJlc19kaXIsICdsYXlvdXRzJykKKysKKysgICAgZGVm IHRlc3RfcGF0aF9lcnJvcihzZWxmKToKKysgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo ZXJyb3JzLkxheW91dEVycm9yKSBhcyBlOgorKyAgICAgICAgICAgIGxheW91dHMuU1JQTUxheW91 dC5mcm9tX3BhdGgob3MucGF0aC5qb2luKHNlbGYud29ya2RpciwgJ25vdGZvdW5kJykpCisrICAg ICAgICBzZWxmLmFzc2VydEVxdWFsKCdwYWNrYWdlIHBhdGggZG9lcyBub3QgZXhpc3QnLCBlLmV4 Y2VwdGlvbi5hcmdzWzBdKQorKworKyAgICBkZWYgdGVzdF9zcGVjbGVzc19lcnJvcihzZWxmKToK KysgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkxheW91dEVycm9yKSBhcyBl OgorKyAgICAgICAgICAgIGxheW91dHMuU1JQTUxheW91dC5mcm9tX3BhdGgob3MucGF0aC5qb2lu KHNlbGYud29ya2RpciwgJ3NycG0tc3BlY2xlc3MnKSkKKysgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoJ3NwZWMgZmlsZSBub3QgZm91bmQuJywgZS5leGNlcHRpb24uYXJnc1swXSkKKysKKysgICAg ZGVmIHRlc3RfZGVhZF9tb2R1bGVfZXJyb3Ioc2VsZik6CisrICAgICAgICBsYXlvdXQgPSBsYXlv dXRzLlNSUE1MYXlvdXQuZnJvbV9wYXRoKG9zLnBhdGguam9pbihzZWxmLndvcmtkaXIsICdzcnBt LWRlYWQtbW9kdWxlJykpCisrICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWFkLm1vZHVsZScs IGxheW91dC5pc19yZXRpcmVkKCkpCisrCisrICAgIGRlZiB0ZXN0X2RlYWRfcGFja2FnZV9lcnJv cihzZWxmKToKKysgICAgICAgIGxheW91dCA9IGxheW91dHMuU1JQTUxheW91dC5mcm9tX3BhdGgo b3MucGF0aC5qb2luKHNlbGYud29ya2RpciwgJ3NycG0tZGVhZC1wYWNrYWdlJykpCisrICAgICAg ICBzZWxmLmFzc2VydEVxdWFsKCdkZWFkLnBhY2thZ2UnLCBsYXlvdXQuaXNfcmV0aXJlZCgpKQor LS0gCisyLjI2LjIKKwoKZGlmZiAtLWdpdCBhLzAwMDUtY2xvZy10ZXN0cy13b3JrYXJvdW5kLnBh dGNoIGIvMDAwNS1jbG9nLXRlc3RzLXdvcmthcm91bmQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYzgwYWRjYgotLS0gL2Rldi9udWxsCisrKyBiLzAwMDUtY2xvZy10 ZXN0cy13b3JrYXJvdW5kLnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gNzZlY2NlYTczMDQ0 NmE0NGUxMWE0ZDg1MTQ2NjY2MjIwNzYzY2JmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206ID0/VVRGLTg/cT9PbmQ9QzU9OTllaj0yME5vc2VrPz0gPG9ub3Nla0ByZWRoYXQuY29tPgor RGF0ZTogV2VkLCA1IEF1ZyAyMDIwIDAxOjA4OjI1ICswMDAwCitTdWJqZWN0OiBbUEFUQ0hdIFJl LWVuYWJsZSBjbG9nIHRlc3RzCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisK K0FwcGxpZWQgd29ya2Fyb3VuZCBkZXNjcmliZWQgaGVyZToKK2h0dHBzOi8vZ2l0aHViLmNvbS9y cG0tc29mdHdhcmUtbWFuYWdlbWVudC9ycG0vaXNzdWVzLzEzMDEKKworU2lnbmVkLW9mZi1ieTog T25kxZllaiBOb3NlayA8b25vc2VrQHJlZGhhdC5jb20+CistLS0KKyBweXJwa2cvX19pbml0X18u cHkgfCA1ICsrKysrCisgdGVzdHMvdGVzdF9jbGkucHkgIHwgNiAtLS0tLS0KKyAyIGZpbGVzIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3B5 cnBrZy9fX2luaXRfXy5weSBiL3B5cnBrZy9fX2luaXRfXy5weQoraW5kZXggNmEyNDAzMy4uYWQ1 MzI1NyAxMDA2NDQKKy0tLSBhL3B5cnBrZy9fX2luaXRfXy5weQorKysrIGIvcHlycGtnL19faW5p dF9fLnB5CitAQCAtMjMyOCw3ICsyMzI4LDEyIEBAIGNsYXNzIENvbW1hbmRzKG9iamVjdCk6Cisg ICAgICAgICAiIiJXcml0ZSB0aGUgbGF0ZXN0IHNwZWMgY2hhbmdlbG9nIGVudHJ5IHRvIGEgY2xv ZyBmaWxlIiIiCisgCisgICAgICAgICBzcGVjX2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5wYXRo LCBzZWxmLnNwZWMpCisrICAgICAgICAjIFRPRE86IHJlbW92ZSB3aGVuIGZpeGVkCisrICAgICAg ICAjIENvbW1hbmQgY29udGFpbnMgd29ya2Fyb3VuZCAodW5kZWZpbmVzIF9jaGFuZ2Vsb2dfdHJp bXRpbWUpIGRlc2NyaWJlZCBhdDoKKysgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3JwbS1z b2Z0d2FyZS1tYW5hZ2VtZW50L3JwbS9pc3N1ZXMvMTMwMQorKyAgICAgICAgIyBJdCBjYXVzZWQs IHRoYXQgb2xkZXIgY2hhbmdlbG9nIHJlY29yZHMgd2VyZSBub3QgZGlzcGxheWVkLgorICAgICAg ICAgY21kID0gWydycG0nXSArIHNlbGYucnBtZGVmaW5lcyArIFsnLXEnLCAnLS1xZicsICciJXtD SEFOR0VMT0dURVhUfVxuIicsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICctLXVuZGVmaW5lJywgJyJfY2hhbmdlbG9nX3RyaW10aW1lIicsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLXNwZWNmaWxlJywgJyIlcyInICUg c3BlY19maWxlXQorICAgICAgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oJyAnLmpvaW4oY21k KSwgc2hlbGw9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1z dWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUsCgpkaWZmIC0tZ2l0IGEvcnBr Zy5zcGVjIGIvcnBrZy5zcGVjCmluZGV4IDRjNmFkNWEuLjA3M2Y4OTggMTAwNjQ0Ci0tLSBhL3Jw a2cuc3BlYworKysgYi9ycGtnLnNwZWMKQEAgLTEsNiArMSw2IEBACiBOYW1lOiAgICAgICAgICAg cnBrZwogVmVyc2lvbjogICAgICAgIDEuNjAKLVJlbGVhc2U6ICAgICAgICA2JXs/ZGlzdH0KK1Jl bGVhc2U6ICAgICAgICA3JXs/ZGlzdH0KIAogU3VtbWFyeTogICAgICAgIFB5dGhvbiBsaWJyYXJ5 IGZvciBpbnRlcmFjdGluZyB3aXRoIHJwbStnaXQKIExpY2Vuc2U6ICAgICAgICBHUEx2MisgYW5k IExHUEx2MgpAQCAtMTksNyArMTksOSBAQCBTb3VyY2UwOiAgICAgICAgaHR0cHM6Ly9wYWd1cmUu aW8vcmVsZWFzZXMvcnBrZy8le25hbWV9LSV7dmVyc2lvbn0udGFyLmd6CiBQYXRjaDA6ICAgICAg ICAgcmVtb3ZlLWtvamktYW5kLXJwbS1weS1pbnN0YWxsZXItZnJvbS1yZXF1aXJlcy5wYXRjaAog UGF0Y2gxOiAgICAgICAgIDAwMDEtUmVwYWlyLWRvd25sb2FkaW5nLXNvdXJjZXMtaW50by1leHRl cm5hbC1kaXJlY3RvcnkucGF0Y2gKIFBhdGNoMjogICAgICAgICAwMDAyLVJlcGFpci1jb21wYXRp YmxlLWZvcm1hdHRpbmctZm9yLVB5dGhvbi0yLjYucGF0Y2gKLVBhdGNoMzoJCTAwMDMtU3dpdGNo LWZyb20ta3JiX2xvZ2luLXRvLWdzc2FwaV9sb2dpbi5wYXRjaAorUGF0Y2gzOiAgICAgICAgIDAw MDMtU3dpdGNoLWZyb20ta3JiX2xvZ2luLXRvLWdzc2FwaV9sb2dpbi5wYXRjaAorUGF0Y2g0OiAg ICAgICAgIDAwMDQtYWRkZWQtYS1leHRlbmRhYmxlLWxheW91dC1tb2R1bGUtdG8tZGVhbC13aXRo LWRpZmZlci5wYXRjaAorUGF0Y2g1OiAgICAgICAgIDAwMDUtY2xvZy10ZXN0cy13b3JrYXJvdW5k LnBhdGNoCiAKICVpZiAwJXs/ZmVkb3JhfSB8fCAwJXs/cmhlbH0gPiA3CiAjIERpc2FibGUgcHl0 aG9uMiBidWlsZCBieSBkZWZhdWx0CkBAIC0yNzEsNiArMjczLDEwIEBAIG5vc2V0ZXN0cyB0ZXN0 cwogCiAKICVjaGFuZ2Vsb2cKKyogRnJpIEF1ZyAwNyAyMDIwIE9uZMWZZWogTm9zZWsgPG9ub3Nl a0ByZWRoYXQuY29tPiAtIDEuNjAtNworLSBQYXRjaDogYWRkZWQgbGF5b3V0IG1vZHVsZSB0byBk ZWFsIHdpdGggZGlmZmVyZW50IHBhY2thZ2UgbGF5b3V0cworLSBQYXRjaDogY2xvZyB0ZXN0cyB3 b3JrYXJvdW5kCisKICogU2F0IEF1ZyAwMSAyMDIwIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5n IDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS42MC02CiAtIFNlY29uZCBhdHRlbXB0IC0g UmVidWlsdCBmb3IKICAgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zM19N YXNzX1JlYnVpbGQK